get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

GET /api/patches/117167/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 117167,
    "url": "https://patches.dpdk.org/api/patches/117167/?format=api",
    "web_url": "https://patches.dpdk.org/project/dts/patch/20220930054647.545932-2-ke1.xu@intel.com/",
    "project": {
        "id": 3,
        "url": "https://patches.dpdk.org/api/projects/3/?format=api",
        "name": "DTS",
        "link_name": "dts",
        "list_id": "dts.dpdk.org",
        "list_email": "dts@dpdk.org",
        "web_url": "",
        "scm_url": "git://dpdk.org/tools/dts",
        "webscm_url": "http://git.dpdk.org/tools/dts/",
        "list_archive_url": "https://inbox.dpdk.org/dts",
        "list_archive_url_format": "https://inbox.dpdk.org/dts/{}",
        "commit_url_format": ""
    },
    "msgid": "<20220930054647.545932-2-ke1.xu@intel.com>",
    "list_archive_url": "https://inbox.dpdk.org/dts/20220930054647.545932-2-ke1.xu@intel.com",
    "date": "2022-09-30T05:46:44",
    "name": "[V1,1/4] test_plans/ice_dcf_switch_filter: update existing TO_VF action cases to cover port representor action from not covered vf original action",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": false,
    "hash": "223baf34c4fd9ff21adaa8ca986a7d4fd0aa7250",
    "submitter": {
        "id": 2810,
        "url": "https://patches.dpdk.org/api/people/2810/?format=api",
        "name": "Ke Xu",
        "email": "ke1.xu@intel.com"
    },
    "delegate": null,
    "mbox": "https://patches.dpdk.org/project/dts/patch/20220930054647.545932-2-ke1.xu@intel.com/mbox/",
    "series": [
        {
            "id": 24925,
            "url": "https://patches.dpdk.org/api/series/24925/?format=api",
            "web_url": "https://patches.dpdk.org/project/dts/list/?series=24925",
            "date": "2022-09-30T05:46:43",
            "name": "update existing cases and add new sub-cases to validate port representor action and represented port action",
            "version": 1,
            "mbox": "https://patches.dpdk.org/series/24925/mbox/"
        }
    ],
    "comments": "https://patches.dpdk.org/api/patches/117167/comments/",
    "check": "pending",
    "checks": "https://patches.dpdk.org/api/patches/117167/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<dts-bounces@dpdk.org>",
        "X-Original-To": "patchwork@inbox.dpdk.org",
        "Delivered-To": "patchwork@inbox.dpdk.org",
        "Received": [
            "from mails.dpdk.org (mails.dpdk.org [217.70.189.124])\n\tby inbox.dpdk.org (Postfix) with ESMTP id B19D3A034C;\n\tFri, 30 Sep 2022 07:47:42 +0200 (CEST)",
            "from [217.70.189.124] (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id A97AB41109;\n\tFri, 30 Sep 2022 07:47:42 +0200 (CEST)",
            "from mga12.intel.com (mga12.intel.com [192.55.52.136])\n by mails.dpdk.org (Postfix) with ESMTP id 54E7B40E5A\n for <dts@dpdk.org>; Fri, 30 Sep 2022 07:47:39 +0200 (CEST)",
            "from orsmga004.jf.intel.com ([10.7.209.38])\n by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 29 Sep 2022 22:47:38 -0700",
            "from bmca4bf0170a856.sh.intel.com (HELO DPDK-XUKE-LAB.sh.intel.com)\n ([10.67.115.115])\n by orsmga004.jf.intel.com with ESMTP; 29 Sep 2022 22:47:36 -0700"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/simple;\n d=intel.com; i=@intel.com; q=dns/txt; s=Intel;\n t=1664516859; x=1696052859;\n h=from:to:cc:subject:date:message-id:in-reply-to:\n references:mime-version:content-transfer-encoding;\n bh=kOhKL13QYIYfZbWO3Ziwe7+r+248sSzXOWCouflCMSY=;\n b=SlT1BnbAckLVmqwSH4nj2kHWngjCmQI0IF9JsRPdL4UkKb0VOWTbjCG7\n 6TdOe7+Z7XiibsYT4mDNNl/AXPhV92ldVX/Aq18eAqazI394kr3vgJm5e\n m1GaWBI1Sn+M1quwrYbYR7dqXAITE1gI+DS6qUiPbHXCAYR8kdB5uh0nY\n XMHKMUzjBQQHHH3AgrdlkNxPNp64kyWediKsxiU824IOLpOeDioj885No\n CiXm2E1+tQxGU5Vt0EkCkb1ZNw70u78EQAdBOnRGJZ7tuhDfwHcbeA7u7\n ZJKcNmvQ3UHExojLT99vbJEKmfcIwBXAKqOtuPQqhJHODH+XCVmcAFUS1 A==;",
        "X-IronPort-AV": [
            "E=McAfee;i=\"6500,9779,10485\"; a=\"281822336\"",
            "E=Sophos;i=\"5.93,357,1654585200\"; d=\"scan'208\";a=\"281822336\"",
            "E=McAfee;i=\"6500,9779,10485\"; a=\"748116332\"",
            "E=Sophos;i=\"5.93,357,1654585200\"; d=\"scan'208\";a=\"748116332\""
        ],
        "X-ExtLoop1": "1",
        "From": "Ke Xu <ke1.xu@intel.com>",
        "To": "dts@dpdk.org",
        "Cc": "qi.fu@intel.com,\n\tlijuan.tu@intel.com,\n\tKe Xu <ke1.xu@intel.com>",
        "Subject": "[DTS][PATCH V1 1/4] test_plans/ice_dcf_switch_filter: update existing\n TO_VF action cases to cover port representor action from not covered vf\n original action",
        "Date": "Fri, 30 Sep 2022 05:46:44 +0000",
        "Message-Id": "<20220930054647.545932-2-ke1.xu@intel.com>",
        "X-Mailer": "git-send-email 2.25.1",
        "In-Reply-To": "<20220930054647.545932-1-ke1.xu@intel.com>",
        "References": "<20220930054647.545932-1-ke1.xu@intel.com>",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "X-BeenThere": "dts@dpdk.org",
        "X-Mailman-Version": "2.1.29",
        "Precedence": "list",
        "List-Id": "test suite reviews and discussions <dts.dpdk.org>",
        "List-Unsubscribe": "<https://mails.dpdk.org/options/dts>,\n <mailto:dts-request@dpdk.org?subject=unsubscribe>",
        "List-Archive": "<http://mails.dpdk.org/archives/dts/>",
        "List-Post": "<mailto:dts@dpdk.org>",
        "List-Help": "<mailto:dts-request@dpdk.org?subject=help>",
        "List-Subscribe": "<https://mails.dpdk.org/listinfo/dts>,\n <mailto:dts-request@dpdk.org?subject=subscribe>",
        "Errors-To": "dts-bounces@dpdk.org"
    },
    "content": "Deprecated TO_VF action contains a 'vf original' action which is not covered in\n previous tests. This commit applys equivilant 'vf original' rule to previous\n cases for 'vf id' action to cover 'vf original' action.\n\nSigned-off-by: Ke Xu <ke1.xu@intel.com>\n---\n .../ice_dcf_switch_filter_test_plan.rst       | 430 ++++++++++++------\n 1 file changed, 288 insertions(+), 142 deletions(-)",
    "diff": "diff --git a/test_plans/ice_dcf_switch_filter_test_plan.rst b/test_plans/ice_dcf_switch_filter_test_plan.rst\nindex 7e161947..7eab578a 100644\n--- a/test_plans/ice_dcf_switch_filter_test_plan.rst\n+++ b/test_plans/ice_dcf_switch_filter_test_plan.rst\n@@ -233,6 +233,7 @@ Test case: MAC_PAY\n 1. validate a rule::\n \n      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\n+     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 port_representor port_id 0 / end\n \n    get the message::\n \n@@ -247,6 +248,7 @@ Test case: MAC_PAY\n 2. create a rule::\n \n      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\n+     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 port_representor port_id 0 / end\n      testpmd> flow list 0\n \n    check the rule exists in the list.\n@@ -255,22 +257,23 @@ Test case: MAC_PAY\n \n      sendp([Ether(src=\"00:00:00:00:00:01\",dst=\"00:11:22:33:44:55\")/IP()/Raw(\"x\" *80)],iface=\"enp27s0f0\",count=1)\n \n-   check port 3 receive the packet.\n+   check port 0 and port 3 receive the packet.\n    send mismatched packets::\n \n      sendp([Ether(src=\"00:00:00:00:00:02\",dst=\"00:11:22:33:44:55\")/IP()/Raw(\"x\" *80)],iface=\"enp27s0f0\",count=1)\n      sendp([Ether(src=\"00:00:00:00:00:01\",dst=\"00:11:22:33:44:54\")/IP()/Raw(\"x\" *80)],iface=\"enp27s0f0\",count=1)\n      sendp([Ether(src=\"00:00:00:00:00:01\",dst=\"00:11:22:33:44:55\")/IPv6()/Raw(\"x\" *80)],iface=\"enp27s0f0\",count=1)\n \n-   check the packets are not to port 3.\n+   check the packets are not to port 0 and port 3.\n \n 4. verify rules can be destroyed::\n \n      testpmd> flow destroy 0 rule 0\n+     testpmd> flow destroy 0 rule 1\n      testpmd> flow list 0\n \n    check the rule not exists in the list.\n-   send matched packets, check the packets are not to port 3.\n+   send matched packets, check the packets are not to port 0 and port 3.\n \n Test case: MAC_IPV4_FRAG\n ========================\n@@ -278,6 +281,7 @@ Test case: MAC_IPV4_FRAG\n 1. validate a rule::\n \n      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\n+     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 port_representor port_id 0 / end\n \n    get the message::\n \n@@ -292,6 +296,7 @@ Test case: MAC_IPV4_FRAG\n 2. create a rule::\n \n      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\n+     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 port_representor port_id 0 / end\n      testpmd> flow list 0\n \n    check the rule exists in the list.\n@@ -300,7 +305,7 @@ Test case: MAC_IPV4_FRAG\n \n      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)\n \n-   check port 3 receive the packet.\n+   check port 0 and port 3 receive the packet.\n    send mismatched packets::\n \n      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)\n@@ -309,7 +314,7 @@ Test case: MAC_IPV4_FRAG\n      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)\n      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)\n \n-   check the packets are not to port 3.\n+   check the packets are not to port 0 and port 3.\n \n 4. verify rules can be destroyed::\n \n@@ -317,7 +322,7 @@ Test case: MAC_IPV4_FRAG\n      testpmd> flow list 0\n \n    check the rule not exists in the list.\n-   send matched packets, check the packets are not to port 3.\n+   send matched packets, check the packets are not to port 0 and port 3.\n \n Test case: MAC_IPV4_PAY\n =======================\n@@ -325,6 +330,7 @@ Test case: MAC_IPV4_PAY\n 1. validate a rule::\n \n      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\n+     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 port_representor port_id 0 / end\n \n    get the message::\n \n@@ -339,6 +345,7 @@ Test case: MAC_IPV4_PAY\n 2. create a rule::\n \n      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\n+     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 port_representor port_id 0 / end\n      testpmd> flow list 0\n \n    check the rule exists in the list.\n@@ -347,7 +354,7 @@ Test case: MAC_IPV4_PAY\n \n      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)\n \n-   check port 3 receive the packet.\n+   check port 0 and port 3 receive the packet.\n    send mismatched packets::\n \n      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)\n@@ -357,15 +364,16 @@ Test case: MAC_IPV4_PAY\n      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)\n      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)\n \n-   check the packets are not to port 3.\n+   check the packets are not to port 0 and port 3.\n \n 4. verify rules can be destroyed::\n \n      testpmd> flow destroy 0 rule 0\n+     testpmd> flow destroy 0 rule 1\n      testpmd> flow list 0\n \n    check the rule not exists in the list.\n-   send matched packets, check the packets are not to port 3.\n+   send matched packets, check the packets are not to port 0 and port 3.\n \n Test case: MAC_IPV4_UDP_PAY\n ===========================\n@@ -373,6 +381,7 @@ Test case: MAC_IPV4_UDP_PAY\n 1. validate a rule::\n \n      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\n+     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 port_representor port_id 0 / end\n \n    get the message::\n \n@@ -387,6 +396,7 @@ Test case: MAC_IPV4_UDP_PAY\n 2. create a rule::\n \n      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\n+     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 port_representor port_id 0 / end\n      testpmd> flow list 0\n \n    check the rule exists in the list.\n@@ -395,7 +405,7 @@ Test case: MAC_IPV4_UDP_PAY\n \n      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)\n \n-   check port 3 receive the packet.\n+   check port 0 and port 3 receive the packet.\n    send mismatched packets::\n \n      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)\n@@ -406,15 +416,16 @@ Test case: MAC_IPV4_UDP_PAY\n      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)\n      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)\n \n-   check the packets are not to port 3.\n+   check the packets are not to port 0 and port 3.\n \n 4. verify rules can be destroyed::\n \n      testpmd> flow destroy 0 rule 0\n+     testpmd> flow destroy 0 rule 1\n      testpmd> flow list 0\n \n    check the rule not exists in the list.\n-   send matched packets, check the packets are not to port 3.\n+   send matched packets, check the packets are not to port 0 and port 3.\n \n Test case: MAC_IPV4_TCP_PAY\n ===========================\n@@ -422,6 +433,7 @@ Test case: MAC_IPV4_TCP_PAY\n 1. validate a rule::\n \n      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\n+     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 port_representor port_id 0 / end\n \n    get the message::\n \n@@ -436,6 +448,7 @@ Test case: MAC_IPV4_TCP_PAY\n 2. create a rule::\n \n      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\n+     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 port_representor port_id 0 / end\n      testpmd> flow list 0\n \n    check the rule exists in the list.\n@@ -444,7 +457,7 @@ Test case: MAC_IPV4_TCP_PAY\n \n      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)\n \n-   check port 3 receive the packet.\n+   check port 0 and port 3 receive the packet.\n    send mismatched packets::\n \n      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)\n@@ -455,15 +468,16 @@ Test case: MAC_IPV4_TCP_PAY\n      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)\n      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)\n \n-   check the packets are not to port 3.\n+   check the packets are not to port 0 and port 3.\n \n 4. verify rules can be destroyed::\n \n      testpmd> flow destroy 0 rule 0\n+     testpmd> flow destroy 0 rule 1\n      testpmd> flow list 0\n \n    check the rule not exists in the list.\n-   send matched packets, check the packets are not to port 3.\n+   send matched packets, check the packets are not to port 0 and port 3.\n \n Test case: MAC_IPV4_IGMP\n ========================\n@@ -471,6 +485,7 @@ Test case: MAC_IPV4_IGMP\n 1. validate a rule::\n \n      testpmd> flow validate 0 ingress pattern eth / ipv4 proto is 0x02 / end actions represented_port ethdev_port_id 1 / end\n+     testpmd> flow validate 0 ingress pattern eth / ipv4 proto is 0x02 / end actions port_representor port_id 0 / end\n \n    get the message::\n \n@@ -485,6 +500,7 @@ Test case: MAC_IPV4_IGMP\n 2. create a rule::\n \n      testpmd> flow create 0 ingress pattern eth / ipv4 proto is 0x02 / end actions represented_port ethdev_port_id 1 / end\n+     testpmd> flow create 0 ingress pattern eth / ipv4 proto is 0x02 / end actions port_representor port_id 0 / end\n      testpmd> flow list 0\n \n    check the rule exists in the list.\n@@ -493,21 +509,22 @@ Test case: MAC_IPV4_IGMP\n \n      sendp([Ether(dst=\"00:11:22:33:44:55\")/IP()/IGMP()/Raw(\"X\"*480)], iface=\"enp27s0f0\", count=1)\n \n-   check port 3 receive the packet.\n+   check port 0 and port 3 receive the packet.\n    send mismatched packets::\n \n      sendp([Ether(dst=\"00:11:22:33:44:55\")/IP()/TCP()/Raw(\"X\"*480)], iface=\"enp27s0f0\", count=1)\n      sendp([Ether(dst=\"00:11:22:33:44:55\")/IP()/UDP()/Raw(\"X\"*480)], iface=\"enp27s0f0\", count=1)\n \n-   check the packets are not to port 3.\n+   check the packets are not to port 0 and port 3.\n \n 4. verify rules can be destroyed::\n \n      testpmd> flow destroy 0 rule 0\n+     testpmd> flow destroy 0 rule 1\n      testpmd> flow list 0\n \n    check the rule not exists in the list.\n-   send matched packets, check the packets are not to port 3.\n+   send matched packets, check the packets are not to port 0 and port 3.\n \n Test case: MAC_IPV6_srcip_dstip\n ===============================\n@@ -518,6 +535,7 @@ Therefore, if a rule carries src ipv6, dst ipv6, it can not take any other field\n 1. validate a rule::\n \n      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\n+     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 port_representor port_id 0 / end\n \n    get the message::\n \n@@ -532,6 +550,7 @@ Therefore, if a rule carries src ipv6, dst ipv6, it can not take any other field\n 2. create a rule::\n \n      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\n+     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 port_representor port_id 0 / end\n      testpmd> flow list 0\n \n    check the rule exists in the list.\n@@ -541,7 +560,7 @@ Therefore, if a rule carries src ipv6, dst ipv6, it can not take any other field\n      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)\n      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)\n \n-   check port 3 receive the packets.\n+   check port 0 and port 3 receive the packets.\n    send mismatched packets::\n \n      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)\n@@ -549,15 +568,16 @@ Therefore, if a rule carries src ipv6, dst ipv6, it can not take any other field\n      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)\n      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)\n \n-   check the packets are not to port 3.\n+   check the packets are not to port 0 and port 3.\n \n 4. verify rules can be destroyed::\n \n      testpmd> flow destroy 0 rule 0\n+     testpmd> flow destroy 0 rule 1\n      testpmd> flow list 0\n \n    check the rule not exists in the list.\n-   send matched packets, check the packets are not to port 3.\n+   send matched packets, check the packets are not to port 0 and port 3.\n \n Test case: MAC_IPV6_dstip_tc\n ============================\n@@ -565,6 +585,7 @@ Test case: MAC_IPV6_dstip_tc\n 1. validate a rule::\n \n      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\n+     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 port_representor port_id 0 / end\n \n    get the message::\n \n@@ -579,6 +600,7 @@ Test case: MAC_IPV6_dstip_tc\n 2. create a rule::\n \n      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\n+     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 port_representor port_id 0 / end\n      testpmd> flow list 0\n \n    check the rule exists in the list.\n@@ -588,7 +610,7 @@ Test case: MAC_IPV6_dstip_tc\n      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)\n      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)\n \n-   check port 3 receive the packet.\n+   check port 0 and port 3 receive the packet.\n    send mismatched packets::\n \n      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)\n@@ -598,15 +620,16 @@ Test case: MAC_IPV6_dstip_tc\n      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)\n      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)\n \n-   check the packets are not to port 3.\n+   check the packets are not to port 0 and port 3.\n \n 4. verify rules can be destroyed::\n \n      testpmd> flow destroy 0 rule 0\n+     testpmd> flow destroy 0 rule 1\n      testpmd> flow list 0\n \n    check the rule not exists in the list.\n-   send matched packets, check the packets are not to port 3.\n+   send matched packets, check the packets are not to port 0 and port 3.\n \n Test case: MAC_IPV6_UDP_PAY\n ===========================\n@@ -614,6 +637,7 @@ Test case: MAC_IPV6_UDP_PAY\n 1. validate a rule::\n \n      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\n+     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 port_representor port_id 0 / end\n \n    get the message::\n \n@@ -628,6 +652,7 @@ Test case: MAC_IPV6_UDP_PAY\n 2. create a rule::\n \n      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\n+     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 port_representor port_id 0 / end\n      testpmd> flow list 0\n \n    check the rule exists in the list.\n@@ -636,7 +661,7 @@ Test case: MAC_IPV6_UDP_PAY\n \n      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)\n \n-   check port 3 receive the packet.\n+   check port 0 and port 3 receive the packet.\n    send mismatched packets::\n \n      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)\n@@ -645,15 +670,16 @@ Test case: MAC_IPV6_UDP_PAY\n      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)\n      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)\n \n-   check the packets are not to port 3.\n+   check the packets are not to port 0 and port 3.\n \n 4. verify rules can be destroyed::\n \n      testpmd> flow destroy 0 rule 0\n+     testpmd> flow destroy 0 rule 1\n      testpmd> flow list 0\n \n    check the rule not exists in the list.\n-   send matched packets, check the packets are not to port 3.\n+   send matched packets, check the packets are not to port 0 and port 3.\n \n Test case: MAC_IPV6_TCP\n =======================\n@@ -661,6 +687,7 @@ Test case: MAC_IPV6_TCP\n 1. validate a rule::\n \n      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\n+     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 port_representor port_id 0 / end\n \n    get the message::\n \n@@ -675,6 +702,7 @@ Test case: MAC_IPV6_TCP\n 2. create a rule::\n \n      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\n+     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 port_representor port_id 0 / end\n      testpmd> flow list 0\n \n    check the rule exists in the list.\n@@ -683,7 +711,7 @@ Test case: MAC_IPV6_TCP\n \n      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)\n \n-   check port 3 receive the packet.\n+   check port 0 and port 3 receive the packet.\n    send mismatched packets::\n \n      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)\n@@ -692,15 +720,16 @@ Test case: MAC_IPV6_TCP\n      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)\n      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)\n \n-   check the packets are not to port 3.\n+   check the packets are not to port 0 and port 3.\n \n 4. verify rules can be destroyed::\n \n      testpmd> flow destroy 0 rule 0\n+     testpmd> flow destroy 0 rule 1\n      testpmd> flow list 0\n \n    check the rule not exists in the list.\n-   send matched packets, check the packets are not to port 3.\n+   send matched packets, check the packets are not to port 0 and port 3.\n \n Test case: MAC_IPV4_VXLAN_IPV4_FRAG (not support in 20.05)\n ==========================================================\n@@ -708,6 +737,7 @@ Test case: MAC_IPV4_VXLAN_IPV4_FRAG (not support in 20.05)\n 1. validate a rule::\n \n      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\n+     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 port_representor port_id 0 / end\n \n    get the message::\n \n@@ -722,6 +752,7 @@ Test case: MAC_IPV4_VXLAN_IPV4_FRAG (not support in 20.05)\n 2. create a rule::\n \n      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\n+     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 port_representor port_id 0 / end\n      testpmd> flow list 0\n \n    check the rule exists in the list.\n@@ -731,7 +762,7 @@ Test case: MAC_IPV4_VXLAN_IPV4_FRAG (not support in 20.05)\n      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)\n      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)\n \n-   check port 3 receive the packets.\n+   check port 0 and port 3 receive the packets.\n    send mismatched packets::\n \n      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)\n@@ -739,15 +770,16 @@ Test case: MAC_IPV4_VXLAN_IPV4_FRAG (not support in 20.05)\n      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)\n      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)\n \n-   check the packets are not to port 3.\n+   check the packets are not to port 0 and port 3.\n \n 4. verify rules can be destroyed::\n \n      testpmd> flow destroy 0 rule 0\n+     testpmd> flow destroy 0 rule 1\n      testpmd> flow list 0\n \n    check the rule not exists in the list.\n-   send matched packets, check the packets are not to port 3.\n+   send matched packets, check the packets are not to port 0 and port 3.\n \n Test case: MAC_IPV4_VXLAN_IPV4_PAY (not support in 20.05)\n =========================================================\n@@ -755,6 +787,7 @@ Test case: MAC_IPV4_VXLAN_IPV4_PAY (not support in 20.05)\n 1. validate a rule::\n \n      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\n+     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 port_representor port_id 0 / end\n \n    get the message::\n \n@@ -769,6 +802,7 @@ Test case: MAC_IPV4_VXLAN_IPV4_PAY (not support in 20.05)\n 2. create a rule::\n \n      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\n+     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 port_representor port_id 0 / end\n      testpmd> flow list 0\n \n    check the rule exists in the list.\n@@ -778,7 +812,7 @@ Test case: MAC_IPV4_VXLAN_IPV4_PAY (not support in 20.05)\n      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)\n      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)\n \n-   check port 3 receive the packets.\n+   check port 0 and port 3 receive the packets.\n    send mismatched packets::\n \n      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)\n@@ -786,15 +820,16 @@ Test case: MAC_IPV4_VXLAN_IPV4_PAY (not support in 20.05)\n      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)\n      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)\n \n-   check the packets are not to port 3.\n+   check the packets are not to port 0 and port 3.\n \n 4. verify rules can be destroyed::\n \n      testpmd> flow destroy 0 rule 0\n+     testpmd> flow destroy 0 rule 1\n      testpmd> flow list 0\n \n    check the rule not exists in the list.\n-   send matched packets, check the packets are not to port 3.\n+   send matched packets, check the packets are not to port 0 and port 3.\n \n Test case: MAC_IPV4_VXLAN_IPV4_UDP_PAY (not support in 20.05)\n =============================================================\n@@ -802,6 +837,7 @@ Test case: MAC_IPV4_VXLAN_IPV4_UDP_PAY (not support in 20.05)\n 1. validate a rule::\n \n      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\n+     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 port_representor port_id 0 / end\n \n    get the message::\n \n@@ -816,6 +852,7 @@ Test case: MAC_IPV4_VXLAN_IPV4_UDP_PAY (not support in 20.05)\n 2. create a rule::\n \n      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\n+     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 port_representor port_id 0 / end\n      testpmd> flow list 0\n \n    check the rule exists in the list.\n@@ -824,21 +861,22 @@ Test case: MAC_IPV4_VXLAN_IPV4_UDP_PAY (not support in 20.05)\n \n      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)\n \n-   check port 3 receive the packets.\n+   check port 0 and port 3 receive the packets.\n    send mismatched packets::\n \n      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)\n      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)\n \n-   check the packets are not to port 3.\n+   check the packets are not to port 0 and port 3.\n \n 4. verify rules can be destroyed::\n \n      testpmd> flow destroy 0 rule 0\n+     testpmd> flow destroy 0 rule 1\n      testpmd> flow list 0\n \n    check the rule not exists in the list.\n-   send matched packets, check the packets are not to port 3.\n+   send matched packets, check the packets are not to port 0 and port 3.\n \n Test case: MAC_IPV4_VXLAN_IPV4_TCP (not support in 20.05)\n =========================================================\n@@ -846,6 +884,7 @@ Test case: MAC_IPV4_VXLAN_IPV4_TCP (not support in 20.05)\n 1. validate a rule::\n \n      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\n+     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 port_representor port_id 0 / end\n \n    get the message::\n \n@@ -860,6 +899,7 @@ Test case: MAC_IPV4_VXLAN_IPV4_TCP (not support in 20.05)\n 2. create a rule::\n \n      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\n+     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 port_representor port_id 0 / end\n      testpmd> flow list 0\n \n    check the rule exists in the list.\n@@ -868,21 +908,22 @@ Test case: MAC_IPV4_VXLAN_IPV4_TCP (not support in 20.05)\n \n      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)\n \n-   check port 3 receive the packets.\n+   check port 0 and port 3 receive the packets.\n    send mismatched packets::\n \n      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)\n      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)\n \n-   check the packets are not to port 3.\n+   check the packets are not to port 0 and port 3.\n \n 4. verify rules can be destroyed::\n \n      testpmd> flow destroy 0 rule 0\n+     testpmd> flow destroy 0 rule 1\n      testpmd> flow list 0\n \n    check the rule not exists in the list.\n-   send matched packets, check the packets are not to port 3.\n+   send matched packets, check the packets are not to port 0 and port 3.\n \n Test case: MAC_IPV4_VXLAN_MAC_IPV4_FRAG (not support in 20.05)\n ==============================================================\n@@ -890,6 +931,7 @@ Test case: MAC_IPV4_VXLAN_MAC_IPV4_FRAG (not support in 20.05)\n 1. validate a rule::\n \n      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\n+     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 port_representor port_id 0 / end\n \n    get the message::\n \n@@ -904,6 +946,7 @@ Test case: MAC_IPV4_VXLAN_MAC_IPV4_FRAG (not support in 20.05)\n 2. create a rule::\n \n      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\n+     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 port_representor port_id 0 / end\n      testpmd> flow list 0\n \n    check the rule exists in the list.\n@@ -913,7 +956,7 @@ Test case: MAC_IPV4_VXLAN_MAC_IPV4_FRAG (not support in 20.05)\n      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)\n      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)\n \n-   check port 3 receive the packets.\n+   check port 0 and port 3 receive the packets.\n    send mismatched packets::\n \n      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)\n@@ -922,15 +965,16 @@ Test case: MAC_IPV4_VXLAN_MAC_IPV4_FRAG (not support in 20.05)\n      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)\n      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)\n \n-   check the packets are not to port 3.\n+   check the packets are not to port 0 and port 3.\n \n 4. verify rules can be destroyed::\n \n      testpmd> flow destroy 0 rule 0\n+     testpmd> flow destroy 0 rule 1\n      testpmd> flow list 0\n \n    check the rule not exists in the list.\n-   send matched packets, check the packets are not to port 3.\n+   send matched packets, check the packets are not to port 0 and port 3.\n \n Test case: MAC_IPV4_VXLAN_MAC_IPV4_PAY (not support in 20.05)\n =============================================================\n@@ -938,6 +982,7 @@ Test case: MAC_IPV4_VXLAN_MAC_IPV4_PAY (not support in 20.05)\n 1. validate a rule::\n \n      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\n+     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 port_representor port_id 0 / end\n \n    get the message::\n \n@@ -952,6 +997,7 @@ Test case: MAC_IPV4_VXLAN_MAC_IPV4_PAY (not support in 20.05)\n 2. create a rule::\n \n      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\n+     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 port_representor port_id 0 / end\n      testpmd> flow list 0\n \n    check the rule exists in the list.\n@@ -961,7 +1007,7 @@ Test case: MAC_IPV4_VXLAN_MAC_IPV4_PAY (not support in 20.05)\n      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)\n      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)\n \n-   check port 3 receive the packets.\n+   check port 0 and port 3 receive the packets.\n    send mismatched packets::\n \n      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)\n@@ -970,15 +1016,16 @@ Test case: MAC_IPV4_VXLAN_MAC_IPV4_PAY (not support in 20.05)\n      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)\n      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)\n \n-   check the packets are not to port 3.\n+   check the packets are not to port 0 and port 3.\n \n 4. verify rules can be destroyed::\n \n      testpmd> flow destroy 0 rule 0\n+     testpmd> flow destroy 0 rule 1\n      testpmd> flow list 0\n \n    check the rule not exists in the list.\n-   send matched packets, check the packets are not to port 3.\n+   send matched packets, check the packets are not to port 0 and port 3.\n \n Test case: MAC_IPV4_VXLAN_MAC_IPV4_UDP_PAY (not support in 20.05)\n =================================================================\n@@ -986,6 +1033,7 @@ Test case: MAC_IPV4_VXLAN_MAC_IPV4_UDP_PAY (not support in 20.05)\n 1. validate a rule::\n \n      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\n+     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 port_representor port_id 0 / end\n \n    get the message::\n \n@@ -1000,6 +1048,7 @@ Test case: MAC_IPV4_VXLAN_MAC_IPV4_UDP_PAY (not support in 20.05)\n 2. create a rule::\n \n      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\n+     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 port_representor port_id 0 / end\n      testpmd> flow list 0\n \n    check the rule exists in the list.\n@@ -1008,21 +1057,22 @@ Test case: MAC_IPV4_VXLAN_MAC_IPV4_UDP_PAY (not support in 20.05)\n \n      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)\n \n-   check port 3 receive the packets.\n+   check port 0 and port 3 receive the packets.\n    send mismatched packets::\n \n      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)\n      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)\n \n-   check the packets are not to port 3.\n+   check the packets are not to port 0 and port 3.\n \n 4. verify rules can be destroyed::\n \n      testpmd> flow destroy 0 rule 0\n+     testpmd> flow destroy 0 rule 1\n      testpmd> flow list 0\n \n    check the rule not exists in the list.\n-   send matched packets, check the packets are not to port 3.\n+   send matched packets, check the packets are not to port 0 and port 3.\n \n Test case: MAC_IPV4_VXLAN_MAC_IPV4_TCP (not support in 20.05)\n =============================================================\n@@ -1030,6 +1080,7 @@ Test case: MAC_IPV4_VXLAN_MAC_IPV4_TCP (not support in 20.05)\n 1. validate a rule::\n \n      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\n+     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 port_representor port_id 0 / end\n \n    get the message::\n \n@@ -1044,6 +1095,7 @@ Test case: MAC_IPV4_VXLAN_MAC_IPV4_TCP (not support in 20.05)\n 2. create a rule::\n \n      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\n+     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 port_representor port_id 0 / end\n      testpmd> flow list 0\n \n    check the rule exists in the list.\n@@ -1052,21 +1104,22 @@ Test case: MAC_IPV4_VXLAN_MAC_IPV4_TCP (not support in 20.05)\n \n      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)\n \n-   check port 3 receive the packets.\n+   check port 0 and port 3 receive the packets.\n    send mismatched packets::\n \n      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)\n      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)\n \n-   check the packets are not to port 3.\n+   check the packets are not to port 0 and port 3.\n \n 4. verify rules can be destroyed::\n \n      testpmd> flow destroy 0 rule 0\n+     testpmd> flow destroy 0 rule 1\n      testpmd> flow list 0\n \n    check the rule not exists in the list.\n-   send matched packets, check the packets are not to port 3.\n+   send matched packets, check the packets are not to port 0 and port 3.\n \n Test case: MAC_IPV4_NVGRE_IPV4_PAY\n ===================================\n@@ -1074,6 +1127,7 @@ Test case: MAC_IPV4_NVGRE_IPV4_PAY\n 1. validate a rule::\n \n      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\n+     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 port_representor port_id 0 / end\n \n    get the message::\n \n@@ -1088,6 +1142,7 @@ Test case: MAC_IPV4_NVGRE_IPV4_PAY\n 2. create a rule::\n \n      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\n+     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 port_representor port_id 0 / end\n      testpmd> flow list 0\n \n    check the rule exists in the list.\n@@ -1097,7 +1152,7 @@ Test case: MAC_IPV4_NVGRE_IPV4_PAY\n      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)\n      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)\n \n-   check port 3 receive the packets.\n+   check port 0 and port 3 receive the packets.\n    send mismatched packets::\n \n      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)\n@@ -1109,15 +1164,16 @@ Test case: MAC_IPV4_NVGRE_IPV4_PAY\n      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)\n      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)\n \n-   check the packets are not to port 3.\n+   check the packets are not to port 0 and port 3.\n \n 4. verify rules can be destroyed::\n \n      testpmd> flow destroy 0 rule 0\n+     testpmd> flow destroy 0 rule 1\n      testpmd> flow list 0\n \n    check the rule not exists in the list.\n-   send matched packets, check the packets are not to port 3.\n+   send matched packets, check the packets are not to port 0 and port 3.\n \n Test case: MAC_IPV4_NVGRE_IPV4_UDP_PAY\n ======================================\n@@ -1125,6 +1181,7 @@ Test case: MAC_IPV4_NVGRE_IPV4_UDP_PAY\n 1. validate a rule::\n \n      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\n+     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 port_representor port_id 0 / end\n \n    get the message::\n \n@@ -1139,6 +1196,7 @@ Test case: MAC_IPV4_NVGRE_IPV4_UDP_PAY\n 2. create a rule::\n \n      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\n+     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 port_representor port_id 0 / end\n      testpmd> flow list 0\n \n    check the rule exists in the list.\n@@ -1147,7 +1205,7 @@ Test case: MAC_IPV4_NVGRE_IPV4_UDP_PAY\n \n      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)\n \n-   check port 3 receive the packets.\n+   check port 0 and port 3 receive the packets.\n    send mismatched packets::\n \n      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)\n@@ -1157,15 +1215,16 @@ Test case: MAC_IPV4_NVGRE_IPV4_UDP_PAY\n      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)\n      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)\n \n-   check the packets are not to port 3.\n+   check the packets are not to port 0 and port 3.\n \n 4. verify rules can be destroyed::\n \n      testpmd> flow destroy 0 rule 0\n+     testpmd> flow destroy 0 rule 1\n      testpmd> flow list 0\n \n    check the rule not exists in the list.\n-   send matched packets, check the packets are not to port 3.\n+   send matched packets, check the packets are not to port 0 and port 3.\n \n Test case: MAC_IPV4_NVGRE_IPV4_TCP\n ==================================\n@@ -1173,6 +1232,7 @@ Test case: MAC_IPV4_NVGRE_IPV4_TCP\n 1. validate a rule::\n \n      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\n+     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 port_representor port_id 0 / end\n \n    get the message::\n \n@@ -1187,6 +1247,7 @@ Test case: MAC_IPV4_NVGRE_IPV4_TCP\n 2. create a rule::\n \n      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\n+     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 port_representor port_id 0 / end\n      testpmd> flow list 0\n \n    check the rule exists in the list.\n@@ -1195,7 +1256,7 @@ Test case: MAC_IPV4_NVGRE_IPV4_TCP\n \n      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)\n \n-   check port 3 receive the packets.\n+   check port 0 and port 3 receive the packets.\n    send mismatched packets::\n \n      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)\n@@ -1205,15 +1266,16 @@ Test case: MAC_IPV4_NVGRE_IPV4_TCP\n      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)\n      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)\n \n-   check the packets are not to port 3.\n+   check the packets are not to port 0 and port 3.\n \n 4. verify rules can be destroyed::\n \n      testpmd> flow destroy 0 rule 0\n+     testpmd> flow destroy 0 rule 1\n      testpmd> flow list 0\n \n    check the rule not exists in the list.\n-   send matched packets, check the packets are not to port 3.\n+   send matched packets, check the packets are not to port 0 and port 3.\n \n Test case: MAC_IPV4_NVGRE_MAC_IPV4_PAY\n ======================================\n@@ -1221,6 +1283,7 @@ Test case: MAC_IPV4_NVGRE_MAC_IPV4_PAY\n 1. validate a rule::\n \n      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\n+     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 port_representor port_id 0 / end\n \n    get the message::\n \n@@ -1235,6 +1298,7 @@ Test case: MAC_IPV4_NVGRE_MAC_IPV4_PAY\n 2. create a rule::\n \n      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\n+     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 port_representor port_id 0 / end\n      testpmd> flow list 0\n \n    check the rule exists in the list.\n@@ -1244,7 +1308,7 @@ Test case: MAC_IPV4_NVGRE_MAC_IPV4_PAY\n      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)\n      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)\n \n-   check port 3 receive the packets.\n+   check port 0 and port 3 receive the packets.\n    send mismatched packets::\n \n      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)\n@@ -1258,15 +1322,16 @@ Test case: MAC_IPV4_NVGRE_MAC_IPV4_PAY\n      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)\n      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)\n \n-   check the packets are not to port 3.\n+   check the packets are not to port 0 and port 3.\n \n 4. verify rules can be destroyed::\n \n      testpmd> flow destroy 0 rule 0\n+     testpmd> flow destroy 0 rule 1\n      testpmd> flow list 0\n \n    check the rule not exists in the list.\n-   send matched packets, check the packets are not to port 3.\n+   send matched packets, check the packets are not to port 0 and port 3.\n \n Test case: MAC_IPV4_NVGRE_MAC_IPV4_UDP_PAY\n ==========================================\n@@ -1274,6 +1339,7 @@ Test case: MAC_IPV4_NVGRE_MAC_IPV4_UDP_PAY\n 1. validate a rule::\n \n      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\n+     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 port_representor port_id 0 / end\n \n    get the message::\n \n@@ -1288,6 +1354,7 @@ Test case: MAC_IPV4_NVGRE_MAC_IPV4_UDP_PAY\n 2. create a rule::\n \n      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\n+     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 port_representor port_id 0 / end\n      testpmd> flow list 0\n \n    check the rule exists in the list.\n@@ -1296,7 +1363,7 @@ Test case: MAC_IPV4_NVGRE_MAC_IPV4_UDP_PAY\n \n      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)\n \n-   check port 3 receive the packets.\n+   check port 0 and port 3 receive the packets.\n    send mismatched packets::\n \n      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)\n@@ -1307,15 +1374,16 @@ Test case: MAC_IPV4_NVGRE_MAC_IPV4_UDP_PAY\n      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)\n      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)\n \n-   check the packets are not to port 3.\n+   check the packets are not to port 0 and port 3.\n \n 4. verify rules can be destroyed::\n \n      testpmd> flow destroy 0 rule 0\n+     testpmd> flow destroy 0 rule 1\n      testpmd> flow list 0\n \n    check the rule not exists in the list.\n-   send matched packets, check the packets are not to port 3.\n+   send matched packets, check the packets are not to port 0 and port 3.\n \n Test case: MAC_IPV4_NVGRE_MAC_IPV4_TCP\n ======================================\n@@ -1323,6 +1391,7 @@ Test case: MAC_IPV4_NVGRE_MAC_IPV4_TCP\n 1. validate a rule::\n \n      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\n+     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 port_representor port_id 0 / end\n \n    get the message::\n \n@@ -1337,6 +1406,7 @@ Test case: MAC_IPV4_NVGRE_MAC_IPV4_TCP\n 2. create a rule::\n \n      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\n+     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 port_representor port_id 0 / end\n      testpmd> flow list 0\n \n    check the rule exists in the list.\n@@ -1345,7 +1415,7 @@ Test case: MAC_IPV4_NVGRE_MAC_IPV4_TCP\n \n      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)\n \n-   check port 3 receive the packets.\n+   check port 0 and port 3 receive the packets.\n    send mismatched packets::\n \n      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)\n@@ -1356,15 +1426,16 @@ Test case: MAC_IPV4_NVGRE_MAC_IPV4_TCP\n      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)\n      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)\n \n-   check the packets are not to port 3.\n+   check the packets are not to port 0 and port 3.\n \n 4. verify rules can be destroyed::\n \n      testpmd> flow destroy 0 rule 0\n+     testpmd> flow destroy 0 rule 1\n      testpmd> flow list 0\n \n    check the rule not exists in the list.\n-   send matched packets, check the packets are not to port 3.\n+   send matched packets, check the packets are not to port 0 and port 3.\n \n Test case: MAC_IPV4_PFCP_NODE\n =============================\n@@ -1372,6 +1443,7 @@ Test case: MAC_IPV4_PFCP_NODE\n 1. validate a rule::\n \n      testpmd> flow validate 0 ingress pattern eth / ipv4 / udp / pfcp s_field is 0 / end actions represented_port ethdev_port_id 1 / end\n+     testpmd> flow validate 0 ingress pattern eth / ipv4 / udp / pfcp s_field is 0 / end actions port_representor port_id 0 / end\n \n    get the message::\n \n@@ -1386,6 +1458,7 @@ Test case: MAC_IPV4_PFCP_NODE\n 2. DUT create switch filter rules for MAC_IPV4_PFCP_NODE to VF1::\n \n     flow create 0 ingress pattern eth / ipv4 / udp / pfcp s_field is 0 / end actions represented_port ethdev_port_id 1 / end\n+    flow create 0 ingress pattern eth / ipv4 / udp / pfcp s_field is 0 / end actions port_representor port_id 0 / end\n \n    check the rule exists in the list.\n \n@@ -1397,22 +1470,23 @@ Test case: MAC_IPV4_PFCP_NODE\n \n     sendp(Ether(dst=\"00:11:22:33:44:11\")/IP()/UDP(dport=8805)/PFCP(Sfield=0),iface=\"enp134s0f1\")\n \n-   check port 3 receive the packet.\n+   check port 0 and port 3 receive the packet.\n    send mismatched packets::\n \n     sendp(Ether(dst=\"00:11:22:33:44:11\")/IP()/UDP(dport=8805)/PFCP(Sfield=1),iface=\"enp134s0f1\")\n     sendp(Ether(dst=\"00:11:22:33:44:11\")/IPv6()/UDP(dport=8805)/PFCP(Sfield=0),iface=\"enp134s0f1\")\n     sendp(Ether(dst=\"00:11:22:33:44:11\")/IPv6()/UDP(dport=8805)/PFCP(Sfield=1),iface=\"enp134s0f1\")\n \n-   check the packets are not to port 3.\n+   check the packets are not to port 0 and port 3.\n \n 4. verify rules can be destroyed::\n \n      testpmd> flow destroy 0 rule 0\n+     testpmd> flow destroy 0 rule 1\n      testpmd> flow list 0\n \n    check the rule not exists in the list.\n-   send matched packets, check the packets are not to port 3.\n+   send matched packets, check the packets are not to port 0 and port 3.\n \n Test case: MAC_IPV4_PFCP_SESSION\n ================================\n@@ -1420,6 +1494,7 @@ Test case: MAC_IPV4_PFCP_SESSION\n 1. validate a rule::\n \n      testpmd> flow validate 0 ingress pattern eth / ipv4 / udp / pfcp s_field is 1 / end actions represented_port ethdev_port_id 2 / end\n+     testpmd> flow validate 0 ingress pattern eth / ipv4 / udp / pfcp s_field is 1 / end actions represented_port ethdev_port_id 2 / end\n \n    get the message::\n \n@@ -1434,6 +1509,7 @@ Test case: MAC_IPV4_PFCP_SESSION\n 2. DUT create switch filter rules for MAC_IPV4_PFCP_SESSION to VF2::\n \n     flow create 0 ingress pattern eth / ipv4 / udp / pfcp s_field is 1 / end actions represented_port ethdev_port_id 2 / end\n+    flow create 0 ingress pattern eth / ipv4 / udp / pfcp s_field is 1 / end actions represented_port ethdev_port_id 2 / end\n \n    check the rule exists in the list.\n \n@@ -1445,22 +1521,23 @@ Test case: MAC_IPV4_PFCP_SESSION\n \n     sendp(Ether(dst=\"00:11:22:33:44:11\")/IP()/UDP(dport=8805)/PFCP(Sfield=1),iface=\"enp134s0f1\")\n \n-   check port 4 receive the packet.\n+   check port 0 and port 4 receive the packet.\n    send mismatched packets::\n \n     sendp(Ether(dst=\"00:11:22:33:44:11\")/IP()/UDP(dport=8805)/PFCP(Sfield=0),iface=\"enp134s0f1\")\n     sendp(Ether(dst=\"00:11:22:33:44:11\")/IPv6()/UDP(dport=8805)/PFCP(Sfield=0),iface=\"enp134s0f1\")\n     sendp(Ether(dst=\"00:11:22:33:44:11\")/IPv6()/UDP(dport=8805)/PFCP(Sfield=1),iface=\"enp134s0f1\")\n \n-   check the packets are not to port 4.\n+   check the packets are not to port 0 and port 4.\n \n 4. verify rules can be destroyed::\n \n      testpmd> flow destroy 0 rule 0\n+     testpmd> flow destroy 0 rule 1\n      testpmd> flow list 0\n \n    check the rule not exists in the list.\n-   send matched packets, check the packets are not to port 4.\n+   send matched packets, check the packets are not to port 0 and port 4.\n \n Test case: MAC_IPV6_PFCP_NODE\n =============================\n@@ -1468,6 +1545,7 @@ Test case: MAC_IPV6_PFCP_NODE\n 1. validate a rule::\n \n      testpmd> flow validate 0 ingress pattern eth / ipv6 / udp / pfcp s_field is 0 / end actions represented_port ethdev_port_id 3 / end\n+     testpmd> flow validate 0 ingress pattern eth / ipv6 / udp / pfcp s_field is 0 / end actions represented_port ethdev_port_id 3 / end\n \n    get the message::\n \n@@ -1482,6 +1560,7 @@ Test case: MAC_IPV6_PFCP_NODE\n 2. DUT create switch filter rules for MAC_IPV6_PFCP_NODE to VF3::\n \n     flow create 0 ingress pattern eth / ipv6 / udp / pfcp s_field is 0 / end actions represented_port ethdev_port_id 3 / end\n+    flow create 0 ingress pattern eth / ipv6 / udp / pfcp s_field is 0 / end actions represented_port ethdev_port_id 3 / end\n \n    check the rule exists in the list.\n \n@@ -1493,22 +1572,23 @@ Test case: MAC_IPV6_PFCP_NODE\n \n     sendp(Ether(dst=\"00:11:22:33:44:11\")/IPv6()/UDP(dport=8805)/PFCP(Sfield=0),iface=\"enp134s0f1\")\n \n-   check port 3 receive the packet.\n+   check port 0 and port 3 receive the packet.\n    send mismatched packets::\n \n     sendp(Ether(dst=\"00:11:22:33:44:11\")/IP()/UDP(dport=8805)/PFCP(Sfield=0),iface=\"enp134s0f1\")\n     sendp(Ether(dst=\"00:11:22:33:44:11\")/IP()/UDP(dport=8805)/PFCP(Sfield=1),iface=\"enp134s0f1\")\n     sendp(Ether(dst=\"00:11:22:33:44:11\")/IPv6()/UDP(dport=8805)/PFCP(Sfield=1),iface=\"enp134s0f1\")\n \n-   check the packets are not to port 3.\n+   check the packets are not to port 0 and port 3.\n \n 4. verify rules can be destroyed::\n \n      testpmd> flow destroy 0 rule 0\n+     testpmd> flow destroy 0 rule 1\n      testpmd> flow list 0\n \n    check the rule not exists in the list.\n-   send matched packets, check the packets are not to port 3.\n+   send matched packets, check the packets are not to port 0 and port 3.\n \n Test case: MAC_IPV6_PFCP_SESSION\n ================================\n@@ -1516,6 +1596,7 @@ Test case: MAC_IPV6_PFCP_SESSION\n 1. validate a rule::\n \n      testpmd> flow validate 0 ingress pattern eth / ipv6 / udp / pfcp s_field is 1 / end actions represented_port ethdev_port_id 1 / end\n+     testpmd> flow validate 0 ingress pattern eth / ipv6 / udp / pfcp s_field is 1 / end actions port_representor port_id 0 / end\n \n    get the message::\n \n@@ -1530,6 +1611,7 @@ Test case: MAC_IPV6_PFCP_SESSION\n 2. DUT create switch filter rules for MAC_IPV6_PFCP_SESSION to VF1::\n \n     flow create 0 ingress pattern eth / ipv6 / udp / pfcp s_field is 1 / end actions represented_port ethdev_port_id 1 / end\n+    flow create 0 ingress pattern eth / ipv6 / udp / pfcp s_field is 1 / end actions port_representor port_id 0 / end\n \n    check the rule exists in the list.\n \n@@ -1541,22 +1623,23 @@ Test case: MAC_IPV6_PFCP_SESSION\n \n     sendp(Ether(dst=\"00:11:22:33:44:11\")/IPv6()/UDP(dport=8805)/PFCP(Sfield=1),iface=\"enp134s0f1\")\n \n-   check port 3 receive the packet.\n+   check port 0 and port 3 receive the packet.\n    send mismatched packets::\n \n     sendp(Ether(dst=\"00:11:22:33:44:11\")/IP()/UDP(dport=8805)/PFCP(Sfield=0),iface=\"enp134s0f1\")\n     sendp(Ether(dst=\"00:11:22:33:44:11\")/IP()/UDP(dport=8805)/PFCP(Sfield=1),iface=\"enp134s0f1\")\n     sendp(Ether(dst=\"00:11:22:33:44:11\")/IPv6()/UDP(dport=8805)/PFCP(Sfield=0),iface=\"enp134s0f1\")\n \n-   check the packets are not to port 3.\n+   check the packets are not to port 0 and port 3.\n \n 4. verify rules can be destroyed::\n \n      testpmd> flow destroy 0 rule 0\n+     testpmd> flow destroy 0 rule 1\n      testpmd> flow list 0\n \n    check the rule not exists in the list.\n-   send matched packets, check the packets are not to port 3.\n+   send matched packets, check the packets are not to port 0 and port 3.\n \n Test case: IP multicast\n =======================\n@@ -1564,6 +1647,7 @@ Test case: IP multicast\n 1. validate a rule::\n \n      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\n+     testpmd> flow validate 0 ingress pattern eth / ipv4 dst spec 224.0.0.0 dst mask 240.0.0.0 / end actions port_representor port_id 0 / end\n \n    get the message::\n \n@@ -1578,6 +1662,7 @@ Test case: IP multicast\n 2. create a rule::\n \n      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\n+     testpmd> flow create 0 ingress pattern eth / ipv4 dst spec 224.0.0.0 dst mask 240.0.0.0 / end actions port_representor port_id 0 / end\n      testpmd> flow list 0\n \n    check the rule exists in the list.\n@@ -1586,20 +1671,21 @@ Test case: IP multicast\n \n      sendp([Ether()/IP(dst=\"239.0.0.0\")/TCP()/Raw(\"x\"*80)], iface=\"enp27s0f0\", count=1)\n \n-   check port 3 receive the packets.\n+   check port 0 and port 3 receive the packets.\n    send mismatched packets::\n \n      sendp([Ether()/IP(dst=\"128.0.0.0\")/TCP()/Raw(\"x\"*80)], iface=\"enp27s0f0\", count=1)\n \n-   check the packets are not to port 3.\n+   check the packets are not to port 0 and port 3.\n \n 4. verify rules can be destroyed::\n \n      testpmd> flow destroy 0 rule 0\n+     testpmd> flow destroy 0 rule 1\n      testpmd> flow list 0\n \n    check the rule not exists in the list.\n-   send matched packets, check the packets are not to port 3.\n+   send matched packets, check the packets are not to port 0 and port 3.\n \n Test case: L2 multicast\n =======================\n@@ -1607,6 +1693,7 @@ Test case: L2 multicast\n 1. validate a rule::\n \n      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\n+     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 port_representor port_id 0 / end\n \n    get the message::\n \n@@ -1621,6 +1708,7 @@ Test case: L2 multicast\n 2. create a rule::\n \n      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\n+     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 port_representor port_id 0 / end\n      testpmd> flow list 0\n \n    check the rule exists in the list.\n@@ -1629,20 +1717,21 @@ Test case: L2 multicast\n \n      sendp([Ether(dst=\"01:00:5e:7f:00:00\")/IP()/TCP()/Raw(\"x\"*80)], iface=\"enp27s0f0\", count=1)\n \n-   check port 3 receive the packets.\n+   check port 0 and port 3 receive the packets.\n    send mismatched packets::\n \n      sendp([Ether(dst=\"01:00:5e:ff:00:00\")/IP()/TCP()/Raw(\"x\"*80)], iface=\"enp27s0f0\", count=1)\n \n-   check the packets are not to port 3.\n+   check the packets are not to port 0 and port 3.\n \n 4. verify rules can be destroyed::\n \n      testpmd> flow destroy 0 rule 0\n+     testpmd> flow destroy 0 rule 1\n      testpmd> flow list 0\n \n    check the rule not exists in the list.\n-   send matched packets, check the packets are not to port 3.\n+   send matched packets, check the packets are not to port 0 and port 3.\n \n Test case: ethertype filter_PPPOD\n =================================\n@@ -1650,6 +1739,7 @@ Test case: ethertype filter_PPPOD\n 1. validate a rule::\n \n      testpmd> flow validate 0 ingress pattern eth type is 0x8863 / end actions represented_port ethdev_port_id 1 / end\n+     testpmd> flow validate 0 ingress pattern eth type is 0x8863 / end actions port_representor port_id 0 / end\n \n    get the message::\n \n@@ -1664,6 +1754,7 @@ Test case: ethertype filter_PPPOD\n 2. create a rule::\n \n      testpmd> flow create 0 ingress pattern eth type is 0x8863 / end actions represented_port ethdev_port_id 1 / end\n+     testpmd> flow create 0 ingress pattern eth type is 0x8863 / end actions port_representor port_id 0 / end\n      testpmd> flow list 0\n \n    check the rule exists in the list.\n@@ -1672,20 +1763,21 @@ Test case: ethertype filter_PPPOD\n \n      sendp([Ether(dst=\"00:11:22:33:44:55\")/PPPoED()/PPP()/IP()/Raw(\"x\" *80)],iface=\"enp27s0f0\",count=1)\n \n-   check port 3 receive the packets.\n+   check port 0 and port 3 receive the packets.\n    send mismatched packets::\n \n      sendp([Ether(dst=\"00:11:22:33:44:55\")/PPPoE()/PPP()/IP()/Raw(\"x\" *80)],iface=\"enp27s0f0\",count=1)\n \n-   check the packets are not to port 3.\n+   check the packets are not to port 0 and port 3.\n \n 4. verify rules can be destroyed::\n \n      testpmd> flow destroy 0 rule 0\n+     testpmd> flow destroy 0 rule 1\n      testpmd> flow list 0\n \n    check the rule not exists in the list.\n-   send matched packets, check the packets are not to port 3.\n+   send matched packets, check the packets are not to port 0 and port 3.\n \n Test case: ethertype filter_PPPOE\n =================================\n@@ -1693,6 +1785,7 @@ Test case: ethertype filter_PPPOE\n 1. validate a rule::\n \n      testpmd> flow validate 0 ingress pattern eth type is 0x8864 / end actions represented_port ethdev_port_id 1 / end\n+     testpmd> flow validate 0 ingress pattern eth type is 0x8864 / end actions port_representor port_id 0 / end\n \n    get the message::\n \n@@ -1707,6 +1800,7 @@ Test case: ethertype filter_PPPOE\n 2. create a rule::\n \n      testpmd> flow create 0 ingress pattern eth type is 0x8864 / end actions represented_port ethdev_port_id 1 / end\n+     testpmd> flow create 0 ingress pattern eth type is 0x8864 / end actions port_representor port_id 0 / end\n      testpmd> flow list 0\n \n    check the rule exists in the list.\n@@ -1715,20 +1809,21 @@ Test case: ethertype filter_PPPOE\n \n      sendp([Ether(dst=\"00:11:22:33:44:55\")/PPPoE()/PPP()/IP()/Raw(\"x\"*80)],iface=\"enp27s0f0\",count=1)\n \n-   check port 3 receive the packets.\n+   check port 0 and port 3 receive the packets.\n    send mismatched packets::\n \n      sendp([Ether(dst=\"00:11:22:33:44:55\")/PPPoED()/PPP()/IP()/Raw(\"x\"*80)],iface=\"enp27s0f0\",count=1)\n \n-   check the packets are not to port 3.\n+   check the packets are not to port 0 and port 3.\n \n 4. verify rules can be destroyed::\n \n      testpmd> flow destroy 0 rule 0\n+     testpmd> flow destroy 0 rule 1\n      testpmd> flow list 0\n \n    check the rule not exists in the list.\n-   send matched packets, check the packets are not to port 3.\n+   send matched packets, check the packets are not to port 0 and port 3.\n \n Test case: ethertype filter_IPV6\n =================================\n@@ -1736,6 +1831,7 @@ Test case: ethertype filter_IPV6\n 1. validate a rule::\n \n      testpmd> flow validate 0 ingress pattern eth type is 0x86dd / end actions represented_port ethdev_port_id 1 / end\n+     testpmd> flow validate 0 ingress pattern eth type is 0x86dd / end actions port_representor port_id 0 / end\n \n    get the message::\n \n@@ -1750,6 +1846,7 @@ Test case: ethertype filter_IPV6\n 2. create a rule::\n \n      testpmd> flow create 0 ingress pattern eth type is 0x86dd / end actions represented_port ethdev_port_id 1 / end\n+     testpmd> flow create 0 ingress pattern eth type is 0x86dd / end actions port_representor port_id 0 / end\n      testpmd> flow list 0\n \n    check the rule exists in the list.\n@@ -1759,20 +1856,21 @@ Test case: ethertype filter_IPV6\n      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)\n      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)\n \n-   check port 3 receive the packets.\n+   check port 0 and port 3 receive the packets.\n    send mismatched packets::\n \n      sendp([Ether(dst=\"00:11:22:33:44:55\")/IP()/TCP(dport=23)/(\"X\"*480)], iface=\"enp27s0f0\", count=1)\n \n-   check the packets are not to port 3.\n+   check the packets are not to port 0 and port 3.\n \n 4. verify rules can be destroyed::\n \n      testpmd> flow destroy 0 rule 0\n+     testpmd> flow destroy 0 rule 1\n      testpmd> flow list 0\n \n    check the rule not exists in the list.\n-   send matched packets, check the packets are not to port 3.\n+   send matched packets, check the packets are not to port 0 and port 3.\n \n Test case: UDP port filter_DHCP discovery\n =========================================\n@@ -1783,6 +1881,7 @@ Therefore, for DHCP discovery packets, the udp srcport is 68 and the dstport is\n 1. validate a rule::\n \n      testpmd> flow validate 0 ingress pattern eth / ipv4 / udp src is 68 dst is 67 / end actions represented_port ethdev_port_id 1 / end\n+     testpmd> flow validate 0 ingress pattern eth / ipv4 / udp src is 68 dst is 67 / end actions port_representor port_id 0 / end\n \n    get the message::\n \n@@ -1797,6 +1896,7 @@ Therefore, for DHCP discovery packets, the udp srcport is 68 and the dstport is\n 2. create a rule::\n \n      testpmd> flow create 0 ingress pattern eth / ipv4 / udp src is 68 dst is 67 / end actions represented_port ethdev_port_id 1 / end\n+     testpmd> flow create 0 ingress pattern eth / ipv4 / udp src is 68 dst is 67 / end actions port_representor port_id 0 / end\n      testpmd> flow list 0\n \n    check the rule exists in the list.\n@@ -1805,21 +1905,22 @@ Therefore, for DHCP discovery packets, the udp srcport is 68 and the dstport is\n \n      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)\n \n-   check port 3 receive the packets.\n+   check port 0 and port 3 receive the packets.\n    send mismatched packets::\n \n      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)\n      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)\n \n-   check the packets are not to port 3.\n+   check the packets are not to port 0 and port 3.\n \n 4. verify rules can be destroyed::\n \n      testpmd> flow destroy 0 rule 0\n+     testpmd> flow destroy 0 rule 1\n      testpmd> flow list 0\n \n    check the rule not exists in the list.\n-   send matched packets, check the packets are not to port 3.\n+   send matched packets, check the packets are not to port 0 and port 3.\n \n Test case: UDP port filter_DHCP offer\n =====================================\n@@ -1829,6 +1930,7 @@ Description: For DHCP offer packets, the udp srcport is 67 and the dstport is 68\n 1. validate a rule::\n \n      testpmd> flow validate 0 ingress pattern eth / ipv4 / udp src is 67 dst is 68 / end actions represented_port ethdev_port_id 1 / end\n+     testpmd> flow validate 0 ingress pattern eth / ipv4 / udp src is 67 dst is 68 / end actions port_representor port_id 0 / end\n \n    get the message::\n \n@@ -1843,6 +1945,7 @@ Description: For DHCP offer packets, the udp srcport is 67 and the dstport is 68\n 2. create a rule::\n \n      testpmd> flow create 0 ingress pattern eth / ipv4 / udp src is 67 dst is 68 / end actions represented_port ethdev_port_id 1 / end\n+     testpmd> flow create 0 ingress pattern eth / ipv4 / udp src is 67 dst is 68 / end actions port_representor port_id 0 / end\n      testpmd> flow list 0\n \n    check the rule exists in the list.\n@@ -1851,21 +1954,22 @@ Description: For DHCP offer packets, the udp srcport is 67 and the dstport is 68\n \n      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)\n \n-   check port 3 receive the packets.\n+   check port 0 and port 3 receive the packets.\n    send mismatched packets::\n \n      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)\n      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)\n \n-   check the packets are not to port 3.\n+   check the packets are not to port 0 and port 3.\n \n 4. verify rules can be destroyed::\n \n      testpmd> flow destroy 0 rule 0\n+     testpmd> flow destroy 0 rule 1\n      testpmd> flow list 0\n \n    check the rule not exists in the list.\n-   send matched packets, check the packets are not to port 3.\n+   send matched packets, check the packets are not to port 0 and port 3.\n \n Test case: UDP port filter_VXLAN\n ================================\n@@ -1875,6 +1979,7 @@ Description: The UDP dst port number used by VXLAN is 4789.\n 1. validate a rule::\n \n      testpmd> flow validate 0 ingress pattern eth / ipv4 / udp dst is 4789 / end actions represented_port ethdev_port_id 1 / end\n+     testpmd> flow validate 0 ingress pattern eth / ipv4 / udp dst is 4789 / end actions port_representor port_id 0 / end\n \n    get the message::\n \n@@ -1889,6 +1994,7 @@ Description: The UDP dst port number used by VXLAN is 4789.\n 2. create a rule::\n \n      testpmd> flow create 0 ingress pattern eth / ipv4 / udp dst is 4789 / end actions represented_port ethdev_port_id 1 / end\n+     testpmd> flow create 0 ingress pattern eth / ipv4 / udp dst is 4789 / end actions port_representor port_id 0 / end\n      testpmd> flow list 0\n \n    check the rule exists in the list.\n@@ -1897,20 +2003,21 @@ Description: The UDP dst port number used by VXLAN is 4789.\n \n      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)\n \n-   check port 3 receive the packets.\n+   check port 0 and port 3 receive the packets.\n    send mismatched packets::\n \n      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)\n \n-   check the packets are not to port 3.\n+   check the packets are not to port 0 and port 3.\n \n 4. verify rules can be destroyed::\n \n      testpmd> flow destroy 0 rule 0\n+     testpmd> flow destroy 0 rule 1\n      testpmd> flow list 0\n \n    check the rule not exists in the list.\n-   send matched packets, check the packets are not to port 3.\n+   send matched packets, check the packets are not to port 0 and port 3.\n \n Test case: MAC_VLAN filter\n ==========================\n@@ -1918,6 +2025,7 @@ Test case: MAC_VLAN filter\n 1. validate a rule::\n \n      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\n+     testpmd> flow validate 0 ingress pattern eth dst is 00:11:22:33:44:55 / vlan tci is 1 / end actions port_representor port_id 0 / end\n \n    get the message::\n \n@@ -1932,6 +2040,7 @@ Test case: MAC_VLAN filter\n 2. create a rule::\n \n      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\n+     testpmd> flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / vlan tci is 1 / end actions port_representor port_id 0 / end\n      testpmd> flow list 0\n \n    check the rule exists in the list.\n@@ -1940,21 +2049,22 @@ Test case: MAC_VLAN filter\n \n      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)\n \n-   check port 3 receive the packets.\n+   check port 0 and port 3 receive the packets.\n    send mismatched packets::\n \n      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)\n      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)\n \n-   check the packets are not to port 3.\n+   check the packets are not to port 0 and port 3.\n \n 4. verify rules can be destroyed::\n \n      testpmd> flow destroy 0 rule 0\n+     testpmd> flow destroy 0 rule 1\n      testpmd> flow list 0\n \n    check the rule not exists in the list.\n-   send matched packets, check the packets are not to port 3.\n+   send matched packets, check the packets are not to port 0 and port 3.\n \n Test case: VLAN filter\n ======================\n@@ -1962,6 +2072,7 @@ Test case: VLAN filter\n 1. validate a rule::\n \n      testpmd> flow validate 0 ingress pattern eth / vlan tci is 1 / end actions represented_port ethdev_port_id 1 / end\n+     testpmd> flow validate 0 ingress pattern eth / vlan tci is 1 / end actions port_representor port_id 0 / end\n \n    get the message::\n \n@@ -1976,6 +2087,7 @@ Test case: VLAN filter\n 2. create a rule::\n \n      testpmd> flow create 0 ingress pattern eth / vlan tci is 1 / end actions represented_port ethdev_port_id 1 / end\n+     testpmd> flow create 0 ingress pattern eth / vlan tci is 1 / end actions port_representor port_id 0 / end\n      testpmd> flow list 0\n \n    check the rule exists in the list.\n@@ -1984,20 +2096,21 @@ Test case: VLAN filter\n \n      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)\n \n-   check port 3 receive the packets.\n+   check port 0 and port 3 receive the packets.\n    send mismatched packets::\n \n      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)\n \n-   check the packets are not to port 3.\n+   check the packets are not to port 0 and port 3.\n \n 4. verify rules can be destroyed::\n \n      testpmd> flow destroy 0 rule 0\n+     testpmd> flow destroy 0 rule 1\n      testpmd> flow list 0\n \n    check the rule not exists in the list.\n-   send matched packets, check the packets are not to port 3.\n+   send matched packets, check the packets are not to port 0 and port 3.\n \n Test case: MAC_IPV4_L2TPv3\n ==========================\n@@ -2005,6 +2118,7 @@ Test case: MAC_IPV4_L2TPv3\n 1. validate a rule::\n \n      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\n+     testpmd> flow validate 0 priority 0 ingress pattern eth / ipv4 src is 192.168.0.2 / l2tpv3oip session_id is 1 / end actions port_representor port_id 0 / end\n \n    get the message::\n \n@@ -2019,6 +2133,7 @@ Test case: MAC_IPV4_L2TPv3\n 2. create a rule::\n \n      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\n+     testpmd> flow create 0 priority 0 ingress pattern eth / ipv4 src is 192.168.0.2 / l2tpv3oip session_id is 1 / end actions port_representor port_id 0 / end\n      testpmd> flow list 0\n \n    check the rule exists in the list.\n@@ -2027,22 +2142,23 @@ Test case: MAC_IPV4_L2TPv3\n \n      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)\n \n-   check port 3 receive the packet.\n+   check port 0 and port 3 receive the packet.\n    send mismatched packets::\n \n      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)\n      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)\n      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)\n \n-   check the packets are not to port 3.\n+   check the packets are not to port 0 and port 3.\n \n 4. verify rules can be destroyed::\n \n      testpmd> flow destroy 0 rule 0\n+     testpmd> flow destroy 0 rule 1\n      testpmd> flow list 0\n \n    check the rule not exists in the list.\n-   send matched packets, check the packets are not to port 3.\n+   send matched packets, check the packets are not to port 0 and port 3.\n \n Test case: MAC_IPV6_L2TPv3\n ==========================\n@@ -2050,6 +2166,7 @@ Test case: MAC_IPV6_L2TPv3\n 1. validate a rule::\n \n      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\n+     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 port_representor port_id 0 / end\n \n    get the message::\n \n@@ -2064,6 +2181,7 @@ Test case: MAC_IPV6_L2TPv3\n 2. create a rule::\n \n      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\n+     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 port_representor port_id 0 / end\n      testpmd> flow list 0\n \n    check the rule exists in the list.\n@@ -2072,22 +2190,23 @@ Test case: MAC_IPV6_L2TPv3\n \n      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)\n \n-   check port 3 receive the packet.\n+   check port 0 and port 3 receive the packet.\n    send mismatched packets::\n \n      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)\n      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)\n      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)\n \n-   check the packets are not to port 3.\n+   check the packets are not to port 0 and port 3.\n \n 4. verify rules can be destroyed::\n \n      testpmd> flow destroy 0 rule 0\n+     testpmd> flow destroy 0 rule 1\n      testpmd> flow list 0\n \n    check the rule not exists in the list.\n-   send matched packets, check the packets are not to port 3.\n+   send matched packets, check the packets are not to port 0 and port 3.\n \n Test case: MAC_IPV4_ESP\n =======================\n@@ -2095,6 +2214,7 @@ Test case: MAC_IPV4_ESP\n 1. validate a rule::\n \n      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\n+     testpmd> flow validate 0 priority 0 ingress pattern eth / ipv4 src is 192.168.0.2 / esp spi is 1 / end actions port_representor port_id 0 / end\n \n    get the message::\n \n@@ -2109,6 +2229,7 @@ Test case: MAC_IPV4_ESP\n 2. create a rule::\n \n      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\n+     testpmd> flow create 0 priority 0 ingress pattern eth / ipv4 src is 192.168.0.2 / esp spi is 1 / end actions port_representor port_id 0 / end\n      testpmd> flow list 0\n \n    check the rule exists in the list.\n@@ -2117,22 +2238,23 @@ Test case: MAC_IPV4_ESP\n \n      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)\n \n-   check port 3 receive the packet.\n+   check port 0 and port 3 receive the packet.\n    send mismatched packets::\n \n      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)\n      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)\n      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)\n \n-   check the packets are not to port 3.\n+   check the packets are not to port 0 and port 3.\n \n 4. verify rules can be destroyed::\n \n      testpmd> flow destroy 0 rule 0\n+     testpmd> flow destroy 0 rule 1\n      testpmd> flow list 0\n \n    check the rule not exists in the list.\n-   send matched packets, check the packets are not to port 3.\n+   send matched packets, check the packets are not to port 0 and port 3.\n \n Test case: MAC_IPV6_ESP\n =======================\n@@ -2140,6 +2262,7 @@ Test case: MAC_IPV6_ESP\n 1. validate a rule::\n \n      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\n+     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 port_representor port_id 0 / end\n \n    get the message::\n \n@@ -2154,6 +2277,7 @@ Test case: MAC_IPV6_ESP\n 2. create a rule::\n \n      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\n+     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 port_representor port_id 0 / end\n      testpmd> flow list 0\n \n    check the rule exists in the list.\n@@ -2162,22 +2286,23 @@ Test case: MAC_IPV6_ESP\n \n      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)\n \n-   check port 3 receive the packet.\n+   check port 0 and port 3 receive the packet.\n    send mismatched packets::\n \n      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)\n      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)\n      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)\n \n-   check the packets are not to port 3.\n+   check the packets are not to port 0 and port 3.\n \n 4. verify rules can be destroyed::\n \n      testpmd> flow destroy 0 rule 0\n+     testpmd> flow destroy 0 rule 1\n      testpmd> flow list 0\n \n    check the rule not exists in the list.\n-   send matched packets, check the packets are not to port 3.\n+   send matched packets, check the packets are not to port 0 and port 3.\n \n Test case: MAC_IPV4_AH\n ======================\n@@ -2185,6 +2310,7 @@ Test case: MAC_IPV4_AH\n 1. validate a rule::\n \n      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\n+     testpmd> flow validate 0 priority 0 ingress pattern eth / ipv4 src is 192.168.0.2 / ah spi is 1 / end actions port_representor port_id 0 / end\n \n    get the message::\n \n@@ -2199,6 +2325,7 @@ Test case: MAC_IPV4_AH\n 2. create a rule::\n \n      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\n+     testpmd> flow create 0 priority 0 ingress pattern eth / ipv4 src is 192.168.0.2 / ah spi is 1 / end actions port_representor port_id 0 / end\n      testpmd> flow list 0\n \n    check the rule exists in the list.\n@@ -2207,22 +2334,23 @@ Test case: MAC_IPV4_AH\n \n      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)\n \n-   check port 3 receive the packet.\n+   check port 0 and port 3 receive the packet.\n    send mismatched packets::\n \n      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)\n      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)\n      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)\n \n-   check the packets are not to port 3.\n+   check the packets are not to port 0 and port 3.\n \n 4. verify rules can be destroyed::\n \n      testpmd> flow destroy 0 rule 0\n+     testpmd> flow destroy 0 rule 1\n      testpmd> flow list 0\n \n    check the rule not exists in the list.\n-   send matched packets, check the packets are not to port 3.\n+   send matched packets, check the packets are not to port 0 and port 3.\n \n Test case: MAC_IPV6_AH\n ======================\n@@ -2230,6 +2358,7 @@ Test case: MAC_IPV6_AH\n 1. validate a rule::\n \n      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\n+     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 port_representor port_id 0 / end\n \n    get the message::\n \n@@ -2244,6 +2373,7 @@ Test case: MAC_IPV6_AH\n 2. create a rule::\n \n      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\n+     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 port_representor port_id 0 / end\n      testpmd> flow list 0\n \n    check the rule exists in the list.\n@@ -2252,22 +2382,23 @@ Test case: MAC_IPV6_AH\n \n      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)\n \n-   check port 3 receive the packet.\n+   check port 0 and port 3 receive the packet.\n    send mismatched packets::\n \n      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)\n      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)\n      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)\n \n-   check the packets are not to port 3.\n+   check the packets are not to port 0 and port 3.\n \n 4. verify rules can be destroyed::\n \n      testpmd> flow destroy 0 rule 0\n+     testpmd> flow destroy 0 rule 1\n      testpmd> flow list 0\n \n    check the rule not exists in the list.\n-   send matched packets, check the packets are not to port 3.\n+   send matched packets, check the packets are not to port 0 and port 3.\n \n Test case: MAC_IPV4_NAT-T-ESP\n =============================\n@@ -2275,6 +2406,7 @@ Test case: MAC_IPV4_NAT-T-ESP\n 1. validate a rule::\n \n      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\n+     testpmd> flow validate 0 priority 0 ingress pattern eth / ipv4 src is 192.168.0.2 / udp / esp spi is 1 / end actions port_representor port_id 0 / end\n \n    get the message::\n \n@@ -2289,6 +2421,7 @@ Test case: MAC_IPV4_NAT-T-ESP\n 2. create a rule::\n \n      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\n+     testpmd> flow create 0 priority 0 ingress pattern eth / ipv4 src is 192.168.0.2 / udp / esp spi is 1 / end actions port_representor port_id 0 / end\n      testpmd> flow list 0\n \n    check the rule exists in the list.\n@@ -2297,22 +2430,23 @@ Test case: MAC_IPV4_NAT-T-ESP\n \n      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)\n \n-   check port 3 receive the packet.\n+   check port 0 and port 3 receive the packet.\n    send mismatched packets::\n \n      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)\n      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)\n      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)\n \n-   check the packets are not to port 3.\n+   check the packets are not to port 0 and port 3.\n \n 4. verify rules can be destroyed::\n \n      testpmd> flow destroy 0 rule 0\n+     testpmd> flow destroy 0 rule 1\n      testpmd> flow list 0\n \n    check the rule not exists in the list.\n-   send matched packets, check the packets are not to port 3.\n+   send matched packets, check the packets are not to port 0 and port 3.\n \n Test case: MAC_IPV6_NAT-T-ESP\n =============================\n@@ -2320,6 +2454,7 @@ Test case: MAC_IPV6_NAT-T-ESP\n 1. validate a rule::\n \n      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\n+     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 port_representor port_id 0 / end\n \n    get the message::\n \n@@ -2334,6 +2469,7 @@ Test case: MAC_IPV6_NAT-T-ESP\n 2. create a rule::\n \n      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\n+     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 port_representor port_id 0 / end\n      testpmd> flow list 0\n \n    check the rule exists in the list.\n@@ -2342,22 +2478,23 @@ Test case: MAC_IPV6_NAT-T-ESP\n \n      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)\n \n-   check port 3 receive the packet.\n+   check port 0 and port 3 receive the packet.\n    send mismatched packets::\n \n      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)\n      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)\n      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)\n \n-   check the packets are not to port 3.\n+   check the packets are not to port 0 and port 3.\n \n 4. verify rules can be destroyed::\n \n      testpmd> flow destroy 0 rule 0\n+     testpmd> flow destroy 0 rule 1\n      testpmd> flow list 0\n \n    check the rule not exists in the list.\n-   send matched packets, check the packets are not to port 3.\n+   send matched packets, check the packets are not to port 0 and port 3.\n \n Test Case: multirules test\n ==========================\n@@ -2375,6 +2512,7 @@ Subcase 1: add existing rules but with different vfs\n \n 2. create rules with same pattern items but to different vfs::\n \n+     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 port_representor port_id 0 / end\n      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\n      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\n      testpmd> flow list 0\n@@ -2385,23 +2523,31 @@ Subcase 1: add existing rules but with different vfs\n \n      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)\n \n-   check both port 3 and 4 receive the packet.\n+   check port 0, port 3 and 4 receive the packet.\n \n 4. destroy the rule 0, and send the matched packets::\n \n      testpmd> flow destroy 0 rule 0\n      testpmd> flow list 0\n \n-   check only rule 1 exists in the list.\n-   send the same matched packets, check only port 4 receives the packets.\n+   check only rule 1 and rule 2 exists in the list.\n+   send the same matched packets, check only port 3 and port 4 receives the packets.\n \n 5. destroy rule 1, send the matched packets::\n \n      testpmd> flow destroy 0 rule 1\n      testpmd> flow list 0\n \n+   check only rule 2 exists in the list.\n+   send the same matched packets, check only port 4 receives the packets.\n+\n+6. destroy rule 2, send the matched packets::\n+\n+     testpmd> flow destroy 0 rule 2\n+     testpmd> flow list 0\n+\n    check no rule exists in the list\n-   send the same matched packets, check the packets are not to port 3 and 4.\n+   send the same matched packets, check the packets are not to port 0 or port 3 or 4.\n \n Subcase 2: add existing rules with the same vfs\n -----------------------------------------------\n",
    "prefixes": [
        "V1",
        "1/4"
    ]
}