get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 117021,
    "url": "http://patches.dpdk.org/api/patches/117021/?format=api",
    "web_url": "http://patches.dpdk.org/project/dts/patch/20220928045719.108552-5-qi.fu@intel.com/",
    "project": {
        "id": 3,
        "url": "http://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": "<20220928045719.108552-5-qi.fu@intel.com>",
    "list_archive_url": "https://inbox.dpdk.org/dts/20220928045719.108552-5-qi.fu@intel.com",
    "date": "2022-09-28T04:57:19",
    "name": "[V5,4/4] test_plans:add test plan for ice fdir protocol agnostic flow offloading",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": false,
    "hash": "ac728518c3a5221c8d6064abce9598c566f5dbeb",
    "submitter": {
        "id": 1689,
        "url": "http://patches.dpdk.org/api/people/1689/?format=api",
        "name": "Fu, Qi",
        "email": "qi.fu@intel.com"
    },
    "delegate": null,
    "mbox": "http://patches.dpdk.org/project/dts/patch/20220928045719.108552-5-qi.fu@intel.com/mbox/",
    "series": [
        {
            "id": 24871,
            "url": "http://patches.dpdk.org/api/series/24871/?format=api",
            "web_url": "http://patches.dpdk.org/project/dts/list/?series=24871",
            "date": "2022-09-28T04:57:15",
            "name": "test_plans: add test plans for CVL PF/VF FDIR/RSS protocol agnostic flow offloading",
            "version": 5,
            "mbox": "http://patches.dpdk.org/series/24871/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/patches/117021/comments/",
    "check": "warning",
    "checks": "http://patches.dpdk.org/api/patches/117021/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 7330BA00C2;\n\tWed, 28 Sep 2022 06:57:37 +0200 (CEST)",
            "from [217.70.189.124] (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id 6F08D4114E;\n\tWed, 28 Sep 2022 06:57:37 +0200 (CEST)",
            "from mga04.intel.com (mga04.intel.com [192.55.52.120])\n by mails.dpdk.org (Postfix) with ESMTP id DC72141133\n for <dts@dpdk.org>; Wed, 28 Sep 2022 06:57:34 +0200 (CEST)",
            "from fmsmga003.fm.intel.com ([10.253.24.29])\n by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 27 Sep 2022 21:57:34 -0700",
            "from dpdk-qifu-cxl.sh.intel.com ([10.67.119.32])\n by FMSMGA003.fm.intel.com with ESMTP; 27 Sep 2022 21:57:33 -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=1664341055; x=1695877055;\n h=from:to:cc:subject:date:message-id:in-reply-to:\n references:mime-version:content-transfer-encoding;\n bh=aFes2JWHMjEK+YmY16DUdGmaVl4l8KrtkDgd3pMFy0c=;\n b=MfWnDdUzigy1FAVMa4UqPWqrRakQ2azEeI8SBi/3IPNtBVyuLdjUSrfy\n jqU55wrB9EBhKiWI++VP31bSF9sw04r2CxrhMKf8peID3Wv/6FL0KU9nz\n rtN/lH5CxjxLrEeOEJUF0l0NisdQizjZ+9vWH1yYVMju5iYvpFwAK9E4i\n ehtb5bmdF+67RdKSVpJWc+cdJMyuY0qGIxgZ4E4dYvulKt69uFXDhLwPX\n Gc2Penrim/COuEvfS2pqcW+Bp5yGToBXAS7UVpv31+qW1N/lTvfWEQZzr\n nP3OmGv6aP5vQJk+qMCC8BLiU7GHNa2Sy4osawS/A8YnhRlaRGEG23jds A==;",
        "X-IronPort-AV": [
            "E=McAfee;i=\"6500,9779,10483\"; a=\"300222221\"",
            "E=Sophos;i=\"5.93,351,1654585200\"; d=\"scan'208\";a=\"300222221\"",
            "E=McAfee;i=\"6500,9779,10483\"; a=\"710822490\"",
            "E=Sophos;i=\"5.93,351,1654585200\"; d=\"scan'208\";a=\"710822490\""
        ],
        "X-ExtLoop1": "1",
        "From": "Qi Fu <qi.fu@intel.com>",
        "To": "dts@dpdk.org",
        "Cc": "Qi Fu <qi.fu@intel.com>",
        "Subject": "[dts][PATCH V5 4/4]test_plans:add test plan for ice fdir protocol\n agnostic flow offloading",
        "Date": "Wed, 28 Sep 2022 12:57:19 +0800",
        "Message-Id": "<20220928045719.108552-5-qi.fu@intel.com>",
        "X-Mailer": "git-send-email 2.25.1",
        "In-Reply-To": "<20220928045719.108552-1-qi.fu@intel.com>",
        "References": "<20220928045719.108552-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 ice fdir protocol agnostic flow offloading.\n\nSigned-off-by: Qi Fu <qi.fu@intel.com>\n---\n ..._fdir_protocol_agnostic_flow_test_plan.rst | 429 ++++++++++++++++++\n test_plans/index.rst                          |   1 +\n 2 files changed, 430 insertions(+)\n create mode 100644 test_plans/ice_fdir_protocol_agnostic_flow_test_plan.rst",
    "diff": "diff --git a/test_plans/ice_fdir_protocol_agnostic_flow_test_plan.rst b/test_plans/ice_fdir_protocol_agnostic_flow_test_plan.rst\nnew file mode 100644\nindex 00000000..14d87598\n--- /dev/null\n+++ b/test_plans/ice_fdir_protocol_agnostic_flow_test_plan.rst\n@@ -0,0 +1,429 @@\n+.. SPDX-License-Identifier: BSD-3-Clause\r\n+   Copyright(c) 2022 Intel Corporation\r\n+\r\n+=======================================================\r\n+ICE PF enable Protocol agnostic flow offloading in FDIR\r\n+=======================================================\r\n+\r\n+Description\r\n+===========\r\n+ICE PF 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(ICE parser emulator).\r\n+The first string of numbers in the rule represents the matched packet's raw pattern spec,\r\n+the second string represents the mask, using 'F' to mask the inputset.\r\n+Pls get the tool from Intel DPDK team.\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. Get the pci device id and interface of DUT and tester. \r\n+   For example, 0000:18:00.0 and 0000:18:00.1 is pci device id,\r\n+   ens785f0 and ens785f1 is interface::\r\n+\r\n+    <dpdk dir># ./usertools/dpdk-devbind.py -s\r\n+\r\n+    0000:18:00.0 'Device 159b' if=ens785f0 drv=ice unused=vfio-pci\r\n+    0000:18:00.1 'Device 159b' if=ens785f1 drv=ice unused=vfio-pci\r\n+\r\n+3. 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+4. Launch the userland ``testpmd`` application on DUT as follows and ::\r\n+\r\n+    <dpdk build dir>/app/dpdk-testpmd <EAL options> -- -i --rxq=<queue number> --txq=<queue number>\r\n+    testpmd> set fwd rxonly\r\n+    testpmd> set verbose 1\r\n+    testpmd> rx_vxlan_port add 4789 0\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+5. 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+\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+\r\n+4. send mismatched packets, check the action is not right::\r\n+\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+\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: ICE_FDIR_MAC/IPv4/UDP\r\n+----------------------------------\r\n+pattern::\r\n+\r\n+    MAC/IPv4/UDP\r\n+\r\n+inputset::\r\n+\r\n+    IP src/dst, UDP sport/dport\r\n+\r\n+rule::\r\n+\r\n+    flow create 0 ingress pattern raw pattern spec 00112233445500000000000208004500001C0000000000110000C0A80014C0A800150016001700080000 pattern mask 0000000000000000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFF00000000 / end actions queue index 1 / mark id 10 / end\r\n+    flow create 0 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 0 ingress pattern raw pattern spec 00112233445500000000000208004500001C0000000000110000C0A80014C0A800150016001700080000 pattern mask 0000000000000000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFF00000000 / end actions passthru / mark id 1 / end\r\n+    flow create 0 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: ICE_FDIR_MAC/IPv6/TCP\r\n+----------------------------------\r\n+pattern::\r\n+\r\n+    MAC/IPv6/TCP\r\n+\r\n+inputset::\r\n+\r\n+    IP src/dst, TCP sport/dport\r\n+\r\n+rule::\r\n+\r\n+    flow create 0 ingress pattern raw pattern spec 00112233445500000000000286DD6000000000140600CDCD910A222254988475111139001010CDCD910A2222549884751111390020200016001700000000000000005000000000000000 pattern mask 00000000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000000000000000 / end actions queue index 1 / mark id 10 / end\r\n+    flow create 0 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 0 ingress pattern raw pattern spec 00112233445500000000000286DD6000000000140600CDCD910A222254988475111139001010CDCD910A2222549884751111390020200016001700000000000000005000000000000000 pattern mask 00000000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000000000000000 / end actions passthru / mark id 1 / end\r\n+    flow create 0 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: ICE_FDIR_MAC/IPv4/UDP/VXLAN/MAC/IPv4/PAY\r\n+-----------------------------------------------------\r\n+pattern::\r\n+\r\n+    MAC/IPv4/UDP/VXLAN/MAC/IPv4/PAY\r\n+\r\n+inputset::\r\n+\r\n+    inner IP src/dst\r\n+\r\n+rule::\r\n+\r\n+    flow create 0 ingress pattern raw pattern spec 0011223344550000000000020800450000460000000000110000C0A80014C0A80015000012B50032000008000000000000000000000000010000000000020800450000140000000000000000C0A80014C0A80015 pattern mask 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000FFFFFFFFFFFFFFFF / end actions queue index 1 / mark id 10 / end\r\n+    flow create 0 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 0 ingress pattern raw pattern spec 0011223344550000000000020800450000460000000000110000C0A80014C0A80015000012B50032000008000000000000000000000000010000000000020800450000140000000000000000C0A80014C0A80015 pattern mask 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000FFFFFFFFFFFFFFFF / end actions passthru / mark id 1 / end\r\n+    flow create 0 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: ICE_FDIR_MAC/IPv4/UDP/VXLAN/MAC/IPv4/UDP\r\n+-----------------------------------------------------\r\n+pattern::\r\n+\r\n+    MAC/IPv4/UDP/VXLAN/MAC/IPv4/UDP\r\n+\r\n+inputset::\r\n+\r\n+    inner IP src/dst\r\n+\r\n+rule::\r\n+\r\n+    flow create 0 ingress pattern raw pattern spec 00112233445500000000000208004500004E00000000001100000101010102020202000012B5003A0000080000000000000000000000000100000000000208004500001C0000000000110000C0A80014C0A800150000000000080000 pattern mask 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000FFFFFFFFFFFFFFFF0000000000000000 / end actions queue index 1 / mark id 10 / end\r\n+    flow create 0 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 0 ingress pattern raw pattern spec 00112233445500000000000208004500004E00000000001100000101010102020202000012B5003A0000080000000000000000000000000100000000000208004500001C0000000000110000C0A80014C0A800150000000000080000 pattern mask 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000FFFFFFFFFFFFFFFF0000000000000000 / end actions passthru / mark id 1 / end\r\n+    flow create 0 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: ICE_FDIR_MAC/IPv4/UDP/VXLAN/MAC/IPv4_vni\r\n+-----------------------------------------------------\r\n+pattern::\r\n+\r\n+    MAC/IPv4/UDP/VXLAN/MAC/IPv4\r\n+\r\n+inputset::\r\n+\r\n+    vni\r\n+\r\n+rule::\r\n+\r\n+    flow create 0 ingress pattern raw pattern spec 00112233445500000000000208004500004600000000001100000101010102020202000012B50032000008000000000003000000000000010000000000020800450000140000000000000000C0A80014C0A80015 pattern mask 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000F0000000000000000000000000000000000000000000000000000000000000000000000 / end actions queue index 1 / mark id 10 / end\r\n+    flow create 0 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 0 ingress pattern raw pattern spec 00112233445500000000000208004500004600000000001100000101010102020202000012B50032000008000000000003000000000000010000000000020800450000140000000000000000C0A80014C0A80015 pattern mask 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000F0000000000000000000000000000000000000000000000000000000000000000000000 / end actions passthru / mark id 1 / end\r\n+    flow create 0 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: ICE_FDIR_MAC/IPV4/UDP/GTPU/IPV4\r\n+--------------------------------------------\r\n+pattern::\r\n+\r\n+    MAC/IPV4/UDP/GTPU/IPV4\r\n+\r\n+inputset::\r\n+\r\n+    outer IP src/dst, inner IP src/dst\r\n+\r\n+rule::\r\n+\r\n+    flow create 0 ingress pattern raw pattern spec 0011223344550000000000020800450000380000000000110000C0A80014C0A80015000008680024000030FF001400000000450000140000000000000000C0A80A14C0A80A15 pattern mask 0000000000000000000000000000000000000000000000000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000000000000FFFFFFFFFFFFFFFF / end actions queue index 1 / mark id 10 / end\r\n+    flow create 0 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 0 ingress pattern raw pattern spec 0011223344550000000000020800450000380000000000110000C0A80014C0A80015000008680024000030FF001400000000450000140000000000000000C0A80A14C0A80A15 pattern mask 0000000000000000000000000000000000000000000000000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000000000000FFFFFFFFFFFFFFFF / end actions passthru / mark id 1 / end\r\n+    flow create 0 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: ICE_FDIR_MAC/IPV4/UDP/GTPU/IPV6/UDP\r\n+------------------------------------------------\r\n+pattern::\r\n+\r\n+    MAC/IPV4/UDP/GTPU/IPV6/UDP\r\n+\r\n+inputset::\r\n+\r\n+    outer IP src/dst, inner IP src/dst\r\n+\r\n+rule::\r\n+\r\n+    flow create 0 ingress pattern raw pattern spec 0011223344550000000000020800450000540000000000110000C0A80014C0A80015000008680040000030FF0030000000006000000000081100CDCD910A222254988475111139001010CDCD910A2222549884751111390020210000000000080000 pattern mask 0000000000000000000000000000000000000000000000000000FFFFFFFFFFFFFFFF000000000000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000 / end actions queue index 1 / mark id 10 / end\r\n+    flow create 0 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 0 ingress pattern raw pattern spec 0011223344550000000000020800450000540000000000110000C0A80014C0A80015000008680040000030FF0030000000006000000000081100CDCD910A222254988475111139001010CDCD910A2222549884751111390020210000000000080000 pattern mask 0000000000000000000000000000000000000000000000000000FFFFFFFFFFFFFFFF000000000000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000 / end actions passthru / mark id 1 / end\r\n+    flow create 0 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: ICE_FDIR_MAC/IPV6/UDP/GTPU/DL/IPV4\r\n+-----------------------------------------------\r\n+pattern::\r\n+\r\n+    MAC/IPV6/UDP/GTPU/DL/IPV4\r\n+\r\n+inputset::\r\n+\r\n+    outer IP src/dst, inner IP src/dst\r\n+\r\n+rules::\r\n+\r\n+    flow create 0 ingress pattern raw pattern spec 00112233445500000000000286DD6000000000281100CDCD910A222254988475111139001010CDCD910A222254988475111139002021000008680028000034FF001C000000000000008501000000450000140000000000000000C0A80014C0A80015 pattern mask 00000000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000000000000000000000000000000000000FFFFFFFFFFFFFFFF / end actions queue index 1 / mark id 10 / end\r\n+    flow create 0 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 0 ingress pattern raw pattern spec 00112233445500000000000286DD6000000000281100CDCD910A222254988475111139001010CDCD910A222254988475111139002021000008680028000034FF001C000000000000008501000000450000140000000000000000C0A80014C0A80015 pattern mask 00000000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000000000000000000000000000000000000FFFFFFFFFFFFFFFF / end actions passthru / mark id 1 / end\r\n+    flow create 0 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: ICE_FDIR_MAC/IPV4/UDP/GTPU/UL/IPV4\r\n+-----------------------------------------------\r\n+pattern::\r\n+\r\n+    MAC/IPV4/UDP/GTPU/UL/IPV4\r\n+\r\n+inputset::\r\n+\r\n+    outer IP src/dst, inner IP src/dst\r\n+\r\n+rule::\r\n+\r\n+    flow create 0 ingress pattern raw pattern spec 00112233445500000000000208004500003C0000000000110000C0A80014C0A80015000008680028000034FF001C000000000000008501100000450000140000000000000000C0A80114C0A80115 pattern mask 0000000000000000000000000000000000000000000000000000FFFFFFFFFFFFFFFF000000000000000000000000000000000000000000F00000000000000000000000000000FFFFFFFFFFFFFFFF / end actions queue index 1 / mark id 10 / end\r\n+    flow create 0 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 0 ingress pattern raw pattern spec 00112233445500000000000208004500003C0000000000110000C0A80014C0A80015000008680028000034FF001C000000000000008501100000450000140000000000000000C0A80114C0A80115 pattern mask 0000000000000000000000000000000000000000000000000000FFFFFFFFFFFFFFFF000000000000000000000000000000000000000000F00000000000000000000000000000FFFFFFFFFFFFFFFF / end actions passthru / mark id 1 / end\r\n+    flow create 0 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: ICE_FDIR_MAC/IPV4/UDP/GTPU/DL/IPV6\r\n+------------------------------------------------\r\n+pattern::\r\n+\r\n+    MAC/IPV4/UDP/GTPU/DL/IPV6\r\n+\r\n+inputset::\r\n+\r\n+    outer IP src/dst, inner IP src/dst\r\n+\r\n+rule::\r\n+\r\n+    flow create 0 ingress pattern raw pattern spec 0011223344550000000000020800450000500000000000110000C0A80014C0A8001500000868003C000034FF00300000000000000085010000006000000000000000CDCD910A222254988475111140001010CDCD910A222254988475111140002021 pattern mask 0000000000000000000000000000000000000000000000000000FFFFFFFFFFFFFFFF000000000000000000000000000000000000000000F000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF / end actions queue index 1 / mark id 10 / end\r\n+    flow create 0 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 0 ingress pattern raw pattern spec 0011223344550000000000020800450000500000000000110000C0A80014C0A8001500000868003C000034FF00300000000000000085010000006000000000000000CDCD910A222254988475111140001010CDCD910A222254988475111140002021 pattern mask 0000000000000000000000000000000000000000000000000000FFFFFFFFFFFFFFFF000000000000000000000000000000000000000000F000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF / end actions passthru / mark id 1 / end\r\n+    flow create 0 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: ICE_FDIR_MAC/IPV4/UDP/GTPU/UL/IPV4/TCP_un-word-aligned key\r\n+------------------------------------------------------------------------\r\n+pattern::\r\n+\r\n+    MAC/IPV4/UDP/GTPU/UL/IPV4/TCP\r\n+\r\n+inputset::\r\n+\r\n+    the second field of outer IP src , the third field of inner IP dst\r\n+\r\n+rule::\r\n+\r\n+    flow create 0 ingress pattern raw pattern spec 0011223344550000000000020800450000500000000000110000C0A80014C0A8001500000868003C000034FF0030000000000000008501100000450000280000000000060000C0A80114C0A801150000000000000000000000005000000000000000 pattern mask 000000000000000000000000000000000000000000000000000000FF000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000FF000000000000000000000000000000000000000000 / end actions queue index 1 / mark id 10 / end\r\n+    flow create 0 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 0 ingress pattern raw pattern spec 0011223344550000000000020800450000500000000000110000C0A80014C0A8001500000868003C000034FF0030000000000000008501100000450000280000000000060000C0A80114C0A801150000000000000000000000005000000000000000 pattern mask 000000000000000000000000000000000000000000000000000000FF000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000FF000000000000000000000000000000000000000000 / end actions passthru / mark id 1 / end\r\n+    flow create 0 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: ICE_FDIR_multi-rules_MAC/IPv6/UDP/VXLAN/IPv4\r\n+----------------------------------------------------------\r\n+1. relaunch testpmd, create 2 rules, same pattern(MAC/IPv6/UDP/VXLAN/IP), different inputset(inner IP src, inner IP dst), different actions::\r\n+\r\n+    flow create 0 ingress pattern raw pattern spec 00112233445500000000000286DD6000000000241100CDCD910A222254988475111139001010CDCD910A222254988475111139002020000012B5002400000800000000000000450000140000000000000000C0A80014C0A80015 pattern mask 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000FFFFFFFFFFFFFFFF / end actions queue index 4 / mark id 11 / end\r\n+    flow create 0 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 0a0774e7..d1ea26a4 100644\n--- a/test_plans/index.rst\n+++ b/test_plans/index.rst\n@@ -52,6 +52,7 @@ The following are the test plans for the DPDK DTS automated test system.\n     ice_vf_support_multicast_address_test_plan\n     ice_1pps_signal_test_plan\n     ice_rss_protocol_agnostic_flow_test_plan\n+    ice_fdir_protocol_agnostic_flow_test_plan\n     cloud_filter_with_l4_port_test_plan\n     dcf_lifecycle_test_plan\n     crypto_perf_cryptodev_perf_test_plan\n",
    "prefixes": [
        "V5",
        "4/4"
    ]
}