[V1,19/21] test_plans/ice_dcf_switch_filter: update test plan to support represented port action from deprecated vf action

Message ID 20220928031836.770004-20-ke1.xu@intel.com (mailing list archive)
State Superseded
Headers
Series update test plans and tests to support represented port action and port representor action from deprecated vf action on DCF cases |

Commit Message

Ke Xu Sept. 28, 2022, 3:18 a.m. UTC
  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(-)
  

Patch

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
 ===========================