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:
- Routing header
- Destination options header
- 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¶
Thesth::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