Session Functions¶
sth::arp_control¶
Purpose¶
This is a Spirent Extension created to perform Address Resolution Protocol (ARP) on specified ports, devices and streamblocks
Synopsis¶
Note
M indicates that the argument is Mandatory .
sth::arp_control [-arp_target {all|alldevice|allstream|port|stream|device} M] [-arpnd_report_retrieve {0|1}] [-arp_cache_retrieve {0|1}] [-handle <list of streamblock handles or device handles> M] Mandatory when -arp_target stream|device [-port_handle <list of port handles> M] Mandatory when -arp_target port [-wait {true|false}]
Arguments¶
-
-arp_target
¶
Specifies the range of objects on which ARP will be performed. This argument is mandatory. Possible values are listed below:
port - ARP will be applied to ports specified by -port_handle stream - ARP will be applied to streams specified by -handle device - ARP will be applied to devices specified by -handle all - ARP will be applied to all streamblocks, devices, and ports allstream - ARP will be applied to all streamblocks alldevice - ARP will be applied to all devices
The default is port.
-
-arp_cache_retrieve
¶
Determines whether to retrieve the ARP cache table. Possible values are 1 and 0. When it is set to 1, Spirent HLTAPI will retrieve the ARP cache table. The default is 0.
-
-arpnd_report_retrieve
¶
Determines whether to retrieve the ARP or Neighbor Discovery (ND) statistics after each ARP/ND operation. Possible values are 1 and 0. When it is set to 1, Spirent HLTAPI will retrieve the ARP/ND statistics. The default is 0.
-
-handle
¶
Specifies a list of handles of the streamblocks or devices on which ARP is to be performed. This argument is Mandatory when -arp_target is set to stream or device.
-
-port_handle
¶
Specifies a list of handles of the ports on which ARP is to be performed. This argument is Mandatory when -arp_target is set to port.
-
-wait
¶
Spirent Extension (for Spirent HLTAPI only).
Determines whether the command should wait for all ARP/ND sessions to finish. Possible values are true and false. The default value is true.
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
arpnd_status Success (1) or failure (0) of the overall ARP operation
When -arp_cache_retrieve is set to 1, key arpnd_cache is returned with the following details:
arpnd_cache
<port_handle>.<arpnd_cache0>.location Host name
<port_handle>.<arpnd_cache0>.ip Host IP address
<port_handle>.<arpnd_cache0>.gateway_ip Gateway IP address
<port_handle>.<arpnd_cache0>.resolved_mac Resolved MAC address
When -arp_cache_retrieve is set to 1, key arpnd_cache is returned with the following details:
arpnd_report
<port_handle>.<arpnd_report>.arpnd_status ARP status
<port_handle>.<arpnd_report>.failed_arpnd_count Number of failed ARP
operations
<port_handle>.<arpnd_report>.successful_arpnd_count Number of successful
ARP operations
<port_handle>.<arpnd_report>.attempted_arpnd_count Total ARP attempts
Description¶
The sth::arp_control
function starts Address Resolution Protocol (ARP) on specified
ports, devices and streamblocks. Use the -arp_target argument to specify the
range of the objects on which you want to run ARP. (See -arp_target for more
information about the usage.)
Examples¶
To perform ARP on all devices:
set arp [sth::arp_control -arp_target alldevice \
-arpnd_report_retrieve 1 \
-arp_cache_retrieve 1]
Sample Output:
{status 1} {port1 {{arpnd_cache0 {{location Router1} {ip 30.1.1.2} {gateway_ip
30.1.1.1} {resolved_mac 00:00:01:00:00:01}}} {arpnd_cache1 {{location Router1}
{ip 3001::2} {gateway_ip 3001::1} {resolved_mac 00:00:01:00:00:01}}}
{arpnd_cache2 {{location StreamBlock_1-2} {ip 30.1.1.2} {gateway_ip 30.1.1.1}
{resolved_mac 00:30:96:a9:94:0a}}} {arpnd_cache3 {{location StreamBlock_6} {ip
30.1.1.2} {gateway_ip 30.1.1.1} {resolved_mac 00:30:96:a9:94:0a}}}}} {port2
{{arpnd_cache0 {{location Router2} {ip 40.1.1.2} {gateway_ip 40.1 .1.1}
{resolved_mac 00:00:01:00:00:01}}} {arpnd_cache1 {{location Router2} {ip
2001:0:1:1::1} {gateway_ip 2001:0:1:1::2} {resolved_mac 00:00:01:00:00:01}}}
{arpnd_cache2 {{location StreamBlock_4-1} {ip 2001:0:1:1::1} {gateway_ip
2001:0:1:1::2} {resolved_mac 00:30:96:a9:94:0a}}} {arpnd_cache3 {{location
StreamBlock_7} {ip 2001:0:1:1::1} {gateway_ip 2001:0:1:1::2} {resolved_mac
00:30:96:a9:94:0a}}}}} {arpnd_report {{port1 {{arpnd_status SUCCESSFUL}
{failed_arpnd_count 0} {successful_arpnd_count 2} {attempted_arpnd_count 2 }}}
{port2 {{arpnd_status SUCCESSFUL} {failed_arpnd_count 0} {successful_arpnd_count
2} {attempted_arpnd_count 2}}}}} {arpnd_status 1}
To perform ARP on all Streamblocks:
set arp [sth::arp_control -arp_target allstream \
-arpnd_report_retrieve 1 \
-arp_cache_retrieve 1]
Sample Output:
{status 1} {port1 {{arpnd_cache0 {{location Router1} {ip 30.1.1.2} {gateway_ip
30.1.1.1} {resolved_mac 00:30:96:a9:94:0a}}} {arpnd_cache1 {{location Router1}
{ip 3001::2} {gat eway_ip 3001::1} {resolved_mac 00:30:96:a9:94:0a}}}
{arpnd_cache2 {{location StreamBlock_1-2} {ip 30.1.1.2} {gateway_ip 30.1.1.1}
{resolved_mac 00:30:96:a9:94:0a}}} {arpndcache3 {{location StreamBlock_6} {ip
30.1.1.2} {gateway_ip 30.1.1.1} {resolved_mac 00:30:96:a9:94:0a}}}}} {port2
{{arpnd_cache0 {{location Router2} {ip 40.1.1.2} {gateway_ip 40.1 .1.1}
{resolved_mac 00:30:96:a9:94:0a}}} {arpnd_cache1 {{location Router2} {ip
2001:0:1:1::1} {gateway_ip 2001:0:1:1::2} {resolved_mac 00:30:96:a9:94:0a}}}
{arpnd_cache2 {{location StreamBlock_4-1} {ip 2001:0:1:1::1} {gateway_ip
2001:0:1:1::2} {resolved_mac 00:30:96:a9:94:0a}}} {arpnd_cache3 {{location
StreamBlock_7} {ip 2001:0:1:1::1} {gateway_ip 2001:0:1:1::2} {resolved_mac
00:30:96:a9:94:0a}}}}} {arpnd_status 1}
To perform ARP on specified streamblocks:
set arp [sth::arp_control -port_handle "$port1 $port2" \
-arp_target stream \
-handle "$strm_id1 $strm_id2 $strm_id3 $strm_id4" \
-arpnd_report_retrieve 1 \
-arp_cache_retrieve 1]
Sample Output:
{status 1} {port1 {{arpnd_cache0 {{location StreamBlock_1-2} {ip 30.1.1.2}
{gateway_ip 30.1.1.1} {resolved_mac 00:30:96:a9:94:0a}}}
{arpnd_cache1 {{location StreamBlock_6} {ip 30.1.1.2} {gateway_ip 30.1.1.1}
{resolved_mac 00:30:96:a9:94:0a}}}}} {port2 {{arpnd_cache0 {{location
StreamBlock_4-1} {ip 2001:0:1:1::1} {gateway_ip 2001:0:1:1::2} {resolved _mac
00:30:96:a9:94:0a}}} {arpnd_cache1 {{location StreamBlock_7} {ip 2001:0:1:1::1}
{gateway_ip 2001:0:1:1::2} {resolved_mac 00:30:96:a9:94:0a}}}}}
{arpnd_report {{port1 {{arpnd_status SUCCESSFUL} {failed_arpnd_count 0}
{successful_arpnd_count 2} {attempted_arpnd_count 2}}} {port2 {{arpnd_status
SUCCESSFUL} {failed_arpnd_count 0} {successful_arpnd_count 2}
{attempted_arpnd_count 2}}}}} {arpnd_status 1}
To perform ARP on specified devices:
set arp [sth::arp_control -port_handle "$port1 $port2" \
-arp_target device \
-handle "$src_hdl $dst_hdl" \
-arpnd_report_retrieve 1 \
-arp_cache_retrieve 1]
Sample Output:
{status 1} {port1 {{arpnd_cache0 {{location Router1} {ip 30.1.1.2} {gateway_ip
30.1.1.1} {resolved_mac 00:30:96:a9:94:0a}}} {arpnd_cache1 {{location Router1}
{ip 3001::2} {gateway_ip 3001::1} {resolved_mac 00:30:96:a9:94:0a}}}}} {port2
{{arpnd_cache0 {{location Router2} {ip 40.1.1.2} {gateway_ip 40.1.1.1}
{resolved_mac 00:30:96:a9:94:0a}}} {arpnd_cache1 {{location Router2} {ip
2001:0:1:1::1} {gateway_ip 2001:0:1:1::2} {resolved_mac 00:30:96:a9:94:0a}}}}}
{arpnd_report {{port1 {{arpnd_status SUCCESSFUL} {failed_arpnd_count 0}
{successful_arpnd_count 2} {attempted_arpnd_count 2}}} {port2 {{arpnd_status
SUCCESSFUL} {failed_arpnd_count 0} {successful_arpnd_count 2}
{attempted_arpnd_count 2}}}}} {arpnd_status 1}
To perform ARP on specified ports:
set arp [sth::arp_control -port_handle "$port1 $port2" \
-arp_target port \
-arpnd_report_retrieve 1 \
-arp_cache_retrieve 1]
Sample Output:
{gateway_ip 3001::1} {resolved_mac 00:30:96:a9:94:0a}}} {arpnd_cache2 {{location
StreamBlock_1-2} {ip 30.1.1.2} {gateway_ip 30.1.1.1} {resolved_mac
00:30:96:a9:94:0a}}} {arpnd_cache3 {{location StreamBlock_6} {ip 30.1.1.2}
{gateway_ip 30.1.1.1} {resolved_mac 00:30:96:a9:94:0a}}}}} {port2 {{arpnd_cache0
{{location Router2} {ip 40.1.1.2} {gateway_ip 40.1 .1.1} {resolved_mac
00:30:96:a9:94:0a}}} {arpnd_cache1 {{location Router2} {ip 2001:0:1:1::1}
{gateway_ip 2001:0:1:1::2} {resolved_mac 00:30:96:a9:94:0a}}} {arpnd_cache2
{{location StreamBlock_4-1} {ip 2001:0:1:1::1} {gateway_ip 2001:0:1:1::2}
{resolved_mac 00:30:96:a9:94:0a}}} {arpnd_cache3 {{location StreamBlock_7} {ip
2001:0:1:1::1} {gateway_ip 2001:0:1:1::2} {resolved_mac 00:30:96:a9:94:0a}}}}}
{arpnd_report {{port1 {{arpnd_status SUCCESSFUL} {failed_arpnd_count 0}
{successful_arpnd_count 4} {attempted_arpnd_count 4 }}} {port2 {{arpnd_status
SUCCESSFUL} {failed_arpnd_count 0} {successful_arpnd_count 4}
{attempted_arpnd_count 4}}}}} {arpnd_status 1}
End of Procedure Header
sth::connect¶
Purpose¶
Initializes one or more Spirent HLTAPI chassis and reserves ports on the initialized chassis. All reserved ports will reset any existing traffic or port configurations to an initialized startup state.
Synopsis¶
Note
- M indicates that the argument is Mandatory .
- S indicates the argument is for
scaling
scenarios.
sth::connect [-device <list of IP addresses or names> M] [-port_list {<slot>/<port>} M] [-advanced_interleaving {true|false} Available when -scheduling_mode rate_based. [-offline {1|0}] [-break_locks {1|0}] [-reset ] [-scheduling_mode {RATE_BASED|PORT_BASED|PRIORITY_BASED | MANUAL_BASED}] [-cfg_based_scheduling <alphanumeric>] [-timeout {0|1|3|10|30|100|300}] [-username <string>] [-sync {1|0}] [-nobios {1|0}] [-chassis_list <list of IP addresses or names> S] [-slot_list <chassis>/<slot> S] [-location_list //<chassis>/<slot>/<port> S]
Arguments¶
-
-advanced_interleaving
¶
Spirent Extension (for Spirent HLTAPI only).
Enables or disables the option to interleave packets to reduce the burstiness of traffic. This argument is available when -scheduling_mode is set to rate_based. Possible values are true and false. The default value is false.
-
-break_locks
¶
Breaks port locks established by another user or process. To break the locks, set the value of the -break_locks argument to 1. The default is 0. Use the -port_list argument to identify the ports.
-
-device
¶
Specifies one or more Spirent HLTAPI chassis for connection. You can specify a list of IP addresses in IPv4 format, host names, or domain names, separated by spaces. Spirent HLTAPI does not validate the -device argument value(s). This argument is Mandatory .
-
-nobios
¶
(Not supported in this release) Specifies whether HLTAPI will download BIOS to cards. Possible values are 0 (do not download BIOS to cards) and 1 (download BIOS). The default is 0.
-
-offline
¶
Specifies whether HLTAPI will create offline ports or not. Possible values are 0 (create online ports) and 1 (create offline ports). The default is 0.
-
-port_list
¶
Reserves the specified ports on the specified device host. This argument is Mandatory . Specify a port using the format “slot/port” as follows:
-port_list {4/6}
To skip the ports for a chassis, specify empty brackets { } in its place. For example, if you specified three chassis but only need to use the ports on the third chassis, you would specify the following:
-device Ip1 Ip2 Ip3 -port_list { } { } {4/6}
For each IP address, host name, or domain name value specified for the -device argument, there can be a corresponding slot/port value. Any port value that you specify for the -port_list argument must correspond to a port on the specified chassis.
-
-reset
¶
Removes all port traffic configurations for the specified chassis and ports (using the -device and/or -port_list arguments). Use the -reset argument when you want to create a new test configuration for a connection that you have already established. You can also use -reset in combination with -break_locks to establish a connection to a chassis and reserve (and re-initialize) ports.
The following example deletes the ports and disconnects from the chassis, and then reconnects to the chassis and reserves the ports provided in the port list (-port_list):
sth::connect -device $device -port_handle $port_list -reset
Note
To run HLTAPI for Perl or HLTAPI for Python scripts successfully, you must specify any value other than null for this argument. To continue the above example:
# HLTAPI for Perl sth::connect ( device => "$device", port_list => "$port_list", offline => '0', reset => '1'); # HLTAPI for Python sth.connect ( device = device, port_list = port_list, offline = 0, reset = 1)
-
-scheduling_mode
¶
Specifies the traffic load scheduling mode. Possible values are described below:
port_Based - The load is controlled at port level; guarantees a fixed interframe gap (IFG) for Layer 2 testing. The order of frames sent is determined by the order of the configured stream blocks. rate_based - Use this mode to allow multiple load values for streams within the same stream block. priority_based - High-priority stream blocks are scheduled first, lower priority stream blocks are fit into gaps left available by higher priority stream blocks. manual_based - Use this scheduling mode to configure tightly controlled traffic for functional testing.
The default value is rate_based.
-
-cfg_based_scheduling
¶
Specifies that the configuration of the traffic load scheduling mode must be the same as in the STC configuration file. When this argument is specified, the scheduling mode on each port will be the same as in the STC configuration file.
-
-sync
¶
Synchronizes the timestamps of all of the specified chassis, using the first chassis specified in the -device argument as the master clock source. To synchronize the timestamps, set the value of the -sync argument to 1. The default is 1.
-
-username
¶
Specifies the name of the user. This name is only displayed for locked ports. If the user name includes spaces, Spirent HLTAPI uses only the last word of the name.
-
-timeout
¶
Establishes a time period for the connection attempt. The value is the number of seconds before the time period expires. The timeout value can be one of the following: 0, 1, 3, 10, 30, 100, 300, 1000.
-
-chassis_list
¶
Spirent Extension (for Spirent HLTAPI only).
Specifies a list of chassises under which the ports will be connected. The value can be the IP address or the name of the chassis.
Note
Use this argument for
Scaling
test scenarios.
-
-slot_list
¶
Spirent Extension (for Spirent HLTAPI only).
Specifies a list of slots to be used, in the format of <chassis>/<slot>.
Note
Use this argument for
Scaling
test scenarios.
-
-location_list
¶
Spirent Extension (for Spirent HLTAPI only).
Specifies a list of locations to be connected, in the format of //<chassis>/<slot>/<port>.
Note
Use this argument for
Scaling
test scenarios.
Vendor Specific Arguments Processed by Spirent HLTAPI Wrapper¶
-
-tgen_reset
¶
Removes all port traffic configurations for the specified chassis and ports (using the -device and/or -port_list arguments). Use the -reset argument when you want to create a new test configuration for a connection that you have already established. You can also use -reset in combination with -break_locks to establish a connection to a chassis and reserve (and re-initialize) ports.
-
-connect_timeout
¶
Timeout in seconds to wait before failing connection to chassis
Vendor Specific Arguments Ignored by Spirent HLTAPI Wrapper¶
-intf_mode
-ixnetwork_tcl_server
-master_device
-mode
-remove_streams
-tcl_server
-tgen_type
-tool_version
-reset
Note
For more information about Spirent HLTAPI Wrapper, refer to Appendix D.
Cisco-specific Arguments¶
The following arguments are specific to the Cisco HLTAPI but are not supported by Spirent HLTAPI:
-config_file
-forceload
-handle
-nobios
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):
port_handle.<device>.<port> The port information for the connected
chassis (see below).
status Success (1) or failure (0) of the
operation.
log An error message (if the operation
failed).
offline The created ports are online (0) or
offline (1).
Description¶
The connect function establishes a connection with one or more Spirent HLTAPI chassis and reserves a set of ports. When you successfully connect to a chassis and reserve ports, the ports are locked (reserved) for your use. You can use the -break_locks and -reset arguments to gain access to a port locked by another user. If you break existing locks, the connect function resets any existing port and traffic configurations to an initialized startup state.
Spirent HLTAPI returns an error message if it cannot establish connections with the specified ports. For example, if a port is already reserved, the connect function returns an error. In this case, you can call the connect function again, using the -break_locks argument.
The function returns the requested data (device and port 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.
The key values to access the data returned from the connect function are:
port_handle.<device>.<port>
Port information is structured as a keyed list that is embedded within the primary keyed list returned by the connect function. The device-port keyed list contains information about all of the connected chassis. You can use the following forms of key values to retrieve information about ports.
- port_handle is a value that uniquely identifies a port on a chassis.
- The returned port handle value is used as input to the
sth::interface_config function as well as other
functions.<device> is the value of the -device argument passed into the call.
- <port> is the value of the -port_list argument passed into the call.
- If two ports are in different port groups, then all of the ports in the port group are reserved.
- status
- The key “status” retrieves a value indicating the success (1) or failure (0) of the operation.
- log
- The key “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.
- offline
- The key “offline” retrieves a value indicating the created ports are online (0) or offline (1).
Examples¶
The following connect function returns a keyed list containing device and port information:
sth::connect -device 10.100.19.110 -username abc -port_list "4/6 4/3"
Here is an example of the output for the above sample input function:
{port_handle {{10 {{100 {{19 {{110 {{4/6 port1} {4/3 port2}}}}}}}}}}} {status 1}
This keyed list describes ports on the device with the IP address 10.100.19.110. Because the ports are not locked, a username is not returned. This function established a connection with ports 1 and 2 on slot 4 of the specified device. The port handle for port 1 is 60, and the port handle for port 2 is 84. You will use these port handle values as input to other functions.
Sample Output:
{port_handle {{10 {{100 {{19 {{110 {{4/6 60} {4/3 84}}}}}}}}}}} {status 1}
To reserve all ports under the chassis in the chassis list:
set chassislist "10.61.67.79 10.61.67.197"
set intStatus [sth::connect -chassis_list $chassislist]
Sample Output:
{port_handle {{10 {{61 {{67 {{79 {{1/1 port1}}} {197 {{1/1 port2}}}}}}}}}}} {offline 0} {status 1}
To reserve all ports under the slots in the slot list:
set slotlist "10.61.67.79/1 10.61.67.197/1"
set intStatus [sth::connect -slot_list $slotlist]
Sample Output:
{port_handle {{10 {{61 {{67 {{79 {{1/1 port1}}} {197 {{1/1 port2}}}}}}}}}}} {offline 0} {status 1}
To reserve the specified port:
set locationlist {//10.61.39.164/1/1 //10.61.39.164/1/2}
set intStatus [sth::connect -location_list $locationlist]
Sample Output:
{port_handle {{10 {{61 {{39 {{164 {{1/1 port1} {1/2 port2}}}}}}}}}}} {status 1}
End of Procedure Header
sth::device_info¶
Purpose¶
Returns information about ports on the connected chassis, chassis or module serial number, temperature and fan status; also returns the current versions of the HLTAPI functional specification and Spirent TestCenter software.
Synopsis¶
Note
M indicates that the argument is Mandatory .
sth::device_info [-ports] [-port_handle <handle>] [-fspec_version] [-getchassisinfo]
Arguments¶
-
-ports
¶
Produces port information.
-
-fspec_version
¶
Produces version information.
-
-port_handle
¶
Produces the default port name.
-
-getchassisinfo
¶
Specifies to return the information about chassis and module serial number, fan and temperature status.
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):
version
Version numbers for HLTAPI specification and Spirent
TestCenter software.
device-port-key
The port information for the connected chassis (see
below).
status Success (1) or failure (0) of the operation.
log An error message (if the operation failed).
Description¶
The device_info function provides information about the availability of ports on the connected chassis, chassis or module serial number, temperature, fan status. It can also identify the Spirent HLTAPI version and the version of the HLTAPI specification that the Spirent TestCenter software supports.
This function returns the requested data (version or chassis or port 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.
The key values to access the data returned from the device_info function are:
version
The key "version" retrieves a string containing the software and
functional specification version numbers.
device-port-key
Port information is structured as a keyed list that is embedded within
the primary keyed list returned by the device_info function. The
device-port keyed list contains information about all of the connected
chassis. You can use the following forms of key values to retrieve
information about ports::
<device>.available.<port>.type
<device>.inuse.<port>.type
<device>.inuse.<port>.owner
<device> is the IP address of a connected chassis.
<port> identifies a port on the chassis, specified as slot/port.
Note that the keys shown above are fully qualified. When you specify
a fully qualified key, the keylget function returns information
about a single port. If you specify a partial key, keylget returns
the corresponding information. For example, if you specify the
<device>.available form, the function will return a keyed list
containing information about all available ports on the specified
chassis. If you are using only one port in a port group, not only will
that port show as "in use", but the other port in that port group will
also show as "in use" as all the ports in the port group get reserved.
status
The key "status" retrieves a value indicating the success (1) or
failure (0) of the operation.
log
The key "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.
Examples¶
To obtain port information:
set port_data [sth::device_info -ports]
The port_data variable contains the following keyed list:
{{10 {{100 {{19 {{112 {{available {{4/0 {{type ethernet}}} {4/1 {{type
ethernet}}} {4/2 {{type ethernet}}} {4/3 {{type ethernet}}} {4/4 {{type
ethernet}}} {4/5 {{type ethernet}}}}} {inuse {{4/6 {{owner smith} {type
ethernet}}} {4/7 {{owner smith} {type ethernet}}}}}}}}}}}}} {status 1}}
This keyed list describes ports on the device with the IP address 10.100.19.112. The information is organized into a hierarchy based on device, availability, port, owner, and type. The keyed list could be represented as follows:
10.100.19.112 available 4/0 type ethernet
4/1 type ethernet
4/2 type ethernet
4/3 type ethernet
4/4 type ethernet
4/5 type ethernet
inuse 4/6 owner smith
type ethernet
4/7 owner smith
type ethernet
status 1
To obtain the default port name:
device_info -porthandle $p0 $p1
Keyed list returned:
{port_handle {{port1 {{port_name {10.100.19.98-8-1 //8/1}}}} {port2 {{
port_name {10.100.19.98-8-3 //8/3}}}}}} {status 1}
port1: 10.100.19.98-8-1 //8/1
port2: 10.100.19.98-8-3 //8/3
To obtain chassis information:
set chassis_data [sth::device_info -getchassisinfo]
The chassis_data variable contains the following keyed list:
{10 {{61 {{39 {{164 {{chassis_serial_number E08331036} {temp_state NORMAL}
{fan_id {{0 {{fan_state ON}}} {1 {{fan_state ON}}} {2 {{fan_state ON}}} {3
{{fan_state STALLED}}} {4 {{fan_state ON}}} {5 {{fan_state ON}}}}} {slot {{1
{{module_serial_number N08101810} {module_model_type WAN-2003A}}} {2
{{module_serial_number M06190560} {module_model_type MSA-2001B}}} {6
{{module_serial_number E10370839} {module_model_type CM-1G-D4}}} {8
{{module_serial_number E10430095} {module_model_type CV-10G-S8}}} {11
{{module_serial_number E10350452} {module_model_type CV-10G-S8}}}}}}}}}}}}} {status 1}
This keyed list describes the serial number, temperature, fan state, module type and slot serial number details on the device with the IP address 10.61.39.164.
End of Procedure Header
sth::interface_config¶
Purpose¶
Creates, modifies, or deletes a port configuration.
Synopsis¶
Note
- M indicates that the argument is Mandatory .
- S indicates the argument is for
scaling
scenarios.
sth::interface_config [-port_handle <port_handle_list> M] [-mode {config|modify|destroy} M] [-performance_mode {STC_DEFAULT|STC_L1|STC_MGIG|STC_PERF|STC_ROUTING}] [-port_name <port name>] -mode config [-intf_mode {ethernet} [-alternate_speeds {ether100|ether10000|ether2500|ether1000|ether5Gig| speed_unknown} ] [-arpnd_report_retrieve {1|0}] [-arp_req_retries <0-100>] [-arp_req_timer <1-100000>] [-arp_send_req {1|0}] [-arp_target { stream|device|port|all }] [-arp_cache_retrieve {1|0}] [-autonegotiation {1|0}] [-autonegotiation_role_enable {1|0}] [-autonegotiation_role {slave|master|fault}] [-block_mode {one_host_per_block|one_device_per_block| one_network_per_block| multiple_networks_per_block| multiple_device_per_block} S] [-control_plane_mtu < 0-16383 >] [-collision_exponent <1-10>] [-count <integer> S] [-crc32 {true|false}] [-create_host {true|false} ] [-data_path_mode {normal|local_loopback}] [-deficit_idle_count {true|false}] [-dst_mac_addr <aa.bb.cc.dd.ee.ff>] [-duplex {full|half}] [-enforce_mtu_on_rx {true|false}] [-enable_ping_response {1|0}] [-expand {true|false} S] [-fec_option {ieee_cr_74_base_support|ieee_cr_74_base_support_req| ieee_cr_108_rs_support|ieee_cr_108_rs_support_req| ieee_cr_s_74_base_support|ieee_cr_s_74_base_support_req| consortium_25g_74_base_support|consortium_25g_74_base_support_req| consortium_25g_rs_support|consortium_25g_rs_support_req| disable_fec|enable_74_base|enable_108_rs consortium_50g_74_base_support|consortium_50g_74_base_support_req| consortium_50g_rs_support|consortium_50g_rs_support_req| disable_fec_50g|enable_74_base_50g|enable_91_rs}] [-forward_error_correct {true|false}] [-flow_control {true|false}] [-framing {sonet|sdh}] [-gateway <a.b.c.d>] [-gateway_step <a.b.c.d>] [-internal_ppm_adjust <-100-100>] [-intf_ip_addr <a.b.c.d>] [-intf_ip_addr_step <a.b.c.d>] [-ipv6_intf_addr <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>] [-ipv6_intf_addr_step <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>] [-ipv6_prefix_length <0-128>] [-ipv6_gateway <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>] [-ipv6_gateway_step <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>] [-ipv6_resolve_gateway_mac {true|false}] [-netmask <a.b.c.d>] [-path_signal_label {HDLC|PPP|ATM|ETHERNET_10G_WAN}] [-phy_mode {copper|fiber}] [-rx_equalization <0-15>] [-port_handle <port_handle_list>] [-port_mode {LAN|WAN}] [-scramble {true|false}] [-speed {ether10|ether100|ether1000|ether2500|ether10000|ether5Gig| ether25Gig|ether100Gig|ether40Gig|ether50Gig|ether400Gig|ether200Gig|ether800Gig}] [-pfc_negotiate_by_dcbx {0|1}] [-priority0 {0|1}] [-priority1 {0|1}] [-priority2 {0|1}] [-priority3 {0|1}] [-priority4 {0|1}] [-priority5 {0|1}] [-priority6 {0|1}] [-priority7 {0|1}] [-pfc_priority_enable {Boolean list}] [-pfc_priority_pause_quanta <0-65535>] [-pfc_send_xon {0|1}] [-pfc_xon_delay <1-3273000> ] [-pfc_xon_delay_unit {pause_quanta|microseconds}] [-resolve_gateway_mac {true|false}] [-src_mac_addr {<aaaa.bbbb.cccc>|<aaaa:bbbb:cccc>| <aa.bb.cc.dd.ee.ff>|<aa:bb:cc:dd:ee:ff>| <aa-bb-cc-dd-ee-ff>}] [-src_mac_addr_step {<aaaa.bbbb.cccc>|<aaaa:bbbb:cccc>| <aa.bb.cc.dd.ee.ff>|<aa:bb:cc:dd:ee:ff>| <aa-bb-cc-dd-ee-ff>}] [-transmit_clock_source {internal|bits|loop|external internal_ppm_adj }] [-tx_preemphasis_main_tap <0-31>] [-tx_preemphasis_post_tap <0-15>] [-vlan {1|0}] [-vlan_id <0-4095>] [-vlan_cfi {0|1}] [-vlan_id_count <1-4096>] [-vlan_id_step <0-4095>] [-vlan_user_priority <0-7>] [-qinq_incr_mode {both|inner|outer}] [-vlan_outer_id <0-4095>] [-vlan_outer_cfi {0|1}] [-vlan_outer_id_count <1-4096>] [-vlan_outer_id_step <0-4095>] [-vlan_outer_user_priority <0-7>] ] [-intf_mode {atm} [-framing {sonet|sdh}] [-control_plane_mtu < 0-16383>] [-rx_hec {0|1}] [-lais_lrdi_threshold <5-65535>}] [-tx_s1 <0-65535>] [-tx_fcs <16|32>] [-clocksource { internal|loop|external}] [-speed {oc3|oc12|oc48}] [-intf_mode {pos_hdlc|pos_ppp} [-speed {ether10|ether100|ether1000|ether10000|ether9_286| oc3|oc12|oc48|oc192}] [-framing {sonet|sdh}] [-control_plane_mtu < 0-16383>] [-clocksource {internal|loop|external}] [-lais_lrdi_threshold <5-65535>}] [-tx_s1 <0-65535>] [-tx_fcs <16|32>] ] [-intf_mode fc [-data_path_mode {LINE_MONITOR|LOCAL_LOOPBACK|NORMAL}] [-internal_ppm_adjust <-100 - 100>] [-speed {ether2000|ether4000|ether8000|ether10000}] [-control_plane_mtu <0 - 16383>] [-transmit_clock_source {INTERNAL|INTERNAL_PPM_ADJ}] [-receiver_ready_delay_max <0 - 500000>] [-receiver_ready_delay_min <0 - 500000>] [-receiver_ready_delay_mode {fixed|random}] [-receiver_ready_delay_units {us|ms}] [-max_recv_size <64 - 2120>] [-receiver_timeout <1 -65535>] [-rx_credits <1 - 65535>] [-topology {PTP_PRIVATE|PTP_PUBLIC}] [-traffic_class {TRAFFIC_CLASS_2|TRAFFIC_CLASS_3}] [-tx_credits <1 - 65535>] ] -mode modify [-alternate_speeds {ether100|ether10000|ether2500|ether1000|ether5Gig| speed_unknown} ] [-arp_req_retries <0-100>] [-arp_req_timer <1-100000>] [-arp_send_req {1|0}] [-arp_target {stream|device|port|all}] [-arp_cache_retrieve {1|0}] [-autonegotiation {1|0}] [-autonegotiation_role_enable {1|0}] [-autonegotiation_role {slave|master|fault}] [-collision_exponent <1-10>] [-control_plane_mtu < 0-16383 >] [-crc32 {true|false}] [-data_path_mode {normal|local_loopback}] [-deficit_idle_count {true|false}] [-dst_mac_addr <aa.bb.cc.dd.ee.ff>] [-duplex {full|half}] [-enforce_mtu_on_rx {true|false}] [-flow_control {true|false}] [-framing {sonet|sdh}] [-intf_ip_addr <a.b.c.d>] [-intf_ip_addr_step <a.b.c.d>] [-internal_ppm_adjust <-100-100>] [-ipv6_intf_addr <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>] [-ipv6_prefix_length <0-128>] [-ipv6_intf_addr_step <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>] [-ipv6_gateway <a.b.c.d>] [-ipv6_gateway_step <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>] [-ipv6_resolve_gateway_mac {true|false}] [-netmask <a.b.c.d>] [-path_signal_label {HDLC|PPP|ATM|ETHERNET_10G_WAN}] [-pfc_negotiate_by_dcbx {0|1}] [-priority0 {0|1}] [-priority1 {0|1}] [-priority2 {0|1}] [-priority3 {0|1}] [-priority4 {0|1}] [-priority5 {0|1}] [-priority6 {0|1}] [-priority7 {0|1}] [-pfc_priority_enable {Boolean list}] [-pfc_priority_pause_quanta <0-65535>] [-pfc_send_xon {0|1}] [-pfc_xon_delay <1-3273000> ] [-pfc_xon_delay_unit {pause_quanta|microseconds}] [-phy_mode {copper|fiber}] [-port_handle <port_handle>] [-port_mode {lan|wan}] [-port_loadunit {percent_line_rate|frames_per_second|inter_burst_gap| bits_per_second|kilobits_per_second|megabits_per_second}] [-port_load <double>] [-resolve_gateway_mac {true|false}] [-scramble {true|false}] [-scheduling_mode {rate_based|port_based|priority_based| manual_based}] [-speed {ether10|ether100|ether1000|ether2500|ether10000|ether5Gig| ether40Gig|ether50G|ether100Gig|ether400Gig}] [-src_mac_addr {<aaaa.bbbb.cccc>|<aaaa:bbbb:cccc>| <aa.bb.cc.dd.ee.ff>|<aa:bb:cc:dd:ee:ff>| <aa-bb-cc-dd-ee-ff>}] [-src_mac_addr_step {<aaaa.bbbb.cccc>|<aaaa:bbbb:cccc>| <aa.bb.cc.dd.ee.ff>|<aa:bb:cc:dd:ee:ff>| <aa-bb-cc-dd-ee-ff>}] [-transmit_clock_source {internal|bits|loop|external internal_ppm_adj }] [-tx_preemphasis_post_tap <0-15>] [-tx_preemphasis_main_tap <0-31>] [-vlan {1|0}] [-vlan_id <0-4095>] [-vlan_cfi {0|1}] [-vlan_id_count <1-4096>] [-vlan_id_step <0-4095>] [-vlan_user_priority <0-7>] [-qinq_incr_mode {both|inner|outer}] [-vlan_outer_id <0-4095>] [-vlan_outer_cfi {0|1}] [-vlan_outer_id_count <1-4096>] [-vlan_outer_id_step <0-4095>] [-vlan_outer_user_priority <0-7>] [-mode destroy] [-detection_mode {auto_detect|manual|advanced}] [-cable_length_type {optical|copper_0m_2m|copper_3m|copper_5m|copper_7m|copper_0m_1m|copper_2m|copper_5m_active|copper_7m_active}] [-tx_deemphasis_post_tap <0-71>] [-tx_deemphasis_pre_tap <0-71>] [-tx_main_tap_swing <0-31>] [-manual_schedule_stream_handle <stream_handle_list> M] [-manual_schedule_entry_handle <manual_schedule_entry_handle_list> ] [-manual_schedule_inter_frame_gap <ANY>] [-manual_schedule_inter_burst_gap <ANY>] [-manual_schedule_inter_entry_gap <ANY>] [-manual_schedule_burst_size <integer>] [-manual_schedule_burst_count <integer>] [-manual_schedule_loop_count <integer>] [-manual_schedule_cont_transmission {true|false}] [-manual_schedule_inter_frame_gap_unit {PERCENT_LINE_RATE|FRAMES_PER_SECOND|BYTES|MILLISECONDS|NANOSECONDS|BITS_PER_SECOND|KILOBITS_PER_SECOND|MEGABITS_PER_SECOND}] [-manual_schedule_inter_burst_gap_unit {PERCENT_LINE_RATE|FRAMES_PER_SECOND|BYTES|MILLISECONDS|NANOSECONDS|BITS_PER_SECOND|KILOBITS_PER_SECOND|MEGABITS_PER_SECOND}] [-manual_schedule_inter_entry_gap_unit {PERCENT_LINE_RATE|FRAMES_PER_SECOND|BYTES|MILLISECONDS|NANOSECONDS|BITS_PER_SECOND|KILOBITS_PER_SECOND|MEGABITS_PER_SECOND}] [-enable_auto_negotiation_master_slave {true|false}] [-priority_flow_control_array {true|false}] [-optimized_xon {enable|disable}] [-auto_negotiation_master_slave {slave|master|fault}] [-test_mode {normal_operation|normal_operation_full_power|transmit_droop|master_transmit_jitter|slave_transmit_jitter|transmitter_distortion}] [-pfc_cable_delay <double>] [-pfc_cable_delay_type {fiber|copper}] [-port_setup_mode {portconfig_only|registers_only}] [-ignore_link_status {true|false}] [-advertise_ieee {true|false}] [-advertise_nbaset {true|false}] [-down_shift_enable {true|false}] [-enable_8023_br_per_port {true|false}] [-custom_fec_mode {none|kr_fec|rs_fec|kp4_fec}] [-cfp_interface <ANY>]
Arguments¶
-
-alternate_speeds
¶
Spirent Extension (for Spirent HLTAPI only).
Specifies alternate speeds for the port. This argument is available when autonegotiation is enabled. Possible values are ether100, ether1000, ether2500, ether10000, ether5Gig, and speed_unknown. The default value is speed_unknown.
-
-arpnd_report_retrieve
¶
Determines whether to retrieve the Address Resolution Protocol (ARP)/Neighbor Discovery (ND) statistics after each ARP/ND Operation. Possible values are 1 and 0. When it is set to 1, this command will retrieve the ARP/ND Statistics. When it is set to 0, the command will not. The default is 0. This argument is only available when -arp_send_req is set to 1.
-
-arp_req_retries
¶
The ARP retry count to use. Possible values range from 0 to 100. The default is 3. The -mode argument must be set to config or modify. This argument is only available when -arp_send_req is set to 1.
-
-arp_req_timer
¶
The interval between ARP messages in milliseconds. Possible values range from 1 to 100000. The default is 10. The -mode argument must be set to either config or modify. This argument is only available when -arp_send_req is set to 1.
-
-arp_send_req
¶
Enables or disables sending ARP requests on the specified Ethernet port. Valid values are 0 and 1. The default is 1 (enable ARP on the port). The -mode argument must be set to config or modify. ARP is sent when you call sth::traffic_control -action run -port_handle $porthandle You must also enable:
sth::traffic_config -mac_discover_gw <a.b.c.d>.
See Description for sth::interface_config below for more about enabling ARP.
-
-arp_target
¶
Specifies the object that the ARP will be applied to. Possible values are listed below:
port - ARP will be applied to ports. This is the default. stream - ARP will be applied to streams. device - ARP will be applied to devices. all - ARP will be applied to streams, devices, and ports.
This argument is only available when -arp_send_req is set to 1.
-
-arp_cache_retrieve
¶
Determines whether to retrieve the ARP cache table per port. Possible values are 1 and 0. When it is set to 1, this command will retrieve the ARP cache table per port. When it is set to 0, the command will not. The default is 0. This argument is only available when -arp_send_req is set to 1. The following example applies the ARP to streams, devices, and ports. It also checks the ARP results and retrieves the ARP cache table per port:
set returnedString [sth::interface_config -port_handle $portHnd \ -mode modify \ -arp_send_req 1 \ -arp_target all \ -arp_cache_retrieve 1]
Then the return values will look like this:
<ARP FAIL> {arpnd_status 0} {arpnd_cache {{10.61.37.23-2-1 //2/1 port_address 11.1.1.10 11.1.1.11 00:00:00:00:00:00} {10.61.37.23-2-1 //2/1 StreamBlock 1 :0 10.1.1.10 10.1.1.11 00:10:94:00:00:32}}} {status 1} <ARP SUCCESS> {arpnd_status 1} {arpnd_cache {{10.61.37.23-2-3 //2/3 port_address 11.1.1.11 11.1.1.10 00:10:94:00:00:31} {10.61.37.23-2-3 //2/3 StreamBlock 2 :0 10.1.1.11 10.1.1.10 00:10:94:00:00:02}}} {status 1}
-
-autonegotiation
¶
Enables or disables autonegotiation of the port speed. Valid values are 0 and 1. The default is 1 (enable). The -mode argument must be set to config or modify.
-
-autonegotiation_role_enable
¶
Spirent Extension (for Spirent HLTAPI only).
Enables or disables autonegotiation roles. Valid values are 0 and 1. The default is 1 (enable). You must set -mode to config or modify.
-
-autonegotiation_role
¶
Spirent Extension (for Spirent HLTAPI only).
Specifies the port role for autonegotiation. Valid values are slave, master, and fault. The default value is master. This argument is available when -autonegotiation_role_enable is set to 0, and -mode is set to config or modify.
-
-block_mode
¶
Spirent Extension (for Spirent HLTAPI only).
Specifies the device block mode. Emulated device objects may be used to represent a single device or a block of many devices for higher scalability. Emulated device blocks are not supported by all protocols (for example, routing protocols) and have less granularity of control at the protocol level and in traffic configuration. Possible values are described below:
one_device_per_block One emulated device block is created for each device one_network_per_block One emulated device block is created for each network multiple_networks_per_block One emulated device block may represent multiple networks. Note that there are limitations to what can be represented as a single emulated device block using this mode. multiple_device_per_block Multiple devices per block
-
-clocksource
¶
Specifies the transmitter clock source. Possible values are:
internal - Specifies that a crystal on the interface provides the transmit clock. This is the default. loop - Specifies that a clock recovered from the received data is used as the transmit clock. external - Specifies that the transmit clock is locked to an external reference signal provided to the interface.
-
-control_plane_mtu
¶
Sets the maximum transmission unit (MTU) size (in bytes) for the port. The MTU defines the largest size of packets that an interface can transmit without the need to fragment. IP packets larger than the MTU specified must be fragmented. Valid values range from 0 to 16383. The default is 1500. The -mode argument must be set to either config or modify.
-
-collision_exponent
¶
Sets the exponent used in the collision back-off algorithm. Larger exponents indicate larger back-off times after collisions occur. Possible values range from 1 to 10. The default value is 10. This argument is for 100Gig, 40Gig, 25Gig, 50Gig, 400Gig and 800Gig only.
-
-count
¶
Spirent Extension (for Spirent HLTAPI only).
Specifies the number of emulated devices to create. This option is similar to the Create Device wizard in the Spirent TestCenter GUI. Use this option for large
Scaling
configurations. You must set -create_host to false.
-
-crc32
¶
Enables or disables the CRC32. CRC32 is the Cyclic Redundancy Checksum in which the digital signature is a 32-bit number. Valid values are true and false. The default is true (enable). You can use this argument only when -mode is set to config or modify and -speed is set to ether10000.
-
-create_host
¶
Determines whether to create a host named as port_address. Possible values are true and false. If it is set to true, a host named as port_address will be created. The default value is true. The value will be false if the script is automatically in Save as HLTAPI.
-
-data_path_mode
¶
Sets the path for the port to transmit data. Possible values are normal and local_loopback:
normal - Generate data from Spirent TestCenter to the DUT and analyze incoming data from the DUT local_loopback - The port will transmit in a loopback mode, so transmitted data will be received by the transmitting port without going out on the wire.
The default is “normal”. This argument works only with Ethernet fiber mode.
-
-deficit_idle_count
¶
Enables or disables a Deficit Idle Count (DIC), which maintains the count of characters deleted or inserted. DIC adds or subtracts up to 3 bytes to/from the nominal 12-byte inter-frame gap to maintain the 10GbE frame rate. Therefore, the minimum gap at the XGMII transmit interface can be 9 to 15 bytes, but averages 12 bytes. To achieve the maximum 10Gb/s throughput, test tools and devices under test must have DIC enabled. Valid values are true and false. The default is false (disable). This argument is only applicable for Ethernet 10Gig, 25Gig, 40Gig, 50Gig, 100Gig, 400Gig and 800Gig fiber.
-
-dst_mac_addr
¶
Defines the destination MAC address {aa:bb:cc:dd:ee:ff}, which is the address of the next hop (gateway). The -mode argument must be set to either config or modify.
-
-duplex
¶
For Ethernet 10/100 interfaces only, specifies the duplex mode as either half or full. The default is full. The -mode argument must be set to config or modify.
-
-enforce_mtu_on_rx
¶
Enforces MTU for Rxcontrol packets or not. Possible values are true or false. When you set this argument to true, MTU will be enforced for Rx control packets. The default is false.
-
-enable_ping_response
¶
Enables or disables the host to repsonse to ping. Valid values are 0 (disable) and 1 (enable). The default is 0. You must set -mode config or modify.
-
-expand
¶
Spirent Extension (for Spirent HLTAPI only).
Determines whether to expand the specified device parameters into emulated device objects. Possible values are true and false.
If it is set to true, a list of emulated devices will be created and their handles returned.
If it is set to false, param_handle will be returned, which can be passed to protocol configuration APIs, for example,
-mode activate in sth::emulation_isis_config.
-
-fec_option
¶
Specifies a list of FEC options. Currently this argument is valid for 25G Ethernet and 50G (-speed ether25Gig and ether50Gig). Possible values are described below: :
When -auto_negotiation is set to true:
Value Description (FEC mode, physical type, FEC action and type) ieee_cr_74_base_support IEEE standard, 25G BASE-CR physical type, Support for Clause 74 Base R FEC ieee_cr_74_base_support_req IEEE standard, CR physical type, Support and Request for Clause 74 Base R ieee_cr_108_rs_support IEEE standard, CR physical type, Support for Clause 108 RS ieee_cr_108_rs_support_req IEEE standard, CR physical type, Support and Request for Clause 108 RS ieee_cr_s_74_base_support IEEE Standard, CR-S physical type, Support for Clause 74 Base R. ieee_cr_s_74_base_support_req IEEE Standard, CR-S physical type, Support and Request for Clause 74 Base R consortium_25g_74_base_support Consortium 25G standard, Support for Clause 74 Base R consortium_25g_74_base_support_req Consortium 25G standard, Support and Request for Clause 74 Base R consortium_25g_rs_support Consortium 25G standard, Support for Clause 91 RS consortium_25g_rs_support_req Consortium 25G standard, Support and Request for for Clause 91 RS consortium_50g_74_base_support Consortium 50G standard, Support for Clause 74 Base R consortium_50g_74_base_support_req Consortium 50G standard, Support and Request for Clause 74 Base R consortium_50g_rs_support Consortium 50G standard, Support for Clause 91 RS consortium_50g_rs_support_req Consortium 50G standard, Support and Request for for Clause 91 RS
When -auto_negotiation is set to false:
Value Description disable_fec Disable FEC for 25Gig and 40Gig enable_74_base Force Clause 74 Base R (25Gig and 40Gig) enable_108_rs Force Clause 108 R (25Gig) disable_fec_50g Disable FEC for 50Gig enable_74_base_50g Force Clause 74 Base R enable_91_rs Force Clause 91 R (50Gig)
Note
You can only specify one FEC option for one FC type. Here is an example:
{{ieee_cr_74_base_support} {ieee_cr_108_rs_support} {consortium_25g_74_base_support} {consortium_25g_rs_support}}
-
-flow_control
¶
Enables or disables data transmission rate management. Enabling flow control sends a PAUSE frame to temporarily halt the transmission of data from the sender, so it does not send data faster than another computer can receive it. Only ports configured for full-duplex mode can send PAUSE frames (see the description for -duplex). Valid values are true and false. The default is false (disable).
-
-forward_error_correct
¶
Spirent Extension (for Spirent HLTAPI only).
Enables or disables Forward Error Correction (FEC). Valid values are true (enable) and false (disable). The default is true. This argument is only valid for Ethernet 100G fiber.
-
-framing
¶
Specifies the type of framing format for a POS interface. Possible values are:
sonet - Synchronous Optical Network (SONET), a standard for sending data over fiber-optic cables. This is the default. sdh - Synchronous Digital Hierarchy (SDH), SONET's international equivalent.
This argument is available when you specify -speed ether10000, -intf_mode atm, -intf_mode pos_hdlc, or -intf_mode pos_ppp.
-
-gateway
¶
The default gateway for routing the IPv4 address you specified in the -intf_ip_addr argument. The default gateway is the router that Spirent HLTAPI will use to reach hosts not on its local network. The -mode argument must be set to either config or modify.
-
-gateway_step
¶
Spirent Extension (for Spirent HLTAPI only).
Defines the increment used to generate gateway IPv4 addresses for the router’s sub-interface. The default value is 0.0.0.1. The -mode argument must be set to either “config” or “modify”.
-
-internal_ppm_adjust
¶
Specifies the parts per million (PPM) value to adjust the IEEE clock frequency tolerance. This value affects the transmit clock frequency when -transmit_clock_source is set to internal_ppm_adj. Possible values range from -100 to 100. The default value is 0. When you need to specify a negative value, you must encompass the value by double quotation marks and braces, such as {“-4”} or “{-4}”. Other formats like “-4”, {-4} or -4 are not acceptable. You can use this argument when -device_type is set to ptpMaster and -announce_message_enable is set to 1.
-
-intf_ip_addr
¶
Specifies the IPv4 address assigned to the port. You must set this argument to use IPv4 routing. Also, the -mode argument must be set to either config or modify.
-
-intf_ip_addr_step
¶
Spirent Extension (for Spirent HLTAPI only).
Defines the increment used to generate IPv4 sub-interface addresses. The default value is 0.0.0.1. The -mode argument must be set to either config or modify.
-
-intf_mode
¶
Sets the interface type. This argument is Mandatory . Specify the interface mode only when you first configure the port using -mode config. Possible values are described below:
ethernet - Ethernet is a Layer 2 transmission protocol for transporting data over coaxial cables and twisted pair wires. pos_hdlc - Packet over SONET (POS) interface for HDLC (High-level Data Link Control). POS is an interface for transporting data over SONET (Synchronous Optical Network). HDLC is a Layer 2 transmission protocol that embeds information in a data frame. pos_ppp - Packet over SONET (POS) interface for PPP (Point-to- Point protocol) atm - Asynchronous Transfer Mode (ATM) fc - Fibre Channel (FC)
-
-ipv6_intf_addr
¶
Specifies the IPv6 address assigned to the port. You must set this argument to use IPv6 routing. To specify the IPv6 address, the -mode argument must be set to either config or modify.
-
-ipv6_intf_addr_step
¶
Spirent Extension (for Spirent HLTAPI only).
Defines the increment used to generate IPv6 sub-interface addresses. The default value is 0000::1. The -mode argument must be set to either config or modify.
-
-ipv6_gateway
¶
Specifies the IPv6 gateway address assigned to the port. The -mode argument must be set to either config or modify.
-
-ipv6_gateway_step
¶
Spirent Extension (for Spirent HLTAPI only).
Defines the increment used to generate gateway IPv6 addresses for the router’s sub-interfaces. The default value is 0000::1. The -mode argument must be set to either config or modify.
-
-ipv6_resolve_gateway_mac
¶
Spirent Extension (for Spirent HLTAPI only).
Enables/disables MAC resolving for the IPv6 gateway. Possible values are true (enable) and false (disable). The default value is true. If this argument is set to false, ARP will not resolve. You must set the -mode argument to either config or modify.
-
-ipv6_prefix_length
¶
The prefix length for the IPv6 address specified with the -ipv6_intf_addr argument. The -mode argument must be set to either config or modify. You must also specify the -ipv6_intf_addr argument.
-
-lais_lrdi_threshold
¶
Specifies the number of consecutive frames for which the line Alarm Indicating Signal (AIS) and line Remote Defect Indication (RDI) must be present before being reported. Possible values range from 5-65535. The default is 5.
-
-mode
¶
Specifies what action to take. Possible values are config, modify, or destroy. The default is config. The value of config is the handle of the port to configure. The value of modify is the handle of the port to modify. The value of destroy is the handle of the port to delete. This argument is Mandatory . The modes are described below:
config - Sets the initial interface values for the specified port. After you have connected to a chassis, you must call the interface_config function for each port, specifying this mode and any additional arguments to configure the port. modify - Modifies the specified port with the values you provided. destroy - Releases the system resources used by the specified port.
-
-performance_mode
¶
Specifies port performance mode available on the supported hardware. Possible values are STC_DEFAULT and STC_L1. The default is STC_DEFAULT. The modes are described below:
STC_DEFAULT - All the ports enabled. STC_L1 - L1 services testing enabled. Applicable for 50/100/200/400/800Gig ports. STC_MGIG - Converts ports to STC-BASE-T(ACC-7103A) and to configure alternate_speeds argument with 2.5G/5G/0.1G/1G/10G speeds. Applicable for MX2-10G-S12 module. STC_PERF - Performance mode is enabled. Applicable for 100Gig ports. STC_ROUTING - Routing mode is enabled. Applicable for 100Gig ports.
-
-max_recv_size
¶
Spirent Extension (for Spirent HLTAPI only).
Specifies the maximum frame size. Possible values range from 64 to 2120. The default is 2112.
-
-netmask
¶
Defines the netmask to use for the IP address of this port. The -mode argument must be set to either config or modify.
-
-path_signal_label
¶
Spirent Extension (for Spirent HLTAPI only).
Specifies the contents of the C2 byte as the path signal label. Possible values are described below.
HDLC - HDLC Path Signal Label PPP - Point-to-Point Protocol (PPP) Path Signal Label ATM - Asynchronous Transfer Mode Path Signal Label ETHERNET_10G_WAN - Ethernet 10G Wan Path Signal LabelThe default is HDLC. This argument is available when you specify -speed ether10000.
-
-phy_mode
¶
Specifies the physical type of connection to the port. Possible values are copper or fiber. The -mode argument must be set to config or modify. The default value is copper. .. note:: When using a dual-mode card chassis, you must specify -phy_mode as copper or fiber, otherwise zero streamblock might be resulted.
-
-rx_equalization
¶
Specifies the tolerance for the signal on the Rx port. Modifying the value may result in signal loss on the Rx port. That depends on the optics being used and the strength of the signal being transmitted by the peer. Possible values range from 0 to 15. The default value is 8. This argument is available when -speed is set to ether25Gig, ether40Gig, ether50Gig, ether100Gig, ether400Gig or ether800Gig.
-
-port_handle
¶
Specifies a list ports to configure. A port handle is a value that uniquely identifies a port on a chassis. The port_handle value is obtained from the connect function. To configure a port, you must specify at least one port handle in this function. This argument is Mandatory .
-
-port_mode
¶
Specifies whether the port is connected to a local area network (LAN) or to a wide-area network (WAN). Possible values are LAN or WAN. The -mode argument must be set to config or modify. The default value is WAN.
-
-port_name
¶
Specifies the name of the port. By default, the port name includes status (Offline or Online) and location information (physical port and slot numbers).
-
-port_loadunit
¶
Spirent Extension (for Spirent HLTAPI only).
Load unit for the overall port load when -scheduling_mode is set to port-based. Possible values are described below:
PERCENT_LINE_RATE Load as a percentage of the bandwidth available on the specified port FRAMES_PER_SECOND Load as the number of frames per second on the specified port INTER_BURST_GAP Load as the gap in bytes between adjacent bursts on the specified port BITS_PER_SECOND Load as the number of bits per second on the specified port KILOBITS_PER_SECOND Load as the number of kilobits per second on the specified port MEGABITS_PER_SECOND Load as the number of megabits per second on the specified port
The default value is PERCENT_LINE_RATE.
-
-port_load
¶
Spirent Extension (for Spirent HLTAPI only).
Load value, in the unit specified by -port_loadunit. The default is 10 when the -port_loadunit is set to PERCENT_LINE_RATE.
-
-receiver_ready_delay_mode
¶
Spirent Extension (for Spirent HLTAPI only).
Specifies the receiver ready delay mode. Possible values are:
fixed Delay a Receiver Ready (R_RDY) message for a specified fixed time random Delay an R_RDY message for a specified random time period between the maximum and the minimum time
The default value is fixed.
-
-receiver_ready_delay_max
¶
Spirent Extension (for Spirent HLTAPI only).
Maximum delay time. This argument is only available when -receiver_ready_delay_mode is set to random. Possible values range from 0 to 500000. The default is 100.
-
-receiver_ready_delay_min
¶
Spirent Extension (for Spirent HLTAPI only).
Specifies a fixed delay time when -receiver_ready_delay_mode is set to fixed, or the minimum delay time when -receiver_ready_delay_mode is set to random. Possible values range from 0 to 500000. The default is 0.
-
-receiver_ready_delay_units
¶
Spirent Extension (for Spirent HLTAPI only).
Specifies the unit of time measurement that you want to apply to your delay. Possible values are ms (milliseconds) and us (microseconds). The default is ms.
-
-receiver_timeout
¶
Spirent Extension (for Spirent HLTAPI only).
Specifies the receive timeout counter. Possible values range from 1 to 65535. The default is 12.
-
-rx_credits
¶
Spirent Extension (for Spirent HLTAPI only).
Number of frames the port can receive. Possible values range from 1 to 65535. The default is 16.
-
-resolve_gateway_mac
¶
Spirent Extension (for Spirent HLTAPI only).
Enables/disables MAC resolving for the IPv4 gateway. Possible values are true (enable) and false (disable). The default value is true. If this argument is set to false, ARP will not resolve. You must set the -mode argument to either config or modify.
-
-scramble
¶
Enables or disables scrambling of the transmit SONET/SDH payload using a self-synchronizing x^43 + 1 scrambler. This argument is available in 10G WAN mode only. Valid values are true and false. The default is true (enable). You can use this argument when -mode is set to config or modify and -speed is set to ether10000.
-
-scheduling_mode
¶
Specifies the traffic load scheduling mode. Possible values are described below:
port_based - The load is controlled at port level; guarantees a fixed interframe gap (IFG) for Layer 2 testing. The order of frames sent is determined by the order of the configured stream blocks. rate_based - Use this mode to allow multiple load values for streams within the same stream block. priority_based - High-priority stream blocks are scheduled first, lower priority stream blocks are fit into gaps left available by higher priority stream blocks. manual_based - Use this scheduling mode to configure tightly controlled traffic for functional testing.
The default value is rate_based.
-
-manual_schedule_stream_handle
¶
Specifies the handle(s) of the streamblock(s) for which to configure manual schedule entries. This argument is Mandatory to configure manual scheduling.
-
-manual_schedule_entry_handle
¶
Specifies the handle(s) of the created manual schedule entries. Use this argument to modify existing manual schedule entries.
-
-manual_schedule_inter_frame_gap
¶
Specifies the gap between frames within a burst. This value is combined with the unit of measure selected in Inter-Frame Gap Unit. The default value is 12.
-
-manual_schedule_inter_burst_gap
¶
Specifies the gap between bursts of transmitted packets. This value is combined with the unit of measure selected in Inter-Burst Gap Unit. The default value is 1344.
-
-manual_schedule_inter_entry_gap
¶
Specifies the gap between stream entries. This value is combined with the unit of measure selected in Inter-Entry Gap Unit. The default value is 2000.
-
-manual_schedule_burst_size
¶
Specifies the number of packets in each burst. The default value is 1.
-
-manual_schedule_burst_count
¶
Specifies the number of bursts to be transmitted by the entry. The default value is 1.
-
-manual_schedule_loop_count
¶
Specifies the number of times that the stream block sequence is transmitted. The default value is 1.
-
-manual_schedule_cont_transmission
¶
Specifies whether the associated stream block to run in continuous transmission mode after the step sequence of the preceding stream blocks are completed or not. Possible values are true and false. When Continuous Transmission mode is disabled, transmission of scheduled traffic always begins with the first entry in the Manual Schedule grid. The default value is false.
-
-manual_schedule_inter_frame_gap_unit
¶
Specifies the unit for Inter-Frame Gap. The default value is BYTES. Possible Values are described below:
Value Description PERCENT_LINE_RATE Gap in percentage of line rate FRAMES_PER_SECOND Gap as the number of frames per second BYTES Gap in bytes MILLISECONDS Gap in milliseconds NANOSECONDS Gap in nanoseconds BITS_PER_SECOND Gap as the number of bits per second KILOBITS_PER_SECOND Gap in number of kilobits per second MEGABITS_PER_SECOND Gap in number of megabits per second
-
-manual_schedule_inter_burst_gap_unit
¶
Specifies the unit for Inter-Burst Gap. The default value is BYTES. Possible Values are described below:
Value Description PERCENT_LINE_RATE Gap in percentage of line rate FRAMES_PER_SECOND Gap as the number of frames per second BYTES Gap in bytes MILLISECONDS Gap in milliseconds NANOSECONDS Gap in nanoseconds BITS_PER_SECOND Gap as the number of bits per second KILOBITS_PER_SECOND Gap in number of kilobits per second MEGABITS_PER_SECOND Gap in number of megabits per second
-
-manual_schedule_inter_entry_gap_unit
¶
Specifies the unit for Inter-Entry Gap. The default value is BYTES. Possible Values are described below:
Value Description PERCENT_LINE_RATE Gap in percentage of line rate FRAMES_PER_SECOND Gap as the number of frames per second BYTES Gap in bytes MILLISECONDS Gap in milliseconds NANOSECONDS Gap in nanoseconds BITS_PER_SECOND Gap as the number of bits per second KILOBITS_PER_SECOND Gap in number of kilobits per second MEGABITS_PER_SECOND Gap in number of megabits per second
-
-speed
¶
Sets the line speed for the port. This value is only Mandatory the first time an interface is configured.
For Ethernet (-intf_mode ethernet), possible values are ether10, ether100, ether1000, ehter2500, ether10000, ether5Gig, ether25Gig, ether40Gig, ether50Gig, ether100Gig, ether400Gig and ether800Gig. When -phy_mode is set to copper, the default speed is ether10. When -phy_mode is set to fiber, the speed automatically defaults to the correct speed. Only ether10000 (SPEED_10G) is supported on Ethernet 10 Gig ports. ether25Gig (SPEED_25G) is supported on Ethernet 25 Gig ports. ether40Gig (SPEED_40G) is supported on Ethernet 40 Gig ports. ether50Gig (SPEED_50G) is supported on Ethernet 50 Gig ports. ether100Gig (SPEED_100G) is supported on Ethernet 100 Gig ports. ether400Gig (SPEED_400G) is supported on Ethernet 400 Gig ports. ether200Gig (SPEED_200G) is supported on Ethernet 200 Gig ports. ether800Gig (SPEED_800G) is supported on Ethernet 800 Gig ports.
For POS (-intf_mode pos), possible values are ether10, ether100, ether1000, ether10000, ether9_286, oc3, oc12, oc48, and oc192. The default is oc192.
For FC (-intf_mode fc), possible values are ether2000, ether4000, ether8000, and ether10000. The default speed is ether2000.
Note
SONET transmission speeds are referred to as OC1.
-
-src_mac_addr
¶
Defines the source MAC address for a Gigabit Ethernet or Gigabit Ethernet GBIC interface. You can enter this address in one of the following formats:
aaaa.bbbb.cccc aaaa:bbbb:cccc aa.bb.cc.dd.ee.ff aa:bb:cc:dd:ee:ff aa-bb-cc-dd-ee-ff
The default is 0000.0000.0000. The -mode argument must be set to either config or modify.
-
-src_mac_addr_step
¶
Spirent Extension (for Spirent HLTAPI only).
Defines the modifier for the interface MAC address. The default is 00:00:00:00:00:01.
-
-topology
¶
Spirent Extension (for Spirent HLTAPI only).
Specifies the type of the point-to-point link. Possible values are:
PTP_PRIVATE Point-to-point private link PTP_PUBLIC Point-to-point public link
The default value is PTP_PUBLIC.
-
-transmit_clock_source
¶
Specifies the clock source for synchronous transmissions. You can set the transmit clock source for Ethernet 10/25/40/50/100/400/800 and FcPhy interfaces. Possible values are:
internal - Specifies that a crystal on the interface provides the transmit clock bits - Specifies that a Building Integrated Timing Supply is used as the transmit clock. loop - Specifies that a clock recovered from the received data is used as the transmit clock external - Specifies that the transmit clock signals are provided by external reference sources such as GPS and CDMA. internal_ppm_adj - Adjusts the clock PPM within the IEEE clock frequency.
The default is internal. This argument is available when -speed is set to ether100Gig or ether40Gig.
-
-traffic_class
¶
Spirent Extension (for Spirent HLTAPI only).
Specifies the traffic class. Possible values are:
TRAFFIC_CLASS_2 Guaranteed delivery for connectionless traffic
TRAFFIC_CLASS_3 Best-effort connectionless service
The default value is TRAFFIC_CLASS_3.
-
-transmit_clock_source
¶
Spirent Extension (for Spirent HLTAPI only).
Specifies the transmit clock source. Possible values are:
INTERNAL Crystal on the interface provides the clock INTERNAL_PPM_ADJ Offset in parts per million
The default value is INTERNAL.
-
-tx_credits
¶
Spirent Extension (for Spirent HLTAPI only).
Number of frames the port can send. This argument is only available when -topology is set to ptp_private. Possible values range from 1 to 65535. The default value is 16.
-
-tx_preemphasis_main_tap
¶
Sets the pre-emphasis main tap on the Tx port. The sum of the values of -tx_preemphasis_main_tap and -tx_preemphasis_post_tap must be less than 32. Possible values range from 0 to 31. The default value is 21. This argument is available when -speed is set to ether25Gig, ether40Gig, ether50Gig, ether100Gig or ether400Gig.
-
-tx_preemphasis_post_tap
¶
Sets the pre-emphasis post tap on the Tx port. The sum of -tx_preemphasis_main_tap and -tx_preemphasis_post_tap values must be less than 32. The parameter is used only for Ethernet 40Gig and 100Gig interfaces. Possible values range from 0 to 15. The default value is 8. This argument is only available when -speed is set to ether25Gig, ether40Gig, ether50Gig, ether100Gig, ether400Gig or ether800Gig.
-
-tx_s1
¶
Specifies the synchronization status S1 byte value to be transmitted. Possible values range from 0 to 65535. The default is 0.
-
-tx_fcs
¶
Specifies the value for the Frame Check Sequence size for the transmitting side of each interface. Possible values are 16 and 32. The default is 32.
-
-vlan
¶
Enables or disables VLAN on the traffic generation tool interfaces. Valid values are 0 and 1. The default is 1 (enable). The -mode argument must be set to config or modify. If the -vlan argument is set to 0, no VLAN Ethernet Interface or Q-in-Q Ethernet Interface will be created even though -vlan_id and -vlan_outer_id have been provided.
-
-vlan_id
¶
Spirent Extension (for Spirent HLTAPI only).
The VLAN ID of the first VLAN sub-interface. Possible values range from 0 to 4095. The is no default value for this option. If the -vlan argument is set to 1 and the -vlan_id argument is provided, VLAN Ethernet Interface will be set.
-
-vlan_id_count
¶
Spirent Extension (for Spirent HLTAPI only).
Specifies the number of VLAN IDs to use when generating multiple VLANs. Possible values range from 1 to 4096. The default is 1.
-
-vlan_id_step
¶
Spirent Extension (for Spirent HLTAPI only).
Specifies the value to increment the VLAN IDs. You must specify this step when -vlan_id_count is greater than 1. The default value is 1. Possible step values range from 0 to 4095.
-
-vlan_user_priority
¶
Spirent Extension (for Spirent HLTAPI only).
VLAN user priority assigned to emulated sub-interfaces. Possible values range from 0 to 7. The default is 0.
-
-vlan_cfi
¶
Spirent Extension (for Spirent HLTAPI only).
VLAN CFI assigned to emulated sub-interfaces. Possible values are 1 and 0. The default is 0.
-
-vlan_outer_id
¶
Spirent Extension (for Spirent HLTAPI only).
The outer VLAN ID of the first outer VLAN sub-interface. Possible values range from 0 to 4095. The is no default value for this option. If the -vlan argument is set to 1 and both -vlan_id argument and the -vlan_outer_id argument is provided, then the Q-in-Q Ethernet Interface will be set.
-
-vlan_outer_id_count
¶
Spirent Extension (for Spirent HLTAPI only).
Specifies the number of outer VLAN IDs to use when generating multiple outer VLANs. Possible values range from 1 to 4096. The default is 1.
-
-vlan_outer_id_step
¶
Spirent Extension (for Spirent HLTAPI only).
Specifies the value to increment the outer VLAN ID. You must specify this step when -vlan_outer_id_count is greater than 1. The default value is 1. Possible step values range from 0 to 4095.
-
-vlan_outer_user_priority
¶
Spirent Extension (for Spirent HLTAPI only).
Outer VLAN user priority assigned to emulated interface. Possible values range from 0 to 7. The default is 0.
-
-vlan_outer_cfi
¶
Spirent Extension (for Spirent HLTAPI only).
Outer VLAN CFI assigned to emulated interface. Possible values are 1 and 0. The default is 0.
-
-qinq_incr_mode
¶
Spirent Extension (for Spirent HLTAPI only).
Specifies the increment mode for Q-in-Q Ethernet interfaces. This parameter only applies to Q-in-Q Ethernet interfaces. Possible values are inner, outer and both. The default is both. The modes are described below:
inner - The inner VLAN ID is incremented first until the specified number of inner VLANs is exhausted, then the outer VLAN ID is incremented. This continues in a round-robin fashion until the number of outer VLANs is exhausted. outer - The outer VLANs ID is incremented first until the specified number of outer VLANs is exhausted, then the inner VLAN ID is incremented. This continues in a round-robin fashion until the number of inner VLANs is exhausted. both - The inner VLAN ID and outer VLAN ID increment at the same time. When inner VLAN count is larger than the outer VLAN count, then the inner VLAN ID will continues in a round-robin fashion until the number of the outer VLAN ID is exhausted. A similar process takes place when the outer VLAN count is larger than the inner VLAN count.
For example, if -vlan_id is set to 100, -vlan_outer_id 200 -vlan_id_count 4, -vlan_outer_id_count 2, the -vlan_id_step argument 1 and -vlan_outer_id_step 1,
For inner mode, generated values will be:
(100,200) (101 200) (102,200) (103 200) (100,201) (101 201) (102,201) (103 201)
For outer mode, generated values will be:
(100,200) (100 201) (101,200) (101 201) (102,200) (102 201) (103,200) (103 201)
For both mode, generated values will be:
(100,200) (101 201) (102,200) (103 201)
-
-pfc_negotiate_by_dcbx
¶
Enables or disables Data Center Bridging Capability Exchange Protocol (DCBX) via LLDP to negotiate the priority flow control settings or manually select priority flow control settings. Possible values are 0 (disable) and 1 (enable). The default value is 0. You can use this argument when you specify -speed ether10000, ether25Gig, ether40Gig, ether50Gig, ether100Gig, ether400Gig or ether800Gig.
-
-priority0
¶
Enables or disables the priority 0 queue for Priority Flow Control (PFC)frames. Possible values are 0 (disable) and 1 (enable). The default value is 0. This argument is only available when you specify -speed ether10000, ether25Gig, ether40Gig, ether50Gig, ether100Gig, ether400Gig or ether800Gig and -pfc_negotiate_by_dcbx 0.
-
-priority1
¶
Enables or disables the priority 1 queue for PFC frames. Possible values are 0 (disable) and 1 (enable). The default value is 0. This argument is only available when you specify -speed ether10000, ether25Gig, ether40Gig, ether50Gig, ether100Gig, ether400Gig or ether800Gig and -pfc_negotiate_by_dcbx 0.
-
-priority2
¶
Enables or disables the priority 2 queue for PFC frames. Possible values are 0 (disable) and 1 (enable). The default value is 0. This argument is only available when you specify -speed ether10000, ether25Gig, ether40Gig, ether50Gig, ether100Gig, ether400Gig or ether800Gig and -pfc_negotiate_by_dcbx 0.
-
-priority3
¶
Enables or disables the priority 3 queue for PFC frames. Possible values are 0 (disable) and 1 (enable). The default value is 0. This argument is only available when you specify -speed ether10000, ether25Gig, ether40Gig, ether50Gig, ether100Gig, ether400Gig or ether800Gig and -pfc_negotiate_by_dcbx 0.
-
-priority4
¶
Enables or disables the priority 4 queue for PFC frames. Possible values are 0 (disable) and 1 (enable). The default value is 0. This argument is only available when you specify -speed ether10000, ether25Gig, ether40Gig, ether50Gig, ether100Gig, ether400Gig or ether800Gig and -pfc_negotiate_by_dcbx 0.
-
-priority5
¶
Enables or disables the priority 5 queue for PFC frames. Possible values are 0 (disable) and 1 (enable). The default value is 0. This argument is only available when you specify -speed ether10000, ether25Gig, ether40Gig, ether50Gig, ether100Gig, ether400Gig or ether800Gig and -pfc_negotiate_by_dcbx 0.
-
-priority6
¶
Enables or disables the priority 6 queue for PFC frames. Possible values are 0 (disable) and 1 (enable). The default value is 0. This argument is only available when you specify -speed ether10000, ether25Gig, ether40Gig, ether50Gig, ether100Gig, ether400Gig or ether800Gig and -pfc_negotiate_by_dcbx 0.
-
-priority7
¶
Enables or disables the priority 7 queue for PFC frames. Possible values are 0 (disable) and 1 (enable). The default value is 0. This argument is only available when you specify -speed ether10000, ether25Gig, ether40Gig, ether50Gig, ether100Gig, ether400Gig or ether800Gig and -pfc_negotiate_by_dcbx 0.
-
-pfc_priority_enable
¶
Spirent Extension (for Spirent HLTAPI only).
Specifies a list of Boolean values to enable or disable the queue for PFC frames, starting from priority0 to priority7. Possible values are true and false. The default value is “false false false false false false false false”.
-
-pfc_priority_pause_quanta
¶
Spirent Extension (for Spirent HLTAPI only).
Specifies a list of pause quanta for queues from priority0 to priority7. Possible values range from 0 to 65535. Values less than 0 will be set as 0; values greater than 65535 will be set as 65535. The default value is “0 0 0 0 0 0 0 0”.
-
-pfc_send_xon
¶
Spirent Extension (for Spirent HLTAPI only).
When enabled, XON frames will be sent. Possible values are 0 (disable) and 1 (enable). The default value is 0.
-
-pfc_xon_delay
¶
Spirent Extension (for Spirent HLTAPI only).
Specifies the delay in quanta before sending the XON frame. Possible values range from 1 to 3273000. The default value is 1.
-
-pfc_xon_delay_unit
¶
Spirent Extension (for Spirent HLTAPI only).
Specifies the unit for XON delay. Possible values are:
pause_quanta XON delay is specified in quanta microseconds XON delay is specified in microseconds
The default value is pause_quanta.
-
-rx_hec
¶
Enables ATM HEC correction, Valid values are 0 and 1. The default is 0 (disable). The -mode argument must be set to config or modify.
-
-detection_mode
¶
Specifies the detection mode to set emphasis values based on the module type. Possible values are auto_detect, manual and advanced. The default value is auto_detect.
-
-cable_length_type
¶
Specifies the cable type and length. The default value is optical. This argument is only available when you set -detection_mode to manual.
-
-tx_deemphasis_post_tap
¶
Specifies the transmit de-emphasis post tap value. Possible values are from 0 to 71. This argument is only available when you set -detection_mode to advanced. The default value is 13.
-
-tx_deemphasis_pre_tap
¶
Specifies the transmit de-emphasis pre tap value. Possible values are from 0 to 71. This argument is only available when you set -detection_mode to advanced. The default value is 0.
-
-tx_main_tap_swing
¶
Specifies the transmit main tap swing value. Possible values are from 0 to 31. This argument is only available when you set -detection_mode to advanced. The default value is 15.
-
-enable_auto_negotiation_master_slave
¶
Specifies whether to enable the Ethernet 200G fiber port to be master or slave for auto negotiation. Possible values are true and false. The default value is true.
-
-priority_flow_control_array
¶
Specifies whether to set array of boolean priority bit values (8 bits). Possible values are true and false. The default value is false.
-
-auto_negotiation_master_slave
¶
Specifies the Ethernet 200G fiber port to be master or slave for auto negotiation. The default value is master. Possible Values are described below:
Value Description slave Slave master Master fault Fault
-
-optimized_xon
¶
Specifies whether to enable or disable optimized XON value on the Ethernet 200G fiber port. Possible values are enable and disable. The default value is disable.
-
-test_mode
¶
Specifies the test mode value of Ethernet 200G fiber port. The default value is normal_operation. Possible Values are described below:
Value Description normal_operation Normal operation normal_operation_full_power Normal operation full power transmit_droop Transmit droop master_transmit_jitter Master transmit jitter slave_transmit_jitter Slave transmit jitter transmitter_distortion Transmitter distortion
-
-pfc_cable_delay
¶
Specifies the length of PFC cable delay on the Ethernet 200G fiber port.
-
-pfc_cable_delay_type
¶
Specifies the type of cable to simulate PFC delay on the Ethernet 200G fiber port. Possible values are fiber and copper. The default value is fiber.
-
-port_setup_mode
¶
Specifies whether to configure port setup or hardware register parameters. The default value is portconfig_only. Possible Values are described below:
Value Description portconfig_only Port setup configuration only registers_only Hardware register configuration only
-
-ignore_link_status
¶
Specifies whether to allow the Ethernet 200G fiber port to continue transmitting traffic if the link(s) with its peer port(s) goes down. Possible values are true and false. The default value is false.
-
-advertise_ieee
¶
Specifies whether to advertise IEEE on the Ethernet 200G fiber port. Possible values are true and false. The default value is false.
-
-advertise_nbaset
¶
Specifies whether to advertise NBASE-T on the Ethernet 200G fiber port. Possible values are true and false. The default value is false.
-
-down_shift_enable
¶
Specifies whether to enable or disable Downshift on the Ethernet 200G fiber port. Possible values are true and false. The default value is false.
-
-enable_8023_br_per_port
¶
Specifies whether to enable 8023 per port. Possible values are true and false. The default value is false.
-
-cfp_interface
¶
Specifies the CFP interface value on the Ethernet 200G fiber port. The default value is ACC_6068A.
-
-custom_fec_mode
¶
Specifies the custom FEC mode on the Ethernet 200G fiber port. The default value is kr_fec. Possible Values are described below:
Value Description none No custom FEC mode kr_fec KR FEC mode rs_fec RS FEC mode kp4_fec KP4 FEC mode
Arguments Unsupported by Save as HLTAPI¶
The following Spirent HLTAPI arguments are currently not supported by the Save as HLTAPI function:
-arp_cache_retrieve
-arpnd_report_retrieve
-arp_target
-arp_send_re
-arp_req_timer
-port_load
-port_loadunit
-qinq_incr_mode
-vlan_id_count
-vlan_outer_id_count
Vendor Specific Arguments Processed by Spirent HLTAPI Wrapper¶
None
Vendor Specific Arguments Ignored by Spirent HLTAPI Wrapper¶
-arp
-action
-arp_on_linkup
-connected_count
-check_gateway_exists
-data_integrity
-integrity_signature
-integrity_signature_offset
-no_sut
-gateway_incr_mode
-gre_ip_prefix_length
-ignore_link
-port_rx_mode
-pgid_offset
-port_rx_mode
-sequence_checking
-qos_byte_offset
-qos_packet_type
-qos_pattern_offset
-qos_stats
-qos_pattern_match
-qos_pattern_mask
-sequence_num_offset
-signature
-signature_start_offset
-signature_offset
-transmit_mode
-vlan_id_mode
Cisco-specific Arguments¶
The following arguments are specific to the Cisco HLTAPI but are not supported by Spirent HLTAPI:
-aps
-aps_arch
-aps_channel
-aps_request_1_1
-aps_request_1_n
-aps_switch_mode
-auto_line_rdi
-auto_line_rei
-auto_path_rdi
-auto_path_rei
-crlf_path_trace
-ignore_pause_frames
-interpacket_gap
-line_ais
-line_bip24
-line_bip384
-line_bip96
-line_rdi
-line_rei
-line_type
-long_lof_wait
-op_mode
-output_enable
-path_ais
-path_bip8
-path_rdi
-path_rei
-path_type
-pause_length
-prdi_threshold
-rx_c2
-rx_enhanced_prdi
-rx_fcs
-rx_scrambling
-section_bip8
-section_unequip
-signal_fail_ber
-ss_bits_pointer_interp
-tx_c2
-tx_enhanced_prdi
-tx_k2
-tx_scrambling
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).
arpnd_status Success (1) or failure (0) of the ARP operation.
arpnd_cache Displays the ARP cache table on the specified port
when -arp_cache_retrieve is set to 1.
line_speed Displays the line speed on the specified port.
Description¶
The interface_config function sets, modifies, or deletes a port configuration. Use the -port_handle argument to identify the port. (The port handle value is contained in the keyed list returned by the connect function.) Use the -mode argument to specify the action to perform. (See the -mode argument description for information about the actions.)
You can set the interface type (see -intf_mode) to ethernet, pos_hdlc, pos_ppp, atm or fc.
Here is an example of a configuration for POS (Packet over SONET) HDLC:
::sth::interface_config -mode config \
-port_handle $p0 \
-speed oc192 \
-intf_mode pos_hdlc \
-control_plane_mtu 1500 \
-framing SONET
To enable ARP, you must:
Set enable ARP at the port level, using this command:
sth::interface_config -arp_send_req 1
This request enables ARP for all stream blocks under the specified port.
Specify the MAC discovery gateway for the stream block, as shown below:
sth::traffic_config -mac_discover_gw <a.b.c.d>
Call the sth::traffic_control -action run -port_handle $porthandle function, as shown below:
sth::interface_config -arp_send_req 1 sth::traffic_config -mac_discover_gw 90.37.0.1 sth::traffic_control -action run -port_handle $porthandle
To disable ARP:
sth::interface_config -arp_send_req 0
To use Ethernet 10G fiber for a WAN card, you must specify the following:
sth::interface_config
-mode config \
-port_handle $p0 \
-port_mode WAN
-speed ether10000
Examples¶
Sample Input:
sth::interface_config -port_handle $qinq_port \
-mode config \
-intf_ip_addr 10.0.0.2 \
-intf_ip_addr_step 0.1.0.0 \
-gateway 10.0.0.1\
-gateway_step 0.1.0.0 \
-autonegotiation 1 \
-arp_send_req 1 \
-arp_req_retries 10 \
-phy_mode copper \
-vlan_id 100 \
-vlan_id_count 5\
-vlan_outer_id 200 \
-vlan_outer_id_count 2 \
-vlan 1 \
-vlan_outer_id_step 1 \
-vlan_outer_user_priority 6 \
-vlan_outer_cfi 1 \
-qinq_incr_mode "both"
The following example applies the ARP to the port. It also checks the ARP results and retrieves the ARP/Nd Statistics:
::sth::interface_config -port_handle $portHnd\
-mode modify \
-arp_send_req 1\
-arp_target port\
-arpnd_report_retrieve 1]
Sample Output:
<ARP SUCCESS> {arpnd_status 1} {arpnd_cache } {arpnd_report {{arpnd_status SUCCESSFUL} {failed_arpnd_count 0} {successful_arpnd_count 1} {attempted_arpnd_count 1}}} {port1 {{line_speed SPEED_10G}}} {status 1}
<ARP FAILURE> {arpnd_status 1} {arpnd_cache } {arpnd_report {{arpnd_status FAILURE} {failed_arpnd_count 1} {successful_arpnd_count 0} {attempted_arpnd_count 1}}} {port1 {{line_speed SPEED_10G}}} {status 1}
To configure an FC interface on the specified port:
set rtn [sth::interface_config \
-mode config \
-port_handle port1 \
-speed ether4000 \
-intf_mode fc\
-data_path_mode normal\
-internal_ppm_adjust 50\
-control_plane_mtu 100\
-transmit_clock_source internal_ppm_adj\
-receiver_ready_delay_min 10\
-receiver_ready_delay_mode fixed\
-receiver_ready_delay_units us\
-max_recv_size 100\
-receiver_timeout 200\
-rx_credits 300\
-topology ptp_public\
-traffic_class traffic_class_2\
-tx_credits 400]
Sample Output:
{status 1}
To configure T-Base speeds 2.5G/5G/0.1G/1G/10G for module MX2-10G-S12:
set rtn [sth::interface_config \
-mode config \
-port_handle port1 \
-speed ether10000 \
-phy_mode fiber\
-autonegotiation 1 \
-performance_mode STC_MGIG \
-alternate_speeds "SPEED_10G SPEED_5G SPEED_2500M SPEED_1G SPEED_100M" \
-create_host false \
-arp_send_req 0 ]
The following example is to configure 400Gig ports:
set int_ret0 [sth::interface_config \
-mode config \
-port_handle $port1 \
-create_host false \
-intf_mode ethernet\
-phy_mode fiber\
-scheduling_mode PORT_BASED \
-port_loadunit PERCENT_LINE_RATE \
-port_load 10 \
-enable_ping_response 0 \
-tx_preemphasis_main_tap 21 \
-control_plane_mtu 1500 \
-transmit_clock_source internal \
-forward_error_correct true \
-flow_control false \
-collision_exponent 10 \
-deficit_idle_count true \
-pfc_negotiate_by_dcbx 0 \
-speed ether400Gig \
-data_path_mode normal \
-internal_ppm_adjust 0 \
-rx_equalization 8 \
-duplex full \
-autonegotiation 0 \
-tx_preemphasis_post_tap 8]
The following example returns the parameters handle, which is then passed to
the sth::emulation_isis_config
function:
# With -expand set to false, param_handle will be returned, which can be
# passed to protocol configuration APIs, for example,-mode activate in
# sth::emulation_isis_config.
set int_ret0 [sth::interface_config \
-mode config \
-port_handle $port1 \
-intf_mode ethernet\
-phy_mode copper\
-scheduling_mode RATE_BASED \
-port_loadunit PERCENT_LINE_RATE \
-port_load 10 \
-enable_ping_response 0 \
-control_plane_mtu 1500 \
-pfc_negotiate_by_dcbx 0 \
-speed ether10000 \
-duplex full \
-autonegotiation 1 \
-create_host false\
-count 1\
-intf_ip_addr 10.0.0.2 \
-intf_ip_addr_step 0.1.0.0 \
-gateway 10.0.0.1\
-gateway_step 0.1.0.0 \
-vlan_id 100 \
-vlan_id_count 5\
-vlan_id_step 1\
-vlan_outer_id 200\
-vlan_outer_id_count 5\
-expand false\
]
set hnd [keylget int_ret0 param_handle]
set rtn [sth::emulation_isis_config \
-mode activate\
-handle "$hnd"\
-area_id 000001\
-hello_padding true\
-ip_version 4\
-routing_level L2\
-system_id_step 00:00:00:00:00:01\
-graceful_restart 1\
-wide_metrics 2\
-bfd_registration 0\
-intf_type broadcast\
-expand true\
]
Sample Output for sth::interface_config:
{arpnd_status 1} {arpnd_cache none} {arpnd_report none} {handle_list {}}
{param_handle emulateddevicegenparams1} {port1 {{line_speed SPEED_10G}}}
{status 1} {handles 0}
Sample Output for sth::emulation_isis_config:
{handle_list {emulateddevice1 emulateddevice2 emulateddevice3 emulateddevice4
emulateddevice5 emulateddevice6 emulateddevice7 emulateddevice8 emulateddevice9
emulateddevice10 emulateddevice11 emulateddevice12 emulateddevice13 emulateddevice14
emulateddevice15 emulateddevice16 emulateddevice17 emulateddevice18 emulateddevice19
emulateddevice20 emulateddevice21 emulateddevice22 emulateddevice23 emulateddevice24
emulateddevice25}} {handle {}} {status 1}
The following example creates and returns a list of raw emulated device handles:
# With -expand set to true, a list of emulated devices will be created and their
# handles returned.
set int_ret0 [sth::interface_config \
-mode config \
-port_handle $port1 \
-intf_mode ethernet\
-phy_mode copper\
-scheduling_mode RATE_BASED \
-port_loadunit PERCENT_LINE_RATE \
-port_load 10 \
-enable_ping_response 0 \
-control_plane_mtu 1500 \
-pfc_negotiate_by_dcbx 0 \
-speed ether10000 \
-duplex full \
-autonegotiation 1 \
-create_host false\
-count 1\
-intf_ip_addr 10.0.0.2 \
-intf_ip_addr_step 0.1.0.0 \
-gateway 10.0.0.1\
-gateway_step 0.1.0.0 \
-vlan_id 100 \
-vlan_id_count 5\
-vlan_id_step 1\
-vlan_outer_id 200\
-vlan_outer_id_count 5\
-expand true\
]
Sample Output:
{arpnd_status 1} {arpnd_cache none} {arpnd_report none} {handle_list {emulateddevice1
emulateddevice2 emulateddevice3 emulateddevice4 emulateddevice5 emulateddevice6
emulateddevice7 emulateddevice8 emulateddevice9 emulateddevice10 emulateddevice11
emulateddevice12 emulateddevice13 emulateddevice14 emulateddevice15 emulateddevice16
emulateddevice17 emulateddevice18 emulateddevice19 emulateddevice20 emulateddevice21
emulateddevice22 emulateddevice23 emulateddevice24 emulateddevice25}}
{param_handle {}} {port1 {{line_speed SPEED_10G}}} {status 1} {handles 0}
If there is an error, you will see: {status 0} {log {Error message }}
Note
Spirent HLTAPI supports the new dot format for setting the port parameters (for example, 00.00.00.00.00.01) as well as the previous format which uses hyphens (for example, 00-00-00-00-00-01).
End of Procedure Header
sth::interface_control¶
Purpose¶
Controls the specified port on a Spirent HLTAPI chassis
Synopsis¶
Note
M indicates that the argument is Mandatory .
sth::interface_control [-mode {restart_autonegotiation|break_link|restore_link|pfc_response_time| enable_monitor|disable_monitor} M] [-port_handle <handle> M]
Arguments¶
-
-mode
¶
Specifies the action to perform for the port(s) specified by the -port_handle argument. This argument is Mandatory . The modes are described below:
restart_autonegotiation - Restarts autonegotiation break_link - Breaks all the current links on the specified port restore_link - Restores the links broken by break_link pfc_response_time - Measures pause response time enable_monitor - Enables system monitor disable_monitor - Disables system monitor
-
-port_handle
¶
Specifies the handle for the port to be controlled. This argument is Mandatory .
Return Values¶
Depending on the specific language that HLTAPI uses, the function returns a keyed list/dictionary/hash (See Introduction for more information on return value formats) using the following keys (with corresponding data):
status $SUCCESS|$FAILURE
log An error message (if the operation failed)
Description¶
The sth::interface_control
function controls the specified port on a Spirent
HLTAPI chassis. Use -port_handle to specify the port to be controlled, and use the
-mode argument to specify the type of control.
Depending on your test configuration, you may break more than one link by using break_link. To restore all of the affected links, use restore_link for the port on which the link was broken.
Examples¶
The following example breaks the link on a specified port:
set cmdReturn [sth::interface_control -mode break_link \
-port_handle port1]
The following example restores the broken link:
set cmdReturn [sth::interface_control -mode restore_link \
-port_handle port1]
The following example measures the pause response time:
set int_ret0 [sth::interface_control \
-mode pfc_response_time \
-port_handle "$port1"\
]
Sample Output:
{status 1}
End of Procedure Header
sth::interface_stats¶
Purpose¶
Returns interface statistics for the specified Ethernet port. Statistics include interface configuration parameters such as port handle, interface type, card name, port name, and interface speed as well as statistics about the Ethernet attributes associated with the port. These attributes include the port’s MAC address, number of frames or bytes successfully transmitted, number of frames or bytes successfully received, number and type of collisions that occurred, the port speed and duplex setting, and the link state of the port.
Synopsis¶
Note
M indicates that the argument is Mandatory .
sth::interface_stats [-port_handle <handle>] [-port_handle_list <handle_list>] [-properties <property_list>]
Arguments¶
-
-port_handle
¶
The name of the port for which you want information, for example, port1. You must specify -port_handle or -port_handle_list list, but not both.
-
-port_handle_list
¶
A list of handles of the ports for which you want information, for example, -port_handle_list $portList. You must specify -port_handle or -port_handle_list list, but not both.
-
-properties
¶
Specifies a set of analyzer/generator attributes for which you want the results. You can use the -db_file argument alone with the corresponding action in the sth::traffic_control funtion to determine whether to return EOT or run-time results. If no property is specified, all properties will be returned.
The following are common properties for both EOT and run-time results:
Analyzer Generator
ana.rx_frames gen.tx_frames
ana.rx_bytes gen.tx_bytes
ana.rx_fcs_error gen.tx_total_mpls_frame_count
ana.rx_runt_frames gen.tx_generator_frame_count
ana.rx_sig_count gen.tx_generator_sig_frame_count
ana.rx_max_frame_length gen.tx_generator_octet_count
ana.rx_prbs_fill_byte_count gen.tx_generator_ipv4_frame_count
ana.rx_jumbo_frame_count gen.tx_generator_ipv6_frame_count
ana.rx_ipv6_over_ipv4_frame_count gen.tx_generator_vlan_frame_count
ana.rx_mpls_frame_count gen.tx_generator_mpls_frame_count
ana.rx_ipv4_CheckSum_error_count gen.tx_generator_crc_error_frame_count
ana.rx_tcp_CheckSum_error_count gen.tx_generator_l3_checksum_error_count
ana.rx_oversize_frame_count gen.tx_generator_l4_checksum_error_count
ana.rx_prbsbit_error_count gen.tx_generator_l3_checksum_error_rate
ana.rx_trigger1_count gen.tx_generator_l4_checksum_error_rate
ana.rx_trigger2_count gen.tx_generator_crc_error_frame_rate
ana.rx_trigger4_count gen.tx_generator_abort_frame_rate
ana.rx_trigger5_count gen.tx_generator_undersize_frame_count
ana.rx_trigger6_count gen.tx_generator_oversize_frame_count
ana.rx_combo_trigger_count gen.tx_generator_jumbo_frame_count
ana.rx_pfc_frame_rate gen.tx_generator_abort_frame_count
ana.rx_fcoe_frame_rate gen.tx_hw_frame_count
ana.rx_pfc_frame_count gen.tx_pfc_frame_count
ana.rx_fcoe_frame_count gen.tx_pfc_pri[0-7]_frame_count
ana.rx_pfc_pri[0-7]_frame_count
ana.rx_icmp_frame_count
ana.rx_ipv6_frame_count
ana.rx_pause_frame_count
ana.rx_vlan_frame_count
FC
fc.b2b_tx_credit_count
fc.b2b_tx_credit_na_count
fc.class2_tx_frame_count
fc.class2_rx_frame_count
fc.class3_tx_frame_count
fc.class3_rx_frame_count
fc.othercls_tx_frame_count
fc.othercls_rx_frame_count
fc.class2_tx_frame_rate
fc.class2_rx_frame_rate
fc.class3_tx_frame_rate
fc.class3_rx_frame_rate
fc.othercls_tx_frame_rate
fc.othercls_rx_frame_rate
fc.total_cls2_tx_byte_count
fc.total_cls2_rx_byte_count
fc.total_cls3_tx_byte_count
fc.total_cls3_rx_byte_count
fc.total_othercls_tx_byte_count
fc.total_othercls_rx_byte_count
fc.total_cls2_tx_byte_rate
fc.total_cls2_rx_byte_rate
fc.total_cls3_tx_byte_rate
fc.total_cls3_rx_byte_rate
fc.total_othercls_tx_byte_rate
fc.total_othercls_rx_byte_rate
The following properties are specific to run-time results:
ana.rx_byte_rate gen.tx_generator_frame_rate
ana.rx_hw_frame_count gen.tx_generator_ipv4_frame_rate
ana.rx_frame_rate gen.tx_generator_ipv6_frame_rate
ana.rx_ipv4_frame_rate gen.tx_generator_jumbo_frame_rate
ana.rx_ipv6_frame_rate gen.tx_generator_mpls_frame_rate
ana.rx_ipv6_over_ipv4_frame_rate gen.tx_generator_octet_rate
ana.rx_jumbo_frame_rate gen.tx_generator_oversize_frame_rate
ana.rx_pause_frame_rate gen.tx_generator_sig_frame_rate
ana.rx_sig_rate gen.tx_generator_undersize_frame_rate
ana.rx_counter_timestamp gen.tx_generator_vlan_frame_rate
ana.rx_icmp_frame_rate gen.tx_total_frame_rate
ana.rx_udp_CheckSum_err_rate gen.tx_total_mpls_frame_rate
ana.rx_vlan_frame_rate gen.tx_total_octet_rate
gen.tx_counter_timestamp
Arguments Unsupported by Save as HLTAPI¶
This function is currently not supported by Save as HLTAPI.
Return Values¶
Depending on the specific language that HLTAPI uses, the function returns a keyed list/dictionary/hash (See Introduction for more information on return value formats) using the following keys (with corresponding data):
intf_type The port type.
card_name The name of the interface card.
port_name The name of the port on the interface card.
intf_speed The speed of the port in megahertz (MHz). Valid values
are 10, 100, 1000, 10000, 25000, 100000, 400000, 40000, 50000,
9_286000, fc, oc3, oc12, oc48 or oc192.
For Ethernet 10/100 interfaces, the following statistics are also returned:
link The link state of the port: 1 if the port is up or 0 if it
is down.
duplex The port's duplex mode: full or half.
For Gigabit Ethernet/GBIC interfaces, the following statistics are also returned:
link The link state of the port: 1 if the port is up or 0 if it
is down.
macaddress Returns the MAC address.
Additionally, the following counters are available for the transmitting and receiving ports for 10/100, GBIC, and 10GBIC speed cards:
rx_byte_rate The rate at which bytes are received.
rx_bytes Number of bytes that were received.
rx_combo_trigger_count
Number of frames captured by all the triggers
rx_combo_trigger_rate
Number of frames received by the all the triggers over the
last one-second interval
rx_fcs_error
Received CRC-error frame count. The number of packets
received that had a length between 64 and 1518 octets
(excluding framing bits, but including FCS octets) containing
a bad FCS and an integral number of octets.
rx_fcs_error_rate
Number of FCS error frames received over the last
one-second interval
rx_frame_rate
Rate at which frames are received
rx_frames
Number of frames that were successfully received
rx_fcoe_frame_rate
Number of FCoE frames received over the last one-second interval
rx_fcoe_frame_count
Number of FCoE frames received
rx_hw_frame_count
Number of hardware frames received
rx_pause_frame_count
Number of pause frames received.
rx_icmp_frame_rate
Number of ICMP frames received over the last one-second
interval
rx_icmp_frame_count
Number of ICMP frames received.
rx_vlan_frame_count
Number of VLAN frames received.
rx_vlan_frame_rate
Number of VLAN frames received over the last one-second interval.
rx_ipv4_CheckSum_error_count
Number of IPv4 checksum errors received.
rx_ipv4_frame_rate
Number of IPv4 frames received over the last one-second interval
rx_ipv6_frame_rate
Number of IPv6 frames received over the last one-second interval
rx_ipv6_frame_count
Number of IPv6 frames received.
rx_ipv6_over_ipv4_frame_count
Number of IPv6 over IPv4 frames received
rx_ipv6_over_ipv4_frame_rate
Number of IPv6 over IPv4 frames received over the last
one-second interval
rx_jumbo_frame_count
Number of Jumbo frames received
rx_jumbo_frame_rate
Number of Jumbo frames received over the last one-second interval
rx_max_frame_length
Maximum frame length received (in bytes)
rx_min_frame_length
Minimum frame length received (in bytes).
rx_mpls_frame_count
Number of MPLS frames received
rx_mpls_frame_rate
Number of MPLS frames received over the last one-second interval
rx_oversize_frame_count
Number of oversize frames received
rx_oversize_frame_rate
Number of oversize frames received over the last one-second
interval
rx_pause_frame_rate
Number of pause frames received over the last one-second interval
rx_pfc_frame_rate
Number of PFC frames received over the last one-second interval
rx_pfc_frame_count
Number of PFC frames received
rx_pfc_pri0_frame_count
Number of priority0 pause frames received.
rx_pfc_pri1_frame_count
Number of priority1 pause frames received.
rx_pfc_pri2_frame_count
Number of priority2 pause frames received.
rx_pfc_pri3_frame_count
Number of priority3 pause frames received.
rx_pfc_pri4_frame_count
Number of priority4 pause frames received.
rx_pfc_pri5_frame_count
Number of priority5 pause frames received.
rx_pfc_pri6_frame_count
Number of priority6 pause frames received.
rx_pfc_pri7_frame_count
Number of priority7 pause frames received.
rx_prbs_bit_rate
Number of PRBS bit error frames received over the last
one-second interval
rx_prbs_fill_byte_count
Number of PRBS bits received
rx_prbsbit_error_count
Number of PRBS bit errors received
rx_runt_frames Number of undersize frames received (Count for each carrier
event in which the byte count was less than 64)
rx_counter_timestamp
Time when the counter was stored.
rx_sig_count
Number of Spirent Signature frames received
rx_sig_rate
The rate at which Spirent Signature frames are received
rx_tcp_CheckSum_error_count
Number of frames with TCP checksum error received
rx_tcp_frame_rate
Number of TCP frames received over the last one-second
interval.
rx_trigger1_count
Number of frames captured by trigger 1
rx_trigger1_rate
Number of frames received by trigger 1 over the last
one-second interval
rx_trigger2_count
Number of frames captured by trigger 2
rx_trigger2_rate
Number of frames received by trigger 2 over the last
one-second interval
rx_trigger3_count
Number of frames captured by trigger 3
rx_trigger3_rate
Number of frames received by trigger 3 over the last
one-second interval
rx_trigger4_count
Number of frames captured by trigger 4
rx_trigger4_rate
Number of frames received by trigger 4 over the last
one-second interval
rx_trigger5_count
Number of frames captured by trigger 5
rx_trigger5_rate
Number of frames received by trigger 5 over the last
one-second interval
rx_trigger6_count
Number of frames captured by trigger 6
rx_trigger6_rate
Number of frames received by trigger 6 over the last one-second
interval
rx_trigger7_count
Number of frames captured by trigger 7
rx_trigger7_rate
Number of frames received by trigger 7 over the last
one-second interval
rx_udp_CheckSum_err_rate
Number of UDP checksum error frames received over the last
one-second interval
rx_udp_frame_rate
Number of UDP frames received over the last one-second
interval
rx_undersize_frame_rate
Number of undersize frames received over the last one-second
interval
tx_bytes
Number of bytes that were successfully transmitted
tx_frames
Number of frames that were successfully transmitted
tx_counter_timestamp
Time when the counter was stored. This value is derived
from the TestCenter chassis time sync source.
The unit is 10 nanoseconds.
tx_generator_abort_frame_count
Number of Abort frames generated
tx_generator_abort_frame_rate
Number of Abort frames generated over the last one-second interval
tx_generator_crc_error_frame_count
Number of CRC error frames generated
tx_generator_crc_error_frame_rate
Number of CRC error frames generated over the last
one-second interval
tx_generator_frame_count
Number of frames generated
tx_generator_frame_rate
Total number of frames generated over the last one-second
interval
tx_generator_ipv4_frame_count
Number of IPv4 frames generated
tx_generator_ipv4_frame_rate
Total number of IPv4 frames generated over the last
one-second interval
tx_generator_ipv6_frame_count
Number of IPv6 frames generated
tx_generator_ipv6_frame_rate
Total number of IPv6 frames generated over the last
one-second interval
tx_generator_jumbo_frame_count
Number of Jumbo frames generated
tx_generator_jumbo_frame_rate
Number of jumbo frames generated over the last one-second
interval
tx_generator_l3_checksum_error_count
Number of Layer 3 checksum errors generated
tx_generator_l3_checksum_error_rate
Number of Layer 3 header checksum errors generated over
the last one-second interval
tx_generator_l4_checksum_error_count
Number of Layer 4 checksum errors generated
tx_generator_l4_checksum_error_rate
Number of Layer 4 header checksum errors generated over the
last one-second interval
tx_generator_mpls_frame_count
Number of Layer 3 header checksum errors generated over
the last one-second interval
tx_generator_mpls_frame_rate
Number of MPLS frames generated
tx_generator_octet_count
Number of bytes generated.
tx_generator_octet_rate
Total number of bytes generated over the last one-second
interval
tx_generator_oversize_frame_count
Number of oversize frames generated
tx_generator_oversize_frame_rate
Number of oversize frames generated over the last one-second
interval
tx_generator_sig_frame_count
Number of Spirent signature frames generated
tx_generator_sig_frame_rate
Total number of Spirent signature frames generated over the
last one-second interval
tx_generator_undersize_frame_count
Number of undersize frames generated
tx_generator_undersize_frame_rate
Number of undersize frames generated over the last
one-second interval
tx_generator_vlan_frame_count
Number of VLAN frames generated
tx_generator_vlan_frame_rate
Total number of VLAN frames generated over the last
one-second interval
tx_hw_frame_count
Number of hardware frames transmitted
tx_pfc_frame_count
Number of PFC frames generated
tx_pfc_pri0_frame_count
Number of priority0 pause frames received.
tx_pfc_pri1_frame_count
Number of priority1 pause frames received.
tx_pfc_pri2_frame_count
Number of priority2 pause frames received.
tx_pfc_pri3_frame_count
Number of priority3 pause frames received.
tx_pfc_pri4_frame_count
Number of priority4 pause frames received.
tx_pfc_pri5_frame_count
Number of priority5 pause frames received.
tx_pfc_pri6_frame_count
Number of priority6 pause frames received.
tx_pfc_pri7_frame_count
Number of priority7 pause frames received.
tx_total_frame_rate
Total number of frames transmitted over the last one-second
interval.
tx_total_ipv4_frame_count
Total number of IPv4 frames transmitted
tx_total_ipv4_frame_rate
Total number of IPv4 frames transmitted over the last
one-second interval
tx_total_ipv6_frame_count
Total number of IPv6 frames transmitted
tx_total_ipv6_frame_rate
Total number of IPv6 frames transmitted over the last
one-second interval
tx_total_mpls_frame_count
Total number of MPLS frames transmitted
tx_total_mpls_frame_rate
Total number of MPLS frames transmitted over the last
one-second interval
tx_total_octet_rate
Total number of bytes transmitted over the last one-second
interval
Note
With EOT results, after you stop the traffic, all rates are set to 0; therefore, they are not returned in the keyed list.
Description¶
The sth::interface_stats
function returns EOT results (by accessing the database
file) or run-time results (by subscription of result objects). Use the -db_file
argument with the corresponding action in the sth::traffic_control
function
to determine whether to return EOT or run-time results.
The list of session statistics that you can retrieve from an Ethernet port depends on the port speed. For example, an Ethernet port with a speed of 10/100MBPS returns the following list: {card_name port_name intf_speed tx_frames rx_frames link duplex}. However, a Gigabit Ethernet port (1/10GBPS) returns the following list:
{card_name port_name intf_speed tx_frames rx_frames tx_bytes rx_bytes
link duplex mac_address rx_fcs_error rx_runt_frames}.
Use -properties to specify a set of attributes for which you want results.
The return from the interface_stats function call is a keyed list, containing the retrieved session stats and the command execution status, from which we call: keylget kList keyName to get the corresponding key value.
Examples¶
To return all the attributes from the specified list of ports:
set rtn [sth::interface_stats \
-port_handle_list $portList]
Sample Output:
{port1 {{intf_speed 10000} {port_name port1} {mac_address _none_} {duplex full}
{link 1} {card_name VM-10G-V1-1P} {intf_type ethernet} {rx_fcoe_frame_count 0}
{rx_ipv6_over_ipv4_frame_rate 0} {rx_byte_rate 67} {rx_prbs_fill_byte_count 0}
{rx_max_frame_length 94} {rx_fcoe_frame_rate 0} {rx_tcp_CheckSum_error_count 0}
{rx_sig_count 0} {rx_ipv6_over_ipv4_frame_count 0} {rx_trigger1_count 0}
{rx_sig_rate 0} {rx_trigger2_count 0} {rx_frames 117}
{rx_ipv4_CheckSum_error_count 0} {rx_prbsbit_error_count 0} {rx_bytes 8140}
{rx_jumbo_frame_count 0} {rx_ipv4_frame_rate 0} {rx_trigger4_count 0}
{rx_hw_frame_count 0} {rx_trigger5_count 0} {rx_oversize_frame_count 0}
{rx_ipv6_frame_rate 0} {rx_jumbo_frame_rate 0} {rx_trigger6_count 0}
{rx_pfc_frame_count 0} {rx_pause_frame_rate 0} {rx_combo_trigger_count 0}
{rx_fcs_error 0} {rx_pfc_frame_rate 0} {rx_frame_rate 1} {rx_runt_frames 0}
{rx_mpls_frame_count 0} {tx_total_octet_rate 125270}
{tx_generator_sig_frame_rate 994} {tx_total_frame_rate 994}
{tx_generator_l4_checksum_error_count 0} {tx_total_mpls_frame_count 0}
{tx_generator_vlan_frame_count 0} {tx_generator_crc_error_frame_count 0}
{tx_generator_abort_frame_rate 0} {tx_generator_l3_checksum_error_rate 0}
{tx_generator_ipv4_frame_count 14945} {tx_generator_l4_checksum_error_rate 0}
{tx_generator_crc_error_frame_rate 0} {tx_generator_vlan_frame_rate 0}
{tx_total_mpls_frame_rate 0} {tx_generator_jumbo_frame_count 0}
{tx_generator_octet_count 1883070} {tx_generator_ipv6_frame_count 0}
{tx_generator_ipv4_frame_rate 994} {tx_frames 14949}
{tx_generator_mpls_frame_rate 0} {tx_generator_oversize_frame_count 0} {tx_bytes
1883326} {tx_generator_jumbo_frame_rate 0} {tx_generator_ipv6_frame_rate 0}
{tx_generator_octet_rate 125270} {tx_generator_abort_frame_count 0}
{tx_generator_l3_checksum_error_count 0} {tx_hw_frame_count 0}
{tx_generator_undersize_frame_count 0} {tx_generator_frame_count 14945}
{tx_generator_oversize_frame_rate 0} {tx_pfc_frame_count null}
{tx_generator_sig_frame_count 14945} {tx_generator_undersize_frame_rate 0}
{tx_generator_frame_rate 994} {tx_generator_mpls_frame_count 0}{free
{{daemon_name free} {cpu_percent 95.9} {port_group_name {10.61.47.127-1-1
//1/1}} {memory_percent 69} {memory 699480}}} {used {{daemon_name used}
{cpu_percent 4.1} {port_group_name {10.61.47.127-1-1 //1/1}} {memory_percent 31}
{memory 314788}}} {bsdnetd {{daemon_name bsdnetd} {cpu_percent 0.6}
{port_group_name {10.61.47.127-1-1 //1/1}} {memory_percent 1.9} {memory 19504}}}
{sfpgad0 {{daemon_name sfpgad0} {cpu_percent 18.7} {port_group_name
{10.61.47.127-1-1 //1/1}} {memory_percent 7.6} {memory 77820}}} {generator_0
{{daemon_name generator_0} {cpu_percent 0.4} {port_group_name {10.61.47.127-1-1
//1/1}} {memory_percent 8.4} {memory 85428}}} {analyzer_0 {{daemon_name
analyzer_0} {cpu_percent 0.1} {port_group_name {10.61.47.127-1-1 //1/1}}
{memory_percent 5.2} {memory 53480}}} {capture_0 {{daemon_name capture_0}
{cpu_percent 0} {port_group_name {10.61.47.127-1-1 //1/1}} {memory_percent 0.9}
{memory 10060}}}}}{port2 {{intf_speed 10000} {port_name port2} {mac_address
_none_} {duplex full} {link 1} {card_name VM-10G-V1-1P} {intf_type ethernet}
{rx_fcoe_frame_count 0} {rx_ipv6_over_ipv4_frame_rate 0} {rx_byte_rate 82}
{rx_prbs_fill_byte_count 0} {rx_max_frame_length 126} {rx_fcoe_frame_rate 0}
{rx_tcp_CheckSum_error_count 0} {rx_sig_count 14945}
{rx_ipv6_over_ipv4_frame_count 0} {rx_trigger1_count 0} {rx_sig_rate 0}
{rx_trigger2_count 0} {rx_frames 15076} {rx_ipv4_CheckSum_error_count 0}
{rx_prbsbit_error_count 0} {rx_bytes 1892106} {rx_jumbo_frame_count 0}
{rx_ipv4_frame_rate 0} {rx_trigger4_count 0} {rx_hw_frame_count 0}
{rx_trigger5_count 0} {rx_oversize_frame_count 0} {rx_ipv6_frame_rate 0}
{rx_jumbo_frame_rate 0} {rx_trigger6_count 0} {rx_pfc_frame_count 0}
{rx_pause_frame_rate 0} {rx_combo_trigger_count 0} {rx_fcs_error 0}
{rx_pfc_frame_rate 0} {rx_frame_rate 1} {rx_runt_frames 0} {rx_mpls_frame_count
0} {tx_total_octet_rate 0} {tx_generator_sig_frame_rate 0} {tx_total_frame_rate
0} {tx_generator_l4_checksum_error_count 0} {tx_total_mpls_frame_count 0}
{tx_generator_vlan_frame_count 0} {tx_generator_crc_error_frame_count 0}
{tx_generator_abort_frame_rate 0} {tx_generator_l3_checksum_error_rate 0}
{tx_generator_ipv4_frame_count 0} {tx_generator_l4_checksum_error_rate 0}
{tx_generator_crc_error_frame_rate 0} {tx_generator_vlan_frame_rate 0}
{tx_total_mpls_frame_rate 0} {tx_generator_jumbo_frame_count 0}
{tx_generator_octet_count 0} {tx_generator_ipv6_frame_count 0}
{tx_generator_ipv4_frame_rate 0} {tx_frames 0} {tx_generator_mpls_frame_rate 0}
{tx_generator_oversize_frame_count 0} {tx_bytes 0}
{tx_generator_jumbo_frame_rate 0} {tx_generator_ipv6_frame_rate 0}
{tx_generator_octet_rate 0} {tx_generator_abort_frame_count 0}
{tx_generator_l3_checksum_error_count 0} {tx_hw_frame_count 0}
{tx_generator_undersize_frame_count 0} {tx_generator_frame_count 0}
{tx_generator_oversize_frame_rate 0} {tx_pfc_frame_count null}
{tx_generator_sig_frame_count 0} {tx_generator_undersize_frame_rate 0}
{tx_generator_frame_rate 0} {tx_generator_mpls_frame_count 0} {free
{{daemon_name free} {cpu_percent 95.9} {port_group_name {10.61.47.127-1-1
//1/1}} {memory_percent 69} {memory 699480}}} {used {{daemon_name used}
{cpu_percent 4.1} {port_group_name {10.61.47.127-1-1 //1/1}} {memory_percent 31}
{memory 314788}}} {bsdnetd {{daemon_name bsdnetd} {cpu_percent 0.6}
{port_group_name {10.61.47.127-1-1 //1/1}} {memory_percent 1.9} {memory 19504}}}
{sfpgad0 {{daemon_name sfpgad0} {cpu_percent 19.2} {port_group_name
{10.61.47.127-1-1 //1/1}} {memory_percent 7.6} {memory 77820}}} {generator_0
{{daemon_name generator_0} {cpu_percent 0.4} {port_group_name {10.61.47.127-1-1
//1/1}} {memory_percent 8.4} {memory 85428}}} {analyzer_0 {{daemon_name
analyzer_0} {cpu_percent 0.1} {port_group_name {10.61.47.127-1-1 //1/1}}
{memory_percent 5.2} {memory 53488}}} {capture_0 {{daemon_name capture_0}
{cpu_percent 0} {port_group_name {10.61.47.127-1-1 //1/1}} {memory_percent 0.9}
{memory 10060}}}}} {status 1}
To get results from specified properties for a single port:
set rtn [sth::interface_stats \
-port_handle port1\
-properties "gen.tx_frames ana.rx_frames"]
Sample Output:
{intf_speed 10000} {port_name port2} {mac_address _none_} {duplex full}
{link 1} {card_name VM-10G-V1-1P} {intf_type ethernet} {rx_frames 6521}
{tx_frames 0} {status 1}
To get results from specified properties for a list of port handles:
set rtn [sth::interface_stats \
-port_handle_list $portList\
-properties "gen.tx_frames ana.rx_frames"]
Sample Output:
{port1 {{intf_speed 10000} {port_name port1} {mac_address _none_}
{duplex full} {link 1} {card_name VM-10G-V1-1P} {intf_type ethernet}
{rx_frames 31} {tx_frames 13605}}} {port2 {{intf_speed 10000}
{port_name port2} {mac_address _none_} {duplex full} {link 1
{card_name VM-10G-V1-1P} {intf_type ethernet} {rx_frames 14937}
{tx_frames 0}}} {status 1}
To get results for FC related properties:
set int_ret [sth::interface_stats \
-port_handle_list "$srcPort $dstPort"\
-properties "fc.class2_tx_frame_count fc.class2_rx_frame_count\
fc.class3_tx_frame_count fc.class3_rx_frame_count\
fc.othercls_tx_frame_count fc.othercls_rx_frame_count\
fc.class2_tx_frame_rate fc.class2_rx_frame_rate\
fc.class3_tx_frame_rate fc.class3_rx_frame_rate\
fc.othercls_tx_frame_rate fc.othercls_rx_frame_rate\
fc.total_cls2_tx_byte_count fc.total_cls2_rx_byte_count\
fc.total_cls3_tx_byte_count fc.total_cls3_rx_byte_count\
fc.total_othercls_tx_byte_count fc.total_othercls_rx_byte_count\
fc.total_cls2_tx_byte_rate fc.total_cls2_rx_byte_rate\
fc.total_cls3_tx_byte_rate fc.total_cls3_rx_byte_rate\
fc.total_othercls_tx_byte_rate fc.total_othercls_rx_byte_rate\
fc.b2b_tx_credit_count fc.b2b_tx_credit_na_count"\
]
Sample Output:
{port1 {{intf_speed fc} {port_name port1} {mac_address _none_} {duplex
not_supported} {link 1} {card_name FX3-100GQF32-T2} {intf_type fc}
{b2b_tx_credit_count 64} {b2b_tx_credit_unavailablecount 0}
{class2_tx_frame_count 0} {class2_rx_frame_count 0} {class3_tx_frame_count 0}
{class3_rx_frame_count 0} {othercls_tx_frame_count 0} {othercls_rx_frame_count
0} {class2_tx_frame_rate 0} {class2_rx_frame_rate 0} {class3_tx_frame_rate 0}
{class3_rx_frame_rate 0} {othercls_tx_frame_rate 0} {othercls_rx_frame_rate 0}
{total_cls2_tx_byte_count 0} {total_cls2_rx_byte_count 0}
{total_cls3_tx_byte_count 0} {total_cls3_rx_byte_count 0}
{total_othercls_tx_byte_count 0} {total_othercls_rx_byte_count 0}
{total_cls2_tx_byte_rate 0} {total_cls2_rx_byte_rate 0}
{total_cls3_tx_byte_rate 0} {total_cls3_rx_byte_rate 0}
{total_othercls_tx_byte_rate 0} {total_othercls_rx_byte_rate 0}}} {port2
{{intf_speed fc} {port_name port2} {mac_address _none_} {duplex not_supported}
{link 1} {card_name FX3-100GQF32-T2} {intf_type fc} {b2b_tx_credit_count 64}
{b2b_tx_credit_unavailablecount 0} {class2_tx_frame_count 0}
{class2_rx_frame_count 0} {class3_tx_frame_count 0} {class3_rx_frame_count 0}
{othercls_tx_frame_count 0} {othercls_rx_frame_count 0} {class2_tx_frame_rate
0} {class2_rx_frame_rate 0} {class3_tx_frame_rate 0} {class3_rx_frame_rate 0}
{othercls_tx_frame_rate 0} {othercls_rx_frame_rate 0} {total_cls2_tx_byte_count
0} {total_cls2_rx_byte_count 0} {total_cls3_tx_byte_count 0}
{total_cls3_rx_byte_count 0} {total_othercls_tx_byte_count 0}
{total_othercls_rx_byte_count 0} {total_cls2_tx_byte_rate 0}
{total_cls2_rx_byte_rate 0} {total_cls3_tx_byte_rate 0}
{total_cls3_rx_byte_rate 0} {total_othercls_tx_byte_rate 0}
{total_othercls_rx_byte_rate 0}}} {status 1}
End of Procedure Header
sth::cleanup_session¶
Purpose¶
Cleans up the current test by terminating port reservations, disconnecting the ports from the chassis, releasing system resources, and removing the specified port configurations.
Synopsis¶
Note
M indicates that the argument is Mandatory .
sth::cleanup_session [-port_list {list of port handles}] [-port_handle {list of port handles}] [-maintain_lock {1|0}] [-clean_logs {1|0}] [-clean_dbfile {1|0}] [-clean_labserver_session {1|0}] [-logout_aion_server {true|false}] [-reset {1|0}]
Arguments¶
-
-port_handle
¶
Specifies the handle(s) of the port(s) to be released. A port handle is a value that uniquely identifies a port on a chassis. Use the -port_handle argument to identify the port. The value can be all. When you set it to all, it means to clean up all of the ports that are currently used.
-
-clean_logs
¶
Spirent Extension (for Spirent HLTAPI only).
Determines whether the saved logs will be deleted during cleanup. Possible values are 0 and 1. If it is set to 1, then the logs will be deleted during the cleanup session. The default value is 0.
Note
This argument is not supported when LabServer is used in Windows.
-
-maintain_lock
¶
Determines whether the ports will be released during cleanup. Possible values are 0 and 1. If it is set to 1, then the ports will be deleted but not released during the cleanup session; if it is set to 0, the ports will be deleted and released. The default value is 0.
-
-port_list
¶
Specifies the handle(s) of the port(s) to be released. A port handle is a value that uniquely identifies a port on a chassis. Use either the -port_list or -port_handle argument to identify the port. Same as -port_handle. The value can be all. When you set it to all, it means to clean up all of the ports that are currently used.
-
-clean_dbfile
¶
Determines whether the saved database file will be deleted during cleanup. Possible values are 0 and 1. If it is set to 1, then the database file will be deleted during the cleanup session; if it is set to 0, the database file will be left untouched. The default value is 1.
-
-clean_labserver_session
¶
Determines whether to clean the lab server session when using function cleanup_session. Possible values are 0 and 1. If it is set to 1, then the lab server session will be deleted during the cleanup session. The default value is 1. This argument only works when using labserver.
-
-logout_aion_server
¶
Determines whether to log out of the AION Server when using the function cleanup_session. Possible values are true and false. If it is set to true, then the AION Server will be logged out during the cleanup session. The default value is false. This argument only works when using sth::aion_license_server_connect.
-
-reset
¶
Specifies the session resetting mode. Possible values are 0 and 1. When it is set to 1, everything (streamblock/device configurations and port handles) will be cleared and chassis disconnected. When it is set to 0, streamblock/device configurations will be cleared, but port handles will be reserved.
Arguments Unsupported by Save as HLTAPI¶
None.
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 cleanup_session function terminates port reservations, disconnects the ports from the chassis, releases system resources, removes the specified port configurations, and terminates the routing protocols used by this port. Every script that uses the HLTAPI should call cleanup_session when the API is no longer in use.
Examples¶
The cleanup_session function shown below disconnects the port with the specified handle, releasing system resources for this port and removing its specified port configuration:
sth::cleanup_session -port_handle $p0
Sample Output:
{status 1}
If there is an error, you will see: {status 0} {log {Error message }}
End of Procedure Header
sth::labserver_connect¶
Purpose¶
Creates a new test session on the Spirent TestCenter LabServer and connects to it, or connects to an existing test session on the LS. The automation client will connect as a controller, not as a viewer.
Synopsis¶
Note
M indicates that the argument is Mandatory .
sth::labserver_connect [-server_ip <IP addresses or names> M] [-user_name <character string> M] [-session_name <character string> M] [-create_new_session {1|0}] [-keep_session {1|0}]
Arguments¶
-
-server_ip
¶
Defines the IPv4 address or Domain Name System (DNS) name of the Spirent TestCenter LabServer. This argument is Mandatory .
-
-create_new_session
¶
Determines whether to create a new test session on the LabServer or not. The possible values are 1 and 0. When it is set to 1, Spirent HLTAPI will create a new test session on the LabServer. The default value is 1.
-
-user_name
¶
Specifies the name of the user. This argument is Mandatory .
-
-session_name
¶
-session_name and -user_name are used together to identify a test session. If -create_new_session is set to 0, Spirent HLTAPI will connect the user to a test session defined by -session_name and -user_name on the LabServer. If -create_new_session is set to 1, Spirent HLTAPI will create a new test session with this session name. If a test session with the same session name and user name already exists, the
sth::labserver_connect
function will terminate the existent test session, and then create a new one. This argument is Mandatory .
-
-keep_session
¶
Spirent Extension (for Spirent HLTAPI only).
Specifies whether to keep the test session on the LabServer. You must set -create_new_session to 1. Possible values are 1 and 0. If it is set to 1, Spirent HLTAPI will create a new test session by appending _1 to the name of the existing session, irrespective of the session state. If it is set to 0, Spirent HLTAPI will delete the session or append _1 to the session name, based on the conditions listed below:
Controller State Action Yes Any Append No None/unknown error Append No Sequencer Idle Delete
The default value is 0.
Arguments Unsupported by Save as HLTAPI¶
This function is currently not supported by Save as HLTAPI.
Return Values¶
Depending on the specific language that HLTAPI uses, the function returns a keyed list/dictionary/hash (See Introduction for more information on return value formats) using the following keys (with corresponding data):
status Success (1) or failure (0) of the
operation.
log An error message (if the operation
failed).
See the following description for more information about the returned keyed list.
Description¶
The sth::labserver_connect
function creates a new test session on the Spirent
TestCenter LabServer and connects to it, or connects to an existing test
session on the LabServer. The automation client will connect as a controller,
not as a viewer.
When you create a new session, use the -server_ip argument to specify the LabServer that the emulated session to be created on. (Please refer to the description of the -server_ip argument for more details.)
Note
An automation client must always be the controller on a test session. It cannot be a viewer. If another client is already be the controller on a test session, this command will fail.
Examples¶
The following function will create a new test session and connect to the test session:
sth::labserver_connect
-server_ip 10.61.30.137 \
-create_new_session 1 \
-session_name Demo1 \
-user_name Tester \
The following function will connect to an existing test session when you know its user name and its session name:
sth::labserver_connect
-server_ip 10.61.30.137 \
-create_new_session 0 \
-session_name Demo1 \
-user_name Tester \
Sample Output:
{status 1} {procName labserver_connect}
End of Procedure Header
sth::labserver_disconnect¶
Purpose¶
Disconnects from a test session. If you want to re-connect to the test session later, leave the Terminate attribute at its default setting.
Synopsis¶
Note
M indicates that the argument is Mandatory .
sth::labserver_disconnect [-terminate_session {1|0} M] [-server_ip <IP addresses or names>] [-user_name <character string>] [-session_name <character string>]
Arguments¶
-
-server_ip
¶
Defines the IPv4 address or Domain Name System (DNS) name of the Spirent TestCenter LabServer.
-
-user_name
¶
Specifies the name of the user.
-
-session_name
¶
Specifies the name of the session. This argument is used together with the user name (-user_name) to indicate the session ID.
Note
All sessions connected to the labserver will be deleted if -user_name or -session_name is not specified.
-
-terminate_session
¶
Determines whether to terminate the test session when the user disconnects from the lab server. The possible values are 1 and 0. This argument is Mandatory .
If it is set to 0, Spirent HLTAPI will disconnect the user from the LabServer without terminating the test session. If it is set to 1, Spirent HLTAPI will terminate the test session when the user disconnects from the LabServer.
When -server_ip, -user_name and -session_name are provided, the termination action will be applied to the specific test session defined by -user_name and -session_name on the LabServer specified by -server_ip.
When only the argument -server_ip is provided, the termination action will be apply to all test sessions on the LabServer specified by -server_ip.
When of the three arguments above is provided, the termination action will only be applied to the currently connecting test session; if no test session is currently connected, an error message will be reported.
Arguments Unsupported by Save as HLTAPI¶
This function is currently not supported by Save as HLTAPI.
Return Values¶
Depending on the specific language that HLTAPI uses, the function returns a keyed list/dictionary/hash (See Introduction for more information on return value formats) using the following keys (with corresponding data):
status Success (1) or failure (0) of the
operation.
log An error message (if the operation
failed).
See the following description for more information about the returned keyed list.
Description¶
Disconnect from a test session. If you want to re-connect to the test session later, set the -terminate_session argument to 0.
Examples¶
The following function will terminate the specific test session in the LabServer:
sth::labserver_disconnect
-server_ip 10.61.30.137 \
-terminate_session 1 \
-session_name Demo1 \
-user_name Tester \
The following function will not terminate the currently connected test session when the function disconnects the user from the LabServer:
sth::labserver_connect \
-terminate_session 0 \
Sample Output:
{status 1} {procName labserver_connect}
End of Procedure Header
sth::aion_license_server_connect¶
Purpose¶
Connects to the AION License Server and checks out the allowed license when the user reserves and configures the Spirent TestCenter ports
Synopsis¶
Note
M indicates that the argument is Mandatory .
sth::aion_license_server_connect [-aion_server <server addresses or names> M] [-user_name <character string> M] [-password <character string> M] [-auto_signin {true|false}] [-force_execution {true|false}] [-work_space <character string>] [-work_space_force_execution {true|false}]
Arguments¶
-
-aion_server
¶
Defines the IPv4 address or Domain Name System (DNS) name of the Spirent TestCenter Aion Server. This argument is Mandatory .
-
-user_name
¶
Specifies the name of the user. This argument is Mandatory .
-
-password
¶
Specifies the password of the user. This argument is Mandatory .
-
-auto_signin
¶
Specifies whether to log in to the AION Server with auto sign-in. Possible values are true and false.The default value is true.
-
-force_execution
¶
Specifies whether to log in to the AION Server forcefully. Possible values are true and false.The default value is false.
-
-work_space
¶
Specifies name of the workspace to set.
-
-work_space_force_execution
¶
Specifies whether force execution to the set workspace. Possible values are true and false.The default value is false.
Arguments Unsupported by Save as HLTAPI¶
This function is currently not supported by Save as HLTAPI.
Return Values¶
Depending on the specific language that HLTAPI uses, the function returns a keyed list/dictionary/hash (See Introduction for more information on return value formats) using the following keys (with corresponding data):
status Success (1) or failure (0) of the
operation.
log An error message (if the operation
failed).
See the following description for more information about the returned keyed list.
Description¶
The sth::aion_license_server_connect
function connects to the Spirent TestCenter AION Server
with the provided user credentials and retrieves the license allowed to the user.
Examples¶
The following function will log in to the AION Server and retrieve a license:
sth::aion_license_server_connect \
-aion_server "https://spirent.spirentaion.com/"\
-user_name "test-user" \
-password "test123" \
-work_space "Spirent"]
Sample Output:
{status 1} {procName aion_license_server_connect}
End of Procedure Header
sth::link_config¶
Purpose¶
Creates specified link between deivces
Synopsis¶
Note
M indicates that the argument is Mandatory .
sth::link_config [-link_src <device handle> M] [-link_dst <device handle> M] [-link_type {l2_gre_tunnel_link|l3_forwarding_link|vlan_switch_link| ethernet_bridge_link|i-tag_service_link|vrf_customer_link| otv_edge_device_link|vxlan_vm_to_vtep_device_link| dhcpv4_relay_agent_link|dhcpv6_relay_agent_link| home_gateway_link|ancp_cpe_to_dslam_link|eoam_link| vif_to_vic_link|vsi_to_station_link|station_to_s-comp_link| ipv6_transition_link|VM_to_VxLAN-GPE_VTEP_Link}]
Arguments¶
-
-link_src
¶
Specifies the source device. The device handle is returned by sth::interface_config or the specified protocol configuration functions. This argument is Mandatory .
-
-link_dst
¶
Specifies the destination device. The device handle is returned by sth::interface_config or the specified protocol configuration functions. This argument is Mandatory .
-
-link_type
¶
Specify the link type. The supported types are listed below:
L2_GRE_Tunnel_Link L3_Forwarding_Link VLAN_Switch_Link Ethernet_Bridge_Link I-Tag_Service_Link VRF_Customer_Link OTV_Edge_Device_Link VXLAN_VM_to_VTEP_Device_Link DHCPv4_Relay_Agent_Link DHCPv6_Relay_Agent_Link Home_Gateway_Link ANCP_CPE_To_DSLAM_Link EOAM_Link VIF_To_VIC_Link VSI_to_Station_Link Station_to_S-Comp_Link IPv6_Transition_Link VM_to_VxLAN-GPE_VTEP_Link
Return Values¶
The function returns a keyed list using the following keys:
status Success (1) or failure (0) of the operation
log An error message (if the operation failed)
Description¶
The sth::link_config
function creates link between devices. You must specify the
link source and destination devices. Use -link_type to determine the type of the
link you need to create. Note that this function does not validate whether the
device supports specified a link type.
Examples¶
The following example creates an L3 Forwarding Link between device1 and device2:
set ret [::sth::link_config \
-link_src $device1 \
-link_dst $device2 \
-link_type L3_Forwarding_Link]
Sample Output:
{status 1}
The following example creates a DHCPv6 Relay Agent Link between the specified source and destination devices:
set device_ret2_link0 [::sth::link_config\
-link_src $client_host_hd\
-link_dst $relay_agent_host_hd\
-link_type DHCPv6_Relay_Agent_Link]
Sample Output:
{status 1}
End of Procedure Header
sth::save_xml¶
Purpose¶
Spirent Extension (for Spirent HLTAPI only).
Saves the current HLTAPI test configurations as an XML file
Arguments¶
-
-filename
¶
Specifies the name of the XML file to be saved. If not specified, the HLTAPI script name will be used.
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¶
Thesth::save_xml
function saves the current HLTAPI configurations as an XML file. Use the -filename argument to specify the name of the XML file. By default, the saved XML file is located in the same directory as the HLTAPI script.
Examples¶
#### HLTAPI for Tcl ####
Sample Input:
sth::save_xml -filename $xmlFilename
Sample Output:
{status 1}
#### HLTAPI for Python ####
Sample Input:
sth.save_xml()
sth.save_xml(filename='mytest')
Sample Output:
{'status': '1'}
End of Procedure Header
sth::load_xml¶
Purpose¶
Loads test configurations from a previously saved XML file.
Arguments Unsupported by Save as HLTAPI¶
This function is currently not supported by Save as HLTAPI.
Return Values¶
Depending on the specific language that HLTAPI uses, the function returns a keyed list/dictionary/hash (See Introduction for more information on return value formats) using the following keys (with corresponding data):
status Success (1) or failure (0) of the
operation
log An error message (if the operation
failed)
Description¶
The sth::load_xml
function loads the test configurations from a previously saved
XML file.
After calling load_xml, you must call sth::connect() to initialize one or more Spirent HLTAPI chassis and reserve ports on the initialized chassis. The number of the ports reserved must be equal to the number of ports specified by -portlist.
Examples
The following example loads test configurations from tostest.xml:
set ret [sth::load_xml -filename "tostest.xml"];
set ret1 [sth::connect -device $device -port_list $port_list -offline 1];
if {![keylget ret1 status ]} {
return "Reserve port FAILED"
}
puts " $ret1"
set port1 [keylget ret1 port_handle.$device.$port1]
set port2 [keylget ret1 port_handle.$device.$port2]
End of Procedure Header
sth::start_devices¶
Purpose¶
Starts all devices that are either configured manually with Spirent HLTAPI or by using sth::load_xml.
Synopsis¶
Note
M indicates that the argument is Mandatory .
sth::start_devices [-device_list <list of device handles>]
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¶
This function starts all devices that are either configured manually with
Spirent HLTAPI or by using sth::load_xml. This
function currently works as a
stand-alone function, but specific device handles can be configured under it in
the future if required.
Examples¶
Sample Input:
::sth::start_devices
# Wait 3 seconds
puts "Wait for 3 seconds..."
after 300
Sample Output:
{status 1}
Sample Input:
::sth::start_devices -device_list [keylget device_ret1 handle]
Sample Output:
{status 1}
sth::stop_devices¶
Purpose¶
Stops all running devices that are either configured manually with Spirent HLTAPI or by using sth::load_xml.
Synopsis¶
Note
M indicates that the argument is Mandatory .
sth::stop_devices [-device_list <list of device handles>]
Arguments Unsupported by Save as HLTAPI¶
This function is currently not supported by Save as HLTAPI.
Return Values¶
Depending on the specific language that HLTAPI uses, the function returns a keyed list/dictionary/hash (See Introduction for more information on return value formats) using the following keys (with corresponding data):
status Success (1) or failure (0) of the
operation
log An error message (if the operation
failed)
Description¶
This function stops all running devices that are either configured manually
with Spirent HLTAPI or by using sth::load_xml. This
function currently works as
a stand-alone function, but specific device handles can be configured under it
in the future, if required.
Examples¶
Sample Input:
::sth::stop_devices
# Wait 3 seconds
puts "Wait for 3 seconds..."
after 300
Sample Output:
{status 1}
Sample Input:
::sth::stop_devices -device_list [keylget device_ret1 handle]
Sample Output:
{status 1}
End of Procedure Header
sth::get_handles¶
Purpose¶
Gets handles of a specified type or under the specified port(s).
Synopsis¶
Note
M indicates that the argument is Mandatory .
sth::get_handles [-type {bgpRouter|bgpRoute|ospfRouter|ospfLsa|ospfTlv|isisRouter|isisLsp|streamblock} OR <objectname> M] [-from_devices <device_name|device_handle>] [-from_ports <port or portlist>] [-name_handle_map {true|false}]
Arguments¶
-
-type
¶
Get handles of a specified type. This argument is mandantory. The supported types are listed below:
bgpRouter bgpRoute ospfRouter ospfLsa ospfTlv isisRouter isisLsp streamblock
Another way to get handles from specific ports and devices is, by providing type value as objectname. This way is supported for all the protocol object types.
Example: The following example get DHCPv4 Server handles from the given ports:
sth::get_handles -type dhcpv4serverconfig -from_ports "$port1"
Sample output:
{port1 {{host1 dhcpv4serverconfig1}}} {dhcpv4serverconfig_hnd dhcpv4serverconfig1} {handles host1} {status 1}The following example get ospf routerlsa handles from the given ports:
sth::get_handles -type routerlsa -from_ports "$port1"
Sample output:
{port1 {{router1 {{ospfv2routerconfig1 routerlsa1}}}}} {routerlsa_hnd routerlsa1} {handles router1} {status 1}Note
For ISIS LSP type, elem_handle will also be returned along with -handles.
-
-from_devices
¶
Get handles under specific devices. The value must be a list of device names or device handles.
-
-from_ports
¶
Get handles under one or more ports. If this argument is not specified, all handles under all ports will be returned.
-
-name_handle_map
¶
Get mapping of name and handle of specific object. If this argument is specified as true, name_handle_map will be returned.
Arguments Unsupported by Save as HLTAPI¶
This function is currently not supported by Save as HLTAPI.
Return Values¶
Depending on the specific language that HLTAPI uses, the function returns a keyed list/dictionary/hash (See Introduction for more information on return value formats) using the following keys (with corresponding data):
data objects Spirent TestCenter data objects in a tree structure
xxx_hnd Handles of specific objects
handles Handles of the specified type
name_handle_map Mapping of name and handles of the specified type.
status Success (1) or failure (0) of the
operation
log An error message (if the operation fails)
Description¶
This function gets handles of a specified type. Specify -from_ports if you want to get handles from specific port(s). The handles returned will be used as the validation items in the test.
Apart from the status key, the returned keyed list inlcudes 3 different forms of results for your retrieval: a tree list of Spirent TestCenter data objects for the specified type, the object handle (xxx_hnd) of the specified type, and the configuration handle of the specified type, as shown in the following example:
{port3 {{emulateddevice5 bgprouterconfig3}}}
{bgprouterconfig_hnd bgprouterconfig3}
{handles emulateddevice5}
{status 1}
Examples¶
The following example gets streamblock handles under the specified port:
set streamBlockHnd [sth::get_handles -type streamblock -from_ports $port1]
Sample Output:
{port3 streamblock1} {streamblock_hnd streamblock1} {handles streamblock1} {status 1}
After you get the handles for the specified streamblock, you can start the traffic generator and get the traffic statistics for the specific streamblock:
puts "Start the generator..."
set x [sth::traffic_control -action run -port_handle $port1 -get dscp] after 300
set returnedString [sth::traffic_stats -streams $stream_id -mode streams]
puts $returnedString
if {![keylget returnedString status ]} {
return "FAILED"
}
set Rx_Rate [keylget returnedString $port1.stream.$stream_id.rx.total_pkt_rate]
set Tx_Rate [keylget returnedString $port1.stream.$stream_id.tx.total_pkt_rate]
puts "Tx_Rate : -------------------------------$Tx_Rate"
puts "Rx_Rate : -------------------------------$Rx_Rate"
puts "stop the traffic"
set x [sth::traffic_control -action stop -port_handle $port1]
puts "disable the vlan stream"
set ret [sth::traffic_config -mode disable -stream_id $stream_id]
The following examples get BGP router and route handles from the specified port:
set bgprouterHandles [sth::get_handles -type bgpRouter -from_ports $port1]
puts $bgprouterHandles
{port3 {{emulateddevice5 bgprouterconfig3}}}
{bgprouterconfig_hnd bgprouterconfig3}
{handles emulateddevice5}
{status 1}
set bgprouteHandles [sth::get_handles -type bgpRoute -from_ports $port1]
puts $bgprouteHandles
{port3 {{emulateddevice3 {{bgprouterconfig1 {{bgpipv4routeconfig1
ipv4networkblock4}}}}} {emulateddevice5 {{bgprouterconfig3
{{bgpipv4routeconfig3 ipv4networkblock6} {bgpipv4routeconfig4
ipv4networkblock7}}}}}}} {ipv4networkblock_hnd {ipv4networkblock4
ipv4networkblock6 ipv4networkblock7}} {bgpipv4routeconfig_hnd
{bgpipv4routeconfig1 bgpipv4routeconfig3 bgpipv4routeconfig4}} {handles
{ipv4networkblock4 bgpipv4routeconfig1 ipv4networkblock6 ipv4networkblock7
bgpipv4routeconfig3 bgpipv4routeconfig4}} {status 1}
The following example gets ISIS LSP handles from the specified port:
[sth::get_handles -type isisLsp -from_ports $port1]
Sample Output:
{port1 {{emulateddevice1 {{isisrouterconfig1 {{isislspconfig1
{{ipv6isisroutesconfig1 ipv6networkblock1} {ipv4isisroutesconfig1
ipv4networkblock1} {ipv4isisroutesconfig2 ipv4networkblock2}}}}}}}}}
{ipv6networkblock_hnd ipv6networkblock1} {ipv4networkblock_hnd
{ipv4networkblock1 ipv4networkblock2}} {ipv6isisroutesconfig_hnd
ipv6isisroutesconfig1} {ipv4isisroutesconfig_hnd {ipv4isisroutesconfig1
ipv4isisroutesconfig2}} {isislspconfig_hnd isislspconfig1} {handles
{ipv6networkblock1 ipv4networkblock1 ipv4networkblock2 ipv6isisroutesconfig1
ipv4isisroutesconfig1 ipv4isisroutesconfig2 isislspconfig1}} {status 1}
End of Procedure Header
sth::reserve_ports¶
Purpose¶
Spirent Extension (for Spirent HLTAPI only).
Initializes a list of Spirent HLTAPI chassises and reserves ports on
them. Use this function for Scaling
test scenarios that involve multiple ports
from multiple chassis.
Synopsis¶
Note
M indicates that the argument is Mandatory .
sth::reserve_ports [-chassis_list <list of IP addresses or names>] [-slot_list <chassis>/<slot>] [-location_list //<chassis>/<slot>/<port>]
Arguments¶
-
-chassis_list
¶
Specifies a list of chassises under which the ports will be connected. The value can be the IP address or the name of the chassis.
-
-slot_list
¶
Specifies a list of slots to be used, in the format of <chassis>/<slot>.
-
-location_list
¶
Specifies a list of locations to be connected, in the format of //<chassis>/<slot>/<port>.
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):
port_handle.<device>.<port> The port information for the connected chassis
status Success (1) or failure (0) of the operation
log An error message (if the operation failed)
offline The created ports are online (0) or offline (1)
Description¶
The sth::reserve_ports
function initializes a list of Spirent HLTAPI chassises and
reserves ports on them. Use this function for Scaling
test scenarios that involve
multiple ports from multiple chassis.
The function returns the requested data (device and port information) and a status value (1 for success). If there is an error, the function returns the status value (0) and an error message.
Examples¶
To reserve the specified port:
set locationlist {//10.61.39.164/1/1 //10.61.39.164/1/2}
set intStatus [sth::connect -location_list $locationlist]
Sample Output:
{port_handle {{10 {{61 {{39 {{164 {{1/1 port1} {1/2 port2}}}}}}}}}}} {status 1}
To reserve ports under the specified slot:
set slot_list "10.61.39.164/1"
set intStatus [sth::reserve_ports -slot_list $slot_list]
Sample Output:
{port_handle {{10 {{61 {{39 {{164 {{1/1 port1} {1/2 port2}}}}}}}}}}} {status 1}
End of Procedure Header
sth::system_settings¶
Purpose¶
Spirent Extension (for Spirent HLTAPI only).
Specifies system-level settings of Spirent TestCenter
Synopsis¶
Note
M indicates that the argument is Mandatory .
sth::system_settings [-realism_mode {NORMAL|CONTROL_PLANE|CONTROL_AND_DATA_PLANE}] [-delete_inactive_streams_from_memory {true|false}] [-tshark_path <string>] [-stream_id_start_index <1-65535>] [-exclude_eth_fcs {true|false}] [-smoothen_random_len {true|false}] [-unique_random_len_seed_per_port {true|false}] [-tx_queue_full_retry {true|false}] [-traffic_start_interval_unit {unitof64us|unitof500ns}] [-traffic_start_mode {async|sync}] [-traffic_start_interval <NUMERIC>] [-collect_stray_frame {true|false}] [-delete_all_analyzer_streams {true|false}] [-save_only_counters_from_result_view_mode {true|false}] [-stop_traffic_before_clearing_results {true|false}] [-stop_analyzer_before_clearing_results {true|false}] [-tx_port_expect_mcast_traffic_sent_from_self {true|false}] [-sync_clear_results {true|false}] [-timed_refresh_interval <1-65535>] [-timed_refresh_result_view_mode {manual|continuous|periodic}] [-preamble_byte_len <NUMERIC>] [-result_view_mode {BASIC|HISTOGRAM|JITTER|INTERARRIVALTIME| FORWARDING|LATENCY_JITTER|LATENCY_JITTER_RFC5481}] [-save_at_eot_properties {true|false}] [-jitter_mode {rfc3393|rfc4689}] [-optimize_config_command {true|false}] [-dhcpv4_enable_server_routing {all_sessions|failed_sessions}] [-dhcpv4_traffic_behavior {true|false}] [-dhcpv6_enable_server_routing {true|false}] [-dhcpv6_traffic_behavior {all_sessions|failed_sessions}]
Arguments¶
-
-realism_mode
¶
Specifies the Realism mode to use. Realism options control how protocol layers interact, or do not interact, with each other. Possible values are:
NORMAL Lower level protocols (e.g. PPP) come up on all the devices in a device block before starting the next higher protocol CONTROL_PLANE Higher layer protocols on individual devices in a block are brought up soon after the lower layer protocols on each device are ready CONTROL_AND_DATA_PLANE Rather than waiting until the device block is in a connected/bound state to initiate traffic. Traffic is initiated per session as soon as each session is established.
Note
- Currently only DHCPv6/PD and PPPoX support Realism mode.
- Realism mode can only be changed after DHCPv6/PD and PPPoX
are configured.
-
-delete_inactive_streams_from_memory
¶
Determines whether to clear inactive streamblock statistics from memory. Possible values are true and false. This argument is often used with traffic control configurations as shown below:
sth::traffic_control -action clear_stats \ -reset_streams <streamblock_handles> \
-
-stream_id_start_index
¶
Specifies the start index of the first stream ID. Possible values are 1 to 65535. The default value is 1.
-
-tshark_path
¶
Specifies the default TShark executable location.
-
-exclude_eth_fcs
¶
Determines whether to exclude the last 4 bytes of the packet from the pcap file when generating stream block. The default value is true. Possible values are:
Value Description true Exclude the last 4 bytes of the packet from pcap file when generating stream block. false Include the last 4 bytes of the packet from pcap file when generating stream block.
-
-smoothen_random_len
¶
Indicate if smoothen random length distribution per port is generated. The default value is false. Possible values are:
Value Description true Smoothen random length distribution is enabled, which requires length to be uniformly distributed across the minimum and maximum length integer values. false Smoothen random length distribution is not enabled
-
-unique_random_len_seed_per_port
¶
Indicate if unique random seeds are created on all ports. The default value is false. Possible values are:
Value Description true All random seeds are unique. User cannot change it to a nonunique value. false Random seeds are not unique.
-
-tx_queue_full_retry
¶
Determines the behavior when Tx queue is full. The default value is true. Possible values are:
Value Description true The traffic generator will wait (retry sending) when the transmit queue is full. false The traffic generator will drop frames when the transmit queue is full.
-
-traffic_start_interval_unit
¶
Specifies the traffic start interval unit. Possible values are unitof64us and unitof500ns. The default value is unitof64us.
-
-traffic_start_mode
¶
Controls how the ports start sending traffic. The default value is async. Possible values are:
Value Description async ASYNCHRONOUS Start all traffic on all ports immediately. The ports might not start at the same time. sync SYNCHRONOUS Start traffic on all ports at the same time after a short delay. The delay is needed to synchronize the ports.
-
-traffic_start_interval
¶
Specifies the number of intervals between synchronous transmissions. The default value is 0.
-
-collect_stray_frame
¶
Specifies whether to collect stray frames on the port when RxStreamSummaryResults is subscribed. Possible values are true and false. The default value is false.
-
-delete_all_analyzer_streams
¶
Specifies whether to delete all streams from analyzer when clearing results with ResultsClearAllCommand. Possible values are true and false. The default value is false.
-
-save_only_counters_from_result_view_mode
¶
Specifies whether to enable the save end of test counters according to result view mode. Possible values are true and false. The default value is false.
-
-stop_traffic_before_clearing_results
¶
Specifies whether to stop traffic generators before clearing results with ResultsClearAllCommand. Must set this before invoking ResultsClearAllCommand. The default value is false. Possible values are:
Value Description true Stop all generators, clear results for all views, and then start the generators again. false Clear results for all views without stopping generators.
-
-stop_analyzer_before_clearing_results
¶
Specifies whether to stop analyzers before clearing results with ResultsClearAllCommand. Must set this before invoking ResultsClearAllCommand. The default value is false. Possible values are:
Value Description true Stop all analyzers, clear results for all views, and then start the analyzers again. false Clear results for all views without stopping analyzers.
-
-tx_port_expect_mcast_traffic_sent_from_self
¶
Specifies whether the Tx port will expect to receive traffic from itself. Possible values are true and false. The default value is false.
-
-sync_clear_results
¶
Specifies whether to synchronize clearing across all ports when you invoke ResultsClearAllCommand. Generators and analyzers will not be stopped. This attribute is not available if stop_traffic_before_clearing_results or stop_analyzer_before_clearing_results is set as true. The possible values are true and false. The default value is false.
-
-timed_refresh_interval
¶
Specifies the refresh interval in seconds when periodic mode is selected as timed_refresh_result_view_mode. Possible values are 1 to 65535. The default value 10.
-
-timed_refresh_result_view_mode
¶
Auto refresh for result views which does not update results in real time. The default value is manual. Possible values are:
Value Description manual MANUAL Result view does not get refreshed automatically. continuous CONTINUOUS Result view get refreshed continuously. periodic PERIODIC Result view get refreshed as per interval defined in TimedRefreshInterval.
-
-preamble_byte_len
¶
Specifies the ethernet preamble byte length used for layer 1 counter calculation. The possible values are 4 to 32. The default value is 8.
-
-result_view_mode
¶
Specifies which counters will be included in the results view. This applies only to stream-related views. Choose a result view mode prior to running any test. Changing this mode while a test is running will invalidate the current counter results. The default value is BASIC. Possible values are:
Value Description BASIC Provides the basic traffic counters. HISTOGRAM Provides the histogram counters. JITTER Provides the histogram and minimum, maximum, and average jitter counters. INTERARRIVALTIME Provides the inter-arrival histogram and minimum, maximum, and average jitter counters. FORWARDING Provides the advanced sequencing counters and minimum, maximum, and average jitter counters. LATENCY_JITTER Provides the minimum, maximum and average latency and jitter counters. LATENCY_JITTER_RFC5481 Provides the minimum, maximum and average latency and jitter counters.
-
-save_at_eot_properties
¶
Specifies whether configuration properties are to be saved at the end of test.
-
-jitter_mode
¶
Specifies the method to use for calculation of jitter values. The default value is rfc3393. Possible values are:
Value Description rfc3393 RFC3393ABSOLUTEVALUE Use specification from RFC3393 to calculate jitter values rfc4689 RFC4689ABSOLUTEVALUE Use specification from RFC3393 to calculate jitter values
-
-optimize_config_command
¶
Optimize the configuration to save memory. This command changes the following settings:
Settings > Traffic Options > Streams: Selects Delete inactive streams from memory Settings > L2L3 ResultOptions > Time Refresh Settings: Changes refresh mode from Periodic Refresh to Manual Refresh Result view > Change Result View > Manage Views > Enable Views: Unsubscribes the Aggregated Port L1 Tx and Rx Rate views
The default value is false. Possible values are:
Value Description true Optimize the configuration to save memory false Do not optimize the configuration to save memory Default TShark executable location.
-
-dhcpv4_enable_server_routing
¶
Specifies whether to enable the DHCPv4 server to route packets through the gateway. Possible values are true and false. The default value is false.
-
-dhcpv4_traffic_behavior
¶
Specifies the DHCPv4 client traffic behavior in relation to failed sessions. The default value is all_sessions. Possible values are:
Value Description all_sessions REQUIRE_ALL_SESSIONS_BOUND Start traffic only if all sessions are bound. failed_sessions IGNORE_FAILED_SESSIONS Start traffic while ignoring sessions that failed to bind.
-
-dhcpv6_enable_server_routing
¶
Specifies whether to enable the DHCPv6 server to route packets through the gateway. Possible values are true and false. The default value is false.
-
-dhcpv6_traffic_behavior
¶
Specifies the DHCPv6 client traffic behavior in relation to failed sessions. The default value is all_sessions. Possible values are:
Value Description all_sessions REQUIRE_ALL_SESSIONS_BOUND Start traffic only if all sessions are bound. failed_sessions IGNORE_FAILED_SESSIONS Start traffic while ignoring sessions that failed to bind.
Returned 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::system_settings
function configures system-level settings of Spirent
TestCenter with realism options. Use the -realism_mode argument to specify the
Realism mode to configure.
Currently only DHCPv6/PD and PPPoX support realism mode. You must already have configured DHCPv6/PD and PPPoX before you use this function.
If the operation fails, Spirent HLTAPI returns an error message.
Examples¶
Sample Input:
set Realism_Mode [sth::system_settings\
-realism_mode CONTROL_PLANE\
]
Sample Output:
{status 1}
The following example configures Traffic Options and Result Options in
system settings.
set cfg [sth::system_settings\
-jitter_mode rfc4689 \
-timed_refresh_result_view_mode periodic \
-timed_refresh_interval 12 \
-stop_analyzer_before_clearing_results true \
-save_only_counters_from_result_view_mode true \
-stream_id_start_index 2 \
-exclude_eth_fcs true \
-optimize_config_command true \
]
Sample Output:
{status 1}
The following example configures DHCPv4 and DHCPv6 Options in
system settings.
set cfg [sth::system_settings\
-dhcpv4_enable_server_routing true \
-dhcpv4_traffic_behavior failed_sessions \
-timed_refresh_interval false \
-dhcpv6_traffic_behavior all_sessions ]
Sample Output:
{status 1}
End of Procedure Header
sth::sequencer_control¶
Purpose¶
This is a Spirent Extension created to control the Command Sequencer configurations
specified in the sth::sequencer_config
function
Synopsis¶
Note
M indicates that the argument is Mandatory .
sth::sequencer_control [-action {start|stop|step|pause}]
Arguments¶
-
-action
¶
Specifies the action to perform. Possible values are described below:
start Starts the Command Sequencer stop Stops the Command Sequencer pause Pauses the Command Sequencer step Executes the current command in the Command Sequencer, starting from step 1
The default value is start.
Return Values¶
The function returns a keyed list 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::sequencer_control
function starts, stops, pauses the Command Sequencer,
or executes the current command in a step-by-step fashion. See -action for more
information on the control actions.
Before you use this function, there must be existing Command Sequencer configurations (procedure sth::sequencer_config) either written manually or generated using the Save as HLTAPI tool. See Support for Command Sequencer in Appendix A for more information on Save as HLTAPI’s support for Command Sequencer.
Examples¶
The following example starts the Command Sequencer:
set ctrl_ret1 [sth::emulation_sequencer_control -action start]
Sample Output in the HLTAPI console:
start sequencer .....
command "Start OSPF"...
command "Activate/Deactivate StreamBlocks 1"...
command "Wait 8"...
command "Routing: Establish Protocol 3"...
command "Routing: Verify Routing State 1"...
command "Activate/Deactivate StreamBlocks 3"...
command "Iterate Burst Size 1"...
command "Iterate Combo Command 1"...
command "Iterate Trial Command 1"...
command "Iterate Throughput 1"...
command "Iterate Load Size 1"...
command "Iterate Frame Size 4"...
command "Set Traffic Duration 10 sec"...
command "Wait 9"...
command "Start StreamBlocks 3"...
command "Wait 15"...
command "Start Random Error Insertion 1"...
command "Start Capture 2"...
command "Wait 16"...
command "Add Chart Marker 1"...
command "Clear Chart Results 1"...
command "Wait 17"...
command "Stop Capture 3"...
command "Stop StreamBlocks 3"...
Command "Stop Random Error Insertion 1"...
sth::save_results¶
Purpose¶
Save the results data in a DB file.
Synopsis¶
Note
M indicates that the argument is Mandatory .
sth::save_results [-loop_mode {append|overwrite}] [-result_file_name <string> M] [-save_detailed_results {true|false}]
Arguments¶
-
-loop_mode
¶
Whether to append results to an existing file or overwrite the file when looping.
Values: append, overwrite
Default: append
-
-result_file_name
¶
Specifies absolute path or filename for the result DB file. If you specify an absolute path, the location of the result DB file is this absolute path. If you only specify filename, the location of the result DB file is the -custom_path that you specified by
sth::test_config
function. If not specified, the Sprient TestCenter output file path will be used. This argument is Mandatory for thesth::save_results
function.
-
-save_detailed_results
¶
Whether to save detailed results.
Values: true, false
Default: false
Return Values¶
The function returns a keyed list using the following keys:: status Success (1) or failure (0) of the operation log An error message (if the operation failed)
Description¶
Thesth::save_results
function saves the results data in a DB file. Use the -result_file_name argument to specify the location of the DB file.
Examples¶
#### HLTAPI for Tcl ####
Sample Input:
sth::save_results \
-result_file_name "c:/work/saveresult/results.db" \
-loop_mode overwrite \
-save_detailed_results true
Sample Output:
{status 1}
End of Procedure Header
sth::link_fault_signalling¶
Purpose¶
Starts or Stops generating the fault condition at specified ports. This function works on Ethernet 10/40/50/100/200/400 fiber ports.
Synopsis¶
Note
M indicates that the argument is Mandatory .
sth::link_fault_signalling [-port_handle <port_handle list> M] [-action (start | stop} M] [-fault_type {CONTINUOUS | TIMED} ] [-fault_mode {RESET | LOCAL | REMOTE} ] [-fault_duration <0>] [-duration_type {sec | ms}]
Arguments¶
-
-port_handle
¶
Specifies the list of port handles. This argument is Mandatory .
-
-action
¶
Specifies the action to perform. Possible values are described below:
start Starts the link fault signalling on the specified ports. stop Stops the link fault signalling on the specified ports.
-
-fault_type
¶
Specifies the type of fault to be generated Possible Values:
CONTINUOUS Continuous fault. Need to use -action stop to stop the fault TIMED Timed fault. Occurs for some specified durations
Default: CONTINUOUS
-
-fault_mode
¶
Specifies the generated fault mode Possible Values:
RESET Stop forcing a local or remote fault. Reset will remove all forced faults from the tx data path. LOCAL Local fault. Spirent TestCenter generates a local fault condition. REMOTE Remote fault. The DUT presents a remote fault condition.
Default: LOCAL
-
-fault_duration
¶
Specifies the fault duration in case of a timed fault.
Default: 0
-
-duration_type
¶
Specifies the type of fault duration in case of a timed fault. Possible values are sec (seconds) and ms (milliseconds)
Default: ms
Return Values¶
The function returns a keyed list using the following keys:: status Success (1) or failure (0) of the operation log An error message (if the operation failed)
Description¶
Thesth::link_fault_signalling
function starts or stops generating the fault condition at specified ports.
Examples¶
#### HLTAPI for Tcl ####
Sample Input:
sth::link_fault_signalling \
-port_handle "$port1 $port2" \
-action start \
-fault_mode REMOTE \
-fault_type TIMED \
-fault_duration 50 \
-duration_type sec \
Sample Output:
{status 1}
sth::link_fault_signalling \
-port_handle "$port1 $port2" \
-action stop \
Sample Output:
{status 1}
End of Procedure Header