aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--resources/libraries/robot/features/policer.robot152
-rw-r--r--resources/libraries/robot/performance/performance_configuration.robot58
-rw-r--r--resources/libraries/robot/shared/default.robot11
-rw-r--r--resources/libraries/robot/shared/traffic.robot31
-rw-r--r--tests/vpp/device/ip4/eth2p-ethip4-ip4base-copblklistbase-dev.robot76
-rw-r--r--tests/vpp/device/ip4/eth2p-ethip4-ip4base-copwhtlistbase-dev.robot76
-rw-r--r--tests/vpp/device/ip4/eth2p-ethip4-ip4base-iacldstbase-dev.robot79
-rw-r--r--tests/vpp/device/ip4/eth2p-ethip4-ip4base-ipolicemarkbase-dev.robot75
-rw-r--r--tests/vpp/device/ip6/eth2p-ethip6-ip6base-copblklistbase-dev.robot74
-rw-r--r--tests/vpp/device/ip6/eth2p-ethip6-ip6base-copwhtlistbase-dev.robot74
-rw-r--r--tests/vpp/device/ip6/eth2p-ethip6-ip6base-iacldstbase-dev.robot79
-rw-r--r--tests/vpp/device/ip6/eth2p-ethip6-ip6base-ipolicemarkbase-dev.robot75
-rw-r--r--tests/vpp/func/ip4/eth2p-ethip4-ip4base-copblklistbase-func.robot94
-rw-r--r--tests/vpp/func/ip4/eth2p-ethip4-ip4base-copwhlistbase-func.robot96
-rw-r--r--tests/vpp/func/ip4/eth2p-ethip4-ip4base-iaclbase-func.robot193
-rw-r--r--tests/vpp/func/ip4/eth2p-ethip4-ip4base-ipolicemarkbase-func.robot162
-rw-r--r--tests/vpp/func/ip6/eth2p-ethip6-ip6base-copblklistbase-func.robot103
-rw-r--r--tests/vpp/func/ip6/eth2p-ethip6-ip6base-copwhlistbase-func.robot105
-rw-r--r--tests/vpp/func/ip6/eth2p-ethip6-ip6base-iaclbase-func.robot200
-rw-r--r--tests/vpp/func/ip6/eth2p-ethip6-ip6base-ipolicemarkbase-func.robot161
-rw-r--r--tests/vpp/func/l2xc/eth2p-eth-l2xcbase-iaclbase-func.robot143
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4base-copwhtlistbase-ndrpdr.robot8
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4base-iacldstbase-ndrpdr.robot1
-rw-r--r--tests/vpp/perf/ip4/10ge2p1x710-ethip4-ip4base-ipolicemarkbase-ndrpdr.robot1
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4-ip4base-copwhtlistbase-ndrpdr.robot131
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4-ip4base-iacldstbase-ndrpdr.robot133
-rw-r--r--tests/vpp/perf/ip4/2n1l-10ge2p1x710-ethip4-ip4base-ipolicemarkbase-ndrpdr.robot2
-rw-r--r--tests/vpp/perf/ip6/10ge2p1x710-ethip6-ip6base-copwhtlistbase-ndrpdr.robot4
-rw-r--r--tests/vpp/perf/ip6/10ge2p1x710-ethip6-ip6base-iacldstbase-ndrpdr.robot13
-rw-r--r--tests/vpp/perf/ip6/2n1l-10ge2p1x710-ethip6-ip6base-copwhtlistbase-ndrpdr.robot133
-rw-r--r--tests/vpp/perf/ip6/2n1l-10ge2p1x710-ethip6-ip6base-iacldstbase-ndrpdr.robot133
31 files changed, 1268 insertions, 1408 deletions
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}