RFC 2544 Functions¶
test rfc2544 config¶
Execute Tester Command ${rt_handle} command=test_control <additional key=value arguments>
- Purpose:
- The test rfc2544 config command creates, modifies and deletes backto-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 the argument is `Mandatory`.
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 Backto-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 backto-back test. This test
characterizes the ability of the DUT to process
backto-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
4Point 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 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 - LastIn 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 - LastIn 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 - FirstIn 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 nonzero 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 outof-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 whentest_type is set to throughput.
out_of_seq_threshold
Specifies the number of outoforder 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
3extension headers will be configured. This chain consists of:
i) Routing header
ii) Destination options header
iii) 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
test rfc2544 config
function creates, modifies or deletes an RFC 2544 test that can be a backto-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:
The following example creates a latency test:
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 [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:
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}
test rfc2544 control¶
Execute Tester Command ${rt_handle} command=test_control <additional key=value arguments>
- Purpose:
- Controls the RFC 2544 tests.
Synopsis:
Note: M indicates the argument is `Mandatory`.
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
test rfc2544 control
function controls the starting and stopping of the test.
Examples:
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 test rfc2544 control action=run wait 1 -cleanup 0Sample 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 test rfc2544 control action=insert_breakpoint breakpoint framesize # Starts the test and pauses at the breakpoint set ret [test rfc2544 control action=run] # Resumes the test and pauses at the breakpoint after execution of first framesize (ex:64) iteration set ret [test rfc2544 control action=run] # Removes breakpoint set ret test rfc2544 control action=remove_breakpoint breakpoint framesize # Resumes test and executes untill it completes set ret [test rfc2544 control action=run]Sample output for the example shown above:
{status 1}
test rfc2544 info¶
Execute Tester Command ${rt_handle} command=test_control <additional key=value arguments>
- Purpose:
- Retrieves statistics for the configured test.
Synopsis:
Note: M indicates the argument is `Mandatory`.
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
Backto-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 outof-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
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:
To return backtoback= test results:
puts "get the b2b test result" set ret test rfc2544 info test_type=b2b clear_result 1Sample 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 [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}
rfc2544 asymmetric config¶
Execute Tester Command ${rt_handle} command=test_control <additional key=value arguments> 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 the argument is `Mandatory`.
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 userspecified 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 LastIn 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 LastIn 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 FirstIn 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 outoforder 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 whentest_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
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:
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
rfc2544 asymmetric control¶
Execute Tester Command ${rt_handle} command=test_control <additional key=value arguments>
- Purpose:
Spirent Extension (for Spirent HLTAPI only).
Starts or stops the specified asymmetric performance test
Synopsis:
Note: M indicates the argument is `Mandatory`.
rfc2544 asymmetric control
action= {run|stop} M
wait= {0|1}
cleanup= {0|1}
Arguments:
action
Specifies the action to perform for the test. Possible
values are run and stop. The modes are described below::
run Starts the test
stop Stops the test
wait
Determines whether this command will return only when the
test is completed. Possible values are 0 and 1. The default
value is 1. When it is set to 1, the command will return
only when the test is completed.
cleanup
Determines whether to delete the current test instance after
the test is completed. Possible values are 0 and 1. The
default value is 1. When it is set to 1, the current test
instance will be deleted after the test is completed.
- Return Values:
Depending on the specific language that HLTAPI uses, the function returns a keyed list/dictionary/hash (See Introduction for more information on return value formats) using the following keys (with corresponding data):
status $SUCCESS or $FAILURE log Error message if command returns {status 0}
- Description:
- The
rfc2544 asymmetric control
function controls the starting and stopping of the test. - Examples:
Sample Input:
set ret rfc2544 asymmetric control action=run wait 1
Sample Output:
{status 1}
End of Procedure Header
rfc2544 asymmetric profile¶
Execute Tester Command ${rt_handle} command=test_control <additional key=value arguments>
- 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 the argument is `Mandatory`.
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 ``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
``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 outof-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 outoforder 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 [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 [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
rfc2544 asymmetric stats¶
Execute Tester Command ${rt_handle} command=test_control <additional key=value arguments>
- Purpose:
- Retrieves statistics for the asymmetric performance test
Synopsis:
Note: M indicates the argument is `Mandatory`.
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
rfc2544 asymmetric stats
function provides information about the configured asymmetric performance tests.
Examples:
Sample Input:
rfc2544 asymmetric stats test_type=fl clear_result 1Sample 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:
rfc2544 asymmetric stats test_type=latency clear_result 1Sample 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:
rfc2544 asymmetric stats test_type=throughput clear_result 1Sample 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