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

  1. M indicates that the argument is Mandatory .
  2. 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
  1. 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 for Scaling 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

  1. RSVP needs to periodically refresh its reservations in the network by re-signaling them.
  2. With RSVP, a reservation goes away only if it is explicitly removed from the network by RSVP or if the reservation “times out”.
  3. 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.
  4. 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

The sth::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