PCEP Functions¶
sth::emulation_pcep_config¶
Purpose¶
Spirent Extension (for Spirent HLTAPI only).
This is a Spirent Extension created to configure enable emulated PCEP device, configure, or modify PCEP LSPs or the LSP objects.
Path Computation Element Protocol (PCEP) is used for communications between a Path Computation Client (PCC) and a Path Computation Element (PCE), or between two PCEs. Such interactions include path computation requests and path computation replies, as well as notifications of specific states related to the use of a PCE in the context of Multiprotocol Label Switching (MPLS) and Generalized MPLS (GMPLS) Traffic Engineering.
Stateful PCE is also supported to provide mechanisms to effect LSP state synchronization between PCCs and PCEs, delegation of control over LSPs to PCEs, and PCE control of timing and sequence of path computations within and across PCEP sessions.
See RFC 5440 and PCEP Extensions for Stateful PCE for more information.
Synopsis¶
Note
M indicates that the argument is Mandatory .
sth::emulation_pcep_config [-mode {enable|add|modify|delete} M] PCEP Sessions Parameters [-custom_dst_port {true|false}] [-ttl <1-255>] [-ipv6_traffic_class <0x00-0xFF>] [-ip_version {ipv4|ipv6}] [-speaker_entity_id <string>] [-ipv4_tos <0x00-0xFF>] [-is_session_initiator {true|false}] [-is_fixed_dst_port {true|false}] [-enable_negotiation {true|false}] [-open_delay <0-255>] [-enable_stateful {true|false}] [-use_custom_message {true|false}] [-pcep_capability {lsp_update_capability|lsp_instantiation_capability}] [-min_acc_keep_alive_timer <0-255>] [-max_acc_keepa_live_timer <0-255>] [-min_acc_dead_timer <0-255>] [-max_acc_dead_timer <0-255>] [-pcep_device_role {PCC|PCE}] [-peer_ipv4_addr <a.b.c.d>] [-peer_ipv4_addr_step <a.b.c.d>] [-peer_ipv6_addr <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>] [-peer_ipv6_addr_step <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh> ] [-pcep_session_ip_address {INTERFACE_IP|ROUTER_ID}] [-is_session_initiator {true|false}] [-is_fixed_src_port {true|false}] [-keep_alive_timer <0 - 65535>] [-dead_timer <0 - 65535>] [-enable_pc_results {true|false}] [-authentication {NONE|MD5}] [-password <string> ] [-enable_init_lsp {true|false}] [-enable_segment_routing {true|false}] [-max_sid_depth < 0-255> ] PCEP Global Options [-session_out_standing <1-65535>] [-session_retry_count <1-65535> ] [-session_retry_interval <1-300>] [-lsp_per_message <1-2000>] [-tcp_interval <1-1000> ] [-packet_align_to_mtu {true|false}] PCC LSP Parameters [-delegate_with_sync {true|false}] [-path_setup_type {rsvp|sr] [-pcc_lspcount <1-65535>] [-pcc_characteristic {report|allow_pce_init|enable_synchronization|enable_request}] [-enable_delegate {true|false}] [-pcc_src_ipv4_addr <a.b.c.d> ] [-pcc_src_ipv4_addr_step <a.b.c.d>] [-pcc_dst_ipv4_addr <a.b.c.d> ] [-pcc_dst_ipv4_addr_step <a.b.c.d>] [-pcc_src_ipv6_addr <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh> ] [-pcc_src_ipv6_addr_step <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh> ] [-pcc_dst_ipv6_addr <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh> ] [-pcc_dst_ipv6_addr_step <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh> ] PCE LSP Parameters [-path_setup_type {rsvp|sr] [-pce_lspcount <1-65535>] [-pce_symbolic_name <string>] [-pce_characteristic {enable_update|enable_init|enable_reply}] [-enable_update {true|false}] [-pce_src_ipv4_addr <a.b.c.d> ] [-pce_src_ipv4_addr_step <a.b.c.d>] [-pce_dst_ipv4_addr <a.b.c.d> ] [-pce_dst_ipv4_addr_step <a.b.c.d>] [-pce_src_ipv6_addr <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>] [-pce_src_ipv6_addr_step <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>] [-pce_dst_ipv6_addr <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>] [-pce_dst_ipv6_addr_step <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>] [-enable_no_path {true|false}] PCE SRP Info [-srp_auto_gen_id {true|false}] [-srp_id <0-4294967295> ] [-srp_id_step <0-4294967295>] PCC LSP Info [-lsp_auto_gen_id {true|false}] [-plsp_id <0-1048575>] [-plsp_id_step <0-4294967295> ] [-aflag {true|false}] [-init_lsp_state {down|up|active|goingdown|goingup|reserved1|reserved2|reserved3}] [-ipv4_tunnel_addr <a.b.c.d> ] [-ipv4_tunnel_addr_step <a.b.c.d> ] [-ipv6_tunnel_addr <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh> ] [-ipv6_tunnel_addr_step <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh> ] [-lsp_id <0-65535>] [-lsp_id_step <0-65535>] [-tunnel_id <0-65535>] [-tunnel_id_step <0-65535> ] [-ipv4_ex_tunnel_id <a.b.c.d>] [-ipv4_ex_tunnel_id_step <a.b.c.d>] [-ipv6_ex_tunnel_id <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>] [-ipv6_ex_tunnel_id_step <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>] [-ipv4_tunnel_end_addr <a.b.c.d> ] [-ipv4_tunnel_end_addr_step <a.b.c.d> ] [-ipv6_tunnel_end_addr <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>] [-ipv6_tunnel_end_addr_step <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>] PCE LSP Info [-aflag {true|false}] [-init_lsp_state {down|up|active|goingdown|goingup|reserved1|reserved2|reserved3}] PCC RP Object [-rp_pflag {true|false}] [-rp_iflag {true|false}] [-rp_auto_gen_id {true|false}] [-requestid <0-4294967295>] [-requestid_step <0-4294967295>] [-priority <0-7>] [-rp_flags {pcep_rp_flag_bidirectional|pcep_rp_flag_strict_loose|0}] PCC Endpoint Object [-endpoint_pflag {true|false}] [-endpoint_iflag {true|false}] [-ni_value {no_satisfying_path|pce_chain_broken}] [-nopath_cflag {true|false}] [-nopath_included {received|suggested}] [-nopath_vector_tlv_flag {none|pce_unavailable|unknown_destination|unknown_source}] PCEP Custom TLV [-tlv_type <0-0x3FFF>] [-tlv_value <0x0-0xff> ] [-customtlv_handle <custom_tlv_handle>] PCC/PCE Command Edit Options [-included_ero_handle <ero_handle>] [-included_rro_handle <rro_handle>] [-included_bw_handle <bw_object_handle>] [-included_metric_handle <metric_object_handle>] [-included_lspa_handle <lspa_object_handle>] [-include_ero {true|false}] [-include_rro {true|false}] [-include_bw {true|false}] [-include_metric {true|false}] [-include_lspa {true|false}] [-include_lsp {true|false}] [-include_srp {true|false}] [-include_rp {true|false}] [-include_endpoints {true|false}] [-cmd_use_custom_message {true|false}] [-lsp_msg_obj_type {custom|rp|no-path|end-points|bandwidth|metric|ero|rro|lspa|lsp|srp}] [-lsp_msg_obj_handle <PCEP custom object handle>] PCC ERO Object [-ipv4_ero_pflag {true|false}] [-ipv4_ero_iflag {true|false}] [-ipv6_ero_pflag {true|false}] [-ipv6_ero_iflag {true|false}] PCC/PCE ERO Update Object [-ipv4_update_ero_pflag {true|false}] [-ipv4_update_ero_iflag {true|false}] [-ipv6_update_ero_pflag {true|false}] [-ipv6_update_ero_iflag {true|false}] PCC/PCE Explicit Parameters for ERO/ERO Update Object [-ipv4_explicit_start_ip_list <a.b.c.d>] [-ipv4_explicit_prefix_length <0-255>] [-ipv4_explicit_route_type {pcep_ero_route_type_loose|pcep_ero_route_type_strict}] [-ipv6_explicit_start_ip_list <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh> ] [-ipv6_explicit_prefix_length <type:u8> ] [-ipv6_explicit_route_type {pcep_ero_route_type_loose|pcep_ero_route_type_strict}] SR ERO Subobject [-sr_ero_pflag {true|false}] [-sr_ero_iflag {true|false}] [-sr_route_type {pcep_ero_route_type_loose|pcep_ero_route_type_strict}] [-explicit_sid_type {ipv4_node_id|ipv6_node_id|ipv4_adjacency|ipv6_adjacency| unnumbered_adjacency_ipv4_node_ids}] [-explicit_mflag {true|false}] [-explicit_cflag {true|false}] [-explicit_sflag {true|false}] [-explicit_fflag {true|false}] [-explicit_sid_label <16-1048575>] [-explicit_sid_tc <0-7>] [-explicit_sid_sflag {true|false}] [-explicit_sid_ttl <0-255> ] [-explicit_ipv4_address <a.b.c.d> ] [-explicit_ipv6_address <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh> ] [-explicit_local_ipv4_address <a.b.c.d> ] [-explicit_remote_ipv4_address <a.b.c.d> ] [-explicit_local_ipv6_address <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh> ] [-explicit_remote_ipv6_address <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh> ] [-explicit_local_node_id <0-4294967295> ] [-explicit_local_interface_id <0-4294967295>] [-explicit_remote_node_id <0-4294967295>] [-explicit_remote_interface_id <0-4294967295> ] PCC RRO Object [-rro_flags {pcep_rro_flag_local_protection_available| pcep_rro_flag_local_protection_in_use| pcep_rro_flag_bandwidth_protection| pcep_rro_flag_node_protection|pcep_rro_flag_node_id}] [-ipv4_rro_pflag {true|false}] [-ipv6_rro_pflag {true|false}] [-ipv4_rro_iflag {true|false}] [-ipv6_rro_iflag {true|false}] PCC Reported Parameters for RRO Object [-ipv4_reported_start_ip_list <a.b.c.d> ] [-ipv4_reported_prefix_length <0-255> ] [-ipv6_reported_start_ip_list <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh> ] [-ipv6_reported_prefix_length <0-255>] PCC SR RRO Subobject [-sr_rro_pflag {true|false}] [-sr_rro_iflag {true|false}] [-reported_sid_type {ipv4_node_id|ipv6_node_id|ipv4_adjacency| ipv6_adjacency|unnumbered_adjacency_ipv4_node_ids}] [-reported_mflag {true|false}] [-reported_cflag {true|false}] [-reported_sflag {true|false}] [-reported_fflag {true|false}] [-reported_sid_label <16-1048575>] [-reported_sid_tc <0-7> ] [-reported_sid_s_flag {true|false}] [-reported_sid_ttl <0-255> ] [-reported_ipv4_address <a.b.c.d>] [-reported_ipv6_address <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>] [-reported_local_ipv4_address <a.b.c.d> ] [-reported_remote_ipv4_address <a.b.c.d> ] [-reported_local_ipv6_address <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>] [-reported_remote_ipv6_address <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>] [-reported_local_node_id <0-4294967295> ] [-reported_local_interface_id <0-4294967295> ] [-reported_remote_node_id <0-4294967295>] [-reported_remote_interface_id <0-4294967295> ] PCC BW Object [-bw_pflag {true|false}] [-bw_iflag {true|false}] [-bw_bandwidth <0-4294967295> ] PCE BW Object [-bw_update_pflag {true|false}] [-bw_update_iflag {true|false}] [-bw_update_bandwidth <0-4294967295> ] PCC/PCE Metric Object [-metric_cflag {true|false}] [-metric_bflag {true|false}] [-metric_type {igp_metric|te_metric|hop_counts}] [-metric_value <0-4294967295> ] [-metriclist_pflag {true|false}] [-metriclist_iflag {true|false}] [-metriclist_update_pflag {true|false}] [-metriclist_update_iflag {true|false}] LSPA Object [-lspa_pflag {true|false}] [-lspa_iflag {true|false}] [-lspa_exclude_any <0-4294967295> ] [-lspa_include_any <0-4294967295> ] [-lspa_include_all <0-4294967295> ] [-lspa_setup_prio <0-7>] [-lspa_holding_prio <0-7>] [-lspa_lflag {true|false}] [-lspa_affinities_flag {true|false}] LSPA Update Object [-lspa_update_pflag {true|false}] [-lspa_update_iflag {true|false}] [-lspa_update_exclude_any <0-4294967295> ] [-lspa_update_include_any <0-4294967295> ] [-lspa_update_include_all <0-4294967295> ] [-lspa_update_setup_prio <0-7> ] [_lspa_update_holding_prio <0-7>] [-lspa_update_lflag {true|false}] [-lspa_update_affinities_flag {true|false}] PCEP Custom Object [-object_length <0-65535>] [-custom_pflag {true|false}] [-custom_iflag {true|false}] [-object_class <0-255>] [-object_data <0-255>] [-reserved_flags <NUMERIC>] [-object_class_selector {custom|open|rp|no-path|end-points|bandwidth| metric|ero|rro|lspa|iro|svec|notification|error| load-balancing|close|lsp|srp}] [-auto_cal_object_length {true|false}] [-custom_obj_type <0-15>] PCEP Custom Message [-open_msg_obj_type {custom|open}] [-open_msg_obj_handle <PCEP custom object handle> ] [-keepalive_msg_obj_type {custom|open}] [-keepalive_msg_obj_handle <PCEP custom object handle>] PCEP Custom PDU [-custom_pdu <0x0-0xff>]
Arguments¶
-
-modify
¶
Specifies the action to perform on the test port. This argument is mandatory. Possible values are:
create Creates PCC/PCE devices and the related LSPs modify Modifies the PECP device or LSP objects configurations based on the handles provided. See Return Values for more information on the handles returned. delete Deletes the specified LSP
PCEP Sessions Parameters
-
-pcep_device_role
¶
Specifies the role of the device to create. Possible values are PCC and PCE:
PCE Path Computation Element, an entity (component, application, or network node) that is capable of computing a network path or route based on a network graph and applying computational constraints. PCC Path Computation Client, any client application requesting a path computation to be performed by a Path Computation Element.
The default value is PCE.
-
-ttl
¶
Specifies the value for the Time-To-Live field in the IP header. Possible values range from 1 to 255. The default value is 64.
-
-ipv6_traffic_class
¶
Specifies the traffic class value in hex. The default value is 0. This argument is valid when -ip_version is set to ipv6.
-
-ip_version
¶
Specifies the IP version. Possible values are ipv4 and ipv6. The default value is ipv4.
-
-speaker_entity_id
¶
Specifies the speaker entity ID used to maintain synchronization for a PCEP session. The value must be a string of 0 to 32 characters. The default is “”(empty string).
-
-ipv4_tos
¶
Specifies the ToS value for IPv4 in hex. Possible values range from 0x00 to 0xFF. The default value is 0xC0.
-
-is_session_initiator
¶
Specifies whether the emulated PCE attempts to initiate the session. Possible values are true and false. If it is set to true, the emulated PCE will initiate the session. When both sides try to initiate a session, the one with the higher IP address takes priority. The default value is false.
-
-custom_dst_port
¶
Specifies the destination TCP port when -is_fixed_dst_port is set to false. The default value is 4189.
-
-is_fixed_dst_port
¶
Determines whether to use the registered TCP port 4189 for PCEP sessions. Possible values are true and false. If it is set to true, Spirent HLTAPI will use the registered TCP port 4189 for PCEP sessions. The default value is false.
-
-enable_negotiation
¶
Determines whether to negotiate values for KEEPALIVE timers and dead timers when the PCEP peer includes values that are out of the configured range. Possible values are true and false. If it is set to true, Spirent HLTAPI will negotiate values for the two timers. The default value is true.
-
-open_delay
¶
Number of seconds to wait before sending OPEN messages for a session. Possible values range from 0 to 255. The default value is 0.
-
-enable_stateful
¶
Determines whether to to include a Stateful PCE Capability TLV in the OPEN message. Possible values are true and false. If it is set to true, the Stateful PCE Capability TLV will be included in the OPEN message. The default value is true.
-
-use_custom_message
¶
Enables/disables PCEP custom messages. Possible values are true (enable) and false (disable). The default value is false.
-
-pcep_capability
¶
Specifies the Stateful PCE Capability values. This argument is available when -enable_stateful is true. Use | to combine multiple values if you want to specify more than one flag. Possible values are described below:
LSP_UPDATE_CAPABILITY When specified, it indicats that the PCC allows modification of LSP parameters, or the PCE is capable of updating LSP parameters LSP_INSTANTIATION_CAPABILITY Enables LSP with initilization capability
The default value is LSP_UPDATE_CAPABILITY.
-
-min_acc_keep_alive_timer
¶
Specifies the minimum number of seconds for the KEEPALIVE timer. Possible values range from 0 to 255. The default value is 0.
-
-max_acc_keepa_live_timer
¶
Specifies the maximum number of seconds for the KEEPALIVE timer. Possible values range from 0 to 255. The default value is 255.
-
-min_acc_dead_timer
¶
Specifies the minimum number of seconds for the dead timer. Possible values range from 0 to 255. The default value is 0.
-
-max_acc_dead_timer
¶
Specifies the maximum number of seconds for the dead timer. Possible values range from 0 to 255. The default value is 255.
-
-peer_ipv4_addr
¶
IPv4 address of the PCE peer for the session
-
-peer_ipv4_addr_step
¶
Specifies the step value to generate subsequent IPv4 addresses for PCE devices on the same port. The value must be in IPv4 format. The default is 0.0.0.1.
-
-peer_ipv6_addr
¶
IPv6 address of the PCE peer for the session
-
-peer_ipv6_addr_step
¶
Specifies the step value to generate subsequent IPv6 addresses for PCE devices on the same port. The value must be in IPv6 format. The default is 0000::1.
-
-pcep_session_ip_address
¶
Specifies the source of the PCE session address. Possible values are INTERFACE_IP and ROUTER_ID. The default is INTERFACE_IP.
-
-is_session_initiator
¶
Determines whether the emulated PCE will attempt to initiate the session. Possible values are:
true Emulated PCE initiates the session false Emulated PCE listens for the peer to initiate the session
When both sides initiate a session, the one with the higher IP address takes priority. The default value is true.
-
-is_fixed_src_port
¶
Determines whether to use the registered TCP port 4189 for PCEP sessions. Possible values are true and false. If it is set to true, Spirent HLTAPI will use the registered TCP port 4189 for PCEP sessions. The default value is false.
-
-keep_alive_timer
¶
Number of seconds between transmissions of KEEPALIVE messages by the emulated PCE, in the absence of transmission of any other PCE packets. Possible values range from 0 to 65535. The default value is 30.
-
-dead_timer
¶
Number of seconds without traffic the peer should wait before declaring the session dead. Possible values range from 0 to 65535. The default value is 120.
-
-enable_pc_results
¶
Enables/disables displaying the details of the sending LSPs. Possible values are true (enable) and false (disable). The default value is false.
-
-authentication
¶
Specifies the type of authentication to be used. Possible values are:
NONE No authentication MD5 Use the MD5 key ID for authentication
The default value is NONE.
-
-password
¶
Specifies the password used in the authentication. The value must be in alphanumeric format. This argument is only valid when -authentication is set to MD5. The default value is Spirent.
-
-enable_init_lsp
¶
Enables/disables I-flag in the Stateful Capability TLV. Possible values are true (enable) and false (disable). The default value is true.
-
-enable_segment_routing
¶
Enables/disables the Segment Routing extension to PCEP. If it is set to true, the SR PCE Capability TLV is included in the OPEN message and the PATH-SETUP-TYPE TLV is included in the Stateful PCE Request Parameters (SRP) object.
-
-max_sid_depth
¶
Maximum number of nested segment IDs. This argument is only valid when -enable_segment_routing is set to true. Possible values range from 0 to 255. The default value is 0. When this value is changed, upon applying, the PCEP session is closed and re-established.
PCEP Global Options
-
-session_out_standing
¶
Maximum number of sessions simultaneously started by the Spirent TestCenter port. Possible values range from 1 to 65535. The default value is 100.
-
-session_retry_count
¶
Maximum number of times the system tries to establish a TCP connection using the PCEP-registered TCP port before going back to the IDLE state. Possible values range from 1 to 65535. The default value is 100.
-
-session_retry_interval
¶
Number of seconds to wait before resending a TCP message. Possible values range from 1 to 300. The default value is 5.
-
-lsp_per_message
¶
Maximum number of Label Switched Paths (LSPs) in one TCP message. Possible values range from 1 to 2000. The default value is 100.
-
-tcp_interval
¶
Number of seconds to wait before sending another LSP TCP message. Possible values range from 1 to 1000. The default value is 500.
-
-packet_align_to_mtu
¶
Determines whether to combine as many LSPs as will fit in the MTU. Possible values are true and false. The default value is false.
The following examples configure and enable PCEP (PCE and PCC) on the created raw devices:
set dev_handle1 [keylget device_ret1 handle]
set dev_handle2 [keylget device_ret2 handle]
set device_ret_pcep1 [::sth::emulation_pcep_config \
-mode create \
-handle $dev_handle1 \
-pcep_device_role PCE \
-state NONE \
-pcep_mode ACTIVE \
-ip_version IPV4 \
-peer_ipv4_addr null \
-peer_ipv4_addr_step 0.0.0.1 \
-peer_ipv6_addr null \
-peer_ipv6_addr_step 0000::1 \
-pcep_session_ip_address INTERFACE_IP \
-is_session_initiator true \
-is_fixed_src_port false \
-keep_alive_timer 40 \
-dead_timer 150 \
-enable_pc_results false \
-authentication MD5 \
-password Spirent \
-enable_init_lsp true \
-enable_segment_routing true \
-session_out_standing 500 \
-session_retry_count 50 \
-session_retry_interval 50 \
-lsp_per_message 500 \
-tcp_interval 600 \
-packet_align_to_mtu true \
]
Sample Output:
# This will return a PCE handle.
{pcep_handle pcepprotocolconfig1} {status 1}
keylget device_ret_pcep1 pcep_handle pcep_hnd1
To modify the PCE configurations:
set device_ret_pcep1 [::sth::emulation_pcep_config \
-mode modify \
-handle $pcep_hnd1 \
-pcep_session_ip_address ROUTER_ID \
-keep_alive_timer 40 \
-dead_timer 150 \
-enable_pc_results false \
-authentication NONE \
-enable_init_lsp false \
-enable_segment_routing false\
-session_out_standing 500 \
-session_retry_count 50 \
-session_retry_interval 50 \
-lsp_per_message 500 \
-tcp_interval 600 \
-packet_align_to_mtu false \
]
To enable the PCC device:
set device_ret_pcep2 [::sth::emulation_pcep_config \
-mode create \
-handle $dev_handle2 \
-pcep_device_role PCC \
-state NONE \
-pcep_mode ACTIVE \
-ip_version IPV4 \
-peer_ipv4_addr null \
-peer_ipv4_addr_step 0.0.0.1 \
-peer_ipv6_addr null \
-peer_ipv6_addr_step 0000::1 \
-pcep_session_ip_address INTERFACE_IP \
-is_session_initiator true \
-is_fixed_src_port false \
-keep_alive_timer 30 \
-dead_timer 130 \
-enable_pc_results false \
-authentication MD5 \
-password Spirent \
-sync_timer 60 \
-enable_init_lsp true \
-enable_segment_routing true \
-max_sid_depth 1 \
-session_out_standing 400 \
-session_retry_count 20 \
-session_retry_interval 20 \
-lsp_per_message 200 \
-tcp_interval 300 \
-packet_align_to_mtu true \
]
Sample Output:
# This will return a PCC handle (pcep_handle).
{pcep_handle pcepprotocolconfig2} {status 1}
keylget device_ret_pcep2 pcep_handle pcep_hnd2
PCC LSP Parameters (Use this group of arguments to configure PCC Label Switched Paths (LSPs). Multiple blocks of LSPs can be configured in the PCC LSP configuration.)
-
-delegate_with_sync
¶
When enabled, Spirent HLTAPI will automatically delegate and synchronize control of the LSP to the PCE when the related session is up. Possible values are true (enable) and false (disable). The default value is false. This argument is valid when -enable_delegate is true and -pcc_characteristic is ENABLE_SYNCHRONIZATION.
-
-path_setup_type
¶
Specifies the path setup type. Possible values are:
rsvp RSVP sr Segment Routing
The default value is rsvp.
-
-pcc_lspcount
¶
Number of PCC LSPs to create. Possible values range from 1 to 65535. The default value is 1.
-
-pcc_symbolic_name
¶
Specifies a symbolic name or a wildcard pattern for creating a list of symbolic names. The value must be a string of 1 to 32 characters. The default value is PLSP_@b.
-
-pcc_characteristic
¶
Specifies the method to initiate a PCC LSP. Possible values are described below:
Report The LSPs are reserved at startup but are not involved in synchronization ALLOW_PCE_INIT The LSPs are not reserved, but will wait for the PCE to initiate them at startup ENABLE_SYNCHRONIZATION The LSPs are reserved at startup and participate in synchronization after the session is established ENABLE_REQUEST The LSPs are not reserved at startup, but the PCE participates in synchronization after the session is established and can delegate LSPs via the report message
The default value is Report.
-
-enable_delegate
¶
Determines whether to automatically delegate control of the LSP to the PCE when the related session is up. This argument is available when -pcc_characteristic is set to Report, ENABLE_SYNCHRONIZATION, or ENABLE_REQUEST. Possible values are true and false. The default is true.
-
-pcc_src_ipv4_addr
¶
Specifies the starting IPv4 source address for the PCC. The default value is 192.85.1.1.
-
-pcc_src_ipv4_addr_step
¶
Specifies the step value to create additional IPv4 source addresses for PCCs. The value must be in IPv4 format. The default is 0.0.0.1.
-
-pcc_dst_ipv4_addr
¶
Specifies the starting IPv4 destination address for the PCC. The default value is 193.85.1.1.
-
-pcc_dst_ipv4_addr_step
¶
Specifies the step value to create additional IPv4 destination addresses for PCCs. The value must be in IPv4 format. The default is 0.0.0.1.
-
-pcc_src_ipv6_addr
¶
Specifies the starting IPv6 source address for the PCC. The default value is 2000::1.
-
-pcc_src_ipv6_addr_step
¶
Specifies the step value to create additional IPv6 source addresses for PCCs. The value must be in IPv6 format. The default is ::1.
-
-pcc_dst_ipv6_addr
¶
Specifies the starting IPv6 destination address for the PCC. The default value is 2000::1.
-
-pcc_dst_ipv6_addr_step
¶
Specifies the step value to create additional IPv6 destination addresses for PCCs. The value must be in IPv6 format. The default is ::1.
PCE LSP Parameters (Use this group of arguments to configure PCE LSPs. Multiple blocks of LSPs can be configured in the PCE LSP configuration.)
-
-path_setup_type
¶
Specifies the path setup type. Possible values are:
rsvp RSVP sr Segment Routing
The default value is rsvp.
-
-pce_lspcount
¶
Number of PCE LSPs to create. Possible values range from 1 to 65535. The default value is 1.
-
-pce_symbolic_name
¶
Specifies a symbolic name or a wildcard pattern to create a list of symbolic names for PCEs. The value must be a string of 1 to 32 characters. The default value is PLSP_@s.
-
-pce_characteristic
¶
Specifies the method to initiate a PCC LSP. Possible values are described below:
ENABLE_UPDATE LSPs are not reserved at startup, but wait for the PCC to delegate them ENABLE_INIT LSPs are not reserved. After a session is established and the synchronization completes, the PCE can initiate LSPs by issuing a PCInitiate message. ENABLE_REPL LSPs are not reserved. After a session is established and the synchronization completes, the PCC can request LSPs.
The default value is ENABLE_UPDATE.
-
-enable_update
¶
Determines whether to automatically update control of the LSP to the PCE when the related session is up. Possible values are true and false. The default is true.
-
-pce_src_ipv4_addr
¶
Specifies the starting IPv4 source address for the PCE. The default value is 192.85.1.1.
-
-pce_src_ipv4_addr_step
¶
Specifies the step value to create additional IPv4 source addresses for PCEs. The value must be in IPv4 format. The default is 0.0.0.1.
-
-pce_dst_ipv4_addr
¶
Specifies the starting IPv4 destination address for the PCE. The default value is 193.85.1.1.
-
-pce_dst_ipv4_addr_step
¶
Specifies the step value to create additional IPv4 destination addresses for PCEs. The value must be in IPv4 format. The default is 0.0.0.1.
-
-pce_src_ipv6_addr
¶
Specifies the starting IPv6 source address for the PCE. The default value is 2000::1.
-
-pce_src_ipv6_addr_step
¶
Specifies the step value to create additional IPv6 source addresses for PCEs. The value must be in IPv6 format. The default is ::1.
-
-pce_dst_ipv6_addr
¶
Specifies the starting IPv6 destination address for the PCE. The default value is 2001::1.
-
-pce_dst_ipv6_addr_step
¶
Specifies the step value to create additional IPv6 destination addresses for PCEs. The value must be in IPv6 format. The default is ::1.
-
-enable_no_path
¶
Determines whether to specify possible reasons for why no path could be found. This argument is available when -pce_characteristic is set to ENABLE_REPLY. Possible values are true and false. The default is false.
The following example adds an LSP on the PCE device specified by the PCE handle:
set pce_lsp [::sth::emulation_pcep_config \
-mode create \
-handle $pcep_hnd1 \ # PCE handle
-pce_lspcount 1 \
-pce_symbolic_name PLSP_@b \
-pce_characteristic ENABLE_REPLY \
-enable_update true \
-pce_src_ipv4_addr 1.1.1.1 \
-pce_src_ipv4_addr_step 0.0.0.1 \
-pce_dst_ipv4_addr 2.2.2.2 \
-pce_dst_ipv4_addr_step 0.0.0.1 \
-enable_no_path false \
]
Sample Output:
# This will return the PCE LSP handle, Stateful PCE Request Parameters
(SRP) handle, and Command Edit handles.
{srp_hnd pcepsrpobject1} {pce_lsp_hnd pcelspconfig1} {startcommand_hnd
{startdeviceupdatecommandconfig1 startdevicereplycommandconfig1}} {status 1}
keylget pce_lsp pce_lsp_hnd lsp_handle_pce
The following example modifies the LSP configuration specified by lsp_handle_pce:
set pce_lsp [::sth::emulation_pcep_config \
-mode modify \
-handle $lsp_handle_pce \
-pce_lspcount 1 \
-pce_symbolic_name PLSP_@b22 \
-enable_update false \
-pce_src_ipv4_addr 4.4.4.4 \
-pce_src_ipv4_addr_step 0.0.0.1 \
-pce_dst_ipv4_addr 3.3.3.3 \
-pce_dst_ipv4_addr_step 0.0.0.1 \
-pce_dst_ipv6_addr_step ::1 \
-enable_no_path true \
]
The following example adds an LSP on the PCC device specified by pcep_hnd1:
set pcc_lsp [::sth::emulation_pcep_config \
-mode create \
-handle $pcep_hnd1 \ #PCC handle
-pcep_device_role PCC \
-pcc_lspcount 1 \
-pcc_symbolic_name PLSP_@b \
-pcc_characteristic ENABLE_REQUEST \
-enable_delegate true \
-pcc_src_ipv4_addr 1.1.1.1 \
-pcc_src_ipv4_addr_step 0.0.0.1 \
-pcc_dst_ipv4_addr 2.2.2.2 \
-pcc_dst_ipv4_addr_step 0.0.0.1 \
-pcc_src_ipv6_addr 2000::1 \
-pcc_src_ipv6_addr_step ::1 \
-pcc_dst_ipv6_addr 2001::1 \
-pcc_dst_ipv6_addr_step ::1 \
]
Sample Output:
# This will return PCC related object handles and startcommand_hnd handles.
{startcommand_hnd {startdevicerequestcommandconfig1
startdevicedelegatecommandconfig1}} {rp_hnd pceprpobject1} {lsp_hnd
pceplspobject1} {pcc_lsp_hnd pcclspconfig1} {status 1}
PCE SRP Info (Use this group of arguments to configure SRP)
-
-srp_auto_gen_id
¶
Determines whether to configure SRP IDs automatically. Possible values are true and false. If it is set to false, you must configure SRP IDs manually. The default is true.
-
-srp_id
¶
Specifies the starting SRP ID. This argument is available when -srp_auto_gen_id is set to false. The default value is 1.
-
-srp_id_step
¶
Specifies the step value to generate subsequent SRP IDs. This argument is available when -srp_auto_gen_id is false. The default value is 1.
The following example configures PCE SRP:
set pce_srp_info [::sth::emulation_pcep_config \
-mode create \
-handle $lsp_handle_pce \
-srp_auto_gen_id false \
-srp_id 10 \
-srp_id_step 2 \
]
Sample Output:
{srp_hnd pcepsrpobject1} {status 1}
PCC LSP Info (Use this group of arguments to configure the LSP object and the LSP Identifiers TLV.)
-
-lsp_auto_gen_id
¶
Determines whether to configure PCEP-specific identifiers for the LSP (PLSP-IDs) automatically. Possible values are true and false. If it is set to false, you must configure PLSP-IDs manually. The default is true.
-
-plsp_id
¶
Specifies the starting PLSP-ID. This argument is available when -srp_auto_gen_id is set to false. Possible values range from 0 to 1048575. The default value is 1.
-
-plsp_id_step
¶
The step value to generate subsequent PLSP-IDs. This argument is available when -lsp_auto_gen_id is false. Possible values range from 0 to 4294967295. The default value is 1.
-
-aflag
¶
Determines whether to mark the LSP as an administrative LSP. Possible values are true and false. If it is set to true, the LSP will be marked as administrative.
-
-init_lsp_state
¶
Initial state of the LSP. Possible values are described below:
DOWN LSP is down UP LSP is up ACTIVE LSP is active GOINGDOWN LSP is in the process of going down GOINGUP LSP is in the process of going up RESERVED1 Reserved state value RESERVED2 Reserved state value RESERVED3 Reserved state value
The default value is GOINGUP.
-
-ipv4_tunnel_addr
¶
IPv4 source address for the tunnel. The default value is 192.85.1.1.
-
-ipv4_tunnel_addr_step
¶
IPv4 step value to create the next IP tunnel sender address. The default value is 0.0.0.1.
-
-ipv6_tunnel_addr
¶
IPv6 source address for the tunnel. The default value is 2000::1.
-
-ipv6_tunnel_addr_step
¶
Step value to create the next IPv6 tunnel sender address. The value must be in IPv6 format. The default value is ::1.
-
-lsp_id
¶
ID of the first LSP. Possible values range from 0 to 65535. The default value is 1.
-
-lsp_id_step
¶
Step value to create the next LSP ID. Possible values range from 0 to 65535. The default value is 1.
-
-tunnel_id
¶
ID of the first tunnel. Possible values range from 0 to 65535. The default value is 1.
-
-tunnel_id_step
¶
Step value to create the next tunnel ID. Possible values range from 0 to 65535. The default value is 1.
-
-ipv4_ex_tunnel_id
¶
IPv4 extended tunnel ID. The value must be in IPv4 format. The default value is 10.0.0.1.
-
-ipv4_ex_tunnel_id_step
¶
Step value to create the next extended tunnel ID. The value must be in IPv4 format. The default value is 0.0.0.1.
-
-ipv6_ex_tunnel_id
¶
Ipv6 extended tunnel ID. The value must be in IPv6 format. The default value is 2000:1::1.
-
-ipv6_ex_tunnel_id_step
¶
Step value to create the next extended tunnel ID. The value must be in IPv6 format. The default value is ::1.
-
-ipv4_tunnel_end_addr
¶
IPv4 destination address for the tunnel endpoint. The default value is 193.85.1.1.
-
-ipv4_tunnel_end_addr_step
¶
Step value to create the next IP tunnel endpoint address. The value must be in IPv4 format. The default value is 0.0.0.1.
-
-ipv6_tunnel_end_addr
¶
Ipv6 destination address for the tunnel endpoint. The value must be in IPv6 format. The default value is 2001::1.
-
-ipv6_tunnel_end_addr_step
¶
Step value to create the next IPv6 tunnel endpoint address. The value must be in IPv6 format. The default value is ::1.
The following example configures the LSP object on the specified LSP handle:
set pcc_lsp_info [::sth::emulation_pcep_config \
-mode create \
-handle $lsp_handle_pcc \
-lsp_auto_gen_id true \
-plsp_id 1 \
-plsp_id_step 1 \
-aflag true \
-init_lsp_state UP \
-ipv4_tunnel_addr 1.1.1.1 \
-ipv4_tunnel_addr_step 0.0.0.1 \
-ipv6_tunnel_addr 2000::1 \
-ipv6_tunnel_addr_step ::1 \
-lsp_id 1 \
-lsp_id_step 1 \
-tunnel_id 1 \
-tunnel_id_step 1 \
-ipv4_ex_tunnel_id 10.0.0.1 \
-ipv4_ex_tunnel_id_step 0.0.0.1 \
-ipv4_tunnel_end_addr 2.2.2.2 \
-ipv4_tunnel_end_addr_step 0.0.0.1 \
]
Sample Output:
{lsp_hnd pceplspobject1} {status 1}
PCE LSP Info
-
-aflag
¶
Determines whether to mark the LSP as an administrative LSP. Possible values are true and false. If it is set to true, the LSP will be marked as administrative.
-
-init_lsp_state
¶
Initial state of the LSP. Possible values are described below:
DOWN LSP is down UP LSP is up ACTIVE LSP is active GOINGDOWN LSP is in the process of going down GOINGUP LSP is in the process of going up RESERVED1 Reserved state value RESERVED2 Reserved state value RESERVED3 Reserved state value
The default value is GOINGUP.
PCC RP Object (Use this group of arguments to configure the Request Parameters object of PCC. You must set -pcc_characteristic to ENABLE_REQUEST.)
-
-rp_pflag
¶
Specifies the value of the Processing-Rule (P) flag for the RP object. The P flag allows a PCC to specify in a PC Request (PCReq) message sent to a PCE whether the object must be taken into account by the PCE during path computation or is just optional. Possible values are true and false. The default value is true.
-
-rp_iflag
¶
Specifies the value of the Ignore flag for the RP object. The I flag is used by a PCE in a PC Reply (PCRep) message to indicate to a PCC whether an optional object was processed. Possible values are true and false. The default value is false.
-
-rp_auto_gen_id
¶
Determines whether to automatically configure the RP ID. Possible values are true and false. If it is set to false, you must configure RP IDs manually. The default value is true.
-
-requestid
¶
Specifies the starting RP ID. This argument is available when -rp_auto_gen_id is set to false. The default value is 1.
-
-requestid_step
¶
Specifies the step value to generate subsequent request IDs. The default value is 1.
-
-priority
¶
Specifies the value of the Priority flag for the RP object. This flag is used by the requesting PCC to specify to the PCE the request’s priority. Possible values range from 0 to 7. The default value is 0.
-
-rp_flags
¶
Specifies flag options for the RP object. Use | to combine multiple values if you want to specify more than one flag. Possible values are described below:
PCEP_RP_FLAG_BIDIRECTIONAL Bi-directional (B) flag PCEP_RP_FLAG_STRICT_LOOSE Strict/Loose (O) flag 0 No flag specified
The default value is 0.
PCC End-Points Object (Use this group of arguments to configure the PCC End-Points object. You must set -pcc_characteristic to ENABLE_REQUEST).
-
-endpoint_pflag
¶
Specifies the value of the Processing-Rule flag for the End-Points object. Possible values are true and false. The default value is true.
-
-endpoint_iflag
¶
Specifies the value of the Ignore flag for the End-Points object. Possible values are true and false. The default value is false.
PCE No-Path Object (Use this group of arguments to configure the PCE No-Path object. You must set -pcc_characteristic to ENABLE_REPLY).
-
-ni_value
¶
Specifies the Nature of Issue (NI) field for the No-Path object. Possible values are:
NO_SATISFYING_PATH No path satisfying the set of constraints could be found PCE_CHAIN_BROKEN PCE chain broken
The default value is NO_SATISFYING_PATH.
-
-nopath_cflag
¶
Specifies the Constraints (C) flag of the No-Path object. Possible values are true and false. When set to true, the PCE indicates the set of unsatisfied constraints (reasons why a path could not be found) in the PCRep message by including the relevant PCEP objects. When set to false, no failing constraints are specified. The default value is false.
-
-nopath_included
¶
Specifies the method to include the unsatisfied PCEP objects. This argument is only valid when -nopath_cflag is set to true. Possible values are RECEIVED and SUGGESTED. The default value is RECEIVED.
-
-nopath_vector_tlv_flag
¶
Specifies the value of the No-Path-Vector TLV for the No-Path object. Possible values are described below:
PCE_UNAVILABLE PCE currently unavailable UNKNOWN_DESTINATION Unknown destination UNKNOWN_SOURCE Unknown source NONE None
The default value is NONE.
PCC ERO Object (Use this group of arguments to configure the Explicit Route Object.)
-
-ipv4_ero_pflag
¶
Specifies the value of the Processing-Rule flag for the IPv4 ERO object. Possible values are true and false. The default value is true.
-
-ipv4_ero_iflag
¶
Specifies the value of the Ignore flag for the IPv4 ERO object. Possible values are true and false. The default value is false.
-
-ipv6_ero_pflag
¶
Specifies the value of the Processing-Rule flag for the IPv6 ERO object. Possible values are true and false. The default value is true.
-
-ipv6_ero_iflag
¶
Specifies the value of the Ignore flag for the IPv6 ERO object. Possible values are true and false. The default value is false.
PCC/PCE ERO Update Object (Use this group of arguments to configure the ERO update object.)
-
-ipv4_update_ero_pflag
¶
Specifies the value of the Processing-Rule flag for the IPv4 ERO update object. Possible values are true and false. The default value is true.
-
-ipv4_update_ero_iflag
¶
Specifies the value of the Ignore flag for the IPv4 ERO update object. Possible values are true and false. The default value is true.
-
-ipv6_update_ero_pflag
¶
Specifies the value of the Processing-Rule flag for the IPv6 ERO update object. Possible values are true and false. The default value is true.
-
-ipv6_update_ero_iflag
¶
Specifies the value of the Ignore flag for the IPv6 ERO object. Possible values are true and false. The default value is false.
PCC/PCE ERO Explicit Parameters (Use this group of arguments to configure the explicit parameters of ERO/ERO update object.)
-
-ipv4_explicit_start_ip_list
¶
Specifies the IP address of the next hop for the IPv4 ERO/ERO update object. The value must be in IPv4 format. The default value is 192.0.1.0.
-
-ipv4_explicit_prefix_length
¶
Specifies the prefix length of the IP routes in the block of IPv4 ERO/ERO update objects. Possible values range from 0 to 255. The default value is 24.
-
-ipv4_explicit_route_type
¶
Specifies the type of explicit routes to be included in the IPv4 ERO/ERO update object. Possible values are:
- PCEP_ERO_ROUTE_TYPE_LOOSE
- Two nodes need not be adjacent. IGP can be used to determine the best path to the loose hop.
- PCEP_ERO_ROUTE_TYPE_STRICT
- Two nodes must be adjacent to one another with no intermediate hops separating them.
The default value is PCEP_ERO_ROUTE_TYPE_STRICT.
-
-ipv6_explicit_start_ip_list
¶
Specifies the IP address of the next hop for the IPv6 ERO/ERO update object. The value must be in IPv6 format. The default value is 2000::1.
-
-ipv6_explicit_prefix_length
¶
Specifies the prefix length of the IP routes in the block of IPv6 ERO/ERO update objects. The default value is 64.
-
-ipv6_explicit_route_type
¶
Specifies the type of explicit routes to be included in the IPv6 ERO/ERO update object. Possible values are:
PCEP_ERO_ROUTE_TYPE_LOOSE Two nodes need not be adjacent. IGP can be used to determine the best path to the loose hop. PCEP_ERO_ROUTE_TYPE_STRICT Two nodes must be adjacent to one another with no intermediate hops separating them.
The default value is PCEP_ERO_ROUTE_TYPE_STRICT.
SR ERO Subobject (Use this group of arguments to configure the Segment Routing ERO object, which is a subobject of ERO.)
-
-sr_ero_pflag
¶
Specifies the value of the Processing-Rule flag for the SR ERO object. Possible values are true and false. The default value is true.
-
-sr_ero_iflag
¶
Specifies the value of the Ignore flag for the SR ERO object. Possible values are true and false. The default value is false.
-
-sr_route_type
¶
Specifies the type of explicit routes to be included in the SR ERO object. Possible values are:
- PCEP_ERO_ROUTE_TYPE_LOOSE
- Two nodes need not be adjacent. IGP can be used to determine the best path to the loose hop.
- PCEP_ERO_ROUTE_TYPE_STRICT
- Two nodes must be adjacent to one another with no intermediate hops separating them.
The default value is PCEP_ERO_ROUTE_TYPE_STRICT.
-
-explicit_sid_type
¶
Specifies the type of the segment ID. Possible values are described below:
IPV4_NODE_ID IPv4 Network Access Identifier (NAI) node ID IPV6_NODE_ID IPv6 NAI node ID IPV4_ADJACENCY NAI local IPv4 address IPV6_ADJACENCY NAI local IPv6 address UNNUMBERED_ADJACENCY_IPV4_NODE_IDS NAI local node ID
The default value is IPV4_NODE_ID.
-
-explicit_mflag
¶
Specifies the M bit to indicate whether the Segment ID (SID) is an MPLS label stack entry with only the label value specified. Possible values are true and false. The default value is true.
-
-explicit_cflag
¶
Specifies the C bit in conjunction with the M flag to indicate whether the SID is an MPLS label stack entry with all the fields specified. Possible values are true and false. The default value is false.
-
-explicit_sflag
¶
Specifies the S bit to indicate whether the SID value in the subobject body is null and whether the PCC is responsible for choosing the SID value. Possible values are true and false. The default value is false.
-
-explicit_fflag
¶
Specifies the F bit for the SR ERO object. Possible values are true and false. The default value is false.
-
-explicit_sid_label
¶
Specifies the segment ID for the SR ERO object. This argument is valid when -explicit_sflag is set to false. Possible values range from 16 to 1048575. The default value is 16.
-
-explicit_sid_tc
¶
Specifies the value of the traffic class field for the SR ERO object. This argument is valid when -explicit_sflag is false. Possible values range from 0 to 7. The default value is 0.
-
-explicit_sid_sflag
¶
Specifies the value of the MPLS Bottom Of Stack (BOS) flag to indicate whether the label is the last in the stack. This argument is valid when -explicit_sflag is false. Possible values are true and false. The default value is false.
-
-explicit_sid_ttl
¶
Specifies the value of the TTL field for the SR ERO object. Possible values range from 0 to 255. The default value is 255.
-
-explicit_ipv4_address
¶
Specifies the value of the IPv4 NAI node ID for the SR ERO object. This argument is valid when -explicit_sid_type is set to IPV4_NODE_ID. The value must be in IPv4 format. The default value is 192.85.1.1.
-
-explicit_ipv6_address
¶
Specifies the value of the IPv6 NAI node ID for the SR ERO object. This argument is valid when -explicit_sid_type is set to IPV6_NODE_ID. The value must be in IPv6 format. The default value is 2000::1.
-
-explicit_local_ipv4_address
¶
Specifies the value of the NAI local IPv4 address for the SR ERO object. This argument is valid when -explicit_sid_type is set to IPV4_ADJACENCY. The default value is 192.85.1.1.
-
-explicit_remote_ipv4_address
¶
Specifies the value of the NAI remote IPv4 address for the SR ERO object. The default value is 192.85.1.1.
-
-explicit_local_ipv6_address
¶
Specifies the value of the NAI local IPv6 address for the SR ERO object. This argument is valid when -explicit_sid_type is set to IPV6_ADJACENCY. The default value is 2000::1.
-
-explicit_remote_ipv6_address
¶
Specifies the value of the NAI remote IPv6 address for the SR ERO object. The default value is 2001::1.
-
-explicit_local_node_id
¶
Specifies the value of the NAI local node ID. This argument is valid when -explicit_sid_type is set to UNNUMBERED_ADJACENCY_IPV4_NODE_IDS. Possible values range from 0 to 4294967295. The default value is 0.
-
-explicit_local_interface_id
¶
Specifies the value of the NAI local interface node ID for the SR ERO object. This argument is valid when -explicit_sid_type is set to UNNUMBERED_ADJACENCY_IPV4_NODE_IDS. Possible values range from 0 to 4294967295. The default value is 0.
-
-explicit_remote_node_id
¶
Specifies the value of the NAI remote node ID for the SR ERO object. This argument is valid when -explicit_sid_type is set to UNNUMBERED_ADJACENCY_IPV4_NODE_IDS. Possible values range from 0 to 4294967295. The default value is 0.
-
-explicit_remote_interface_id
¶
Specifies the value of the NAI remote interface node ID for the SR ERO object. This argument is valid when -explicit_sid_type is set to UNNUMBERED_ADJACENCY_IPV4_NODE_IDS. Possible values range from 0 to 4294967295. The default value is 0.
The following example adds a PCC ERO and its subobjects to the specified LSP:
set pcc_ero_obj [::sth::emulation_pcep_config \
-mode create \
-handle $lsp_handle_pcc \
-ipv4_ero_pflag true \
-ipv4_ero_iflag true \
-ipv4_explicit_start_ip_list 192.0.1.0 \
-ipv4_explicit_prefix_length 24 \
-ipv4_explicit_route_type PCEP_ERO_ROUTE_TYPE_LOOSE \
-sr_ero_pflag true \
-sr_ero_iflag true \
-sr_route_type PCEP_ERO_ROUTE_TYPE_LOOSE \
-explicit_sid_type IPV4_ADJACENCY \
-explicit_mflag true \
-explicit_cflag true \
-explicit_sflag true \
-explicit_fflag true \
-explicit_sid_label 16 \
-explicit_sid_tc 0 \
-explicit_sid_sflag true \
-explicit_sid_ttl 255 \
-explicit_ipv4_address 192.85.1.1 \
-explicit_local_ipv4_address 192.85.1.1 \
-explicit_remote_ipv4_address 193.85.1.1 \
-explicit_local_node_id 0 \
-explicit_local_interface_id 0 \
-explicit_remote_node_id 0 \
-explicit_remote_interface_id 0 \
]
Sample Output:
#This will return the PCC ERO and its subobjects handles.
{ero_hnd {pcepipv4eroobject1 pcepsreroobject1}} {status 1}
The following example adds a PCE ERO and its subobjects to the specified LSP:
set pce_ero_update [::sth::emulation_pcep_config \
-mode create \
-handle $lsp_handle_pce \
-ipv4_update_ero_pflag "false false"\
-ipv4_update_ero_iflag "false true"\
-ipv4_explicit_start_ip_list "{192.85.0.1 192.85.1.1} 192.85.2.1"\
-ipv4_explicit_prefix_length "{16 24} 32" \
-sr_ero_pflag true \
-sr_ero_iflag true \
-sr_route_type PCEP_ERO_ROUTE_TYPE_STRICT \
-explicit_sid_type IPV4_ADJACENCY \
-explicit_mflag true \
-explicit_cflag true \
-explicit_sflag true \
-explicit_fflag true \
-explicit_sid_label 16 \
-explicit_sid_tc 0 \
-explicit_sid_sflag true \
-explicit_sid_ttl 255 \
-explicit_ipv4_address 1.1.1.1 \
-explicit_local_ipv4_address 1.1.1.1 \
-explicit_remote_ipv4_address 2.2.2.2 \
-explicit_local_node_id 0 \
-explicit_local_interface_id 0 \
-explicit_remote_node_id 0 \
-explicit_remote_interface_id 0 \
]
Sample Output:
#This will return PCE ERO and its sub objects handles.
{ero_hnd pcepsreroobject1} {status 1}
PCC RRO object (Use this group of arguments to configure the Reported Route Object).
-
-rro_flags
¶
Specifies RRO flags. Use | to combine multiple values if you want to specify more than one flag. Possible values are listed below:
0 No flag specified pcep_rro_flag_local_protection_available Local Protection Available pcep_rro_flag_local_protection_in_use Local Protection in Use pcep_rro_flag_bandwidth_protection Bandwidth Protection pcep_rro_flag_node_protection Node Protection pcep_rro_flag_node_id Node ID
The default value is 0.
-
-ipv4_rro_pflag
¶
Specifies the value of the Processing-Rule flag for the IPv4 RRO object. Possible values are true and false. The default value is true.
-
-ipv6_rro_pflag
¶
Specifies the value of the Processing-Rule flag for the IPv6 RRO object. Possible values are true and false. The default value is true.
-
-ipv4_rro_iflag
¶
Specifies the value of the Ignore flag for the IPv4 RRO object. Possible values are true and false. The default value is false.
-
-ipv6_rro_iflag
¶
- Specifies the value of the Ignore flag for the IPv6 RRO object. Possible values are true and false. The default value is false.
PCC Reported Parameters for RRO Object (Use this group of arguments to configure reported parameters of the RRO.)
-
-ipv4_reported_start_ip_list
¶
Specifies the IP address for the next hop of the IPv4 RRO object. The default value is 192.0.1.0.
-
-ipv4_reported_prefix_length
¶
Specifies the prefix length of the IP routes in the block of IPv4 RRO objects. Possible values range from 0 to 255. The default value is 24.
-
-ipv6_reported_start_ip_list
¶
Specifies the IPv6 address for the next hop of the IPv6 RRO object. The default value is 2000::1.
-
-ipv6_reported_prefix_length
¶
Specifies the prefix length of the IP routes in the block of IPv6 RRO objects. Possible values range from 0 to 255. The default value is 64.
PCC SR RRO Subobject (Use this group of arguments to configure the SR RRO object, which is a subobject of ERO.)
-
-sr_rro_pflag
¶
Specifies the value of the Processing-Rule flag for the SR RRO object. Possible values are true and false. The default value is true.
-
-sr_rro_iflag
¶
Specifies the value of the Ignore flag for the SR RRO object. Possible values are true and false. The default value is false.
-
-reported_mflag
¶
Specifies the M bit to indicate that the SID value represents an MPLS label stack entry with only the label value specified. Possible values are true and false. The default value is true.
-
-reported_cflag
¶
Specifies the C bit to indicate that the SID value represents an MPLS label stack entry with all fields specified. Possible values are true and false. The default value is false.
-
-reported_sid_type
¶
Specifies the type of the segment ID for the SR RRO object. Possible values are:
IPV4_NODE_ID IPv4 Network Access Identifier (NAI) node ID IPV6_NODE_ID IPv6 NAI node ID IPV4_ADJACENCY NAI local IPv4 address IPV6_ADJACENCY NAI local IPv6 address UNNUMBERED_ADJACENCY_IPV4_NODE_IDS NAI local node ID
The default value is IPV4_NODE_ID.
-
-reported_mflag
¶
Specifies the M bit to indicate that the SID value represents an MPLS label stack entry with only the label value specified. Possible values are true and false. The default value is true.
-
-reported_cflag
¶
Specifies the C bit to indicate that the SID value represents an MPLS label stack entry with all fields specified. Possible values are true and false. The default value is false.
-
-reported_sflag
¶
Specifies the value of the S flag for the SR RRO object. Possible values are true and false. The default value is false.
-
-reported_fflag
¶
Specifies the value of the F flag for the SR RRO object. Possible values are true and false. The default value is true.
-
-reported_sid_label
¶
Specifies the segment ID. This argument is valid when -explicit_sflag is set to false. Possible values range from 16 to 1048575. The default value is 16.
-
-reported_sid_tc
¶
Specifies the value of the traffic class field for the SR RRO object. This argument is valid when -reported_sflag is false. Possible values range from 0 to 7. The default value is 0.
-
-reported_sid_s_flag
¶
Specifies the value of the MPLS Bottom Of Stack (BOS) flag to indicate whether the label is the last in the stack. This argument is valid when -reported_sflag is false. Possible values are true and false. The default value is false.
-
-reported_sid_ttl
¶
Specifies the value of the TTL field for the SR RRO object. Possible values range from 0 to 255. The default value is 255.
-
-reported_ipv4_address
¶
Specifies the value of the IPv4 NAI node ID for the SR RRO subobject. This argument is valid when -reported_sid_type is set to IPV4_NODE_ID. The value must be in IPv4 format. The default value is 192.85.1.1.
-
-reported_ipv6_address
¶
Specifies the value of the IPv6 NAI node ID for the SR RRO object. This argument is valid when -reported_sid_type is set to IPV6_NODE_ID. The value must be in IPv6 format. The default value is 2000::1.
-
-reported_local_ipv4_address
¶
Specifies the value of the NAI local IPv4 address for the SR RRO object. This argument is valid when -reported_sid_type is set to IPV4_ADJACENCY. The default value is 192.85.1.1.
-
-reported_remote_ipv4_address
¶
Specifies the value of the NAI remote IPv4 address for the SR RRO object. The default value is 192.85.1.1.
-
-reported_local_ipv6_address
¶
Specifies the value of the NAI local IPv6 address for the SR RRO object. This argument is valid when -reported_sid_type is set to IPV6_ADJACENCY. The default value is 2000::1.
-
-reported_remote_ipv6_address
¶
Specifies the value of the NAI remote IPv6 address for the SR RRO object. The default value is 2001::1.
-
-reported_local_node_id
¶
Specifies the value of the NAI local node ID for the SR RRO object. This argument is valid when -reported_sid_type is set to UNNUMBERED_ADJACENCY_IPV4_NODE_IDS. Possible values range from 0 to 4294967295. The default value is 0.
-
-reported_local_interface_id
¶
Specifies the value of the NAI local interface node ID for the SR RRO object. This argument is valid when -reported_sid_type is set to UNNUMBERED_ADJACENCY_IPV4_NODE_IDS. Possible values range from 0 to 4294967295. The default value is 0.
-
-reported_remote_node_id
¶
Specifies the value of the NAI remote node ID for the SR RRO object. This argument is valid when -reported_sid_type is set to UNNUMBERED_ADJACENCY_IPV4_NODE_IDS. Possible values range from 0 to 4294967295. The default value is 0.
-
-reported_remote_interface_id
¶
Specifies the value of the NAI remote interface node ID for the SR RRO object. This argument is valid when -reported_sid_type is set to UNNUMBERED_ADJACENCY_IPV4_NODE_IDS. Possible values range from 0 to 4294967295. The default value is 0.
The following example adds a PCC RRO object and its subobjects to the specified LSP:
set pcc_rro_obj [::sth::emulation_pcep_config \
-mode create \
-handle $lsp_handle_pcc \
-rro_flags PCEP_RRO_FLAG_LOCAL_PROTECTION_IN_USE \
-ipv4_rro_pflag true \
-ipv4_rro_iflag true \
-ipv4_reported_start_ip_list 192.0.1.0 \
-ipv4_reported_prefix_length 24 \
-sr_rro_pflag true \
-sr_rro_iflag true \
-reported_sid_type IPV4_ADJACENCY \
-reported_sflag true \
-reported_fflag true \
-reported_sid_label 16 \
-reported_sid_tc 0 \
-reported_sid_s_flag true \
-reported_sid_ttl 255 \
-reported_ipv4_address 1.1.1.1 \
-reported_local_ipv4_address 1.1.1.1 \
-reported_remote_ipv4_address 2.2.2.2 \
-reported_local_node_id 0 \
-reported_local_interface_id 0 \
-reported_remote_node_id 0 \
-reported_remote_interface_id 0 \
]
Sample Output::
#This will return handles for the PCC RRO and its subobjects.
{rro_hnd {pcepipv4rroobject1 pcepsrrroobject1 pcepipv6rroobject1}} {status 1}
PCC BW Object (Use this group of arguments to configure the PCC Bandwidth object.)
-
-bw_pflag
¶
Specifies the value of the Processing-Rule flag for the BW object. Possible values are true and false. The default value is true.
-
-bw_iflag
¶
Specifies the value of the Ignore flag for the BW object. Possible values are true and false. The default value is true.
-
-bw_bandwidth
¶
Requested bandwidth in bytes per second. Possible values range from 0 to 4294967295. A value of zero indicates the object is optional. The default value is 0.
PCE BW Update Object (Use this group of arguments to configure the BW update object.)
-
-bw_update_pflag
¶
Specifies the value of the Processing-Rule flag for the BW update object. Possible values are true and false. The default value is true.
-
-bw_update_iflag
¶
Specifies the value of the Ignore flag for the BW update object. Possible values are true and false. The default value is true.
-
-bw_update_bandwidth
¶
- Requested bandwidth in bytes per second. Possible values range from 0 to 4294967295. Value 0 indicates that the object is optional. The default value is 0.
The following example adds a PCC BW object to the LSP:
set pcc_bw_obj [::sth::emulation_pcep_config \ -mode create \ -handle $lsp_handle_pcc \ -bw_pflag true \ -bw_iflag true \ -bw_bandwidth 0 \ ]
Sample Output:
# This will return a PCC BW object handle.
{bw_hnd pcepbwobject1} {status 1}
The following example adds a PCE BW update object:
set pce_bw_obj [::sth::emulation_pcep_config \
-mode create \
-handle $lsp_handle_pce \
-bw_update_pflag true \
-bw_update_iflag false \
-bw_update_bandwidth 0 \
]
Sample Output:
# This will return a PCE BW update object handle.
{bw_hnd pcepbwtoupdateobject1} {status 1}
PCC/PCE Metric Object (Use this group of arguments to configure the PCC/PCE Metric object.)
-
-metric_cflag
¶
Value of the Computed Metric (C) Flag. Possible values are true and false. When set to true, it indicates that the PCE must provide the computed path metric value for a valid path in the PCRep message for the corresponding metric. The default value is true.
-
-metric_bflag
¶
Value of the Bound (B) flag. Possible values are true and false. When set to true, it indicates a bound (a maximum) for the path metric that must not be exceeded for the PCC to consider the computed path as acceptable. The default value is false.
-
-metric_type
¶
Specifies the type of metric corresponding to the flags. Possible values are described below:
IGP_METRIC IGP metric TE_METRIC TE metric HOP_COUNTS Hop counts
The default value is IGP_METRIC.
-
-metric_value
¶
- Maximum value of the metric. Possible values range from 0 to 4294967295. The default value is 10.
PCC Metric List Object (Use this group of arguments to configure the PCC Metric List object, under which METRIC objects are configured.)
-
-metriclist_pflag
¶
Specifies the value of the Processing-Rule flag for the METRIC List object. Possible values are true and false. The default value is true.
-
-metriclist_iflag
¶
Specifies the value of the Ignore flag for the METRIC List object. Possible values are true and false. The default value is false.
PCE Metric List Update Object (Use this group of arguments to configure the PCE Metric List update object.)
-
-metriclist_update_pflag
¶
Specifies the value of the Processing-Rule flag for the Metric List update object. Possible values are true and false. The default value is true.
-
-metriclist_update_iflag
¶
Specifies the value of the Ignore flag for the Metric List update object. Possible values are true and false. The default value is false.
The following example adds PCC Metric object configurations to the specified LSP handle:
set pcc_metric_obj [::sth::emulation_pcep_config \
-mode create \
-handle $lsp_handle_pcc \
-metric_cflag true \
-metric_bflag true \
-metric_type HOP_COUNTS \
-metric_value 10 \
-metriclist_pflag true \
-metriclist_iflag true \
]
Sample Output:
{metric_hnd pcepmetriclistobject1} {status 1}
The following example adds PCE Metric object configurations to the specified LSP handle:
set pce_metric_object [::sth::emulation_pcep_config \
-mode create \
-handle $lsp_handle_pce \
-metric_cflag true \
-metric_bflag true \
-metric_type HOP_COUNTS \
-metric_value 10 \
-metriclist_update_pflag true \
-metriclist_update_iflag true \
]
Sample Output:
# This will return a PCE Metric object handle.
{metric_hnd pcepmetriclisttoupdateobject1} {status 1}
PCC LSPA Object (Use this group of arguments to configure the LSP Attributes object.)
-
-lspa_pflag
¶
Specifies the value of the Processing-Rule flag for the LSPA object. Possible values are true and false. The default value is true.
-
-lspa_iflag
¶
Specifies the value of the Ignore flag for the LSPA object. Possible values are true and false. The default value is false.
-
-lspa_exclude_any
¶
Specifies a value to exclude a link that matches any attributes in the 32-bit mask, based on the following equation:
(link-attr & exclude-any) == 0
Possible values range from 0 to 4294967295. The default value is 0.
-
-lspa_include_any
¶
Specifies a value to include a link that matches any attributes in the 32-bit mask, based on the following equation:
(include-any == 0) | ((link-attr & include-any) != 0)
A null mask (all bits set to zero) automatically passes. Possible values range from 0 to 4294967295. The default value is 0.
-
-lspa_include_all
¶
Specifies a value to include a link that matches all attributes in the 32-bit mask, based on the following equation:
(include-all == 0) | (((link-attr & include-all) ^ include-all) == 0)
A null mask (all bits set to zero) automatically passes. Possible values range from 0 to 4294967295. The default value is 0.
-
-lspa_setup_prio
¶
Priority of the TE LSP with respect to taking resources. Possible values range from 0 to 7. Value 0 indicates the highest priority. The default value is 0.
-
-lspa_holding_prio
¶
Priority of the TE LSP with respect to holding resources. Possible values range from 0 to 7. Value 0 indicates the highest priority. The default value is 0.
-
-lspa_lflag
¶
Specifies the value of the Local Protection Desired (L) flag for the LSPA object. Possible values are true and false. When set to true, it indicates that the computed path must include links protected with Fast Reroute as defined in RFC4090. The default value is false.
-
-lspa_affinities_flag
¶
Determines whether to set values for including or excluding links based on comparing a 32-bit mask to the session attribute of a link. Possible values are true and false. Set it to true if you want to use -lspa_exclude_any, -lspa_include_any, or -lspa_include_all to exlude or include specified links. The default is false.
PCE LSPA Update Object (Use this group of arguments to configure the LSPA update object.)
-
-lspa_update_pflag
¶
Specifies the value of the Processing-Rule flag for the LSPA update object. Possible values are true and false. The default value is true.
-
-lspa_update_iflag
¶
Specifies the value of the Ignore flag for the LSPA update object. Possible values are true and false. The default value is false.
-
-lspa_update_exclude_any
¶
Specifies a value to exclude a link that matches any attributes in the 32-bit mask, based on the following equation:
(link-attr & exclude-any) == 0
Possible values range from 0 to 4294967295. The default value is 0.
-
-lspa_update_include_any
¶
Specifies a value to include a link that matches any attributes in the 32-bit mask, based on the following equation:
(include-any == 0) | ((link-attr & include-any) != 0)
A null mask (all bits set to zero) automatically passes. Possible values range from 0 to 4294967295. The default value is 0.
-
-lspa_update_include_all
¶
Specifies a value to include a link that matches all attributes in the 32-bit mask, based on the following equation:
(include-all == 0) | (((link-attr & include-all) ^ include-all) == 0)
A null mask (all bits set to zero) automatically passes. Possible values range from 0 to 4294967295. The default value is 0.
-
-lspa_update_setup_prio
¶
Priority of the TE LSP with respect to taking resources. Possible values range from 0 to 7. Value 0 indicates the highest priority. The default value is 0.
-
-lspa_update_holding_prio
¶
Priority of the TE LSP with respect to holding resources. Possible values range from 0 to 7. Value 0 indicates the highest priority. The default value is 0.
-
-lspa_update_lflag
¶
Specifies the value of the Local Protection Desired (L) flag for the LSPA update object. Possible values are true and false. The default value is false.
-
-lspa_update_affinities_flag
¶
Determines whether to set values for including or excluding links based on comparing a 32-bit mask to the session attribute of a link. Possible values are true and false. Set it to true if you want to use -lspa_update_exclude_any, -lspa_update_include_any, or -lspa_update_include_all to exlude or include specified links. The default value is false.
The following example adds PCC LSPA object configurations:
set pcc_lspa_obj [::sth::emulation_pcep_config \
-mode create \
-handle $lsp_handle_pcc \
-lspa_pflag true \
-lspa_iflag true \
-lspa_exclude_any 1 \
-lspa_include_any 1 \
-lspa_include_all 1 \
-lspa_setup_prio 1 \
-lspa_holding_prio 1 \
-lspa_lflag true \
-lspa_affinities_flag true \
]
Sample Output:
# This will return a PCC LSPA object handle.
{lspa_hnd pceplspaobject1} {status 1}
The following example configures a PCE LSPA update object::
set pce_lspa_object [::sth::emulation_pcep_config \
-mode create \
-handle $lsp_handle_pce \
-lspa_update_pflag true \
-lspa_update_iflag true \
-lspa_update_exclude_any 1 \
-lspa_update_include_any 1 \
-lspa_update_include_all 1 \
-lspa_update_setup_prio 1 \
-lspa_update_holding_prio 1 \
-lspa_update_lflag true \
-lspa_update_affinities_flag true \
]
Sample Output:
# This will return a PCE LSPA update object handle.
{lspa_hnd pceplspatoupdateobject1} {status 1}
PCEP Custom TLV (Use this group of arguments to configure custom TLVs for PCEP.)
-
-tlv_type
¶
Type of the TLV in hex. Possible values range from 0 to 0x3FFF. The default value is 0.
-
-tlv_value
¶
Value of the TLV in hex. Possible values range from 0 0x0 to 0xff. The default value is 0.
-
-customtlv_handle
¶
A list of custom TLV handles
PCC/PCE Command Edit Parameters (Use this group of arguments to modify the created PCC/PCE objects before auto delegation, synchronization (for PCC) or update (for PCE) operations.)
-
-included_ero_handle
¶
The ERO object handle to be included
-
-included_rro_handle
¶
The RRO object handle to be included
-
-included_bw_handle
¶
The BW object handle to be included
-
-included_metric_handle
¶
The metric object handle to be included
-
-included_lspa_handle
¶
The LSPA object handle to be included
-
-include_ero
¶
Determines whether to include the ERO object handle. Possible values are true and false. The default value is true.
-
-include_rro
¶
Determines whether to include the RRO object handle. Possible values are true and false. The default value is true.
-
-include_bw
¶
Determines whether to include the BW object handle. Possible values are true and false. The default value is true.
-
-include_metric
¶
Determines whether to include the metric object handle. Possible values are true and false. The default value is true.
-
-include_lspa
¶
Determines whether to include the LSPA object. Possible values are true and false. The default value is true.
-
-include_lsp
¶
Determines whether to include the LSP object. Possible values are true and false. The default value is true.
-
-include_srp
¶
Determines whether to include the SRP object. Possible values are true and false. The default value is true.
-
-include_rp
¶
Determines whether to include the RP object. Possible values are true and false. The default value is true.
-
-include_endpoints
¶
Determines whether to include the End-Points object. Possible values are true and false. The default value is true.
-
-cmd_use_custom_message
¶
Enables/disables PCEP custom message for PCEP commands. Possible values are true (enable) and false (disable). The default value is false. When set to true, -lsp_msg_obj_type and -lsp_msg_obj_handle are available to add LSP messages (a type of custom message). When set to false, other Command Edit options are valid. The default value is false.
-
-lsp_msg_obj_type
¶
Specifies the type of custom LSP message object. You must set -cmd_use_custom_message to true. Possible values are described below:
CUSTOM Custom object END-POINTS End-Points object ERO ERO object RRO RRO object LSP LSP object LSPA LSPA object METRIC METRIC object NO-PATH No-Path object RP RP object SRP SRP object
The default value is CUSTOM.
-
-lsp_msg_obj_handle
¶
LSP message handle returned from the current function
The following example modifies PCC/PCE objects with Command Edit parameters:
keylget device_ret_pcep1 ero_hnd ero_handle
keylget device_ret_pcep1 startcommand_hnd cmd_handle2
set device_ret_pcep [::sth::emulation_pcep_config \
-mode modify \
-handle [lindex $cmd_handle2 0] \ # PCC or PCE start_command handle
-include_lsp false \
-include_endpoints false \
-included_ero_handle [lindex $ero_handle 1]
]
Sample Output:
# This returns PCC/PCE startcommand_hnd handle with specified auto parameters.
{startcommand_hnd startdeviceupdatecommandconfig1} {status 1}
PCEP Custom Object (Use this group of arguments to create PCEP custom objects)
-
-object_length
¶
Length of the message in bytes, including the header. This argument is available when -auto_cal_object_length is set to false. Possible values range from 0 to 65535. The default value is 4.
-
-custom_pflag
¶
Determines whethet to allow a PCC to specify in the PCReq message sent to a PCE, whether the object is optional (true) or must be taken into account by the PCE (false) during path computation. Possible values are true and false. The default value is true.
-
-custom_iflag
¶
Determines whethet to allow a PCE to indicate in a PCRep message to a PCC, whether an optional object was processed (true) or ignored (false) during path computation. Possible values are true and false. The default value is false.
-
-object_class
¶
Value of the object class. This argument is available when -object_class_selector is set to CUSTOM. The default value is 0.
-
-object_data
¶
Value of the object body. The default value is 0.
-
-reserved_flags
¶
Specifies the value for reserved flags
-
-object_class_selector
¶
Specifies the class of the PCEP custom object. Possible values are described below:
BANDWIDTH BANDWIDTH object CLOSE CLOSE object CUSTOM Custom object END-POINTS End-Points object ERROR ERROR object ERO ERO object IRO Include Route Object (IRO) object RRO RRO object LOAD-BALANCING Load-Balancing object LSP LSP object LSPA LSPA object METRIC METRIC object NOTIFICATION NOTIFICATION object NO-PATH No-Path object RP RP object SRP SRP object SVEC Synchronization VECtor (SVEC) object
The default value is CUSTOM.
-
-auto_cal_object_length
¶
Determines whether to automatically calculate the object length. Possible values are true and false. When it is set to true, the object length will be calculated by Spirent HLTAPI. The default value is true.
-
-custom_obj_type
¶
Specifies the type of the custom object. Possible values range from 0 to 15. The default value is 0.
The following example configures the custom objects on the PCEP device:
set device_ret_pcep [::sth::emulation_pcep_config \
-object_class_selector "CUSTOM OPEN ERO"\
-object_length "4 4 4"\
-custom_pflag "true false true" \
-custom_iflag "true true true" \
-object_class "12 0 0" \
-object_data "0 0 100" \
-reserved_flags "0 2 1" \
-auto_cal_object_length "true false true" \
-custom_obj_type "0 0 0" \
]
keylget device_ret_pcep customobj_hnd custom_obj
PCEP CUSTOM Message (Use this group of arguments to add OPEN message and KEEPALIVE messages. You must set PCEP Sessions parameter -use_custom_message to true)
-
-open_msg_obj_type
¶
Specifies the object category for the OPEN message. Possible values are CUSTOM and OPEN. The default value is CUSTOM.
-
-open_msg_obj_handle
¶
The PCEP custom object handle returned from the current function
-
-keepalive_msg_obj_category
¶
Specifies the object category for the KEEPALIVE message. Possible values are CUSTOM and OPEN. The default value is CUSTOM.
-
-keepalive_msg_obj_handle
¶
The PCEP custom object handle returned from the current function
The following example configures custom messages on the PCEP device:
set device_ret_pcep [::sth::emulation_pcep_config \
-mode create \
-handle $dev_handle \
-pcep_device_role PCC \
-peer_ipv4_addr 192.85.1.3 \
-keep_alive_timer 5 \
-dead_timer 10\
-use_custom_message true \
-keepalive_msg_obj_type "OPEN" \
-keepalive_msg_obj_handle [lindex $custom_obj 0]]
PCEP Custom PDU (Use this argument to configure PCEP custom objects)
-
-custom_pdu
¶
Value of the custom PDU in hex. Possible values range from 0 0x0 to 0xff. The default value is 0.
The following example modifies the specified custom object on the PCEP device:
set device_ret_pcep_2 [::sth::emulation_pcep_config \
-mode modify \
-handle [lindex $cmd_hnd 0] \
-cmd_use_custom_message true \
-lsp_msg_obj_type CUSTOM \
-lsp_msg_obj_handle [lindex $custom_obj 0]]
Arguments Unsupported by Save as HLTAPI¶
This function is currently not supported by Save as HLTAPI.
Return Values¶
Depending on the specific language that HLTAPI uses, the function returns a keyed list/dictionary/hash (See Introduction for more information on return value formats) using the following keys (with corresponding data):
customtlv_hnd Custom TLV handle
pcep_handle PCC or PCE handle returned by the function
pcc_lsp_hnd PCC LSP handle
pce_lsp_hnd PCE LSP handle
lsp_hnd LSP object handle
ero_hnd ERO object handle
rro_hnd RRO object handle
srp_handle SRP handle
lspa_hnd LSPA object handle
startcommand_hnd Handle used to modify the existing PCC/PCE
characteristics of the LSP
ipv4_ero_hnd PCEP IPv4 ERO (Update) object handle
ipv6_ero_hnd PCEP IPv6 ERO (Update) object handle
sr_ero_hnd PCEP SR ERO object handle
ipv4_rro_hnd PCEP IPv4 RRO object handle
ipv6_rro_hnd PCEP IPv6 RRO object handle
metric_hnd PCEP Metric List (Update) object handle
bw_hnd PCEP BW (Update) object handle
start_initcommand_hnd StartDeviceInitiateCommand configuration handle
start_replycommand_hnd StartDeviceReplyCommand configuration handle
start_synccommand_hnd StartDeviceSyncCommand configuration handle
start_requestcommand_hnd StartDeviceRequestCommand configuration handle
start_delegatecommand_hnd StartDeviceDelegateCommand configuration handle
start_updatecommand_hnd StartDeviceUpdateCommand configuration handle
customtlv_hnd PCEP custom TLV handle
customobj_hnd PCEP custom object handle
ipv4_reported_route_hnd PCEP IPv4 Reported Route Parameters handle
ipv6_reported_route_hnd PCEP IPv6 Reported Route Parameters handle
ipv4_explicit_route_hnd PCEP IPv4 Explicit Route Parameters handle
ipv6_explicit_route_hnd PCEP IPv6 Explicit Route Parameters handle
ipv6network_hnd IPv6 network block handle
ipv4network_hnd IPv4 network block handle
custompdu_hnd PCEP Custom PDU handle
open_msg_hnd PCEP OPEN message configuration handle
keep_alive_msg_hnd PCEP KEEPALIVE message configuration handle
lsp_msg_hnd PCEP LSP message configuration handle
status Success (1) or failure (0) of the operation
log An error message (if the operation failed)
Description¶
The sth::emulation_pcep_config
function enables PCEP (PCC or PCE) on raw devices,
adds, modifies, or deletes the PCC or PCE LSP. Use the -mode
argument to specify the operation to perform.
When you enable the PCEP on raw devices, the function returns a PCEP handle based The device role (PCC or PCE). Use this handle as the input for further actions specified by -mode. The mode you use determines the set of arguments you use to configure PCEP devices or LSPs.
When you specify -mode create, you must also use the -handle argument to specify the PCEP device handle to create LSPs on that device.
When you specify -mode modify, you must also use the -handle argument to specify the PCEP LSP handle to modify the LSP configurations.
When you specify -mode delete, you must also use the -handle argument to specify the PCEP LSP handle to delete the LSP.
Examples¶
See the examples under Arguments, or refer to Sample Script in the Release Package folder for full sample scripts of the function.
sth::emulation_pcep_control¶
Purpose¶
A Spirent Extension to start, stop PCEP devices and the related LSPs, establish sessions between PCEP devices, or start the LSP on the established PCEP devices.
Synopsis¶
Note
M indicates that the argument is Mandatory .
sth::emulation_pcep_control [-action {start_sessions|stop_sessions|establish_sessions| initiate_lsp|remove_delegate_lsp|remove_initiate_lsp} M] [-handle <pcep_handle_list> M]
Arguments¶
-
-mode
¶
Specifies the action to be performed. This argument is mandatory. Possible values are:
start_sessions Starts the PCEP devices and the related LSPs stop_sessions Stops the PCEP devices and the related LSPs establish_sessions Establishes a session between PCEP devices initiate_lsp Starts the LSPs on the PCEP devices with session established remove_initiate_lsp PCE will take back the initiated LSP, and send a deletion request from the selected emulated PCEs to the associated PCCs remove_delegate_lsp PCC will take back the delegate LSP, and remove all states for the LSPs on the selected devices
The default value is start_sessions.
-
-handle
¶
Specifies a list of PCEP devices on which to perform the action. This argument is Mandatory .
Return Values¶
Depending on the specific language that HLTAPI uses, the function returns a keyed list/dictionary/hash (See Introduction for more information on return value formats) using the following keys (with corresponding data):
status Success (1) or failure (0) of the operation
log An error message (if the operation failed)
Description¶
The sth::emulation_pcep_control
function controls the PCEP sessions and
the related LSPs. Use the -mode argument to specify the action to perform. (See
the -mode argument description for information about the actions.)
If the action performed fails, Spirent HLTAPI returns an error message.
Examples¶
The following example starts the specified PCEP sessions:
set ret [::sth::emulation_pcep_control \
-handle "$pcep_hnd1 $pcep_hnd2" -action start_sessions]
Note
Spirent HLTAPI does not provide a protocol specific API for PCEP functions.
Instead, you can retrieve PCEP results using the sth::drv_stats
function, as
shown in the examples below.
To retrieve PCEP results by specified properties:
set drv_stats [::sth::drv_stats \
-query_from "$port1 $port2" \
-drv_name drv2\
-where PcepProtocolConfig.BlockRole = 0 \
-properties "EmulatedDevice.PortName EmulatedDevice.Name
PcepProtocolConfig.BlockState
PcepProtocolConfig.BlockSessionCount
PcepProtocolConfig.BlockSessionUpCount
PcepProtocolConfig.BlockSessionIdleCount
PcepProtocolConfig.BlockSessionPendingCount
PcepProtocolConfig.BlockTxOpenCount
PcepProtocolConfig.BlockRxOpenCount
PcepProtocolConfig.BlockTxKeepAliveCount
PcepProtocolConfig.BlockRxKeepAliveCount
PcepProtocolConfig.BlockTxPCRptCount
PcepProtocolConfig.BlockRxPCUpdCount
PcepProtocolConfig.BlockTxPCReqCount
PcepProtocolConfig.BlockRxPCRepCount
PcepProtocolConfig.BlockTxNotifyCount
PcepProtocolConfig.BlockRxNotifyCount
PcepProtocolConfig.BlockTxErrorCount
PcepProtocolConfig.BlockRxErrorCount
PcepProtocolConfig.BlockTxCloseCount
PcepProtocolConfig.BlockRxCloseCount
PcepProtocolConfig.BlockRxPCInitCount
PcepProtocolConfig.BlockFlapCount
PcepProtocolConfig.BlockRole"\
]
Sample Output:
{result_count 1} {item0 {{EmulatedDevicePortName {10.62.224.174-1-2 //1/2}}
{EmulatedDeviceName {Host 2}} {PcepProtocolConfigBlockState UP}
{PcepProtocolConfigBlockSessionCount 1} {PcepProtocolConfigBlockSessionUpCount 1}
{PcepProtocolConfigBlockSessionIdleCount 0}
{PcepProtocolConfigBlockSessionPendingCount 0} {PcepProtocolConfigBlockTxOpenCount 1}
{PcepProtocolConfigBlockRxOpenCount 1} {PcepProtocolConfigBlockTxKeepAliveCount 1}
{PcepProtocolConfigBlockRxKeepAliveCount 1} {PcepProtocolConfigBlockTxPCRptCount 2}
{PcepProtocolConfigBlockRxPCUpdCount 0} {PcepProtocolConfigBlockTxPCReqCount 0}
{PcepProtocolConfigBlockRxPCRepCount 0} {PcepProtocolConfigBlockTxNotifyCount 0}
{PcepProtocolConfigBlockRxNotifyCount 0} {PcepProtocolConfigBlockTxErrorCount 0}
{PcepProtocolConfigBlockRxErrorCount 0} {PcepProtocolConfigBlockTxCloseCount 0}
{PcepProtocolConfigBlockRxCloseCount 0} {PcepProtocolConfigBlockRxPCInitCount 0}
{PcepProtocolConfigBlockFlapCount 0} {PcepProtocolConfigBlockRole PCC}}}
{handle dynamicresultview1} {status 1}
To retrieve PCEP and LSP results by using an XML configuration file (saved from the DRV view configured in the GUI):
set drv_stats1 [::sth::drv_stats \
-drv_xml "C:/Desktop/pcep/drvxml/pcclsp_results.xml" \
]
Sample Output:
{result_count 1} {item0 {{EmulatedDeviceName {Host 2}}
{PcepProtocolConfigSymbolicName PLSP_report_0} {PcepProtocolConfigSrcIpAddr
1.1.1.1} {PcepProtocolConfigDstIpAddr 2.2.2.2} {PcepProtocolConfigLspState UP}
{PcepProtocolConfigPlspState DELEGATED} {PcepProtocolConfigPlspId 1}
{PcepProtocolConfigSrpId 0} {PcepProtocolConfigRpId 0}
{PcepProtocolConfigPCRole PCC}}} {handle dynamicresultview2} {status 1}