RFC 2544 Functions

sth::test_rfc2544_config

Purpose

The sth::test_rfc2544_config command creates, modifies and deletes back-to-back test, frame loss test, latency test, or throughput test. The RFC 2544 tests are used to describe the performance characteristics of a network interconnecting device.

Synopsis

Note

M indicates that the argument is Mandatory .

sth::test_rfc2544_config
   [-mode {create|modify|delete}  M]
   [-handle <test_handle>]
   [-src_port <port_handle>]
   [-dst_port <port_handle>]
   [-endpoint_creation {0|1}]
   [-device_count <integer>]
   [-mac_addr {aa:bb:cc:dd:ee:ff}]
   [-port_mac_step {aa:bb:cc:dd:ee:ff}]
   [-device_mac_step {aa:bb:cc:dd:ee:ff}]
   [-vlan <integer>]
   [-port_vlan_step <integer>]
   [-device_vlan_step <integer>]
   [-vlan_priority <1-7>]
   [-ipv4_addr <a.b.c.d>]
   [-port_ipv4_addr_step <a.b.c.d>]
   [-device_ipv4_addr_step <a.b.c.d>]
   [-ipv4_prefix_len <1-32>]
   [-ipv4_gateway <a.b.c.d>]
   [-port_ipv4_gateway_step <a.b.c.d>]
   [-ipv6_addr <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>]
   [-port_ipv6_addr_step <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>]
   [-device_ipv6_addr_step <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>]
   [-ipv6_prefix_len <0-128>]
   [-ipv6_gateway <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>]
   [-port_ipv6_gateway_step <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>]
   [-src_endpoints <handle>]
   [-dst_endpoints <handle>]
   [-streamblock_handle <handle>]
   [-traffic_pattern {pair|mesh|backbone}]
   [-endpoint_map {one_to_one|one_to_many}]
   [-bidirectional {0|1}]
   [-enable_stream_only_gen {0|1}]
   [-iteration_count {integer}]
   [-test_duration_mode {seconds|bursts}]
   [-test_duration <integer>]
   [-test_type {b2b|fl|latency|throughput}]
   [-frame_size_mode {custom|random|step|imix}]
   [-frame_size <integer>]
   [-frame_size_imix <string>]
   [-frame_size_start <integer>]
   [-frame_size_end <integer>]
   [-frame_size_step <integer>]
   [-frame_size_min <integer>]
   [-frame_size_max <integer>]
   [-load_type {custom|random|step}]
   [-load_unit {bits_per_second|frames_per_second|inter_burst_gap|
        kilobits_per_second|megabits_per_second|percent_line_rate }]
   [-load_list <list_value>]
   [-load_start <integer>]
   [-load_end <integer>]
   [-load_step <integer>]
   [-load_min <integer>]
   [-load_max <integer>]
   [-latency_type {LILO|LIFO|FIFO}]
   [-start_traffic_delay {0 - 3600}]
   [-stagger_start_delay {0-65}]
   [-enable_learning {0|1}]
   [-learning_mode {l2|l3}]
   [-learning_frequency {learn_once|learn_every_trial|
        learn_every_frame_size|learn_every_iteration}]
   [-learning_rate <integer>]
   [-l3_learning_retry_count {1-100}]
   [-l2_learning_repeat_count NUMERIC {1-100}]
   [-enable_cyclic_resolution {0|1}]
   [-enable_jitter_measure {0|1}]
   [-accept_frame_loss <integer>]
   [-resolution_burst <integer>]
   [-resolution_second <integer>
   [-search_mode {binary|step|combo}]
   [-rate_lower_limit <integer>]
   [-rate_upper_limit <integer>]
   [-initial_rate <integer>]
   [-rate_step <integer>]
   [-back_off <integer>]
   [-resolution <integer>]
   [-ignore_limit {0|1}]
   [-enable_seq_threshold {0|1}]
   [-enable_latency_threshold {0|1}]
   [-out_of_seq_threshold <integer>]
   [-max_latency_threshold <integer>]
   [-rfc5180_enable {true|false}]
   [-no_extension_header_enable {true|false}]
   [-custom_extension_header_enable {true|false}]
   [-custom_extension_header_list {hop_by_hop|destination_options|routing
                                   |fragment|authentication|esp}]
   [-chain_extension_header_enable {true|false}]
   [-ipv6_percentage_iteration_mode  {fixed|step|random|custom}]
   [-fixed_ipv6_percentage <1-100>]
   [-ipv6_percentage_list  <1-100>]
   [-random_ipv6_percentage_min  <1-100>]
   [-random_ipv6_percentage_max  <1-100>]
   [-ipv6_percentage_start  <1-100>]
   [-ipv6_percentage_step  <1-100>]
   [-ipv6_percentage_end   <1-100>]
   [-coexistence_streamblock_handle <streamblock_handle>]

Arguments

-mode

Specify the action to be performed on the test port. This argument is Mandatory . Possible values are create, modify, and delete. The values are described below:

create - Creates Back-to-back test, Frame Loss test,
         Latency test, or Throughput test.

modify - Modifies the configuration for the created test.

delete - Deletes the created test.
-src_port

Defines the source port to be used for stream creation. You can use this argument when -endpoint_creation is set to 1.

-dst_port

Defines the destination port to be used for stream creation. You can use this argument when -endpoint_creation is set to 1.

-handle

Specifies the test to be modified or deleted. This argument is Mandatory for modify mode and delete mode.

-endpoint_creation

Determines whether Spirent HLTAPI creates new endpoints on the ports specified by -src_port and -dst_port. The endpoints are used to create new streams in the test. Possible values are 0 and 1. When it is set to 1, Spirent HLTAPI creates new endpoints on the given source port and destination port. You must specify the -src_port argument and the -dst_port argument when the value is 1. When it is set to 0, you can create streams in two other ways. One is to specify -src_endpoints and -dst_endpoints, and then this command will create a bound stream for the test; the other is to provide a list of existing streams (-streamblock_handle), which the command will use for the test.

-device_count

Defines the number of devices you can create on each port. The default value is 1. This argument is only valid when the -endpoint_creation argument is set to 1.

-mac_addr

The starting MAC address to use when emulating devices. You can use this argument when -endpoint_creation is set to 1. The value should be in MAC address format.

-port_mac_step

Defines the step size to be used for incrementing MAC addresses across ports. You can use this argument when -endpoint_creation is set to 1.

-device_mac_step

Defines the step value to be used for incrementing MAC address across devices on one port. You can use this argument when -endpoint_creation is set to 1. The value should be in MAC address format.

-vlan

Specifies the VLAN ID for the first device. You can use this option when -endpoint_creation is set to 1.

-port_vlan_step

Defines the step value to be used for incrementing VLAN IDs across the ports. You can use this argument when -endpoint_creation is set to 1.

-device_vlan_step

Specifies the step value to be used for incrementing VLAN IDs across the devices on one port. You can use this argument when -endpoint_creation is set to 1.

-vlan_priority

Specifies the VLAN priority for created devices. Possible values range from 1 to 7. You can use this argument when -endpoint_creation is set to 1.

-ipv4_addr

Defines the first IPv4 address when emulating devices. You can use this argument when -endpoint_creation is set to 1. The value should be in IPv4 format.

-port_ipv4_addr_step

Defines the step value to be used for incrementing IPv4 addresses across the ports. You can use this argument when -endpoint_creation is set to 1. The value should be in the IPv4 format. For example, if you specify -port_ipv4_addr_step 0.1.0.0, -ipv4_addr 192.85.1.2, and -device_ipv4_addr_step 0.0.0.1. When there are two ports, the IPv4 addresses for emulating hosts are listed below:

First host block: 192.85.1.2, 192.85.1.3, 192.85.1.4...
Second host block: 192.86.1.2, 192.86.1.3, 192.86.1.4...

The number of hosts in each host block is specified by the -device_count argument.

-device_ipv4_addr_step

Defines the step value to be used for incrementing IPv4 addresses across the devices on one port. You can use this argument when -endpoint_creation is set to 1.

-ipv4_prefix_len

Specifies the IPv4 prefix length for created devices. You can use this argument when -endpoint_creation is set to 1.

-ipv4_gateway

Specifies the IPv4 gateway addresses for the first device. You can use this argument when -endpoint_creation is set to 1. The value should be in IPv4 format.

-port_ipv4_gateway_step

Specifies the step value to be used for incrementing IPv4 gateway addresses across the ports. You can use this argument when -endpoint_creation is set to 1. The value should be in IPv4 format.

-ipv6_addr

Specifies the first IPv6 address when creating devices. You can use this argument when -endpoint_creation is set to 1. The value should be in IPv6 format.

-port_ipv6_addr_step

Specifies the step size to be used for incrementing IPv6 addresses across the ports. You can use this argument when -endpoint_creation is set to 1. The value should be in IPv6 format.

-device_ipv6_addr_step

Defines the step value to be used for incrementing IPv6 addresses across the devices on one port. You can use this argument when -endpoint_creation is set to 1. The value should be in IPv6 format.

-ipv6_prefix_len

Specifies the prefix length of the IPv6 addresses. You can use this argument when -endpoint_creation is set to 1. Possible values range from 0 to128.

-ipv6_gateway

Defines the starting IPv6 gateway address when emulating devices. You can use this argument when -endpoint_creation is set to 1. The value should be in IPv6 format.

-port_ipv6_gateway_step

Specifies the step size to be used for incrementing IPv6 gateway address across the port. You can use this argument when -endpoint_creation is set to 1. The value should be in IPv6 format.

-src_endpoints

Specifies the source endpoint used to create traffic. The trial will use the traffic binding to the source endpoint (-src_endpoints) and the destination endpoint (-dst_endpoints) to run. When you specify this argument, you must specify the -dst_endpoints option. You can use this argument when the -endpoint_creation option is set to 0. This value can be an endpoint or a list of endpoints.

-dst_endpoints

Specifies the destination endpoint used to create traffic. The trial will use the traffic binding to the source endpoint (-src_endpoints) and the destination endpoint (-dst_endpoints) to run. When you specify this argument, you must specify the -src_endpoints option. You can use this argument when the -endpoint_creation option is set to 0. This value can be an endpoint or a list of endpoints.

-streamblock_handle

Indicates the existing streams used for the test. The trial will use the provided streamblock to do the test. The value of this argument can be a stream or a list of streams. You can use this argument when the -endpoint_creation option is set to 0.

-traffic_pattern

Indicates the traffic pattern to be used for the test. Possible values are pair, mesh, and backbone. The patterns are described below:

pair - Traffic is transmitted between one or more port pairs.
      The ports to use is specified by the -src_endpoints
      option and the -dst_endpoints option.

mesh - Every port transmits traffic to every other port and
      receives traffic from all other ports simultaneously.
      -src_endpoints and -dst_endpoints are the endpoints to be
      included in the fully meshed network.

backbone - Traffic is transmitted in a partially meshed pattern,
       either unidirectional or bidirectional. -src_endpoints and
       -dst_endpoints are the endpoints to be included in
       the backbone network.
-endpoint_map

Specifies one of the following traffic mapping methods to be used within each host block. Possible values are one_to_one and one_to_many. The methods are described below:

one_to_one - Every endpoint within the source endpoint
    block transmits traffic to the corresponding destination
    endpoint within the destination endpoint block.

one_to_many - Every endpoint within the source endpoint
    block transmits traffic to every destination endpoint
    within the destination endpoint block.
-bidirectional

Determines whether the traffic is unidirectional or bidirectional. Possible values are 0 (unidirectional) and 1 (bidirectional).

-enable_stream_only_gen

Whether to use streams to simulate the traffic between source and destination endpoints.

Possible Values are:

Value       Description
  1         Use streams for flow.
  0         Do not use streams for flow.

Default: 0

-iteration_count

Specifies the number of times the test repeats with its initial configuration. Each trial is based on the same parameter values. Within a trial, certain parameter values vary with each iteration, according to the test methodology and setup. At the start of the next trial, these parameters revert to their initial values. The default value is 1.

-test_duration_mode

Specifies the duration mode for each transmitted stream. This option determines whether the test duration is measured in seconds or by the number of frames. The default is seconds. Possible values are described below:

seconds - Each trial lasts for the number of seconds
         specified by the -test_duration argument.

bursts - Each trial lasts for the number of bursts specified
         by the -test_duration argument.
-test_duration

Indicates the transmission length in number of frames, when you specify -test_duration_mode bursts, or indicates the transmission time in seconds, if you specify -test_duration_mode seconds. The default value is 60 when you specify -test_duration_mode seconds and 1000 when you specify -test_duration_mode bursts.

-test_type

Indicates the type of test to be done. Possible values are:

b2b - Indicates the test is a back-to-back test. This test
      characterizes the ability of the DUT to process
      back-to-back frames. This test simulates popular network
      activity, such as requests for large amounts of data
      over an Ethernet network, that may use a relatively
      small Maximum Transmission Unit (MTU) size and
      that can result in many fragments being transmitted.

fl - Indicates the test is a frame loss test. This test
     determines the percentage of frames that should have
     been forwarded by a network device under steady
     state (constant) load that were not forwarded due to
     lack of resources.

latency - Indicates the test is a latency test. This
     test determines the minimum, average, maximum transmission
     delay through the DUT.

throughput - Indicates the test is a throughput test. This
     test determines the maximum rate at which  of the
     offered frames are dropped by the DUT.

The default value is b2b.

-frame_size_mode

Specifies how frame sizes are set and varied through successive test trials. Possible values are custom, random, step, and imix. The default value is custom. The modes are described below:

custom - Specifies a list of frame sizes specified by the
       -frame_size argument.

random - Generates random frame sizes within the
       range between the minimum size (-frame_size_min)
       and the maximum size (-frame_size_max).

step - Increases the frame size for each trial from that of
       the previous trial. You should use -frame_size_start,
       -frame_size_end, and -frame_size_step together to generate
       the frame size list for the test when the -frame_size_mode
       is set to step.

imix - Specifies a list of frame sizes specified by the
      -frame_size_imix argument.

Note

The frame size includes the Cyclic Redundancy Check (CRC).

-frame_size

Defines the frame size (in bytes) list for the test when you specify -frame_size_mode custom.

-frame_size_imix

Defines a list of Internet Mix (iMIX) frame size distribution profiles when you specify -frame_size_mode imix. These are preset distribution profiles in Spirent TestCenter:

Name          Description

Default     A simple mix of the three most common frame sizes
            found on the Internet

Spirent     A simple mix of the four most common frame sizes
            found on the Internet

4-Point     The default distribution supplemented by a random
            set of frame sizes

TCPv4       A mix of the most common TCPv4 frame sizes found on
            the Internet

IPSEC       A mix of frame sizes that approximates IPsec traffic

jmix_upstream   A mix of frame sizes that approximate JMIX
                upstream traffic

jmix_downstream  A mix of frame sizes that approximate JMIX
                 downstream traffic

You can use these preset names directly, or use profile names returned by function sth::imix_config when creating custom distribution profiles.

-frame_size_start

Indicates the frame size (in bytes) for the first test trial. The default value is 128. You can specify this argument when -frame_size_mode is set to step.

-frame_size_end

Specifies the maximum frame size (in bytes) for the test. The default value is 256. You can specify this argument when -frame_size_mode is set to step.

-frame_size_step

Specifies the frame size (in bytes) increment. The default value is 128. You can specify this argument when -frame_size_mode is set to step.

-frame_size_min

Indicates the minimum frame size (in bytes) when you use random mode for -frame_size_mode. The default is 128.

-frame_size_max

Indicates the maximum frame size (in bytes) when you use random mode for -frame_size_mode. The default is 256.

-load_type

Specifies the way of varying the load size during the test. Possible values are custom, random, and step. The default value is custom. The types are described below:

custom - The load sizes to use for the test is a list of the load
        sizes that are specified by the -load_list argument.

random - The load sizes to use for the test is the random sizes
         between the minimum size specified by the -load_min
         argument and the maximum size specified by the -load_max
         argument.

step - The load sizes increase by the step value (-load_step) with
       each test iteration, beginning with the start value
       (-load_start) and increasing to the end value (-load_end).
-load_unit

Specifies the load unit to use. Possible values are bits_per_second, frames_per_second, inter_burst_gap, kilobits_per_second, megabits_per_second, and percent_line_rate. The default value is percent_line_rate. The units are described below:

bits_per_second - Number of bits per second.
frames_per_second - Number of frames per second.
inter_burst_gap - Interval between two frames.
kilobits_per_second - Number of kilobits per second.
megabits_per_second - Number of megabits per second.
percent_line_rate - Percentage of the line rate.

Note

This option is not allowed in the throughput test.

-load_list

Defines the list of load sizes. You can specify this option when -load_type is set to custom.

-load_start

Indicates the load size for the first trial. The default is 10. You can use this argument when you specify -load_type step. You should use -load_start, -load_end, and -load_step together to generate the load value list when you specify -load_type step.

-load_end

Specifies the maximum load value for a trial. The default is 50. You can specify this argument when you specify -load_type step. Please refer to -load_type for more information.

-load_step

Indicates the difference between two load sizes. The default is 10. You can specify this argument when you specify -load_type step. Please refer to -load_type for more information.

-load_min

Specifies the minimum load value for a trial. You can use this argument when you specify -load_type random. Please refer to -load_type for more information. The default is 10.

-load_max

Specifies the maximum load value for a trial. You can use this argument when you specify -load_type random. Please refer to -load_type for more information. The default is 50.

-latency_type

Specifies the latency calculation methods. Possible values are:

LILO - Last-In Last-Out latency. Calculates the latency as the
       time interval from when the end of the frame is
       transmitted from the source test port to when the
       end of the frame is received at the destination test port.

LIFO - Last-In First-Out latency. Calculates the latency as
       the time interval from when the last bit of the input
       frame reaches the test destination port to when the
       first bit of the output frame reaches the test destination
       port.

FIFO - First-In First-Out latency. Calculates the latency
       as the time interval from when the first bit
       of the input frame reaches the test destination
       port to when the first bit of the output frame
       reaches at the test destination port.

The default is LILO.

-start_traffic_delay

Specifies the delay (in seconds) before test traffic is transmitted. This delay occurs after the learning period, when test frames are sent to determine whether the DUT/SUT correctly forwards frames to their destination. Possible values range from 0 to 3600. The default value is 2.

-stagger_start_delay

Specifies the delay, measured in microseconds, between each transmission. Spirent HLTAPI multiplies the value by 64. For example, if you enter 5, the staggered start is 320 microseconds between each port starting traffic. A non-zero value causes the test ports to transmit test traffic in sequence. A zero value causes the test ports to send traffic all at once. Possible values range from 0 to 65. The default is 0.

-enable_learning

Determines whether enables learning mode or not. Possible values are 0 and 1. When it is set to 1, the options related to learning are valid. The default is 1.

-learning_mode

Defines Layer 2 learning mode or Layer 3 learning mode. Possible values are l2 and l3. The default value is l3.

-learning_frequency

Specifies the frequency for sending learning frames. Possible values are:

learn_once - Sends learning frames once before the test starts.

learn_every_trial - Sends learning frames before each trial begins.

learn_every_frame_size - Sends learning frames upon each
                    iteration in frame size.

learn_every_iteration - Sends learning frames before each
                    iteration begins.

The default value is learn_once.

-learning_rate

Specifies the rate, measured in frames per second, at which learning frames are sent to the SUT. You must specify -learning_mode to l2.

-l3_learning_retry_count

Specifies the number of Layer 3 learning retries if transmission, learning verification, or link errors occur. Possible values range from 1-100. The default is 5. You can specify this argument when you specify -learning_mode l3.

-l2_learning_repeat_count

Specifies the number of Layer 2 learning retries if transmission, learning verification, or link errors occur. Possible values range from 1-100. The default is 5. You can specify this argument when you specify -learning_mode l2.

-enable_cyclic_resolution

Enables or disables the Layer 3 cyclic address resolution. Possible values are 0 (disable) and 1 (enable). Spirent TestCenter sends as many Address Resolution Protocol (ARP) /Neighbor Discovery (ND) requests as the number of source IP addresses. The intended use for this option is to seed the DUT’s ARP cache with the source IP and MAC addresses. If this option is disabled, only one ARP/ND request is sent. The default is 1. You can specify this argument when -learning_mode is set to l3.

-enable_jitter_measure

Determines whether to run the test in Jitter mode or not. Possible values are 0 and 1. When it is set to 1, Spirent HLTAPI will measure the Jitter data. The default is 0.

-accept_frame_loss

Indicates the maximum percentage of frames that may be lost during a trial without causing the trial to fail. Frame loss is the aggregate loss from all traffic flows, averaged across all ports included in the test. Possible values range from 0.0-100.0. The default is 0.0. You can use this argument when you specify -test_type b2b or -test_type throughput.

-resolution_burst

Specifies the smallest possible adjustment, measured in frames, for the traffic load from iteration to iteration. If the required adjustment to the current load for the next iteration is less than the resolution, the test stops. This parameter applies only if -test_duration is set to bursts and -test_type is set to b2b. The default value is 100.

-resolution_second

Specifies the smallest possible adjustment, measured in seconds, for the traffic load from iteration to iteration. If the required adjustment to the current load for the next iteration is less than the resolution, the test stops. This parameter applies only if -test_duration is set to seconds and -test_type is set to b2b. The default value is 60.

-search_mode

Specifies the mode used to vary the load. Possible values are binary, step, and combo. The default value is binary. You can specify this argument when -test_type is set to throughput. The modes are described below:

binary - The test searches for the throughput value using a
        binary search algorithm.

step -  The test load increases with each iteration by the
        percentage specified by the -rate_step option.

combo - The test begins with step mode and then switches
    to binary mode when an iteration fails.
-rate_lower_limit

Specifies the lower limit load rate for each port when using the binary search. This attribute will be ignored if -search_mode is set to step. The default value is 1. You can specify this argument when -test_type is set to throughput and -search_mode is set to binary.

-rate_upper_limit

Specifies the maximum load rate for each port. The default value is 100. You can specify this argument when -test_type is set to throughput.

-initial_rate

Indicates the starting load rate for each port. The default is 10. You can specify this argument when -test_type is set to throughput.

-rate_step

Specifies the amount that the load increases from iteration to iteration. This attribute will be ignored if the -search_mode option is set to binary. The default value is 10. You can specify this argument when -test_type is set to throughput and -search_mode is set to step.

-back_off

Specifies the rate at which the load decreases after the DUT fails at the current load. This option is applicable when -search_mode is binary or combo and -test_type is set to throughput. The default value is 50.

-resolution

Defines the finest adjustment possible in load from iteration to iteration. If the required adjustment to the current load for the next iteration is less than the value, the search stops. This option is applicable when -search_mode is binary or combo. The default is 1.

-ignore_limit

Specifies whether the search stops at the value specified by -rate_lower_limit or -rate_upper_limit, or it continues beyond those limits if an acceptable load has not been found yet. Possible values are 0 and 1. The default is 0. You can specify this option when -test_type is set to throughput and -search_mode is set to binary or combo.

-enable_seq_threshold

Spirent Extension (for Spirent HLTAPI only).

Enables/disables the use of out-of-sequence threshold, which, if exceeded, causes the test iteration to fail. Possible values are 0 (disable) and 1 (enable). The default value is 0. You can specify this option when -test_type is set to throughput.

-enable_latency_threshold

Spirent Extension (for Spirent HLTAPI only).

Enables/disables the use of maximum latency. Possible values are 0 (disable) and 1 (enable). The default value is 0. You can specify this option when-test_type is set to throughput.

-out_of_seq_threshold

Specifies the number of out-of-order frames on each receive port that, if exceeded, causes the test iteration to fail. The default is 0. You can specify this option when -test_type is set to throughput and -enable_latency_threshold is set to 1.

-max_latency_threshold

Specifies the maximum latency (in microseconds) of all the average latencies determined on each receive port in the test. If the threshold is reached, then the test trial fails. The default value is 30. You can specify this option when -test_type is set to throughput and -enable_latency_threshold is set to 1.

-rfc5180_enable

Spirent Extension (for Spirent HLTAPI only).

Enables or disables RFC 5180 IPv6 benchmarking test options. Possible values are true (enable) and false (disable). The default value is false.

-no_extension_header_enable

Spirent Extension (for Spirent HLTAPI only).

When enabled, an iteration with no IPv6 extension header will be configured. This argument is available when -rfc5180_enable is set to true. Possible values are true (enable) and false (disable). The default value is true.

-custom_extension_header_enable

Spirent Extension (for Spirent HLTAPI only).

When enabled, a custom list of single IPv6 extension headers will be configured. This argument is available when -rfc5180_enable is set to true. Possible values are true (enable) and false (disable). The default value is false.

-custom_extension_header_list

Spirent Extension (for Spirent HLTAPI only).

Specifies a list of custom IPv6 extension headers to iterate. This argument is available when -custom_extension_header_enable is set to true. Possible values are:

hop_by_hop            Hop by Hop header
destination_options   Destination options header
routing               Routing header
fragment              Fragment header
authentication        Authentication header
esp                  Encapsulating Security Payload (ESP) header
-chain_extension_header_enable

Spirent Extension (for Spirent HLTAPI only).

When enabled, an iteration with an RFC recommended chain of 3-extension headers will be configured. This chain consists of:

  1. Routing header
  2. Destination options header
  3. Fragment header

Possible values are true (enable) and false (disable). The default value is false. This argument is available when -rfc5180_enable is set to true.

-ipv6_percentage_iteration_mode

Spirent Extension (for Spirent HLTAPI only).

Specifies how the percentage of IPv6 frames is set and varied through successive test trials. This argument is available when -rfc5180_enable is set to true. Possible values are:

fixed           Generates IPv6 frames at a fixed rate based
                on the specified percentage

random          Generates IPv6 frames at random rates within the
                specified percentage range

step            Increases the percentage of IPv6 frames for each
                trial from that of the previous trial

custom          Specifies a list of frame rates as a percentage
                of bandwidth

The default value is fixed.

-fixed_ipv6_percentage

Spirent Extension (for Spirent HLTAPI only).

Specifies a fixed percentage for IPv6 frames. This argument is available when -ipv6_percentage_iteration_mode is set to fixed. Possible values range from 0 to 100. The default value is 100.

-ipv6_percentage_list

Spirent Extension (for Spirent HLTAPI only).

Specifies a list of frame rates as a percentage of bandwidth. This argument is available when -ipv6_percentage_iteration_mode is set to custom. Possible values range from 0 to 100. The default value is 0.

-random_ipv6_percentage_min

Spirent Extension (for Spirent HLTAPI only).

Specifies the lower bound for the IPv6 traffic percentage. This argument is available when -ipv6_percentage_iteration_mode is set to random. Possible values range from 0 to 100. The default value is 1.

-random_ipv6_percentage_max

Spirent Extension (for Spirent HLTAPI only).

Specifies the upper bound for the IPv6 traffic percentage. This argument is available when -ipv6_percentage_iteration_mode is set to random. Possible values range from 0 to 100. The default value is 100.

-ipv6_percentage_start

Spirent Extension (for Spirent HLTAPI only).

Specifies the starting IPv6 traffic percentage. This argument is available when -ipv6_percentage_iteration_mode is set to step. Possible values range from 0 to 100. The default value is 10.

-ipv6_percentage_step

Spirent Extension (for Spirent HLTAPI only).

Specifies the step value by which to generate subsequent percentages for IPv6 frames. This argument is available when -ipv6_percentage_iteration_mode is set to step. Possible values range from 0 to 100. The default value is 10.

-ipv6_percentage_end

Spirent Extension (for Spirent HLTAPI only).

Specifies the ending point where the IPv6 traffic percentage stops incrementing. This argument is available when -ipv6_percentage_iteration_mode is set to step. Possible values range from 0 to 100. The default value is 100.

-coexistence_streamblock_handle

Spirent Extension (for Spirent HLTAPI only).

Specifies the coexistence streamblock handle for RFC 2544 test configurations. This argument is available when -rfc5180_enable is set to true.

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

handle    Identifies the created test instance.
status    Success (1) or failure (0) of the operation.
log       An error message (if the operation failed).

Description

The sth::test_rfc2544_config function creates, modifies or deletes an RFC 2544 test that can be a back-to-back test, a frame loss test, a latency test, or a throughput test. Use the -mode argument to specify the action to perform. (See the -mode argument description for information about the actions.)

Once the RFC 2544 test has been configured, a handle is created, which can be used to modify the created test. (See the -mode argument description for more information).

You must specify the -mode (create, modify, or delete) argument.

You can use one of the following methods to create a stream used in the created test:

  • You can enable the -endpoint_creation parameter that indicates you will use new endpoints to create streams for the test. Then you must use the -src_port option and the -dst_port option to specify the source port handle and the destination port handle on which to emulate new streams.
  • You can specify -src_endpoints and -dst_endpoints to create a bound stream for the test.
  • You can provide a list of existing streams by specifying -streamblock_handle for the test.

For more information about the protocol, see RFC 2544.

Examples

#### HLTAPI for Tcl ####

The following example creates a latency test:

sth::test_rfc2544_config -streamblock_handle $streamHnd \
                   -mode create \
                   -test_type latency \
                   -traffic_pattern pair\
                   -endpoint_creation 0\
                   -bidirectional 0 \
                   -iteration_count 1 \
                   -latency_type FIFO \
                   -start_traffic_delay 1 \
                   -stagger_start_delay 1 \
                   -delay_after_transmission 10 \
                   -frame_size_mode custom \
                   -frame_size {1024} \
                   -test_duration_mode seconds \
                   -test_duration 30 \
                   -load_unit percent_line_rate \
                   -load_type step \
                   -load_start 20 \
                   -load_step  10 \
                   -load_end  40]

The following example creates a throughput test:

 set rfc_cfg0 [sth::test_rfc2544_config\
        -mode                            create\
        -test_type                      throughput \
        -streamblock_handle            $streamblock_handle \
        -endpoint_creation             0 \
        -frame_size_mode                imix \
        -start_traffic_delay            2 \
        -resolution                     1 \
        -learning_mode                  l3 \
        -rate_upper_limit               100 \
        -enable_latency_threshold       0 \
        -enable_detailresults           1 \
        -rate_step                      10 \
        -stagger_start_delay            0 \
        -learning_frequency             learn_once \
        -enable_jitter_measure          0 \
        -delay_after_transmission       15 \
        -ignore_limit                   0 \
        -enable_cyclic_resolution       1 \
        -test_duration_mode             seconds \
        -back_off                       50 \
        -iteration_count                2 \
        -rate_lower_limit               1 \
        -accept_frame_loss              0 \
        -test_duration                  10 \
        -enable_learning                0 \
        -latency_type                   LILO \
        -search_mode                    step \
        -enable_seq_threshold           0 \
        -frame_size_imix                jmix_upstream jmix_downstream\
        -l3_learning_retry_count        5 \
        -initial_rate                   80 \
]

Sample output for examples shown above:

{status 1} {handle rfc2544throughputconfig2}

The following example modifies a created test:

sth::test_rfc2544_config -mode modify \
                   -handle $handle \
                   -test_type b2b \
                   -traffic_pattern pair\
                   -endpoint_creation 0\
                    -bidirectional 1 \
                   -iteration_count 3 \
                   -start_traffic_delay 2 \
                   -frame_size_mode custom \
                   -frame_size {1024 1518 256} \
                   -test_duration_mode seconds \
                   -test_duration 30 ]

Sample Output:

{status 1}

#### HLTAPI for Python ####

The following example creates a latency test:

rfc_cfg0 = sth.test_rfc2544_config (
             mode                = 'create',
             test_type           = 'latency',
             streamblock_handle  = streamblock_handle,
             endpoint_creation   = '0',
             frame_size_mode     = 'custom',
             start_traffic_delay = '2',
             learning_mode       = 'l3',
             frame_size          = '64',
             enable_detailresults= '1',
             load_unit           = 'percent_line_rate',
             stagger_start_delay = '0',
             learning_frequency  = 'learn_once',
             enable_jitter_measure= '0',
             delay_after_transmission= '5',
             load_step           = '10',
             enable_cyclic_resolution= '1',
             load_type           = 'step',
             test_duration_mode  = 'seconds',
             iteration_count     = '1',
             test_duration       = '10',
             load_end            = '10',
             enable_learning     = '1',
             latency_type        = 'LILO',
             l3_learning_retry_count= '5',
             load_start          = '10');

Sample Output:

{'status': '1', 'handle': 'rfc2544latencyconfig2'}

The following example creates a throughput test:

rfc_cfg0 = sth.test_rfc2544_config (
             mode                = 'create',
             test_type           = 'throughput',
             streamblock_handle  = streamblock_handle,
             endpoint_creation   = '0',
             frame_size_mode     = 'custom',
             start_traffic_delay = '2',
             resolution          = '1',
             learning_mode       = 'l3',
             rate_upper_limit    = '20',
             frame_size          = '64',
             enable_detailresults= '1',
             rate_step           = '10',
             stagger_start_delay = '0',
             max_latency_threshold= '30',
             learning_frequency  = 'learn_once',
             enable_jitter_measure= '0',
             delay_after_transmission= '5',
             ignore_limit        = '0',
             enable_cyclic_resolution= '1',
             test_duration_mode  = 'seconds',
             back_off            = '50',
             iteration_count     = '1',
             out_of_seq_threshold= '0',
             rate_lower_limit    = '1',
             accept_frame_loss   = '0',
             test_duration       = '60',
             enable_learning     = '1',
             latency_type        = 'LILO',
             search_mode         = 'step',
             l3_learning_retry_count= '5',
             initial_rate        = '10');

Sample Output:

{'status': '1', 'handle': 'rfc2544throughputconfig2'}

#### HLTAPI for Perl ####

The following example creates a throughput test:

my %rfc_cfg0 = sth::test_rfc2544_config (
                mode                => 'create',
                test_type           => 'throughput',
                streamblock_handle  => "$streamblock_handle",
                endpoint_creation   => '0',
                frame_size_mode     => 'custom',
                start_traffic_delay => '2',
                resolution          => '1',
                learning_mode       => 'l3',
                rate_upper_limit    => '20',
                frame_size          => '64',
                enable_detailresults=> '1',
                rate_step           => '10',
                stagger_start_delay => '0',
                max_latency_threshold=> '30',
                learning_frequency  => 'learn_once',
                enable_jitter_measure=> '0',
                delay_after_transmission=> '5',
                ignore_limit        => '0',
                enable_cyclic_resolution=> '1',
                test_duration_mode  => 'seconds',
                back_off            => '50',
                iteration_count     => '1',
                out_of_seq_threshold=> '0',
                rate_lower_limit    => '1',
                accept_frame_loss   => '0',
                test_duration       => '60',
                enable_learning     => '1',
                latency_type        => 'LILO',
                search_mode         => 'step',
                l3_learning_retry_count=> '5',
                initial_rate        => '10');

Sample Output:

$VAR1 = 'handle';
$VAR2 = 'rfc2544throughputconfig2';
$VAR3 = 'status';
$VAR4 = '1';

The following example creates a latency test:

my %rfc_cfg0 = sth::test_rfc2544_config (
               mode                => 'create',
               test_type           => 'latency',
               streamblock_handle  => "$streamblock_handle",
               endpoint_creation   => '0',
               frame_size_mode     => 'custom',
               start_traffic_delay => '2',
               learning_mode       => 'l3',
               frame_size          => '64',
               enable_detailresults=> '1',
               load_unit           => 'percent_line_rate',
               stagger_start_delay => '0',
               learning_frequency  => 'learn_once',
               enable_jitter_measure=> '0',
               delay_after_transmission=> '5',
               load_step           => '10',
               enable_cyclic_resolution=> '1',
               load_type           => 'step',
               test_duration_mode  => 'seconds',
               iteration_count     => '1',
               test_duration       => '10',
               load_end            => '10',
               enable_learning     => '1',
               latency_type        => 'LILO',
               l3_learning_retry_count=> '5',
               load_start          => '10');

Sample Output:

$VAR1 = 'handle';
$VAR2 = 'rfc2544latencyconfig2';
$VAR3 = 'status';
$VAR4 = '1';

End of Procedure Header

sth::test_rfc2544_control

Purpose

Controls the RFC 2544 tests.

Synopsis

Note

M indicates that the argument is Mandatory .

sth::test_rfc2544_control
    [-action {run | insert_breakpoint | remove_breakpoint | stop}  M]
    [-wait {0|1}]
    [-breakpoint {trial | framesize | load}]
    [-cleanup {0|1}]
    [-display_status {true|false}]
    [-display_status_interval <integer>]

Arguments

-action

Specifies the action to perform for the test. Possible values are run and stop. The modes are described below:

run                - Starts the test. You can start one test in each type.
insert_breakpoint  - Inserts a pause on selected commands. The Command
                     Sequencer pauses on commands that contain a breakpoint
                     before running them.
remove_breakpoint  - Removes a pause from selected commands.
stop               - Stops the test.
-wait

Determines whether this command will return only when the test is completed. Possible values are 0 and 1. The default is 1. When it is set to 1, the command will return only when the test is completed.

-breakpoint

Specifies the command name to pause the sequencer test. Possible values are:

trial      - Pauses the test at each trial iteration.
framesize  - Pauses the test at each framesize iteration.
load       - Pauses the test at each load size iteration.
-cleanup

Determines whether the current test instance should be deleted after the test is completed. Possible values are 0 and 1. The default value is 1. When it is set to 1, the current test instance will be deleted after the test is completed.

-display_status

Determines whether to get the test status in the specified time interval (display_status_interval). When it is set to true the test status will be displayed in the specified time interval.

-display_status_interval

Specifies the time interval in seconds to get the test status. The default value is 30 seconds.

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 Error message if command returns {status 0}

Description

The sth::test_rfc2544_control function controls the starting and stopping of the test.

Examples

#### HLTAPI for Tcl ####

The following example starts all current configured tests at the same time and does not do the cleanup action when the tests stop:

set ret [sth::test_rfc2544_control -action run -wait 1 -cleanup 0]

Sample output for the example shown above:

{status 1}

The following example explains the usage of insert_breakpoint and remove_breakpoint actions:

#Inserts breakpoint at the framesize command
set ret [sth::test_rfc2544_control -action insert_breakpoint -breakpoint framesize]
# Starts the test and pauses at the breakpoint
set ret [sth::test_rfc2544_control -action run]
# Resumes the test and pauses at the breakpoint after execution of first framesize (ex:64) iteration
set ret [sth::test_rfc2544_control -action run]
# Removes breakpoint
set ret [sth::test_rfc2544_control -action remove_breakpoint -breakpoint framesize]
# Resumes test and executes untill it completes
set ret [sth::test_rfc2544_control -action run]

Sample output for the example shown above:

{status 1}

#### HLTAPI for Python ####

The following example starts all current configured tests:

ctrl_ret1 = sth.test_rfc2544_control (
              action              = 'run',
              wait                = '1');

Sample Output:

{'status': '1'}

#### HLTAPI for Perl #### The following example starts all current configured tests:

my %ctrl_ret1 = sth::test_rfc2544_control (
              action              => 'run',
              wait                => '1');

Sample Output:

$VAR1 = 'status';
$VAR2 = '1';

The following example starts all current configured tests at the same time and display the test status every 60 seconds:

set rfc_control [sth::test_rfc2889_control \
                    -action run \
                    -wait 1 \
                    -display_status true \
                    -display_status_interval 60 ]

Sample output for the example shown above:

{status 1}

Sample displayed test status in the console log:

Sequencer Status: RUNNING ElapsedTime: 152174 Trial 1 of 1, Frame Size: 128, Load Size: 10

End of Procedure Header

sth::test_rfc2544_info

Purpose

Retrieves statistics for the configured test.

Synopsis

Note

M indicates that the argument is Mandatory .

sth::test_rfc2544_info
    [-test_type {b2b|fl|latency|throughput}  M]
    [-clear_result {0|1}]
    [-enable_load_detail  {0|1}]

Arguments

-test_type

Specifies the type of the test, whose information will be returned. This argument is Mandatory . Possible values are b2b, fl, latency, and throughput.

-clear_result

Determines whether the result should be cleared after the data is retrieved. Possible values are 0 and 1. When it is set to 1, the result will be cleared after the data is retrieved. The default is 0.

-enable_load_detail

Enables or disables returning the results of each load size for all frame sizes done in a test. Possible values are 0 (disable) and 1 (enable). The default 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 or $FAILURE log Error message if command returns {status 0}

statistics list    Specifies the list of RFC 2544 statistics

Back-to-back Statistics

Summary results:

rfc2544b2b.summary.total_iteration_count
     The number of all the iterations.

rfc2544b2b.summary.frame_size. <value>. burst_size
     Burst Size.

rfc2544b2b.summary.frame_size. <value>. burst_duration
     Burst duration.

rfc2544b2b.summary.frame_size. <value>. iload
     The intended load.

rfc2544b2b.summary.frame_size. <value>. avg_tx_frames
     The average number of sent frames.

rfc2544b2b.summary.frame_size. <value>. avg_rx_frames
     The average number of received frames.

rfc2544b2b.summary.frame_size. <value>. avg_frame_lost
     The average number of lost frames.

Detail results:

rfc2544b2b.detail.iteration. <count>.frame_size. <value>.iload
     The intended load.

rc2544b2b.detail.iteration. <count>.frame_size. <value>.oload
     The offer load.

rfc2544b2b.detail.iteration. <count>.frame_size. <value>. tx_frames
     The Number of sent frames.

rfc2544b2b.detail.iteration. <count>.frame_size. <value>. rx_frames
     The number of received frames.

rfc2544b2b.detail.iteration. <count>.frame_size. <value>. frame_lost
     The number of lost frames.

rfc2544b2b.detail.iteration. <count>.frame_size. <value>. burst_size
     The burst size.

rfc2544b2b.detail.iteration. <count>.frame_size. <value>. burst_duration
     The burst duration.

rfc2544b2b.detail.iteration. <count>.frame_size. <value>. min_latency
     The minimum latency (microseconds).

rfc2544b2b.detail.iteration. <count>.frame_size. <value>. max_latency
     The maximum latency (microseconds).

rfc2544b2b.detail.iteration. <count>.frame_size. <value>. avg_latency
     The average latency (microseconds).

Frame loss Statistics

Summary results:

rfc2544fl.summary.total_iteration_count
     The number of all the iterations.

rfc2544fl.summary.frame_size. <value>.load. <value>.
tx_frames
     The number of sent frames.

rfc2544fl.summary.frame_size. <value>.load. <value>.
rx_frames
     The number of received frames.

rfc2544fl.summary.frame_size. <value>.load. <value>.
frame_lost
     The number of lost frames.

rfc2544fl.summary.frame_size. <value>.load. <value>.
frame_loss
     The percentage ratio of lost frames to the total frames.

Detail results:

rfc2544fl.detail.iteration. <count>.frame_size. <value>.load.<value>.
tx_frames
     The number of sent frames.

rfc2544fl.detail.iteration. <count>.frame_size. <value>.load.<value>.
rx_frames
     The number of received frames.

rfc2544fl.detail.iteration. <count>.frame_size. <value>.load.<value>.
frame_lost
     The number of lost frames.

rfc2544fl.detail.iteration. <count>.frame_size. <value>.load.<value>.
frame_loss
     The percentage ratio of lost frames to the total frames.

Throughput Statistics

Summary results:

rfc2544throughput.summary.total_iteration_count
     The number of all the iterations done in a test.

rfc2544throughput.summary.frame_size. <value>.
oload
     The offer load.

rfc2544throughput.summary.frame_size. <value>.
iload
     The intended load.

rfc2544throughput.summary.frame_size. <value>.
throughput_percent
     Percentage.

rfc2544throughput.summary.frame_size. <value>.
throughput_fps
     Frames per second.

rfc2544throughput.summary.frame_size. <value>.
throughput_mbps
     Megabits per second.

Note

To access the average data value of all the iterations done in a test when the frame_size_mode is imix, use frame_size_value to retrieve

results, for example:

set key [keylget stats_string
rfc2544throughput.summary.frame_size.frame_size_value]
set thruput [keylget stats_string
rfc2544throughput.summary.frame_size.$key.throughput_mbps]

Detail results:

 rfc2544throughput.detail.iteration. <count>.frame_size.<value>.
 iload
      The intended load.

 rfc2544throughput.detail.iteration. <count>.frame_size.<value>.
 oload
      The offer load.

 rfc2544throughput.detail.iteration. <count>.frame_size.<value>.
 throughput_percent
      Percentage.

 rfc2544throughput.detail.iteration. <count>.frame_size.<value>.
 throughput_fps
      Frames per second.

 rfc2544throughput.detail.iteration. <count>.frame_size.<value>.
 throughput_mbps
      Megabits per second.

 rfc2544throughput.detail.iteration. <count>.frame_size.<value>.
 frame_loss
      The percentage ratio of lost frames to the total frames.

 rfc2544throughput.detail.iteration. <count>.frame_size. <value>.
 max_latency_exceed
      The maximum latency that, if exceeded, the test fails.

 rfc2544throughput.detail.iteration. <count>.frame_size.<value>.
 out_of_seq_exceed
      The maximum number of out-of-sequence packets that, if exceeded, the
      test fails.

rfc2544throughput.detail.iteration. <count>.frame_size. <value>.
avg_jitter
      Average jitter value calculated from all measured jitter values in
      microseconds.

rfc2544throughput.detail.iteration. <count>.frame_size. <value>.
min_jitter
      Smallest measured jitter value in the set of all measured jitter values
      in microseconds.

rfc2544throughput.detail.iteration. <count>.frame_size. <value>.
max_jitter
      Largest measured jitter value in the set of all measured jitter values
      in microseconds.

rfc2544throughput.detail.iteration. <count>.frame_size. <value>.
avg_latency
      Average latency value calculated from all measured latency values in
      microseconds.

rfc2544throughput.detail.iteration. <count>.frame_size. <value>.
min_latency
      Smallest measured latency value in the set of all measured latency values
      in microseconds.

rfc2544throughput.detail.iteration. <count>.frame_size. <value>.
max_latency
      Largest measured latency value in the set of all measured latency values
      in microseconds.

Latency Statistics

Summary results:

rfc2544latency.summary.total_iteration_count
     The number of all the iteration in a test.

rfc2544latency.summary.frame_size. <value>.load. <value>. latency_min
     The minimum latency (microseconds).

rfc2544latency.summary.frame_size. <value>.load. <value>. latency_avg
     The average latency (microseconds).

rfc2544latency.summary.frame_size. <value>.load. <value>. latency_max
     The maximum latency (microseconds).

Detail results:

rfc2544latency.detail.iteration. <count>.frame_size. <value>.load. <value>.
latency_min
     The minimum latency (microseconds).

rfc2544latency.detail.iteration. <count>.frame_size. <value>.load. <value>.
latency_avg
     The average latency (microseconds).

rfc2544latency.detail.iteration. <count>.frame_size. <value>.load. <value>.
latency_max
     The maximum latency (microseconds).

rfc2544latency.detail.iteration. <count>.frame_size. <value>.load. <value>.
jitter_min
     The minimum jitter value (microseconds).

rfc2544latency.detail.iteration. <count>.frame_size. <value>.load. <value>.
jitter_avg
     The average jitter value (microseconds).

rfc2544latency.detail.iteration. <count>.frame_size. <value>.load. <value>.
jitter_max
     The maximum jitter value (microseconds).

rfc2544latency.detail.iteration. <count>.frame_size. <value>.load. <value>.
tx_frames
     The number if frames that have been sent.

rfc2544latency.detail.iteration. <count>.frame_size. <value>.load. <value>.
rx_frames
     The number of received frames.

Description

The sth::test_rfc2544_info function provides information about the configured tests.

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). Function return values are formatted as a keyed list (supported by the Tcl extension software - TclX). Use the TclX function keylget to retrieve data from the keyed list. (See Return Values for a description of each key.)

Examples

#### HLTAPI for Tcl ####

To return back-to-back test results:

puts "get the b2b test result"
set ret [sth::test_rfc2544_info -test_type b2b -clear_result 1]

Sample Output:

  {rfc2544b2b {{detail {{iteration {{1 {{frame_size {{1024
  {{iload 100.0} {oload {}} {tx_frames 1000} {rx_frames 1000}
  {frame_lost 0} {burst_size 1000} {burst_duration 0.008352}
  {min_latency 15.59} {max_latency 15.79} {avg_latency 15.73}}}
  {1518 {{iload 100.0} {oload {}} {tx_frames 250} {rx_frames 250}
  {frame_lost 0} {burst_size 250} {burst_duration 0.003076}
  {min_latency 195.61} {max_latency 3698.87} {avg_latency
  1666.72}}}}}}} {2 {{frame_size {{1024 {{iload 100.0}
  {oload {}} {tx_frames 1000} {rx_frames 1000} {frame_lost 0}
  {burst_size 1000} {burst_duration 0.008352} {min_latency 15.53}
  {max_latency 15.82} {avg_latency 15.76}}} {1518 {{iload 100.0}
  {oload {}} {tx_frames 250} {rx_frames 250} {frame_lost 0}
  {burst_size 250} {burst_duration 0.003076} {min_latency 200.58}
  {max_latency 3272.02} {avg_latency 1536.54}}}}}}} {3
  {{frame_size {{1024 {{iload 100.0} {oload {}} {tx_frames 1000}
  {rx_frames 1000} {frame_lost 0} {burst_size 1000}
  {burst_duration 0.008352} {min_latency 15.64} {max_latency 15.84}
  {avg_latency 15.78}}} {1518 {{iload 100.0} {oload {}} {tx_frames 250}
  {rx_frames 250} {frame_lost 0} {burst_size 250} {burst_duration 0.003076}
  {min_latency 182.0} {max_latency 3284.55} {avg_latency 1504.9}}}}}}}
  {4 {{frame_size {{1024 {{iload 100.0} {oload {}} {tx_frames 1000}
  {rx_frames 1000} {frame_lost 0} {burst_size 1000}
  {burst_duration 0.008352} {min_latency 15.62} {max_latency 15.92}
  {avg_latency 15.85}}} {1518 {{iload 100.0} {oload {}} {tx_frames 250}
  {rx_frames 250} {frame_lost 0} {burst_size 250} {burst_duration 0.003076}
  {min_latency 191.62} {max_latency 3249.63} {avg_latency 1521.22}}}}}}}
  {5 {{frame_size {{1024 {{iload 100.0} {oload {}} {tx_frames 1000}
  {rx_frames 1000} {frame_lost 0} {burst_size 1000}
  {burst_duration 0.008352} {min_latency 15.56} {max_latency 15.86}
  {avg_latency 15.8}}} {1518 {{iload 100.0} {oload {}} {tx_frames 250}
  {rx_frames 250} {frame_lost 0} {burst_size 250} {burst_duration 0.003076}
  {min_latency 179.68} {max_latency 3389.17} {avg_latency 1598.14}}}}}}}}}}}
  {summary {{total_iteration_count 5} {frame_size {{1024
  {{burst_size 1000} {burst_duration 0.008352} {iload 100.0}
  {avg_tx_frames 1000} {avg_rx_frames 1000} {avg_frame_lost 0}}} {1518
  {{burst_size 250} {burst_duration 0.003076} {iload 100.0}
  {avg_tx_frames 250} {avg_rx_frames 250} {avg_frame_lost 0}}}}}}}}} {status 1}


To return throughput results with details for each load size::

  set ret [sth::test_rfc2544_info\
          -test_type                                        throughput\
          -clear_result                                     1\
          -enable_load_detail                               1\
    ]

Sample Output:

{rfc2544throughput {{detail {{iteration {{1 {{frame_size {{frame_size_value 64}
{64 {{iload 100.0} {oload 0.661} {throughput_percent 0.661} {throughput_fps
196403.54} {throughput_mbps 20000.0} {frame_loss 0.0} {max_latency_exceed 0}
{out_of_seq_exceed 0} {min_latency 25.4} {avg_latency 2720.129} {max_latency
21321.22} {min_jitter 0.0} {avg_jitter 0.0} {max_jitter 0.0}}}}}}}}}}} {summary
{{total_iteration_count 1} {frame_size {{frame_size_value 64} {64 {{iload
100.0} {oload 0.661} {throughput_percent 0.661} {throughput_fps 196403.54}
{throughput_mbps 20000.0} {min_latency 25.4} {avg_latency 2720.129}
{max_latency 21321.22} {min_jitter 0.0} {avg_jitter 0.0} {max_jitter 0.0}}}}}}}
{load_detail {{iteration {{1 {{frame_size {{frame_size_value 64} {64
{{load_value {90.0 100.0}} {90 {{iload 90.0} {oload 0.653} {throughput_percent
0.653} {throughput_fps 194069.31} {throughput_mbps 18000.0} {frame_loss 0.0}
{max_latency_exceed 0} {out_of_seq_exceed 0} {min_latency 38.8} {avg_latency
2806.506} {max_latency 45860.56} {min_jitter 0.0} {avg_jitter 0.0} {max_jitter
0.0}}} {100 {{iload 100.0} {oload 0.661} {throughput_percent 0.661}
{throughput_fps 196403.54} {throughput_mbps 20000.0} {frame_loss 0.0}
{max_latency_exceed 0} {out_of_seq_exceed 0} {min_latency 25.4} {avg_latency
2720.129} {max_latency 21321.22} {min_jitter 0.0} {avg_jitter 0.0} {max_jitter
0.0}}}}}}}}}}}}}}} {status 1}

#### HLTAPI for Python ####

Sample Input:

results_ret1 = sth.test_rfc2544_info (
           test_type           = 'throughput',
           clear_result        = '1');

Sample Output:

{'status': '1', 'rfc2544throughput': {'detail': {'iteration': {'1'::
{'frame_size': {'64': {'oload': '10.0', 'out_of_seq_exceed': '0',
'throughput_mbps': '2000.0', 'frame_loss': '50.0', 'max_latency_exceed': '0',
'iload': '10.0', 'throughput_fps': '1488095.24', 'throughput_percent'::
'0.0'}}}}}, 'summary': {'total_iteration_count': '1',
'frame_size': {'64': {'throughput_mbps': '2000.0', 'iload': '10.0',
'throughput_fps': '1488095.24', 'throughput_percent': '0.0', 'oload': '10.0'}}}}}

#### HLTAPI for Perl ####

Sample Input::
my %results_ret1 = sth::test_rfc2544_info (
test_type => ‘throughput’, clear_result => ‘1’);
Sample Output::

$VAR1 = ‘status’; $VAR2 = ‘1’; $VAR3 = ‘rfc2544throughput’; $VAR4 = {

‘detail’ => {
‘iteration’ => {
‘1’ => {

};

End of Procedure Header

sth::rfc2544_asymmetric_config

Purpose

Spirent Extension (for Spirent HLTAPI only).

Creates, modifies, or deletes an asymmetric performance test, which can be a a frame loss test, a latency test, or a throughput test.

The Asymmetric Performance Test uses a series of simple screens to configure RFC 2544 benchmark tests. Vendors use a benchmark test to measure and report the performance characteristics of a system under test (SUT). A user can then evaluate network devices from different vendors by comparing the benchmark test results.

Synopsis

Note

M indicates that the argument is Mandatory .

sth::rfc2544_asymmetric_config
  [-mode {create|modify|delete}   M]
  [-handle <test_handle>]
  [-streamblock_handle <handle>]
  [-test_type { fl|latency|throughput}]
  [-upstream_port <port_handle>]
  [-downstream_port <port_handle>]
  [-upstream_endpoint <handle>]
  [-downstream_endpoint <handle>]
  [-endpoint_creation {0|1}]
  [-device_count <integer>]
  [-mac_addr <aa:bb:cc:dd:ee:ff>]
  [-port_mac_step <aa:bb:cc:dd:ee:ff>]
  [-device_mac_step <aa:bb:cc:dd:ee:ff>]
  [-traffic_pattern {pair|mesh|backbone}]
  [-vlan <integer>]
  [-port_vlan_step <integer>]
  [-device_vlan_step  <integer>]
  [-vlan_priority <1-7>]
  [-ipv4_addr <a.b.c.d>]
  [-port_ipv4_addr_step <a.b.c.d>]
  [-device_ipv4_addr_step <a.b.c.d>]
  [-ipv4_gateway <a.b.c.d>]
  [-port_ipv4_gateway_step <a.b.c.d>]
  [-ipv4_prefix_len <1-32>]
  [-ipv6_addr <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>]
  [-ipv6_prefix_len <1-128>]
  [-port_ipv6_addr_step <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>]
  [-device_ipv6_addr_step <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>]
  [-ipv6_gateway <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>]
  [-port_ipv6_gateway_step <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>]
  [-qos <string>]
  [-latency_type {LILO|LIFO|FIFO}]
  [-start_traffic_delay  <0-3600>]
  [-stagger_start_delay <0-65]>]
  [-delay_after_transmission <0-3600>]
  [-enable_learning {0|1}]
  [-learning_mode {l2|l3}]
  [-learning_frequency {learn_once learn_every_trial|learn_every_frame_size|
                         learn_every_iteration}]
  [-learning_rate <integer>]
  [-l2_learning_repeat_count <1-100>]
  [-l3_learning_retry_count <1-100>]
  [-l3_rate <1-148809>]
  [-l3_delay_before_learning <0-3600>]
  [-enable_cyclic_resolution {0|1}]
  [-iteration_count <integer>]
  [-test_duration_mode {seconds|bursts}]
  [-test_duration <integer>]
  [-frame_size_mode {custom|random|step|imix}]
  [-frame_size <integer>]
  [-frame_size_start <integer>]
  [-frame_size_end <integer>]
  [-frame_size_step <integer>]
  [-frame_size_min <integer>]
  [-frame_size_max <integer>]
  [-frame_size_imix <string>]
  [-load_unit {bits_per_second|frames_per_second|inter_burst_gap|
             kilobits_per_second|megabits_per_second|percent_line_rate}]
  [-load_type {custom|random|step}]
  [-load_list <integer>]
  [-load_start <integer>]
  [-load_end <integer>]
  [-load_step <integer>]
  [-load_min <integer>]
  [-load_max <integer>]
  [-enable_jitter_measure {0|1}]
  [-enable_detailed_results {0|1}]
  [-use_existing_streamblocks {true|false}]
  [-search_mode {binary|step|combo}]
  [-rate_lower_limit <integer>]
  [-rate_upper_limit <integer>]
  [-initial_rate <integer>]
  [-rate_step <integer>]
  [-resolution <integer>]
  [-ignore_limit {0|1}]
  [-out_of_seq_threshold <integer>]
  [-max_latency_threshold <integer>]
  [-enable_latency_threshold {0|1}]
  [-traffic_config_mode {auto|manual}]
  [-traffic_connectivity {full|pair}]
  [-traffic_devices {all|edge}]
  [-traffic_flow {bidirectional|downstream_to_upstream|upstream_to_downstream}]
  [-profile_config_mode {manual|per_port|per_side|per_group}]
  [-load_spec_mode {per_port|per_streamblock}]
  [-profile_rate_mode {per_test|per_frame_size}]
  [-downstream_traffic_ip_tos <integer>]
  [-downstream_traffic_vlan_priority <integer>]
  [-upstream_traffic_ip_tos <integer>]
  [-upstream_traffic_vlan_priority <integer>]
  [-ip_next_protocol_id <integer>]
  [-ttl <NUMERIC>]
  [-asymmetric_traffic_backoff_mode {all_rates|failed_rates}]
  [-back_off <integer>]
  [-latency_distribution_list <integer>]
  [-enable_traffic_verification {true|false}]
  [-traffic_verification_freq_mode {verify_every_trial|
                       verify_every_frame_size|verify_every_iteration}]
  [-traffic_verification_abort_on_fail {true|false}]
  [-traffic_verification_tx_frame_count <1-32767>]
  [-traffic_verification_tx_frame_rate <1-14880952>]

Arguments

-mode

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

create   Creates an asymmetric performance test

modify   Modifies the configuration for the created test

delete   Deletes the created test
-test_type

Specifies the test type. Possible values are:

throughput     The test determines the maximum forwarding rate at
               which the DUT/SUT can forward traffic without
               frame loss (or with a user-specified acceptable
               frame loss)

frameloss       The test determines the frame loss ratio of a
                DUT/SUT for a range of loads (transmission
                rates) and frame sizes

latency        The test measures the minimum, maximum, and average
               latency of the DUT/SUT for a range of frame
               sizes and loads
-handle

Specifies the test configuration handle returned by the function. This argument is required when mode is set to modify or delete.

-streamblock_handle

Indicates the existing streams used for the test. The trial will use the provided streamblocks to do the test. The value of this argument can be a stream or a list of streams.

-upstream_port

Specifies the upstream ports for port grouping

-downstream_port

Specifies the downstream ports for port grouping

-upstream_endpoint

Defines the source port to be used for stream creation. This argument is available when -endpoint_creation is set to 1.

-downstream_endpoint

Defines the destination port to be used for stream creation. This argument is available when -endpoint_creation is set to 1.

-endpoint_creation

Determines whether to create new endpoints on the ports specified by -upstream_endpoint and -downstream_endpoint. The endpoints are used to create new streams in the test. Possible values are 0 and 1. When it is set to 1, Spirent HLTAPI creates new endpoints on the specifed source port and destination port. You must specify -upstream_endpoint and -downstream_endpoint when the value is 1.

-device_count

Specifies the number of devices you can create on each port. The default value is 1. This argument is available when -endpoint_creation is set to 1.

-mac_addr

Specifies the starting MAC address to use when emulating devices. This argument is available when -endpoint_creation is set to 1.

-port_mac_step

Specifies the step value for incrementing MAC addresses across ports. This argument is available when -endpoint_creation is set to 1.

-device_mac_step

Specifies the step value for incrementing MAC addresses across devices on one port. This argument is available when -endpoint_creation is set to 1. The value must be in MAC format.

-traffic_pattern

Specifies the traffic pattern to be used for the test. Possible values are:

pair     Traffic is transmitted between one or more port pairs.
         The ports to use is specified by the -src_endpoints
         option and the -dst_endpoints option.

mesh     Every port transmits traffic to every other port and
         receives traffic from all other ports simultaneously.
         -src_endpoints and -dst_endpoints are the endpoints to
         be included in the fully meshed network.

backbone   Traffic is transmitted in a partially meshed pattern,
          either unidirectional or bidirectional.
          -src_endpoints and -dst_endpoints are the endpoints
          to be included in the backbone network.
-vlan

Specifies the VLAN ID for the first device. This argument is available when -endpoint_creation is set to 1.

-port_vlan_step

Specifies the step value to be used for incrementing VLAN IDs across ports. This argument is available when -endpoint_creation is set to 1.

-device_vlan_step

Specifies the step value for incrementing VLAN IDs across the devices on one port. This argument is available when -endpoint_creation is set to 1.

-vlan_priority

Specifies the VLAN priority for created devices. Possible values range from 1 to 7. This argument is available when -endpoint_creation is set to 1.

-ipv4_addr

Specifies the first IPv4 address when emulating devices. This argument is available when -endpoint_creation is set to 1.

-port_ipv4_addr_step

Specifies the step value to be used for incrementing IPv4 addresses across ports. This argument is available when -endpoint_creation is set to 1.

-device_ipv4_addr_step

Specifies the step value for incrementing IPv4 addresses across devices on one port. This argument is available when -endpoint_creation is set to 1.

-ipv4_gateway

Specifies the IPv4 gateway address for the first device. This argument is available when -endpoint_creation is set to 1. The value must be in IPv4 format.

-port_ipv4_gateway_step

Specifies the step value for incrementing IPv4 gateway addresses across ports. This argument is available when -endpoint_creation is set to 1.

-ipv4_prefix_len

Specifies the IPv4 prefix length for created devices. Possible values range from 0 to 32. This argument is available when -endpoint_creation is set to 1.

-ipv6_addr

Specifies the first IPv6 address when creating devices. This argument is available when -endpoint_creation is set to 1.

-ipv6_prefix_len

Specifies the IPv6 prefix length for created devices. This argument is available when -endpoint_creation is set to 1. Possible values range from 0 to 128.

-port_ipv6_addr_step

Specifies the step size for incrementing IPv6 addresses across ports. This argument is available when -endpoint_creation is set to 1. The value must be in IPv6 format.

-device_ipv6_addr_step

Specifies the step value for incrementing IPv6 addresses across devices on one port. This argument is available when -endpoint_creation is set to 1. The value must be in IPv6 format.

-ipv6_gateway

Defines the starting IPv6 gateway address when emulating devices. This argument is available when -endpoint_creation is set to 1.

-port_ipv6_gateway_step

Specifies the step size for incrementing IPv6 gateway addresses across the port. This argument is available when -endpoint_creation is set to 1.

-QoS

Specifies a list of Quality of Service (QoS) parameters. The default value is 0.

-latency_type

Specifies the latency calculation methods. Possible values are:

LILO   Last-In Last-Out latency. Calculates the latency as the
       time interval from when the end of the frame is
       transmitted from the source test port to when the
       end of the frame is received at the destination test port.

LIFO   Last-In First-Out latency. Calculates the latency as
       the time interval from when the last bit of the input
       frame reaches the test destination port to when the
       first bit of the output frame reaches the test destination
       port.

FIFO   First-In First-Out latency. Calculates the latency
       as the time interval from when the first bit
       of the input frame reaches the test destination
       port to when the first bit of the output frame
       reaches at the test destination port.

The default value is LILO.

-start_traffic_delay

Specifies the delay in seconds before test traffic is transmitted. This delay occurs after the learning period, when test frames are sent to determine whether the DUT/SUT correctly forwards frames to their destination. Possible values range from 0 to 3600. The default value is 2.

-stagger_start_delay

Specifies the delay, in microseconds, between each transmission. Possible values range from 0 to 65. The default value is 0.

-delay_after_transmission

Specifies the delay after transmission in seconds. Possible values range from 0 to 3600. The default value is 15.

-enable_learning

Enables or disables learning mode. Possible values are 0 (disable) and 1 (enable). The default value is 1.

-learning_mode

Specifies the learning mode to be used. Possible values are l2 (Layer 2 learning) and l3 (Layer 3 learning). The default value is l3.

-learning_frequency

Specifies the frequency for sending learning frames. Possible values are:

learn_once             Sends learning frames once before the
                       test starts

learn_every_trial      Sends learning frames before each trial
                       begins

learn_every_frame_size  Sends learning frames upon each iteration
                        in frame size

learn_every_iteration   Sends learning frames before each
                        iteration begins

The default value is learn_once.

-learning_rate

Specifies the learning rate, in frames per second, at which learning frames are sent to the SUT. This argument is available when -learning_mode is set to l2.

-l3_learning_retry_count

Specifies the number of Layer 3 learning retries if transmission, learning verification, or link errors occur. Possible values range from 1 to 100. The default value is 5. This argument is available when -learning_mode is set to l3.

-l2_learning_repeat_count

Specifies the number of Layer 2 learning retries if transmission, learning verification, or link errors occur. Possible values range from 1 to 100. The default value is 5. This argument is available when -learning_mode is set to l2.

-enable_cyclic_resolution

Enables or disables Layer 3 cyclic address resolution. Possible values are 0 (disable) and 1 (enable). The default value is 1. This argument is available when -learning_mode is set to l3.

-iteration_count

Specifies the number of times the test repeats with its initial configuration. Possible values range from 1 to 60. The default value is 1.

-test_duration_mode

Specifies the duration mode for each transmitted stream. Possible values are described below:

seconds    Each trial lasts for the number of seconds specified
           by the -test_duration argument

bursts    Each trial lasts for the number of bursts specified
           by the -test_duration argument

The default seconds.

-test_duration

Indicates the transmission length of the test. When you specify -test_duration_mode seconds, the unit is seconds, and the default value is 60. When you specify -test_duration_mode bursts, the unit is the number of frames, and the default value is 1000.

-frame_size_mode

Specifies how frame sizes are set and varied through successive test trials. Possible values are custom, random, step, and imix. The default value is custom. The modes are described below:

custom   Specifies a list of frame sizes specified by the
         -frame_size argument

random   Generates random frame sizes within the
         range between the minimum size (-frame_size_min)
         and the maximum size (-frame_size_max)

step   Increases the frame size for each trial from that of
       the previous trial. Use -frame_size_start,
       -frame_size_end, and -frame_size_step together to generate
       the frame size list for the test when the -frame_size_mode
       is set to step

imix   Specifies a list of frame sizes specified by the
       -frame_size_imix argument
-frame_size

Defines the frame size (in bytes) list for the test when you specify -frame_size_mode custom.

-frame_size_start

Specifies the frame size (in bytes) for the first test trial when -frame_size_mode is set to step. The default value is 128.

-frame_size_end

Specifies the maximum frame size (in bytes) for the test when -frame_size_mode is set to step. The default value is 256.

-frame_size_step

Specifies the frame size increment in bytes when -frame_size_mode is set to step. The default value is 128.

-frame_size_min

Specifies the minimum frame size in bytes when -frame_size_mode is set to random. The default value is 128.

-frame_size_max

Specifies the maximum frame size in bytes when -frame_size_mode is set to random. The default value is 256.

-frame_size_imix

Defines a list of Internet Mix (iMIX) frame size distribution profiles when -frame_size_mode is set to imix

-load_unit

Specifies the load unit to use. Possible values are bits_per_second, frames_per_second, inter_burst_gap, kilobits_per_second, megabits_per_second, and percent_line_rate. The default value is percent_line_rate.

-load_type

Specifies the method to vary the load size during the test. Possible values are custom, random, and step. The default value is custom. The types are described below: :

custom
A list of the load sizes that are specified by the -load_list argument
random
Random sizes between the minimum size specified by the -load_min argument and the maximum size specified by the -load_max argument
step
Load sizes increase by the step value (-load_step) with each test iteration, beginning with the start value (-load_start) and increasing to the end value (-load_end)
-load_list

Defines a list of load sizes when -load_type is set to custom

-load_start

Specifies the load size for the first test trial. The default value is 10. This argument is available when -load_type is set to step.

-load_end

Specifies the maximum load value for the test trial. The default value is 50. This argument is available when -load_type is set to step. Refer to -load_type for more information.

-load_step

Specifies the difference between two load sizes when -load_type is set to step. The default value is 10.

-load_min

Specifies the minimum load value for the test trial when -load_type is set to random. The default value is 10.

-load_max

Specifies the maximum load value for the test trial when -load_type is set to random. The default value is 50.

-enable_jitter_measure

Determines whether to run the test in Jitter mode or not. Possible values are 0 and 1. When it is set to 1, Spirent HLTAPI will measure the Jitter data. The default value is 0.

-enable_detailed_results

Enables or disables detailed results collection. Possible values are 0 (disable) and 1 (enable). The default value is 0.

-use_existing_streamblocks

When enabled, existing streamblocks will be used for the test. Possible values are true (enable) and false (disable). The default value is false.

-search_mode

Specifies the search mode. This argument is available when -test_type is set to throughput. The modes are described below:

binary   The test searches for the throughput value using a
         binary search algorithm

step     The test load increases with each iteration by the
         percentage specified by -rate_step

combo    The test begins with step mode and then switches
         to binary mode when an iteration fails

The default value is binary.

-rate_lower_limit

Specifies the lower limit of the load rate for binary search on each port. The default value is 1. This argument is available when -test_type is set to throughput and -search_mode is set to binary.

-rate_upper_limit

Specifies the maximum load rate for each port. The default value is 100. This argument is available when -test_type is set to throughput.

-initial_rate

Specifies the starting load rate for each port. The default value is 10. This argument is available when -test_type is set to throughput.

-rate_step

Specifies the amount that the load increases from iteration to iteration. The default value is 10. This argument is available when -test_type is set to throughput and

-search_mode is set to step.
-resolution

Defines the finest adjustment possible in a load from iteration to iteration. If the required adjustment to the current load for the next iteration is less than the value, the search stops. This argument is available when -search_mode is binary or combo. The default value is 1.

-ignore_limit

When enabled, Spirent HLTAPI will ignore the limit specified by -rate_lower_limit or -rate_upper_limit, and continues the search until an acceptable load is found. Possible values are 0 (disable) and 1 (enable). The default value is 0. This argument is available when -test_type is set to throughput and -search_mode is set to binary or combo.

-out_of_seq_threshold

Specifies the number of out-of-order frames on each receive port that, if exceeded, causes the test iteration to fail. The default is 0. This argument is available when -test_type is set to throughput and -enable_latency_threshold is set to 1.

-max_latency_threshold

Specifies the maximum latency (in microseconds) for all average latencies determined on each receive port in the test. If the threshold is reached, then the test trial fails. The default value is 30. This argument is available when -test_type is set to throughput and -enable_latency_threshold is set to 1.

-enable_latency_threshold

Enables or disables the use of maximum latency. Possible values are 0 (disable) and 1 (enable). The default value is 0. This argument is available when-test_type is set to throughput

-traffic_config_mode

Specifies the traffic configuration mode. Possible values are:

auto      Creates streamblocks automatically
manual    Creates streamblocks manually

The default value is auto.

-traffic_connectivity

Specifies the connectivity of traffic between devices/ports. Possible values are:

full     Traffic is sent from each host to all hosts on the
         opposite side

pair     Traffic is sent between pairs of hosts on opposite
         sides

The default value is full.

-traffic_devices

Specifies the devices to be included for the traffic flow. Possible values are:

ALL    All devices
EDGE   Only edge devices

The default value is EDGE.

-traffic_flow

Specifies the flow direction of traffic. Possible values are bidirectional, downstream_to_upstream, and upstream_to_downstream. The default value is bidirectional.

-profile_config_mode

Determines how the profiles are allocated for the streamblocks. Possible values are:

manual       Create streamblocks and edit the profiles
per_port     One profile per port is generated
per_side     One profile per side is generated
per_group    One profile per defined group is generated

The default value is per_port.

-load_spec_mode

Determines the scope for specifying and adjusting the traffic rate. Possible values are per_port and per_streamblock. The default value is per_port.

-profile_rate_mode

Specifies the profile load usage. Possible values are per_test and per_frame_size. The default value is per_test.

-downstream_traffic_ip_tos

Specifies the downstream IP ToS value as an integer. The default value is 0.

-downstream_traffic_vlan_priority

Specifies the downstream traffic VLAN priority as an integer. The default value is 0.

-upstream_traffic_ip_tos

Specifies the upstream IP ToS value as an integer. The default value is 0.

-upstream_traffic_vlan_priority

Specifies the upstream traffic VLAN priority as an integer. The default value is 0.

-ip_next_protocol_id

Specifies a list of IP Next Protocol IDs. The default value is 0.

-ttl

Specifies the TTL value used in the IP packet header. The default value is 10.

-asymmetric_traffic_backoff_mode

Determines how traffic is scaled down when loss is detected. Possible values are:

all_rates        When loss is detected, back off rates on
                 all streams

failed_rates     When loss is detected, back off rates on
                 streams experiencing loss

The default value is failed_rates.

-l3_rate

Specifies the Layer 3 rate (in frames per second) to send ARP requests. The default value is 1000.

-l3_delay_before_learning

Specifies the time (in seconds) to wait before learning starts in seconds. Possible values range from 0 to 3600. The default value is 2.

-enable_traffic_verification

When enabled, verification commands will be added to the test sequence. Possible values are true and false. The default value is false.

-traffic_verification_freq_mode

Specifies when to perform traffic verification during the test. Possible values are verify_every_trial, verify_every_frame_size, and verify_every_iteration. The default value is verify_every_iteration.

-traffic_verification_abort_on_fail

Specifies the test behavior when traffic verification fails. Possible values are true and false. When set to true, Spirent HLTAPI stops the test if a fail result is detected on any port or stream. The default value is true.

-traffic_verification_tx_frame_count

Specifies the number of frames to send from each port for traffic verification. Possible values range from 0 to 32767. The default value is 100.

-traffic_verification_tx_frame_rate

Specifies the traffic rate in frames per second to use for verification. Possible values range from 0 to 14880952. The default value is 100.

-back_off

Specifies the rate at which the load decreases after the DUT fails at the current load. This argument is applicable when -search_mode is binary or combo. The default value is 50.

-latency_distribution_list

Specifies a list of latency values (in microseconds)

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      Identifies the created test instance
status      Success (1) or failure (0) of the operation
log         An error message (if the operation failed)

Description

The sth::rfc2544_asymmetric_config function creates, modifies, or deletes an asymmetric performance test, which can be a frame loss test, a latency test, or a throughput test. Use the -mode argument to specify the action to perform. (See the -mode argument description for information about the actions.)

After the test has been configured, a handle is created, which can be used to modify the created test. (See the -mode argument description for more information).

Examples

The following example creates an asymmetric performance test:

sth::rfc2544_asymmetric_config -mode create \
            -test_type throughput \
            -traffic_config_mode AUTO \
            -endpoint_creation 0 \
            -upstream_port port2 \
            -downstream_port port1 \
            -frame_size_mode custom \
            -frame_size {64} \
            -iteration_count 1 \
            -ttl 14 \
            -downstream_traffic_ip_tos 17 \
            -load_spec_mode PER_STREAMBLOCK \
            -rate_lower_limit 20 \
            -rate_upper_limit 22 \
            -initial_rate 21 \
            -profile_config_mode PER_SIDE]

Sample Output:

{status 1} {handle rfc2544throughputconfig2}

End of Procedure Header

sth::rfc2544_asymmetric_control

Purpose

Spirent Extension (for Spirent HLTAPI only).

Starts or stops the specified asymmetric performance test

Synopsis

Note

M indicates that the argument is Mandatory .

sth::rfc2544_asymmetric_control
  [-action {run|stop}  M]
  [-wait {0|1}]
  [-cleanup {0|1}]

Arguments

-action

Specifies the action to perform for the test. Possible values are run and stop. The modes are described below:

run     Starts the test
stop    Stops the test
-wait

Determines whether this command will return only when the test is completed. Possible values are 0 and 1. The default value is 1. When it is set to 1, the command will return only when the test is completed.

-cleanup

Determines whether to delete the current test instance after the test is completed. Possible values are 0 and 1. The default value is 1. When it is set to 1, the current test instance will be deleted after the test is completed.

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 Error message if command returns {status 0}

Description

The sth::rfc2544_asymmetric_control function controls the starting and stopping of the test.

Examples

Sample Input:

set ret [sth::rfc2544_asymmetric_control -action run -wait 1 ]

Sample Output:

{status 1}

End of Procedure Header

sth::rfc2544_asymmetric_profile

Purpose

Spirent Extension (for Spirent HLTAPI only).

Creates, modifies, or deletes the test profile for a specified RFC 2544 asymmetric performance test

Synopsis

Note

M indicates that the argument is Mandatory .

sth::rfc2544_asymmetric_profile
   [-mode {create|modify|delete}  M]
   [-test_handle <test_handle>]
   [-profile_handle <profile_handle>]
   [-profile_name <string>]
   [-streamblock_handle <handle>]
   [-load_spec_mode {per_port|per_streamblock}]
   [-load_units {percent_line_rate|frames_per_second|megabits_per_second
                    |kilobits_per_second|bits_per_second}]
   [-profile_rate_mode {per_test|per_frame_size}]
   [-acceptable_frame_loss <0-100>]
   [-back_off <0.001-99.999>]
   [-enable_latency_threshold {0|1}]
   [-enable_seq_threshold {0|1}]
   [-ignore_limit {0|1}]
   [-max_latency_threshold <integer>]
   [-out_of_seq_threshold <integer>]
   [-initial_rate <integer>]
   [-custom_load_list <integer>]
   [-frame_length_distribution <handle>]
   [-frame_size <0-16383>]
   [-load_start <integer>]
   [-load_end <integer>]
   [-load_step <integer>]
   [-random_max_load <integer>]
   [-random_min_load <integer>]
   [-rate_lower_limit <integer>]
   [-rate_upper_limit <integer>]
   [-rate_step <integer>]
   [-resolution <integer>]
   [-search_mode {binary|step|combo}]

Arguments

-test_handle

Specifies the RFC 2544 asymmetric test handle returned by the sth::rfc2544_asymmetric_config function. This argument is required for -mode create.

-profile_handle

Specifies the profile handle created when profile_config_mode is set to MANUAL in the sth::rfc2544_asymmetric_config function. This argument is required for -mode modify and delete.

-mode

Specifies the action to perform. This argument is Mandatory . The modes are described below:

create     Creates a new test profile under the test handle
           specified by test_handle

modify     Modifies the test profile specified by
           -profile_handle

delete     Deletes the test profile specified by
           -profile_handle
-profile_name

Specifies the profile name. The default value is “”.

-streamblock_handle

Indicates the existing streams binding for the profile. The trial will use the provided streamblock to do the test. The value of this argument can be a stream, but cannot be a list of streams.

-load_spec_mode

Determines the scope for specifying and adjusting the traffic rate. Possible values are per_port and per_streamblock. The default value is per_port.

-load_units

Specifies the load unit to apply to all ports and streams in the test. Possible values are bits_per_second, frames_per_second, inter_burst_gap, kilobits_per_second, megabits_per_second, and percent_line_rate. The default value is percent_line_rate.

-profile_rate_mode

Specifies the profile load usage. Possible values are PER_TEST and PER_FRAME_SIZE. The default value is PER_TEST.

-acceptable_frame_loss

Specifies the maximum number of frames that can be lost during an iteration. Possible values range from 0 to 100. The default value is 0.

-back_off

Specifies the rate at which the load decreases after the DUT fails at the current load. This argument is available when -search_mode is binary or combo. The default value is 50.

-enable_latency_threshold

Enables or disables the use of maximum latency. Possible values are 0 (disable) and 1 (enable). The default value is 0.

-enable_seq_threshold

Enables or disables the use of out-of-sequence threshold, which, if exceeded, causes the test iteration to fail. Possible values are 0 (disable) and 1 (enable). The default value is 0.

-ignore_limit

Specifies whether the search stops at the value specified by -rate_lower_limit or -rate_upper_limit, or continues beyond those limits, if an acceptable load has not been found. Possible values are 0 and 1. The default is 0. You can specify this argument when -search_mode is set to binary or combo.

-max_latency_threshold

Specifies the maximum latency (in microseconds) of the average latencies determined on each receive port in the test. If the threshold is reached, the test trial fails. The default value is 30. This argument is available when -enable_latency_threshold is set to 1.

-out_of_seq_threshold

Specifies the number of out-of-order frames on each receive port which, if exceeded, causes the test iteration to fail. The default is 0. This argument is available when -enable_latency_threshold is set to 1.

-initial_rate

Indicates the starting load rate for each port. The default is 10.

-custom_load_list

Specifies a list of custom loads used in the test. This argument is available when -load_type is set to custom in the rfc2544_asymmetric_config function. The default value is 0.

-frame_length_distribution

Specifies the handle of the iMIX distribution when frame size type is iMIX. The default value is 0.

-frame_size

Specifies the frame size. Possible values range from 0 to 16383. The default value is 0.

-load_start

Specifies the load size for the first test trial. The default value is 10. This argument is available when -load_type is set to step in the rfc2544_asymmetric_config function.

-load_end

Specifies the maximum load value for the test trial. The default value is 100. This argument is available when -load_type is set to step in the rfc2544_asymmetric_config function. Refer to -load_type for more information.

-load_step

Specifies the difference between two load sizes. This argument is available when -load_type is set to step in the rfc2544_asymmetric_config function. The default value is 10.

-random_max_load

Specifies the maximum load at any random point during the test. This argument is available when -load_type is set to random in the rfc2544_asymmetric_config function. The default value is 50.

-random_min_load

Specifies the minimum load at any random point during the test. This argument is available when -load_type is set to random in the rfc2544_asymmetric_config function. The default value is 10.

-rate_lower_limit

Specifies the lower limit of the load rate for each port when using the binary search. The default value is 1. This argument is available when -search_mode is set to binary.

-rate_upper_limit

Specifies the maximum load rate for each port. The default value is 100.

-rate_step

Specifies the amount that the load increases from iteration to iteration. The default value is 10. This argument is available when -search_mode is step.

-resolution

Defines the finest adjustment possible in the load from iteration to iteration. If the required adjustment to the current load for the next iteration is less than the value, the search stops. This argument is available when -search_mode is binary or combo. The default value is 1.

-search_mode

Specifies the search mode. Possible values are binary, step, and combo. The default value is binary. The modes are described below:

binary     The test searches using a binary search algorithm

step       The test load increases with each iteration by the
           percentage specified by -rate_step

combo      The test begins with step mode and then switches
           to binary mode when an iteration fails

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      Identifies the created test instance
status      Success (1) or failure (0) of the operation
log         An error message (if the operation failed)

Examples

To create an asymmetric test profile:

set returnedString [sth::rfc2544_asymmetric_profile -mode create\
                 -test_handle rfc2544framelossconfig1\
                 -profile_name rfc_asymmetric123\
                 -load_units FRAMES_PER_SECOND\
                 ]

Sample Output:

{status 1} {handle rfc2544framelossprofile1}

To modify an asymmetric test profile:

set returnedString [sth::rfc2544_asymmetric_profile -mode modify
                  -profile_handle rfc2544framelossprofile1\
                  -profile_name rfc_asymmetric\
                  -load_units FRAMES_PER_SECOND\
  ]

Sample Output:

{status 1}

End of Procedure Header

sth::rfc2544_asymmetric_stats

Purpose

Retrieves statistics for the asymmetric performance test

Synopsis

Note

M indicates that the argument is Mandatory .

sth::rfc2544_asymmetric_stats
     [-test_type {fl|latency|throughput}  M]
     [-clear_result {0|1}]

Arguments

-test_type

Specifies the type of the test from which to retrieve information. This argument is Mandatory . Possible values are fl (frame loss), latency, and throughput.

-clear_result

Determines whether to clear results after the data is retrieved. Possible values are 0 and 1. When it is set to 1, results will be cleared after the data is retrieved. The default 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 or $FAILURE log Error message if command returns {status 0}

statistics list    Specifies a list of RFC 2544 asymmetric performance statistics

Frame Loss Results:

Per Load

Trialnum                   Number of the current trial
Framesize                  Frame size
IntendedLoad               Number of frames per second that the application attempts
                           to transmit to a DUT/SUT for forwarding to a specified
                           output interface or interfaces
Framesizetype              Frame size type
Framelengthdistribution    iMIX distribution
MinLatency                 Minimum latency measured in microseconds
AvgLatency                 Maximum latency measured in microseconds
MaxLatency                 Maximum latency measured in microseconds
MinJitter                  Minimum jitter measured in microseconds
AvgJitter                  Average jitter measured in microseconds
Txsigframecount            Total number of signature frames transmitted during a test
Rxsigframecount            Total number of signature frames received during a test
IterationNum               Trial number
OfferedLoad                Load (in percent or frames per second) offered by the DUT
RxFrameCount               Number of frames received
TxFrameCount               Number of frames transmitted
TxFrameRate                Intended frame rate (ILoad) for the test
TxBitRate                  Rate at which bits are transmitted
FrameLoss                  Number of frames lost
PercentLoss                Frame loss percentage
LoadIterationNum           Load iteration number
Result                     Iteration result indicating if the traffic at the
                           specified rate satisfied the pass condition for throughput
LoadResult                 Load Result

Per Stream Group

Duration                   Scalar value of duration
FrameSize                  Frame size
FrameSizeType              Frame size type
IterationNum               Trial number
LoadIterationNum           Load iteration number

Per Stream

LoadPassed                 Flag to indicate all the frames for the configured
                           load value were received successfully
LoadResult                 Load Result
Result                     Iteration result indicating if the traffic at the
                           specified rate satisfied the pass condition for throughput
RxFrameCount               Number of frames received
TxFrameCount               Number of frames transmitted
StreamBlockHnd             Source emulated device handle

Throughput Results:

 Per Frame Size

 Trialnum                   Number of the current trial
 Framesize                  Frame size
 Framesizetype              Frame size type
 Framelengthdistribution    iMIX distribution
 IntendedLoad               Number of frames per second that the
                            application attempts to transmit to a
                            DUT/SUT for forwarding to a specified
                            output interface or interfaces
 OfferedLoad                Load (in percent or frames per second) offered by the DUT
 ThroughputRate             Throughput rate
 ForwardingRate             Number of frames per second that a device can be
                            observed to successfully transmit to the correct destination
                            interface in response to a specified offered load
 MbpsLineRate               Offered load (OLoad) in megabits per second
 PercentLoss                Frame loss percentage
 MaxLatencyThresholdExceeded  Flag to indicate whether the maximum latency threshold has
                              been exceeded
 OutOfSeqThresholdExceeded  Flag to indicate whether the out of sequence frames
                            threshold has been exceeded
 MinLatency                 Minimum measured latency value in the set of all
                            measured latency values in microseconds
 AvgLatency                 Average latency value calculated from all measured
                            latency values in microseconds
 MaxLatency                 Maximum measured latency value in the set of all
                            measured latency values in microseconds
 MinJitter:                 Minimum measured jitter value in the set of all
                            measured jitter values in microseconds
 AvgJitter                  Average jitter value calculated from all measured
                            jitter values in microseconds
 MaxJitter                  Maximum measured jitter value in the set of all
                            measured jitter values in microseconds.
 RxFrameCount               Number of frames received
 TxFrameCount               Number of frames transmitted
 TxFrameRate                Intended frame rate (ILoad) for the test
 TxBitRate                  Rate at which bits are transmitted
 FrameLoss                  Number of frames lost
 BestLoadIterationNum       Best load iteration number
 Result                     Iteration result indicating if the traffic at the
                            specified rate satisfied the pass condition for throughput
 LoadResult                 Load Result

Per Stream Group

Duration                    Scalar value of duration
FrameLengthDistribution     iMIX distribution
FrameSize                   Frame size
FrameSizeType               Frame size type
IterationNum                Trial number been run

Per Stream

LoadPassed                  Flag to indicate all the frames for the configured
                            load value were received successfully
LoadResult                  Load result
Result                      Iteration result indicating if the traffic at the
                            specified rate satisfied the pass condition for throughput
RxFrameCount                Number of frames received
TxFrameCount                Number of frames transmitted
StreamBlockHnd              Streamblock handle

Per System

iMIXDistribution            iMIX Distribution configuration
PortGroup                   Port group value
PortLineRate                Iteration result indicating if the traffic at the
                            specified rate satisfied the pass condition for throughput
IntendedLoad                Number of frames per second that the application
                            attempts to transmit to a DUT/SUT for forwarding to
                            a specified output interface or interfaces
OfferedLoad                 Load (measured in percent of frames per second)) offered by the DUT
Throughput                  Measured throughput value for the test
TheoreticalMaxLineRate      Theoretical maximum line rates

Latency Results::

Per Load

TrialNum                    Number of the current trial
FrameSize                   Frame size
IntendedLoad                Number of frames per second that the application
                            attempts to transmit to a DUT/SUT for forwarding to
                            a specified output interface or interfaces
FrameSizeType               Frame size type
FrameLengthDistribution     iMIX distribution
MinLatency                  Minimum latency measured in microseconds
AvgLatency                  Average latency measured in microseconds
MaxLatency                  Maximum latency measured in microseconds
MinJitter                   Minimum jitter measured in microseconds
AvgJitter                   Average jitter measured in microseconds
MaxJitter                   Maximum jitter measured in microseconds
Txsigframecount             Total signature frames transmitted during a test
Rxsigframecount             Total signature frames received during a test
IterationNum                Trial number
OfferedLoad                 Load (in percent or frames per second) offered by the DUT
RxFrameCount                Number of frames received
TxFrameCount                Number of frames transmitted
TxFrameRate                 Intended frame rate (ILoad) for the test
TxBitRate                   Rate at which bits are transmitted
FrameLoss                   Number of frames lost
PercentLoss                 Frame loss percentage
LoadIterationNum            Load iteration number
Result                      Iteration result indicating if the traffic at the
                            specified rate satisfied the pass condition for throughput
LoadResult                  Load Result

Per Stream Group

Duration                    Scalar value of duration
FrameLengthDistribution     iMIX distribution
FrameSize                   Frame size
FrameSizeType               Frame size type
IterationNum                Trial number
LoadIterationNum            Load iteration number

Per Stream

AvgJitter                   Average jitter measured in microseconds
LoadPassed                  Flag to indicate all the frames for the configured
                            load value were received successfully
LoadResult                  Load Result
MaxJitter                   Maximum jitter measured in microseconds
MaxLatency                  Maximum latency measured in microseconds
MinJitter                   Minimum jitter measured in microseconds
MinLatency                  Minimum latency measured in microseconds
Result                      Iteration result indicating if the traffic at the
                            specified rate satisfied the pass condition for throughput
RxFrameCount                Number of frames received
TxFrameCount                Number of frames transmitted
StreamBlockHnd              Streamblock handles
TotalJitter                 Total jitter measured in microseconds
TotalLatency                Total latency measured in microseconds

Description

The sth::rfc2544_asymmetric_stats function provides information about the configured asymmetric performance tests.

Examples

Sample Input:

sth::rfc2544_asymmetric_stats -test_type fl -clear_result 1

Sample Output:

{FrameLossPerLoadResult {{1 {{trial_num 0} {iteration_num 1} {frame_size
128.0} {intended_load 30.0} {frame_size_type Fixed} {frame_length_distribution
{}} {min_latency 48.22} {avg_latency 9611.20028728139} {max_latency 58506.26}
{min_jitter 0.0} {avg_jitter 0.0} {max_jitter 0.0} {tx_sig_frame_count 674949}
{rx_sig_frame_count 674948} {offered_load 2.66379872} {rx_frame_count 674948}
{tx_frame_count 674949} {tx_frame_rate 22498.3} {tx_bit_rate 23038259.2}
{frame_loss 1} {percent_loss 0.00014815934240957465} {load_iteration 1}
{result Failed} {load_result Failed}}}}} {FrameLossStreamGroupResult {{1
{{duration 30.0} {frame_size 128} {frame_size_type Fixed} {iteration_num 1}
{load_iteration_num 1}}}}} {FrameLossStreamResult {{1 {{load_passed 0}
{loadresult Failed} {result Failed} {rx_frame_count 674948} {tx_frame_count
674949} {streamblock_hnd 3240}}}}} {status 1}

Sample Input:

sth::rfc2544_asymmetric_stats -test_type latency -clear_result 1

Sample Output:

{Rfc2544AsymmetricLatencyPerLoadResult {{1 {{trialNum 0} {iteration_num 1}
{frame_size 128.0} {intended_load 0.000592} {frame_size_type Fixed}
{frame_length_distribution {}} {min_latency 142.37} {avg_latency 252.69559}
{max_latency 14009.27} {min_jitter 0.32} {avg_jitter 67.55573} {max_jitter
13758.37} {tx_sig_frame_count 1000} {rx_sig_frame_count 1000} {offered_load
0.0} {rx_frame_count 1000} {tx_frame_count 1000} {tx_frame_rate 0.0}
{tx_bit_rate 0.0} {frame_loss 0} {percent_loss 0.0} {load_iteration 1} {result
Passed} {load_result Passed}}}}} {Rfc2544AsymmetricLatencyStreamGroupResult {{1
{{duration 0.0} {frame_length_distribution {}} {frame_size 128} {frame_size_type
Fixed} {iteration_num 1} {load_iteration_num 1}}}}}
{Rfc2544AsymmetricLatencyStreamResult {{1 {{avg_jitter 67.55573} {load_passed 1}
{load_result Passed} {max_jitter 13758.37} {max_latency 14009.27} {min_jitter 0.32}
{min_latency 142.37} {result Passed} {rx_frame_count 1000} {tx_frame_count 1000}
{streamblock_hnd 3226} {total_jitter 6755573.0} {total_latency 25269559.0}}}}}
{status 1}

Sample Input:

sth::rfc2544_asymmetric_stats -test_type throughput -clear_result 1

Sample Output:

{Rfc2544AsymmetricThroughputPerFrameSizeResult {{1 {{trial_num 0} {frame_size 714.732}
       {frame_size_type iMIX} {frame_length_distribution {JMIX Downstream}} {intended_load
       0.001} {offered_load 0.0} {throughput_rate 0.0} {forwarding_rate 1.7623447726503956}
       {mbps_line_rate 0.0} {percent_loss 0.0} {max_latency_threshold_exceeded 0}
       {out_of_seq_threshold_exceeded 0} {min_latency 0.0} {avg_latency 0.0} {max_latency
       0.0} {min_jitter 0.0} {avg_jitter 0.0} {max_jitter 0.0} {rx_frame_count 1000}
       {tx_frame_count 1000} {tx_frame_rate 0.0} {tx_bit_rate 0.0} {frame_loss 0}
       {load_iteration_num 0} {result Failed} {load_result Passed}}} {2 {{trial_num 0}
       {frame_size 660.048} {frame_size_type iMIX} {frame_length_distribution {JMIX Downstream}}
       {intended_load 0.5} {offered_load 0.0} {throughput_rate 0.0} {forwarding_rate
       881.4168246606325} {mbps_line_rate 0.0} {percent_loss 0.0} {max_latency_threshold_exceeded
       1} {out_of_seq_threshold_exceeded 0} {min_latency 0.0} {avg_latency 0.0} {max_latency 0.0}
       {min_jitter 0.0} {avg_jitter 0.0} {max_jitter 0.0} {rx_frame_count 1000} {tx_frame_count
       1000} {tx_frame_rate 0.0} {tx_bit_rate 0.0} {frame_loss 0} {load_iteration_num 0} {result
       Failed} {load_result Failed}}}}} {Rfc2544AsymmetricThroughputStreamGroupResult {{1 {{duration
       0.0} {frame_length_distribution {JMIX Downstream}} {frame_size 0} {frame_size_type iMIX}
       {iteration_num 1}}}}} {Rfc2544AsymmetricThroughputStreamResult {{1 {{load_passed 1}
       {load_result Passed} {result Failed} {rx_frame_count 1000} {tx_frame_count 1000}
       {streamblock_hnd 3298}}} {2 {{load_passed 0} {load_result Failed} {result Failed}
       {rx_frame_count 1000} {tx_frame_count 1000} {streamblock_hnd 3301}}}}}
       {Rfc2544AsymmetricThroughputSystemResult {{1 {{imix_distribution {JMIX Downstream}}
       {port_group Downstream} {port_line_rate 1000.0} {intended_load 0.001} {offered_load
       0.0} {throughput 1.7623447726503956} {theoretical_max_line_rate 170130.0610290555}}}
       {2 {{imix_distribution {JMIX Downstream}} {port_group Upstream} {port_line_rate
       1000.0} {intended_load 0.5} {offered_load 0.0} {throughput 881.4168246606325}
       {theoretical_max_line_rate 183810.55454909065}}}}} {status 1}

End of Procedure Header