Add max-pkt-len parameter to dpdk testpmd start 33/11233/8
authorTibor Frank <tifrank@cisco.com>
Tue, 20 Mar 2018 08:54:09 +0000 (09:54 +0100)
committerTibor Frank <tifrank@cisco.com>
Tue, 20 Mar 2018 13:48:33 +0000 (14:48 +0100)
Change-Id: I114c187f007c10223502669c2ba85c63d09cd84a
Signed-off-by: Tibor Frank <tifrank@cisco.com>
18 files changed:
resources/libraries/python/DpdkUtil.py
resources/libraries/python/QemuUtils.py
resources/libraries/robot/performance/performance_configuration.robot
tests/vpp/perf/vm_vhost/10ge2p1x520-dot1q-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr.robot
tests/vpp/perf/vm_vhost/10ge2p1x520-dot1q-l2xcbase-eth-2vhostvr1024-1vm-mrr.robot
tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr.robot
tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdbasemaclrn-eth-2vhostvr256-1vm-mrr.robot
tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-mrr.robot
tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2xcbase-eth-2vhostvr1024-1vm-mrr.robot
tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2xcbase-eth-2vhostvr256-1vm-mrr.robot
tests/vpp/perf/vm_vhost/10ge2p1x520-eth-l2xcbase-eth-4vhostvr1024-2vm-mrr.robot
tests/vpp/perf/vm_vhost/10ge2p1x520-ethip4-ip4base-eth-2vhostvr1024-1vm-mrr.robot
tests/vpp/perf/vm_vhost/10ge2p1x520-ethip4-ip4base-eth-2vhostvr256-1vm-mrr.robot
tests/vpp/perf/vm_vhost/10ge2p1x520-ethip4-ip4base-eth-4vhostvr1024-2vm-mrr.robot
tests/vpp/perf/vm_vhost/10ge2p1x520-ethip4vxlan-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr.robot
tests/vpp/perf/vm_vhost/40ge2p1x710-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr.robot
tests/vpp/perf/vm_vhost/40ge2p1xl710-eth-l2bdbasemaclrn-eth-2vhostvr1024-1vm-mrr.robot
tests/vpp/perf/vm_vhost/40ge2p1xl710-eth-l2bdbasemaclrn-eth-4vhostvr1024-2vm-mrr.robot

index 79e7209..b8c1d15 100644 (file)
@@ -79,8 +79,11 @@ class DpdkUtil(object):
         # Set the hexadecimal bitmask of TX queue flags.
         pmd_txqflags = '--txqflags=0xf00 '
         # Set the number of mbufs to be allocated in the mbuf pools.
-        pmd_total_num_mbufs = '--total-num-mbufs={} '.format(\
+        pmd_total_num_mbufs = '--total-num-mbufs={} '.format(
             args['pmd_num_mbufs']) if args.get('pmd_num_mbufs', '') else ''
+        # Set the max packet length.
+        pmd_max_pkt_len = "--max-pkt-len={0}".format(args["pmd_max_pkt_len"]) \
+            if args.get("pmd_max_pkt_len", "") else ""
         # Set the hexadecimal bitmask of the ports for forwarding.
         pmd_portmask = '--portmask={} '.format(args['pmd_portmask'])\
             if args.get('pmd_portmask', '') else ''
@@ -96,7 +99,7 @@ class DpdkUtil(object):
         pmd_eth_peer_1 = '--eth-peer={} '.format(args['pmd_eth_peer_1'])\
             if args.get('pmd_eth_peer_1', '') else ''
         # Set the number of forwarding cores based on coremask.
-        pmd_nb_cores = '--nb-cores={} '.format(\
+        pmd_nb_cores = '--nb-cores={} '.format(
             bin(int(args['eal_coremask'], 0)).count('1')-1)\
             if args.get('eal_coremask', '') else ''
         pmd_options = '-- '\
@@ -113,7 +116,8 @@ class DpdkUtil(object):
             + pmd_disable_rss\
             + pmd_eth_peer_0\
             + pmd_eth_peer_1\
-            + pmd_nb_cores
+            + pmd_nb_cores\
+            + pmd_max_pkt_len
         return pmd_options
 
     @staticmethod
index aa45ce0..a8c26d6 100644 (file)
@@ -192,16 +192,19 @@ class QemuUtils(object):
         arch = Topology.get_node_arch(node)
         self._qemu_bin = 'qemu-system-{arch}'.format(arch=arch)
 
-    def qemu_add_vhost_user_if(self, socket, server=True, mac=None):
+    def qemu_add_vhost_user_if(self, socket, server=True, mac=None,
+                               jumbo_frames=False):
         """Add Vhost-user interface.
 
         :param socket: Path of the unix socket.
         :param server: If True the socket shall be a listening socket.
         :param mac: Vhost-user interface MAC address (optional, otherwise is
-            used auto-generated MAC 52:54:00:00:xx:yy).
+        used auto-generated MAC 52:54:00:00:xx:yy).
+        :param jumbo_frames: Set True if jumbo frames are used in the test.
         :type socket: str
         :type server: bool
         :type mac: str
+        :type jumbo_frames: bool
         """
         self._vhost_id += 1
         # Create unix socket character device.
@@ -221,7 +224,11 @@ class QemuUtils(object):
             mac = '52:54:00:00:{0:02x}:{1:02x}'.\
                 format(self._qemu_id, self._vhost_id)
         extend_options = 'mq=on,csum=off,gso=off,guest_tso4=off,'\
-            'guest_tso6=off,guest_ecn=off,mrg_rxbuf=off'
+            'guest_tso6=off,guest_ecn=off'
+        if jumbo_frames:
+            extend_options += ",mrg_rxbuf=on"
+        else:
+            extend_options += ",mrg_rxbuf=off"
         # Create Virtio network device.
         device = ' -device virtio-net-pci,netdev=vhost{0},mac={1},{2}'.format(
             self._vhost_id, mac, extend_options)
index ba6c796..43e1a32 100644 (file)
 | | ${port_limit}= | Set Variable | ${65535}
 | | ${acl}= | Set Variable | ipv4 permit
 | | :FOR | ${nr} | IN RANGE | 0 | ${no_hit_aces_number}
-| |      | ${src_ip_int} = | Evaluate | $src_ip_int + $ip_step
-| |      | ${dst_ip_int} = | Evaluate | $dst_ip_int + $ip_step
-| |      | ${sport}= | Evaluate | $sport + $port_step
-| |      | ${dport}= | Evaluate | $dport + $port_step
-| |      | ${ipv4_limit_reached}= | Set Variable If
-| |      | ... | $src_ip_int > $ip_limit_int or $src_ip_int > $ip_limit_int
-| |      | ... | ${True}
-| |      | ${udp_limit_reached}= | Set Variable If
-| |      | ... | $sport > $port_limit or $dport > $port_limit | ${True}
-| |      | Run Keyword If | $ipv4_limit_reached is True | Log
-| |      | ... | Can't do more iterations - IPv4 address limit has been reached.
-| |      | ... | WARN
-| |      | Run Keyword If | $udp_limit_reached is True | Log
-| |      | ... | Can't do more iterations - UDP port limit has been reached.
-| |      | ... | WARN
-| |      | ${src_ip} = | Run Keyword If | $ipv4_limit_reached is True
-| |      | ... | Set Variable | ${ip_limit}
-| |      | ... | ELSE | Evaluate | str(ipaddress.ip_address($src_ip_int))
-| |      | ... | modules=ipaddress
-| |      | ${dst_ip} = | Run Keyword If | $ipv4_limit_reached is True
-| |      | ... | Set Variable | ${ip_limit}
-| |      | ... | ELSE | Evaluate | str(ipaddress.ip_address($dst_ip_int))
-| |      | ... | modules=ipaddress
-| |      | ${sport}= | Set Variable If | ${sport} > $port_limit | $port_limit
-| |      | ... | ${sport}
-| |      | ${dport}= | Set Variable If | ${dport} > $port_limit | $port_limit
-| |      | ... | ${dport}
-| |      | ${acl}= | Catenate | ${acl} | src ${src_ip}/32 dst ${dst_ip}/32
-| |      | ... | sport ${sport} | dport ${dport},
-| |      | Exit For Loop If
-| |      | ... | $ipv4_limit_reached is True or $udp_limit_reached is True
+| | | ${src_ip_int} = | Evaluate | $src_ip_int + $ip_step
+| | | ${dst_ip_int} = | Evaluate | $dst_ip_int + $ip_step
+| | | ${sport}= | Evaluate | $sport + $port_step
+| | | ${dport}= | Evaluate | $dport + $port_step
+| | | ${ipv4_limit_reached}= | Set Variable If
+| | | ... | $src_ip_int > $ip_limit_int or $src_ip_int > $ip_limit_int
+| | | ... | ${True}
+| | | ${udp_limit_reached}= | Set Variable If
+| | | ... | $sport > $port_limit or $dport > $port_limit | ${True}
+| | | Run Keyword If | $ipv4_limit_reached is True | Log
+| | | ... | Can't do more iterations - IPv4 address limit has been reached.
+| | | ... | WARN
+| | | Run Keyword If | $udp_limit_reached is True | Log
+| | | ... | Can't do more iterations - UDP port limit has been reached.
+| | | ... | WARN
+| | | ${src_ip} = | Run Keyword If | $ipv4_limit_reached is True
+| | | ... | Set Variable | ${ip_limit}
+| | | ... | ELSE | Evaluate | str(ipaddress.ip_address($src_ip_int))
+| | | ... | modules=ipaddress
+| | | ${dst_ip} = | Run Keyword If | $ipv4_limit_reached is True
+| | | ... | Set Variable | ${ip_limit}
+| | | ... | ELSE | Evaluate | str(ipaddress.ip_address($dst_ip_int))
+| | | ... | modules=ipaddress
+| | | ${sport}= | Set Variable If | ${sport} > $port_limit | $port_limit
+| | | ... | ${sport}
+| | | ${dport}= | Set Variable If | ${dport} > $port_limit | $port_limit
+| | | ... | ${dport}
+| | | ${acl}= | Catenate | ${acl} | src ${src_ip}/32 dst ${dst_ip}/32
+| | | ... | sport ${sport} | dport ${dport},
+| | | Exit For Loop If
+| | | ... | $ipv4_limit_reached is True or $udp_limit_reached is True
 | | ${acl}= | Catenate | ${acl}
-| | ...     | ipv4 ${acl_action} src ${trex_stream1_subnet},
-| | ...     | ipv4 ${acl_action} src ${trex_stream2_subnet}
+| | ... | ipv4 ${acl_action} src ${trex_stream1_subnet},
+| | ... | ipv4 ${acl_action} src ${trex_stream2_subnet}
 | | Add Replace Acl Multi Entries | ${dut} | rules=${acl}
 | | @{acl_list}= | Create List | ${0}
 | | Run Keyword If | 'input' in $acl_apply_type and $dut_if1 is not None
 | | ... | Type: integer
 | | ... | - qemu_id - Qemu Id when starting more then one guest VM on DUT node.
 | | ... | Type: integer
+| | ... | - jumbo_frames - Set True if jumbo frames are used in the test.
+| | ... | Type: bool
 | | ...
 | | ... | *Example:*
 | | ...
 | | ... | \| qemu_id=${2} \|
 | | ...
 | | [Arguments] | ${dut_node} | ${sock1} | ${sock2} | ${vm_name} | ${skip}=${6}
-| | ... | ${count}=${5} | ${qemu_id}=${1}
+| | ... | ${count}=${5} | ${qemu_id}=${1} | ${jumbo_frames}=${False}
 | | ...
 | | Import Library | resources.libraries.python.QemuUtils | qemu_id=${qemu_id}
 | | ... | WITH NAME | ${vm_name}
 | | ${qemu_cpus}= | Cpu slice of list per node | ${dut_node} | ${dut_numa}
 | | ... | skip_cnt=${skip_cnt} | cpu_cnt=${count} | smt_used=${False}
 | | Run keyword | ${vm_name}.Qemu Add Vhost User If | ${sock1}
+| | ... | jumbo_frames=${jumbo_frames}
 | | Run keyword | ${vm_name}.Qemu Add Vhost User If | ${sock2}
+| | ... | jumbo_frames=${jumbo_frames}
 | | ${apply_patch}= | Set Variable If | "${perf_qemu_qsz}" == "256" | ${False}
 | | ... | ${True}
 | | Run Keyword Unless | ${qemu_built} | ${vm_name}.Build QEMU | ${dut_node}
 | | ${vm}= | Run keyword | ${vm_name}.Qemu Start
 | | Run keyword | ${vm_name}.Qemu Set Affinity | @{qemu_cpus}
 | | Run keyword If | ${use_tuned_cfs} | ${vm_name}.Qemu Set Scheduler Policy
+| | ${max_pkt_len}= | Set Variable If | ${jumbo_frames} | 9000 | ${EMPTY}
 | | Dpdk Testpmd Start | ${vm} | eal_coremask=0x1f | eal_mem_channels=4
 | | ... | pmd_fwd_mode=io | pmd_disable_hw_vlan=${True}
 | | ... | pmd_txd=${perf_qemu_qsz} | pmd_rxd=${perf_qemu_qsz}
+| | ... | pmd_max_pkt_len=${max_pkt_len}
 | | Return From Keyword | ${vm}
 
 | Configure '${nr}' guest VMs with dpdk-testpmd connected via vhost-user in 3-node circular topology
 | | ... | - ${system_cpus} - Number of CPUs allocated for OS itself.
 | | ... | - ${vpp_cpus} - Number of CPUs allocated for VPP.
 | | ... | - ${vm_cpus} - Number of CPUs to be allocated per QEMU instance.
+| | ... | - ${jumbo_frames} - Jumbo frames are used (True) or are not used
+| | ... | (False) in the test.
 | | ...
 | | ... | *Example:*
 | | ...
-| | ... | \| Configure '2' guest VMs with dpdk-testpmd connected via vhost-user \
+| | ... | \| Configure '2' guest VMs with dpdk-testpmd connected via vhost-user\
 | | ... | in 3-node circular topology \|
 | | ...
 | | :FOR | ${number} | IN RANGE | 1 | ${nr}+1
 | | | ${vm1}= | Configure guest VM with dpdk-testpmd connected via vhost-user
 | | | ... | ${dut1} | ${sock1} | ${sock2} | DUT1_VM${number}
 | | | ... | skip=${skip_cpus} | count=${vm_cpus} | qemu_id=${number}
+| | | ... | jumbo_frames=${jumbo_frames}
 | | | Set To Dictionary | ${dut1_vm_refs} | DUT1_VM${number} | ${vm1}
 | | | ${vm2}= | Configure guest VM with dpdk-testpmd connected via vhost-user
 | | | ... | ${dut2} | ${sock1} | ${sock2} | DUT2_VM${number}
 | | | ... | skip=${skip_cpus} | count=${vm_cpus} | qemu_id=${number}
+| | | ... | jumbo_frames=${jumbo_frames}
 | | | Set To Dictionary | ${dut2_vm_refs} | DUT2_VM${number} | ${vm2}
 | | | Run Keyword Unless | ${qemu_built} | Set Suite Variable | ${qemu_built}
 | | | ... | ${True}
 | | ... | - vm_name - QemuUtil instance name. Type: string
 | | ... | - skip - number of cpus which will be skipped. Type: int
 | | ... | - count - number of cpus which will be allocated for qemu. Type: int
+| | ... | - jumbo_frames - Set True if jumbo frames are used in the test.
+| | ... | Type: bool
 | | ...
 | | ... | *Example:*
 | | ...
 | | ... | \| ${6} \| ${5} \|
 | | ...
 | | [Arguments] | ${dut_node} | ${sock1} | ${sock2} | ${vm_name} | ${skip}=${6}
-| | ... | ${count}=${5}
+| | ... | ${count}=${5} | ${jumbo_frames}=${False}
 | | ...
 | | Import Library | resources.libraries.python.QemuUtils
 | | ... | WITH NAME | ${vm_name}
 | | ... | skip_cnt=${skip} | cpu_cnt=${count} | smt_used=${True}
 | | Run keyword | ${vm_name}.Qemu Add Vhost User If | ${sock1}
 | | Run keyword | ${vm_name}.Qemu Add Vhost User If | ${sock2}
+| | Run keyword | ${vm_name}.Qemu Add Vhost User If | ${sock1}
+| | ... | jumbo_frames=${jumbo_frames}
+| | Run keyword | ${vm_name}.Qemu Add Vhost User If | ${sock2}
+| | ... | jumbo_frames=${jumbo_frames}
 | | ${apply_patch}= | Set Variable If | "${perf_qemu_qsz}" == "256" | ${False}
 | | ... | ${True}
 | | Run Keyword Unless | ${qemu_built} | ${vm_name}.Build QEMU | ${dut_node}
 | | ${vm}= | Run keyword | ${vm_name}.Qemu Start
 | | Run keyword | ${vm_name}.Qemu Set Affinity | @{qemu_cpus}
 | | Run keyword If | ${use_tuned_cfs} | ${vm_name}.Qemu Set Scheduler Policy
+| | ${max_pkt_len}= | Set Variable If | ${jumbo_frames} | 9000 | ${EMPTY}
 | | Dpdk Testpmd Start | ${vm} | eal_coremask=0x1f | eal_mem_channels=4
 | | ... | pmd_fwd_mode=io | pmd_disable_hw_vlan=${True}
 | | ... | pmd_txd=${perf_qemu_qsz} | pmd_rxd=${perf_qemu_qsz}
+| | ... | pmd_max_pkt_len=${max_pkt_len}
 | | Return From Keyword | ${vm}
 
 | Configure guest VM with dpdk-testpmd-mac connected via vhost-user
 | | ... | Type: integer
 | | ... | - qemu_id - Qemu Id when starting more then one guest VM on DUT node.
 | | ... | Type: integer
+| | ... | - jumbo_frames - Set True if jumbo frames are used in the test.
+| | ... | Type: bool
 | | ...
 | | ... | *Example:*
 | | ...
 | | ...
 | | [Arguments] | ${dut_node} | ${sock1} | ${sock2} | ${vm_name}
 | | ... | ${eth0_mac} | ${eth1_mac} | ${skip}=${6} | ${count}=${5}
-| | ... | ${qemu_id}=${1}
+| | ... | ${qemu_id}=${1} | ${jumbo_frames}=${False}
 | | ...
 | | Import Library | resources.libraries.python.QemuUtils | qemu_id=${qemu_id}
 | | ... | WITH NAME | ${vm_name}
 | | ... | skip_cnt=${skip_cnt} | cpu_cnt=${count} | smt_used=${False}
 | | Run keyword | ${vm_name}.Qemu Add Vhost User If | ${sock1}
 | | Run keyword | ${vm_name}.Qemu Add Vhost User If | ${sock2}
+| | Run keyword | ${vm_name}.Qemu Add Vhost User If | ${sock1}
+| | ... | jumbo_frames=${jumbo_frames}
+| | Run keyword | ${vm_name}.Qemu Add Vhost User If | ${sock2}
+| | ... | jumbo_frames=${jumbo_frames}
 | | ${apply_patch}= | Set Variable If | "${perf_qemu_qsz}" == "256" | ${False}
 | | ... | ${True}
 | | Run Keyword Unless | ${qemu_built} | ${vm_name}.Build QEMU | ${dut_node}
 | | ${vm}= | Run keyword | ${vm_name}.Qemu Start
 | | Run keyword | ${vm_name}.Qemu Set Affinity | @{qemu_cpus}
 | | Run keyword If | ${use_tuned_cfs} | ${vm_name}.Qemu Set Scheduler Policy
+| | ${max_pkt_len}= | Set Variable If | ${jumbo_frames} | 9000 | ${EMPTY}
 | | Dpdk Testpmd Start | ${vm} | eal_coremask=0x1f
 | | ... | eal_mem_channels=4 | pmd_fwd_mode=mac | pmd_eth_peer_0=0,${eth0_mac}
 | | ... | pmd_eth_peer_1=1,${eth1_mac} | pmd_disable_hw_vlan=${True}
 | | ... | pmd_txd=${perf_qemu_qsz} | pmd_rxd=${perf_qemu_qsz}
+| | ... | pmd_max_pkt_len=${max_pkt_len}
 | | Return From Keyword | ${vm}
 
 | Configure '${nr}' guest VMs with dpdk-testpmd-mac connected via vhost-user in 3-node circular topology
 | | ... | - ${system_cpus} - Number of CPUs allocated for OS itself.
 | | ... | - ${vpp_cpus} - Number of CPUs allocated for VPP.
 | | ... | - ${vm_cpus} - Number of CPUs to be allocated per QEMU instance.
+| | ... | - ${jumbo_frames} - Jumbo frames are used (True) or are not used
+| | ... | (False) in the test.
 | | ...
 | | ... | *Example:*
 | | ...
-| | ... | \| Configure '2' guest VMs with dpdk-testpmd-mac connected via vhost-user \
+| | ... | \| Configure '2' guest VMs with dpdk-testpmd-mac connected via vhost-user\
 | | ... | in 3-node circular topology \|
 | | ...
 | | :FOR | ${number} | IN RANGE | 1 | ${nr}+1
 | | | ... | ${dut1-vhost-${number}-if1_mac}
 | | | ... | ${dut1-vhost-${number}-if2_mac} | skip=${skip_cpus}
 | | | ... | count=${vm_cpus} | qemu_id=${number}
+| | | ... | jumbo_frames=${jumbo_frames}
 | | | Set To Dictionary | ${dut1_vm_refs} | DUT1_VM${number} | ${vm1}
 | | | ${vm2}=
 | | | ... | Configure guest VM with dpdk-testpmd-mac connected via vhost-user
 | | | ... | ${dut2-vhost-${number}-if1_mac}
 | | | ... | ${dut2-vhost-${number}-if2_mac} | skip=${skip_cpus}
 | | | ... | count=${vm_cpus} | qemu_id=${number}
+| | | ... | jumbo_frames=${jumbo_frames}
 | | | Set To Dictionary | ${dut2_vm_refs} | DUT2_VM${number} | ${vm2}
 | | | Run Keyword Unless | ${qemu_built} | Set Suite Variable | ${qemu_built}
 | | | ... | ${True}
 | | ... | - eth1_mac - MAC address of second Vhost interface. Type: string
 | | ... | - skip - number of cpus which will be skipped. Type: int
 | | ... | - count - number of cpus which will be allocated for qemu. Type: int
+| | ... | - jumbo_frames - Set True if jumbo frames are used in the test.
+| | ... | Type: bool
 | | ...
 | | ... | *Example:*
 | | ...
 | | ...
 | | [Arguments] | ${dut_node} | ${sock1} | ${sock2} | ${vm_name}
 | | ... | ${eth0_mac} | ${eth1_mac} | ${skip}=${6} | ${count}=${5}
+| | ... | ${jumbo_frames}=${False}
 | | ...
 | | Import Library | resources.libraries.python.QemuUtils
 | | ... | WITH NAME | ${vm_name}
 | | ... | skip_cnt=${skip} | cpu_cnt=${count} | smt_used=${True}
 | | Run keyword | ${vm_name}.Qemu Add Vhost User If | ${sock1}
 | | Run keyword | ${vm_name}.Qemu Add Vhost User If | ${sock2}
+| | Run keyword | ${vm_name}.Qemu Add Vhost User If | ${sock1}
+| | ... | jumbo_frames=${jumbo_frames}
+| | Run keyword | ${vm_name}.Qemu Add Vhost User If | ${sock2}
+| | ... | jumbo_frames=${jumbo_frames}
 | | ${apply_patch}= | Set Variable If | "${perf_qemu_qsz}" == "256" | ${False}
 | | ... | ${True}
 | | Run Keyword Unless | ${qemu_built} | ${vm_name}.Build QEMU | ${dut_node}
 | | ${vm}= | Run keyword | ${vm_name}.Qemu Start
 | | Run keyword | ${vm_name}.Qemu Set Affinity | @{qemu_cpus}
 | | Run keyword If | ${use_tuned_cfs} | ${vm_name}.Qemu Set Scheduler Policy
+| | ${max_pkt_len}= | Set Variable If | ${jumbo_frames} | 9000 | ${EMPTY}
 | | Dpdk Testpmd Start | ${vm} | eal_coremask=0x1f
 | | ... | eal_mem_channels=4 | pmd_fwd_mode=mac | pmd_eth_peer_0=0,${eth0_mac}
 | | ... | pmd_eth_peer_1=1,${eth1_mac} | pmd_disable_hw_vlan=${True}
 | | ... | pmd_txd=${perf_qemu_qsz} | pmd_rxd=${perf_qemu_qsz}
+| | ... | pmd_max_pkt_len=${max_pkt_len}
 | | Return From Keyword | ${vm}
 
 | Configure guest VM with linux bridge connected via vhost-user
 | | Set Interface State | ${dut2} | ${dut2_if1} | up
 | | Set Interface State | ${dut2} | ${dut2_if2} | up
 | | :FOR | ${number} | IN RANGE | 1 | ${nr}+1
-| |      | ${sock1}= | Set Variable | memif-DUT1_VNF
-| |      | ${sock2}= | Set Variable | memif-DUT1_VNF
-| |      | ${prev_index}= | Evaluate | ${number}-1
-| |      | Set up memif interfaces on DUT node | ${dut1}
-| |      | ... | ${sock1} | ${sock2} | ${number} | dut1-memif-${number}-if1
-| |      | ... | dut1-memif-${number}-if2
-| |      | ${dut1_xconnect_if1}= | Set Variable If | ${number}==1 | ${dut1_if1}
-| |      | ... | ${dut1-memif-${prev_index}-if2}
-| |      | Configure L2XC | ${dut1} | ${dut1_xconnect_if1}
-| |      | ... | ${dut1-memif-${number}-if1}
-| |      | ${sock1}= | Set Variable | memif-DUT2_VNF
-| |      | ${sock2}= | Set Variable | memif-DUT2_VNF
-| |      | Set up memif interfaces on DUT node | ${dut2}
-| |      | ... | ${sock1} | ${sock2} | ${number} | dut2-memif-${number}-if1
-| |      | ... | dut2-memif-${number}-if2
-| |      | ${dut2_xconnect_if1}= | Set Variable If | ${number}==1 | ${dut2_if1}
-| |      | ... | ${dut2-memif-${prev_index}-if2}
-| |      | Configure L2XC | ${dut2} | ${dut2_xconnect_if1}
-| |      | ... | ${dut2-memif-${number}-if1}
-| |      | Run Keyword If | ${number}==${nr} | Configure L2XC
-| |      | ... | ${dut1} | ${dut1-memif-${number}-if2} | ${dut1_if2}
-| |      | Run Keyword If | ${number}==${nr} | Configure L2XC
-| |      | ... | ${dut2} | ${dut2-memif-${number}-if2} | ${dut2_if2}
+| | | ${sock1}= | Set Variable | memif-DUT1_VNF
+| | | ${sock2}= | Set Variable | memif-DUT1_VNF
+| | | ${prev_index}= | Evaluate | ${number}-1
+| | | Set up memif interfaces on DUT node | ${dut1}
+| | | ... | ${sock1} | ${sock2} | ${number} | dut1-memif-${number}-if1
+| | | ... | dut1-memif-${number}-if2
+| | | ${dut1_xconnect_if1}= | Set Variable If | ${number}==1 | ${dut1_if1}
+| | | ... | ${dut1-memif-${prev_index}-if2}
+| | | Configure L2XC | ${dut1} | ${dut1_xconnect_if1}
+| | | ... | ${dut1-memif-${number}-if1}
+| | | ${sock1}= | Set Variable | memif-DUT2_VNF
+| | | ${sock2}= | Set Variable | memif-DUT2_VNF
+| | | Set up memif interfaces on DUT node | ${dut2}
+| | | ... | ${sock1} | ${sock2} | ${number} | dut2-memif-${number}-if1
+| | | ... | dut2-memif-${number}-if2
+| | | ${dut2_xconnect_if1}= | Set Variable If | ${number}==1 | ${dut2_if1}
+| | | ... | ${dut2-memif-${prev_index}-if2}
+| | | Configure L2XC | ${dut2} | ${dut2_xconnect_if1}
+| | | ... | ${dut2-memif-${number}-if1}
+| | | Run Keyword If | ${number}==${nr} | Configure L2XC
+| | | ... | ${dut1} | ${dut1-memif-${number}-if2} | ${dut1_if2}
+| | | Run Keyword If | ${number}==${nr} | Configure L2XC
+| | | ... | ${dut2} | ${dut2-memif-${number}-if2} | ${dut2_if2}
 
 | Initialize L2 Bridge Domain for '${nr}' memif pairs in 3-node circular topology
 | | [Documentation]
index 6bd1886..e0762d5 100644 (file)
@@ -81,6 +81,8 @@
 | | ${dut2_vm_refs}= | Create Dictionary
 | | Set Test Variable | ${dut1_vm_refs}
 | | Set Test Variable | ${dut2_vm_refs}
+| | ${jumbo_frames}= | Set Variable If | ${get_framesize} < ${1522}
+| | ... | ${False} | ${True}
 | | ...
 | | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
 | | And Add PCI devices to DUTs in 3-node single link topology
 | | ... | ${tag_rewrite}
 | | ${vm1}= | And Configure guest VM with dpdk-testpmd connected via vhost-user
 | | ... | ${dut1} | ${sock1} | ${sock2} | DUT1_VM1
+| | ... | jumbo_frames=${jumbo_frames}
 | | Set To Dictionary | ${dut1_vm_refs} | DUT1_VM1 | ${vm1}
 | | ${vm2}= | And Configure guest VM with dpdk-testpmd connected via vhost-user
 | | ... | ${dut2} | ${sock1} | ${sock2} | DUT2_VM1
+| | ... | jumbo_frames=${jumbo_frames}
 | | Set To Dictionary | ${dut2_vm_refs} | DUT2_VM1 | ${vm2}
 | | Run Keyword Unless | ${qemu_built} | Set Suite Variable | ${qemu_built}
 | | ... | ${True}
index 30d21d0..db60a21 100644 (file)
@@ -78,6 +78,8 @@
 | | ${dut2_vm_refs}= | Create Dictionary
 | | Set Test Variable | ${dut1_vm_refs}
 | | Set Test Variable | ${dut2_vm_refs}
+| | ${jumbo_frames}= | Set Variable If | ${get_framesize} < ${1522}
+| | ... | ${False} | ${True}
 | | ...
 | | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
 | | And Add PCI devices to DUTs in 3-node single link topology
 | | ... | ${sock1} | ${sock2} | ${subid} | ${tag_rewrite}
 | | ${vm1}= | And Configure guest VM with dpdk-testpmd connected via vhost-user
 | | ... | ${dut1} | ${sock1} | ${sock2} | DUT1_VM1
+| | ... | jumbo_frames=${jumbo_frames}
 | | Set To Dictionary | ${dut1_vm_refs} | DUT1_VM1 | ${vm1}
 | | ${vm2}= | And Configure guest VM with dpdk-testpmd connected via vhost-user
 | | ... | ${dut2} | ${sock1} | ${sock2} | DUT2_VM1
+| | ... | jumbo_frames=${jumbo_frames}
 | | Set To Dictionary | ${dut2_vm_refs} | DUT2_VM1 | ${vm2}
 | | Run Keyword Unless | ${qemu_built} | Set Suite Variable | ${qemu_built}
 | | ... | ${True}
index e8a8b83..ea2958b 100644 (file)
@@ -78,6 +78,8 @@
 | | ${dut2_vm_refs}= | Create Dictionary
 | | Set Test Variable | ${dut1_vm_refs}
 | | Set Test Variable | ${dut2_vm_refs}
+| | ${jumbo_frames}= | Set Variable If | ${get_framesize} < ${1522}
+| | ... | ${False} | ${True}
 | | ...
 | | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
 | | And Add PCI devices to DUTs in 3-node single link topology
 | | ... | ${bd_id1} | ${bd_id2} | ${sock1} | ${sock2}
 | | ${vm1}= | And Configure guest VM with dpdk-testpmd connected via vhost-user
 | | ... | ${dut1} | ${sock1} | ${sock2} | DUT1_VM1
+| | ... | jumbo_frames=${jumbo_frames}
 | | Set To Dictionary | ${dut1_vm_refs} | DUT1_VM1 | ${vm1}
 | | ${vm2}= | And Configure guest VM with dpdk-testpmd connected via vhost-user
 | | ... | ${dut2} | ${sock1} | ${sock2} | DUT2_VM1
+| | ... | jumbo_frames=${jumbo_frames}
 | | Set To Dictionary | ${dut2_vm_refs} | DUT2_VM1 | ${vm2}
 | | Run Keyword Unless | ${qemu_built} | Set Suite Variable | ${qemu_built}
 | | ... | ${True}
index 9af5491..3b28754 100644 (file)
@@ -79,6 +79,8 @@
 | | ${dut2_vm_refs}= | Create Dictionary
 | | Set Test Variable | ${dut1_vm_refs}
 | | Set Test Variable | ${dut2_vm_refs}
+| | ${jumbo_frames}= | Set Variable If | ${get_framesize} < ${1522}
+| | ... | ${False} | ${True}
 | | ...
 | | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
 | | And Add PCI devices to DUTs in 3-node single link topology
 | | ... | ${bd_id1} | ${bd_id2} | ${sock1} | ${sock2}
 | | ${vm1}= | And Configure guest VM with dpdk-testpmd connected via vhost-user
 | | ... | ${dut1} | ${sock1} | ${sock2} | DUT1_VM1
+| | ... | jumbo_frames=${jumbo_frames}
 | | Set To Dictionary | ${dut1_vm_refs} | DUT1_VM1 | ${vm1}
 | | ${vm2}= | And Configure guest VM with dpdk-testpmd connected via vhost-user
 | | ... | ${dut2} | ${sock1} | ${sock2} | DUT2_VM1
+| | ... | jumbo_frames=${jumbo_frames}
 | | Set To Dictionary | ${dut2_vm_refs} | DUT2_VM1 | ${vm2}
 | | Run Keyword Unless | ${qemu_built} | Set Suite Variable | ${qemu_built}
 | | ... | ${True}
index 211c417..74f5f29 100644 (file)
@@ -76,6 +76,9 @@
 | | ${dut2_vm_refs}= | Create Dictionary
 | | Set Test Variable | ${dut1_vm_refs}
 | | Set Test Variable | ${dut2_vm_refs}
+| | ${jumbo_frames}= | Set Variable If | ${get_framesize} < ${1522}
+| | ... | ${False} | ${True}
+| | Set Test Variable | ${jumbo_frames}
 | | ...
 | | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
 | | And Add PCI devices to DUTs in 3-node single link topology
index fbd0d3f..4d2ca42 100644 (file)
@@ -75,6 +75,8 @@
 | | ${dut2_vm_refs}= | Create Dictionary
 | | Set Test Variable | ${dut1_vm_refs}
 | | Set Test Variable | ${dut2_vm_refs}
+| | ${jumbo_frames}= | Set Variable If | ${get_framesize} < ${1522}
+| | ... | ${False} | ${True}
 | | ...
 | | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
 | | And Add PCI devices to DUTs in 3-node single link topology
 | | ... | ${sock1} | ${sock2}
 | | ${vm1}= | And Configure guest VM with dpdk-testpmd connected via vhost-user
 | | ... | ${dut1} | ${sock1} | ${sock2} | DUT1_VM1
+| | ... | jumbo_frames=${jumbo_frames}
 | | Set To Dictionary | ${dut1_vm_refs} | DUT1_VM1 | ${vm1}
 | | ${vm2}= | And Configure guest VM with dpdk-testpmd connected via vhost-user
 | | ... | ${dut2} | ${sock1} | ${sock2} | DUT2_VM1
+| | ... | jumbo_frames=${jumbo_frames}
 | | Set To Dictionary | ${dut2_vm_refs} | DUT2_VM1 | ${vm2}
 | | Run Keyword Unless | ${qemu_built} | Set Suite Variable | ${qemu_built}
 | | ... | ${True}
index d0d57be..91590e7 100644 (file)
@@ -76,6 +76,8 @@
 | | ${dut2_vm_refs}= | Create Dictionary
 | | Set Test Variable | ${dut1_vm_refs}
 | | Set Test Variable | ${dut2_vm_refs}
+| | ${jumbo_frames}= | Set Variable If | ${get_framesize} < ${1522}
+| | ... | ${False} | ${True}
 | | ...
 | | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
 | | And Add PCI devices to DUTs in 3-node single link topology
 | | ... | ${sock1} | ${sock2}
 | | ${vm1}= | And Configure guest VM with dpdk-testpmd connected via vhost-user
 | | ... | ${dut1} | ${sock1} | ${sock2} | DUT1_VM1
+| | ... | jumbo_frames=${jumbo_frames}
 | | Set To Dictionary | ${dut1_vm_refs} | DUT1_VM1 | ${vm1}
 | | ${vm2}= | And Configure guest VM with dpdk-testpmd connected via vhost-user
 | | ... | ${dut2} | ${sock1} | ${sock2} | DUT2_VM1
+| | ... | jumbo_frames=${jumbo_frames}
 | | Set To Dictionary | ${dut2_vm_refs} | DUT2_VM1 | ${vm2}
 | | Run Keyword Unless | ${qemu_built} | Set Suite Variable | ${qemu_built}
 | | ... | ${True}
index 0e1d1aa..b01648c 100644 (file)
@@ -76,6 +76,9 @@
 | | ${dut2_vm_refs}= | Create Dictionary
 | | Set Test Variable | ${dut1_vm_refs}
 | | Set Test Variable | ${dut2_vm_refs}
+| | ${jumbo_frames}= | Set Variable If | ${get_framesize} < ${1522}
+| | ... | ${False} | ${True}
+| | Set Test Variable | ${jumbo_frames}
 | | ...
 | | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
 | | And Add PCI devices to DUTs in 3-node single link topology
index a4129a4..d242bd7 100644 (file)
@@ -78,6 +78,8 @@
 | | ${dut2_vm_refs}= | Create Dictionary
 | | Set Test Variable | ${dut1_vm_refs}
 | | Set Test Variable | ${dut2_vm_refs}
+| | ${jumbo_frames}= | Set Variable If | ${get_framesize} < ${1522}
+| | ... | ${False} | ${True}
 | | ...
 | | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
 | | And Add PCI devices to DUTs in 3-node single link topology
 | | ... | ${sock1} | ${sock2}
 | | ${vm1}= | And Configure guest VM with dpdk-testpmd-mac connected via vhost-user
 | | ... | ${dut1} | ${sock1} | ${sock2} | DUT1_VM1 | ${dut1_vif1_mac}
-| | ... | ${dut1_vif2_mac}
+| | ... | ${dut1_vif2_mac} | jumbo_frames=${jumbo_frames}
 | | Set To Dictionary | ${dut1_vm_refs} | DUT1_VM1 | ${vm1}
 | | ${vm2}= | And Configure guest VM with dpdk-testpmd-mac connected via vhost-user
 | | ... | ${dut2} | ${sock1} | ${sock2} | DUT2_VM1 | ${dut2_vif1_mac}
-| | ... | ${dut2_vif2_mac}
+| | ... | ${dut2_vif2_mac} | jumbo_frames=${jumbo_frames}
 | | Set To Dictionary | ${dut2_vm_refs} | DUT2_VM1 | ${vm2}
 | | Run Keyword Unless | ${qemu_built} | Set Suite Variable | ${qemu_built}
 | | ... | ${True}
index 889cfd2..2949e9f 100644 (file)
@@ -79,6 +79,8 @@
 | | ${dut2_vm_refs}= | Create Dictionary
 | | Set Test Variable | ${dut1_vm_refs}
 | | Set Test Variable | ${dut2_vm_refs}
+| | ${jumbo_frames}= | Set Variable If | ${get_framesize} < ${1522}
+| | ... | ${False} | ${True}
 | | ...
 | | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
 | | And Add PCI devices to DUTs in 3-node single link topology
@@ -89,7 +91,7 @@
 | | ... | ${sock1} | ${sock2}
 | | ${vm1}= | And Configure guest VM with dpdk-testpmd-mac connected via vhost-user
 | | ... | ${dut1} | ${sock1} | ${sock2} | DUT1_VM1 | ${dut1_vif1_mac}
-| | ... | ${dut1_vif2_mac}
+| | ... | ${dut1_vif2_mac} | jumbo_frames=${jumbo_frames}
 | | Set To Dictionary | ${dut1_vm_refs} | DUT1_VM1 | ${vm1}
 | | ${vm2}= | And Configure guest VM with dpdk-testpmd-mac connected via vhost-user
 | | ... | ${dut2} | ${sock1} | ${sock2} | DUT2_VM1 | ${dut2_vif1_mac}
index c2f4158..3e10115 100644 (file)
@@ -82,6 +82,9 @@
 | | ${dut2_vm_refs}= | Create Dictionary
 | | Set Test Variable | ${dut1_vm_refs}
 | | Set Test Variable | ${dut2_vm_refs}
+| | ${jumbo_frames}= | Set Variable If | ${get_framesize} < ${1522}
+| | ... | ${False} | ${True}
+| | Set Test Variable | ${jumbo_frames}
 | | ...
 | | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
 | | And Add PCI devices to DUTs in 3-node single link topology
index 1e7b089..4538a53 100644 (file)
@@ -83,6 +83,8 @@
 | | ${dut2_vm_refs}= | Create Dictionary
 | | Set Test Variable | ${dut1_vm_refs}
 | | Set Test Variable | ${dut2_vm_refs}
+| | ${jumbo_frames}= | Set Variable If | ${get_framesize} < ${1522}
+| | ... | ${False} | ${True}
 | | ...
 | | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
 | | And Add PCI devices to DUTs in 3-node single link topology
 | | ... | ${bd_id1} | ${bd_id2} | ${sock1} | ${sock2}
 | | ${vm1}= | And Configure guest VM with dpdk-testpmd connected via vhost-user
 | | ... | ${dut1} | ${sock1} | ${sock2} | DUT1_VM1
+| | ... | jumbo_frames=${jumbo_frames}
 | | Set To Dictionary | ${dut1_vm_refs} | DUT1_VM1 | ${vm1}
 | | ${vm2}= | And Configure guest VM with dpdk-testpmd connected via vhost-user
 | | ... | ${dut2} | ${sock1} | ${sock2} | DUT2_VM1
+| | ... | jumbo_frames=${jumbo_frames}
 | | Set To Dictionary | ${dut2_vm_refs} | DUT2_VM1 | ${vm2}
 | | Run Keyword Unless | ${qemu_built} | Set Suite Variable | ${qemu_built}
 | | ... | ${True}
index 44f7da5..cb34f35 100644 (file)
@@ -77,6 +77,8 @@
 | | ${dut2_vm_refs}= | Create Dictionary
 | | Set Test Variable | ${dut1_vm_refs}
 | | Set Test Variable | ${dut2_vm_refs}
+| | ${jumbo_frames}= | Set Variable If | ${get_framesize} < ${1522}
+| | ... | ${False} | ${True}
 | | ...
 | | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
 | | And Add PCI devices to DUTs in 3-node single link topology
 | | ... | ${bd_id1} | ${bd_id2} | ${sock1} | ${sock2}
 | | ${vm1}= | And Configure guest VM with dpdk-testpmd connected via vhost-user
 | | ... | ${dut1} | ${sock1} | ${sock2} | DUT1_VM1
+| | ... | jumbo_frames=${jumbo_frames}
 | | Set To Dictionary | ${dut1_vm_refs} | DUT1_VM1 | ${vm1}
 | | ${vm2}= | And Configure guest VM with dpdk-testpmd connected via vhost-user
 | | ... | ${dut2} | ${sock1} | ${sock2} | DUT2_VM1
+| | ... | jumbo_frames=${jumbo_frames}
 | | Set To Dictionary | ${dut2_vm_refs} | DUT2_VM1 | ${vm2}
 | | Run Keyword Unless | ${qemu_built} | Set Suite Variable | ${qemu_built}
 | | ... | ${True}
index b574449..0875c9a 100644 (file)
@@ -81,6 +81,8 @@
 | | ${dut2_vm_refs}= | Create Dictionary
 | | Set Test Variable | ${dut1_vm_refs}
 | | Set Test Variable | ${dut2_vm_refs}
+| | ${jumbo_frames}= | Set Variable If | ${get_framesize} < ${1522}
+| | ... | ${False} | ${True}
 | | ...
 | | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
 | | And Add PCI devices to DUTs in 3-node single link topology
 | | ... | ${bd_id1} | ${bd_id2} | ${sock1} | ${sock2}
 | | ${vm1}= | And Configure guest VM with dpdk-testpmd connected via vhost-user
 | | ... | ${dut1} | ${sock1} | ${sock2} | DUT1_VM1
+| | ... | jumbo_frames=${jumbo_frames}
 | | Set To Dictionary | ${dut1_vm_refs} | DUT1_VM1 | ${vm1}
 | | ${vm2}= | And Configure guest VM with dpdk-testpmd connected via vhost-user
 | | ... | ${dut2} | ${sock1} | ${sock2} | DUT2_VM1
+| | ... | jumbo_frames=${jumbo_frames}
 | | Set To Dictionary | ${dut2_vm_refs} | DUT2_VM1 | ${vm2}
 | | Run Keyword Unless | ${qemu_built} | Set Suite Variable | ${qemu_built}
 | | ... | ${True}
index 5e53d57..3d38724 100644 (file)
@@ -80,6 +80,9 @@
 | | ${dut2_vm_refs}= | Create Dictionary
 | | Set Test Variable | ${dut1_vm_refs}
 | | Set Test Variable | ${dut2_vm_refs}
+| | ${jumbo_frames}= | Set Variable If | ${get_framesize} < ${1522}
+| | ... | ${False} | ${True}
+| | Set Test Variable | ${jumbo_frames}
 | | ...
 | | Given Add '${wt}' worker threads and '${rxq}' rxqueues in 3-node single-link circular topology
 | | And Add PCI devices to DUTs in 3-node single link topology