Aligning FUNC/PERF keywords - Data driven 65/20565/11
authorPeter Mikus <pmikus@cisco.com>
Tue, 9 Jul 2019 14:28:27 +0000 (14:28 +0000)
committerPeter Mikus <pmikus@cisco.com>
Thu, 11 Jul 2019 06:41:16 +0000 (06:41 +0000)
Change-Id: I233c8908c724556db09c60de6efa9237068fb4c3
Signed-off-by: Peter Mikus <pmikus@cisco.com>
25 files changed:
resources/libraries/robot/shared/default.robot
tests/vpp/device/__init__.robot
tests/vpp/device/container_memif/eth2p-ethicmpv4-ip4base-eth-2memif-1dcr-dev.robot [moved from tests/vpp/device/container_memif/eth2p-ethip4-ip4base-eth-2memif-1dcr-dev.robot with 78% similarity]
tests/vpp/device/container_memif/eth2p-ethicmpv4-l2bdbasemaclrn-eth-2memif-1dcr-dev.robot [moved from tests/vpp/device/container_memif/eth2p-eth-l2bdbasemaclrn-eth-2memif-1dcr-dev.robot with 66% similarity]
tests/vpp/device/container_memif/eth2p-ethicmpv4-l2xcbase-eth-2memif-1dcr-dev.robot [moved from tests/vpp/device/container_memif/eth2p-eth-l2xcbase-eth-2memif-1dcr-dev.robot with 66% similarity]
tests/vpp/device/container_memif/eth2p-ethicmpv6-ip6base-eth-2memif-1dcr-dev.robot [moved from tests/vpp/device/container_memif/eth2p-ethip6-ip6base-eth-2memif-1dcr-dev.robot with 84% similarity]
tests/vpp/device/crypto/eth2p-ethip4ipsec1tnlsw-ip4base-policy-aes-128-cbc-sha-512-256-dev.robot [moved from tests/vpp/device/crypto/eth2p-ethip4ipsectnl-ip4base-dev.robot with 61% similarity]
tests/vpp/device/crypto/eth2p-ethip4ipsec1tptsw-ip4base-policy-aes-128-cbc-sha-512-256-dev.robot [moved from tests/vpp/device/crypto/eth2p-ethip4ipsectpt-ip4base-dev.robot with 62% similarity]
tests/vpp/device/crypto/eth2p-ethip6ipsec1tnlsw-ip6base-policy-aes-128-cbc-sha-512-256-dev.robot [moved from tests/vpp/device/crypto/eth2p-ethip6ipsectnl-ip6base-dev.robot with 61% similarity]
tests/vpp/device/crypto/eth2p-ethip6ipsec1tptsw-ip6base-policy-aes-128-cbc-sha-512-256-dev.robot [moved from tests/vpp/device/crypto/eth2p-ethip6ipsectpt-ip6base-dev.robot with 62% similarity]
tests/vpp/device/interfaces/eth2p-ethicmpv4-ip4base-eth-1tap-dev.robot [new file with mode: 0644]
tests/vpp/device/interfaces/eth2p-ethicmpv4-ip4base-eth-1tap-namespace-dev.robot [moved from tests/vpp/device/interfaces/eth2p-ethip4-ip4base-eth-1tap-dev.robot with 65% similarity]
tests/vpp/device/interfaces/eth2p-ethicmpv4-l2bdbasemaclrn-eth-2tap-dev.robot [moved from tests/vpp/device/interfaces/eth2p-eth-l2bdbasemaclrn-eth-2tap-dev.robot with 78% similarity]
tests/vpp/device/ip4/eth2p-ethicmpv4-ip4base-dut-egress-dev.robot [new file with mode: 0644]
tests/vpp/device/ip4/eth2p-ethicmpv4-ip4base-dut-ingress-dev.robot [new file with mode: 0644]
tests/vpp/device/ip4/eth2p-ethicmpv4-ip4base-tg-ingress-dev.robot [new file with mode: 0644]
tests/vpp/device/ip4/eth2p-ethicmpv4-ip4base-tg-ingress-for-remote-host-dev.robot [new file with mode: 0644]
tests/vpp/device/ip4/eth2p-ethip4-ip4base-dev.robot [deleted file]
tests/vpp/device/ip6/eth2p-ethicmpv6-ip6base-dut-egress-dev.robot [new file with mode: 0644]
tests/vpp/device/ip6/eth2p-ethicmpv6-ip6base-dut-ingress-dev.robot [new file with mode: 0644]
tests/vpp/device/ip6/eth2p-ethicmpv6-ip6base-tg-ingress-dev.robot [new file with mode: 0644]
tests/vpp/device/ip6/eth2p-ethicmpv6-ip6base-tg-ingress-remote-host-dev.robot [new file with mode: 0644]
tests/vpp/device/ip6/eth2p-ethip6-ip6base-dev.robot [deleted file]
tests/vpp/device/l2bd/eth2p-ethicmpv4-l2bdbasemaclrn-dev.robot [moved from tests/vpp/device/l2bd/eth2p-eth-l2bdbasemaclrn-dev.robot with 63% similarity]
tests/vpp/device/l2xc/eth2p-ethicmpv4-l2xcbase-dev.robot [moved from tests/vpp/device/l2xc/eth2p-ethicmp-l2xcbase-dev.robot with 62% similarity]

index 86e124a..57ee179 100644 (file)
 | | | ${cpu_main}= | Cpu list per node str | ${nodes['${dut}']} | ${numa}
 | | | ... | skip_cnt=${skip_cnt} | cpu_cnt=${CPU_CNT_MAIN}
 | | | ${skip_cnt}= | Evaluate | ${CPU_CNT_SYSTEM} + ${CPU_CNT_MAIN}
-| | | ${cpu_wt}= | Cpu list per node str | ${nodes['${dut}']} | ${numa}
+| | | ${cpu_wt}= | Run keyword if | ${cpu_count_int} > 0 |
+| | | ... | Cpu list per node str | ${nodes['${dut}']} | ${numa}
 | | | ... | skip_cnt=${skip_cnt} | cpu_cnt=${cpu_count_int}
 | | | ... | smt_used=${smt_used}
 | | | ${thr_count_int}= | Run keyword if | ${smt_used}
 | | | ${rxq_count_int}= | Run keyword if | ${rxq_count_int} == 0
 | | | ... | Set variable | ${1}
 | | | ... | ELSE | Set variable | ${rxq_count_int}
-| | | Run keyword | ${dut}.Add CPU Main Core | ${cpu_main}
-| | | Run keyword | ${dut}.Add CPU Corelist Workers | ${cpu_wt}
-| | | Run keyword | ${dut}.Add DPDK Dev Default RXQ | ${rxq_count_int}
+| | | Run keyword if | ${cpu_count_int} > 0
+| | | ... | ${dut}.Add CPU Main Core | ${cpu_main}
+| | | Run keyword if | ${cpu_count_int} > 0
+| | | ... | ${dut}.Add CPU Corelist Workers | ${cpu_wt}
+| | | Run keyword
+| | | ... | ${dut}.Add DPDK Dev Default RXQ | ${rxq_count_int}
 # For now there is no way to easily predict the number of buffers. Statically
 # doing maximum amount of buffers allowed by DPDK.
 | | | Run keyword if | ${smt_used}
 | | [Documentation] | Write VPP startup configuration and restart VPP on all
 | | ... | DUTs.
 | | ...
+| | ... | *Arguments:*
+| | ... | - with_trace - Enable packet trace after VPP restart Type: boolean
+| | ...
+| | ... | *Example:*
+| | ...
+| | ... | \| Apply startup configuration on all VPP DUTs \| False \|
+| | ...
+| | [Arguments] | ${with_trace}=${False}
+| | ...
 | | :FOR | ${dut} | IN | @{duts}
 | | | Run keyword | ${dut}.Apply Config
 | | Save VPP PIDs
 | | Enable Coredump Limit VPP on All DUTs | ${nodes}
 | | Update All Interface Data On All Nodes | ${nodes} | skip_tg=${True}
+| | Run keyword If | ${with_trace} | VPP Enable Traces On All Duts | ${nodes}
 
 | Save VPP PIDs
 | | [Documentation] | Get PIDs of VPP processes from all DUTs in topology and\
index 595f270..69883ea 100644 (file)
@@ -25,7 +25,7 @@
 | ... | AND | Verify Vpp On All Duts | ${nodes}
 | ... | AND | Get CPU Layout from all nodes | ${nodes}
 | ... | AND | Update All Interface Data On All Nodes | ${nodes}
-| ...       | skip_tg_udev=${True}
+| ...       | skip_tg_udev=${True} | numa_node=${True}
 | ...
 | Suite Teardown | Cleanup Framework | ${nodes}
 
@@ -21,6 +21,8 @@
 | Test Setup | Setup test
 | Test Teardown | Tear down test | packet_trace | container
 | ...
+| Test Template | Local Template
+| ...
 | Documentation | *IPv4 routing test cases with memif interface*
 | ...
 | ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology with \
 | ${container_engine}= | Docker
 | ${container_chain_topology}= | chain_functional
 
-*** Test Cases ***
-| tc01-eth2p-ethip4-ip4base-eth-2memif-1dcr-dev
+*** Keywords ***
+| Local Template
 | | [Documentation]
 | | ... | [Ver] Make TG send ICMPv4 Echo Reqs in both directions between two\
 | | ... | of its interfaces to be routed by DUT to and from docker; verify\
 | | ... | all packets are received.
 | | ...
-| | Set Test Variable | ${frame_size} | ${42}
-| | Set Test Variable | ${rxq_count_int} | ${1}
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer. Type: integer
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
 | | ...
-| | Given Add PCI devices to all DUTs
+| | Set Test Variable | \${frame_size}
+| | ...
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
+| | And Add PCI devices to all DUTs
 | | And Set Max Rate And Jumbo And Handle Multi Seg
-| | And Apply startup configuration on all VPP DUTs
-| | And VPP Enable Traces On All Duts | ${nodes}
+| | And Apply startup configuration on all VPP DUTs | with_trace=${True}
 | | When Start containers for test | auto_scale=${False} | pinning=${False}
 | | And Initialize IPv4 routing with memif pairs
 | | Then Send packet and verify headers
 | | ... | ${tg} | 10.10.10.1 | 20.20.20.1
 | | ... | ${tg_if1} | ${tg_if1_mac} | ${dut1_if1_mac}
 | | ... | ${tg_if2} | ${dut1_if2_mac} | ${tg_if2_mac}
+
+*** Test Cases ***
+| tc01-64B-eth2p-ethicmpv4-ip4base-eth-2memif-1dcr-dev
+| | [Tags] | 64B
+| | frame_size=${64} | phy_cores=${0}
 | Test Setup | Setup test
 | Test Teardown | Tear down test | packet_trace | container
 | ...
+| Test Template | Local Template
+| ...
 | Documentation | *L2 bridge-domain test cases with memif interface*
 | ...
 | ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology \
 | ... | with single links between nodes.
 | ... | *[Enc] Packet Encapsulations:* Eth-IPv4-ICMPv4 for L2 switching of \
-| ... | IPv4; Eth-IPv6-ICMPv6 for L2 switching of IPv6 use. Both apply to all \
-| ... | links.
+| ... | IPv4. Both apply to all links.
 | ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge-domain \
 | ... | switching. Container is connected to VPP via Memif interface. \
 | ... | Container is running same VPP version as running on DUT.
-| ... | *[Ver] TG verification:* Test ICMPv4 (or ICMPv6) Echo Request packets \
+| ... | *[Ver] TG verification:* Test ICMPv4 Echo Request packets \
 | ... | are sent in both directions by TG on links to DUT1 and via container; \
-| ... | on receive TG verifies packets for correctness and their IPv4 (IPv6) \
+| ... | on receive TG verifies packets for correctness and their IPv4 \
 | ... | src-addr, dst-addr and MAC addresses.
 | ... | *[Ref] Applicable standard specifications:* RFC792
 
 | ${container_engine}= | Docker
 | ${container_chain_topology}= | chain_functional
 
-*** Test Cases ***
-| tc01-eth2p-ethip4-l2bdbase-eth-2memif-1dcr-dev
+*** Keywords ***
+| Local Template
 | | [Documentation]
 | | ... | [Ver] Make TG send ICMPv4 Echo Reqs in both directions between two\
 | | ... | of its interfaces to be switched by DUT to and from docker; verify\
 | | ... | all packets are received.
 | | ...
-| | Set Test Variable | ${frame_size} | ${42}
-| | Set Test Variable | ${rxq_count_int} | ${1}
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer. Type: integer
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
 | | ...
-| | Given Add PCI devices to all DUTs
-| | And Set Max Rate And Jumbo And Handle Multi Seg
-| | And Apply startup configuration on all VPP DUTs
-| | And VPP Enable Traces On All Duts | ${nodes}
-| | When Start containers for test | auto_scale=${False} | pinning=${False}
-| | And Initialize L2 Bridge Domain with memif pairs | auto_scale=${False}
-| | Then Send ICMPv4 bidirectionally and verify received packets
-| | ... | ${tg} | ${tg_if1} | ${tg_if2}
-
-| tc02-eth2p-ethip6-l2bdbase-eth-2memif-1dcr-dev
-| | [Documentation]
-| | ... | [Ver] Make TG send ICMPv6 Echo Reqs in both directions between two\
-| | ... | of its interfaces to be switched by DUT to and from docker; verify\
-| | ... | all packets are received.
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
 | | ...
-| | Set Test Variable | ${frame_size} | ${62}
-| | Set Test Variable | ${rxq_count_int} | ${1}
+| | Set Test Variable | \${frame_size}
 | | ...
-| | Given Add PCI devices to all DUTs
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
+| | And Add PCI devices to all DUTs
 | | And Set Max Rate And Jumbo And Handle Multi Seg
-| | And Apply startup configuration on all VPP DUTs
-| | And VPP Enable Traces On All Duts | ${nodes}
+| | And Apply startup configuration on all VPP DUTs | with_trace=${True}
 | | When Start containers for test | auto_scale=${False} | pinning=${False}
 | | And Initialize L2 Bridge Domain with memif pairs | auto_scale=${False}
-| | Then Send ICMPv6 bidirectionally and verify received packets
+| | Then Send ICMPv4 bidirectionally and verify received packets
 | | ... | ${tg} | ${tg_if1} | ${tg_if2}
+
+*** Test Cases ***
+| tc01-64B-eth2p-ethicmpv4-l2bdbasemaclrn-eth-2memif-1dcr-dev
+| | [Tags] | 64B
+| | frame_size=${64} | phy_cores=${0}
 | Test Setup | Setup test
 | Test Teardown | Tear down test | packet_trace | container
 | ...
+| Test Template | Local Template
+| ...
 | Documentation | *L2 cross-connect test cases with memif interface*
 | ...
 | ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology with \
 | ... | single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-ICMPv4 for L2 switching of \
-| ... | IPv4; Eth-IPv6-ICMPv6 for L2 switching of IPv6.
+| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-ICMPv4 for L2 switching of IPv4.
 | ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 cross-connect \
 | ... | (L2XC) switching. Container is connected to VPP via Memif interface. \
 | ... | Container is running same VPP version as running on DUT.
-| ... | *[Ver] TG verification:* Test ICMPv4 (or ICMPv6) Echo Request packets \
+| ... | *[Ver] TG verification:* Test ICMPv4 Echo Request packets \
 | ... | are sent in both directions by TG on links to DUT1 and via container; \
-| ... | on receive TG verifies packets for correctness and their IPv4 (IPv6) \
+| ... | on receive TG verifies packets for correctness and their IPv4 \
 | ... | src-addr, dst-addr and MAC addresses.
 | ... | *[Ref] Applicable standard specifications:* RFC792
 
 | ${container_engine}= | Docker
 | ${container_chain_topology}= | chain_functional
 
-*** Test Cases ***
-| tc01-eth2p-ethip4-l2xcbase-eth-2memif-1dcr-dev
+*** Keywords ***
+| Local Template
 | | [Documentation]
 | | ... | [Ver] Make TG send ICMPv4 Echo Reqs in both directions between two\
 | | ... | of its interfaces to be switched by DUT to and from docker; verify\
 | | ... | all packets are received.
 | | ...
-| | Set Test Variable | ${frame_size} | ${42}
-| | Set Test Variable | ${rxq_count_int} | ${1}
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer. Type: integer
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
 | | ...
-| | Given Add PCI devices to all DUTs
-| | And Set Max Rate And Jumbo And Handle Multi Seg
-| | And Apply startup configuration on all VPP DUTs
-| | And VPP Enable Traces On All Duts | ${nodes}
-| | When Start containers for test | auto_scale=${False} | pinning=${False}
-| | And Initialize L2 xconnect with memif pairs
-| | Then Send ICMPv4 bidirectionally and verify received packets
-| | ... | ${tg} | ${tg_if1} | ${tg_if2}
-
-| tc02-eth2p-ethip6-l2xcbase-eth-2memif-1dcr-dev
-| | [Documentation]
-| | ... | [Ver] Make TG send ICMPv6 Echo Reqs in both directions between two\
-| | ... | of its interfaces to be switched by DUT to and from docker; verify\
-| | ... | all packets are received.
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
 | | ...
-| | Set Test Variable | ${frame_size} | ${62}
-| | Set Test Variable | ${rxq_count_int} | ${1}
+| | Set Test Variable | \${frame_size}
 | | ...
-| | Given Add PCI devices to all DUTs
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
+| | And Add PCI devices to all DUTs
 | | And Set Max Rate And Jumbo And Handle Multi Seg
-| | And Apply startup configuration on all VPP DUTs
-| | And VPP Enable Traces On All Duts | ${nodes}
+| | And Apply startup configuration on all VPP DUTs | with_trace=${True}
 | | When Start containers for test | auto_scale=${False} | pinning=${False}
 | | And Initialize L2 xconnect with memif pairs
-| | Then Send ICMPv6 bidirectionally and verify received packets
+| | Then Send ICMPv4 bidirectionally and verify received packets
 | | ... | ${tg} | ${tg_if1} | ${tg_if2}
+
+*** Test Cases ***
+| tc01-64B-eth2p-ethicmpv4-l2xcbase-eth-2memif-1dcr-dev
+| | [Tags] | 64B
+| | frame_size=${64} | phy_cores=${0}
@@ -21,6 +21,8 @@
 | Test Setup | Setup test
 | Test Teardown | Tear down test | packet_trace | container
 | ...
+| Test Template | Local Template
+| ...
 | Documentation | *IPv4 routing test cases with memif interface*
 | ...
 | ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology with \
 | ${container_engine}= | Docker
 | ${container_chain_topology}= | chain_functional
 
-*** Test Cases ***
-| tc01-eth2p-ethip6-ip6base-eth-2memif-1dcr-dev
+*** Keywords ***
+| Local Template
 | | [Documentation]
 | | ... | [Ver] Make TG send ICMPv6 Echo Reqs in both directions between two\
 | | ... | of its interfaces to be routed by DUT to and from docker; verify\
 | | ... | all packets are received.
 | | ...
-| | Set Test Variable | ${frame_size} | ${62}
-| | Set Test Variable | ${rxq_count_int} | ${1}
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer. Type: integer
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
 | | ...
-| | Given Add PCI devices to all DUTs
+| | Set Test Variable | \${frame_size}
+| | ...
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
+| | And Add PCI devices to all DUTs
 | | And Set Max Rate And Jumbo And Handle Multi Seg
-| | And Apply startup configuration on all VPP DUTs
-| | And VPP Enable Traces On All Duts | ${nodes}
+| | And Apply startup configuration on all VPP DUTs | with_trace=${True}
 | | When Start containers for test | auto_scale=${False} | pinning=${False}
 | | And Set interfaces in path up
 | | And Set up memif interfaces on DUT node
 | | ... | ${tg} | 2001:1::1 | 2001:3::2
 | | ... | ${tg_if1} | ${tg_if1_mac} | ${dut1_if1_mac}
 | | ... | ${tg_if2} | ${dut1_if2_mac} | ${tg_if2_mac}
+
+*** Test Cases ***
+| tc01-78B-eth2p-ethicmpv6-ip6base-eth-2memif-1dcr-dev
+| | [Tags] | 78B
+| | frame_size=${78} | phy_cores=${0}
 | Resource | resources/libraries/robot/shared/default.robot
 | ...
 | Force Tags | 2_NODE_SINGLE_LINK_TOPO | DEVICETEST | HW_ENV | DCR_ENV | SCAPY
-| ... | NIC_Virtual | IP4FWD | IPSEC | IPSEC_TNL | IP4BASE
+| ... | NIC_Virtual | IP4FWD | IPSEC | IPSECSW | IPSECTUN | IP4BASE
+| ... | AES_128_CBC | HMAC_SHA_512 | HMAC | AES
 | ...
 | Suite Setup | Setup suite single link | scapy
 | Test Setup | Setup test
 | Test Teardown | Tear down test | packet_trace
 | ...
+| Test Template | Local Template
+| ...
 | Documentation | *IPv4 IPsec tunnel mode test suite.*
 | ...
 | ... | *[Top] Network topologies:* TG-DUT1 2-node topology with one link\
@@ -36,7 +39,7 @@
 | @{plugins_to_enable}= | dpdk_plugin.so | crypto_ia32_plugin.so
 | ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
 | ${nic_name}= | virtual
-| ${overhead}= | ${58}
+| ${overhead}= | ${54}
 | ${tg_spi}= | ${1000}
 | ${dut_spi}= | ${1001}
 | ${ESP_PROTO}= | ${50}
 | ${dut_lo_ip4}= | 192.168.4.4
 | ${ip4_plen}= | ${24}
 
-*** Test Cases ***
-| tc01-eth2p-ethip4ipsectnl-ip4base-dev-aes-128-cbc-sha-256-128
+*** Keywords ***
+| Local Template
 | | [Documentation]
 | | ... | [Cfg] On DUT1 configure IPsec manual keyed connection with encryption\
-| | ... | algorithm AES-CBC-128 and integrity algorithm SHA-256-128 in tunnel\
+| | ... | algorithm AES_128_CBC and integrity algorithm HMAC_SHA_512 in tunnel\
 | | ... | mode.
 | | ...
-| | Set Test Variable | ${frame_size} | ${106}
-| | Set Test Variable | ${rxq_count_int} | ${1}
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer. Type: integer
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
 | | ...
-| | Given Add PCI devices to all DUTs
-| | And Set Max Rate And Jumbo And Handle Multi Seg
-| | And Apply startup configuration on all VPP DUTs
-| | And VPP Enable Traces On All Duts | ${nodes}
-| | When Configure topology for IPv4 IPsec testing
-| | ${encr_alg}= | Crypto Alg AES CBC 128
-| | ${auth_alg}= | Integ Alg SHA 256 128
-| | And Generate keys for IPSec | ${encr_alg} | ${auth_alg}
-| | And Configure manual keyed connection for IPSec
-| | ... | ${dut1} | ${dut1_if1} | ${encr_alg} | ${encr_key} | ${auth_alg}
-| | ... | ${auth_key} | ${dut_spi} | ${tg_spi} | ${dut_src_ip} | ${tg_src_ip}
-| | ... | ${dut_tun_ip} | ${tg_tun_ip}
-| | Then Send IPsec Packet and verify ESP encapsulation in received packet
-| | ... | ${tg} | ${tg_if1} | ${dut1_if1_mac}
-| | ... | ${encr_alg} | ${encr_key} | ${auth_alg} | ${auth_key} | ${tg_spi}
-| | ... | ${dut_spi} | ${tg_src_ip} | ${dut_src_ip} | ${tg_tun_ip}
-| | ... | ${dut_tun_ip}
-
-| tc02-eth2p-ethip4ipsectnl-ip4base-dev-aes-128-cbc-sha-512-256
-| | [Documentation]
-| | ... | [Cfg] On DUT1 configure IPsec manual keyed connection with encryption\
-| | ... | algorithm AES-CBC-128 and integrity algorithm SHA-512-256 in tunnel\
-| | ... | mode.
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
 | | ...
-| | Set Test Variable | ${frame_size} | ${106}
-| | Set Test Variable | ${rxq_count_int} | ${1}
+| | Set Test Variable | \${frame_size}
 | | ...
-| | Given Add PCI devices to all DUTs
-| | And Set Max Rate And Jumbo And Handle Multi Seg
-| | And Apply startup configuration on all VPP DUTs
-| | And VPP Enable Traces On All Duts | ${nodes}
-| | When Configure topology for IPv4 IPsec testing
+| | # These are enums (not strings) so they cannot be in Variables table.
 | | ${encr_alg}= | Crypto Alg AES CBC 128
 | | ${auth_alg}= | Integ Alg SHA 512 256
+| | ...
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
+| | And Add PCI devices to all DUTs
+| | And Set Max Rate And Jumbo And Handle Multi Seg
+| | And Apply startup configuration on all VPP DUTs | with_trace=${True}
+| | When Configure topology for IPv4 IPsec testing
 | | And Generate keys for IPSec | ${encr_alg} | ${auth_alg}
 | | And Configure manual keyed connection for IPSec
 | | ... | ${dut1} | ${dut1_if1} | ${encr_alg} | ${encr_key} | ${auth_alg}
 | | ... | ${encr_alg} | ${encr_key} | ${auth_alg} | ${auth_key} | ${tg_spi}
 | | ... | ${dut_spi} | ${tg_src_ip} | ${dut_src_ip} | ${tg_tun_ip}
 | | ... | ${dut_tun_ip}
+
+*** Test Cases ***
+| tc01-110B-eth2p-ethip4ipsec1tnlsw-ip4base-policy-aes-128-cbc-sha-512-256-dev
+| | [Tags] | 110B
+| | frame_size=${110} | phy_cores=${0}
 | Resource | resources/libraries/robot/shared/default.robot
 | ...
 | Force Tags | 2_NODE_SINGLE_LINK_TOPO | DEVICETEST | HW_ENV | DCR_ENV | SCAPY
-| ... | NIC_Virtual | IP4FWD | IPSEC | IPSEC_TPT | IP4BASE
+| ... | NIC_Virtual | IP4FWD | IPSEC | IPSECSW | IPSECTPT | IP4BASE
+| ... | AES_128_CBC | HMAC_SHA_512 | HMAC | AES
 | ...
 | Suite Setup | Setup suite single link | scapy
 | Test Setup | Setup test
 | Test Teardown | Tear down test | packet_trace
 | ...
+| Test Template | Local Template
+| ...
 | Documentation | *IPv4 IPsec transport mode test suite.*
 | ...
 | ... | *[Top] Network topologies:* TG-DUT1 2-node topology with one link\
@@ -36,7 +39,7 @@
 | @{plugins_to_enable}= | dpdk_plugin.so | crypto_ia32_plugin.so
 | ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
 | ${nic_name}= | virtual
-| ${overhead}= | ${58}
+| ${overhead}= | ${54}
 | ${tg_spi}= | ${1000}
 | ${dut_spi}= | ${1001}
 | ${ESP_PROTO}= | ${50}
 | ${dut_lo_ip4}= | 192.168.4.4
 | ${ip4_plen}= | ${24}
 
-*** Test Cases ***
-| tc01-eth2p-ethip4ipsectpt-ip4base-dev-aes-128-cbc-sha-256-128
+*** Keywords ***
+| Local Template
 | | [Documentation]
 | | ... | [Cfg] On DUT1 configure IPsec manual keyed connection with encryption\
-| | ... | algorithm AES-CBC-128 and integrity algorithm SHA-256-128 in\
+| | ... | algorithm AES_128_CBC and integrity algorithm HMAC_SHA_512 in\
 | | ... | transport mode.
 | | ...
-| | Set Test Variable | ${frame_size} | ${90}
-| | Set Test Variable | ${rxq_count_int} | ${1}
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer. Type: integer
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
 | | ...
-| | Given Add PCI devices to all DUTs
-| | And Set Max Rate And Jumbo And Handle Multi Seg
-| | And Apply startup configuration on all VPP DUTs
-| | And VPP Enable Traces On All Duts | ${nodes}
-| | When Configure topology for IPv4 IPsec testing
-| | ${encr_alg}= | Crypto Alg AES CBC 128
-| | ${auth_alg}= | Integ Alg SHA 256 128
-| | And Generate keys for IPSec | ${encr_alg} | ${auth_alg}
-| | And Configure manual keyed connection for IPSec
-| | ... | ${dut1} | ${dut1_if1} | ${encr_alg} | ${encr_key} | ${auth_alg}
-| | ... | ${auth_key} | ${dut_spi} | ${tg_spi} | ${dut_tun_ip} | ${tg_tun_ip}
-| | Then Send IPsec Packet and verify ESP encapsulation in received packet
-| | ... | ${tg} | ${tg_if1} | ${dut1_if1_mac}
-| | ... | ${encr_alg} | ${encr_key} | ${auth_alg} | ${auth_key} | ${tg_spi}
-| | ... | ${dut_spi} | ${tg_tun_ip} | ${dut_tun_ip}
-
-| tc02-eth2p-ethip4ipsectpt-ip4base-dev-aes-128-cbc-sha-512-256
-| | [Documentation]
-| | ... | [Cfg] On DUT1 configure IPsec manual keyed connection with encryption\
-| | ... | algorithm AES-CBC-128 and integrity algorithm SHA-512-256 in\
-| | ... | transport mode.
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
 | | ...
-| | Set Test Variable | ${frame_size} | ${90}
-| | Set Test Variable | ${rxq_count_int} | ${1}
+| | Set Test Variable | \${frame_size}
 | | ...
-| | Given Add PCI devices to all DUTs
-| | And Set Max Rate And Jumbo And Handle Multi Seg
-| | And Apply startup configuration on all VPP DUTs
-| | And VPP Enable Traces On All Duts | ${nodes}
-| | When Configure topology for IPv4 IPsec testing
+| | # These are enums (not strings) so they cannot be in Variables table.
 | | ${encr_alg}= | Crypto Alg AES CBC 128
 | | ${auth_alg}= | Integ Alg SHA 512 256
+| | ...
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
+| | And Add PCI devices to all DUTs
+| | And Set Max Rate And Jumbo And Handle Multi Seg
+| | And Apply startup configuration on all VPP DUTs | with_trace=${True}
+| | When Configure topology for IPv4 IPsec testing
 | | And Generate keys for IPSec | ${encr_alg} | ${auth_alg}
 | | And Configure manual keyed connection for IPSec
 | | ... | ${dut1} | ${dut1_if1} | ${encr_alg} | ${encr_key} | ${auth_alg}
@@ -96,3 +82,8 @@
 | | ... | ${tg} | ${tg_if1} | ${dut1_if1_mac}
 | | ... | ${encr_alg} | ${encr_key} | ${auth_alg} | ${auth_key} | ${tg_spi}
 | | ... | ${dut_spi} | ${tg_tun_ip} | ${dut_tun_ip}
+
+*** Test Cases ***
+| tc01-110B-eth2p-ethip4ipsec1tptsw-ip4base-policy-aes-128-cbc-sha-512-256-dev
+| | [Tags] | 110B
+| | frame_size=${110} | phy_cores=${0}
 | Resource | resources/libraries/robot/shared/default.robot
 | ...
 | Force Tags | 2_NODE_SINGLE_LINK_TOPO | DEVICETEST | HW_ENV | DCR_ENV | SCAPY
-| ... | NIC_Virtual | IP6FWD | IPSEC | IPSEC_TNL | IP6BASE
+| ... | NIC_Virtual | IP6FWD | IPSEC | IPSECSW | IPSECTUN | IP6BASE
+| ... | AES_128_CBC | HMAC_SHA_512 | HMAC | AES
 | ...
 | Suite Setup | Setup suite single link | scapy
 | Test Setup | Setup test
 | Test Teardown | Tear down test | packet_trace
 | ...
+| Test Template | Local Template
+| ...
 | Documentation | *IPv6 IPsec tunnel mode test suite.*
 | ...
 | ... | *[Top] Network topologies:* TG-DUT1 2-node topology with one link\
@@ -36,7 +39,7 @@
 | @{plugins_to_enable}= | dpdk_plugin.so | crypto_ia32_plugin.so
 | ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so
 | ${nic_name}= | virtual
-| ${overhead}= | ${58}
+| ${overhead}= | ${54}
 | ${tg_spi}= | ${1000}
 | ${dut_spi}= | ${1001}
 | ${ESP_PROTO}= | ${50}
 | ${ip6_plen}= | ${64}
 | ${ip6_plen_rt}= | ${128}
 
-*** Test Cases ***
-| tc01-eth2p-ethip6ipsectnl-ip6base-dev-aes-128-cbc-sha-256-128
+*** Keywords ***
+| Local Template
 | | [Documentation]
 | | ... | [Cfg] On DUT1 configure IPsec manual keyed connection with encryption\
-| | ... | algorithm AES-CBC-128 and integrity algorithm SHA-256-128 in tunnel\
+| | ... | algorithm AES_128_CBC and integrity algorithm HMAC_SHA_512 in tunnel\
 | | ... | mode.
 | | ...
-| | Set Test Variable | ${frame_size} | ${158}
-| | Set Test Variable | ${rxq_count_int} | ${1}
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer. Type: integer
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
 | | ...
-| | Given Add PCI devices to all DUTs
-| | And Set Max Rate And Jumbo And Handle Multi Seg
-| | And Apply startup configuration on all VPP DUTs
-| | And VPP Enable Traces On All Duts | ${nodes}
-| | When Configure topology for IPv6 IPsec testing
-| | ${encr_alg}= | Crypto Alg AES CBC 128
-| | ${auth_alg}= | Integ Alg SHA 256 128
-| | And Generate keys for IPSec | ${encr_alg} | ${auth_alg}
-| | And Configure manual keyed connection for IPSec
-| | ... | ${dut1} | ${dut1_if1} | ${encr_alg} | ${encr_key} | ${auth_alg}
-| | ... | ${auth_key} | ${dut_spi} | ${tg_spi} | ${dut_src_ip} | ${tg_src_ip}
-| | ... | ${dut_tun_ip} | ${tg_tun_ip} | is_ipv6=${TRUE}
-| | Then Send IPsec Packet and verify ESP encapsulation in received packet
-| | ... | ${tg} | ${tg_if1} | ${dut1_if1_mac}
-| | ... | ${encr_alg} | ${encr_key} | ${auth_alg} | ${auth_key} | ${tg_spi}
-| | ... | ${dut_spi} | ${tg_src_ip} | ${dut_src_ip} | ${tg_tun_ip}
-| | ... | ${dut_tun_ip}
-
-| tc02-eth2p-ethip6ipsectnl-ip6base-dev-aes-128-cbc-sha-512-256
-| | [Documentation]
-| | ... | [Cfg] On DUT1 configure IPsec manual keyed connection with encryption\
-| | ... | algorithm AES-CBC-128 and integrity algorithm SHA-512-256 in tunnel\
-| | ... | mode.
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
 | | ...
-| | Set Test Variable | ${frame_size} | ${158}
-| | Set Test Variable | ${rxq_count_int} | ${1}
+| | Set Test Variable | \${frame_size}
 | | ...
-| | Given Add PCI devices to all DUTs
-| | And Set Max Rate And Jumbo And Handle Multi Seg
-| | And Apply startup configuration on all VPP DUTs
-| | And VPP Enable Traces On All Duts | ${nodes}
-| | When Configure topology for IPv6 IPsec testing
+| | # These are enums (not strings) so they cannot be in Variables table.
 | | ${encr_alg}= | Crypto Alg AES CBC 128
 | | ${auth_alg}= | Integ Alg SHA 512 256
+| | ...
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
+| | And Add PCI devices to all DUTs
+| | And Set Max Rate And Jumbo And Handle Multi Seg
+| | And Apply startup configuration on all VPP DUTs | with_trace=${True}
+| | When Configure topology for IPv6 IPsec testing
 | | And Generate keys for IPSec | ${encr_alg} | ${auth_alg}
 | | And Configure manual keyed connection for IPSec
 | | ... | ${dut1} | ${dut1_if1} | ${encr_alg} | ${encr_key} | ${auth_alg}
 | | ... | ${encr_alg} | ${encr_key} | ${auth_alg} | ${auth_key} | ${tg_spi}
 | | ... | ${dut_spi} | ${tg_src_ip} | ${dut_src_ip} | ${tg_tun_ip}
 | | ... | ${dut_tun_ip}
+
+*** Test Cases ***
+| tc01-124B-eth2p-ethip6ipsec1tnlsw-ip6base-policy-aes-128-cbc-sha-512-256-dev
+| | [Tags] | 124B
+| | frame_size=${124} | phy_cores=${0}
 | Resource | resources/libraries/robot/shared/default.robot
 | ...
 | Force Tags | 2_NODE_SINGLE_LINK_TOPO | DEVICETEST | HW_ENV | DCR_ENV | SCAPY
-| ... | NIC_Virtual | IP6FWD | IPSEC | IPSEC_TPT | IP6BASE
+| ... | NIC_Virtual | IP6FWD | IPSEC | IPSECSW | IPSECTPT | IP6BASE
+| ... | AES_128_CBC | HMAC_SHA_512 | HMAC | AES
 | ...
 | Suite Setup | Setup suite single link | scapy
 | Test Setup | Setup test
 | Test Teardown | Tear down test | packet_trace
 | ...
+| Test Template | Local Template
+| ...
 | Documentation | *IPv6 IPsec transport mode test suite.*
 | ...
 | ... | *[Top] Network topologies:* TG-DUT1 2-node topology with one link\
 | ${ip6_plen}= | ${64}
 | ${ip6_plen_rt}= | ${128}
 
-*** Test Cases ***
-| tc01-eth2p-ethip6ipsectpt-ip6base-dev-aes-128-cbc-sha-256-128
+*** Keywords ***
+| Local Template
 | | [Documentation]
 | | ... | [Cfg] On DUT1 configure IPsec manual keyed connection with encryption\
-| | ... | algorithm AES-CBC-128 and integrity algorithm SHA-256-128 in\
+| | ... | algorithm AES_128_CBC and integrity algorithm HMAC_SHA_512 in\
 | | ... | transport mode.
 | | ...
-| | Set Test Variable | ${frame_size} | ${174}
-| | Set Test Variable | ${rxq_count_int} | ${1}
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer. Type: integer
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
 | | ...
-| | Given Add PCI devices to all DUTs
-| | And Set Max Rate And Jumbo And Handle Multi Seg
-| | And Apply startup configuration on all VPP DUTs
-| | And VPP Enable Traces On All Duts | ${nodes}
-| | When Configure topology for IPv6 IPsec testing
-| | ${encr_alg}= | Crypto Alg AES CBC 128
-| | ${auth_alg}= | Integ Alg SHA 256 128
-| | And Generate keys for IPSec | ${encr_alg} | ${auth_alg}
-| | And Configure manual keyed connection for IPSec
-| | ... | ${dut1} | ${dut1_if1} | ${encr_alg} | ${encr_key} | ${auth_alg}
-| | ... | ${auth_key} | ${dut_spi} | ${tg_spi} | ${dut_tun_ip} | ${tg_tun_ip}
-| | ... | is_ipv6=${TRUE}
-| | Then Send IPsec Packet and verify ESP encapsulation in received packet
-| | ... | ${tg} | ${tg_if1} | ${dut1_if1_mac}
-| | ... | ${encr_alg} | ${encr_key} | ${auth_alg} | ${auth_key} | ${tg_spi}
-| | ... | ${dut_spi} | ${tg_tun_ip} | ${dut_tun_ip}
-
-| tc02-eth2p-ethip6ipsectpt-ip6base-dev-aes-128-cbc-sha-512-256
-| | [Documentation]
-| | ... | [Cfg] On DUT1 configure IPsec manual keyed connection with encryption\
-| | ... | algorithm AES-CBC-128 and integrity algorithm SHA-512-256 in\
-| | ... | transport mode.
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
 | | ...
-| | Set Test Variable | ${frame_size} | ${174}
-| | Set Test Variable | ${rxq_count_int} | ${1}
+| | Set Test Variable | \${frame_size}
 | | ...
-| | Given Add PCI devices to all DUTs
-| | And Set Max Rate And Jumbo And Handle Multi Seg
-| | And Apply startup configuration on all VPP DUTs
-| | And VPP Enable Traces On All Duts | ${nodes}
-| | When Configure topology for IPv6 IPsec testing
+| | # These are enums (not strings) so they cannot be in Variables table.
 | | ${encr_alg}= | Crypto Alg AES CBC 128
 | | ${auth_alg}= | Integ Alg SHA 512 256
+| | ...
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
+| | And Add PCI devices to all DUTs
+| | And Set Max Rate And Jumbo And Handle Multi Seg
+| | And Apply startup configuration on all VPP DUTs | with_trace=${True}
+| | When Configure topology for IPv6 IPsec testing
 | | And Generate keys for IPSec | ${encr_alg} | ${auth_alg}
 | | And Configure manual keyed connection for IPSec
 | | ... | ${dut1} | ${dut1_if1} | ${encr_alg} | ${encr_key} | ${auth_alg}
@@ -99,3 +84,8 @@
 | | ... | ${tg} | ${tg_if1} | ${dut1_if1_mac}
 | | ... | ${encr_alg} | ${encr_key} | ${auth_alg} | ${auth_key} | ${tg_spi}
 | | ... | ${dut_spi} | ${tg_tun_ip} | ${dut_tun_ip}
+
+*** Test Cases ***
+| tc01-124B-eth2p-ethip6ipsectpt-ip6base-policy-aes-128-cbc-sha-512-256-dev
+| | [Tags] | 124B
+| | frame_size=${124} | phy_cores=${0}
diff --git a/tests/vpp/device/interfaces/eth2p-ethicmpv4-ip4base-eth-1tap-dev.robot b/tests/vpp/device/interfaces/eth2p-ethicmpv4-ip4base-eth-1tap-dev.robot
new file mode 100644 (file)
index 0000000..066821c
--- /dev/null
@@ -0,0 +1,95 @@
+# Copyright (c) 2019 Cisco and/or its affiliates.
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at:
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+| ...
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | DEVICETEST | HW_ENV | DCR_ENV | SCAPY
+| ... | NIC_Virtual | ETH | IP4FWD | BASE | IP4BASE | 1TAP
+| ...
+| Suite Setup | Setup suite single link | scapy
+| Test Setup | Setup test | namespace
+| Test Teardown | Tear down test | packet_trace | namespace
+| ...
+| Test Template | Local Template
+| ...
+| Documentation | *Tap Interface Traffic Tests*
+| ... | *[Top] Network Topologies:* TG=DUT1 2-node topology with two links
+| ... | between nodes.
+| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-ICMPv4 for L2 switching of
+| ... | IPv4.
+| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with L2
+| ... | bridge-domain (L2BD) MAC learning enabled; Split Horizon Groups (SHG)
+| ... | are set depending on test case; Namespaces (NM)
+| ... | are set on DUT1 with attached linux-TAP.
+| ... | *[Ver] TG verification:* Test ICMPv4 Echo Request packets
+| ... | are sent by TG on link to DUT1; On receipt TG verifies packets
+| ... | for correctness and their IPv4 src-addr, dst-addr, and MAC addresses.
+| ... | *[Ref] Applicable standard specifications:*
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so
+| ${nic_name}= | virtual
+| ${overhead}= | ${0}
+| ${tap1_VPP_ip}= | 16.0.10.1
+| ${tap1_NM_ip}= | 16.0.10.2
+| ${tap1_NM_mac}= | 02:00:00:00:00:02
+| ${dut_ip_address}= | 192.168.0.1
+| ${tg_ip_address}= | 192.168.0.2
+| ${tg_ip_address_GW}= | 192.168.0.0
+| ${prefix}= | 24
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | [Cfg] On DUT1 configure two interface addresses with IPv4 of which\
+| | ... | one is TAP interface (dut_to_tg_if and TAP) and one is linux-TAP.
+| | ... | [Ver] Packet sent from TG gets to the destination and ICMP-reply is\
+| | ... | received on TG.
+| | ...
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer. Type: integer
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| | ...
+| | Set Test Variable | \${frame_size}
+| | ...
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
+| | And Add PCI devices to all DUTs
+| | And Set Max Rate And Jumbo And Handle Multi Seg
+| | And Apply startup configuration on all VPP DUTs | with_trace=${True}
+| | When Set interfaces in path up
+| | ${int1}= | And Add Tap Interface | ${dut1} | tap0
+| | And VPP Interface Set IP Address
+| | ... | ${dut1} | ${int1} | ${tap1_VPP_ip} | ${prefix}
+| | And VPP Interface Set IP Address
+| | ... | ${dut1} | ${dut1_if1} | ${dut_ip_address} | ${prefix}
+| | And Set Interface State | ${dut1} | ${int1} | up
+| | And Set Linux Interface MAC | ${dut1} | tap0 | ${tap1_NM_mac}
+| | And Set Linux Interface IP | ${dut1} | tap0 | ${tap1_NM_ip} | ${prefix}
+| | And Add Linux Route
+| | ... | ${dut1} | ${tg_ip_address_GW} | ${prefix} | ${tap1_VPP_ip}
+| | And VPP Add IP Neighbor
+| | ... | ${dut1} | ${dut1_if1} | ${tg_ip_address} | ${tg_if1_mac}
+| | And VPP Add IP Neighbor
+| | ... | ${dut1} | ${int1} | ${tap1_NM_ip} | ${tap1_NM_mac}
+| | Then Send ICMP echo request and verify answer
+| | ... | ${tg} | ${tg_if1} | ${dut1_if1_mac} | ${tg_if1_mac}
+| | ... | ${tap1_NM_ip} | ${tg_ip_address}
+
+*** Test Cases ***
+| tc01-64B-eth2p-ethicmpv4-ip4base-eth-1tap-dev
+| | [Tags] | 64B
+| | frame_size=${64} | phy_cores=${0}
 | Resource | resources/libraries/robot/shared/default.robot
 | ...
 | Force Tags | 2_NODE_SINGLE_LINK_TOPO | DEVICETEST | HW_ENV | DCR_ENV | SCAPY
-| ... | NIC_Virtual | ETH | IP4FWD | BASE | IP4BASE | TAP
+| ... | NIC_Virtual | ETH | IP4FWD | BASE | IP4BASE | 1TAP | NAMESPACE
 | ...
 | Suite Setup | Setup suite single link | scapy
 | Test Setup | Setup test | namespace
 | Test Teardown | Tear down test | packet_trace | namespace
 | ...
+| Test Template | Local Template
+| ...
 | Documentation | *Tap Interface Traffic Tests*
 | ... | *[Top] Network Topologies:* TG=DUT1 2-node topology with two links
 | ... | between nodes.
 | ${tg_ip_address_GW}= | 192.168.0.0
 | ${prefix}= | 24
 
-*** Test Cases ***
-| tc01-eth2p-ethicmpv4-ip4base-dev_tap-no-namespace
-| | [Documentation]
-| | ... | [Cfg] On DUT1 configure two interface addresses with IPv4 of which\
-| | ... | one is TAP interface (dut_to_tg_if and TAP) and one is linux-TAP.
-| | ... | [Ver] Packet sent from TG gets to the destination and ICMP-reply is\
-| | ... | received on TG.
-| | ...
-| | Set Test Variable | ${frame_size} | ${42}
-| | Set Test Variable | ${rxq_count_int} | ${1}
-| | ...
-| | Given Add PCI devices to all DUTs
-| | And Set Max Rate And Jumbo And Handle Multi Seg
-| | And Apply startup configuration on all VPP DUTs
-| | And VPP Enable Traces On All Duts | ${nodes}
-| | When Set interfaces in path up
-| | ${int1}= | And Add Tap Interface | ${dut1} | tap0
-| | And VPP Interface Set IP Address
-| | ... | ${dut1} | ${int1} | ${tap1_VPP_ip} | ${prefix}
-| | And VPP Interface Set IP Address
-| | ... | ${dut1} | ${dut1_if1} | ${dut_ip_address} | ${prefix}
-| | And Set Interface State | ${dut1} | ${int1} | up
-| | And Set Linux Interface MAC | ${dut1} | tap0 | ${tap1_NM_mac}
-| | And Set Linux Interface IP | ${dut1} | tap0 | ${tap1_NM_ip} | ${prefix}
-| | And Add Linux Route
-| | ... | ${dut1} | ${tg_ip_address_GW} | ${prefix} | ${tap1_VPP_ip}
-| | And VPP Add IP Neighbor
-| | ... | ${dut1} | ${dut1_if1} | ${tg_ip_address} | ${tg_if1_mac}
-| | And VPP Add IP Neighbor
-| | ... | ${dut1} | ${int1} | ${tap1_NM_ip} | ${tap1_NM_mac}
-| | Then Send ICMP echo request and verify answer
-| | ... | ${tg} | ${tg_if1} | ${dut1_if1_mac} | ${tg_if1_mac}
-| | ... | ${tap1_NM_ip} | ${tg_ip_address}
-
-| tc02-eth2p-ethicmpv4-ip4base-dev_tap-namespace
+*** Keywords ***
+| Local Template
 | | [Documentation]
 | | ... | [Cfg] On DUT1 configure two interface addresses with IPv4 of which\
 | | ... | one is TAP interface (dut_to_tg_if and TAP) and one is linux-TAP in\
 | | ... | [Ver] Packet sent from TG gets to the destination and ICMP-reply is\
 | | ... | received on TG.
 | | ...
-| | Set Test Variable | ${frame_size} | ${42}
-| | Set Test Variable | ${rxq_count_int} | ${1}
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer. Type: integer
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
 | | ...
-| | Given Add PCI devices to all DUTs
+| | Set Test Variable | \${frame_size}
+| | ...
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
+| | And Add PCI devices to all DUTs
 | | And Set Max Rate And Jumbo And Handle Multi Seg
-| | And Apply startup configuration on all VPP DUTs
-| | And VPP Enable Traces On All Duts | ${nodes}
+| | And Apply startup configuration on all VPP DUTs | with_trace=${True}
 | | When Set interfaces in path up
 | | ${int1}= | And Add Tap Interface | ${dut1} | tap0
 | | And VPP Interface Set IP Address
 | | Then Send ICMP echo request and verify answer
 | | ... | ${tg} | ${tg_if1} | ${dut1_if1_mac} | ${tg_if1_mac}
 | | ... | ${tap1_NM_ip} | ${tg_ip_address}
+
+*** Test Cases ***
+| tc01-64B-eth2p-ethicmpv4-ip4base-eth-1tap-namespace-dev
+| | [Tags] | 64B
+| | frame_size=${64} | phy_cores=${0}
 | Resource | resources/libraries/robot/shared/default.robot
 | ...
 | Force Tags | 2_NODE_SINGLE_LINK_TOPO | DEVICETEST | HW_ENV | DCR_ENV | SCAPY
-| ... | NIC_Virtual | ETH | L2BD | BASE | TAP
+| ... | NIC_Virtual | ETH | L2BD | BASE | 2TAP
 | ...
 | Suite Setup | Setup suite single link | scapy
 | Test Setup | Setup test | namespace
 | Test Teardown | Tear down test | packet_trace | namespace | linux_bridge
 | ...
+| Test Template | Local Template
+| ...
 | Documentation | *Tap Interface Traffic Tests*
 | ...
 | ... | *[Top] Network Topologies:* TG=DUT1 2-node topology with two links
 | ${overhead}= | ${0}
 | ${bid_TAP}= | tapBr
 
-*** Test Cases ***
-| tc01-eth2p-ethicmpv4-l2bdbasemaclrn-eth-2tap-dev_tap-simple-bd
+*** Keywords ***
+| Local Template
 | | [Documentation]
 | | ... | [Ver] Packet sent from TG is passed through all L2BD and received\
 | | ... | back on TG. Then src_ip, dst_ip and MAC are checked.
 | | ...
-| | Set Test Variable | ${frame_size} | ${42}
-| | Set Test Variable | ${rxq_count_int} | ${1}
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer. Type: integer
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
 | | ...
-| | Given Add PCI devices to all DUTs
+| | Set Test Variable | \${frame_size}
+| | ...
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
+| | And Add PCI devices to all DUTs
 | | And Set Max Rate And Jumbo And Handle Multi Seg
-| | And Apply startup configuration on all VPP DUTs
-| | And VPP Enable Traces On All Duts | ${nodes}
+| | And Apply startup configuration on all VPP DUTs | with_trace=${True}
 | | When Set interfaces in path up
 | | ${int1}= | And Add Tap Interface | ${dut1} | tap0
 | | ${int2}= | And Add Tap Interface | ${dut1} | tap1
@@ -69,3 +77,8 @@
 | | And Add interface to bridge domain | ${dut1} | ${dut1_if2} | 19 | 0
 | | Then Send ICMP packet and verify received packet
 | | ... | ${tg} | ${tg_if1} | ${tg_if2}
+
+*** Test Cases ***
+| tc01-eth2p-ethicmpv4-l2bdbasemaclrn-eth-2tap-dev
+| | [Tags] | 64B
+| | frame_size=${64} | phy_cores=${0}
diff --git a/tests/vpp/device/ip4/eth2p-ethicmpv4-ip4base-dut-egress-dev.robot b/tests/vpp/device/ip4/eth2p-ethicmpv4-ip4base-dut-egress-dev.robot
new file mode 100644 (file)
index 0000000..4f2484c
--- /dev/null
@@ -0,0 +1,71 @@
+# Copyright (c) 2019 Cisco and/or its affiliates.
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at:
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+| ...
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | DEVICETEST | HW_ENV | DCR_ENV | SCAPY
+| ... | NIC_Virtual | ETH | IP4FWD | BASE | IP4BASE
+| ...
+| Suite Setup | Setup suite single link | scapy
+| Test Setup | Setup test
+| Test Teardown | Tear down test | packet_trace
+| ...
+| Test Template | Local Template
+| ...
+| Documentation | *IPv4 routing test cases*
+| ...
+| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-ICMPv4 for IPv4 routing on \
+| ... | both links.
+| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv4 routing and \
+| ... | two static IPv4 /24 route entries.
+| ... | *[Ver] TG verification:* Test ICMPv4 Echo Request packets are sent in \
+| ... | one direction by TG on links to DUT1; on receive TG verifies packets \
+| ... | for correctness and their IPv4 src-addr, dst-addr and MAC addresses.
+| ... | *[Ref] Applicable standard specifications:* RFC791, RFC826, RFC792
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so
+| ${nic_name}= | virtual
+| ${overhead}= | ${0}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | [Ver] Make TG send ICMPv4 Echo Req towards DUT1 egress interface.\
+| | ... | Make TG verify ICMP Echo Reply is correct.
+| | ...
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer. Type: integer
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| | ...
+| | Set Test Variable | \${frame_size}
+| | ...
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
+| | And Add PCI devices to all DUTs
+| | And Set Max Rate And Jumbo And Handle Multi Seg
+| | And Apply startup configuration on all VPP DUTs | with_trace=${True}
+| | When Initialize IPv4 forwarding in circular topology
+| | Then Send IPv4 ping packet and verify headers
+| | ... | ${tg} | ${tg_if1} | ${dut1} | ${dut1_if2}
+| | ... | 10.10.10.2 | 20.20.20.1 | ${dut1_if1_mac} | ${0}
+
+*** Test Cases ***
+| tc01-64B-eth2p-ethicmpv4-ip4base-dut-egress-dev
+| | [Tags] | 64B
+| | frame_size=${64} | phy_cores=${0}
diff --git a/tests/vpp/device/ip4/eth2p-ethicmpv4-ip4base-dut-ingress-dev.robot b/tests/vpp/device/ip4/eth2p-ethicmpv4-ip4base-dut-ingress-dev.robot
new file mode 100644 (file)
index 0000000..8bccc20
--- /dev/null
@@ -0,0 +1,71 @@
+# Copyright (c) 2019 Cisco and/or its affiliates.
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at:
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+| ...
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | DEVICETEST | HW_ENV | DCR_ENV | SCAPY
+| ... | NIC_Virtual | ETH | IP4FWD | BASE | IP4BASE
+| ...
+| Suite Setup | Setup suite single link | scapy
+| Test Setup | Setup test
+| Test Teardown | Tear down test | packet_trace
+| ...
+| Test Template | Local Template
+| ...
+| Documentation | *IPv4 routing test cases*
+| ...
+| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-ICMPv4 for IPv4 routing on \
+| ... | both links.
+| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv4 routing and \
+| ... | two static IPv4 /24 route entries.
+| ... | *[Ver] TG verification:* Test ICMPv4 Echo Request packets are sent in \
+| ... | one direction by TG on links to DUT1; on receive TG verifies packets \
+| ... | for correctness and their IPv4 src-addr, dst-addr and MAC addresses.
+| ... | *[Ref] Applicable standard specifications:* RFC791, RFC826, RFC792
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so
+| ${nic_name}= | virtual
+| ${overhead}= | ${0}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | [Ver] Make TG send ICMPv4 Echo Req to DUT1 ingress interface.\
+| | ... | Make TG verify ICMP Echo Reply is correct.
+| | ...
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer. Type: integer
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| | ...
+| | Set Test Variable | \${frame_size}
+| | ...
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
+| | And Add PCI devices to all DUTs
+| | And Set Max Rate And Jumbo And Handle Multi Seg
+| | And Apply startup configuration on all VPP DUTs | with_trace=${True}
+| | When Initialize IPv4 forwarding in circular topology
+| | Then Send IPv4 ping packet and verify headers
+| | ... | ${tg} | ${tg_if1} | ${dut1} | ${dut1_if1}
+| | ... | 10.10.10.2 | 10.10.10.1 | ${dut1_if1_mac} | ${0}
+
+*** Test Cases ***
+| tc01-64B-eth2p-ethicmpv4-ip4base-dut-ingress-dev
+| | [Tags] | 64B
+| | frame_size=${64} | phy_cores=${0}
diff --git a/tests/vpp/device/ip4/eth2p-ethicmpv4-ip4base-tg-ingress-dev.robot b/tests/vpp/device/ip4/eth2p-ethicmpv4-ip4base-tg-ingress-dev.robot
new file mode 100644 (file)
index 0000000..cc7ce61
--- /dev/null
@@ -0,0 +1,72 @@
+# Copyright (c) 2019 Cisco and/or its affiliates.
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at:
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+| ...
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | DEVICETEST | HW_ENV | DCR_ENV | SCAPY
+| ... | NIC_Virtual | ETH | IP4FWD | BASE | IP4BASE
+| ...
+| Suite Setup | Setup suite single link | scapy
+| Test Setup | Setup test
+| Test Teardown | Tear down test | packet_trace
+| ...
+| Test Template | Local Template
+| ...
+| Documentation | *IPv4 routing test cases*
+| ...
+| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-ICMPv4 for IPv4 routing on \
+| ... | both links.
+| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv4 routing and \
+| ... | two static IPv4 /24 route entries.
+| ... | *[Ver] TG verification:* Test ICMPv4 Echo Request packets are sent in \
+| ... | one direction by TG on links to DUT1; on receive TG verifies packets \
+| ... | for correctness and their IPv4 src-addr, dst-addr and MAC addresses.
+| ... | *[Ref] Applicable standard specifications:* RFC791, RFC826, RFC792
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so
+| ${nic_name}= | virtual
+| ${overhead}= | ${0}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | [Ver] Make TG send ICMPv4 Echo Req between its interfaces across DUT1\
+| | ... | for locally connected IPv4 addresses. Make TG verify ICMPv4 Echo\
+| | ... | Replies are correct.
+| | ...
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer. Type: integer
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| | ...
+| | Set Test Variable | \${frame_size}
+| | ...
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
+| | And Add PCI devices to all DUTs
+| | And Set Max Rate And Jumbo And Handle Multi Seg
+| | And Apply startup configuration on all VPP DUTs | with_trace=${True}
+| | When Initialize IPv4 forwarding in circular topology
+| | Then Send IPv4 ping packet and verify headers
+| | ... | ${tg} | ${tg_if1} | ${tg} | ${tg_if2}
+| | ... | 10.10.10.2 | 20.20.20.2 | ${dut1_if1_mac} | ${1}
+
+*** Test Cases ***
+| tc01-64B-eth2p-ethicmpv4-ip4base-tg-ingress-dev
+| | [Tags] | 64B
+| | frame_size=${64} | phy_cores=${0}
diff --git a/tests/vpp/device/ip4/eth2p-ethicmpv4-ip4base-tg-ingress-for-remote-host-dev.robot b/tests/vpp/device/ip4/eth2p-ethicmpv4-ip4base-tg-ingress-for-remote-host-dev.robot
new file mode 100644 (file)
index 0000000..334db83
--- /dev/null
@@ -0,0 +1,73 @@
+# Copyright (c) 2019 Cisco and/or its affiliates.
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at:
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+| ...
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | DEVICETEST | HW_ENV | DCR_ENV | SCAPY
+| ... | NIC_Virtual | ETH | IP4FWD | BASE | IP4BASE
+| ...
+| Suite Setup | Setup suite single link | scapy
+| Test Setup | Setup test
+| Test Teardown | Tear down test | packet_trace
+| ...
+| Test Template | Local Template
+| ...
+| Documentation | *IPv4 routing test cases*
+| ...
+| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-ICMPv4 for IPv4 routing on \
+| ... | both links.
+| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv4 routing and \
+| ... | two static IPv4 /24 route entries.
+| ... | *[Ver] TG verification:* Test ICMPv4 Echo Request packets are sent in \
+| ... | one direction by TG on links to DUT1; on receive TG verifies packets \
+| ... | for correctness and their IPv4 src-addr, dst-addr and MAC addresses.
+| ... | *[Ref] Applicable standard specifications:* RFC791, RFC826, RFC792
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so
+| ${nic_name}= | virtual
+| ${overhead}= | ${0}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | [Ver] Make TG send ICMPv4 Echo Req between its interfaces across DUT1\
+| | ... | for remote host IPv4 addresses. Make TG verify ICMPv4 Echo Replies\
+| | ... | are correct.
+| | ...
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer. Type: integer
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| | ...
+| | Set Test Variable | \${frame_size}
+| | ...
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
+| | And Add PCI devices to all DUTs
+| | And Set Max Rate And Jumbo And Handle Multi Seg
+| | And Apply startup configuration on all VPP DUTs | with_trace=${True}
+| | When Initialize IPv4 forwarding in circular topology
+| | ... | remote_host1_ip=192.168.0.1 | remote_host2_ip=192.168.0.2
+| | Then Send IPv4 ping packet and verify headers
+| | ... | ${tg} | ${tg_if1} | ${tg} | ${tg_if2}
+| | ... | 192.168.0.1 | 192.168.0.2 | ${dut1_if1_mac} | ${1}
+
+*** Test Cases ***
+| tc01-64B-eth2p-ethicmpv4-ip4base-tg-ingress-for-remote-host-dev
+| | [Tags] | 64B
+| | frame_size=${64} | phy_cores=${0}
diff --git a/tests/vpp/device/ip4/eth2p-ethip4-ip4base-dev.robot b/tests/vpp/device/ip4/eth2p-ethip4-ip4base-dev.robot
deleted file mode 100644 (file)
index f9b6ebf..0000000
+++ /dev/null
@@ -1,112 +0,0 @@
-# Copyright (c) 2019 Cisco and/or its affiliates.
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at:
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-| ...
-| Force Tags | 2_NODE_SINGLE_LINK_TOPO | DEVICETEST | HW_ENV | DCR_ENV | SCAPY
-| ... | NIC_Virtual | ETH | IP4FWD | BASE | IP4BASE
-| ...
-| Suite Setup | Setup suite single link | scapy
-| Test Setup | Setup test
-| Test Teardown | Tear down test | packet_trace
-| ...
-| Documentation | *IPv4 routing test cases*
-| ...
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology \
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-ICMPv4 for IPv4 routing on \
-| ... | both links.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv4 routing and \
-| ... | two static IPv4 /24 route entries.
-| ... | *[Ver] TG verification:* Test ICMPv4 Echo Request packets are sent in \
-| ... | one direction by TG on links to DUT1; on receive TG verifies packets \
-| ... | for correctness and their IPv4 src-addr, dst-addr and MAC addresses.
-| ... | *[Ref] Applicable standard specifications:* RFC791, RFC826, RFC792
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
-| ${nic_name}= | virtual
-| ${overhead}= | ${0}
-
-*** Test Cases ***
-| tc01-eth2p-ethicmpv4-ip4base-dev_echo-req-to-dut-ingress-interface
-| | [Documentation]
-| | ... | [Ver] Make TG send ICMPv4 Echo Req to DUT1 ingress interface.\
-| | ... | Make TG verify ICMP Echo Reply is correct.
-| | ...
-| | Set Test Variable | ${frame_size} | ${42}
-| | Set Test Variable | ${rxq_count_int} | ${1}
-| | ...
-| | Given Add PCI devices to all DUTs
-| | And Set Max Rate And Jumbo And Handle Multi Seg
-| | And Apply startup configuration on all VPP DUTs
-| | And VPP Enable Traces On All Duts | ${nodes}
-| | When Initialize IPv4 forwarding in circular topology
-| | Then Send IPv4 ping packet and verify headers
-| | ... | ${tg} | ${tg_if1} | ${dut1} | ${dut1_if1}
-| | ... | 10.10.10.2 | 10.10.10.1 | ${dut1_if1_mac} | ${0}
-
-| tc02-eth2p-ethicmpv4-ip4base-dev_echo-req-to-dut-egress-interface
-| | [Documentation]
-| | ... | [Ver] Make TG send ICMPv4 Echo Req towards DUT1 egress interface.\
-| | ... | Make TG verify ICMP Echo Reply is correct.
-| | ...
-| | Set Test Variable | ${frame_size} | ${42}
-| | Set Test Variable | ${rxq_count_int} | ${1}
-| | ...
-| | Given Add PCI devices to all DUTs
-| | And Set Max Rate And Jumbo And Handle Multi Seg
-| | And Apply startup configuration on all VPP DUTs
-| | And VPP Enable Traces On All Duts | ${nodes}
-| | When Initialize IPv4 forwarding in circular topology
-| | Then Send IPv4 ping packet and verify headers
-| | ... | ${tg} | ${tg_if1} | ${dut1} | ${dut1_if2}
-| | ... | 10.10.10.2 | 20.20.20.1 | ${dut1_if1_mac} | ${0}
-
-| tc03-eth2p-ethicmpv4-ip4base-dev_echo-req-to-tg-interface-for-local-ipv4-address
-| | [Documentation]
-| | ... | [Ver] Make TG send ICMPv4 Echo Req between its interfaces across DUT1\
-| | ... | for locally connected IPv4 addresses. Make TG verify ICMPv4 Echo\
-| | ... | Replies are correct.
-| | ...
-| | Set Test Variable | ${frame_size} | ${42}
-| | Set Test Variable | ${rxq_count_int} | ${1}
-| | ...
-| | Given Add PCI devices to all DUTs
-| | And Set Max Rate And Jumbo And Handle Multi Seg
-| | And Apply startup configuration on all VPP DUTs
-| | And VPP Enable Traces On All Duts | ${nodes}
-| | When Initialize IPv4 forwarding in circular topology
-| | Then Send IPv4 ping packet and verify headers
-| | ... | ${tg} | ${tg_if1} | ${tg} | ${tg_if2}
-| | ... | 10.10.10.2 | 20.20.20.2 | ${dut1_if1_mac} | ${1}
-
-| tc04-eth2p-ethicmpv4-ip4base-dev_echo-req-to-tg-interface-for-remote-host-ipv4-address
-| | [Documentation]
-| | ... | [Ver] Make TG send ICMPv4 Echo Req between its interfaces across DUT1\
-| | ... | for remote host IPv4 addresses. Make TG verify ICMPv4 Echo Replies\
-| | ... | are correct.
-| | ...
-| | Set Test Variable | ${frame_size} | ${42}
-| | Set Test Variable | ${rxq_count_int} | ${1}
-| | ...
-| | Given Add PCI devices to all DUTs
-| | And Set Max Rate And Jumbo And Handle Multi Seg
-| | And Apply startup configuration on all VPP DUTs
-| | And VPP Enable Traces On All Duts | ${nodes}
-| | When Initialize IPv4 forwarding in circular topology
-| | ... | remote_host1_ip=192.168.0.1 | remote_host2_ip=192.168.0.2
-| | Then Send IPv4 ping packet and verify headers
-| | ... | ${tg} | ${tg_if1} | ${tg} | ${tg_if2}
-| | ... | 192.168.0.1 | 192.168.0.2 | ${dut1_if1_mac} | ${1}
diff --git a/tests/vpp/device/ip6/eth2p-ethicmpv6-ip6base-dut-egress-dev.robot b/tests/vpp/device/ip6/eth2p-ethicmpv6-ip6base-dut-egress-dev.robot
new file mode 100644 (file)
index 0000000..a82005e
--- /dev/null
@@ -0,0 +1,71 @@
+# Copyright (c) 2019 Cisco and/or its affiliates.
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at:
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+| ...
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | DEVICETEST | HW_ENV | DCR_ENV | SCAPY
+| ... | NIC_Virtual | ETH | IP6FWD | BASE | IP6BASE
+| ...
+| Suite Setup | Setup suite single link | scapy
+| Test Setup | Setup test
+| Test Teardown | Tear down test | packet_trace
+| ...
+| Test Template | Local Template
+| ...
+| Documentation | *IPv6 routing test cases*
+| ...
+| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... | *[Enc] Packet Encapsulations:* Eth-IPv6-ICMPv6 for IPv6 routing on \
+| ... | both links.
+| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv6 routing and \
+| ... | two static IPv6 /64 route entries.
+| ... | *[Ver] TG verification:* Test ICMPv6 Echo Request packets are sent in \
+| ... | one direction by TG on links to DUT1; on receive TG verifies packets \
+| ... | for correctness and their IPv6 src-addr, dst-addr and MAC addresses.
+| ... | *[Ref] Applicable standard specifications:* RFC2460, RFC4443, RFC4861
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so
+| ${nic_name}= | virtual
+| ${overhead}= | ${0}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | [Ver] Make TG send ICMPv6 Echo Req towards DUT1 egress interface.\
+| | ... | Make TG verify ICMPv6 Echo Reply is correct.
+| | ...
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer. Type: integer
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| | ...
+| | Set Test Variable | \${frame_size}
+| | ...
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
+| | And Add PCI devices to all DUTs
+| | And Set Max Rate And Jumbo And Handle Multi Seg
+| | And Apply startup configuration on all VPP DUTs | with_trace=${True}
+| | When Initialize IPv6 forwarding in circular topology
+| | Then Send IPv6 echo request packet and verify headers
+| | ... | ${tg} | ${tg_if1} | ${dut1} | ${dut1_if2}
+| | ... | 2001:1::2 | 2001:2::1 | ${dut1_if1_mac} | ${0}
+
+*** Test Cases ***
+| tc01-78B-eth2p-ethicmpv6-ip6base-dut-egress-dev
+| | [Tags] | 78B
+| | frame_size=${78} | phy_cores=${0}
diff --git a/tests/vpp/device/ip6/eth2p-ethicmpv6-ip6base-dut-ingress-dev.robot b/tests/vpp/device/ip6/eth2p-ethicmpv6-ip6base-dut-ingress-dev.robot
new file mode 100644 (file)
index 0000000..ab1fefc
--- /dev/null
@@ -0,0 +1,71 @@
+# Copyright (c) 2019 Cisco and/or its affiliates.
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at:
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+| ...
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | DEVICETEST | HW_ENV | DCR_ENV | SCAPY
+| ... | NIC_Virtual | ETH | IP6FWD | BASE | IP6BASE
+| ...
+| Suite Setup | Setup suite single link | scapy
+| Test Setup | Setup test
+| Test Teardown | Tear down test | packet_trace
+| ...
+| Test Template | Local Template
+| ...
+| Documentation | *IPv6 routing test cases*
+| ...
+| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... | *[Enc] Packet Encapsulations:* Eth-IPv6-ICMPv6 for IPv6 routing on \
+| ... | both links.
+| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv6 routing and \
+| ... | two static IPv6 /64 route entries.
+| ... | *[Ver] TG verification:* Test ICMPv6 Echo Request packets are sent in \
+| ... | one direction by TG on links to DUT1; on receive TG verifies packets \
+| ... | for correctness and their IPv6 src-addr, dst-addr and MAC addresses.
+| ... | *[Ref] Applicable standard specifications:* RFC2460, RFC4443, RFC4861
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so
+| ${nic_name}= | virtual
+| ${overhead}= | ${0}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | [Ver ]Make TG send ICMPv6 Echo Req to DUT1 ingress interface.\
+| | ... | Make TG verify ICMPv6 Echo Reply is correct.
+| | ...
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer. Type: integer
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| | ...
+| | Set Test Variable | \${frame_size}
+| | ...
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
+| | And Add PCI devices to all DUTs
+| | And Set Max Rate And Jumbo And Handle Multi Seg
+| | And Apply startup configuration on all VPP DUTs | with_trace=${True}
+| | When Initialize IPv6 forwarding in circular topology
+| | Then Send IPv6 echo request packet and verify headers
+| | ... | ${tg} | ${tg_if1} | ${dut1} | ${dut1_if1}
+| | ... | 2001:1::2 | 2001:1::1 | ${dut1_if1_mac} | ${0}
+
+*** Test Cases ***
+| tc01-78B-eth2p-ethicmpv6-ip6base-dut-ingress-dev
+| | [Tags] | 78B
+| | frame_size=${78} | phy_cores=${0}
diff --git a/tests/vpp/device/ip6/eth2p-ethicmpv6-ip6base-tg-ingress-dev.robot b/tests/vpp/device/ip6/eth2p-ethicmpv6-ip6base-tg-ingress-dev.robot
new file mode 100644 (file)
index 0000000..4c31802
--- /dev/null
@@ -0,0 +1,72 @@
+# Copyright (c) 2019 Cisco and/or its affiliates.
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at:
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+| ...
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | DEVICETEST | HW_ENV | DCR_ENV | SCAPY
+| ... | NIC_Virtual | ETH | IP6FWD | BASE | IP6BASE
+| ...
+| Suite Setup | Setup suite single link | scapy
+| Test Setup | Setup test
+| Test Teardown | Tear down test | packet_trace
+| ...
+| Test Template | Local Template
+| ...
+| Documentation | *IPv6 routing test cases*
+| ...
+| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... | *[Enc] Packet Encapsulations:* Eth-IPv6-ICMPv6 for IPv6 routing on \
+| ... | both links.
+| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv6 routing and \
+| ... | two static IPv6 /64 route entries.
+| ... | *[Ver] TG verification:* Test ICMPv6 Echo Request packets are sent in \
+| ... | one direction by TG on links to DUT1; on receive TG verifies packets \
+| ... | for correctness and their IPv6 src-addr, dst-addr and MAC addresses.
+| ... | *[Ref] Applicable standard specifications:* RFC2460, RFC4443, RFC4861
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so
+| ${nic_name}= | virtual
+| ${overhead}= | ${0}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | [Ver] Make TG send ICMPv6 Echo Req between its interfaces across DUT1\
+| | ... | for locally connected IPv6 addresses. Make TG verify ICMPv6 Echo\
+| | ... | Replies are correct.
+| | ...
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer. Type: integer
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| | ...
+| | Set Test Variable | \${frame_size}
+| | ...
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
+| | And Add PCI devices to all DUTs
+| | And Set Max Rate And Jumbo And Handle Multi Seg
+| | And Apply startup configuration on all VPP DUTs | with_trace=${True}
+| | When Initialize IPv6 forwarding in circular topology
+| | Then Send IPv6 echo request packet and verify headers
+| | ... | ${tg} | ${tg_if1} | ${tg} | ${tg_if2}
+| | ... | 2001:1::2 | 2001:2::2 | ${dut1_if1_mac} | ${1} | ${dut1_if2_mac}
+
+*** Test Cases ***
+| tc01-78B-eth2p-ethicmpv6-ip6base-tg-ingress-dev
+| | [Tags] | 78B
+| | frame_size=${78} | phy_cores=${0}
diff --git a/tests/vpp/device/ip6/eth2p-ethicmpv6-ip6base-tg-ingress-remote-host-dev.robot b/tests/vpp/device/ip6/eth2p-ethicmpv6-ip6base-tg-ingress-remote-host-dev.robot
new file mode 100644 (file)
index 0000000..33c1191
--- /dev/null
@@ -0,0 +1,73 @@
+# Copyright (c) 2019 Cisco and/or its affiliates.
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at:
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+*** Settings ***
+| Resource | resources/libraries/robot/shared/default.robot
+| ...
+| Force Tags | 2_NODE_SINGLE_LINK_TOPO | DEVICETEST | HW_ENV | DCR_ENV | SCAPY
+| ... | NIC_Virtual | ETH | IP6FWD | BASE | IP6BASE
+| ...
+| Suite Setup | Setup suite single link | scapy
+| Test Setup | Setup test
+| Test Teardown | Tear down test | packet_trace
+| ...
+| Test Template | Local Template
+| ...
+| Documentation | *IPv6 routing test cases*
+| ...
+| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology \
+| ... | with single links between nodes.
+| ... | *[Enc] Packet Encapsulations:* Eth-IPv6-ICMPv6 for IPv6 routing on \
+| ... | both links.
+| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv6 routing and \
+| ... | two static IPv6 /64 route entries.
+| ... | *[Ver] TG verification:* Test ICMPv6 Echo Request packets are sent in \
+| ... | one direction by TG on links to DUT1; on receive TG verifies packets \
+| ... | for correctness and their IPv6 src-addr, dst-addr and MAC addresses.
+| ... | *[Ref] Applicable standard specifications:* RFC2460, RFC4443, RFC4861
+
+*** Variables ***
+| @{plugins_to_enable}= | dpdk_plugin.so
+| ${nic_name}= | virtual
+| ${overhead}= | ${0}
+
+*** Keywords ***
+| Local Template
+| | [Documentation]
+| | ... | [Ver] Make TG send ICMPv6 Echo Req between its interfaces across DUT1\
+| | ... | for remote host IPv6 addresses. Make TG verify ICMPv6 Echo Replies\
+| | ... | are correct.
+| | ...
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer. Type: integer
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
+| | ...
+| | Set Test Variable | \${frame_size}
+| | ...
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
+| | And Add PCI devices to all DUTs
+| | And Set Max Rate And Jumbo And Handle Multi Seg
+| | And Apply startup configuration on all VPP DUTs | with_trace=${True}
+| | When Initialize IPv6 forwarding in circular topology
+| | ... | remote_host1_ip=3ffe:5f::1 | remote_host2_ip=3ffe:5f::2
+| | Then Send IPv6 echo request packet and verify headers
+| | ... | ${tg} | ${tg_if1} | ${tg} | ${tg_if2}
+| | ... | 3ffe:5f::1 | 3ffe:5f::2 | ${dut1_if1_mac} | ${1} | ${dut1_if2_mac}
+
+*** Test Cases ***
+| tc01-78B-eth2p-ethicmpv6-ip6base-tg-ingress-remote-host-dev
+| | [Tags] | 78B
+| | frame_size=${78} | phy_cores=${0}
diff --git a/tests/vpp/device/ip6/eth2p-ethip6-ip6base-dev.robot b/tests/vpp/device/ip6/eth2p-ethip6-ip6base-dev.robot
deleted file mode 100644 (file)
index 2dda6e0..0000000
+++ /dev/null
@@ -1,112 +0,0 @@
-# Copyright (c) 2019 Cisco and/or its affiliates.
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at:
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-*** Settings ***
-| Resource | resources/libraries/robot/shared/default.robot
-| ...
-| Force Tags | 2_NODE_SINGLE_LINK_TOPO | DEVICETEST | HW_ENV | DCR_ENV | SCAPY
-| ... | NIC_Virtual | ETH | IP6FWD | BASE | IP6BASE
-| ...
-| Suite Setup | Setup suite single link | scapy
-| Test Setup | Setup test
-| Test Teardown | Tear down test | packet_trace
-| ...
-| Documentation | *IPv6 routing test cases*
-| ...
-| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology \
-| ... | with single links between nodes.
-| ... | *[Enc] Packet Encapsulations:* Eth-IPv6-ICMPv6 for IPv6 routing on \
-| ... | both links.
-| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv6 routing and \
-| ... | two static IPv6 /64 route entries.
-| ... | *[Ver] TG verification:* Test ICMPv6 Echo Request packets are sent in \
-| ... | one direction by TG on links to DUT1; on receive TG verifies packets \
-| ... | for correctness and their IPv6 src-addr, dst-addr and MAC addresses.
-| ... | *[Ref] Applicable standard specifications:* RFC2460, RFC4443, RFC4861
-
-*** Variables ***
-| @{plugins_to_enable}= | dpdk_plugin.so
-| ${nic_name}= | virtual
-| ${overhead}= | ${0}
-
-*** Test Cases ***
-| tc01-eth2p-ethicmpv6-ip6base-dev_echo-req-to-dut-ingress-interface
-| | [Documentation]
-| | ... | [Ver ]Make TG send ICMPv6 Echo Req to DUT1 ingress interface.\
-| | ... | Make TG verify ICMPv6 Echo Reply is correct.
-| | ...
-| | Set Test Variable | ${frame_size} | ${62}
-| | Set Test Variable | ${rxq_count_int} | ${1}
-| | ...
-| | Given Add PCI devices to all DUTs
-| | And Set Max Rate And Jumbo And Handle Multi Seg
-| | And Apply startup configuration on all VPP DUTs
-| | And VPP Enable Traces On All Duts | ${nodes}
-| | When Initialize IPv6 forwarding in circular topology
-| | Then Send IPv6 echo request packet and verify headers
-| | ... | ${tg} | ${tg_if1} | ${dut1} | ${dut1_if1}
-| | ... | 2001:1::2 | 2001:1::1 | ${dut1_if1_mac} | ${0}
-
-| tc02-eth2p-ethicmpv6-ip6base-dev_echo-req-to-dut-egress-interface
-| | [Documentation]
-| | ... | [Ver] Make TG send ICMPv6 Echo Req towards DUT1 egress interface.\
-| | ... | Make TG verify ICMPv6 Echo Reply is correct.
-| | ...
-| | Set Test Variable | ${frame_size} | ${62}
-| | Set Test Variable | ${rxq_count_int} | ${1}
-| | ...
-| | Given Add PCI devices to all DUTs
-| | And Set Max Rate And Jumbo And Handle Multi Seg
-| | And Apply startup configuration on all VPP DUTs
-| | And VPP Enable Traces On All Duts | ${nodes}
-| | When Initialize IPv6 forwarding in circular topology
-| | Then Send IPv6 echo request packet and verify headers
-| | ... | ${tg} | ${tg_if1} | ${dut1} | ${dut1_if2}
-| | ... | 2001:1::2 | 2001:2::1 | ${dut1_if1_mac} | ${0}
-
-| tc03-eth2p-ethicmpv6-ip6base-dev_echo-req-to-tg-interface-for-local-ipv4-address
-| | [Documentation]
-| | ... | [Ver] Make TG send ICMPv6 Echo Req between its interfaces across DUT1\
-| | ... | for locally connected IPv6 addresses. Make TG verify ICMPv6 Echo\
-| | ... | Replies are correct.
-| | ...
-| | Set Test Variable | ${frame_size} | ${62}
-| | Set Test Variable | ${rxq_count_int} | ${1}
-| | ...
-| | Given Add PCI devices to all DUTs
-| | And Set Max Rate And Jumbo And Handle Multi Seg
-| | And Apply startup configuration on all VPP DUTs
-| | And VPP Enable Traces On All Duts | ${nodes}
-| | When Initialize IPv6 forwarding in circular topology
-| | Then Send IPv6 echo request packet and verify headers
-| | ... | ${tg} | ${tg_if1} | ${tg} | ${tg_if2}
-| | ... | 2001:1::2 | 2001:2::2 | ${dut1_if1_mac} | ${1} | ${dut1_if2_mac}
-
-| tc04-eth2p-ethicmpv6-ip6base-dev_echo-req-to-tg-interface-for-remote-host-ipv4-address
-| | [Documentation]
-| | ... | [Ver] Make TG send ICMPv6 Echo Req between its interfaces across DUT1\
-| | ... | for remote host IPv6 addresses. Make TG verify ICMPv6 Echo Replies\
-| | ... | are correct.
-| | ...
-| | Set Test Variable | ${frame_size} | ${62}
-| | Set Test Variable | ${rxq_count_int} | ${1}
-| | ...
-| | Given Add PCI devices to all DUTs
-| | And Set Max Rate And Jumbo And Handle Multi Seg
-| | And Apply startup configuration on all VPP DUTs
-| | And VPP Enable Traces On All Duts | ${nodes}
-| | When Initialize IPv6 forwarding in circular topology
-| | ... | remote_host1_ip=3ffe:5f::1 | remote_host2_ip=3ffe:5f::2
-| | Then Send IPv6 echo request packet and verify headers
-| | ... | ${tg} | ${tg_if1} | ${tg} | ${tg_if2}
-| | ... | 3ffe:5f::1 | 3ffe:5f::2 | ${dut1_if1_mac} | ${1} | ${dut1_if2_mac}
 | Test Setup | Setup test
 | Test Teardown | Tear down test | packet_trace
 | ...
+| Test Template | Local Template
+| ...
 | Documentation | *L2 bridge-domain test cases*
 | ...
 | ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology \
 | ... | with single links between nodes.
 | ... | *[Enc] Packet Encapsulations:* Eth-IPv4-ICMPv4 for L2 switching of \
-| ... | IPv4; Eth-IPv6-ICMPv6 for L2 switching of IPv6 use. Both apply to all \
-| ... | links.
+| ... | IPv4. Both apply to all links.
 | ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge-domain \
 | ... | switching.
-| ... | *[Ver] TG verification:* Test ICMPv4 (or ICMPv6) Echo Request packets \
+| ... | *[Ver] TG verification:* Test ICMPv4 Echo Request packets \
 | ... | are sent in both directions by TG on links to DUT1; on receive TG \
-| ... | verifies packets for correctness and their IPv4 (IPv6) src-addr, \
+| ... | verifies packets for correctness and their IPv4 src-addr, \
 | ... | dst-addr and MAC addresses.
 | ... | *[Ref] Applicable standard specifications:* RFC792
 
 | ${nic_name}= | virtual
 | ${overhead}= | ${0}
 
-*** Test Cases ***
-| tc01-eth2p-ethicmpv4-l2bdbase-dev
+*** Keywords ***
+| Local Template
 | | [Documentation]
 | | ... | [Ver] Make TG send ICMPv4 Echo Reqs in both directions between two\
 | | ... | of its interfaces to be switched by DUT to and from docker; verify\
 | | ... | all packets are received.
 | | ...
-| | Set Test Variable | ${frame_size} | ${42}
-| | Set Test Variable | ${rxq_count_int} | ${1}
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer. Type: integer
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
+| | ...
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
 | | ...
-| | Given Add PCI devices to all DUTs
+| | Set Test Variable | \${frame_size}
+| | ...
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
+| | And Add PCI devices to all DUTs
 | | And Set Max Rate And Jumbo And Handle Multi Seg
-| | And Apply startup configuration on all VPP DUTs
-| | And VPP Enable Traces On All Duts | ${nodes}
+| | And Apply startup configuration on all VPP DUTs | with_trace=${True}
 | | When Initialize L2 bridge domain in circular topology
 | | Then Send ICMPv4 bidirectionally and verify received packets
 | | ... | ${tg} | ${tg_if1} | ${tg_if2}
 
-| tc02-eth2p-ethicmpv6-l2bdbase-dev
-| | [Documentation]
-| | ... | [Ver] Make TG send ICMPv6 Echo Reqs in both directions between two\
-| | ... | of its interfaces to be switched by DUT to and from docker; verify\
-| | ... | all packets are received.
-| | ...
-| | Set Test Variable | ${frame_size} | ${62}
-| | Set Test Variable | ${rxq_count_int} | ${1}
-| | ...
-| | Given Add PCI devices to all DUTs
-| | And Apply startup configuration on all VPP DUTs
-| | And VPP Enable Traces On All Duts | ${nodes}
-| | When Initialize L2 bridge domain in circular topology
-| | Then Send ICMPv6 bidirectionally and verify received packets
-| | ... | ${tg} | ${tg_if1} | ${tg_if2}
+*** Test Cases ***
+| tc01-eth2p-ethicmpv4-l2bdbasemaclrn-dev
+| | [Tags] | 64B
+| | frame_size=${64} | phy_cores=${0}
 | Test Setup | Setup test
 | Test Teardown | Tear down test | packet_trace
 | ...
+| Test Template | Local Template
+| ...
 | Documentation | *L2 cross-connect test cases*
 | ...
 | ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology \
 | ... | with single links between nodes.
 | ... | *[Enc] Packet Encapsulations:* Eth-IPv4-ICMPv4 for L2 switching of \
-| ... | IPv4; Eth-IPv6-ICMPv6 for L2 switching of IPv6 use. Both apply to all \
-| ... | links.
+| ... | IPv4. Both apply to all links.
 | ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 cross-connect \
 | ... | switching.
-| ... | *[Ver] TG verification:* Test ICMPv4 (or ICMPv6) Echo Request packets \
+| ... | *[Ver] TG verification:* Test ICMPv4 Echo Request packets \
 | ... | are sent in both directions by TG on links to DUT1; on receive TG \
-| ... | verifies packets for correctness and their IPv4 (IPv6) src-addr, \
+| ... | verifies packets for correctness and their IPv4 src-addr, \
 | ... | dst-addr and MAC addresses.
 | ... | *[Ref] Applicable standard specifications:* RFC792
 
 | ${nic_name}= | virtual
 | ${overhead}= | ${0}
 
-*** Test Cases ***
-| tc01-eth2p-ethicmpv4-l2xcbase-dev
+*** Keywords ***
+| Local Template
 | | [Documentation]
 | | ... | [Ver] Make TG send ICMPv4 Echo Reqs in both directions between two\
 | | ... | of its interfaces to be switched by DUT to and from docker; verify\
 | | ... | all packets are received.
 | | ...
-| | Set Test Variable | ${frame_size} | ${42}
-| | Set Test Variable | ${rxq_count_int} | ${1}
+| | ... | *Arguments:*
+| | ... | - frame_size - Framesize in Bytes in integer. Type: integer
+| | ... | - phy_cores - Number of physical cores. Type: integer
+| | ... | - rxq - Number of RX queues, default value: ${None}. Type: integer
 | | ...
-| | Given Add PCI devices to all DUTs
-| | And Set Max Rate And Jumbo And Handle Multi Seg
-| | And Apply startup configuration on all VPP DUTs
-| | And VPP Enable Traces On All Duts | ${nodes}
-| | When Initialize L2 xconnect in 2-node circular topology
-| | Then Send ICMPv4 bidirectionally and verify received packets
-| | ... | ${tg} | ${tg_if1} | ${tg_if2}
-
-| tc02-eth2p-ethicmpv6-l2xcbase-dev
-| | [Documentation]
-| | ... | [Ver] Make TG send ICMPv6 Echo Reqs in both directions between two\
-| | ... | of its interfaces to be switched by DUT to and from docker; verify\
-| | ... | all packets are received.
+| | [Arguments] | ${frame_size} | ${phy_cores} | ${rxq}=${None}
 | | ...
-| | Set Test Variable | ${frame_size} | ${62}
-| | Set Test Variable | ${rxq_count_int} | ${1}
+| | Set Test Variable | \${frame_size}
 | | ...
-| | Given Add PCI devices to all DUTs
+| | Given Add worker threads and rxqueues to all DUTs | ${phy_cores} | ${rxq}
+| | And Add PCI devices to all DUTs
 | | And Set Max Rate And Jumbo And Handle Multi Seg
-| | And Apply startup configuration on all VPP DUTs
-| | And VPP Enable Traces On All Duts | ${nodes}
+| | And Apply startup configuration on all VPP DUTs | with_trace=${True}
 | | When Initialize L2 xconnect in 2-node circular topology
-| | Then Send ICMPv6 bidirectionally and verify received packets
+| | Then Send ICMPv4 bidirectionally and verify received packets
 | | ... | ${tg} | ${tg_if1} | ${tg_if2}
+
+*** Test Cases ***
+| tc01-64B-eth2p-ethicmpv4-l2xcbase-dev
+| | [Tags] | 64B
+| | frame_size=${64} | phy_cores=${0}