RSVP Functions¶
sth::emulation_rsvp_config¶
Purpose¶
Creates, enables, modifies, or deletes an emulated resource reservation setup protocol (RSVP) router on a Spirent HLTAPI chassis. RSVP is not a routing protocol; RSVP works in conjunction with routing protocols and installs the equivalent of dynamic access lists along the routes that routing protocols calculate.
RSVP is a resource reservation setup protocol that enables Internet applications to obtain differing qualities of service (QoS) for their data flows. RSVP is used by routers to request a specific quality of service from the network for particular data flows. It is also used to establish and maintain “resource reservations” across a network.
Synopsis¶
Note
- M indicates that the argument is Mandatory .
- S indicates the argument is for
scaling
scenarios.
sth::emulation_rsvp_config [-mode {create|modify|delete|enable|disable|active|inactive|activate} M] [-port_handle <port_handle>] [-handle <device_handle>|<rsvp_session_handle>] [-bfd_registration {1|0}] [-bundle_interval <1-2147483647>] [-bundle_mode {observe_rx_rsvp_messages|manual_configuration}] [-bundle_msgs {1|0} ] [-capability_object {class_number_132|class_number_134|none}] [-cfi {1|0} ] [-count <integer> ] [-dut_ip_addr <a.b.c.d>] [-dut_ip_addr_step <a.b.c.d>] [-expand {true|false} S] [-egress_label_mode {nextlabel|imnull|exnull} ] [-gateway_ip_addr { ip } ] [-gateway_ip_addr_step <a.b.c.d> ] [-gmpls_enable {0|1|true|false}] [-graceful_restart {1|0}] [-graceful_restart_recovery_time <0-65535> ] [-graceful_restart_restart_time <0-65535> ] [-hello_interval <1-65536> ] [-hello_msgs {1|0} ] [-hop_tlv_id {router_id|interface_id}] [-inter_pkt_delay <0-2147483647>] [-intf_ip_addr { ip } ] [-intf_ip_addr_step <a.b.c.d> ] [-intf_prefix_length <1-32> ] [-label_binding_mode {tx_and_rx|tx_only|rx_only none}] [-lsp_results_enable {0|1}] [-mac_address_start <aa:bb:cc:dd:ee:ff>] [-max_label_value <1-1048575> ] [-min_label_value <1-1048575> ] [-neighbor_intf_ip_addr { ip } ] [-neighbor_intf_ip_addr_step <a.b.c.d>] [-rapid_retx_delta <1-65535> ] [-rapid_retx_interval <integer>] [-rapid_retx_limit <0-10 > ] [-record_route {1|0} ] [-recovery_time <0-65535> ] [-refresh_interval <1-4294967295> ] [-refresh_reduction {1|0} ] [-reliable_delivery {1|0} ] [-reliable_delivery_ack_method {immediate|piggyback_msgid}] [-restart_time <0-65535> ] [-resv_confirm {1|0} ] [-srefresh_interval <1-2147483647> ] [-summary_refresh {1|0} ] [-transit {RSVP_TRANSIT_ACCEPT_CONFIGURED | RSVP_TRANSIT_ACCEPT_ALL} ] [-user_priority <0-7> ] [-un_numbered_interface_enable {0|1}] [-vci <0-65535>] [-vci_step <0-65535>] [-vlan_cfi {0|1} ] [-vlan_id <0-4095> ] [-vlan_id_mode {fixed|increment} ] [-vlan_id_step <1-4094> ] [-vlan_user_priority <0-7> ] [-vlan_outer_id <0-4095>] [-vlan_outer_id_mode {fixed|increment}] [-vlan_outer_id_step <1-4094>] [-vlan_outer_user_priority <0-7>] [-vpi <0-255>] [-vpi_step <0-255>] [-tunnel_handle <GRE_tunnel_handle>] [-hello_custom_handle <RSVP_custom_object_handle>] [-path_err_custom_handle <RSVP_custom_object_handle>] [-reser_err_custom_handle <RSVP_custom_object_handle>] [-use_gateway_as_dut_ip_addr {true|false}]
Arguments¶
-
-bfd_registration
¶
Specifies to enable or disable Bidirectional Forwarding Detection (BFD) registration. Possible values are 1 (enable) and 0 (disable). The default is 0.
-
-bundle_interval
¶
Specifies the bundle time interval in milliseconds. Messages are held in a buffer and are sent out as a bundle after the interval expires or when the message size exceeds the MTU.
-
-bundle_mode
¶
Spirent Extension (for Spirent HLTAPI only).
Specifies the message bundling method. Messages are held in a buffer and are sent out as a bundle after the interval expires or when the message size exceeds the MTU. Possible values are:
observe_rx_rsvp_messages Start bundling only after receiving a bundled message manual_configuration Start bundling immediately
The default value is observe_rx_rsvp_messages.
-
-bundle_msgs
¶
Enables or disables message bundling. If set to 1, combines multiple RSVP messages into a single PDU to reduce processing overhead and bandwidth consumption.
-
-capability_object
¶
Spirent Extension (for Spirent HLTAPI only).
Specifies the Capability object to be carried into the Hello message. Possible values are:
class_number_132 Class Number 132 class_number_134 Class Number 134 none No object
The default value is class_number_132.
-
-cfi
¶
This argument has been replaced with “-vlan_cfi”. The -cfi argument is supported but may not be supported in future versions. Therefore, for new scripts, use -vlan_cfi instead.
-
-count
¶
Defines the number of RSVP routers to create on the interface. Possible values are 0 to <max_int>. The default is 1.
-
-dut_ip_addr
¶
Spirent Extension (for Spirent HLTAPI only).
Specifies the starting IP address of the DUT. This argument is available when -use_gateway_as_dut_ip_addr is set to false.
-
-dut_ip_addr_step
¶
Spirent Extension (for Spirent HLTAPI only).
Specifies the increment value with which to create subsequent DUT addresses. This argument is available when -use_gateway_as_dut_ip_addr is set to false. The default value is 0.0.0.0.
-
-expand
¶
Spirent Extension (for Spirent HLTAPI only).
Determines whether to expand the specified RSVP device parameters into emulated RSVP device objects. Possible values are true and false. If it is set to true, a list of emulated RSVP devices will be created and their handles returned. If it is set to false, no handles will be returned.
-
-egress_label_mode
¶
Defines the label advertised if the emulated router is at the tail-end of the tunnel. This label is advertised in response to a PATH message with a destination IP address matching the router tester IP address. Possible values are nextlabel, exnull, and imnull. The default is nextlabel. These values are described below:
nextlabel - Advertise the next available label. For each FEC, the LSR advertises the next available label from the label pool (Min Label to Max Label). exnull - Advertise label 9, the explicit null label. A zero (IPv4 datagram) or two (IPv6 datagram) MPLS label value indicates to the penultimate router that it is to pop the label upon receipt and forward the IP packet to the egress router for Layer 3 forwarding. Explicit null instructions are signaled to the penultimate router by the egress router. imnull - Advertise label 3, the implicit null label. This label value (three) is used in an LDP or RSVP packet to enable penultimate hop label popping. The egress LSR signals a request to its upstream neighbor to pop the top label in the stack and forward the rest of the packet. This value does not appear in the encapsulation.
-
-gateway_ip_addr
¶
Spirent Extension (for Spirent HLTAPI only).
Configures the IPv4 gateway address of the router.
-
-gateway_ip_addr_step
¶
Spirent Extension (for Spirent HLTAPI only).
Configures the IPv4 gateway address for multiple routers. Use this argument with the -gateway_ip_addr argument.
-
-gmpls_enable
¶
Spirent Extension (for Spirent HLTAPI only).
Enables or disables Generalized Multiprotocol Label Switching (GMPLS) for the RSVP tunnel. Once enabled, you can configure GMPLS options using the sth:: emulation_rsvp_tunnel_config function. Possible values are 1 (enable) and 0 (disable). The default value is 0.
-
-graceful_restart
¶
Enables or disables graceful restart. Possible values are 1 (enable) and 0 (disable). If set to 1, enables graceful restart which adds a RESTART_CAP object in HELLO messages. Enabling graceful restart will automatically enable HELLO messages (see -hello_msgs).
-
-graceful_restart_recovery_time
¶
Specifies the length of time (in milliseconds) that the sender desires for the recipient to re-synchronize RSVP and MPLS forwarding state with the sender after the re- establishment of Hello synchronization. Possible values are 0 to 65535. A value of zero (0) indicates that MPLS forwarding state was not preserved across a particular reboot.
-
-graceful_restart_restart_time
¶
Specifies the sum of the time, in milliseconds, it takes the sender of the object to restart its RSVP component (to the point where it can exchange RSVP HELLO with its neighbors) and the communication channel that is used for RSVP communication. Possible values are 0 to 65535. The default is 5, which is used to configure HELLO message generation and graceful restart capability.
-
-handle
¶
Specifies the RSVP handle to use. This argument is Mandatory for modify, delete, enable, disable, active and inactive modes. When -mode is set to create, Spirent HLTAPI creates RSVP over the provided device. (Please refer to the description of the -mode argument for more information)
-
-hello_interval
¶
Specifies the amount of time, in milliseconds, between RSVP hello messages. Possible values range from 1 to 65536. The default is 5000.
-
-hello_msgs
¶
Enables or disables the creation of HELLO messages and graceful restart capability. Possible values are 0 (disable) and 1 (enable). The default is 0.
-
-hop_tlv_id
¶
Spirent Extension (for Spirent HLTAPI only).
Specifies the hop TLV ID. Possible values are:
router_id Use the router ID from the device interface as the Hop TLV ID interface_id Use the IPv4 Address from the Device Interface as the Hop TLV ID
The default value is interface_id.
-
-inter_pkt_delay
¶
Spirent Extension (for Spirent HLTAPI only).
Specifies the inter-packet delay. Possible values range from 0 to 2147483647. The default value is 30
-
-intf_ip_addr
¶
Specifies the IP address of the interface for the RSVP emulated router that will establish an adjacency with the DUT. The default for IPv4 is 192.85.1.3.
-
-intf_ip_addr_step
¶
Specifies the difference between interface IP addresses of consecutive routers when multiple RSVP routers are created. The default increment is 1. The value must be in IPv4 format.
-
-intf_prefix_length
¶
Specifies the prefix length on the emulated router, Possible values for IPv4 addresses range from 1 to 32; the default is 24.
-
-label_binding_mode
¶
Spirent Extension (for Spirent HLTAPI only).
Specifies the label binding mode. Possible values are:
tx_and_rx Bind Tx and Rx label tx_only Bind Tx label rx_only Bind Rx label none None
The default value is tx_and_rx.
-
-lsp_results_enable
¶
Spirent Extension (for Spirent HLTAPI only).
Enables or disables LSP results. Possible values are 1 (enable) and 0 (disable). The default value is 1.
-
-mac_address_start
¶
Initial MAC address of the interfaces created for the RSVP neighbor configuration.
-
-max_label_value
¶
Specifies the maximum LSP label advertised by the peer. Used to configure refresh reduction capabilities per RFC 2961. Possible values range from 1 to 1048575. The default value is 65535.
-
-min_label_value
¶
Specifies the minimum LSP label advertised by the peer. Used to configure refresh reduction capabilities per RFC 2961. Possible values range from 16 to 1048575. The default value is 16.
-
-mode
¶
Specifies the action to perform. Possible values are create, enable, disable, modify, reset, active and inactive. This argument is mandatory. The modes are described below:
- create
- Create and start the RSVP router. When -port_handle is provided, Spirent HLTAPI creates one or more emulated routers that are associated with the specified port.
- enable
- Create and start the RSVP router.
- disable
- Delete the RSVP router identified by the -handle argument, or delete all the RSVP routers associated with the specified port.
- modify
- Change the configuration for the RSVP router identified by the -handle argument.
- delete
- Deletes the RSVP router identified by the -handle argument, or delete all the RSVP routers associated with the specified port.
- active
- Enables the RSVP router specified by the -handle argument. You must specify a valid RSVP session handle.
- inactive
- Disables the RSVP router specified by the -handle argument. You must specify a valid RSVP session handle. The configuration for the router is retained, when it is inactive and is available as configured if the router is active.
- activate
Enables RSVP devices and configures RSVP parameters for the devices created via the sth::interface_config or
sth::emulation_device_config
function. This mode requires the value of param_handle as the input to the -handle option. Use this mode forScaling
scenarios. Refer to -count and -expand options under the sth::interface_config or sth::emulation_device_config function for more information. For this mode, only the following options are valid:-egress_label_mode -bfd_registration -max_label_value -min_label_value -use_gateway_as_dut_ip_addr -dut_ip_addr -dut_ip_addr_step -expand
2. Creates devices and enables RSVP protocol. Requires -port_handle and -block_mode options. For this mode, the following options are required/supported along with the options specified above:
-block_mode -block_mode_index -mac_addr -mac_addr_step -mac_addr_step_per_port -mac_addr_step_per_vlan -ip_step_per_port -ip_step_per_vlan -intf_ipv6_prefix_len -ipv6_step_per_port -ipv6_step_per_vlan -link_local_ipv6_step_per_port -link_local_ipv6_step_per_vlan -name -vlan_user_pri -vlan_id_count -vlan_outer_id_count -vlan_outer_user_pri -intf_prefix_len -router_id -router_id_ipv6 -router_id_ipv6_step -router_id_step -link_local_ipv6_prefix_len -router_id_ipv6 -router_id_ipv6_step -link_local_ipv6_addr -link_local_ipv6_addr_step -gateway_ipv6_addr -gateway_ipv6_addr_step -intf_ipv6_addr -intf_ipv6_addr_step .. note:: Please refer to the emulation_device_config documentation.
Note
When -handle is provided for -mode create, the following options will be obsoleted:
-count -cfi -intf_ip_addr -intf_ip_addr_step -intf_prefix_length -user_priority -gateway_ip_addr -gateway_ip_addr_step -loopback_ip_addr -vci -vci_step -vlan_cfi -vlan_id -vlan_id_mode -vlan_id_step -vlan_user_priority -vpi -vpi_step -tunnel_handle -vlan_outer_id -vlan_outer_id_mode -vlan_outer_id_step -vlan_outer_user_priority
-
-neighbor_intf_ip_addr
¶
Specifies the IP address of the interface for the RSVP neighbor (next hop) that will establish an adjacency with the DUT. The default for IPv4 is 192.85.1.3.
-
-neighbor_intf_ip_addr_step
¶
Specifies the difference between interface IP addresses of consecutive routers when multiple RSVP routers are created. The default increment is 1. The value must be in IPv4 format.
-
-port_handle
¶
The port on which to create the emulated RSVP router. The port handle is returned by the sth::connect function.
-
-rapid_retx_delta
¶
Specifies the rapid retransmission delta, which is the speed at which the retransmission interval is increased. The ratio of two successive retransmission intervals is (1 + Delta). Possible values range from 1 to 65535. The default is 1.
-
-rapid_retx_interval
¶
Specifies, in milliseconds, the rapid retransmission interval, which is the initial retransmission interval for unacknowledged messages. Possible values range from 1 to 2147483647. The default is 500.
-
-rapid_retx_limit
¶
Specifies the rapid retransmission limit, which is the maximum number of times a message can be transmitted without being acknowledged. Possible values range from 0 to 10. The default is 3.
-
-record_route
¶
Enables or disables whether to include the RECORD_ROUTE object in the Path message. Possible values are 0 (disable) and 1 (enable). The default is 0.
-
-recovery_time
¶
This argument has been replaced with “-graceful_restart_recovery_time”. The -recovery_time argument is supported but may not be supported in future versions. Therefore, for new scripts, use -graceful_restart_recovery_time instead.
-
-refresh_interval
¶
Specifies the amount of time, in milliseconds, between sending RSVP messages to refresh state. Possible values range from 1 to 2147483647. The default is 30000 (30 seconds).
-
-refresh_reduction
¶
Enables or disables refresh reduction. Possible values are 0 (disable) and 1 (enable). The default is 0. The reliable messages, bundle messages, and summary refresh messages are only meaningful when refresh reduction is enabled.
-
-reliable_delivery
¶
Enables or disables transmitting message IDs. Possible values are 0 (disable) and 1 (enable). The default is 0. If set to 1, RSVP sends message IDs and acknowledgements for each message received. If set to 0, it does not send message IDs.
-
-reliable_delivery_ack_method
¶
Spirent Extension (for Spirent HLTAPI only).
Specifies the acknowledgement (ACK) mode required by a reliable delivery. Possible values are:
immediate Send ACK immediately piggyback_msgid Send multiple message IDs in one ACK when the ACK timer expires.
The default value is immediate.
-
-restart_time
¶
This argument has been replaced with -graceful_restart_restart_time. The -restart_time argument is supported but may not be supported in future versions. Therefore, for new scripts, use -graceful_restart_restart_time instead.
-
-resv_confirm
¶
Enables or disables whether to require a reservation confirmation message. Possible values are 0 (disable) and 1 (enable). The default is 0. If set to 1, enables and requires RESV confirmation with final parameters from the egress router. If set to 0, does not require sending RESV confirmation messages.
-
-srefresh_interval
¶
Specifies the time interval, in milliseconds, to gather refresh messages that would have been sent out individually. Messages are sent out as a single refresh message upon interval expiration or when the message size exceeds the MTU. Possible values range from 1 to 2147483647. The default is 30000 (30 seconds).
-
-summary_refresh
¶
Enables or disables summary refresh. Possible values are 0 (disable) and 1 (enable). The default is 0. You must also enable -refresh_reduction when you use this argument.
-
-transit
¶
Spirent Extension (for Spirent HLTAPI only).
This argument was added by Spirent to specify whether the router accepts all the PATH messages or only configured PATH messages. This argument enables Spirent HLTAPI to run multiple sessions per port. Possible values are:
RSVP_TRANSIT_ACCEPT_ALL - the router accepts any PATH message; each port can have only one RSVP_TRANSIT_ACCEPT_ALL router. RSVP_TRANSIT_ACCEPT_CONFIGURED - the router accepts configured PATH messages. Each port can have many RSVP_TRANSIT_ACCEPT_CONFIGURED router.
The default is RSVP_TRANSIT_ACCEPT_CONFIGURED.
-
-user_priority
¶
This argument has been replaced with “-vlan_user_priority”. The -user_priority argument is supported but may not be supported in future versions. Therefore, for new scripts, use -vlan_user_priority instead.
-
-un_numbered_interface_enable
¶
Spirent Extension (for Spirent HLTAPI only).
Enables or disables the unnumbered interface. Possible values are 1 (enable) and 0 (disable). The default value is 0.
-
-vci
¶
Specifies the VCI of the first ATM PVC pool. Possible values range from 0 to 65535.
-
-vci_step
¶
Specifies the step size in which the VCI value is incremented. Possible values range from 0 to 65535.
-
-vlan_cfi
¶
Sets the canonical format indicator field in VLAN for the emulated router node. Possible values are 0 (Ethernet) and 1 (Token Ring). The default is 1. If set to 0, it indicates the network is Ethernet. If set to 1, it indicates that Token Ring and packets are dropped by Ethernet ports.
-
-vlan_id
¶
The VLAN ID of the first VLAN sub-interface. Used to configure refresh reduction capabilities per RFC 2961. Possible values range from 0 to 4095. The default is 1.
-
-vlan_id_mode
¶
Specifies VLAN ID assignment for multiple router configurations when -count is greater than 1. Valid values are “fixed” or “increment.” If you specify “fixed,” all of the routers will be assigned the same VLAN ID (the value of the -vlan_id argument). If you specify “increment”, then Spirent HLTAPI assigns unique VLAN IDs. When you use increment mode, you must also specify the -vlan_id_step argument to define the increment value.
-
-vlan_id_step
¶
The value that Spirent HLTAPI uses to increment the VLAN ID. You must specify this step when you use specify “increment” for the -vlan_id_mode argument and the router count (-count) is greater than 1. Possible step values range from 1 to 4094.
-
-vlan_user_priority
¶
VLAN user priority assigned to emulated router node. Possible values range from 0 to 7. The default is 0.
-
-vlan_outer_id
¶
Spirent Extension (for Spirent HLTAPI only).
The outer VLAN ID of VLAN sub-interface. Possible values range from 0 to 4095. The default is 1. When you use -vlan_outer_id, you must specify -vlan_id.
-
-vlan_outer_id_mode
¶
Spirent Extension (for Spirent HLTAPI only).
Specifies how Spirent TestCenter assigns VLAN tags to packets in the specified outer header when router count is greater than 1. Possible values are:
fixed - The outer VLAN ID is the same for all packets. The fixed outer VLAN ID is the value of the -vlan_outer_id argument. increment - For all packets, the outer VLAN tag ID increments by the step specified in the -vlan_outer_id_step argument.
-
-vlan_outer_id_step
¶
Spirent Extension (for Spirent HLTAPI only).
The amount by which to increment the specified outer VLAN ID (-vlan_outer_id) for subsequent packets. Possible values range from 1 to 4094. You must specify this step when you specify “increment” for the -vlan_outer_id_mode argument.
-
-vlan_outer_user_priority
¶
Spirent Extension (for Spirent HLTAPI only).
Specifies the VLAN priority to assign to the outer header. Possible values range from 0 to 7. The default is 0.
-
-vpi
¶
Specifies the VPI of the first ATM PVC pool (for an ATM connection). Possible values are 0 to 255.
-
-vpi_step
¶
Specifies the step size in which the VPI value is incremented. Possible values are 0 to 255.
-
-tunnel_handle
¶
Specifies the GRE tunnel handle, an array value, initialized by the emulation_gre_config command. The router sends traffic through this tunnel.
-
-hello_custom_handle
¶
Spirent Extension (for Spirent HLTAPI only).
Specifies a list of RSVP custom object handles for the HELLO message. This handle is returned from the
sth::emulation_rsvp_custom_object_config
function.
-
-path_err_custom_handle
¶
Spirent Extension (for Spirent HLTAPI only).
Specifies a list of RSVP custom object handles for the PATH message. This handle is returned from the
sth::emulation_rsvp_custom_object_config
function.
-
-reser_err_custom_handle
¶
Spirent Extension (for Spirent HLTAPI only).
Specifies a list of RSVP custom object handles for the RESERVE message. This handle is returned from the
sth::emulation_rsvp_custom_object_config
function.
-
-use_gateway_as_dut_ip_addr
¶
Spirent Extension (for Spirent HLTAPI only).
Enables or disables using gateway address as the DUT IP address. Possible values are true and false. The default value is false.
Cisco-specific Arguments¶
The following arguments are specific to the Cisco HLTAPI but are not supported by Spirent HLTAPI:
-hello_retry_count
-loopback_ip_addr
-max_ack_delay
-max_lsps
-mtu
-path_state_refresh_timeout
-path_state_timeout_count
-precedence
-refresh_retry_count
-resv_state_refresh_timeout
-resv_state_timeout_count
-router_alert
-timeout
-ttl
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):
handles A list of RSVP handles that identify the routers created by the
``sth::emulation_rsvp_config`` function.
handle_list
A list of emulated devices with RSVP configuratin created by
``sth::emulation_rsvp_config`` function when expand is set true.
status Success (1) or failure (0) of the operation.
log An error message (if the operation failed).
Description¶
The sth::emulation_rsvp_config
function creates, enables, disables,
modifies, or deletes an emulated RSVP router. Use the -mode
argument to specify the action to perform. (See the -mode argument
description for information about the actions.)
RSVP has three basic functions: path setup and maintenance, path tear down, and error signaling.
When you create an emulated router, use the -port_handle argument to specify the Spirent HLTAPI port that the emulated router will use for RSVP communication. (The port handle value is contained in the keyed list returned by the connect function.)
In addition to specifying the port, you must also provide one or more of the following pieces of information when you create an RSVP router:
- The source IP address for the emulated router (-intf_ip_addr)
- The destination IP address for the emulated router (-neighbor_intf_ip_addr)
- The port on which to create the emulated router (-port_handle)
An RSVP session is a data flow with a particular destination and transport-layer protocol. When you create an RSVP router, Spirent HLTAPI starts the router communication.
Refresh messages are sent to both synchronize state between RSVP neighbors and to recover from lost RSVP messages.
There are several RSVP message types but the two most important are “path” and “reservation” messages. Reservation messages are also referred to as “RESV” messages. Path messages are used to set up and maintain (that is, refresh) reservations. RESV messages are used to set up and maintain the “resources requested” as well as “refresh” reservations. An RSVP router sends a path message every 30 seconds (30 seconds is the default refresh interval) to say “Maintain my reserved resources. I still need them.” It sends an RESV message every 30 seconds to say “I will hold this reservation for you.”
Once you start sessions by creating routers, Spirent HLTAPI handles all
of the message traffic for the emulated RSVP routers. During the test, use
the sth::emulation_rsvp_control
function to stop and re-start individual
RSVP routers.
Example:
#### HLTAPI for Tcl ####
The following example creates a RSVP router:
sth::emulation_rsvp_config -mode create \
-port_handle $port_handle($device,$port1) \
-count 1 \
-egress_label_mode nextlabel \
-hello_interval 5000 \
-hello_msgs 1 \
-intf_ip_addr 90.0.0.3 \
-intf_ip_addr_step 0.0.0.1 \
-intf_prefix_length 24 \
-max_label_value 1048575 \
-min_label_value 16 \
-neighbor_intf_ip_addr 90.0.0.4 \
-neighbor_intf_ip_addr_step 0.0.0.1 \
-gateway_ip_addr 90.0.0.4 \
-gateway_ip_addr_step 0.0.0.1 \
-rapid_retx_delta 1 \
-rapid_retx_interval 500 \
-rapid_retx_limit 3 \
-record_route 0 \
-refresh_interval 30000 \
-refresh_reduction 1 \
-reliable_delivery 1 \
-resv_confirm 1 \
-srefresh_interval 30000
The following example enables RSVP over a provided device:
puts "Config LDP--------------------"
set routerStatus [sth::emulation_ldp_config -mode create \
-port_handle $port1Handle \
-intf_ip_addr 13.25.0.2\
-loopback_ip_addr 13.25.0.1 \
-gateway_ip_addr 13.25.0.1\
-remote_ip_addr 13.25.0.2 \
-graceful_recovery_timer 55 \
-keepalive_interval 56 \
-reconnect_time 57 \
-recovery_time 58 \
-egress_label_mode exnull \
-label_adv on_demand \
-bfd_registration 1 \
]
puts "LDP: $routerStatus"
keylget routerStatus handle router
puts "Config RSVP--------------------"
set routerStatus [sth::emulation_rsvp_config
-mode create \
-handle $router\
-recovery_time 55 \
-bfd_registration 1 \
]
puts "RSVP: $routerStatus"
Sample output for example shown above:
Config LDP--------------------
LDP: {handle router1} {handles router1} {status 1}
Config RSVP--------------------
RSVP: {handle router1} {handles router1} {status 1}
Sample Output:
{{handles router1} {status 1}}
Sample input for the Scaling
mode(activate) with -handle:
set hnd [keylget int_ret0 param_handle]
# param_handle returned from sth::interface_config
puts "Param List: $int_ret0"
set rsvp_ret [sth::emulation_rsvp_config \
-mode activate\
-handle $int_ret0 \
-record_route 0\
-egress_label_mode nextlabel \
-use_gateway_as_dut_ip_addr true \
-max_label_value 2\
-min_label_value 1\
-bfd_registration 1 \
-expand true\
Sample Output:
{handle {emulateddevice1 emulateddevice2 emulateddevice3 emulateddevice4
emulateddevice5}} {handles {emulateddevice1 emulateddevice2 emulateddevice3
emulateddevice4 emulateddevice5}} {handle_list {emulateddevice1 emulateddevice2
emulateddevice3 emulateddevice4 emulateddevice5}} {status 1}
Sample input for the Scaling
mode(activate) with -port_handle and -block_mode:
set rsvp_ret [sth::emulation_rsvp_config \
-mode activate\
-port_handle $port1 \
-block_mode ONE_DEVICE_PER_BLOCK\
-block_name_index 1\
-count 5\
-record_route 0\
-intf_ip_addr 192.85.1.2 \
-egress_label_mode nextlabel \
-use_gateway_as_dut_ip_addr true \
-max_label_value 2\
-min_label_value 1\
-bfd_registration 1 \
-expand true\
Sample Output:
{param_handle emulateddevicegenparams1} {status 1} {handle_list {emulateddevice1
emulateddevice2 emulateddevice3 emulateddevice4 emulateddevice5}}
{handle {emulateddevice1 emulateddevice2 emulateddevice3 emulateddevice4
emulateddevice5}} {handles {emulateddevice1 emulateddevice2 emulateddevice3
emulateddevice4 emulateddevice5}}
#### HLTAPI for Python ####
The following example creates a RSVP router:
device_ret0 = sth.emulation_rsvp_config (
mode = 'create',
record_route = '0',
port_handle = port_handle[0],
vlan_cfi = '0',
vlan_id = '100',
vlan_user_priority = '7',
user_priority = '7',
hello_interval = '1000',
resv_confirm = '0',
graceful_restart_recovery_time= '0',
rapid_retx_delta = '1',
graceful_restart_restart_time= '3000',
rapid_retx_interval = '500',
min_label_value = '16',
max_label_value = '65535',
refresh_interval = '30000',
restart_time = '3000',
hello_msgs = '0',
neighbor_intf_ip_addr= '192.85.1.1',
graceful_restart = '0',
recovery_time = '0',
rapid_retx_limit = '3',
reliable_delivery = '0',
egress_label_mode = 'nextlabel',
transit = 'RSVP_TRANSIT_ACCEPT_CONFIGURED',
mac_address_start = '00:10:94:00:00:05',
intf_ip_addr = '192.85.1.5',
gateway_ip_addr = '192.85.1.1',
intf_prefix_length = '24');
Sample Output:
{'status': '1', 'handles': 'router1', 'handle': 'router1'}
#### HLTAPI for Perl ####
The following example creates a RSVP router:
my %device_ret0 = sth::emulation_rsvp_config (
mode => 'create',
record_route => '0',
port_handle => "$hport[1]",
vlan_cfi => '0',
vlan_id => '100',
vlan_user_priority => '7',
user_priority => '7',
hello_interval => '1000',
resv_confirm => '0',
graceful_restart_recovery_time=> '0',
rapid_retx_delta => '1',
graceful_restart_restart_time=> '3000',
rapid_retx_interval => '500',
min_label_value => '16',
max_label_value => '65535',
refresh_interval => '30000',
restart_time => '3000',
hello_msgs => '0',
neighbor_intf_ip_addr=> '192.85.1.1',
graceful_restart => '0',
recovery_time => '0',
rapid_retx_limit => '3',
reliable_delivery => '0',
egress_label_mode => 'nextlabel',
transit => 'RSVP_TRANSIT_ACCEPT_CONFIGURED',
mac_address_start => '00:10:94:00:00:05',
intf_ip_addr => '192.85.1.5',
gateway_ip_addr => '192.85.1.1',
intf_prefix_length => '24');
- Sample Output::
- $VAR1 = ‘handle’; $VAR2 = ‘router2’; $VAR3 = ‘handles’; $VAR4 = ‘router2’; $VAR5 = ‘status’; $VAR6 = ‘1’;
Note
- RSVP needs to periodically refresh its reservations in the network by re-signaling them.
- With RSVP, a reservation goes away only if it is explicitly removed from the network by RSVP or if the reservation “times out”.
- RSVP does not have an explicit neighbor discovery mechanism like LDP, which means that if RSVP is enabled on two different routers, they will not see each other as RSVP neighbors until they receive path and RESV messages from one another.
- All path messages have a “Router Alert” bit that when set instructs each router along the LSP to examine and process the message.
End of Procedure Header
sth::emulation_rsvp_custom_object_config¶
Purpose¶
Creates, modifies, or deletes a RSVP-TE custom object
Synopsis¶
Note
M indicates that the argument is Mandatory .
sth::emulation_rsvp_custom_object_config [-mode {create|modify|delete} M] [-handle <rsvp_custom_object_handle>] [-class_number <0-255>] [-c_type <0-255>] [-custom_data <decimal or hexdecimal>]
Arguments¶
-
-mode
¶
Specifies the action to perform. Possible values are create, Modify, and delete. This argument is Mandatory . The modes are described below:
create Creates an RSVP custom object modify Changes the configuration for the RSVP custom object identified by the -handle argument delete Deletes the specified RSVP custom object
-
-handle
¶
Specifies the RSVP custom object handle to use. This argument is Mandatory for -mode modify and -mode delete.
-
-class_number
¶
Specifies the Class Number field of the custom object. Possible values range from 0 to 255. The default value is 0.
-
-c_type
¶
Specifies the C-Type field of the custom object. Possible values range from 0 to 255. The default value is 0.
-
-custom_data
¶
Specifies the payload data for the custom object. Possible values are decimal or hexadecimal. The data must be 4 bytes or a multiple of 4 bytes long. The default value is 0.
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):
handle The RSVP-TE custom object handle
status Success (1) or failure (0) of the operation
log An error message (if the operation failed)
Description¶
Thesth::emulation_rsvp_custom_object_config
function creates, modifies, or deletes a RSVP-TE custom object. Use the -mode argument to specify the operation to perform. When you create a RSVP-TE custom object, the function returns a handle for it. Use this handle as input for the modify and delete modes.
Examples¶
The following example creates a custom object:
set ret1 [sth::emulation_rsvp_custom_object_config\
-mode create\
-c_type 23 \
-class_number 2 \
-custom_data "172 205 239 18"\
]
Sample Output:
{handle rsvpcustomobject1} {status 1}
sth::emulation_rsvp_control¶
Purpose¶
Starts or stops RSVP routers.
Synopsis¶
Note
M indicates that the argument is Mandatory .
sth::emulation_rsvp_control [-mode {flap | resume_hellos | stop_hellos | restart_router | initiate_make_before_break | graft_ingress | graft_egress | prune_ingress | prune_egress} M] [-handle <router_handle_list>] [-port_handle <port_handle_list>]
Arguments¶
-
-handle
¶
Specifies a list of handles for the routers to be controlled. That is, the routers to start, stop, or restart.
-
-mode
¶
Specifies the action to be taken. This argument is mandatory. Possible values are described below:
- stop
- Stops the router for the specified router or port
- start
- Starts the router for the specified router or port.
- restart
- Stops and then starts the router for the specified router or port.
- resume_hellos
- Resumes Hellos on specified RSVP routers. Specify RSVP router handles using the -handle option.
- stop_hellos
- Stops Hellos on specified RSVP routers. Specify RSVP router handles using the -handle option.
- restart_router
- Performs graceful restart from the list of RSVP routers. Specify RSVP router handles using the -handle option.
- initiate_make_before_break
- Initiates make-before-break. Specify ingress tunnel handles using the -handle option.
- graft_ingress
- Grafts ingress sub-LSPs. Specify the list of sub-LSPs using the -handle option
- graft_egress
- Grafts egress sub-LSPs. Specify the list of sub-LSPs using the -handle option
- prune_ingress
- Prunes P2MP Ingress sub-LSPs. Specify the list of sub-LSPs using the -handle option
- prune_egress
- Prunes egress sub-LSPs. Specify the list of sub-LSPs using the -handle option
-
-port_handle
¶
Specifies a list of ports to be controlled. That is, the ports on which all RSVP routers should be started, stopped, or restarted.
Cisco-specific Arguments¶
The following arguments are specific to the Cisco HLTAPI but are not supported by Spirent HLTAPI:
-flap_count
-flap_down_time
-flap_interval_time
-flap_tunnels
-restore
-teardown
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_rsvp_control
function controls the starting and
stopping of RSVP routers, and restoring and tearing down of RSVP tunnels.
When you call the sth::emulation_rsvp_control
function, you specify either
a handle or port handle. Spirent HLTAPI applies the specified action to
either the specified RSVP router or to all of the RSVP routers associated
with the specified port.
Examples¶
#### HLTAPI for Tcl ####
To start an RSVP router:
sth::emulation_rsvp_control -mode start \
-handle $rsvp_handle(rsvp1) \
To start the RSVP router(s) on the specified port:
sth::emulation_rsvp_control -mode start \
-port_handle $port_handle(port1) \
To stop an RSVP router:
sth::emulation_rsvp_control -mode stop \
-handle $rsvp_handle(rsvp1)
To restart the RSVP router(s) on the specified port:
sth::emulation_rsvp_control -mode restart\
-port_handle $port_handle(port1)
Sample Output:
{status 1}
#### HLTAPI for Python ####
To start an RSVP router:
ctrl_ret1 = sth.emulation_rsvp_control (
handle = device_list,
mode = 'start');
Sample Output:
{'status': '1'}
#### HLTAPI for Perl ####
To start an RSVP router:
my %ctrl_ret1 = sth::emulation_rsvp_control (
handle => "$device_list",
mode => 'start');
- Sample Output::
- $VAR1 = ‘status’; $VAR2 = ‘1’;
End of Procedure Header
sth::emulation_rsvp_info¶
Purpose¶
Returns information about the RSVP configuration.
Synopsis¶
Note
M indicates that the argument is Mandatory .
sth::emulation_rsvp_info [-handle <rsvp_handle> M] [-mode {stats|settings} M]
Arguments¶
-
-handle
¶
The router for which you want information.
-
-mode
¶
Specifies the kind of information you want to see. Possible values are:
stats - Returns transmitted and received statistics for different RSVP messages. settings - Returns the IP address of the specified RSVP handle.
The default is stats.
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):
stats Retrieves the IP address of the specified handle,
the number of reserved and path messages sent and
received, and information about the LSPs (see list
below).
settings Retrieves the IP address of the specified RSVP router
and of its neighbor that will establish an adjacency to
the DUT (see list below).
status Retrieves a value indicating the success (1) or failure
(0) of the operation.
log Retrieves a message describing the last error that
occurred during the operation. If the operation was
successful - {status 1} - the log value is null
The following keys are returned when you specify -mode stats:
ingress_resvconf_tx Number of reserve confirmation messages sent.
ingress_patherr_tx Number of path error messages sent.
ingress_resverr_rx Number of reserve error messages received.
ingress_pathtear_tx Number of path tear messages sent.
ingress_resvtear_rx Number of reserve tear messages received.
egress_resvconf_rx Number of reserve confirmation messages received.
egress_patherr_rx Number of path error messages received.
egress_resverr_tx Number of reserve error messages sent.
egress_pathtear_rx Number of path tear messages received.
egress_resvtear_tx Number of reserve tear messages sent.
lsp_count Number of LSPs.
lsp_created Number of LSPs up.
lsp_deleted Number of LSPs down.
lsp_connecting Number of LSPs connecting. (for Spirent HLTAPI only)
hellos_rx Number of hello messages received.
hellos_tx Number of hello messages sent.
min_setup_time Minimum LSP setup time.
max_setup_time Maximum LSP setup time.
msg_rx Number of messages received.
msg_tx Number of messages sent.
num_lsps_setup Number of LSPs set up.
ingress_path_tx Number of path messages sent.
egress_path_rx Number of reserve messages received.
ingress_resv_rx Number of reserve messages received.
egress_resv_tx Number of reserve messages sent.
The following keys are returned when you specify -mode settings:
intf_ip_address IP address of the port on the interface card::
a.b.c.d.
neighbor_intf_ip_addr IP address of the interface for the RSVP
neighbor (next hop) that will establish an
adjacency with the DUT: a.b.c.d.
Cisco-specific Returned Values::
The following returned values are specific to the Cisco HLTAPI but are not supported by Spirent HLTAPI:
-routing_protocol
-ingress_attempt_setup_msg
-ingress_success_setup_msg
-ingress_resv_timeout
-ingress_resv_errors
-egress_attemp_setup_msg
-egress_success_setup_msg
-egress_resv_timeout
-egress_resv_errors
-peer_count
-total_setup_time
-ack_rx
-ack_tx
-nack_rx
-nack_tx
-srefresh_rx
-srefresh_tx
-bundle_rx
-bundle_tx
-msg_retx
-out_of_order_msg
-msg_lsps
Description¶
The sth::emulation_rsvp_info
function provides information about either the
settings specified for the RSVP configuration or the statistics returned by it.
This function returns the requested data (statistics or settings information) and a status value (1 for success). If there is an error, the function returns the status value (0) and an error message. Function return values are formatted as a keyed list (supported by the Tcl extension software - TclX). Use the TclX function keylget to retrieve data from the keyed list. (See Return Values for a description of each key.)
Examples¶
#### HLTAPI for Tcl ####
Sample Input:
sth::emulation_rsvp_info -mode settings -handle router1
Sample Output:
{intf_ip_address 90.0.0.3} {neighbor_intf_ip_addr 90.0.0.4}
{status 1}
#### HLTAPI for Python ####
Sample Input:
results_ret1 = sth.emulation_rsvp_info (
handle = device,
mode = 'stats');
- Sample Output::
- {‘status’: ‘1’, ‘ingress_path_tx’: ‘0’, ‘msg_tx’: ‘0’, ‘msg_rx’: ‘0’, ‘lsp_created’: ‘0’, ‘lsp_count’: ‘0’, ‘lsp_connecting’: ‘0’, ‘egress_pathtear_rx’: ‘0’, ‘num_lsps_setup’: ‘0’, ‘max_setup_time’: ‘0’, ‘hellos_rx’: ‘0’, ‘ingress_resverr_rx’: ‘0’, ‘lsp_deleted’: ‘0’, ‘egress_path_rx’: ‘0’, ‘egress_resvconf_rx’: ‘0’, ‘ingress_resvtear_rx’: ‘0’, ‘ingress_patherr_tx’: ‘0’, ‘egress_resverr_tx’: ‘0’, ‘ingress_resvconf_tx’: ‘0’, ‘ingress_resv_rx’: ‘0’, ‘min_setup_time’: ‘0’, ‘egress_resv_tx’: ‘0’, ‘hellos_tx’: ‘0’, ‘egress_resvtear_tx’: ‘0’, ‘egress_patherr_rx’: ‘0’, ‘ingress_pathtear_tx’: ‘0’}
#### HLTAPI for Perl ####
Sample Input:
my %results_ret1 = sth::emulation_rsvp_info (
handle => "$device",
mode => 'stats');
- Sample Output::
- $VAR1 = ‘egress_resverr_tx’; $VAR2 = ‘0’; $VAR3 = ‘min_setup_time’; $VAR4 = ‘0’; $VAR5 = ‘ingress_path_tx’; $VAR6 = ‘0’; $VAR7 = ‘status’; $VAR8 = ‘1’; $VAR9 = ‘lsp_connecting’; $VAR10 = ‘0’;
End of Procedure Header
sth::emulation_rsvp_tunnel_config¶
Purpose¶
Creates, modifies, or deletes LSP tunnels on the specified test port running RSVP emulation. When you create LSP tunnels using RSVP as a signaling protocol, these tunnels can be automatically or manually routed away from network failures, congestion, and bottlenecks automatically.
Synopsis¶
Note
M indicates that the argument is Mandatory .
sth::emulation_rsvp_tunnel_config [-mode {create|modify|delete} M] [-handle <rsvp_session_handle>] [-tunnel_pool_handle <rsvpte_tunnel_pool_handle>] [-avoid_node_id <a.b.c.d>] [-count <0-max_int>] [-direction <egress|ingress> ] [-element_handle <element_handle>] [-element_type {egress_sub_lsp|egress_sub_lsp_rro|ingress_p2mp_sub_group| ingress_sub_lsp|ingress_sub_lsp_ero}] [-egress_ip_addr <a.b.c.d> ] [-egress_ip_step <a.b.c.d> ] [-egress_accept_any_tunnel_id {true|false}] [-egress_enable_notify_request {true|false}] [-egress_enable_point_to_multi_point {true|false}] [-egress_src_ip_addr <a.b.c.d>] [-egress_src_ip_addr_step <a.b.c.d>] [-egress_resv_custom_object_list <RSVP_custom_object_handles>] [-egress_resv_tear_custom_object_list <RSVP_custom_object_handles>] [-egress_sub_lsp_dest_ipv4_addr <a.b.c.d>] [-egress_sub_lsp_rro_frr_merge_point {true|false}] [-egress_sub_lsp_rro_interface_id <NUMERIC>] [-egress_sub_lsp_rro_label <NUMERIC>] [-egress_sub_lsp_rro_flags { rsvp_rro_flag_local_protection_available| rsvp_rro_flag_local_protection_in_use| rsvp_rro_flag_bandwidth_protection| rsvp_rro_flag_node_protection| rsvp_rro_flag_node_id|0}] [-ero {0|1} ] [-ero_list_ipv4 {ipv4List} ] [-ero_list_loose {0|1} ] [-ero_list_pfxlen <1-128> ] [-ero_mode {loose|strict|}] [-ero_dut_pfxlen <integer>] [-extended_tunnel_id <a.b.c.d> ] [-facility_backup {0|1}] [-fast_reroute {0|1}] [-fast_reroute_bandwidth <integer>] [-fast_reroute_exclude_any <value>] [-fast_reroute_holding_priority <0-7>] [-fast_reroute_hop_limit <integer>] [-fast_reroute_include_all <value>] [-fast_reroute_include_any <value>] [-fast_reroute_setup_priority <0-7>] [-gmpls_acceptable_label_set <string>] [-gmpls_acceptable_label_set_type {exclusive_label_set|inclusive_label_set}] [-gmpls_label <NUMERIC>] [-gmpls_interface_id <NUMERIC>] [-gmpls_resv_src_ip_addr <a.b.c.d>] [-gmpls_suggested_label <NUMERIC>] [-gmpls_te_router_id <a.b.c.d>] [-gmpls_use_upstream_label {true|false}] [-ingress_enable_bfd {true|false}] [-ingress_bfd_message_format {bfd_cc|bfd_cv}] [-ingress_bfd_my_discriminator <NUMERIC>] [-ingress_dst_ip_addr <a.b.c.d>] [-ingress_dst_ip_addr_step <a.b.c.d>] [-ingress_dst_ipv4_address <a.b.c.d>] [-ingress_enable_ero_compression {true|false}] [-ingress_enable_generalized_label_request {true|false}] [-ingress_enable_generic_associated_channel {true|false}] [-ingress_enable_generic_associated_label {true|false}] [-ingress_enable_notify_request {true|false}] [-ingress_enable_point_to_multipoint {true|false}] [-ingress_enable_protection_object {true|false}] [-ingress_enable_unique_sub_group_session_name {true|false}] [-ingress_enable_unique_session_name {true|false}] [-ingress_enable_upstream_label {true|false}] [-ingress_encapsulation {raw|udp}] [-ingress_extended_tunnel_id_step <a.b.c.d>] [-ingress_generalized_pid <NUMERIC>] [-ingress_linkprotection_flag {rsvp_link_protection_flag_dedicated_one_plus_one| rsvp_link_protection_flag_dedicated_one_to_one| rsvp_link_protection_flag_enhanced| rsvp_link_protection_flag_extra_traffic| rsvp_link_protection_flag_shared| rsvp_link_protection_flag_unprotected}] [-ingress_lsp_encoding_type {ansi_etsi|digital_wrapper|ethernet|fiber| fiberchannel|lambda_photonic|packet|reserved1| reserved2|reserved3|sig_sat|userdefined}] [-ingress_lsp_encoding_value <NUMERIC>] [-ingress_lsp_id <1-65535>] [-ingress_lsp_id_step <1-65535>] [-ingress_make_before_break {true|false}] [-ingress_make_before_break_retry_algorithm {loop_continuous|loop_once}] [-ingress_make_before_break_retry_time <NUMERIC>] [-ingress_p2mp_id <a.b.c.d>] [-ingress_switching_type {fsc|l2sc|lsc|psc1|psc2|psc3|psc4|tdmc |userdefined}] [-ingress_switching_value <NUMERIC>] [-ingress_sub_lsp_dest_ipv4_addr <a.b.c.d>] [-ingress_sub_lsp_ero_interface_id <NUMERIC>] [-ingress_sub_lsp_ero_route_type {rsvp_strict|rsvp_loose}] [-ingress_sub_lsp_ero_start_ip_list <a.b.c.d>] [-ingress_sub_lsp_ero_prefix_length <NUMERIC>] [-ingress_ip_addr <a.b.c.d>] [-ingress_ip_step <a.b.c.d>] [-lsp_id_count <1-20>] [-min_policed_size <integer>] [-one_to_one_backup {0|1}] [-p2mp_sub_group_id <NUMERIC>] [-p2mp_sub_group_originator_id <a.b.c.d>] [-plr_id <a.b.c.d>] [-port_handle <integer>] [-rro {0|1}] [-rsvp_behavior {rsvpEgress|rsvpIngress }] [-send_detour {0|1}] [-sender_peak_data_rate <integer>] [-sender_token_bkt_rate <integer>] [-sender_token_bkt_size <integer>] [-sender_tspec_max_pkt_size <integer> ] [-sender_tspec_min_policed_size <integer> ] [-sender_tspec_peak_data_rate <integer>] [-sender_tspec_token_bkt_rate <integer>] [-sender_tspec_token_bkt_size <integer> ] [-session_attr {0|1} ] [-session_attr_bw_protect {0|1}] [-session_attr_flags <0-255>] [-session_attr_hold_priority <0-7> ] [-session_attr_label_record {0|1} ] [-session_attr_local_protect {0|1} ] [-session_attr_merge {0|1} ] [-session_attr_name { any } ] [-session_attr_node_protect {0|1} ] [-session_attr_ra_exclude_any {0-0xFFFFFFFF}] [-session_attr_ra_include_all {0-0xFFFFFFFF}] [-session_attr_ra_include_any {0-0xFFFFFFFF} ] [-session_attr_resource_affinities {0|1}] [-session_attr_se_style {0|1} ] [-session_attr_setup_priority <0-7>] [-tunnel_count <0-65535>] [-tunnel_id_start <0-65535>] [-tunnel_id_step <integer>]
Arguments¶
-
-avoid_node_id
¶
Indicates the IPv4 address that identifies the immediate downstream node that the Point of Local Repair (PLR) is trying to avoid. PLR is the head-end Label-Switch Router (LSR) of a backup tunnel or a detour LSP. The Router ID of the downstream node is the preferred value.
-
-count
¶
Defines the number of tunnels to create to the specified egress point (that is, the tunnel end point). Possible values are 0 to <max_int>. The default is 1.
-
-direction
¶
Spirent Extension (for Spirent HLTAPI only).
Specifies the direction of tunnels. Possible values are egress or ingress. The default is ingress.
-
-element_handle
¶
Spirent Extension (for Spirent HLTAPI only).
RSVP ingress/egress element handles returned from the current function. This argument is required for modes modify and delete. You must specify element_type.
-
-element_type
¶
Spirent Extension (for Spirent HLTAPI only).
Specifies the type of RSVP elements under which you want to create, modify, or delete sub-objects. This argument is Mandatory . You must specify element_handle. Possible values are:
egress_sub_lsp Sub-LSP configuration under the egress tunnel egress_sub_lsp_rro RRO objects under the sub-LSP ingress_p2mp_sub_group P2MP Sub-group configuration under the ingress tunnel ingress_sub_lsp P2MP Sub-LSP configuration under the P2MP sub-group ingress_sub_lsp_ero ERO Objects under the sub-LSP ingress_sub_lsp_ero_sub_obj ERO Sub-objects under the ERO
-
-egress_ip_addr
¶
Specifies the IP address of the tunnel’s egress (end) point. The default for IPv4 is 192.85.1.1.
-
-egress_ip_step
¶
Increments egress IP addresses for multiple tunnels. The value must be in IPv4 format.
-
-egress_accept_any_tunnel_id
¶
Spirent Extension (for Spirent HLTAPI only).
Once enabled, Spirent HLTAPI will accept all tunnel IDs without having to specify them. Possible values are true (enable) and false (disable). The default value is false.
-
-egress_enable_notify_request
¶
Spirent Extension (for Spirent HLTAPI only).
Once enabled, Spirent HLTAPI will allow the emulated egress router to request notifications. Possible values are true (enable) and false (disable). The default value is false.
-
-egress_enable_point_to_multi_point
¶
Spirent Extension (for Spirent HLTAPI only).
Enables or disables P2MP mode for the egress RSVP tunnel. Possible values are true (enable) and false (disable). The default value is false.
-
-egress_src_ip_addr
¶
Spirent Extension (for Spirent HLTAPI only).
Specifies the source IP address for the RSVP PATH message sender. The default value is 192.85.1.3.
-
-egress_src_ip_addr_step
¶
Spirent Extension (for Spirent HLTAPI only).
Specifies the step value by which to generate subsequent source IP addresses. The default value is 0.0.0.0.
-
-egress_resv_custom_object_list
¶
Spirent Extension (for Spirent HLTAPI only).
Specifies a list of RSVP custom object handles for the RESV message type. This handle is returned from the
sth::emulation_rsvp_custom_object_config
function.
-
-egress_resv_tear_custom_object_list
¶
Spirent Extension (for Spirent HLTAPI only).
Specifies a list of RSVP custom object handles for the RESV TEAR message type. This handle is returned from the
sth::emulation_rsvp_custom_object_config
function.
-
-egress_sub_lsp_dest_ipv4_addr
¶
Spirent Extension (for Spirent HLTAPI only).
Specifies the destination IPv4 address for the sub-LSP under the egress RSVP tunnel. The default value is 0.0.0.0.
-
-egress_sub_lsp_rro_frr_merge_point
¶
Spirent Extension (for Spirent HLTAPI only).
When enabled, the specified IP address will be used as the merge point. Possible values are true (enable) and false (disable). The default value is false.
-
-egress_sub_lsp_rro_interface_id
¶
Spirent Extension (for Spirent HLTAPI only).
Specifies the Record Route Object (RRO) interface ID for the sub-LSP under the egress RSVP tunnel. The default value is 1.
-
-egress_sub_lsp_rro_label
¶
Spirent Extension (for Spirent HLTAPI only).
Specifies the RRO label for the sub-LSP under the egress RSVP tunnel. The default value is 16.
-
-egress_sub_lsp_rro_flags
¶
Spirent Extension (for Spirent HLTAPI only).
Specifies a list of RRO object flags under the egress RSVP tunnel. Use “|” to specify multiple flags. Possible values are:
rsvp_rro_flag_local_protection_available Local Protection Available rsvp_rro_flag_local_protection_in_use Local Protection in Use rsvp_rro_flag_bandwidth_protection Bandwidth Protection rsvp_rro_flag_node_protection Node Protection rsvp_rro_flag_node_id Node ID 0 None of above flags
The default value is 0.
-
-ero
¶
Enables the use of an Explicit Route Object (ERO). Possible values are 0 (disabled) and 1 (enabled). The default is 0. When enabled, use this argument with the -ero_list_ipv4, -ero_list_loose, and -ero_list_pfxle arguments. When disabled, all ERO objects will be deleted in the modify mode.
-
-ero_list_ipv4
¶
Specifies a list of IPv4 prefixes (that is, subobjects), one for each entry in a path message for ingress (incoming) tunnels. Use this argument with the -ero_list_loose and -ero_list_pfxlen arguments.
-
-ero_list_loose
¶
Specifies a list of L bit values in the ERO subobjects. Possible values are 1 (loose) and 0 (strict). If you specify 1 for the L bit, the subobject represents a loose hop in the explicit route. If you specify 0 for the L bit, the subobject represents a strict hop in the explicit route. The default is 0. Use this argument with the -ero_list_ipv4 and -ero_list_pfxlen arguments.
-
-ero_list_pfxlen
¶
Specifies a list of IPv4 prefix lengths for the ERO subobjects. The default is 32. This argument only applies to ingress (incoming) tunnels. Use this argument with the -ero_list_ipv4 and -ero_list_loose arguments.
-
-ero_mode
¶
Indicates whether the address of devices under test (DUTs) is to be prepended to the ERO list and whether it is a loose or strict entry. Possible values are:
- loose
- Indicates the DUT address is a loose entry. If the L bit in a subobject is set, then the value of the attribute is “loose”. The abstract node of a loose subobject is a loose node. The path between a loose node and its preceding node may include other network nodes that are not part of the strict node or its preceding abstract node.
- strict
- Indicates the DUT address is a strict entry. If the L bit in a subobject is not set, then the value of the attribute is “strict”. The abstract node of a strict subobject is a strict node. The path between a strict node and its preceding node must include only network nodes from the strict node and its preceding abstract node.
- none
- The DUT address is not prepended to the ERO list.
The default value is loose. It is recommended you use -ero_list_pfxlen, -ero_list_ipv4, and -ero_list_loose to configure ERO subobjects.
-
-ero_dut_pfxlen
¶
Indicates the prefix length to be used for the entry, if the DUT’s address is to be prepended to the ERO list. Possible values range from 0 to 32. The default value is 24. It is recommended that you use -ero_list_pfxlen, -ero_list_ipv4, and -ero_list_loose to configure ERO subobjects.
-
-extended_tunnel_id
¶
Specifies the ID for a custom tunnel. If not specified, it will be assigned the value of -ingress_ip_addr.
-
-facility_backup
¶
Disables or enables the Facility Backup feature for fast reroute. Facility Backup is a local repair method in which a bypass tunnel is used to protect one or more protected LSPs that traverse the PLR, the resource being protected, and the Merge Point, in that order. Possible values are 0 (disabled) and 1(enabled). The default is 0. You can configure this argument and -one_to_one_backup at the same time. But the two arguments cannot both be true at the same time. This argument can be used when the -fast_reroute argument is true.
-
-fast_reroute
¶
Disables or enables the use of the fast reroute feature. The fast reroute feature is used to control the backup used for the protected LSP. The FAST_REROUTE object specifies the setup and hold priorities, session attribute filters, and bandwidth to be used for protection. Possible values are 0 (disabled) and 1 (enabled). The default value is 0.
-
-fast_reroute_bandwidth
¶
Defines the bandwidth estimate for the protection path of the FAST_REROUTE object. The bandwidth estimate is measured in bytes per second. This argument must be defined in 32-bit IEEE floating point format. The default value is 0.0.
-
-fast_reroute_exclude_any
¶
Defines the exclude-any field of the FAST_REROUTE object that represents a set of attribute filters associated with a backup path, any of which render a link unacceptable. The value must be a 32-bit vector. The default is 00 00 00 00.
-
-fast_reroute_holding_priority
¶
Indicates the priority of the backup path with respect to holding resources. Possible values range from 0 (highest) to 7 (lowest). The default is 7.
-
-fast_reroute_hop_limit
¶
Defines the maximum number of extra hops the backup path is allowed to take from the current PLR node to a merge point. The default is 3.
-
-fast_reroute_include_all
¶
Indicates an element of FAST_REROUTE object that represents a set of attribute filters associated with a backup path, all of which must be present to render a link acceptable. The value must be a 32-bit vector. The default is 00 00 00 00.
-
-fast_reroute_include_any
¶
Indicates a 32-bit vector that represents a set of attribute filters associated with a backup path, any of which render a link acceptable. The default is 00 00 00 00.
-
-fast_reroute_setup_priority
¶
Defines the priority of the backup path with respect to taking resources, in the range of 0 (highest) to 7 (lowest). Setup Priority is used in deciding whether this session can preempt another session. The default is 7.
-
-gmpls_acceptable_label_set
¶
Spirent Extension (for Spirent HLTAPI only).
Specifies a list of acceptable label sets for the Generalized Multiprotocol Label Switching (GMPLS). The default value is 0.
-
-gmpls_acceptable_label_set_type
¶
Spirent Extension (for Spirent HLTAPI only).
Specifies the acceptable label set type. Possible values are:
exclusive_label_set If the label in the message matches the list, a PATH_ERR message is returned. Otherwise, a PATH message is returned using the upstream label. inclusive_label_set If the label in the message matches the list, a PATH message is returned using the upstream label, otherwise a PATH_ERR message is returned.
The default value is inclusive_label_set.
-
-gmpls_label
¶
Spirent Extension (for Spirent HLTAPI only).
Specifies the GMPLS label. The default value is 570490881.
-
-gmpls_interface_id
¶
Spirent Extension (for Spirent HLTAPI only).
Specifies the GMPLS interface ID. The default value is 1.
-
-gmpls_resv_src_ip_addr
¶
Spirent Extension (for Spirent HLTAPI only).
Specifies the reservation (RESV) source IP address for the GMPLS
-
-gmpls_suggested_label
¶
Spirent Extension (for Spirent HLTAPI only).
Specifies the suggested label for the GMPLS
-
-gmpls_te_router_id
¶
Spirent Extension (for Spirent HLTAPI only).
Specifies the TE router ID for the GMPLS. The value must be in IPv4 format. The default value is 192.0.0.1.
-
-gmpls_use_upstream_label
¶
Spirent Extension (for Spirent HLTAPI only).
Once enabled, the upstream label will be used as the egress label. Possible values are true (enable) and false (disable). The default value is true.
-
-handle
¶
Identifies the RSVP router for which to add or remove tunnels. This argument is Mandatory for -mode create.
-
-ingress_ip_addr
¶
Specifies the IP address of the tunnel’s ingress (start) point. The default is 192.85.1.3.
-
-ingress_ip_step
¶
Specifies the increment for IP addresses for multiple ingress tunnels. The default increment is 1. The value must be in IPv4 format.
-
-ingress_enable_bfd
¶
Spirent Extension (for Spirent HLTAPI only).
Enables or disables Bidirectional Forwarding Detection (BFD) for the ingress RSVP tunnel. Possible values are true (enable) and false (disable). The default value is false.
-
-ingress_bfd_message_format
¶
Spirent Extension (for Spirent HLTAPI only).
Specifies the BFD message format. Possible values are:
bfd_cc BFD Continuity Check type bfd_cv BFD Connectivity Verification Type
The default value is bfd_cc.
-
-ingress_bfd_my_discriminator
¶
Spirent Extension (for Spirent HLTAPI only).
Specifies the My Discriminator value in the BFD message. My Discriminator is a unique, non-zero discriminator value generated by the transmitting system, used to demultiplex multiple BFD sessions between the same pair of systems. The default value is 10.
-
-ingress_dst_ip_addr
¶
Spirent Extension (for Spirent HLTAPI only).
Specifies the destination IP address for the RSVP PATH message. This argument is available for P2P tunnels. The default value is 192.85.1.1.
-
-ingress_dst_ip_addr_step
¶
Spirent Extension (for Spirent HLTAPI only).
Specifies the step value by which to generate subsequent destination IP addresses of the RSVP PATH message. The default value is 0.0.0.0.
-
-ingress_dst_ipv4_address
¶
Spirent Extension (for Spirent HLTAPI only).
Specifies the destination IP address for the sub-LSP. The default value is 127.0.0.1.
-
-ingress_enable_ero_compression
¶
Spirent Extension (for Spirent HLTAPI only).
Enables or disables explicit route object compression for the ingress RSVP tunnel. Possible values are true (enable) and false (disable). The default value is true.
-
-ingress_enable_generalized_label_request
¶
Spirent Extension (for Spirent HLTAPI only).
Enables or disables generalized label request for the ingress RSVP tunnel. Possible values are true (enable) and false (disable). The default value is false.
-
-ingress_enable_generic_associated_channel
¶
Spirent Extension (for Spirent HLTAPI only).
Enables or disables generic associated channel (G-ACh) for the ingress RSVP tunnel. Possible values are true (enable) and false (disable). The default value is false.
-
-ingress_enable_generic_associated_label
¶
Spirent Extension (for Spirent HLTAPI only).
Enables or disables generic associated label (GAL) for the ingress RSVP tunnel. Possible values are true (enable) and false (disable). The default value is false.
-
-ingress_enable_notify_request
¶
Spirent Extension (for Spirent HLTAPI only).
Once enabled, Spirent HLTAPI will allow the ingress router to request notifications. Possible values are true (enable) and false (disable). The default value is false.
-
-ingress_enable_point_to_multipoint
¶
Spirent Extension (for Spirent HLTAPI only).
Enables or disables P2MP RSVP tunnel for the ingress RSVP tunnel. Possible values are true (enable) and false (disable). The default value is false.
-
-ingress_enable_protection_object
¶
Spirent Extension (for Spirent HLTAPI only).
Enables or disables protection objects for the ingress RSVP tunnel. Possible values are true (enable) and false (disable). The default value is false.
-
-ingress_enable_unique_sub_group_session_name
¶
Spirent Extension (for Spirent HLTAPI only).
Enables or disables unique sub-group session names for the ingress RSVP tunnel. Possible values are true (enable) and false (disable). The default value is false.
-
-ingress_enable_unique_session_name
¶
Spirent Extension (for Spirent HLTAPI only).
Enables or disables unique session names for the ingress RSVP tunnel. Possible values are true (enable) and false (disable). The default value is false.
-
-ingress_enable_upstream_label
¶
Spirent Extension (for Spirent HLTAPI only).
Enables or disables upstream labels for the ingress RSVP tunnel. Possible values are true (enable) and false (disable). The default value is false.
-
-ingress_encapsulation
¶
Spirent Extension (for Spirent HLTAPI only).
Specifies the encapsulation type for the ingress RSVP tunnel. Possible values are:
udp BFD packet encapsulate over UDP raw BFD packet encapsulate over RAW
The default value is udp.
-
-ingress_extended_tunnel_id_step
¶
Spirent Extension (for Spirent HLTAPI only).
Specifies step value by which to generate subsequent extended tunnel IDs in the ingress RSVP tunnel. The value must be in IPv4 format. The default value is 0.0.0.0.
-
-ingress_generalized_pid
¶
Spirent Extension (for Spirent HLTAPI only).
Specifies the generalized PID (G-PID) for the ingress RSVP tunnel. The default value is 0.
-
-ingress_linkprotection_flag
¶
Spirent Extension (for Spirent HLTAPI only).
Specifies a list of link protection flags for the ingress RSVP tunnel. Possible values are listed below:
rsvp_link_protection_flag_dedicated_one_plus_one Dedicated One_plus_one rsvp_link_protection_flag_dedicated_one_to_one Dedicated One-to-One rsvp_link_protection_flag_enhanced Enhanced rsvp_link_protection_flag_extra_traffic Extra Traffic rsvp_link_protection_flag_shared Shared rsvp_link_protection_flag_unprotected Unprotected
Use “|” to specify multiple flags.
-
-ingress_lsp_encoding_type
¶
Spirent Extension (for Spirent HLTAPI only).
Specifies the LSP encoding type for the ingress RSVP tunnel. Possible values are:
ansi_etsi ANSI/ETSI digital_wrapper Digital Wrapper ethernet Ethernet fiber Fiber fiberchannel Fiber Channel lambda_photonic Lambda (Photonic) packet Packet reserved1 Reserved1 reserved2 Reserved2 reserved3 Reserved3 sig_sat Sig Sat userdefined User-defined
-
-ingress_lsp_encoding_value
¶
Spirent Extension (for Spirent HLTAPI only).
Specifies the LSP encoding value when -ingress_lsp_encoding_type is set to userdefined. The default value is 12.
-
-ingress_lsp_id
¶
Spirent Extension (for Spirent HLTAPI only).
Specifies the ID of the first LSP in the ingress RSVP tunnel. Possible values range from 1 to 65535. The default value is 1.
-
-ingress_lsp_id_step
¶
Spirent Extension (for Spirent HLTAPI only).
Specifies the step value by which to generate subsequent LSP IDs. Possible values range from 1 to 65535. The default value is 1.
-
-ingress_make_before_break
¶
Spirent Extension (for Spirent HLTAPI only).
Enables or disables make-before-break for the ingress RSVP tunnel. Possible values are true (enable) and false (disable). The default value is false.
-
-ingress_make_before_break_retry_algorithm
¶
Spirent Extension (for Spirent HLTAPI only).
Specifies the retry algorithm to use when signaling the backup LSPs during the make-before-break. Possible values are:
loop_continuous Loop continuously loop_once Loop once
The default value is loop_continuous.
-
-ingress_make_before_break_retry_time
¶
Spirent Extension (for Spirent HLTAPI only).
Specifies the make-before-break retry time, in ms
-
-ingress_ip_multicast_group
¶
Spirent Extension (for Spirent HLTAPI only).
Specifies the multicast group handle for the ingress tunnel. This handle is returned from
sth::emulation_multicast_config
function.
-
-ingress_p2mp_id
¶
Spirent Extension (for Spirent HLTAPI only).
Specifies the P2MP identifier in IPv4 format. The default value is 0.0.0.1.
-
-ingress_switching_type
¶
Spirent Extension (for Spirent HLTAPI only).
Specifies the switching type for the ingress RSVP tunnel. Possible values are:
fsc Fiber Switch Capable l2sc Layer 2 Switch Capable lsc Lambda Swicth Capable psc1 Packet Switch Capable 1 psc2 Packet Switch Capable 2 psc3 Packet Switch Capable 3 psc4 Packet Switch Capable 4 tdmc Time-Division-Multiplex Capable userdefined User-defined
The default value is psc1.
-
-ingress_path_custom_object_list
¶
Spirent Extension (for Spirent HLTAPI only).
Specifies a list of RSVP custom object handles for the PATH message type. This handle is returned from the
sth::emulation_rsvp_custom_object_config
function.
-
-ingress_path_tear_custom_object_list
¶
Spirent Extension (for Spirent HLTAPI only).
Specifies a list of RSVP custom object handles for the PATH TEAR message type. This handle is returned from the
sth::emulation_rsvp_custom_object_config
function.
-
-ingress_sub_lsp_dest_ipv4_addr
¶
Spirent Extension (for Spirent HLTAPI only).
Specifies the destination IPv4 address of the sub-LSP under the ingress RSVP tunnel. The default value is 0.0.0.0.
-
-ingress_sub_lsp_ero_interface_id
¶
Spirent Extension (for Spirent HLTAPI only).
Specifies the interface ID for the sub-LSP Explicit Routes Object (ERO) under the ingress RSVP tunnel. The default value is 0.
-
-ingress_sub_lsp_ero_route_type
¶
Spirent Extension (for Spirent HLTAPI only).
Specifies the explicit route type for the sub-LSP ERO object under the ingress RSVP tunnel. Possible values are:
rsvp_strict Two nodes must be adjacent to one another with no intermediate hops separating them rsvp_loose Two nodes need not be adjacent
The default value is rsvp_strict.
-
-ingress_sub_lsp_ero_start_ip_list
¶
Spirent Extension (for Spirent HLTAPI only).
Specifies a list of starting IPv4 addresses for the sub-LSP ERO under the ingress RSVP tunnel. The default value is 0.0.0.0.
-
-ingress_sub_lsp_ero_prefix_length
¶
Spirent Extension (for Spirent HLTAPI only).
Specifies the IPv4 address prefix length for the sub-LSP ERO under the ingress RSVP tunnel. The default value is 0.
-
-ingress_switching_value
¶
Spirent Extension (for Spirent HLTAPI only).
Specifies the switching value when -ingress_switching_type is set to userdefined. The default value is 0.
-
-lsp_id_count
¶
Specifies the number of LSPs to create on a single tunnel handle. Possible values range from 1 to 20. The default is 1.
-
-min_policed_size
¶
Specifies the minimum policed unit size: the byte size of the smallest packet generated by the sending application. Although this argument is supported by Spirent HLTAPI, it may not be supported in future versions. Therefore, do not use this argument in new scripts.
-
-one_to_one_backup
¶
Disables or enables the use of the one-to-one backup feature for fast reroute. In the one-to-one backup method, a label-switched path is established that intersects the original LSP somewhere downstream of the point of link or node failure. Possible values are 0 (disabled) and 1 (enabled). The default is 0. You must specify -fast_reroute as true if you use this argument. You can configure this argument and -facility_backup at the same time. But the two arguments cannot both be true at the same time.
-
-plr_id
¶
Defines the IPv4 address that identifies the beginning point of the detour LSP which is a PLR. Any local address on the PLR can be used. The value should be in the IPv4 format.
-
-mode
¶
Specifies the action to perform on tunnels for the RSVP emulated router. Possible values are:
create - Creates an RSVP tunnel for the RSVP emulated router identified by the -handle argument. modify - Changes the configuration for the tunnel identified by the -tunnel_pool_handle argument. delete - Deletes the tunnels identified by the -tunnel_pool_handle argument.
-
-p2mp_sub_group_id
¶
Spirent Extension (for Spirent HLTAPI only).
Specifies the P2MP subgroup ID for the RSVP tunnel. The default value is 0.
-
-p2mp_sub_group_originator_id
¶
Spirent Extension (for Spirent HLTAPI only).
Specifies the subgroup originator ID for the P2MP. The value must be in IPv4 format. The default value is 0.0.0.0.
-
-port_handle
¶
Port handle of the test port running RSVP emulation.
-
-rro
¶
Enables the route record in the tunnel. Possible values are 0 (disabled) and 1 (enabled). The default is 0.
-
-rsvp_behavior
¶
Identifies the node as an ingress node or egress node. The default is rsvpEgress. Possible values are:
rsvpIngress - Indicates the node is an ingress node. rsvpEgress - Indicates the node is an egress node.
-
-send_detour
¶
Disables or enables the generation of the fast reroute DETOUR object, using the values in the PLR list. The DETOUR object is used in the one-to-one backup method to identify detour LSPs. You must specify -fast_reroute as true if you use this argument. Possible values are 0 (disabled) and 1 (enabled). The default is 0.
-
-sender_peak_data_rate
¶
Replaced by -sender_tspec_peak_data_rate. Supported in this version but will not be supported in future versions. Therefore, do not use this argument in new scripts.
-
-sender_token_bkt_rate
¶
Replaced by -sender_tspec_token_bkt_rate. Supported in this version but may not be supported in future versions. Therefore, do not use this argument in new scripts.
-
-sender_token_bkt_size
¶
Determines the amount of information your server can process at any given time. Supported in this version but will not be supported in future versions. Therefore, do not use this argument in new scripts.
-
-sender_tspec_max_pkt_size
¶
Specifies the maximum packet size in bytes. The maximum packet size is the biggest packet that will conform to the traffic specifications. Packets larger than this size sent into the network may not receive QoS-controlled service because they do not meet the traffic specification. The default is 4096. This argument only applies to ingress (incoming) tunnels.
-
-sender_tspec_min_policed_size
¶
Specifies the minimum policed size in bytes. This size includes the application data and all protocol headers at or above the IP level (IP, TCP, UDP, RTP, etc.). It does not include the link-level header size, because these headers will change in size as the packet crosses different portions of the internetwork. The default is 64. This argument only applies to ingress (incoming) tunnels.
-
-sender_tspec_peak_data_rate
¶
Specifies the peak data rate in bytes of IP datagrams per second. The default is 512000. This argument only applies to ingress (incoming) tunnels.
-
-sender_tspec_token_bkt_rate
¶
Specifies the token bucket rate in bytes of IP datagrams per second. The default is 128000. This argument only applies to ingress (incoming) tunnels.
-
-sender_tspec_token_bkt_size
¶
Specifies the token bucket size in bytes. The default is 256000. This argument only applies to ingress (incoming) tunnels.
-
-session_attr
¶
Enables or disables whether to include the SESSION_ATTRIBUTE object in the Path message. Possible values are 0 (disable) and 1 (enable). The default is 1. This argument only applies to ingress (incoming) tunnels.
-
-session_attr_bw_protect
¶
Indicates to the PLRs along the protected LSP path whether a backup path with a bandwidth is guaranteed. Possible values are 0 (disable) and 1 (enable). The default is 0. This argument only applies to ingress (incoming) tunnels.
-
-session_attr_flags
¶
Sets the following session attribute flags at the same time:
-session_attr_hold_priority (bit 0) -session_attr_label_record (bit 1) -session_attr_se_style (bit 2) -session_attr_bw_protect (bit 3) -session_attr_node_protect (bit 4)
You can use this argument to set the session attribute flags at one time instead of setting each flag individually for those five arguments (listed above). Possible values are from 0 to 255. The default is 0. For example, to enable the first five flags, specify -session_attr_flags 31. The RSVP protocol converts the binary setting (11111) to its decimal equivalent (31). This argument only applies to ingress (incoming) tunnels.
-
-session_attr_hold_priority
¶
Specifies the priority at which resources assigned to this session will be reserved. Possible values range from 0 to 7, with 0 representing the highest priority. The default is 7. RSVP-TE uses the holding priority to determine whether this session can be preempted by another session. This argument only applies to ingress (incoming) tunnels.
-
-session_attr_label_record
¶
Specifies whether to include label information when doing a record route. Possible values are 0 (disable) and 1 (enable). The default is 0. There are two record_route subobjects: IP addresses and labels. Either the Ip address at each hop in the path is recorded or the label used at every hop is recorded. This argument only applies to ingress (incoming) tunnels.
-
-session_attr_local_protect
¶
Specifies whether transit routers are permitted to use a local repair mechanism which may result in violation of the explicit route object. When a fault is detected on an adjacent downstream link or node, a transit router can reroute traffic for fast service restoration. Possible values are 0 (disable) and 1 (enable). The default is 0. This argument only applies to ingress (incoming) tunnels.
-
-session_attr_merge
¶
Supported in this version but will not be supported in future versions. Therefore, do not use this argument in new scripts.
-
-session_attr_name
¶
Specifies a name for the session. The default name is Tunnel1. This argument only applies to ingress (incoming) tunnels.
-
-session_attr_node_protect
¶
Indicates to the point of local repairs (PLRs) along a protected LSP path whether a backup path which bypasses at least the next node of the protected LSP is desired Possible values are 0 (disable) and 1 (enable). The default is 0. This argument only applies to ingress (incoming) tunnels.
-
-session_attr_ra_exclude_any
¶
Sets the affinity bits in the session attribute object that are excluded. Possible value are 0 to 0xFFFFFFFF. The default is 0. This argument only applies to ingress (incoming) tunnels.
-
-session_attr_ra_include_all
¶
Set all the affinity bits in the session attribute object. Possible value are 0 to 0xFFFFFFFF. The default is 0. This argument only applies to ingress (incoming) tunnels.
-
-session_attr_ra_include_any
¶
Sets the affinity bits in the session attribute object that are included. Possible value are 0 to 0xFFFFFFFF. The default is 0. This argument only applies to ingress (incoming) tunnels.
-
-session_attr_resource_affinities
¶
Specifies whether to enable resource affinities. Possible values are 0 (disable) and 1 (enable). The default is 0. This argument only applies to ingress (incoming) tunnels.
-
-session_attr_se_style
¶
Indicates whether the tunnel ingress node will reroute this tunnel without tearing it down. A tunnel egress node should use the shared explicit (SE) reservation style when responding with a Resv message. Possible values are 0 (disable) and 1 (enable). The default is 0. SE style reservations allow an existing LSP tunnel to share bandwidth with itself. This argument only applies to ingress (incoming) tunnels.
-
-session_attr_setup_priority
¶
Specifies the priority for taking resources. Possible values range from 0 to 7, with 0 representing the highest priority. The default is 7. RSVP-TE uses the setup priority to determine whether this session can preempt another session.
Note
The setup priority should never be higher than the holding priority that you specified with the -session_attr_hold_priority argument for a given session.
-
-tunnel_count
¶
Spirent Extension (for Spirent HLTAPI only).
Number of tunnels to create. Possible values range from 0 to 65535. The default is 1.
-
-tunnel_id_start
¶
Specifies the starting tunnel ID used in the RSVP session. Possible values range from 0 to 65535. The default is 1.
-
-tunnel_id_step
¶
Specifies the increment to use to define the tunnel ID for multiple tunnels. If 0, all the tunnels belong to the same RSVP session. Possible values range from 0 to <max_int>. The default is 1.
-
-tunnel_pool_handle
¶
Specifies the RSVP handle(s) to use when mode is set to modify or delete. This argument is not valid for create mode. Instead, use -handle.
Arguments Unsupported by Save as HLTAPI¶
The following Spirent HLTAPI arguments are currently not supported by the Save as HLTAPI function:
-session_attr_flags
-session_attr_merge
Vendor Specific Arguments Processed by Spirent HLTAPI Wrapper¶
-
-tunnel_id_count
¶
The number of tunnels to create on a single tunnel handle. Possible values range from 0 to 65535.
Vendor Specific Arguments Ignored by Spirent HLTAPI Wrapper¶
-ingress_enable_interface_creation
-emulation_type
-enable_append_connected_ip
-enable_prepend_tunnel_head_ip
-enable_prepend_tunnel_leaf_ip
-enable_send_as_rro
-enable_send_as_srro
-ingress_bandwidth
-ingress_bandwidth
-ingress_ip_count
-lsp_id_start
-path_tear_tlv
-path_tlv
-no_write
-egress_behavior
-reservation_style
-record_route
-egress_ip_count
Note
For more information about Spirent HLTAPI Wrapper, refer to Chapter 4 Spirent HLTAPI Wrapper in Spirent HLTAPI Programmer’s Reference.
Cisco-specific Arguments¶
The following arguments are specific to the Cisco HLTAPI but are not supported by Spirent HLTAPI:
-adspec
-adspec_comp_mtu
-adspec_csum
-adspec_ctot
-adspec_ctrl_load
-adspec_dsum
-adspec_dtot
-adspec_est_path_bw
-adspec_guaranteed_svc
-adspec_hop_count
-adspec_min_path_latency
-destination_ip
-duration
-ero_list_as_num
-ero_list_ipv6
-extended_tunnel_id_type
-interval
-lsp_id_start
-lsp_list
-mtu
-rro_list_flags
-rro_list_ipv4
-rro_list_ipv6
-rro_list_label
-rro_list_pfxlen
-rro_list_type
-sender_ad_spec
-sender_cos
-sender_ip_addr
-session_attr_reroute
-ttl
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):
tunnel_handle A list of handles that identify the tunnels created by
the ``sth::emulation_rsvp_tunnel_config`` function.
status Success (1) or failure (0) of the operation.
log An error message (if the operation failed).
Description¶
The sth::emulation_rsvp_tunnel_config
function creates, modifies,
or deletes an LSP tunnel. Use the -mode argument to specify the action to
perform. (See the -mode argument description for information about the
actions.)
When you create an RSVP tunnel, use the -handle argument. When you modify or delete a tunnel, use the -tunnel_pool_handle argument to specify which tunnel to modify or delete.
In addition to specifying the router, you must also provide one or more of the following pieces of information when you create an ingress tunnel:
- The source IP address (-ingress_ip_addr) for the tunnel’s ingress (start) point
- The destination IP address (-egress_ip_addr) for the tunnel’s egress (end) point
- The router handle (the -handle argument) from which to add tunnels
During the test, use the sth::emulation_rsvp_control
function to
control individual LSP tunnels.
Examples¶
#### HLTAPI for Tcl ####
The following example creates a tunnel for the specified RSVP session on the reserved port:
sth::emulation_rsvp_tunnel_config -mode create \
-count 1 \
-egress_ip_addr 90.0.0.4 \
-egress_ip_step 0.0.0.1 \
-ero 1 \
-ero_list_ipv4 {220.1.1.1 12.0.1.0} \
-ero_list_loose {0 1} \
-ero_list_pfxlen {32 24} \
-handle $rsvpSessionHandle \
-ingress_ip_addr 90.0.0.3 \
-ingress_ip_step 0.0.0.1 \
-sender_tspec_max_pkt_size 4096 \
-sender_tspec_min_policed_size 64 \
-sender_tspec_peak_data_rate 512000 \
-sender_tspec_token_bkt_rate 128000 \
-sender_tspec_token_bkt_size 256000 \
-session_attr 1 \
-session_attr_bw_protect 1 \
-session_attr_hold_priority 0 \
-session_attr_label_record 1 \
-session_attr_local_protect 1 \
-session_attr_name Tunnel1 \
-session_attr_node_protect 1 \
-session_attr_ra_exclude_any 0 \
-session_attr_ra_include_all 0 \
-session_attr_ra_include_any 0 \
-session_attr_resource_affinities 0 \
-session_attr_se_style 0 \
-session_attr_setup_priority 7 \
-tunnel_id_start 100 \
-tunnel_id_step 5
Sample Output:
{tunnel_handle rsvpingresstunnelparams1} {status 1}
#### HLTAPI for Python ####
The following example creates a tunnel for the specified RSVP session on the reserved port:
device_ret1_route0 = sth.emulation_rsvp_tunnel_config (
mode = 'create',
handle = device_ret1_hdl,
direction = 'ingress',
rsvp_behavior = 'rsvpIngress',
lsp_id_count = '1',
tunnel_count = '1',
session_attr_ra_exclude_any= '0',
sender_token_bkt_size= '0',
min_policed_size = '20',
tunnel_id_start = '1',
sender_tspec_token_bkt_size= '0',
session_attr_ra_include_all= '0',
egress_ip_addr = '192.85.1.1',
session_attr_hold_priority= '7',
ingress_ip_addr = '192.85.1.3',
session_attr_resource_affinities= '0',
sender_peak_data_rate= '0',
session_attr = '0',
sender_tspec_peak_data_rate= '0',
sender_tspec_min_policed_size= '20',
session_attr_ra_include_any= '0',
extended_tunnel_id = '0.0.0.0',
sender_tspec_max_pkt_size= '1500',
sender_token_bkt_rate= '0',
sender_tspec_token_bkt_rate= '0',
session_attr_setup_priority= '7');
Sample Output:
{'status': '1', 'tunnel_handle': 'rsvpingresstunnelparams1'}
#### HLTAPI for Perl ####
The following example creates a tunnel for the specified RSVP session on the reserved port:
my %device_ret0_route0 = sth::emulation_rsvp_tunnel_config (
mode => 'create',
handle => "$device_ret0_hdl",
direction => 'ingress',
rsvp_behavior => 'rsvpIngress',
session_attr_local_protect=> '1',
session_attr_se_style=> '1',
session_attr_bw_protect=> '0',
session_attr_node_protect=> '0',
session_attr_label_record=> '0',
lsp_id_count => '1',
tunnel_count => '2',
session_attr_ra_exclude_any=> '1',
sender_token_bkt_size=> '10',
min_policed_size => '20',
tunnel_id_start => '1',
sender_tspec_token_bkt_size=> '10',
session_attr_ra_include_all=> '1',
egress_ip_addr => '192.85.1.1',
session_attr_hold_priority=> '7',
ingress_ip_addr => '192.85.1.3',
session_attr_resource_affinities=> '1',
sender_peak_data_rate=> '20',
session_attr => '1',
sender_tspec_peak_data_rate=> '20',
sender_tspec_min_policed_size=> '20',
session_attr_ra_include_any=> '1',
extended_tunnel_id => '0.0.0.0',
sender_tspec_max_pkt_size=> '1500',
sender_token_bkt_rate=> '20',
sender_tspec_token_bkt_rate=> '20',
session_attr_setup_priority=> '7',
ero_mode => 'loose',
ero_dut_pfxlen => '24',
ero => '1',
ero_list_loose => '1 0 ',
ero_list_ipv4 => '192.0.1.1 192.0.1.2 ',
ero_list_pfxlen => '24 24 ',
send_detour => '1',
avoid_node_id => '0.0.1.1',
plr_id => '0.0.0.1');
Sample Output:
$VAR1 = 'tunnel_handle';
$VAR2 = 'rsvpingresstunnelparams2';
$VAR3 = 'status';
$VAR4 = '1';
End of Procedure Header
sth::emulation_rsvpte_tunnel_control¶
Purpose¶
Opens or closes RSVP tunnel, that is, connects or shuts down the emulated egress or ingress tunnel.
Synopsis¶
Note
M indicates that the argument is Mandatory .
sth::emulation_rsvpte_tunnel_control [-handle <rsvp_tunnle_handle> M] [-action {connect | tear_down_outbound | tear_down_inbound} M]
Arguments¶
-
-handle
¶
Specifies the RSVP tunnel to connect or shut down, which is returned by the sth::emulation_rsvp_tunnel_config command. This argument is Mandatory .
-
-action
¶
Identifies the action to perform on the RSVP tunnel. Possible values are connect, tear_down_outbound, and tear_down_inbound. This argument is mandatory. The actions are described below:
connect - Opens the RSVP tunnel that is specified by the -handle argument. tear_down_outbound - Stops the ingress tunnel that is connected to the emulated RSVP router which sends the outbound traffic to SUT. tear_down_inbound - Stops the egress tunnel that is connected to the emulated RSVP router which sends the inbound traffic to SUT.
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_rsvpte_tunnel_control
function controls the connecting and
tearing down of RSVP tunnels. When you call the
sth::emulation_rsvpte_tunnel_control
function, you specify a tunnel handle.
Spirent HLTAPI applies the specified action to the specified RSVP tunnel.
Examples¶
#### HLTAPI for Tcl #### To connect an emulated RSVP tunnel:
sth::emulation_rsvpte_tunnel_control -action connect \
-handle rsvptunnel1
To tear down an inbound tunnel:
sth::emulation_rsvpte_tunnel_control -action tear_down_inbound \
-handle rsvptunnel1
To tear down an outbound tunnel:
sth::emulation_rsvpte_tunnel_control -action tear_down_outbound \
-handle rsvptunnel1
- Sample Output::
- {status 1}
#### HLTAPI for Python #### To connect an emulated RSVP tunnel:
ctrl_ret2 = sth.emulation_rsvpte_tunnel_control (
handle = device_list,
action = 'connect');
Sample Output:
{'status': '1'}
#### HLTAPI for Perl #### To connect an emulated RSVP tunnel:
my %ctrl_ret2 = sth::emulation_rsvpte_tunnel_control (
handle => "$device_list",
action => 'connect');
Sample Output:
$VAR1 = 'status';
$VAR2 = '1';
End of Procedure Header
sth::emulation_rsvp_tunnel_info¶
Purpose¶
Returns information about both incoming and outgoing RSVP tunnels.
Synopsis¶
Note
M indicates that the argument is Mandatory .
sth::emulation_rsvp_tunnel_info [-handle <rsvp_handle> M]
Arguments¶
-
-handle
¶
Specifies the router for which you want information. 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 Retrieves a value indicating the success (1) or failure
(0) of the operation.
log Retrieves a message describing the last error that
occurred during the operation. If the operation was
successful - {status 1} - the log value is null.
total_lsp_count Number of reserve LSPs set up
inbound_lsp_count Number of tail-end (egress) LSPs set up
outbound_lsp_count Number of head-end (ingress) LSPs set up
outbound_up_count Number of LSPs in the up state
outbound_down_count Number of LSPs in the down state
outbound_connect_count Number of LSPs connecting
source List of source IP addresses for the tunnels
direction List of directions for each tunnel (inbound or
outbound)
ingress_ip List of ingress IP addresses for the tunnels
egress_ip List of egress IP address for the tunnels
tunnel_id List of tunnel IDs
lsp_id List of tunnel LSP IDs
label List of tunnel labels
Cisco-specific returned values::
The following returned values are specific to the Cisco HLTAPI but are not supported by Spirent HLTAPI:
-outbound_lsps
-inbound_lsps
Description¶
This function returns the requested data and a status value (1 for success). If there is an error, the function returns the status value (0) and an error message. Function return values are formatted as a keyed list (supported by the Tcl extension software - TclX). Use the TclX function keylget to retrieve data from the keyed list. (See Return Values for a description of each key.)
Examples¶
#### HLTAPI for Tcl ####
Sample Input:
sth::emulation_rsvp_tunnel_info -handle router1
Sample Output:
{source 90.0.0.3 90.0.0.4} {direction outbound inbound}
{ingress_ip 90.0.0.3 90.0.0.4} {egress_ip 90.0.0.4 90.0.0.3}
{tunnel_id 20001 20002} {lsp_id 1 1} {label 16 101}
{status 1}
#### HLTAPI for Python ####
Sample Input:
results_ret4 = sth.emulation_rsvp_tunnel_info (
handle = device);
Sample Output:
{'status': '1', 'egress_ip': '', 'source': '', 'outbound_up_count': '0',
'outbound_lsp_count': '1', 'direction': '', 'total_lsp_count': '1',
'inbound_lsp_count': '0', 'tunnel_id': '', 'ingress_ip': '',
'outbound_connect_count': '0', 'outbound_down_count': '0', 'lsp_id': '',
'label': '', 'outbound_lsps': 'N/A'}
#### HLTAPI for Perl ####
Sample Input:
my %results_ret4 = sth::emulation_rsvp_tunnel_info (
handle => "$device");
Sample Output:
$VAR1 = 'outbound_lsps';
$VAR2 = 'N/A';
$VAR3 = 'ingress_ip';
$VAR4 = '';
$VAR5 = 'source';
$VAR6 = '';
$VAR7 = 'egress_ip';
$VAR8 = '';
$VAR9 = 'status';
$VAR10 = '1';
$VAR11 = 'tunnel_id';
$VAR12 = '';
...
End of Procedure Header