test suite reviews and discussions
 help / color / mirror / Atom feed
From: Ke Xu <ke1.xu@intel.com>
To: dts@dpdk.org
Cc: lijuan.tu@intel.com, jin.ling@intel.com, zhiminx.huang@intel.com,
	weiyuanx.li@intel.com, qi.fu@intel.com, Ke Xu <ke1.xu@intel.com>
Subject: [DTS][PATCH V1 19/21] test_plans/ice_dcf_switch_filter: update test plan to support represented port action from deprecated vf action
Date: Wed, 28 Sep 2022 03:18:55 +0000	[thread overview]
Message-ID: <20220928031836.770004-20-ke1.xu@intel.com> (raw)
In-Reply-To: <20220928031836.770004-1-ke1.xu@intel.com>

In negative cases, subcase 8: invalid vf id is removed for introducing of new API is
 not using vf id. New API may introduce invalid port id and that will be covered by a
 new subcase added in the patch covering new API.

Signed-off-by: Ke Xu <ke1.xu@intel.com>
---
 .../ice_dcf_switch_filter_test_plan.rst       | 677 +++++++++---------
 1 file changed, 329 insertions(+), 348 deletions(-)

diff --git a/test_plans/ice_dcf_switch_filter_test_plan.rst b/test_plans/ice_dcf_switch_filter_test_plan.rst
index 0d38c218..015f0006 100644
--- a/test_plans/ice_dcf_switch_filter_test_plan.rst
+++ b/test_plans/ice_dcf_switch_filter_test_plan.rst
@@ -202,10 +202,12 @@ Prerequisites
      modprobe vfio-pci
      ./usertools/dpdk-devbind.py -b vfio-pci 0000:18:01.0 0000:18:01.1 0000:18:01.2 0000:18:01.3
 
-9. Launch dpdk on VF0 and VF1, and VF0 request DCF mode::
+9. Launch dpdk on VF0 and VF1, and VF0 request DCF mode, representing VF1 and VF2::
 
-     ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -c 0xf -n 4 -a 0000:18:01.0,cap=dcf -a 0000:18:01.1 -- -i
-     testpmd> set portlist 1
+     ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -c 0xf -n 4 \
+     -a 0000:18:01.0,cap=dcf,representor=[1,2] -a 0000:18:01.1 -a 0000:18:01.2 \
+     -- -i
+     testpmd> set portlist 3,4
      testpmd> set fwd rxonly
      testpmd> set verbose 1
      testpmd> start
@@ -230,7 +232,7 @@ Test case: MAC_PAY
 
 1. validate a rule::
 
-     testpmd> flow validate 0 ingress pattern eth src is 00:00:00:00:00:01 dst is 00:11:22:33:44:55 type is 0x0800 / end actions vf id 1 / end
+     testpmd> flow validate 0 ingress pattern eth src is 00:00:00:00:00:01 dst is 00:11:22:33:44:55 type is 0x0800 / end actions represented_port ethdev_port_id 1 / end
 
    get the message::
 
@@ -244,7 +246,7 @@ Test case: MAC_PAY
 
 2. create a rule::
 
-     testpmd> flow create 0 ingress pattern eth src is 00:00:00:00:00:01 dst is 00:11:22:33:44:55 type is 0x0800 / end actions vf id 1 / end
+     testpmd> flow create 0 ingress pattern eth src is 00:00:00:00:00:01 dst is 00:11:22:33:44:55 type is 0x0800 / end actions represented_port ethdev_port_id 1 / end
      testpmd> flow list 0
 
    check the rule exists in the list.
@@ -253,14 +255,14 @@ Test case: MAC_PAY
 
      sendp([Ether(src="00:00:00:00:00:01",dst="00:11:22:33:44:55")/IP()/Raw("x" *80)],iface="enp27s0f0",count=1)
 
-   check port 1 receive the packet.
+   check port 3 receive the packet.
    send mismatched packets::
 
      sendp([Ether(src="00:00:00:00:00:02",dst="00:11:22:33:44:55")/IP()/Raw("x" *80)],iface="enp27s0f0",count=1)
      sendp([Ether(src="00:00:00:00:00:01",dst="00:11:22:33:44:54")/IP()/Raw("x" *80)],iface="enp27s0f0",count=1)
      sendp([Ether(src="00:00:00:00:00:01",dst="00:11:22:33:44:55")/IPv6()/Raw("x" *80)],iface="enp27s0f0",count=1)
 
-   check the packets are not to port 1.
+   check the packets are not to port 3.
 
 4. verify rules can be destroyed::
 
@@ -268,14 +270,14 @@ Test case: MAC_PAY
      testpmd> flow list 0
 
    check the rule not exists in the list.
-   send matched packets, check the packets are not to port 1.
+   send matched packets, check the packets are not to port 3.
 
 Test case: MAC_IPV4_FRAG
 ========================
 
 1. validate a rule::
 
-     testpmd> flow validate 0 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.1 dst is 192.168.0.2 tos is 4 ttl is 2 / end actions vf id 1 / end
+     testpmd> flow validate 0 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.1 dst is 192.168.0.2 tos is 4 ttl is 2 / end actions represented_port ethdev_port_id 1 / end
 
    get the message::
 
@@ -289,7 +291,7 @@ Test case: MAC_IPV4_FRAG
 
 2. create a rule::
 
-     testpmd> flow create 0 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.1 dst is 192.168.0.2 tos is 4 ttl is 2 / end actions vf id 1 / end
+     testpmd> flow create 0 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.1 dst is 192.168.0.2 tos is 4 ttl is 2 / end actions represented_port ethdev_port_id 1 / end
      testpmd> flow list 0
 
    check the rule exists in the list.
@@ -298,7 +300,7 @@ Test case: MAC_IPV4_FRAG
 
      sendp([Ether(dst="68:05:ca:8d:ed:a8")/IP(src="192.168.0.1",dst="192.168.0.2",tos=4,ttl=2,frag=5)/("X"*480)], iface="enp27s0f0", count=1)
 
-   check port 1 receive the packet.
+   check port 3 receive the packet.
    send mismatched packets::
 
      sendp([Ether(dst="68:05:ca:8d:ed:a3")/IP(src="192.168.0.1",dst="192.168.0.2",tos=4,ttl=2,frag=5)/("X"*480)], iface="enp27s0f0", count=1)
@@ -307,7 +309,7 @@ Test case: MAC_IPV4_FRAG
      sendp([Ether(dst="68:05:ca:8d:ed:a8")/IP(src="192.168.0.1",dst="192.168.0.2",tos=5,ttl=2,frag=5)/("X"*480)], iface="enp27s0f0", count=1)
      sendp([Ether(dst="68:05:ca:8d:ed:a8")/IP(src="192.168.0.1",dst="192.168.0.2",tos=4,ttl=3,frag=5)/("X"*480)], iface="enp27s0f0", count=1)
 
-   check the packets are not to port 1.
+   check the packets are not to port 3.
 
 4. verify rules can be destroyed::
 
@@ -315,14 +317,14 @@ Test case: MAC_IPV4_FRAG
      testpmd> flow list 0
 
    check the rule not exists in the list.
-   send matched packets, check the packets are not to port 1.
+   send matched packets, check the packets are not to port 3.
 
 Test case: MAC_IPV4_PAY
 =======================
 
 1. validate a rule::
 
-     testpmd> flow validate 0 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.1 dst is 192.168.0.2 proto is 6 tos is 4 ttl is 2 / end actions vf id 1 / end
+     testpmd> flow validate 0 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.1 dst is 192.168.0.2 proto is 6 tos is 4 ttl is 2 / end actions represented_port ethdev_port_id 1 / end
 
    get the message::
 
@@ -336,7 +338,7 @@ Test case: MAC_IPV4_PAY
 
 2. create a rule::
 
-     testpmd> flow create 0 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.1 dst is 192.168.0.2 proto is 6 tos is 4 ttl is 2 / end actions vf id 1 / end
+     testpmd> flow create 0 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.1 dst is 192.168.0.2 proto is 6 tos is 4 ttl is 2 / end actions represented_port ethdev_port_id 1 / end
      testpmd> flow list 0
 
    check the rule exists in the list.
@@ -345,7 +347,7 @@ Test case: MAC_IPV4_PAY
 
      sendp([Ether(dst="68:05:ca:8d:ed:a8")/IP(src="192.168.0.1",dst="192.168.0.2",tos=4,ttl=2)/TCP()/("X"*480)], iface="enp27s0f0", count=1)
 
-   check port 1 receive the packet.
+   check port 3 receive the packet.
    send mismatched packets::
 
      sendp([Ether(dst="68:05:ca:8d:ed:a3")/IP(src="192.168.0.1",dst="192.168.0.2",tos=4,ttl=2)/TCP()/("X"*480)], iface="enp27s0f0", count=1)
@@ -355,7 +357,7 @@ Test case: MAC_IPV4_PAY
      sendp([Ether(dst="68:05:ca:8d:ed:a8")/IP(src="192.168.0.1",dst="192.168.0.2",tos=4,ttl=3)/TCP()/("X"*480)], iface="enp27s0f0", count=1)
      sendp([Ether(dst="68:05:ca:8d:ed:a8")/IP(src="192.168.0.1",dst="192.168.0.2",tos=4,ttl=2)/UDP()/("X"*480)], iface="enp27s0f0", count=1)
 
-   check the packets are not to port 1.
+   check the packets are not to port 3.
 
 4. verify rules can be destroyed::
 
@@ -363,14 +365,14 @@ Test case: MAC_IPV4_PAY
      testpmd> flow list 0
 
    check the rule not exists in the list.
-   send matched packets, check the packets are not to port 1.
+   send matched packets, check the packets are not to port 3.
 
 Test case: MAC_IPV4_UDP_PAY
 ===========================
 
 1. validate a rule::
 
-     testpmd> flow validate 0 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.1 dst is 192.168.0.2 tos is 4 ttl is 3 / udp src is 25 dst is 23 / end actions vf id 1 / end
+     testpmd> flow validate 0 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.1 dst is 192.168.0.2 tos is 4 ttl is 3 / udp src is 25 dst is 23 / end actions represented_port ethdev_port_id 1 / end
 
    get the message::
 
@@ -384,7 +386,7 @@ Test case: MAC_IPV4_UDP_PAY
 
 2. create a rule::
 
-     testpmd> flow create 0 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.1 dst is 192.168.0.2 tos is 4 ttl is 3 / udp src is 25 dst is 23 / end actions vf id 1 / end
+     testpmd> flow create 0 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.1 dst is 192.168.0.2 tos is 4 ttl is 3 / udp src is 25 dst is 23 / end actions represented_port ethdev_port_id 1 / end
      testpmd> flow list 0
 
    check the rule exists in the list.
@@ -393,7 +395,7 @@ Test case: MAC_IPV4_UDP_PAY
 
      sendp([Ether(dst="68:05:ca:8d:ed:a8")/IP(src="192.168.0.1",dst="192.168.0.2",tos=4,ttl=3)/UDP(sport=25,dport=23)/("X"*480)], iface="enp27s0f0", count=1)
 
-   check port 1 receive the packet.
+   check port 3 receive the packet.
    send mismatched packets::
 
      sendp([Ether(dst="68:05:ca:8d:ed:a3")/IP(src="192.168.0.1",dst="192.168.0.2",tos=4,ttl=3)/UDP(sport=25,dport=23)/("X"*480)], iface="enp27s0f0", count=1)
@@ -404,7 +406,7 @@ Test case: MAC_IPV4_UDP_PAY
      sendp([Ether(dst="68:05:ca:8d:ed:a8")/IP(src="192.168.0.1",dst="192.168.0.2",tos=4,ttl=3)/UDP(sport=30,dport=23)/("X"*480)], iface="enp27s0f0", count=1)
      sendp([Ether(dst="68:05:ca:8d:ed:a8")/IP(src="192.168.0.1",dst="192.168.0.2",tos=4,ttl=3)/UDP(sport=25,dport=19)/("X"*480)], iface="enp27s0f0", count=1)
 
-   check the packets are not to port 1.
+   check the packets are not to port 3.
 
 4. verify rules can be destroyed::
 
@@ -412,14 +414,14 @@ Test case: MAC_IPV4_UDP_PAY
      testpmd> flow list 0
 
    check the rule not exists in the list.
-   send matched packets, check the packets are not to port 1.
+   send matched packets, check the packets are not to port 3.
 
 Test case: MAC_IPV4_TCP_PAY
 ===========================
 
 1. validate a rule::
 
-     testpmd> flow validate 0 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.1 dst is 192.168.0.2 tos is 4 ttl is 3 / tcp src is 25 dst is 23 / end actions vf id 1 / end
+     testpmd> flow validate 0 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.1 dst is 192.168.0.2 tos is 4 ttl is 3 / tcp src is 25 dst is 23 / end actions represented_port ethdev_port_id 1 / end
 
    get the message::
 
@@ -433,7 +435,7 @@ Test case: MAC_IPV4_TCP_PAY
 
 2. create a rule::
 
-     testpmd> flow create 0 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.1 dst is 192.168.0.2 tos is 4 ttl is 3 / tcp src is 25 dst is 23 / end actions vf id 1 / end
+     testpmd> flow create 0 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.1 dst is 192.168.0.2 tos is 4 ttl is 3 / tcp src is 25 dst is 23 / end actions represented_port ethdev_port_id 1 / end
      testpmd> flow list 0
 
    check the rule exists in the list.
@@ -442,7 +444,7 @@ Test case: MAC_IPV4_TCP_PAY
 
      sendp([Ether(dst="68:05:ca:8d:ed:a8")/IP(src="192.168.0.1",dst="192.168.0.2",tos=4,ttl=3)/TCP(sport=25,dport=23)/("X"*480)], iface="enp27s0f0", count=1)
 
-   check port 1 receive the packet.
+   check port 3 receive the packet.
    send mismatched packets::
 
      sendp([Ether(dst="68:05:ca:8d:ed:a3")/IP(src="192.168.0.1",dst="192.168.0.2",tos=4,ttl=3)/TCP(sport=25,dport=23)/("X"*480)], iface="enp27s0f0", count=1)
@@ -453,7 +455,7 @@ Test case: MAC_IPV4_TCP_PAY
      sendp([Ether(dst="68:05:ca:8d:ed:a8")/IP(src="192.168.0.1",dst="192.168.0.2",tos=4,ttl=3)/TCP(sport=30,dport=23)/("X"*480)], iface="enp27s0f0", count=1)
      sendp([Ether(dst="68:05:ca:8d:ed:a8")/IP(src="192.168.0.1",dst="192.168.0.2",tos=4,ttl=3)/TCP(sport=25,dport=19)/("X"*480)], iface="enp27s0f0", count=1)
 
-   check the packets are not to port 1.
+   check the packets are not to port 3.
 
 4. verify rules can be destroyed::
 
@@ -461,14 +463,14 @@ Test case: MAC_IPV4_TCP_PAY
      testpmd> flow list 0
 
    check the rule not exists in the list.
-   send matched packets, check the packets are not to port 1.
+   send matched packets, check the packets are not to port 3.
 
 Test case: MAC_IPV4_IGMP
 ========================
 
 1. validate a rule::
 
-     testpmd> flow validate 0 ingress pattern eth / ipv4 proto is 0x02 / end actions vf id 1 / end
+     testpmd> flow validate 0 ingress pattern eth / ipv4 proto is 0x02 / end actions represented_port ethdev_port_id 1 / end
 
    get the message::
 
@@ -482,7 +484,7 @@ Test case: MAC_IPV4_IGMP
 
 2. create a rule::
 
-     testpmd> flow create 0 ingress pattern eth / ipv4 proto is 0x02 / end actions vf id 1 / end
+     testpmd> flow create 0 ingress pattern eth / ipv4 proto is 0x02 / end actions represented_port ethdev_port_id 1 / end
      testpmd> flow list 0
 
    check the rule exists in the list.
@@ -491,13 +493,13 @@ Test case: MAC_IPV4_IGMP
 
      sendp([Ether(dst="00:11:22:33:44:55")/IP()/IGMP()/Raw("X"*480)], iface="enp27s0f0", count=1)
 
-   check port 1 receive the packet.
+   check port 3 receive the packet.
    send mismatched packets::
 
      sendp([Ether(dst="00:11:22:33:44:55")/IP()/TCP()/Raw("X"*480)], iface="enp27s0f0", count=1)
      sendp([Ether(dst="00:11:22:33:44:55")/IP()/UDP()/Raw("X"*480)], iface="enp27s0f0", count=1)
 
-   check the packets are not to port 1.
+   check the packets are not to port 3.
 
 4. verify rules can be destroyed::
 
@@ -505,7 +507,7 @@ Test case: MAC_IPV4_IGMP
      testpmd> flow list 0
 
    check the rule not exists in the list.
-   send matched packets, check the packets are not to port 1.
+   send matched packets, check the packets are not to port 3.
 
 Test case: MAC_IPV6_srcip_dstip
 ===============================
@@ -515,7 +517,7 @@ Therefore, if a rule carries src ipv6, dst ipv6, it can not take any other field
 
 1. validate a rule::
 
-     testpmd> flow validate 0 ingress pattern eth / ipv6 src is CDCD:910A:2222:5498:8475:1111:3900:1536 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / end actions vf id 1 / end
+     testpmd> flow validate 0 ingress pattern eth / ipv6 src is CDCD:910A:2222:5498:8475:1111:3900:1536 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / end actions represented_port ethdev_port_id 1 / end
 
    get the message::
 
@@ -529,7 +531,7 @@ Therefore, if a rule carries src ipv6, dst ipv6, it can not take any other field
 
 2. create a rule::
 
-     testpmd> flow create 0 ingress pattern eth / ipv6 src is CDCD:910A:2222:5498:8475:1111:3900:1536 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / end actions vf id 1 / end
+     testpmd> flow create 0 ingress pattern eth / ipv6 src is CDCD:910A:2222:5498:8475:1111:3900:1536 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / end actions represented_port ethdev_port_id 1 / end
      testpmd> flow list 0
 
    check the rule exists in the list.
@@ -539,7 +541,7 @@ Therefore, if a rule carries src ipv6, dst ipv6, it can not take any other field
      sendp([Ether(dst="00:11:22:33:44:55")/IPv6(src="CDCD:910A:2222:5498:8475:1111:3900:1536", dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/("X"*480)], iface="enp27s0f0", count=1)
      sendp([Ether(dst="00:11:22:33:44:55")/IPv6(src="CDCD:910A:2222:5498:8475:1111:3900:1536", dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/IPv6ExtHdrFragment()/("X"*480)], iface="enp27s0f0", count=1)
 
-   check port 1 receive the packets.
+   check port 3 receive the packets.
    send mismatched packets::
 
      sendp([Ether(dst="00:11:22:33:44:55")/IPv6(src="CDCD:910A:2222:5498:8475:1111:3900:1537", dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/("X"*480)], iface="enp27s0f0", count=1)
@@ -547,7 +549,7 @@ Therefore, if a rule carries src ipv6, dst ipv6, it can not take any other field
      sendp([Ether(dst="00:11:22:33:44:55")/IPv6(src="CDCD:910A:2222:5498:8475:1111:3900:1537", dst="CDCD:910A:2222:5498:8475:1111:3900:2020")/IPv6ExtHdrFragment()/("X"*480)], iface="enp27s0f0", count=1)
      sendp([Ether(dst="00:11:22:33:44:55")/IPv6(src="CDCD:910A:2222:5498:8475:1111:3900:1536", dst="CDCD:910A:2222:5498:8475:1111:3900:2023")/IPv6ExtHdrFragment()/("X"*480)], iface="enp27s0f0", count=1)
 
-   check the packets are not to port 1.
+   check the packets are not to port 3.
 
 4. verify rules can be destroyed::
 
@@ -555,14 +557,14 @@ Therefore, if a rule carries src ipv6, dst ipv6, it can not take any other field
      testpmd> flow list 0
 
    check the rule not exists in the list.
-   send matched packets, check the packets are not to port 1.
+   send matched packets, check the packets are not to port 3.
 
 Test case: MAC_IPV6_dstip_tc
 ============================
 
 1. validate a rule::
 
-     testpmd> flow validate 0 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 tc is 3 / end actions vf id 1 / end
+     testpmd> flow validate 0 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 tc is 3 / end actions represented_port ethdev_port_id 1 / end
 
    get the message::
 
@@ -576,7 +578,7 @@ Test case: MAC_IPV6_dstip_tc
 
 2. create a rule::
 
-     testpmd> flow create 0 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 tc is 3 / end actions vf id 1 / end
+     testpmd> flow create 0 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 tc is 3 / end actions represented_port ethdev_port_id 1 / end
      testpmd> flow list 0
 
    check the rule exists in the list.
@@ -586,7 +588,7 @@ Test case: MAC_IPV6_dstip_tc
      sendp([Ether(dst="68:05:ca:8d:ed:a8")/IPv6(src="CDCD:910A:2222:5498:8475:1111:3900:1518", dst="CDCD:910A:2222:5498:8475:1111:3900:2020",tc=3)/("X"*480)], iface="enp27s0f0", count=1)
      sendp([Ether(dst="68:05:ca:8d:ed:a8")/IPv6(src="CDCD:910A:2222:5498:8475:1111:3900:1518", dst="CDCD:910A:2222:5498:8475:1111:3900:2020",tc=3)/IPv6ExtHdrFragment()/("X"*480)], iface="enp27s0f0", count=1)
 
-   check port 1 receive the packet.
+   check port 3 receive the packet.
    send mismatched packets::
 
      sendp([Ether(dst="68:05:ca:8d:ed:a3")/IPv6(src="CDCD:910A:2222:5498:8475:1111:3900:1518", dst="CDCD:910A:2222:5498:8475:1111:3900:2020",tc=3)/("X"*480)], iface="enp27s0f0", count=1)
@@ -596,7 +598,7 @@ Test case: MAC_IPV6_dstip_tc
      sendp([Ether(dst="68:05:ca:8d:ed:a8")/IPv6(src="CDCD:910A:2222:5498:8475:1111:3900:1518", dst="CDCD:910A:2222:5498:8475:1111:3900:2023",tc=3)/IPv6ExtHdrFragment()/("X"*480)], iface="enp27s0f0", count=1)
      sendp([Ether(dst="68:05:ca:8d:ed:a8")/IPv6(src="CDCD:910A:2222:5498:8475:1111:3900:1518", dst="CDCD:910A:2222:5498:8475:1111:3900:2020",tc=4)/IPv6ExtHdrFragment()/("X"*480)], iface="enp27s0f0", count=1)
 
-   check the packets are not to port 1.
+   check the packets are not to port 3.
 
 4. verify rules can be destroyed::
 
@@ -604,14 +606,14 @@ Test case: MAC_IPV6_dstip_tc
      testpmd> flow list 0
 
    check the rule not exists in the list.
-   send matched packets, check the packets are not to port 1.
+   send matched packets, check the packets are not to port 3.
 
 Test case: MAC_IPV6_UDP_PAY
 ===========================
 
 1. validate a rule::
 
-     testpmd> flow validate 0 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 tc is 3 / udp src is 25 dst is 23 / end actions vf id 1 / end
+     testpmd> flow validate 0 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 tc is 3 / udp src is 25 dst is 23 / end actions represented_port ethdev_port_id 1 / end
 
    get the message::
 
@@ -625,7 +627,7 @@ Test case: MAC_IPV6_UDP_PAY
 
 2. create a rule::
 
-     testpmd> flow create 0 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 tc is 3 / udp src is 25 dst is 23 / end actions vf id 1 / end
+     testpmd> flow create 0 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 tc is 3 / udp src is 25 dst is 23 / end actions represented_port ethdev_port_id 1 / end
      testpmd> flow list 0
 
    check the rule exists in the list.
@@ -634,7 +636,7 @@ Test case: MAC_IPV6_UDP_PAY
 
      sendp([Ether(dst="68:05:ca:8d:ed:a8")/IPv6(src="CDCD:910A:2222:5498:8475:1111:3900:1518", dst="CDCD:910A:2222:5498:8475:1111:3900:2020",tc=3)/UDP(sport=25,dport=23)/("X"*480)], iface="enp27s0f0",count=1)
 
-   check port 1 receive the packet.
+   check port 3 receive the packet.
    send mismatched packets::
 
      sendp([Ether(dst="68:05:ca:8d:ed:a3")/IPv6(src="CDCD:910A:2222:5498:8475:1111:3900:1518", dst="CDCD:910A:2222:5498:8475:1111:3900:2020",tc=3)/UDP(sport=25,dport=23)/("X"*480)], iface="enp27s0f0",count=1)
@@ -643,7 +645,7 @@ Test case: MAC_IPV6_UDP_PAY
      sendp([Ether(dst="68:05:ca:8d:ed:a8")/IPv6(src="CDCD:910A:2222:5498:8475:1111:3900:1518", dst="CDCD:910A:2222:5498:8475:1111:3900:2020",tc=3)/UDP(sport=30,dport=23)/("X"*480)], iface="enp27s0f0",count=1)
      sendp([Ether(dst="68:05:ca:8d:ed:a8")/IPv6(src="CDCD:910A:2222:5498:8475:1111:3900:1518", dst="CDCD:910A:2222:5498:8475:1111:3900:2020",tc=3)/UDP(sport=25,dport=19)/("X"*480)], iface="enp27s0f0",count=1)
 
-   check the packets are not to port 1.
+   check the packets are not to port 3.
 
 4. verify rules can be destroyed::
 
@@ -651,14 +653,14 @@ Test case: MAC_IPV6_UDP_PAY
      testpmd> flow list 0
 
    check the rule not exists in the list.
-   send matched packets, check the packets are not to port 1.
+   send matched packets, check the packets are not to port 3.
 
 Test case: MAC_IPV6_TCP
 =======================
 
 1. validate a rule::
 
-     testpmd> flow validate 0 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 tc is 3 / tcp src is 25 dst is 23 / end actions vf id 1 / end
+     testpmd> flow validate 0 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 tc is 3 / tcp src is 25 dst is 23 / end actions represented_port ethdev_port_id 1 / end
 
    get the message::
 
@@ -672,7 +674,7 @@ Test case: MAC_IPV6_TCP
 
 2. create a rule::
 
-     testpmd> flow create 0 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 tc is 3 / tcp src is 25 dst is 23 / end actions vf id 1 / end
+     testpmd> flow create 0 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 tc is 3 / tcp src is 25 dst is 23 / end actions represented_port ethdev_port_id 1 / end
      testpmd> flow list 0
 
    check the rule exists in the list.
@@ -681,7 +683,7 @@ Test case: MAC_IPV6_TCP
 
      sendp([Ether(dst="68:05:ca:8d:ed:a8")/IPv6(src="CDCD:910A:2222:5498:8475:1111:3900:1518", dst="CDCD:910A:2222:5498:8475:1111:3900:2020",tc=3)/TCP(sport=25,dport=23)/("X"*480)], iface="enp27s0f0", count=1)
 
-   check port 1 receive the packet.
+   check port 3 receive the packet.
    send mismatched packets::
 
      sendp([Ether(dst="68:05:ca:8d:ed:a3")/IPv6(src="CDCD:910A:2222:5498:8475:1111:3900:1518", dst="CDCD:910A:2222:5498:8475:1111:3900:2020",tc=3)/TCP(sport=25,dport=23)/("X"*480)], iface="enp27s0f0", count=1)
@@ -690,7 +692,7 @@ Test case: MAC_IPV6_TCP
      sendp([Ether(dst="68:05:ca:8d:ed:a8")/IPv6(src="CDCD:910A:2222:5498:8475:1111:3900:1518", dst="CDCD:910A:2222:5498:8475:1111:3900:2020",tc=3)/TCP(sport=30,dport=23)/("X"*480)], iface="enp27s0f0", count=1)
      sendp([Ether(dst="68:05:ca:8d:ed:a8")/IPv6(src="CDCD:910A:2222:5498:8475:1111:3900:1518", dst="CDCD:910A:2222:5498:8475:1111:3900:2020",tc=3)/TCP(sport=25,dport=19)/("X"*480)], iface="enp27s0f0", count=1)
 
-   check the packets are not to port 1.
+   check the packets are not to port 3.
 
 4. verify rules can be destroyed::
 
@@ -698,14 +700,14 @@ Test case: MAC_IPV6_TCP
      testpmd> flow list 0
 
    check the rule not exists in the list.
-   send matched packets, check the packets are not to port 1.
+   send matched packets, check the packets are not to port 3.
 
 Test case: MAC_IPV4_VXLAN_IPV4_FRAG (not support in 20.05)
 ==========================================================
 
 1. validate a rule::
 
-     testpmd> flow validate 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / udp / vxlan vni is 2 / eth / ipv4 src is 192.168.0.2 dst is 192.168.0.3 / end actions vf id 1 / end
+     testpmd> flow validate 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / udp / vxlan vni is 2 / eth / ipv4 src is 192.168.0.2 dst is 192.168.0.3 / end actions represented_port ethdev_port_id 1 / end
 
    get the message::
 
@@ -719,7 +721,7 @@ Test case: MAC_IPV4_VXLAN_IPV4_FRAG (not support in 20.05)
 
 2. create a rule::
 
-     testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / udp / vxlan vni is 2 / eth / ipv4 src is 192.168.0.2 dst is 192.168.0.3 / end actions vf id 1 / end
+     testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / udp / vxlan vni is 2 / eth / ipv4 src is 192.168.0.2 dst is 192.168.0.3 / end actions represented_port ethdev_port_id 1 / end
      testpmd> flow list 0
 
    check the rule exists in the list.
@@ -729,7 +731,7 @@ Test case: MAC_IPV4_VXLAN_IPV4_FRAG (not support in 20.05)
      sendp([Ether()/IP(dst="192.168.0.1")/UDP()/VXLAN(vni=2)/Ether()/IP(src="192.168.0.2", dst="192.168.0.3",frag=5)/TCP()/Raw("x"*80)],iface="enp27s0f0",count=1)
      sendp([Ether()/IP(dst="192.168.0.1")/UDP()/VXLAN(vni=2)/Ether()/IP(src="192.168.0.2", dst="192.168.0.3",frag=5)/Raw("x"*80)],iface="enp27s0f0",count=1)
 
-   check port 1 receive the packets.
+   check port 3 receive the packets.
    send mismatched packets::
 
      sendp([Ether()/IP(dst="192.168.0.2")/UDP()/VXLAN(vni=2)/Ether()/IP(src="192.168.0.2", dst="192.168.0.3",frag=5)/Raw("x"*80)],iface="enp27s0f0",count=1)
@@ -737,7 +739,7 @@ Test case: MAC_IPV4_VXLAN_IPV4_FRAG (not support in 20.05)
      sendp([Ether()/IP(dst="192.168.0.1")/UDP()/VXLAN(vni=2)/Ether()/IP(src="192.168.0.4", dst="192.168.0.3",frag=5)/Raw("x"*80)],iface="enp27s0f0",count=1)
      sendp([Ether()/IP(dst="192.168.0.1")/UDP()/VXLAN(vni=2)/Ether()/IP(src="192.168.0.2", dst="192.168.0.5",frag=5)/Raw("x"*80)],iface="enp27s0f0",count=1)
 
-   check the packets are not to port 1.
+   check the packets are not to port 3.
 
 4. verify rules can be destroyed::
 
@@ -745,14 +747,14 @@ Test case: MAC_IPV4_VXLAN_IPV4_FRAG (not support in 20.05)
      testpmd> flow list 0
 
    check the rule not exists in the list.
-   send matched packets, check the packets are not to port 1.
+   send matched packets, check the packets are not to port 3.
 
 Test case: MAC_IPV4_VXLAN_IPV4_PAY (not support in 20.05)
 =========================================================
 
 1. validate a rule::
 
-     testpmd> flow validate 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / udp / vxlan vni is 2 / eth / ipv4 src is 192.168.0.2 dst is 192.168.0.3 / end actions vf id 1 / end
+     testpmd> flow validate 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / udp / vxlan vni is 2 / eth / ipv4 src is 192.168.0.2 dst is 192.168.0.3 / end actions represented_port ethdev_port_id 1 / end
 
    get the message::
 
@@ -766,7 +768,7 @@ Test case: MAC_IPV4_VXLAN_IPV4_PAY (not support in 20.05)
 
 2. create a rule::
 
-     testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / udp / vxlan vni is 2 / eth / ipv4 src is 192.168.0.2 dst is 192.168.0.3 / end actions vf id 1 / end
+     testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / udp / vxlan vni is 2 / eth / ipv4 src is 192.168.0.2 dst is 192.168.0.3 / end actions represented_port ethdev_port_id 1 / end
      testpmd> flow list 0
 
    check the rule exists in the list.
@@ -776,7 +778,7 @@ Test case: MAC_IPV4_VXLAN_IPV4_PAY (not support in 20.05)
      sendp([Ether()/IP(dst="192.168.0.1")/UDP()/VXLAN(vni=2)/Ether()/IP(src="192.168.0.2", dst="192.168.0.3")/TCP()/Raw("x"*80)],iface="enp27s0f0",count=1)
      sendp([Ether()/IP(dst="192.168.0.1")/UDP()/VXLAN(vni=2)/Ether()/IP(src="192.168.0.2", dst="192.168.0.3")/Raw("x"*80)],iface="enp27s0f0",count=1)
 
-   check port 1 receive the packets.
+   check port 3 receive the packets.
    send mismatched packets::
 
      sendp([Ether()/IP(dst="192.168.0.2")/UDP()/VXLAN(vni=2)/Ether()/IP(src="192.168.0.2", dst="192.168.0.3")/TCP()/Raw("x"*80)],iface="enp27s0f0",count=1)
@@ -784,7 +786,7 @@ Test case: MAC_IPV4_VXLAN_IPV4_PAY (not support in 20.05)
      sendp([Ether()/IP(dst="192.168.0.1")/UDP()/VXLAN(vni=2)/Ether()/IP(src="192.168.0.4", dst="192.168.0.3")/TCP()/Raw("x"*80)],iface="enp27s0f0",count=1)
      sendp([Ether()/IP(dst="192.168.0.1")/UDP()/VXLAN(vni=2)/Ether()/IP(src="192.168.0.2", dst="192.168.0.5")/TCP()/Raw("x"*80)],iface="enp27s0f0",count=1)
 
-   check the packets are not to port 1.
+   check the packets are not to port 3.
 
 4. verify rules can be destroyed::
 
@@ -792,14 +794,14 @@ Test case: MAC_IPV4_VXLAN_IPV4_PAY (not support in 20.05)
      testpmd> flow list 0
 
    check the rule not exists in the list.
-   send matched packets, check the packets are not to port 1.
+   send matched packets, check the packets are not to port 3.
 
 Test case: MAC_IPV4_VXLAN_IPV4_UDP_PAY (not support in 20.05)
 =============================================================
 
 1. validate a rule::
 
-     testpmd> flow validate 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / udp / vxlan vni is 2 / eth / ipv4 src is 192.168.0.2 dst is 192.168.0.3 / udp src is 50 dst is 23 / end actions vf id 1 / end
+     testpmd> flow validate 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / udp / vxlan vni is 2 / eth / ipv4 src is 192.168.0.2 dst is 192.168.0.3 / udp src is 50 dst is 23 / end actions represented_port ethdev_port_id 1 / end
 
    get the message::
 
@@ -813,7 +815,7 @@ Test case: MAC_IPV4_VXLAN_IPV4_UDP_PAY (not support in 20.05)
 
 2. create a rule::
 
-     testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / udp / vxlan vni is 2 / eth / ipv4 src is 192.168.0.2 dst is 192.168.0.3 / udp src is 50 dst is 23 / end actions vf id 1 / end
+     testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / udp / vxlan vni is 2 / eth / ipv4 src is 192.168.0.2 dst is 192.168.0.3 / udp src is 50 dst is 23 / end actions represented_port ethdev_port_id 1 / end
      testpmd> flow list 0
 
    check the rule exists in the list.
@@ -822,13 +824,13 @@ Test case: MAC_IPV4_VXLAN_IPV4_UDP_PAY (not support in 20.05)
 
      sendp([Ether()/IP(dst="192.168.0.1")/UDP()/VXLAN(vni=2)/Ether()/IP(src="192.168.0.2", dst="192.168.0.3")/UDP(sport=50,dport=23) /Raw("x"*80)],iface="enp27s0f0",count=1)
 
-   check port 1 receive the packets.
+   check port 3 receive the packets.
    send mismatched packets::
 
      sendp([Ether()/IP(dst="192.168.0.1")/UDP()/VXLAN(vni=2)/Ether()/IP(src="192.168.0.2", dst="192.168.0.3")/UDP(sport=20,dport=23) /Raw("x"*80)],iface="enp27s0f0",count=1)
      sendp([Ether()/IP(dst="192.168.0.1")/UDP()/VXLAN(vni=2)/Ether()/IP(src="192.168.0.2", dst="192.168.0.3")/UDP(sport=50,dport=19) /Raw("x"*80)],iface="enp27s0f0",count=1)
 
-   check the packets are not to port 1.
+   check the packets are not to port 3.
 
 4. verify rules can be destroyed::
 
@@ -836,14 +838,14 @@ Test case: MAC_IPV4_VXLAN_IPV4_UDP_PAY (not support in 20.05)
      testpmd> flow list 0
 
    check the rule not exists in the list.
-   send matched packets, check the packets are not to port 1.
+   send matched packets, check the packets are not to port 3.
 
 Test case: MAC_IPV4_VXLAN_IPV4_TCP (not support in 20.05)
 =========================================================
 
 1. validate a rule::
 
-     testpmd> flow validate 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / udp / vxlan vni is 2 / eth / ipv4 src is 192.168.0.2 dst is 192.168.0.3 / tcp src is 50 dst is 23 / end actions vf id 1 / end
+     testpmd> flow validate 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / udp / vxlan vni is 2 / eth / ipv4 src is 192.168.0.2 dst is 192.168.0.3 / tcp src is 50 dst is 23 / end actions represented_port ethdev_port_id 1 / end
 
    get the message::
 
@@ -857,7 +859,7 @@ Test case: MAC_IPV4_VXLAN_IPV4_TCP (not support in 20.05)
 
 2. create a rule::
 
-     testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / udp / vxlan vni is 2 / eth / ipv4 src is 192.168.0.2 dst is 192.168.0.3 / tcp src is 50 dst is 23 / end actions vf id 1 / end
+     testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / udp / vxlan vni is 2 / eth / ipv4 src is 192.168.0.2 dst is 192.168.0.3 / tcp src is 50 dst is 23 / end actions represented_port ethdev_port_id 1 / end
      testpmd> flow list 0
 
    check the rule exists in the list.
@@ -866,13 +868,13 @@ Test case: MAC_IPV4_VXLAN_IPV4_TCP (not support in 20.05)
 
      sendp([Ether()/IP(dst="192.168.0.1")/UDP()/VXLAN(vni=2)/Ether()/IP(src="192.168.0.2", dst="192.168.0.3")/TCP(sport=50,dport=23)/Raw("x"*80)],iface="enp27s0f0",count=1)
 
-   check port 1 receive the packets.
+   check port 3 receive the packets.
    send mismatched packets::
 
      sendp([Ether()/IP(dst="192.168.0.1")/UDP()/VXLAN(vni=2)/Ether()/IP(src="192.168.0.2", dst="192.168.0.3")/TCP(sport=29,dport=23)/Raw("x"*80)],iface="enp27s0f0",count=1)
      sendp([Ether()/IP(dst="192.168.0.1")/UDP()/VXLAN(vni=2)/Ether()/IP(src="192.168.0.2", dst="192.168.0.3")/TCP(sport=50,dport=100)/Raw("x"*80)],iface="enp27s0f0",count=1)
 
-   check the packets are not to port 1.
+   check the packets are not to port 3.
 
 4. verify rules can be destroyed::
 
@@ -880,14 +882,14 @@ Test case: MAC_IPV4_VXLAN_IPV4_TCP (not support in 20.05)
      testpmd> flow list 0
 
    check the rule not exists in the list.
-   send matched packets, check the packets are not to port 1.
+   send matched packets, check the packets are not to port 3.
 
 Test case: MAC_IPV4_VXLAN_MAC_IPV4_FRAG (not support in 20.05)
 ==============================================================
 
 1. validate a rule::
 
-     testpmd> flow validate 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / udp / vxlan vni is 2 / eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.2 dst is 192.168.0.3 / end actions vf id 1 / end
+     testpmd> flow validate 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / udp / vxlan vni is 2 / eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.2 dst is 192.168.0.3 / end actions represented_port ethdev_port_id 1 / end
 
    get the message::
 
@@ -901,7 +903,7 @@ Test case: MAC_IPV4_VXLAN_MAC_IPV4_FRAG (not support in 20.05)
 
 2. create a rule::
 
-     testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / udp / vxlan vni is 2 / eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.2 dst is 192.168.0.3 / end actions vf id 1 / end
+     testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / udp / vxlan vni is 2 / eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.2 dst is 192.168.0.3 / end actions represented_port ethdev_port_id 1 / end
      testpmd> flow list 0
 
    check the rule exists in the list.
@@ -911,7 +913,7 @@ Test case: MAC_IPV4_VXLAN_MAC_IPV4_FRAG (not support in 20.05)
      sendp([Ether()/IP(dst="192.168.0.1")/UDP()/VXLAN(vni=2)/Ether(dst="68:05:ca:8d:ed:a8")/IP(src="192.168.0.2", dst="192.168.0.3" ,frag=5)/TCP()/Raw("x"*80)],iface="enp27s0f0",count=1)
      sendp([Ether()/IP(dst="192.168.0.1")/UDP()/VXLAN(vni=2)/Ether(dst="68:05:ca:8d:ed:a8")/IP(src="192.168.0.2", dst="192.168.0.3" ,frag=5)/Raw("x"*80)],iface="enp27s0f0",count=1)
 
-   check port 1 receive the packets.
+   check port 3 receive the packets.
    send mismatched packets::
 
      sendp([Ether()/IP(dst="192.168.0.2")/UDP()/VXLAN(vni=2)/Ether(dst="68:05:ca:8d:ed:a8")/IP(src="192.168.0.2", dst="192.168.0.3" ,frag=5)/TCP()/Raw("x"*80)],iface="enp27s0f0",count=1)
@@ -920,7 +922,7 @@ Test case: MAC_IPV4_VXLAN_MAC_IPV4_FRAG (not support in 20.05)
      sendp([Ether()/IP(dst="192.168.0.1")/UDP()/VXLAN(vni=2)/Ether(dst="68:05:ca:8d:ed:a8")/IP(src="192.168.0.4", dst="192.168.0.3" ,frag=5)/TCP()/Raw("x"*80)],iface="enp27s0f0",count=1)
      sendp([Ether()/IP(dst="192.168.0.1")/UDP()/VXLAN(vni=2)/Ether(dst="68:05:ca:8d:ed:a8")/IP(src="192.168.0.2", dst="192.168.0.5" ,frag=5)/TCP()/Raw("x"*80)],iface="enp27s0f0",count=1)
 
-   check the packets are not to port 1.
+   check the packets are not to port 3.
 
 4. verify rules can be destroyed::
 
@@ -928,14 +930,14 @@ Test case: MAC_IPV4_VXLAN_MAC_IPV4_FRAG (not support in 20.05)
      testpmd> flow list 0
 
    check the rule not exists in the list.
-   send matched packets, check the packets are not to port 1.
+   send matched packets, check the packets are not to port 3.
 
 Test case: MAC_IPV4_VXLAN_MAC_IPV4_PAY (not support in 20.05)
 =============================================================
 
 1. validate a rule::
 
-     testpmd> flow validate 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / udp / vxlan vni is 2 / eth dst is 68:05:ca:8d:ed:a8  / ipv4 src is 192.168.0.2 dst is 192.168.0.3 / end actions vf id 1 / end
+     testpmd> flow validate 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / udp / vxlan vni is 2 / eth dst is 68:05:ca:8d:ed:a8  / ipv4 src is 192.168.0.2 dst is 192.168.0.3 / end actions represented_port ethdev_port_id 1 / end
 
    get the message::
 
@@ -949,7 +951,7 @@ Test case: MAC_IPV4_VXLAN_MAC_IPV4_PAY (not support in 20.05)
 
 2. create a rule::
 
-     testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / udp / vxlan vni is 2 / eth dst is 68:05:ca:8d:ed:a8  / ipv4 src is 192.168.0.2 dst is 192.168.0.3 / end actions vf id 1 / end
+     testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / udp / vxlan vni is 2 / eth dst is 68:05:ca:8d:ed:a8  / ipv4 src is 192.168.0.2 dst is 192.168.0.3 / end actions represented_port ethdev_port_id 1 / end
      testpmd> flow list 0
 
    check the rule exists in the list.
@@ -959,7 +961,7 @@ Test case: MAC_IPV4_VXLAN_MAC_IPV4_PAY (not support in 20.05)
      sendp([Ether()/IP(dst="192.168.0.1")/UDP()/VXLAN(vni=2)/Ether(dst="68:05:ca:8d:ed:a8")/IP(src="192.168.0.2", dst="192.168.0.3") /TCP()/Raw("x" * 80)],iface="enp27s0f0",count=1)
      sendp([Ether()/IP(dst="192.168.0.1")/UDP()/VXLAN(vni=2)/Ether(dst="68:05:ca:8d:ed:a8")/IP(src="192.168.0.2", dst="192.168.0.3")/Raw("x" * 80)],iface="enp27s0f0",count=1)
 
-   check port 1 receive the packets.
+   check port 3 receive the packets.
    send mismatched packets::
 
      sendp([Ether()/IP(dst="192.168.0.2")/UDP()/VXLAN(vni=2)/Ether(dst="68:05:ca:8d:ed:a8")/IP(src="192.168.0.2", dst="192.168.0.3") /TCP()/Raw("x" * 80)],iface="enp27s0f0",count=1)
@@ -968,7 +970,7 @@ Test case: MAC_IPV4_VXLAN_MAC_IPV4_PAY (not support in 20.05)
      sendp([Ether()/IP(dst="192.168.0.1")/UDP()/VXLAN(vni=2)/Ether(dst="68:05:ca:8d:ed:a8")/IP(src="192.168.0.4", dst="192.168.0.3") /TCP()/Raw("x" * 80)],iface="enp27s0f0",count=1)
      sendp([Ether()/IP(dst="192.168.0.1")/UDP()/VXLAN(vni=2)/Ether(dst="68:05:ca:8d:ed:a8")/IP(src="192.168.0.2", dst="192.168.0.5") /TCP()/Raw("x" * 80)],iface="enp27s0f0",count=1)
 
-   check the packets are not to port 1.
+   check the packets are not to port 3.
 
 4. verify rules can be destroyed::
 
@@ -976,14 +978,14 @@ Test case: MAC_IPV4_VXLAN_MAC_IPV4_PAY (not support in 20.05)
      testpmd> flow list 0
 
    check the rule not exists in the list.
-   send matched packets, check the packets are not to port 1.
+   send matched packets, check the packets are not to port 3.
 
 Test case: MAC_IPV4_VXLAN_MAC_IPV4_UDP_PAY (not support in 20.05)
 =================================================================
 
 1. validate a rule::
 
-     testpmd> flow validate 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / udp / vxlan vni is 2 / eth dst is 68:05:ca:8d:ed:a8  / ipv4 src is 192.168.0.2 dst is 192.168.0.3 / udp src is 50 dst is 23 / end actions vf id 1 / end
+     testpmd> flow validate 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / udp / vxlan vni is 2 / eth dst is 68:05:ca:8d:ed:a8  / ipv4 src is 192.168.0.2 dst is 192.168.0.3 / udp src is 50 dst is 23 / end actions represented_port ethdev_port_id 1 / end
 
    get the message::
 
@@ -997,7 +999,7 @@ Test case: MAC_IPV4_VXLAN_MAC_IPV4_UDP_PAY (not support in 20.05)
 
 2. create a rule::
 
-     testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / udp / vxlan vni is 2 / eth dst is 68:05:ca:8d:ed:a8  / ipv4 src is 192.168.0.2 dst is 192.168.0.3 / udp src is 50 dst is 23 / end actions vf id 1 / end
+     testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / udp / vxlan vni is 2 / eth dst is 68:05:ca:8d:ed:a8  / ipv4 src is 192.168.0.2 dst is 192.168.0.3 / udp src is 50 dst is 23 / end actions represented_port ethdev_port_id 1 / end
      testpmd> flow list 0
 
    check the rule exists in the list.
@@ -1006,13 +1008,13 @@ Test case: MAC_IPV4_VXLAN_MAC_IPV4_UDP_PAY (not support in 20.05)
 
      sendp([Ether()/IP(dst="192.168.0.1")/UDP()/VXLAN(vni=2)/Ether(dst="68:05:ca:8d:ed:a8")/IP(src="192.168.0.2", dst="192.168.0.3")/UDP(sport=50,dport=23)/Raw("x" * 80)],iface="enp27s0f0",count=1)
 
-   check port 1 receive the packets.
+   check port 3 receive the packets.
    send mismatched packets::
 
      sendp([Ether()/IP(dst="192.168.0.1")/UDP()/VXLAN(vni=2)/Ether(dst="68:05:ca:8d:ed:a8")/IP(src="192.168.0.2", dst="192.168.0.3")/UDP(sport=20,dport=23)/Raw("x" * 80)],iface="enp27s0f0",count=1)
      sendp([Ether()/IP(dst="192.168.0.1")/UDP()/VXLAN(vni=2)/Ether(dst="68:05:ca:8d:ed:a8")/IP(src="192.168.0.2", dst="192.168.0.3")/UDP(sport=50,dport=29)/Raw("x" * 80)],iface="enp27s0f0",count=1)
 
-   check the packets are not to port 1.
+   check the packets are not to port 3.
 
 4. verify rules can be destroyed::
 
@@ -1020,14 +1022,14 @@ Test case: MAC_IPV4_VXLAN_MAC_IPV4_UDP_PAY (not support in 20.05)
      testpmd> flow list 0
 
    check the rule not exists in the list.
-   send matched packets, check the packets are not to port 1.
+   send matched packets, check the packets are not to port 3.
 
 Test case: MAC_IPV4_VXLAN_MAC_IPV4_TCP (not support in 20.05)
 =============================================================
 
 1. validate a rule::
 
-     testpmd> flow validate 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / udp / vxlan vni is 2 / eth dst is 68:05:ca:8d:ed:a8  / ipv4 src is 192.168.0.2 dst is 192.168.0.3 / tcp src is 25 dst is 23 / end actions vf id 1 / end
+     testpmd> flow validate 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / udp / vxlan vni is 2 / eth dst is 68:05:ca:8d:ed:a8  / ipv4 src is 192.168.0.2 dst is 192.168.0.3 / tcp src is 25 dst is 23 / end actions represented_port ethdev_port_id 1 / end
 
    get the message::
 
@@ -1041,7 +1043,7 @@ Test case: MAC_IPV4_VXLAN_MAC_IPV4_TCP (not support in 20.05)
 
 2. create a rule::
 
-     testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / udp / vxlan vni is 2 / eth dst is 68:05:ca:8d:ed:a8  / ipv4 src is 192.168.0.2 dst is 192.168.0.3 / tcp src is 25 dst is 23 / end actions vf id 1 / end
+     testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / udp / vxlan vni is 2 / eth dst is 68:05:ca:8d:ed:a8  / ipv4 src is 192.168.0.2 dst is 192.168.0.3 / tcp src is 25 dst is 23 / end actions represented_port ethdev_port_id 1 / end
      testpmd> flow list 0
 
    check the rule exists in the list.
@@ -1050,13 +1052,13 @@ Test case: MAC_IPV4_VXLAN_MAC_IPV4_TCP (not support in 20.05)
 
      sendp([Ether()/IP(dst="192.168.0.1")/UDP()/VXLAN(vni=2)/Ether(dst="68:05:ca:8d:ed:a8")/IP(src="192.168.0.2", dst="192.168.0.3")/TCP(sport=25,dport=23)/Raw("x" * 80)],iface="enp27s0f0",count=1)
 
-   check port 1 receive the packets.
+   check port 3 receive the packets.
    send mismatched packets::
 
      sendp([Ether()/IP(dst="192.168.0.1")/UDP()/VXLAN(vni=2)/Ether(dst="68:05:ca:8d:ed:a8")/IP(src="192.168.0.2", dst="192.168.0.3")/TCP(sport=20,dport=23)/Raw("x" * 80)],iface="enp27s0f0",count=1)
      sendp([Ether()/IP(dst="192.168.0.1")/UDP()/VXLAN(vni=2)/Ether(dst="68:05:ca:8d:ed:a8")/IP(src="192.168.0.2", dst="192.168.0.3")/TCP(sport=25,dport=19)/Raw("x" * 80)],iface="enp27s0f0",count=1)
 
-   check the packets are not to port 1.
+   check the packets are not to port 3.
 
 4. verify rules can be destroyed::
 
@@ -1064,14 +1066,14 @@ Test case: MAC_IPV4_VXLAN_MAC_IPV4_TCP (not support in 20.05)
      testpmd> flow list 0
 
    check the rule not exists in the list.
-   send matched packets, check the packets are not to port 1.
+   send matched packets, check the packets are not to port 3.
 
 Test case: MAC_IPV4_NVGRE_IPV4_PAY
 ===================================
 
 1. validate a rule::
 
-     testpmd> flow validate 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / nvgre tni is 2 / eth / ipv4 src is 192.168.1.2 dst is 192.168.1.3 / end actions vf id 1 / end
+     testpmd> flow validate 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / nvgre tni is 2 / eth / ipv4 src is 192.168.1.2 dst is 192.168.1.3 / end actions represented_port ethdev_port_id 1 / end
 
    get the message::
 
@@ -1085,7 +1087,7 @@ Test case: MAC_IPV4_NVGRE_IPV4_PAY
 
 2. create a rule::
 
-     testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / nvgre tni is 2 / eth / ipv4 src is 192.168.1.2 dst is 192.168.1.3 / end actions vf id 1 / end
+     testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / nvgre tni is 2 / eth / ipv4 src is 192.168.1.2 dst is 192.168.1.3 / end actions represented_port ethdev_port_id 1 / end
      testpmd> flow list 0
 
    check the rule exists in the list.
@@ -1095,7 +1097,7 @@ Test case: MAC_IPV4_NVGRE_IPV4_PAY
      sendp([Ether()/IP(dst="192.168.0.1")/NVGRE(TNI=2)/Ether()/IP(src="192.168.1.2", dst="192.168.1.3")/Raw("x"*80)],iface="enp27s0f0",count=1)
      sendp([Ether()/IP(dst="192.168.0.1")/NVGRE(TNI=2)/Ether()/IP(src="192.168.1.2", dst="192.168.1.3" ,frag=5)/Raw("x"*80)],iface="enp27s0f0",count=1)
 
-   check port 1 receive the packets.
+   check port 3 receive the packets.
    send mismatched packets::
 
      sendp([Ether()/IP(dst="192.168.0.2")/NVGRE(TNI=2)/Ether()/IP(src="192.168.1.2", dst="192.168.1.3")/Raw("x"*80)],iface="enp27s0f0",count=1)
@@ -1107,7 +1109,7 @@ Test case: MAC_IPV4_NVGRE_IPV4_PAY
      sendp([Ether()/IP(dst="192.168.0.1")/NVGRE(TNI=2)/Ether()/IP(src="192.168.1.4", dst="192.168.1.3" ,frag=5)/Raw("x"*80)],iface="enp27s0f0",count=1)
      sendp([Ether()/IP(dst="192.168.0.1")/NVGRE(TNI=2)/Ether()/IP(src="192.168.1.2", dst="192.168.1.5" ,frag=5)/Raw("x"*80)],iface="enp27s0f0",count=1)
 
-   check the packets are not to port 1.
+   check the packets are not to port 3.
 
 4. verify rules can be destroyed::
 
@@ -1115,14 +1117,14 @@ Test case: MAC_IPV4_NVGRE_IPV4_PAY
      testpmd> flow list 0
 
    check the rule not exists in the list.
-   send matched packets, check the packets are not to port 1.
+   send matched packets, check the packets are not to port 3.
 
 Test case: MAC_IPV4_NVGRE_IPV4_UDP_PAY
 ======================================
 
 1. validate a rule::
 
-     testpmd> flow validate 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / nvgre tni is 0x8 / eth / ipv4 src is 192.168.0.2 dst is 192.168.0.3 / udp src is 50 dst is 23 / end actions vf id 1 / end
+     testpmd> flow validate 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / nvgre tni is 0x8 / eth / ipv4 src is 192.168.0.2 dst is 192.168.0.3 / udp src is 50 dst is 23 / end actions represented_port ethdev_port_id 1 / end
 
    get the message::
 
@@ -1136,7 +1138,7 @@ Test case: MAC_IPV4_NVGRE_IPV4_UDP_PAY
 
 2. create a rule::
 
-     testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / nvgre tni is 0x8 / eth / ipv4 src is 192.168.0.2 dst is 192.168.0.3 / udp src is 50 dst is 23 / end actions vf id 1 / end
+     testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / nvgre tni is 0x8 / eth / ipv4 src is 192.168.0.2 dst is 192.168.0.3 / udp src is 50 dst is 23 / end actions represented_port ethdev_port_id 1 / end
      testpmd> flow list 0
 
    check the rule exists in the list.
@@ -1145,7 +1147,7 @@ Test case: MAC_IPV4_NVGRE_IPV4_UDP_PAY
 
      sendp([Ether()/IP(dst="192.168.0.1")/NVGRE(TNI=0x8)/Ether()/IP(src="192.168.0.2", dst="192.168.0.3")/UDP(sport=50,dport=23)/Raw("x"*80)], iface="enp27s0f0", count=1)
 
-   check port 1 receive the packets.
+   check port 3 receive the packets.
    send mismatched packets::
 
      sendp([Ether()/IP(dst="192.168.0.2")/NVGRE(TNI=0x8)/Ether()/IP(src="192.168.0.2", dst="192.168.0.3")/UDP(sport=50,dport=23)/Raw("x"*80)], iface="enp27s0f0", count=1)
@@ -1155,7 +1157,7 @@ Test case: MAC_IPV4_NVGRE_IPV4_UDP_PAY
      sendp([Ether()/IP(dst="192.168.0.1")/NVGRE(TNI=0x8)/Ether()/IP(src="192.168.0.2", dst="192.168.0.3")/UDP(sport=20,dport=23)/Raw("x"*80)], iface="enp27s0f0", count=1)
      sendp([Ether()/IP(dst="192.168.0.1")/NVGRE(TNI=0x8)/Ether()/IP(src="192.168.0.2", dst="192.168.0.3")/UDP(sport=50,dport=19)/Raw("x"*80)], iface="enp27s0f0", count=1)
 
-   check the packets are not to port 1.
+   check the packets are not to port 3.
 
 4. verify rules can be destroyed::
 
@@ -1163,14 +1165,14 @@ Test case: MAC_IPV4_NVGRE_IPV4_UDP_PAY
      testpmd> flow list 0
 
    check the rule not exists in the list.
-   send matched packets, check the packets are not to port 1.
+   send matched packets, check the packets are not to port 3.
 
 Test case: MAC_IPV4_NVGRE_IPV4_TCP
 ==================================
 
 1. validate a rule::
 
-     testpmd> flow validate 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / nvgre tni is 2 / eth / ipv4 src is 192.168.1.2 dst is 192.168.1.3 / tcp src is 25 dst is 23 / end actions vf id 1 / end
+     testpmd> flow validate 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / nvgre tni is 2 / eth / ipv4 src is 192.168.1.2 dst is 192.168.1.3 / tcp src is 25 dst is 23 / end actions represented_port ethdev_port_id 1 / end
 
    get the message::
 
@@ -1184,7 +1186,7 @@ Test case: MAC_IPV4_NVGRE_IPV4_TCP
 
 2. create a rule::
 
-     testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / nvgre tni is 2 / eth / ipv4 src is 192.168.1.2 dst is 192.168.1.3 / tcp src is 25 dst is 23 / end actions vf id 1 / end
+     testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / nvgre tni is 2 / eth / ipv4 src is 192.168.1.2 dst is 192.168.1.3 / tcp src is 25 dst is 23 / end actions represented_port ethdev_port_id 1 / end
      testpmd> flow list 0
 
    check the rule exists in the list.
@@ -1193,7 +1195,7 @@ Test case: MAC_IPV4_NVGRE_IPV4_TCP
 
      sendp([Ether()/IP(dst="192.168.0.1")/NVGRE(TNI=2)/Ether()/IP(src="192.168.1.2", dst="192.168.1.3")/TCP(sport=25,dport=23)/Raw("x"*80)],iface="enp27s0f0",count=1)
 
-   check port 1 receive the packets.
+   check port 3 receive the packets.
    send mismatched packets::
 
      sendp([Ether()/IP(dst="192.168.0.2")/NVGRE(TNI=2)/Ether()/IP(src="192.168.1.2", dst="192.168.1.3")/TCP(sport=25,dport=23)/Raw("x"*80)],iface="enp27s0f0",count=1)
@@ -1203,7 +1205,7 @@ Test case: MAC_IPV4_NVGRE_IPV4_TCP
      sendp([Ether()/IP(dst="192.168.0.1")/NVGRE(TNI=2)/Ether()/IP(src="192.168.1.2", dst="192.168.1.3")/TCP(sport=20,dport=23)/Raw("x"*80)],iface="enp27s0f0",count=1)
      sendp([Ether()/IP(dst="192.168.0.1")/NVGRE(TNI=2)/Ether()/IP(src="192.168.1.2", dst="192.168.1.3")/TCP(sport=25,dport=39)/Raw("x"*80)],iface="enp27s0f0",count=1)
 
-   check the packets are not to port 1.
+   check the packets are not to port 3.
 
 4. verify rules can be destroyed::
 
@@ -1211,14 +1213,14 @@ Test case: MAC_IPV4_NVGRE_IPV4_TCP
      testpmd> flow list 0
 
    check the rule not exists in the list.
-   send matched packets, check the packets are not to port 1.
+   send matched packets, check the packets are not to port 3.
 
 Test case: MAC_IPV4_NVGRE_MAC_IPV4_PAY
 ======================================
 
 1. validate a rule::
 
-     testpmd> flow validate 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / nvgre tni is 2 / eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.1.2 dst is 192.168.1.3 / end actions vf id 1 / end
+     testpmd> flow validate 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / nvgre tni is 2 / eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.1.2 dst is 192.168.1.3 / end actions represented_port ethdev_port_id 1 / end
 
    get the message::
 
@@ -1232,7 +1234,7 @@ Test case: MAC_IPV4_NVGRE_MAC_IPV4_PAY
 
 2. create a rule::
 
-     testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / nvgre tni is 2 / eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.1.2 dst is 192.168.1.3 / end actions vf id 1 / end
+     testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / nvgre tni is 2 / eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.1.2 dst is 192.168.1.3 / end actions represented_port ethdev_port_id 1 / end
      testpmd> flow list 0
 
    check the rule exists in the list.
@@ -1242,7 +1244,7 @@ Test case: MAC_IPV4_NVGRE_MAC_IPV4_PAY
      sendp([Ether()/IP(dst="192.168.0.1")/NVGRE(TNI=2)/Ether(dst="68:05:ca:8d:ed:a8")/IP(src="192.168.1.2", dst="192.168.1.3")/Raw("x"*80)],iface="enp27s0f0",count=1)
      sendp([Ether()/IP(dst="192.168.0.1")/NVGRE(TNI=2)/Ether(dst="68:05:ca:8d:ed:a8")/IP(src="192.168.1.2", dst="192.168.1.3" ,frag=5)/Raw("x"*80)],iface="enp27s0f0",count=1)
 
-   check port 1 receive the packets.
+   check port 3 receive the packets.
    send mismatched packets::
 
      sendp([Ether()/IP(dst="192.168.0.2")/NVGRE(TNI=2)/Ether(dst="68:05:ca:8d:ed:a8")/IP(src="192.168.1.2", dst="192.168.1.3")/Raw("x"*80)],iface="enp27s0f0",count=1)
@@ -1256,7 +1258,7 @@ Test case: MAC_IPV4_NVGRE_MAC_IPV4_PAY
      sendp([Ether()/IP(dst="192.168.0.1")/NVGRE(TNI=2)/Ether(dst="68:05:ca:8d:ed:a8")/IP(src="192.168.1.4", dst="192.168.1.3" ,frag=5)/Raw("x"*80)],iface="enp27s0f0",count=1)
      sendp([Ether()/IP(dst="192.168.0.1")/NVGRE(TNI=2)/Ether(dst="68:05:ca:8d:ed:a8")/IP(src="192.168.1.2", dst="192.168.1.5" ,frag=5)/Raw("x"*80)],iface="enp27s0f0",count=1)
 
-   check the packets are not to port 1.
+   check the packets are not to port 3.
 
 4. verify rules can be destroyed::
 
@@ -1264,14 +1266,14 @@ Test case: MAC_IPV4_NVGRE_MAC_IPV4_PAY
      testpmd> flow list 0
 
    check the rule not exists in the list.
-   send matched packets, check the packets are not to port 1.
+   send matched packets, check the packets are not to port 3.
 
 Test case: MAC_IPV4_NVGRE_MAC_IPV4_UDP_PAY
 ==========================================
 
 1. validate a rule::
 
-     testpmd> flow validate 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / nvgre tni is 0x8 /  eth dst is 68:05:ca:8d:ed:a8  / ipv4 src is 192.168.1.2 dst is 192.168.1.3 / udp src is 25 dst is 23 / end actions vf id 1 / end
+     testpmd> flow validate 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / nvgre tni is 0x8 /  eth dst is 68:05:ca:8d:ed:a8  / ipv4 src is 192.168.1.2 dst is 192.168.1.3 / udp src is 25 dst is 23 / end actions represented_port ethdev_port_id 1 / end
 
    get the message::
 
@@ -1285,7 +1287,7 @@ Test case: MAC_IPV4_NVGRE_MAC_IPV4_UDP_PAY
 
 2. create a rule::
 
-     testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / nvgre tni is 0x8 /  eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.1.2 dst is 192.168.1.3 / udp src is 25 dst is 23 / end actions vf id 1 / end
+     testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / nvgre tni is 0x8 /  eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.1.2 dst is 192.168.1.3 / udp src is 25 dst is 23 / end actions represented_port ethdev_port_id 1 / end
      testpmd> flow list 0
 
    check the rule exists in the list.
@@ -1294,7 +1296,7 @@ Test case: MAC_IPV4_NVGRE_MAC_IPV4_UDP_PAY
 
      sendp([Ether()/IP(dst="192.168.0.1")/NVGRE(TNI=0x8)/Ether(dst="68:05:ca:8d:ed:a8")/IP(src="192.168.1.2", dst="192.168.1.3")/UDP(sport=25,dport=23)/Raw("x"*80)], iface="enp27s0f0", count=1)
 
-   check port 1 receive the packets.
+   check port 3 receive the packets.
    send mismatched packets::
 
      sendp([Ether()/IP(dst="192.168.0.2")/NVGRE(TNI=0x8)/Ether(dst="68:05:ca:8d:ed:a8")/IP(src="192.168.1.2", dst="192.168.1.3")/UDP(sport=25,dport=23)/Raw("x"*80)], iface="enp27s0f0", count=1)
@@ -1305,7 +1307,7 @@ Test case: MAC_IPV4_NVGRE_MAC_IPV4_UDP_PAY
      sendp([Ether()/IP(dst="192.168.0.1")/NVGRE(TNI=0x8)/Ether(dst="68:05:ca:8d:ed:a8")/IP(src="192.168.1.2", dst="192.168.1.3")/UDP(sport=2,dport=23)/Raw("x"*80)], iface="enp27s0f0", count=1)
      sendp([Ether()/IP(dst="192.168.0.1")/NVGRE(TNI=0x8)/Ether(dst="68:05:ca:8d:ed:a8")/IP(src="192.168.1.2", dst="192.168.1.3")/UDP(sport=25,dport=20)/Raw("x"*80)], iface="enp27s0f0", count=1)
 
-   check the packets are not to port 1.
+   check the packets are not to port 3.
 
 4. verify rules can be destroyed::
 
@@ -1313,14 +1315,14 @@ Test case: MAC_IPV4_NVGRE_MAC_IPV4_UDP_PAY
      testpmd> flow list 0
 
    check the rule not exists in the list.
-   send matched packets, check the packets are not to port 1.
+   send matched packets, check the packets are not to port 3.
 
 Test case: MAC_IPV4_NVGRE_MAC_IPV4_TCP
 ======================================
 
 1. validate a rule::
 
-     testpmd> flow validate 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / nvgre tni is 2 / eth dst is 68:05:ca:8d:ed:a8  / ipv4 src is 192.168.1.2 dst is 192.168.1.3 / tcp src is 25 dst is 23 / end actions vf id 1 / end
+     testpmd> flow validate 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / nvgre tni is 2 / eth dst is 68:05:ca:8d:ed:a8  / ipv4 src is 192.168.1.2 dst is 192.168.1.3 / tcp src is 25 dst is 23 / end actions represented_port ethdev_port_id 1 / end
 
    get the message::
 
@@ -1334,7 +1336,7 @@ Test case: MAC_IPV4_NVGRE_MAC_IPV4_TCP
 
 2. create a rule::
 
-     testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / nvgre tni is 2 / eth dst is 68:05:ca:8d:ed:a8  / ipv4 src is 192.168.1.2 dst is 192.168.1.3 / tcp src is 25 dst is 23 / end actions vf id 1 / end
+     testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / nvgre tni is 2 / eth dst is 68:05:ca:8d:ed:a8  / ipv4 src is 192.168.1.2 dst is 192.168.1.3 / tcp src is 25 dst is 23 / end actions represented_port ethdev_port_id 1 / end
      testpmd> flow list 0
 
    check the rule exists in the list.
@@ -1343,7 +1345,7 @@ Test case: MAC_IPV4_NVGRE_MAC_IPV4_TCP
 
      sendp([Ether()/IP(dst="192.168.0.1")/NVGRE(TNI=2)/Ether(dst="68:05:ca:8d:ed:a8")/IP(src="192.168.1.2", dst="192.168.1.3")/TCP(sport=25,dport=23)/Raw("x"*80)],iface="enp27s0f0",count=1)
 
-   check port 1 receive the packets.
+   check port 3 receive the packets.
    send mismatched packets::
 
      sendp([Ether()/IP(dst="192.168.0.2")/NVGRE(TNI=2)/Ether(dst="68:05:ca:8d:ed:a8")/IP(src="192.168.1.2", dst="192.168.1.3")/TCP(sport=25,dport=23)/Raw("x"*80)],iface="enp27s0f0",count=1)
@@ -1354,7 +1356,7 @@ Test case: MAC_IPV4_NVGRE_MAC_IPV4_TCP
      sendp([Ether()/IP(dst="192.168.0.1")/NVGRE(TNI=2)/Ether(dst="68:05:ca:8d:ed:a8")/IP(src="192.168.1.2", dst="192.168.1.3")/TCP(sport=1,dport=23)/Raw("x"*80)],iface="enp27s0f0",count=1)
      sendp([Ether()/IP(dst="192.168.0.1")/NVGRE(TNI=2)/Ether(dst="68:05:ca:8d:ed:a8")/IP(src="192.168.1.2", dst="192.168.1.3")/TCP(sport=25,dport=20)/Raw("x"*80)],iface="enp27s0f0",count=1)
 
-   check the packets are not to port 1.
+   check the packets are not to port 3.
 
 4. verify rules can be destroyed::
 
@@ -1362,14 +1364,14 @@ Test case: MAC_IPV4_NVGRE_MAC_IPV4_TCP
      testpmd> flow list 0
 
    check the rule not exists in the list.
-   send matched packets, check the packets are not to port 1.
+   send matched packets, check the packets are not to port 3.
 
 Test case: MAC_IPV4_PFCP_NODE
 =============================
 
 1. validate a rule::
 
-     testpmd> flow validate 0 ingress pattern eth / ipv4 / udp / pfcp s_field is 0 / end actions vf id 1 / end
+     testpmd> flow validate 0 ingress pattern eth / ipv4 / udp / pfcp s_field is 0 / end actions represented_port ethdev_port_id 1 / end
 
    get the message::
 
@@ -1383,7 +1385,7 @@ Test case: MAC_IPV4_PFCP_NODE
 
 2. DUT create switch filter rules for MAC_IPV4_PFCP_NODE to VF1::
 
-    flow create 0 ingress pattern eth / ipv4 / udp / pfcp s_field is 0 / end actions vf id 1 / end
+    flow create 0 ingress pattern eth / ipv4 / udp / pfcp s_field is 0 / end actions represented_port ethdev_port_id 1 / end
 
    check the rule exists in the list.
 
@@ -1395,14 +1397,14 @@ Test case: MAC_IPV4_PFCP_NODE
 
     sendp(Ether(dst="00:11:22:33:44:11")/IP()/UDP(dport=8805)/PFCP(Sfield=0),iface="enp134s0f1")
 
-   check port 1 receive the packet.
+   check port 3 receive the packet.
    send mismatched packets::
 
     sendp(Ether(dst="00:11:22:33:44:11")/IP()/UDP(dport=8805)/PFCP(Sfield=1),iface="enp134s0f1")
     sendp(Ether(dst="00:11:22:33:44:11")/IPv6()/UDP(dport=8805)/PFCP(Sfield=0),iface="enp134s0f1")
     sendp(Ether(dst="00:11:22:33:44:11")/IPv6()/UDP(dport=8805)/PFCP(Sfield=1),iface="enp134s0f1")
 
-   check the packets are not to port 1.
+   check the packets are not to port 3.
 
 4. verify rules can be destroyed::
 
@@ -1410,14 +1412,14 @@ Test case: MAC_IPV4_PFCP_NODE
      testpmd> flow list 0
 
    check the rule not exists in the list.
-   send matched packets, check the packets are not to port 1.
+   send matched packets, check the packets are not to port 3.
 
 Test case: MAC_IPV4_PFCP_SESSION
 ================================
 
 1. validate a rule::
 
-     testpmd> flow validate 0 ingress pattern eth / ipv4 / udp / pfcp s_field is 1 / end actions vf id 2 / end
+     testpmd> flow validate 0 ingress pattern eth / ipv4 / udp / pfcp s_field is 1 / end actions represented_port ethdev_port_id 2 / end
 
    get the message::
 
@@ -1431,7 +1433,7 @@ Test case: MAC_IPV4_PFCP_SESSION
 
 2. DUT create switch filter rules for MAC_IPV4_PFCP_SESSION to VF2::
 
-    flow create 0 ingress pattern eth / ipv4 / udp / pfcp s_field is 1 / end actions vf id 2 / end
+    flow create 0 ingress pattern eth / ipv4 / udp / pfcp s_field is 1 / end actions represented_port ethdev_port_id 2 / end
 
    check the rule exists in the list.
 
@@ -1443,14 +1445,14 @@ Test case: MAC_IPV4_PFCP_SESSION
 
     sendp(Ether(dst="00:11:22:33:44:11")/IP()/UDP(dport=8805)/PFCP(Sfield=1),iface="enp134s0f1")
 
-   check port 2 receive the packet.
+   check port 4 receive the packet.
    send mismatched packets::
 
     sendp(Ether(dst="00:11:22:33:44:11")/IP()/UDP(dport=8805)/PFCP(Sfield=0),iface="enp134s0f1")
     sendp(Ether(dst="00:11:22:33:44:11")/IPv6()/UDP(dport=8805)/PFCP(Sfield=0),iface="enp134s0f1")
     sendp(Ether(dst="00:11:22:33:44:11")/IPv6()/UDP(dport=8805)/PFCP(Sfield=1),iface="enp134s0f1")
 
-   check the packets are not to port 2.
+   check the packets are not to port 4.
 
 4. verify rules can be destroyed::
 
@@ -1458,14 +1460,14 @@ Test case: MAC_IPV4_PFCP_SESSION
      testpmd> flow list 0
 
    check the rule not exists in the list.
-   send matched packets, check the packets are not to port 2.
+   send matched packets, check the packets are not to port 4.
 
 Test case: MAC_IPV6_PFCP_NODE
 =============================
 
 1. validate a rule::
 
-     testpmd> flow validate 0 ingress pattern eth / ipv6 / udp / pfcp s_field is 0 / end actions vf id 3 / end
+     testpmd> flow validate 0 ingress pattern eth / ipv6 / udp / pfcp s_field is 0 / end actions represented_port ethdev_port_id 3 / end
 
    get the message::
 
@@ -1479,7 +1481,7 @@ Test case: MAC_IPV6_PFCP_NODE
 
 2. DUT create switch filter rules for MAC_IPV6_PFCP_NODE to VF3::
 
-    flow create 0 ingress pattern eth / ipv6 / udp / pfcp s_field is 0 / end actions vf id 3 / end
+    flow create 0 ingress pattern eth / ipv6 / udp / pfcp s_field is 0 / end actions represented_port ethdev_port_id 3 / end
 
    check the rule exists in the list.
 
@@ -1513,7 +1515,7 @@ Test case: MAC_IPV6_PFCP_SESSION
 
 1. validate a rule::
 
-     testpmd> flow validate 0 ingress pattern eth / ipv6 / udp / pfcp s_field is 1 / end actions vf id 1 / end
+     testpmd> flow validate 0 ingress pattern eth / ipv6 / udp / pfcp s_field is 1 / end actions represented_port ethdev_port_id 1 / end
 
    get the message::
 
@@ -1527,7 +1529,7 @@ Test case: MAC_IPV6_PFCP_SESSION
 
 2. DUT create switch filter rules for MAC_IPV6_PFCP_SESSION to VF1::
 
-    flow create 0 ingress pattern eth / ipv6 / udp / pfcp s_field is 1 / end actions vf id 1 / end
+    flow create 0 ingress pattern eth / ipv6 / udp / pfcp s_field is 1 / end actions represented_port ethdev_port_id 1 / end
 
    check the rule exists in the list.
 
@@ -1539,14 +1541,14 @@ Test case: MAC_IPV6_PFCP_SESSION
 
     sendp(Ether(dst="00:11:22:33:44:11")/IPv6()/UDP(dport=8805)/PFCP(Sfield=1),iface="enp134s0f1")
 
-   check port 1 receive the packet.
+   check port 3 receive the packet.
    send mismatched packets::
 
     sendp(Ether(dst="00:11:22:33:44:11")/IP()/UDP(dport=8805)/PFCP(Sfield=0),iface="enp134s0f1")
     sendp(Ether(dst="00:11:22:33:44:11")/IP()/UDP(dport=8805)/PFCP(Sfield=1),iface="enp134s0f1")
     sendp(Ether(dst="00:11:22:33:44:11")/IPv6()/UDP(dport=8805)/PFCP(Sfield=0),iface="enp134s0f1")
 
-   check the packets are not to port 1.
+   check the packets are not to port 3.
 
 4. verify rules can be destroyed::
 
@@ -1554,14 +1556,14 @@ Test case: MAC_IPV6_PFCP_SESSION
      testpmd> flow list 0
 
    check the rule not exists in the list.
-   send matched packets, check the packets are not to port 1.
+   send matched packets, check the packets are not to port 3.
 
 Test case: IP multicast
 =======================
 
 1. validate a rule::
 
-     testpmd> flow validate 0 ingress pattern eth / ipv4 dst spec 224.0.0.0 dst mask 240.0.0.0 / end actions vf id 1 / end
+     testpmd> flow validate 0 ingress pattern eth / ipv4 dst spec 224.0.0.0 dst mask 240.0.0.0 / end actions represented_port ethdev_port_id 1 / end
 
    get the message::
 
@@ -1575,7 +1577,7 @@ Test case: IP multicast
 
 2. create a rule::
 
-     testpmd> flow create 0 ingress pattern eth / ipv4 dst spec 224.0.0.0 dst mask 240.0.0.0 / end actions vf id 1 / end
+     testpmd> flow create 0 ingress pattern eth / ipv4 dst spec 224.0.0.0 dst mask 240.0.0.0 / end actions represented_port ethdev_port_id 1 / end
      testpmd> flow list 0
 
    check the rule exists in the list.
@@ -1584,12 +1586,12 @@ Test case: IP multicast
 
      sendp([Ether()/IP(dst="239.0.0.0")/TCP()/Raw("x"*80)], iface="enp27s0f0", count=1)
 
-   check port 1 receive the packets.
+   check port 3 receive the packets.
    send mismatched packets::
 
      sendp([Ether()/IP(dst="128.0.0.0")/TCP()/Raw("x"*80)], iface="enp27s0f0", count=1)
 
-   check the packets are not to port 1.
+   check the packets are not to port 3.
 
 4. verify rules can be destroyed::
 
@@ -1597,14 +1599,14 @@ Test case: IP multicast
      testpmd> flow list 0
 
    check the rule not exists in the list.
-   send matched packets, check the packets are not to port 1.
+   send matched packets, check the packets are not to port 3.
 
 Test case: L2 multicast
 =======================
 
 1. validate a rule::
 
-     testpmd> flow validate 0 ingress pattern eth dst spec 01:00:5e:00:00:00 dst mask ff:ff:ff:80:00:00 / end actions vf id 1 / end
+     testpmd> flow validate 0 ingress pattern eth dst spec 01:00:5e:00:00:00 dst mask ff:ff:ff:80:00:00 / end actions represented_port ethdev_port_id 1 / end
 
    get the message::
 
@@ -1618,7 +1620,7 @@ Test case: L2 multicast
 
 2. create a rule::
 
-     testpmd> flow create 0 ingress pattern eth dst spec 01:00:5e:00:00:00 dst mask ff:ff:ff:80:00:00 / end actions vf id 1 / end
+     testpmd> flow create 0 ingress pattern eth dst spec 01:00:5e:00:00:00 dst mask ff:ff:ff:80:00:00 / end actions represented_port ethdev_port_id 1 / end
      testpmd> flow list 0
 
    check the rule exists in the list.
@@ -1627,12 +1629,12 @@ Test case: L2 multicast
 
      sendp([Ether(dst="01:00:5e:7f:00:00")/IP()/TCP()/Raw("x"*80)], iface="enp27s0f0", count=1)
 
-   check port 1 receive the packets.
+   check port 3 receive the packets.
    send mismatched packets::
 
      sendp([Ether(dst="01:00:5e:ff:00:00")/IP()/TCP()/Raw("x"*80)], iface="enp27s0f0", count=1)
 
-   check the packets are not to port 1.
+   check the packets are not to port 3.
 
 4. verify rules can be destroyed::
 
@@ -1640,14 +1642,14 @@ Test case: L2 multicast
      testpmd> flow list 0
 
    check the rule not exists in the list.
-   send matched packets, check the packets are not to port 1.
+   send matched packets, check the packets are not to port 3.
 
 Test case: ethertype filter_PPPOD
 =================================
 
 1. validate a rule::
 
-     testpmd> flow validate 0 ingress pattern eth type is 0x8863 / end actions vf id 1 / end
+     testpmd> flow validate 0 ingress pattern eth type is 0x8863 / end actions represented_port ethdev_port_id 1 / end
 
    get the message::
 
@@ -1661,7 +1663,7 @@ Test case: ethertype filter_PPPOD
 
 2. create a rule::
 
-     testpmd> flow create 0 ingress pattern eth type is 0x8863 / end actions vf id 1 / end
+     testpmd> flow create 0 ingress pattern eth type is 0x8863 / end actions represented_port ethdev_port_id 1 / end
      testpmd> flow list 0
 
    check the rule exists in the list.
@@ -1670,12 +1672,12 @@ Test case: ethertype filter_PPPOD
 
      sendp([Ether(dst="00:11:22:33:44:55")/PPPoED()/PPP()/IP()/Raw("x" *80)],iface="enp27s0f0",count=1)
 
-   check port 1 receive the packets.
+   check port 3 receive the packets.
    send mismatched packets::
 
      sendp([Ether(dst="00:11:22:33:44:55")/PPPoE()/PPP()/IP()/Raw("x" *80)],iface="enp27s0f0",count=1)
 
-   check the packets are not to port 1.
+   check the packets are not to port 3.
 
 4. verify rules can be destroyed::
 
@@ -1683,14 +1685,14 @@ Test case: ethertype filter_PPPOD
      testpmd> flow list 0
 
    check the rule not exists in the list.
-   send matched packets, check the packets are not to port 1.
+   send matched packets, check the packets are not to port 3.
 
 Test case: ethertype filter_PPPOE
 =================================
 
 1. validate a rule::
 
-     testpmd> flow validate 0 ingress pattern eth type is 0x8864 / end actions vf id 1 / end
+     testpmd> flow validate 0 ingress pattern eth type is 0x8864 / end actions represented_port ethdev_port_id 1 / end
 
    get the message::
 
@@ -1704,7 +1706,7 @@ Test case: ethertype filter_PPPOE
 
 2. create a rule::
 
-     testpmd> flow create 0 ingress pattern eth type is 0x8864 / end actions vf id 1 / end
+     testpmd> flow create 0 ingress pattern eth type is 0x8864 / end actions represented_port ethdev_port_id 1 / end
      testpmd> flow list 0
 
    check the rule exists in the list.
@@ -1713,12 +1715,12 @@ Test case: ethertype filter_PPPOE
 
      sendp([Ether(dst="00:11:22:33:44:55")/PPPoE()/PPP()/IP()/Raw("x"*80)],iface="enp27s0f0",count=1)
 
-   check port 1 receive the packets.
+   check port 3 receive the packets.
    send mismatched packets::
 
      sendp([Ether(dst="00:11:22:33:44:55")/PPPoED()/PPP()/IP()/Raw("x"*80)],iface="enp27s0f0",count=1)
 
-   check the packets are not to port 1.
+   check the packets are not to port 3.
 
 4. verify rules can be destroyed::
 
@@ -1726,14 +1728,14 @@ Test case: ethertype filter_PPPOE
      testpmd> flow list 0
 
    check the rule not exists in the list.
-   send matched packets, check the packets are not to port 1.
+   send matched packets, check the packets are not to port 3.
 
 Test case: ethertype filter_IPV6
 =================================
 
 1. validate a rule::
 
-     testpmd> flow validate 0 ingress pattern eth type is 0x86dd / end actions vf id 1 / end
+     testpmd> flow validate 0 ingress pattern eth type is 0x86dd / end actions represented_port ethdev_port_id 1 / end
 
    get the message::
 
@@ -1747,7 +1749,7 @@ Test case: ethertype filter_IPV6
 
 2. create a rule::
 
-     testpmd> flow create 0 ingress pattern eth type is 0x86dd / end actions vf id 1 / end
+     testpmd> flow create 0 ingress pattern eth type is 0x86dd / end actions represented_port ethdev_port_id 1 / end
      testpmd> flow list 0
 
    check the rule exists in the list.
@@ -1757,12 +1759,12 @@ Test case: ethertype filter_IPV6
      sendp([Ether(dst="00:11:22:33:44:55")/IPv6(dst="CDCD:910A:2222:5498:8475:1111:3900:2020", tc=3)/TCP(dport=23)/("X"*480)], iface="enp27s0f0", count=1)
      sendp([Ether(dst="00:11:22:33:44:55",type=0x8100)/Dot1Q(vlan=1,type=0x86dd)/IPv6(dst="CDCD:910A:2222:5498:8475:1111:3900:2020", tc=3)/TCP(dport=23)/("X"*480)], iface="enp27s0f0", count=1)
 
-   check port 1 receive the packets.
+   check port 3 receive the packets.
    send mismatched packets::
 
      sendp([Ether(dst="00:11:22:33:44:55")/IP()/TCP(dport=23)/("X"*480)], iface="enp27s0f0", count=1)
 
-   check the packets are not to port 1.
+   check the packets are not to port 3.
 
 4. verify rules can be destroyed::
 
@@ -1770,7 +1772,7 @@ Test case: ethertype filter_IPV6
      testpmd> flow list 0
 
    check the rule not exists in the list.
-   send matched packets, check the packets are not to port 1.
+   send matched packets, check the packets are not to port 3.
 
 Test case: UDP port filter_DHCP discovery
 =========================================
@@ -1780,7 +1782,7 @@ Therefore, for DHCP discovery packets, the udp srcport is 68 and the dstport is
 
 1. validate a rule::
 
-     testpmd> flow validate 0 ingress pattern eth / ipv4 / udp src is 68 dst is 67 / end actions vf id 1 / end
+     testpmd> flow validate 0 ingress pattern eth / ipv4 / udp src is 68 dst is 67 / end actions represented_port ethdev_port_id 1 / end
 
    get the message::
 
@@ -1794,7 +1796,7 @@ Therefore, for DHCP discovery packets, the udp srcport is 68 and the dstport is
 
 2. create a rule::
 
-     testpmd> flow create 0 ingress pattern eth / ipv4 / udp src is 68 dst is 67 / end actions vf id 1 / end
+     testpmd> flow create 0 ingress pattern eth / ipv4 / udp src is 68 dst is 67 / end actions represented_port ethdev_port_id 1 / end
      testpmd> flow list 0
 
    check the rule exists in the list.
@@ -1803,13 +1805,13 @@ Therefore, for DHCP discovery packets, the udp srcport is 68 and the dstport is
 
      sendp([Ether(dst="00:11:22:33:44:55")/IP()/UDP(sport=68,dport=67)/BOOTP(chaddr="3c:fd:fe:b2:43:90")/DHCP(options=[("message-type","discover"),"end"])/Raw("X"*480)], iface="enp27s0f0", count=1)
 
-   check port 1 receive the packets.
+   check port 3 receive the packets.
    send mismatched packets::
 
      sendp([Ether(dst="00:11:22:33:44:55")/IP()/UDP(sport=63,dport=67)/BOOTP(chaddr="3c:fd:fe:b2:43:90")/DHCP(options=[("message-type","discover"),"end"])/Raw("X"*480)], iface="enp27s0f0", count=1)
      sendp([Ether(dst="00:11:22:33:44:55")/IP()/UDP(sport=68,dport=69)/BOOTP(chaddr="3c:fd:fe:b2:43:90")/DHCP(options=[("message-type","discover"),"end"])/Raw("X"*480)], iface="enp27s0f0", count=1)
 
-   check the packets are not to port 1.
+   check the packets are not to port 3.
 
 4. verify rules can be destroyed::
 
@@ -1817,7 +1819,7 @@ Therefore, for DHCP discovery packets, the udp srcport is 68 and the dstport is
      testpmd> flow list 0
 
    check the rule not exists in the list.
-   send matched packets, check the packets are not to port 1.
+   send matched packets, check the packets are not to port 3.
 
 Test case: UDP port filter_DHCP offer
 =====================================
@@ -1826,7 +1828,7 @@ Description: For DHCP offer packets, the udp srcport is 67 and the dstport is 68
 
 1. validate a rule::
 
-     testpmd> flow validate 0 ingress pattern eth / ipv4 / udp src is 67 dst is 68 / end actions vf id 1 / end
+     testpmd> flow validate 0 ingress pattern eth / ipv4 / udp src is 67 dst is 68 / end actions represented_port ethdev_port_id 1 / end
 
    get the message::
 
@@ -1840,7 +1842,7 @@ Description: For DHCP offer packets, the udp srcport is 67 and the dstport is 68
 
 2. create a rule::
 
-     testpmd> flow create 0 ingress pattern eth / ipv4 / udp src is 67 dst is 68 / end actions vf id 1 / end
+     testpmd> flow create 0 ingress pattern eth / ipv4 / udp src is 67 dst is 68 / end actions represented_port ethdev_port_id 1 / end
      testpmd> flow list 0
 
    check the rule exists in the list.
@@ -1849,13 +1851,13 @@ Description: For DHCP offer packets, the udp srcport is 67 and the dstport is 68
 
      sendp([Ether(dst="00:11:22:33:44:55")/IP()/UDP(sport=67,dport=68)/BOOTP(chaddr="3c:fd:fe:b2:43:90",yiaddr="192.168.1.0")/DHCP(options=[("message-type","offer"),"end"])/Raw("X"*480)], iface="enp27s0f0", count=1)
 
-   check port 1 receive the packets.
+   check port 3 receive the packets.
    send mismatched packets::
 
      sendp([Ether(dst="00:11:22:33:44:55")/IP()/UDP(sport=63,dport=68)/BOOTP(chaddr="3c:fd:fe:b2:43:90",yiaddr="192.168.1.0")/DHCP(options=[("message-type","offer"),"end"])/Raw("X"*480)], iface="enp27s0f0", count=1)
      sendp([Ether(dst="00:11:22:33:44:55")/IP()/UDP(sport=67,dport=63)/BOOTP(chaddr="3c:fd:fe:b2:43:90",yiaddr="192.168.1.0")/DHCP(options=[("message-type","offer"),"end"])/Raw("X"*480)], iface="enp27s0f0", count=1)
 
-   check the packets are not to port 1.
+   check the packets are not to port 3.
 
 4. verify rules can be destroyed::
 
@@ -1863,7 +1865,7 @@ Description: For DHCP offer packets, the udp srcport is 67 and the dstport is 68
      testpmd> flow list 0
 
    check the rule not exists in the list.
-   send matched packets, check the packets are not to port 1.
+   send matched packets, check the packets are not to port 3.
 
 Test case: UDP port filter_VXLAN
 ================================
@@ -1872,7 +1874,7 @@ Description: The UDP dst port number used by VXLAN is 4789.
 
 1. validate a rule::
 
-     testpmd> flow validate 0 ingress pattern eth / ipv4 / udp dst is 4789 / end actions vf id 1 / end
+     testpmd> flow validate 0 ingress pattern eth / ipv4 / udp dst is 4789 / end actions represented_port ethdev_port_id 1 / end
 
    get the message::
 
@@ -1886,7 +1888,7 @@ Description: The UDP dst port number used by VXLAN is 4789.
 
 2. create a rule::
 
-     testpmd> flow create 0 ingress pattern eth / ipv4 / udp dst is 4789 / end actions vf id 1 / end
+     testpmd> flow create 0 ingress pattern eth / ipv4 / udp dst is 4789 / end actions represented_port ethdev_port_id 1 / end
      testpmd> flow list 0
 
    check the rule exists in the list.
@@ -1895,12 +1897,12 @@ Description: The UDP dst port number used by VXLAN is 4789.
 
      sendp([Ether()/IP(dst="192.168.0.1")/UDP()/VXLAN(vni=2)/Ether()/IP(src="192.168.0.2", dst="192.168.0.3",frag=5)/TCP()/Raw("x"*80)],iface="enp27s0f0",count=1)
 
-   check port 1 receive the packets.
+   check port 3 receive the packets.
    send mismatched packets::
 
      sendp([Ether()/IP(dst="192.168.0.1")/NVGRE(TNI=2)/Ether()/IP(src="192.168.1.2", dst="192.168.1.3")/TCP()/Raw("x"*80)],iface="enp27s0f0",count=1)
 
-   check the packets are not to port 1.
+   check the packets are not to port 3.
 
 4. verify rules can be destroyed::
 
@@ -1908,14 +1910,14 @@ Description: The UDP dst port number used by VXLAN is 4789.
      testpmd> flow list 0
 
    check the rule not exists in the list.
-   send matched packets, check the packets are not to port 1.
+   send matched packets, check the packets are not to port 3.
 
 Test case: MAC_VLAN filter
 ==========================
 
 1. validate a rule::
 
-     testpmd> flow validate 0 ingress pattern eth dst is 00:11:22:33:44:55 / vlan tci is 1 / end actions vf id 1 / end
+     testpmd> flow validate 0 ingress pattern eth dst is 00:11:22:33:44:55 / vlan tci is 1 / end actions represented_port ethdev_port_id 1 / end
 
    get the message::
 
@@ -1929,7 +1931,7 @@ Test case: MAC_VLAN filter
 
 2. create a rule::
 
-     testpmd> flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / vlan tci is 1 / end actions vf id 1 / end
+     testpmd> flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / vlan tci is 1 / end actions represented_port ethdev_port_id 1 / end
      testpmd> flow list 0
 
    check the rule exists in the list.
@@ -1938,13 +1940,13 @@ Test case: MAC_VLAN filter
 
      sendp([Ether(dst="00:11:22:33:44:55",type=0x8100)/Dot1Q(vlan=1)/IP(src="192.168.0.1",dst="192.168.0.2",tos=4,ttl=2)/TCP()/Raw("X"*480)],iface="enp27s0f0",count=1)
 
-   check port 1 receive the packets.
+   check port 3 receive the packets.
    send mismatched packets::
 
      sendp([Ether(dst="00:11:22:33:44:54",type=0x8100)/Dot1Q(vlan=1)/IP(src="192.168.0.1",dst="192.168.0.2",tos=4,ttl=2)/TCP()/Raw("X"*480)],iface="enp27s0f0",count=1)
      sendp([Ether(dst="00:11:22:33:44:55",type=0x8100)/Dot1Q(vlan=2)/IP(src="192.168.0.1",dst="192.168.0.2",tos=4,ttl=2)/TCP()/Raw("X"*480)],iface="enp27s0f0",count=1)
 
-   check the packets are not to port 1.
+   check the packets are not to port 3.
 
 4. verify rules can be destroyed::
 
@@ -1952,14 +1954,14 @@ Test case: MAC_VLAN filter
      testpmd> flow list 0
 
    check the rule not exists in the list.
-   send matched packets, check the packets are not to port 1.
+   send matched packets, check the packets are not to port 3.
 
 Test case: VLAN filter
 ======================
 
 1. validate a rule::
 
-     testpmd> flow validate 0 ingress pattern eth / vlan tci is 1 / end actions vf id 1 / end
+     testpmd> flow validate 0 ingress pattern eth / vlan tci is 1 / end actions represented_port ethdev_port_id 1 / end
 
    get the message::
 
@@ -1973,7 +1975,7 @@ Test case: VLAN filter
 
 2. create a rule::
 
-     testpmd> flow create 0 ingress pattern eth / vlan tci is 1 / end actions vf id 1 / end
+     testpmd> flow create 0 ingress pattern eth / vlan tci is 1 / end actions represented_port ethdev_port_id 1 / end
      testpmd> flow list 0
 
    check the rule exists in the list.
@@ -1982,12 +1984,12 @@ Test case: VLAN filter
 
      sendp([Ether(dst="00:11:22:33:44:55",type=0x8100)/Dot1Q(vlan=1)/IP(src="192.168.0.1",dst="192.168.0.2",tos=4,ttl=2)/TCP()/Raw("X"*480)],iface="enp27s0f0",count=1)
 
-   check port 1 receive the packets.
+   check port 3 receive the packets.
    send mismatched packets::
 
      sendp([Ether(dst="00:11:22:33:44:55",type=0x8100)/Dot1Q(vlan=2)/IP(src="192.168.0.1",dst="192.168.0.2",tos=4,ttl=2)/TCP()/Raw("X"*480)],iface="enp27s0f0",count=1)
 
-   check the packets are not to port 1.
+   check the packets are not to port 3.
 
 4. verify rules can be destroyed::
 
@@ -1995,14 +1997,14 @@ Test case: VLAN filter
      testpmd> flow list 0
 
    check the rule not exists in the list.
-   send matched packets, check the packets are not to port 1.
+   send matched packets, check the packets are not to port 3.
 
 Test case: MAC_IPV4_L2TPv3
 ==========================
 
 1. validate a rule::
 
-     testpmd> flow validate 0 priority 0 ingress pattern eth / ipv4 src is 192.168.0.2 / l2tpv3oip session_id is 1 / end actions vf id 1 / end
+     testpmd> flow validate 0 priority 0 ingress pattern eth / ipv4 src is 192.168.0.2 / l2tpv3oip session_id is 1 / end actions represented_port ethdev_port_id 1 / end
 
    get the message::
 
@@ -2016,7 +2018,7 @@ Test case: MAC_IPV4_L2TPv3
 
 2. create a rule::
 
-     testpmd> flow create 0 priority 0 ingress pattern eth / ipv4 src is 192.168.0.2 / l2tpv3oip session_id is 1 / end actions vf id 1 / end
+     testpmd> flow create 0 priority 0 ingress pattern eth / ipv4 src is 192.168.0.2 / l2tpv3oip session_id is 1 / end actions represented_port ethdev_port_id 1 / end
      testpmd> flow list 0
 
    check the rule exists in the list.
@@ -2025,14 +2027,14 @@ Test case: MAC_IPV4_L2TPv3
 
      sendp([Ether(dst='00:11:22:33:44:12')/IP(src='192.168.0.2', proto=115)/L2TP('\x00\x00\x00\x01')/('X'*480)], iface="enp27s0f0", count=1)
 
-   check port 1 receive the packet.
+   check port 3 receive the packet.
    send mismatched packets::
 
      sendp([Ether(dst='00:11:22:33:44:12')/IP(src='192.168.0.2', proto=115)/L2TP('\x00\x00\x00\x02')/('X'*480)], iface="enp27s0f0", count=1)
      sendp([Ether(dst='00:11:22:33:44:12')/IP(src='192.168.1.2', proto=115)/L2TP('\x00\x00\x00\x01')/('X'*480)], iface="enp27s0f0", count=1)
      sendp([Ether(dst='00:11:22:33:44:12')/IP(dst='192.168.0.2', proto=115)/L2TP('\x00\x00\x00\x01')/('X'*480)], iface="enp27s0f0", count=1)
 
-   check the packets are not to port 1.
+   check the packets are not to port 3.
 
 4. verify rules can be destroyed::
 
@@ -2040,14 +2042,14 @@ Test case: MAC_IPV4_L2TPv3
      testpmd> flow list 0
 
    check the rule not exists in the list.
-   send matched packets, check the packets are not to port 1.
+   send matched packets, check the packets are not to port 3.
 
 Test case: MAC_IPV6_L2TPv3
 ==========================
 
 1. validate a rule::
 
-     testpmd> flow validate 0 priority 0 ingress pattern eth / ipv6 dst is 1111:2222:3333:4444:5555:6666:7777:8888 / l2tpv3oip session_id is 1 / end actions vf id 1 / end
+     testpmd> flow validate 0 priority 0 ingress pattern eth / ipv6 dst is 1111:2222:3333:4444:5555:6666:7777:8888 / l2tpv3oip session_id is 1 / end actions represented_port ethdev_port_id 1 / end
 
    get the message::
 
@@ -2061,7 +2063,7 @@ Test case: MAC_IPV6_L2TPv3
 
 2. create a rule::
 
-     testpmd> flow create 0 priority 0 ingress pattern eth / ipv6 dst is 1111:2222:3333:4444:5555:6666:7777:8888 / l2tpv3oip session_id is 1 / end actions vf id 1 / end
+     testpmd> flow create 0 priority 0 ingress pattern eth / ipv6 dst is 1111:2222:3333:4444:5555:6666:7777:8888 / l2tpv3oip session_id is 1 / end actions represented_port ethdev_port_id 1 / end
      testpmd> flow list 0
 
    check the rule exists in the list.
@@ -2070,14 +2072,14 @@ Test case: MAC_IPV6_L2TPv3
 
      sendp([Ether(dst='00:11:22:33:44:13')/IPv6(dst='1111:2222:3333:4444:5555:6666:7777:8888', nh=115)/L2TP('\x00\x00\x00\x01')/('X'*480)], iface="enp27s0f0", count=1)
 
-   check port 1 receive the packet.
+   check port 3 receive the packet.
    send mismatched packets::
 
      sendp([Ether(dst='00:11:22:33:44:13')/IPv6(dst='1111:2222:3333:4444:5555:6666:7777:8888', nh=115)/L2TP('\x00\x00\x00\x02')/('X'*480)], iface="enp27s0f0", count=1)
      sendp([Ether(dst='00:11:22:33:44:13')/IPv6(dst='1111:2222:3333:4444:5555:6666:7777:9999', nh=115)/L2TP('\x00\x00\x00\x01')/('X'*480)], iface="enp27s0f0", count=1)
      sendp([Ether(dst='00:11:22:33:44:13')/IPv6(src='1111:2222:3333:4444:5555:6666:7777:8888', nh=115)/L2TP('\x00\x00\x00\x01')/('X'*480)], iface="enp27s0f0", count=1)
 
-   check the packets are not to port 1.
+   check the packets are not to port 3.
 
 4. verify rules can be destroyed::
 
@@ -2085,14 +2087,14 @@ Test case: MAC_IPV6_L2TPv3
      testpmd> flow list 0
 
    check the rule not exists in the list.
-   send matched packets, check the packets are not to port 1.
+   send matched packets, check the packets are not to port 3.
 
 Test case: MAC_IPV4_ESP
 =======================
 
 1. validate a rule::
 
-     testpmd> flow validate 0 priority 0 ingress pattern eth / ipv4 src is 192.168.0.2 / esp spi is 1 / end actions vf id 1 / end
+     testpmd> flow validate 0 priority 0 ingress pattern eth / ipv4 src is 192.168.0.2 / esp spi is 1 / end actions represented_port ethdev_port_id 1 / end
 
    get the message::
 
@@ -2106,7 +2108,7 @@ Test case: MAC_IPV4_ESP
 
 2. create a rule::
 
-     testpmd> flow create 0 priority 0 ingress pattern eth / ipv4 src is 192.168.0.2 / esp spi is 1 / end actions vf id 1 / end
+     testpmd> flow create 0 priority 0 ingress pattern eth / ipv4 src is 192.168.0.2 / esp spi is 1 / end actions represented_port ethdev_port_id 1 / end
      testpmd> flow list 0
 
    check the rule exists in the list.
@@ -2115,14 +2117,14 @@ Test case: MAC_IPV4_ESP
 
      sendp([Ether(dst="00:11:22:33:44:13")/IP(src="192.168.0.2", proto=50)/ESP(spi=1)/("X"*480)], iface="enp27s0f0", count=1)
 
-   check port 1 receive the packet.
+   check port 3 receive the packet.
    send mismatched packets::
 
      sendp([Ether(dst="00:11:22:33:44:13")/IP(src="192.168.0.2", proto=50)/ESP(spi=2)/("X"*480)], iface="enp27s0f0", count=1)
      sendp([Ether(dst="00:11:22:33:44:13")/IP(src="192.168.1.2", proto=50)/ESP(spi=1)/("X"*480)], iface="enp27s0f0", count=1)
      sendp([Ether(dst="00:11:22:33:44:13")/IP(dst="192.168.0.2", proto=50)/ESP(spi=1)/("X"*480)], iface="enp27s0f0", count=1)
 
-   check the packets are not to port 1.
+   check the packets are not to port 3.
 
 4. verify rules can be destroyed::
 
@@ -2130,14 +2132,14 @@ Test case: MAC_IPV4_ESP
      testpmd> flow list 0
 
    check the rule not exists in the list.
-   send matched packets, check the packets are not to port 1.
+   send matched packets, check the packets are not to port 3.
 
 Test case: MAC_IPV6_ESP
 =======================
 
 1. validate a rule::
 
-     testpmd> flow validate 0 priority 0 ingress pattern eth / ipv6 dst is 1111:2222:3333:4444:5555:6666:7777:8888 / esp spi is 1 / end actions vf id 1 / end
+     testpmd> flow validate 0 priority 0 ingress pattern eth / ipv6 dst is 1111:2222:3333:4444:5555:6666:7777:8888 / esp spi is 1 / end actions represented_port ethdev_port_id 1 / end
 
    get the message::
 
@@ -2151,7 +2153,7 @@ Test case: MAC_IPV6_ESP
 
 2. create a rule::
 
-     testpmd> flow create 0 priority 0 ingress pattern eth / ipv6 dst is 1111:2222:3333:4444:5555:6666:7777:8888 / esp spi is 1 / end actions vf id 1 / end
+     testpmd> flow create 0 priority 0 ingress pattern eth / ipv6 dst is 1111:2222:3333:4444:5555:6666:7777:8888 / esp spi is 1 / end actions represented_port ethdev_port_id 1 / end
      testpmd> flow list 0
 
    check the rule exists in the list.
@@ -2160,14 +2162,14 @@ Test case: MAC_IPV6_ESP
 
      sendp([Ether(dst="00:11:22:33:44:13")/IPv6(dst="1111:2222:3333:4444:5555:6666:7777:8888", nh=50)/ESP(spi=1)/("X"*480)], iface="enp27s0f0", count=1)
 
-   check port 1 receive the packet.
+   check port 3 receive the packet.
    send mismatched packets::
 
      sendp([Ether(dst="00:11:22:33:44:13")/IPv6(dst="1111:2222:3333:4444:5555:6666:7777:8888", nh=50)/ESP(spi=2)/("X"*480)], iface="enp27s0f0", count=1)
      sendp([Ether(dst="00:11:22:33:44:13")/IPv6(dst="1111:2222:3333:4444:5555:6666:7777:9999", nh=50)/ESP(spi=1)/("X"*480)], iface="enp27s0f0", count=1)
      sendp([Ether(dst="00:11:22:33:44:13")/IPv6(src="1111:2222:3333:4444:5555:6666:7777:8888", nh=50)/ESP(spi=1)/("X"*480)], iface="enp27s0f0", count=1)
 
-   check the packets are not to port 1.
+   check the packets are not to port 3.
 
 4. verify rules can be destroyed::
 
@@ -2175,14 +2177,14 @@ Test case: MAC_IPV6_ESP
      testpmd> flow list 0
 
    check the rule not exists in the list.
-   send matched packets, check the packets are not to port 1.
+   send matched packets, check the packets are not to port 3.
 
 Test case: MAC_IPV4_AH
 ======================
 
 1. validate a rule::
 
-     testpmd> flow validate 0 priority 0 ingress pattern eth / ipv4 src is 192.168.0.2 / ah spi is 1 / end actions vf id 1 / end
+     testpmd> flow validate 0 priority 0 ingress pattern eth / ipv4 src is 192.168.0.2 / ah spi is 1 / end actions represented_port ethdev_port_id 1 / end
 
    get the message::
 
@@ -2196,7 +2198,7 @@ Test case: MAC_IPV4_AH
 
 2. create a rule::
 
-     testpmd> flow create 0 priority 0 ingress pattern eth / ipv4 src is 192.168.0.2 / ah spi is 1 / end actions vf id 1 / end
+     testpmd> flow create 0 priority 0 ingress pattern eth / ipv4 src is 192.168.0.2 / ah spi is 1 / end actions represented_port ethdev_port_id 1 / end
      testpmd> flow list 0
 
    check the rule exists in the list.
@@ -2205,14 +2207,14 @@ Test case: MAC_IPV4_AH
 
      sendp([Ether(dst="00:11:22:33:44:13")/IP(src="192.168.0.2", proto=51)/AH(spi=1)/("X"*480)], iface="enp27s0f0", count=1)
 
-   check port 1 receive the packet.
+   check port 3 receive the packet.
    send mismatched packets::
 
      sendp([Ether(dst="00:11:22:33:44:13")/IP(src="192.168.0.2", proto=51)/AH(spi=2)/("X"*480)], iface="enp27s0f0", count=1)
      sendp([Ether(dst="00:11:22:33:44:13")/IP(src="192.168.1.2", proto=51)/AH(spi=1)/("X"*480)], iface="enp27s0f0", count=1)
      sendp([Ether(dst="00:11:22:33:44:13")/IP(dst="192.168.0.2", proto=51)/AH(spi=1)/("X"*480)], iface="enp27s0f0", count=1)
 
-   check the packets are not to port 1.
+   check the packets are not to port 3.
 
 4. verify rules can be destroyed::
 
@@ -2220,14 +2222,14 @@ Test case: MAC_IPV4_AH
      testpmd> flow list 0
 
    check the rule not exists in the list.
-   send matched packets, check the packets are not to port 1.
+   send matched packets, check the packets are not to port 3.
 
 Test case: MAC_IPV6_AH
 ======================
 
 1. validate a rule::
 
-     testpmd> flow validate 0 priority 0 ingress pattern eth / ipv6 dst is 1111:2222:3333:4444:5555:6666:7777:8888 / ah spi is 1 / end actions vf id 1 / end
+     testpmd> flow validate 0 priority 0 ingress pattern eth / ipv6 dst is 1111:2222:3333:4444:5555:6666:7777:8888 / ah spi is 1 / end actions represented_port ethdev_port_id 1 / end
 
    get the message::
 
@@ -2241,7 +2243,7 @@ Test case: MAC_IPV6_AH
 
 2. create a rule::
 
-     testpmd> flow create 0 priority 0 ingress pattern eth / ipv6 dst is 1111:2222:3333:4444:5555:6666:7777:8888 / ah spi is 1 / end actions vf id 1 / end
+     testpmd> flow create 0 priority 0 ingress pattern eth / ipv6 dst is 1111:2222:3333:4444:5555:6666:7777:8888 / ah spi is 1 / end actions represented_port ethdev_port_id 1 / end
      testpmd> flow list 0
 
    check the rule exists in the list.
@@ -2250,14 +2252,14 @@ Test case: MAC_IPV6_AH
 
      sendp([Ether(dst="00:11:22:33:44:13")/IPv6(dst="1111:2222:3333:4444:5555:6666:7777:8888", nh=51)/AH(spi=1)/("X"*480)], iface="enp27s0f0", count=1)
 
-   check port 1 receive the packet.
+   check port 3 receive the packet.
    send mismatched packets::
 
      sendp([Ether(dst="00:11:22:33:44:13")/IPv6(dst="1111:2222:3333:4444:5555:6666:7777:8888", nh=51)/AH(spi=2)/("X"*480)], iface="enp27s0f0", count=1)
      sendp([Ether(dst="00:11:22:33:44:13")/IPv6(dst="1111:2222:3333:4444:5555:6666:7777:9999", nh=51)/AH(spi=1)/("X"*480)], iface="enp27s0f0", count=1)
      sendp([Ether(dst="00:11:22:33:44:13")/IPv6(src="1111:2222:3333:4444:5555:6666:7777:8888", nh=51)/AH(spi=1)/("X"*480)], iface="enp27s0f0", count=1)
 
-   check the packets are not to port 1.
+   check the packets are not to port 3.
 
 4. verify rules can be destroyed::
 
@@ -2265,14 +2267,14 @@ Test case: MAC_IPV6_AH
      testpmd> flow list 0
 
    check the rule not exists in the list.
-   send matched packets, check the packets are not to port 1.
+   send matched packets, check the packets are not to port 3.
 
 Test case: MAC_IPV4_NAT-T-ESP
 =============================
 
 1. validate a rule::
 
-     testpmd> flow validate 0 priority 0 ingress pattern eth / ipv4 src is 192.168.0.2 / udp / esp spi is 1 / end actions vf id 1 / end
+     testpmd> flow validate 0 priority 0 ingress pattern eth / ipv4 src is 192.168.0.2 / udp / esp spi is 1 / end actions represented_port ethdev_port_id 1 / end
 
    get the message::
 
@@ -2286,7 +2288,7 @@ Test case: MAC_IPV4_NAT-T-ESP
 
 2. create a rule::
 
-     testpmd> flow create 0 priority 0 ingress pattern eth / ipv4 src is 192.168.0.2 / udp / esp spi is 1 / end actions vf id 1 / end
+     testpmd> flow create 0 priority 0 ingress pattern eth / ipv4 src is 192.168.0.2 / udp / esp spi is 1 / end actions represented_port ethdev_port_id 1 / end
      testpmd> flow list 0
 
    check the rule exists in the list.
@@ -2295,14 +2297,14 @@ Test case: MAC_IPV4_NAT-T-ESP
 
      sendp([Ether(dst="00:11:22:33:44:13")/IP(src="192.168.0.2")/UDP(dport=4500)/ESP(spi=1)/("X"*480)], iface="enp27s0f0", count=1)
 
-   check port 1 receive the packet.
+   check port 3 receive the packet.
    send mismatched packets::
 
      sendp([Ether(dst="00:11:22:33:44:13")/IP(src="192.168.0.2")/UDP(dport=4500)/ESP(spi=2)/("X"*480)], iface="enp27s0f0", count=1)
      sendp([Ether(dst="00:11:22:33:44:13")/IP(src="192.168.1.2")/UDP(dport=4500)/ESP(spi=1)/("X"*480)], iface="enp27s0f0", count=1)
      sendp([Ether(dst="00:11:22:33:44:13")/IP(dst="192.168.0.2")/UDP(dport=4500)/ESP(spi=1)/("X"*480)], iface="enp27s0f0", count=1)
 
-   check the packets are not to port 1.
+   check the packets are not to port 3.
 
 4. verify rules can be destroyed::
 
@@ -2310,14 +2312,14 @@ Test case: MAC_IPV4_NAT-T-ESP
      testpmd> flow list 0
 
    check the rule not exists in the list.
-   send matched packets, check the packets are not to port 1.
+   send matched packets, check the packets are not to port 3.
 
 Test case: MAC_IPV6_NAT-T-ESP
 =============================
 
 1. validate a rule::
 
-     testpmd> flow validate 0 priority 0 ingress pattern eth / ipv6 dst is 1111:2222:3333:4444:5555:6666:7777:8888 / udp / esp spi is 1 / end actions vf id 1 / end
+     testpmd> flow validate 0 priority 0 ingress pattern eth / ipv6 dst is 1111:2222:3333:4444:5555:6666:7777:8888 / udp / esp spi is 1 / end actions represented_port ethdev_port_id 1 / end
 
    get the message::
 
@@ -2331,7 +2333,7 @@ Test case: MAC_IPV6_NAT-T-ESP
 
 2. create a rule::
 
-     testpmd> flow create 0 priority 0 ingress pattern eth / ipv6 dst is 1111:2222:3333:4444:5555:6666:7777:8888 / udp / esp spi is 1 / end actions vf id 1 / end
+     testpmd> flow create 0 priority 0 ingress pattern eth / ipv6 dst is 1111:2222:3333:4444:5555:6666:7777:8888 / udp / esp spi is 1 / end actions represented_port ethdev_port_id 1 / end
      testpmd> flow list 0
 
    check the rule exists in the list.
@@ -2340,14 +2342,14 @@ Test case: MAC_IPV6_NAT-T-ESP
 
      sendp([Ether(dst="00:11:22:33:44:13")/IPv6(dst="1111:2222:3333:4444:5555:6666:7777:8888")/UDP(dport=4500)/ESP(spi=1)/("X"*480)], iface="enp27s0f0", count=1)
 
-   check port 1 receive the packet.
+   check port 3 receive the packet.
    send mismatched packets::
 
      sendp([Ether(dst="00:11:22:33:44:13")/IPv6(dst="1111:2222:3333:4444:5555:6666:7777:8888")/UDP(dport=4500)/ESP(spi=2)/("X"*480)], iface="enp27s0f0", count=1)
      sendp([Ether(dst="00:11:22:33:44:13")/IPv6(dst="1111:2222:3333:4444:5555:6666:7777:9999")/UDP(dport=4500)/ESP(spi=1)/("X"*480)], iface="enp27s0f0", count=1)
      sendp([Ether(dst="00:11:22:33:44:13")/IPv6(src="1111:2222:3333:4444:5555:6666:7777:8888")/UDP(dport=4500)/ESP(spi=1)/("X"*480)], iface="enp27s0f0", count=1)
 
-   check the packets are not to port 1.
+   check the packets are not to port 3.
 
 4. verify rules can be destroyed::
 
@@ -2355,7 +2357,7 @@ Test case: MAC_IPV6_NAT-T-ESP
      testpmd> flow list 0
 
    check the rule not exists in the list.
-   send matched packets, check the packets are not to port 1.
+   send matched packets, check the packets are not to port 3.
 
 Test Case: multirules test
 ==========================
@@ -2363,18 +2365,18 @@ Test Case: multirules test
 Subcase 1: add existing rules but with different vfs
 ----------------------------------------------------
 
-1. Launch dpdk on VF0, VF1 and VF2, and VF0 request DCF mode::
+1. Launch dpdk on VF0, VF1 and VF2, and VF0 request DCF mode, representing VF1, VF2::
 
-     ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -c 0xf -n 4 -a 0000:18:01.0,cap=dcf -a 0000:18:01.1 -a 0000:18:01.2 -- -i
-     testpmd> set portlist 1,2
+     ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -c 0xf -n 4 -a 0000:18:01.0,cap=dcf,representor=[1,2] -a 0000:18:01.1 -a 0000:18:01.2 -- -i
+     testpmd> set portlist 3,4
      testpmd> set fwd rxonly
      testpmd> set verbose 1
      testpmd> start
 
 2. create rules with same pattern items but to different vfs::
 
-     testpmd> flow create 0 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.1 dst is 192.168.0.2 tos is 4 ttl is 3 / udp src is 25 dst is 23 / end actions vf id 1 / end
-     testpmd> flow create 0 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.1 dst is 192.168.0.2 tos is 4 ttl is 3 / udp src is 25 dst is 23 / end actions vf id 2 / end
+     testpmd> flow create 0 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.1 dst is 192.168.0.2 tos is 4 ttl is 3 / udp src is 25 dst is 23 / end actions represented_port ethdev_port_id 1 / end
+     testpmd> flow create 0 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.1 dst is 192.168.0.2 tos is 4 ttl is 3 / udp src is 25 dst is 23 / end actions represented_port ethdev_port_id 2 / end
      testpmd> flow list 0
 
    check both rules exist in the list.
@@ -2383,7 +2385,7 @@ Subcase 1: add existing rules but with different vfs
 
      sendp([Ether(dst="68:05:ca:8d:ed:a8")/IP(src="192.168.0.1",dst="192.168.0.2",tos=4,ttl=3)/UDP(sport=25,dport=23)/("X"*480)], iface="ens786f0", count=1)
 
-   check both port 1 and 2 receive the packet.
+   check both port 3 and 4 receive the packet.
 
 4. destroy the rule 0, and send the matched packets::
 
@@ -2391,7 +2393,7 @@ Subcase 1: add existing rules but with different vfs
      testpmd> flow list 0
 
    check only rule 1 exists in the list.
-   send the same matched packets, check only port 2 receives the packets.
+   send the same matched packets, check only port 4 receives the packets.
 
 5. destroy rule 1, send the matched packets::
 
@@ -2399,15 +2401,15 @@ Subcase 1: add existing rules but with different vfs
      testpmd> flow list 0
 
    check no rule exists in the list
-   send the same matched packets, check the packets are not to port 1 and 2.
+   send the same matched packets, check the packets are not to port 3 and 4.
 
 Subcase 2: add existing rules with the same vfs
 -----------------------------------------------
 
 1. create two indentical rules::
 
-     testpmd> flow create 0 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.1 dst is 192.168.0.2 tos is 4 ttl is 3 / udp src is 25 dst is 23 / end actions vf id 1 / end
-     testpmd> flow create 0 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.1 dst is 192.168.0.2 tos is 4 ttl is 3 / udp src is 25 dst is 23 / end actions vf id 1 / end
+     testpmd> flow create 0 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.1 dst is 192.168.0.2 tos is 4 ttl is 3 / udp src is 25 dst is 23 / end actions represented_port ethdev_port_id 1 / end
+     testpmd> flow create 0 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.1 dst is 192.168.0.2 tos is 4 ttl is 3 / udp src is 25 dst is 23 / end actions represented_port ethdev_port_id 1 / end
 
 2. check the first rule is created successfully, and
    the second one can not be created successfully,
@@ -2425,18 +2427,18 @@ Subcase 2: add existing rules with the same vfs
 Subcase 3: add two rules with one rule's input set included in the other
 -------------------------------------------------------------------------
 
-1. Launch dpdk on VF0, VF1 and VF2, and VF0 request DCF mode::
+1. Launch dpdk on VF0, VF1 and VF2, and VF0 request DCF mode, representing VF1 and VF2::
 
-     ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -c 0xf -n 4 -a 0000:18:01.0,cap=dcf -a 0000:18:01.1 -a 0000:18:01.2 -- -i
-     testpmd> set portlist 1,2
+     ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -c 0xf -n 4 -a 0000:18:01.0,cap=dcf,representor=[1,2] -a 0000:18:01.1 -a 0000:18:01.2 -- -i
+     testpmd> set portlist 3,4
      testpmd> set fwd rxonly
      testpmd> set verbose 1
      testpmd> start
 
 2. create rules with one rule's input set included in the other::
 
-     testpmd> flow create 0 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.1 / end actions vf id 1 / end
-     testpmd> flow create 0 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.1 dst is 192.168.0.2 / end actions vf id 2 / end
+     testpmd> flow create 0 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.1 / end actions represented_port ethdev_port_id 1 / end
+     testpmd> flow create 0 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.1 dst is 192.168.0.2 / end actions represented_port ethdev_port_id 2 / end
      testpmd> flow list 0
 
    check both rules exist in the list.
@@ -2445,12 +2447,12 @@ Subcase 3: add two rules with one rule's input set included in the other
 
      sendp([Ether(dst="68:05:ca:8d:ed:a8")/IP(src="192.168.0.1",dst="192.168.0.2")/("X"*480)], iface="ens786f0", count=1)
 
-   check both port 1 and 2 receive the packet.
+   check both port 3 and 4 receive the packet.
    send a packet that only matches the rule 0 but not rule 1::
 
      sendp([Ether(dst="68:05:ca:8d:ed:a8")/IP(src="192.168.0.1",dst="192.168.0.3")/("X"*480)], iface="ens786f0", count=1)
 
-   check only port 1 receives the packet.
+   check only port 3 receives the packet.
 
 4. destroy the rule 0, and send the packet p0::
 
@@ -2458,7 +2460,7 @@ Subcase 3: add two rules with one rule's input set included in the other
      testpmd> flow list 0
 
    check only rule 1 exists in the list.
-   send the matched packet p0, check only port 2 receives the packet.
+   send the matched packet p0, check only port 4 receives the packet.
 
 5. destroy rule 1, send the packet p0::
 
@@ -2466,16 +2468,16 @@ Subcase 3: add two rules with one rule's input set included in the other
      testpmd> flow list 0
 
    check no rule exists in the list.
-   send the matched packet p0, check the packet are not to port 1 and 2.
+   send the matched packet p0, check the packet are not to port 3 and 4.
 
 Subcase 4: different input set, same vf id
 ------------------------------------------
 
 1. DUT create switch filter rules for MAC_IPV4_PFCP_SESSION and MAC_IPV4_PFCP_NODE to VF1::
 
-    testpmd> flow create 0 ingress pattern eth / ipv4 / udp / pfcp s_field is 0 / end actions vf id 1 / end
+    testpmd> flow create 0 ingress pattern eth / ipv4 / udp / pfcp s_field is 0 / end actions represented_port ethdev_port_id 1 / end
     Flow rule #0 created
-    testpmd> flow create 0 ingress pattern eth / ipv4 / udp / pfcp s_field is 1 / end actions vf id 1 / end
+    testpmd> flow create 0 ingress pattern eth / ipv4 / udp / pfcp s_field is 1 / end actions represented_port ethdev_port_id 1 / end
     Flow rule #1 created
 
    check the rule exists in the list.
@@ -2490,13 +2492,13 @@ Subcase 4: different input set, same vf id
     sendp(Ether(dst="00:11:22:33:44:11")/IP()/UDP(dport=8805)/PFCP(Sfield=0),iface="enp134s0f1")
     sendp(Ether(dst="00:11:22:33:44:11")/IP()/UDP(dport=8805)/PFCP(Sfield=1),iface="enp134s0f1")
 
-   check port 1 receive the two packets.
+   check port 3 receive the two packets.
    send mismatched packets::
 
     sendp(Ether(dst="00:11:22:33:44:11")/IPv6()/UDP(dport=8805)/PFCP(Sfield=1),iface="enp134s0f1")
     sendp(Ether(dst="00:11:22:33:44:11")/IPv6()/UDP(dport=8805)/PFCP(Sfield=0),iface="enp134s0f1")
 
-   check the packets are not to port 1.
+   check the packets are not to port 3.
 
 3. verify rules can be destroyed::
 
@@ -2504,16 +2506,16 @@ Subcase 4: different input set, same vf id
      testpmd> flow list 0
 
    check the rule not exists in the list.
-   send matched packets, check the packets are not to port 1.
+   send matched packets, check the packets are not to port 3.
 
 Subcase 5: different input set, different vf id
 -----------------------------------------------
 
 1. DUT create switch filter rules for MAC_IPV4_PFCP_SESSION and MAC_IPV4_PFCP_NODE to VF1::
 
-    testpmd> flow create 0 ingress pattern eth / ipv4 / udp / pfcp s_field is 0 / end actions vf id 1 / end
+    testpmd> flow create 0 ingress pattern eth / ipv4 / udp / pfcp s_field is 0 / end actions represented_port ethdev_port_id 1 / end
     Flow rule #0 created
-    testpmd> flow create 0 ingress pattern eth / ipv4 / udp / pfcp s_field is 1 / end actions vf id 2 / end
+    testpmd> flow create 0 ingress pattern eth / ipv4 / udp / pfcp s_field is 1 / end actions represented_port ethdev_port_id 2 / end
     Flow rule #1 created
 
    check the rule exists in the list.
@@ -2528,13 +2530,13 @@ Subcase 5: different input set, different vf id
     sendp(Ether(dst="00:11:22:33:44:11")/IP()/UDP(dport=8805)/PFCP(Sfield=0),iface="enp134s0f1")
     sendp(Ether(dst="00:11:22:33:44:11")/IP()/UDP(dport=8805)/PFCP(Sfield=1),iface="enp134s0f1")
 
-   check port 1 receive the first packet, port 2 receive the second packet.
+   check port 3 receive the first packet, port 4 receive the second packet.
    send mismatched packets::
 
     sendp(Ether(dst="00:11:22:33:44:11")/IPv6()/UDP(dport=8805)/PFCP(Sfield=1),iface="enp134s0f1")
     sendp(Ether(dst="00:11:22:33:44:11")/IPv6()/UDP(dport=8805)/PFCP(Sfield=0),iface="enp134s0f1")
 
-   check the packets are not to port 1 or port 2.
+   check the packets are not to port 3 or port 4.
 
 3. verify rules can be destroyed::
 
@@ -2542,7 +2544,7 @@ Subcase 5: different input set, different vf id
      testpmd> flow list 0
 
    check the rule not exists in the list.
-   send matched packets, check the packets are not to port 1 or port 2.
+   send matched packets, check the packets are not to port 3 or port 4.
 
 Test case: test forwarding with single vf
 =========================================
@@ -2556,7 +2558,7 @@ received and forwarded when there is one vf for forwarding, and no packets are d
 
 2. create a rule with input set [Source IP], [Dest IP]::
 
-     testpmd> flow create 0 ingress pattern eth / ipv4 src is 192.168.0.1 dst is 192.168.0.2 / end actions vf id 1 / end
+     testpmd> flow create 0 ingress pattern eth / ipv4 src is 192.168.0.1 dst is 192.168.0.2 / end actions represented_port ethdev_port_id 1 / end
      testpmd> flow list 0
 
    check the rule exists in the list
@@ -2565,10 +2567,10 @@ received and forwarded when there is one vf for forwarding, and no packets are d
 
      sendp([Ether(dst="68:05:ca:8d:ed:a8")/IP(src="192.168.0.1",dst="192.168.0.2")/("X"*480)], iface="ens786f0", count=1)
 
-4. check port 1 receives the packet and forward it, and no packets are dropped::
+4. check port 3 receives the packet and forward it, and no packets are dropped::
 
      testpmd> stop
-     ---------------------- Forward statistics for port 1  ----------------------
+     ---------------------- Forward statistics for port 3  ----------------------
      RX-packets: 1              RX-dropped: 0             RX-total: 1
      TX-packets: 1              TX-dropped: 0             TX-total: 1
      ----------------------------------------------------------------------------
@@ -2578,7 +2580,7 @@ received and forwarded when there is one vf for forwarding, and no packets are d
      TX-packets: 1              TX-dropped: 0             TX-total: 1
      ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 
-   check the RX-packets and TX-packets of port 1 are both 1, and the TX-dropped in
+   check the RX-packets and TX-packets of port 3 are both 1, and the TX-dropped in
    "Accumulated forward statistics for all ports" is 0.
 
 Test case: test forwarding with multi vfs
@@ -2588,17 +2590,17 @@ Description: This case is used to test the packets that match switch filter rule
 can be received and forwarded when there are multi vfs for forwarding, and no packets
 are dropped.
 
-1. Launch dpdk on VF0, VF1 and VF2, and VF0 request DCF mode::
+1. Launch dpdk on VF0, VF1 and VF2, and VF0 request DCF mode, representing VF1 and VF2::
 
-     ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -c 0xf -n 4 -a 0000:18:01.0,cap=dcf -a 0000:18:01.1 -a 0000:18:01.2 -- -i
-     testpmd> set portlist 1,2
+     ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -c 0xf -n 4 -a 0000:18:01.0,cap=dcf,representor=[1,2] -a 0000:18:01.1 -a 0000:18:01.2 -- -i
+     testpmd> set portlist 3,4
      testpmd> set fwd mac
      testpmd> set verbose 1
      testpmd> start
 
 2. create a rule with input set [Source IP], [Dest IP]::
 
-     testpmd> flow create 0 ingress pattern eth / ipv4 src is 192.168.0.1 dst is 192.168.0.2 / end actions vf id 1 / end
+     testpmd> flow create 0 ingress pattern eth / ipv4 src is 192.168.0.1 dst is 192.168.0.2 / end actions represented_port ethdev_port_id 1 / end
      testpmd> flow list 0
 
    check the rule exists in the list
@@ -2607,15 +2609,15 @@ are dropped.
 
      sendp([Ether(dst="68:05:ca:8d:ed:a8")/IP(src="192.168.0.1",dst="192.168.0.2")/("X"*480)], iface="ens786f0", count=1)
 
-4. check port 1 receives the packet, and forward it to port 2, and no packets are dropped::
+4. check port 3 receives the packet, and forward it to port 4, and no packets are dropped::
 
      testpmd> stop
-     ---------------------- Forward statistics for port 1  ----------------------
+     ---------------------- Forward statistics for port 3  ----------------------
      RX-packets: 1         RX-dropped: 0             RX-total: 1
      TX-packets: 0         TX-dropped: 0             TX-total: 0
      ----------------------------------------------------------------------------
 
-     ---------------------- Forward statistics for port 2  ----------------------
+     ---------------------- Forward statistics for port 4  ----------------------
      RX-packets: 0              RX-dropped: 0             RX-total: 0
      TX-packets: 1              TX-dropped: 0             TX-total: 1
      ----------------------------------------------------------------------------
@@ -2626,7 +2628,7 @@ are dropped.
      ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 
 
-   check the RX-packets of port 1 is 1, the TX-packets of port 2 is 1, and the TX-dropped in
+   check the RX-packets of port 3 is 1, the TX-packets of port 4 is 1, and the TX-dropped in
    "Accumulated forward statistics for all ports" is 0.
 
 Test case: Max vfs
@@ -2659,17 +2661,19 @@ This case is designed based on 4*25G NIC.
 
      ./usertools/dpdk-devbind.py -b vfio-pci 0000:18:01.0
 
-6. launch dpdk on VF0, and request DCF mode::
+6. launch dpdk on VF0, and request DCF mode, representing VF1 to VF63::
 
-     ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -c 0xf -n 4 -a 0000:18:01.0,cap=dcf -- -i
+     ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -c 0xf -n 4 \
+     -a 0000:18:01.0,cap=dcf,representor=[1-63] \
+     -- -i
 
 7. set a switch rule to each VF from DCF, totally 63 rules::
 
-     testpmd> flow create 0 ingress pattern eth / ipv4 src is 192.168.0.1 / tcp / end actions vf id 1 / end
-     testpmd> flow create 0 ingress pattern eth / ipv4 src is 192.168.0.2 / tcp / end actions vf id 2 / end
-     testpmd> flow create 0 ingress pattern eth / ipv4 src is 192.168.0.3 / tcp / end actions vf id 3 / end
+     testpmd> flow create 0 ingress pattern eth / ipv4 src is 192.168.0.1 / tcp / end actions represented_port ethdev_port_id 1 / end
+     testpmd> flow create 0 ingress pattern eth / ipv4 src is 192.168.0.2 / tcp / end actions represented_port ethdev_port_id 2 / end
+     testpmd> flow create 0 ingress pattern eth / ipv4 src is 192.168.0.3 / tcp / end actions represented_port ethdev_port_id 3 / end
      ......
-     testpmd> flow create 0 ingress pattern eth / ipv4 src is 192.168.0.63 / tcp / end actions vf id 63 / end
+     testpmd> flow create 0 ingress pattern eth / ipv4 src is 192.168.0.63 / tcp / end actions represented_port ethdev_port_id 63 / end
      testpmd> flow list 0
 
    check the rules exist in the list.
@@ -2718,9 +2722,9 @@ will not hang and provide a friendly output.
 
 1. create the following nvgre rules::
 
-     testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / nvgre tni is 0x8 / eth / ipv4 src is 192.168.0.2 dst is 192.168.0.3 / udp src is 50 dst is 23 / end actions vf id 1 / end
-     testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.2 / nvgre tni is 0x8 / eth / ipv4 src is 192.168.0.2 dst is 192.168.0.3 / udp src is 50 / end actions vf id 1 / end
-     testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.3 / nvgre tni is 0x8 / eth / ipv4 src is 192.168.0.2 dst is 192.168.0.3 / udp dst is 23 / end actions vf id 1 / end
+     testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / nvgre tni is 0x8 / eth / ipv4 src is 192.168.0.2 dst is 192.168.0.3 / udp src is 50 dst is 23 / end actions represented_port ethdev_port_id 1 / end
+     testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.2 / nvgre tni is 0x8 / eth / ipv4 src is 192.168.0.2 dst is 192.168.0.3 / udp src is 50 / end actions represented_port ethdev_port_id 1 / end
+     testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.3 / nvgre tni is 0x8 / eth / ipv4 src is 192.168.0.2 dst is 192.168.0.3 / udp dst is 23 / end actions represented_port ethdev_port_id 1 / end
      testpmd> flow list 0
 
    check the rules exist in the list.
@@ -2728,7 +2732,7 @@ will not hang and provide a friendly output.
 2. the three rules have run out of field vectors, and
    continue to create the following rule::
 
-     testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.10 / nvgre tni is 0x8 /  eth dst is 68:05:ca:8d:ed:a1  / ipv4 src is 192.168.1.2 dst is 192.168.1.3 / udp src is 25 dst is 23 / end actions vf id 1 / end
+     testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.10 / nvgre tni is 0x8 /  eth dst is 68:05:ca:8d:ed:a1  / ipv4 src is 192.168.1.2 dst is 192.168.1.3 / udp src is 25 dst is 23 / end actions represented_port ethdev_port_id 1 / end
 
    check the rule can not be created successfully, and testpmd
    provide a friendly output, showing::
@@ -2748,12 +2752,12 @@ will not hang and provide a friendly output.
      sendp([Ether()/IP(dst="192.168.0.2")/NVGRE(TNI=0x8)/Ether()/IP(src="192.168.0.2", dst="192.168.0.3")/UDP(sport=50,dport=23)/Raw("x"*80)],iface="ens786f0",count=1)
      sendp([Ether()/IP(dst="192.168.0.3")/NVGRE(TNI=0x8)/Ether()/IP(src="192.168.0.2", dst="192.168.0.3")/UDP(sport=50,dport=23)/Raw("x"*80)],iface="ens786f0",count=1)
 
-   check port 1 receives the packets
+   check port 3 receives the packets
    send mismatched packets::
 
      sendp([Ether()/IP(dst="192.168.0.5")/NVGRE(TNI=0x8)/Ether()/IP(src="192.168.0.2", dst="192.168.0.3")/UDP(sport=50,dport=23)/Raw("x"*80)],iface="ens786f0",count=1)
 
-   check the packets are not to port 1.
+   check the packets are not to port 3.
 
 5. verify rules can be destroyed::
 
@@ -2761,7 +2765,7 @@ will not hang and provide a friendly output.
      testpmd> flow list 0
 
    check the rules not exist in the list.
-   send matched packets, check the packets are not to port 1.
+   send matched packets, check the packets are not to port 3.
 
 Test case: negative cases
 =========================
@@ -2771,7 +2775,7 @@ Subcase 1: can not create rule on vf 1
 
 1. create rule on vf 1::
 
-     testpmd> flow create 1 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.1 dst is 192.168.0.2 tos is 4 ttl is 3 / udp src is 25 dst is 23 / end actions vf id 1 / end
+     testpmd> flow create 1 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.1 dst is 192.168.0.2 tos is 4 ttl is 3 / udp src is 25 dst is 23 / end actions port_representor port_id 1 / end
 
    Failed to create flow, report message::
 
@@ -2790,12 +2794,12 @@ Subcase 2: unsupported pattern in os default package
 
 2. create unsupported pattern in os default package::
 
-     testpmd> flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / pppoes seid is 3 / pppoe_proto_id is 0x0021 / end actions vf id 1 / end
-     testpmd> flow create 0 ingress pattern eth / ipv4 / udp / pfcp s_field is 0 / end actions vf id 1 / end
-     testpmd> flow create 0 ingress pattern eth / ipv4 src is 192.168.0.2 / l2tpv3oip session_id is 1 / end actions vf id 1 / end
-     testpmd> flow create 0 ingress pattern eth / ipv4 src is 192.168.0.2 / esp spi is 1 / end actions vf id 1 / end
-     testpmd> flow create 0 ingress pattern eth / ipv4 src is 192.168.0.2 / ah spi is 1 / end actions vf id 1 / end
-     testpmd> flow create 0 ingress pattern eth / ipv4 src is 192.168.0.2 / udp / esp spi is 1 / end actions vf id 1 / end
+     testpmd> flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / pppoes seid is 3 / pppoe_proto_id is 0x0021 / end actions represented_port ethdev_port_id 1 / end
+     testpmd> flow create 0 ingress pattern eth / ipv4 / udp / pfcp s_field is 0 / end actions represented_port ethdev_port_id 1 / end
+     testpmd> flow create 0 ingress pattern eth / ipv4 src is 192.168.0.2 / l2tpv3oip session_id is 1 / end actions represented_port ethdev_port_id 1 / end
+     testpmd> flow create 0 ingress pattern eth / ipv4 src is 192.168.0.2 / esp spi is 1 / end actions represented_port ethdev_port_id 1 / end
+     testpmd> flow create 0 ingress pattern eth / ipv4 src is 192.168.0.2 / ah spi is 1 / end actions represented_port ethdev_port_id 1 / end
+     testpmd> flow create 0 ingress pattern eth / ipv4 src is 192.168.0.2 / udp / esp spi is 1 / end actions represented_port ethdev_port_id 1 / end
 
    Failed to create flow, report message::
 
@@ -2812,7 +2816,7 @@ Subcase 3: unsupported input set
 
 1. create an nvgre rule with unsupported input set field [inner tos]::
 
-     testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / nvgre tni is 2 / eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.1.2 dst is 192.168.1.3 tos is 4 / end actions vf id 1 / end
+     testpmd> flow create 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / nvgre tni is 2 / eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.1.2 dst is 192.168.1.3 tos is 4 / end actions represented_port ethdev_port_id 1 / end
 
    Failed to create flow, report message::
 
@@ -2829,7 +2833,7 @@ Subcase 4: duplicated rules
 
 1. create a rule::
 
-     testpmd> flow create 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 ttl is 2 tos is 4 / end actions vf id 1 / end
+     testpmd> flow create 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 ttl is 2 tos is 4 / end actions represented_port ethdev_port_id 1 / end
      testpmd> flow list 0
 
    check the rule exists in the list.
@@ -2895,23 +2899,6 @@ Subcase 7: void input set value
 
    check the rule not exists in the list.
 
-Subcase 8: invalid vf id
-------------------------
-
-1. create a rule with invalid vf id 5::
-
-     testpmd> flow create 0 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.1 dst is 192.168.0.2 tos is 4 ttl is 3 / tcp src is 25 dst is 23 / end actions vf id 5 / end
-
-   Failed to create flow, report message::
-
-     Invalid vf id: Invalid argument
-
-2. check the rule list::
-
-     testpmd> flow list 0
-
-   check the rule not exists in the list.
-
 Subcase 9: delete a non-existing rule
 -------------------------------------
 
@@ -2945,7 +2932,7 @@ other rules.
 
 1. create a rule with input set length longer than 32 bytes::
 
-     testpmd> flow create 0 ingress pattern eth / ipv6 src is CDCD:910A:2222:5498:8475:1111:3900:1536 dst is CDCD:910A:2222:5498:8475:1111:3900:2022 tc is 3 / end actions vf id 1 / end
+     testpmd> flow create 0 ingress pattern eth / ipv6 src is CDCD:910A:2222:5498:8475:1111:3900:1536 dst is CDCD:910A:2222:5498:8475:1111:3900:2022 tc is 3 / end actions represented_port ethdev_port_id 1 / end
 
    Failed to create flow, report message::
 
@@ -2959,7 +2946,7 @@ other rules.
 
 3. create a MAC_IPV6_UDP_PAY rule::
 
-     testpmd> flow create 0 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 tc is 3 / udp src is 25 dst is 23 / end actions vf id 1 / end
+     testpmd> flow create 0 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 tc is 3 / udp src is 25 dst is 23 / end actions represented_port ethdev_port_id 1 / end
      testpmd> flow list 0
 
    check the rule exists in the list.
@@ -2968,13 +2955,13 @@ other rules.
 
      sendp([Ether(dst="68:05:ca:8d:ed:a8")/IPv6(src="CDCD:910A:2222:5498:8475:1111:3900:1518", dst="CDCD:910A:2222:5498:8475:1111:3900:2020",tc=3)/UDP(sport=25,dport=23)/("X"*480)], iface="ens786f0",count=1)
 
-   check port 1 receive the packet.
+   check port 3 receive the packet.
    send mismatched packets::
 
      sendp([Ether(dst="68:05:ca:8d:ed:a8")/IPv6(src="CDCD:910A:2222:5498:8475:1111:3900:1518", dst="CDCD:910A:2222:5498:8475:1111:3900:2020",tc=3)/UDP(sport=30,dport=23)/("X"*480)], iface="ens786f0",count=1)
      sendp([Ether(dst="68:05:ca:8d:ed:a8")/IPv6(src="CDCD:910A:2222:5498:8475:1111:3900:1518", dst="CDCD:910A:2222:5498:8475:1111:3900:2020",tc=3)/UDP(sport=25,dport=19)/("X"*480)], iface="ens786f0",count=1)
 
-   check the packets are not to port 1.
+   check the packets are not to port 3.
 
 5. verify rules can be destroyed::
 
@@ -2982,18 +2969,29 @@ other rules.
      testpmd> flow list 0
 
    check the rule not exists in the list.
-   send matched packets, check the packets are not to port 1.
+   send matched packets, check the packets are not to port 3.
 
 Test case: negative validation
 ==============================
 Note: some of the error messages may be different.
 
-Subcase 1: can not create rule on vf 1
---------------------------------------
+Subcase 1: can not create to vf rule on a representor
+-----------------------------------------------------
+
+1. validate rule on representor 1 which is at port 1::
+
+     testpmd> flow validate 1 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.1 dst is 192.168.0.2 tos is 4 ttl is 3 / udp src is 25 dst is 23 / end actions represented_port ethdev_port_id 1 / end
+
+   get the error message::
+
+     Failed to create parser engine.: Invalid argument
+
+2. list the rule::
+
+     testpmd> flow list 1
 
-1. validate rule on vf 1::
+   there is no rule listed.
 
-     testpmd> flow validate 1 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.1 dst is 192.168.0.2 tos is 4 ttl is 3 / udp src is 25 dst is 23 / end actions vf id 1 / end
 
    get the error message::
 
@@ -3012,12 +3010,12 @@ Subcase 2: unsupported patterns in os default
 
 2. validate unsupported patterns in os default::
 
-     testpmd> flow validate 0 ingress pattern eth dst is 00:11:22:33:44:55 / pppoes seid is 3 / pppoe_proto_id is 0x0021 / end actions vf id 1 / end
-     testpmd> flow validate 0 ingress pattern eth / ipv4 / udp / pfcp s_field is 0 / end actions vf id 1 / end
-     testpmd> flow validate 0 priority 0 ingress pattern eth / ipv4 src is 192.168.0.2 / l2tpv3oip session_id is 1 / end actions vf id 1 / end
-     testpmd> flow validate 0 priority 0 ingress pattern eth / ipv4 src is 192.168.0.2 / esp spi is 1 / end actions vf id 1 / end
-     testpmd> flow validate 0 priority 0 ingress pattern eth / ipv4 src is 192.168.0.2 / ah spi is 1 / end actions vf id 1 / end
-     testpmd> flow validate 0 priority 0 ingress pattern eth / ipv4 src is 192.168.0.2 / udp / esp spi is 1 / end actions vf id 1 / end
+     testpmd> flow validate 0 ingress pattern eth dst is 00:11:22:33:44:55 / pppoes seid is 3 / pppoe_proto_id is 0x0021 / end actions represented_port ethdev_port_id 1 / end
+     testpmd> flow validate 0 ingress pattern eth / ipv4 / udp / pfcp s_field is 0 / end actions represented_port ethdev_port_id 1 / end
+     testpmd> flow validate 0 priority 0 ingress pattern eth / ipv4 src is 192.168.0.2 / l2tpv3oip session_id is 1 / end actions represented_port ethdev_port_id 1 / end
+     testpmd> flow validate 0 priority 0 ingress pattern eth / ipv4 src is 192.168.0.2 / esp spi is 1 / end actions represented_port ethdev_port_id 1 / end
+     testpmd> flow validate 0 priority 0 ingress pattern eth / ipv4 src is 192.168.0.2 / ah spi is 1 / end actions represented_port ethdev_port_id 1 / end
+     testpmd> flow validate 0 priority 0 ingress pattern eth / ipv4 src is 192.168.0.2 / udp / esp spi is 1 / end actions represented_port ethdev_port_id 1 / end
 
    get the error message::
 
@@ -3034,7 +3032,7 @@ Subcase 3: unsupported input set
 
 1. validate an nvgre rule with unsupported input set field [inner tos]::
 
-     testpmd> flow validate 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / nvgre tni is 2 / eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.1.2 dst is 192.168.1.3 tos is 4 / end actions vf id 1 / end
+     testpmd> flow validate 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / nvgre tni is 2 / eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.1.2 dst is 192.168.1.3 tos is 4 / end actions represented_port ethdev_port_id 1 / end
 
    get the error message::
 
@@ -3085,7 +3083,7 @@ Subcase 6: void input set value
 
 1. validate a rule with void input set value::
 
-     testpmd> flow validate 0 ingress pattern eth / ipv4 / end actions vf id 1 / end
+     testpmd> flow validate 0 ingress pattern eth / ipv4 / end actions represented_port ethdev_port_id 1 / end
 
    get the error message::
 
@@ -3097,29 +3095,12 @@ Subcase 6: void input set value
 
    check the rule not exists in the list.
 
-Subcase 7: invalid vf id
-------------------------
-
-1. validate a rule with invalid vf id 5::
-
-     testpmd> flow validate 0 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.1 dst is 192.168.0.2 tos is 4 ttl is 3 / tcp src is 25 dst is 23 / end actions vf id 5 / end
-
-   get the error message::
-
-     Invalid vf id: Invalid argument
-
-3. check the rule list::
-
-     testpmd> flow list 0
-
-   check the rule not exists in the list.
-
 Subcase 8: long switch rule
 ---------------------------
 
 1. validate a rule with input set length longer than 32 bytes::
 
-     testpmd> flow validate 0 ingress pattern eth / ipv6 src is CDCD:910A:2222:5498:8475:1111:3900:1536 dst is CDCD:910A:2222:5498:8475:1111:3900:2022 tc is 3 / end actions vf id 1 / end
+     testpmd> flow validate 0 ingress pattern eth / ipv6 src is CDCD:910A:2222:5498:8475:1111:3900:1536 dst is CDCD:910A:2222:5498:8475:1111:3900:2022 tc is 3 / end actions represented_port ethdev_port_id 1 / end
 
    get the error message::
 
@@ -3139,7 +3120,7 @@ Subcase 1: DCF stop/DCF start
 
 1. create MAC_IPV4_UDP_PAY rule::
 
-     testpmd> flow create 0 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.1 dst is 192.168.0.2 tos is 4 ttl is 3 / udp src is 25 dst is 23 / end actions vf id 1 / end
+     testpmd> flow create 0 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.1 dst is 192.168.0.2 tos is 4 ttl is 3 / udp src is 25 dst is 23 / end actions represented_port ethdev_port_id 1 / end
      testpmd> flow list 0
 
    check the rule exists in the list.
@@ -3148,14 +3129,14 @@ Subcase 1: DCF stop/DCF start
 
      sendp([Ether(dst="68:05:ca:8d:ed:a8")/IP(src="192.168.0.1",dst="192.168.0.2",tos=4,ttl=3)/UDP(sport=25,dport=23)/("X"*480)], iface="ens786f0", count=1)
 
-   check port 1 receive the packet.
+   check port 3 receive the packet.
 
 3. stop the DCF, then start the DCF::
 
      tetspmd> port stop 0
      testpmd> port start 0
 
-4. send matched packets, port 1 can't receive the packets.
+4. send matched packets, port 3 can't receive the packets.
 
 Test case: Drop action test
 ===========================
-- 
2.25.1


  parent reply	other threads:[~2022-09-28  3:28 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-09-28  3:18 [DTS][PATCH V1 00/21] update test plans and tests to support represented port action and port representor action from deprecated vf action on DCF cases Ke Xu
2022-09-28  3:18 ` [DTS][PATCH V1 01/21] test_plans/dcf_lifecycle: update test plan to support represented port action from deprecated vf action Ke Xu
2022-09-28  3:18 ` [DTS][PATCH V1 02/21] test_plans/ice_dcf_acl_filter: " Ke Xu
2022-09-28  3:18 ` [DTS][PATCH V1 03/21] test_plans/ice_limit_value_test: " Ke Xu
2022-09-28  3:18 ` [DTS][PATCH V1 04/21] test_plans/ice_dcf_flow_priority: " Ke Xu
2022-09-28  3:18 ` [DTS][PATCH V1 05/21] test_plans/ice_dcf_switch_filter_gtpu: " Ke Xu
2022-09-28  3:18 ` [DTS][PATCH V1 06/21] test_plans/ice_dcf_switch_filter_pppoe: " Ke Xu
2022-09-28  3:18 ` [DTS][PATCH V1 07/21] test_plans/ice_qinq: " Ke Xu
2022-09-28  3:18 ` [DTS][PATCH V1 08/21] test_plans/ice_dcf_acl_filter: remove redundant white space Ke Xu
2022-09-28  3:18 ` [DTS][PATCH V1 09/21] test_plans/dcf_lifecycle: " Ke Xu
2022-09-28  3:18 ` [DTS][PATCH V1 10/21] test_plans/ice_dcf_data_path: update test plan to support port representor action from deprecated vf action Ke Xu
2022-09-28  3:18 ` [DTS][PATCH V1 11/21] tests/dcf_lifecycle: update test plan to support represented port " Ke Xu
2022-09-28  3:18 ` [DTS][PATCH V1 12/21] tests/ice_dcf_acl_filter: " Ke Xu
2022-09-28  3:18 ` [DTS][PATCH V1 13/21] tests/ice_limit_value_test: " Ke Xu
2022-09-28  3:18 ` [DTS][PATCH V1 14/21] tests/ice_dcf_flow_priority: " Ke Xu
2022-09-28  3:18 ` [DTS][PATCH V1 15/21] tests/ice_dcf_switch_filter_gtpu: " Ke Xu
2022-09-28  3:18 ` [DTS][PATCH V1 16/21] tests/ice_dcf_switch_filter_pppoe: " Ke Xu
2022-09-28  3:18 ` [DTS][PATCH V1 17/21] tests/ice_qinq: " Ke Xu
2022-09-28  3:18 ` [DTS][PATCH V1 18/21] tests/ice_dcf_data_path: update test plan to support port representor " Ke Xu
2022-09-28  3:18 ` Ke Xu [this message]
2022-09-28  3:18 ` [DTS][PATCH V1 20/21] test/ice_dcf_switch_filter: update test plan to support represented port " Ke Xu
2022-09-28  3:18 ` [DTS][PATCH V1 21/21] test_plans/ice_dcf_switch_filter: add white space to formate the table Ke Xu

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20220928031836.770004-20-ke1.xu@intel.com \
    --to=ke1.xu@intel.com \
    --cc=dts@dpdk.org \
    --cc=jin.ling@intel.com \
    --cc=lijuan.tu@intel.com \
    --cc=qi.fu@intel.com \
    --cc=weiyuanx.li@intel.com \
    --cc=zhiminx.huang@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).