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}}}}}