SyncE Functions¶
emulation synce config¶
Execute Tester Command ${rt_handle} command=test_control <additional key=value arguments>
- Purpose:
Spirent Extension (for Spirent HLTAPI only).
Creates, modifies, or resets Synchronous Ethernet (SyncE) devices for the specified Spirent HLTAPI port. SyncE refers to a set of ITU-T recommendations designed to allow packet networks and circuitswitched networks (TDM, SONET, and SDH) to interwork.
Spirent HLTAPI allows you to create complex tests to validate SyncE implementations.
Synopsis:
Note: M indicates the argument is `Mandatory`.
emulation synce config
mode= {create|modify|reset} M
port_handle= <port_handle>
handle= <handle>
ip_version= {6 | 4_6}
ipv6_enable_gateway_learning= {true | false}
encap= {ethernet_ii | ethernet_vlan}
count= <1-65536>
device_name= <ANY>
mac_addr= <aa:bb:cc:dd:ee:ff>
mac_addr_step= <aa:bb:cc:dd:ee:ff>
local_ipv4_addr= <a.b.c.d>
local_ipv4_addr_step= <a.b.c.d>
local_ipv4_prefix_len= <0-32>
gateway_ipv4_addr= <a.b.c.d>
gateway_ipv4_addr_step= <a.b.c.d>
link_local_ipv6_prefix_len= <0-128>
link_local_ipv6_addr_step= <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>
link_local_ipv6_addr= <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>
local_ipv6_addr= <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>
local_ipv6_addr_step= <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>
local_ipv6_prefix_len= <0-128>
gateway_ipv6_addr= <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>
gateway_ipv6_addr_step= <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>
vlan_id= <0-4095>
vlan_id_mode= {fixed | increment}
vlan_id_step= <0-4094>
vlan_id_repeat_count= <0-4294967295>
vlan_id_recycle_count= <0-4294967295>
vlan_cfi= {0 | 1}
vlan_priority= <0-7>
vlan_outer_id= <0-4095>
vlan_outer_id_mode= {fixed | increment}
vlan_outer_user_priority= <0-7>
vlan_id_outer_count= <1-4096>
vlan_id_outer_step= <0-4094>
vlan_outer_id_repeat_count= <0-4294967295>
vlan_outer_id_recycle_count= <0-4294967295>
vlan_outer_cfi= {0 | 1}
option_type= {option1 | option2}
quality_level {QLPRC | QLSSUA= |
QLSSUB | QLSEC | QLDNU | QLSTU | QLPRS | QLTNC= |
QLST2 | QLST3 | QLSMC | QLST3E | QLPROV | QLDUS= }
rate= <0-20>
Arguments:
handle
Specifies the SyncE handle to be returned from this
function. This argument is `Mandatory` for modes modify and reset.
port_handle
Specifies the port on which to create the SyncE
emulation. This argument is `Mandatory` for mode create.
mode
Specifies the action to be taken. Possible values are create,
modify, and reset. This argument is `Mandatory`. Possible values
are described below::
create Starts emulating SyncE devices on the specified
port
modify Changes the configuration for the emulated
SyncE devices identified by the handle
argument. You must specify the handle argument.
reset Deletes the emulated SyncE device. You
must specify the handle argument.
ip_version
Defines the IP version to be used. Possible values are 4 for IPv4, 6 for
IPv6, and 4_6 for dual stack. The default is 6.
ipv6_enable_gateway_learning
Enables or disables IPv6 learning for gateway IP addresses and MAC
addresses. Possible values are true (enable) and false (disable).
The default value is false.
encap
Specifies the type of Layer 2 encapsulation. Possible values are
described below::
ethernet_ii Ethernet II
ethernet_vlan Ethernet II with a single VLAN tag
ethernet_ii_qinq Ethernet II with two VLAN tags. This option
supports Ethernet encapsulation.
The default value is ethernet_ii.
count
Specifies the number of devices to emulate. Possible values
range from 1 to 65536. The default value is 1.
device_name
Specifies the name of the emulated device
mac_addr
Specifies the first MAC address to use. Each client must have a
unique source MAC address. The value must be in MAC format. The
default value is 00:10:94:00:00:01.
mac_addr_step
Specifies the increment used to generate additional MAC
addresses for SyncE hosts. The default value is
00:00:00:00:00:01.
local_ipv4_addr
Specifies the starting IPv4 address of the emulated devices. The
value must be in IPv4 format. The default value is 192.85.1.3.
This argument is only available when ip_version is set to 4_6.
local_ipv4_addr_step
Specifies the increment used to generate IPv4 addresses for
multiple devices. The value must be in IPv4 format. The default
value is 0.0.0.1. This argument is only available when
ip_version is set to 4_6.
local_ipv4_prefix_len
Specifies the IPv4 address prefix length. Possible values range
from 0 to 32. The default value is 24. This argument is only
available when ip_version is set to 4_6.
gateway_ipv4_addr
Specifies the first IPv4 gateway address for the emulated
devices. The value must be in IPv4 format. The default value is
192.85.1.1. This argument is only available when ip_version is set
to 4_6.
gateway_ipv4_addr_step
Specifies the increment used to generate IPv4 gateway addresses
for multiple devices. The value must be in IPv4 format. The
default value is 0.0.0.0. This argument is only available when
ip_version is set to 4_6.
link_local_ipv6_addr
Specifies the starting link local IPv6 address for emulated
devices. The value must be in IPv6 format. The default is
FE80::1.
link_local_ipv6_addr_step
Specifies the difference between link local IPv6 addresses of
consecutive devices when multiple emulated devices are created.
The value must be in IPv6 format. The default is ::1.
link_local_ipv6_prefix_len
Specifies the prefix length for the link local IPv6 address of
the emulated device. Possible values range from 0 to 128. The
default is 64.
local_ipv6_addr
Specifies the starting address of the emulated IPv6 devices.
The value must be in IPv6 format. The default value is 2001::2.
local_ipv6_addr_step
Specifies the increment used to generate IPv6 gateway addresses
for multiple devices. The value must be in IPv6 format. The
default value is 0::1.
local_ipv6_prefix_len
Specifies the IPv6 address prefix length. Possible values range
from 0 to 128. The default value is 64.
gateway_ipv6_addr
Configures the first IPv6 gateway address for the emulated IPv6
devices. The value must be in IPv6 format. The default value is
::0.
gateway_ipv6_addr_step
Defines the increment used to generate IPv6 gateway addresses
for multiple devices. The value must be in IPv6 format. The
default value is ::.
vlan_id
The VLAN ID of the first VLAN subinterface. Possible values
range from 0 to 4095. The default value is 1.
vlan_id_mode
Specifies the VLAN ID assignment mode for configurations of
multiple devices when count is greater than 1. Possible values
are described below::
fixed The VLAN ID (the value of the vlan_id argument)
is the same for all devices.
increment Spirent HLTAPI assigns unique VLAN IDs.
When you use this mode, you must also specify
vlan_id_step to define the increment value.
vlan_id_step
The value that Spirent HLTAPI uses to increment the VLAN ID.
Possible values range from 0 to 4094. The default value is 1.
vlan_id_repeat_count
Number of times to repeat the same IPv4 address before
incrementing it for the inner VLAN. The value must be an integer.
The default value is 0.
vlan_id_recycle_count
Number of times to increment the IPv4 address before returning to
the starting value. The value must be an integer. The default
value is 0.
vlan_cfi
Sets the Canonical Format Indicator (CFI) field in VLAN for the
emulated router node. Possible values are 0 (Ethernet) and 1
(Token Ring). The default is 1. If set to 0, it indicates
the network is Ethernet. If set to 1, it indicates the network is
Token Ring and packets are dropped by Ethernet ports.
vlan_priority
VLAN priority for the VLANs on this port. Possible values
range from 0 to 7. The default value is 0.
vlan_outer_id
Specifies the starting outer VLAN ID for the QinQ encapsulation.
Possible values range from 0 to 4095. The default value is 100.
This argument is available when encapsulation is set to
ethernet_ii_qinq.
vlan_id_outer_step
Specifies the step value to increment the outer VLAN IDs.
Possible values range from 0 to 4095. The default value is 1.
This argument is available when encapsulation is set to
ethernet_ii_qinq.
vlan_id_outer_count
Defines the number of outer VLAN IDs to use when creating
SyncE devices. VLAN membership is assigned in
roundrobin fashion. The number of sessions must be divided
evenly into the outer VLAN count. Possible values range from 1 to
4096. The default value is 1. This argument is available when
encapsulation is set to ethernet_ii_qinq.
vlan_outer_id_repeat_count
Number of times to repeat the same IPv4 address before
incrementing it for the outer VLAN. The value must be an integer.
The default value is 0.
vlan_outer_id_recycle_count
Number of times to increment the IPv4 address before returning to
the starting value. The value must be an integer. The default
value is 0.
vlan_outer_cfi
Specifies the Canonical Format Indicator (CFI) value for the VLAN
outer header. Possible values are 0 and 1. The default value is
0. This argument is available when encapsulation is set to
ethernet_ii_qinq.
vlan_outer_user_priority
Specifies the VLAN priority to assign to the outer VLAN header.
Possible values range from 0 to 7. The default value is 0. This
argument is available when encapsulation is set to
ethernet_ii_qinq.
vlan_outer_id_mode
Specifies how Spirent HLTAPI assigns VLAN tags to packets in
the specified outer header when router count is greater than 1.
Possible values are::
fixed The outer VLAN ID is the same for all packets.
The fixed outer VLAN ID is the value of the
vlan_outer_id argument.
increment For all packets, the outer VLAN tag ID
increments by the step specified in the
vlan_outer_id_step argument.
This argument is available when encapsulation is set to
ethernet_ii_qinq.
option_type
Specifies the SyncE option type.
Possible values are::
option1 European synchronization network
option2 United States synchronization network
The default value is option2.
quality_level
Specifies the SyncE quality level.
Available quality level options depend on the value of option_type.
When option_type is option1, following values are available::
QLPRC Primary reference clock
QLSSU-A Synchronization supply unit A
QLSSU-B Synchronization supply unit B
QLSEC SDH equipment clock
QLDNU Do not use
When option_type is option2, following values are available::
QLSTU Synchronization traceability unknown
QLPRS Primary reference source
QLTNC Transit node clock
QLST2 Stratum 2
QLST3 Stratum 3
QLSMC SONET minimum clock
QLST3E Stratum 3 enhanced
QLPROV Provisionable by network operator
QLDUS Do not use for synchronization
The default value is QLPRS.
rate
Specifies the clock rate, in number of messages to send per
second. Possible values range from 0 to 20. The default value is
1.
- Return Values:
Depending on the specific language that HLTAPI uses, the function returns a keyed list/dictionary/hash (See Introduction for more information on return value formats) using the following keys (with corresponding data):
handle A list of handles that identify the device emulation created by the ``emulation synce config`` function synce_device_handle A list of handles that identify the SyncE device emulation created by the ``emulation synce config`` function port_handle The port handle on which SyncE devices are configured status $SUCCESS or $FAILURE log An error message (if the operation failed)
- Description:
The
emulation synce config
function creates, modifies, or deletes SyncE device emulations. Use the mode argument to specify the action to perform. (See the mode argument description for information about the actions.)When you create SyncE devices, you must use the port_handle argument to specify the Spirent HLTAPI port that the emulated SyncE devices will use. (The port handle value is contained in the keyed list returned by the connect function.) In addition to specifying port_handle, you can provide one or more of the following arguments when you create SynCE devices or use their default values:
count ip_version option_type quality_level rate
In the modify mode, you can change the configuration of the created SyncE devices except for these arguments:
port_handle, encap ip_version count
In the reset mode, you can remove the created device. If a creation, configuration, or deletion fails, Spirent HLTAPI returns an error message. For example, if the user tries to modify a nonexisting session handle, an error message will be returned.
Examples:
The following example creates SyncE device emulation on dual stack:
set device_ret0 [emulation synce config mode= create ip_version= 4_6 encap= ethernet_ii port_handle= $port1 gateway_ipv6_addr= 6001::1 local_ipv6_addr= 6001::2 local_ipv6_addr_step= ::1 link_local_ipv6_prefix_len= 64 link_local_ipv6_addr_step= ::1 link_local_ipv6_addr= fe80::4 mac_addr= 00:10:74:00:01:01 mac_addr_step= 00:00:00:00:00:01 local_ipv4_addr_step= 0.0.0.1 local_ipv4_prefix_len= 24 gateway_ipv4_addr_step= 0.0.0.0 gateway_ipv4_addr= 192.85.1.2 local_ipv4_addr= 192.85.1.1 quality_level QLSTU= rate= 8 use_partial_block_state= false option_type= option2 ]Sample Output:
{port_handle port1} {handle emulateddevice1} {synce_device_handle syncethdeviceconfig1} {status 1}
emulation synce control¶
Execute Tester Command ${rt_handle} command=test_control <additional key=value arguments>
- Purpose:
Spirent Extension (for Spirent HLTAPI only).
Starts, stops, or deletes the SyncE emulation on the specified device or port
Synopsis:
Note: M indicates the argument is `Mandatory`.
emulation synce control
port_handle= <port_handle_list>
handle= <device_handle_list>
action= {start | stop | delete} M
Arguments:
action
Specifies the action to be performed. This argument is `Mandatory`.
Possible values are described below::
start Starts the SyncE emulation
stop Stops the SyncE emulation
delete Deletes the SyncE configuration
port_handle
Specifies a list of ports on which to perform the action. You must
specify handle or -port_handle, but not both.
handle
Specifies a list of devices on which to perform the action. You
must specify handle or -port_handle, but not both.
- 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 or $FAILURE log An error message (if the operation failed)
- Description:
- The
emulation synce control
function controls the starting and stopping of SyncE devices. It also provides an option to delete SyncE configurations from the selected ports or devices.
Examples:
The following example starts SyncE devices on port1 and port2:
set ctrl_ret1 [emulation synce control port_handle= "$port1 $port2" action= start ]Sample Output:
{status 1}
emulation synce stats¶
Execute Tester Command ${rt_handle} command=test_control <additional key=value arguments>
- Purpose:
Spirent Extension (for Spirent HLTAPI only).
Retrieves SyncE statistics
Synopsis:
Note: M indicates the argument is `Mandatory`.
emulation synce stats
port_handle= <port_handle>
handle= <device_handle>
mode= {port|device|option1|option2} M
Arguments:
handle
Specifies the handle of the device on which to retrieve statistics.
If no handle is specified, then statistics for all devices
configured on the port will be returned. You must specify handle or
port_handle, but not both.
port_handle
Specifies the port on which to retrieve statistics. You must
specify handle or -port_handle, but not both.
mode
Specifies the kind of information you want to see. Possible values
are described below::
port Returns statistics for the specified port
device Returns SyncE device results
option1 Returns SyncE option 1 device results
option2 Returns SyncE option 2 device results
- 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 or $FAILURE log An error message (if the operation failed)
The following are statistics when you specify mode port:
tx_info_msgs Number of Information messages sent tx_events Number of Event messages sent rx_info_msgs Number of Information messages received rx_events Number of Event messages received
The following are statistics when you specify mode device:
rx_avg_info_msg_inter_arrival_time Average delay in seconds between two received Information messages rx_events Number of Event messages received rx_info_msgs Number of Information messages received rx_max_info_msg_inter_arrival_time Maximum delay in seconds between two received Information messages rx_min_info_msg_inter_arrival_time Minimum delay in seconds between two received Information messages rx_ql Received quality level rx_ql_num Received quality level as an integer value tx_events Number of Event messages sent tx_info_msgs Number of Information messages sent tx_ql Transmitted quality level tx_ql_num Transmitted quality level as an integer value
The following are statistics when you specify mode option1:
rx_ql_dnu_count Number of QLDNU (Do Not Use) messages received rx_ql_prc_count Number of QLPRC (Primary Reference Clock) messages received rx_ql_sec_count Number of QLSEC (SDH Equipment Clock) messages received rx_ql_ssua_count Number of QLSSU-A (Synchronization Supply Unit) messages received rx_ql_ssub_count Number of QLSSU-B (Synchronization Supply Unit) messages received rx_ql_unsup_count Number of unsupported messages received tx_ql_dnu_count Number of QLDNU (Do Not Use) messages sent tx_ql_prc_count Number of QLPRC (Primary Reference Clock) messages sent tx_ql_sec_count Number of QLSEC (SDH Equipment Clock) messages sent tx_ql_ssua_count Number of QLSSU-A (Synchronization Supply Unit) messages sent tx_ql_ssub_count Number of QLSSU-B (Synchronization Supply Unit) messages sent tx_ql_unsup_count Number of unsupported messages sent
The following are statistics when you specify mode option2:
rx_ql_dus_count Number of QLDUS (Do Not Use) messages received rx_ql_prov_count Number of QLPROV (Provisionable by network operator) messages received rx_ql_prs_count Number of QLPRS (Primary Reference Source) messages received rx_ql_smc_count Number of QLSMC messages received rx_ql_st2_count Number of QLST2 (Stratum 2) messages received rx_ql_st3_count Number of QLST2 (Stratum 3) messages received rx_ql_st3e_count Number of QLST2 (Stratum 3 Enhanced) messages received rx_ql_stu_count Number of QLSTU (Synchronization Traceability Unknown) messages received rx_ql_tnc_count Number of QLTNC (Transit Node Clock) messages received rx_ql_unsup_count Number of unsupported messages received tx_ql_dus_count Number of QLDUS (Do Not Use) messages sent tx_ql_prov_count Number of QLPROV (Provisionable by network operator) messages sent tx_ql_prs_count Number of QLPRS (Primary Reference Source) messages sent tx_ql_smc_count Number of QLSMC (SONET Minimum Clock) messages sent tx_ql_st2_count Number of QLST2 (Stratum 2) messages sent tx_ql_st3_count Number of QLST2 (Stratum 3) messages sent tx_ql_st3e_count Number of QLST2 (Stratum 3 Enhanced) messages sent tx_ql_stu_count Number of QLSTU (Synchronization Traceability Unknown) messages sent tx_ql_tnc_count Number of QLTNC (Transit Node Clock) messages sent tx_ql_unsup_count Number of unsupported messages sent
- Examples:
Sample Input:
set results_ret1 [emulation synce stats port_handle= "$port1 $port2" mode= device ]
Sample Output:
{status 1} {emulateddevice20 {{device_result {{tx_ql QLDNU} {tx_info_msgs 97} {tx_events 3} {rx_ql_num 2} {rx_min_info_msg_inter_arrival_time 0.998351} {rx_ql QLPRC} {rx_info_msgs 96} {rx_events 3} {tx_ql_num 15} {rx_max_info_msg_inter_arrival_time 1.002698} {rx_avg_info_msg_inter_arrival_time 1.000047531} {clock_state SLAVE}}}}} {emulateddevice23 {{device_result {{tx_ql QLPRC} {tx_info_msgs 96} {tx_events 3} {rx_ql_num 15} {rx_min_info_msg_inter_arrival_time 0.998861} {rx_ql QLDNU} {rx_info_msgs 97} {rx_events 3} {tx_ql_num 2} {rx_max_info_msg_inter_arrival_time 1.002398} {rx_avg_info_msg_inter_arrival_time 1.000035957} {clock_state MASTER}}}}}