get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 114254,
    "url": "http://patchwork.dpdk.org/api/patches/114254/?format=api",
    "web_url": "http://patchwork.dpdk.org/project/dts/patch/20220727035054.1412427-3-qi.fu@intel.com/",
    "project": {
        "id": 3,
        "url": "http://patchwork.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": "<20220727035054.1412427-3-qi.fu@intel.com>",
    "list_archive_url": "https://inbox.dpdk.org/dts/20220727035054.1412427-3-qi.fu@intel.com",
    "date": "2022-07-27T03:50:52",
    "name": "[V1,2/4] test_plans:add test plan for iavf fdir protocol agnostic flow offloading",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": false,
    "hash": "23719c8caff6451d8d41fcf222a308543db42695",
    "submitter": {
        "id": 1689,
        "url": "http://patchwork.dpdk.org/api/people/1689/?format=api",
        "name": "Fu, Qi",
        "email": "qi.fu@intel.com"
    },
    "delegate": null,
    "mbox": "http://patchwork.dpdk.org/project/dts/patch/20220727035054.1412427-3-qi.fu@intel.com/mbox/",
    "series": [
        {
            "id": 24096,
            "url": "http://patchwork.dpdk.org/api/series/24096/?format=api",
            "web_url": "http://patchwork.dpdk.org/project/dts/list/?series=24096",
            "date": "2022-07-27T03:50:50",
            "name": "test_plans: add test plans for CVL PF/VF FDIR/RSS protocol agnostic flow offloading",
            "version": 1,
            "mbox": "http://patchwork.dpdk.org/series/24096/mbox/"
        }
    ],
    "comments": "http://patchwork.dpdk.org/api/patches/114254/comments/",
    "check": "pending",
    "checks": "http://patchwork.dpdk.org/api/patches/114254/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 D6CD0A00C4;\n\tWed, 27 Jul 2022 05:51:13 +0200 (CEST)",
            "from [217.70.189.124] (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id D15D241144;\n\tWed, 27 Jul 2022 05:51:13 +0200 (CEST)",
            "from mga04.intel.com (mga04.intel.com [192.55.52.120])\n by mails.dpdk.org (Postfix) with ESMTP id 6213B400D7\n for <dts@dpdk.org>; Wed, 27 Jul 2022 05:51:11 +0200 (CEST)",
            "from orsmga006.jf.intel.com ([10.7.209.51])\n by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 26 Jul 2022 20:51:10 -0700",
            "from dpdk-qifu-cxl.sh.intel.com ([10.67.119.10])\n by orsmga006.jf.intel.com with ESMTP; 26 Jul 2022 20:51:09 -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=1658893871; x=1690429871;\n h=from:to:cc:subject:date:message-id:in-reply-to:\n references:mime-version:content-transfer-encoding;\n bh=TT4RUTPWUdDPa7+ERPlEDSnjt7DoRwjrIUBTfyqL2tY=;\n b=iVNkUHK5GOnontSlVIIWPtBDiL2vqDVh07+C4uno6z2Jr6t64brFCCnp\n pDi4bMzsAWVhMk7Sd9UNvRgK/coe2e6d4kx4QBbu/6r3j4jS2rx6Rl5Oj\n pBKV/hi2wGuDIlbJrf+SJfKl3JSY6thPGXfaPFAzct/FP1Ur/puRFYTz7\n euYpISJ+ggr420Q4fYXdP/F+Jcj/W5oyM6kKa7Y3PlCZE6U/b6uh2A4qV\n 1JFXiNd91GugfiiyNVmLXN2E8VSR1an6gxLCtQFn9Brr3I+rxMwDW+RDB\n us3Utzwm1tvlXSCB1bR2dFVSyFvJi73Ix+iiPow1F4EN7hExO95jL8JVl A==;",
        "X-IronPort-AV": [
            "E=McAfee;i=\"6400,9594,10420\"; a=\"286891984\"",
            "E=Sophos;i=\"5.93,194,1654585200\"; d=\"scan'208\";a=\"286891984\"",
            "E=Sophos;i=\"5.93,194,1654585200\"; d=\"scan'208\";a=\"575797998\""
        ],
        "X-ExtLoop1": "1",
        "From": "Qi Fu <qi.fu@intel.com>",
        "To": "dts@dpdk.org",
        "Cc": "Qi Fu <qi.fu@intel.com>",
        "Subject": "[dts][PATCH V1 2/4]test_plans:add test plan for iavf fdir protocol\n agnostic flow offloading",
        "Date": "Wed, 27 Jul 2022 11:50:52 +0800",
        "Message-Id": "<20220727035054.1412427-3-qi.fu@intel.com>",
        "X-Mailer": "git-send-email 2.25.1",
        "In-Reply-To": "<20220727035054.1412427-1-qi.fu@intel.com>",
        "References": "<20220727035054.1412427-1-qi.fu@intel.com>",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "quoted-printable",
        "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": "Add test plan for iavf fdir protocol agnostic flow offloading.\n\nSigned-off-by: Qi Fu <qi.fu@intel.com>\n---\n ..._fdir_protocol_agnostic_flow_test_plan.rst | 373 ++++++++++++++++++\n test_plans/index.rst                          |   1 +\n 2 files changed, 374 insertions(+)\n create mode 100644 test_plans/iavf_fdir_protocol_agnostic_flow_test_plan.rst",
    "diff": "diff --git a/test_plans/iavf_fdir_protocol_agnostic_flow_test_plan.rst b/test_plans/iavf_fdir_protocol_agnostic_flow_test_plan.rst\nnew file mode 100644\nindex 00000000..00e24335\n--- /dev/null\n+++ b/test_plans/iavf_fdir_protocol_agnostic_flow_test_plan.rst\n@@ -0,0 +1,373 @@\n+.. Copyright (c) <2022>, Intel Corporation\r\n+   All rights reserved.\r\n+\r\n+   Redistribution and use in source and binary forms, with or without\r\n+   modification, are permitted provided that the following conditions\r\n+   are met:\r\n+\r\n+   - Redistributions of source code must retain the above copyright\r\n+     notice, this list of conditions and the following disclaimer.\r\n+\r\n+   - Redistributions in binary form must reproduce the above copyright\r\n+     notice, this list of conditions and the following disclaimer in\r\n+     the documentation and/or other materials provided with the\r\n+     distribution.\r\n+\r\n+   - Neither the name of Intel Corporation nor the names of its\r\n+     contributors may be used to endorse or promote products derived\r\n+     from this software without specific prior written permission.\r\n+\r\n+   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\r\n+   \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\r\n+   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS\r\n+   FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE\r\n+   COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,\r\n+   INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\r\n+   (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\r\n+   SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\r\n+   HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,\r\n+   STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\r\n+   ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED\r\n+   OF THE POSSIBILITY OF SUCH DAMAGE.\r\n+\r\n+=====================================================\r\n+IAVF enable Protocol agnostic flow offloading in FDIR\r\n+=====================================================\r\n+\r\n+Description\r\n+===========\r\n+IAVF enable protocol agnostic flow offloading in fdir, that means we can use raw packet filter instead of naming filter(legacy flow offloading).\r\n+As the raw packet filter using spec and mask to describr pattern and input set,\r\n+the protocol agnostic flow offloading is more flexible and customizable compared with legacy flow offloading.\r\n+To reduce redundancy, we don't check all the patterns and input set which is covered by naming filter test cases.\r\n+this plan only cover below test hints to check the feasibility of protocol agnostic flow offloading:\r\n+\r\n+1. try FDIR with regular 5 tuples for any UDP or TCP packet\r\n+2. try FDIR with VXLAN inner IP match (make sure VXLAN tunnel port has been configured either by DCF or swtichdev)\r\n+3. try FDIR with GTPU inner IP match\r\n+4. try FDIR with GTPU outer IP match\r\n+5. try FDIR with un-word-aligned key\r\n+\r\n+And all the rules are created by packageviewer(CVL parser emulator).\r\n+\r\n+\r\n+Prerequisites\r\n+=============\r\n+\r\n+Hardware\r\n+--------\r\n+Supportted NICs: columbiaville_25g/columbiaville_100g\r\n+\r\n+Software\r\n+--------\r\n+DPDK: http://dpdk.org/git/dpdk\r\n+Scapy: http://www.secdev.org/projects/scapy/\r\n+\r\n+General Set Up\r\n+--------------\r\n+1. Compile DPDK::\r\n+\r\n+    # CC=gcc meson --werror -Denable_kmods=True -Dlibdir=lib --default-library=static <dpdk build dir>\r\n+    # ninja -C <dpdk build dir> -j 110\r\n+\r\n+2. Generate 2 VF from PF(0000:18:00.0 here), ::\r\n+\r\n+    # echo 2 > /sys/bus/pci/devices/0000\\:18\\:00.0/sriov_numvfs\r\n+\r\n+3. Get the pci device id and interface of DUT and tester::\r\n+\r\n+    <dpdk dir># ./usertools/dpdk-devbind.py -s\r\n+\r\n+    0000:18:01.0 'Ethernet Adaptive Virtual Function 1889' if=ens785f0v0 drv=iavf unused=vfio-pci\r\n+    0000:18:01.1 'Ethernet Adaptive Virtual Function 1889' if=ens785f0v1 drv=iavf unused=vfio-pci\r\n+\r\n+4. set VF0 trust on::\r\n+\r\n+    # ip link set ens785f0 vf 0 trust on\r\n+\r\n+5. set mac address for VF1::\r\n+\r\n+    # ip link set ens785f0 vf 1 mac 00:11:22:33:44:55\r\n+\r\n+6. Bind the DUT port to dpdk::\r\n+\r\n+    <dpdk dir># ./usertools/dpdk-devbind.py -b vfio-pci <DUT port pci device id>\r\n+\r\n+7. Launch the userland ``testpmd`` application on DUT as follows and ::\r\n+\r\n+    <dpdk build dir>/app/dpdk-testpmd <EAL options> -a 0000:18:01.0,cap=dcf -a 0000:18:01.1 -- -i --rxq=<queue number> --txq=<queue number>\r\n+    testpmd> set fwd rxonly\r\n+    testpmd> set verbose 1\r\n+    testpmd> port config 0 udp_tunnel_port add vxlan 0x12b5\r\n+    testpmd> start\r\n+\r\n+..note:: \r\n+\r\n+    For <EAL options>, you can use \"-c 0xf -n 1\", you can also refer to testpmd doc for other setings.\r\n+\r\n+8. Import layers when start scapy::\r\n+\r\n+    >>> import sys\r\n+    >>> from scapy.contrib.gtp import *\r\n+\r\n+\r\n+Test Case\r\n+=========\r\n+common steps\r\n+------------\r\n+1. validate rules.\r\n+2. create rules and list rules.\r\n+3. send matched packets, check the action is right::\r\n+    queue index: to right queue with mark id\r\n+    rss queues: to right queue group with mark id\r\n+    passthru: distributed by rss with mark id\r\n+    drop: not receive pkt\r\n+4. send mismatched packets, check the action is not right::\r\n+    queue index: not to right queue without mark id\r\n+    rss queues: not to right queue group without mark id\r\n+    passthru: distributed by rss without mark id\r\n+    drop: receive pkt\r\n+5. destroy rule, list rules.\r\n+6. send matched packets, check the action is not right.\r\n+\r\n+Test case 1: VF_FDIR_MAC/IPv4/UDP\r\n+---------------------------------\r\n+rule::\r\n+\r\n+    flow create 1 ingress pattern raw pattern spec 00112233445500000000000208004500001C0000000000110000C0A80014C0A800150016001700080000 pattern mask 0000000000000000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFF00000000 / end actions queue index 1 / mark id 10 / end\r\n+    flow create 1 ingress pattern raw pattern spec 00112233445500000000000208004500001C0000000000110000C0A80014C0A800150016001700080000 pattern mask 0000000000000000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFF00000000 / end actions rss queues 0 1 2 3 end / mark id 4 / end\r\n+    flow create 1 ingress pattern raw pattern spec 00112233445500000000000208004500001C0000000000110000C0A80014C0A800150016001700080000 pattern mask 0000000000000000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFF00000000 / end actions passthru / mark id 1 / end\r\n+    flow create 1 ingress pattern raw pattern spec 00112233445500000000000208004500001C0000000000110000C0A80014C0A800150016001700080000 pattern mask 0000000000000000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFF00000000 / end actions drop / end\r\n+\r\n+matched packets::\r\n+\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(src=\"192.168.0.20\",dst=\"192.168.0.21\")/UDP(sport=22,dport=23)/Raw('x' * 80)],iface=\"ens786f0\")\r\n+\r\n+mismatched packets::\r\n+\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(src=\"192.168.1.20\",dst=\"192.168.0.21\")/UDP(sport=22,dport=23)/Raw('x' * 80)],iface=\"ens786f0\")\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(src=\"192.168.0.20\",dst=\"192.168.0.22\")/UDP(sport=22,dport=23)/Raw('x' * 80)],iface=\"ens786f0\")\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(src=\"192.168.0.20\",dst=\"192.168.0.21\")/UDP(sport=21,dport=23)/Raw('x' * 80)],iface=\"ens786f0\")\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(src=\"192.168.0.20\",dst=\"192.168.0.21\")/UDP(sport=22,dport=24)/Raw('x' * 80)],iface=\"ens786f0\")\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(src=\"192.168.0.20\",dst=\"192.168.0.21\")/TCP(sport=22,dport=23)/Raw('x' * 80)],iface=\"ens786f0\")\r\n+\r\n+\r\n+Test case 2: VF_FDIR_MAC/IPv6/TCP\r\n+---------------------------------\r\n+rule::\r\n+\r\n+    flow create 1 ingress pattern raw pattern spec 00112233445500000000000286DD6000000000140600CDCD910A222254988475111139001010CDCD910A2222549884751111390020200016001700000000000000005000000000000000 pattern mask 00000000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000000000000000 / end actions queue index 1 / mark id 10 / end\r\n+    flow create 1 ingress pattern raw pattern spec 00112233445500000000000286DD6000000000140600CDCD910A222254988475111139001010CDCD910A2222549884751111390020200016001700000000000000005000000000000000 pattern mask 00000000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000000000000000 / end actions rss queues 0 1 2 3 end / mark id 4 / end\r\n+    flow create 1 ingress pattern raw pattern spec 00112233445500000000000286DD6000000000140600CDCD910A222254988475111139001010CDCD910A2222549884751111390020200016001700000000000000005000000000000000 pattern mask 00000000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000000000000000 / end actions passthru / mark id 1 / end\r\n+    flow create 1 ingress pattern raw pattern spec 00112233445500000000000286DD6000000000140600CDCD910A222254988475111139001010CDCD910A2222549884751111390020200016001700000000000000005000000000000000 pattern mask 00000000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000000000000000 / end actions drop / end\r\n+\r\n+matched packets::\r\n+\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IPv6(dst=\"CDCD:910A:2222:5498:8475:1111:3900:2020\", src=\"CDCD:910A:2222:5498:8475:1111:3900:1010\")/TCP(sport=22,dport=23)/(\"X\"*480)], iface=\"ens786f0\")\r\n+\r\n+mismatched packets::\r\n+\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IPv6(dst=\"CDCD:910A:2222:5498:8475:1111:3900:2021\", src=\"CDCD:910A:2222:5498:8475:1111:3900:1010\")/TCP(sport=22,dport=23)/(\"X\"*480)], iface=\"ens786f0\")\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IPv6(dst=\"CDCD:910A:2222:5498:8475:1111:3900:2020\", src=\"CDCD:910A:2222:5498:8475:1111:3900:1011\")/TCP(sport=22,dport=23)/(\"X\"*480)], iface=\"ens786f0\")\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IPv6(dst=\"CDCD:910A:2222:5498:8475:1111:3900:2020\", src=\"CDCD:910A:2222:5498:8475:1111:3900:1010\")/TCP(sport=21,dport=23)/(\"X\"*480)], iface=\"ens786f0\")\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IPv6(dst=\"CDCD:910A:2222:5498:8475:1111:3900:2020\", src=\"CDCD:910A:2222:5498:8475:1111:3900:1010\")/TCP(sport=22,dport=24)/(\"X\"*480)], iface=\"ens786f0\")\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IPv6(dst=\"CDCD:910A:2222:5498:8475:1111:3900:2020\", src=\"CDCD:910A:2222:5498:8475:1111:3900:1010\")/UDP(sport=22,dport=23)/(\"X\"*480)], iface=\"ens786f0\")\r\n+\r\n+\r\n+Test case 3: VF_FDIR_MAC/IPv4/UDP/VXLAN/MAC/IPv4/PAY\r\n+----------------------------------------------------\r\n+rule::\r\n+\r\n+    flow create 1 ingress pattern raw pattern spec 0011223344550000000000020800450000460000000000110000C0A80014C0A80015000012B50032000008000000000000000000000000010000000000020800450000140000000000000000C0A80014C0A80015 pattern mask 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000FFFFFFFFFFFFFFFF / end actions queue index 1 / mark id 10 / end\r\n+    flow create 1 ingress pattern raw pattern spec 0011223344550000000000020800450000460000000000110000C0A80014C0A80015000012B50032000008000000000000000000000000010000000000020800450000140000000000000000C0A80014C0A80015 pattern mask 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000FFFFFFFFFFFFFFFF / end actions rss queues 0 1 2 3 end / mark id 4 / end\r\n+    flow create 1 ingress pattern raw pattern spec 0011223344550000000000020800450000460000000000110000C0A80014C0A80015000012B50032000008000000000000000000000000010000000000020800450000140000000000000000C0A80014C0A80015 pattern mask 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000FFFFFFFFFFFFFFFF / end actions passthru / mark id 1 / end\r\n+    flow create 1 ingress pattern raw pattern spec 0011223344550000000000020800450000460000000000110000C0A80014C0A80015000012B50032000008000000000000000000000000010000000000020800450000140000000000000000C0A80014C0A80015 pattern mask 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000FFFFFFFFFFFFFFFF / end actions drop / end\r\n+\r\n+matched packets::\r\n+\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IP()/UDP()/VXLAN()/Ether()/IP(src=\"192.168.0.20\",dst=\"192.168.0.21\")/Raw('x' * 80)],iface=\"ens786f0\")\r\n+\r\n+mismatched packets::\r\n+\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IP()/UDP()/VXLAN()/Ether()/IP(src=\"192.168.0.20\",dst=\"192.168.1.21\")/Raw('x' * 80)],iface=\"ens786f0\")\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IP()/UDP()/VXLAN()/Ether()/IP(src=\"192.168.1.20\",dst=\"192.168.0.21\")/Raw('x' * 80)],iface=\"ens786f0\")\r\n+\r\n+\r\n+Test case 4: VF_FDIR_MAC/IPv4/UDP/VXLAN/MAC/IPv4/UDP\r\n+----------------------------------------------------\r\n+rule::\r\n+\r\n+    flow create 1 ingress pattern raw pattern spec 00112233445500000000000208004500004E00000000001100000101010102020202000012B5003A0000080000000000000000000000000100000000000208004500001C0000000000110000C0A80014C0A800150000000000080000 pattern mask 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000FFFFFFFFFFFFFFFF0000000000000000 / end actions queue index 1 / mark id 10 / end\r\n+    flow create 1 ingress pattern raw pattern spec 00112233445500000000000208004500004E00000000001100000101010102020202000012B5003A0000080000000000000000000000000100000000000208004500001C0000000000110000C0A80014C0A800150000000000080000 pattern mask 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000FFFFFFFFFFFFFFFF0000000000000000 / end actions rss queues 0 1 2 3 end / mark id 4 / end\r\n+    flow create 1 ingress pattern raw pattern spec 00112233445500000000000208004500004E00000000001100000101010102020202000012B5003A0000080000000000000000000000000100000000000208004500001C0000000000110000C0A80014C0A800150000000000080000 pattern mask 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000FFFFFFFFFFFFFFFF0000000000000000 / end actions passthru / mark id 1 / end\r\n+    flow create 1 ingress pattern raw pattern spec 00112233445500000000000208004500004E00000000001100000101010102020202000012B5003A0000080000000000000000000000000100000000000208004500001C0000000000110000C0A80014C0A800150000000000080000 pattern mask 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000FFFFFFFFFFFFFFFF0000000000000000 / end actions drop / end\r\n+\r\n+matched packets::\r\n+\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IP()/UDP()/VXLAN()/Ether()/IP(src=\"192.168.0.20\",dst=\"192.168.0.21\")/UDP()/(\"X\"*480)], iface=\"ens786f0\")\r\n+\r\n+mismatched packets::\r\n+\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IP()/UDP()/VXLAN()/Ether()/IP(src=\"192.168.10.20\",dst=\"192.168.0.21\")/UDP()/(\"X\"*480)], iface=\"ens786f0\")\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IP()/UDP()/VXLAN()/Ether()/IP(src=\"192.168.0.20\",dst=\"192.168.10.21\")/UDP()/(\"X\"*480)], iface=\"ens786f0\")\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IP()/UDP()/VXLAN()/Ether()/IP(src=\"192.168.0.20\",dst=\"192.168.0.21\")/TCP()/(\"X\"*480)], iface=\"ens786f0\")\r\n+\r\n+\r\n+Test case 5: VF_FDIR_MAC/IPv4/UDP/VXLAN/MAC/IPv4_vni\r\n+----------------------------------------------------\r\n+rule::\r\n+\r\n+    flow create 1 ingress pattern raw pattern spec 00112233445500000000000208004500004600000000001100000101010102020202000012B50032000008000000000003000000000000010000000000020800450000140000000000000000C0A80014C0A80015 pattern mask 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000F0000000000000000000000000000000000000000000000000000000000000000000000 / end actions queue index 1 / mark id 10 / end\r\n+    flow create 1 ingress pattern raw pattern spec 00112233445500000000000208004500004600000000001100000101010102020202000012B50032000008000000000003000000000000010000000000020800450000140000000000000000C0A80014C0A80015 pattern mask 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000F0000000000000000000000000000000000000000000000000000000000000000000000 / end actions rss queues 0 1 2 3 end / mark id 4 / end\r\n+    flow create 1 ingress pattern raw pattern spec 00112233445500000000000208004500004600000000001100000101010102020202000012B50032000008000000000003000000000000010000000000020800450000140000000000000000C0A80014C0A80015 pattern mask 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000F0000000000000000000000000000000000000000000000000000000000000000000000 / end actions passthru / mark id 1 / end\r\n+    flow create 1 ingress pattern raw pattern spec 00112233445500000000000208004500004600000000001100000101010102020202000012B50032000008000000000003000000000000010000000000020800450000140000000000000000C0A80014C0A80015 pattern mask 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000F0000000000000000000000000000000000000000000000000000000000000000000000 / end actions drop / end\r\n+\r\n+matched packets::\r\n+\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IP()/UDP()/VXLAN(vni=3)/Ether()/IP(src=\"192.168.0.20\",dst=\"192.168.0.21\")/(\"X\"*480)], iface=\"ens786f0\")\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IP()/UDP()/VXLAN(vni=3)/Ether()/IP(src=\"192.168.10.20\",dst=\"192.168.0.21\")/(\"X\"*480)], iface=\"ens786f0\")\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IP()/UDP()/VXLAN(vni=3)/Ether()/IP(src=\"192.168.0.20\",dst=\"192.168.10.21\")/(\"X\"*480)], iface=\"ens786f0\")\r\n+\r\n+mismatched packets::\r\n+\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IP()/UDP()/VXLAN(vni=13)/Ether()/IP(src=\"192.168.0.20\",dst=\"192.168.0.21\")/(\"X\"*480)], iface=\"ens786f0\")\r\n+\r\n+\r\n+Test case 6: VF_FDIR_MAC/IPV4/UDP/GTPU/IPV4\r\n+-------------------------------------------\r\n+rule::\r\n+\r\n+    flow create 1 ingress pattern raw pattern spec 0011223344550000000000020800450000380000000000110000C0A80014C0A80015000008680024000030FF001400000000450000140000000000000000C0A80A14C0A80A15 pattern mask 0000000000000000000000000000000000000000000000000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000000000000FFFFFFFFFFFFFFFF / end actions queue index 1 / mark id 10 / end\r\n+    flow create 1 ingress pattern raw pattern spec 0011223344550000000000020800450000380000000000110000C0A80014C0A80015000008680024000030FF001400000000450000140000000000000000C0A80A14C0A80A15 pattern mask 0000000000000000000000000000000000000000000000000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000000000000FFFFFFFFFFFFFFFF / end actions rss queues 0 1 2 3 end / mark id 4 / end\r\n+    flow create 1 ingress pattern raw pattern spec 0011223344550000000000020800450000380000000000110000C0A80014C0A80015000008680024000030FF001400000000450000140000000000000000C0A80A14C0A80A15 pattern mask 0000000000000000000000000000000000000000000000000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000000000000FFFFFFFFFFFFFFFF / end actions passthru / mark id 1 / end\r\n+    flow create 1 ingress pattern raw pattern spec 0011223344550000000000020800450000380000000000110000C0A80014C0A80015000008680024000030FF001400000000450000140000000000000000C0A80A14C0A80A15 pattern mask 0000000000000000000000000000000000000000000000000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000000000000FFFFFFFFFFFFFFFF / end actions drop / end\r\n+\r\n+matched packets::\r\n+\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(src=\"192.168.0.20\", dst=\"192.168.0.21\")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/IP(src=\"192.168.10.20\", dst=\"192.168.10.21\")/Raw('x'*20)], iface=\"ens786f0\")\r\n+\r\n+mismatched packets::\r\n+\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(src=\"192.168.0.30\", dst=\"192.168.0.21\")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/IP(src=\"192.168.10.20\", dst=\"192.168.10.21\")/Raw('x'*20)], iface=\"ens786f0\")\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(src=\"192.168.0.20\", dst=\"192.168.0.31\")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/IP(src=\"192.168.10.20\", dst=\"192.168.10.21\")/Raw('x'*20)], iface=\"ens786f0\")\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(src=\"192.168.0.20\", dst=\"192.168.0.21\")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/IP(src=\"192.168.10.30\", dst=\"192.168.10.21\")/Raw('x'*20)], iface=\"ens786f0\")\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(src=\"192.168.0.20\", dst=\"192.168.0.21\")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/IP(src=\"192.168.10.20\", dst=\"192.168.10.31\")/Raw('x'*20)], iface=\"ens786f0\")\r\n+\r\n+\r\n+Test case 7: VF_FDIR_MAC/IPV4/UDP/GTPU/IPV6/UDP\r\n+-----------------------------------------------\r\n+rule::\r\n+\r\n+    flow create 1 ingress pattern raw pattern spec 0011223344550000000000020800450000540000000000110000C0A80014C0A80015000008680040000030FF0030000000006000000000081100CDCD910A222254988475111139001010CDCD910A2222549884751111390020210000000000080000 pattern mask 0000000000000000000000000000000000000000000000000000FFFFFFFFFFFFFFFF000000000000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000 / end actions queue index 1 / mark id 10 / end\r\n+    flow create 1 ingress pattern raw pattern spec 0011223344550000000000020800450000540000000000110000C0A80014C0A80015000008680040000030FF0030000000006000000000081100CDCD910A222254988475111139001010CDCD910A2222549884751111390020210000000000080000 pattern mask 0000000000000000000000000000000000000000000000000000FFFFFFFFFFFFFFFF000000000000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000 / end actions rss queues 0 1 2 3 end / mark id 4 / end\r\n+    flow create 1 ingress pattern raw pattern spec 0011223344550000000000020800450000540000000000110000C0A80014C0A80015000008680040000030FF0030000000006000000000081100CDCD910A222254988475111139001010CDCD910A2222549884751111390020210000000000080000 pattern mask 0000000000000000000000000000000000000000000000000000FFFFFFFFFFFFFFFF000000000000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000 / end actions passthru / mark id 1 / end\r\n+    flow create 1 ingress pattern raw pattern spec 0011223344550000000000020800450000540000000000110000C0A80014C0A80015000008680040000030FF0030000000006000000000081100CDCD910A222254988475111139001010CDCD910A2222549884751111390020210000000000080000 pattern mask 0000000000000000000000000000000000000000000000000000FFFFFFFFFFFFFFFF000000000000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000 / end actions drop / end\r\n+\r\n+matched packets::\r\n+\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(src=\"192.168.0.20\", dst=\"192.168.0.21\")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/IPv6(src=\"CDCD:910A:2222:5498:8475:1111:3900:1010\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2021\")/UDP()/Raw('x'*20)], iface=\"ens786f0\")\r\n+\r\n+mismatched packets::\r\n+\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(src=\"192.168.10.20\", dst=\"192.168.0.21\")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/IPv6(src=\"CDCD:910A:2222:5498:8475:1111:3900:1010\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2021\")/UDP()/Raw('x'*20)], iface=\"ens786f0\")\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(src=\"192.168.0.20\", dst=\"192.168.10.21\")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/IPv6(src=\"CDCD:910A:2222:5498:8475:1111:3900:1010\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2021\")/UDP()/Raw('x'*20)], iface=\"ens786f0\")\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(src=\"192.168.0.20\", dst=\"192.168.0.21\")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/IPv6(src=\"CDCD:910A:2222:5498:8475:1111:3900:1011\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2021\")/UDP()/Raw('x'*20)], iface=\"ens786f0\")\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(src=\"192.168.0.20\", dst=\"192.168.0.21\")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/IPv6(src=\"CDCD:910A:2222:5498:8475:1111:3900:1010\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2022\")/UDP()/Raw('x'*20)], iface=\"ens786f0\")\r\n+\r\n+\r\n+Test case 8: VF_FDIR_MAC/IPV6/UDP/GTPU/DL/IPV4\r\n+----------------------------------------------\r\n+rules::\r\n+\r\n+    flow create 1 ingress pattern raw pattern spec 00112233445500000000000286DD6000000000281100CDCD910A222254988475111139001010CDCD910A222254988475111139002021000008680028000034FF001C000000000000008501000000450000140000000000000000C0A80014C0A80015 pattern mask 00000000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000000000000000000000000000000000000FFFFFFFFFFFFFFFF / end actions queue index 1 / mark id 10 / end\r\n+    flow create 1 ingress pattern raw pattern spec 00112233445500000000000286DD6000000000281100CDCD910A222254988475111139001010CDCD910A222254988475111139002021000008680028000034FF001C000000000000008501000000450000140000000000000000C0A80014C0A80015 pattern mask 00000000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000000000000000000000000000000000000FFFFFFFFFFFFFFFF / end actions rss queues 0 1 2 3 end / mark id 4 / end\r\n+    flow create 1 ingress pattern raw pattern spec 00112233445500000000000286DD6000000000281100CDCD910A222254988475111139001010CDCD910A222254988475111139002021000008680028000034FF001C000000000000008501000000450000140000000000000000C0A80014C0A80015 pattern mask 00000000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000000000000000000000000000000000000FFFFFFFFFFFFFFFF / end actions passthru / mark id 1 / end\r\n+    flow create 1 ingress pattern raw pattern spec 00112233445500000000000286DD6000000000281100CDCD910A222254988475111139001010CDCD910A222254988475111139002021000008680028000034FF001C000000000000008501000000450000140000000000000000C0A80014C0A80015 pattern mask 00000000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000000000000000000000000000000000000FFFFFFFFFFFFFFFF / end actions drop / end\r\n+\r\n+matched packets::\r\n+\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IPv6(src=\"CDCD:910A:2222:5498:8475:1111:3900:1010\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2021\")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(src=\"192.168.0.20\", dst=\"192.168.0.21\")/Raw('x'*20)], iface=\"ens786f0\")\r\n+\r\n+mismatched packets::\r\n+\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IPv6(src=\"CDCD:910A:2222:5498:8475:1111:3900:1011\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2021\")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(src=\"192.168.0.20\", dst=\"192.168.0.21\")/Raw('x'*20)], iface=\"ens786f0\")\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IPv6(src=\"CDCD:910A:2222:5498:8475:1111:3900:1010\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2022\")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(src=\"192.168.0.20\", dst=\"192.168.0.21\")/Raw('x'*20)], iface=\"ens786f0\")\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IPv6(src=\"CDCD:910A:2222:5498:8475:1111:3900:1010\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2021\")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(src=\"192.168.10.20\", dst=\"192.168.0.21\")/Raw('x'*20)], iface=\"ens786f0\")\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IPv6(src=\"CDCD:910A:2222:5498:8475:1111:3900:1010\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2021\")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(src=\"192.168.0.20\", dst=\"192.168.10.21\")/Raw('x'*20)], iface=\"ens786f0\")\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IPv6(src=\"CDCD:910A:2222:5498:8475:1111:3900:1010\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2021\")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(src=\"192.168.0.20\", dst=\"192.168.0.21\")/Raw('x'*20)], iface=\"ens786f0\")\r\n+\r\n+\r\n+Test case 9: VF_FDIR_MAC/IPV4/UDP/GTPU/UL/IPV4\r\n+----------------------------------------------\r\n+rule::\r\n+\r\n+    flow create 1 ingress pattern raw pattern spec 00112233445500000000000208004500003C0000000000110000C0A80014C0A80015000008680028000034FF001C000000000000008501100000450000140000000000000000C0A80114C0A80115 pattern mask 0000000000000000000000000000000000000000000000000000FFFFFFFFFFFFFFFF000000000000000000000000000000000000000000F00000000000000000000000000000FFFFFFFFFFFFFFFF / end actions queue index 1 / mark id 10 / end\r\n+    flow create 1 ingress pattern raw pattern spec 00112233445500000000000208004500003C0000000000110000C0A80014C0A80015000008680028000034FF001C000000000000008501100000450000140000000000000000C0A80114C0A80115 pattern mask 0000000000000000000000000000000000000000000000000000FFFFFFFFFFFFFFFF000000000000000000000000000000000000000000F00000000000000000000000000000FFFFFFFFFFFFFFFF / end actions rss queues 0 1 2 3 end / mark id 4 / end\r\n+    flow create 1 ingress pattern raw pattern spec 00112233445500000000000208004500003C0000000000110000C0A80014C0A80015000008680028000034FF001C000000000000008501100000450000140000000000000000C0A80114C0A80115 pattern mask 0000000000000000000000000000000000000000000000000000FFFFFFFFFFFFFFFF000000000000000000000000000000000000000000F00000000000000000000000000000FFFFFFFFFFFFFFFF / end actions passthru / mark id 1 / end\r\n+    flow create 1 ingress pattern raw pattern spec 00112233445500000000000208004500003C0000000000110000C0A80014C0A80015000008680028000034FF001C000000000000008501100000450000140000000000000000C0A80114C0A80115 pattern mask 0000000000000000000000000000000000000000000000000000FFFFFFFFFFFFFFFF000000000000000000000000000000000000000000F00000000000000000000000000000FFFFFFFFFFFFFFFF / end actions drop / end\r\n+\r\n+matched packets::\r\n+\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(src=\"192.168.0.20\", dst=\"192.168.0.21\")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(src=\"192.168.1.20\", dst=\"192.168.1.21\")/Raw('x'*20)], iface=\"ens786f0\")\r\n+\r\n+mismatched packets::\r\n+\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(src=\"192.168.0.20\", dst=\"192.168.0.21\")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(src=\"192.168.1.20\", dst=\"192.168.1.21\")/Raw('x'*20)], iface=\"ens786f0\")\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(src=\"192.168.10.20\", dst=\"192.168.0.21\")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(src=\"192.168.1.20\", dst=\"192.168.1.21\")/Raw('x'*20)], iface=\"ens786f0\")\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(src=\"192.168.0.20\", dst=\"192.168.10.21\")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(src=\"192.168.1.20\", dst=\"192.168.1.21\")/Raw('x'*20)], iface=\"ens786f0\")\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(src=\"192.168.0.20\", dst=\"192.168.0.21\")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(src=\"192.168.11.20\", dst=\"192.168.1.21\")/Raw('x'*20)], iface=\"ens786f0\")\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(src=\"192.168.0.20\", dst=\"192.168.0.21\")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(src=\"192.168.1.20\", dst=\"192.168.11.21\")/Raw('x'*20)], iface=\"ens786f0\")\r\n+\r\n+\r\n+Test case 10: VF_FDIR_MAC/IPV4/UDP/GTPU/DL/IPV6\r\n+-----------------------------------------------\r\n+rule::\r\n+\r\n+    flow create 1 ingress pattern raw pattern spec 0011223344550000000000020800450000500000000000110000C0A80014C0A8001500000868003C000034FF00300000000000000085010000006000000000000000CDCD910A222254988475111140001010CDCD910A222254988475111140002021 pattern mask 0000000000000000000000000000000000000000000000000000FFFFFFFFFFFFFFFF000000000000000000000000000000000000000000F000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF / end actions queue index 1 / mark id 10 / end\r\n+    flow create 1 ingress pattern raw pattern spec 0011223344550000000000020800450000500000000000110000C0A80014C0A8001500000868003C000034FF00300000000000000085010000006000000000000000CDCD910A222254988475111140001010CDCD910A222254988475111140002021 pattern mask 0000000000000000000000000000000000000000000000000000FFFFFFFFFFFFFFFF000000000000000000000000000000000000000000F000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF / end actions rss queues 0 1 2 3 end / mark id 4 / end\r\n+    flow create 1 ingress pattern raw pattern spec 0011223344550000000000020800450000500000000000110000C0A80014C0A8001500000868003C000034FF00300000000000000085010000006000000000000000CDCD910A222254988475111140001010CDCD910A222254988475111140002021 pattern mask 0000000000000000000000000000000000000000000000000000FFFFFFFFFFFFFFFF000000000000000000000000000000000000000000F000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF / end actions passthru / mark id 1 / end\r\n+    flow create 1 ingress pattern raw pattern spec 0011223344550000000000020800450000500000000000110000C0A80014C0A8001500000868003C000034FF00300000000000000085010000006000000000000000CDCD910A222254988475111140001010CDCD910A222254988475111140002021 pattern mask 0000000000000000000000000000000000000000000000000000FFFFFFFFFFFFFFFF000000000000000000000000000000000000000000F000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF / end actions drop / end\r\n+\r\n+matched packets::\r\n+\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(src=\"192.168.0.20\", dst=\"192.168.0.21\")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IPv6(src=\"CDCD:910A:2222:5498:8475:1111:4000:1010\", dst=\"CDCD:910A:2222:5498:8475:1111:4000:2021\")/Raw('x'*20)], iface=\"ens786f0\")\r\n+\r\n+mismatched packets::\r\n+\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(src=\"192.168.0.20\", dst=\"192.168.0.21\")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IPv6(src=\"CDCD:910A:2222:5498:8475:1111:4000:1010\", dst=\"CDCD:910A:2222:5498:8475:1111:4000:2021\")/Raw('x'*20)], iface=\"ens786f0\")\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(src=\"192.168.10.20\", dst=\"192.168.0.21\")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IPv6(src=\"CDCD:910A:2222:5498:8475:1111:4000:1010\", dst=\"CDCD:910A:2222:5498:8475:1111:4000:2021\")/Raw('x'*20)], iface=\"ens786f0\")\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(src=\"192.168.0.20\", dst=\"192.168.10.21\")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IPv6(src=\"CDCD:910A:2222:5498:8475:1111:4000:1010\", dst=\"CDCD:910A:2222:5498:8475:1111:4000:2021\")/Raw('x'*20)], iface=\"ens786f0\")\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(src=\"192.168.0.20\", dst=\"192.168.0.21\")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IPv6(src=\"CDCD:910A:2222:5498:8475:1111:4000:1011\", dst=\"CDCD:910A:2222:5498:8475:1111:4000:2021\")/Raw('x'*20)], iface=\"ens786f0\")\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(src=\"192.168.0.20\", dst=\"192.168.0.21\")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IPv6(src=\"CDCD:910A:2222:5498:8475:1111:4000:1010\", dst=\"CDCD:910A:2222:5498:8475:1111:4000:2022\")/Raw('x'*20)], iface=\"ens786f0\")\r\n+\r\n+\r\n+Test case 11: VF_FDIR_MAC/IPV4/UDP/GTPU/UL/IPV4/TCP_un-word-aligned key\r\n+-----------------------------------------------------------------------\r\n+rule::\r\n+\r\n+    flow create 1 ingress pattern raw pattern spec 0011223344550000000000020800450000500000000000110000C0A80014C0A8001500000868003C000034FF0030000000000000008501100000450000280000000000060000C0A80114C0A801150000000000000000000000005000000000000000 pattern mask 000000000000000000000000000000000000000000000000000000FF000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000FF000000000000000000000000000000000000000000 / end actions queue index 1 / mark id 10 / end\r\n+    flow create 1 ingress pattern raw pattern spec 0011223344550000000000020800450000500000000000110000C0A80014C0A8001500000868003C000034FF0030000000000000008501100000450000280000000000060000C0A80114C0A801150000000000000000000000005000000000000000 pattern mask 000000000000000000000000000000000000000000000000000000FF000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000FF000000000000000000000000000000000000000000 / end actions rss queues 0 1 2 3 end / mark id 4 / end\r\n+    flow create 1 ingress pattern raw pattern spec 0011223344550000000000020800450000500000000000110000C0A80014C0A8001500000868003C000034FF0030000000000000008501100000450000280000000000060000C0A80114C0A801150000000000000000000000005000000000000000 pattern mask 000000000000000000000000000000000000000000000000000000FF000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000FF000000000000000000000000000000000000000000 / end actions passthru / mark id 1 / end\r\n+    flow create 1 ingress pattern raw pattern spec 0011223344550000000000020800450000500000000000110000C0A80014C0A8001500000868003C000034FF0030000000000000008501100000450000280000000000060000C0A80114C0A801150000000000000000000000005000000000000000 pattern mask 000000000000000000000000000000000000000000000000000000FF000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000FF000000000000000000000000000000000000000000 / end actions drop / end\r\n+\r\n+matched packets::\r\n+\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(src=\"192.168.0.20\", dst=\"192.168.0.21\")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(src=\"192.168.1.20\", dst=\"192.168.1.21\")/TCP()/Raw('x'*20)], iface=\"ens786f0\")\r\n+\r\n+mismatched packets::\r\n+\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(src=\"192.16.0.20\", dst=\"192.168.0.21\")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(src=\"192.168.1.20\", dst=\"192.168.1.21\")/TCP()/Raw('x'*20)], iface=\"ens786f0\")\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(src=\"192.168.0.20\", dst=\"192.168.0.21\")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(src=\"192.168.1.20\", dst=\"192.168.10.21\")/TCP()/Raw('x'*20)], iface=\"ens786f0\")\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(src=\"192.168.0.20\", dst=\"192.168.0.21\")/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345678)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(src=\"192.168.1.20\", dst=\"192.168.1.21\")/TCP()/Raw('x'*20)], iface=\"ens786f0\")\r\n+\r\n+\r\n+Test case 12: VF_FDIR_multi-rules_MAC/IPv6/UDP/VXLAN/IPv4\r\n+---------------------------------------------------------\r\n+1. relaunch testpmd, create 2 rules, same pattern, different inputset, different actions::\r\n+\r\n+    flow create 1 ingress pattern raw pattern spec 00112233445500000000000286DD6000000000241100CDCD910A222254988475111139001010CDCD910A222254988475111139002020000012B5002400000800000000000000450000140000000000000000C0A80014C0A80015 pattern mask 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000FFFFFFFFFFFFFFFF / end actions queue index 4 / mark id 11 / end\r\n+    flow create 1 ingress pattern raw pattern spec 00112233445500000000000286DD6000000000241100CDCD910A222254988475111139001010CDCD910A222254988475111139002020000012B5002400000800000000000000450000140000000000000000C0A80014C0A80015 pattern mask 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000FFFFFFFFFFFFFFFF0000000000000000 / end actions queue index 1 / mark id 1 / end\r\n+\r\n+2. send matched packet, check the first rule can work, the second rule can't work::\r\n+\r\n+    sendp([Ether(dst=\"00:11:22:33:44:55\")/IPv6()/UDP()/VXLAN()/IP(src=\"192.168.0.20\",dst=\"192.168.0.21\")/(\"X\"*480)], iface=\"ens786f0\")\n\\ No newline at end of file\ndiff --git a/test_plans/index.rst b/test_plans/index.rst\nindex 6063d4b6..4b71cf03 100644\n--- a/test_plans/index.rst\n+++ b/test_plans/index.rst\n@@ -73,6 +73,7 @@ The following are the test plans for the DPDK DTS automated test system.\n     hotplug_test_plan\n     ice_iavf_fdir_test_plan\n     ice_iavf_fdir_gtpogre_test_plan\n+    iavf_fdir_protocol_agnostic_flow_test_plan\n     iavf_flexible_descriptor_test_plan\n     iavf_package_driver_error_handle_test_plan\n     ieee1588_test_plan\n",
    "prefixes": [
        "V1",
        "2/4"
    ]
}