From: Peter Mikus Date: Thu, 11 Jul 2019 09:36:44 +0000 (+0000) Subject: VPPD: Cop, iACL, Policer X-Git-Url: https://gerrit.fd.io/r/gitweb?p=csit.git;a=commitdiff_plain;h=1f2723170ac74555aa505ab3cb772ded76501362 VPPD: Cop, iACL, Policer - Alignment with PERF Change-Id: Id7b2cb91c88e44cf9265c3376330f6aa579abf7a Signed-off-by: Peter Mikus --- diff --git a/resources/libraries/robot/features/policer.robot b/resources/libraries/robot/features/policer.robot index 8fdfa39d18..111b932a4b 100644 --- a/resources/libraries/robot/features/policer.robot +++ b/resources/libraries/robot/features/policer.robot @@ -12,87 +12,87 @@ # limitations under the License. *** Settings *** -| Library | resources.libraries.python.InterfaceUtil -| Library | resources.libraries.python.IPUtil -| Library | resources.libraries.python.IPv6Util | Library | resources.libraries.python.Policer -| Library | resources.libraries.python.TrafficScriptExecutor -| ... -| Resource | resources/libraries/robot/shared/default.robot -| Resource | resources/libraries/robot/shared/testing_path.robot | ... | Documentation | Policer keywords *** Keywords *** -| Configure topology for IPv4 policer test -| | [Documentation] | Setup topology for IPv4 policer testing. -| | ... -| | ... | _NOTE:_ This KW sets following test case variables: -| | ... | - dut_to_tg_if1_ip - DUT first interface IP address. Type: string -| | ... | - dut_to_tg_if2_ip - DUT second interface IP address. Type: string -| | ... | - tg_to_dut_if1_ip - TG first interface IP address. Type: string -| | ... | - tg_to_dut_if2_ip - TG second interface IP address. Type: string -| | Configure path in 2-node circular topology | ${nodes['TG']} -| | ... | ${nodes['DUT1']} | ${nodes['TG']} -| | Set interfaces in 2-node circular topology up -| | VPP Interface Set IP Address | ${dut_node} | ${dut_to_tg_if1} -| | ... | ${dut_to_tg_if1_ip4} | ${ip4_plen} -| | VPP Interface Set IP Address | ${dut_node} | ${dut_to_tg_if2} -| | ... | ${dut_to_tg_if2_ip4} | ${ip4_plen} -| | VPP Add IP Neighbor | ${dut_node} | ${dut_to_tg_if2} | ${tg_to_dut_if2_ip4} -| | ... | ${tg_to_dut_if2_mac} -| | Set Test Variable | ${dut_to_tg_if1_ip} | ${dut_to_tg_if1_ip4} -| | Set Test Variable | ${dut_to_tg_if2_ip} | ${dut_to_tg_if2_ip4} -| | Set Test Variable | ${tg_to_dut_if1_ip} | ${tg_to_dut_if1_ip4} -| | Set Test Variable | ${tg_to_dut_if2_ip} | ${tg_to_dut_if2_ip4} - -| Configure topology for IPv6 policer test -| | [Documentation] | Setup topology for IPv6 policer testing. +| Initialize IPv4 policer 2r3c-${t} in circular topology +| | [Documentation] +| | ... | Setup of 2r3c color-aware or color-blind policer with dst IPv4 match +| | ... | on all DUT nodes in 2-node / 3-node circular topology. Policer is +| | ... | applied on links TG - DUTx. | | ... -| | ... | _NOTE:_ This KW sets following test case variables: -| | ... | - dut_to_tg_if1_ip - DUT first interface IP address. Type: string -| | ... | - dut_to_tg_if2_ip - DUT second interface IP address. Type: string -| | ... | - tg_to_dut_if1_ip - TG first interface IP address. Type: string -| | ... | - tg_to_dut_if2_ip - TG second interface IP address. Type: string -| | Configure path in 2-node circular topology | ${nodes['TG']} -| | ... | ${nodes['DUT1']} | ${nodes['TG']} -| | Set interfaces in 2-node circular topology up -| | VPP Interface Set IP Address -| | ... | ${dut_node} | ${dut_to_tg_if1} | ${dut_to_tg_if1_ip6} | ${ip6_plen} -| | VPP Interface Set IP Address -| | ... | ${dut_node} | ${dut_to_tg_if2} | ${dut_to_tg_if2_ip6} | ${ip6_plen} -| | VPP Add IP Neighbor | ${dut_node} | ${dut_to_tg_if2} | ${tg_to_dut_if2_ip6} -| | ... | ${tg_to_dut_if2_mac} -| | Vpp All RA Suppress Link Layer | ${nodes} -| | Set Test Variable | ${dut_to_tg_if1_ip} | ${dut_to_tg_if1_ip6} -| | Set Test Variable | ${dut_to_tg_if2_ip} | ${dut_to_tg_if2_ip6} -| | Set Test Variable | ${tg_to_dut_if1_ip} | ${tg_to_dut_if1_ip6} -| | Set Test Variable | ${tg_to_dut_if2_ip} | ${tg_to_dut_if2_ip6} +| | ${dscp}= | DSCP AF22 +| | Policer Set Name | policer1 +| | Policer Set CIR | ${cir} +| | Policer Set EIR | ${eir} +| | Policer Set CB | ${cb} +| | Policer Set EB | ${eb} +| | Policer Set Rate Type pps +| | Policer Set Round Type Closest +| | Policer Set Type 2R3C 2698 +| | Policer Set Conform Action Transmit +| | Policer Set Exceed Action Mark and Transmit | ${dscp} +| | Policer Set Violate Action Transmit +| | Policer Enable Color Aware +| | Run Keyword If | ${t} == 'ca' | Policer Enable Color Aware +| | Policer Classify Set Precolor Exceed +| | Policer Set Node | ${dut1} +| | Policer Classify Set Interface | ${dut1_if1} +| | Policer Classify Set Match IP | 20.20.20.2 | ${False} +| | Policer Set Configuration +| | ${dut2_status} | ${value}= | Run Keyword And Ignore Error +| | ... | Variable Should Exist | ${dut2} +| | ${dut}= | Run Keyword If | '${dut2_status}' == 'PASS' +| | ... | Set Variable | ${dut2} +| | ... | ELSE | Set Variable | ${dut1} +| | ${dut_if2}= | Run Keyword If | '${dut2_status}' == 'PASS' +| | ... | Set Variable | ${dut2_if2} +| | ... | ELSE | Set Variable | ${dut1_if2} +| | Run Keyword Unless | '${dut2_status}' == 'PASS' +| | ... | Policer Set Name | policer2 +| | Policer Set Node | ${dut} +| | Policer Classify Set Interface | ${dut_if2} +| | Policer Classify Set Match IP | 10.10.10.2 | ${False} +| | Policer Set Configuration -| Send packet and verify marking -| | [Documentation] | Send packet and verify DSCP of the received packet. -| | ... -| | ... | *Arguments:* -| | ... | - node - TG node. Type: dictionary -| | ... | - tx_if - TG transmit interface. Type: string -| | ... | - rx_if - TG receive interface. Type: string -| | ... | - src_mac - Packet source MAC. Type: string -| | ... | - dst_mac - Packet destination MAC. Type: string -| | ... | - src_ip - Packet source IP address. Type: string -| | ... | - dst_ip - Packet destination IP address. Type: string -| | ... | - dscp - DSCP value to verify. Type: enum +| Initialize IPv6 policer 2r3c-${t} in circular topology +| | [Documentation] +| | ... | Setup of 2r3c color-aware or color-blind policer with dst IPv6 match +| | ... | on all DUT nodes in 2-node / 3-node circular topology. Policer is +| | ... | applied on links TG - DUTx. | | ... -| | ... | *Example:* -| | ... | \| ${dscp}= \| DSCP AF22 \| -| | ... | \| Send packet and verify marking \| ${nodes['TG']} \| eth1 \| eth2 \ -| | ... | \| 08:00:27:87:4d:f7 \| 52:54:00:d4:d8:22 \| 192.168.122.2 \ -| | ... | \| 192.168.122.1 \| ${dscp} \| -| | [Arguments] | ${node} | ${tx_if} | ${rx_if} | ${src_mac} | ${dst_mac} -| | ... | ${src_ip} | ${dst_ip} | ${dscp} -| | ${tx_if_name}= | Get Interface Name | ${node} | ${tx_if} -| | ${rx_if_name}= | Get Interface Name | ${node} | ${rx_if} -| | ${args}= | Traffic Script Gen Arg | ${rx_if_name} | ${tx_if_name} -| | ... | ${src_mac} | ${dst_mac} | ${src_ip} | ${dst_ip} -| | ${dscp_num}= | Get DSCP Num Value | ${dscp} -| | ${args}= | Set Variable | ${args} --dscp ${dscp_num} -| | Run Traffic Script On Node | policer.py | ${node} | ${args} +| | ${dscp}= | DSCP AF22 +| | Policer Set Name | policer1 +| | Policer Set CIR | ${cir} +| | Policer Set EIR | ${eir} +| | Policer Set CB | ${cb} +| | Policer Set EB | ${eb} +| | Policer Set Rate Type pps +| | Policer Set Round Type Closest +| | Policer Set Type 2R3C 2698 +| | Policer Set Conform Action Transmit +| | Policer Set Exceed Action Mark and Transmit | ${dscp} +| | Policer Set Violate Action Transmit +| | Policer Enable Color Aware +| | Run Keyword If | ${t} == 'ca' | Policer Enable Color Aware +| | Policer Classify Set Precolor Exceed +| | Policer Set Node | ${dut1} +| | Policer Classify Set Interface | ${dut1_if1} +| | Policer Classify Set Match IP | 2001:2::2 | ${False} +| | Policer Set Configuration +| | ${dut2_status} | ${value}= | Run Keyword And Ignore Error +| | ... | Variable Should Exist | ${dut2} +| | ${dut}= | Run Keyword If | '${dut2_status}' == 'PASS' +| | ... | Set Variable | ${dut2} +| | ... | ELSE | Set Variable | ${dut1} +| | ${dut_if2}= | Run Keyword If | '${dut2_status}' == 'PASS' +| | ... | Set Variable | ${dut2_if2} +| | ... | ELSE | Set Variable | ${dut1_if2} +| | Run Keyword Unless | '${dut2_status}' == 'PASS' +| | ... | Policer Set Name | policer2 +| | Policer Set Node | ${dut} +| | Policer Classify Set Interface | ${dut_if2} +| | Policer Classify Set Match IP | 2001:1::2 | ${False} +| | Policer Set Configuration diff --git a/resources/libraries/robot/performance/performance_configuration.robot b/resources/libraries/robot/performance/performance_configuration.robot index 2b2c505658..25a76fed37 100644 --- a/resources/libraries/robot/performance/performance_configuration.robot +++ b/resources/libraries/robot/performance/performance_configuration.robot @@ -551,46 +551,6 @@ | | Vpp Route Add | ${dut} | ${tg_if2_net} | 30 | gateway=3.3.3.1 | | ... | interface=${dut_if2} -| Initialize IPv4 policer 2r3c-${t} in circular topology -| | [Documentation] -| | ... | Setup of 2r3c color-aware or color-blind policer with dst ip match -| | ... | on all DUT nodes in 2-node / 3-node circular topology. Policer is -| | ... | applied on links TG - DUTx. -| | ... -| | ${dscp}= | DSCP AF22 -| | Policer Set Name | policer1 -| | Policer Set CIR | ${cir} -| | Policer Set EIR | ${eir} -| | Policer Set CB | ${cb} -| | Policer Set EB | ${eb} -| | Policer Set Rate Type pps -| | Policer Set Round Type Closest -| | Policer Set Type 2R3C 2698 -| | Policer Set Conform Action Transmit -| | Policer Set Exceed Action Mark and Transmit | ${dscp} -| | Policer Set Violate Action Transmit -| | Policer Enable Color Aware -| | Run Keyword If | ${t} == 'ca' | Policer Enable Color Aware -| | Policer Classify Set Precolor Exceed -| | Policer Set Node | ${dut1} -| | Policer Classify Set Interface | ${dut1_if1} -| | Policer Classify Set Match IP | 20.20.20.2 | ${False} -| | Policer Set Configuration -| | ${dut2_status} | ${value}= | Run Keyword And Ignore Error -| | ... | Variable Should Exist | ${dut2} -| | ${dut}= | Run Keyword If | '${dut2_status}' == 'PASS' -| | ... | Set Variable | ${dut2} -| | ... | ELSE | Set Variable | ${dut1} -| | ${dut_if2}= | Run Keyword If | '${dut2_status}' == 'PASS' -| | ... | Set Variable | ${dut2_if2} -| | ... | ELSE | Set Variable | ${dut1_if2} -| | Run Keyword Unless | '${dut2_status}' == 'PASS' -| | ... | Policer Set Name | policer2 -| | Policer Set Node | ${dut} -| | Policer Classify Set Interface | ${dut_if2} -| | Policer Classify Set Match IP | 10.10.10.2 | ${False} -| | Policer Set Configuration - | Initialize IPv6 forwarding in circular topology | | [Documentation] | | ... | Set UP state on VPP interfaces in path on nodes in 2-node / 3-node @@ -820,24 +780,6 @@ | | Vpp Route Add | ${dut} | ${tg_if2_net} | ${host_prefix} | | ... | gateway=2002:3::1 | interface=${dut_if2} -| Initialize IPv6 iAcl whitelist in 3-node circular topology -| | [Documentation] -| | ... | Creates classify L3 table on DUTs. IPv6 iAcl security whitelist -| | ... | ingress /64 filter entries applied on links TG - DUT1 and DUT2 - TG. -| | ... -| | ${table_idx} | ${skip_n} | ${match_n}= | And Vpp Creates Classify Table L3 -| | ... | ${dut1} | ip6 | dst -| | And Vpp Configures Classify Session L3 -| | ... | ${dut1} | permit | ${table_idx} | ip6 | dst | 2001:2::2 -| | And Vpp Enable Input Acl Interface -| | ... | ${dut1} | ${dut1_if1} | ip6 | ${table_idx} -| | ${table_idx} | ${skip_n} | ${match_n}= | And Vpp Creates Classify Table L3 -| | ... | ${dut2} | ip6 | dst -| | And Vpp Configures Classify Session L3 -| | ... | ${dut2} | permit | ${table_idx} | ip6 | dst | 2001:1::2 -| | And Vpp Enable Input Acl Interface -| | ... | ${dut2} | ${dut2_if2} | ip6 | ${table_idx} - | Initialize IPv6 forwarding over SRv6 with encapsulation with '${n}' x SID '${prepos}' decapsulation in 3-node circular topology | | [Documentation] | | ... | Set UP state on VPP interfaces in path on nodes in 3-node circular diff --git a/resources/libraries/robot/shared/default.robot b/resources/libraries/robot/shared/default.robot index 57ee1797af..a25919d9d6 100644 --- a/resources/libraries/robot/shared/default.robot +++ b/resources/libraries/robot/shared/default.robot @@ -20,25 +20,28 @@ | Library | OperatingSystem | Library | String | ... -| Library | resources.libraries.python.CoreDumpUtil +| Library | resources.libraries.python.Classify.Classify | Library | resources.libraries.python.CpuUtils +| Library | resources.libraries.python.CoreDumpUtil +| Library | resources.libraries.python.Cop | Library | resources.libraries.python.DUTSetup | Library | resources.libraries.python.L2Util | Library | resources.libraries.python.Namespaces +| Library | resources.libraries.python.PapiHistory | Library | resources.libraries.python.SchedUtils | Library | resources.libraries.python.Tap | Library | resources.libraries.python.TGSetup -| Library | resources.libraries.python.PapiHistory +| Library | resources.libraries.python.topology.Topology +| Library | resources.libraries.python.Trace | Library | resources.libraries.python.VppCounters | Library | resources.libraries.python.VPPUtil -| Library | resources.libraries.python.Trace -| Library | resources.libraries.python.topology.Topology | ... | Resource | resources/libraries/robot/crypto/ipsec.robot | Resource | resources/libraries/robot/performance/performance_configuration.robot | Resource | resources/libraries/robot/performance/performance_limits.robot | Resource | resources/libraries/robot/performance/performance_utils.robot | Resource | resources/libraries/robot/shared/container.robot +| Resource | resources/libraries/robot/features/policer.robot | Resource | resources/libraries/robot/shared/qemu.robot | Resource | resources/libraries/robot/shared/suite_teardown.robot | Resource | resources/libraries/robot/shared/suite_setup.robot diff --git a/resources/libraries/robot/shared/traffic.robot b/resources/libraries/robot/shared/traffic.robot index 4ec5496e84..c930bcf92e 100644 --- a/resources/libraries/robot/shared/traffic.robot +++ b/resources/libraries/robot/shared/traffic.robot @@ -17,10 +17,10 @@ | Library | resources.libraries.python.InterfaceUtil | Library | resources.libraries.python.IPv6Util | Library | resources.libraries.python.NodePath +| Library | resources.libraries.python.Policer | Library | resources.libraries.python.topology.Topology | Library | resources.libraries.python.TrafficScriptExecutor | ... -| Resource | resources/libraries/robot/shared/default.robot | Resource | resources/libraries/robot/shared/counters.robot | ... | Documentation | Traffic keywords @@ -552,3 +552,32 @@ | | ${args}= | Catenate | ${args} | --h_num ${hops} | --src_nh_mac ${src_nh_mac} | | ... | --dst_nh_mac ${dst_nh_mac} | --is_dst_tg ${is_dst_tg} | | Run Traffic Script On Node | icmpv6_echo_req_resp.py | ${tx_node} | ${args} + +| Send packet and verify marking +| | [Documentation] | Send packet and verify DSCP of the received packet. +| | ... +| | ... | *Arguments:* +| | ... | - node - TG node. Type: dictionary +| | ... | - tx_if - TG transmit interface. Type: string +| | ... | - rx_if - TG receive interface. Type: string +| | ... | - src_mac - Packet source MAC. Type: string +| | ... | - dst_mac - Packet destination MAC. Type: string +| | ... | - src_ip - Packet source IP address. Type: string +| | ... | - dst_ip - Packet destination IP address. Type: string +| | ... +| | ... | *Example:* +| | ... | \| Send packet and verify marking \| ${nodes['TG']} \| eth1 \| eth2 \ +| | ... | \| 08:00:27:87:4d:f7 \| 52:54:00:d4:d8:22 \| 192.168.122.2 \ +| | ... | \| 192.168.122.1 \| +| | ... +| | [Arguments] | ${node} | ${tx_if} | ${rx_if} | ${src_mac} | ${dst_mac} +| | ... | ${src_ip} | ${dst_ip} +| | ... +| | ${dscp}= | DSCP AF22 +| | ${tx_if_name}= | Get Interface Name | ${node} | ${tx_if} +| | ${rx_if_name}= | Get Interface Name | ${node} | ${rx_if} +| | ${args}= | Traffic Script Gen Arg | ${rx_if_name} | ${tx_if_name} +| | ... | ${src_mac} | ${dst_mac} | ${src_ip} | ${dst_ip} +| | ${dscp_num}= | Get DSCP Num Value | ${dscp} +| | ${args}= | Set Variable | ${args} --dscp ${dscp_num} +| | Run Traffic Script On Node | policer.py | ${node} | ${args} diff --git a/tests/vpp/device/ip4/eth2p-ethip4-ip4base-copblklistbase-dev.robot b/tests/vpp/device/ip4/eth2p-ethip4-ip4base-copblklistbase-dev.robot new file mode 100644 index 0000000000..dce802d9aa --- /dev/null +++ b/tests/vpp/device/ip4/eth2p-ethip4-ip4base-copblklistbase-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 | IP4FWD | FEATURE | COPBLKLIST +| ... +| Suite Setup | Setup suite single link | scapy +| Test Setup | Setup test +| Test Teardown | Tear down test | packet_trace +| ... +| Test Template | Local Template +| ... +| Documentation | *COP Security IPv4 whitelist test cases* +| ... +| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology \ +| ... | with single links between nodes. +| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on all links. +| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv4 routing and \ +| ... | static routes. COP security white-lists is applied on DUT1 ingress \ +| ... | interface from TG. +| ... | *[Ver] TG verification:* Test IPv4 packets are sent in one direction \ +| ... | by TG on link to DUT1; on receive TG verifies packets for correctness \ +| ... | and drops as applicable. +| ... | *[Ref] Applicable standard specifications:* + +*** Variables *** +| @{plugins_to_enable}= | dpdk_plugin.so +| ${nic_name}= | virtual +| ${overhead}= | ${0} + +*** Keywords *** +| Local Template +| | [Documentation] +| | ... | [Ver] Make TG send IPv4 on its interface to DUT1; \ +| | ... | verify received IPv4 pkts 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 +| | And Add Fib Table | ${dut1} | 1 +| | And Vpp Route Add | ${dut1} | 10.10.10.0 | 24 | vrf=1 | local=${TRUE} +| | And COP Add whitelist Entry | ${dut1} | ${dut1_if1} | ip4 | 1 +| | And COP interface enable or disable | ${dut1} | ${dut1_if1} | enable +| | Then Packet transmission from port to port should fail +| | ... | ${tg} | 100.0.0.2 | 200.0.0.2 +| | ... | ${tg_if1} | ${tg_if1_mac} | ${dut1_if1_mac} +| | ... | ${tg_if2} | ${dut1_if2_mac} | ${tg_if2_mac} + +*** Test Cases *** +| tc01-64B-ethip4-ip4base-copblklistbase-dev +| | [Tags] | 64B +| | frame_size=${64} | phy_cores=${0} diff --git a/tests/vpp/device/ip4/eth2p-ethip4-ip4base-copwhtlistbase-dev.robot b/tests/vpp/device/ip4/eth2p-ethip4-ip4base-copwhtlistbase-dev.robot new file mode 100644 index 0000000000..0a1e5af08a --- /dev/null +++ b/tests/vpp/device/ip4/eth2p-ethip4-ip4base-copwhtlistbase-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 | IP4FWD | FEATURE | COPWHLIST +| ... +| Suite Setup | Setup suite single link | scapy +| Test Setup | Setup test +| Test Teardown | Tear down test | packet_trace +| ... +| Test Template | Local Template +| ... +| Documentation | *COP Security IPv4 whitelist test cases* +| ... +| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology \ +| ... | with single links between nodes. +| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on all links. +| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv4 routing and \ +| ... | static routes. COP security white-lists is applied on DUT1 ingress \ +| ... | interface from TG. +| ... | *[Ver] TG verification:* Test IPv4 packets are sent in one direction \ +| ... | by TG on link to DUT1; on receive TG verifies packets for correctness \ +| ... | and drops as applicable. +| ... | *[Ref] Applicable standard specifications:* + +*** Variables *** +| @{plugins_to_enable}= | dpdk_plugin.so +| ${nic_name}= | virtual +| ${overhead}= | ${0} + +*** Keywords *** +| Local Template +| | [Documentation] +| | ... | [Ver] Make TG send IPv4 on its interface to DUT1; \ +| | ... | verify received IPv4 pkts 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 +| | And Add Fib Table | ${dut1} | 1 +| | And Vpp Route Add | ${dut1} | 10.10.10.0 | 24 | vrf=1 | local=${TRUE} +| | And COP Add whitelist Entry | ${dut1} | ${dut1_if1} | ip4 | 1 +| | And COP interface enable or disable | ${dut1} | ${dut1_if1} | enable +| | Then Send packet and verify headers +| | ... | ${tg} | 10.10.10.2 | 20.20.20.2 +| | ... | ${tg_if1} | ${tg_if1_mac} | ${dut1_if1_mac} +| | ... | ${tg_if2} | ${dut1_if2_mac} | ${tg_if2_mac} + +*** Test Cases *** +| tc01-64B-ethip4-ip4base-copwhtlistbase-dev +| | [Tags] | 64B +| | frame_size=${64} | phy_cores=${0} diff --git a/tests/vpp/device/ip4/eth2p-ethip4-ip4base-iacldstbase-dev.robot b/tests/vpp/device/ip4/eth2p-ethip4-ip4base-iacldstbase-dev.robot new file mode 100644 index 0000000000..35026a19c8 --- /dev/null +++ b/tests/vpp/device/ip4/eth2p-ethip4-ip4base-iacldstbase-dev.robot @@ -0,0 +1,79 @@ +# 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 | FEATURE | IACLDST +| ... +| Suite Setup | Setup suite single link | scapy +| Test Setup | Setup test +| Test Teardown | Tear down test | packet_trace +| ... +| Test Template | Local Template +| ... +| Documentation | *IPv4 iAcl whitelist test cases* +| ... +| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\ +| ... | with single links between nodes. +| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on all links. +| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv4 routing and \ +| ... | static routes. IPv4 iAcl security whitelist is applied on DUT1 ingress \ +| ... | interface from TG. +| ... | *[Ver] TG verification:* Test IPv4 packets are sent in one direction \ +| ... | by TG on link to DUT1; on receive TG verifies packets for correctness \ +| ... | and drops as applicable. +| ... | *[Ref] Applicable standard specifications:* + +*** Variables *** +| @{plugins_to_enable}= | dpdk_plugin.so +| ${nic_name}= | virtual +| ${overhead}= | ${0} + +*** Keywords *** +| Local Template +| | [Documentation] +| | ... | [Ver] Make TG send IPv4 on its interface to DUT1; \ +| | ... | verify received IPv4 pkts are correct. +| | ... +| | ... | *Arguments:* +| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1). +| | ... | Type: integer, string +| | ... | - 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 +| | ${table_idx} | ${skip_n} | ${match_n}= | And Vpp Creates Classify Table L3 +| | ... | ${dut1} | ip4 | dst | 20.20.20.2 +| | And Vpp Configures Classify Session L3 +| | ... | ${dut1} | permit | ${table_idx} | ip4 | dst | 20.20.20.2 +| | And Vpp Enable Input Acl Interface +| | ... | ${dut1} | ${dut1_if1} | ip4 | ${table_idx} +| | Then Send packet and verify headers +| | ... | ${tg} | 10.10.10.2 | 20.20.20.2 +| | ... | ${tg_if1} | ${tg_if1_mac} | ${dut1_if1_mac} +| | ... | ${tg_if2} | ${dut1_if2_mac} | ${tg_if2_mac} + +*** Test Cases *** +| tc01-64B-ethip4-ip4base-iacldstbase-dev +| | [Tags] | 64B +| | frame_size=${64} | phy_cores=${0} diff --git a/tests/vpp/device/ip4/eth2p-ethip4-ip4base-ipolicemarkbase-dev.robot b/tests/vpp/device/ip4/eth2p-ethip4-ip4base-ipolicemarkbase-dev.robot new file mode 100644 index 0000000000..1b4b51d0f1 --- /dev/null +++ b/tests/vpp/device/ip4/eth2p-ethip4-ip4base-ipolicemarkbase-dev.robot @@ -0,0 +1,75 @@ +# 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 | FEATURE | POLICE_MARK +| ... +| Suite Setup | Setup suite single link | scapy +| Test Setup | Setup test +| Test Teardown | Tear down test | packet_trace +| ... +| Test Template | Local Template +| ... +| Documentation | *IPv4 policer test cases* +| ... +| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\ +| ... | with single links between nodes. +| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 on all links. +| ... | *[Cfg] DUT configuration:* On DUT1 configure interfaces IPv4 adresses, \ +| ... | and static ARP record on the second interface. On DUT1 configure 2R3C \ +| ... | color-aware policer on the first interface. +| ... | *[Ver] TG verification:* Test packet is sent from TG on the first link \ +| ... | to DUT1. Packet is received on TG on the second link from DUT1. +| ... | *[Ref] Applicable standard specifications:* RFC2474, RFC2697, RFC2698. + +*** Variables *** +| @{plugins_to_enable}= | dpdk_plugin.so +| ${nic_name}= | virtual +| ${overhead}= | ${0} +| ${cir}= | ${100} +| ${eir}= | ${150} + +*** Keywords *** +| Local Template +| | [Documentation] +| | ... | [Ver] Test packet is sent from TG on the first link to DUT1. \ +| | ... | Packet is received on TG on the second link from DUT1. +| | ... +| | ... | *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} +| | Set Test Variable | \${cb} | ${frame_size} +| | Set Test Variable | \${eb} | ${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 +| | And Initialize IPv4 policer 2r3c-'ca' in circular topology +| | Then Send packet and verify marking +| | ... | ${tg} | ${tg_if1} | ${tg_if2} | ${tg_if1_mac} | ${dut1_if1_mac} +| | ... | 10.10.10.2 | 20.20.20.2 + +*** Test Cases *** +| tc01-64B-ethip4-ip4base-ipolicemarkbase-dev +| | [Tags] | 64B +| | frame_size=${64} | phy_cores=${0} \ No newline at end of file diff --git a/tests/vpp/device/ip6/eth2p-ethip6-ip6base-copblklistbase-dev.robot b/tests/vpp/device/ip6/eth2p-ethip6-ip6base-copblklistbase-dev.robot new file mode 100644 index 0000000000..015a97c5d9 --- /dev/null +++ b/tests/vpp/device/ip6/eth2p-ethip6-ip6base-copblklistbase-dev.robot @@ -0,0 +1,74 @@ +# 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 | FEATURE | COPBLKLIST +| ... +| Suite Setup | Setup suite single link | scapy +| Test Setup | Setup test +| Test Teardown | Tear down test | packet_trace +| ... +| Test Template | Local Template +| ... +| Documentation | *COP Security IPv6 whitelist test cases* +| ... +| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology \ +| ... | with single links between nodes. +| ... | *[Enc] Packet Encapsulations:* Eth-IPv6 on all links. +| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv6 routing and \ +| ... | static routes. COP security white-lists are applied on DUT1 ingress \ +| ... | interface from TG. +| ... | *[Ver] TG verification:* Test IPv6 packets are sent in one direction \ +| ... | by TG on link to DUT1; on receive TG verifies packets for correctness \ +| ... | and drops as applicable. +| ... | *[Ref] Applicable standard specifications:* + +*** Variables *** +| @{plugins_to_enable}= | dpdk_plugin.so +| ${nic_name}= | virtual +| ${overhead}= | ${0} + +*** Keywords *** +| Local Template +| | [Documentation] +| | ... | [Ver] Make TG send IPv6 on its interface to DUT1; \ +| | ... | verify received IPv6 pkts 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 +| | And COP Add whitelist Entry | ${dut1} | ${dut1_if1} | ip6 | 1 +| | And COP interface enable or disable | ${dut1} | ${dut1_if1} | enable +| | Then Packet transmission from port to port should fail +| | ... | ${tg} | 2002:1::2 | 2002:2::2 +| | ... | ${tg_if1} | ${tg_if1_mac} | ${dut1_if1_mac} +| | ... | ${tg_if2} | ${dut1_if2_mac} | ${tg_if2_mac} + +*** Test Cases *** +| tc01-78B-ethip6-ip6base-copblklistbase-dev +| | [Tags] | 78B +| | frame_size=${78} | phy_cores=${0} diff --git a/tests/vpp/device/ip6/eth2p-ethip6-ip6base-copwhtlistbase-dev.robot b/tests/vpp/device/ip6/eth2p-ethip6-ip6base-copwhtlistbase-dev.robot new file mode 100644 index 0000000000..abf8b45611 --- /dev/null +++ b/tests/vpp/device/ip6/eth2p-ethip6-ip6base-copwhtlistbase-dev.robot @@ -0,0 +1,74 @@ +# 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 | FEATURE | COPWHLIST +| ... +| Suite Setup | Setup suite single link | scapy +| Test Setup | Setup test +| Test Teardown | Tear down test | packet_trace +| ... +| Test Template | Local Template +| ... +| Documentation | *COP Security IPv6 whitelist test cases* +| ... +| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology \ +| ... | with single links between nodes. +| ... | *[Enc] Packet Encapsulations:* Eth-IPv6 on all links. +| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv6 routing and \ +| ... | static routes. COP security white-lists are applied on DUT1 ingress \ +| ... | interface from TG. +| ... | *[Ver] TG verification:* Test IPv6 packets are sent in one direction \ +| ... | by TG on link to DUT1; on receive TG verifies packets for correctness \ +| ... | and drops as applicable. +| ... | *[Ref] Applicable standard specifications:* + +*** Variables *** +| @{plugins_to_enable}= | dpdk_plugin.so +| ${nic_name}= | virtual +| ${overhead}= | ${0} + +*** Keywords *** +| Local Template +| | [Documentation] +| | ... | [Ver] Make TG send IPv6 on its interface to DUT1; \ +| | ... | verify received IPv6 pkts 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 +| | And COP Add whitelist Entry | ${dut1} | ${dut1_if1} | ip6 | 1 +| | And COP interface enable or disable | ${dut1} | ${dut1_if1} | enable +| | Then Send packet and verify headers +| | ... | ${tg} | 2001:1::2 | 2001:2::2 +| | ... | ${tg_if1} | ${tg_if1_mac} | ${dut1_if1_mac} +| | ... | ${tg_if2} | ${dut1_if2_mac} | ${tg_if2_mac} + +*** Test Cases *** +| tc01-78B-ethip6-ip6base-copwhtlistbase-dev +| | [Tags] | 78B +| | frame_size=${78} | phy_cores=${0} diff --git a/tests/vpp/device/ip6/eth2p-ethip6-ip6base-iacldstbase-dev.robot b/tests/vpp/device/ip6/eth2p-ethip6-ip6base-iacldstbase-dev.robot new file mode 100644 index 0000000000..50ae50676f --- /dev/null +++ b/tests/vpp/device/ip6/eth2p-ethip6-ip6base-iacldstbase-dev.robot @@ -0,0 +1,79 @@ +# 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 | FEATURE | IACLDST +| ... +| Suite Setup | Setup suite single link | scapy +| Test Setup | Setup test +| Test Teardown | Tear down test | packet_trace +| ... +| Test Template | Local Template +| ... +| Documentation | *IPv6 iAcl whitelist test cases* +| ... +| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\ +| ... | with single links between nodes. +| ... | *[Enc] Packet Encapsulations:* Eth-IPv6 on all links. +| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv6 routing and \ +| ... | static routes. IPv6 iAcl security whitelist is applied on DUT1 ingress \ +| ... | interface from TG. +| ... | *[Ver] TG verification:* Test IPv6 packets are sent in one direction \ +| ... | by TG on link to DUT1; on receive TG verifies packets for correctness \ +| ... | and drops as applicable. +| ... | *[Ref] Applicable standard specifications:* + +*** Variables *** +| @{plugins_to_enable}= | dpdk_plugin.so +| ${nic_name}= | virtual +| ${overhead}= | ${0} + +*** Keywords *** +| Local Template +| | [Documentation] +| | ... | [Ver] Make TG send IPv6 on its interface to DUT1; \ +| | ... | verify received IPv6 pkts are correct. +| | ... +| | ... | *Arguments:* +| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1). +| | ... | Type: integer, string +| | ... | - 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 +| | ${table_idx} | ${skip_n} | ${match_n}= | And Vpp Creates Classify Table L3 +| | ... | ${dut1} | ip6 | dst | 2001:2::2 +| | And Vpp Configures Classify Session L3 +| | ... | ${dut1} | permit | ${table_idx} | ip6 | dst | 2001:2::2 +| | And Vpp Enable Input Acl Interface +| | ... | ${dut1} | ${dut1_if1} | ip6 | ${table_idx} +| | Then Send packet and verify headers +| | ... | ${tg} | 2001:1::2 | 2001:2::2 +| | ... | ${tg_if1} | ${tg_if1_mac} | ${dut1_if1_mac} +| | ... | ${tg_if2} | ${dut1_if2_mac} | ${tg_if2_mac} + +*** Test Cases *** +| tc01-78B-ethip6-ip6base-iacldstbase-dev +| | [Tags] | 78B +| | frame_size=${78} | phy_cores=${0} diff --git a/tests/vpp/device/ip6/eth2p-ethip6-ip6base-ipolicemarkbase-dev.robot b/tests/vpp/device/ip6/eth2p-ethip6-ip6base-ipolicemarkbase-dev.robot new file mode 100644 index 0000000000..e0ea687581 --- /dev/null +++ b/tests/vpp/device/ip6/eth2p-ethip6-ip6base-ipolicemarkbase-dev.robot @@ -0,0 +1,75 @@ +# 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 | FEATURE | POLICE_MARK +| ... +| Suite Setup | Setup suite single link | scapy +| Test Setup | Setup test +| Test Teardown | Tear down test | packet_trace +| ... +| Test Template | Local Template +| ... +| Documentation | *IPv4 policer test cases* +| ... +| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology\ +| ... | with single links between nodes. +| ... | *[Enc] Packet Encapsulations:* Eth-IPv6 on all links. +| ... | *[Cfg] DUT configuration:* On DUT1 configure interfaces IPv6 adresses, \ +| ... | and static ARP record on the second interface. On DUT1 configure 2R3C \ +| ... | color-aware policer on the first interface. +| ... | *[Ver] TG verification:* Test packet is sent from TG on the first link \ +| ... | to DUT1. Packet is received on TG on the second link from DUT1. +| ... | *[Ref] Applicable standard specifications:* RFC2474, RFC2697, RFC2698. + +*** Variables *** +| @{plugins_to_enable}= | dpdk_plugin.so +| ${nic_name}= | virtual +| ${overhead}= | ${0} +| ${cir}= | ${100} +| ${eir}= | ${150} + +*** Keywords *** +| Local Template +| | [Documentation] +| | ... | [Ver] Test packet is sent from TG on the first link to DUT1. \ +| | ... | Packet is received on TG on the second link from DUT1. +| | ... +| | ... | *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} +| | Set Test Variable | \${cb} | ${frame_size} +| | Set Test Variable | \${eb} | ${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 +| | And Initialize IPv6 policer 2r3c-'ca' in circular topology +| | Then Send packet and verify marking +| | ... | ${tg} | ${tg_if1} | ${tg_if2} | ${tg_if1_mac} | ${dut1_if1_mac} +| | ... | 2001:1::2 | 2001:2::2 + +*** Test Cases *** +| tc01-78B-ethip6-ip6base-ipolicemarkbase-dev +| | [Tags] | 78B +| | frame_size=${78} | phy_cores=${0} diff --git a/tests/vpp/func/ip4/eth2p-ethip4-ip4base-copblklistbase-func.robot b/tests/vpp/func/ip4/eth2p-ethip4-ip4base-copblklistbase-func.robot deleted file mode 100644 index ef84aa21b0..0000000000 --- a/tests/vpp/func/ip4/eth2p-ethip4-ip4base-copblklistbase-func.robot +++ /dev/null @@ -1,94 +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 *** -| Library | resources.libraries.python.Cop -| Library | resources.libraries.python.Trace -| ... -| Resource | resources/libraries/robot/ip/ip4.robot -| Resource | resources/libraries/robot/l2/l2_xconnect.robot -| Resource | resources/libraries/robot/shared/default.robot -| Resource | resources/libraries/robot/shared/interfaces.robot -| Resource | resources/libraries/robot/shared/traffic.robot -| Resource | resources/libraries/robot/shared/testing_path.robot -| ... -| Force Tags | HW_ENV | VM_ENV | 3_NODE_SINGLE_LINK_TOPO -| ... -| Test Setup | Set up functional test -| ... -| Test Teardown | Tear down functional test -| ... -| Documentation | *COP Security IPv4 Blacklist Tests* -| ... -| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology -| ... | with single links between nodes. -| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-ICMPv4 on all links. -| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv4 routing and -| ... | static routes. COP security black-lists are applied on DUT1 ingress -| ... | interface from TG. DUT2 is configured with L2XC. -| ... | *[Ver] TG verification:* Test ICMPv4 Echo Request packets are sent in -| ... | one direction by TG on link to DUT1; on receive TG verifies packets for -| ... | correctness and drops as applicable. -| ... | *[Ref] Applicable standard specifications:* - -*** Variables *** -| ${tg_node}= | ${nodes['TG']} -| ${dut1_node}= | ${nodes['DUT1']} -| ${dut2_node}= | ${nodes['DUT2']} - -| ${dut1_if1_ip}= | 192.168.1.1 -| ${dut1_if2_ip}= | 192.168.2.1 -| ${dut1_if1_ip_GW}= | 192.168.1.2 -| ${dut1_if2_ip_GW}= | 192.168.2.2 - -| ${test_dst_ip}= | 32.0.0.1 -| ${test_src_ip}= | 16.0.0.1 - -| ${cop_dut_ip}= | 16.0.0.0 - -| ${ip_prefix}= | 24 - -| ${fib_table_number}= | 1 - -*** Test Cases *** -| TC01: DUT drops IPv4 pkts with COP blacklist set with IPv4 src-addr -| | [Documentation] -| | ... | [Top] TG-DUT1-DUT2-TG. [Enc] Eth-IPv4-ICMPv4. [Cfg] On DUT1 \ -| | ... | configure interface IPv4 addresses and routes in the main -| | ... | routing domain, add COP blacklist on interface to TG with IPv4 -| | ... | src-addr matching packets generated by TG; on DUT2 configure L2 -| | ... | xconnect. [Ver] Make TG send ICMPv4 Echo Req on its interface to -| | ... | DUT1; verify no ICMPv4 Echo Req pkts are received. [Ref] -| | Given Configure path in 3-node circular topology -| | ... | ${tg_node} | ${dut1_node} | ${dut2_node} | ${tg_node} -| | And Set interfaces in 3-node circular topology up -| | And Configure L2XC -| | ... | ${dut2_node} | ${dut2_to_dut1} | ${dut2_to_tg} -| | And VPP Interface Set IP Address -| | ... | ${dut1_node} | ${dut1_to_tg} | ${dut1_if1_ip} | ${ip_prefix} -| | And VPP Interface Set IP Address -| | ... | ${dut1_node} | ${dut1_to_dut2} | ${dut1_if2_ip} | ${ip_prefix} -| | And VPP Add IP Neighbor -| | ... | ${dut1_node} | ${dut1_to_tg} | ${dut1_if1_ip_GW} | ${tg_to_dut1_mac} -| | And VPP Add IP Neighbor -| | ... | ${dut1_node} | ${dut1_to_dut2} | ${dut1_if2_ip_GW} | ${tg_to_dut2_mac} -| | And Vpp Route Add | ${dut1_node} | ${test_dst_ip} | ${ip_prefix} -| | ... | gateway=${dut1_if2_ip_GW} | interface=${dut1_to_dut2} -| | And Add fib table | ${dut1_node} | ${fib_table_number} -| | When COP Add whitelist Entry -| | ... | ${dut1_node} | ${dut1_to_tg} | ip4 | ${fib_table_number} -| | And COP interface enable or disable | ${dut1_node} | ${dut1_to_tg} | enable -| | Then Packet transmission from port to port should fail | ${tg_node} -| | ... | ${test_src_ip} | ${test_dst_ip} | ${tg_to_dut1} | ${tg_to_dut1_mac} -| | ... | ${dut1_to_tg_mac} | ${tg_to_dut2} | ${dut1_to_dut2_mac} -| | ... | ${tg_to_dut2_mac} diff --git a/tests/vpp/func/ip4/eth2p-ethip4-ip4base-copwhlistbase-func.robot b/tests/vpp/func/ip4/eth2p-ethip4-ip4base-copwhlistbase-func.robot deleted file mode 100644 index 5fcc74f94a..0000000000 --- a/tests/vpp/func/ip4/eth2p-ethip4-ip4base-copwhlistbase-func.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 *** -| Library | resources.libraries.python.Cop -| Library | resources.libraries.python.Trace -| ... -| Resource | resources/libraries/robot/ip/ip4.robot -| Resource | resources/libraries/robot/l2/l2_xconnect.robot -| Resource | resources/libraries/robot/shared/default.robot -| Resource | resources/libraries/robot/shared/interfaces.robot -| Resource | resources/libraries/robot/shared/traffic.robot -| Resource | resources/libraries/robot/shared/testing_path.robot -| ... -| Force Tags | HW_ENV | VM_ENV | 3_NODE_SINGLE_LINK_TOPO -| ... -| Test Setup | Set up functional test -| ... -| Test Teardown | Tear down functional test -| ... -| Documentation | *COP Security IPv4 Whitelist Tests* -| ... -| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology -| ... | with single links between nodes. -| ... | *[Enc] Packet Encapsulations:* Eth-IPv4-ICMPv4 on all links. -| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv4 routing and -| ... | static routes. COP security white-lists are applied on DUT1 ingress -| ... | interface from TG. DUT2 is configured with L2XC. -| ... | *[Ver] TG verification:* Test ICMPv4 Echo Request packets are sent in -| ... | one direction by TG on link to DUT1; on receive TG verifies packets for -| ... | correctness and drops as applicable. -| ... | *[Ref] Applicable standard specifications:* - -*** Variables *** -| ${tg_node}= | ${nodes['TG']} -| ${dut1_node}= | ${nodes['DUT1']} -| ${dut2_node}= | ${nodes['DUT2']} - -| ${dut1_if1_ip}= | 192.168.1.1 -| ${dut1_if2_ip}= | 192.168.2.1 -| ${dut1_if1_ip_GW}= | 192.168.1.2 -| ${dut1_if2_ip_GW}= | 192.168.2.2 - -| ${test_dst_ip}= | 32.0.0.1 -| ${test_src_ip}= | 16.0.0.1 - -| ${cop_dut_ip}= | 16.0.0.0 - -| ${ip_prefix}= | 24 - -| ${fib_table_number}= | 1 - -*** Test Cases *** -| TC01: DUT permits IPv4 pkts with COP whitelist set with IPv4 src-addr -| | [Documentation] -| | ... | [Top] TG-DUT1-DUT2-TG. [Enc] Eth-IPv4-ICMPv4. [Cfg] On DUT1 \ -| | ... | configure interface IPv4 addresses and routes in the main -| | ... | routing domain, add COP whitelist on interface to TG with IPv4 -| | ... | src-addr matching packets generated by TG; on DUT2 configure L2 -| | ... | xconnect. [Ver] Make TG send ICMPv4 Echo Req on its interface to -| | ... | DUT1; verify received ICMPv4 Echo Req pkts are correct. [Ref] -| | Given Configure path in 3-node circular topology -| | ... | ${tg_node} | ${dut1_node} | ${dut2_node} | ${tg_node} -| | And Set interfaces in 3-node circular topology up -| | And Configure L2XC -| | ... | ${dut2_node} | ${dut2_to_dut1} | ${dut2_to_tg} -| | And VPP Interface Set IP Address -| | ... | ${dut1_node} | ${dut1_to_tg} | ${dut1_if1_ip} | ${ip_prefix} -| | And VPP Interface Set IP Address -| | ... | ${dut1_node} | ${dut1_to_dut2} | ${dut1_if2_ip} | ${ip_prefix} -| | And VPP Add IP Neighbor -| | ... | ${dut1_node} | ${dut1_to_tg} | ${dut1_if1_ip_GW} | ${tg_to_dut1_mac} -| | And VPP Add IP Neighbor -| | ... | ${dut1_node} | ${dut1_to_dut2} | ${dut1_if2_ip_GW} | ${tg_to_dut2_mac} -| | And Vpp Route Add | ${dut1_node} | ${test_dst_ip} | ${ip_prefix} -| | ... | gateway=${dut1_if2_ip_GW} | interface=${dut1_to_dut2} -| | And Add fib table | ${dut1_node} | ${fib_table_number} -| | And Vpp Route Add | ${dut1_node} | ${cop_dut_ip} | ${ip_prefix} -| | ... | vrf=${fib_table_number} | local=${TRUE} -| | When COP Add whitelist Entry -| | ... | ${dut1_node} | ${dut1_to_tg} | ip4 | ${fib_table_number} -| | And COP interface enable or disable | ${dut1_node} | ${dut1_to_tg} | enable -| | Then Send packet and verify headers | ${tg_node} -| | ... | ${test_src_ip} | ${test_dst_ip} | ${tg_to_dut1} | ${tg_to_dut1_mac} -| | ... | ${dut1_to_tg_mac} | ${tg_to_dut2} | ${dut1_to_dut2_mac} -| | ... | ${tg_to_dut2_mac} diff --git a/tests/vpp/func/ip4/eth2p-ethip4-ip4base-iaclbase-func.robot b/tests/vpp/func/ip4/eth2p-ethip4-ip4base-iaclbase-func.robot deleted file mode 100644 index b8528f36d1..0000000000 --- a/tests/vpp/func/ip4/eth2p-ethip4-ip4base-iaclbase-func.robot +++ /dev/null @@ -1,193 +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 *** -| Library | resources.libraries.python.Classify.Classify -| Library | resources.libraries.python.Trace -| ... -| Resource | resources/libraries/robot/ip/ip4.robot -| Resource | resources/libraries/robot/l2/l2_traffic.robot -| Resource | resources/libraries/robot/l2/l2_xconnect.robot -| Resource | resources/libraries/robot/shared/counters.robot -| Resource | resources/libraries/robot/shared/default.robot -| Resource | resources/libraries/robot/shared/interfaces.robot -| Resource | resources/libraries/robot/shared/testing_path.robot -| Resource | resources/libraries/robot/shared/traffic.robot -| ... -| Force Tags | HW_ENV | VM_ENV | 3_NODE_SINGLE_LINK_TOPO | SKIP_VPP_PATCH -| ... -| Test Setup | Set up functional test -| ... -| Test Teardown | Tear down functional test -| ... -| Documentation | *IPv4 routing with ingress ACL test cases* -| ... -| ... | Encapsulations: Eth-IPv4 on links TG-DUT1, TG-DUT2, DUT1-DUT2. IPv4 -| ... | ingress ACL (iACL) tests use 3-node topology TG - DUT1 - DUT2 - TG with -| ... | one link between the nodes. DUT1 and DUT2 are configured with IPv4 -| ... | routing and static routes. DUT1 is configured with iACL on link to TG, -| ... | iACL classification and permit action are configured on a per test -| ... | case basis. Test ICMPv4 Echo Request packets are sent in one direction -| ... | by TG on link to DUT1 and received on TG link to DUT2. On receive TG -| ... | verifies if packets are accepted, or if received verifies packet IPv4 -| ... | src-addr, dst-addr and MAC addresses. - -*** Variables *** -| ${dut1_to_tg_ip}= | 192.168.1.1 -| ${dut1_to_dut2_ip}= | 192.168.2.1 -| ${dut1_to_dut2_ip_GW}= | 192.168.2.2 -| ${test_dst_ip}= | 32.0.0.1 -| ${test_src_ip}= | 16.0.0.1 -| ${non_drop_dst_ip}= | 33.0.0.1 -| ${non_drop_src_ip}= | 15.0.0.1 -| ${prefix_length}= | 24 -| ${ip_version}= | ip4 -| ${l2_table}= | l2 - -*** Test Cases *** -| TC01: DUT with iACL IPv4 src-addr and dst-addr accepts matching pkts -| | [Documentation] -| | ... | On DUT1 add source and destination IPv4 addresses to classify table\ -| | ... | with 'permit'. -| | Given Configure path in 3-node circular topology -| | ... | ${nodes['TG']} | ${nodes['DUT1']} | ${nodes['DUT2']} | ${nodes['TG']} -| | And Set interfaces in 3-node circular topology up -| | And VPP Interface Set IP Address | ${dut1_node} -| | ... | ${dut1_to_tg} | ${dut1_to_tg_ip} | ${prefix_length} -| | And VPP Interface Set IP Address | ${dut1_node} -| | ... | ${dut1_to_dut2} | ${dut1_to_dut2_ip} | ${prefix_length} -| | And VPP Add IP Neighbor -| | ... | ${dut1_node} | ${dut1_to_dut2} | ${dut1_to_dut2_ip_GW} -| | ... | ${tg_to_dut2_mac} -| | And Vpp Route Add -| | ... | ${dut1_node} | ${test_dst_ip} | ${prefix_length} -| | ... | gateway=${dut1_to_dut2_ip_GW} | interface=${dut1_to_dut2} -| | And Vpp Route Add -| | ... | ${dut1_node} | ${non_drop_dst_ip} | ${prefix_length} -| | ... | gateway=${dut1_to_dut2_ip_GW} | interface=${dut1_to_dut2} -| | And Configure L2XC -| | ... | ${dut2_node} | ${dut2_to_dut1} | ${dut2_to_tg} -| | Then Send packet and verify headers | ${tg_node} -| | ... | ${non_drop_src_ip} | ${non_drop_dst_ip} | ${tg_to_dut1} -| | ... | ${tg_to_dut1_mac} | ${dut1_to_tg_mac} | ${tg_to_dut2} -| | ... | ${dut1_to_dut2_mac} | ${tg_to_dut2_mac} -| | And Send packet and verify headers | ${tg_node} -| | ... | ${test_src_ip} | ${test_dst_ip} | ${tg_to_dut1} | ${tg_to_dut1_mac} -| | ... | ${dut1_to_tg_mac} | ${tg_to_dut2} -| | ... | ${dut1_to_dut2_mac} | ${tg_to_dut2_mac} -| | ${table_index_1} | ${skip_n_1} | ${match_n_1}= -| | ... | When Vpp Creates Classify Table L3 | ${dut1_node} -| | ... | ${ip_version} | src | ${test_src_ip} -| | ${table_index_2} | ${skip_n_2} | ${match_n_2}= -| | ... | And Vpp Creates Classify Table L3 | ${dut1_node} | ${ip_version} -| | ... | dst | ${test_dst_ip} -| | And Vpp Configures Classify Session L3 -| | ... | ${dut1_node} | permit | ${table_index_1} -| | ... | ${ip_version} | src | ${test_src_ip} -| | And Vpp Configures Classify Session L3 -| | ... | ${dut1_node} | permit | ${table_index_2} -| | ... | ${ip_version} | dst | ${test_dst_ip} -| | And Vpp Enable Input Acl Interface -| | ... | ${dut1_node} | ${dut1_to_tg} | ${ip_version} | ${table_index_1} -| | And Vpp Enable Input Acl Interface -| | ... | ${dut1_node} | ${dut1_to_tg} | ${ip_version} | ${table_index_2} -| | Then Send packet and verify headers | ${tg_node} -| | ... | ${test_src_ip} | ${test_dst_ip} | ${tg_to_dut1} | ${tg_to_dut1_mac} -| | ... | ${dut1_to_tg_mac} | ${tg_to_dut2} -| | ... | ${dut1_to_dut2_mac} | ${tg_to_dut2_mac} -| | And Send packet and verify headers | ${tg_node} -| | ... | ${non_drop_src_ip} | ${non_drop_dst_ip} | ${tg_to_dut1} -| | ... | ${tg_to_dut1_mac} | ${dut1_to_tg_mac} | ${tg_to_dut2} -| | ... | ${dut1_to_dut2_mac} | ${tg_to_dut2_mac} - -| TC02: DUT with iACL IPv4 TCP src-ports and dst-ports accepts matching pkts -| | [Documentation] -| | ... | On DUT1 add TCP source and destination ports to classify table\ -| | ... | with 'permit'. -| | Given Configure path in 3-node circular topology -| | ... | ${nodes['TG']} | ${nodes['DUT1']} | ${nodes['DUT2']} | ${nodes['TG']} -| | And Set interfaces in 3-node circular topology up -| | And VPP Interface Set IP Address | ${dut1_node} -| | ... | ${dut1_to_tg} | ${dut1_to_tg_ip} | ${prefix_length} -| | And VPP Interface Set IP Address | ${dut1_node} -| | ... | ${dut1_to_dut2} | ${dut1_to_dut2_ip} | ${prefix_length} -| | And VPP Add IP Neighbor -| | ... | ${dut1_node} | ${dut1_to_dut2} | ${dut1_to_dut2_ip_GW} -| | ... | ${tg_to_dut2_mac} -| | And Vpp Route Add -| | ... | ${dut1_node} | ${test_dst_ip} | ${prefix_length} -| | ... | gateway=${dut1_to_dut2_ip_GW} | interface=${dut1_to_dut2} -| | And Configure L2XC -| | ... | ${dut2_node} | ${dut2_to_dut1} | ${dut2_to_tg} -| | Then Send TCP or UDP packet and verify received packet | ${tg_node} -| | ... | ${test_src_ip} | ${test_dst_ip} | ${tg_to_dut1} | ${tg_to_dut1_mac} -| | ... | ${tg_to_dut2} | ${dut1_to_tg_mac} | TCP | 110 | 25 -| | And Send TCP or UDP packet and verify received packet | ${tg_node} -| | ... | ${test_src_ip} | ${test_dst_ip} | ${tg_to_dut1} | ${tg_to_dut1_mac} -| | ... | ${tg_to_dut2} | ${dut1_to_tg_mac} | TCP | 80 | 20 -| | ${hex_mask}= | Compute Classify Hex Mask | ${ip_version} | TCP -| | ... | source + destination -| | ${hex_value}= | Compute Classify Hex Value | ${hex_mask} | 80 | 20 -| | ${table_index} | ${skip_n} | ${match_n}= -| | ... | When Vpp Creates Classify Table Hex | ${dut1_node} | ${hex_mask} -| | And Vpp Configures Classify Session Hex -| | ... | ${dut1_node} | permit | ${table_index} | ${hex_value} -| | And Vpp Enable Input Acl Interface -| | ... | ${dut1_node} | ${dut1_to_tg} | ${ip_version} | ${table_index} -| | Then Send TCP or UDP packet and verify received packet | ${tg_node} -| | ... | ${test_src_ip} | ${test_dst_ip} | ${tg_to_dut1} | ${tg_to_dut1_mac} -| | ... | ${tg_to_dut2} | ${dut1_to_tg_mac} | TCP | 80 | 20 -| | And Send TCP or UDP packet and verify received packet | ${tg_node} -| | ... | ${test_src_ip} | ${test_dst_ip} | ${tg_to_dut1} | ${tg_to_dut1_mac} -| | ... | ${tg_to_dut2} | ${dut1_to_tg_mac} | TCP | 110 | 25 - -| TC03: DUT with iACL IPv4 UDP src-ports and dst-ports accepts matching pkts -| | [Documentation] -| | ... | On DUT1 add UDP source and destination ports to classify table\ -| | ... | with 'permit'. -| | Given Configure path in 3-node circular topology -| | ... | ${nodes['TG']} | ${nodes['DUT1']} | ${nodes['DUT2']} | ${nodes['TG']} -| | And Set interfaces in 3-node circular topology up -| | And VPP Interface Set IP Address | ${dut1_node} -| | ... | ${dut1_to_tg} | ${dut1_to_tg_ip} | ${prefix_length} -| | And VPP Interface Set IP Address | ${dut1_node} -| | ... | ${dut1_to_dut2} | ${dut1_to_dut2_ip} | ${prefix_length} -| | And VPP Add IP Neighbor -| | ... | ${dut1_node} | ${dut1_to_dut2} | ${dut1_to_dut2_ip_GW} -| | ... | ${tg_to_dut2_mac} -| | And Vpp Route Add -| | ... | ${dut1_node} | ${test_dst_ip} | ${prefix_length} -| | ... | gateway=${dut1_to_dut2_ip_GW} | interface=${dut1_to_dut2} -| | And Configure L2XC -| | ... | ${dut2_node} | ${dut2_to_dut1} | ${dut2_to_tg} -| | Then Send TCP or UDP packet and verify received packet | ${tg_node} -| | ... | ${test_src_ip} | ${test_dst_ip} | ${tg_to_dut1} | ${tg_to_dut1_mac} -| | ... | ${tg_to_dut2} | ${dut1_to_tg_mac} | UDP | 110 | 25 -| | And Send TCP or UDP packet and verify received packet | ${tg_node} -| | ... | ${test_src_ip} | ${test_dst_ip} | ${tg_to_dut1} | ${tg_to_dut1_mac} -| | ... | ${tg_to_dut2} | ${dut1_to_tg_mac} | UDP | 80 | 20 -| | ${hex_mask}= | Compute Classify Hex Mask | ${ip_version} | UDP -| | ... | source + destination -| | ${hex_value}= | Compute Classify Hex Value | ${hex_mask} | 80 | 20 -| | ${table_index} | ${skip_n} | ${match_n}= -| | ... | When Vpp Creates Classify Table Hex | ${dut1_node} | ${hex_mask} -| | And Vpp Configures Classify Session Hex -| | ... | ${dut1_node} | permit | ${table_index} | ${hex_value} -| | And Vpp Enable Input Acl Interface -| | ... | ${dut1_node} | ${dut1_to_tg} | ${ip_version} | ${table_index} -| | Then Send TCP or UDP packet and verify received packet | ${tg_node} -| | ... | ${test_src_ip} | ${test_dst_ip} | ${tg_to_dut1} | ${tg_to_dut1_mac} -| | ... | ${tg_to_dut2} | ${dut1_to_tg_mac} | UDP | 80 | 20 -| | And Send TCP or UDP packet and verify received packet | ${tg_node} -| | ... | ${test_src_ip} | ${test_dst_ip} | ${tg_to_dut1} | ${tg_to_dut1_mac} -| | ... | ${tg_to_dut2} | ${dut1_to_tg_mac} | UDP | 110 | 25 diff --git a/tests/vpp/func/ip4/eth2p-ethip4-ip4base-ipolicemarkbase-func.robot b/tests/vpp/func/ip4/eth2p-ethip4-ip4base-ipolicemarkbase-func.robot deleted file mode 100644 index 60e480c287..0000000000 --- a/tests/vpp/func/ip4/eth2p-ethip4-ip4base-ipolicemarkbase-func.robot +++ /dev/null @@ -1,162 +0,0 @@ -# Copyright (c) 2016 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 *** -| Force Tags | 3_NODE_DOUBLE_LINK_TOPO | VM_ENV | HW_ENV -| Resource | resources/libraries/robot/features/policer.robot -| Library | resources.libraries.python.Trace -| Test Setup | Run Keywords | Set up functional test -| ... | AND | Configure topology for IPv4 policer test -| Test Teardown | Tear down functional test -| Documentation | *IPv4 policer test cases* -| ... -| ... | *[Top] Network topologies:* TG=DUT1 2-node topology with two links\ -| ... | between nodes. -| ... | *[Cfg] DUT configuration:* On DUT1 configure interfaces IPv4 adresses,\ -| ... | and static ARP record on the second interface. -| ... | *[Ver] TG verification:* Test packet is sent from TG on the first link\ -| ... | to DUT1. Packet is received on TG on the second link from DUT1. -| ... | *[Ref] Applicable standard specifications:* RFC2474, RFC2697, RFC2698. - -*** Variables *** -| ${tg_to_dut_if1_ip4}= | 192.168.122.2 -| ${tg_to_dut_if2_ip4}= | 192.168.123.2 -| ${dut_to_tg_if1_ip4}= | 192.168.122.1 -| ${dut_to_tg_if2_ip4}= | 192.168.123.1 -| ${ip4_plen}= | ${24} - -| ${cir}= | ${100} -| ${eir}= | ${150} -| ${cb}= | ${200} -| ${eb}= | ${300} - -*** Test Cases *** -| TC01: VPP policer 2R3C Color-aware marks packet -| | [Documentation] -| | ... | [Top] TG=DUT1. -| | ... | [Ref] RFC2474, RFC2698. -| | ... | [Cfg] On DUT1 configure 2R3C color-aware policer on the first\ -| | ... | interface. -| | ... | [Ver] TG sends IPv4 TCP packet on the first link to DUT1.\ -| | ... | On DUT1 packet is marked with DSCP tag. Verify if DUT1 sends\ -| | ... | correct IPv4 TCP packet with correct DSCP on the second link to TG. -| | ${dscp}= | DSCP AF22 -| | Given Policer Set Name | policer1 -| | And Policer Set Node | ${dut_node} -| | And Policer Set CIR | ${cir} -| | And Policer Set EIR | ${eir} -| | And Policer Set CB | ${cb} -| | And Policer Set EB | ${eb} -| | And Policer Set Rate Type pps -| | And Policer Set Round Type Closest -| | And Policer Set Type 2R3C 2698 -| | And Policer Set Conform Action Transmit -| | And Policer Set Exceed Action Mark and Transmit | ${dscp} -| | And Policer Set Violate Action Drop -| | And Policer Enable Color Aware -| | And Policer Classify Set Precolor Exceed -| | And Policer Classify Set Interface | ${dut_to_tg_if1} -| | And Policer Classify Set Match IP | ${tg_to_dut_if1_ip} -| | When Policer Set Configuration -| | Then Send packet and verify marking | ${tg_node} | ${tg_to_dut_if1} -| | ... | ${tg_to_dut_if2} | ${tg_to_dut_if1_mac} | ${dut_to_tg_if1_mac} -| | ... | ${tg_to_dut_if1_ip} | ${tg_to_dut_if2_ip} | ${dscp} - -| TC02: VPP policer 2R3C Color-blind marks packet -| | [Documentation] -| | ... | [Top] TG=DUT1. -| | ... | [Ref] RFC2474, RFC2698. -| | ... | [Cfg] On DUT1 configure 2R3C color-blind policer on the first\ -| | ... | interface. -| | ... | [Ver] TG sends IPv4 TCP packet on the first link to DUT1.\ -| | ... | On DUT1 packet is marked with DSCP tag. Verify if DUT1 sends\ -| | ... | correct IPv4 TCP packet with correct DSCP on the second link to TG. -| | ${dscp}= | DSCP AF22 -| | Given Policer Set Name | policer1 -| | And Policer Set Node | ${dut_node} -| | And Policer Set CIR | ${cir} -| | And Policer Set EIR | ${eir} -| | And Policer Set CB | ${cb} -| | And Policer Set EB | ${eb} -| | And Policer Set Rate Type pps -| | And Policer Set Round Type Closest -| | And Policer Set Type 2R3C 2698 -| | And Policer Set Conform Action Mark and Transmit | ${dscp} -| | And Policer Set Exceed Action Transmit -| | And Policer Set Violate Action Drop -| | And Policer Classify Set Precolor Conform -| | And Policer Classify Set Interface | ${dut_to_tg_if1} -| | And Policer Classify Set Match IP | ${tg_to_dut_if1_ip} -| | When Policer Set Configuration -| | Then Send packet and verify marking | ${tg_node} | ${tg_to_dut_if1} -| | ... | ${tg_to_dut_if2} | ${tg_to_dut_if1_mac} | ${dut_to_tg_if1_mac} -| | ... | ${tg_to_dut_if1_ip} | ${tg_to_dut_if2_ip} | ${dscp} - -| TC03: VPP policer 1R3C Color-aware marks packet -| | [Documentation] -| | ... | [Top] TG=DUT1. -| | ... | [Ref] RFC2474, RFC2697. -| | ... | [Cfg] On DUT1 configure 1R3C color-aware policer on the first\ -| | ... | interface. -| | ... | [Ver] TG sends IPv4 TCP packet on the first link to DUT1.\ -| | ... | On DUT1 packet is marked with DSCP tag. Verify if DUT1 sends\ -| | ... | correct IPv4 TCP packet with correct DSCP on the second link to TG. -| | ${dscp}= | DSCP AF22 -| | Given Policer Set Name | policer1 -| | And Policer Set Node | ${dut_node} -| | And Policer Set CIR | ${1} -| | And Policer Set CB | ${2} -| | And Policer Set EB | ${eb} -| | And Policer Set Rate Type pps -| | And Policer Set Round Type Closest -| | And Policer Set Type 1R3C -| | And Policer Set Conform Action Transmit -| | And Policer Set Exceed Action Mark and Transmit | ${dscp} -| | And Policer Set Violate Action Drop -| | And Policer Enable Color Aware -| | And Policer Classify Set Precolor Exceed -| | And Policer Classify Set Interface | ${dut_to_tg_if1} -| | And Policer Classify Set Match IP | ${tg_to_dut_if1_ip} -| | When Policer Set Configuration -| | Then Send packet and verify marking | ${tg_node} | ${tg_to_dut_if1} -| | ... | ${tg_to_dut_if2} | ${tg_to_dut_if1_mac} | ${dut_to_tg_if1_mac} -| | ... | ${tg_to_dut_if1_ip} | ${tg_to_dut_if2_ip} | ${dscp} - -| TC04: VPP policer 1R3C Color-blind marks packet -| | [Documentation] -| | ... | [Top] TG=DUT1. -| | ... | [Ref] RFC2474, RFC2697. -| | ... | [Cfg] On DUT1 configure 1R3C color-blind policer on the first\ -| | ... | interface. -| | ... | [Ver] TG sends IPv4 TCP packet on the first link to DUT1.\ -| | ... | On DUT1 packet is marked with DSCP tag. Verify if DUT1 sends\ -| | ... | correct IPv4 TCP packet with correct DSCP on the second link to TG. -| | ${dscp}= | DSCP AF22 -| | Given Policer Set Name | policer1 -| | And Policer Set Node | ${dut_node} -| | And Policer Set CIR | ${cir} -| | And Policer Set CB | ${cb} -| | And Policer Set EB | ${eb} -| | And Policer Set Rate Type pps -| | And Policer Set Round Type Closest -| | And Policer Set Type 1R3C -| | And Policer Set Conform Action Mark and Transmit | ${dscp} -| | And Policer Set Exceed Action Transmit -| | And Policer Set Violate Action Drop -| | And Policer Classify Set Precolor Conform -| | And Policer Classify Set Interface | ${dut_to_tg_if1} -| | And Policer Classify Set Match IP | ${tg_to_dut_if1_ip} -| | When Policer Set Configuration -| | Then Send packet and verify marking | ${tg_node} | ${tg_to_dut_if1} -| | ... | ${tg_to_dut_if2} | ${tg_to_dut_if1_mac} | ${dut_to_tg_if1_mac} -| | ... | ${tg_to_dut_if1_ip} | ${tg_to_dut_if2_ip} | ${dscp} \ No newline at end of file diff --git a/tests/vpp/func/ip6/eth2p-ethip6-ip6base-copblklistbase-func.robot b/tests/vpp/func/ip6/eth2p-ethip6-ip6base-copblklistbase-func.robot deleted file mode 100644 index 9e45799606..0000000000 --- a/tests/vpp/func/ip6/eth2p-ethip6-ip6base-copblklistbase-func.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 *** -| Library | resources.libraries.python.Cop -| Library | resources.libraries.python.IPUtil -| Library | resources.libraries.python.Trace -| ... -| Resource | resources/libraries/robot/ip/ip6.robot -| Resource | resources/libraries/robot/l2/l2_xconnect.robot -| Resource | resources/libraries/robot/shared/default.robot -| Resource | resources/libraries/robot/shared/interfaces.robot -| Resource | resources/libraries/robot/shared/testing_path.robot -| Resource | resources/libraries/robot/shared/traffic.robot -| ... -| Force Tags | HW_ENV | VM_ENV | 3_NODE_SINGLE_LINK_TOPO -| ... -| Test Setup | Set up functional test -| ... -| Test Teardown | Tear down functional test -| ... -| Documentation | *COP Security IPv6 Blacklist Tests* -| ... -| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology -| ... | with single links between nodes. -| ... | *[Enc] Packet Encapsulations:* Eth-IPv6-ICMPv6 on all links. -| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv6 routing and -| ... | static routes. COP security black-lists are applied on DUT1 ingress -| ... | interface from TG. DUT2 is configured with L2XC. -| ... | *[Ver] TG verification:* Test ICMPv6 Echo Request packets are sent in -| ... | one direction by TG on link to DUT1; on receive TG verifies packets for -| ... | correctness and drops as applicable. -| ... | *[Ref] Applicable standard specifications:* - -*** Variables *** -| ${tg_node}= | ${nodes['TG']} -| ${dut1_node}= | ${nodes['DUT1']} -| ${dut2_node}= | ${nodes['DUT2']} - -| ${dut1_if1_ip}= | 3ffe:62::1 -| ${dut1_if2_ip}= | 3ffe:63::1 -| ${dut1_if1_ip_GW}= | 3ffe:62::2 -| ${dut1_if2_ip_GW}= | 3ffe:63::2 - -| ${dut2_if1_ip}= | 3ffe:72::1 -| ${dut2_if2_ip}= | 3ffe:73::1 - -| ${test_dst_ip}= | 3ffe:64::1 -| ${test_src_ip}= | 3ffe:61::1 - -| ${cop_dut_ip}= | 3ffe:61:: - -| ${ip_prefix}= | 64 - -| ${fib_table_number}= | 1 - -*** Test Cases *** -| TC01: DUT drops IPv6 pkts with COP blacklist set with IPv6 src-addr -| | [Documentation] -| | ... | [Top] TG-DUT1-DUT2-TG. [Enc] Eth-IPv6-ICMPv6. [Cfg] On DUT1 \ -| | ... | configure interface IPv6 addresses and routes in the main -| | ... | routing domain, add COP blacklist on interface to TG with IPv6 -| | ... | src-addr matching packets generated by TG; on DUT2 configure L2 -| | ... | xconnect. [Ver] Make TG send ICMPv6 Echo Req on its interface to -| | ... | DUT1; verify no ICMPv6 Echo Req pkts are received. [Ref] -| | Given Configure path in 3-node circular topology -| | ... | ${tg_node} | ${dut1_node} | ${dut2_node} | ${tg_node} -| | And Set interfaces in 3-node circular topology up -| | And Configure L2XC -| | ... | ${dut2_node} | ${dut2_to_dut1} | ${dut2_to_tg} -| | And VPP Interface Set IP Address -| | ... | ${dut1_node} | ${dut1_to_tg} | ${dut1_if1_ip} | ${ip_prefix} -| | And VPP Interface Set IP Address -| | ... | ${dut1_node} | ${dut1_to_dut2} | ${dut1_if2_ip} | ${ip_prefix} -| | And VPP Interface Set IP Address -| | ... | ${dut2_node} | ${dut2_to_dut1} | ${dut2_if1_ip} | ${ip_prefix} -| | And VPP Interface Set IP Address -| | ... | ${dut2_node} | ${dut2_to_tg} | ${dut2_if2_ip} | ${ip_prefix} -| | And VPP Add IP Neighbor -| | ... | ${dut1_node} | ${dut1_to_tg} | ${dut1_if1_ip_GW} | ${tg_to_dut1_mac} -| | And VPP Add IP Neighbor -| | ... | ${dut1_node} | ${dut1_to_dut2} | ${dut1_if2_ip_GW} | ${tg_to_dut2_mac} -| | And Vpp Route Add | ${dut1_node} | ${test_dst_ip} | ${ip_prefix} -| | ... | gateway=${dut1_if2_ip_GW} | interface=${dut1_to_dut2} -| | And Vpp All Ra Suppress Link Layer | ${nodes} -| | And Add fib table | ${dut1_node} | ${fib_table_number} | ipv6=${TRUE} -| | When COP Add whitelist Entry -| | ... | ${dut1_node} | ${dut1_to_tg} | ip6 | ${fib_table_number} -| | And COP interface enable or disable | ${dut1_node} | ${dut1_to_tg} | enable -| | Then Packet transmission from port to port should fail | ${tg_node} -| | ... | ${test_src_ip} | ${test_dst_ip} | ${tg_to_dut1} | ${tg_to_dut1_mac} -| | ... | ${dut1_to_tg_mac} | ${tg_to_dut2} | ${dut1_to_dut2_mac} -| | ... | ${tg_to_dut2_mac} diff --git a/tests/vpp/func/ip6/eth2p-ethip6-ip6base-copwhlistbase-func.robot b/tests/vpp/func/ip6/eth2p-ethip6-ip6base-copwhlistbase-func.robot deleted file mode 100644 index a69171c426..0000000000 --- a/tests/vpp/func/ip6/eth2p-ethip6-ip6base-copwhlistbase-func.robot +++ /dev/null @@ -1,105 +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 *** -| Library | resources.libraries.python.Cop -| Library | resources.libraries.python.IPUtil -| Library | resources.libraries.python.Trace -| ... -| Resource | resources/libraries/robot/ip/ip6.robot -| Resource | resources/libraries/robot/l2/l2_xconnect.robot -| Resource | resources/libraries/robot/shared/default.robot -| Resource | resources/libraries/robot/shared/interfaces.robot -| Resource | resources/libraries/robot/shared/testing_path.robot -| Resource | resources/libraries/robot/shared/traffic.robot -| ... -| Force Tags | HW_ENV | VM_ENV | 3_NODE_SINGLE_LINK_TOPO -| ... -| Test Setup | Set up functional test -| ... -| Test Teardown | Tear down functional test -| ... -| Documentation | *COP Security IPv6 Whitelist Tests* -| ... -| ... | *[Top] Network Topologies:* TG-DUT1-DUT2-TG 3-node circular topology -| ... | with single links between nodes. -| ... | *[Enc] Packet Encapsulations:* Eth-IPv6-ICMPv6 on all links. -| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv6 routing and -| ... | static routes. COP security white-lists are applied on DUT1 ingress -| ... | interface from TG. DUT2 is configured with L2XC. -| ... | *[Ver] TG verification:* Test ICMPv6 Echo Request packets are sent in -| ... | one direction by TG on link to DUT1; on receive TG verifies packets for -| ... | correctness and drops as applicable. -| ... | *[Ref] Applicable standard specifications:* - -*** Variables *** -| ${tg_node}= | ${nodes['TG']} -| ${dut1_node}= | ${nodes['DUT1']} -| ${dut2_node}= | ${nodes['DUT2']} - -| ${dut1_if1_ip}= | 3ffe:62::1 -| ${dut1_if2_ip}= | 3ffe:63::1 -| ${dut1_if1_ip_GW}= | 3ffe:62::2 -| ${dut1_if2_ip_GW}= | 3ffe:63::2 - -| ${dut2_if1_ip}= | 3ffe:72::1 -| ${dut2_if2_ip}= | 3ffe:73::1 - -| ${test_dst_ip}= | 3ffe:64::1 -| ${test_src_ip}= | 3ffe:61::1 - -| ${cop_dut_ip}= | 3ffe:61:: - -| ${ip_prefix}= | 64 - -| ${fib_table_number}= | 1 - -*** Test Cases *** -| TC01: DUT permits IPv6 pkts with COP whitelist set with IPv6 src-addr -| | [Documentation] -| | ... | [Top] TG-DUT1-DUT2-TG. [Enc] Eth-IPv6-ICMPv6. [Cfg] On DUT1 \ -| | ... | configure interface IPv6 addresses and routes in the main -| | ... | routing domain, add COP whitelist on interface to TG with IPv6 -| | ... | src-addr matching packets generated by TG; on DUT2 configure L2 -| | ... | xconnect. [Ver] Make TG send ICMPv6 Echo Req on its interface to -| | ... | DUT1; verify received ICMPv6 Echo Req pkts are correct. [Ref] -| | Given Configure path in 3-node circular topology -| | ... | ${tg_node} | ${dut1_node} | ${dut2_node} | ${tg_node} -| | And Set interfaces in 3-node circular topology up -| | And Configure L2XC -| | ... | ${dut2_node} | ${dut2_to_dut1} | ${dut2_to_tg} -| | And VPP Interface Set IP Address -| | ... | ${dut1_node} | ${dut1_to_tg} | ${dut1_if1_ip} | ${ip_prefix} -| | And VPP Interface Set IP Address -| | ... | ${dut1_node} | ${dut1_to_dut2} | ${dut1_if2_ip} | ${ip_prefix} -| | And VPP Interface Set IP Address -| | ... | ${dut2_node} | ${dut2_to_dut1} | ${dut2_if1_ip} | ${ip_prefix} -| | And VPP Interface Set IP Address -| | ... | ${dut2_node} | ${dut2_to_tg} | ${dut2_if2_ip} | ${ip_prefix} -| | And VPP Add IP Neighbor -| | ... | ${dut1_node} | ${dut1_to_tg} | ${dut1_if1_ip_GW} | ${tg_to_dut1_mac} -| | And VPP Add IP Neighbor -| | ... | ${dut1_node} | ${dut1_to_dut2} | ${dut1_if2_ip_GW} | ${tg_to_dut2_mac} -| | And Vpp Route Add | ${dut1_node} | ${test_dst_ip} | ${ip_prefix} -| | ... | gateway=${dut1_if2_ip_GW} | interface=${dut1_to_dut2} -| | And Vpp All Ra Suppress Link Layer | ${nodes} -| | And Add fib table | ${dut1_node} | ${fib_table_number} | ipv6=${TRUE} -| | And Vpp Route Add | ${dut1_node} | ${cop_dut_ip} | ${ip_prefix} -| | ... | vrf=${fib_table_number} | local=${TRUE} -| | When COP Add whitelist Entry | ${dut1_node} | ${dut1_to_tg} | ip6 | -| | ... | ${fib_table_number} -| | And COP interface enable or disable | ${dut1_node} | ${dut1_to_tg} | enable -| | Then Send packet and verify headers | ${tg_node} -| | ... | ${test_src_ip} | ${test_dst_ip} | ${tg_to_dut1} | ${tg_to_dut1_mac} -| | ... | ${dut1_to_tg_mac} | ${tg_to_dut2} | ${dut1_to_dut2_mac} -| | ... | ${tg_to_dut2_mac} diff --git a/tests/vpp/func/ip6/eth2p-ethip6-ip6base-iaclbase-func.robot b/tests/vpp/func/ip6/eth2p-ethip6-ip6base-iaclbase-func.robot deleted file mode 100644 index ad0d322948..0000000000 --- a/tests/vpp/func/ip6/eth2p-ethip6-ip6base-iaclbase-func.robot +++ /dev/null @@ -1,200 +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 *** -| Library | resources.libraries.python.Classify.Classify -| Library | resources.libraries.python.IPUtil -| Library | resources.libraries.python.Trace -| ... -| Resource | resources/libraries/robot/ip/ip6.robot -| Resource | resources/libraries/robot/l2/l2_xconnect.robot -| Resource | resources/libraries/robot/shared/counters.robot -| Resource | resources/libraries/robot/shared/default.robot -| Resource | resources/libraries/robot/shared/interfaces.robot -| Resource | resources/libraries/robot/shared/testing_path.robot -| Resource | resources/libraries/robot/shared/traffic.robot -| ... -| Force Tags | HW_ENV | VM_ENV | 3_NODE_SINGLE_LINK_TOPO | SKIP_VPP_PATCH -| ... -| Test Setup | Set up functional test -| ... -| Test Teardown | Tear down functional test -| ... -| Documentation | *IPv6 routing with ingress ACL test cases* -| ... -| ... | Encapsulations: Eth-IPv6 on links TG-DUT1, TG-DUT2, DUT1-DUT2. IPv6 -| ... | ingress ACL (iACL) tests use 3-node topology TG - DUT1 - DUT2 - TG with -| ... | one link between the nodes. DUT1 and DUT2 are configured with IPv6 -| ... | routing and static routes. DUT1 is configured with iACL on link to TG, -| ... | iACL classification and permit action are configured on a per test -| ... | case basis. Test ICMPv6 Echo Request packets are sent in one direction -| ... | by TG on link to DUT1 and received on TG link to DUT2. On receive TG -| ... | verifies if packets are accepted, or if received verifies packet IPv6 -| ... | src-addr, dst-addr and MAC addresses. - -*** Variables *** -| ${dut1_to_tg_ip}= | 3ffe:62::1 -| ${dut1_to_dut2_ip}= | 3ffe:63::1 -| ${dut1_to_dut2_ip_GW}= | 3ffe:63::2 -| ${dut2_to_dut1_ip}= | 3ffe:72::1 -| ${dut2_to_tg_ip}= | 3ffe:73::1 -| ${test_dst_ip}= | 3ffe:64::1 -| ${test_src_ip}= | 3ffe:61::1 -| ${non_drop_dst_ip}= | 3ffe:54::1 -| ${non_drop_src_ip}= | 3ffe:51::1 -| ${prefix_length}= | 64 -| ${ip_version}= | ip6 -| ${l2_table}= | l2 - -*** Test Cases *** -| TC01: DUT with iACL IPv6 src-addr and dst-addr accepts matching pkts -| | [Documentation] -| | ... | On DUT1 add source and destination IPv6 addresses to classify table\ -| | ... | with 'permit'. -| | Given Configure path in 3-node circular topology -| | ... | ${nodes['TG']} | ${nodes['DUT1']} | ${nodes['DUT2']} | ${nodes['TG']} -| | And Set interfaces in 3-node circular topology up -| | And VPP Interface Set IP Address -| | ... | ${dut1_node} | ${dut1_to_tg} | ${dut1_to_tg_ip} | ${prefix_length} -| | And VPP Interface Set IP Address -| | ... | ${dut1_node} | ${dut1_to_dut2} | ${dut1_to_dut2_ip} | ${prefix_length} -| | And VPP Add IP Neighbor -| | ... | ${dut1_node} | ${dut1_to_dut2} | ${dut1_to_dut2_ip_GW} -| | ... | ${tg_to_dut2_mac} -| | And Vpp Route Add -| | ... | ${dut1_node} | ${test_dst_ip} | ${prefix_length} -| | ... | gateway=${dut1_to_dut2_ip_GW} | interface=${dut1_to_dut2} -| | And Vpp Route Add -| | ... | ${dut1_node} | ${non_drop_dst_ip} | ${prefix_length} -| | ... | gateway=${dut1_to_dut2_ip_GW} | interface=${dut1_to_dut2} -| | And Configure L2XC -| | ... | ${dut2_node} | ${dut2_to_dut1} | ${dut2_to_tg} -| | And Vpp All Ra Suppress Link Layer | ${nodes} -| | Then Send packet and verify headers | ${tg_node} -| | ... | ${non_drop_src_ip} | ${non_drop_dst_ip} | ${tg_to_dut1} -| | ... | ${tg_to_dut1_mac} | ${dut1_to_tg_mac} | ${tg_to_dut2} -| | ... | ${dut1_to_dut2_mac} | ${tg_to_dut2_mac} -| | And Send packet and verify headers | ${tg_node} -| | ... | ${test_src_ip} | ${test_dst_ip} | ${tg_to_dut1} | ${tg_to_dut1_mac} -| | ... | ${dut1_to_tg_mac} | ${tg_to_dut2} -| | ... | ${dut1_to_dut2_mac} | ${tg_to_dut2_mac} -| | ${table_index_1} | ${skip_n_1} | ${match_n_1}= -| | ... | When Vpp Creates Classify Table L3 | ${dut1_node} -| | ... | ${ip_version} | src | ${test_src_ip} -| | ${table_index_2} | ${skip_n_2} | ${match_n_2}= -| | ... | And Vpp Creates Classify Table L3 | ${dut1_node} | ${ip_version} -| | ... | dst | ${test_dst_ip} -| | And Vpp Configures Classify Session L3 -| | ... | ${dut1_node} | permit | ${table_index_1} -| | ... | ${ip_version} | src | ${test_src_ip} -| | And Vpp Configures Classify Session L3 -| | ... | ${dut1_node} | permit | ${table_index_2} -| | ... | ${ip_version} | dst | ${test_dst_ip} -| | And Vpp Enable Input Acl Interface -| | ... | ${dut1_node} | ${dut1_to_tg} | ${ip_version} | ${table_index_1} -| | And Vpp Enable Input Acl Interface -| | ... | ${dut1_node} | ${dut1_to_tg} | ${ip_version} | ${table_index_2} -| | Then Send packet and verify headers | ${tg_node} -| | ... | ${test_src_ip} | ${test_dst_ip} | ${tg_to_dut1} | ${tg_to_dut1_mac} -| | ... | ${dut1_to_tg_mac} | ${tg_to_dut2} -| | ... | ${dut1_to_dut2_mac} | ${tg_to_dut2_mac} -| | And Send packet and verify headers | ${tg_node} -| | ... | ${non_drop_src_ip} | ${non_drop_dst_ip} | ${tg_to_dut1} -| | ... | ${tg_to_dut1_mac} | ${dut1_to_tg_mac} | ${tg_to_dut2} -| | ... | ${dut1_to_dut2_mac} | ${tg_to_dut2_mac} - -| TC02: DUT with iACL IPv6 TCP src-ports and dst-ports accepts matching pkts -| | [Documentation] -| | ... | On DUT1 add TCP source and destination ports to classify table\ -| | ... | with 'permit'. -| | Given Configure path in 3-node circular topology -| | ... | ${nodes['TG']} | ${nodes['DUT1']} | ${nodes['DUT2']} | ${nodes['TG']} -| | And Set interfaces in 3-node circular topology up -| | And VPP Interface Set IP Address -| | ... | ${dut1_node} | ${dut1_to_tg} | ${dut1_to_tg_ip} | ${prefix_length} -| | And VPP Interface Set IP Address -| | ... | ${dut1_node} | ${dut1_to_dut2} | ${dut1_to_dut2_ip} -| | ... | ${prefix_length} -| | And VPP Add IP Neighbor -| | ... | ${dut1_node} | ${dut1_to_dut2} | ${dut1_to_dut2_ip_GW} -| | ... | ${tg_to_dut2_mac} -| | And Vpp Route Add -| | ... | ${dut1_node} | ${test_dst_ip} | ${prefix_length} -| | ... | gateway=${dut1_to_dut2_ip_GW} | interface=${dut1_to_dut2} -| | And Configure L2XC -| | ... | ${dut2_node} | ${dut2_to_dut1} | ${dut2_to_tg} -| | And Vpp All Ra Suppress Link Layer | ${nodes} -| | Then Send TCP or UDP packet and verify received packet | ${tg_node} -| | ... | ${test_src_ip} | ${test_dst_ip} | ${tg_to_dut1} | ${tg_to_dut1_mac} -| | ... | ${tg_to_dut2} | ${dut1_to_tg_mac} | TCP | 110 | 25 -| | And Send TCP or UDP packet and verify received packet | ${tg_node} -| | ... | ${test_src_ip} | ${test_dst_ip} | ${tg_to_dut1} | ${tg_to_dut1_mac} -| | ... | ${tg_to_dut2} | ${dut1_to_tg_mac} | TCP | 80 | 20 -| | ${hex_mask}= | Compute Classify Hex Mask | ${ip_version} | TCP -| | ... | source + destination -| | ${hex_value}= | Compute Classify Hex Value | ${hex_mask} | 80 | 20 -| | ${table_index} | ${skip_n} | ${match_n}= -| | ... | When Vpp Creates Classify Table Hex | ${dut1_node} | ${hex_mask} -| | And Vpp Configures Classify Session Hex -| | ... | ${dut1_node} | permit | ${table_index} | ${hex_value} -| | And Vpp Enable Input Acl Interface -| | ... | ${dut1_node} | ${dut1_to_tg} | ${ip_version} | ${table_index} -| | Then Send TCP or UDP packet and verify received packet | ${tg_node} -| | ... | ${test_src_ip} | ${test_dst_ip} | ${tg_to_dut1} | ${tg_to_dut1_mac} -| | ... | ${tg_to_dut2} | ${dut1_to_tg_mac} | TCP | 80 | 20 -| | And Send TCP or UDP packet and verify received packet | ${tg_node} -| | ... | ${test_src_ip} | ${test_dst_ip} | ${tg_to_dut1} | ${tg_to_dut1_mac} -| | ... | ${tg_to_dut2} | ${dut1_to_tg_mac} | TCP | 110 | 25 - -| TC03: DUT with iACL IPv6 UDP src-ports and dst-ports accepts matching pkts -| | [Documentation] -| | ... | On DUT1 add UDP source and destination ports to classify table\ -| | ... | with 'permit'. -| | Given Configure path in 3-node circular topology -| | ... | ${nodes['TG']} | ${nodes['DUT1']} | ${nodes['DUT2']} | ${nodes['TG']} -| | And Set interfaces in 3-node circular topology up -| | And VPP Interface Set IP Address -| | ... | ${dut1_node} | ${dut1_to_tg} | ${dut1_to_tg_ip} | ${prefix_length} -| | And VPP Interface Set IP Address -| | ... | ${dut1_node} | ${dut1_to_dut2} | ${dut1_to_dut2_ip} -| | ... | ${prefix_length} -| | And VPP Add IP Neighbor -| | ... | ${dut1_node} | ${dut1_to_dut2} | ${dut1_to_dut2_ip_GW} -| | ... | ${tg_to_dut2_mac} -| | And Vpp Route Add -| | ... | ${dut1_node} | ${test_dst_ip} | ${prefix_length} -| | ... | gateway=${dut1_to_dut2_ip_GW} | interface=${dut1_to_dut2} -| | And Configure L2XC -| | ... | ${dut2_node} | ${dut2_to_dut1} | ${dut2_to_tg} -| | And Vpp All Ra Suppress Link Layer | ${nodes} -| | Then Send TCP or UDP packet and verify received packet | ${tg_node} -| | ... | ${test_src_ip} | ${test_dst_ip} | ${tg_to_dut1} | ${tg_to_dut1_mac} -| | ... | ${tg_to_dut2} | ${dut1_to_tg_mac} | UDP | 110 | 25 -| | And Send TCP or UDP packet and verify received packet | ${tg_node} -| | ... | ${test_src_ip} | ${test_dst_ip} | ${tg_to_dut1} | ${tg_to_dut1_mac} -| | ... | ${tg_to_dut2} | ${dut1_to_tg_mac} | UDP | 80 | 20 -| | ${hex_mask}= | Compute Classify Hex Mask | ${ip_version} | UDP -| | ... | source + destination -| | ${hex_value}= | Compute Classify Hex Value | ${hex_mask} | 80 | 20 -| | ${table_index} | ${skip_n} | ${match_n}= -| | ... | When Vpp Creates Classify Table Hex | ${dut1_node} | ${hex_mask} -| | And Vpp Configures Classify Session Hex -| | ... | ${dut1_node} | permit | ${table_index} | ${hex_value} -| | And Vpp Enable Input Acl Interface -| | ... | ${dut1_node} | ${dut1_to_tg} | ${ip_version} | ${table_index} -| | Then Send TCP or UDP packet and verify received packet | ${tg_node} -| | ... | ${test_src_ip} | ${test_dst_ip} | ${tg_to_dut1} | ${tg_to_dut1_mac} -| | ... | ${tg_to_dut2} | ${dut1_to_tg_mac} | UDP | 80 | 20 -| | And Send TCP or UDP packet and verify received packet | ${tg_node} -| | ... | ${test_src_ip} | ${test_dst_ip} | ${tg_to_dut1} | ${tg_to_dut1_mac} -| | ... | ${tg_to_dut2} | ${dut1_to_tg_mac} | UDP | 110 | 25 diff --git a/tests/vpp/func/ip6/eth2p-ethip6-ip6base-ipolicemarkbase-func.robot b/tests/vpp/func/ip6/eth2p-ethip6-ip6base-ipolicemarkbase-func.robot deleted file mode 100644 index 788d74ba92..0000000000 --- a/tests/vpp/func/ip6/eth2p-ethip6-ip6base-ipolicemarkbase-func.robot +++ /dev/null @@ -1,161 +0,0 @@ -# Copyright (c) 2016 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 *** -| Force Tags | 3_NODE_DOUBLE_LINK_TOPO | VM_ENV | HW_ENV -| Resource | resources/libraries/robot/features/policer.robot -| Library | resources.libraries.python.Trace -| Test Setup | Run Keywords | Set up functional test -| ... | AND | Configure topology for IPv6 policer test -| Test Teardown | Tear down functional test -| Documentation | *IPv6 policer test cases* -| ... -| ... | *[Top] Network topologies:* TG=DUT1 2-node topology with two links\ -| ... | between nodes. -| ... | *[Cfg] DUT configuration:* On DUT1 configure interfaces IPv6 adresses,\ -| ... | and static neighbor record on the second interface. -| ... | *[Ver] TG verification:* Test packet is sent from TG on the first link\ -| ... | to DUT1. Packet is received on TG on the second link from DUT1. -| ... | *[Ref] Applicable standard specifications:* RFC2474, RFC2697, RFC2698. - -*** Variables *** -| ${tg_to_dut_if1_ip6}= | 3ffe:5f::2 -| ${tg_to_dut_if2_ip6}= | 3ffe:60::2 -| ${dut_to_tg_if1_ip6}= | 3ffe:5f::1 -| ${dut_to_tg_if2_ip6}= | 3ffe:60::1 -| ${ip6_plen}= | ${64} - -| ${cir}= | ${100} -| ${eir}= | ${150} -| ${cb}= | ${200} -| ${eb}= | ${300} - -*** Test Cases *** -| TC01: VPP policer 2R3C Color-aware marks packet -| | [Documentation] -| | ... | [Top] TG=DUT1. -| | ... | [Ref] RFC2474, RFC2698. -| | ... | [Cfg] On DUT1 configure 2R3C color-aware policer on the first\ -| | ... | interface. -| | ... | [Ver] TG sends IPv6 TCP packet on the first link to DUT1.\ -| | ... | On DUT1 packet is marked with DSCP tag. Verify if DUT1 sends\ -| | ... | correct IPv6 TCP packet with correct DSCP on the second link to TG. -| | ${dscp}= | DSCP AF22 -| | Given Policer Set Name | policer1 -| | And Policer Set Node | ${dut_node} -| | And Policer Set CIR | ${cir} -| | And Policer Set EIR | ${eir} -| | And Policer Set CB | ${cb} -| | And Policer Set EB | ${eb} -| | And Policer Set Rate Type pps -| | And Policer Set Round Type Closest -| | And Policer Set Type 2R3C 2698 -| | And Policer Set Conform Action Transmit -| | And Policer Set Exceed Action Mark and Transmit | ${dscp} -| | And Policer Set Violate Action Drop -| | And Policer Enable Color Aware -| | And Policer Classify Set Precolor Exceed -| | And Policer Classify Set Interface | ${dut_to_tg_if1} -| | And Policer Classify Set Match IP | ${tg_to_dut_if1_ip} -| | When Policer Set Configuration -| | Then Send packet and verify marking | ${tg_node} | ${tg_to_dut_if1} -| | ... | ${tg_to_dut_if2} | ${tg_to_dut_if1_mac} | ${dut_to_tg_if1_mac} -| | ... | ${tg_to_dut_if1_ip} | ${tg_to_dut_if2_ip} | ${dscp} - -| TC02: VPP policer 2R3C Color-blind marks packet -| | [Documentation] -| | ... | [Top] TG=DUT1. -| | ... | [Ref] RFC2474, RFC2698. -| | ... | [Cfg] On DUT1 configure 2R3C color-blind policer on the first\ -| | ... | interface. -| | ... | [Ver] TG sends IPv6 TCP packet on the first link to DUT1.\ -| | ... | On DUT1 packet is marked with DSCP tag. Verify if DUT1 sends\ -| | ... | correct IPv6 TCP packet with correct DSCP on the second link to TG. -| | ${dscp}= | DSCP AF22 -| | Given Policer Set Name | policer1 -| | And Policer Set Node | ${dut_node} -| | And Policer Set CIR | ${cir} -| | And Policer Set EIR | ${eir} -| | And Policer Set CB | ${cb} -| | And Policer Set EB | ${eb} -| | And Policer Set Rate Type pps -| | And Policer Set Round Type Closest -| | And Policer Set Type 2R3C 2698 -| | And Policer Set Conform Action Mark and Transmit | ${dscp} -| | And Policer Set Exceed Action Transmit -| | And Policer Set Violate Action Drop -| | And Policer Classify Set Precolor Conform -| | And Policer Classify Set Interface | ${dut_to_tg_if1} -| | And Policer Classify Set Match IP | ${tg_to_dut_if1_ip} -| | When Policer Set Configuration -| | Then Send packet and verify marking | ${tg_node} | ${tg_to_dut_if1} -| | ... | ${tg_to_dut_if2} | ${tg_to_dut_if1_mac} | ${dut_to_tg_if1_mac} -| | ... | ${tg_to_dut_if1_ip} | ${tg_to_dut_if2_ip} | ${dscp} - -| TC03: VPP policer 1R3C Color-aware marks packet -| | [Documentation] -| | ... | [Top] TG=DUT1. -| | ... | [Ref] RFC2474, RFC2697. -| | ... | [Cfg] On DUT1 configure 1R3C color-aware policer on the first\ -| | ... | interface. -| | ... | [Ver] TG sends IPv6 TCP packet on the first link to DUT1.\ -| | ... | On DUT1 packet is marked with DSCP tag. Verify if DUT1 sends\ -| | ... | correct IPv6 TCP packet with correct DSCP on the second link to TG. -| | ${dscp}= | DSCP AF22 -| | Given Policer Set Name | policer1 -| | And Policer Set Node | ${dut_node} -| | And Policer Set CIR | ${1} -| | And Policer Set CB | ${2} -| | And Policer Set EB | ${eb} -| | And Policer Set Rate Type pps -| | And Policer Set Round Type Closest -| | And Policer Set Type 1R3C -| | And Policer Set Conform Action Transmit -| | And Policer Set Exceed Action Mark and Transmit | ${dscp} -| | And Policer Set Violate Action Drop -| | And Policer Enable Color Aware -| | And Policer Classify Set Precolor Exceed -| | And Policer Classify Set Interface | ${dut_to_tg_if1} -| | And Policer Classify Set Match IP | ${tg_to_dut_if1_ip} -| | When Policer Set Configuration -| | Then Send packet and verify marking | ${tg_node} | ${tg_to_dut_if1} -| | ... | ${tg_to_dut_if2} | ${tg_to_dut_if1_mac} | ${dut_to_tg_if1_mac} -| | ... | ${tg_to_dut_if1_ip} | ${tg_to_dut_if2_ip} | ${dscp} - -| TC04: VPP policer 1R3C Color-blind marks packet -| | [Documentation] -| | ... | [Top] TG=DUT1. -| | ... | [Ref] RFC2474, RFC2697. -| | ... | [Cfg] On DUT1 configure 1R3C color-blind policer on the first\ -| | ... | interface. -| | ... | [Ver] TG sends IPv6 TCP packet on the first link to DUT1.\ -| | ... | On DUT1 packet is marked with DSCP tag. Verify if DUT1 sends\ -| | ... | correct IPv6 TCP packet with correct DSCP on the second link to TG. -| | ${dscp}= | DSCP AF22 -| | Given Policer Set Name | policer1 -| | And Policer Set Node | ${dut_node} -| | And Policer Set CIR | ${cir} -| | And Policer Set CB | ${cb} -| | And Policer Set Rate Type pps -| | And Policer Set Round Type Closest -| | And Policer Set Type 1R3C -| | And Policer Set Conform Action Mark and Transmit | ${dscp} -| | And Policer Set Exceed Action Transmit -| | And Policer Set Violate Action Drop -| | And Policer Classify Set Precolor Conform -| | And Policer Classify Set Interface | ${dut_to_tg_if1} -| | And Policer Classify Set Match IP | ${tg_to_dut_if1_ip} -| | When Policer Set Configuration -| | Then Send packet and verify marking | ${tg_node} | ${tg_to_dut_if1} -| | ... | ${tg_to_dut_if2} | ${tg_to_dut_if1_mac} | ${dut_to_tg_if1_mac} -| | ... | ${tg_to_dut_if1_ip} | ${tg_to_dut_if2_ip} | ${dscp} diff --git a/tests/vpp/func/l2xc/eth2p-eth-l2xcbase-iaclbase-func.robot b/tests/vpp/func/l2xc/eth2p-eth-l2xcbase-iaclbase-func.robot deleted file mode 100644 index c12a6100f4..0000000000 --- a/tests/vpp/func/l2xc/eth2p-eth-l2xcbase-iaclbase-func.robot +++ /dev/null @@ -1,143 +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 -| Resource | resources/libraries/robot/shared/counters.robot -| Resource | resources/libraries/robot/shared/interfaces.robot -| Resource | resources/libraries/robot/shared/testing_path.robot -| Resource | resources/libraries/robot/l2/l2_xconnect.robot -| Resource | resources/libraries/robot/l2/l2_traffic.robot -| Library | resources.libraries.python.Classify.Classify -| Library | resources.libraries.python.Trace -| Force Tags | HW_ENV | VM_ENV | 3_NODE_SINGLE_LINK_TOPO | SKIP_VPP_PATCH -| Test Setup | Set up functional test -| Test Teardown | Tear down functional test -| Documentation | *Ingress ACL test cases* -| ... -| ... | *[Top] Network Topologies:* TG - DUT1 - DUT2 - TG -| ... | with one link between the nodes. -| ... | *[Cfg] DUT configuration:* DUT2 is configured with L2 Cross connect. -| ... | DUT1 is configured with iACL classification on link to TG, -| ... | *[Ver] TG verification:* Test ICMPv4 Echo Request packets are sent -| ... | in one direction by TG on link to DUT1 and received on TG link -| ... | to DUT2. On receive TG verifies if packets are accepted. - -*** Variables *** -| ${l2_table}= | l2 - -*** Test Cases *** -| TC01: DUT with iACL MAC src-addr accepts matching pkts -| | [Documentation] -| | ... | [Top] TG-DUT1-DUT2-TG. -| | ... | [Cfg] On DUT1 add source MAC address to classify table with 'permit'. -| | Given Configure path in 3-node circular topology -| | ... | ${nodes['TG']} | ${nodes['DUT1']} | ${nodes['DUT2']} | ${nodes['TG']} -| | And Set interfaces in 3-node circular topology up -| | And Configure L2XC -| | ... | ${dut1_node} | ${dut1_to_dut2} | ${dut1_to_tg} -| | And Configure L2XC -| | ... | ${dut2_node} | ${dut2_to_dut1} | ${dut2_to_tg} -| | Then Send ICMP packet and verify received packet -| | ... | ${tg_node} | ${tg_to_dut1} | ${tg_to_dut2} -| | ${table_index} | ${skip_n} | ${match_n}= -| | ... | When Vpp Creates Classify Table L2 | ${dut1_node} -| | ... | src | ${tg_to_dut1_mac} -| | And Vpp Configures Classify Session L2 -| | ... | ${dut1_node} | permit | ${table_index} | src | ${tg_to_dut1_mac} -| | And Vpp Enable Input ACL Interface -| | ... | ${dut1_node} | ${dut1_to_tg} | ${l2_table} | ${table_index} -| | Then Send ICMP packet and verify received packet -| | ... | ${tg_node} | ${tg_to_dut1} | ${tg_to_dut2} - -| TC02: DUT with iACL MAC dst-addr accepts matching pkts -| | [Documentation] -| | ... | [Top] TG-DUT1-DUT2-TG. -| | ... | [Cfg] On DUT1 add destination MAC address to classify -| | ... | table with 'permit'. -| | ... | [Ver] Make TG verify matching packets are accepted. -| | Given Configure path in 3-node circular topology -| | ... | ${nodes['TG']} | ${nodes['DUT1']} | ${nodes['DUT2']} | ${nodes['TG']} -| | And Set interfaces in 3-node circular topology up -| | And Configure L2XC -| | ... | ${dut1_node} | ${dut1_to_dut2} | ${dut1_to_tg} -| | And Configure L2XC -| | ... | ${dut2_node} | ${dut2_to_dut1} | ${dut2_to_tg} -| | Then Send ICMP packet and verify received packet -| | ... | ${tg_node} | ${tg_to_dut1} | ${tg_to_dut2} -| | ${table_index} | ${skip_n} | ${match_n}= -| | ... | When Vpp Creates Classify Table L2 | ${dut1_node} -| | ... | dst | ${tg_to_dut2_mac} -| | And Vpp Configures Classify Session L2 -| | ... | ${dut1_node} | permit | ${table_index} | dst | ${tg_to_dut2_mac} -| | And Vpp Enable Input ACL Interface -| | ... | ${dut1_node} | ${dut1_to_tg} | ${l2_table} | ${table_index} -| | Then Send ICMP packet and verify received packet -| | ... | ${tg_node} | ${tg_to_dut1} | ${tg_to_dut2} - -| TC03: DUT with iACL MAC src-addr and dst-addr accepts matching pkts -| | [Documentation] -| | ... | [Top] TG-DUT1-DUT2-TG. -| | ... | [Cfg] On DUT1 add source and destination MAC address to classify -| | ... | table with 'permit'. -| | ... | [Ver] Make TG verify matching packets are accepted. -| | Given Configure path in 3-node circular topology -| | ... | ${nodes['TG']} | ${nodes['DUT1']} | ${nodes['DUT2']} | ${nodes['TG']} -| | And Set interfaces in 3-node circular topology up -| | And Configure L2XC -| | ... | ${dut1_node} | ${dut1_to_dut2} | ${dut1_to_tg} -| | And Configure L2XC -| | ... | ${dut2_node} | ${dut2_to_dut1} | ${dut2_to_tg} -| | Then Send ICMP packet and verify received packet -| | ... | ${tg_node} | ${tg_to_dut1} | ${tg_to_dut2} -| | ${table_index_1} | ${skip_n_1} | ${match_n_1}= -| | ... | When Vpp Creates Classify Table L2 | ${dut1_node} -| | ... | src | ${tg_to_dut1_mac} -| | And Vpp Configures Classify Session L2 -| | ... | ${dut1_node} | permit | ${table_index_1} | src | ${tg_to_dut1_mac} -| | ${table_index_2} | ${skip_n_2} | ${match_n_2}= -| | ... | When Vpp Creates Classify Table L2 | ${dut1_node} -| | ... | dst | ${tg_to_dut1_mac} -| | And Vpp Configures Classify Session L2 -| | ... | ${dut1_node} | permit | ${table_index_2} | dst | ${tg_to_dut1_mac} -| | And Vpp Enable Input ACL Interface -| | ... | ${dut1_node} | ${dut1_to_tg} | ${l2_table} | ${table_index_1} -| | And Vpp Enable Input ACL Interface -| | ... | ${dut1_node} | ${dut1_to_tg} | ${l2_table} | ${table_index_2} -| | Then Send ICMP packet and verify received packet -| | ... | ${tg_node} | ${tg_to_dut1} | ${tg_to_dut2} - -| TC04: DUT with iACL EtherType accepts matching pkts -| | [Documentation] -| | ... | [Top] TG-DUT1-DUT2-TG. -| | ... | [Cfg] On DUT1 add EtherType IPv4(0x0800) to classify table with -| | ... | 'permit'. -| | ... | [Ver] Make TG verify matching packets are accepted. -| | Given Configure path in 3-node circular topology -| | ... | ${nodes['TG']} | ${nodes['DUT1']} | ${nodes['DUT2']} | ${nodes['TG']} -| | And Set interfaces in 3-node circular topology up -| | And Configure L2XC -| | ... | ${dut1_node} | ${dut1_to_dut2} | ${dut1_to_tg} -| | And Configure L2XC -| | ... | ${dut2_node} | ${dut2_to_dut1} | ${dut2_to_tg} -| | Then Send ICMP packet and verify received packet -| | ... | ${tg_node} | ${tg_to_dut1} | ${tg_to_dut2} -| | ${table_index} | ${skip_n} | ${match_n}= -| | ... | When Vpp Creates Classify Table Hex -| | ... | ${dut1_node} | 000000000000000000000000ffff -| | And Vpp Configures Classify Session Hex -| | ... | ${dut1_node} | permit | ${table_index} | 0000000000000000000000000800 -| | And Vpp Enable Input ACL Interface -| | ... | ${dut1_node} | ${dut1_to_tg} | ${l2_table} | ${table_index} -| | Then Send ICMP packet and verify received packet -| | ... | ${tg_node} | ${tg_to_dut1} | ${tg_to_dut2} diff --git a/tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4base-copwhtlistbase-ndrpdr.robot b/tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4base-copwhtlistbase-ndrpdr.robot index d3c4ebe23b..43b1bbaa80 100644 --- a/tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4base-copwhtlistbase-ndrpdr.robot +++ b/tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4base-copwhtlistbase-ndrpdr.robot @@ -13,7 +13,6 @@ *** Settings *** | Resource | resources/libraries/robot/shared/default.robot -| Library | resources.libraries.python.Cop | ... | Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | ... | NIC_Intel-X710 | ETH | IP4FWD | FEATURE | COPWHLIST @@ -56,9 +55,8 @@ *** Keywords *** | Local Template -| | ... | | [Documentation] -| | ... | [Cfg] DUT runs IPv4 routing config. +| | ... | [Cfg] DUT runs IPv4 routing config. \ | | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads. | | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\ | | ... @@ -78,9 +76,9 @@ | | And Apply startup configuration on all VPP DUTs | | When Initialize IPv4 forwarding in circular topology | | And Add Fib Table | ${dut1} | 1 -| | And Vpp Route Add | ${dut1} | 10.10.10.0 | 24 | vrf=1 | local=${TRUE} +| | And Vpp Route Add | ${dut1} | 10.10.10.0 | 24 | vrf=1 | local=${TRUE} | | And Add Fib Table | ${dut2} | 1 -| | And Vpp Route Add | ${dut2} | 20.20.20.0 | 24 | vrf=1 | local=${TRUE} +| | And Vpp Route Add | ${dut2} | 20.20.20.0 | 24 | vrf=1 | local=${TRUE} | | And COP Add whitelist Entry | ${dut1} | ${dut1_if1} | ip4 | 1 | | And COP Add whitelist Entry | ${dut2} | ${dut2_if2} | ip4 | 1 | | And COP interface enable or disable | ${dut1} | ${dut1_if1} | enable diff --git a/tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4base-iacldstbase-ndrpdr.robot b/tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4base-iacldstbase-ndrpdr.robot index 4a97f0f885..02ef9e2d20 100644 --- a/tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4base-iacldstbase-ndrpdr.robot +++ b/tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4base-iacldstbase-ndrpdr.robot @@ -55,7 +55,6 @@ *** Keywords *** | Local Template -| | ... | | [Documentation] | | ... | [Cfg] DUT runs IPv4 routing config. | | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads. diff --git a/tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4base-ipolicemarkbase-ndrpdr.robot b/tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4base-ipolicemarkbase-ndrpdr.robot index 06d53762ea..0678175564 100644 --- a/tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4base-ipolicemarkbase-ndrpdr.robot +++ b/tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4base-ipolicemarkbase-ndrpdr.robot @@ -58,7 +58,6 @@ *** Keywords *** | Local Template -| | ... | | [Documentation] | | ... | [Cfg] DUT runs IPv4 routing config. | | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads. diff --git a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4-ip4base-copwhtlistbase-ndrpdr.robot b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4-ip4base-copwhtlistbase-ndrpdr.robot new file mode 100644 index 0000000000..7f6330743a --- /dev/null +++ b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4-ip4base-copwhtlistbase-ndrpdr.robot @@ -0,0 +1,131 @@ +# 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 | PERFTEST | HW_ENV | NDRPDR +| ... | NIC_Intel-X710 | ETH | IP4FWD | FEATURE | COPWHLIST +| ... +| Suite Setup | Setup suite single link | performance +| Suite Teardown | Tear down suite | performance +| Test Setup | Setup test +| Test Teardown | Tear down test | performance +| ... +| Test Template | Local Template +| ... +| Documentation | *RFC2544: Pkt throughput IPv4 whitelist test cases* +| ... +| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology +| ... | with single links between nodes. +| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for IPv4 routing. +| ... | *[Cfg] DUT configuration:* DUT1 and DUT2 are configured with IPv4 +| ... | routing, two static IPv4 /24 routes and IPv4 COP security whitelist +| ... | ingress /24 filter entries applied on links TG - DUT1. +| ... | DUT1 tested with ${nic_name}.\ +| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\ +| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\ +| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\ +| ... | of packets transmitted. NDR and PDR are discovered for different\ +| ... | Ethernet L2 frame sizes using MLRsearch library.\ +| ... | Test packets are generated by TG on links to DUTs. TG traffic profile +| ... | contains two L3 flow-groups (flow-group per direction, 253 flows per +| ... | flow-group) with all packets containing Ethernet header, IPv4 header +| ... | with IP protocol=61 and static payload. MAC addresses are matching MAC +| ... | addresses of the TG node interfaces. +| ... | *[Ref] Applicable standard specifications:* RFC2544. + +*** Variables *** +| @{plugins_to_enable}= | dpdk_plugin.so +| ${osi_layer}= | L3 +| ${nic_name}= | Intel-X710 +| ${overhead}= | ${0} +# Traffic profile: +| ${traffic_profile}= | trex-sl-2n-ethip4-ip4src253 + +*** Keywords *** +| Local Template +| | [Documentation] +| | ... | [Cfg] DUT runs IPv4 routing config. \ +| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads. +| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\ +| | ... +| | ... | *Arguments:* +| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1). +| | ... | Type: integer, string +| | ... | - 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 +| | When Initialize IPv4 forwarding in circular topology +| | And Add Fib Table | ${dut1} | 1 +| | And Vpp Route Add | ${dut1} | 10.10.10.0 | 24 | vrf=1 | local=${TRUE} +| | And COP Add whitelist Entry | ${dut1} | ${dut1_if1} | ip4 | 1 +| | And COP interface enable or disable | ${dut1} | ${dut1_if1} | enable +| | Then Find NDR and PDR intervals using optimized search + +*** Test Cases *** +| tc01-64B-1c-ethip4-ip4base-copwhtlistbase-ndrpdr +| | [Tags] | 64B | 1C +| | frame_size=${64} | phy_cores=${1} + +| tc02-64B-2c-ethip4-ip4base-copwhtlistbase-ndrpdr +| | [Tags] | 64B | 2C +| | frame_size=${64} | phy_cores=${2} + +| tc03-64B-4c-ethip4-ip4base-copwhtlistbase-ndrpdr +| | [Tags] | 64B | 4C +| | frame_size=${64} | phy_cores=${4} + +| tc04-1518B-1c-ethip4-ip4base-copwhtlistbase-ndrpdr +| | [Tags] | 1518B | 1C +| | frame_size=${1518} | phy_cores=${1} + +| tc05-1518B-2c-ethip4-ip4base-copwhtlistbase-ndrpdr +| | [Tags] | 1518B | 2C +| | frame_size=${1518} | phy_cores=${2} + +| tc06-1518B-4c-ethip4-ip4base-copwhtlistbase-ndrpdr +| | [Tags] | 1518B | 4C +| | frame_size=${1518} | phy_cores=${4} + +| tc07-9000B-1c-ethip4-ip4base-copwhtlistbase-ndrpdr +| | [Tags] | 9000B | 1C +| | frame_size=${9000} | phy_cores=${1} + +| tc08-9000B-2c-ethip4-ip4base-copwhtlistbase-ndrpdr +| | [Tags] | 9000B | 2C +| | frame_size=${9000} | phy_cores=${2} + +| tc09-9000B-4c-ethip4-ip4base-copwhtlistbase-ndrpdr +| | [Tags] | 9000B | 4C +| | frame_size=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-ethip4-ip4base-copwhtlistbase-ndrpdr +| | [Tags] | IMIX | 1C +| | frame_size=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-ethip4-ip4base-copwhtlistbase-ndrpdr +| | [Tags] | IMIX | 2C +| | frame_size=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-ethip4-ip4base-copwhtlistbase-ndrpdr +| | [Tags] | IMIX | 4C +| | frame_size=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4-ip4base-iacldstbase-ndrpdr.robot b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4-ip4base-iacldstbase-ndrpdr.robot new file mode 100644 index 0000000000..4888d02215 --- /dev/null +++ b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4-ip4base-iacldstbase-ndrpdr.robot @@ -0,0 +1,133 @@ +# 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 | PERFTEST | HW_ENV | NDRPDR +| ... | NIC_Intel-X710 | ETH | IP4FWD | FEATURE | IACLDST +| ... +| Suite Setup | Setup suite single link | performance +| Suite Teardown | Tear down suite | performance +| Test Setup | Setup test +| Test Teardown | Tear down test | performance +| ... +| Test Template | Local Template +| ... +| Documentation | *RFC2544: Pkt throughput IPv4 iAcl whitelist test cases* +| ... +| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology +| ... | with single links between nodes. +| ... | *[Enc] Packet Encapsulations:* Eth-IPv4 for IPv4 routing. +| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv4 +| ... | routing, two static IPv4 /24 routes and IPv4 iAcl security whitelist +| ... | ingress /24 filter entries applied on links TG - DUT1. +| ... | DUT1 is tested with ${nic_name}.\ +| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\ +| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\ +| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\ +| ... | of packets transmitted. NDR and PDR are discovered for different\ +| ... | Ethernet L2 frame sizes using MLRsearch library.\ +| ... | Test packets are generated by TG on links to DUTs. TG traffic profile +| ... | contains two L3 flow-groups (flow-group per direction, 253 flows per +| ... | flow-group) with all packets containing Ethernet header, IPv6 header +| ... | and generated payload. MAC addresses are matching MAC addresses +| ... | of the TG node interfaces. +| ... | *[Ref] Applicable standard specifications:* RFC2544. + +*** Variables *** +| @{plugins_to_enable}= | dpdk_plugin.so +| ${osi_layer}= | L3 +| ${nic_name}= | Intel-X710 +| ${overhead}= | ${0} +# Traffic profile: +| ${traffic_profile}= | trex-sl-2n-ethip4-ip4src253 + +*** Keywords *** +| Local Template +| | [Documentation] +| | ... | [Cfg] DUT runs IPv4 routing config. +| | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads. +| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\ +| | ... +| | ... | *Arguments:* +| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1). +| | ... | Type: integer, string +| | ... | - 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 +| | When Initialize IPv4 forwarding in circular topology +| | ${table_idx} | ${skip_n} | ${match_n}= | And Vpp Creates Classify Table L3 +| | ... | ${dut1} | ip4 | dst | 20.20.20.2 +| | And Vpp Configures Classify Session L3 +| | ... | ${dut1} | permit | ${table_idx} | ip4 | dst | 20.20.20.2 +| | And Vpp Enable Input Acl Interface +| | ... | ${dut1} | ${dut1_if1} | ip4 | ${table_idx} +| | Then Find NDR and PDR intervals using optimized search + +*** Test Cases *** +| tc01-64B-1c-ethip4-ip4base-iacldstbase-ndrpdr +| | [Tags] | 64B | 1C +| | frame_size=${64} | phy_cores=${1} + +| tc02-64B-2c-ethip4-ip4base-iacldstbase-ndrpdr +| | [Tags] | 64B | 2C +| | frame_size=${64} | phy_cores=${2} + +| tc03-64B-4c-ethip4-ip4base-iacldstbase-ndrpdr +| | [Tags] | 64B | 4C +| | frame_size=${64} | phy_cores=${4} + +| tc04-1518B-1c-ethip4-ip4base-iacldstbase-ndrpdr +| | [Tags] | 1518B | 1C +| | frame_size=${1518} | phy_cores=${1} + +| tc05-1518B-2c-ethip4-ip4base-iacldstbase-ndrpdr +| | [Tags] | 1518B | 2C +| | frame_size=${1518} | phy_cores=${2} + +| tc06-1518B-4c-ethip4-ip4base-iacldstbase-ndrpdr +| | [Tags] | 1518B | 4C +| | frame_size=${1518} | phy_cores=${4} + +| tc07-9000B-1c-ethip4-ip4base-iacldstbase-ndrpdr +| | [Tags] | 9000B | 1C +| | frame_size=${9000} | phy_cores=${1} + +| tc08-9000B-2c-ethip4-ip4base-iacldstbase-ndrpdr +| | [Tags] | 9000B | 2C +| | frame_size=${9000} | phy_cores=${2} + +| tc09-9000B-4c-ethip4-ip4base-iacldstbase-ndrpdr +| | [Tags] | 9000B | 4C +| | frame_size=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-ethip4-ip4base-iacldstbase-ndrpdr +| | [Tags] | IMIX | 1C +| | frame_size=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-ethip4-ip4base-iacldstbase-ndrpdr +| | [Tags] | IMIX | 2C +| | frame_size=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-ethip4-ip4base-iacldstbase-ndrpdr +| | [Tags] | IMIX | 4C +| | frame_size=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4-ip4base-ipolicemarkbase-ndrpdr.robot b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4-ip4base-ipolicemarkbase-ndrpdr.robot index 7cc2eb6315..325d83da65 100644 --- a/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4-ip4base-ipolicemarkbase-ndrpdr.robot +++ b/tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4-ip4base-ipolicemarkbase-ndrpdr.robot @@ -13,7 +13,6 @@ *** Settings *** | Resource | resources/libraries/robot/shared/default.robot -| Library | resources.libraries.python.Policer | ... | Force Tags | 2_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR | ... | NIC_Intel-X710 | IP4FWD | FEATURE | POLICE_MARK @@ -57,7 +56,6 @@ *** Keywords *** | Local Template -| | ... | | [Documentation] | | ... | [Cfg] DUT runs IPv4 routing config. | | ... | Each DUT uses ${phy_cores} physical core(s) for worker threads. diff --git a/tests/vpp/perf/ip6/10ge2p1x710-ethip6-ip6base-copwhtlistbase-ndrpdr.robot b/tests/vpp/perf/ip6/10ge2p1x710-ethip6-ip6base-copwhtlistbase-ndrpdr.robot index 88b83522aa..b1d38f1345 100644 --- a/tests/vpp/perf/ip6/10ge2p1x710-ethip6-ip6base-copwhtlistbase-ndrpdr.robot +++ b/tests/vpp/perf/ip6/10ge2p1x710-ethip6-ip6base-copwhtlistbase-ndrpdr.robot @@ -78,9 +78,9 @@ | | And Apply startup configuration on all VPP DUTs | | When Initialize IPv6 forwarding in circular topology | | And Add Fib Table | ${dut1} | 1 | ipv6=${TRUE} -| | And Vpp Route Add | ${dut1} | 2001:1:: | 64 | vrf=1 | local=${TRUE} +| | And Vpp Route Add | ${dut1} | 2001:1:: | 64 | vrf=1 | local=${TRUE} | | And Add Fib Table | ${dut2} | 1 | ipv6=${TRUE} -| | And Vpp Route Add | ${dut2} | 2001:2:: | 64 | vrf=1 | local=${TRUE} +| | And Vpp Route Add | ${dut2} | 2001:2:: | 64 | vrf=1 | local=${TRUE} | | And COP Add whitelist Entry | ${dut1} | ${dut1_if1} | ip6 | 1 | | And COP Add whitelist Entry | ${dut2} | ${dut2_if2} | ip6 | 1 | | And COP interface enable or disable | ${dut1} | ${dut1_if1} | enable diff --git a/tests/vpp/perf/ip6/10ge2p1x710-ethip6-ip6base-iacldstbase-ndrpdr.robot b/tests/vpp/perf/ip6/10ge2p1x710-ethip6-ip6base-iacldstbase-ndrpdr.robot index 1fbd1c1a43..36d612c875 100644 --- a/tests/vpp/perf/ip6/10ge2p1x710-ethip6-ip6base-iacldstbase-ndrpdr.robot +++ b/tests/vpp/perf/ip6/10ge2p1x710-ethip6-ip6base-iacldstbase-ndrpdr.robot @@ -75,7 +75,18 @@ | | And Set Max Rate And Jumbo And Handle Multi Seg | | And Apply startup configuration on all VPP DUTs | | When Initialize IPv6 forwarding in circular topology -| | And Initialize IPv6 iAcl whitelist in 3-node circular topology +| | ${table_idx} | ${skip_n} | ${match_n}= | And Vpp Creates Classify Table L3 +| | ... | ${dut1} | ip6 | dst | 2001:2::2 +| | And Vpp Configures Classify Session L3 +| | ... | ${dut1} | permit | ${table_idx} | ip6 | dst | 2001:2::2 +| | And Vpp Enable Input Acl Interface +| | ... | ${dut1} | ${dut1_if1} | ip6 | ${table_idx} +| | ${table_idx} | ${skip_n} | ${match_n}= | And Vpp Creates Classify Table L3 +| | ... | ${dut2} | ip6 | dst | 2001:1::2 +| | And Vpp Configures Classify Session L3 +| | ... | ${dut2} | permit | ${table_idx} | ip6 | dst | 2001:1::2 +| | And Vpp Enable Input Acl Interface +| | ... | ${dut2} | ${dut2_if2} | ip6 | ${table_idx} | | Then Find NDR and PDR intervals using optimized search *** Test Cases *** diff --git a/tests/vpp/perf/ip6/2n1l-10ge2p1x710-ethip6-ip6base-copwhtlistbase-ndrpdr.robot b/tests/vpp/perf/ip6/2n1l-10ge2p1x710-ethip6-ip6base-copwhtlistbase-ndrpdr.robot new file mode 100644 index 0000000000..818d435545 --- /dev/null +++ b/tests/vpp/perf/ip6/2n1l-10ge2p1x710-ethip6-ip6base-copwhtlistbase-ndrpdr.robot @@ -0,0 +1,133 @@ +# 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 +| Library | resources.libraries.python.Cop +| ... +| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV | NDRPDR +| ... | NIC_Intel-X710 | ETH | IP6FWD | FEATURE | COPWHLIST +| ... +| Suite Setup | Setup suite single link | performance +| Suite Teardown | Tear down suite | performance +| Test Setup | Setup test +| Test Teardown | Tear down test | performance +| ... +| Test Template | Local Template +| ... +| Documentation | *RFC2544: Pkt throughput IPv6 whitelist test cases* +| ... +| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology +| ... | with single links between nodes. +| ... | *[Enc] Packet Encapsulations:* Eth-IPv6 for IPv6 routing. +| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv6 +| ... | routing, two static IPv6 /64 routes and IPv6 COP security whitelist +| ... | ingress /64 filter entries applied on links TG - DUT1. +| ... | DUT1 is tested with ${nic_name}.\ +| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\ +| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\ +| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\ +| ... | of packets transmitted. NDR and PDR are discovered for different\ +| ... | Ethernet L2 frame sizes using MLRsearch library.\ +| ... | Test packets are generated by TG on +| ... | links to DUTs. TG traffic profile contains two L3 flow-groups +| ... | (flow-group per direction, 253 flows per flow-group) with all packets +| ... | containing Ethernet header, IPv6 header and static +| ... | payload. MAC addresses are matching MAC addresses of the TG node +| ... | interfaces. +| ... | *[Ref] Applicable standard specifications:* RFC2544. + +*** Variables *** +| @{plugins_to_enable}= | dpdk_plugin.so +| ${osi_layer}= | L3 +| ${nic_name}= | Intel-X710 +| ${overhead}= | ${0} +# Traffic profile: +| ${traffic_profile}= | trex-sl-2n-ethip6-ip6src253 + +*** Keywords *** +| Local Template +| | [Documentation] +| | ... | [Cfg] DUT runs IPv6 routing and whitelist filters config with +| | ... | ${phy_cores} phy core(s). +| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\ +| | ... +| | ... | *Arguments:* +| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1). +| | ... | Type: integer, string +| | ... | - 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 +| | When Initialize IPv6 forwarding in circular topology +| | And Add Fib Table | ${dut1} | 1 | ipv6=${TRUE} +| | And Vpp Route Add | ${dut1} | 2001:1:: | 64 | vrf=1 | local=${TRUE} +| | And COP Add whitelist Entry | ${dut1} | ${dut1_if1} | ip6 | 1 +| | And COP interface enable or disable | ${dut1} | ${dut1_if1} | enable +| | Then Find NDR and PDR intervals using optimized search + +*** Test Cases *** +| tc01-78B-1c-ethip6-ip6base-copwhtlistbase-ndrpdr +| | [Tags] | 78B | 1C +| | frame_size=${78} | phy_cores=${1} + +| tc02-78B-2c-ethip6-ip6base-copwhtlistbase-ndrpdr +| | [Tags] | 78B | 2C +| | frame_size=${78} | phy_cores=${2} + +| tc03-78B-4c-ethip6-ip6base-copwhtlistbase-ndrpdr +| | [Tags] | 78B | 4C +| | frame_size=${78} | phy_cores=${4} + +| tc04-1518B-1c-ethip6-ip6base-copwhtlistbase-ndrpdr +| | [Tags] | 1518B | 1C +| | frame_size=${1518} | phy_cores=${1} + +| tc05-1518B-2c-ethip6-ip6base-copwhtlistbase-ndrpdr +| | [Tags] | 1518B | 2C +| | frame_size=${1518} | phy_cores=${2} + +| tc06-1518B-4c-ethip6-ip6base-copwhtlistbase-ndrpdr +| | [Tags] | 1518B | 4C +| | frame_size=${1518} | phy_cores=${4} + +| tc07-9000B-1c-ethip6-ip6base-copwhtlistbase-ndrpdr +| | [Tags] | 9000B | 1C +| | frame_size=${9000} | phy_cores=${1} + +| tc08-9000B-2c-ethip6-ip6base-copwhtlistbase-ndrpdr +| | [Tags] | 9000B | 2C +| | frame_size=${9000} | phy_cores=${2} + +| tc09-9000B-4c-ethip6-ip6base-copwhtlistbase-ndrpdr +| | [Tags] | 9000B | 4C +| | frame_size=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-ethip6-ip6base-copwhtlistbase-ndrpdr +| | [Tags] | IMIX | 1C +| | frame_size=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-ethip6-ip6base-copwhtlistbase-ndrpdr +| | [Tags] | IMIX | 2C +| | frame_size=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-ethip6-ip6base-copwhtlistbase-ndrpdr +| | [Tags] | IMIX | 4C +| | frame_size=IMIX_v4_1 | phy_cores=${4} diff --git a/tests/vpp/perf/ip6/2n1l-10ge2p1x710-ethip6-ip6base-iacldstbase-ndrpdr.robot b/tests/vpp/perf/ip6/2n1l-10ge2p1x710-ethip6-ip6base-iacldstbase-ndrpdr.robot new file mode 100644 index 0000000000..2bc668fcb2 --- /dev/null +++ b/tests/vpp/perf/ip6/2n1l-10ge2p1x710-ethip6-ip6base-iacldstbase-ndrpdr.robot @@ -0,0 +1,133 @@ +# 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 | PERFTEST | HW_ENV | NDRPDR +| ... | NIC_Intel-X710 | ETH | IP6FWD | FEATURE | IACLDST +| ... +| Suite Setup | Setup suite single link | performance +| Suite Teardown | Tear down suite | performance +| Test Setup | Setup test +| Test Teardown | Tear down test | performance +| ... +| Test Template | Local Template +| ... +| Documentation | *RFC2544: Pkt throughput IPv6 iAcl whitelist test cases* +| ... +| ... | *[Top] Network Topologies:* TG-DUT1-TG 2-node circular topology +| ... | with single links between nodes. +| ... | *[Enc] Packet Encapsulations:* Eth-IPv6 for IPv6 routing. +| ... | *[Cfg] DUT configuration:* DUT1 is configured with IPv6 +| ... | routing, two static IPv6 /64 routes and IPv6 iAcl security whitelist +| ... | ingress /64 filter entries applied on links TG - DUT1. +| ... | DUT1 is tested with ${nic_name}.\ +| ... | *[Ver] TG verification:* TG finds and reports throughput NDR (Non Drop\ +| ... | Rate) with zero packet loss tolerance and throughput PDR (Partial Drop\ +| ... | Rate) with non-zero packet loss tolerance (LT) expressed in percentage\ +| ... | of packets transmitted. NDR and PDR are discovered for different\ +| ... | Ethernet L2 frame sizes using MLRsearch library.\ +| ... | Test packets are generated by TG on +| ... | links to DUTs. TG traffic profile contains two L3 flow-groups +| ... | (flow-group per direction, 253 flows per flow-group) with all packets +| ... | containing Ethernet header, IPv6 header and generated payload. MAC +| ... | addresses are matching MAC addresses of the TG node interfaces. +| ... | *[Ref] Applicable standard specifications:* RFC2544. + +*** Variables *** +| @{plugins_to_enable}= | dpdk_plugin.so +| ${osi_layer}= | L3 +| ${nic_name}= | Intel-X710 +| ${overhead}= | ${0} +# Traffic profile: +| ${traffic_profile}= | trex-sl-2n-ethip6-ip6src253 + +*** Keywords *** +| Local Template +| | [Documentation] +| | ... | [Cfg] DUT runs IPv6 routing and whitelist filters config with +| | ... | ${phy_cores} phy core(s). +| | ... | [Ver] Measure NDR and PDR values using MLRsearch algorithm.\ +| | ... +| | ... | *Arguments:* +| | ... | - frame_size - Framesize in Bytes in integer or string (IMIX_v4_1). +| | ... | Type: integer, string +| | ... | - 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 +| | When Initialize IPv6 forwarding in circular topology +| | ${table_idx} | ${skip_n} | ${match_n}= | And Vpp Creates Classify Table L3 +| | ... | ${dut1} | ip6 | dst | 2001:2::2 +| | And Vpp Configures Classify Session L3 +| | ... | ${dut1} | permit | ${table_idx} | ip6 | dst | 2001:2::2 +| | And Vpp Enable Input Acl Interface +| | ... | ${dut1} | ${dut1_if1} | ip6 | ${table_idx} +| | Then Find NDR and PDR intervals using optimized search + +*** Test Cases *** +| tc01-78B-1c-ethip6-ip6base-iacldstbase-ndrpdr +| | [Tags] | 78B | 1C +| | frame_size=${78} | phy_cores=${1} + +| tc02-78B-2c-ethip6-ip6base-iacldstbase-ndrpdr +| | [Tags] | 78B | 2C +| | frame_size=${78} | phy_cores=${2} + +| tc03-78B-4c-ethip6-ip6base-iacldstbase-ndrpdr +| | [Tags] | 78B | 4C +| | frame_size=${78} | phy_cores=${4} + +| tc04-1518B-1c-ethip6-ip6base-iacldstbase-ndrpdr +| | [Tags] | 1518B | 1C +| | frame_size=${1518} | phy_cores=${1} + +| tc05-1518B-2c-ethip6-ip6base-iacldstbase-ndrpdr +| | [Tags] | 1518B | 2C +| | frame_size=${1518} | phy_cores=${2} + +| tc06-1518B-4c-ethip6-ip6base-iacldstbase-ndrpdr +| | [Tags] | 1518B | 4C +| | frame_size=${1518} | phy_cores=${4} + +| tc07-9000B-1c-ethip6-ip6base-iacldstbase-ndrpdr +| | [Tags] | 9000B | 1C +| | frame_size=${9000} | phy_cores=${1} + +| tc08-9000B-2c-ethip6-ip6base-iacldstbase-ndrpdr +| | [Tags] | 9000B | 2C +| | frame_size=${9000} | phy_cores=${2} + +| tc09-9000B-4c-ethip6-ip6base-iacldstbase-ndrpdr +| | [Tags] | 9000B | 4C +| | frame_size=${9000} | phy_cores=${4} + +| tc10-IMIX-1c-ethip6-ip6base-iacldstbase-ndrpdr +| | [Tags] | IMIX | 1C +| | frame_size=IMIX_v4_1 | phy_cores=${1} + +| tc11-IMIX-2c-ethip6-ip6base-iacldstbase-ndrpdr +| | [Tags] | IMIX | 2C +| | frame_size=IMIX_v4_1 | phy_cores=${2} + +| tc12-IMIX-4c-ethip6-ip6base-iacldstbase-ndrpdr +| | [Tags] | IMIX | 4C +| | frame_size=IMIX_v4_1 | phy_cores=${4}