Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/114254/?format=api
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" ] }{ "id": 114254, "url": "