From d2a7114de8c307c152b119d2c153e1d75df78b65 Mon Sep 17 00:00:00 2001 From: Peter Mikus Date: Tue, 9 Jul 2019 14:28:27 +0000 Subject: Aligning FUNC/PERF keywords - Data driven Change-Id: I233c8908c724556db09c60de6efa9237068fb4c3 Signed-off-by: Peter Mikus --- resources/libraries/robot/shared/default.robot | 22 +++- tests/vpp/device/__init__.robot | 2 +- ...2p-eth-l2bdbasemaclrn-eth-2memif-1dcr-dev.robot | 83 -------------- .../eth2p-eth-l2xcbase-eth-2memif-1dcr-dev.robot | 82 -------------- ...h2p-ethicmpv4-ip4base-eth-2memif-1dcr-dev.robot | 80 ++++++++++++++ ...icmpv4-l2bdbasemaclrn-eth-2memif-1dcr-dev.robot | 77 +++++++++++++ ...2p-ethicmpv4-l2xcbase-eth-2memif-1dcr-dev.robot | 76 +++++++++++++ ...h2p-ethicmpv6-ip6base-eth-2memif-1dcr-dev.robot | 109 +++++++++++++++++++ .../eth2p-ethip4-ip4base-eth-2memif-1dcr-dev.robot | 67 ------------ .../eth2p-ethip6-ip6base-eth-2memif-1dcr-dev.robot | 96 ----------------- ...p4base-policy-aes-128-cbc-sha-512-256-dev.robot | 91 ++++++++++++++++ ...p4base-policy-aes-128-cbc-sha-512-256-dev.robot | 89 +++++++++++++++ .../crypto/eth2p-ethip4ipsectnl-ip4base-dev.robot | 102 ------------------ .../crypto/eth2p-ethip4ipsectpt-ip4base-dev.robot | 98 ----------------- ...p6base-policy-aes-128-cbc-sha-512-256-dev.robot | 92 ++++++++++++++++ ...p6base-policy-aes-128-cbc-sha-512-256-dev.robot | 91 ++++++++++++++++ .../crypto/eth2p-ethip6ipsectnl-ip6base-dev.robot | 103 ------------------ .../crypto/eth2p-ethip6ipsectpt-ip6base-dev.robot | 101 ----------------- .../eth2p-eth-l2bdbasemaclrn-eth-2tap-dev.robot | 71 ------------ .../eth2p-ethicmpv4-ip4base-eth-1tap-dev.robot | 95 ++++++++++++++++ ...-ethicmpv4-ip4base-eth-1tap-namespace-dev.robot | 100 +++++++++++++++++ ...h2p-ethicmpv4-l2bdbasemaclrn-eth-2tap-dev.robot | 84 +++++++++++++++ .../eth2p-ethip4-ip4base-eth-1tap-dev.robot | 120 --------------------- .../eth2p-ethicmpv4-ip4base-dut-egress-dev.robot | 71 ++++++++++++ .../eth2p-ethicmpv4-ip4base-dut-ingress-dev.robot | 71 ++++++++++++ .../eth2p-ethicmpv4-ip4base-tg-ingress-dev.robot | 72 +++++++++++++ ...v4-ip4base-tg-ingress-for-remote-host-dev.robot | 73 +++++++++++++ .../vpp/device/ip4/eth2p-ethip4-ip4base-dev.robot | 112 ------------------- .../eth2p-ethicmpv6-ip6base-dut-egress-dev.robot | 71 ++++++++++++ .../eth2p-ethicmpv6-ip6base-dut-ingress-dev.robot | 71 ++++++++++++ .../eth2p-ethicmpv6-ip6base-tg-ingress-dev.robot | 72 +++++++++++++ ...icmpv6-ip6base-tg-ingress-remote-host-dev.robot | 73 +++++++++++++ .../vpp/device/ip6/eth2p-ethip6-ip6base-dev.robot | 112 ------------------- .../device/l2bd/eth2p-eth-l2bdbasemaclrn-dev.robot | 76 ------------- .../l2bd/eth2p-ethicmpv4-l2bdbasemaclrn-dev.robot | 72 +++++++++++++ .../device/l2xc/eth2p-ethicmp-l2xcbase-dev.robot | 77 ------------- .../device/l2xc/eth2p-ethicmpv4-l2xcbase-dev.robot | 72 +++++++++++++ 37 files changed, 1721 insertions(+), 1305 deletions(-) delete mode 100644 tests/vpp/device/container_memif/eth2p-eth-l2bdbasemaclrn-eth-2memif-1dcr-dev.robot delete mode 100644 tests/vpp/device/container_memif/eth2p-eth-l2xcbase-eth-2memif-1dcr-dev.robot create mode 100644 tests/vpp/device/container_memif/eth2p-ethicmpv4-ip4base-eth-2memif-1dcr-dev.robot create mode 100644 tests/vpp/device/container_memif/eth2p-ethicmpv4-l2bdbasemaclrn-eth-2memif-1dcr-dev.robot create mode 100644 tests/vpp/device/container_memif/eth2p-ethicmpv4-l2xcbase-eth-2memif-1dcr-dev.robot create mode 100644 tests/vpp/device/container_memif/eth2p-ethicmpv6-ip6base-eth-2memif-1dcr-dev.robot delete mode 100644 tests/vpp/device/container_memif/eth2p-ethip4-ip4base-eth-2memif-1dcr-dev.robot delete mode 100644 tests/vpp/device/container_memif/eth2p-ethip6-ip6base-eth-2memif-1dcr-dev.robot create mode 100644 tests/vpp/device/crypto/eth2p-ethip4ipsec1tnlsw-ip4base-policy-aes-128-cbc-sha-512-256-dev.robot create mode 100644 tests/vpp/device/crypto/eth2p-ethip4ipsec1tptsw-ip4base-policy-aes-128-cbc-sha-512-256-dev.robot delete mode 100644 tests/vpp/device/crypto/eth2p-ethip4ipsectnl-ip4base-dev.robot delete mode 100644 tests/vpp/device/crypto/eth2p-ethip4ipsectpt-ip4base-dev.robot create mode 100644 tests/vpp/device/crypto/eth2p-ethip6ipsec1tnlsw-ip6base-policy-aes-128-cbc-sha-512-256-dev.robot create mode 100644 tests/vpp/device/crypto/eth2p-ethip6ipsec1tptsw-ip6base-policy-aes-128-cbc-sha-512-256-dev.robot delete mode 100644 tests/vpp/device/crypto/eth2p-ethip6ipsectnl-ip6base-dev.robot delete mode 100644 tests/vpp/device/crypto/eth2p-ethip6ipsectpt-ip6base-dev.robot delete mode 100644 tests/vpp/device/interfaces/eth2p-eth-l2bdbasemaclrn-eth-2tap-dev.robot create mode 100644 tests/vpp/device/interfaces/eth2p-ethicmpv4-ip4base-eth-1tap-dev.robot create mode 100644 tests/vpp/device/interfaces/eth2p-ethicmpv4-ip4base-eth-1tap-namespace-dev.robot create mode 100644 tests/vpp/device/interfaces/eth2p-ethicmpv4-l2bdbasemaclrn-eth-2tap-dev.robot delete mode 100644 tests/vpp/device/interfaces/eth2p-ethip4-ip4base-eth-1tap-dev.robot create mode 100644 tests/vpp/device/ip4/eth2p-ethicmpv4-ip4base-dut-egress-dev.robot create mode 100644 tests/vpp/device/ip4/eth2p-ethicmpv4-ip4base-dut-ingress-dev.robot create mode 100644 tests/vpp/device/ip4/eth2p-ethicmpv4-ip4base-tg-ingress-dev.robot create mode 100644 tests/vpp/device/ip4/eth2p-ethicmpv4-ip4base-tg-ingress-for-remote-host-dev.robot delete mode 100644 tests/vpp/device/ip4/eth2p-ethip4-ip4base-dev.robot create mode 100644 tests/vpp/device/ip6/eth2p-ethicmpv6-ip6base-dut-egress-dev.robot create mode 100644 tests/vpp/device/ip6/eth2p-ethicmpv6-ip6base-dut-ingress-dev.robot create mode 100644 tests/vpp/device/ip6/eth2p-ethicmpv6-ip6base-tg-ingress-dev.robot create mode 100644 tests/vpp/device/ip6/eth2p-ethicmpv6-ip6base-tg-ingress-remote-host-dev.robot delete mode 100644 tests/vpp/device/ip6/eth2p-ethip6-ip6base-dev.robot delete mode 100644 tests/vpp/device/l2bd/eth2p-eth-l2bdbasemaclrn-dev.robot create mode 100644 tests/vpp/device/l2bd/eth2p-ethicmpv4-l2bdbasemaclrn-dev.robot delete mode 100644 tests/vpp/device/l2xc/eth2p-ethicmp-l2xcbase-dev.robot create mode 100644 tests/vpp/device/l2xc/eth2p-ethicmpv4-l2xcbase-dev.robot diff --git a/resources/libraries/robot/shared/default.robot b/resources/libraries/robot/shared/default.robot index 86e124ad62..57ee1797af 100644 --- a/resources/libraries/robot/shared/default.robot +++ b/resources/libraries/robot/shared/default.robot @@ -160,7 +160,8 @@ | | | ${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} @@ -172,9 +173,12 @@ | | | ${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} @@ -431,11 +435,21 @@ | | [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\ diff --git a/tests/vpp/device/__init__.robot b/tests/vpp/device/__init__.robot index 595f27097e..69883ea469 100644 --- a/tests/vpp/device/__init__.robot +++ b/tests/vpp/device/__init__.robot @@ -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} diff --git a/tests/vpp/device/container_memif/eth2p-eth-l2bdbasemaclrn-eth-2memif-1dcr-dev.robot b/tests/vpp/device/container_memif/eth2p-eth-l2bdbasemaclrn-eth-2memif-1dcr-dev.robot deleted file mode 100644 index 62ca150935..0000000000 --- a/tests/vpp/device/container_memif/eth2p-eth-l2bdbasemaclrn-eth-2memif-1dcr-dev.robot +++ /dev/null @@ -1,83 +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 | L2BDMACLRN | BASE | MEMIF | DOCKER -| ... -| Suite Setup | Setup suite single link | scapy -| Test Setup | Setup test -| Test Teardown | Tear down test | packet_trace | container -| ... -| 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. -| ... | *[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 \ -| ... | 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) \ -| ... | src-addr, dst-addr and MAC addresses. -| ... | *[Ref] Applicable standard specifications:* RFC792 - -*** Variables *** -| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so -| ${nic_name}= | virtual -| ${overhead}= | ${0} -# Container -| ${container_engine}= | Docker -| ${container_chain_topology}= | chain_functional - -*** Test Cases *** -| tc01-eth2p-ethip4-l2bdbase-eth-2memif-1dcr-dev -| | [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} -| | ... -| | 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. -| | ... -| | 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 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 -| | ... | ${tg} | ${tg_if1} | ${tg_if2} diff --git a/tests/vpp/device/container_memif/eth2p-eth-l2xcbase-eth-2memif-1dcr-dev.robot b/tests/vpp/device/container_memif/eth2p-eth-l2xcbase-eth-2memif-1dcr-dev.robot deleted file mode 100644 index 7596f96ff2..0000000000 --- a/tests/vpp/device/container_memif/eth2p-eth-l2xcbase-eth-2memif-1dcr-dev.robot +++ /dev/null @@ -1,82 +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 | L2XCFWD | BASE | MEMIF | DOCKER -| ... -| Suite Setup | Setup suite single link | scapy -| Test Setup | Setup test -| Test Teardown | Tear down test | packet_trace | container -| ... -| 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. -| ... | *[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 \ -| ... | 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) \ -| ... | src-addr, dst-addr and MAC addresses. -| ... | *[Ref] Applicable standard specifications:* RFC792 - -*** Variables *** -| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so -| ${nic_name}= | virtual -| ${overhead}= | ${0} -# Container -| ${container_engine}= | Docker -| ${container_chain_topology}= | chain_functional - -*** Test Cases *** -| tc01-eth2p-ethip4-l2xcbase-eth-2memif-1dcr-dev -| | [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} -| | ... -| | 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. -| | ... -| | 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 Start containers for test | auto_scale=${False} | pinning=${False} -| | And Initialize L2 xconnect with memif pairs -| | Then Send ICMPv6 bidirectionally and verify received packets -| | ... | ${tg} | ${tg_if1} | ${tg_if2} diff --git a/tests/vpp/device/container_memif/eth2p-ethicmpv4-ip4base-eth-2memif-1dcr-dev.robot b/tests/vpp/device/container_memif/eth2p-ethicmpv4-ip4base-eth-2memif-1dcr-dev.robot new file mode 100644 index 0000000000..a90f1efad6 --- /dev/null +++ b/tests/vpp/device/container_memif/eth2p-ethicmpv4-ip4base-eth-2memif-1dcr-dev.robot @@ -0,0 +1,80 @@ +# 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 | MEMIF | DOCKER +| ... +| Suite Setup | Setup suite single link | scapy +| 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 \ +| ... | 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. Container is connected to VPP via \ +| ... | Memif interface. Container is running same VPP version as running on \ +| ... | DUT. +| ... | *[Ver] TG verification:* Test ICMPv4 Echo Request packets are sent in \ +| ... | one direction by TG on links to DUT1 and via container; 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 | memif_plugin.so +| ${nic_name}= | virtual +| ${overhead}= | ${0} +# Container +| ${container_engine}= | Docker +| ${container_chain_topology}= | chain_functional + +*** 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. +| | ... +| | ... | *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 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} diff --git a/tests/vpp/device/container_memif/eth2p-ethicmpv4-l2bdbasemaclrn-eth-2memif-1dcr-dev.robot b/tests/vpp/device/container_memif/eth2p-ethicmpv4-l2bdbasemaclrn-eth-2memif-1dcr-dev.robot new file mode 100644 index 0000000000..ea60fee6d2 --- /dev/null +++ b/tests/vpp/device/container_memif/eth2p-ethicmpv4-l2bdbasemaclrn-eth-2memif-1dcr-dev.robot @@ -0,0 +1,77 @@ +# 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 | L2BDMACLRN | BASE | MEMIF | DOCKER +| ... +| Suite Setup | Setup suite single link | scapy +| 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. 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 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 \ +| ... | src-addr, dst-addr and MAC addresses. +| ... | *[Ref] Applicable standard specifications:* RFC792 + +*** Variables *** +| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so +| ${nic_name}= | virtual +| ${overhead}= | ${0} +# Container +| ${container_engine}= | Docker +| ${container_chain_topology}= | chain_functional + +*** 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. +| | ... +| | ... | *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 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} + +*** Test Cases *** +| tc01-64B-eth2p-ethicmpv4-l2bdbasemaclrn-eth-2memif-1dcr-dev +| | [Tags] | 64B +| | frame_size=${64} | phy_cores=${0} diff --git a/tests/vpp/device/container_memif/eth2p-ethicmpv4-l2xcbase-eth-2memif-1dcr-dev.robot b/tests/vpp/device/container_memif/eth2p-ethicmpv4-l2xcbase-eth-2memif-1dcr-dev.robot new file mode 100644 index 0000000000..1f33992afa --- /dev/null +++ b/tests/vpp/device/container_memif/eth2p-ethicmpv4-l2xcbase-eth-2memif-1dcr-dev.robot @@ -0,0 +1,76 @@ +# 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 | L2XCFWD | BASE | MEMIF | DOCKER +| ... +| Suite Setup | Setup suite single link | scapy +| 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. +| ... | *[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 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 \ +| ... | src-addr, dst-addr and MAC addresses. +| ... | *[Ref] Applicable standard specifications:* RFC792 + +*** Variables *** +| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so +| ${nic_name}= | virtual +| ${overhead}= | ${0} +# Container +| ${container_engine}= | Docker +| ${container_chain_topology}= | chain_functional + +*** 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. +| | ... +| | ... | *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 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} + +*** Test Cases *** +| tc01-64B-eth2p-ethicmpv4-l2xcbase-eth-2memif-1dcr-dev +| | [Tags] | 64B +| | frame_size=${64} | phy_cores=${0} diff --git a/tests/vpp/device/container_memif/eth2p-ethicmpv6-ip6base-eth-2memif-1dcr-dev.robot b/tests/vpp/device/container_memif/eth2p-ethicmpv6-ip6base-eth-2memif-1dcr-dev.robot new file mode 100644 index 0000000000..69b8ee0db6 --- /dev/null +++ b/tests/vpp/device/container_memif/eth2p-ethicmpv6-ip6base-eth-2memif-1dcr-dev.robot @@ -0,0 +1,109 @@ +# 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 | MEMIF | DOCKER +| ... +| Suite Setup | Setup suite single link | scapy +| 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 \ +| ... | 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. Container is connected to VPP via \ +| ... | Memif interface. Container is running same VPP version as running on \ +| ... | DUT. +| ... | *[Ver] TG verification:* Test ICMPv6 Echo Request packets are sent in \ +| ... | one direction by TG on links to DUT1 and via container; on receive TG \ +| ... | verifies packets for correctness and their IPv6 src-addr, dst-addr and \ +| ... | MAC addresses. +| ... | *[Ref] Applicable standard specifications:* RFC791, RFC826, RFC792 + +*** Variables *** +| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so +| ${nic_name}= | virtual +| ${overhead}= | ${0} +# Container +| ${container_engine}= | Docker +| ${container_chain_topology}= | chain_functional + +*** 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. +| | ... +| | ... | *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 Start containers for test | auto_scale=${False} | pinning=${False} +| | And Set interfaces in path up +| | And Set up memif interfaces on DUT node +| | ... | ${dut1} | memif-DUT1_CNF | memif-DUT1_CNF +| | ... | memif_if1=memif_if1 | memif_if2=memif_if2 +| | ... | rxq=${rxq_count_int} | txq=${rxq_count_int} +| | And Add Fib Table | ${dut1} | 20 | ipv6=${True} +| | And Assign Interface To Fib Table +| | ... | ${dut1} | ${memif_if2} | 20 | ipv6=${True} +| | And Assign Interface To Fib Table +| | ... | ${dut1} | ${dut1_if2} | 20 | ipv6=${True} +| | And VPP Interface Set IP Address +| | ... | ${dut1} | ${dut1_if1} | 2001:1::1 | 64 +| | And VPP Interface Set IP Address +| | ... | ${dut1} | ${memif_if1} | 2001:2::1 | 64 +| | And VPP Interface Set IP Address +| | ... | ${dut1} | ${memif_if2} | 2001:2::2 | 64 +| | And VPP Interface Set IP Address +| | ... | ${dut1} | ${dut1_if2} | 2001:3::1 | 64 +| | ${memif_if2_key}= | Get interface by sw index | ${nodes['DUT1']} +| | ... | ${memif_if2} +| | ${memif_if2_mac}= | Get interface MAC | ${nodes['DUT1']} | ${memif_if2_key} +| | And Vpp Route Add +| | ... | ${dut1} | 2001:3::0 | 64 | gateway=2001:2::2 | interface=${memif_if1} +| | And Vpp Route Add +| | ... | ${dut1} | 2001:1::0 | 64 | gateway=2001:2::2 | interface=${memif_if2} +| | ... | vrf=20 +| | VPP Add IP Neighbor +| | ... | ${dut1} | ${memif_if1} | 2001:2::2 | ${memif_if2_mac} +| | VPP Add IP Neighbor +| | ... | ${dut1} | ${dut1_if2} | 2001:3::2 | ${tg_if2_mac} +| | Then Send packet and verify headers +| | ... | ${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} diff --git a/tests/vpp/device/container_memif/eth2p-ethip4-ip4base-eth-2memif-1dcr-dev.robot b/tests/vpp/device/container_memif/eth2p-ethip4-ip4base-eth-2memif-1dcr-dev.robot deleted file mode 100644 index 7f67fca434..0000000000 --- a/tests/vpp/device/container_memif/eth2p-ethip4-ip4base-eth-2memif-1dcr-dev.robot +++ /dev/null @@ -1,67 +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 | MEMIF | DOCKER -| ... -| Suite Setup | Setup suite single link | scapy -| Test Setup | Setup test -| Test Teardown | Tear down test | packet_trace | container -| ... -| Documentation | *IPv4 routing 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 IPv4 routing on \ -| ... | both links. -| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv4 routing and \ -| ... | two static IPv4 /24 route entries. Container is connected to VPP via \ -| ... | Memif interface. Container is running same VPP version as running on \ -| ... | DUT. -| ... | *[Ver] TG verification:* Test ICMPv4 Echo Request packets are sent in \ -| ... | one direction by TG on links to DUT1 and via container; 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 | memif_plugin.so -| ${nic_name}= | virtual -| ${overhead}= | ${0} -# Container -| ${container_engine}= | Docker -| ${container_chain_topology}= | chain_functional - -*** Test Cases *** -| tc01-eth2p-ethip4-ip4base-eth-2memif-1dcr-dev -| | [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} -| | ... -| | 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 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} diff --git a/tests/vpp/device/container_memif/eth2p-ethip6-ip6base-eth-2memif-1dcr-dev.robot b/tests/vpp/device/container_memif/eth2p-ethip6-ip6base-eth-2memif-1dcr-dev.robot deleted file mode 100644 index a645a58792..0000000000 --- a/tests/vpp/device/container_memif/eth2p-ethip6-ip6base-eth-2memif-1dcr-dev.robot +++ /dev/null @@ -1,96 +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 | MEMIF | DOCKER -| ... -| Suite Setup | Setup suite single link | scapy -| Test Setup | Setup test -| Test Teardown | Tear down test | packet_trace | container -| ... -| Documentation | *IPv4 routing test cases with memif interface* -| ... -| ... | *[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. Container is connected to VPP via \ -| ... | Memif interface. Container is running same VPP version as running on \ -| ... | DUT. -| ... | *[Ver] TG verification:* Test ICMPv6 Echo Request packets are sent in \ -| ... | one direction by TG on links to DUT1 and via container; on receive TG \ -| ... | verifies packets for correctness and their IPv6 src-addr, dst-addr and \ -| ... | MAC addresses. -| ... | *[Ref] Applicable standard specifications:* RFC791, RFC826, RFC792 - -*** Variables *** -| @{plugins_to_enable}= | dpdk_plugin.so | memif_plugin.so -| ${nic_name}= | virtual -| ${overhead}= | ${0} -# Container -| ${container_engine}= | Docker -| ${container_chain_topology}= | chain_functional - -*** Test Cases *** -| tc01-eth2p-ethip6-ip6base-eth-2memif-1dcr-dev -| | [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} -| | ... -| | 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 Set interfaces in path up -| | And Set up memif interfaces on DUT node -| | ... | ${dut1} | memif-DUT1_CNF | memif-DUT1_CNF -| | ... | memif_if1=memif_if1 | memif_if2=memif_if2 -| | ... | rxq=${rxq_count_int} | txq=${rxq_count_int} -| | And Add Fib Table | ${dut1} | 20 | ipv6=${True} -| | And Assign Interface To Fib Table -| | ... | ${dut1} | ${memif_if2} | 20 | ipv6=${True} -| | And Assign Interface To Fib Table -| | ... | ${dut1} | ${dut1_if2} | 20 | ipv6=${True} -| | And VPP Interface Set IP Address -| | ... | ${dut1} | ${dut1_if1} | 2001:1::1 | 64 -| | And VPP Interface Set IP Address -| | ... | ${dut1} | ${memif_if1} | 2001:2::1 | 64 -| | And VPP Interface Set IP Address -| | ... | ${dut1} | ${memif_if2} | 2001:2::2 | 64 -| | And VPP Interface Set IP Address -| | ... | ${dut1} | ${dut1_if2} | 2001:3::1 | 64 -| | ${memif_if2_key}= | Get interface by sw index | ${nodes['DUT1']} -| | ... | ${memif_if2} -| | ${memif_if2_mac}= | Get interface MAC | ${nodes['DUT1']} | ${memif_if2_key} -| | And Vpp Route Add -| | ... | ${dut1} | 2001:3::0 | 64 | gateway=2001:2::2 | interface=${memif_if1} -| | And Vpp Route Add -| | ... | ${dut1} | 2001:1::0 | 64 | gateway=2001:2::2 | interface=${memif_if2} -| | ... | vrf=20 -| | VPP Add IP Neighbor -| | ... | ${dut1} | ${memif_if1} | 2001:2::2 | ${memif_if2_mac} -| | VPP Add IP Neighbor -| | ... | ${dut1} | ${dut1_if2} | 2001:3::2 | ${tg_if2_mac} -| | Then Send packet and verify headers -| | ... | ${tg} | 2001:1::1 | 2001:3::2 -| | ... | ${tg_if1} | ${tg_if1_mac} | ${dut1_if1_mac} -| | ... | ${tg_if2} | ${dut1_if2_mac} | ${tg_if2_mac} diff --git a/tests/vpp/device/crypto/eth2p-ethip4ipsec1tnlsw-ip4base-policy-aes-128-cbc-sha-512-256-dev.robot b/tests/vpp/device/crypto/eth2p-ethip4ipsec1tnlsw-ip4base-policy-aes-128-cbc-sha-512-256-dev.robot new file mode 100644 index 0000000000..b06b3c507a --- /dev/null +++ b/tests/vpp/device/crypto/eth2p-ethip4ipsec1tnlsw-ip4base-policy-aes-128-cbc-sha-512-256-dev.robot @@ -0,0 +1,91 @@ +# 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 | 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\ +| ... | between nodes. +| ... | *[Cfg] DUT configuration:* On DUT1 create loopback interface, configure\ +| ... | loopback an physical interface IPv4 addresses, static ARP record, route\ +| ... | and IPsec manual keyed connection in tunnel mode. +| ... | *[Ver] TG verification:* ESP packet is sent from TG to DUT1. ESP packet\ +| ... | is received on TG from DUT1. +| ... | *[Ref] Applicable standard specifications:* RFC4303. + +*** Variables *** +| @{plugins_to_enable}= | dpdk_plugin.so | crypto_ia32_plugin.so +| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so +| ${nic_name}= | virtual +| ${overhead}= | ${54} +| ${tg_spi}= | ${1000} +| ${dut_spi}= | ${1001} +| ${ESP_PROTO}= | ${50} +| ${tg_if_ip4}= | 192.168.100.2 +| ${dut_if_ip4}= | 192.168.100.3 +| ${tg_lo_ip4}= | 192.168.3.3 +| ${dut_lo_ip4}= | 192.168.4.4 +| ${ip4_plen}= | ${24} + +*** Keywords *** +| Local Template +| | [Documentation] +| | ... | [Cfg] On DUT1 configure IPsec manual keyed connection with encryption\ +| | ... | algorithm AES_128_CBC and integrity algorithm HMAC_SHA_512 in tunnel\ +| | ... | mode. +| | ... +| | ... | *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} +| | ... +| | # 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} +| | ... | ${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} + +*** Test Cases *** +| tc01-110B-eth2p-ethip4ipsec1tnlsw-ip4base-policy-aes-128-cbc-sha-512-256-dev +| | [Tags] | 110B +| | frame_size=${110} | phy_cores=${0} diff --git a/tests/vpp/device/crypto/eth2p-ethip4ipsec1tptsw-ip4base-policy-aes-128-cbc-sha-512-256-dev.robot b/tests/vpp/device/crypto/eth2p-ethip4ipsec1tptsw-ip4base-policy-aes-128-cbc-sha-512-256-dev.robot new file mode 100644 index 0000000000..5097437069 --- /dev/null +++ b/tests/vpp/device/crypto/eth2p-ethip4ipsec1tptsw-ip4base-policy-aes-128-cbc-sha-512-256-dev.robot @@ -0,0 +1,89 @@ +# 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 | 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\ +| ... | between nodes. +| ... | *[Cfg] DUT configuration:* On DUT1 create loopback interface, configure\ +| ... | loopback an physical interface IPv4 addresses, static ARP record, route\ +| ... | and IPsec manual keyed connection in transport mode. +| ... | *[Ver] TG verification:* ESP packet is sent from TG to DUT1. ESP packet\ +| ... | is received on TG from DUT1. +| ... | *[Ref] Applicable standard specifications:* RFC4303. + +*** Variables *** +| @{plugins_to_enable}= | dpdk_plugin.so | crypto_ia32_plugin.so +| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so +| ${nic_name}= | virtual +| ${overhead}= | ${54} +| ${tg_spi}= | ${1000} +| ${dut_spi}= | ${1001} +| ${ESP_PROTO}= | ${50} +| ${tg_if_ip4}= | 192.168.100.2 +| ${dut_if_ip4}= | 192.168.100.3 +| ${tg_lo_ip4}= | 192.168.3.3 +| ${dut_lo_ip4}= | 192.168.4.4 +| ${ip4_plen}= | ${24} + +*** Keywords *** +| Local Template +| | [Documentation] +| | ... | [Cfg] On DUT1 configure IPsec manual keyed connection with encryption\ +| | ... | algorithm AES_128_CBC and integrity algorithm HMAC_SHA_512 in\ +| | ... | transport mode. +| | ... +| | ... | *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} +| | ... +| | # 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} +| | ... | ${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} + +*** Test Cases *** +| tc01-110B-eth2p-ethip4ipsec1tptsw-ip4base-policy-aes-128-cbc-sha-512-256-dev +| | [Tags] | 110B +| | frame_size=${110} | phy_cores=${0} diff --git a/tests/vpp/device/crypto/eth2p-ethip4ipsectnl-ip4base-dev.robot b/tests/vpp/device/crypto/eth2p-ethip4ipsectnl-ip4base-dev.robot deleted file mode 100644 index bf5db490b4..0000000000 --- a/tests/vpp/device/crypto/eth2p-ethip4ipsectnl-ip4base-dev.robot +++ /dev/null @@ -1,102 +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 | IP4FWD | IPSEC | IPSEC_TNL | IP4BASE -| ... -| Suite Setup | Setup suite single link | scapy -| Test Setup | Setup test -| Test Teardown | Tear down test | packet_trace -| ... -| Documentation | *IPv4 IPsec tunnel mode test suite.* -| ... -| ... | *[Top] Network topologies:* TG-DUT1 2-node topology with one link\ -| ... | between nodes. -| ... | *[Cfg] DUT configuration:* On DUT1 create loopback interface, configure\ -| ... | loopback an physical interface IPv4 addresses, static ARP record, route\ -| ... | and IPsec manual keyed connection in tunnel mode. -| ... | *[Ver] TG verification:* ESP packet is sent from TG to DUT1. ESP packet\ -| ... | is received on TG from DUT1. -| ... | *[Ref] Applicable standard specifications:* RFC4303. - -*** Variables *** -| @{plugins_to_enable}= | dpdk_plugin.so | crypto_ia32_plugin.so -| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so -| ${nic_name}= | virtual -| ${overhead}= | ${58} -| ${tg_spi}= | ${1000} -| ${dut_spi}= | ${1001} -| ${ESP_PROTO}= | ${50} -| ${tg_if_ip4}= | 192.168.100.2 -| ${dut_if_ip4}= | 192.168.100.3 -| ${tg_lo_ip4}= | 192.168.3.3 -| ${dut_lo_ip4}= | 192.168.4.4 -| ${ip4_plen}= | ${24} - -*** Test Cases *** -| tc01-eth2p-ethip4ipsectnl-ip4base-dev-aes-128-cbc-sha-256-128 -| | [Documentation] -| | ... | [Cfg] On DUT1 configure IPsec manual keyed connection with encryption\ -| | ... | algorithm AES-CBC-128 and integrity algorithm SHA-256-128 in tunnel\ -| | ... | mode. -| | ... -| | Set Test Variable | ${frame_size} | ${106} -| | 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 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. -| | ... -| | Set Test Variable | ${frame_size} | ${106} -| | 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 Configure topology for IPv4 IPsec testing -| | ${encr_alg}= | Crypto Alg AES CBC 128 -| | ${auth_alg}= | Integ Alg SHA 512 256 -| | 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} diff --git a/tests/vpp/device/crypto/eth2p-ethip4ipsectpt-ip4base-dev.robot b/tests/vpp/device/crypto/eth2p-ethip4ipsectpt-ip4base-dev.robot deleted file mode 100644 index 5cf0df6355..0000000000 --- a/tests/vpp/device/crypto/eth2p-ethip4ipsectpt-ip4base-dev.robot +++ /dev/null @@ -1,98 +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 | IP4FWD | IPSEC | IPSEC_TPT | IP4BASE -| ... -| Suite Setup | Setup suite single link | scapy -| Test Setup | Setup test -| Test Teardown | Tear down test | packet_trace -| ... -| Documentation | *IPv4 IPsec transport mode test suite.* -| ... -| ... | *[Top] Network topologies:* TG-DUT1 2-node topology with one link\ -| ... | between nodes. -| ... | *[Cfg] DUT configuration:* On DUT1 create loopback interface, configure\ -| ... | loopback an physical interface IPv4 addresses, static ARP record, route\ -| ... | and IPsec manual keyed connection in transport mode. -| ... | *[Ver] TG verification:* ESP packet is sent from TG to DUT1. ESP packet\ -| ... | is received on TG from DUT1. -| ... | *[Ref] Applicable standard specifications:* RFC4303. - -*** Variables *** -| @{plugins_to_enable}= | dpdk_plugin.so | crypto_ia32_plugin.so -| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so -| ${nic_name}= | virtual -| ${overhead}= | ${58} -| ${tg_spi}= | ${1000} -| ${dut_spi}= | ${1001} -| ${ESP_PROTO}= | ${50} -| ${tg_if_ip4}= | 192.168.100.2 -| ${dut_if_ip4}= | 192.168.100.3 -| ${tg_lo_ip4}= | 192.168.3.3 -| ${dut_lo_ip4}= | 192.168.4.4 -| ${ip4_plen}= | ${24} - -*** Test Cases *** -| tc01-eth2p-ethip4ipsectpt-ip4base-dev-aes-128-cbc-sha-256-128 -| | [Documentation] -| | ... | [Cfg] On DUT1 configure IPsec manual keyed connection with encryption\ -| | ... | algorithm AES-CBC-128 and integrity algorithm SHA-256-128 in\ -| | ... | transport mode. -| | ... -| | Set Test Variable | ${frame_size} | ${90} -| | 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 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. -| | ... -| | Set Test Variable | ${frame_size} | ${90} -| | 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 Configure topology for IPv4 IPsec testing -| | ${encr_alg}= | Crypto Alg AES CBC 128 -| | ${auth_alg}= | Integ Alg SHA 512 256 -| | 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} diff --git a/tests/vpp/device/crypto/eth2p-ethip6ipsec1tnlsw-ip6base-policy-aes-128-cbc-sha-512-256-dev.robot b/tests/vpp/device/crypto/eth2p-ethip6ipsec1tnlsw-ip6base-policy-aes-128-cbc-sha-512-256-dev.robot new file mode 100644 index 0000000000..cb96f52923 --- /dev/null +++ b/tests/vpp/device/crypto/eth2p-ethip6ipsec1tnlsw-ip6base-policy-aes-128-cbc-sha-512-256-dev.robot @@ -0,0 +1,92 @@ +# 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 | 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\ +| ... | between nodes. +| ... | *[Cfg] DUT configuration:* On DUT1 create loopback interface, configure +| ... | loopback an physical interface IPv6 addresses, static ARP record, route +| ... | and IPsec manual keyed connection in tunnel mode. +| ... | *[Ver] TG verification:* ESP packet is sent from TG to DUT1. ESP packet +| ... | is received on TG from DUT1. +| ... | *[Ref] Applicable standard specifications:* RFC4303. + +*** Variables *** +| @{plugins_to_enable}= | dpdk_plugin.so | crypto_ia32_plugin.so +| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so +| ${nic_name}= | virtual +| ${overhead}= | ${54} +| ${tg_spi}= | ${1000} +| ${dut_spi}= | ${1001} +| ${ESP_PROTO}= | ${50} +| ${tg_if_ip6}= | 3ffe:5f::1 +| ${dut_if_ip6}= | 3ffe:5f::2 +| ${tg_lo_ip6}= | 3ffe:60::3 +| ${dut_lo_ip6}= | 3ffe:60::4 +| ${ip6_plen}= | ${64} +| ${ip6_plen_rt}= | ${128} + +*** Keywords *** +| Local Template +| | [Documentation] +| | ... | [Cfg] On DUT1 configure IPsec manual keyed connection with encryption\ +| | ... | algorithm AES_128_CBC and integrity algorithm HMAC_SHA_512 in tunnel\ +| | ... | mode. +| | ... +| | ... | *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} +| | ... +| | # 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} +| | ... | ${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} + +*** Test Cases *** +| tc01-124B-eth2p-ethip6ipsec1tnlsw-ip6base-policy-aes-128-cbc-sha-512-256-dev +| | [Tags] | 124B +| | frame_size=${124} | phy_cores=${0} diff --git a/tests/vpp/device/crypto/eth2p-ethip6ipsec1tptsw-ip6base-policy-aes-128-cbc-sha-512-256-dev.robot b/tests/vpp/device/crypto/eth2p-ethip6ipsec1tptsw-ip6base-policy-aes-128-cbc-sha-512-256-dev.robot new file mode 100644 index 0000000000..11a7b0bc5d --- /dev/null +++ b/tests/vpp/device/crypto/eth2p-ethip6ipsec1tptsw-ip6base-policy-aes-128-cbc-sha-512-256-dev.robot @@ -0,0 +1,91 @@ +# 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 | 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\ +| ... | between nodes. +| ... | *[Cfg] DUT configuration:* On DUT1 create loopback interface, configure +| ... | loopback an physical interface IPv6 addresses, static ARP record, route +| ... | and IPsec manual keyed connection in transport mode. +| ... | *[Ver] TG verification:* ESP packet is sent from TG to DUT1. ESP packet +| ... | is received on TG from DUT1. +| ... | *[Ref] Applicable standard specifications:* RFC4303. + +*** Variables *** +| @{plugins_to_enable}= | dpdk_plugin.so | crypto_ia32_plugin.so +| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so +| ${nic_name}= | virtual +| ${overhead}= | ${58} +| ${tg_spi}= | ${1000} +| ${dut_spi}= | ${1001} +| ${ESP_PROTO}= | ${50} +| ${tg_if_ip6}= | 3ffe:5f::1 +| ${dut_if_ip6}= | 3ffe:5f::2 +| ${tg_lo_ip6}= | 3ffe:60::3 +| ${dut_lo_ip6}= | 3ffe:60::4 +| ${ip6_plen}= | ${64} +| ${ip6_plen_rt}= | ${128} + +*** Keywords *** +| Local Template +| | [Documentation] +| | ... | [Cfg] On DUT1 configure IPsec manual keyed connection with encryption\ +| | ... | algorithm AES_128_CBC and integrity algorithm HMAC_SHA_512 in\ +| | ... | transport mode. +| | ... +| | ... | *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} +| | ... +| | # 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} +| | ... | ${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} + +*** 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/crypto/eth2p-ethip6ipsectnl-ip6base-dev.robot b/tests/vpp/device/crypto/eth2p-ethip6ipsectnl-ip6base-dev.robot deleted file mode 100644 index b8c5ed5bb5..0000000000 --- a/tests/vpp/device/crypto/eth2p-ethip6ipsectnl-ip6base-dev.robot +++ /dev/null @@ -1,103 +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 | IP6FWD | IPSEC | IPSEC_TNL | IP6BASE -| ... -| Suite Setup | Setup suite single link | scapy -| Test Setup | Setup test -| Test Teardown | Tear down test | packet_trace -| ... -| Documentation | *IPv6 IPsec tunnel mode test suite.* -| ... -| ... | *[Top] Network topologies:* TG-DUT1 2-node topology with one link\ -| ... | between nodes. -| ... | *[Cfg] DUT configuration:* On DUT1 create loopback interface, configure -| ... | loopback an physical interface IPv6 addresses, static ARP record, route -| ... | and IPsec manual keyed connection in tunnel mode. -| ... | *[Ver] TG verification:* ESP packet is sent from TG to DUT1. ESP packet -| ... | is received on TG from DUT1. -| ... | *[Ref] Applicable standard specifications:* RFC4303. - -*** Variables *** -| @{plugins_to_enable}= | dpdk_plugin.so | crypto_ia32_plugin.so -| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so -| ${nic_name}= | virtual -| ${overhead}= | ${58} -| ${tg_spi}= | ${1000} -| ${dut_spi}= | ${1001} -| ${ESP_PROTO}= | ${50} -| ${tg_if_ip6}= | 3ffe:5f::1 -| ${dut_if_ip6}= | 3ffe:5f::2 -| ${tg_lo_ip6}= | 3ffe:60::3 -| ${dut_lo_ip6}= | 3ffe:60::4 -| ${ip6_plen}= | ${64} -| ${ip6_plen_rt}= | ${128} - -*** Test Cases *** -| tc01-eth2p-ethip6ipsectnl-ip6base-dev-aes-128-cbc-sha-256-128 -| | [Documentation] -| | ... | [Cfg] On DUT1 configure IPsec manual keyed connection with encryption\ -| | ... | algorithm AES-CBC-128 and integrity algorithm SHA-256-128 in tunnel\ -| | ... | mode. -| | ... -| | Set Test Variable | ${frame_size} | ${158} -| | 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 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. -| | ... -| | Set Test Variable | ${frame_size} | ${158} -| | 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 Configure topology for IPv6 IPsec testing -| | ${encr_alg}= | Crypto Alg AES CBC 128 -| | ${auth_alg}= | Integ Alg SHA 512 256 -| | 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} diff --git a/tests/vpp/device/crypto/eth2p-ethip6ipsectpt-ip6base-dev.robot b/tests/vpp/device/crypto/eth2p-ethip6ipsectpt-ip6base-dev.robot deleted file mode 100644 index dd5537016a..0000000000 --- a/tests/vpp/device/crypto/eth2p-ethip6ipsectpt-ip6base-dev.robot +++ /dev/null @@ -1,101 +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 | IP6FWD | IPSEC | IPSEC_TPT | IP6BASE -| ... -| Suite Setup | Setup suite single link | scapy -| Test Setup | Setup test -| Test Teardown | Tear down test | packet_trace -| ... -| Documentation | *IPv6 IPsec transport mode test suite.* -| ... -| ... | *[Top] Network topologies:* TG-DUT1 2-node topology with one link\ -| ... | between nodes. -| ... | *[Cfg] DUT configuration:* On DUT1 create loopback interface, configure -| ... | loopback an physical interface IPv6 addresses, static ARP record, route -| ... | and IPsec manual keyed connection in transport mode. -| ... | *[Ver] TG verification:* ESP packet is sent from TG to DUT1. ESP packet -| ... | is received on TG from DUT1. -| ... | *[Ref] Applicable standard specifications:* RFC4303. - -*** Variables *** -| @{plugins_to_enable}= | dpdk_plugin.so | crypto_ia32_plugin.so -| ... | crypto_ipsecmb_plugin.so | crypto_openssl_plugin.so -| ${nic_name}= | virtual -| ${overhead}= | ${58} -| ${tg_spi}= | ${1000} -| ${dut_spi}= | ${1001} -| ${ESP_PROTO}= | ${50} -| ${tg_if_ip6}= | 3ffe:5f::1 -| ${dut_if_ip6}= | 3ffe:5f::2 -| ${tg_lo_ip6}= | 3ffe:60::3 -| ${dut_lo_ip6}= | 3ffe:60::4 -| ${ip6_plen}= | ${64} -| ${ip6_plen_rt}= | ${128} - -*** Test Cases *** -| tc01-eth2p-ethip6ipsectpt-ip6base-dev-aes-128-cbc-sha-256-128 -| | [Documentation] -| | ... | [Cfg] On DUT1 configure IPsec manual keyed connection with encryption\ -| | ... | algorithm AES-CBC-128 and integrity algorithm SHA-256-128 in\ -| | ... | transport mode. -| | ... -| | Set Test Variable | ${frame_size} | ${174} -| | 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 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. -| | ... -| | Set Test Variable | ${frame_size} | ${174} -| | 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 Configure topology for IPv6 IPsec testing -| | ${encr_alg}= | Crypto Alg AES CBC 128 -| | ${auth_alg}= | Integ Alg SHA 512 256 -| | 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} diff --git a/tests/vpp/device/interfaces/eth2p-eth-l2bdbasemaclrn-eth-2tap-dev.robot b/tests/vpp/device/interfaces/eth2p-eth-l2bdbasemaclrn-eth-2tap-dev.robot deleted file mode 100644 index 3e7fd03e89..0000000000 --- a/tests/vpp/device/interfaces/eth2p-eth-l2bdbasemaclrn-eth-2tap-dev.robot +++ /dev/null @@ -1,71 +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 | L2BD | BASE | TAP -| ... -| Suite Setup | Setup suite single link | scapy -| Test Setup | Setup test | namespace -| Test Teardown | Tear down test | packet_trace | namespace | linux_bridge -| ... -| 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} -| ${bid_TAP}= | tapBr - -*** Test Cases *** -| tc01-eth2p-ethicmpv4-l2bdbasemaclrn-eth-2tap-dev_tap-simple-bd -| | [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} -| | ... -| | 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 -| | ${int2}= | And Add Tap Interface | ${dut1} | tap1 -| | And Set Interface State | ${dut1} | ${int1} | up -| | And Set Interface State | ${dut1} | ${int2} | up -| | And Create bridge domain | ${dut1} | 19 | learn=${TRUE} -| | And Create bridge domain | ${dut1} | 20 | learn=${TRUE} -| | And Linux Add Bridge | ${dut1} | ${bid_TAP} | tap0 | tap1 -| | And Add interface to bridge domain | ${dut1} | ${int1} | 20 | 0 -| | And Add interface to bridge domain | ${dut1} | ${dut1_if1} | 20 | 0 -| | And Add interface to bridge domain | ${dut1} | ${int2} | 19 | 0 -| | And Add interface to bridge domain | ${dut1} | ${dut1_if2} | 19 | 0 -| | Then Send ICMP packet and verify received packet -| | ... | ${tg} | ${tg_if1} | ${tg_if2} 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 index 0000000000..066821c276 --- /dev/null +++ b/tests/vpp/device/interfaces/eth2p-ethicmpv4-ip4base-eth-1tap-dev.robot @@ -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} diff --git a/tests/vpp/device/interfaces/eth2p-ethicmpv4-ip4base-eth-1tap-namespace-dev.robot b/tests/vpp/device/interfaces/eth2p-ethicmpv4-ip4base-eth-1tap-namespace-dev.robot new file mode 100644 index 0000000000..b0cacd1f24 --- /dev/null +++ b/tests/vpp/device/interfaces/eth2p-ethicmpv4-ip4base-eth-1tap-namespace-dev.robot @@ -0,0 +1,100 @@ +# 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 | 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. +| ... | *[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 in\ +| | ... | namespace. +| | ... | [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 Create Namespace | ${dut1} | nmspace1 +| | And Attach Interface To Namespace | ${dut1} | nmspace1 | tap0 +| | And Set Linux Interface MAC +| | ... | ${dut1} | tap0 | ${tap1_NM_mac} | nmspace1 +| | And Set Linux Interface IP +| | ... | ${dut1} | tap0 | ${tap1_NM_ip} | ${prefix} | nmspace1 +| | 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} +| | And Add Linux Route +| | ... | ${dut1} | ${tg_ip_address_GW} | ${prefix} | ${tap1_VPP_ip} | nmspace1 +| | 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} diff --git a/tests/vpp/device/interfaces/eth2p-ethicmpv4-l2bdbasemaclrn-eth-2tap-dev.robot b/tests/vpp/device/interfaces/eth2p-ethicmpv4-l2bdbasemaclrn-eth-2tap-dev.robot new file mode 100644 index 0000000000..0c97d983bc --- /dev/null +++ b/tests/vpp/device/interfaces/eth2p-ethicmpv4-l2bdbasemaclrn-eth-2tap-dev.robot @@ -0,0 +1,84 @@ +# 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 | 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 +| ... | 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} +| ${bid_TAP}= | tapBr + +*** 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. +| | ... +| | ... | *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 +| | ${int2}= | And Add Tap Interface | ${dut1} | tap1 +| | And Set Interface State | ${dut1} | ${int1} | up +| | And Set Interface State | ${dut1} | ${int2} | up +| | And Create bridge domain | ${dut1} | 19 | learn=${TRUE} +| | And Create bridge domain | ${dut1} | 20 | learn=${TRUE} +| | And Linux Add Bridge | ${dut1} | ${bid_TAP} | tap0 | tap1 +| | And Add interface to bridge domain | ${dut1} | ${int1} | 20 | 0 +| | And Add interface to bridge domain | ${dut1} | ${dut1_if1} | 20 | 0 +| | And Add interface to bridge domain | ${dut1} | ${int2} | 19 | 0 +| | 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/interfaces/eth2p-ethip4-ip4base-eth-1tap-dev.robot b/tests/vpp/device/interfaces/eth2p-ethip4-ip4base-eth-1tap-dev.robot deleted file mode 100644 index 4d7f189da4..0000000000 --- a/tests/vpp/device/interfaces/eth2p-ethip4-ip4base-eth-1tap-dev.robot +++ /dev/null @@ -1,120 +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 | TAP -| ... -| Suite Setup | Setup suite single link | scapy -| Test Setup | Setup test | namespace -| Test Teardown | Tear down test | packet_trace | namespace -| ... -| 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 - -*** 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 -| | [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\ -| | ... | namespace. -| | ... | [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 Create Namespace | ${dut1} | nmspace1 -| | And Attach Interface To Namespace | ${dut1} | nmspace1 | tap0 -| | And Set Linux Interface MAC -| | ... | ${dut1} | tap0 | ${tap1_NM_mac} | nmspace1 -| | And Set Linux Interface IP -| | ... | ${dut1} | tap0 | ${tap1_NM_ip} | ${prefix} | nmspace1 -| | 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} -| | And Add Linux Route -| | ... | ${dut1} | ${tg_ip_address_GW} | ${prefix} | ${tap1_VPP_ip} | nmspace1 -| | Then Send ICMP echo request and verify answer -| | ... | ${tg} | ${tg_if1} | ${dut1_if1_mac} | ${tg_if1_mac} -| | ... | ${tap1_NM_ip} | ${tg_ip_address} 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 index 0000000000..4f2484c93e --- /dev/null +++ b/tests/vpp/device/ip4/eth2p-ethicmpv4-ip4base-dut-egress-dev.robot @@ -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 index 0000000000..8bccc20372 --- /dev/null +++ b/tests/vpp/device/ip4/eth2p-ethicmpv4-ip4base-dut-ingress-dev.robot @@ -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 index 0000000000..cc7ce61075 --- /dev/null +++ b/tests/vpp/device/ip4/eth2p-ethicmpv4-ip4base-tg-ingress-dev.robot @@ -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 index 0000000000..334db8359a --- /dev/null +++ b/tests/vpp/device/ip4/eth2p-ethicmpv4-ip4base-tg-ingress-for-remote-host-dev.robot @@ -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 index f9b6ebf314..0000000000 --- a/tests/vpp/device/ip4/eth2p-ethip4-ip4base-dev.robot +++ /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 index 0000000000..a82005e22b --- /dev/null +++ b/tests/vpp/device/ip6/eth2p-ethicmpv6-ip6base-dut-egress-dev.robot @@ -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 index 0000000000..ab1fefca80 --- /dev/null +++ b/tests/vpp/device/ip6/eth2p-ethicmpv6-ip6base-dut-ingress-dev.robot @@ -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 index 0000000000..4c3180289f --- /dev/null +++ b/tests/vpp/device/ip6/eth2p-ethicmpv6-ip6base-tg-ingress-dev.robot @@ -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 index 0000000000..33c1191475 --- /dev/null +++ b/tests/vpp/device/ip6/eth2p-ethicmpv6-ip6base-tg-ingress-remote-host-dev.robot @@ -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 index 2dda6e054c..0000000000 --- a/tests/vpp/device/ip6/eth2p-ethip6-ip6base-dev.robot +++ /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} diff --git a/tests/vpp/device/l2bd/eth2p-eth-l2bdbasemaclrn-dev.robot b/tests/vpp/device/l2bd/eth2p-eth-l2bdbasemaclrn-dev.robot deleted file mode 100644 index 3e1cee067f..0000000000 --- a/tests/vpp/device/l2bd/eth2p-eth-l2bdbasemaclrn-dev.robot +++ /dev/null @@ -1,76 +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 | L2BDMACLRN | BASE | ICMP -| ... -| Suite Setup | Setup suite single link | scapy -| Test Setup | Setup test -| Test Teardown | Tear down test | packet_trace -| ... -| 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. -| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge-domain \ -| ... | switching. -| ... | *[Ver] TG verification:* Test ICMPv4 (or ICMPv6) 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, \ -| ... | dst-addr and MAC addresses. -| ... | *[Ref] Applicable standard specifications:* RFC792 - -*** Variables *** -| @{plugins_to_enable}= | dpdk_plugin.so -| ${nic_name}= | virtual -| ${overhead}= | ${0} - -*** Test Cases *** -| tc01-eth2p-ethicmpv4-l2bdbase-dev -| | [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} -| | ... -| | 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 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} diff --git a/tests/vpp/device/l2bd/eth2p-ethicmpv4-l2bdbasemaclrn-dev.robot b/tests/vpp/device/l2bd/eth2p-ethicmpv4-l2bdbasemaclrn-dev.robot new file mode 100644 index 0000000000..1a39881077 --- /dev/null +++ b/tests/vpp/device/l2bd/eth2p-ethicmpv4-l2bdbasemaclrn-dev.robot @@ -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 | L2BDMACLRN | BASE | ICMP +| ... +| Suite Setup | Setup suite single link | scapy +| 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. Both apply to all links. +| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 bridge-domain \ +| ... | switching. +| ... | *[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 src-addr, \ +| ... | dst-addr and MAC addresses. +| ... | *[Ref] Applicable standard specifications:* RFC792 + +*** Variables *** +| @{plugins_to_enable}= | dpdk_plugin.so +| ${nic_name}= | virtual +| ${overhead}= | ${0} + +*** 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. +| | ... +| | ... | *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 L2 bridge domain in circular topology +| | Then Send ICMPv4 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} diff --git a/tests/vpp/device/l2xc/eth2p-ethicmp-l2xcbase-dev.robot b/tests/vpp/device/l2xc/eth2p-ethicmp-l2xcbase-dev.robot deleted file mode 100644 index 31407d2ce2..0000000000 --- a/tests/vpp/device/l2xc/eth2p-ethicmp-l2xcbase-dev.robot +++ /dev/null @@ -1,77 +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 | L2XCFWD | BASE | ICMP -| ... -| Suite Setup | Setup suite single link | scapy -| Test Setup | Setup test -| Test Teardown | Tear down test | packet_trace -| ... -| 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. -| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 cross-connect \ -| ... | switching. -| ... | *[Ver] TG verification:* Test ICMPv4 (or ICMPv6) 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, \ -| ... | dst-addr and MAC addresses. -| ... | *[Ref] Applicable standard specifications:* RFC792 - -*** Variables *** -| @{plugins_to_enable}= | dpdk_plugin.so -| ${nic_name}= | virtual -| ${overhead}= | ${0} - -*** Test Cases *** -| tc01-eth2p-ethicmpv4-l2xcbase-dev -| | [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} -| | ... -| | 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. -| | ... -| | 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 L2 xconnect in 2-node circular topology -| | Then Send ICMPv6 bidirectionally and verify received packets -| | ... | ${tg} | ${tg_if1} | ${tg_if2} diff --git a/tests/vpp/device/l2xc/eth2p-ethicmpv4-l2xcbase-dev.robot b/tests/vpp/device/l2xc/eth2p-ethicmpv4-l2xcbase-dev.robot new file mode 100644 index 0000000000..24aaee8065 --- /dev/null +++ b/tests/vpp/device/l2xc/eth2p-ethicmpv4-l2xcbase-dev.robot @@ -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 | L2XCFWD | BASE | ICMP +| ... +| Suite Setup | Setup suite single link | scapy +| 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. Both apply to all links. +| ... | *[Cfg] DUT configuration:* DUT1 is configured with L2 cross-connect \ +| ... | switching. +| ... | *[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 src-addr, \ +| ... | dst-addr and MAC addresses. +| ... | *[Ref] Applicable standard specifications:* RFC792 + +*** Variables *** +| @{plugins_to_enable}= | dpdk_plugin.so +| ${nic_name}= | virtual +| ${overhead}= | ${0} + +*** 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. +| | ... +| | ... | *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 L2 xconnect in 2-node circular topology +| | 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} -- cgit 1.2.3-korg