RoCEv2 Configuration Functions

emulation rocev2 port config

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

Purpose:

Creates and configures RoCEv2 ECN and CNP for the specified port.

RoCEv2 is an internet layer protocol which means that RoCEv2 packets can be routed. Although the RoCEv2 protocol benefits from the characteristics of a converged Ethernet network, the protocol can also be used on a traditional or nonconverged Ethernet network.

Currently (Spirent TestCenter 5.41), RoCEv2 is supported only on 25gig or 100gig ports. In order to configure RoCEv2, the module profile must be activated to STCRoCEv2-ECN in Spirent Testcenter GUI (Tools->Firmware management-> select Activate Test module profile-> STCRoCEv2-ECN and click on Activate).

Synopsis:

Note: M indicates the argument is `Mandatory`.

    emulation rocev2 port config
       mode= {create|modify|delete}
       port_handle= <port_handle | port_handle list> M
       handle= <rocev2 device | rocev2 device list>
       profile_handle= <profile handle>
       enable_ecn_cnp= {true | false}
       cnp_priority_mode= {pcp|dscp}
       cnp_priority= <0-63>
       enable_auto_rate_adjust= {true | false}
       disable_port_traffic= {true | false}
       reset_rate_adjuston_gen_stop= {true | false}

Arguments:

mode
                Specifies the action to perform on the specified test port.
                Possible values are create, modify, delete or
                inactive. The modes are described below: :


                create
                        Creates one or more emulated RoCEv2 ports.
                        The port_handle is a `Mandatory` argument.

                modify
                        Changes the configuration for the emulated RoCEv2 port
                        ECN and CNP Configuration identified by the handle
                        argument.

                delete
                        Deletes all RoCEv2 ECN and CNP Configuration associated
                        with the specified port.

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

handle
                Specifies a list of RoCEv2 port handles on which to perform the
                action. You must specify either handle or -port_handle, but not
                both.

profile_handle
                Specifies the DCQCN profile handle to configure the RoCEv2 port.

enable_ecn_cnp
                Specifies to enable or disable RoCEv2.
                The default value is false.

cnp_priority_mode
                Specifies the RoCEv2 CNP priority mode.
                The possible values are pcp and dscp.
                The default value is pcp.

cnp_priority
                Specifies the RoCEv2 CNP priority value.
                The default value is 0.

enable_auto_rate_adjust
                Specifies to enable or disable the DCQCN based automatic
                rate adjustment.
                The default value is true.

disable_port_traffic
                Specifies to disable or enable the traffic generation on the port.
                The default value is false.

enable_auto_rate_adjust
                Specifies whether to reset the rate adjustment variables when
                the generator stops..
                The default value is true.
Return Values:

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

status    Success (1) or failure (0) of the operation.
log       An error message (if the operation failed).
Description:

The emulation rocev2 port config function adds, modifies or deletes an emulated RoCEv2 test port configuration. Use the port_handle argument to specify the port to be added.

Use the mode argument to specify the action to perform. (See the mode argument description for information about the actions.)

Examples:

To create RoCEv2 port and configure ECN and CNP configuration:

emulation rocev2 port config
 mode=                         create
 port_handle=                  port1 port2
 enable_ecn_cnp=               true
 cnp_priority=                 1]

Sample Output:

{handles {rocev2portconfig1 rocev2portconfig2}} {status 1}

To modify RoCEv2 profile and other configurations:

emulation rocev2 port config
 mode=                                    modify
 handle=                                  rocev2portconfig1
 enable_ecn_cnp=                          true
 cnp_priority=                            1
 profile_handle=                          [lindex [keylget rocev2_profile
  rocev2_default_profile_handles] 0]
 ]

Sample Output:

{status 1}

emulation rocev2 profile config

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

Purpose:
Creates or configures a RoCEv2 DCQCN profile.

Synopsis:

Note: M indicates the argument is `Mandatory`.

    emulation rocev2 profile config
       mode= {create|modify|delete}
       port_handle= <port_handle | port_handle list> M
       is_default_profile= {true|false}
       profile_name= <existing | new profile name>
       cnp_interval= <double>
       time_reset_in_ms= <double>
       byte_reset_in_mb= <NUMERIC>
       phase_threshold= <NUMERIC>
       min_rate_in_mbps= <double>
       min_alpha= <double>
       alpha_update_period_in_ms= <double>
       additive_incr_rate_in_mbps= <double>
       hyper_incr_rate_in_mbps= <double>
       enable_user_defined_alpha= {true|false}

Arguments:

mode
                Specifies the action to perform on the specified test port.
                Possible values are create, modify, delete or
                inactive. The modes are described below: :


                create
                        Creates a RoCEv2 DCQCN profile.
                        The port_handle is a `Mandatory` argument.

                modify
                        Changes the configuration for the RoCEv2 profile
                        identified by the handle argument.

                delete
                        Deletes all RoCEv2 DCQCN profiles.

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

is_default_profile
                Specifies whether this profile is the default profile.
                The default value is true.
                To create and configure a new DCQCN profile, set this value to false.

profile_name
                Specifies the DCQCN profile name.
                The default value is Default.

cnp_interval
                Specifies the CNP generation interval.
                The default value is 0.05.

time_reset_in_ms
                Specifies the interval of time in milliseconds since the last rate
                reduction was initiated. When this timer expires, a new rate increase
                event is initiated.
                The default value is 0.055.

byte_reset_in_mb
                Specifies the number of frame megabytes sent since the last rate
                reduction was initiated. When this threshold is met, a new rate
                increase event is initiated.
                The default value is 2.

phase_threshold
                Specifies the stage threshold of rate increase events for moving
                to the next rate increase phase of recovery (Additive Increase or
                Hyper Increase).
                The default value is 5.

min_rate_in_mbps
                Specifies the minimum Mbps rate limit for the queue pair.
                The default value is 2.0.

min_alpha
                Specifies the minimum that the alpha value can be reduced to by the alpha
                update process.
                The default value is 0.001.

alpha_update_period_in_ms
                Specifies the alpha timer update period in milliseconds for the
                DCQCN based automatic rate adjustment. Usually the alpha update
                period should be longer than the CNP generation interval.
                The default value is 1.55.

additive_incr_rate_in_mbps
                Specifies the Mbps rate step increment for the target rate
                in each stage of the additive increase phase.
                The default value is 5.0.

hyper_incr_rate_in_mbps
                Specifies the Mbps rate step increment for the target rate
                in each stage of the hyper increase phase.
                The default value is 40.0.

enable_user_defined_alpha
                Specifies to enable or disable the user defined alpha update period.
                The default value is false.
Return Values:

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

status    Success (1) or failure (0) of the operation.
log       An error message (if the operation failed).
Description:
The emulation rocev2 profile config function adds, configures or deletes a DCQCN RoCEv2 profile. Use the port_handle argument to specify the port on which the profile will be added or configured.

Examples:

To get the existing RoCEv2 DCQCN profile list:

emulation rocev2 profile config
 mode=                                             create
 is_default_profile=                               true]

Sample Output:

{rocev2_default_profile_handles {rocev2dcqcnprofile1 rocev2dcqcnprofile2
rocev2dcqcnprofile3 rocev2dcqcnprofile4}} {rocev2_default_profile_names
{Default DCQCN {Mellanox CX NIC} {Large QP Size}}} {status 1}

To create the new RoCEv2 DCQCN profile:

emulation rocev2 profile config
 mode=                                             create
 is_default_profile=                             false
 profile_name=                                   new_profile
 cnp_interval=                                   1
 time_reset_in_ms=                               1
 byte_reset_in_mb=                               1
 phase_threshold=                                3
 min_rate_in_mbps=                               1
 min_alpha=                                      1
 alpha_update_period_in_ms=                      1
 additive_incr_rate_in_mbps=                     1
 hyper_incr_rate_in_mbps=                        1
 enable_user_defined_alpha=                      true]

Sample Output:

{rocev2_new_profile_handles rocev2dcqcnprofile1} {status 1}

emulation rocev2 server config

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

Purpose:

Creates, modifies, or deletes an RoCEv2 server on a Spirent HLTAPI chassis.

Synopsis:

Note: 1. M indicates the argument is `Mandatory`.
      2. S indicates the argument is for `scaling` scenarios.

     emulation rocev2 server config
           mode= {create|modify|delete} M
           port_handle= <port_handle>
           handle= < device_handle>
           block_mode= {one_host_per_block|one_device_per_block|
                               one_network_per_block|
                               multiple_networks_per_block|
                               multiple_device_per_block} S]
           expand= {true|false} S
           count= <integer>
           encapsulation= {ethernet_ii|ethernet_ii_vlan|ethernet_ii_qinq|ethernet_ii_mvlan}
           enable_ping_response= {1|0}
           enable_gw_learning= {true|false}
           gateway_mac= <aa:bb:cc:dd:ee:ff>
           resolve_gateway_mac= {true|false}
           ipv6_gateway_mac= <aa:bb:cc:dd:ee:ff>
           ipv6_resolve_gateway_mac= {true|false}
           ip_version= {ipv4|ipv6|ipv46|none}
           intf_ip_addr= <a.b.c.d>
           intf_ip_addr_step= <a.b.c.d>
           ip_stack_count= <0-65535>
           ip_step_per_port= <a.b.c.d>
           ip_step_per_vlan= <a.b.c.d>
           stack_ip_repeat= <0-65535>
           stack_ip_recycle_count= <0-65535>
           gateway_ip_addr= <a.b.c.d>
           gateway_ip_addr_step= <a.b.c.d>
           use_ip_addr_range_gateway= {true|false}
           stack_gateway_ip_repeat= <0-65535>
           stack_gateway_ip_recycle_count= <0-65535>
           use_ipv6_addr_range_gateway= {true|false}
           stack_gateway_ipv6_repeat= <0-65535>
           stack_gateway_ipv6_recycle_count= <0-65535>
           gateway_ipv6_addr= <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>
           gateway_ipv6_addr_step= <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>
           intf_prefix_len= <1-32>
           intf_ipv6_addr= <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>
           intf_ipv6_addr_step= <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>
           intf_ipv6_prefix_len= <1-128>
           ipv6_step_per_port= <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>
           ipv6_step_per_vlan= <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>
           link_local_ipv6_addr= <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>
           link_local_ipv6_addr_step= <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>
           link_local_ipv6_prefix_len= <0-128>
           link_local_ipv6_step_per_port= <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>
           link_local_ipv6_step_per_vlan= <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>
           ipv6_stack_count= <0-65535>
           stack_ipv6_repeat= <0-65535>
           stack_ipv6_recycle_count= <0-65535>
           mac_addr= <aa:bb:cc:dd:ee:ff>
           mac_addr_step= <aa:bb:cc:dd:ee:ff>
           mac_addr_step_per_port= <aa:bb:cc:dd:ee:ff>
           mac_addr_step_per_vlan= <aa:bb:cc:dd:ee:ff>
           qinq_incr_mode= {inner|outer|both}
           router_id= <a.b.c.d>
           router_id_ipv6= <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>
           router_id_step= <a.b.c.d>
           router_id_ipv6_step= <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>
           ipv6_router_id_src= {manual|use_ipv6_global_addr|use_ipv6_ll_add}
           tos= <0-255>
           tos_type= {tos|diffserv}
           traffic_class= <0-255>
           use_default_phy_mac= {true|false}
           vlan_id= <0-4095>
           vlan_id_count= <1-4096>
           vlan_id_step= <0-4095>
           vlan_id_repeat_count= <0-4294967295>
           vlan_id_stack_count= <NUMERIC>
           vlan_id_repeatmode= <REPEAT_ACROSS_PORT  | NO_REPEAT | REPEAT_ACROSS_LOWER_IF>
           vlan_user_pri= <0-7>
           vlan_outer_id= <0-4095>
           vlan_outer_id_count= <1-4096>
           vlan_outer_id_step= <0-4095>
           vlan_outer_id_repeat_count= <0-4294967295>
           vlan_outer_id_repeatmode= <REPEAT_ACROSS_PORT  | NO_REPEAT | REPEAT_ACROSS_LOWER_IF>
           vlan_outer_user_pri= <0-7>
           vlan_tpid= <0-65535>
           vlan_cfi= <0-1>
           vlan_outer_tpid= <0-65535>
           vlan_outer_cfi= <0-1>
           vlan_id_list= <0-4095>
           vlan_id_step_list= <0-4095>
           vlan_id_count_list= <0-4095>
           vlan_user_pri_list= <0-7>
           vlan_id_repeat_count_list= <0-4294967295>
           vlan_tpid_list= <0-65535>
           vlan_cfi_list= <0-65535>
           name= <string>
           block_name_index= <0-4294967295>
           count_per_block= <integer>
           count_block_per_port= <integer>
           enable_rfc4814_addresses= {true|false}
           random_seed_value= <numeric>
           qp_start_id= <0-16777215>
           qp_count= <1-8192>
           qp_step_per_server= <0-16777215>
           server_block_size= <1-64>
           server_block_size_step= <0-64>

Arguments:

port_handle
                Specifies the port on which to create the emulated RoCEv2 server. This
                handle is returned by the ``connect`` function. It is `Mandatory`
                for mode create.

handle
                Specifies the RoCEv2 server handle. This argument is `Mandatory` for
                mode modify and delete. For mode delete, you can also specify
                the value all, to delete all devices.

                Note: handle all is only valid for -mode delete.

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

                 create - Creates the RoCEv2 server on the specified port. You must
                          specify port_handle.

                 modify - Modifies the configured device identified by handle.

                 delete - Deletes the emulated RoCEv2 server identified by handle.

block_mode
                `Spirent Extension (for Spirent HLTAPI only).`

                Specifies the device block mode. Emulated device objects may be
                used to represent a single device or a block of many devices for
                higher scalability. Emulated device blocks are not supported by
                all protocols  (for example, routing protocols) and have less
                granularity of control at the protocol level and in traffic
                configuration. Possible values are described below::


                 one_device_per_block          One emulated device block is created
                                               for each device

                 one_network_per_block         One emulated device block is created
                                               for each network

                 multiple_networks_per_block   One emulated device block may represent
                                               multiple networks. Note that there
                                               are limitations to what can be
                                               represented as a single emulated
                                               device block using this mode.

                 multiple_device_per_block     Multiple devices per block

                This argument is available for mode create.

expand
                `Spirent Extension (for Spirent HLTAPI only).`

                Determines whether to expand the specified device parameters into
                emulated device objects during `scaling` test scenarios.
                This argument is used in `scaling` test scenarios, and available
                for mode create, and working together with -block_mode.
                Possible values are true and false.

                If it is set to true, a list of emulated devices will be created
                and their handles returned.

                If it is set to false, param_handle will be returned, which can
                be passed to protocol configuration APIs, for example::

                    mode activate in emulation isis config.

count
                Specifies the number of emulated RoCEv2 server devices to be
                created. The default value is 1.

router_id
                Specifies the router ID of the RoCEv2 server device. The value
                must be in IPv4 format.

router_id_ipv6
                Specifies the IPv6 router ID of the RoCEv2 server device. The value
                must be in IPv6 format.

enable_ping_response
                Enables or disables the emulated device to respond to ping.
                Possible values are 0 (disable) and 1 (enable). The default is 0.

enable_gw_learning
                `Spirent Extension (for Spirent HLTAPI only).`

                Enables or disables IPv6 learning for the gateway IP and MAC
                addresses. Possible values are true (enable) and false (disable).
                The default value is false.

gateway_mac
                Specifies the IPv4 gateway's MAC address for the emulated RoCEv2
                server. The default value is 00:00:01:00:00:01.

resolve_gateway_mac
                Determines whether to resolve the IPv4 gateway's MAC address.
                Possible values are true and false. The default value is true.

ipv6_gateway_mac
                Specifies the IPv6 gateway's MAC address for the emulated RoCEv2
                device.
                The default value is 00:00:01:00:00:01.

ipv6_resolve_gateway_mac
                Determines whether to resolve the IPv6 gateway's MAC address.
                Possible values are true and false. The default value is true.

ip_version
                Defines the IP version of the emulated RoCEv2 server device.
                Possible values are ipv4, ipv6, ipv46, and none.
                The default value is ipv4.

intf_ip_addr
                Specifies the IPv4 address of the emulated RoCEv2 device.
                The default value is 192.85.1.3.

intf_ip_addr_step
                Specifies the difference between IPv4 interface addresses of
                consecutive devices when multiple emulated devices are created.
                The value must be in IPv4 format. The default is 0.0.0.1.

ip_stack_count
                `Spirent Extension (for Spirent HLTAPI only).`

                Specifies the number of IPv4 objects to be created. Possible
                values range from 0 to 65535. The default value is 1.

ip_step_per_port
                `Spirent Extension (for Spirent HLTAPI only).`

                Specifies the step value by which to increment IPv4 addresses for
                the device block per port
                Dependency: block_mode or -expand
                Values: IPv4

ip_step_per_vlan
                `Spirent Extension (for Spirent HLTAPI only).`

                Specifies the step value by which to increment IPv4 addresses for
                the device block per VLAN
                Dependency: block_mode or -expand
                Values: IPv4

stack_ip_repeat
                `Spirent Extension (for Spirent HLTAPI only).`

                Specifies how many times to repeat the same IPv4 address before
                incrementing it. Possible values range from 0 to 65535. The
                default value is 0.

stack_ip_recycle_count
                `Spirent Extension (for Spirent HLTAPI only).`

                Specifies how many times to increment the IPv4 address before
                returning to the starting value. Possible values range from 0 to
                65535. The default value is 0.

gateway_ip_addr
                Specifies the IPv4 gateway address for the emulated device.

gateway_ip_addr_step
                Specifies the difference between IPv4 gateway addresses of
                consecutive devices when multiple emulated devices are created.
                The default value is 0.0.0.1.

use_ip_addr_range_gateway
                Specifies the same settings for gateway as the IPv4 address range parameters
                Possible values are true and false.
                The default value is false.

stack_gateway_ip_repeat
                `Spirent Extension (for Spirent HLTAPI only).`

                Specifies how many times to repeat the same IPv4 gateway address before
                incrementing it. Possible values range from 0 to 65535. The
                default value is 0.

stack_gateway_ip_recycle_count
                `Spirent Extension (for Spirent HLTAPI only).`

                Specifies how many times to increment the IPv4 gateway address before
                returning to the starting value. Possible values range from 0 to
                65535. The default value is 0.

use_ipv6_addr_range_gateway
                Specifies whether to use IPv6 address range settings for the gateway.
                Possible values are true and false.
                The default value is false.

stack_gateway_ipv6_repeat
                Specifies the IPv6 gateway repeat count for the emulated device.
                Possible values range from 0 to 65535. The default value is 0.

stack_gateway_ipv6_recycle_count
                Specifies the IPv6 gateway recycle count for the emulated device.
                Possible values range from 0 to 65535. The default value is 0.

intf_prefix_len
                Specifies the prefix length for the IPv4 address of the emulated
                device. Possible values range from 1 to 32. The default is 24.

intf_ipv6_addr
                Specifies the IPv6 address of the emulated device.

intf_ipv6_addr_step
                Specifies the difference between interface IPv6 addresses of
                consecutive devices when multiple emulated devices are created.

intf_ipv6_prefix_len
                Specifies the prefix length for the IPv6 address of the emulated
                device. Possible values range from 0 to 128. The default is 64.

ipv6_step_per_port
                `Spirent Extension (for Spirent HLTAPI only).`

                Specifies the step value by which to increment IPv6 addresses for
                the device block per port
                Dependency: block_mode or -expand
                Values: IPv6

ipv6_step_per_vlan
                `Spirent Extension (for Spirent HLTAPI only).`

                Specifies the step value by which to increment IPv6 addresses for
                the device block per VLAN
                Dependency: block_mode or -expand
                Values: IPv6

gateway_ipv6_addr
                Specifies the IPv6 gateway address for the emulated device.

gateway_ipv6_addr_step
                Specifies the difference between IPv6 gateway addresses of
                consecutive devices when multiple emulated devices are created.

link_local_ipv6_addr
                Specifies the starting link local IPv6 address for emulated
                devices. The value must be in IPv6 format. The default is
                FE80::0.

link_local_ipv6_addr_step
                Specifies the difference between link local IPv6 addresses of
                consecutive devices when multiple emulated devices are created.
                The value must be in IPv6 format. The default is ::1.

link_local_ipv6_prefix_len
                Specifies the prefix length for the link local IPv6 address of
                the emulated device. Possible values range from 0 to 128. The
                default is 64.

link_local_ipv6_step_per_port
                `Spirent Extension (for Spirent HLTAPI only).`

                Specifies the step value by which to increment link local IPv6
                addresses for the device block per port
                Dependency: block_mode or -expand
                Values: IPv6

link_local_ipv6_step_per_vlan
                `Spirent Extension (for Spirent HLTAPI only).`

                Specifies the step value by which to increment link local IPv6
                addresses for the device block per VLAN
                Dependency: block_mode or -expand
                Values: IPv6

ipv6_stack_count
                `Spirent Extension (for Spirent HLTAPI only).`

                Specifies the number of IPv6 objects to be created. Possible
                values range from 0 to 65535. The default value is 1.

stack_ipv6_repeat
                `Spirent Extension (for Spirent HLTAPI only).`

                Specifies how many times to repeat the same IPv6 address before
                incrementing it. Possible values range from 0 to 65535. The
                default value is 0.

stack_ipv6_recycle_count
                `Spirent Extension (for Spirent HLTAPI only).`

                Specifies how many times to increment the IPv6 address before
                returning to the starting value. Possible values range from 0 to
                65535. The default value is 0.

mac_addr
                Specifies the MAC address of the emulated device.

mac_addr_step
                Specifies the difference between MAC addresses of consecutive
                devices when multiple emulated devices are created.


mac_addr_step_per_port
                `Spirent Extension (for Spirent HLTAPI only).`

                Specifies the step value by which to increment source MAC
                addresses for the device block per port
                Dependency: block_mode or -expand
                Values: MAC

mac_addr_step_per_vlan
                `Spirent Extension (for Spirent HLTAPI only).`

                Specifies the step value by which to increment source MAC
                addresses for the device block per VLAN
                Dependency: block_mode or -expand
                Values: MAC

                 Example::

                   emulation rocev2 config
                           mode                           create
                           block_mode                     ONE_NETWORK_PER_BLOCK
                           ip_version                     ipv4
                           encapsulation                  ethernet_ii_vlan
                           port_handle                    $port1 $port2
                           vlan_user_pri                  7
                           vlan_id                        10
                           vlan_id_count                  2
                           vlan_id_step                   1
                           vlan_id_repeatmode             REPEAT_ACROSS_LOWER_IF
                           vlan_outer_id                  20
                           vlan_outer_id_step             2
                           vlan_outer_id_count            2
                           vlan_outer_id_repeatmode       NO_REPEAT
                           count                          1
                           expand                          true
                           mac_addr                       00:10:94:00:00:02
                           mac_addr_step                  00:00:00:00:00:01
                           intf_ip_addr                   192.85.1.4
                           intf_prefix_len                 24
                           gateway_ip_addr               192.85.1.1
                           gateway_ip_addr_step          0.0.0.0
                           intf_ip_addr_step             0.0.0.1
                           mac_addr_step_per_vlan        {00:00:00:00:01:01 00:00:00:00:01:00}
                           mac_addr_step_per_port        00:00:00:01:00:00
                           ip_step_per_port              0.1.0.0
                           ip_step_per_vlan              {0.0.1.1 0.0.1.0}
                           name                       rocev2_server
                           qp_start_id                100
                           qp_count                   2
                           qp_step_per_server         2
                           server_block_size          4
                           server_block_size_step     1


                   In argument mac_addr_step_per_vlan, the first MAC address 00:00:00:00:01:01
                   increments the outer VLAN and the second MAC address increments the inner VLAN.
                   mac_addr_step_per_vlan        {00:00:00:00:01:01 00:00:00:00:01:00}
                   Similarly, in ip_step_per_vlan, the first IP address increments the outer VLAN IP
                   and the second address increments inner VLAN IP.

qinq_incr_mode
                Determines which VLAN ID to increment first. Possible values are::


                 inner - Increments the inner VLAN ID before the outer VLAN ID

                 outer - Increments the outer VLAN ID before the inner VLAN ID

                 both - Increment both the inner and outer VLAN ID at the same time

                The default value is inner.

encapsulation
                Specifies the type of Layer 2 encapsulation for the emulated
                RoCEv2 device. Possible values are::


                 ethernet_ii - Ethernet II

                 ethernet_ii_vlan - Ethernet II with a single VLAN tag

                 ethernet_ii_qinq - Ethernet II with two VLAN tags

                 ethernet_ii_mvlan - Ethernet II with more than two VLAN tags
                                     (Specifies VLAN from the 3rd tag on. The
                                     first two tags are specified with vlan_id,
                                     vlan_outer_id, and their related arguments.)

                The default value is ethernet_ii.

router_id_step
                `Spirent Extension (for Spirent HLTAPI only).`

                Specifies the difference between consecutive router IDs when
                multiple routers are created. The value must be in IPv4 format.
                The default value is 0.0.0.1.

router_id_ipv6_step
                `Spirent Extension (for Spirent HLTAPI only).`

                Specifies the difference between consecutive IPv6 router IDs when
                multiple routers are created. The value must be in IPv6 format.
                The default value is 0000::1.

ipv6_router_id_src
                `Spirent Extension (for Spirent HLTAPI only).`

                Specifies the IPv6 router ID source.
                Dependency: block_mode or -expand
                Possible values are::


                 manual - Set source manually

                 use_ipv6_global_addr - Use IPv6 global address as source

                 use_ipv6_ll_add - Use IPv6 link local address as source

                The default value is manual.
tos
                `Spirent Extension (for Spirent HLTAPI only).`

                Specifies the ToS value of the IPv4 header. Possible values range
                from 0 to 255. The default value is 192.

tos_type
                `Spirent Extension (for Spirent HLTAPI only).`

                Specifies the ToS type of the IPv4 header. Possible values are
                tos and diffserv. The default value is tos.

traffic_class
                `Spirent Extension (for Spirent HLTAPI only).`

                Specifies the traffic class of the IPv6 header. Possible values
                range from 0 to 255. The default value is 0.

use_default_phy_mac
                `Spirent Extension (for Spirent HLTAPI only).`

                Determines whether to use the source MAC address from the
                physical interface. Possible values are true and false.
                The default value is false.

vlan_id
                Specifies the starting VLAN ID for the ethernet_ii_vlan
                encapsulation or the ethernet_ii_qinq encapsulation. Possible
                values range from 0 to 4095. The default value is 100. This
                argument is available when encapsulation is set to
                ethernet_ii_qinq or ethernet_ii_vlan.


vlan_id_count
                Specifies the number of VLAN IDs to create. Possible values range
                from 1 to 4096. The default value is 1.

vlan_id_step
                Specifies the step size by which the VLAN ID is incremented.
                Possible values range from 0 to 4095. The default value is 1.

vlan_id_repeat_count
                `Spirent Extension (for Spirent HLTAPI only).`

                Number of times to repeat the same VLAN ID before
                incrementing it for the inner VLAN. The value must be an integer.
                The default value is 0.

vlan_id_stack_count
                Number of interfaces in this interface object.
                The value must be an integer. The default value is 1.

vlan_id_repeatmode
                `Spirent Extension (for Spirent HLTAPI only).`

                Specifies the repeat mode for the inner VLAN.
                The default value is REPEAT_ACROSS_PORT.

                 NO_REPEAT               VLAN IDs are not repeated.
                 REPEAT_ACROSS_PORT      VLAN IDs are repeated from the starting VLAN ID on all ports.
                 REPEAT_ACROSS_LOWER_IF  VLAN IDs are repeated from the starting VLAN ID
                                         when the next lowerlevel interface (or port) changes.

vlan_user_pri
                Specifies the VLAN user priority assigned to the emulated RoCEv2 device.
                Possible values range from 0 to 7. The default value is 0.

vlan_outer_id
                Specifies the starting outer VLAN ID for the QinQ encapsulation.
                Possible values range from 0 to 4095. The default value is 100.
                This argument is available when encapsulation is set to
                ethernet_ii_qinq.

vlan_outer_id_count
                Specifies the number of outer VLAN IDs assigned to the emulated
                RoCEv2 device.
                Possible values range from 1 to 4096. The default is 1.

vlan_outer_id_step
                Specifies the step size by which the outer VLAN ID is
                incremented. Possible values range from 0 to 4095. The default
                value is 1.

vlan_outer_id_repeat_count
                `Spirent Extension (for Spirent HLTAPI only).`

                Number of times to repeat the same VLAN ID before
                incrementing it for the outer VLAN. The value must be an integer.
                The default value is 0.

vlan_outer_id_repeatmode
                `Spirent Extension (for Spirent HLTAPI only).`

                Specifies the repeat mode for the outer VLAN.
                The default value is REPEAT_ACROSS_PORT.

                 NO_REPEAT               VLAN IDs are not repeated.
                 REPEAT_ACROSS_PORT      VLAN IDs are repeated from the starting VLAN ID on all ports.
                 REPEAT_ACROSS_LOWER_IF  VLAN IDs are repeated from the starting VLAN ID
                                         when the next lowerlevel interface (or port) changes.

vlan_outer_user_pri
                Specifies the VLAN priority to assign to the outer VLAN header.
                Possible values range from 0 to 7. The default value is 0.

vlan_tpid
                `Spirent Extension (for Spirent HLTAPI only).`

                Specifies the Ethernet type of VLAN for the device interface.
                Possible values range from 0 to 65535. The default value is
                33024.

vlan_outer_tpid
                `Spirent Extension (for Spirent HLTAPI only).`

                Specifies the Ethernet type of outer VLAN for the device
                interface. Possible values range from 0 to 65535. The default
                value is 33024.

vlan_cfi
                Specifies the canonical format indicator (CFI) field in VLAN
                for the emulated device. Possible values are 0 (Ethernet)
                and 1 (Token Ring). The default is 1.

vlan_outer_cfi
                Specifies the CFI field in the outer VLAN for the emulated
                device. Possible values are 0 (Ethernet) and 1 (Token Ring). The
                default is 1.

vlan_id_list
                `Spirent Extension (for Spirent HLTAPI only).`

                Specifies a list of VLAN IDs for the ethernet_ii_mvlan
                encapsulation. Possible values range from 0 to 4095. The default
                value is 100.

vlan_id_step_list
                `Spirent Extension (for Spirent HLTAPI only).`

                Specifies a list of VLAN step values for the ethernet_ii_mvlan
                encapsulation. Possible values range from 0 to 4095. The default
                value is 1.

vlan_id_count_list
                `Spirent Extension (for Spirent HLTAPI only).`

                Specifies a list of numbers of VLAN IDs for the ethernet_ii_mvlan
                encapsulation. Possible values range from 0 to 4095. The default
                value is 100.

vlan_tpid_list
                `Spirent Extension (for Spirent HLTAPI only).`

                Specifies a list of VLAN TPIDs for ethernet_ii_mvlan
                encapsulation. Possible values range from 0 to 65535. The default
                value is 33024.

vlan_user_pri_list
                `Spirent Extension (for Spirent HLTAPI only).`

                Specifies a list of VLAN priorities for the ethernet_ii_mvlan
                encapsulation. Possible values range from 0 to 7. The default
                value is 0.

vlan_id_repeat_count_list
                `Spirent Extension (for Spirent HLTAPI only).`

                Specifies a list of numbers of times to repeat the corresponding
                VLAN IDs before incrementing them. The value must be an integer.
                The default value is 0. This argument is available when
                encapsulation is set to ethernet_ii_mvlan.

vlan_cfi_list
                `Spirent Extension (for Spirent HLTAPI only).`

                Specifies a list of CFI values for ethernet_ii_mvlan
                encapsulation. Possible values are 0 (Ethernet) and 1 (Token
                Ring). The default value is 1.

name
                A text name for the emulated RoCEv2 device. If block_mode is specified,
                block_name_index will be appended to the name of emulated RoCEv2 device.

block_name_index
                Specifies start value of index for the RoCEv2 device name.
                Dependency: block_mode

count_block_per_port
                Specifies the block count per port.
                Dependency: expand and -block_mode

count_per_block
                Specifies the RoCEv2 device count per block.
                Dependency: expand and -block_mode

enable_rfc4814_addresses
                Specifies to enable or disable the generation of MAC addresses
                according to RFC 4814.
                Possible values are true and false. The default value is false.
                Dependency: expand and -block_mode

random_seed_value
                Specifies the seed value for the random number generator used
                in generating RFC 4814 MAC addresses.
                The default value is true.
                Dependency: expand, -block_mode and enable_rfc4814_addresses

qp_start_id
                Specifies the start queue pair of the RoCEv2 server.
                The default value is 0.

qp_count
                Specifies the queue pair count of the RoCEv2 server.
                The default value is 1.

qp_step_per_server
                Specifies the queue pair step per RoCEv2 server.
                The default value is 0.

server_block_size
                Specifies the hard disk block size in kilobits of the RoCEv2
                server.
                The default value is 1.

server_block_size
                Specifies the hard disk block size step in kilobits of the RoCEv2
                server.
                The default value is 0.
Return Values:

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

status               $SUCCESS (1) or $FAILURE (0)
log                  Error message if command returns {status 0}
handle               The host handle
handle_list          The host handle or
                     the emulated device handles list when expand is set true.
Description:

The emulation rocev2 server config function creates, modifies and deletes one or more emulated RoCEv2 server hosts on the specified port. Use the mode argument to specify the action to perform. (See the mode argument description for information about the actions.)

When you create an emulated RoCEv2 server, use the port_handle argument to specify the Spirent HLTAPI port that the emulated RoCEv2 server will use. (The port handle value is contained in the keyed list returned by the connect function.) The create mode returns the handle of the host.

Use this function when you want to create a device without configuring a protocol. You can enable a protocol on the created device if you need it later. You can also use the created device as the source or destination handle when you create a bound stream.

Examples:

The following example creates an emulated RoCEv2 server device:

set devcie_ret1 [::emulation rocev2 server config
 mode=                       create
 ip_version=                 ipv4
 encapsulation=              ethernet_ii
 port_handle=                port1
 count=                      1
 enable_ping_response=       0
 router_id=                  192.0.0.1
 mac_addr=                   00:10:94:00:00:01
 mac_addr_step=              00:00:00:00:00:01
 resolve_gateway_mac=        true
 gateway_ip_addr_step=       0.0.0.0
 intf_ip_addr=               1.1.1.2
 intf_prefix_len=            24
 gateway_ip_addr=            1.1.1.1
 intf_ip_addr_step=          0.0.0.1
 name=                       rocev2_server
 qp_start_id=                100
 qp_count=                   2
 qp_step_per_server=         2
 server_block_size=          4
 server_block_size_step=     1
]

Sample Output:

{handle host1} {handle_list host1} {rocev2_server_handle rocev2serverconfig1}
{rocev2_server_handle_list rocev2serverconfig1} {status 1}

The following example deletes all RoCEv2 devices:

set returnedString [emulation rocev2 server config
                   mode=   delete
                   handle=  all]

End of Procedure Header

emulation rocev2 wizard config

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

Purpose:
Creates and configures RoCEv2 wizard port and server options.

Synopsis:

Note: M indicates the argument is `Mandatory`.

    emulation rocev2 wizard config
       mode= <create|delete>
       port_handle= <port_handle> M
       handle= <rocev2 object handles> M
       override_existing_config= {true|false}

       RoCEv2 Port parameters

       enable_pfc= {true|false}
       enable_ecn_cnp= {true|false}
       priority_queue= {0|1|2|3|4|5|6|7}
       cnp_priority_mode= {l2_pcp|l3_dscp}
       ip_ecn_value= {ect_1|ect_0|ecn_ce}
       l2_pcp_priority_value= <0-7>
       l3_dscp_priority_value= <0-63>
       enable_auto_rate_adjust= {true|false}
       dcqcn_profile_name= <profile name>

       RoCEv2 Server parameters

       server_device_count= <1-8>
       mac_addr= <aa:bb:cc:dd:ee:ff>
       mac_addr_step= <aa:bb:cc:dd:ee:ff>
       enable_vlan= {true|false}
       start_vlan_id= <0-4095>
       vlan_id_step= <0-4095>
       vlan_priority= <0-7>
       ip_dscp_value= <0-63>
       ipv4_addr= <a.b.c.d>
       ipv4_addr_step= <a.b.c.d>
       gateway_ipv4_addr= <a.b.c.d>
       gateway_ipv4_addr_step= <a.b.c.d>
       start_udp_src_port= <integer>
       udp_src_port_step= <integer>
       qp_block_count= <1-65535>
       qp_per_block_count= <1-65535>
       start_qp= <0-16777215>
       qp_step_per_server= <0-16777215>
       frame_size= <90-16383>
       server_block_size= <1-64>
       server_block_size_step= <0-64>

Arguments:

port_handle
                Specifies the port on which RoCEv2 emulated port and servers will
                be created. This argument is `Mandatory`.

mode
                Specifies the action to perform.
                Values::


                 create  Creates and configures RoCEv2 servers on the port
                         specified by port_handle

                 delete  Deletes the RoCEv2 wizard handles on the port
                         specified by handle.

                Default: create

handle
                Specifies a list of RoCEv2 wizard return handles.

override_existing_config
                Specifies whether to override the existing RoCEv2 configuration.
                Possible values are true or false.

enable_pfc
                Specifies to enable/disable PFC on RoCEv2 server.
                Possible values are true or false.
                The default value is false.

enable_ecn_cnp
                Specifies to enable or disable the RoCEv2 protocol.
                Possible values are true or false.
                The default value is true.

cnp_priority_mode
                Specifies the RoCEv2 CNP priority mode.
                Possible values are l2_pcp and l3_dscp.
                The default value is l2_pcp.

priority_queue
                Specifies the priority queues for PFC.
                Possible values are 0, 1, 2, 3, 4, 5, 6 or 7.
                The default value is 0.

ip_ecn_value
                Specifies the early Congestion Notification value
                in the IP Header.
                Possible values are ect_1, ect_0 or ecn_ce.
                The default value is ect_1.

l2_pcp_priority_value
                Specifies the L2 PCP Priority value for CNP.
                Possible values are 0-7.
                The default value is 0.

l3_dscp_priority_value
                Specifies the L3 DSCP Priority value for CNP.
                Possible values are 0-63.
                The default value is 0.

enable_auto_rate_adjust
                Specifies to enable or disable the DCQCN based
                automatic rate adjustment.
                Possible values are true or false.
                The default value is true.

dcqcn_profile_name
                Specifies the DCQCN profile name.
                The default value is Default.

server_device_count
                Specifies the number of servers required per port.
                Possible values are 1-8.
                The default value is 1.

mac_addr
                Specifies the source MAC address of the RoCEv2 server.
                The default value is 00:10:94:00:00:01.

mac_addr_step
                Specifies the source MAC address step of the RoCEv2 server.
                The default value is  00:00:00:00:00:01.

enable_vlan
                Specifies to enable VLAN on the RoCEv2 server.
                Possible values are true or false.
                The default value is true.

start_vlan_id
                Specifies the start VLAN ID for the RoCEv2 packets.
                Possible values are 0-4095.
                The default value is 1.

valn_id_step
                Specifies the VLAN ID step for the RoCEv2 packets.
                Possible values are 0-4095.
                The default value is 0.

vlan_priority
                Specifies the VLAN Priority to be set in the Ethernet header.
                Possible values are 0-7.
                The default value is 0.

ip_dscp_value
                Specifies the DSCP value in the IP header.
                Possible values are 0-63.
                The default value is 0.

ipv4_addr
                Specifies the IPv4 address of the RoCEv2 server.
                The default value is 192.168.100.2.

ipv4_addr_step
                Specifies the IPv4 address step of the RoCEv2 server.
                The default value is 0.0.0.1.

gateway_ipv4_addr
                Specifies the gateway IPv4 address of the RoCEv2 server.
                The default value is 192.168.100.1.

gateway_ipv4_addr_step
                Specifies the gateway IPv4 address step of RoCEv2 server.
                The default value is 0.0.0.1.

start_udp_src_port
                Specifies the start UDP source port number for the
                RoCEv2 packets.
                The default value is 1024.

udp_src_port_step
                Specifies the UDP Source Port step across Queue Pairs.
                Possible values are 0-32767.
                The default value is 0.

qp_block_count
                Specifies the number of queue pair blocks to be
                configured.
                Possible values are 1-65535.
                The default value is 1.

qp_per_block_count
                Specifies the number of queue pairs per block to be
                configured.
                Possible values are 1-65535.
                The default value is 1.

start_qp
                Specifies the start queue pair identifier.
                Possible values are  0-16777215.
                The default value is 100.

qp_step_per_server
                Specifies the queue pair identifier step per server.
                Possible values are  1-65535.
                The default value is 1.

frame_size
                Specifies the size of the frame.
                Possible values are  90-16383.
                The default value is 94.

server_block_size
                Specifies the hard disk block size in kilobits of the
                RoCEv2 server.
                Possible values are  1-64.
                The default value is 4.

server_block_size_step
                Specifies the hard disk block size step in kilobits of the
                RoCEv2 server.
                Possible values are  0-64.
                The default value is 2.
Return Values:

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

status    Success (1) or failure (0) of the operation.
log       An error message (if the operation failed).
Description:

The emulation rocev2 wizard config function adds or deletes the RoCEv2 wizard port, DCQCN profile and server configuration. Use the port_handle argument to specify the port to be added.

For a complete RoCEv2 wizard configuration users must configure both sth::emulation_rocev2_wizard_config and emulation rocev2 wizard traffic config

Examples:

To create an RoCEv2 wizard port, profile and server configuration:

emulation rocev2 wizard config
  mode=                           create
  port_handle=                    port2
  enable_pfc=                     false
  enable_ecn_cnp=                 true
  priority_queue=                 0
  cnp_priority_mode=              "l2_pcp"
  ip_ecn_value=                   "ect_1"
  l2_pcp_priority_value=          0
  l2_dscp_priority_value=         0
  enable_auto_rate_adjust=        true
  dcqcn_profile_name=             Default
  server_device_count=            4
  mac_addr=                       00:10:94:00:00:02
  mac_addr_step=                  00:00:00:00:00:01
  enable_vlan=                    false
  start_vlan_id=                  100
  vlan_id_step=                   1
  vlan_priority=                  1
  ip_dscp_value=                  1
  ipv4_addr=                      10.1.1.3
  ipv4_addr_step=                 0.0.0.1
  gateway_ipv4_addr=              10.1.1.2
  gateway_ipv4_addr_step=         0.0.0.1
  start_udp_src_port=             1024
  udp_src_port_step=              1
  qp_block_count=                 1
  qp_per_block_count=             1
  start_qp=                       300
  qp_step_per_server=             1
  frame_size=                     94
  server_block_size=              1
  server_block_size_step=         1
  qp_udp_src_port=                1024]

Sample Output:

{handle rocev2configgenparams1} {rocev2_port_handle rocev2genportparams1}
{status 1}

End of Procedure Header

emulation rocev2 wizard traffic config

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

Purpose:
Creates and configures RoCEv2 wizard queue pair blocks and adds the traffic.

Synopsis:

Note: M indicates the argument is `Mandatory`.

    emulation rocev2 wizard traffic config
       src_port_handle= <source qp port handle> M
       dst_port_handle= <destination qp port handles> M

Arguments:

src_port_handle
                Specifies the source RoCEv2 generated port on which the queue
                pair blocks will be created and adds them to the traffic.
                This argument is `Mandatory`.

src_port_handle
                Specifies the destination RoCEv2 generated port on which the queue
                pair blocks will be created and adds them to the traffic.
                This argument is `Mandatory`.
Return Values:

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

status    Success (1) or failure (0) of the operation.
log       An error message (if the operation failed).
Description:
The emulation rocev2 wizard traffic config function adds the source and destination queue pair blocks to the traffic and creates streamblocks.

Examples:

To create RoCEv2 wizard traffic configuration:

set device_ret0 [emulation rocev2 wizard config
mode= create port_handle= port1 enable_pfc= false enable_ecn_cnp= true priority_queue= 0 cnp_priority_mode= “l2_pcp” ip_ecn_value= “ect_1” l2_pcp_priority_value= “0” l2_dscp_priority_value= 0 enable_auto_rate_adjust= true dcqcn_profile_name= profile_5 server_device_count= 4 mac_addr= 00:10:94:00:00:01 mac_addr_step= 00:00:00:00:00:01 enable_vlan= false start_vlan_id= 100 vlan_id_step= 1 vlan_priority= 1 ip_dscp_value= 1 ipv4_addr= 10.1.1.2 ipv4_addr_step= 0.0.0.1 gateway_ipv4_addr= 10.1.1.3 gateway_ipv4_addr_step= 0.0.0.1 start_udp_src_port= 1024 udp_src_port_step= 1 qp_block_count= 1 qp_per_block_count= 1 start_qp= 100 qp_step_per_server= 1 frame_size= 94 server_block_size= 1 server_block_size_step= 1 qp_udp_src_port= 1024

]

set device_ret1 [emulation rocev2 wizard config
mode= create port_handle= port2 enable_pfc= false enable_ecn_cnp= true priority_queue= 0 cnp_priority_mode= “l2_pcp” ip_ecn_value= “ect_1” l2_pcp_priority_value= 0 l2_dscp_priority_value= 0 enable_auto_rate_adjust= true dcqcn_profile_name= profile_5 server_device_count= 4 mac_addr= 00:10:94:00:00:02 mac_addr_step= 00:00:00:00:00:01 enable_vlan= false start_vlan_id= 100 vlan_id_step= 1 vlan_priority= 1 ip_dscp_value= 1 ipv4_addr= 10.1.1.3 ipv4_addr_step= 0.0.0.1 gateway_ipv4_addr= 10.1.1.2 gateway_ipv4_addr_step= 0.0.0.1 start_udp_src_port= 1024 udp_src_port_step= 1 qp_block_count= 1 qp_per_block_count= 1 start_qp= 300 qp_step_per_server= 1 frame_size= 94 server_block_size= 1 server_block_size_step= 1 qp_udp_src_port= 1024

]

emulation rocev2 wizard traffic config
src_port_handle= [keylget device_ret0 rocev2_port_handle] dst_port_handle= [keylget device_ret1 rocev2_port_handle]

]

Sample Output:

{port1 {{streamblock_handles {streamblock1 streamblock2 streamblock3 streamblock4}}
{rocev2_server_handles {rocev2serverconfig1 rocev2serverconfig2 rocev2serverconfig3
rocev2serverconfig4}}}} {port2 {{streamblock_handles {streamblock5 streamblock6
streamblock7 streamblock8}} {rocev2_server_handles {rocev2serverconfig5
rocev2serverconfig6 rocev2serverconfig7 rocev2serverconfig8}}}} {status 1}

The following example creates a ManyToOne= configuration.

set device_ret0 [emulation rocev2 wizard config
mode= create port_handle= $port1 enable_pfc= false enable_ecn_cnp= true priority_queue= 0 cnp_priority_mode= “l2_pcp” ip_ecn_value= “ect_1” l2_pcp_priority_value= “0” enable_auto_rate_adjust= true dcqcn_profile_name= Default server_device_count= 4 mac_addr= 00:10:94:00:00:01 mac_addr_step= 00:00:00:00:00:01 enable_vlan= false start_vlan_id= 100 vlan_id_step= 1 vlan_priority= 1 ip_dscp_value= 1 ipv4_addr= 10.1.1.2 ipv4_addr_step= 0.0.0.1 gateway_ipv4_addr= 10.1.1.3 gateway_ipv4_addr_step= 0.0.0.1 start_udp_src_port= 1024 udp_src_port_step= 1 qp_block_count= 1 qp_per_block_count= 1 start_qp= 100 qp_step_per_server= 1 frame_size= 94 server_block_size= 1 server_block_size_step= 1

]

set device_ret1 [emulation rocev2 wizard config
mode= create port_handle= $port2 enable_pfc= false enable_ecn_cnp= true priority_queue= 0 cnp_priority_mode= “l2_pcp” ip_ecn_value= “ect_1” l2_pcp_priority_value= 0 enable_auto_rate_adjust= true dcqcn_profile_name= Default server_device_count= 4 mac_addr= 00:10:94:00:00:02 mac_addr_step= 00:00:00:00:00:01 enable_vlan= false start_vlan_id= 100 vlan_id_step= 1 vlan_priority= 1 ip_dscp_value= 1 ipv4_addr= 10.1.1.3 ipv4_addr_step= 0.0.0.1 gateway_ipv4_addr= 10.1.1.2 gateway_ipv4_addr_step= 0.0.0.1 start_udp_src_port= 1024 udp_src_port_step= 1 qp_block_count= 2 qp_per_block_count= 1 start_qp= 300 qp_step_per_server= 1 frame_size= 94 server_block_size= 1 server_block_size_step= 1

]

emulation rocev2 wizard traffic config
src_port_handle= [keylget device_ret0 rocev2_port_handle] dst_port_handle= [keylget device_ret1 rocev2_port_handle]

]

Sample Output:

{port1 {{streamblock_handles {streamblock1 streamblock2 streamblock3 streamblock4 streamblock5 streamblock6 streamblock7 streamblock8}} {rocev2_server_handles {rocev2serverconfig1 rocev2serverconfig2 rocev2serverconfig3 rocev2serverconfig4}}}} {port2 {{streamblock_handles {streamblock9 streamblock10 streamblock11 streamblock12 streamblock13 streamblock14 streamblock15 streamblock16}} {rocev2_server_handles {rocev2serverconfig5 rocev2serverconfig6 rocev2serverconfig7 rocev2serverconfig8}}}} {status 1}

End of Procedure Header