TWAMP Functions

emulation twamp config

Execute Tester Command ${rt_handle} command=test_control <additional key=value arguments>

Purpose:

This function is a Spirent Extension created to configure, modify, or delete a TWAMP client/server on the specified device.

The TwoWay Active Measurement Protocol (TWAMP) uses the methodology and architecture of OWAMP RFC4656 for the measurement of twoway or round-trip metrics, in addition to the oneway metrics of OWAMP. TWAMP employs time stamps applied at the echo destination (reflector) to enable greater accuracy . The TWAMP measurement architecture is typically two hosts with specific roles.

TWAMP Light, as defined in Appendix I of RFC 5357, which defines a light version of the TWAMP protocol, a stateless version of TWAMP where test parameters are predefined instead of negotiated.

Synopsis:

Note: M indicates the argument is `Mandatory`.

    emulation twamp config
          mode= {create | modify | delete} M
          handle= <device_handle> M
          type= {server | client}
          connection_retry_cnt= <0-65535>
          connection_retry_interval= <10-300>
          ipv6_if_type= {global | linklocal}
          ip_version= {ipv4 | ipv6}
          peer_ipv4_addr= < a.b.c.d >
          peer_ipv6_addr= <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>
          scalability_mode= {discard_test_session_statistics | normal}
          enable_light= {true | false}
          udp6_checksum= {true | false}
          use_partial_block_state= {true | false}
          server_enable_light= {true | false}
          server_udp6_checksum= {true | false}
          server_use_partial_block_state= {true | false}
          server_ipv6_if_type= {global | linklocal}
          server_ip_version= {ipv4 | ipv6}
          server_mode= {unauthenticated}
          server_willing_to_participate= {true | false}
          server_local_udp_port= <integer>

Arguments:

handle
                Specifies the device handle on which the TWAMP client/server will
                be created. This argument is `Mandatory`.

mode
                Specifies the action to perform. Possible values are create,
                modify and delete. This argument is `Mandatory`. The modes are
                described below::


                 create          Creates a TWAMP client/server on the provided
                                 device handle. Use type to specify the type of
                                 TWAMP to be created.

                 modify          Modifies the configured TWAMP client/server

                 delete          Deletes the TWAMP client/server on the device
                                 specified by handle

type
                Specifies the type of TWAMP to be configured. This argument is
                `Mandatory`. Possible values are::

                 client      TWAMP client
                 server      TWAMP server

connection_retry_cnt
                Specifies the number of times to attempt a connection before
                timing out. Possible values range from 0 to 65535. The default
                value is 100.

connection_retry_interval
                Specifies the number of seconds to wait between connection
                attempts. Possible values range from 10 to 300. The default value
                is 30.

ipv6_if_type
                Specifies the source IPv6 address type for the TWAMP client.
                Possible values are:

                 linklocal      Link local IPv6 address from the emulated device
                 global         Global address from the emulated device

                The default value is global.


ip_version
                Specifies the IP version of the TWAMP client.
                Possible values are ipv4 and ipv6. The default value is ipv4.

peer_ipv4_addr
                Specifies the IPv4 address of the peer (DUT port). The value must
                be in IPv4 format. The default value is 192.85.1.1.

peer_ipv6_addr
                Specifies the IPv6 address of the peer (DUT port). The value must
                be in IPv6 format. The default value is 2001::1.

scalability_mode
                Specifies the scalability mode. Possible values are
                described below::


                 Normal                              Includes test session result
                                                     collection

                 discard_test_session_statistics     Discards test session result
                                                     collection. This can reduce the
                                                     demand on the processor for
                                                     largescale testing

                The default value is normal.

enable_light
                Specifies whether to enable or disable the TWAMP Light.
                Possible values are true and false. The default value is false.

udp6_checksum
                Specifies whether to allow zero UDPv6 checksum. Possible values are
                true and false. The default value is false.

use_partial_block_state
                Specifies whether to use partial block state. Possible values are
                true and false. The default value is false.

server_enable_light
                Specifies whether to enable or disable the TWAMP Light server.
                Possible values are true and false.
                The default value is false.

server_udp6_checksum
                Specifies whether to allow zero UDPv6 checksum for the TWAMP server.
                Possible values are true and false.
                The default value is false.

server_use_partial_block_state
                Specifies whether to use partial block state for the TWAMP server.
                Possible values are true and false. The default value is false.

server_ipv6_if_type
                Specifies the source IPv6 address type for the TWAMP server.
                Possible values are::


                 linklocal       Link local IPv6 address from the emulated device
                 global          Global address from the emulated device

                The default value is global.

server_ip_version
                Specifies the IP version of the TWAMP server. Possible values are
                ipv4 and ipv6. The default value is ipv4.

server_mode
                Specifies the security mode. Currently Spirent HLTAPI only
                supports one mode. Possible value is unauthenticated. The default
                value is unauthenticated.

server_willing_to_participate
                Specifies the bit value in the modes field. Possible values are
                true and false. The default value is true.

server_local_udp_port
                Specifies the local UDP port or port list for the TWAMP server.
                The default value is 862.

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):

handle         Handle of the TWAMP client when type is client; handle of
               the TWAMP server when type is server
status          Success (1) or failure (0) of the operation

log             An error message (if the operation failed)
Description:

The emulation twamp config function creates, modifies, or deletes TWAMP clients/servers on the specified device. Use the mode argument to specify the action to perform. (See the mode argument description for information about the actions.)

When you configure a TWAMP, use handle to specify the device on which the TWAMP client/server will be created. (The device handle value is contained in the keyed list returned by the emulation device config function.)

If the performed action fails, Spirent HLTAPI returns an error message.

Examples:

To create a TWAMP client on device1:

set device_ret2 [emulation twamp config
        mode=                           create
        handle=                         $devicehandle1
        type=                           client
        connection_retry_cnt=           200
        ip_version=                     ipv4
        peer_ipv4_addr=                 192.85.1.1
        scalability_mode=               normal
        connection_retry_interval=      40
  ]

To create a TWAMP server on device2:

set device_ret3 [emulation twamp config
        mode=                           create
        handle=                         $devicehandle2
        type=                           server
        server_ip_version=              ipv4
        server_mode=                    unauthenticated
        server_willing_to_participate=                    true
    ]

emulation twamp session config

Execute Tester Command ${rt_handle} command=test_control <additional key=value arguments>

Purpose:
This function is a Spirent Extension created to configure, modify, or delete a TWAMP session on the specified TWAMP client

Synopsis:

Note: M indicates the argument is `Mandatory`.

    emulation twamp session config
        handle= <device_handle | session_handle> M
        mode= {create | modify | delete} M
        dscp= <0-63>
        duration= <0 - 4294967295>
        duration_mode= {continuous | packets | seconds}
        frame_rate= <1-1000>
        pck_cnt= <0 - 4294967295>
        padding_len= <27-9000>
        padding_pattern= {random | user_defined}
        padding_user_defined_pattern= <ANY>
        scalability_mode= {discard_test_session_statistics | normal}
        session_name= <string>
        session_dst_udp_port= <1-65535>
        session_src_udp_port= <1-65535>
        start_delay= <0 - 4294967295>
        timeout= <0 - 4294967295>
        ttl= <1-255>

Arguments:

handle
                Specifies the device handle on which the TWAMP client is created when
                mode is create. Specifies the session handle when mode is modify or
                delete.

mode
                Specifies the action to perform. Possible values are create, modify, and
                delete. This argument is `Mandatory`. The modes are described below::

                 create        Creates TWAMP client session on the provided
                               device handle

                 modify        Modifies the configurations for the TWAMP client
                               session specified by handle

                 delete        Deletes the TWAMP client session specified by handle


dscp
                Specifies the Differentiated Service Code Point (DSCP) value.
                Possible values range from 0 to 63. The default value is 0.

duration
                Number of seconds to run the test session. This argument is only
                available when duration_mode is set to seconds. Possible values range
                from 0 to 4294967295. The default value is 60.

duration_mode
                Determines how the test duration is defined. Possible values are::


                 seconds             Test duration by seconds
                 packets             Test duration by packets
                 continuous          Continuous mode

                The default value is seconds.

frame_rate
                Specifies the rate at which to send TWAMPTest packets, in frames
                per second. Possible values range from 1 to 1000. The default
                value is 10.

pck_cnt
                Specifies the number of packets to run the test session. This
                argument is only available when duration_mode is set to packets.
                Possible values range from 0 to 4294967295. The default value is
                100.

padding_len
                Specifies the number of octets to be appended to a normal
                OWAMPTest packet. Possible values range from 27 to 9000. The
                default value is 128.

padding_pattern
                Specifies the type of data to be used for padding.
                Possible values are::


                 user_defined    Specify a userdefined bit padding pattern
                 random         Use a random format for the padding pattern

                The default value is random.

padding_user_defined_pattern
                Specifies the bit pattern for filling the padding. This argument
                is only available when padding_pattern is set to user_defined.
                The default value is 0x0000.

scalability_mode
                Specifies the scalability mode. Possible
                values are described below::


                 normal                              Includes test session result
                                                     collection
                 discard_test_session_statistics     Discards test session result
                                                     collection. This can reduce
                                                     the demand on the processor
                                                     for largescale testing

                The default value is normal.

session_name
                Specifies the text name for the test session

session_dst_udp_port
                Specifies the UDP port to which TWAMPTest packets are sent by
                the SessionReflector. Possible values range from 1 to 65535. The
                default value is 5450.

session_src_udp_port
                Specifies the UDP port from which TWAMPTest packets are sent by
                the SessionSender. Possible values range from 1 to 65535. The
                default value is 5450.

start_delay
                Specifies the number of seconds to wait between receiving an
                AcceptSession message and sending the first TWAMP-Test packet.
                Possible values range from 0 to 4294967295. The default value is
                5.

timeout
                Specifies the number of seconds that the SessionReflector waits
                after receiving a StopSessions message. Possible values range
                from 0 to 4294967295. The default value is 5.

ttl
                Specifies the time to live in seconds. Possible values range from
                1 to 255. The default value is 255.

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):

handle          TWAMP client test session handle when mode is create

status          Success (1) or failure (0) of the operation

log             An error message (if the operation failed)
Description:

The emulation twamp config function creates, modifies, or deletes a TWAMP session on the specified TWAMP client. Use the mode argument to specify the action to perform. (See the mode argument description for information about the actions.)

If the performed action fails, Spirent HLTAPI returns an error message. For example, if the user tries to configure a nonexisting TWAMP session handle in the modify mode, an error message will be returned.

Examples:

To create a session on the specified TWAMP client:

set device_ret4 [emulation twamp session config
    mode=                                             create
    handle=                                           $devicehandle1
    dscp=                                             2
    duration=                                         120
    duration_mode=                                    seconds
    frame_rate=                                       50
    pck_cnt=                                          200
    padding_len=                                      140
    session_dst_udp_port=                             5450
    session_src_udp_port=                             5451
    start_delay=                                      6
    timeout=                                          60
    ttl=                                              254
    padding_pattern=                                  random
    scalability_mode=                                 normal\   ]

emulation twamp control

Execute Tester Command ${rt_handle} command=test_control <additional key=value arguments>

Purpose:
This function is a Spirent Extension created to control the specified TWAMP emulation

Synopsis:

Note: M indicates the argument is `Mandatory`.

    emulation twamp control
        mode= {start|stop|establish|request_twamp_sessions|
              start_twamp_sessions|stop_twamp_sessions|pause_twamp_session_traffic|
              resume_twamp_session_traffic}  M]
        handle= <device_handle_list>
        port_handle= <port_handle_list>
        delay_time= <0 - 4294967295>

Arguments:

   handle
                   Specifies a list of TWAMP client or server handles to be controlled. You
                   must specify either port_handle or -handle, but not both.

   port_handle
                   Specifies a list of ports on which the TWAMP devices will be
                   controlled. You must specify either port_handle or -handle, but
                   not both.

   mode
                   Specifies the action to perform. This argument is `Mandatory`.
                   Possible values are::


                    start           Starts the TWAMP emulation. For a TWAMP server,
                                    sets the server to listen to incoming TCP
                                    connections from clients on port 862. For a TWAMP
                                    client, initializes a control connection to the
                                    server. After the connection is established, sends
                                    a RequestTW-Session message and a Start-Session
                                    message.

                    stop            Stops the TWAMP emulation. For a TWAMP server,
                                    closes the control connection to the client and
                                    stops listening for additional incoming
                                    connection requests. For a TWAMP client, stops
                                    all test sessions and closes the control
                                    connection to the server.

                    establish       Starts TWAMP emulation. For a TWAMP server, sets
                                    the server to listen to incoming TCP connections
                                    from clients on port 862. For a TWAMP
                                    client, initializes a control connection to the
                                    server.

                    request_twamp_session       Sends a RequestTW-Session message.
                                                Only valid for TWAMP clients.

                    start_twamp_sessions        Sends a StartSession message followed
                                                by TWAMPTest packets. Only valid for
                                                TWAMP clients.

                    stop_twamp_sessions         Sends a StopSessions message and
                                                stops sending TWAMPTest packets.
                                                Only valid for TWAMP clients.

                    pause_twamp_session_traffic   Stops sending TWAMPTest packets to
                                                  simulate a broken connection. Only
                                                  valid for TWAMP clients.

                    resume_twamp_session_traffic  Resumes sending TWAMPTest packets
                                                  after pausing the TWAMP session
                                                  traffic. Only valid for TWAMP
                                                  clients.

   delay_time
                   Specifies the number of seconds to wait before sending TWAMPTest
                   packets. This argument is only available when mode is set to
                   start_twamp_sessions. Possible values range from 0 to 4294967295.
                   The default value is 0.

Return Values
  Depending on the specific language that HLTAPI uses, the function returns a keyed
  list/dictionary/hash (See Introduction for more information on return value
  formats) using the following keys (with corresponding data)::


    status          Success (1) or failure (0) of the operation

    log             An error message (if the operation failed)
Description:

The emulation twamp control function controls the TWAMP emulation. Use the mode argument to specify the action to perform. (See the mode argument description for information about the actions.)

When you specify an action, you must specify either port handle or -handle, but not both. Spirent HLTAPI applies the specified action to all of the sessions associated with the specified port or device.

Examples:

To start a TWAMP server:

set server start [emulation twamp control
        handle=     $devicehandle2
        mode=       start\ ]

To start a TWAMP client:

set client start [emulation twamp control
        handle=     $devicehandle1
        mode=       start\ ]

emulation twamp stats

Execute Tester Command ${rt_handle} command=test_control <additional key=value arguments>

Purpose:
This function is a Spirent Extension created to get specified TWAMP statistics

Synopsis:

Note: M indicates the argument is `Mandatory`.
     emulation twamp stats
         mode= {state summary|client server|test session|port_test_session|
               aggregated_client|aggregated_server} M]
         handle= <device_handle>
         port_handle= <port_handle>

Arguments:

handle
            Specifies the TWAMP client or server device from which the statistics
            will be returned. You must specify either port_handle or -handle,
            but not both.

port_handle
            Specifies the port handle from which the statistics will be returned.
            You must specify either port_handle or -handle, but not both.

mode
            The statistics mode for the configured TWAMP. This argument is
            `Mandatory`. Possible values are::

             client              TWAMP client results
             server              TWAMP server results
             test_session        TWAMP test session results
             state_summary       TWAMP state results
             aggregated_client   TWAMP port aggregated client results
             aggregated_server   TWAMP port aggregated server results
             port_test_session   TWAMP port aggregated test session 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 (1) or failure (0) of the operation

log             An error message (if the operation failed)

When mode is test_session, the following keys will be returned:

avg_jitter                      Average jitter reported in microseconds

avg_latency                     Average latency reported in microseconds

avg_server_processing_time      Average server processing time reported
                                in microseconds

max_latency                     Maximum latency reported in microseconds

max_server_processing_time      Maximum server processing time reported
                                in microseconds

max_jitter                      Minimum jitter reported in microseconds

min_latency                     Minimum latency reported in microseconds

min_server_processing_time      Minimum server processing time reported
                                in microseconds

min_jitter                      Minimum jitter reported in microseconds

When mode is server, the following keys will be returned:

rx_req_tw_sess_cnt          Number of RequestTW-Session messages received

rx_start_sess_cnt           Number of StartSession messages received

rx_stop_sess_cnt            Number of StopSession messages received

State                       State of the TWAMP server
                            IDLE        The server is idle
                            STARTED     The server is started

tx_accept_sess_cnt          Number of AcceptSession messages sent

tx_failed_sess_cnt          Number of StopSession messages sent
                            with a nonzero Accept value
tx_start_ack_cnt            Number of StartAck messages sent

When mode is client, the following keys will be returned:

rx_accept_sess_cnt           Number of AcceptSession messages received

rx_failed_sess_cnt           Number of StopSession messages received with
                            a nonzero Accept value
rx_start_ack_cnt             Number of StartAck messages received

state                       State of the TWAMP client
                            IDLE                Idle
                            WAIT_FOR_RECONNECT  Waiting for reconnection
                            CONNECT             Connecting
                            ESTABLISHED         Established
                            SESSIONS_REQUESTED  Test sessions requested

tx_req_tw_sess_cnt          Number of RequestTW-Session messages sent

tx_start_sess_cnt           Number of StartSession messages sent

tx_stop_sess_cnt            Number of StopSession messages sent

When mode is state_summary, the following keys will be returned:

connect_cnt             Number of TWAMP test sessions accepted

established_cnt         Number of TWAMP test sessions in progress

idle_cnt                Number of TWAMP control sessions that do not have
                        test sessions running

sess_requested_cnt      Number of TWAMP test sessions requested

connections_down_cnt    Number of TWAMP control sessions rejected

connections_up_cnt      Number of TWAMP control sessions accepted

When mode is aggregated_server, the following keys will be returned:

rx_req_tw_sess_cnt          Number of RequestTW-Session messages received

rx_start_sess_cnt           Number of StartSession messages received

rx_stop_sess_cnt            Number of StopSession messages received

tx_accept_sess_cnt          Number of AcceptSession messages sent

tx_failed_sess_cnt          Number of StopSession messages sent
                            with a nonzero Accept value

tx_start_ack_cnt            Number of StartAck messages sent

When mode is aggregated_client, the following keys will be returned:

rx_accept_sess_cnt          Number of AcceptSession messages received

rx_failed_sess_cnt          Number of StopSession messages received with a
                            nonzero Accept value

rx_start_ack_cnt            Number of StartAck messages received

tx_req_tw_sess_cnt          Number of RequestTW-Session messages sent

tx_start_sess_cnt           Number of StartSession messages sent

tx_stop_sess_cnt            Number of StopSession messages sent

When mode is port_test_session, the following keys will be returned:

avg_jitter              Average jitter reported in microseconds

avg_latency             Average latency reported in microseconds

avg_server_processing_time
                        Average server processing time reported in microseconds

max_latency             Maximum latency reported in microseconds

max_server_processing_time
                        Maximum server processing time reported in microseconds

max_jitter              Maximum jitter reported in microseconds

min_latency             Minimum latency reported in microseconds

min_server_processing_time
                        Minimum server processing time reported in microseconds

min_jitter              Minimum jitter reported in microseconds
Description:

The emulation_twamp_stats function retrieves statistics for the specified TWAMP devices. Use mode to specify the scope of results that you want to retrieve.

This function returns the requested data and a status value (1 for success). If there is an error, the function returns the status value (0) and an error message.(See Return Values for a description of each key.)

Examples:

To get server results when state is started:

while { $state != "STARTED" } {
    set result_server_state [emulation twamp stats
        handle=     $devicehandle2
        mode=       server\ ]
    set state [keylget result_server_state $devicehandle2.state]
}

set result_server [emulation twamp stats
        handle=     $devicehandle2
        mode=       server\ ]

Sample Output:

{host3 {{state STARTED} {tx_accept_sess_cnt 2} {rx_stop_sess_cnt 0}
{rx_start_sess_cnt 1} {rx_req_tw_sess_cnt 2} {tx_failed_sess_cnt 0}
{tx_start_ack_cnt 1}}} {status 1}