Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/94879/?format=api
https://patches.dpdk.org/api/patches/94879/?format=api", "web_url": "https://patches.dpdk.org/project/dts/patch/20210627185818.33122-1-qi.fu@intel.com/", "project": { "id": 3, "url": "https://patches.dpdk.org/api/projects/3/?format=api", "name": "DTS", "link_name": "dts", "list_id": "dts.dpdk.org", "list_email": "dts@dpdk.org", "web_url": "", "scm_url": "git://dpdk.org/tools/dts", "webscm_url": "http://git.dpdk.org/tools/dts/", "list_archive_url": "https://inbox.dpdk.org/dts", "list_archive_url_format": "https://inbox.dpdk.org/dts/{}", "commit_url_format": "" }, "msgid": "<20210627185818.33122-1-qi.fu@intel.com>", "list_archive_url": "https://inbox.dpdk.org/dts/20210627185818.33122-1-qi.fu@intel.com", "date": "2021-06-27T18:58:18", "name": "[V4] test_plan: add test plan for cvl dcf flow priority", "commit_ref": null, "pull_url": null, "state": "accepted", "archived": false, "hash": "1902529c8cfe6eb718f7ae0a630c2be08578a361", "submitter": { "id": 1689, "url": "https://patches.dpdk.org/api/people/1689/?format=api", "name": "Fu, Qi", "email": "qi.fu@intel.com" }, "delegate": null, "mbox": "https://patches.dpdk.org/project/dts/patch/20210627185818.33122-1-qi.fu@intel.com/mbox/", "series": [ { "id": 17495, "url": "https://patches.dpdk.org/api/series/17495/?format=api", "web_url": "https://patches.dpdk.org/project/dts/list/?series=17495", "date": "2021-06-27T18:58:18", "name": "[V4] test_plan: add test plan for cvl dcf flow priority", "version": 4, "mbox": "https://patches.dpdk.org/series/17495/mbox/" } ], "comments": "https://patches.dpdk.org/api/patches/94879/comments/", "check": "pending", "checks": "https://patches.dpdk.org/api/patches/94879/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 BC5C6A0A0F;\n\tSun, 27 Jun 2021 12:17:56 +0200 (CEST)", "from [217.70.189.124] (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id 83DD040692;\n\tSun, 27 Jun 2021 12:17:56 +0200 (CEST)", "from mga06.intel.com (mga06.intel.com [134.134.136.31])\n by mails.dpdk.org (Postfix) with ESMTP id D01574068A\n for <dts@dpdk.org>; Sun, 27 Jun 2021 12:17:53 +0200 (CEST)", "from fmsmga007.fm.intel.com ([10.253.24.52])\n by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 27 Jun 2021 03:17:51 -0700", "from dpdk-qifu-cxl.sh.intel.com ([10.67.119.212])\n by fmsmga007.fm.intel.com with ESMTP; 27 Jun 2021 03:17:49 -0700" ], "X-IronPort-AV": [ "E=McAfee;i=\"6200,9189,10027\"; a=\"268964824\"", "E=Sophos;i=\"5.83,302,1616482800\"; d=\"scan'208\";a=\"268964824\"", "E=Sophos;i=\"5.83,302,1616482800\"; d=\"scan'208\";a=\"418843282\"" ], "X-ExtLoop1": "1", "From": "qifu <qi.fu@intel.com>", "To": "dts@dpdk.org", "Cc": "qifu <qi.fu@intel.com>", "Date": "Sun, 27 Jun 2021 14:58:18 -0400", "Message-Id": "<20210627185818.33122-1-qi.fu@intel.com>", "X-Mailer": "git-send-email 2.25.1", "MIME-Version": "1.0", "Content-Transfer-Encoding": "quoted-printable", "Subject": "[dts] [PATCH V4]test_plan: add test plan for cvl dcf flow priority", "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", "Sender": "\"dts\" <dts-bounces@dpdk.org>" }, "content": "add dpdk-21.05 new feature test plan: cvl_dcf_flow_priority_test_plan.rst\nthis feature support add priority 0/1 for dcf switch filter rules.\n\nSigned-off-by: qifu <qi.fu@intel.com>\n---\n .../cvl_dcf_flow_priority_test_plan.rst | 1789 +++++++++++++++++\n test_plans/index.rst | 1 +\n 2 files changed, 1790 insertions(+)\n create mode 100644 test_plans/cvl_dcf_flow_priority_test_plan.rst", "diff": "diff --git a/test_plans/cvl_dcf_flow_priority_test_plan.rst b/test_plans/cvl_dcf_flow_priority_test_plan.rst\nnew file mode 100644\nindex 00000000..205993bd\n--- /dev/null\n+++ b/test_plans/cvl_dcf_flow_priority_test_plan.rst\n@@ -0,0 +1,1789 @@\n+.. Copyright (c) <2021>, 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+CVL Support Flow Priority in DCF\r\n+================================\r\n+\r\n+Description\r\n+===========\r\n+* DCF is able to accept RTE_FLOW's priority attribute and create a switch rule with corresponding priority.\r\n+* Currently only support priority 0 and 1. 0 means low priority and 1 means high priority.\r\n+* When creating a new switch rule, the driver need to avoid reuse an existing recipe with a different priority even the input set is matched,\r\n+ it should either reject the request or create a new recipe with a different priority.\r\n+* When looking up rule table, matched pkt will hit the high priority rule firstly,\r\n+ it will hit the low priority rule only when there is no high priority rule exist.\r\n+\r\n+\r\n+Prerequisites\r\n+=============\r\n+1. Hardware:\r\n+ columbiaville_25g/columbiaville_100g\r\n+\r\n+2. Software:\r\n+ dpdk: http://dpdk.org/git/dpdk\r\n+ scapy: http://www.secdev.org/projects/scapy/\r\n+\r\n+3. Copy specific ice package to /lib/firmware/updates/intel/ice/ddp/ice.pkg,\r\n+ then load driver::\r\n+\r\n+ rmmod ice\r\n+ insmod ice.ko\r\n+\r\n+4. Compile DPDK::\r\n+\r\n+ CC=gcc meson --werror -Denable_kmods=True -Dlibdir=lib --default-library=static x86_64-native-linuxapp-gcc\r\n+ ninja -C x86_64-native-linuxapp-gcc -j 110\r\n+\r\n+5. Get the pci device id of DUT, for example::\r\n+\r\n+ ./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+6. Enable vlan prune flag::\r\n+\r\n+ ethtool --set-priv-flags ens785f0 vf-vlan-prune-disable on\r\n+\r\n+7. Generate 4 VFs on PF0(not all the VFs are used)::\r\n+\r\n+ echo 4 > /sys/bus/pci/devices/0000:18:00.0/sriov_numvfs\r\n+\r\n+ ./usertools/dpdk-devbind.py -s\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+ 0000:18:01.2 'Ethernet Adaptive Virtual Function 1889' if=ens785f0v2 drv=iavf unused=vfio-pci\r\n+ 0000:18:01.3 'Ethernet Adaptive Virtual Function 1889' if=ens785f0v3 drv=iavf unused=vfio-pci\r\n+\r\n+8. Set VF0 as trust::\r\n+\r\n+ ip link set ens785f0 vf 0 trust on\r\n+\r\n+9. Set mac addr for VF1, VF2 and VF3::\r\n+\r\n+ ip link set ens785f0 vf 1 mac 00:11:22:33:44:11\r\n+ ip link set ens785f0 vf 2 mac 00:11:22:33:44:22\r\n+ ip link set ens785f0 vf 3 mac 00:11:22:33:44:33\r\n+\r\n+10. Bind VFs to dpdk driver::\r\n+\r\n+ ./usertools/dpdk-devbind.py -b vfio-pci 0000:18:01.0 0000:18:01.1 0000:18:01.2 0000:18:01.3\r\n+\r\n+11. launch testpmd::\r\n+\r\n+ ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -c 0xf -n 4 -a 0000:18:01.0,cap=dcf -a 0000:18:01.1 -a 0000:18:01.2 -a 0000:18:01.3 -- -i\r\n+\r\n+ testpmd> set fwd rxonly\r\n+\r\n+ testpmd> set verbose 1\r\n+\r\n+ testpmd> start\r\n+\r\n+ testpmd> show port info all\r\n+\r\n+ check the VF0 driver is net_ice_dcf.\r\n+\r\n+\r\n+test steps for supported pattern\r\n+================================\r\n+1. validate rules: two rules have same pattern, input set but different priority and action(priority 0 -> to vf 1, priority 1 -> to vf 2).\r\n+2. create rules and list rules.\r\n+3. send matched packets, check vf 2 receive the packets for hiting the priority 1.\r\n+4. send mismatched packets, check the packets are not received by vf 1 or 2.\r\n+5. destroy rule with priority 1, list rules.\r\n+6. send matched packets, check vf 1 receive the packets for hiting the priority 0.\r\n+7. send mismatched packets, check the packets are not received by vf 1 or 2.\r\n+8. recreate rules which priority is 1, list rule.\r\n+9. destroy rule with priority 0, list rules.\r\n+10. send matched packets, check vf 2 receive the packets for hiting the priority 1.\r\n+11. send mismatched packets, check the packets are not received by vf 1 or 2.\r\n+12. destroy rule with priority 1, list rules.\r\n+13. send matched packets, check the packets are not received by vf 1 or 2.\r\n+\r\n+\r\n+support pattern and input set\r\n+=============================\r\n+\r\n+ +---------------------+-------------------------------+-------------------------------------------+\r\n+ | Packet Types | Pattern | Input Set |\r\n+ +=====================+===============================+===========================================+\r\n+ | | MAC_PAY | [Source MAC], [Dest MAC], [Ether type] |\r\n+ | +-------------------------------+-------------------------------------------+\r\n+ | | MAC_IPV4_FRAG | [Dest MAC], [Source IP], [Dest IP], |\r\n+ | | | [TTL], [DSCP] |\r\n+ | +-------------------------------+-------------------------------------------+\r\n+ | | MAC_IPV4_PAY | [Dest MAC], [Source IP], [Dest IP], |\r\n+ | | | [IP protocol], [TTL], [DSCP] |\r\n+ | +-------------------------------+-------------------------------------------+\r\n+ | | MAC_IPV4_UDP_PAY | [Dest MAC], [Source IP], [Dest IP], |\r\n+ | | | [TTL], [DSCP], [Source Port], [Dest Port] |\r\n+ | +-------------------------------+-------------------------------------------+\r\n+ | IPv4/IPv6 + | MAC_IPV4_TCP_PAY | [Dest MAC], [Source IP], [Dest IP], |\r\n+ | TCP/UDP/IGMP | | [TTL], [DSCP], [Source Port], [Dest Port] |\r\n+ | +-------------------------------+-------------------------------------------+\r\n+ | | MAC_IPV4_IGMP | [IP protocol] |\r\n+ | +-------------------------------+-------------------------------------------+\r\n+ | | MAC_IPV6_FRAG_srcip_dstip | [Source IP], [Dest IP] |\r\n+ | +-------------------------------+-------------------------------------------+\r\n+ | | MAC_IPV6_FRAG_dstip_tc | [Dest MAC], [Dest IP], [TC] |\r\n+ | +-------------------------------+-------------------------------------------+\r\n+ | | MAC_IPV6_PAY_srcip_dstip | [Source IP], [Dest IP] |\r\n+ | +-------------------------------+-------------------------------------------+\r\n+ | | MAC_IPV6_PAY_dstip_tc | [Dest MAC], [Dest IP], [TC] |\r\n+ | +-------------------------------+-------------------------------------------+\r\n+ | | MAC_IPV6_UDP_PAY | [Dest MAC], [Dest IP], [TC], |\r\n+ | | | [Source Port], [Dest Port] |\r\n+ | +-------------------------------+-------------------------------------------+\r\n+ | | MAC_IPV6_TCP | [Dest MAC], [Dest IP], [TC], |\r\n+ | | | [Source Port], [Dest Port] |\r\n+ +---------------------+-------------------------------+-------------------------------------------+\r\n+ | | MAC_IPV4_TUN_IPV4_FRAG | [Out Dest IP], [VNI/GRE_KEY], |\r\n+ | | | [Inner Source IP], [Inner Dest IP] |\r\n+ | +-------------------------------+-------------------------------------------+\r\n+ | | MAC_IPV4_TUN_IPV4_PAY | [Out Dest IP], [VNI/GRE_KEY], |\r\n+ | | | [Inner Source IP], [Inner Dest IP] |\r\n+ | +-------------------------------+-------------------------------------------+\r\n+ | | MAC_IPV4_TUN_IPV4_UDP_PAY | [Out Dest IP], [VNI/GRE_KEY], |\r\n+ | | | [Inner Source IP], [Inner Dest IP], |\r\n+ | | | [Inner Source Port], [Inner Dest Port] |\r\n+ | +-------------------------------+-------------------------------------------+\r\n+ | | MAC_IPV4_TUN_IPV4_TCP | [Out Dest IP], [VNI/GRE_KEY], |\r\n+ | | | [Inner Source IP], [Inner Dest IP], |\r\n+ | | | [Inner Source Port], [Inner Dest Port] |\r\n+ | tunnel: +-------------------------------+-------------------------------------------+\r\n+ | NVGRE | MAC_IPV4_TUN_MAC_IPV4_FRAG | [Out Dest IP], [VNI/GRE_KEY], |\r\n+ | | | [Inner Dest MAC], |\r\n+ | | | [Inner Source IP], [Inner Dest IP] |\r\n+ | +-------------------------------+-------------------------------------------+\r\n+ | | MAC_IPV4_TUN_MAC_IPV4_PAY | [Out Dest IP], [VNI/GRE_KEY], |\r\n+ | | | [Inner Dest MAC], |\r\n+ | | | [Inner Source IP], [Inner Dest IP] |\r\n+ | +-------------------------------+-------------------------------------------+\r\n+ | | MAC_IPV4_TUN_MAC_IPV4_UDP_PAY | [Out Dest IP], [VNI/GRE_KEY], |\r\n+ | | | [Inner Dest MAC], |\r\n+ | | | [Inner Source IP],[Inner Dest IP], |\r\n+ | | | [Inner Source Port], [Inner Dest Port] |\r\n+ | +-------------------------------+-------------------------------------------+\r\n+ | | MAC_IPV4_TUN_MAC_IPV4_TCP | [Out Dest IP], [VNI/GRE_KEY], |\r\n+ | | | [Inner Dest MAC], |\r\n+ | | | [Inner Source IP], [Inner Dest IP], |\r\n+ | | | [Inner Source Port], [Inner Dest Port] |\r\n+ +---------------------+-------------------------------+-------------------------------------------+\r\n+ | | MAC_VLAN_PPPOE_IPV4_PAY | [Dest MAC], [VLAN], [seid], |\r\n+ | | _session_id_proto_id | [pppoe_proto_id] |\r\n+ | +-------------------------------+-------------------------------------------+\r\n+ | | MAC_VLAN_PPPOE_IPV6_PAY | [Dest MAC], [VLAN], [seid], |\r\n+ | | _session_id_proto_id | [pppoe_proto_id] |\r\n+ | +-------------------------------+-------------------------------------------+\r\n+ | | MAC_PPPOE_IPV4_PAY | [Dest MAC], [seid], [pppoe_proto_id] |\r\n+ | | _session_id_proto_id | |\r\n+ | +-------------------------------+-------------------------------------------+\r\n+ | | MAC_PPPOE_IPV6_PAY | [Dest MAC], [seid], [pppoe_proto_id] |\r\n+ | | _session_id_proto_id | |\r\n+ | +-------------------------------+-------------------------------------------+\r\n+ | | MAC_PPPOE_IPV4_PAY_IP_address | [Source IP], [Dest IP] |\r\n+ | +-------------------------------+-------------------------------------------+\r\n+ | | MAC_PPPOE_IPV4_UDP_PAY | [Source IP], [Dest IP], |\r\n+ | | | [Source Port], [Dest Port] |\r\n+ | +-------------------------------+-------------------------------------------+\r\n+ | | MAC_PPPOE_IPV4_UDP_PAY | [Source IP], [Dest IP] |\r\n+ | | _non_src_dst_port | |\r\n+ | +-------------------------------+-------------------------------------------+\r\n+ | | MAC_PPPOE_IPV4_TCP_PAY | [Source IP], [Dest IP], |\r\n+ | | | [Source Port], [Dest Port] |\r\n+ | +-------------------------------+-------------------------------------------+\r\n+ | | MAC_PPPOE_IPV4_TCP_PAY | [Source IP], [Dest IP] |\r\n+ | | _non_src_dst_port | |\r\n+ | +-------------------------------+-------------------------------------------+\r\n+ | | MAC_PPPOE_IPV6_PAY_IP_address | [Source IP], [Dest IP] |\r\n+ | +-------------------------------+-------------------------------------------+\r\n+ | | MAC_PPPOE_IPV6_UDP_PAY | [Source IP], [Dest IP], |\r\n+ | | | [Source Port], [Dest Port] |\r\n+ | +-------------------------------+-------------------------------------------+\r\n+ | | MAC_PPPOE_IPV6_UDP_PAY | [Source IP], [Dest IP] |\r\n+ | | _non_src_dst_port | |\r\n+ | +-------------------------------+-------------------------------------------+\r\n+ | | MAC_PPPOE_IPV6_TCP_PAY | [Source IP], [Dest IP], |\r\n+ | | | [Source Port], [Dest Port] |\r\n+ | PPPOES +-------------------------------+-------------------------------------------+\r\n+ | | MAC_PPPOE_IPV6_TCP_PAY | [Source IP], [Dest IP], |\r\n+ | | _non_src_dst_port | |\r\n+ | +-------------------------------+-------------------------------------------+\r\n+ | | MAC_VLAN_PPPOE_IPV4_PAY | [VLAN], [Source IP], [Dest IP] |\r\n+ | | _IP_address | |\r\n+ | +-------------------------------+-------------------------------------------+\r\n+ | | MAC_VLAN_PPPOE_IPV4_UDP_PAY | [VLAN], [Source IP], [Dest IP] |\r\n+ | | | [Source Port], [Dest Port] |\r\n+ | +-------------------------------+-------------------------------------------+\r\n+ | | MAC_VLAN_PPPOE_IPV4_UDP_PAY | [VLAN], [Source IP], [Dest IP] |\r\n+ | | _non_src_dst_port | |\r\n+ | +-------------------------------+-------------------------------------------+\r\n+ | | MAC_VLAN_PPPOE_IPV4_TCP_PAY | [VLAN], [Source IP], [Dest IP] |\r\n+ | | | [Source Port], [Dest Port] |\r\n+ | +-------------------------------+-------------------------------------------+\r\n+ | | MAC_VLAN_PPPOE_IPV4_TCP_PAY | [VLAN], [Source IP], [Dest IP] |\r\n+ | | _non_src_dst_port | |\r\n+ | +-------------------------------+-------------------------------------------+\r\n+ | | MAC_VLAN_PPPOE_IPV6_PAY | [VLAN], [Source IP], [Dest IP] |\r\n+ | | _IP_address | |\r\n+ | +-------------------------------+-------------------------------------------+\r\n+ | | MAC_VLAN_PPPOE_IPV6_UDP_PAY | [VLAN], [Source IP], [Dest IP] |\r\n+ | | | [Source Port], [Dest Port] |\r\n+ | +-------------------------------+-------------------------------------------+\r\n+ | | MAC_VLAN_PPPOE_IPV6_UDP_PAY | [VLAN], [Source IP], [Dest IP] |\r\n+ | | _non_src_dst_port | |\r\n+ | +-------------------------------+-------------------------------------------+\r\n+ | | MAC_VLAN_PPPOE_IPV6_TCP_PAY | [VLAN], [Source IP], [Dest IP] |\r\n+ | | | [Source Port], [Dest Port] |\r\n+ | +-------------------------------+-------------------------------------------+\r\n+ | | MAC_VLAN_PPPOE_IPV6_TCP_PAY | [VLAN], [Source IP], [Dest IP] |\r\n+ | | _non_src_dst_port | |\r\n+ | +-------------------------------+-------------------------------------------+\r\n+ | | MAC_PPPOE_LCP_PAY | [Dest MAC], [seid], [pppoe_proto_id] |\r\n+ | +-------------------------------+-------------------------------------------+\r\n+ | | MAC_PPPOE_IPCP_PAY | [Dest MAC], [seid], [pppoe_proto_id] |\r\n+ | +-------------------------------+-------------------------------------------+\r\n+ | | MAC_VLAN_PPPOE_LCP_PAY | [Dest MAC], [VLAN], [seid], |\r\n+ | | | [pppoe_proto_id] |\r\n+ | +-------------------------------+-------------------------------------------+\r\n+ | | MAC_VLAN_PPPOE_IPCP_PAY | [Dest MAC], [VLAN], [seid], |\r\n+ | | | [pppoe_proto_id] |\r\n+ +---------------------+-------------------------------+-------------------------------------------+\r\n+ | | MAC_IPV4_PFCP_NODE | [Dest Port], [S-field] |\r\n+ | +-------------------------------+-------------------------------------------+\r\n+ | | MAC_IPV4_PFCP_SESSION | [Dest Port], [S-field] |\r\n+ | PFCP +-------------------------------+-------------------------------------------+\r\n+ | | MAC_IPV6_PFCP_NODE | [Dest Port], [S-field] |\r\n+ | +-------------------------------+-------------------------------------------+\r\n+ | | MAC_IPV6_PFCP_SESSION | [Dest Port], [S-field] |\r\n+ +---------------------+-------------------------------+-------------------------------------------+\r\n+ | | IP multicast | [Dest IP] |\r\n+ | multicast +-------------------------------+-------------------------------------------+\r\n+ | | L2 multicast | [Dest MAC] |\r\n+ +---------------------+-------------------------------+-------------------------------------------+\r\n+ | | ethertype filter_PPPOD | [Ether type] |\r\n+ | +-------------------------------+-------------------------------------------+\r\n+ | ethertype filter | ethertype filter_PPPOE | [Ether type] |\r\n+ | +-------------------------------+-------------------------------------------+\r\n+ | | ethertype filter_IPV6 | [Ether type] |\r\n+ +---------------------+-------------------------------+-------------------------------------------+\r\n+ | | UDP port filter_DHCP discovery| [Source Port], [Dest Port] |\r\n+ | +-------------------------------+-------------------------------------------+\r\n+ | UDP port filter | UDP port filter_DHCP offer | [Source Port], [Dest Port] |\r\n+ | +-------------------------------+-------------------------------------------+\r\n+ | | UDP port filter_VXLAN | [Dest Port] |\r\n+ +---------------------+-------------------------------+-------------------------------------------+\r\n+ | MAC VLAN filter | MAC_VLAN filter | [Dest MAC], [VLAN] |\r\n+ +---------------------+-------------------------------+-------------------------------------------+\r\n+ | VLAN filter | VLAN filter | [VLAN] |\r\n+ +---------------------+-------------------------------+-------------------------------------------+\r\n+ | | MAC_IPV4_L2TPv3 | [Source IP], [Dest IP], [Session_id] |\r\n+ | L2TPv3 +-------------------------------+-------------------------------------------+\r\n+ | | MAC_IPV6_L2TPv3 | [Source IP], [Dest IP], [Session_id] |\r\n+ +---------------------+-------------------------------+-------------------------------------------+\r\n+ | | MAC_IPV4_ESP | [Source IP], [Dest IP], [SPI] |\r\n+ | +-------------------------------+-------------------------------------------+\r\n+ | | MAC_IPV6_ESP | [Source IP], [Dest IP], [SPI] |\r\n+ | +-------------------------------+-------------------------------------------+\r\n+ | | MAC_IPV4_AH | [Source IP], [Dest IP], [SPI] |\r\n+ | ESP +-------------------------------+-------------------------------------------+\r\n+ | | MAC_IPV6_AH | [Source IP], [Dest IP], [SPI] |\r\n+ | +-------------------------------+-------------------------------------------+\r\n+ | | MAC_IPV4_NAT-T-ESP | [Source IP], [Dest IP], [SPI] |\r\n+ | +-------------------------------+-------------------------------------------+\r\n+ | | MAC_IPV6_NAT-T-ESP | [Source IP], [Dest IP], [SPI] |\r\n+ +---------------------+-------------------------------+-------------------------------------------+\r\n+\r\n+\r\n+test case 01: MAC_PAY (this case is not supported in dpdk-21.05)\r\n+================================================================\r\n+rules::\r\n+\r\n+ flow validate 0 priority 0 ingress pattern eth src is 00:00:00:00:00:01 dst is 00:11:22:33:44:55 type is 0x0800 / end actions vf id 1 / end\r\n+ flow validate 0 priority 1 ingress pattern eth src is 00:00:00:00:00:01 dst is 00:11:22:33:44:55 type is 0x0800 / end actions vf id 2 / end\r\n+ flow create 0 priority 0 ingress pattern eth src is 00:00:00:00:00:01 dst is 00:11:22:33:44:55 type is 0x0800 / end actions vf id 1 / end\r\n+ flow create 0 priority 1 ingress pattern eth src is 00:00:00:00:00:01 dst is 00:11:22:33:44:55 type is 0x0800 / end actions vf id 2 / end\r\n+\r\n+matched pkts::\r\n+\r\n+ sendp([Ether(src=\"00:00:00:00:00:01\",dst=\"00:11:22:33:44:55\")/IP()/Raw(\"x\" *80)],iface=\"ens786f0\",count=1)\r\n+\r\n+mismatched pkts::\r\n+\r\n+ sendp([Ether(src=\"00:00:00:00:00:02\",dst=\"00:11:22:33:44:55\")/IP()/Raw(\"x\" *80)],iface=\"ens786f0\",count=1)\r\n+ sendp([Ether(src=\"00:00:00:00:00:01\",dst=\"00:11:22:33:44:54\")/IP()/Raw(\"x\" *80)],iface=\"ens786f0\",count=1)\r\n+ sendp([Ether(src=\"00:00:00:00:00:01\",dst=\"00:11:22:33:44:55\")/IPv6()/Raw(\"x\" *80)],iface=\"ens786f0\",count=1)\r\n+\r\n+\r\n+test case 02: MAC_IPV4_FRAG\r\n+===========================\r\n+rules::\r\n+\r\n+ flow validate 0 priority 0 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.1 dst is 192.168.0.2 tos is 4 ttl is 2 / end actions vf id 1 / end\r\n+ flow validate 0 priority 1 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.1 dst is 192.168.0.2 tos is 4 ttl is 2 / end actions vf id 2 / end\r\n+ flow create 0 priority 0 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.1 dst is 192.168.0.2 tos is 4 ttl is 2 / end actions vf id 1 / end\r\n+ flow create 0 priority 1 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.1 dst is 192.168.0.2 tos is 4 ttl is 2 / end actions vf id 2 / end\r\n+\r\n+matched pkts::\r\n+\r\n+ sendp([Ether(dst=\"68:05:ca:8d:ed:a8\")/IP(src=\"192.168.0.1\",dst=\"192.168.0.2\",tos=4,ttl=2,frag=5)/(\"X\"*480)], iface=\"ens786f0\", count=1)\r\n+\r\n+mismatched pkts::\r\n+\r\n+ sendp([Ether(dst=\"68:05:ca:8d:ed:a3\")/IP(src=\"192.168.0.1\",dst=\"192.168.0.2\",tos=4,ttl=2,frag=5)/(\"X\"*480)], iface=\"ens786f0\", count=1)\r\n+ sendp([Ether(dst=\"68:05:ca:8d:ed:a8\")/IP(src=\"192.168.0.4\",dst=\"192.168.0.2\",tos=4,ttl=2,frag=5)/(\"X\"*480)], iface=\"ens786f0\", count=1)\r\n+ sendp([Ether(dst=\"68:05:ca:8d:ed:a8\")/IP(src=\"192.168.0.1\",dst=\"192.168.0.5\",tos=4,ttl=2,frag=5)/(\"X\"*480)], iface=\"ens786f0\", count=1)\r\n+ sendp([Ether(dst=\"68:05:ca:8d:ed:a8\")/IP(src=\"192.168.0.1\",dst=\"192.168.0.2\",tos=5,ttl=2,frag=5)/(\"X\"*480)], iface=\"ens786f0\", count=1)\r\n+ sendp([Ether(dst=\"68:05:ca:8d:ed:a8\")/IP(src=\"192.168.0.1\",dst=\"192.168.0.2\",tos=4,ttl=3,frag=5)/(\"X\"*480)], iface=\"ens786f0\", count=1)\r\n+\r\n+\r\n+test case 03: MAC_IPV4_PAY\r\n+===============================\r\n+rules::\r\n+\r\n+ flow validate 0 priority 0 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.1 dst is 192.168.0.2 proto is 6 tos is 4 ttl is 2 / end actions vf id 1 / end\r\n+ flow validate 0 priority 1 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.1 dst is 192.168.0.2 proto is 6 tos is 4 ttl is 2 / end actions vf id 2 / end\r\n+ flow create 0 priority 0 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.1 dst is 192.168.0.2 proto is 6 tos is 4 ttl is 2 / end actions vf id 1 / end\r\n+ flow create 0 priority 1 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.1 dst is 192.168.0.2 proto is 6 tos is 4 ttl is 2 / end actions vf id 2 / end\r\n+\r\n+matched pkts::\r\n+\r\n+ sendp([Ether(dst=\"68:05:ca:8d:ed:a8\")/IP(src=\"192.168.0.1\",dst=\"192.168.0.2\",tos=4,ttl=2)/TCP()/(\"X\"*480)], iface=\"ens786f0\", count=1)\r\n+\r\n+mismatched pkts::\r\n+\r\n+ sendp([Ether(dst=\"68:05:ca:8d:ed:a3\")/IP(src=\"192.168.0.1\",dst=\"192.168.0.2\",tos=4,ttl=2)/TCP()/(\"X\"*480)], iface=\"ens786f0\", count=1)\r\n+ sendp([Ether(dst=\"68:05:ca:8d:ed:a8\")/IP(src=\"192.168.0.4\",dst=\"192.168.0.2\",tos=4,ttl=2)/TCP()/(\"X\"*480)], iface=\"ens786f0\", count=1)\r\n+ sendp([Ether(dst=\"68:05:ca:8d:ed:a8\")/IP(src=\"192.168.0.1\",dst=\"192.168.0.5\",tos=4,ttl=2)/TCP()/(\"X\"*480)], iface=\"ens786f0\", count=1)\r\n+ sendp([Ether(dst=\"68:05:ca:8d:ed:a8\")/IP(src=\"192.168.0.1\",dst=\"192.168.0.2\",tos=5,ttl=2)/TCP()/(\"X\"*480)], iface=\"ens786f0\", count=1)\r\n+ sendp([Ether(dst=\"68:05:ca:8d:ed:a8\")/IP(src=\"192.168.0.1\",dst=\"192.168.0.2\",tos=4,ttl=3)/TCP()/(\"X\"*480)], iface=\"ens786f0\", count=1)\r\n+ sendp([Ether(dst=\"68:05:ca:8d:ed:a8\")/IP(src=\"192.168.0.1\",dst=\"192.168.0.2\",tos=4,ttl=2)/UDP()/(\"X\"*480)], iface=\"ens786f0\", count=1)\r\n+\r\n+\r\n+test case 04: MAC_IPV4_UDP_PAY\r\n+===============================\r\n+rules::\r\n+\r\n+ flow validate 0 priority 0 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.1 dst is 192.168.0.2 tos is 4 ttl is 3 / udp src is 25 dst is 23 / end actions vf id 1 / end\r\n+ flow validate 0 priority 1 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.1 dst is 192.168.0.2 tos is 4 ttl is 3 / udp src is 25 dst is 23 / end actions vf id 2 / end\r\n+ flow create 0 priority 0 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.1 dst is 192.168.0.2 tos is 4 ttl is 3 / udp src is 25 dst is 23 / end actions vf id 1 / end\r\n+ flow create 0 priority 1 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.1 dst is 192.168.0.2 tos is 4 ttl is 3 / udp src is 25 dst is 23 / end actions vf id 2 / end\r\n+\r\n+matched pkts::\r\n+\r\n+ sendp([Ether(dst=\"68:05:ca:8d:ed:a8\")/IP(src=\"192.168.0.1\",dst=\"192.168.0.2\",tos=4,ttl=3)/UDP(sport=25,dport=23)/(\"X\"*480)], iface=\"ens786f0\", count=1)\r\n+\r\n+mismatched pkts::\r\n+\r\n+ sendp([Ether(dst=\"68:05:ca:8d:ed:a3\")/IP(src=\"192.168.0.1\",dst=\"192.168.0.2\",tos=4,ttl=3)/UDP(sport=25,dport=23)/(\"X\"*480)], iface=\"ens786f0\", count=1)\r\n+ sendp([Ether(dst=\"68:05:ca:8d:ed:a8\")/IP(src=\"192.168.0.5\",dst=\"192.168.0.2\",tos=4,ttl=3)/UDP(sport=25,dport=23)/(\"X\"*480)], iface=\"ens786f0\", count=1)\r\n+ sendp([Ether(dst=\"68:05:ca:8d:ed:a8\")/IP(src=\"192.168.0.1\",dst=\"192.168.0.7\",tos=4,ttl=3)/UDP(sport=25,dport=23)/(\"X\"*480)], iface=\"ens786f0\", count=1)\r\n+ sendp([Ether(dst=\"68:05:ca:8d:ed:a8\")/IP(src=\"192.168.0.1\",dst=\"192.168.0.2\",tos=5,ttl=3)/UDP(sport=25,dport=23)/(\"X\"*480)], iface=\"ens786f0\", count=1)\r\n+ sendp([Ether(dst=\"68:05:ca:8d:ed:a8\")/IP(src=\"192.168.0.1\",dst=\"192.168.0.2\",tos=4,ttl=9)/UDP(sport=25,dport=23)/(\"X\"*480)], iface=\"ens786f0\", count=1)\r\n+ sendp([Ether(dst=\"68:05:ca:8d:ed:a8\")/IP(src=\"192.168.0.1\",dst=\"192.168.0.2\",tos=4,ttl=3)/UDP(sport=30,dport=23)/(\"X\"*480)], iface=\"ens786f0\", count=1)\r\n+ sendp([Ether(dst=\"68:05:ca:8d:ed:a8\")/IP(src=\"192.168.0.1\",dst=\"192.168.0.2\",tos=4,ttl=3)/UDP(sport=25,dport=19)/(\"X\"*480)], iface=\"ens786f0\", count=1)\r\n+\r\n+\r\n+test case 05: MAC_IPV4_TCP_PAY\r\n+===============================\r\n+rules::\r\n+\r\n+ flow validate 0 priority 0 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.1 dst is 192.168.0.2 tos is 4 ttl is 3 / tcp src is 25 dst is 23 / end actions vf id 1 / end\r\n+ flow validate 0 priority 1 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.1 dst is 192.168.0.2 tos is 4 ttl is 3 / tcp src is 25 dst is 23 / end actions vf id 2 / end\r\n+ flow create 0 priority 0 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.1 dst is 192.168.0.2 tos is 4 ttl is 3 / tcp src is 25 dst is 23 / end actions vf id 1 / end\r\n+ flow create 0 priority 1 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.0.1 dst is 192.168.0.2 tos is 4 ttl is 3 / tcp src is 25 dst is 23 / end actions vf id 2 / end\r\n+\r\n+matched pkts::\r\n+\r\n+ sendp([Ether(dst=\"68:05:ca:8d:ed:a8\")/IP(src=\"192.168.0.1\",dst=\"192.168.0.2\",tos=4,ttl=3)/TCP(sport=25,dport=23)/(\"X\"*480)], iface=\"ens786f0\", count=1)\r\n+\r\n+mismatched pkts::\r\n+\r\n+ sendp([Ether(dst=\"68:05:ca:8d:ed:a3\")/IP(src=\"192.168.0.1\",dst=\"192.168.0.2\",tos=4,ttl=3)/TCP(sport=25,dport=23)/(\"X\"*480)], iface=\"ens786f0\", count=1)\r\n+ sendp([Ether(dst=\"68:05:ca:8d:ed:a8\")/IP(src=\"192.168.0.5\",dst=\"192.168.0.2\",tos=4,ttl=3)/TCP(sport=25,dport=23)/(\"X\"*480)], iface=\"ens786f0\", count=1)\r\n+ sendp([Ether(dst=\"68:05:ca:8d:ed:a8\")/IP(src=\"192.168.0.1\",dst=\"192.168.0.7\",tos=4,ttl=3)/TCP(sport=25,dport=23)/(\"X\"*480)], iface=\"ens786f0\", count=1)\r\n+ sendp([Ether(dst=\"68:05:ca:8d:ed:a8\")/IP(src=\"192.168.0.1\",dst=\"192.168.0.2\",tos=5,ttl=3)/TCP(sport=25,dport=23)/(\"X\"*480)], iface=\"ens786f0\", count=1)\r\n+ sendp([Ether(dst=\"68:05:ca:8d:ed:a8\")/IP(src=\"192.168.0.1\",dst=\"192.168.0.2\",tos=4,ttl=9)/TCP(sport=25,dport=23)/(\"X\"*480)], iface=\"ens786f0\", count=1)\r\n+ sendp([Ether(dst=\"68:05:ca:8d:ed:a8\")/IP(src=\"192.168.0.1\",dst=\"192.168.0.2\",tos=4,ttl=3)/TCP(sport=30,dport=23)/(\"X\"*480)], iface=\"ens786f0\", count=1)\r\n+ sendp([Ether(dst=\"68:05:ca:8d:ed:a8\")/IP(src=\"192.168.0.1\",dst=\"192.168.0.2\",tos=4,ttl=3)/TCP(sport=25,dport=19)/(\"X\"*480)], iface=\"ens786f0\", count=1)\r\n+\r\n+\r\n+test case 06: MAC_IPV4_IGMP\r\n+===========================\r\n+rules::\r\n+\r\n+ flow validate 0 priority 0 ingress pattern eth / ipv4 proto is 0x02 / end actions vf id 1 / end\r\n+ flow validate 0 priority 1 ingress pattern eth / ipv4 proto is 0x02 / end actions vf id 1 / end\r\n+ flow create 0 priority 0 ingress pattern eth / ipv4 proto is 0x02 / end actions vf id 1 / end\r\n+ flow create 0 priority 1 ingress pattern eth / ipv4 proto is 0x02 / end actions vf id 1 / end\r\n+\r\n+matched pkts::\r\n+\r\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP()/IGMP()/Raw(\"X\"*480)], iface=\"ens786f0\", count=1)\r\n+\r\n+mismatched pkts::\r\n+\r\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP()/TCP()/Raw(\"X\"*480)], iface=\"ens786f0\", count=1)\r\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP()/UDP()/Raw(\"X\"*480)], iface=\"ens786f0\", count=1)\r\n+\r\n+\r\n+test case 07: MAC_IPV6_srcip_dstip\r\n+==================================\r\n+rules::\r\n+\r\n+ flow validate 0 priority 0 ingress pattern eth / ipv6 src is CDCD:910A:2222:5498:8475:1111:3900:1536 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / end actions vf id 1 / end\r\n+ flow validate 0 priority 1 ingress pattern eth / ipv6 src is CDCD:910A:2222:5498:8475:1111:3900:1536 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / end actions vf id 2 / end\r\n+ flow create 0 priority 0 ingress pattern eth / ipv6 src is CDCD:910A:2222:5498:8475:1111:3900:1536 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / end actions vf id 1 / end\r\n+ flow create 0 priority 1 ingress pattern eth / ipv6 src is CDCD:910A:2222:5498:8475:1111:3900:1536 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 / end actions vf id 2 / end\r\n+\r\n+matched pkts::\r\n+\r\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IPv6(src=\"CDCD:910A:2222:5498:8475:1111:3900:1536\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2020\")/(\"X\"*480)], iface=\"ens786f0\", count=1)\r\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IPv6(src=\"CDCD:910A:2222:5498:8475:1111:3900:1536\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2020\")/IPv6ExtHdrFragment()/(\"X\"*480)], iface=\"ens786f0\", count=1)\r\n+\r\n+mismatched pkts::\r\n+\r\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IPv6(src=\"CDCD:910A:2222:5498:8475:1111:3900:1537\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2020\")/(\"X\"*480)], iface=\"ens786f0\", count=1)\r\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IPv6(src=\"CDCD:910A:2222:5498:8475:1111:3900:1536\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2023\")/(\"X\"*480)], iface=\"ens786f0\", count=1)\r\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IPv6(src=\"CDCD:910A:2222:5498:8475:1111:3900:1537\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2020\")/IPv6ExtHdrFragment()/(\"X\"*480)], iface=\"ens786f0\", count=1)\r\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IPv6(src=\"CDCD:910A:2222:5498:8475:1111:3900:1536\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2023\")/IPv6ExtHdrFragment()/(\"X\"*480)], iface=\"ens786f0\", count=1)\r\n+\r\n+\r\n+test case 08: MAC_IPV6_dstip_tc\r\n+===============================\r\n+rules::\r\n+\r\n+ flow validate 0 priority 0 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 tc is 3 / end actions vf id 1 / end\r\n+ flow validate 0 priority 1 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 tc is 3 / end actions vf id 2 / end\r\n+ flow create 0 priority 0 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 tc is 3 / end actions vf id 1 / end\r\n+ flow create 0 priority 1 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 tc is 3 / end actions vf id 2 / end\r\n+\r\n+matched pkts::\r\n+\r\n+ sendp([Ether(dst=\"68:05:ca:8d:ed:a8\")/IPv6(src=\"CDCD:910A:2222:5498:8475:1111:3900:1518\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2020\",tc=3)/(\"X\"*480)], iface=\"ens786f0\", count=1)\r\n+ sendp([Ether(dst=\"68:05:ca:8d:ed:a8\")/IPv6(src=\"CDCD:910A:2222:5498:8475:1111:3900:1518\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2020\",tc=3)/IPv6ExtHdrFragment()/(\"X\"*480)], iface=\"ens786f0\", count=1)\r\n+\r\n+mismatched pkts::\r\n+\r\n+ sendp([Ether(dst=\"68:05:ca:8d:ed:a3\")/IPv6(src=\"CDCD:910A:2222:5498:8475:1111:3900:1518\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2020\",tc=3)/(\"X\"*480)], iface=\"ens786f0\", count=1)\r\n+ sendp([Ether(dst=\"68:05:ca:8d:ed:a8\")/IPv6(src=\"CDCD:910A:2222:5498:8475:1111:3900:1518\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2023\",tc=3)/(\"X\"*480)], iface=\"ens786f0\", count=1)\r\n+ sendp([Ether(dst=\"68:05:ca:8d:ed:a8\")/IPv6(src=\"CDCD:910A:2222:5498:8475:1111:3900:1518\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2020\",tc=4)/(\"X\"*480)], iface=\"ens786f0\", count=1)\r\n+ sendp([Ether(dst=\"68:05:ca:8d:ed:a3\")/IPv6(src=\"CDCD:910A:2222:5498:8475:1111:3900:1518\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2020\",tc=3)/IPv6ExtHdrFragment()/(\"X\"*480)], iface=\"ens786f0\", count=1)\r\n+ sendp([Ether(dst=\"68:05:ca:8d:ed:a8\")/IPv6(src=\"CDCD:910A:2222:5498:8475:1111:3900:1518\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2023\",tc=3)/IPv6ExtHdrFragment()/(\"X\"*480)], iface=\"ens786f0\", count=1)\r\n+ sendp([Ether(dst=\"68:05:ca:8d:ed:a8\")/IPv6(src=\"CDCD:910A:2222:5498:8475:1111:3900:1518\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2020\",tc=4)/IPv6ExtHdrFragment()/(\"X\"*480)], iface=\"ens786f0\", count=1)\r\n+\r\n+\r\n+test case 09: MAC_IPV6_UDP_PAY\r\n+==============================\r\n+rules::\r\n+\r\n+ flow validate 0 priority 0 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 tc is 3 / udp src is 25 dst is 23 / end actions vf id 1 / end\r\n+ flow validate 0 priority 1 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 tc is 3 / udp src is 25 dst is 23 / end actions vf id 2 / end\r\n+ flow create 0 priority 0 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 tc is 3 / udp src is 25 dst is 23 / end actions vf id 1 / end\r\n+ flow create 0 priority 1 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 tc is 3 / udp src is 25 dst is 23 / end actions vf id 2 / end\r\n+\r\n+matched pkts::\r\n+\r\n+ sendp([Ether(dst=\"68:05:ca:8d:ed:a8\")/IPv6(src=\"CDCD:910A:2222:5498:8475:1111:3900:1518\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2020\",tc=3)/UDP(sport=25,dport=23)/(\"X\"*480)], iface=\"ens786f0\",count=1)\r\n+\r\n+mismatched pkts::\r\n+\r\n+ sendp([Ether(dst=\"68:05:ca:8d:ed:a3\")/IPv6(src=\"CDCD:910A:2222:5498:8475:1111:3900:1518\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2020\",tc=3)/UDP(sport=25,dport=23)/(\"X\"*480)], iface=\"ens786f0\",count=1)\r\n+ sendp([Ether(dst=\"68:05:ca:8d:ed:a8\")/IPv6(src=\"CDCD:910A:2222:5498:8475:1111:3900:1518\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2023\",tc=3)/UDP(sport=25,dport=23)/(\"X\"*480)], iface=\"ens786f0\",count=1)\r\n+ sendp([Ether(dst=\"68:05:ca:8d:ed:a8\")/IPv6(src=\"CDCD:910A:2222:5498:8475:1111:3900:1518\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2020\",tc=7)/UDP(sport=25,dport=23)/(\"X\"*480)], iface=\"ens786f0\",count=1)\r\n+ sendp([Ether(dst=\"68:05:ca:8d:ed:a8\")/IPv6(src=\"CDCD:910A:2222:5498:8475:1111:3900:1518\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2020\",tc=3)/UDP(sport=30,dport=23)/(\"X\"*480)], iface=\"ens786f0\",count=1)\r\n+ sendp([Ether(dst=\"68:05:ca:8d:ed:a8\")/IPv6(src=\"CDCD:910A:2222:5498:8475:1111:3900:1518\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2020\",tc=3)/UDP(sport=25,dport=19)/(\"X\"*480)], iface=\"ens786f0\",count=1)\r\n+\r\n+\r\n+test case 10: MAC_IPV6_TCP\r\n+==========================\r\n+rules::\r\n+\r\n+ flow validate 0 priority 0 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 tc is 3 / tcp src is 25 dst is 23 / end actions vf id 1 / end\r\n+ flow validate 0 priority 1 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 tc is 3 / tcp src is 25 dst is 23 / end actions vf id 2 / end\r\n+ flow create 0 priority 0 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 tc is 3 / tcp src is 25 dst is 23 / end actions vf id 1 / end\r\n+ flow create 0 priority 1 ingress pattern eth dst is 68:05:ca:8d:ed:a8 / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2020 tc is 3 / tcp src is 25 dst is 23 / end actions vf id 2 / end\r\n+\r\n+matched pkts::\r\n+\r\n+ sendp([Ether(dst=\"68:05:ca:8d:ed:a8\")/IPv6(src=\"CDCD:910A:2222:5498:8475:1111:3900:1518\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2020\",tc=3)/TCP(sport=25,dport=23)/(\"X\"*480)], iface=\"ens786f0\", count=1)\r\n+\r\n+mismatched pkts::\r\n+\r\n+ sendp([Ether(dst=\"68:05:ca:8d:ed:a3\")/IPv6(src=\"CDCD:910A:2222:5498:8475:1111:3900:1518\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2020\",tc=3)/TCP(sport=25,dport=23)/(\"X\"*480)], iface=\"ens786f0\", count=1)\r\n+ sendp([Ether(dst=\"68:05:ca:8d:ed:a8\")/IPv6(src=\"CDCD:910A:2222:5498:8475:1111:3900:1518\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2023\",tc=3)/TCP(sport=25,dport=23)/(\"X\"*480)], iface=\"ens786f0\", count=1)\r\n+ sendp([Ether(dst=\"68:05:ca:8d:ed:a8\")/IPv6(src=\"CDCD:910A:2222:5498:8475:1111:3900:1518\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2020\",tc=7)/TCP(sport=25,dport=23)/(\"X\"*480)], iface=\"ens786f0\", count=1)\r\n+ sendp([Ether(dst=\"68:05:ca:8d:ed:a8\")/IPv6(src=\"CDCD:910A:2222:5498:8475:1111:3900:1518\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2020\",tc=3)/TCP(sport=30,dport=23)/(\"X\"*480)], iface=\"ens786f0\", count=1)\r\n+ sendp([Ether(dst=\"68:05:ca:8d:ed:a8\")/IPv6(src=\"CDCD:910A:2222:5498:8475:1111:3900:1518\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2020\",tc=3)/TCP(sport=25,dport=19)/(\"X\"*480)], iface=\"ens786f0\", count=1)\r\n+\r\n+\r\n+test case 11: MAC_IPV4_NVGRE_IPV4_PAY\r\n+=====================================\r\n+rules::\r\n+\r\n+ flow validate 0 priority 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / nvgre tni is 2 / eth / ipv4 src is 192.168.1.2 dst is 192.168.1.3 / end actions vf id 1 / end\r\n+ flow validate 0 priority 1 ingress pattern eth / ipv4 dst is 192.168.0.1 / nvgre tni is 2 / eth / ipv4 src is 192.168.1.2 dst is 192.168.1.3 / end actions vf id 2 / end\r\n+ flow create 0 priority 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / nvgre tni is 2 / eth / ipv4 src is 192.168.1.2 dst is 192.168.1.3 / end actions vf id 1 / end\r\n+ flow create 0 priority 1 ingress pattern eth / ipv4 dst is 192.168.0.1 / nvgre tni is 2 / eth / ipv4 src is 192.168.1.2 dst is 192.168.1.3 / end actions vf id 2 / end\r\n+\r\n+matched pkts::\r\n+\r\n+ sendp([Ether()/IP(dst=\"192.168.0.1\")/NVGRE(TNI=2)/Ether()/IP(src=\"192.168.1.2\", dst=\"192.168.1.3\")/Raw(\"x\"*80)],iface=\"ens786f0\",count=1)\r\n+ sendp([Ether()/IP(dst=\"192.168.0.1\")/NVGRE(TNI=2)/Ether()/IP(src=\"192.168.1.2\", dst=\"192.168.1.3\" ,frag=5)/Raw(\"x\"*80)],iface=\"ens786f0\",count=1)\r\n+\r\n+mismatched pkts::\r\n+\r\n+ sendp([Ether()/IP(dst=\"192.168.0.2\")/NVGRE(TNI=2)/Ether()/IP(src=\"192.168.1.2\", dst=\"192.168.1.3\")/Raw(\"x\"*80)],iface=\"ens786f0\",count=1)\r\n+ sendp([Ether()/IP(dst=\"192.168.0.1\")/NVGRE(TNI=3)/Ether()/IP(src=\"192.168.1.2\", dst=\"192.168.1.3\")/Raw(\"x\"*80)],iface=\"ens786f0\",count=1)\r\n+ sendp([Ether()/IP(dst=\"192.168.0.1\")/NVGRE(TNI=2)/Ether()/IP(src=\"192.168.1.4\", dst=\"192.168.1.3\")/Raw(\"x\"*80)],iface=\"ens786f0\",count=1)\r\n+ sendp([Ether()/IP(dst=\"192.168.0.1\")/NVGRE(TNI=2)/Ether()/IP(src=\"192.168.1.2\", dst=\"192.168.1.5\")/Raw(\"x\"*80)],iface=\"ens786f0\",count=1)\r\n+ sendp([Ether()/IP(dst=\"192.168.0.2\")/NVGRE(TNI=2)/Ether()/IP(src=\"192.168.1.2\", dst=\"192.168.1.3\" ,frag=5)/Raw(\"x\"*80)],iface=\"ens786f0\",count=1)\r\n+ sendp([Ether()/IP(dst=\"192.168.0.1\")/NVGRE(TNI=3)/Ether()/IP(src=\"192.168.1.2\", dst=\"192.168.1.3\" ,frag=5)/Raw(\"x\"*80)],iface=\"ens786f0\",count=1)\r\n+ sendp([Ether()/IP(dst=\"192.168.0.1\")/NVGRE(TNI=2)/Ether()/IP(src=\"192.168.1.4\", dst=\"192.168.1.3\" ,frag=5)/Raw(\"x\"*80)],iface=\"ens786f0\",count=1)\r\n+ sendp([Ether()/IP(dst=\"192.168.0.1\")/NVGRE(TNI=2)/Ether()/IP(src=\"192.168.1.2\", dst=\"192.168.1.5\" ,frag=5)/Raw(\"x\"*80)],iface=\"ens786f0\",count=1)\r\n+\r\n+\r\n+test case 12: MAC_IPV4_NVGRE_IPV4_UDP_PAY\r\n+=========================================\r\n+rules::\r\n+\r\n+ flow validate 0 priority 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / nvgre tni is 0x8 / eth / ipv4 src is 192.168.0.2 dst is 192.168.0.3 / udp src is 50 dst is 23 / end actions vf id 1 / end\r\n+ flow validate 0 priority 1 ingress pattern eth / ipv4 dst is 192.168.0.1 / nvgre tni is 0x8 / eth / ipv4 src is 192.168.0.2 dst is 192.168.0.3 / udp src is 50 dst is 23 / end actions vf id 2 / end\r\n+ flow create 0 priority 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / nvgre tni is 0x8 / eth / ipv4 src is 192.168.0.2 dst is 192.168.0.3 / udp src is 50 dst is 23 / end actions vf id 1 / end\r\n+ flow create 0 priority 1 ingress pattern eth / ipv4 dst is 192.168.0.1 / nvgre tni is 0x8 / eth / ipv4 src is 192.168.0.2 dst is 192.168.0.3 / udp src is 50 dst is 23 / end actions vf id 2 / end\r\n+\r\n+matched pkts::\r\n+\r\n+ sendp([Ether()/IP(dst=\"192.168.0.1\")/NVGRE(TNI=0x8)/Ether()/IP(src=\"192.168.0.2\", dst=\"192.168.0.3\")/UDP(sport=50,dport=23)/Raw(\"x\"*80)], iface=\"ens786f0\", count=1)\r\n+\r\n+mismatched pkts::\r\n+\r\n+ sendp([Ether()/IP(dst=\"192.168.0.2\")/NVGRE(TNI=0x8)/Ether()/IP(src=\"192.168.0.2\", dst=\"192.168.0.3\")/UDP(sport=50,dport=23)/Raw(\"x\"*80)], iface=\"ens786f0\", count=1)\r\n+ sendp([Ether()/IP(dst=\"192.168.0.1\")/NVGRE(TNI=0x3)/Ether()/IP(src=\"192.168.0.2\", dst=\"192.168.0.3\")/UDP(sport=50,dport=23)/Raw(\"x\"*80)], iface=\"ens786f0\", count=1)\r\n+ sendp([Ether()/IP(dst=\"192.168.0.1\")/NVGRE(TNI=0x8)/Ether()/IP(src=\"192.168.0.5\", dst=\"192.168.0.3\")/UDP(sport=50,dport=23)/Raw(\"x\"*80)], iface=\"ens786f0\", count=1)\r\n+ sendp([Ether()/IP(dst=\"192.168.0.1\")/NVGRE(TNI=0x8)/Ether()/IP(src=\"192.168.0.2\", dst=\"192.168.0.7\")/UDP(sport=50,dport=23)/Raw(\"x\"*80)], iface=\"ens786f0\", count=1)\r\n+ sendp([Ether()/IP(dst=\"192.168.0.1\")/NVGRE(TNI=0x8)/Ether()/IP(src=\"192.168.0.2\", dst=\"192.168.0.3\")/UDP(sport=20,dport=23)/Raw(\"x\"*80)], iface=\"ens786f0\", count=1)\r\n+ sendp([Ether()/IP(dst=\"192.168.0.1\")/NVGRE(TNI=0x8)/Ether()/IP(src=\"192.168.0.2\", dst=\"192.168.0.3\")/UDP(sport=50,dport=19)/Raw(\"x\"*80)], iface=\"ens786f0\", count=1)\r\n+\r\n+\r\n+test case 13: MAC_IPV4_NVGRE_IPV4_TCP\r\n+=====================================\r\n+rules::\r\n+\r\n+ flow validate 0 priority 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / nvgre tni is 2 / eth / ipv4 src is 192.168.1.2 dst is 192.168.1.3 / tcp src is 25 dst is 23 / end actions vf id 1 / end\r\n+ flow validate 0 priority 1 ingress pattern eth / ipv4 dst is 192.168.0.1 / nvgre tni is 2 / eth / ipv4 src is 192.168.1.2 dst is 192.168.1.3 / tcp src is 25 dst is 23 / end actions vf id 2 / end\r\n+ flow create 0 priority 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / nvgre tni is 2 / eth / ipv4 src is 192.168.1.2 dst is 192.168.1.3 / tcp src is 25 dst is 23 / end actions vf id 1 / end\r\n+ flow create 0 priority 1 ingress pattern eth / ipv4 dst is 192.168.0.1 / nvgre tni is 2 / eth / ipv4 src is 192.168.1.2 dst is 192.168.1.3 / tcp src is 25 dst is 23 / end actions vf id 2 / end\r\n+\r\n+matched pkts::\r\n+\r\n+ sendp([Ether()/IP(dst=\"192.168.0.1\")/NVGRE(TNI=2)/Ether()/IP(src=\"192.168.1.2\", dst=\"192.168.1.3\")/TCP(sport=25,dport=23)/Raw(\"x\"*80)],iface=\"ens786f0\",count=1)\r\n+\r\n+mismatched pkts::\r\n+\r\n+ sendp([Ether()/IP(dst=\"192.168.0.2\")/NVGRE(TNI=2)/Ether()/IP(src=\"192.168.1.2\", dst=\"192.168.1.3\")/TCP(sport=25,dport=23)/Raw(\"x\"*80)],iface=\"ens786f0\",count=1)\r\n+ sendp([Ether()/IP(dst=\"192.168.0.1\")/NVGRE(TNI=3)/Ether()/IP(src=\"192.168.1.2\", dst=\"192.168.1.3\")/TCP(sport=25,dport=23)/Raw(\"x\"*80)],iface=\"ens786f0\",count=1)\r\n+ sendp([Ether()/IP(dst=\"192.168.0.1\")/NVGRE(TNI=2)/Ether()/IP(src=\"192.168.1.5\", dst=\"192.168.1.3\")/TCP(sport=25,dport=23)/Raw(\"x\"*80)],iface=\"ens786f0\",count=1)\r\n+ sendp([Ether()/IP(dst=\"192.168.0.1\")/NVGRE(TNI=2)/Ether()/IP(src=\"192.168.1.2\", dst=\"192.168.1.7\")/TCP(sport=25,dport=23)/Raw(\"x\"*80)],iface=\"ens786f0\",count=1)\r\n+ sendp([Ether()/IP(dst=\"192.168.0.1\")/NVGRE(TNI=2)/Ether()/IP(src=\"192.168.1.2\", dst=\"192.168.1.3\")/TCP(sport=20,dport=23)/Raw(\"x\"*80)],iface=\"ens786f0\",count=1)\r\n+ sendp([Ether()/IP(dst=\"192.168.0.1\")/NVGRE(TNI=2)/Ether()/IP(src=\"192.168.1.2\", dst=\"192.168.1.3\")/TCP(sport=25,dport=39)/Raw(\"x\"*80)],iface=\"ens786f0\",count=1)\r\n+\r\n+\r\n+test case 14: MAC_IPV4_NVGRE_MAC_IPV4_PAY\r\n+=========================================\r\n+rules::\r\n+\r\n+ flow validate 0 priority 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / nvgre tni is 2 / eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.1.2 dst is 192.168.1.3 / end actions vf id 1 / end\r\n+ flow validate 0 priority 1 ingress pattern eth / ipv4 dst is 192.168.0.1 / nvgre tni is 2 / eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.1.2 dst is 192.168.1.3 / end actions vf id 2 / end\r\n+ flow create 0 priority 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / nvgre tni is 2 / eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.1.2 dst is 192.168.1.3 / end actions vf id 1 / end\r\n+ flow create 0 priority 1 ingress pattern eth / ipv4 dst is 192.168.0.1 / nvgre tni is 2 / eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.1.2 dst is 192.168.1.3 / end actions vf id 2 / end\r\n+\r\n+matched pkts::\r\n+\r\n+ sendp([Ether()/IP(dst=\"192.168.0.1\")/NVGRE(TNI=2)/Ether(dst=\"68:05:ca:8d:ed:a8\")/IP(src=\"192.168.1.2\", dst=\"192.168.1.3\")/Raw(\"x\"*80)],iface=\"ens786f0\",count=1)\r\n+ sendp([Ether()/IP(dst=\"192.168.0.1\")/NVGRE(TNI=2)/Ether(dst=\"68:05:ca:8d:ed:a8\")/IP(src=\"192.168.1.2\", dst=\"192.168.1.3\" ,frag=5)/Raw(\"x\"*80)],iface=\"ens786f0\",count=1)\r\n+\r\n+mismatched pkts::\r\n+\r\n+ sendp([Ether()/IP(dst=\"192.168.0.2\")/NVGRE(TNI=2)/Ether(dst=\"68:05:ca:8d:ed:a8\")/IP(src=\"192.168.1.2\", dst=\"192.168.1.3\")/Raw(\"x\"*80)],iface=\"ens786f0\",count=1)\r\n+ sendp([Ether()/IP(dst=\"192.168.0.1\")/NVGRE(TNI=3)/Ether(dst=\"68:05:ca:8d:ed:a8\")/IP(src=\"192.168.1.2\", dst=\"192.168.1.3\")/Raw(\"x\"*80)],iface=\"ens786f0\",count=1)\r\n+ sendp([Ether()/IP(dst=\"192.168.0.1\")/NVGRE(TNI=2)/Ether(dst=\"68:05:ca:8d:ed:a9\")/IP(src=\"192.168.1.2\", dst=\"192.168.1.3\")/Raw(\"x\"*80)],iface=\"ens786f0\",count=1)\r\n+ sendp([Ether()/IP(dst=\"192.168.0.1\")/NVGRE(TNI=2)/Ether(dst=\"68:05:ca:8d:ed:a8\")/IP(src=\"192.168.1.4\", dst=\"192.168.1.3\")/Raw(\"x\"*80)],iface=\"ens786f0\",count=1)\r\n+ sendp([Ether()/IP(dst=\"192.168.0.1\")/NVGRE(TNI=2)/Ether(dst=\"68:05:ca:8d:ed:a8\")/IP(src=\"192.168.1.2\", dst=\"192.168.1.5\")/Raw(\"x\"*80)],iface=\"ens786f0\",count=1)\r\n+ sendp([Ether()/IP(dst=\"192.168.0.2\")/NVGRE(TNI=2)/Ether(dst=\"68:05:ca:8d:ed:a8\")/IP(src=\"192.168.1.2\", dst=\"192.168.1.3\" ,frag=5)/Raw(\"x\"*80)],iface=\"ens786f0\",count=1)\r\n+ sendp([Ether()/IP(dst=\"192.168.0.1\")/NVGRE(TNI=3)/Ether(dst=\"68:05:ca:8d:ed:a8\")/IP(src=\"192.168.1.2\", dst=\"192.168.1.3\" ,frag=5)/Raw(\"x\"*80)],iface=\"ens786f0\",count=1)\r\n+ sendp([Ether()/IP(dst=\"192.168.0.1\")/NVGRE(TNI=2)/Ether(dst=\"68:05:ca:8d:ed:a9\")/IP(src=\"192.168.1.2\", dst=\"192.168.1.3\" ,frag=5)/Raw(\"x\"*80)],iface=\"ens786f0\",count=1)\r\n+ sendp([Ether()/IP(dst=\"192.168.0.1\")/NVGRE(TNI=2)/Ether(dst=\"68:05:ca:8d:ed:a8\")/IP(src=\"192.168.1.4\", dst=\"192.168.1.3\" ,frag=5)/Raw(\"x\"*80)],iface=\"ens786f0\",count=1)\r\n+ sendp([Ether()/IP(dst=\"192.168.0.1\")/NVGRE(TNI=2)/Ether(dst=\"68:05:ca:8d:ed:a8\")/IP(src=\"192.168.1.2\", dst=\"192.168.1.5\" ,frag=5)/Raw(\"x\"*80)],iface=\"ens786f0\",count=1)\r\n+\r\n+\r\n+test case 15: MAC_IPV4_NVGRE_MAC_IPV4_UDP_PAY\r\n+=============================================\r\n+rules::\r\n+\r\n+ flow validate 0 priority 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / nvgre tni is 0x8 / eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.1.2 dst is 192.168.1.3 / udp src is 25 dst is 23 / end actions vf id 1 / end\r\n+ flow validate 0 priority 1 ingress pattern eth / ipv4 dst is 192.168.0.1 / nvgre tni is 0x8 / eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.1.2 dst is 192.168.1.3 / udp src is 25 dst is 23 / end actions vf id 2 / end\r\n+ flow create 0 priority 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / nvgre tni is 0x8 / eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.1.2 dst is 192.168.1.3 / udp src is 25 dst is 23 / end actions vf id 1 / end\r\n+ flow create 0 priority 1 ingress pattern eth / ipv4 dst is 192.168.0.1 / nvgre tni is 0x8 / eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.1.2 dst is 192.168.1.3 / udp src is 25 dst is 23 / end actions vf id 2 / end\r\n+\r\n+matched pkts::\r\n+\r\n+ sendp([Ether()/IP(dst=\"192.168.0.1\")/NVGRE(TNI=0x8)/Ether(dst=\"68:05:ca:8d:ed:a8\")/IP(src=\"192.168.1.2\", dst=\"192.168.1.3\")/UDP(sport=25,dport=23)/Raw(\"x\"*80)], iface=\"ens786f0\", count=1)\r\n+\r\n+mismatched pkts::\r\n+\r\n+ sendp([Ether()/IP(dst=\"192.168.0.2\")/NVGRE(TNI=0x8)/Ether(dst=\"68:05:ca:8d:ed:a8\")/IP(src=\"192.168.1.2\", dst=\"192.168.1.3\")/UDP(sport=25,dport=23)/Raw(\"x\"*80)], iface=\"ens786f0\", count=1)\r\n+ sendp([Ether()/IP(dst=\"192.168.0.1\")/NVGRE(TNI=0x3)/Ether(dst=\"68:05:ca:8d:ed:a8\")/IP(src=\"192.168.1.2\", dst=\"192.168.1.3\")/UDP(sport=25,dport=23)/Raw(\"x\"*80)], iface=\"ens786f0\", count=1)\r\n+ sendp([Ether()/IP(dst=\"192.168.0.1\")/NVGRE(TNI=0x8)/Ether(dst=\"68:05:ca:8d:ed:a2\")/IP(src=\"192.168.1.2\", dst=\"192.168.1.3\")/UDP(sport=25,dport=23)/Raw(\"x\"*80)], iface=\"ens786f0\", count=1)\r\n+ sendp([Ether()/IP(dst=\"192.168.0.1\")/NVGRE(TNI=0x8)/Ether(dst=\"68:05:ca:8d:ed:a8\")/IP(src=\"192.168.1.5\", dst=\"192.168.1.3\")/UDP(sport=25,dport=23)/Raw(\"x\"*80)], iface=\"ens786f0\", count=1)\r\n+ sendp([Ether()/IP(dst=\"192.168.0.1\")/NVGRE(TNI=0x8)/Ether(dst=\"68:05:ca:8d:ed:a8\")/IP(src=\"192.168.1.2\", dst=\"192.168.1.7\")/UDP(sport=25,dport=23)/Raw(\"x\"*80)], iface=\"ens786f0\", count=1)\r\n+ sendp([Ether()/IP(dst=\"192.168.0.1\")/NVGRE(TNI=0x8)/Ether(dst=\"68:05:ca:8d:ed:a8\")/IP(src=\"192.168.1.2\", dst=\"192.168.1.3\")/UDP(sport=2,dport=23)/Raw(\"x\"*80)], iface=\"ens786f0\", count=1)\r\n+ sendp([Ether()/IP(dst=\"192.168.0.1\")/NVGRE(TNI=0x8)/Ether(dst=\"68:05:ca:8d:ed:a8\")/IP(src=\"192.168.1.2\", dst=\"192.168.1.3\")/UDP(sport=25,dport=20)/Raw(\"x\"*80)], iface=\"ens786f0\", count=1)\r\n+\r\n+\r\n+test case 16: MAC_IPV4_NVGRE_MAC_IPV4_TCP\r\n+=========================================\r\n+rules::\r\n+\r\n+ flow validate 0 priority 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / nvgre tni is 2 / eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.1.2 dst is 192.168.1.3 / tcp src is 25 dst is 23 / end actions vf id 1 / end\r\n+ flow validate 0 priority 1 ingress pattern eth / ipv4 dst is 192.168.0.1 / nvgre tni is 2 / eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.1.2 dst is 192.168.1.3 / tcp src is 25 dst is 23 / end actions vf id 2 / end\r\n+ flow create 0 priority 0 ingress pattern eth / ipv4 dst is 192.168.0.1 / nvgre tni is 2 / eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.1.2 dst is 192.168.1.3 / tcp src is 25 dst is 23 / end actions vf id 1 / end\r\n+ flow create 0 priority 1 ingress pattern eth / ipv4 dst is 192.168.0.1 / nvgre tni is 2 / eth dst is 68:05:ca:8d:ed:a8 / ipv4 src is 192.168.1.2 dst is 192.168.1.3 / tcp src is 25 dst is 23 / end actions vf id 2 / end\r\n+\r\n+matched pkts::\r\n+\r\n+ sendp([Ether()/IP(dst=\"192.168.0.1\")/NVGRE(TNI=2)/Ether(dst=\"68:05:ca:8d:ed:a8\")/IP(src=\"192.168.1.2\", dst=\"192.168.1.3\")/TCP(sport=25,dport=23)/Raw(\"x\"*80)],iface=\"ens786f0\",count=1)\r\n+\r\n+mismatched pkts::\r\n+\r\n+ sendp([Ether()/IP(dst=\"192.168.0.2\")/NVGRE(TNI=2)/Ether(dst=\"68:05:ca:8d:ed:a8\")/IP(src=\"192.168.1.2\", dst=\"192.168.1.3\")/TCP(sport=25,dport=23)/Raw(\"x\"*80)],iface=\"ens786f0\",count=1)\r\n+ sendp([Ether()/IP(dst=\"192.168.0.1\")/NVGRE(TNI=3)/Ether(dst=\"68:05:ca:8d:ed:a8\")/IP(src=\"192.168.1.2\", dst=\"192.168.1.3\")/TCP(sport=25,dport=23)/Raw(\"x\"*80)],iface=\"ens786f0\",count=1)\r\n+ sendp([Ether()/IP(dst=\"192.168.0.1\")/NVGRE(TNI=2)/Ether(dst=\"68:05:ca:8d:ed:a2\")/IP(src=\"192.168.1.2\", dst=\"192.168.1.3\")/TCP(sport=25,dport=23)/Raw(\"x\"*80)],iface=\"ens786f0\",count=1)\r\n+ sendp([Ether()/IP(dst=\"192.168.0.1\")/NVGRE(TNI=2)/Ether(dst=\"68:05:ca:8d:ed:a8\")/IP(src=\"192.168.1.5\", dst=\"192.168.1.3\")/TCP(sport=25,dport=23)/Raw(\"x\"*80)],iface=\"ens786f0\",count=1)\r\n+ sendp([Ether()/IP(dst=\"192.168.0.1\")/NVGRE(TNI=2)/Ether(dst=\"68:05:ca:8d:ed:a8\")/IP(src=\"192.168.1.2\", dst=\"192.168.1.7\")/TCP(sport=25,dport=23)/Raw(\"x\"*80)],iface=\"ens786f0\",count=1)\r\n+ sendp([Ether()/IP(dst=\"192.168.0.1\")/NVGRE(TNI=2)/Ether(dst=\"68:05:ca:8d:ed:a8\")/IP(src=\"192.168.1.2\", dst=\"192.168.1.3\")/TCP(sport=1,dport=23)/Raw(\"x\"*80)],iface=\"ens786f0\",count=1)\r\n+ sendp([Ether()/IP(dst=\"192.168.0.1\")/NVGRE(TNI=2)/Ether(dst=\"68:05:ca:8d:ed:a8\")/IP(src=\"192.168.1.2\", dst=\"192.168.1.3\")/TCP(sport=25,dport=20)/Raw(\"x\"*80)],iface=\"ens786f0\",count=1)\r\n+\r\n+\r\n+test case 17: MAC_IPV4_PFCP_NODE\r\n+================================\r\n+rules::\r\n+\r\n+ flow validate 0 priority 0 ingress pattern eth / ipv4 / udp / pfcp s_field is 0 / end actions vf id 1 / end\r\n+ flow validate 0 priority 1 ingress pattern eth / ipv4 / udp / pfcp s_field is 0 / end actions vf id 2 / end\r\n+ flow create 0 priority 0 ingress pattern eth / ipv4 / udp / pfcp s_field is 0 / end actions vf id 1 / end\r\n+ flow create 0 priority 1 ingress pattern eth / ipv4 / udp / pfcp s_field is 0 / end actions vf id 2 / end\r\n+\r\n+matched pkts::\r\n+\r\n+ sendp(Ether(dst=\"00:11:22:33:44:11\")/IP()/UDP(dport=8805)/PFCP(Sfield=0),iface=\"enp134s0f1\")\r\n+\r\n+mismatched pkts::\r\n+\r\n+ sendp(Ether(dst=\"00:11:22:33:44:11\")/IP()/UDP(dport=8805)/PFCP(Sfield=1),iface=\"enp134s0f1\")\r\n+ sendp(Ether(dst=\"00:11:22:33:44:11\")/IPv6()/UDP(dport=8805)/PFCP(Sfield=0),iface=\"enp134s0f1\")\r\n+ sendp(Ether(dst=\"00:11:22:33:44:11\")/IPv6()/UDP(dport=8805)/PFCP(Sfield=1),iface=\"enp134s0f1\")\r\n+\r\n+\r\n+test case 18: MAC_IPV4_PFCP_SESSION\r\n+===================================\r\n+rules::\r\n+\r\n+ flow validate 0 priority 0 ingress pattern eth / ipv4 / udp / pfcp s_field is 1 / end actions vf id 1 / end\r\n+ flow validate 0 priority 1 ingress pattern eth / ipv4 / udp / pfcp s_field is 1 / end actions vf id 2 / end\r\n+ flow create 0 priority 0 ingress pattern eth / ipv4 / udp / pfcp s_field is 1 / end actions vf id 1 / end\r\n+ flow create 0 priority 1 ingress pattern eth / ipv4 / udp / pfcp s_field is 1 / end actions vf id 2 / end\r\n+\r\n+matched pkts::\r\n+\r\n+ sendp(Ether(dst=\"00:11:22:33:44:11\")/IP()/UDP(dport=8805)/PFCP(Sfield=1),iface=\"enp134s0f1\")\r\n+\r\n+mismatched pkts::\r\n+\r\n+ sendp(Ether(dst=\"00:11:22:33:44:11\")/IP()/UDP(dport=8805)/PFCP(Sfield=0),iface=\"enp134s0f1\")\r\n+ sendp(Ether(dst=\"00:11:22:33:44:11\")/IPv6()/UDP(dport=8805)/PFCP(Sfield=0),iface=\"enp134s0f1\")\r\n+ sendp(Ether(dst=\"00:11:22:33:44:11\")/IPv6()/UDP(dport=8805)/PFCP(Sfield=1),iface=\"enp134s0f1\")\r\n+\r\n+\r\n+test case 19: MAC_IPV6_PFCP_NODE\r\n+================================\r\n+rules::\r\n+\r\n+ flow validate 0 priority 0 ingress pattern eth / ipv6 / udp / pfcp s_field is 0 / end actions vf id 1 / end\r\n+ flow validate 0 priority 1 ingress pattern eth / ipv6 / udp / pfcp s_field is 0 / end actions vf id 2 / end\r\n+ flow create 0 priority 0 ingress pattern eth / ipv6 / udp / pfcp s_field is 0 / end actions vf id 1 / end\r\n+ flow create 0 priority 1 ingress pattern eth / ipv6 / udp / pfcp s_field is 0 / end actions vf id 2 / end\r\n+\r\n+matched pkts::\r\n+\r\n+ sendp(Ether(dst=\"00:11:22:33:44:11\")/IPv6()/UDP(dport=8805)/PFCP(Sfield=0),iface=\"enp134s0f1\")\r\n+\r\n+mismatched pkts::\r\n+\r\n+ sendp(Ether(dst=\"00:11:22:33:44:11\")/IP()/UDP(dport=8805)/PFCP(Sfield=0),iface=\"enp134s0f1\")\r\n+ sendp(Ether(dst=\"00:11:22:33:44:11\")/IP()/UDP(dport=8805)/PFCP(Sfield=1),iface=\"enp134s0f1\")\r\n+ sendp(Ether(dst=\"00:11:22:33:44:11\")/IPv6()/UDP(dport=8805)/PFCP(Sfield=1),iface=\"enp134s0f1\")\r\n+\r\n+\r\n+test case 20: MAC_IPV6_PFCP_SESSION\r\n+===================================\r\n+rules::\r\n+\r\n+ flow validate 0 priority 0 ingress pattern eth / ipv6 / udp / pfcp s_field is 1 / end actions vf id 1 / end\r\n+ flow validate 0 priority 1 ingress pattern eth / ipv6 / udp / pfcp s_field is 1 / end actions vf id 2 / end\r\n+ flow create 0 priority 0 ingress pattern eth / ipv6 / udp / pfcp s_field is 1 / end actions vf id 1 / end\r\n+ flow create 0 priority 1 ingress pattern eth / ipv6 / udp / pfcp s_field is 1 / end actions vf id 2 / end\r\n+\r\n+matched pkts::\r\n+\r\n+ sendp(Ether(dst=\"00:11:22:33:44:11\")/IPv6()/UDP(dport=8805)/PFCP(Sfield=1),iface=\"enp134s0f1\")\r\n+\r\n+mismatched pkts::\r\n+\r\n+ sendp(Ether(dst=\"00:11:22:33:44:11\")/IP()/UDP(dport=8805)/PFCP(Sfield=0),iface=\"enp134s0f1\")\r\n+ sendp(Ether(dst=\"00:11:22:33:44:11\")/IP()/UDP(dport=8805)/PFCP(Sfield=1),iface=\"enp134s0f1\")\r\n+ sendp(Ether(dst=\"00:11:22:33:44:11\")/IPv6()/UDP(dport=8805)/PFCP(Sfield=0),iface=\"enp134s0f1\")\r\n+\r\n+\r\n+test case 21: IP multicast\r\n+==========================\r\n+rules::\r\n+\r\n+ flow validate 0 priority 0 ingress pattern eth / ipv4 dst spec 224.0.0.0 dst mask 240.0.0.0 / end actions vf id 1 / end\r\n+ flow validate 0 priority 1 ingress pattern eth / ipv4 dst spec 224.0.0.0 dst mask 240.0.0.0 / end actions vf id 2 / end\r\n+ flow create 0 priority 0 ingress pattern eth / ipv4 dst spec 224.0.0.0 dst mask 240.0.0.0 / end actions vf id 1 / end\r\n+ flow create 0 priority 1 ingress pattern eth / ipv4 dst spec 224.0.0.0 dst mask 240.0.0.0 / end actions vf id 2 / end\r\n+\r\n+matched pkts::\r\n+\r\n+ sendp([Ether()/IP(dst=\"239.0.0.0\")/TCP()/Raw(\"x\"*80)], iface=\"enp27s0f0\", count=1)\r\n+\r\n+mismatched pkts::\r\n+\r\n+ sendp([Ether()/IP(dst=\"128.0.0.0\")/TCP()/Raw(\"x\"*80)], iface=\"enp27s0f0\", count=1)\r\n+\r\n+\r\n+test case 22: L2 multicast\r\n+==========================\r\n+rules::\r\n+\r\n+ flow validate 0 priority 0 ingress pattern eth dst spec 01:00:5e:00:00:00 dst mask ff:ff:ff:80:00:00 / end actions vf id 1 / end\r\n+ flow validate 0 priority 1 ingress pattern eth dst spec 01:00:5e:00:00:00 dst mask ff:ff:ff:80:00:00 / end actions vf id 2 / end\r\n+ flow create 0 priority 0 ingress pattern eth dst spec 01:00:5e:00:00:00 dst mask ff:ff:ff:80:00:00 / end actions vf id 1 / end\r\n+ flow create 0 priority 1 ingress pattern eth dst spec 01:00:5e:00:00:00 dst mask ff:ff:ff:80:00:00 / end actions vf id 2 / end\r\n+\r\n+matched pkts::\r\n+\r\n+ sendp([Ether(dst=\"01:00:5e:7f:00:00\")/IP()/TCP()/Raw(\"x\"*80)], iface=\"enp27s0f0\", count=1)\r\n+\r\n+mismatched pkts::\r\n+\r\n+ sendp([Ether(dst=\"01:00:5e:ff:00:00\")/IP()/TCP()/Raw(\"x\"*80)], iface=\"enp27s0f0\", count=1)\r\n+\r\n+\r\n+test case 23: ethertype filter_PPPOD\r\n+====================================\r\n+rules::\r\n+\r\n+ flow validate 0 priority 0 ingress pattern eth type is 0x8863 / end actions vf id 1 / end\r\n+ flow validate 0 priority 1 ingress pattern eth type is 0x8863 / end actions vf id 2 / end\r\n+ flow create 0 priority 0 ingress pattern eth type is 0x8863 / end actions vf id 1 / end\r\n+ flow create 0 priority 1 ingress pattern eth type is 0x8863 / end actions vf id 2 / end\r\n+\r\n+matched pkts::\r\n+\r\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/PPPoED()/PPP()/IP()/Raw(\"x\" *80)],iface=\"enp27s0f0\",count=1)\r\n+\r\n+mismatched pkts::\r\n+\r\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/PPPoE()/PPP()/IP()/Raw(\"x\" *80)],iface=\"enp27s0f0\",count=1)\r\n+\r\n+\r\n+test case 24: ethertype filter_PPPOE\r\n+====================================\r\n+rules::\r\n+\r\n+ flow validate 0 priority 0 ingress pattern eth type is 0x8864 / end actions vf id 1 / end\r\n+ flow validate 0 priority 1 ingress pattern eth type is 0x8864 / end actions vf id 2 / end\r\n+ flow create 0 priority 0 ingress pattern eth type is 0x8864 / end actions vf id 1 / end\r\n+ flow create 0 priority 1 ingress pattern eth type is 0x8864 / end actions vf id 2 / end\r\n+\r\n+matched pkts::\r\n+\r\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/PPPoE()/PPP()/IP()/Raw(\"x\"*80)],iface=\"enp27s0f0\",count=1)\r\n+\r\n+mismatched pkts::\r\n+\r\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/PPPoED()/PPP()/IP()/Raw(\"x\"*80)],iface=\"enp27s0f0\",count=1)\r\n+\r\n+\r\n+test case 25: ethertype filter_IPV6\r\n+====================================\r\n+rules::\r\n+\r\n+ flow validate 0 priority 0 ingress pattern eth type is 0x86dd / end actions vf id 1 / end\r\n+ flow validate 0 priority 1 ingress pattern eth type is 0x86dd / end actions vf id 2 / end\r\n+ flow create 0 priority 0 ingress pattern eth type is 0x86dd / end actions vf id 1 / end\r\n+ flow create 0 priority 1 ingress pattern eth type is 0x86dd / end actions vf id 2 / end\r\n+\r\n+matched pkts::\r\n+\r\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IPv6(dst=\"CDCD:910A:2222:5498:8475:1111:3900:2020\", tc=3)/TCP(dport=23)/(\"X\"*480)], iface=\"enp27s0f0\", count=1)\r\n+ sendp([Ether(dst=\"00:11:22:33:44:55\",type=0x8100)/Dot1Q(vlan=1,type=0x86dd)/IPv6(dst=\"CDCD:910A:2222:5498:8475:1111:3900:2020\", tc=3)/TCP(dport=23)/(\"X\"*480)], iface=\"enp27s0f0\", count=1)\r\n+\r\n+mismatched pkts::\r\n+\r\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP()/TCP(dport=23)/(\"X\"*480)], iface=\"enp27s0f0\", count=1)\r\n+\r\n+\r\n+test case 26: UDP port filter_DHCP discovery\r\n+============================================\r\n+rules::\r\n+\r\n+ flow validate 0 priority 0 ingress pattern eth / ipv4 / udp src is 68 dst is 67 / end actions vf id 1 / end\r\n+ flow validate 0 priority 1 ingress pattern eth / ipv4 / udp src is 68 dst is 67 / end actions vf id 2 / end\r\n+ flow create 0 priority 0 ingress pattern eth / ipv4 / udp src is 68 dst is 67 / end actions vf id 1 / end\r\n+ flow create 0 priority 1 ingress pattern eth / ipv4 / udp src is 68 dst is 67 / end actions vf id 2 / end\r\n+\r\n+matched pkts::\r\n+\r\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP()/UDP(sport=68,dport=67)/BOOTP(chaddr=\"3c:fd:fe:b2:43:90\")/DHCP(options=[(\"message-type\",\"discover\"),\"end\"])/Raw(\"X\"*480)], iface=\"enp27s0f0\", count=1)\r\n+\r\n+mismatched pkts::\r\n+\r\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP()/UDP(sport=63,dport=67)/BOOTP(chaddr=\"3c:fd:fe:b2:43:90\")/DHCP(options=[(\"message-type\",\"discover\"),\"end\"])/Raw(\"X\"*480)], iface=\"enp27s0f0\", count=1)\r\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP()/UDP(sport=68,dport=69)/BOOTP(chaddr=\"3c:fd:fe:b2:43:90\")/DHCP(options=[(\"message-type\",\"discover\"),\"end\"])/Raw(\"X\"*480)], iface=\"enp27s0f0\", count=1)\r\n+\r\n+\r\n+test case 27: UDP port filter_DHCP offer\r\n+========================================\r\n+rules::\r\n+\r\n+ flow validate 0 priority 0 ingress pattern eth / ipv4 / udp src is 67 dst is 68 / end actions vf id 1 / end\r\n+ flow validate 0 priority 1 ingress pattern eth / ipv4 / udp src is 67 dst is 68 / end actions vf id 2 / end\r\n+ flow create 0 priority 0 ingress pattern eth / ipv4 / udp src is 67 dst is 68 / end actions vf id 1 / end\r\n+ flow create 0 priority 1 ingress pattern eth / ipv4 / udp src is 67 dst is 68 / end actions vf id 2 / end\r\n+\r\n+matched pkts::\r\n+\r\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP()/UDP(sport=67,dport=68)/BOOTP(chaddr=\"3c:fd:fe:b2:43:90\",yiaddr=\"192.168.1.0\")/DHCP(options=[(\"message-type\",\"offer\"),\"end\"])/Raw(\"X\"*480)], iface=\"enp27s0f0\", count=1)\r\n+\r\n+mismatched pkts::\r\n+\r\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP()/UDP(sport=63,dport=68)/BOOTP(chaddr=\"3c:fd:fe:b2:43:90\",yiaddr=\"192.168.1.0\")/DHCP(options=[(\"message-type\",\"offer\"),\"end\"])/Raw(\"X\"*480)], iface=\"enp27s0f0\", count=1)\r\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP()/UDP(sport=67,dport=63)/BOOTP(chaddr=\"3c:fd:fe:b2:43:90\",yiaddr=\"192.168.1.0\")/DHCP(options=[(\"message-type\",\"offer\"),\"end\"])/Raw(\"X\"*480)], iface=\"enp27s0f0\", count=1)\r\n+\r\n+\r\n+test case 28: UDP port filter_VXLAN\r\n+===================================\r\n+rules::\r\n+\r\n+ flow validate 0 priority 0 ingress pattern eth / ipv4 / udp dst is 4789 / end actions vf id 1 / end\r\n+ flow validate 0 priority 1 ingress pattern eth / ipv4 / udp dst is 4789 / end actions vf id 2 / end\r\n+ flow create 0 priority 0 ingress pattern eth / ipv4 / udp dst is 4789 / end actions vf id 1 / end\r\n+ flow create 0 priority 1 ingress pattern eth / ipv4 / udp dst is 4789 / end actions vf id 2 / end\r\n+\r\n+matched pkts::\r\n+\r\n+ sendp([Ether()/IP(dst=\"192.168.0.1\")/UDP()/VXLAN(vni=2)/Ether()/IP(src=\"192.168.0.2\", dst=\"192.168.0.3\",frag=5)/TCP()/Raw(\"x\"*80)],iface=\"enp27s0f0\",count=1)\r\n+\r\n+mismatched pkts::\r\n+\r\n+ sendp([Ether()/IP(dst=\"192.168.0.1\")/NVGRE(TNI=2)/Ether()/IP(src=\"192.168.1.2\", dst=\"192.168.1.3\")/TCP()/Raw(\"x\"*80)],iface=\"enp27s0f0\",count=1)\r\n+\r\n+\r\n+test case 29: MAC_VLAN filter\r\n+==============================\r\n+rules::\r\n+\r\n+ flow validate 0 priority 0 ingress pattern eth dst is 00:11:22:33:44:55 / vlan tci is 1 / end actions vf id 1 / end\r\n+ flow validate 0 priority 1 ingress pattern eth dst is 00:11:22:33:44:55 / vlan tci is 1 / end actions vf id 2 / end\r\n+ flow create 0 priority 0 ingress pattern eth dst is 00:11:22:33:44:55 / vlan tci is 1 / end actions vf id 1 / end\r\n+ flow create 0 priority 1 ingress pattern eth dst is 00:11:22:33:44:55 / vlan tci is 1 / end actions vf id 2 / end\r\n+\r\n+matched pkts::\r\n+\r\n+ sendp([Ether(dst=\"00:11:22:33:44:55\",type=0x8100)/Dot1Q(vlan=1)/IP(src=\"192.168.0.1\",dst=\"192.168.0.2\",tos=4,ttl=2)/TCP()/Raw(\"X\"*480)],iface=\"enp27s0f0\",count=1)\r\n+\r\n+mismatched pkts::\r\n+\r\n+ sendp([Ether(dst=\"00:11:22:33:44:54\",type=0x8100)/Dot1Q(vlan=1)/IP(src=\"192.168.0.1\",dst=\"192.168.0.2\",tos=4,ttl=2)/TCP()/Raw(\"X\"*480)],iface=\"enp27s0f0\",count=1)\r\n+ sendp([Ether(dst=\"00:11:22:33:44:55\",type=0x8100)/Dot1Q(vlan=2)/IP(src=\"192.168.0.1\",dst=\"192.168.0.2\",tos=4,ttl=2)/TCP()/Raw(\"X\"*480)],iface=\"enp27s0f0\",count=1)\r\n+\r\n+\r\n+test case 30: VLAN filter\r\n+==========================\r\n+rules::\r\n+\r\n+ flow validate 0 priority 0 ingress pattern eth / vlan tci is 1 / end actions vf id 1 / end\r\n+ flow validate 0 priority 1 ingress pattern eth / vlan tci is 1 / end actions vf id 2 / end\r\n+ flow create 0 priority 0 ingress pattern eth / vlan tci is 1 / end actions vf id 1 / end\r\n+ flow create 0 priority 1 ingress pattern eth / vlan tci is 1 / end actions vf id 2 / end\r\n+\r\n+matched pkts::\r\n+\r\n+ sendp([Ether(dst=\"00:11:22:33:44:55\",type=0x8100)/Dot1Q(vlan=1)/IP(src=\"192.168.0.1\",dst=\"192.168.0.2\",tos=4,ttl=2)/TCP()/Raw(\"X\"*480)],iface=\"enp27s0f0\",count=1)\r\n+\r\n+mismatched pkts::\r\n+\r\n+ sendp([Ether(dst=\"00:11:22:33:44:55\",type=0x8100)/Dot1Q(vlan=2)/IP(src=\"192.168.0.1\",dst=\"192.168.0.2\",tos=4,ttl=2)/TCP()/Raw(\"X\"*480)],iface=\"enp27s0f0\",count=1)\r\n+\r\n+\r\n+test case 31: MAC_IPV4_L2TPv3\r\n+=============================\r\n+rules::\r\n+\r\n+ flow validate 0 priority 0 ingress pattern eth / ipv4 src is 192.168.0.2 / l2tpv3oip session_id is 1 / end actions vf id 1 / end\r\n+ flow validate 0 priority 1 ingress pattern eth / ipv4 src is 192.168.0.2 / l2tpv3oip session_id is 1 / end actions vf id 2 / end\r\n+ flow create 0 priority 0 ingress pattern eth / ipv4 src is 192.168.0.2 / l2tpv3oip session_id is 1 / end actions vf id 1 / end\r\n+ flow create 0 priority 1 ingress pattern eth / ipv4 src is 192.168.0.2 / l2tpv3oip session_id is 1 / end actions vf id 2 / end\r\n+\r\n+matched pkts::\r\n+\r\n+ sendp([Ether(dst='00:11:22:33:44:12')/IP(src='192.168.0.2', proto=115)/L2TP('\\x00\\x00\\x00\\x01')/('X'*480)], iface=\"enp27s0f0\", count=1)\r\n+\r\n+mismatched pkts::\r\n+\r\n+ sendp([Ether(dst='00:11:22:33:44:12')/IP(src='192.168.0.2', proto=115)/L2TP('\\x00\\x00\\x00\\x02')/('X'*480)], iface=\"enp27s0f0\", count=1)\r\n+ sendp([Ether(dst='00:11:22:33:44:12')/IP(src='192.168.1.2', proto=115)/L2TP('\\x00\\x00\\x00\\x01')/('X'*480)], iface=\"enp27s0f0\", count=1)\r\n+ sendp([Ether(dst='00:11:22:33:44:12')/IP(dst='192.168.0.2', proto=115)/L2TP('\\x00\\x00\\x00\\x01')/('X'*480)], iface=\"enp27s0f0\", count=1)\r\n+\r\n+\r\n+test case 32: MAC_IPV6_L2TPv3\r\n+=============================\r\n+rules::\r\n+\r\n+ flow validate 0 priority 0 ingress pattern eth / ipv6 dst is 1111:2222:3333:4444:5555:6666:7777:8888 / l2tpv3oip session_id is 1 / end actions vf id 1 / end\r\n+ flow validate 0 priority 1 ingress pattern eth / ipv6 dst is 1111:2222:3333:4444:5555:6666:7777:8888 / l2tpv3oip session_id is 1 / end actions vf id 2 / end\r\n+ flow create 0 priority 0 ingress pattern eth / ipv6 dst is 1111:2222:3333:4444:5555:6666:7777:8888 / l2tpv3oip session_id is 1 / end actions vf id 1 / end\r\n+ flow create 0 priority 1 ingress pattern eth / ipv6 dst is 1111:2222:3333:4444:5555:6666:7777:8888 / l2tpv3oip session_id is 1 / end actions vf id 2 / end\r\n+\r\n+matched pkts::\r\n+\r\n+ sendp([Ether(dst='00:11:22:33:44:13')/IPv6(dst='1111:2222:3333:4444:5555:6666:7777:8888', nh=115)/L2TP('\\x00\\x00\\x00\\x01')/('X'*480)], iface=\"enp27s0f0\", count=1)\r\n+\r\n+mismatched pkts::\r\n+\r\n+ sendp([Ether(dst='00:11:22:33:44:13')/IPv6(dst='1111:2222:3333:4444:5555:6666:7777:8888', nh=115)/L2TP('\\x00\\x00\\x00\\x02')/('X'*480)], iface=\"enp27s0f0\", count=1)\r\n+ sendp([Ether(dst='00:11:22:33:44:13')/IPv6(dst='1111:2222:3333:4444:5555:6666:7777:9999', nh=115)/L2TP('\\x00\\x00\\x00\\x01')/('X'*480)], iface=\"enp27s0f0\", count=1)\r\n+ sendp([Ether(dst='00:11:22:33:44:13')/IPv6(src='1111:2222:3333:4444:5555:6666:7777:8888', nh=115)/L2TP('\\x00\\x00\\x00\\x01')/('X'*480)], iface=\"enp27s0f0\", count=1)\r\n+\r\n+\r\n+test case 33: MAC_IPV4_ESP\r\n+===========================\r\n+rules::\r\n+\r\n+ flow validate 0 priority 0 ingress pattern eth / ipv4 src is 192.168.0.2 / esp spi is 1 / end actions vf id 1 / end\r\n+ flow validate 0 priority 1 ingress pattern eth / ipv4 src is 192.168.0.2 / esp spi is 1 / end actions vf id 2 / end\r\n+ flow create 0 priority 0 ingress pattern eth / ipv4 src is 192.168.0.2 / esp spi is 1 / end actions vf id 1 / end\r\n+ flow create 0 priority 1 ingress pattern eth / ipv4 src is 192.168.0.2 / esp spi is 1 / end actions vf id 2 / end\r\n+\r\n+matched pkts::\r\n+\r\n+ sendp([Ether(dst=\"00:11:22:33:44:13\")/IP(src=\"192.168.0.2\", proto=50)/ESP(spi=1)/(\"X\"*480)], iface=\"enp27s0f0\", count=1)\r\n+\r\n+mismatched pkts::\r\n+\r\n+ sendp([Ether(dst=\"00:11:22:33:44:13\")/IP(src=\"192.168.0.2\", proto=50)/ESP(spi=2)/(\"X\"*480)], iface=\"enp27s0f0\", count=1)\r\n+ sendp([Ether(dst=\"00:11:22:33:44:13\")/IP(src=\"192.168.1.2\", proto=50)/ESP(spi=1)/(\"X\"*480)], iface=\"enp27s0f0\", count=1)\r\n+ sendp([Ether(dst=\"00:11:22:33:44:13\")/IP(dst=\"192.168.0.2\", proto=50)/ESP(spi=1)/(\"X\"*480)], iface=\"enp27s0f0\", count=1)\r\n+\r\n+\r\n+test case 34: MAC_IPV6_ESP\r\n+===========================\r\n+rules::\r\n+\r\n+ flow validate 0 priority 0 ingress pattern eth / ipv6 dst is 1111:2222:3333:4444:5555:6666:7777:8888 / esp spi is 1 / end actions vf id 1 / end\r\n+ flow validate 0 priority 1 ingress pattern eth / ipv6 dst is 1111:2222:3333:4444:5555:6666:7777:8888 / esp spi is 1 / end actions vf id 2 / end\r\n+ flow create 0 priority 0 ingress pattern eth / ipv6 dst is 1111:2222:3333:4444:5555:6666:7777:8888 / esp spi is 1 / end actions vf id 1 / end\r\n+ flow create 0 priority 1 ingress pattern eth / ipv6 dst is 1111:2222:3333:4444:5555:6666:7777:8888 / esp spi is 1 / end actions vf id 2 / end\r\n+\r\n+matched pkts::\r\n+\r\n+ sendp([Ether(dst=\"00:11:22:33:44:13\")/IPv6(dst=\"1111:2222:3333:4444:5555:6666:7777:8888\", nh=50)/ESP(spi=1)/(\"X\"*480)], iface=\"enp27s0f0\", count=1)\r\n+\r\n+mismatched pkts::\r\n+\r\n+ sendp([Ether(dst=\"00:11:22:33:44:13\")/IPv6(dst=\"1111:2222:3333:4444:5555:6666:7777:8888\", nh=50)/ESP(spi=2)/(\"X\"*480)], iface=\"enp27s0f0\", count=1)\r\n+ sendp([Ether(dst=\"00:11:22:33:44:13\")/IPv6(dst=\"1111:2222:3333:4444:5555:6666:7777:9999\", nh=50)/ESP(spi=1)/(\"X\"*480)], iface=\"enp27s0f0\", count=1)\r\n+ sendp([Ether(dst=\"00:11:22:33:44:13\")/IPv6(src=\"1111:2222:3333:4444:5555:6666:7777:8888\", nh=50)/ESP(spi=1)/(\"X\"*480)], iface=\"enp27s0f0\", count=1)\r\n+\r\n+\r\n+test case 35: MAC_IPV4_AH\r\n+===========================\r\n+rules::\r\n+\r\n+ flow validate 0 priority 0 ingress pattern eth / ipv4 src is 192.168.0.2 / ah spi is 1 / end actions vf id 1 / end\r\n+ flow validate 0 priority 1 ingress pattern eth / ipv4 src is 192.168.0.2 / ah spi is 1 / end actions vf id 2 / end\r\n+ flow create 0 priority 0 ingress pattern eth / ipv4 src is 192.168.0.2 / ah spi is 1 / end actions vf id 1 / end\r\n+ flow create 0 priority 1 ingress pattern eth / ipv4 src is 192.168.0.2 / ah spi is 1 / end actions vf id 2 / end\r\n+\r\n+matched pkts::\r\n+\r\n+ sendp([Ether(dst=\"00:11:22:33:44:13\")/IP(src=\"192.168.0.2\", proto=51)/AH(spi=1)/(\"X\"*480)], iface=\"enp27s0f0\", count=1)\r\n+\r\n+mismatched pkts::\r\n+\r\n+ sendp([Ether(dst=\"00:11:22:33:44:13\")/IP(src=\"192.168.0.2\", proto=51)/AH(spi=2)/(\"X\"*480)], iface=\"enp27s0f0\", count=1)\r\n+ sendp([Ether(dst=\"00:11:22:33:44:13\")/IP(src=\"192.168.1.2\", proto=51)/AH(spi=1)/(\"X\"*480)], iface=\"enp27s0f0\", count=1)\r\n+ sendp([Ether(dst=\"00:11:22:33:44:13\")/IP(dst=\"192.168.0.2\", proto=51)/AH(spi=1)/(\"X\"*480)], iface=\"enp27s0f0\", count=1)\r\n+\r\n+\r\n+test case 36: MAC_IPV6_AH\r\n+===========================\r\n+rules::\r\n+\r\n+ flow validate 0 priority 0 ingress pattern eth / ipv6 dst is 1111:2222:3333:4444:5555:6666:7777:8888 / ah spi is 1 / end actions vf id 1 / end\r\n+ flow validate 0 priority 1 ingress pattern eth / ipv6 dst is 1111:2222:3333:4444:5555:6666:7777:8888 / ah spi is 1 / end actions vf id 2 / end\r\n+ flow create 0 priority 0 ingress pattern eth / ipv6 dst is 1111:2222:3333:4444:5555:6666:7777:8888 / ah spi is 1 / end actions vf id 1 / end\r\n+ flow create 0 priority 1 ingress pattern eth / ipv6 dst is 1111:2222:3333:4444:5555:6666:7777:8888 / ah spi is 1 / end actions vf id 2 / end\r\n+\r\n+matched pkts::\r\n+\r\n+ sendp([Ether(dst=\"00:11:22:33:44:13\")/IPv6(dst=\"1111:2222:3333:4444:5555:6666:7777:8888\", nh=51)/AH(spi=1)/(\"X\"*480)], iface=\"enp27s0f0\", count=1)\r\n+\r\n+mismatched pkts::\r\n+\r\n+ sendp([Ether(dst=\"00:11:22:33:44:13\")/IPv6(dst=\"1111:2222:3333:4444:5555:6666:7777:8888\", nh=51)/AH(spi=2)/(\"X\"*480)], iface=\"enp27s0f0\", count=1)\r\n+ sendp([Ether(dst=\"00:11:22:33:44:13\")/IPv6(dst=\"1111:2222:3333:4444:5555:6666:7777:9999\", nh=51)/AH(spi=1)/(\"X\"*480)], iface=\"enp27s0f0\", count=1)\r\n+ sendp([Ether(dst=\"00:11:22:33:44:13\")/IPv6(src=\"1111:2222:3333:4444:5555:6666:7777:8888\", nh=51)/AH(spi=1)/(\"X\"*480)], iface=\"enp27s0f0\", count=1)\r\n+\r\n+\r\n+test case 37: MAC_IPV4_NAT-T-ESP\r\n+================================\r\n+rules::\r\n+\r\n+ flow validate 0 priority 0 ingress pattern eth / ipv4 src is 192.168.0.2 / udp / esp spi is 1 / end actions vf id 1 / end\r\n+ flow validate 0 priority 1 ingress pattern eth / ipv4 src is 192.168.0.2 / udp / esp spi is 1 / end actions vf id 2 / end\r\n+ flow create 0 priority 0 ingress pattern eth / ipv4 src is 192.168.0.2 / udp / esp spi is 1 / end actions vf id 1 / end\r\n+ flow create 0 priority 1 ingress pattern eth / ipv4 src is 192.168.0.2 / udp / esp spi is 1 / end actions vf id 2 / end\r\n+\r\n+matched pkts::\r\n+\r\n+ sendp([Ether(dst=\"00:11:22:33:44:13\")/IP(src=\"192.168.0.2\")/UDP(dport=4500)/ESP(spi=1)/(\"X\"*480)], iface=\"enp27s0f0\", count=1)\r\n+\r\n+mismatched pkts::\r\n+\r\n+ sendp([Ether(dst=\"00:11:22:33:44:13\")/IP(src=\"192.168.0.2\")/UDP(dport=4500)/ESP(spi=2)/(\"X\"*480)], iface=\"enp27s0f0\", count=1)\r\n+ sendp([Ether(dst=\"00:11:22:33:44:13\")/IP(src=\"192.168.1.2\")/UDP(dport=4500)/ESP(spi=1)/(\"X\"*480)], iface=\"enp27s0f0\", count=1)\r\n+ sendp([Ether(dst=\"00:11:22:33:44:13\")/IP(dst=\"192.168.0.2\")/UDP(dport=4500)/ESP(spi=1)/(\"X\"*480)], iface=\"enp27s0f0\", count=1)\r\n+\r\n+\r\n+test case 38: MAC_IPV6_NAT-T-ESP\r\n+================================\r\n+rules::\r\n+\r\n+ flow validate 0 priority 0 ingress pattern eth / ipv6 dst is 1111:2222:3333:4444:5555:6666:7777:8888 / udp / esp spi is 1 / end actions vf id 1 / end\r\n+ flow validate 0 priority 1 ingress pattern eth / ipv6 dst is 1111:2222:3333:4444:5555:6666:7777:8888 / udp / esp spi is 1 / end actions vf id 2 / end\r\n+ flow create 0 priority 0 ingress pattern eth / ipv6 dst is 1111:2222:3333:4444:5555:6666:7777:8888 / udp / esp spi is 1 / end actions vf id 1 / end\r\n+ flow create 0 priority 1 ingress pattern eth / ipv6 dst is 1111:2222:3333:4444:5555:6666:7777:8888 / udp / esp spi is 1 / end actions vf id 2 / end\r\n+\r\n+matched pkts::\r\n+\r\n+ sendp([Ether(dst=\"00:11:22:33:44:13\")/IPv6(dst=\"1111:2222:3333:4444:5555:6666:7777:8888\")/UDP(dport=4500)/ESP(spi=1)/(\"X\"*480)], iface=\"enp27s0f0\", count=1)\r\n+\r\n+mismatched pkts::\r\n+\r\n+ sendp([Ether(dst=\"00:11:22:33:44:13\")/IPv6(dst=\"1111:2222:3333:4444:5555:6666:7777:8888\")/UDP(dport=4500)/ESP(spi=2)/(\"X\"*480)], iface=\"enp27s0f0\", count=1)\r\n+ sendp([Ether(dst=\"00:11:22:33:44:13\")/IPv6(dst=\"1111:2222:3333:4444:5555:6666:7777:9999\")/UDP(dport=4500)/ESP(spi=1)/(\"X\"*480)], iface=\"enp27s0f0\", count=1)\r\n+ sendp([Ether(dst=\"00:11:22:33:44:13\")/IPv6(src=\"1111:2222:3333:4444:5555:6666:7777:8888\")/UDP(dport=4500)/ESP(spi=1)/(\"X\"*480)], iface=\"enp27s0f0\", count=1)\r\n+\r\n+\r\n+test case 39: MAC_VLAN_PPPOE_IPV4_PAY_session_id_proto_id\r\n+=========================================================\r\n+rules::\r\n+\r\n+ flow validate 0 priority 0 ingress pattern eth dst is 00:11:22:33:44:55 / vlan tci is 1 / pppoes seid is 3 / pppoe_proto_id is 0x0021 / end actions vf id 1 / end\r\n+ flow validate 0 priority 1 ingress pattern eth dst is 00:11:22:33:44:55 / vlan tci is 1 / pppoes seid is 3 / pppoe_proto_id is 0x0021 / end actions vf id 2 / end\r\n+ flow create 0 priority 0 ingress pattern eth dst is 00:11:22:33:44:55 / vlan tci is 1 / pppoes seid is 3 / pppoe_proto_id is 0x0021 / end actions vf id 1 / end\r\n+ flow create 0 priority 1 ingress pattern eth dst is 00:11:22:33:44:55 / vlan tci is 1 / pppoes seid is 3 / pppoe_proto_id is 0x0021 / end actions vf id 2 / end\r\n+\r\n+matched pkts::\r\n+\r\n+ sendp([Ether(dst=\"00:11:22:33:44:55\",type=0x8100)/Dot1Q(vlan=1,type=0x8864)/PPPoE(sessionid=3)/PPP(proto=0x0021)/IP()/Raw(\"x\" * 80)],iface=\"enp27s0f0\",count=1)\r\n+\r\n+mismatched pkts::\r\n+\r\n+ sendp([Ether(dst=\"00:11:22:33:44:54\",type=0x8100)/Dot1Q(vlan=1,type=0x8864)/PPPoE(sessionid=3)/PPP(proto=0x0021)/IP()/Raw(\"x\" * 80)],iface=\"enp27s0f0\",count=1)\r\n+ sendp([Ether(dst=\"00:11:22:33:44:55\",type=0x8100)/Dot1Q(vlan=2,type=0x8864)/PPPoE(sessionid=3)/PPP(proto=0x0021)/IP()/Raw(\"x\" * 80)],iface=\"enp27s0f0\",count=1)\r\n+ sendp([Ether(dst=\"00:11:22:33:44:55\",type=0x8100)/Dot1Q(vlan=1,type=0x8864)/PPPoE(sessionid=4)/PPP(proto=0x0021)/IP()/Raw(\"x\" * 80)],iface=\"enp27s0f0\",count=1)\r\n+ sendp([Ether(dst=\"00:11:22:33:44:55\",type=0x8100)/Dot1Q(vlan=1,type=0x8864)/PPPoE(sessionid=3)/PPP(proto=0x0057)/IPv6()/Raw(\"x\" * 80)],iface=\"enp27s0f0\",count=1)\r\n+\r\n+\r\n+test case 40: MAC_VLAN_PPPOE_IPV6_PAY_session_id_proto_id\r\n+=========================================================\r\n+rules::\r\n+\r\n+ flow validate 0 priority 0 ingress pattern eth dst is 00:11:22:33:44:55 / vlan tci is 1 / pppoes seid is 3 / pppoe_proto_id is 0x0057 / end actions vf id 1 / end\r\n+ flow validate 0 priority 1 ingress pattern eth dst is 00:11:22:33:44:55 / vlan tci is 1 / pppoes seid is 3 / pppoe_proto_id is 0x0057 / end actions vf id 2 / end\r\n+ flow create 0 priority 0 ingress pattern eth dst is 00:11:22:33:44:55 / vlan tci is 1 / pppoes seid is 3 / pppoe_proto_id is 0x0057 / end actions vf id 1 / end\r\n+ flow create 0 priority 1 ingress pattern eth dst is 00:11:22:33:44:55 / vlan tci is 1 / pppoes seid is 3 / pppoe_proto_id is 0x0057 / end actions vf id 2 / end\r\n+\r\n+matched pkts::\r\n+\r\n+ sendp([Ether(dst=\"00:11:22:33:44:55\",type=0x8100)/Dot1Q(vlan=1,type=0x8864)/PPPoE(sessionid=3)/PPP(proto=0x0057)/IPv6()/Raw(\"x\" * 80)],iface=\"enp27s0f0\",count=1)\r\n+\r\n+mismatched pkts::\r\n+\r\n+ sendp([Ether(dst=\"00:11:22:33:44:54\",type=0x8100)/Dot1Q(vlan=1,type=0x8864)/PPPoE(sessionid=3)/PPP(proto=0x0057)/IPv6()/Raw(\"x\" * 80)],iface=\"enp27s0f0\",count=1)\r\n+ sendp([Ether(dst=\"00:11:22:33:44:55\",type=0x8100)/Dot1Q(vlan=2,type=0x8864)/PPPoE(sessionid=3)/PPP(proto=0x0057)/IPv6()/Raw(\"x\" * 80)],iface=\"enp27s0f0\",count=1)\r\n+ sendp([Ether(dst=\"00:11:22:33:44:55\",type=0x8100)/Dot1Q(vlan=1,type=0x8864)/PPPoE(sessionid=4)/PPP(proto=0x0057)/IPv6()/Raw(\"x\" * 80)],iface=\"enp27s0f0\",count=1)\r\n+ sendp([Ether(dst=\"00:11:22:33:44:55\",type=0x8100)/Dot1Q(vlan=1,type=0x8864)/PPPoE(sessionid=3)/PPP(proto=0x0021)/IP()/Raw(\"x\" * 80)],iface=\"enp27s0f0\",count=1)\r\n+\r\n+\r\n+test case 41: MAC_PPPOE_IPV4_PAY_session_id_proto_id\r\n+====================================================\r\n+rules::\r\n+\r\n+ flow validate 0 priority 0 ingress pattern eth dst is 00:11:22:33:44:55 / pppoes seid is 3 / pppoe_proto_id is 0x0021 / end actions vf id 1 / end\r\n+ flow validate 0 priority 1 ingress pattern eth dst is 00:11:22:33:44:55 / pppoes seid is 3 / pppoe_proto_id is 0x0021 / end actions vf id 2 / end\r\n+ flow create 0 priority 0 ingress pattern eth dst is 00:11:22:33:44:55 / pppoes seid is 3 / pppoe_proto_id is 0x0021 / end actions vf id 1 / end\r\n+ flow create 0 priority 1 ingress pattern eth dst is 00:11:22:33:44:55 / pppoes seid is 3 / pppoe_proto_id is 0x0021 / end actions vf id 2 / end\r\n+\r\n+matched pkts::\r\n+\r\n+ sendp([Ether(dst=\"00:11:22:33:44:55\",type=0x8864)/PPPoE(sessionid=3)/PPP(proto=0x0021)/IP()/Raw(\"x\" * 80)],iface=\"enp27s0f0\",count=1)\r\n+\r\n+mismatched pkts::\r\n+\r\n+ sendp([Ether(dst=\"00:11:22:33:44:54\",type=0x8864)/PPPoE(sessionid=3)/PPP(proto=0x0021)/IP()/Raw(\"x\" * 80)],iface=\"enp27s0f0\",count=1)\r\n+ sendp([Ether(dst=\"00:11:22:33:44:55\",type=0x8864)/PPPoE(sessionid=4)/PPP(proto=0x0021)/IP()/Raw(\"x\" * 80)],iface=\"enp27s0f0\",count=1)\r\n+ sendp([Ether(dst=\"00:11:22:33:44:55\",type=0x8864)/PPPoE(sessionid=3)/PPP(proto=0x0057)/IPv6()/Raw(\"x\" * 80)],iface=\"enp27s0f0\",count=1)\r\n+\r\n+\r\n+test case 42: MAC_PPPOE_IPV6_PAY_session_id_proto_id\r\n+====================================================\r\n+rules::\r\n+\r\n+ flow validate 0 priority 0 ingress pattern eth dst is 00:11:22:33:44:55 / pppoes seid is 3 / pppoe_proto_id is 0x0057 / end actions vf id 1 / end\r\n+ flow validate 0 priority 1 ingress pattern eth dst is 00:11:22:33:44:55 / pppoes seid is 3 / pppoe_proto_id is 0x0057 / end actions vf id 2 / end\r\n+ flow create 0 priority 0 ingress pattern eth dst is 00:11:22:33:44:55 / pppoes seid is 3 / pppoe_proto_id is 0x0057 / end actions vf id 1 / end\r\n+ flow create 0 priority 1 ingress pattern eth dst is 00:11:22:33:44:55 / pppoes seid is 3 / pppoe_proto_id is 0x0057 / end actions vf id 2 / end\r\n+\r\n+matched pkts::\r\n+\r\n+ sendp([Ether(dst=\"00:11:22:33:44:55\",type=0x8864)/PPPoE(sessionid=3)/PPP(proto=0x0057)/IPv6()/Raw(\"x\" * 80)],iface=\"enp27s0f0\",count=1)\r\n+\r\n+mismatched pkts::\r\n+\r\n+ sendp([Ether(dst=\"00:11:22:33:44:54\",type=0x8864)/PPPoE(sessionid=3)/PPP(proto=0x0057)/IPv6()/Raw(\"x\" * 80)],iface=\"enp27s0f0\",count=1)\r\n+ sendp([Ether(dst=\"00:11:22:33:44:55\",type=0x8864)/PPPoE(sessionid=4)/PPP(proto=0x0057)/IPv6()/Raw(\"x\" * 80)],iface=\"enp27s0f0\",count=1)\r\n+ sendp([Ether(dst=\"00:11:22:33:44:55\",type=0x8864)/PPPoE(sessionid=3)/PPP(proto=0x0021)/IP()/Raw(\"x\" * 80)],iface=\"enp27s0f0\",count=1)\r\n+\r\n+\r\n+test case 43: MAC_PPPOE_IPV4_PAY_IP_address\r\n+===========================================\r\n+rules::\r\n+\r\n+ flow validate 0 priority 0 ingress pattern eth / pppoes / ipv4 src is 192.168.1.1 dst is 192.168.1.2 / end actions vf id 1 / end\r\n+ flow validate 0 priority 1 ingress pattern eth / pppoes / ipv4 src is 192.168.1.1 dst is 192.168.1.2 / end actions vf id 2 / end\r\n+ flow create 0 priority 0 ingress pattern eth / pppoes / ipv4 src is 192.168.1.1 dst is 192.168.1.2 / end actions vf id 1 / end\r\n+ flow create 0 priority 1 ingress pattern eth / pppoes / ipv4 src is 192.168.1.1 dst is 192.168.1.2 / end actions vf id 2 / end\r\n+\r\n+matched pkts::\r\n+\r\n+ sendp([Ether(dst=\"00:11:22:33:44:55\",type=0x8864)/PPPoE(sessionid=3)/PPP(proto=0x0021)/IP(src=\"192.168.1.1\", dst=\"192.168.1.2\")/Raw(\"x\"*80)],iface=\"ens786f0\",count=1)\r\n+\r\n+mismatched pkts::\r\n+\r\n+ sendp([Ether(dst=\"00:11:22:33:44:55\",type=0x8864)/PPPoE(sessionid=3)/PPP(proto=0x0021)/IP(src=\"192.168.1.3\", dst=\"192.168.1.2\")/Raw(\"x\"*80)],iface=\"ens786f0\",count=1)\r\n+ sendp([Ether(dst=\"00:11:22:33:44:55\",type=0x8864)/PPPoE(sessionid=3)/PPP(proto=0x0021)/IP(src=\"192.168.1.1\", dst=\"192.168.1.4\")/Raw(\"x\"*80)],iface=\"ens786f0\",count=1)\r\n+\r\n+\r\n+test case 44: MAC_PPPOE_IPV4_UDP_PAY\r\n+===========================================\r\n+rules::\r\n+\r\n+ flow validate 0 priority 0 ingress pattern eth / pppoes / ipv4 src is 192.168.1.1 dst is 192.168.1.2 / udp src is 25 dst is 23 / end actions vf id 1 / end\r\n+ flow validate 0 priority 1 ingress pattern eth / pppoes / ipv4 src is 192.168.1.1 dst is 192.168.1.2 / udp src is 25 dst is 23 / end actions vf id 2 / end\r\n+ flow create 0 priority 0 ingress pattern eth / pppoes / ipv4 src is 192.168.1.1 dst is 192.168.1.2 / udp src is 25 dst is 23 / end actions vf id 1 / end\r\n+ flow create 0 priority 1 ingress pattern eth / pppoes / ipv4 src is 192.168.1.1 dst is 192.168.1.2 / udp src is 25 dst is 23 / end actions vf id 2 / end\r\n+\r\n+matched pkts::\r\n+\r\n+ sendp([Ether(dst=\"00:11:22:33:44:55\",type=0x8864)/PPPoE(sessionid=3)/PPP(proto=0x0021)/IP(src=\"192.168.1.1\", dst=\"192.168.1.2\")/UDP(sport=25,dport=23)/Raw(\"x\" * 80)],iface=\"ens786f0\",count=1)\r\n+\r\n+mismatched pkts::\r\n+\r\n+ sendp([Ether(dst=\"00:11:22:33:44:55\",type=0x8864)/PPPoE(sessionid=3)/PPP(proto=0x0021)/IP(src=\"192.168.1.3\", dst=\"192.168.1.2\")/UDP(sport=25,dport=23)/Raw(\"x\" * 80)],iface=\"ens786f0\",count=1)\r\n+ sendp([Ether(dst=\"00:11:22:33:44:55\",type=0x8864)/PPPoE(sessionid=3)/PPP(proto=0x0021)/IP(src=\"192.168.1.1\", dst=\"192.168.1.4\")/UDP(sport=25,dport=23)/Raw(\"x\" * 80)],iface=\"ens786f0\",count=1)\r\n+ sendp([Ether(dst=\"00:11:22:33:44:55\",type=0x8864)/PPPoE(sessionid=3)/PPP(proto=0x0021)/IP(src=\"192.168.1.1\", dst=\"192.168.1.2\")/UDP(sport=27,dport=23)/Raw(\"x\" * 80)],iface=\"ens786f0\",count=1)\r\n+ sendp([Ether(dst=\"00:11:22:33:44:55\",type=0x8864)/PPPoE(sessionid=3)/PPP(proto=0x0021)/IP(src=\"192.168.1.1\", dst=\"192.168.1.2\")/UDP(sport=25,dport=19)/Raw(\"x\" * 80)],iface=\"ens786f0\",count=1)\r\n+\r\n+\r\n+test case 45: MAC_PPPOE_IPV4_UDP_PAY_non_src_dst_port\r\n+=====================================================\r\n+rules::\r\n+\r\n+ flow validate 0 priority 0 ingress pattern eth / pppoes / ipv4 src is 192.168.1.1 dst is 192.168.1.2 / udp / end actions vf id 1 / end\r\n+ flow validate 0 priority 1 ingress pattern eth / pppoes / ipv4 src is 192.168.1.1 dst is 192.168.1.2 / udp / end actions vf id 2 / end\r\n+ flow create 0 priority 0 ingress pattern eth / pppoes / ipv4 src is 192.168.1.1 dst is 192.168.1.2 / udp / end actions vf id 1 / end\r\n+ flow create 0 priority 1 ingress pattern eth / pppoes / ipv4 src is 192.168.1.1 dst is 192.168.1.2 / udp / end actions vf id 2 / end\r\n+\r\n+matched pkts::\r\n+\r\n+ sendp([Ether(dst=\"00:11:22:33:44:55\",type=0x8864)/PPPoE(sessionid=3)/PPP(proto=0x0021)/IP(src=\"192.168.1.1\", dst=\"192.168.1.2\")/UDP(sport=25,dport=23)/Raw(\"x\" * 80)],iface=\"ens786f0\",count=1)\r\n+\r\n+mismatched pkts::\r\n+\r\n+ sendp([Ether(dst=\"00:11:22:33:44:55\",type=0x8864)/PPPoE(sessionid=3)/PPP(proto=0x0021)/IP(src=\"192.168.1.3\", dst=\"192.168.1.2\")/UDP(sport=25,dport=23)/Raw(\"x\" * 80)],iface=\"ens786f0\",count=1)\r\n+ sendp([Ether(dst=\"00:11:22:33:44:55\",type=0x8864)/PPPoE(sessionid=3)/PPP(proto=0x0021)/IP(src=\"192.168.1.1\", dst=\"192.168.1.4\")/UDP(sport=25,dport=23)/Raw(\"x\" * 80)],iface=\"ens786f0\",count=1)\r\n+ sendp([Ether(dst=\"00:11:22:33:44:55\",type=0x8864)/PPPoE(sessionid=3)/PPP(proto=0x0021)/IP(src=\"192.168.1.1\", dst=\"192.168.1.2\")/TCP(sport=25,dport=23)/Raw(\"x\" * 80)],iface=\"ens786f0\",count=1)\r\n+ sendp([Ether(dst=\"00:11:22:33:44:55\",type=0x8864)/PPPoE(sessionid=3)/PPP(proto=0x0021)/IP(src=\"192.168.1.1\", dst=\"192.168.1.2\")/Raw(\"x\" * 80)],iface=\"ens786f0\",count=1)\r\n+\r\n+\r\n+test case 46: MAC_PPPOE_IPV4_TCP_PAY\r\n+=====================================\r\n+rules::\r\n+\r\n+ flow validate 0 priority 0 ingress pattern eth / pppoes / ipv4 src is 192.168.1.1 dst is 192.168.1.2 / tcp src is 25 dst is 23 / end actions vf id 1 / end\r\n+ flow validate 0 priority 1 ingress pattern eth / pppoes / ipv4 src is 192.168.1.1 dst is 192.168.1.2 / tcp src is 25 dst is 23 / end actions vf id 2 / end\r\n+ flow create 0 priority 0 ingress pattern eth / pppoes / ipv4 src is 192.168.1.1 dst is 192.168.1.2 / tcp src is 25 dst is 23 / end actions vf id 1 / end\r\n+ flow create 0 priority 1 ingress pattern eth / pppoes / ipv4 src is 192.168.1.1 dst is 192.168.1.2 / tcp src is 25 dst is 23 / end actions vf id 2 / end\r\n+\r\n+matched pkts::\r\n+\r\n+ sendp([Ether(dst=\"00:11:22:33:44:55\",type=0x8864)/PPPoE(sessionid=3)/PPP(proto=0x0021)/IP(src=\"192.168.1.1\", dst=\"192.168.1.2\")/TCP(sport=25,dport=23)/Raw(\"x\" * 80)],iface=\"ens786f0\",count=1)\r\n+\r\n+mismatched pkts::\r\n+\r\n+ sendp([Ether(dst=\"00:11:22:33:44:55\",type=0x8864)/PPPoE(sessionid=3)/PPP(proto=0x0021)/IP(src=\"192.168.1.3\", dst=\"192.168.1.2\")/TCP(sport=25,dport=23)/Raw(\"x\" * 80)],iface=\"ens786f0\",count=1)\r\n+ sendp([Ether(dst=\"00:11:22:33:44:55\",type=0x8864)/PPPoE(sessionid=3)/PPP(proto=0x0021)/IP(src=\"192.168.1.1\", dst=\"192.168.1.4\")/TCP(sport=25,dport=23)/Raw(\"x\" * 80)],iface=\"ens786f0\",count=1)\r\n+ sendp([Ether(dst=\"00:11:22:33:44:55\",type=0x8864)/PPPoE(sessionid=3)/PPP(proto=0x0021)/IP(src=\"192.168.1.1\", dst=\"192.168.1.2\")/TCP(sport=27,dport=23)/Raw(\"x\" * 80)],iface=\"ens786f0\",count=1)\r\n+ sendp([Ether(dst=\"00:11:22:33:44:55\",type=0x8864)/PPPoE(sessionid=3)/PPP(proto=0x0021)/IP(src=\"192.168.1.1\", dst=\"192.168.1.2\")/TCP(sport=25,dport=19)/Raw(\"x\" * 80)],iface=\"ens786f0\",count=1)\r\n+\r\n+\r\n+test case 47: MAC_PPPOE_IPV4_TCP_PAY_non_src_dst_port\r\n+======================================================\r\n+rules::\r\n+\r\n+ flow validate 0 priority 0 ingress pattern eth / pppoes / ipv4 src is 192.168.1.1 dst is 192.168.1.2 / tcp / end actions vf id 1 / end\r\n+ flow validate 0 priority 1 ingress pattern eth / pppoes / ipv4 src is 192.168.1.1 dst is 192.168.1.2 / tcp / end actions vf id 2 / end\r\n+ flow create 0 priority 0 ingress pattern eth / pppoes / ipv4 src is 192.168.1.1 dst is 192.168.1.2 / tcp / end actions vf id 1 / end\r\n+ flow create 0 priority 1 ingress pattern eth / pppoes / ipv4 src is 192.168.1.1 dst is 192.168.1.2 / tcp / end actions vf id 2 / end\r\n+\r\n+matched pkts::\r\n+\r\n+ sendp([Ether(dst=\"00:11:22:33:44:55\",type=0x8864)/PPPoE(sessionid=3)/PPP(proto=0x0021)/IP(src=\"192.168.1.1\", dst=\"192.168.1.2\")/TCP(sport=25,dport=23)/Raw(\"x\" * 80)],iface=\"ens786f0\",count=1)\r\n+\r\n+mismatched pkts::\r\n+\r\n+ sendp([Ether(dst=\"00:11:22:33:44:55\",type=0x8864)/PPPoE(sessionid=3)/PPP(proto=0x0021)/IP(src=\"192.168.1.3\", dst=\"192.168.1.2\")/TCP(sport=25,dport=23)/Raw(\"x\" * 80)],iface=\"ens786f0\",count=1)\r\n+ sendp([Ether(dst=\"00:11:22:33:44:55\",type=0x8864)/PPPoE(sessionid=3)/PPP(proto=0x0021)/IP(src=\"192.168.1.1\", dst=\"192.168.1.4\")/TCP(sport=25,dport=23)/Raw(\"x\" * 80)],iface=\"ens786f0\",count=1)\r\n+ sendp([Ether(dst=\"00:11:22:33:44:55\",type=0x8864)/PPPoE(sessionid=3)/PPP(proto=0x0021)/IP(src=\"192.168.1.1\", dst=\"192.168.1.2\")/UDP(sport=25,dport=23)/Raw(\"x\" * 80)],iface=\"ens786f0\",count=1)\r\n+ sendp([Ether(dst=\"00:11:22:33:44:55\",type=0x8864)/PPPoE(sessionid=3)/PPP(proto=0x0021)/IP(src=\"192.168.1.1\", dst=\"192.168.1.2\")/Raw(\"x\" * 80)],iface=\"ens786f0\",count=1)\r\n+\r\n+\r\n+test case 48: MAC_PPPOE_IPV6_PAY_IP_address\r\n+===========================================\r\n+rules::\r\n+\r\n+ flow validate 0 priority 0 ingress pattern eth / pppoes / ipv6 src is CDCD:910A:2222:5498:8475:1111:3900:1536 dst is CDCD:910A:2222:5498:8475:1111:3900:2022 / end actions vf id 1 / end\r\n+ flow validate 0 priority 1 ingress pattern eth / pppoes / ipv6 src is CDCD:910A:2222:5498:8475:1111:3900:1536 dst is CDCD:910A:2222:5498:8475:1111:3900:2022 / end actions vf id 2 / end\r\n+ flow create 0 priority 0 ingress pattern eth / pppoes / ipv6 src is CDCD:910A:2222:5498:8475:1111:3900:1536 dst is CDCD:910A:2222:5498:8475:1111:3900:2022 / end actions vf id 1 / end\r\n+ flow create 0 priority 1 ingress pattern eth / pppoes / ipv6 src is CDCD:910A:2222:5498:8475:1111:3900:1536 dst is CDCD:910A:2222:5498:8475:1111:3900:2022 / end actions vf id 2 / end\r\n+\r\n+matched pkts::\r\n+\r\n+ sendp([Ether(src=\"11:22:33:44:55:99\",dst=\"00:11:22:33:44:55\",type=0x8864)/PPPoE(sessionid=3)/PPP(proto=0x0057)/IPv6(src=\"CDCD:910A:2222:5498:8475:1111:3900:1536\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2022\")/Raw(\"x\"*80)],iface=\"ens786f0\",count=1)\r\n+\r\n+mismatched pkts::\r\n+\r\n+ sendp([Ether(src=\"11:22:33:44:55:99\",dst=\"00:11:22:33:44:55\",type=0x8864)/PPPoE(sessionid=3)/PPP(proto=0x0057)/IPv6(src=\"CDCD:910A:2222:5498:8475:1111:3900:1537\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2022\")/Raw(\"x\"*80)],iface=\"ens786f0\",count=1)\r\n+ sendp([Ether(src=\"11:22:33:44:55:99\",dst=\"00:11:22:33:44:55\",type=0x8864)/PPPoE(sessionid=3)/PPP(proto=0x0057)/IPv6(src=\"CDCD:910A:2222:5498:8475:1111:3900:1536\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2023\")/Raw(\"x\"*80)],iface=\"ens786f0\",count=1)\r\n+ sendp([Ether(src=\"11:22:33:44:55:99\",dst=\"00:11:22:33:44:55\")/IPv6(src=\"CDCD:910A:2222:5498:8475:1111:3900:1536\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2022\")/Raw(\"x\"*80)],iface=\"ens786f0\",count=1)\r\n+\r\n+\r\n+test case 49: MAC_PPPOE_IPV6_UDP_PAY\r\n+====================================\r\n+rules::\r\n+\r\n+ flow validate 0 priority 0 ingress pattern eth / pppoes / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2022 / udp src is 25 dst is 23 / end actions vf id 1 / end\r\n+ flow validate 0 priority 1 ingress pattern eth / pppoes / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2022 / udp src is 25 dst is 23 / end actions vf id 2 / end\r\n+ flow create 0 priority 0 ingress pattern eth / pppoes / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2022 / udp src is 25 dst is 23 / end actions vf id 1 / end\r\n+ flow create 0 priority 1 ingress pattern eth / pppoes / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2022 / udp src is 25 dst is 23 / end actions vf id 2 / end\r\n+\r\n+matched pkts::\r\n+\r\n+ sendp([Ether(src=\"11:22:33:44:55:99\",dst=\"00:11:22:33:44:55\",type=0x8864)/PPPoE(sessionid=3)/PPP(proto=0x0057)/IPv6(src=\"CDCD:910A:2222:5498:8475:1111:3900:1536\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2022\")/UDP(sport=25,dport=23)/Raw(\"x\" * 80)],iface=\"ens786f0\",count=1)\r\n+\r\n+mismatched pkts::\r\n+\r\n+ sendp([Ether(src=\"11:22:33:44:55:99\",dst=\"00:11:22:33:44:55\",type=0x8864)/PPPoE(sessionid=3)/PPP(proto=0x0057)/IPv6(src=\"CDCD:910A:2222:5498:8475:1111:3900:1536\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2023\")/UDP(sport=25,dport=23)/Raw(\"x\" * 80)],iface=\"ens786f0\",count=1)\r\n+ sendp([Ether(src=\"11:22:33:44:55:99\",dst=\"00:11:22:33:44:55\",type=0x8864)/PPPoE(sessionid=3)/PPP(proto=0x0057)/IPv6(src=\"CDCD:910A:2222:5498:8475:1111:3900:1536\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2022\")/UDP(sport=27,dport=23)/Raw(\"x\" * 80)],iface=\"ens786f0\",count=1)\r\n+ sendp([Ether(src=\"11:22:33:44:55:99\",dst=\"00:11:22:33:44:55\",type=0x8864)/PPPoE(sessionid=3)/PPP(proto=0x0057)/IPv6(src=\"CDCD:910A:2222:5498:8475:1111:3900:1536\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2022\")/UDP(sport=25,dport=19)/Raw(\"x\" * 80)],iface=\"ens786f0\",count=1)\r\n+\r\n+\r\n+test case 50: MAC_PPPOE_IPV6_UDP_PAY_non_src_dst_port\r\n+=====================================================\r\n+rules::\r\n+\r\n+ flow validate 0 priority 0 ingress pattern eth / pppoes / ipv6 src is CDCD:910A:2222:5498:8475:1111:3900:1536 dst is CDCD:910A:2222:5498:8475:1111:3900:2022 / udp / end actions vf id 1 / end\r\n+ flow validate 0 priority 1 ingress pattern eth / pppoes / ipv6 src is CDCD:910A:2222:5498:8475:1111:3900:1536 dst is CDCD:910A:2222:5498:8475:1111:3900:2022 / udp / end actions vf id 2 / end\r\n+ flow create 0 priority 0 ingress pattern eth / pppoes / ipv6 src is CDCD:910A:2222:5498:8475:1111:3900:1536 dst is CDCD:910A:2222:5498:8475:1111:3900:2022 / udp / end actions vf id 1 / end\r\n+ flow create 0 priority 1 ingress pattern eth / pppoes / ipv6 src is CDCD:910A:2222:5498:8475:1111:3900:1536 dst is CDCD:910A:2222:5498:8475:1111:3900:2022 / udp / end actions vf id 2 / end\r\n+\r\n+matched pkts::\r\n+\r\n+ sendp([Ether(src=\"11:22:33:44:55:99\",dst=\"00:11:22:33:44:55\",type=0x8864)/PPPoE(sessionid=3)/PPP(proto=0x0057)/IPv6(src=\"CDCD:910A:2222:5498:8475:1111:3900:1536\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2022\")/UDP(sport=25,dport=23)/Raw(\"x\" * 80)],iface=\"ens786f0\",count=1)\r\n+\r\n+mismatched pkts::\r\n+\r\n+ sendp([Ether(src=\"11:22:33:44:55:99\",dst=\"00:11:22:33:44:55\",type=0x8864)/PPPoE(sessionid=3)/PPP(proto=0x0057)/IPv6(src=\"CDCD:910A:2222:5498:8475:1111:3900:1537\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2022\")/UDP(sport=25,dport=23)/Raw(\"x\" * 80)],iface=\"ens786f0\",count=1)\r\n+ sendp([Ether(src=\"11:22:33:44:55:99\",dst=\"00:11:22:33:44:55\",type=0x8864)/PPPoE(sessionid=3)/PPP(proto=0x0057)/IPv6(src=\"CDCD:910A:2222:5498:8475:1111:3900:1536\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2023\")/UDP(sport=25,dport=23)/Raw(\"x\" * 80)],iface=\"ens786f0\",count=1)\r\n+ sendp([Ether(src=\"11:22:33:44:55:99\",dst=\"00:11:22:33:44:55\",type=0x8864)/PPPoE(sessionid=3)/PPP(proto=0x0057)/IPv6(src=\"CDCD:910A:2222:5498:8475:1111:3900:1536\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2022\")/TCP(sport=25,dport=23)/Raw(\"x\" * 80)],iface=\"ens786f0\",count=1)\r\n+ sendp([Ether(src=\"11:22:33:44:55:99\",dst=\"00:11:22:33:44:55\",type=0x8864)/PPPoE(sessionid=3)/PPP(proto=0x0057)/IPv6(src=\"CDCD:910A:2222:5498:8475:1111:3900:1536\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2022\")/Raw(\"x\" * 80)],iface=\"ens786f0\",count=1)\r\n+\r\n+\r\n+test case 51: MAC_PPPOE_IPV6_TCP_PAY\r\n+=====================================\r\n+rules::\r\n+\r\n+ flow validate 0 priority 0 ingress pattern eth / pppoes / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2022 / tcp src is 25 dst is 23 / end actions vf id 1 / end\r\n+ flow validate 0 priority 1 ingress pattern eth / pppoes / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2022 / tcp src is 25 dst is 23 / end actions vf id 2 / end\r\n+ flow create 0 priority 0 ingress pattern eth / pppoes / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2022 / tcp src is 25 dst is 23 / end actions vf id 1 / end\r\n+ flow create 0 priority 1 ingress pattern eth / pppoes / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2022 / tcp src is 25 dst is 23 / end actions vf id 2 / end\r\n+\r\n+matched pkts::\r\n+\r\n+ sendp([Ether(src=\"11:22:33:44:55:99\",dst=\"00:11:22:33:44:55\",type=0x8864)/PPPoE(sessionid=3)/PPP(proto=0x0057)/IPv6(src=\"CDCD:910A:2222:5498:8475:1111:3900:1536\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2022\")/TCP(sport=25,dport=23)/Raw(\"x\" * 80)],iface=\"ens786f0\",count=1)\r\n+\r\n+mismatched pkts::\r\n+\r\n+ sendp([Ether(src=\"11:22:33:44:55:99\",dst=\"00:11:22:33:44:55\",type=0x8864)/PPPoE(sessionid=3)/PPP(proto=0x0057)/IPv6(src=\"CDCD:910A:2222:5498:8475:1111:3900:1536\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2023\")/TCP(sport=25,dport=23)/Raw(\"x\" * 80)],iface=\"ens786f0\",count=1)\r\n+ sendp([Ether(src=\"11:22:33:44:55:99\",dst=\"00:11:22:33:44:55\",type=0x8864)/PPPoE(sessionid=3)/PPP(proto=0x0057)/IPv6(src=\"CDCD:910A:2222:5498:8475:1111:3900:1536\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2022\")/TCP(sport=27,dport=23)/Raw(\"x\" * 80)],iface=\"ens786f0\",count=1)\r\n+ sendp([Ether(src=\"11:22:33:44:55:99\",dst=\"00:11:22:33:44:55\",type=0x8864)/PPPoE(sessionid=3)/PPP(proto=0x0057)/IPv6(src=\"CDCD:910A:2222:5498:8475:1111:3900:1536\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2022\")/TCP(sport=25,dport=19)/Raw(\"x\" * 80)],iface=\"ens786f0\",count=1)\r\n+\r\n+\r\n+test case 52: MAC_PPPOE_IPV6_TCP_PAY_non_src_dst_port\r\n+=====================================================\r\n+rules::\r\n+\r\n+ flow validate 0 priority 0 ingress pattern eth / pppoes / ipv6 src is CDCD:910A:2222:5498:8475:1111:3900:1536 dst is CDCD:910A:2222:5498:8475:1111:3900:2022 / tcp / end actions vf id 1 / end\r\n+ flow validate 0 priority 1 ingress pattern eth / pppoes / ipv6 src is CDCD:910A:2222:5498:8475:1111:3900:1536 dst is CDCD:910A:2222:5498:8475:1111:3900:2022 / tcp / end actions vf id 2 / end\r\n+ flow create 0 priority 0 ingress pattern eth / pppoes / ipv6 src is CDCD:910A:2222:5498:8475:1111:3900:1536 dst is CDCD:910A:2222:5498:8475:1111:3900:2022 / tcp / end actions vf id 1 / end\r\n+ flow create 0 priority 1 ingress pattern eth / pppoes / ipv6 src is CDCD:910A:2222:5498:8475:1111:3900:1536 dst is CDCD:910A:2222:5498:8475:1111:3900:2022 / tcp / end actions vf id 2 / end\r\n+\r\n+matched pkts::\r\n+\r\n+ sendp([Ether(src=\"11:22:33:44:55:99\",dst=\"00:11:22:33:44:55\",type=0x8864)/PPPoE(sessionid=3)/PPP(proto=0x0057)/IPv6(src=\"CDCD:910A:2222:5498:8475:1111:3900:1536\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2022\")/TCP(sport=25,dport=23)/Raw(\"x\" * 80)],iface=\"ens786f0\",count=1)\r\n+\r\n+mismatched pkts::\r\n+\r\n+ sendp([Ether(src=\"11:22:33:44:55:99\",dst=\"00:11:22:33:44:55\",type=0x8864)/PPPoE(sessionid=3)/PPP(proto=0x0057)/IPv6(src=\"CDCD:910A:2222:5498:8475:1111:3900:1537\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2022\")/TCP(sport=25,dport=23)/Raw(\"x\" * 80)],iface=\"ens786f0\",count=1)\r\n+ sendp([Ether(src=\"11:22:33:44:55:99\",dst=\"00:11:22:33:44:55\",type=0x8864)/PPPoE(sessionid=3)/PPP(proto=0x0057)/IPv6(src=\"CDCD:910A:2222:5498:8475:1111:3900:1536\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2023\")/TCP(sport=25,dport=23)/Raw(\"x\" * 80)],iface=\"ens786f0\",count=1)\r\n+ sendp([Ether(src=\"11:22:33:44:55:99\",dst=\"00:11:22:33:44:55\",type=0x8864)/PPPoE(sessionid=3)/PPP(proto=0x0057)/IPv6(src=\"CDCD:910A:2222:5498:8475:1111:3900:1536\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2022\")/UDP(sport=25,dport=23)/Raw(\"x\" * 80)],iface=\"ens786f0\",count=1)\r\n+ sendp([Ether(src=\"11:22:33:44:55:99\",dst=\"00:11:22:33:44:55\",type=0x8864)/PPPoE(sessionid=3)/PPP(proto=0x0057)/IPv6(src=\"CDCD:910A:2222:5498:8475:1111:3900:1536\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2022\")/Raw(\"x\" * 80)],iface=\"ens786f0\",count=1)\r\n+\r\n+\r\n+test case 53: MAC_VLAN_PPPOE_IPV4_PAY_IP_address\r\n+=================================================\r\n+rules::\r\n+\r\n+ flow validate 0 priority 0 ingress pattern eth / vlan tci is 1 / pppoes / ipv4 src is 192.168.1.1 dst is 192.168.1.2 / end actions vf id 1 / end\r\n+ flow validate 0 priority 1 ingress pattern eth / vlan tci is 1 / pppoes / ipv4 src is 192.168.1.1 dst is 192.168.1.2 / end actions vf id 2 / end\r\n+ flow create 0 priority 0 ingress pattern eth / vlan tci is 1 / pppoes / ipv4 src is 192.168.1.1 dst is 192.168.1.2 / end actions vf id 1 / end\r\n+ flow create 0 priority 1 ingress pattern eth / vlan tci is 1 / pppoes / ipv4 src is 192.168.1.1 dst is 192.168.1.2 / end actions vf id 2 / end\r\n+\r\n+matched pkts::\r\n+\r\n+ sendp([Ether(dst=\"00:11:22:33:44:55\",type=0x8100)/Dot1Q(vlan=1,type=0x8864)/PPPoE(sessionid=3)/PPP(proto=0x0021)/IP(src=\"192.168.1.1\", dst=\"192.168.1.2\")/Raw(\"x\"*80)],iface=\"ens786f0\",count=1)\r\n+\r\n+mismatched pkts::\r\n+\r\n+ sendp([Ether(dst=\"00:11:22:33:44:55\",type=0x8100)/Dot1Q(vlan=2,type=0x8864)/PPPoE(sessionid=3)/PPP(proto=0x0021)/IP(src=\"192.168.1.1\", dst=\"192.168.1.2\")/Raw(\"x\"*80)],iface=\"ens786f0\",count=1)\r\n+ sendp([Ether(dst=\"00:11:22:33:44:55\",type=0x8100)/Dot1Q(vlan=1,type=0x8864)/PPPoE(sessionid=3)/PPP(proto=0x0021)/IP(src=\"192.168.1.3\", dst=\"192.168.1.2\")/Raw(\"x\"*80)],iface=\"ens786f0\",count=1)\r\n+ sendp([Ether(dst=\"00:11:22:33:44:55\",type=0x8100)/Dot1Q(vlan=1,type=0x8864)/PPPoE(sessionid=3)/PPP(proto=0x0021)/IP(src=\"192.168.1.1\", dst=\"192.168.1.4\")/Raw(\"x\"*80)],iface=\"ens786f0\",count=1)\r\n+\r\n+\r\n+test case 54: MAC_VLAN_PPPOE_IPV4_UDP_PAY\r\n+=========================================\r\n+rules::\r\n+\r\n+ flow validate 0 priority 0 ingress pattern eth / vlan tci is 1 / pppoes / ipv4 src is 192.168.1.1 dst is 192.168.1.2 / udp src is 25 dst is 23 / end actions vf id 1 / end\r\n+ flow validate 0 priority 1 ingress pattern eth / vlan tci is 1 / pppoes / ipv4 src is 192.168.1.1 dst is 192.168.1.2 / udp src is 25 dst is 23 / end actions vf id 2 / end\r\n+ flow create 0 priority 0 ingress pattern eth / vlan tci is 1 / pppoes / ipv4 src is 192.168.1.1 dst is 192.168.1.2 / udp src is 25 dst is 23 / end actions vf id 1 / end\r\n+ flow create 0 priority 1 ingress pattern eth / vlan tci is 1 / pppoes / ipv4 src is 192.168.1.1 dst is 192.168.1.2 / udp src is 25 dst is 23 / end actions vf id 2 / end\r\n+\r\n+matched pkts::\r\n+\r\n+ sendp([Ether(dst=\"00:11:22:33:44:55\",type=0x8100)/Dot1Q(vlan=1,type=0x8864)/PPPoE(sessionid=3)/PPP(proto=0x0021)/IP(src=\"192.168.1.1\", dst=\"192.168.1.2\")/UDP(sport=25,dport=23)/Raw(\"x\" * 80)],iface=\"ens786f0\",count=1)\r\n+\r\n+mismatched pkts::\r\n+\r\n+ sendp([Ether(dst=\"00:11:22:33:44:55\",type=0x8100)/Dot1Q(vlan=2,type=0x8864)/PPPoE(sessionid=3)/PPP(proto=0x0021)/IP(src=\"192.168.1.1\", dst=\"192.168.1.2\")/UDP(sport=25,dport=23)/Raw(\"x\" * 80)],iface=\"ens786f0\",count=1)\r\n+ sendp([Ether(dst=\"00:11:22:33:44:55\",type=0x8100)/Dot1Q(vlan=1,type=0x8864)/PPPoE(sessionid=3)/PPP(proto=0x0021)/IP(src=\"192.168.1.3\", dst=\"192.168.1.2\")/UDP(sport=25,dport=23)/Raw(\"x\" * 80)],iface=\"ens786f0\",count=1)\r\n+ sendp([Ether(dst=\"00:11:22:33:44:55\",type=0x8100)/Dot1Q(vlan=1,type=0x8864)/PPPoE(sessionid=3)/PPP(proto=0x0021)/IP(src=\"192.168.1.1\", dst=\"192.168.1.4\")/UDP(sport=25,dport=23)/Raw(\"x\" * 80)],iface=\"ens786f0\",count=1)\r\n+ sendp([Ether(dst=\"00:11:22:33:44:55\",type=0x8100)/Dot1Q(vlan=1,type=0x8864)/PPPoE(sessionid=3)/PPP(proto=0x0021)/IP(src=\"192.168.1.1\", dst=\"192.168.1.2\")/UDP(sport=27,dport=23)/Raw(\"x\" * 80)],iface=\"ens786f0\",count=1)\r\n+ sendp([Ether(dst=\"00:11:22:33:44:55\",type=0x8100)/Dot1Q(vlan=1,type=0x8864)/PPPoE(sessionid=3)/PPP(proto=0x0021)/IP(src=\"192.168.1.1\", dst=\"192.168.1.2\")/UDP(sport=25,dport=19)/Raw(\"x\" * 80)],iface=\"ens786f0\",count=1)\r\n+\r\n+\r\n+test case 55: MAC_VLAN_PPPOE_IPV4_UDP_PAY_non_src_dst_port\r\n+==========================================================\r\n+rules::\r\n+\r\n+ flow validate 0 priority 0 ingress pattern eth / vlan tci is 1 / pppoes / ipv4 src is 192.168.1.1 dst is 192.168.1.2 / udp / end actions vf id 1 / end\r\n+ flow validate 0 priority 1 ingress pattern eth / vlan tci is 1 / pppoes / ipv4 src is 192.168.1.1 dst is 192.168.1.2 / udp / end actions vf id 2 / end\r\n+ flow create 0 priority 0 ingress pattern eth / vlan tci is 1 / pppoes / ipv4 src is 192.168.1.1 dst is 192.168.1.2 / udp / end actions vf id 1 / end\r\n+ flow create 0 priority 1 ingress pattern eth / vlan tci is 1 / pppoes / ipv4 src is 192.168.1.1 dst is 192.168.1.2 / udp / end actions vf id 2 / end\r\n+\r\n+matched pkts::\r\n+\r\n+ sendp([Ether(dst=\"00:11:22:33:44:55\",type=0x8100)/Dot1Q(vlan=1,type=0x8864)/PPPoE(sessionid=3)/PPP(proto=0x0021)/IP(src=\"192.168.1.1\", dst=\"192.168.1.2\")/UDP(sport=25,dport=23)/Raw(\"x\" * 80)],iface=\"ens786f0\",count=1)\r\n+\r\n+mismatched pkts::\r\n+\r\n+ sendp([Ether(dst=\"00:11:22:33:44:55\",type=0x8100)/Dot1Q(vlan=2,type=0x8864)/PPPoE(sessionid=3)/PPP(proto=0x0021)/IP(src=\"192.168.1.1\", dst=\"192.168.1.2\")/UDP(sport=25,dport=23)/Raw(\"x\" * 80)],iface=\"ens786f0\",count=1)\r\n+ sendp([Ether(dst=\"00:11:22:33:44:55\",type=0x8100)/Dot1Q(vlan=1,type=0x8864)/PPPoE(sessionid=3)/PPP(proto=0x0021)/IP(src=\"192.168.1.3\", dst=\"192.168.1.2\")/UDP(sport=25,dport=23)/Raw(\"x\" * 80)],iface=\"ens786f0\",count=1)\r\n+ sendp([Ether(dst=\"00:11:22:33:44:55\",type=0x8100)/Dot1Q(vlan=1,type=0x8864)/PPPoE(sessionid=3)/PPP(proto=0x0021)/IP(src=\"192.168.1.1\", dst=\"192.168.1.4\")/UDP(sport=25,dport=23)/Raw(\"x\" * 80)],iface=\"ens786f0\",count=1)\r\n+ sendp([Ether(dst=\"00:11:22:33:44:55\",type=0x8100)/Dot1Q(vlan=1,type=0x8864)/PPPoE(sessionid=3)/PPP(proto=0x0021)/IP(src=\"192.168.1.1\", dst=\"192.168.1.2\")/TCP(sport=25,dport=23)/Raw(\"x\" * 80)],iface=\"ens786f0\",count=1)\r\n+ sendp([Ether(dst=\"00:11:22:33:44:55\",type=0x8100)/Dot1Q(vlan=1,type=0x8864)/PPPoE(sessionid=3)/PPP(proto=0x0021)/IP(src=\"192.168.1.1\", dst=\"192.168.1.2\")/Raw(\"x\" * 80)],iface=\"ens786f0\",count=1)\r\n+\r\n+\r\n+test case 56: MAC_VLAN_PPPOE_IPV4_TCP_PAY\r\n+=========================================\r\n+rules::\r\n+\r\n+ flow validate 0 priority 0 ingress pattern eth / vlan tci is 1 / pppoes / ipv4 src is 192.168.1.1 dst is 192.168.1.2 / tcp src is 25 dst is 23 / end actions vf id 1 / end\r\n+ flow validate 0 priority 1 ingress pattern eth / vlan tci is 1 / pppoes / ipv4 src is 192.168.1.1 dst is 192.168.1.2 / tcp src is 25 dst is 23 / end actions vf id 2 / end\r\n+ flow create 0 priority 0 ingress pattern eth / vlan tci is 1 / pppoes / ipv4 src is 192.168.1.1 dst is 192.168.1.2 / tcp src is 25 dst is 23 / end actions vf id 1 / end\r\n+ flow create 0 priority 1 ingress pattern eth / vlan tci is 1 / pppoes / ipv4 src is 192.168.1.1 dst is 192.168.1.2 / tcp src is 25 dst is 23 / end actions vf id 2 / end\r\n+\r\n+matched pkts::\r\n+\r\n+ sendp([Ether(dst=\"00:11:22:33:44:55\",type=0x8100)/Dot1Q(vlan=1,type=0x8864)/PPPoE(sessionid=3)/PPP(proto=0x0021)/IP(src=\"192.168.1.1\", dst=\"192.168.1.2\")/TCP(sport=25,dport=23)/Raw(\"x\" * 80)],iface=\"ens786f0\",count=1)\r\n+\r\n+mismatched pkts::\r\n+\r\n+ sendp([Ether(dst=\"00:11:22:33:44:55\",type=0x8100)/Dot1Q(vlan=2,type=0x8864)/PPPoE(sessionid=3)/PPP(proto=0x0021)/IP(src=\"192.168.1.1\", dst=\"192.168.1.2\")/TCP(sport=25,dport=23)/Raw(\"x\" * 80)],iface=\"ens786f0\",count=1)\r\n+ sendp([Ether(dst=\"00:11:22:33:44:55\",type=0x8100)/Dot1Q(vlan=1,type=0x8864)/PPPoE(sessionid=3)/PPP(proto=0x0021)/IP(src=\"192.168.1.3\", dst=\"192.168.1.2\")/TCP(sport=25,dport=23)/Raw(\"x\" * 80)],iface=\"ens786f0\",count=1)\r\n+ sendp([Ether(dst=\"00:11:22:33:44:55\",type=0x8100)/Dot1Q(vlan=1,type=0x8864)/PPPoE(sessionid=3)/PPP(proto=0x0021)/IP(src=\"192.168.1.1\", dst=\"192.168.1.4\")/TCP(sport=25,dport=23)/Raw(\"x\" * 80)],iface=\"ens786f0\",count=1)\r\n+ sendp([Ether(dst=\"00:11:22:33:44:55\",type=0x8100)/Dot1Q(vlan=1,type=0x8864)/PPPoE(sessionid=3)/PPP(proto=0x0021)/IP(src=\"192.168.1.1\", dst=\"192.168.1.2\")/TCP(sport=27,dport=23)/Raw(\"x\" * 80)],iface=\"ens786f0\",count=1)\r\n+ sendp([Ether(dst=\"00:11:22:33:44:55\",type=0x8100)/Dot1Q(vlan=1,type=0x8864)/PPPoE(sessionid=3)/PPP(proto=0x0021)/IP(src=\"192.168.1.1\", dst=\"192.168.1.2\")/TCP(sport=25,dport=19)/Raw(\"x\" * 80)],iface=\"ens786f0\",count=1)\r\n+\r\n+\r\n+test case 57: MAC_VLAN_PPPOE_IPV4_TCP_PAY_non_src_dst_port\r\n+==========================================================\r\n+rules::\r\n+\r\n+ flow validate 0 priority 0 ingress pattern eth / vlan tci is 1 / pppoes / ipv4 src is 192.168.1.1 dst is 192.168.1.2 / tcp / end actions vf id 1 / end\r\n+ flow validate 0 priority 1 ingress pattern eth / vlan tci is 1 / pppoes / ipv4 src is 192.168.1.1 dst is 192.168.1.2 / tcp / end actions vf id 2 / end\r\n+ flow create 0 priority 0 ingress pattern eth / vlan tci is 1 / pppoes / ipv4 src is 192.168.1.1 dst is 192.168.1.2 / tcp / end actions vf id 1 / end\r\n+ flow create 0 priority 1 ingress pattern eth / vlan tci is 1 / pppoes / ipv4 src is 192.168.1.1 dst is 192.168.1.2 / tcp / end actions vf id 2 / end\r\n+\r\n+matched pkts::\r\n+\r\n+ sendp([Ether(dst=\"00:11:22:33:44:55\",type=0x8100)/Dot1Q(vlan=1,type=0x8864)/PPPoE(sessionid=3)/PPP(proto=0x0021)/IP(src=\"192.168.1.1\", dst=\"192.168.1.2\")/TCP(sport=25,dport=23)/Raw(\"x\" * 80)],iface=\"ens786f0\",count=1)\r\n+\r\n+mismatched pkts::\r\n+\r\n+ sendp([Ether(dst=\"00:11:22:33:44:55\",type=0x8100)/Dot1Q(vlan=2,type=0x8864)/PPPoE(sessionid=3)/PPP(proto=0x0021)/IP(src=\"192.168.1.1\", dst=\"192.168.1.2\")/TCP(sport=25,dport=23)/Raw(\"x\" * 80)],iface=\"ens786f0\",count=1)\r\n+ sendp([Ether(dst=\"00:11:22:33:44:55\",type=0x8100)/Dot1Q(vlan=1,type=0x8864)/PPPoE(sessionid=3)/PPP(proto=0x0021)/IP(src=\"192.168.1.3\", dst=\"192.168.1.2\")/TCP(sport=25,dport=23)/Raw(\"x\" * 80)],iface=\"ens786f0\",count=1)\r\n+ sendp([Ether(dst=\"00:11:22:33:44:55\",type=0x8100)/Dot1Q(vlan=1,type=0x8864)/PPPoE(sessionid=3)/PPP(proto=0x0021)/IP(src=\"192.168.1.1\", dst=\"192.168.1.4\")/TCP(sport=25,dport=23)/Raw(\"x\" * 80)],iface=\"ens786f0\",count=1)\r\n+ sendp([Ether(dst=\"00:11:22:33:44:55\",type=0x8100)/Dot1Q(vlan=1,type=0x8864)/PPPoE(sessionid=3)/PPP(proto=0x0021)/IP(src=\"192.168.1.1\", dst=\"192.168.1.2\")/UDP(sport=25,dport=23)/Raw(\"x\" * 80)],iface=\"ens786f0\",count=1)\r\n+ sendp([Ether(dst=\"00:11:22:33:44:55\",type=0x8100)/Dot1Q(vlan=1,type=0x8864)/PPPoE(sessionid=3)/PPP(proto=0x0021)/IP(src=\"192.168.1.1\", dst=\"192.168.1.2\")/Raw(\"x\" * 80)],iface=\"ens786f0\",count=1)\r\n+\r\n+\r\n+test case 58: MAC_VLAN_PPPOE_IPV6_PAY_IP_address\r\n+================================================\r\n+rules::\r\n+\r\n+ flow validate 0 priority 0 ingress pattern eth / vlan tci is 1 / pppoes / ipv6 src is CDCD:910A:2222:5498:8475:1111:3900:1536 / end actions vf id 1 / end\r\n+ flow validate 0 priority 1 ingress pattern eth / vlan tci is 1 / pppoes / ipv6 src is CDCD:910A:2222:5498:8475:1111:3900:1536 / end actions vf id 2 / end\r\n+ flow create 0 priority 0 ingress pattern eth / vlan tci is 1 / pppoes / ipv6 src is CDCD:910A:2222:5498:8475:1111:3900:1536 / end actions vf id 1 / end\r\n+ flow create 0 priority 1 ingress pattern eth / vlan tci is 1 / pppoes / ipv6 src is CDCD:910A:2222:5498:8475:1111:3900:1536 / end actions vf id 2 / end\r\n+\r\n+matched pkts::\r\n+\r\n+ sendp([Ether(dst=\"00:11:22:33:44:55\",type=0x8100)/Dot1Q(vlan=1,type=0x8864)/PPPoE(sessionid=3)/PPP(proto=0x0057)/IPv6(src=\"CDCD:910A:2222:5498:8475:1111:3900:1536\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2022\")/Raw(\"x\"*80)],iface=\"ens786f0\",count=1)\r\n+\r\n+mismatched pkts::\r\n+\r\n+ sendp([Ether(dst=\"00:11:22:33:44:55\",type=0x8100)/Dot1Q(vlan=2,type=0x8864)/PPPoE(sessionid=3)/PPP(proto=0x0057)/IPv6(src=\"CDCD:910A:2222:5498:8475:1111:3900:1536\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2022\")/Raw(\"x\"*80)],iface=\"ens786f0\",count=1)\r\n+ sendp([Ether(dst=\"00:11:22:33:44:55\",type=0x8100)/Dot1Q(vlan=1,type=0x8864)/PPPoE(sessionid=3)/PPP(proto=0x0057)/IPv6(src=\"CDCD:910A:2222:5498:8475:1111:3900:1537\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2022\")/Raw(\"x\"*80)],iface=\"ens786f0\",count=1)\r\n+\r\n+\r\n+test case 59: MAC_VLAN_PPPOE_IPV6_UDP_PAY\r\n+=========================================\r\n+rules::\r\n+\r\n+ flow validate 0 priority 0 ingress pattern eth / vlan tci is 1 / pppoes / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2022 / udp src is 25 dst is 23 / end actions vf id 1 / end\r\n+ flow validate 0 priority 1 ingress pattern eth / vlan tci is 1 / pppoes / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2022 / udp src is 25 dst is 23 / end actions vf id 2 / end\r\n+ flow create 0 priority 0 ingress pattern eth / vlan tci is 1 / pppoes / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2022 / udp src is 25 dst is 23 / end actions vf id 1 / end\r\n+ flow create 0 priority 1 ingress pattern eth / vlan tci is 1 / pppoes / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2022 / udp src is 25 dst is 23 / end actions vf id 2 / end\r\n+\r\n+matched pkts::\r\n+\r\n+ sendp([Ether(src=\"11:22:33:44:55:99\",dst=\"00:11:22:33:44:55\",type=0x8100)/Dot1Q(vlan=1,type=0x8864)/PPPoE(sessionid=3)/PPP(proto=0x0057)/IPv6(src=\"CDCD:910A:2222:5498:8475:1111:3900:1536\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2022\")/UDP(sport=25,dport=23)/Raw(\"x\" * 80)],iface=\"ens786f0\",count=1)\r\n+\r\n+mismatched pkts::\r\n+\r\n+ sendp([Ether(src=\"11:22:33:44:55:99\",dst=\"00:11:22:33:44:55\",type=0x8100)/Dot1Q(vlan=2,type=0x8864)/PPPoE(sessionid=3)/PPP(proto=0x0057)/IPv6(src=\"CDCD:910A:2222:5498:8475:1111:3900:1536\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2022\")/UDP(sport=25,dport=23)/Raw(\"x\" * 80)],iface=\"ens786f0\",count=1)\r\n+ sendp([Ether(src=\"11:22:33:44:55:99\",dst=\"00:11:22:33:44:55\",type=0x8100)/Dot1Q(vlan=1,type=0x8864)/PPPoE(sessionid=3)/PPP(proto=0x0057)/IPv6(src=\"CDCD:910A:2222:5498:8475:1111:3900:1536\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2023\")/UDP(sport=25,dport=23)/Raw(\"x\" * 80)],iface=\"ens786f0\",count=1)\r\n+ sendp([Ether(src=\"11:22:33:44:55:99\",dst=\"00:11:22:33:44:55\",type=0x8100)/Dot1Q(vlan=1,type=0x8864)/PPPoE(sessionid=3)/PPP(proto=0x0057)/IPv6(src=\"CDCD:910A:2222:5498:8475:1111:3900:1536\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2022\")/UDP(sport=27,dport=23)/Raw(\"x\" * 80)],iface=\"ens786f0\",count=1)\r\n+ sendp([Ether(src=\"11:22:33:44:55:99\",dst=\"00:11:22:33:44:55\",type=0x8100)/Dot1Q(vlan=1,type=0x8864)/PPPoE(sessionid=3)/PPP(proto=0x0057)/IPv6(src=\"CDCD:910A:2222:5498:8475:1111:3900:1536\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2022\")/UDP(sport=25,dport=19)/Raw(\"x\" * 80)],iface=\"ens786f0\",count=1)\r\n+\r\n+\r\n+test case 60: MAC_VLAN_PPPOE_IPV6_UDP_PAY_non_src_dst_port\r\n+==========================================================\r\n+rules::\r\n+\r\n+ flow validate 0 priority 0 ingress pattern eth / vlan tci is 1 / pppoes / ipv6 src is CDCD:910A:2222:5498:8475:1111:3900:1536 / udp / end actions vf id 1 / end\r\n+ flow validate 0 priority 1 ingress pattern eth / vlan tci is 1 / pppoes / ipv6 src is CDCD:910A:2222:5498:8475:1111:3900:1536 / udp / end actions vf id 2 / end\r\n+ flow create 0 priority 0 ingress pattern eth / vlan tci is 1 / pppoes / ipv6 src is CDCD:910A:2222:5498:8475:1111:3900:1536 / udp / end actions vf id 1 / end\r\n+ flow create 0 priority 1 ingress pattern eth / vlan tci is 1 / pppoes / ipv6 src is CDCD:910A:2222:5498:8475:1111:3900:1536 / udp / end actions vf id 2 / end\r\n+\r\n+matched pkts::\r\n+\r\n+ sendp([Ether(src=\"11:22:33:44:55:99\",dst=\"00:11:22:33:44:55\",type=0x8100)/Dot1Q(vlan=1,type=0x8864)/PPPoE(sessionid=3)/PPP(proto=0x0057)/IPv6(src=\"CDCD:910A:2222:5498:8475:1111:3900:1536\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2022\")/UDP(sport=25,dport=23)/Raw(\"x\" * 80)],iface=\"ens786f0\",count=1)\r\n+\r\n+mismatched pkts::\r\n+\r\n+ sendp([Ether(src=\"11:22:33:44:55:99\",dst=\"00:11:22:33:44:55\",type=0x8100)/Dot1Q(vlan=2,type=0x8864)/PPPoE(sessionid=3)/PPP(proto=0x0057)/IPv6(src=\"CDCD:910A:2222:5498:8475:1111:3900:1536\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2022\")/UDP(sport=25,dport=23)/Raw(\"x\" * 80)],iface=\"ens786f0\",count=1)\r\n+ sendp([Ether(src=\"11:22:33:44:55:99\",dst=\"00:11:22:33:44:55\",type=0x8100)/Dot1Q(vlan=1,type=0x8864)/PPPoE(sessionid=3)/PPP(proto=0x0057)/IPv6(src=\"CDCD:910A:2222:5498:8475:1111:3900:1537\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2022\")/UDP(sport=25,dport=23)/Raw(\"x\" * 80)],iface=\"ens786f0\",count=1)\r\n+ sendp([Ether(src=\"11:22:33:44:55:99\",dst=\"00:11:22:33:44:55\",type=0x8100)/Dot1Q(vlan=1,type=0x8864)/PPPoE(sessionid=3)/PPP(proto=0x0057)/IPv6(src=\"CDCD:910A:2222:5498:8475:1111:3900:1536\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2022\")/TCP(sport=25,dport=23)/Raw(\"x\" * 80)],iface=\"ens786f0\",count=1)\r\n+ sendp([Ether(src=\"11:22:33:44:55:99\",dst=\"00:11:22:33:44:55\",type=0x8100)/Dot1Q(vlan=1,type=0x8864)/PPPoE(sessionid=3)/PPP(proto=0x0057)/IPv6(src=\"CDCD:910A:2222:5498:8475:1111:3900:1536\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2022\")/Raw(\"x\" * 80)],iface=\"ens786f0\",count=1)\r\n+\r\n+\r\n+test case 61: MAC_VLAN_PPPOE_IPV6_TCP_PAY\r\n+=========================================\r\n+rules::\r\n+\r\n+ flow validate 0 priority 0 ingress pattern eth / vlan tci is 1 / pppoes / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2022 / tcp src is 25 dst is 23 / end actions vf id 1 / end\r\n+ flow validate 0 priority 1 ingress pattern eth / vlan tci is 1 / pppoes / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2022 / tcp src is 25 dst is 23 / end actions vf id 2 / end\r\n+ flow create 0 priority 0 ingress pattern eth / vlan tci is 1 / pppoes / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2022 / tcp src is 25 dst is 23 / end actions vf id 1 / end\r\n+ flow create 0 priority 1 ingress pattern eth / vlan tci is 1 / pppoes / ipv6 dst is CDCD:910A:2222:5498:8475:1111:3900:2022 / tcp src is 25 dst is 23 / end actions vf id 2 / end\r\n+\r\n+matched pkts::\r\n+\r\n+ sendp([Ether(src=\"11:22:33:44:55:99\",dst=\"00:11:22:33:44:55\",type=0x8100)/Dot1Q(vlan=1,type=0x8864)/PPPoE(sessionid=3)/PPP(proto=0x0057)/IPv6(src=\"CDCD:910A:2222:5498:8475:1111:3900:1536\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2022\")/TCP(sport=25,dport=23)/Raw(\"x\" * 80)],iface=\"ens786f0\",count=1)\r\n+\r\n+mismatched pkts::\r\n+\r\n+ sendp([Ether(src=\"11:22:33:44:55:99\",dst=\"00:11:22:33:44:55\",type=0x8100)/Dot1Q(vlan=2,type=0x8864)/PPPoE(sessionid=3)/PPP(proto=0x0057)/IPv6(src=\"CDCD:910A:2222:5498:8475:1111:3900:1536\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2022\")/TCP(sport=25,dport=23)/Raw(\"x\" * 80)],iface=\"ens786f0\",count=1)\r\n+ sendp([Ether(src=\"11:22:33:44:55:99\",dst=\"00:11:22:33:44:55\",type=0x8100)/Dot1Q(vlan=1,type=0x8864)/PPPoE(sessionid=3)/PPP(proto=0x0057)/IPv6(src=\"CDCD:910A:2222:5498:8475:1111:3900:1536\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2023\")/TCP(sport=25,dport=23)/Raw(\"x\" * 80)],iface=\"ens786f0\",count=1)\r\n+ sendp([Ether(src=\"11:22:33:44:55:99\",dst=\"00:11:22:33:44:55\",type=0x8100)/Dot1Q(vlan=1,type=0x8864)/PPPoE(sessionid=3)/PPP(proto=0x0057)/IPv6(src=\"CDCD:910A:2222:5498:8475:1111:3900:1536\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2022\")/TCP(sport=27,dport=23)/Raw(\"x\" * 80)],iface=\"ens786f0\",count=1)\r\n+ sendp([Ether(src=\"11:22:33:44:55:99\",dst=\"00:11:22:33:44:55\",type=0x8100)/Dot1Q(vlan=1,type=0x8864)/PPPoE(sessionid=3)/PPP(proto=0x0057)/IPv6(src=\"CDCD:910A:2222:5498:8475:1111:3900:1536\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2022\")/TCP(sport=25,dport=19)/Raw(\"x\" * 80)],iface=\"ens786f0\",count=1)\r\n+\r\n+\r\n+test case 62: MAC_VLAN_PPPOE_IPV6_TCP_PAY_non_src_dst_port\r\n+==========================================================\r\n+rules::\r\n+\r\n+ flow validate 0 priority 0 ingress pattern eth / vlan tci is 1 / pppoes / ipv6 src is CDCD:910A:2222:5498:8475:1111:3900:1536 / tcp / end actions vf id 1 / end\r\n+ flow validate 0 priority 1 ingress pattern eth / vlan tci is 1 / pppoes / ipv6 src is CDCD:910A:2222:5498:8475:1111:3900:1536 / tcp / end actions vf id 2 / end\r\n+ flow create 0 priority 0 ingress pattern eth / vlan tci is 1 / pppoes / ipv6 src is CDCD:910A:2222:5498:8475:1111:3900:1536 / tcp / end actions vf id 1 / end\r\n+ flow create 0 priority 1 ingress pattern eth / vlan tci is 1 / pppoes / ipv6 src is CDCD:910A:2222:5498:8475:1111:3900:1536 / tcp / end actions vf id 2 / end\r\n+\r\n+matched pkts::\r\n+\r\n+ sendp([Ether(src=\"11:22:33:44:55:99\",dst=\"00:11:22:33:44:55\",type=0x8100)/Dot1Q(vlan=1,type=0x8864)/PPPoE(sessionid=3)/PPP(proto=0x0057)/IPv6(src=\"CDCD:910A:2222:5498:8475:1111:3900:1536\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2022\")/TCP(sport=25,dport=23)/Raw(\"x\" * 80)],iface=\"ens786f0\",count=1)\r\n+\r\n+mismatched pkts::\r\n+\r\n+ sendp([Ether(src=\"11:22:33:44:55:99\",dst=\"00:11:22:33:44:55\",type=0x8100)/Dot1Q(vlan=2,type=0x8864)/PPPoE(sessionid=3)/PPP(proto=0x0057)/IPv6(src=\"CDCD:910A:2222:5498:8475:1111:3900:1536\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2022\")/TCP(sport=25,dport=23)/Raw(\"x\" * 80)],iface=\"ens786f0\",count=1)\r\n+ sendp([Ether(src=\"11:22:33:44:55:99\",dst=\"00:11:22:33:44:55\",type=0x8100)/Dot1Q(vlan=1,type=0x8864)/PPPoE(sessionid=3)/PPP(proto=0x0057)/IPv6(src=\"CDCD:910A:2222:5498:8475:1111:3900:1537\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2022\")/TCP(sport=25,dport=23)/Raw(\"x\" * 80)],iface=\"ens786f0\",count=1)\r\n+ sendp([Ether(src=\"11:22:33:44:55:99\",dst=\"00:11:22:33:44:55\",type=0x8100)/Dot1Q(vlan=1,type=0x8864)/PPPoE(sessionid=3)/PPP(proto=0x0057)/IPv6(src=\"CDCD:910A:2222:5498:8475:1111:3900:1536\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2022\")/UDP(sport=25,dport=23)/Raw(\"x\" * 80)],iface=\"ens786f0\",count=1)\r\n+ sendp([Ether(src=\"11:22:33:44:55:99\",dst=\"00:11:22:33:44:55\",type=0x8100)/Dot1Q(vlan=1,type=0x8864)/PPPoE(sessionid=3)/PPP(proto=0x0057)/IPv6(src=\"CDCD:910A:2222:5498:8475:1111:3900:1536\", dst=\"CDCD:910A:2222:5498:8475:1111:3900:2022\")/Raw(\"x\" * 80)],iface=\"ens786f0\",count=1)\r\n+\r\n+\r\n+test case 63: MAC_PPPOE_LCP_PAY\r\n+===============================\r\n+rules::\r\n+\r\n+ flow validate 0 priority 0 ingress pattern eth dst is 00:11:22:33:44:55 / pppoes seid is 3 / pppoe_proto_id is 0xc021 / end actions vf id 1 / end\r\n+ flow validate 0 priority 1 ingress pattern eth dst is 00:11:22:33:44:55 / pppoes seid is 3 / pppoe_proto_id is 0xc021 / end actions vf id 2 / end\r\n+ flow create 0 priority 0 ingress pattern eth dst is 00:11:22:33:44:55 / pppoes seid is 3 / pppoe_proto_id is 0xc021 / end actions vf id 1 / end\r\n+ flow create 0 priority 1 ingress pattern eth dst is 00:11:22:33:44:55 / pppoes seid is 3 / pppoe_proto_id is 0xc021 / end actions vf id 2 / end\r\n+\r\n+matched pkts::\r\n+\r\n+ sendp([Ether(src=\"11:22:33:44:55:99\",dst=\"00:11:22:33:44:55\",type=0x8864)/PPPoE(sessionid=3)/PPP(proto=0xc021)/PPP_LCP()/Raw(\"x\" * 80)],iface=\"ens786f0\",count=1)\r\n+\r\n+mismatched pkts::\r\n+\r\n+ sendp([Ether(src=\"11:22:33:44:55:99\",dst=\"00:11:22:33:44:53\",type=0x8864)/PPPoE(sessionid=3)/PPP(proto=0xc021)/PPP_LCP()/Raw(\"x\" * 80)],iface=\"ens786f0\",count=1)\r\n+ sendp([Ether(src=\"11:22:33:44:55:99\",dst=\"00:11:22:33:44:55\",type=0x8864)/PPPoE(sessionid=4)/PPP(proto=0xc021)/PPP_LCP()/Raw(\"x\" * 80)],iface=\"ens786f0\",count=1)\r\n+ sendp([Ether(src=\"11:22:33:44:55:99\",dst=\"00:11:22:33:44:55\",type=0x8864)/PPPoE(sessionid=3)/PPP(proto=0x0021)/IP()/Raw(\"x\" * 80)],iface=\"ens786f0\",count=1)\r\n+\r\n+\r\n+test case 64: MAC_PPPOE_IPCP_PAY\r\n+================================\r\n+rules::\r\n+\r\n+ flow validate 0 priority 0 ingress pattern eth dst is 00:11:22:33:44:55 / pppoes seid is 3 / pppoe_proto_id is 0x8021 / end actions vf id 1 / end\r\n+ flow validate 0 priority 1 ingress pattern eth dst is 00:11:22:33:44:55 / pppoes seid is 3 / pppoe_proto_id is 0x8021 / end actions vf id 2 / end\r\n+ flow create 0 priority 0 ingress pattern eth dst is 00:11:22:33:44:55 / pppoes seid is 3 / pppoe_proto_id is 0x8021 / end actions vf id 1 / end\r\n+ flow create 0 priority 1 ingress pattern eth dst is 00:11:22:33:44:55 / pppoes seid is 3 / pppoe_proto_id is 0x8021 / end actions vf id 2 / end\r\n+\r\n+matched pkts::\r\n+\r\n+ sendp([Ether(src=\"11:22:33:44:55:99\",dst=\"00:11:22:33:44:55\",type=0x8864)/PPPoE(sessionid=3)/PPP(proto=0x8021)/PPP_IPCP()/Raw(\"x\" * 80)],iface=\"ens786f0\",count=1)\r\n+\r\n+mismatched pkts::\r\n+\r\n+ sendp([Ether(src=\"11:22:33:44:55:99\",dst=\"00:11:22:33:44:53\",type=0x8864)/PPPoE(sessionid=3)/PPP(proto=0x8021)/PPP_IPCP()/Raw(\"x\" * 80)],iface=\"ens786f0\",count=1)\r\n+ sendp([Ether(src=\"11:22:33:44:55:99\",dst=\"00:11:22:33:44:55\",type=0x8864)/PPPoE(sessionid=4)/PPP(proto=0x8021)/PPP_IPCP()/Raw(\"x\" * 80)],iface=\"ens786f0\",count=1)\r\n+ sendp([Ether(src=\"11:22:33:44:55:99\",dst=\"00:11:22:33:44:55\",type=0x8864)/PPPoE(sessionid=3)/PPP(proto=0x0021)/IP()/Raw(\"x\" * 80)],iface=\"ens786f0\",count=1)\r\n+\r\n+\r\n+test case 65: MAC_VLAN_PPPOE_LCP_PAY\r\n+====================================\r\n+rules::\r\n+\r\n+ flow validate 0 priority 0 ingress pattern eth dst is 00:11:22:33:44:55 / vlan tci is 1 / pppoes seid is 3 / pppoe_proto_id is 0xc021 / end actions vf id 1 / end\r\n+ flow validate 0 priority 1 ingress pattern eth dst is 00:11:22:33:44:55 / vlan tci is 1 / pppoes seid is 3 / pppoe_proto_id is 0xc021 / end actions vf id 2 / end\r\n+ flow create 0 priority 0 ingress pattern eth dst is 00:11:22:33:44:55 / vlan tci is 1 / pppoes seid is 3 / pppoe_proto_id is 0xc021 / end actions vf id 1 / end\r\n+ flow create 0 priority 1 ingress pattern eth dst is 00:11:22:33:44:55 / vlan tci is 1 / pppoes seid is 3 / pppoe_proto_id is 0xc021 / end actions vf id 2 / end\r\n+\r\n+matched pkts::\r\n+\r\n+ sendp([Ether(src=\"11:22:33:44:55:99\",dst=\"00:11:22:33:44:55\",type=0x8100)/Dot1Q(vlan=1,type=0x8864)/PPPoE(sessionid=3)/PPP(proto=0xc021)/PPP_LCP()/Raw(\"x\" * 80)],iface=\"ens786f0\",count=1)\r\n+\r\n+mismatched pkts::\r\n+\r\n+ sendp([Ether(src=\"11:22:33:44:55:99\",dst=\"00:11:22:33:44:53\",type=0x8100)/Dot1Q(vlan=1,type=0x8864)/PPPoE(sessionid=3)/PPP(proto=0xc021)/PPP_LCP()/Raw(\"x\" * 80)],iface=\"ens786f0\",count=1)\r\n+ sendp([Ether(src=\"11:22:33:44:55:99\",dst=\"00:11:22:33:44:55\",type=0x8100)/Dot1Q(vlan=2,type=0x8864)/PPPoE(sessionid=3)/PPP(proto=0xc021)/PPP_LCP()/Raw(\"x\" * 80)],iface=\"ens786f0\",count=1)\r\n+ sendp([Ether(src=\"11:22:33:44:55:99\",dst=\"00:11:22:33:44:55\",type=0x8100)/Dot1Q(vlan=1,type=0x8864)/PPPoE(sessionid=4)/PPP(proto=0xc021)/PPP_LCP()/Raw(\"x\" * 80)],iface=\"ens786f0\",count=1)\r\n+ sendp([Ether(src=\"11:22:33:44:55:99\",dst=\"00:11:22:33:44:55\",type=0x8100)/Dot1Q(vlan=1,type=0x8864)/PPPoE(sessionid=3)/PPP(proto=0x0021)/IP()/Raw(\"x\" * 80)],iface=\"ens786f0\",count=1)\r\n+\r\n+\r\n+test case 66: MAC_VLAN_PPPOE_IPCP_PAY\r\n+=====================================\r\n+rules::\r\n+\r\n+ flow validate 0 priority 0 ingress pattern eth dst is 00:11:22:33:44:55 / vlan tci is 1 / pppoes seid is 3 / pppoe_proto_id is 0x8021 / end actions vf id 1 / end\r\n+ flow validate 0 priority 1 ingress pattern eth dst is 00:11:22:33:44:55 / vlan tci is 1 / pppoes seid is 3 / pppoe_proto_id is 0x8021 / end actions vf id 2 / end\r\n+ flow create 0 priority 0 ingress pattern eth dst is 00:11:22:33:44:55 / vlan tci is 1 / pppoes seid is 3 / pppoe_proto_id is 0x8021 / end actions vf id 1 / end\r\n+ flow create 0 priority 1 ingress pattern eth dst is 00:11:22:33:44:55 / vlan tci is 1 / pppoes seid is 3 / pppoe_proto_id is 0x8021 / end actions vf id 2 / end\r\n+\r\n+matched pkts::\r\n+\r\n+ sendp([Ether(src=\"11:22:33:44:55:99\",dst=\"00:11:22:33:44:55\",type=0x8100)/Dot1Q(vlan=1,type=0x8864)/PPPoE(sessionid=3)/PPP(proto=0x8021)/PPP_IPCP()/Raw(\"x\" * 80)],iface=\"ens786f0\",count=1)\r\n+\r\n+mismatched pkts::\r\n+\r\n+ sendp([Ether(src=\"11:22:33:44:55:99\",dst=\"00:11:22:33:44:53\",type=0x8100)/Dot1Q(vlan=1,type=0x8864)/PPPoE(sessionid=3)/PPP(proto=0x8021)/PPP_IPCP()/Raw(\"x\" * 80)],iface=\"ens786f0\",count=1)\r\n+ sendp([Ether(src=\"11:22:33:44:55:99\",dst=\"00:11:22:33:44:55\",type=0x8100)/Dot1Q(vlan=2,type=0x8864)/PPPoE(sessionid=3)/PPP(proto=0x8021)/PPP_IPCP()/Raw(\"x\" * 80)],iface=\"ens786f0\",count=1)\r\n+ sendp([Ether(src=\"11:22:33:44:55:99\",dst=\"00:11:22:33:44:55\",type=0x8100)/Dot1Q(vlan=1,type=0x8864)/PPPoE(sessionid=4)/PPP(proto=0x8021)/PPP_IPCP()/Raw(\"x\" * 80)],iface=\"ens786f0\",count=1)\r\n+ sendp([Ether(src=\"11:22:33:44:55:99\",dst=\"00:11:22:33:44:55\",type=0x8100)/Dot1Q(vlan=1,type=0x8864)/PPPoE(sessionid=3)/PPP(proto=0x0021)/IP()/Raw(\"x\" * 80)],iface=\"ens786f0\",count=1)\r\n+\r\n+\r\n+test case: negative test cases\r\n+==============================\r\n+\r\n+1. create rules, check all these rules can not be created::\r\n+\r\n+ flow create 0 priority 2 ingress pattern eth / ipv4 src is 192.168.0.1 dst is 192.168.0.2 / end actions vf id 1 / end\r\n+ flow create 0 priority a ingress pattern eth / ipv4 src is 192.168.0.1 dst is 192.168.0.2 / end actions vf id 1 / end\r\n+ flow create 0 priority 0 ingress pattern eth / ipv4 src is 192.168.0.1 dst is 192.168.0.2 / end actions vf id 4 / end\r\n+\r\n+\r\n+test case: exclusive test cases\r\n+===============================\r\n+subcase 1: same pattern/input set/action different priority\r\n+-----------------------------------------------------------\r\n+1. create same pattern, input set and action but different priority, check these two rules can be created::\r\n+\r\n+ flow create 0 priority 1 ingress pattern eth / ipv4 src is 192.168.0.1 dst is 192.168.0.2 / end actions vf id 2 / end\r\n+ flow create 0 priority 0 ingress pattern eth / ipv4 src is 192.168.0.1 dst is 192.168.0.2 / end actions vf id 2 / end\r\n+\r\n+2. send matched pkts and check vf2 receive this pkt::\r\n+\r\n+ sendp([Ether(dst=\"68:05:ca:8d:ed:a8\")/IP(src=\"192.168.0.1\",dst=\"192.168.0.2\",tos=4,ttl=2)/TCP()/(\"X\"*480)], iface=\"ens786f0\", count=1)\r\n+\r\n+3. destroy rules::\r\n+\r\n+ flow flush 0\r\n+\r\n+subcase 2: same pattern/input set/priority different action\r\n+-----------------------------------------------------------\r\n+1. create same pattern, input set and priority but different action, check these two rules can be created::\r\n+\r\n+ flow create 0 priority 1 ingress pattern eth / ipv4 src is 192.168.0.1 dst is 192.168.0.2 / end actions vf id 1 / end\r\n+ flow create 0 priority 1 ingress pattern eth / ipv4 src is 192.168.0.1 dst is 192.168.0.2 / end actions vf id 2 / end\r\n+\r\n+2. send matched pkts and check both vf1 and vf2 receive this pkt::\r\n+\r\n+ sendp([Ether(dst=\"68:05:ca:8d:ed:a8\")/IP(src=\"192.168.0.1\",dst=\"192.168.0.2\",tos=4,ttl=2)/TCP()/(\"X\"*480)], iface=\"ens786f0\", count=1)\r\n+\r\n+3. destroy rules and repeat step 4, check the pkt cannot receive by any vf::\r\n+\r\n+ flow flush 0\r\n+\r\n+subcase 3: some rules overlap\r\n+-----------------------------\r\n+1. create rules::\r\n+\r\n+ flow create 0 priority 0 ingress pattern eth / vlan / vlan / pppoes / pppoe_proto_id is 0x21 / end actions vf id 1 / end\r\n+ flow create 0 priority 0 ingress pattern eth / vlan / vlan tci is 2 / end actions vf id 1 / end\r\n+ flow create 0 priority 1 ingress pattern eth / vlan / vlan / pppoes seid is 1 / ipv4 / end actions vf id 2 / end\r\n+ flow create 0 priority 1 ingress pattern eth dst is 00:00:00:01:03:03 / vlan / vlan / end actions vf id 2 / end\r\n+ flow create 0 priority 1 ingress pattern eth dst is 00:00:00:01:03:03 / end actions vf id 3 / end\r\n+ flow create 0 priority 1 ingress pattern eth / vlan tci is 1 / vlan tci is 2 / end actions vf id 3 / end\r\n+\r\n+2. check all the rules exist in the list::\r\n+\r\n+ flow list 0\r\n+\r\n+3. send pkt which match rule 1, rule 3, rule 4 and rule 5, check the pkts can be received by vf 2 and 3 for high priority::\r\n+\r\n+ sendp([Ether(dst=\"00:00:00:01:03:03\")/Dot1Q(vlan=1)/Dot1Q(vlan=2)/Raw(\"x\"*480)], iface=\"ens786f0\", count=1)\r\n+\r\n+4. destroy rule 5, repeat step 3 and check the pkts can be received by vf 2 and 3 for high priority::\r\n+\r\n+ flow destroy 0 rule 5\r\n+\r\n+5. destroy rule 4, repeat step 3 and check the pkts can be received by vf 2 for high priority::\r\n+\r\n+ flow destroy 0 rule 4\r\n+\r\n+6. destroy rule 3, repeat step 3 and check the pkts can be received by vf 1::\r\n+\r\n+ flow destroy 0 rule 3\r\n+\r\n+7. destroy rule 1, repeat step 3 and check the pkts can not be received::\r\n+\r\n+ flow destroy 0 rule 1\r\n+\r\n+8. send pkt which match rule 0 and rule 2, check the pkts can received by vf 2 for high priority::\r\n+\r\n+ sendp([Ether(dst=\"00:11:22:33:44:55\",type=0x8100)/Dot1Q(vlan=1,type=0x8100)/Dot1Q(vlan=0x2,type=0x8864)/PPPoE(sessionid=0x1)/PPP(proto=0x21)/IP()/UDP(dport=23)/(\"X\"*480)], iface=\"ens786f0\")\r\n+\r\n+9. destroy rule 2, repeat step 8 and check the pkts can be received by vf 1::\r\n+\r\n+ flow destroy 0 rule 2\r\n+\r\n+10. destroy rule 0, repeat step 8 and check the pkts can not be received::\r\n+\r\n+ flow destroy 0 rule 0\r\ndiff --git a/test_plans/index.rst b/test_plans/index.rst\nindex 06a38d12..1be4c6ee 100644\n--- a/test_plans/index.rst\n+++ b/test_plans/index.rst\n@@ -55,6 +55,7 @@ The following are the test plans for the DPDK DTS automated test system.\n cvl_dcf_date_path_test_plan\n cvl_dcf_switch_filter_test_plan\n cvl_dcf_switch_filter_pppoe_test_plan\n+ cvl_dcf_flow_priority_test_plan\n cvl_ecpri_test_plan\n cvl_fdir_test_plan\n cvl_iavf_rss_configure_test_plan\n", "prefixes": [ "V4" ] }{ "id": 94879, "url": "