Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/90052/?format=api
http://patches.dpdk.org/api/patches/90052/?format=api", "web_url": "http://patches.dpdk.org/project/dts/patch/20210330140621.39818-1-yuan.peng@intel.com/", "project": { "id": 3, "url": "http://patches.dpdk.org/api/projects/3/?format=api", "name": "DTS", "link_name": "dts", "list_id": "dts.dpdk.org", "list_email": "dts@dpdk.org", "web_url": "", "scm_url": "git://dpdk.org/tools/dts", "webscm_url": "http://git.dpdk.org/tools/dts/", "list_archive_url": "https://inbox.dpdk.org/dts", "list_archive_url_format": "https://inbox.dpdk.org/dts/{}", "commit_url_format": "" }, "msgid": "<20210330140621.39818-1-yuan.peng@intel.com>", "list_archive_url": "https://inbox.dpdk.org/dts/20210330140621.39818-1-yuan.peng@intel.com", "date": "2021-03-30T14:06:21", "name": "test_plans: add gtpogre to CVL pf/iavf RSS", "commit_ref": null, "pull_url": null, "state": "accepted", "archived": false, "hash": "5c8b6a30da7e9ed948b959c83e11c9c63519118c", "submitter": { "id": 429, "url": "http://patches.dpdk.org/api/people/429/?format=api", "name": "Peng, Yuan", "email": "yuan.peng@intel.com" }, "delegate": null, "mbox": "http://patches.dpdk.org/project/dts/patch/20210330140621.39818-1-yuan.peng@intel.com/mbox/", "series": [ { "id": 15959, "url": "http://patches.dpdk.org/api/series/15959/?format=api", "web_url": "http://patches.dpdk.org/project/dts/list/?series=15959", "date": "2021-03-30T14:06:21", "name": "test_plans: add gtpogre to CVL pf/iavf RSS", "version": 1, "mbox": "http://patches.dpdk.org/series/15959/mbox/" } ], "comments": "http://patches.dpdk.org/api/patches/90052/comments/", "check": "pending", "checks": "http://patches.dpdk.org/api/patches/90052/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 77C7EA034F;\n\tTue, 30 Mar 2021 08:07:24 +0200 (CEST)", "from [217.70.189.124] (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id 3F1D1140FDF;\n\tTue, 30 Mar 2021 08:07:24 +0200 (CEST)", "from mga14.intel.com (mga14.intel.com [192.55.52.115])\n by mails.dpdk.org (Postfix) with ESMTP id D799D140F83\n for <dts@dpdk.org>; Tue, 30 Mar 2021 08:07:21 +0200 (CEST)", "from fmsmga001.fm.intel.com ([10.253.24.23])\n by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 29 Mar 2021 23:07:20 -0700", "from pengyuan-dpdk.sh.intel.com ([10.67.117.236])\n by fmsmga001.fm.intel.com with ESMTP; 29 Mar 2021 23:07:17 -0700" ], "IronPort-SDR": [ "\n tpQTGWKMQxOMtmFNWzQx1dS0ropMY/ygGEaocyjLqu2pjXXJBW6W4UVIvXd10Wc31hjJb47CE0\n k+kewBhdPUkQ==", "\n CGGqaKL1hjVhAM3yaapCDMZWye8tOWZn+i3nLKwtMtVBCLqdcStcxVYjq3wujUaEvKTvAmFaoQ\n cvWHxtITWX9Q==" ], "X-IronPort-AV": [ "E=McAfee;i=\"6000,8403,9938\"; a=\"191167300\"", "E=Sophos;i=\"5.81,290,1610438400\"; d=\"scan'208\";a=\"191167300\"", "E=Sophos;i=\"5.81,290,1610438400\"; d=\"scan'208\";a=\"516301486\"" ], "X-ExtLoop1": "1", "From": "Peng Yuan <yuan.peng@intel.com>", "To": "dts@dpdk.org", "Cc": "Peng Yuan <yuan.peng@intel.com>", "Date": "Tue, 30 Mar 2021 14:06:21 +0000", "Message-Id": "<20210330140621.39818-1-yuan.peng@intel.com>", "X-Mailer": "git-send-email 2.17.1", "Subject": "[dts] [PATCH]test_plans: add gtpogre to CVL pf/iavf RSS", "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 cvl_advanced_iavf_rss_gtpogre_test_plan.rst to test_plans\nAdd cvl_advanced_rss_gtpogre_test_plan.rst to test_plans\nAdd the two new test plans to index.rst\n\nSigned-off-by: Peng Yuan <yuan.peng@intel.com>\n--\nv2", "diff": "diff --git a/test_plans/cvl_advanced_iavf_rss_gtpogre_test_plan.rst b/test_plans/cvl_advanced_iavf_rss_gtpogre_test_plan.rst\nnew file mode 100644\nindex 00000000..a1b3ccf4\n--- /dev/null\n+++ b/test_plans/cvl_advanced_iavf_rss_gtpogre_test_plan.rst\n@@ -0,0 +1,2058 @@\n+.. Copyright (c) <2021>, Intel Corporation\n+ All rights reserved.\n+\n+ Redistribution and use in source and binary forms, with or without\n+ modification, are permitted provided that the following conditions\n+ are met:\n+\n+ - Redistributions of source code must retain the above copyright\n+ notice, this list of conditions and the following disclaimer.\n+\n+ - Redistributions in binary form must reproduce the above copyright\n+ notice, this list of conditions and the following disclaimer in\n+ the documentation and/or other materials provided with the\n+ distribution.\n+\n+ - Neither the name of Intel Corporation nor the names of its\n+ contributors may be used to endorse or promote products derived\n+ from this software without specific prior written permission.\n+\n+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n+ \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS\n+ FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE\n+ COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,\n+ INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n+ (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\n+ SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\n+ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,\n+ STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED\n+ OF THE POSSIBILITY OF SUCH DAMAGE.\n+\n+===============================\n+CVL IAVF: Advanced RSS For GTPU\n+===============================\n+\n+Description\n+===========\n+\n+GTP over GRE feature enhances packet core performance in 4G LTE and 5G networks.\n+In GTP over GRE market segment package the parse graph is expanded to look for\n+a GTP or PFCP header after parsing a GRE header. GTP over GRE packets contain\n+two tunnel protocols.\n+The next header after the GRE header may be IPv4 or IPv6. If an IPv6 header\n+is present, extension headers may be present. Then unlike in other types of\n+packages in case of finding UDP header parser does not assume UDP_LAST protocol\n+after GRE tunnel, but looks for GTP or PFCP headers. In case of finding those\n+headers the GRE header and the next IP header found in the packet after the\n+GRE header shall not be reported. Parser reports one of the already existing\n+GTP or PFCP ptypes.\n+\n+support pattern and input set\n+-----------------------------\n+.. table::\n+\n+ +------------------------------------+-------------------------------------------------------------------------------------------+\n+ | Hash function: toeplitz |\n+ +------------------------------------+-------------------------------------------------------------------------------------------+\n+ | Packet Type | All the Input Set options in combination |\n+ +====================================+===========================================================================================+\n+ | MAC_IPV4_GTPU_EH_IPV4 | ipv4, l3-src-only, l3-dst-only |\n+ +------------------------------------+-------------------------------------------------------------------------------------------+\n+ | MAC_IPV4_GTPU_EH_IPV4_UDP | ipv4, ipv4-udp, l3-src-only, l3-dst-only, l4-src-only, l4-dst-only |\n+ +------------------------------------+-------------------------------------------------------------------------------------------+\n+ | MAC_IPV4_GTPU_EH_IPV4_TCP | ipv4, ipv4-tcp, l3-src-only, l3-dst-only, l4-src-only, l4-dst-only |\n+ +------------------------------------+-------------------------------------------------------------------------------------------+\n+ | MAC_IPV4_GTPU_IPV4 | ipv4, gtpu, l3-src-only, l3-dst-only |\n+ +------------------------------------+-------------------------------------------------------------------------------------------+\n+ | MAC_IPV4_GTPU_IPV4_UDP | ipv4, ipv4-udp, l3-src-only, l3-dst-only, l4-src-only, l4-dst-only |\n+ +------------------------------------+-------------------------------------------------------------------------------------------+\n+ | MAC_IPV4_GTPU_IPV4_TCP | ipv4, ipv4-tcp, l3-src-only, l3-dst-only, l4-src-only, l4-dst-only |\n+ +------------------------------------+-------------------------------------------------------------------------------------------+\n+ | MAC_IPV4_GTPU_EH_IPV6 | ipv6, l3-src-only, l3-dst-only |\n+ +------------------------------------+-------------------------------------------------------------------------------------------+\n+ | MAC_IPV4_GTPU_EH_IPV6_UDP | ipv6, ipv6-udp, l3-src-only, l3-dst-only, l4-src-only, l4-dst-only |\n+ +------------------------------------+-------------------------------------------------------------------------------------------+\n+ | MAC_IPV4_GTPU_EH_IPV6_TCP | ipv6, ipv6-tcp, l3-src-only, l3-dst-only, l4-src-only, l4-dst-only |\n+ +------------------------------------+-------------------------------------------------------------------------------------------+\n+ | MAC_IPV4_GTPU_IPV6 | ipv6, gtpu, l3-src-only, l3-dst-only |\n+ +------------------------------------+-------------------------------------------------------------------------------------------+\n+ | MAC_IPV4_GTPU_IPV6_UDP | ipv6, ipv6-udp, l3-src-only, l3-dst-only, l4-src-only, l4-dst-only |\n+ +------------------------------------+-------------------------------------------------------------------------------------------+\n+ | MAC_IPV4_GTPU_IPV6_TCP | ipv6, ipv6-tcp, l3-src-only, l3-dst-only, l4-src-only, l4-dst-only |\n+ +------------------------------------+-------------------------------------------------------------------------------------------+\n+ | MAC_IPV6_GTPU_EH_IPV4 | ipv4, l3-src-only, l3-dst-only |\n+ +------------------------------------+-------------------------------------------------------------------------------------------+\n+ | MAC_IPV6_GTPU_EH_IPV4_UDP | ipv4, ipv4-udp, l3-src-only, l3-dst-only, l4-src-only, l4-dst-only |\n+ +------------------------------------+-------------------------------------------------------------------------------------------+\n+ | MAC_IPV6_GTPU_EH_IPV4_TCP | ipv4, ipv4-tcp, l3-src-only, l3-dst-only, l4-src-only, l4-dst-only |\n+ +------------------------------------+-------------------------------------------------------------------------------------------+\n+ | MAC_IPV6_GTPU_IPV4 | ipv4, gtpu, l3-src-only, l3-dst-only |\n+ +------------------------------------+-------------------------------------------------------------------------------------------+\n+ | MAC_IPV6_GTPU_IPV4_UDP | ipv4, ipv4-udp, l3-src-only, l3-dst-only, l4-src-only, l4-dst-only |\n+ +------------------------------------+-------------------------------------------------------------------------------------------+\n+ | MAC_IPV6_GTPU_IPV4_TCP | ipv4, ipv4-tcp, l3-src-only, l3-dst-only, l4-src-only, l4-dst-only |\n+ +------------------------------------+-------------------------------------------------------------------------------------------+\n+ | MAC_IPV6_GTPU_EH_IPV6 | ipv6, l3-src-only, l3-dst-only |\n+ +------------------------------------+-------------------------------------------------------------------------------------------+\n+ | MAC_IPV6_GTPU_EH_IPV6_UDP | ipv6, ipv6-udp, l3-src-only, l3-dst-only, l4-src-only, l4-dst-only |\n+ +------------------------------------+-------------------------------------------------------------------------------------------+\n+ | MAC_IPV6_GTPU_EH_IPV6_TCP | ipv6, ipv6-tcp, l3-src-only, l3-dst-only, l4-src-only, l4-dst-only |\n+ +------------------------------------+-------------------------------------------------------------------------------------------+\n+ | MAC_IPV6_GTPU_IPV6 | ipv6, gtpu, l3-src-only, l3-dst-only |\n+ +------------------------------------+-------------------------------------------------------------------------------------------+\n+ | MAC_IPV6_GTPU_IPV6_UDP | ipv6, ipv6-udp, l3-src-only, l3-dst-only, l4-src-only, l4-dst-only |\n+ +------------------------------------+-------------------------------------------------------------------------------------------+\n+ | MAC_IPV6_GTPU_IPV6_TCP | ipv6, ipv6-tcp, l3-src-only, l3-dst-only, l4-src-only, l4-dst-only |\n+ +------------------------------------+-------------------------------------------------------------------------------------------+\n+ | MAC_IPV4_GTPU | ipv4, l3-src-only, l3-dst-only |\n+ +------------------------------------+-------------------------------------------------------------------------------------------+\n+ | MAC_IPV6_GTPU | ipv6, l3-src-only, l3-dst-only |\n+ +------------------------------------+-------------------------------------------------------------------------------------------+\n+ | MAC_IPV4_GTPC | ipv4, l3-src-only, l3-dst-only |\n+ +------------------------------------+-------------------------------------------------------------------------------------------+\n+ | MAC_IPV6_GTPC | ipv6, l3-src-only, l3-dst-only |\n+ +------------------------------------+-------------------------------------------------------------------------------------------+\n+\n+\n+.. table::\n+\n+ +------------------------------------+------------------------------------------------+\n+ | Hash function: Symmetric_toeplitz |\n+ +------------------------------------+------------------------------------------------+\n+ | Pattern | all the input set options in combination |\n+ +====================================+================================================+\n+ | MAC_IPV4_GTPU_EH_IPV4 | ipv4 |\n+ +------------------------------------+------------------------------------------------+\n+ | MAC_IPV4_GTPU_EH_IPV4_UDP | ipv4-udp |\n+ +------------------------------------+------------------------------------------------+\n+ | MAC_IPV4_GTPU_EH_IPV4_TCP | ipv4-tcp |\n+ +------------------------------------+------------------------------------------------+\n+ | MAC_IPV4_GTPU_IPV4 | ipv4 |\n+ +------------------------------------+------------------------------------------------+\n+ | MAC_IPV4_GTPU_IPV4_UDP | ipv4-udp |\n+ +------------------------------------+------------------------------------------------+\n+ | MAC_IPV4_GTPU_IPV4_TCP | ipv4-tcp |\n+ +------------------------------------+------------------------------------------------+\n+ | MAC_IPV4_GTPU_EH_IPV6 | ipv6 |\n+ +------------------------------------+------------------------------------------------+\n+ | MAC_IPV4_GTPU_EH_IPV6_UDP | ipv6-udp |\n+ +------------------------------------+------------------------------------------------+\n+ | MAC_IPV4_GTPU_EH_IPV6_TCP | ipv6-tcp |\n+ +------------------------------------+------------------------------------------------+\n+ | MAC_IPV4_GTPU_IPV6 | ipv6 |\n+ +------------------------------------+------------------------------------------------+\n+ | MAC_IPV4_GTPU_IPV6_UDP | ipv6-udp |\n+ +------------------------------------+------------------------------------------------+\n+ | MAC_IPV4_GTPU_IPV6_TCP | ipv6-tcp |\n+ +------------------------------------+------------------------------------------------+\n+ | MAC_IPV6_GTPU_EH_IPV4 | ipv4 |\n+ +------------------------------------+------------------------------------------------+\n+ | MAC_IPV6_GTPU_EH_IPV4_UDP | ipv4-udp |\n+ +------------------------------------+------------------------------------------------+\n+ | MAC_IPV6_GTPU_EH_IPV4_TCP | ipv4-tcp |\n+ +------------------------------------+------------------------------------------------+\n+ | MAC_IPV6_GTPU_IPV4 | ipv4 |\n+ +------------------------------------+------------------------------------------------+\n+ | MAC_IPV6_GTPU_IPV4_UDP | ipv4-udp |\n+ +------------------------------------+------------------------------------------------+\n+ | MAC_IPV6_GTPU_IPV4_TCP | ipv4-tcp |\n+ +------------------------------------+------------------------------------------------+\n+ | MAC_IPV6_GTPU_EH_IPV6 | ipv6 |\n+ +------------------------------------+------------------------------------------------+\n+ | MAC_IPV6_GTPU_EH_IPV6_UDP | ipv6-udp |\n+ +------------------------------------+------------------------------------------------+\n+ | MAC_IPV6_GTPU_EH_IPV6_TCP | ipv6-tcp |\n+ +------------------------------------+------------------------------------------------+\n+ | MAC_IPV6_GTPU_IPV6 | ipv6 |\n+ +------------------------------------+------------------------------------------------+\n+ | MAC_IPV6_GTPU_IPV6_UDP | ipv6-udp |\n+ +------------------------------------+------------------------------------------------+\n+ | MAC_IPV6_GTPU_IPV6_TCP | ipv6-tcp |\n+ +------------------------------------+------------------------------------------------+\n+ | MAC_IPV4_GTPU | ipv4 |\n+ +------------------------------------+------------------------------------------------+\n+ | MAC_IPV6_GTPU | ipv6 |\n+ +------------------------------------+------------------------------------------------+\n+ | MAC_IPV4_GTPC | ipv4 |\n+ +------------------------------------+------------------------------------------------+\n+ | MAC_IPV6_GTPC | ipv6 |\n+ +------------------------------------+------------------------------------------------+\n+\n+\n+Prerequisites\n+=============\n+\n+1. Hardware:\n+\n+ - Intel E810 series ethernet cards: columbiaville_25g/columbiaville_100g/\n+\n+2. Software:\n+\n+ - dpdk: http://dpdk.org/git/dpdk\n+ - scapy: http://www.secdev.org/projects/scapy/\n+\n+.. note::\n+\n+ This rss feature designed for CVL NIC 25G and 100G, so below cases only support CVL NIC.\n+\n+3. Copy gtpogre pkg to /lib/firmware/updates/intel/ice/ddp/ice.pkg\n+ Then reload ice driver\n+\n+4. create a VF from a PF in DUT, set mac address for thi VF::\n+\n+ echo 1 > /sys/bus/pci/devices/0000\\:18\\:00.0/sriov_numvfs\n+ ip link set enp24s0f0 vf 0 mac 00:11:22:33:44:55\n+\n+5. bind VF to vfio-pci::\n+\n+ modprobe vfio-pci\n+ usertools/dpdk-devbind.py --force --bind=vfio-pci 0000:18:01.0\n+\n+.. note::\n+\n+ The kernel must be >= 3.6+ and VT-d must be enabled in bios.\n+\n+6. Launch the testpmd to configuration queue of rx and tx number 16 in DUT::\n+\n+ testpmd>./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -c 0xff -n 4 -w 0000:18:01.0 -- -i --rxq=16 --txq=16\n+ testpmd>set fwd rxonly\n+ testpmd>set verbose 1\n+\n+7. For test case \"parse PFCP over GRE packet\", we need to add print log\n+ in testpmd to show the PFCP ptype, then compile DPDK again::\n+\n+ diff --git a/drivers/net/iavf/iavf_rxtx.c b/drivers/net/iavf/iavf_rxtx.c\n+ index af5a28d84..37d996380 100644\n+ --- a/drivers/net/iavf/iavf_rxtx.c\n+ +++ b/drivers/net/iavf/iavf_rxtx.c\n+ @@ -1692,6 +1692,7 @@ iavf_rx_scan_hw_ring_flex_rxd(struct iavf_rx_queue *rxq)\n+\n+ mb->packet_type = ptype_tbl[IAVF_RX_FLEX_DESC_PTYPE_M &\n+ rte_le_to_cpu_16(rxdp[j].wb.ptype_flex_flags0)];\n+ + printf(\"ptype: %3d\\n\", IAVF_RX_FLEX_DESC_PTYPE_M & rte_le_to_cpu_16(rxdp[j].wb.ptype_flex_flags0));\n+ iavf_flex_rxd_to_vlan_tci(mb, &rxdp[j]);\n+ rxq->rxd_to_pkt_fields(rxq, mb, &rxdp[j]);\n+ stat_err0 = rte_le_to_cpu_16(rxdp[j].wb.status_error0);\n+ @@ -2346,6 +2347,7 @@ iavf_set_rx_function(struct rte_eth_dev *dev)\n+ IAVF_DEV_PRIVATE_TO_ADAPTER(dev->data->dev_private);\n+ struct iavf_info *vf = IAVF_DEV_PRIVATE_TO_VF(dev->data->dev_private);\n+\n+ +#if 0\n+ #ifdef RTE_ARCH_X86\n+ struct iavf_rx_queue *rxq;\n+ int i;\n+ @@ -2425,6 +2427,7 @@ iavf_set_rx_function(struct rte_eth_dev *dev)\n+\n+ return;\n+ }\n+ +#endif\n+ #endif\n+\n+ if (dev->data->scattered_rx) {\n+\n+8. start scapy and configuration NVGRE and GTP profile in tester\n+ scapy::\n+\n+ >>> import sys\n+ >>> from scapy.contrib.gtp import *\n+\n+\n+toeplitz cases\n+==============\n+\n+all the test cases in the pattern::\n+\n+ outer ipv4 + inner ipv4\n+ outer ipv4 + inner ipv6\n+ outer ipv6 + inner ipv4\n+ outer ipv6 + inner ipv6\n+\n+run the same test steps as below:\n+\n+1. validate rule.\n+2. create rule and list rule.\n+3. send a basic hit pattern packet,record the hash value.\n+ check the packet distributed to queue by rss.\n+4. send hit pattern packets with changed input set in the rule.\n+ check the received packets have different hash value with basic packet.\n+ check all the packets are distributed to queues by rss.\n+5. send hit pattern packets with changed input set not in the rule.\n+ check the received packet have same hash value with the basic packet.\n+ check all the packets are distributed to queues by rss.\n+ note: if there is not this type packet in the case, omit this step.\n+\n+6. destroy the rule and list rule. check the flow list has no rule.\n+\n+\n+\n+Pattern: outer ipv4 + inner ipv4\n+--------------------------------\n+\n+The Ptype of GTPoGRE is parsed same as GTP packet, so they match gtp RSS rule.\n+We just need to add the GTPoGRE packet to the packets check.\n+we need to add GTPoGRE packet to \"basic hit pattern packets\",\n+\"hit pattern/defined input set\" and \"hit pattern/not defined input set\".\n+the GTPoGRE packet format in this pattern is to add::\n+\n+ IP(proto=0x2F)/GRE(proto=0x0800)/\n+\n+after Ether layer, before IP layer, just like::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(dst=\"192.168.0.1\", src=\"192.168.0.2\")/(\"X\"*480)],iface=\"enp134s0f0\")\n+\n+Test case: MAC_IPV4_GTPU_EH_IPV4 with UL/DL\n+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\n+\n+DL case\n+\n+basic hit pattern packets are the same in this test case::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(dst=\"192.168.0.1\", src=\"192.168.0.2\")/(\"X\"*480)],iface=\"enp134s0f0\")\n+\n+Subcase: MAC_IPV4_GTPU_EH_DL_IPV4_L3DST\n+:::::::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv4 / end actions rss types ipv4 l3-dst-only end key_len 0 queues end / end\n+\n+hit pattern and defined input set::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(dst=\"192.168.10.1\", src=\"192.168.0.2\")/(\"X\"*480)],iface=\"enp134s0f0\")\n+\n+hit pattern but not defined input set::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(dst=\"192.168.0.1\", src=\"192.168.10.2\")/(\"X\"*480)],iface=\"enp134s0f0\")\n+\n+Subcase: MAC_IPV4_GTPU_EH_DL_IPV4_L3SRC\n+:::::::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv4 / end actions rss types ipv4 l3-src-only end key_len 0 queues end / end\n+\n+hit pattern and defined input set::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(dst=\"192.168.0.1\", src=\"192.168.10.2\")/(\"X\"*480)],iface=\"enp134s0f0\")\n+\n+hit pattern but not defined input set::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(dst=\"192.168.10.1\", src=\"192.168.0.2\")/(\"X\"*480)],iface=\"enp134s0f0\")\n+\n+Subcase: MAC_IPV4_GTPU_EH_DL_IPV4\n+:::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv4 / end actions rss types ipv4 end key_len 0 queues end / end\n+\n+hit pattern and defined input set::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(dst=\"192.168.10.1\", src=\"192.168.0.2\")/(\"X\"*480)],iface=\"enp134s0f0\")\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(dst=\"192.168.0.1\", src=\"192.168.10.2\")/(\"X\"*480)],iface=\"enp134s0f0\")\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(dst=\"192.168.10.1\", src=\"192.168.10.2\")/(\"X\"*480)],iface=\"enp134s0f0\")\n+\n+UL case:\n+\n+ basic hit pattern packets are the same in this test case::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(dst=\"192.168.0.1\", src=\"192.168.0.2\")/(\"X\"*480)],iface=\"enp134s0f0\")\n+\n+Subcase: MAC_IPV4_GTPU_EH_UL_IPV4_L3DST\n+:::::::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 / end actions rss types ipv4 l3-dst-only end key_len 0 queues end / end\n+\n+packets: change the pdu_type value(0->1/1->0) of packets of Subcase MAC_IPV4_GTPU_EH_DL_IPV4_L3DST.\n+\n+Subcase: MAC_IPV4_GTPU_EH_UL_IPV4_L3SRC\n+:::::::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 / end actions rss types ipv4 l3-src-only end key_len 0 queues end / end\n+\n+packets: change the pdu_type value(0->1/1->0) of packets of Subcase MAC_IPV4_GTPU_EH_DL_IPV4_L3SRC.\n+\n+Subcase: MAC_IPV4_GTPU_EH_UL_IPV4\n+:::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 / end actions rss types ipv4 end key_len 0 queues end / end\n+\n+packets: change the pdu_type value(0->1/1->0) of packets of Subcase MAC_IPV4_GTPU_EH_DL_IPV4.\n+\n+Test case: MAC_IPV4_GTPU_EH_IPV4_UDP with UL/DL\n+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\n+\n+DL case\n+\n+basic hit pattern packets are the same in this test case::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(src=\"192.168.0.1\", dst=\"192.168.0.2\")/UDP(sport=22, dport=23)/(\"X\"*480)], iface=\"enp134s0f0\")\n+\n+Subcase: MAC_IPV4_GTPU_EH_DL_IPV4_UDP_L3DST\n+:::::::::::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv4 / udp / end actions rss types ipv4-udp l3-dst-only end key_len 0 queues end / end\n+\n+hit pattern and defined input set::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(src=\"192.168.0.1\", dst=\"192.168.10.2\")/UDP(sport=22, dport=23)/(\"X\"*480)], iface=\"enp134s0f0\")\n+\n+hit pattern but not defined input set::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(src=\"192.168.10.1\", dst=\"192.168.0.2\")/UDP(sport=12, dport=13)/(\"X\"*480)], iface=\"enp134s0f0\")\n+\n+Subcase: MAC_IPV4_GTPU_EH_DL_IPV4_UDP_L3SRC\n+:::::::::::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv4 / udp / end actions rss types ipv4-udp l3-src-only end key_len 0 queues end / end\n+\n+hit pattern and defined input set::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(src=\"192.168.10.1\", dst=\"192.168.0.2\")/UDP(sport=22, dport=23)/(\"X\"*480)], iface=\"enp134s0f0\")\n+\n+hit pattern but not defined input set::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(src=\"192.168.0.1\", dst=\"192.168.10.2\")/UDP(sport=12, dport=13)/(\"X\"*480)], iface=\"enp134s0f0\")\n+\n+Subcase: MAC_IPV4_GTPU_EH_DL_IPV4_UDP_L3SRC_L4SRC\n+:::::::::::::::::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv4 / udp / end actions rss types ipv4-udp l3-src-only l4-src-only end key_len 0 queues end / end\n+\n+hit pattern and defined input set::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(src=\"192.168.10.1\", dst=\"192.168.0.2\")/UDP(sport=22, dport=23)/(\"X\"*480)], iface=\"enp134s0f0\")\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(src=\"192.168.0.1\", dst=\"192.168.0.2\")/UDP(sport=12, dport=23)/(\"X\"*480)], iface=\"enp134s0f0\")\n+\n+hit pattern but not defined input set::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(src=\"192.168.0.1\", dst=\"192.168.10.2\")/UDP(sport=22, dport=13)/(\"X\"*480)], iface=\"enp134s0f0\")\n+\n+Subcase: MAC_IPV4_GTPU_EH_DL_IPV4_UDP_L3SRC_L4DST\n+:::::::::::::::::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv4 / udp / end actions rss types ipv4-udp l3-src-only l4-dst-only end key_len 0 queues end / end\n+\n+hit pattern and defined input set::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(src=\"192.168.10.1\", dst=\"192.168.0.2\")/UDP(sport=22, dport=23)/(\"X\"*480)], iface=\"enp134s0f0\")\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(src=\"192.168.0.1\", dst=\"192.168.0.2\")/UDP(sport=22, dport=13)/(\"X\"*480)], iface=\"enp134s0f0\")\n+\n+hit pattern but not defined input set::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(src=\"192.168.0.1\", dst=\"192.168.10.2\")/UDP(sport=12, dport=23)/(\"X\"*480)], iface=\"enp134s0f0\")\n+\n+Subcase: MAC_IPV4_GTPU_EH_DL_IPV4_UDP_L3DST_L4SRC\n+:::::::::::::::::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv4 / udp / end actions rss types ipv4-udp l3-dst-only l4-src-only end key_len 0 queues end / end\n+\n+hit pattern and defined input set::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(src=\"192.168.0.1\", dst=\"192.168.10.2\")/UDP(sport=22, dport=23)/(\"X\"*480)], iface=\"enp134s0f0\")\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(src=\"192.168.0.1\", dst=\"192.168.0.2\")/UDP(sport=12, dport=23)/(\"X\"*480)], iface=\"enp134s0f0\")\n+\n+hit pattern but not defined input set::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(src=\"192.168.10.1\", dst=\"192.168.0.2\")/UDP(sport=22, dport=13)/(\"X\"*480)], iface=\"enp134s0f0\")\n+\n+Subcase: MAC_IPV4_GTPU_EH_DL_IPV4_UDP_L3DST_L4DST\n+:::::::::::::::::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv4 / udp / end actions rss types ipv4-udp l3-dst-only l4-dst-only end key_len 0 queues end / end\n+\n+hit pattern and defined input set::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(src=\"192.168.0.1\", dst=\"192.168.10.2\")/UDP(sport=22, dport=23)/(\"X\"*480)], iface=\"enp134s0f0\")\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(src=\"192.168.0.1\", dst=\"192.168.0.2\")/UDP(sport=22, dport=13)/(\"X\"*480)], iface=\"enp134s0f0\")\n+\n+hit pattern but not defined input set::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(src=\"192.168.10.1\", dst=\"192.168.0.2\")/UDP(sport=12, dport=23)/(\"X\"*480)], iface=\"enp134s0f0\")\n+\n+Subcase: MAC_IPV4_GTPU_EH_DL_IPV4_UDP_L4DST\n+:::::::::::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv4 / udp / end actions rss types ipv4-udp l4-dst-only end key_len 0 queues end / end\n+\n+hit pattern and defined input set::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(src=\"192.168.0.1\", dst=\"192.168.0.2\")/UDP(sport=22, dport=13)/(\"X\"*480)], iface=\"enp134s0f0\")\n+\n+hit pattern but not defined input set::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(src=\"192.168.10.1\", dst=\"192.168.10.2\")/UDP(sport=12, dport=23)/(\"X\"*480)], iface=\"enp134s0f0\")\n+\n+Subcase: MAC_IPV4_GTPU_EH_DL_IPV4_UDP_L4SRC\n+:::::::::::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv4 / udp / end actions rss types ipv4-udp l4-src-only end key_len 0 queues end / end\n+\n+hit pattern and defined input set::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(src=\"192.168.0.1\", dst=\"192.168.0.2\")/UDP(sport=12, dport=23)/(\"X\"*480)], iface=\"enp134s0f0\")\n+\n+hit pattern but not defined input set::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(src=\"192.168.10.1\", dst=\"192.168.10.2\")/UDP(sport=22, dport=13)/(\"X\"*480)], iface=\"enp134s0f0\")\n+\n+Subcase: MAC_IPV4_GTPU_EH_DL_IPV4_UDP\n+:::::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv4 / udp / end actions rss types ipv4-udp end key_len 0 queues end / end\n+\n+hit pattern and defined input set::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(src=\"192.168.0.1\", dst=\"192.168.0.2\")/UDP(sport=12, dport=23)/(\"X\"*480)], iface=\"enp134s0f0\")\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(src=\"192.168.0.1\", dst=\"192.168.0.2\")/UDP(sport=22, dport=13)/(\"X\"*480)], iface=\"enp134s0f0\")\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(src=\"192.168.10.1\", dst=\"192.168.0.2\")/UDP(sport=22, dport=23)/(\"X\"*480)], iface=\"enp134s0f0\")\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(src=\"192.168.0.1\", dst=\"192.168.10.2\")/UDP(sport=22, dport=23)/(\"X\"*480)], iface=\"enp134s0f0\")\n+\n+Subcase: MAC_IPV4_GTPU_EH_DL_IPV4_UDP_L3\n+::::::::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv4 / udp / end actions rss types ipv4 end key_len 0 queues end / end\n+\n+hit pattern and defined input set::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(src=\"192.168.10.1\", dst=\"192.168.0.2\")/UDP(sport=22, dport=23)/(\"X\"*480)], iface=\"enp134s0f0\")\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(src=\"192.168.0.1\", dst=\"192.168.10.2\")/UDP(sport=22, dport=23)/(\"X\"*480)], iface=\"enp134s0f0\")\n+\n+hit pattern but not defined input set::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(src=\"192.168.0.1\", dst=\"192.168.0.2\")/UDP(sport=12, dport=13)/(\"X\"*480)], iface=\"enp134s0f0\")\n+\n+UL case\n+\n+basic hit pattern packets are the same in this test case::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(src=\"192.168.0.1\", dst=\"192.168.0.2\")/UDP(sport=22, dport=23)/(\"X\"*480)], iface=\"enp134s0f0\")\n+\n+Subcase: MAC_IPV4_GTPU_EH_UL_IPV4_UDP_L3DST\n+:::::::::::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 / udp / end actions rss types ipv4-udp l3-dst-only end key_len 0 queues end / end\n+\n+packets: change the pdu_type value(0->1/1->0) of packets of Subcase MAC_IPV4_GTPU_EH_DL_IPV4_UDP_L3DST.\n+\n+Subcase: MAC_IPV4_GTPU_EH_UL_IPV4_UDP_L3SRC\n+:::::::::::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 / udp / end actions rss types ipv4-udp l3-src-only end key_len 0 queues end / end\n+\n+packets: change the pdu_type value(0->1/1->0) of packets of Subcase MAC_IPV4_GTPU_EH_DL_IPV4_UDP_L3SRC.\n+\n+Subcase: MAC_IPV4_GTPU_EH_UL_IPV4_UDP_L3SRC_L4SRC\n+:::::::::::::::::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 / udp / end actions rss types ipv4-udp l3-src-only l4-src-only end key_len 0 queues end / end\n+\n+packets: change the pdu_type value(0->1/1->0) of packets of Subcase MAC_IPV4_GTPU_EH_DL_IPV4_UDP_L3SRC_L4SRC.\n+\n+Subcase: MAC_IPV4_GTPU_EH_UL_IPV4_UDP_L3SRC_L4DST\n+:::::::::::::::::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 / udp / end actions rss types ipv4-udp l3-src-only l4-dst-only end key_len 0 queues end / end\n+\n+packets: change the pdu_type value(0->1/1->0) of packets of Subcase MAC_IPV4_GTPU_EH_DL_IPV4_UDP_L3SRC_L4DST.\n+\n+Subcase: MAC_IPV4_GTPU_EH_UL_IPV4_UDP_L3DST_L4SRC\n+:::::::::::::::::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 / udp / end actions rss types ipv4-udp l3-dst-only l4-src-only end key_len 0 queues end / end\n+\n+packets: change the pdu_type value(0->1/1->0) of packets of Subcase MAC_IPV4_GTPU_EH_DL_IPV4_UDP_L3DST_L4SRC.\n+\n+Subcase: MAC_IPV4_GTPU_EH_UL_IPV4_UDP_L3DST_L4DST\n+:::::::::::::::::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 / udp / end actions rss types ipv4-udp l3-dst-only l4-dst-only end key_len 0 queues end / end\n+\n+packets: change the pdu_type value(0->1/1->0) of packets of Subcase MAC_IPV4_GTPU_EH_DL_IPV4_UDP_L3DST_L4DST.\n+\n+Subcase: MAC_IPV4_GTPU_EH_UL_IPV4_UDP_L4DST\n+:::::::::::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 / udp / end actions rss types ipv4-udp l4-dst-only end key_len 0 queues end / end\n+\n+packets: change the pdu_type value(0->1/1->0) of packets of Subcase MAC_IPV4_GTPU_EH_DL_IPV4_UDP_L4DST.\n+\n+Subcase: MAC_IPV4_GTPU_EH_UL_IPV4_UDP_L4SRC\n+:::::::::::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 / udp / end actions rss types ipv4-udp l4-src-only end key_len 0 queues end / end\n+\n+packets: change the pdu_type value(0->1/1->0) of packets of Subcase MAC_IPV4_GTPU_EH_DL_IPV4_UDP_L4SRC.\n+\n+Subcase: MAC_IPV4_GTPU_EH_UL_IPV4_UDP\n+:::::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 / udp / end actions rss types ipv4-udp end key_len 0 queues end / end\n+\n+packets: change the pdu_type value(0->1/1->0) of packets of Subcase MAC_IPV4_GTPU_EH_DL_IPV4_UDP.\n+\n+Subcase: MAC_IPV4_GTPU_EH_UL_IPV4_UDP_L3\n+::::::::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 / udp / end actions rss types ipv4 end key_len 0 queues end / end\n+\n+packets: change the pdu_type value(0->1/1->0) of packets of Subcase MAC_IPV4_GTPU_EH_DL_IPV4_UDP.\n+\n+\n+Test case: MAC_IPV4_GTPU_EH_IPV4_TCP with UL/DL\n+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\n+\n+DL case\n+\n+basic hit pattern packets are the same in this test case::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(src=\"192.168.0.1\", dst=\"192.168.0.2\")/TCP(sport=22, dport=23)/(\"X\"*480)], iface=\"enp134s0f0\")\n+\n+Subcase: MAC_IPV4_GTPU_EH_DL_IPV4_TCP_L3DST\n+:::::::::::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv4 / tcp / end actions rss types ipv4-tcp l3-dst-only end key_len 0 queues end / end\n+\n+hit pattern and defined input set::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(src=\"192.168.0.1\", dst=\"192.168.10.2\")/TCP(sport=22, dport=23)/(\"X\"*480)], iface=\"enp134s0f0\")\n+\n+hit pattern but not defined input set::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(src=\"192.168.10.1\", dst=\"192.168.0.2\")/TCP(sport=12, dport=13)/(\"X\"*480)], iface=\"enp134s0f0\")\n+\n+Subcase: MAC_IPV4_GTPU_EH_DL_IPV4_TCP_L3SRC\n+:::::::::::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv4 / tcp / end actions rss types ipv4-tcp l3-src-only end key_len 0 queues end / end\n+\n+hit pattern and defined input set::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(src=\"192.168.10.1\", dst=\"192.168.0.2\")/TCP(sport=22, dport=23)/(\"X\"*480)], iface=\"enp134s0f0\")\n+\n+hit pattern but not defined input set::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(src=\"192.168.0.1\", dst=\"192.168.10.2\")/TCP(sport=12, dport=13)/(\"X\"*480)], iface=\"enp134s0f0\")\n+\n+Subcase: MAC_IPV4_GTPU_EH_DL_IPV4_TCP_L3SRC_L4SRC\n+:::::::::::::::::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv4 / tcp / end actions rss types ipv4-tcp l3-src-only l4-src-only end key_len 0 queues end / end\n+\n+hit pattern and defined input set::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(src=\"192.168.10.1\", dst=\"192.168.0.2\")/TCP(sport=22, dport=23)/(\"X\"*480)], iface=\"enp134s0f0\")\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(src=\"192.168.0.1\", dst=\"192.168.0.2\")/TCP(sport=12, dport=23)/(\"X\"*480)], iface=\"enp134s0f0\")\n+\n+hit pattern but not defined input set::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(src=\"192.168.0.1\", dst=\"192.168.10.2\")/TCP(sport=22, dport=13)/(\"X\"*480)], iface=\"enp134s0f0\")\n+\n+Subcase: MAC_IPV4_GTPU_EH_DL_IPV4_TCP_L3SRC_L4DST\n+:::::::::::::::::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv4 / tcp / end actions rss types ipv4-tcp l3-src-only l4-dst-only end key_len 0 queues end / end\n+\n+hit pattern and defined input set::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(src=\"192.168.10.1\", dst=\"192.168.0.2\")/TCP(sport=22, dport=23)/(\"X\"*480)], iface=\"enp134s0f0\")\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(src=\"192.168.0.1\", dst=\"192.168.0.2\")/TCP(sport=22, dport=13)/(\"X\"*480)], iface=\"enp134s0f0\")\n+\n+hit pattern but not defined input set::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(src=\"192.168.0.1\", dst=\"192.168.10.2\")/TCP(sport=12, dport=23)/(\"X\"*480)], iface=\"enp134s0f0\")\n+\n+Subcase: MAC_IPV4_GTPU_EH_DL_IPV4_TCP_L3DST_L4SRC\n+:::::::::::::::::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv4 / tcp / end actions rss types ipv4-tcp l3-dst-only l4-src-only end key_len 0 queues end / end\n+\n+hit pattern and defined input set::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(src=\"192.168.0.1\", dst=\"192.168.10.2\")/TCP(sport=22, dport=23)/(\"X\"*480)], iface=\"enp134s0f0\")\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(src=\"192.168.0.1\", dst=\"192.168.0.2\")/TCP(sport=12, dport=23)/(\"X\"*480)], iface=\"enp134s0f0\")\n+\n+hit pattern but not defined input set::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(src=\"192.168.10.1\", dst=\"192.168.0.2\")/TCP(sport=22, dport=13)/(\"X\"*480)], iface=\"enp134s0f0\")\n+\n+Subcase: MAC_IPV4_GTPU_EH_DL_IPV4_TCP_L3DST_L4DST\n+:::::::::::::::::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv4 / tcp / end actions rss types ipv4-tcp l3-dst-only l4-dst-only end key_len 0 queues end / end\n+\n+hit pattern and defined input set::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(src=\"192.168.0.1\", dst=\"192.168.10.2\")/TCP(sport=22, dport=23)/(\"X\"*480)], iface=\"enp134s0f0\")\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(src=\"192.168.0.1\", dst=\"192.168.0.2\")/TCP(sport=22, dport=13)/(\"X\"*480)], iface=\"enp134s0f0\")\n+\n+hit pattern but not defined input set::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(src=\"192.168.10.1\", dst=\"192.168.0.2\")/TCP(sport=12, dport=23)/(\"X\"*480)], iface=\"enp134s0f0\")\n+\n+Subcase: MAC_IPV4_GTPU_EH_DL_IPV4_TCP_L4DST\n+:::::::::::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv4 / tcp / end actions rss types ipv4-tcp l4-dst-only end key_len 0 queues end / end\n+\n+hit pattern and defined input set::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(src=\"192.168.0.1\", dst=\"192.168.0.2\")/TCP(sport=22, dport=13)/(\"X\"*480)], iface=\"enp134s0f0\")\n+\n+hit pattern but not defined input set::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(src=\"192.168.10.1\", dst=\"192.168.10.2\")/TCP(sport=12, dport=23)/(\"X\"*480)], iface=\"enp134s0f0\")\n+\n+Subcase: MAC_IPV4_GTPU_EH_DL_IPV4_TCP_L4SRC\n+:::::::::::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv4 / tcp / end actions rss types ipv4-tcp l4-src-only end key_len 0 queues end / end\n+\n+hit pattern and defined input set::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(src=\"192.168.0.1\", dst=\"192.168.0.2\")/TCP(sport=12, dport=23)/(\"X\"*480)], iface=\"enp134s0f0\")\n+\n+hit pattern but not defined input set::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(src=\"192.168.10.1\", dst=\"192.168.10.2\")/TCP(sport=22, dport=13)/(\"X\"*480)], iface=\"enp134s0f0\")\n+\n+Subcase: MAC_IPV4_GTPU_EH_DL_IPV4_TCP\n+:::::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv4 / tcp / end actions rss types ipv4-tcp end key_len 0 queues end / end\n+\n+hit pattern and defined input set::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(src=\"192.168.0.1\", dst=\"192.168.0.2\")/TCP(sport=12, dport=23)/(\"X\"*480)], iface=\"enp134s0f0\")\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(src=\"192.168.0.1\", dst=\"192.168.0.2\")/TCP(sport=22, dport=13)/(\"X\"*480)], iface=\"enp134s0f0\")\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(src=\"192.168.10.1\", dst=\"192.168.0.2\")/TCP(sport=22, dport=23)/(\"X\"*480)], iface=\"enp134s0f0\")\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(src=\"192.168.0.1\", dst=\"192.168.10.2\")/TCP(sport=22, dport=23)/(\"X\"*480)], iface=\"enp134s0f0\")\n+\n+Subcase: MAC_IPV4_GTPU_EH_DL_IPV4_TCP_L3\n+::::::::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv4 / tcp / end actions rss types ipv4 end key_len 0 queues end / end\n+\n+hit pattern and defined input set::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(src=\"192.168.10.1\", dst=\"192.168.0.2\")/TCP(sport=22, dport=23)/(\"X\"*480)], iface=\"enp134s0f0\")\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(src=\"192.168.0.1\", dst=\"192.168.10.2\")/TCP(sport=22, dport=23)/(\"X\"*480)], iface=\"enp134s0f0\")\n+\n+hit pattern but not defined input set::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(src=\"192.168.0.1\", dst=\"192.168.0.2\")/TCP(sport=12, dport=13)/(\"X\"*480)], iface=\"enp134s0f0\")\n+\n+UL case\n+\n+basic hit pattern packets are the same in this test case::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(src=\"192.168.0.1\", dst=\"192.168.0.2\")/TCP(sport=22, dport=23)/(\"X\"*480)], iface=\"enp134s0f0\")\n+\n+Subcase: MAC_IPV4_GTPU_EH_UL_IPV4_TCP_L3DST\n+:::::::::::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 / tcp / end actions rss types ipv4-tcp l3-dst-only end key_len 0 queues end / end\n+\n+packets: change the pdu_type value(0->1/1->0) of packets of Subcase MAC_IPV4_GTPU_EH_DL_IPV4_UDP_L3DST.\n+\n+Subcase: MAC_IPV4_GTPU_EH_UL_IPV4_TCP_L3SRC\n+:::::::::::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 / tcp / end actions rss types ipv4-tcp l3-src-only end key_len 0 queues end / end\n+\n+packets: change the pdu_type value(0->1/1->0) of packets of Subcase MAC_IPV4_GTPU_EH_DL_IPV4_UDP_L3SRC.\n+\n+Subcase: MAC_IPV4_GTPU_EH_UL_IPV4_TCP_L3SRC_L4SRC\n+:::::::::::::::::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 / tcp / end actions rss types ipv4-tcp l3-src-only l4-src-only end key_len 0 queues end / end\n+\n+packets: change the pdu_type value(0->1/1->0) of packets of Subcase MAC_IPV4_GTPU_EH_DL_IPV4_UDP_L3SRC_L4SRC.\n+\n+Subcase: MAC_IPV4_GTPU_EH_UL_IPV4_TCP_L3SRC_L4DST\n+:::::::::::::::::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 / tcp / end actions rss types ipv4-tcp l3-src-only l4-dst-only end key_len 0 queues end / end\n+\n+packets: change the pdu_type value(0->1/1->0) of packets of Subcase MAC_IPV4_GTPU_EH_DL_IPV4_UDP_L3SRC_L4DST.\n+\n+Subcase: MAC_IPV4_GTPU_EH_UL_IPV4_TCP_L3DST_L4SRC\n+:::::::::::::::::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 / tcp / end actions rss types ipv4-tcp l3-dst-only l4-src-only end key_len 0 queues end / end\n+\n+packets: change the pdu_type value(0->1/1->0) of packets of Subcase MAC_IPV4_GTPU_EH_DL_IPV4_UDP_L3DST_L4SRC.\n+\n+Subcase: MAC_IPV4_GTPU_EH_UL_IPV4_TCP_L3DST_L4DST\n+:::::::::::::::::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 / tcp / end actions rss types ipv4-tcp l3-dst-only l4-dst-only end key_len 0 queues end / end\n+\n+packets: change the pdu_type value(0->1/1->0) of packets of Subcase MAC_IPV4_GTPU_EH_DL_IPV4_UDP_L3DST_L4DST.\n+\n+Subcase: MAC_IPV4_GTPU_EH_UL_IPV4_TCP_L4DST\n+:::::::::::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 / tcp / end actions rss types ipv4-tcp l4-dst-only end key_len 0 queues end / end\n+\n+packets: change the pdu_type value(0->1/1->0) of packets of Subcase MAC_IPV4_GTPU_EH_DL_IPV4_UDP_L4DST.\n+\n+Subcase: MAC_IPV4_GTPU_EH_UL_IPV4_TCP_L4SRC\n+:::::::::::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 / tcp / end actions rss types ipv4-tcp l4-src-only end key_len 0 queues end / end\n+\n+packets: change the pdu_type value(0->1/1->0) of packets of Subcase MAC_IPV4_GTPU_EH_DL_IPV4_UDP_L4SRC.\n+\n+Subcase: MAC_IPV4_GTPU_EH_UL_IPV4_TCP_L3\n+::::::::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 / tcp / end actions rss types ipv4 end key_len 0 queues end / end\n+\n+packets: change the pdu_type value(0->1/1->0) of packets of Subcase MAC_IPV4_GTPU_EH_DL_IPV4_UDP.\n+\n+Subcase: MAC_IPV4_GTPU_EH_UL_IPV4_TCP\n+:::::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 / tcp / end actions rss types ipv4-tcp end key_len 0 queues end / end\n+\n+packets: change the pdu_type value(0->1/1->0) of packets of Subcase MAC_IPV4_GTPU_EH_DL_IPV4_UDP.\n+\n+\n+Test case: MAC_IPV4_GTPU_EH_IPV4 without UL/DL\n+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\n+basic hit pattern packets are the same in this test case::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(dst=\"192.168.0.1\", src=\"192.168.0.2\")/(\"X\"*480)],iface=\"enp134s0f0\")\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(dst=\"192.168.0.1\", src=\"192.168.0.2\")/(\"X\"*480)],iface=\"enp134s0f0\")\n+\n+Subcase: MAC_IPV4_GTPU_EH_IPV4_L3DST\n+::::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv4 / end actions rss types ipv4 l3-dst-only end key_len 0 queues end / end\n+\n+hit pattern and defined input set::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(dst=\"192.168.10.1\", src=\"192.168.0.2\")/(\"X\"*480)],iface=\"enp134s0f0\")\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(dst=\"192.168.10.1\", src=\"192.168.0.2\")/(\"X\"*480)],iface=\"enp134s0f0\")\n+\n+hit pattern but not defined input set::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(dst=\"192.168.0.1\", src=\"192.168.10.2\")/(\"X\"*480)],iface=\"enp134s0f0\")\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(dst=\"192.168.0.1\", src=\"192.168.10.2\")/(\"X\"*480)],iface=\"enp134s0f0\")\n+\n+Subcase: MAC_IPV4_GTPU_EH_DL_IPV4_L3SRC\n+:::::::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv4 / end actions rss types ipv4 l3-src-only end key_len 0 queues end / end\n+\n+hit pattern and defined input set::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(dst=\"192.168.0.1\", src=\"192.168.10.2\")/(\"X\"*480)],iface=\"enp134s0f0\")\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(dst=\"192.168.0.1\", src=\"192.168.10.2\")/(\"X\"*480)],iface=\"enp134s0f0\")\n+\n+hit pattern but not defined input set::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(dst=\"192.168.10.1\", src=\"192.168.0.2\")/(\"X\"*480)],iface=\"enp134s0f0\")\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(dst=\"192.168.10.1\", src=\"192.168.0.2\")/(\"X\"*480)],iface=\"enp134s0f0\")\n+\n+Subcase: MAC_IPV4_GTPU_EH_DL_IPV4\n+:::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv4 / end actions rss types ipv4 end key_len 0 queues end / end\n+\n+hit pattern and defined input set::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(dst=\"192.168.10.1\", src=\"192.168.0.2\")/(\"X\"*480)],iface=\"enp134s0f0\")\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(dst=\"192.168.0.1\", src=\"192.168.10.2\")/(\"X\"*480)],iface=\"enp134s0f0\")\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(dst=\"192.168.10.1\", src=\"192.168.10.2\")/(\"X\"*480)],iface=\"enp134s0f0\")\n+\n+Test case: MAC_IPV4_GTPU_EH_IPV4_UDP without UL/DL\n+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\n+basic hit pattern packets are the same in this test case::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(src=\"192.168.0.1\", dst=\"192.168.0.2\")/UDP(sport=22, dport=23)/(\"X\"*480)], iface=\"enp134s0f0\")\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(src=\"192.168.0.1\", dst=\"192.168.0.2\")/UDP(sport=22, dport=23)/(\"X\"*480)], iface=\"enp134s0f0\")\n+\n+Subcase: MAC_IPV4_GTPU_EH_IPV4_UDP_L3DST\n+::::::::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv4 / udp / end actions rss types ipv4-udp l3-dst-only end key_len 0 queues end / end\n+\n+hit pattern and defined input set::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(src=\"192.168.0.1\", dst=\"192.168.10.2\")/UDP(sport=22, dport=23)/(\"X\"*480)], iface=\"enp134s0f0\")\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(src=\"192.168.0.1\", dst=\"192.168.10.2\")/UDP(sport=22, dport=23)/(\"X\"*480)], iface=\"enp134s0f0\")\n+\n+hit pattern but not defined input set::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(src=\"192.168.10.1\", dst=\"192.168.0.2\")/UDP(sport=12, dport=13)/(\"X\"*480)], iface=\"enp134s0f0\")\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(src=\"192.168.10.1\", dst=\"192.168.0.2\")/UDP(sport=12, dport=13)/(\"X\"*480)], iface=\"enp134s0f0\")\n+\n+Subcase: MAC_IPV4_GTPU_EH_IPV4_UDP_L3SRC\n+::::::::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv4 / udp / end actions rss types ipv4-udp l3-src-only end key_len 0 queues end / end\n+\n+hit pattern and defined input set::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(src=\"192.168.10.1\", dst=\"192.168.0.2\")/UDP(sport=22, dport=23)/(\"X\"*480)], iface=\"enp134s0f0\")\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(src=\"192.168.10.1\", dst=\"192.168.0.2\")/UDP(sport=22, dport=23)/(\"X\"*480)], iface=\"enp134s0f0\")\n+\n+hit pattern but not defined input set::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(src=\"192.168.0.1\", dst=\"192.168.10.2\")/UDP(sport=12, dport=13)/(\"X\"*480)], iface=\"enp134s0f0\")\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(src=\"192.168.0.1\", dst=\"192.168.10.2\")/UDP(sport=12, dport=13)/(\"X\"*480)], iface=\"enp134s0f0\")\n+\n+Subcase: MAC_IPV4_GTPU_EH_IPV4_UDP_L3SRC_L4SRC\n+::::::::::::::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv4 / udp / end actions rss types ipv4-udp l3-src-only l4-src-only end key_len 0 queues end / end\n+\n+hit pattern and defined input set::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(src=\"192.168.10.1\", dst=\"192.168.0.2\")/UDP(sport=22, dport=23)/(\"X\"*480)], iface=\"enp134s0f0\")\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(src=\"192.168.0.1\", dst=\"192.168.0.2\")/UDP(sport=12, dport=23)/(\"X\"*480)], iface=\"enp134s0f0\")\n+\n+hit pattern but not defined input set::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(src=\"192.168.0.1\", dst=\"192.168.10.2\")/UDP(sport=22, dport=13)/(\"X\"*480)], iface=\"enp134s0f0\")\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(src=\"192.168.0.1\", dst=\"192.168.10.2\")/UDP(sport=22, dport=13)/(\"X\"*480)], iface=\"enp134s0f0\")\n+\n+Subcase: MAC_IPV4_GTPU_EH_IPV4_UDP_L3SRC_L4DST\n+::::::::::::::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv4 / udp / end actions rss types ipv4-udp l3-src-only l4-dst-only end key_len 0 queues end / end\n+\n+hit pattern and defined input set::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(src=\"192.168.10.1\", dst=\"192.168.0.2\")/UDP(sport=22, dport=23)/(\"X\"*480)], iface=\"enp134s0f0\")\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(src=\"192.168.0.1\", dst=\"192.168.0.2\")/UDP(sport=22, dport=13)/(\"X\"*480)], iface=\"enp134s0f0\")\n+\n+hit pattern but not defined input set::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(src=\"192.168.0.1\", dst=\"192.168.10.2\")/UDP(sport=12, dport=23)/(\"X\"*480)], iface=\"enp134s0f0\")\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(src=\"192.168.0.1\", dst=\"192.168.10.2\")/UDP(sport=12, dport=23)/(\"X\"*480)], iface=\"enp134s0f0\")\n+\n+Subcase: MAC_IPV4_GTPU_EH_IPV4_UDP_L3DST_L4SRC\n+::::::::::::::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv4 / udp / end actions rss types ipv4-udp l3-dst-only l4-src-only end key_len 0 queues end / end\n+\n+hit pattern and defined input set::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(src=\"192.168.0.1\", dst=\"192.168.10.2\")/UDP(sport=22, dport=23)/(\"X\"*480)], iface=\"enp134s0f0\")\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(src=\"192.168.0.1\", dst=\"192.168.0.2\")/UDP(sport=12, dport=23)/(\"X\"*480)], iface=\"enp134s0f0\")\n+\n+hit pattern but not defined input set::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(src=\"192.168.10.1\", dst=\"192.168.0.2\")/UDP(sport=22, dport=13)/(\"X\"*480)], iface=\"enp134s0f0\")\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(src=\"192.168.10.1\", dst=\"192.168.0.2\")/UDP(sport=22, dport=13)/(\"X\"*480)], iface=\"enp134s0f0\")\n+\n+Subcase: MAC_IPV4_GTPU_EH_IPV4_UDP_L3DST_L4DST\n+::::::::::::::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv4 / udp / end actions rss types ipv4-udp l3-dst-only l4-dst-only end key_len 0 queues end / end\n+\n+hit pattern and defined input set::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(src=\"192.168.0.1\", dst=\"192.168.10.2\")/UDP(sport=22, dport=23)/(\"X\"*480)], iface=\"enp134s0f0\")\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(src=\"192.168.0.1\", dst=\"192.168.0.2\")/UDP(sport=22, dport=13)/(\"X\"*480)], iface=\"enp134s0f0\")\n+\n+hit pattern but not defined input set::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(src=\"192.168.10.1\", dst=\"192.168.0.2\")/UDP(sport=12, dport=23)/(\"X\"*480)], iface=\"enp134s0f0\")\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(src=\"192.168.10.1\", dst=\"192.168.0.2\")/UDP(sport=12, dport=23)/(\"X\"*480)], iface=\"enp134s0f0\")\n+\n+Subcase: MAC_IPV4_GTPU_EH_IPV4_UDP_L4DST\n+::::::::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv4 / udp / end actions rss types ipv4-udp l4-dst-only end key_len 0 queues end / end\n+\n+hit pattern and defined input set::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(src=\"192.168.0.1\", dst=\"192.168.0.2\")/UDP(sport=22, dport=13)/(\"X\"*480)], iface=\"enp134s0f0\")\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(src=\"192.168.0.1\", dst=\"192.168.0.2\")/UDP(sport=22, dport=13)/(\"X\"*480)], iface=\"enp134s0f0\")\n+\n+hit pattern but not defined input set::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(src=\"192.168.10.1\", dst=\"192.168.10.2\")/UDP(sport=12, dport=23)/(\"X\"*480)], iface=\"enp134s0f0\")\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(src=\"192.168.10.1\", dst=\"192.168.10.2\")/UDP(sport=12, dport=23)/(\"X\"*480)], iface=\"enp134s0f0\")\n+\n+Subcase: MAC_IPV4_GTPU_EH_IPV4_UDP_L4SRC\n+::::::::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv4 / udp / end actions rss types ipv4-udp l4-src-only end key_len 0 queues end / end\n+\n+hit pattern and defined input set::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(src=\"192.168.0.1\", dst=\"192.168.0.2\")/UDP(sport=12, dport=23)/(\"X\"*480)], iface=\"enp134s0f0\")\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(src=\"192.168.0.1\", dst=\"192.168.0.2\")/UDP(sport=12, dport=23)/(\"X\"*480)], iface=\"enp134s0f0\")\n+\n+hit pattern but not defined input set::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(src=\"192.168.10.1\", dst=\"192.168.10.2\")/UDP(sport=22, dport=13)/(\"X\"*480)], iface=\"enp134s0f0\")\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(src=\"192.168.10.1\", dst=\"192.168.10.2\")/UDP(sport=22, dport=13)/(\"X\"*480)], iface=\"enp134s0f0\")\n+\n+Subcase: MAC_IPV4_GTPU_EH_IPV4_UDP_L3\n+:::::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv4 / udp / end actions rss types ipv4 end key_len 0 queues end / end\n+\n+hit pattern and defined input set::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(src=\"192.168.10.1\", dst=\"192.168.0.2\")/UDP(sport=22, dport=23)/(\"X\"*480)], iface=\"enp134s0f0\")\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(src=\"192.168.10.1\", dst=\"192.168.0.2\")/UDP(sport=22, dport=23)/(\"X\"*480)], iface=\"enp134s0f0\")\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(src=\"192.168.0.1\", dst=\"192.168.10.2\")/UDP(sport=22, dport=23)/(\"X\"*480)], iface=\"enp134s0f0\")\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(src=\"192.168.0.1\", dst=\"192.168.10.2\")/UDP(sport=22, dport=23)/(\"X\"*480)], iface=\"enp134s0f0\")\n+\n+hit pattern but not defined input set::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(src=\"192.168.0.1\", dst=\"192.168.0.2\")/UDP(sport=12, dport=13)/(\"X\"*480)], iface=\"enp134s0f0\")\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(src=\"192.168.0.1\", dst=\"192.168.0.2\")/UDP(sport=12, dport=13)/(\"X\"*480)], iface=\"enp134s0f0\")\n+\n+Subcase: MAC_IPV4_GTPU_EH_IPV4_UDP\n+::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv4 / udp / end actions rss types ipv4-udp end key_len 0 queues end / end\n+\n+hit pattern and defined input set::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(src=\"192.168.0.1\", dst=\"192.168.0.2\")/UDP(sport=12, dport=23)/(\"X\"*480)], iface=\"enp134s0f0\")\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(src=\"192.168.0.1\", dst=\"192.168.0.2\")/UDP(sport=22, dport=13)/(\"X\"*480)], iface=\"enp134s0f0\")\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(src=\"192.168.10.1\", dst=\"192.168.0.2\")/UDP(sport=22, dport=23)/(\"X\"*480)], iface=\"enp134s0f0\")\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(src=\"192.168.0.1\", dst=\"192.168.10.2\")/UDP(sport=22, dport=23)/(\"X\"*480)], iface=\"enp134s0f0\")\n+\n+\n+Test case: MAC_IPV4_GTPU_EH_IPV4_TCP without UL/DL\n+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\n+basic hit pattern packets are the same in this test case::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(src=\"192.168.0.1\", dst=\"192.168.0.2\")/TCP(sport=22, dport=23)/(\"X\"*480)], iface=\"enp134s0f0\")\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(src=\"192.168.0.1\", dst=\"192.168.0.2\")/TCP(sport=22, dport=23)/(\"X\"*480)], iface=\"enp134s0f0\")\n+\n+Subcase: MAC_IPV4_GTPU_EH_IPV4_TCP_L3DST\n+::::::::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv4 / tcp / end actions rss types ipv4-tcp l3-dst-only end key_len 0 queues end / end\n+\n+hit pattern and defined input set::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(src=\"192.168.0.1\", dst=\"192.168.10.2\")/TCP(sport=22, dport=23)/(\"X\"*480)], iface=\"enp134s0f0\")\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(src=\"192.168.0.1\", dst=\"192.168.10.2\")/TCP(sport=22, dport=23)/(\"X\"*480)], iface=\"enp134s0f0\")\n+\n+hit pattern but not defined input set::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(src=\"192.168.10.1\", dst=\"192.168.0.2\")/TCP(sport=12, dport=13)/(\"X\"*480)], iface=\"enp134s0f0\")\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(src=\"192.168.10.1\", dst=\"192.168.0.2\")/TCP(sport=12, dport=13)/(\"X\"*480)], iface=\"enp134s0f0\")\n+\n+Subcase: MAC_IPV4_GTPU_EH_IPV4_TCP_L3SRC\n+::::::::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv4 / tcp / end actions rss types ipv4-tcp l3-src-only end key_len 0 queues end / end\n+\n+hit pattern and defined input set::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(src=\"192.168.10.1\", dst=\"192.168.0.2\")/TCP(sport=22, dport=23)/(\"X\"*480)], iface=\"enp134s0f0\")\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(src=\"192.168.10.1\", dst=\"192.168.0.2\")/TCP(sport=22, dport=23)/(\"X\"*480)], iface=\"enp134s0f0\")\n+\n+hit pattern but not defined input set::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(src=\"192.168.0.1\", dst=\"192.168.10.2\")/TCP(sport=12, dport=13)/(\"X\"*480)], iface=\"enp134s0f0\")\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(src=\"192.168.0.1\", dst=\"192.168.10.2\")/TCP(sport=12, dport=13)/(\"X\"*480)], iface=\"enp134s0f0\")\n+\n+Subcase: MAC_IPV4_GTPU_EH_IPV4_TCP_L3SRC_L4SRC\n+::::::::::::::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv4 / tcp / end actions rss types ipv4-tcp l3-src-only l4-src-only end key_len 0 queues end / end\n+\n+hit pattern and defined input set::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(src=\"192.168.10.1\", dst=\"192.168.0.2\")/TCP(sport=22, dport=23)/(\"X\"*480)], iface=\"enp134s0f0\")\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(src=\"192.168.0.1\", dst=\"192.168.0.2\")/TCP(sport=12, dport=23)/(\"X\"*480)], iface=\"enp134s0f0\")\n+\n+hit pattern but not defined input set::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(src=\"192.168.0.1\", dst=\"192.168.10.2\")/TCP(sport=22, dport=13)/(\"X\"*480)], iface=\"enp134s0f0\")\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(src=\"192.168.0.1\", dst=\"192.168.10.2\")/TCP(sport=22, dport=13)/(\"X\"*480)], iface=\"enp134s0f0\")\n+\n+Subcase: MAC_IPV4_GTPU_EH_IPV4_TCP_L3SRC_L4DST\n+::::::::::::::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv4 / tcp / end actions rss types ipv4-tcp l3-src-only l4-dst-only end key_len 0 queues end / end\n+\n+hit pattern and defined input set::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(src=\"192.168.10.1\", dst=\"192.168.0.2\")/TCP(sport=22, dport=23)/(\"X\"*480)], iface=\"enp134s0f0\")\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(src=\"192.168.0.1\", dst=\"192.168.0.2\")/TCP(sport=22, dport=13)/(\"X\"*480)], iface=\"enp134s0f0\")\n+\n+hit pattern but not defined input set::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(src=\"192.168.0.1\", dst=\"192.168.10.2\")/TCP(sport=12, dport=23)/(\"X\"*480)], iface=\"enp134s0f0\")\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(src=\"192.168.0.1\", dst=\"192.168.10.2\")/TCP(sport=12, dport=23)/(\"X\"*480)], iface=\"enp134s0f0\")\n+\n+Subcase: MAC_IPV4_GTPU_EH_IPV4_TCP_L3DST_L4SRC\n+::::::::::::::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv4 / tcp / end actions rss types ipv4-tcp l3-dst-only l4-src-only end key_len 0 queues end / end\n+\n+hit pattern and defined input set::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(src=\"192.168.0.1\", dst=\"192.168.10.2\")/TCP(sport=22, dport=23)/(\"X\"*480)], iface=\"enp134s0f0\")\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(src=\"192.168.0.1\", dst=\"192.168.0.2\")/TCP(sport=12, dport=23)/(\"X\"*480)], iface=\"enp134s0f0\")\n+\n+hit pattern but not defined input set::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(src=\"192.168.10.1\", dst=\"192.168.0.2\")/TCP(sport=22, dport=13)/(\"X\"*480)], iface=\"enp134s0f0\")\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(src=\"192.168.10.1\", dst=\"192.168.0.2\")/TCP(sport=22, dport=13)/(\"X\"*480)], iface=\"enp134s0f0\")\n+\n+Subcase: MAC_IPV4_GTPU_EH_IPV4_TCP_L3DST_L4DST\n+::::::::::::::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv4 / tcp / end actions rss types ipv4-tcp l3-dst-only l4-dst-only end key_len 0 queues end / end\n+\n+hit pattern and defined input set::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(src=\"192.168.0.1\", dst=\"192.168.10.2\")/TCP(sport=22, dport=23)/(\"X\"*480)], iface=\"enp134s0f0\")\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(src=\"192.168.0.1\", dst=\"192.168.0.2\")/TCP(sport=22, dport=13)/(\"X\"*480)], iface=\"enp134s0f0\")\n+\n+hit pattern but not defined input set::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(src=\"192.168.10.1\", dst=\"192.168.0.2\")/TCP(sport=12, dport=23)/(\"X\"*480)], iface=\"enp134s0f0\")\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(src=\"192.168.10.1\", dst=\"192.168.0.2\")/TCP(sport=12, dport=23)/(\"X\"*480)], iface=\"enp134s0f0\")\n+\n+Subcase: MAC_IPV4_GTPU_EH_IPV4_TCP_L4DST\n+::::::::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv4 / tcp / end actions rss types ipv4-tcp l4-dst-only end key_len 0 queues end / end\n+\n+hit pattern and defined input set::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(src=\"192.168.0.1\", dst=\"192.168.0.2\")/TCP(sport=22, dport=13)/(\"X\"*480)], iface=\"enp134s0f0\")\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(src=\"192.168.0.1\", dst=\"192.168.0.2\")/TCP(sport=22, dport=13)/(\"X\"*480)], iface=\"enp134s0f0\")\n+\n+hit pattern but not defined input set::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(src=\"192.168.10.1\", dst=\"192.168.10.2\")/TCP(sport=12, dport=23)/(\"X\"*480)], iface=\"enp134s0f0\")\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(src=\"192.168.10.1\", dst=\"192.168.10.2\")/TCP(sport=12, dport=23)/(\"X\"*480)], iface=\"enp134s0f0\")\n+\n+Subcase: MAC_IPV4_GTPU_EH_IPV4_TCP_L4SRC\n+::::::::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv4 / tcp / end actions rss types ipv4-tcp l4-src-only end key_len 0 queues end / end\n+\n+hit pattern and defined input set::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(src=\"192.168.0.1\", dst=\"192.168.0.2\")/TCP(sport=12, dport=23)/(\"X\"*480)], iface=\"enp134s0f0\")\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(src=\"192.168.0.1\", dst=\"192.168.0.2\")/TCP(sport=12, dport=23)/(\"X\"*480)], iface=\"enp134s0f0\")\n+\n+hit pattern but not defined input set::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(src=\"192.168.10.1\", dst=\"192.168.10.2\")/TCP(sport=22, dport=13)/(\"X\"*480)], iface=\"enp134s0f0\")\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(src=\"192.168.10.1\", dst=\"192.168.10.2\")/TCP(sport=22, dport=13)/(\"X\"*480)], iface=\"enp134s0f0\")\n+\n+Subcase: MAC_IPV4_GTPU_EH_IPV4_TCP_L3\n+:::::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv4 / tcp / end actions rss types ipv4 end key_len 0 queues end / end\n+\n+hit pattern and defined input set::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(src=\"192.168.10.1\", dst=\"192.168.0.2\")/TCP(sport=22, dport=23)/(\"X\"*480)], iface=\"enp134s0f0\")\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(src=\"192.168.10.1\", dst=\"192.168.0.2\")/TCP(sport=22, dport=23)/(\"X\"*480)], iface=\"enp134s0f0\")\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(src=\"192.168.0.1\", dst=\"192.168.10.2\")/TCP(sport=22, dport=23)/(\"X\"*480)], iface=\"enp134s0f0\")\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(src=\"192.168.0.1\", dst=\"192.168.10.2\")/TCP(sport=22, dport=23)/(\"X\"*480)], iface=\"enp134s0f0\")\n+\n+hit pattern but not defined input set::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(src=\"192.168.0.1\", dst=\"192.168.0.2\")/TCP(sport=12, dport=13)/(\"X\"*480)], iface=\"enp134s0f0\")\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(src=\"192.168.0.1\", dst=\"192.168.0.2\")/TCP(sport=12, dport=13)/(\"X\"*480)], iface=\"enp134s0f0\")\n+\n+Subcase: MAC_IPV4_GTPU_EH_IPV4_TCP\n+::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv4 / tcp / end actions rss types ipv4-tcp end key_len 0 queues end / end\n+\n+hit pattern and defined input set::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(src=\"192.168.0.1\", dst=\"192.168.0.2\")/TCP(sport=12, dport=23)/(\"X\"*480)], iface=\"enp134s0f0\")\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(src=\"192.168.0.1\", dst=\"192.168.0.2\")/TCP(sport=22, dport=13)/(\"X\"*480)], iface=\"enp134s0f0\")\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(src=\"192.168.10.1\", dst=\"192.168.0.2\")/TCP(sport=22, dport=23)/(\"X\"*480)], iface=\"enp134s0f0\")\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(src=\"192.168.0.1\", dst=\"192.168.10.2\")/TCP(sport=22, dport=23)/(\"X\"*480)], iface=\"enp134s0f0\")\n+\n+\n+Test case: MAC_IPV4_GTPU_IPV4\n+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\n+basic hit pattern packets are the same in this test case::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(dst=\"192.168.0.1\", src=\"192.168.0.2\")/(\"X\"*480)],iface=\"enp134s0f0\")\n+\n+Subcase: MAC_IPV4_GTPU_IPV4_L3DST\n+:::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 / end actions rss types ipv4 l3-dst-only end key_len 0 queues end / end\n+\n+hit pattern and defined input set::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(dst=\"192.168.10.1\", src=\"192.168.0.2\")/(\"X\"*480)],iface=\"enp134s0f0\")\n+\n+hit pattern but not defined input set::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(dst=\"192.168.0.1\", src=\"192.168.10.2\")/(\"X\"*480)],iface=\"enp134s0f0\")\n+\n+Subcase: MAC_IPV4_GTPU_IPV4_L3SRC\n+:::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 / end actions rss types ipv4 l3-src-only end key_len 0 queues end / end\n+\n+hit pattern and defined input set::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(dst=\"192.168.0.1\", src=\"192.168.10.2\")/(\"X\"*480)],iface=\"enp134s0f0\")\n+\n+hit pattern but not defined input set::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(dst=\"192.168.10.1\", src=\"192.168.0.2\")/(\"X\"*480)],iface=\"enp134s0f0\")\n+\n+Subcase: MAC_IPV4_GTPU_IPV4\n+:::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 / end actions rss types ipv4 end key_len 0 queues end / end\n+\n+hit pattern and defined input set::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(dst=\"192.168.10.1\", src=\"192.168.0.2\")/(\"X\"*480)],iface=\"enp134s0f0\")\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(dst=\"192.168.0.1\", src=\"192.168.10.2\")/(\"X\"*480)],iface=\"enp134s0f0\")\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(dst=\"192.168.10.1\", src=\"192.168.10.2\")/(\"X\"*480)],iface=\"enp134s0f0\")\n+\n+Subcase: MAC_IPV4_GTPU_IPV4_gtpu\n+::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 / end actions rss types gtpu end key_len 0 queues end / end\n+\n+hit pattern and defined input set::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123457)/IP(dst=\"192.168.0.1\", src=\"192.168.0.2\")/(\"X\"*480)],iface=\"enp134s0f0\")\n+\n+hit pattern but not defined input set::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(dst=\"192.168.10.1\", src=\"192.168.10.2\")/(\"X\"*480)],iface=\"enp134s0f0\")\n+\n+Test case: MAC_IPV4_GTPU_IPV4_UDP\n+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\n+basic hit pattern packets are the same in this test case::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(src=\"192.168.0.1\", dst=\"192.168.0.2\")/UDP(sport=22, dport=23)/(\"X\"*480)], iface=\"enp134s0f0\")\n+\n+Subcase: MAC_IPV4_GTPU_IPV4_UDP_L3DST\n+:::::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 / udp / end actions rss types ipv4-udp l3-dst-only end key_len 0 queues end / end\n+\n+hit pattern and defined input set::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(src=\"192.168.0.1\", dst=\"192.168.10.2\")/UDP(sport=22, dport=23)/(\"X\"*480)], iface=\"enp134s0f0\")\n+\n+hit pattern but not defined input set::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(src=\"192.168.10.1\", dst=\"192.168.0.2\")/UDP(sport=12, dport=13)/(\"X\"*480)], iface=\"enp134s0f0\")\n+\n+Subcase: MAC_IPV4_GTPU_IPV4_UDP_L3SRC\n+:::::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 / udp / end actions rss types ipv4-udp l3-src-only end key_len 0 queues end / end\n+\n+hit pattern and defined input set::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(src=\"192.168.10.1\", dst=\"192.168.0.2\")/UDP(sport=22, dport=23)/(\"X\"*480)], iface=\"enp134s0f0\")\n+\n+hit pattern but not defined input set::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(src=\"192.168.0.1\", dst=\"192.168.10.2\")/UDP(sport=12, dport=13)/(\"X\"*480)], iface=\"enp134s0f0\")\n+\n+Subcase: MAC_IPV4_GTPU_IPV4_UDP_L3SRC_L4SRC\n+:::::::::::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 / udp / end actions rss types ipv4-udp l3-src-only l4-src-only end key_len 0 queues end / end\n+\n+hit pattern and defined input set::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(src=\"192.168.10.1\", dst=\"192.168.0.2\")/UDP(sport=22, dport=23)/(\"X\"*480)], iface=\"enp134s0f0\")\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(src=\"192.168.0.1\", dst=\"192.168.0.2\")/UDP(sport=12, dport=23)/(\"X\"*480)], iface=\"enp134s0f0\")\n+\n+hit pattern but not defined input set::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(src=\"192.168.0.1\", dst=\"192.168.10.2\")/UDP(sport=22, dport=13)/(\"X\"*480)], iface=\"enp134s0f0\")\n+\n+Subcase: MAC_IPV4_GTPU_IPV4_UDP_L3SRC_L4DST\n+:::::::::::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 / udp / end actions rss types ipv4-udp l3-src-only l4-dst-only end key_len 0 queues end / end\n+\n+hit pattern and defined input set::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(src=\"192.168.10.1\", dst=\"192.168.0.2\")/UDP(sport=22, dport=23)/(\"X\"*480)], iface=\"enp134s0f0\")\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(src=\"192.168.0.1\", dst=\"192.168.0.2\")/UDP(sport=22, dport=13)/(\"X\"*480)], iface=\"enp134s0f0\")\n+\n+hit pattern but not defined input set::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(src=\"192.168.0.1\", dst=\"192.168.10.2\")/UDP(sport=12, dport=23)/(\"X\"*480)], iface=\"enp134s0f0\")\n+\n+Subcase: MAC_IPV4_GTPU_IPV4_UDP_L3DST_L4SRC\n+:::::::::::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 / udp / end actions rss types ipv4-udp l3-dst-only l4-src-only end key_len 0 queues end / end\n+\n+hit pattern and defined input set::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(src=\"192.168.0.1\", dst=\"192.168.10.2\")/UDP(sport=22, dport=23)/(\"X\"*480)], iface=\"enp134s0f0\")\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(src=\"192.168.0.1\", dst=\"192.168.0.2\")/UDP(sport=12, dport=23)/(\"X\"*480)], iface=\"enp134s0f0\")\n+\n+hit pattern but not defined input set::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(src=\"192.168.10.1\", dst=\"192.168.0.2\")/UDP(sport=22, dport=13)/(\"X\"*480)], iface=\"enp134s0f0\")\n+\n+Subcase: MAC_IPV4_GTPU_IPV4_UDP_L3DST_L4DST\n+:::::::::::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 / udp / end actions rss types ipv4-udp l3-dst-only l4-dst-only end key_len 0 queues end / end\n+\n+hit pattern and defined input set::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(src=\"192.168.0.1\", dst=\"192.168.10.2\")/UDP(sport=22, dport=23)/(\"X\"*480)], iface=\"enp134s0f0\")\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(src=\"192.168.0.1\", dst=\"192.168.0.2\")/UDP(sport=22, dport=13)/(\"X\"*480)], iface=\"enp134s0f0\")\n+\n+hit pattern but not defined input set::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(src=\"192.168.10.1\", dst=\"192.168.0.2\")/UDP(sport=12, dport=23)/(\"X\"*480)], iface=\"enp134s0f0\")\n+\n+Subcase: MAC_IPV4_GTPU_IPV4_UDP_L4DST\n+:::::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 / udp / end actions rss types ipv4-udp l4-dst-only end key_len 0 queues end / end\n+\n+hit pattern and defined input set::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(src=\"192.168.0.1\", dst=\"192.168.0.2\")/UDP(sport=22, dport=13)/(\"X\"*480)], iface=\"enp134s0f0\")\n+\n+hit pattern but not defined input set::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(src=\"192.168.10.1\", dst=\"192.168.10.2\")/UDP(sport=12, dport=23)/(\"X\"*480)], iface=\"enp134s0f0\")\n+\n+Subcase: MAC_IPV4_GTPU_IPV4_UDP_L4SRC\n+:::::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv4 / udp / end actions rss types ipv4-udp l4-src-only end key_len 0 queues end / end\n+\n+hit pattern and defined input set::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(src=\"192.168.0.1\", dst=\"192.168.0.2\")/UDP(sport=12, dport=23)/(\"X\"*480)], iface=\"enp134s0f0\")\n+\n+hit pattern but not defined input set::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(src=\"192.168.10.1\", dst=\"192.168.10.2\")/UDP(sport=22, dport=13)/(\"X\"*480)], iface=\"enp134s0f0\")\n+\n+Subcase: MAC_IPV4_GTPU_IPV4_UDP_L3\n+::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 / udp / end actions rss types ipv4 end key_len 0 queues end / end\n+\n+hit pattern and defined input set::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(src=\"192.168.10.1\", dst=\"192.168.0.2\")/UDP(sport=22, dport=23)/(\"X\"*480)], iface=\"enp134s0f0\")\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(src=\"192.168.0.1\", dst=\"192.168.10.2\")/UDP(sport=22, dport=23)/(\"X\"*480)], iface=\"enp134s0f0\")\n+\n+hit pattern but not defined input set::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(src=\"192.168.0.1\", dst=\"192.168.0.2\")/UDP(sport=12, dport=13)/(\"X\"*480)], iface=\"enp134s0f0\")\n+\n+Subcase: MAC_IPV4_GTPU_IPV4_UDP\n+:::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 / udp / end actions rss types ipv4-udp end key_len 0 queues end / end\n+\n+hit pattern and defined input set::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(src=\"192.168.0.1\", dst=\"192.168.0.2\")/UDP(sport=12, dport=23)/(\"X\"*480)], iface=\"enp134s0f0\")\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(src=\"192.168.0.1\", dst=\"192.168.0.2\")/UDP(sport=22, dport=13)/(\"X\"*480)], iface=\"enp134s0f0\")\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(src=\"192.168.10.1\", dst=\"192.168.0.2\")/UDP(sport=22, dport=23)/(\"X\"*480)], iface=\"enp134s0f0\")\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(src=\"192.168.0.1\", dst=\"192.168.10.2\")/UDP(sport=22, dport=23)/(\"X\"*480)], iface=\"enp134s0f0\")\n+\n+\n+Test case: MAC_IPV4_GTPU_IPV4_TCP\n+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\n+basic hit pattern packets are the same in this test case::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(src=\"192.168.0.1\", dst=\"192.168.0.2\")/TCP(sport=22, dport=23)/(\"X\"*480)], iface=\"enp134s0f0\")\n+\n+Subcase: MAC_IPV4_GTPU_IPV4_TCP_L3DST\n+:::::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 / tcp / end actions rss types ipv4-tcp l3-dst-only end key_len 0 queues end / end\n+\n+hit pattern and defined input set::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(src=\"192.168.0.1\", dst=\"192.168.10.2\")/TCP(sport=22, dport=23)/(\"X\"*480)], iface=\"enp134s0f0\")\n+\n+hit pattern but not defined input set::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(src=\"192.168.10.1\", dst=\"192.168.0.2\")/TCP(sport=12, dport=13)/(\"X\"*480)], iface=\"enp134s0f0\")\n+\n+Subcase: MAC_IPV4_GTPU_IPV4_TCP_L3SRC\n+:::::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 / tcp / end actions rss types ipv4-tcp l3-src-only end key_len 0 queues end / end\n+\n+hit pattern and defined input set::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(src=\"192.168.10.1\", dst=\"192.168.0.2\")/TCP(sport=22, dport=23)/(\"X\"*480)], iface=\"enp134s0f0\")\n+\n+hit pattern but not defined input set::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(src=\"192.168.0.1\", dst=\"192.168.10.2\")/TCP(sport=12, dport=13)/(\"X\"*480)], iface=\"enp134s0f0\")\n+\n+Subcase: MAC_IPV4_GTPU_IPV4_TCP_L3SRC_L4SRC\n+:::::::::::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 / tcp / end actions rss types ipv4-tcp l3-src-only l4-src-only end key_len 0 queues end / end\n+\n+hit pattern and defined input set::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(src=\"192.168.10.1\", dst=\"192.168.0.2\")/TCP(sport=22, dport=23)/(\"X\"*480)], iface=\"enp134s0f0\")\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(src=\"192.168.0.1\", dst=\"192.168.0.2\")/TCP(sport=12, dport=23)/(\"X\"*480)], iface=\"enp134s0f0\")\n+\n+hit pattern but not defined input set::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(src=\"192.168.0.1\", dst=\"192.168.10.2\")/TCP(sport=22, dport=13)/(\"X\"*480)], iface=\"enp134s0f0\")\n+\n+Subcase: MAC_IPV4_GTPU_IPV4_TCP_L3SRC_L4DST\n+:::::::::::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 / tcp / end actions rss types ipv4-tcp l3-src-only l4-dst-only end key_len 0 queues end / end\n+\n+hit pattern and defined input set::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(src=\"192.168.10.1\", dst=\"192.168.0.2\")/TCP(sport=22, dport=23)/(\"X\"*480)], iface=\"enp134s0f0\")\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(src=\"192.168.0.1\", dst=\"192.168.0.2\")/TCP(sport=22, dport=13)/(\"X\"*480)], iface=\"enp134s0f0\")\n+\n+hit pattern but not defined input set::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(src=\"192.168.0.1\", dst=\"192.168.10.2\")/TCP(sport=12, dport=23)/(\"X\"*480)], iface=\"enp134s0f0\")\n+\n+Subcase: MAC_IPV4_GTPU_IPV4_TCP_L3DST_L4SRC\n+:::::::::::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 / tcp / end actions rss types ipv4-tcp l3-dst-only l4-src-only end key_len 0 queues end / end\n+\n+hit pattern and defined input set::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(src=\"192.168.0.1\", dst=\"192.168.10.2\")/TCP(sport=22, dport=23)/(\"X\"*480)], iface=\"enp134s0f0\")\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(src=\"192.168.0.1\", dst=\"192.168.0.2\")/TCP(sport=12, dport=23)/(\"X\"*480)], iface=\"enp134s0f0\")\n+\n+hit pattern but not defined input set::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(src=\"192.168.10.1\", dst=\"192.168.0.2\")/TCP(sport=22, dport=13)/(\"X\"*480)], iface=\"enp134s0f0\")\n+\n+Subcase: MAC_IPV4_GTPU_IPV4_TCP_L3DST_L4DST\n+:::::::::::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 / tcp / end actions rss types ipv4-tcp l3-dst-only l4-dst-only end key_len 0 queues end / end\n+\n+hit pattern and defined input set::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(src=\"192.168.0.1\", dst=\"192.168.10.2\")/TCP(sport=22, dport=23)/(\"X\"*480)], iface=\"enp134s0f0\")\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(src=\"192.168.0.1\", dst=\"192.168.0.2\")/TCP(sport=22, dport=13)/(\"X\"*480)], iface=\"enp134s0f0\")\n+\n+hit pattern but not defined input set::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(src=\"192.168.10.1\", dst=\"192.168.0.2\")/TCP(sport=12, dport=23)/(\"X\"*480)], iface=\"enp134s0f0\")\n+\n+Subcase: MAC_IPV4_GTPU_IPV4_TCP_L4DST\n+:::::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 / tcp / end actions rss types ipv4-tcp l4-dst-only end key_len 0 queues end / end\n+\n+hit pattern and defined input set::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(src=\"192.168.0.1\", dst=\"192.168.0.2\")/TCP(sport=22, dport=13)/(\"X\"*480)], iface=\"enp134s0f0\")\n+\n+hit pattern but not defined input set::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(src=\"192.168.10.1\", dst=\"192.168.10.2\")/TCP(sport=12, dport=23)/(\"X\"*480)], iface=\"enp134s0f0\")\n+\n+Subcase: MAC_IPV4_GTPU_IPV4_TCP_L4SRC\n+:::::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv4 / tcp / end actions rss types ipv4-tcp l4-src-only end key_len 0 queues end / end\n+\n+hit pattern and defined input set::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(src=\"192.168.0.1\", dst=\"192.168.0.2\")/TCP(sport=12, dport=23)/(\"X\"*480)], iface=\"enp134s0f0\")\n+\n+hit pattern but not defined input set::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(src=\"192.168.10.1\", dst=\"192.168.10.2\")/TCP(sport=22, dport=13)/(\"X\"*480)], iface=\"enp134s0f0\")\n+\n+Subcase: MAC_IPV4_GTPU_IPV4_TCP_L3\n+::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 / tcp / end actions rss types ipv4 end key_len 0 queues end / end\n+\n+hit pattern and defined input set::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(src=\"192.168.10.1\", dst=\"192.168.0.2\")/TCP(sport=22, dport=23)/(\"X\"*480)], iface=\"enp134s0f0\")\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(src=\"192.168.0.1\", dst=\"192.168.10.2\")/TCP(sport=22, dport=23)/(\"X\"*480)], iface=\"enp134s0f0\")\n+\n+hit pattern but not defined input set::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(src=\"192.168.0.1\", dst=\"192.168.0.2\")/TCP(sport=12, dport=13)/(\"X\"*480)], iface=\"enp134s0f0\")\n+\n+Subcase: MAC_IPV4_GTPU_IPV4_TCP\n+:::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 / tcp / end actions rss types ipv4-tcp end key_len 0 queues end / end\n+\n+hit pattern and defined input set::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(src=\"192.168.0.1\", dst=\"192.168.0.2\")/TCP(sport=12, dport=23)/(\"X\"*480)], iface=\"enp134s0f0\")\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(src=\"192.168.0.1\", dst=\"192.168.0.2\")/TCP(sport=22, dport=13)/(\"X\"*480)], iface=\"enp134s0f0\")\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(src=\"192.168.10.1\", dst=\"192.168.0.2\")/TCP(sport=22, dport=23)/(\"X\"*480)], iface=\"enp134s0f0\")\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(src=\"192.168.0.1\", dst=\"192.168.10.2\")/TCP(sport=22, dport=23)/(\"X\"*480)], iface=\"enp134s0f0\")\n+\n+\n+\n+Pattern: outer ipv4 + inner ipv6\n+--------------------------------\n+\n+reconfig all the cases of \"Pattern: outer ipv4 + inner ipv4\"\n+\n+ rule:\n+ change inner ipv4 to ipv6, change ipv4-udp to ipv6-udp, change ipv4-tcp to ipv6-tcp.\n+ packets:\n+ change the packet's inner L3 layer from IP to IPv6;\n+ change the ipv4 address to ipv6 address.\n+\n+Pattern: outer ipv6 + inner ipv4\n+--------------------------------\n+\n+reconfig all the cases of \"Pattern: outer ipv4 + inner ipv4\"\n+\n+ rule:\n+ change outer ipv4 to ipv6.\n+ packets:\n+ change the packet's outer L3 layer from::\n+\n+ IP(proto=0x2F)/GRE(proto=0x0800)/IP()\n+\n+ to::\n+\n+ IPv6(nh=0x2F)/GRE(proto=0x86dd)/IPv6()\n+\n+ after Ether layer, before IP layer, just like::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IPv6(nh=0x2F)/GRE(proto=0x86dd)/IPv6()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(dst=\"192.168.0.1\", src=\"192.168.0.2\")/(\"X\"*480)],iface=\"enp134s0f0\")\n+\n+\n+Pattern: outer ipv6 + inner ipv6\n+--------------------------------\n+\n+reconfig all the cases of \"Pattern: outer ipv4 + inner ipv4\"\n+\n+ rule:\n+ change outer ipv4 to ipv6.\n+ change inner ipv4 to ipv6, change ipv4-udp to ipv6-udp, change ipv4-tcp to ipv6-tcp.\n+ packets:\n+ change the packet's inner L3 layer from IP to IPv6;\n+ change the ipv4 address to ipv6 address.\n+ change the packet's outer L3 layer from::\n+\n+ IP(proto=0x2F)/GRE(proto=0x0800)/IP()\n+\n+ to::\n+\n+ IPv6(nh=0x2F)/GRE(proto=0x86dd)/IPv6()\n+\n+ after Ether layer, before IP layer, just like::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IPv6(nh=0x2F)/GRE(proto=0x86dd)/IPv6()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IPv6(src=\"ABAB:910B:6666:3457:8295:3333:1800:2929\",dst=\"CDCD:910A:2222:5498:8475:1111:3900:2020\")/(\"X\"*480)],iface=\"enp134s0f0\")\n+\n+\n+symmetric cases\n+===============\n+\n+all the test cases run the same test steps as below:\n+\n+1. validate rule.\n+2. create rule and list rule.\n+3. send a basic hit pattern packet,record the hash value.\n+4. send a hit pattern packet with switched value of input set in the rule.\n+ check the received packets have same hash value.\n+ check both the packets are distributed to queues by rss.\n+5. destroy the rule and list rule.\n+6. send the packet in step 4.\n+ check the received packet has different hash value with which in step 3(including the case has no hash value).\n+\n+Pattern: symmetric outer ipv4 + inner ipv4\n+------------------------------------------\n+\n+Test case: symmetric MAC_IPV4_GTPU_EH_IPV4 with UL/DL\n+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\n+Subcase: symmetric MAC_IPV4_GTPU_EH_DL_IPV4\n+:::::::::::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv4 / end actions rss func symmetric_toeplitz types ipv4 end key_len 0 queues end / end\n+\n+hit pattern/defined input set:\n+MAC_IPV4_GTPU_EH_DL_IPV4 nonfrag::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(src=\"192.168.0.1\",dst=\"192.168.0.2\")/(\"X\"*480)], iface=\"enp134s0f0\")\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(src=\"192.168.0.2\",dst=\"192.168.0.1\")/(\"X\"*480)], iface=\"enp134s0f0\")\n+\n+MAC_IPV4_GTPU_EH_DL_IPV4 frag::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(src=\"192.168.0.3\",dst=\"192.168.0.8\",frag=6)/(\"X\"*480)], iface=\"enp134s0f0\")\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(src=\"192.168.0.8\",dst=\"192.168.0.3\",frag=6)/(\"X\"*480)], iface=\"enp134s0f0\")\n+\n+MAC_IPV4_GTPU_EH_DL_IPV4_ICMP::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(src=\"192.168.0.10\",dst=\"192.168.0.20\")/ICMP()/(\"X\"*480)], iface=\"enp134s0f0\")\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(src=\"192.168.0.20\",dst=\"192.168.0.10\")/ICMP()/(\"X\"*480)], iface=\"enp134s0f0\")\n+\n+MAC_IPV4_GTPU_EH_DL_IPV4_UDP::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(src=\"192.168.0.10\",dst=\"192.168.0.20\")/UDP()/(\"X\"*480)], iface=\"enp134s0f0\")\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(src=\"192.168.0.20\",dst=\"192.168.0.10\")/UDP()/(\"X\"*480)], iface=\"enp134s0f0\")\n+\n+\n+Subcase: symmetric MAC_IPV4_GTPU_EH_UL_IPV4\n+:::::::::::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 / end actions rss func symmetric_toeplitz types ipv4 end key_len 0 queues end / end\n+\n+packets: change the pdu_type value(0->1/1->0) of packets of Subcase symmetric MAC_IPV4_GTPU_EH_DL_IPV4.\n+\n+\n+Test case: symmetric MAC_IPV4_GTPU_EH_IPV4_UDP with UL/DL\n+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\n+Subcase: symmetric MAC_IPV4_GTPU_EH_DL_IPV4_UDP\n+:::::::::::::::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv4 / udp / end actions rss func symmetric_toeplitz types ipv4-udp end key_len 0 queues end / end\n+\n+hit pattern/defined input set::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(src=\"192.168.0.1\", dst=\"192.168.0.2\")/UDP(sport=22,dport=23)/(\"X\"*480)], iface=\"enp134s0f0\")\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(src=\"192.168.0.2\", dst=\"192.168.0.1\")/UDP(sport=22,dport=23)/(\"X\"*480)], iface=\"enp134s0f0\")\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(src=\"192.168.0.1\", dst=\"192.168.0.2\")/UDP(sport=23,dport=22)/(\"X\"*480)], iface=\"enp134s0f0\")\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(src=\"192.168.0.2\", dst=\"192.168.0.1\")/UDP(sport=23,dport=22)/(\"X\"*480)], iface=\"enp134s0f0\")\n+\n+\n+Subcase: symmetric MAC_IPV4_GTPU_EH_UL_IPV4_UDP\n+:::::::::::::::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 / udp / end actions rss func symmetric_toeplitz types ipv4-udp end key_len 0 queues end / end\n+\n+packets: change the pdu_type value(0->1/1->0) of packets of Subcase symmetric MAC_IPV4_GTPU_EH_DL_IPV4.\n+\n+\n+Test case: symmetric MAC_IPV4_GTPU_EH_IPV4_TCP with UL/DL\n+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\n+the rules and packets in this test case is similar to \"Test case: symmetric MAC_IPV4_GTPU_EH_IPV4_UDP with UL/DL\"\n+just change some parts of rules and packets::\n+\n+ rule:\n+ change inner udp to tcp, change ipv4-udp to ipv4-tcp\n+ packets:\n+ change the packet's inner L4 layer UDP to TCP\n+\n+Subcase: symmetric MAC_IPV4_GTPU_EH_DL_IPV4_TCP\n+:::::::::::::::::::::::::::::::::::::::::::::::\n+\n+Subcase: symmetric MAC_IPV4_GTPU_EH_UL_IPV4_TCP\n+:::::::::::::::::::::::::::::::::::::::::::::::\n+\n+Test case: symmetric MAC_IPV4_GTPU_EH_IPV4 without UL/DL\n+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv6 / udp / gtpu / gtp_psc / ipv4 / end actions rss func symmetric_toeplitz types ipv4 end key_len 0 queues end / end\n+\n+hit pattern/defined input set::\n+MAC_IPV4_GTPU_EH_DL_IPV4 nonfrag::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(src=\"192.168.0.1\",dst=\"192.168.0.2\")/(\"X\"*480)], iface=\"enp134s0f0\")\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(src=\"192.168.0.2\",dst=\"192.168.0.1\")/(\"X\"*480)], iface=\"enp134s0f0\")\n+\n+MAC_IPV4_GTPU_EH_DL_IPV4 frag::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(src=\"192.168.0.3\",dst=\"192.168.0.8\",frag=6)/(\"X\"*480)], iface=\"enp134s0f0\")\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(src=\"192.168.0.8\",dst=\"192.168.0.3\",frag=6)/(\"X\"*480)], iface=\"enp134s0f0\")\n+\n+MAC_IPV4_GTPU_EH_DL_IPV4_ICMP::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(src=\"192.168.0.10\",dst=\"192.168.0.20\")/ICMP()/(\"X\"*480)], iface=\"enp134s0f0\")\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(src=\"192.168.0.20\",dst=\"192.168.0.10\")/ICMP()/(\"X\"*480)], iface=\"enp134s0f0\")\n+\n+MAC_IPV4_GTPU_EH_DL_IPV4_UDP::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(src=\"192.168.0.10\",dst=\"192.168.0.20\")/UDP()/(\"X\"*480)], iface=\"enp134s0f0\")\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(src=\"192.168.0.20\",dst=\"192.168.0.10\")/UDP()/(\"X\"*480)], iface=\"enp134s0f0\")\n+\n+\n+Test case: symmetric MAC_IPV4_GTPU_EH_IPV4_UDP without UL/DL\n+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv4 / udp / end actions rss func symmetric_toeplitz types ipv4-udp end key_len 0 queues end / end\n+\n+hit pattern/defined input set::\n+MAC_IPV4_GTPU_EH_DL_IPV4_UDP::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(src=\"192.168.0.1\", dst=\"192.168.0.2\")/UDP(sport=22,dport=23)/(\"X\"*480)], iface=\"enp134s0f0\")\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(src=\"192.168.0.2\", dst=\"192.168.0.1\")/UDP(sport=22,dport=23)/(\"X\"*480)], iface=\"enp134s0f0\")\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(src=\"192.168.0.1\", dst=\"192.168.0.2\")/UDP(sport=23,dport=22)/(\"X\"*480)], iface=\"enp134s0f0\")\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(src=\"192.168.0.2\", dst=\"192.168.0.1\")/UDP(sport=23,dport=22)/(\"X\"*480)], iface=\"enp134s0f0\")\n+\n+MAC_IPV4_GTPU_EH_UL_IPV4_UDP::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(src=\"192.168.0.1\", dst=\"192.168.0.2\")/UDP(sport=22,dport=23)/(\"X\"*480)], iface=\"enp134s0f0\")\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(src=\"192.168.0.2\", dst=\"192.168.0.1\")/UDP(sport=22,dport=23)/(\"X\"*480)], iface=\"enp134s0f0\")\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(src=\"192.168.0.1\", dst=\"192.168.0.2\")/UDP(sport=23,dport=22)/(\"X\"*480)], iface=\"enp134s0f0\")\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(src=\"192.168.0.2\", dst=\"192.168.0.1\")/UDP(sport=23,dport=22)/(\"X\"*480)], iface=\"enp134s0f0\")\n+\n+\n+Test case: symmetric MAC_IPV4_GTPU_EH_IPV4_TCP without UL/DL\n+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\n+the rules and packets in this test case is similar to \"Test case: symmetric MAC_IPV4_GTPU_EH_IPV4_UDP without UL/DL\"\n+just change some parts of rules and packets::\n+\n+ rule:\n+ change inner udp to tcp, change ipv4-udp to ipv4-tcp\n+ packets:\n+ change the packet's inner L4 layer UDP to TCP\n+\n+\n+Test case: symmetric MAC_IPV4_GTPU_IPV4\n+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 / end actions rss func symmetric_toeplitz types ipv4 end key_len 0 queues end / end\n+\n+hit pattern/defined input set::\n+MAC_IPV4_GTPU_IPV4 nonfrag::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(src=\"192.168.0.1\",dst=\"192.168.0.2\")/(\"X\"*480)], iface=\"enp134s0f0\")\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(src=\"192.168.0.2\",dst=\"192.168.0.1\")/(\"X\"*480)], iface=\"enp134s0f0\")\n+\n+MAC_IPV4_GTPU_IPV4 frag::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(src=\"192.168.0.3\",dst=\"192.168.0.8\",frag=6)/(\"X\"*480)], iface=\"enp134s0f0\")\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(src=\"192.168.0.8\",dst=\"192.168.0.3\",frag=6)/(\"X\"*480)], iface=\"enp134s0f0\")\n+\n+MAC_IPV4_GTPU_IPV4_ICMP::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(src=\"192.168.0.10\",dst=\"192.168.0.20\")/ICMP()/(\"X\"*480)], iface=\"enp134s0f0\")\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(src=\"192.168.0.20\",dst=\"192.168.0.10\")/ICMP()/(\"X\"*480)], iface=\"enp134s0f0\")\n+\n+MAC_IPV4_GTPU_IPV4_UDP::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(src=\"192.168.0.10\",dst=\"192.168.0.20\")/UDP()/(\"X\"*480)], iface=\"enp134s0f0\")\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(src=\"192.168.0.20\",dst=\"192.168.0.10\")/UDP()/(\"X\"*480)], iface=\"enp134s0f0\")\n+\n+Test case: symmetric MAC_IPV4_GTPU_IPV4_UDP\n+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 / udp / end actions rss func symmetric_toeplitz types ipv4-udp end key_len 0 queues end / end\n+\n+hit pattern/defined input set::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(src=\"192.168.0.1\", dst=\"192.168.0.2\")/UDP(sport=22,dport=23)/(\"X\"*480)], iface=\"enp134s0f0\")\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(src=\"192.168.0.2\", dst=\"192.168.0.1\")/UDP(sport=22,dport=23)/(\"X\"*480)], iface=\"enp134s0f0\")\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(src=\"192.168.0.1\", dst=\"192.168.0.2\")/UDP(sport=23,dport=22)/(\"X\"*480)], iface=\"enp134s0f0\")\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(src=\"192.168.0.2\", dst=\"192.168.0.1\")/UDP(sport=23,dport=22)/(\"X\"*480)], iface=\"enp134s0f0\")\n+\n+\n+Test case: symmetric MAC_IPV4_GTPU_IPV4_TCP\n+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\n+the rules and packets in this test case is similar to \"Test case: symmetric MAC_IPV4_GTPU_IPV4_UDP\"\n+just change some parts of rules and packets::\n+\n+ rule:\n+ change inner udp to tcp, change ipv4-udp to ipv4-tcp\n+ packets:\n+ change the packet's inner L4 layer UDP to TCP\n+\n+\n+\n+Pattern: symmetric outer ipv4 + inner ipv6\n+------------------------------------------\n+\n+reconfig all the cases of \"Pattern: symmetric outer ipv4 + inner ipv4\"\n+\n+ rule:\n+ change inner ipv4 to ipv6, change ipv4-udp to ipv6-udp, change ipv4-tcp to ipv6-tcp.\n+ packets:\n+ change the packet's inner L3 layer from IP to IPv6;\n+ change the ipv4 address to ipv6 address.\n+\n+\n+Pattern: symmetric outer ipv6 + inner ipv4\n+------------------------------------------\n+\n+reconfig all the cases of \"Pattern: symmetric outer ipv4 + inner ipv4\"\n+\n+ rule:\n+ change outer ipv4 to ipv6.\n+ packets:\n+ change the packet's outer L3 layer from::\n+\n+ IP(proto=0x2F)/GRE(proto=0x0800)/IP()\n+\n+ to::\n+\n+ IPv6(nh=0x2F)/GRE(proto=0x86dd)/IPv6()\n+\n+ after Ether layer, before IP layer, just like::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IPv6(nh=0x2F)/GRE(proto=0x86dd)/IPv6()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(dst=\"192.168.0.1\", src=\"192.168.0.2\")/(\"X\"*480)],iface=\"enp134s0f0\")\n+\n+\n+Pattern: symmetric outer ipv6 + inner ipv6\n+------------------------------------------\n+\n+reconfig all the cases of \"Pattern: symmetric outer ipv4 + inner ipv4\"\n+\n+ rule:\n+ change outer ipv4 to ipv6.\n+ change inner ipv4 to ipv6, change ipv4-udp to ipv6-udp, change ipv4-tcp to ipv6-tcp.\n+ packets:\n+ change the packet's inner L3 layer from IP to IPv6;\n+ change the ipv4 address to ipv6 address.\n+ change the packet's outer L3 layer from::\n+\n+ IP(proto=0x2F)/GRE(proto=0x0800)/IP()\n+\n+ to::\n+\n+ IPv6(nh=0x2F)/GRE(proto=0x86dd)/IPv6()\n+\n+ after Ether layer, before IP layer, just like::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IPv6(nh=0x2F)/GRE(proto=0x86dd)/IPv6()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IPv6(src=\"ABAB:910B:6666:3457:8295:3333:1800:2929\",dst=\"CDCD:910A:2222:5498:8475:1111:3900:2020\")/(\"X\"*480)],iface=\"enp134s0f0\")\n+\n+\n+inner L4 protocol hash case\n+===========================\n+Subcase: MAC_IPV4_GTPU_IPV4_UDP/TCP\n+-----------------------------------\n+1. create rules::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 / udp / end actions rss types ipv4-udp end key_len 0 queues end / end\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 / tcp / end actions rss types ipv4-tcp end key_len 0 queues end / end\n+\n+2. send packets::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(dst=\"192.168.0.1\",src=\"192.168.0.2\")/TCP(sport=22,dport=23)/(\"X\"*480)],iface=\"enp134s0f0\")\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(dst=\"192.168.0.1\",src=\"192.168.0.2\")/UDP(sport=22,dport=23)/(\"X\"*480)],iface=\"enp134s0f0\")\n+\n+3. check the two packets received with different hash values, and distributed to queue by RSS.\n+\n+4. flush the rules, send the two packets again, check they are distributed to the same queue::\n+\n+ testpmd> flow flush 0\n+\n+Subcase: MAC_IPV6_GTPU_IPV4_UDP/TCP\n+-----------------------------------\n+1. create rules::\n+\n+ flow create 0 ingress pattern eth / ipv6 / udp / gtpu / ipv4 / udp / end actions rss types ipv4-udp end key_len 0 queues end / end\n+ flow create 0 ingress pattern eth / ipv6 / udp / gtpu / ipv4 / tcp / end actions rss types ipv4-tcp end key_len 0 queues end / end\n+\n+2. send packets::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IPv6(nh=0x2F)/GRE(proto=0x86dd)/IPv6()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(dst=\"192.168.0.1\",src=\"192.168.0.2\")/TCP(sport=22,dport=23)/(\"X\"*480)],iface=\"enp134s0f0\")\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IPv6(nh=0x2F)/GRE(proto=0x86dd)/IPv6()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(dst=\"192.168.0.1\",src=\"192.168.0.2\")/UDP(sport=22,dport=23)/(\"X\"*480)],iface=\"enp134s0f0\")\n+\n+3. check the two packets received with different hash values, and distributed to queue by RSS.\n+\n+4. flush the rules, send the two packets again, check they are distributed to the same queue::\n+\n+ testpmd> flow flush 0\n+\n+Subcase: MAC_IPV4_GTPU_IPV6_UDP/TCP\n+-----------------------------------\n+1. create rules::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv6 / udp / end actions rss types ipv6-udp end key_len 0 queues end / end\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv6 / tcp / end actions rss types ipv6-tcp end key_len 0 queues end / end\n+\n+2. send packets::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IPv6(dst=\"1111:2222:3333:4444:5555:6666:7777:8888\",src=\"2222:3333:4444:5555:6666:7777:8888:9999\")/TCP(sport=22,dport=23)/(\"X\"*480)],iface=\"enp134s0f0\")\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IPv6(dst=\"1111:2222:3333:4444:5555:6666:7777:8888\",src=\"2222:3333:4444:5555:6666:7777:8888:9999\")/UDP(sport=22,dport=23)/(\"X\"*480)],iface=\"enp134s0f0\")\n+\n+3. check the two packets received with different hash values, and distributed to queue by RSS.\n+\n+4. flush the rules, send the two packets again, check they are distributed to the same queue::\n+\n+ testpmd> flow flush 0\n+\n+Subcase: MAC_IPV6_GTPU_IPV6_UDP/TCP\n+-----------------------------------\n+1. create rules::\n+\n+ flow create 0 ingress pattern eth / ipv6 / udp / gtpu / ipv6 / udp / end actions rss types ipv6-udp end key_len 0 queues end / end\n+ flow create 0 ingress pattern eth / ipv6 / udp / gtpu / ipv6 / tcp / end actions rss types ipv6-tcp end key_len 0 queues end / end\n+\n+2. send packets::\n+\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IPv6(nh=0x2F)/GRE(proto=0x86dd)/IPv6()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IPv6(dst=\"1111:2222:3333:4444:5555:6666:7777:8888\",src=\"2222:3333:4444:5555:6666:7777:8888:9999\")/TCP(sport=22,dport=23)/(\"X\"*480)],iface=\"enp134s0f0\")\n+ sendp([Ether(dst=\"00:11:22:33:44:55\")/IPv6(nh=0x2F)/GRE(proto=0x86dd)/IPv6()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IPv6(dst=\"1111:2222:3333:4444:5555:6666:7777:8888\",src=\"2222:3333:4444:5555:6666:7777:8888:9999\")/UDP(sport=22,dport=23)/(\"X\"*480)],iface=\"enp134s0f0\")\n+\n+3. check the two packets received with different hash values, and distributed to queue by RSS.\n+\n+4. flush the rules, send the two packets again, check they are distributed to the same queue::\n+\n+ testpmd> flow flush 0\n+\n+parse PFCP over GRE packet\n+==========================\n+Send packet::\n+\n+ sendp(Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(sport=22, dport=8805)/PFCP(Sfield=0),iface=\"enp216s0f0\")\n+ sendp(Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(sport=22, dport=8805)/PFCP(Sfield=1, SEID=123),iface=\"enp216s0f0\")\n+ sendp(Ether(dst=\"00:11:22:33:44:55\")/IPv6(nh=0x2F)/GRE(proto=0x86dd)/IPv6()/UDP(sport=22, dport=8805)/PFCP(Sfield=0),iface=\"enp216s0f0\")\n+ sendp(Ether(dst=\"00:11:22:33:44:55\")/IPv6(nh=0x2F)/GRE(proto=0x86dd)/IPv6()/UDP(sport=22, dport=8805)/PFCP(Sfield=1, SEID=256),iface=\"enp216s0f0\")\n+\n+It can be parsed as MAC_IPV4_PFCP_NODE::\n+\n+ ptype: 351\n+ port 0/queue 0: received 1 packets\n+ src=00:00:00:00:00:00 - dst=00:11:22:33:44:55 - type=0x0800 - length=82 - nb_segs=1 - sw ptype: L2_ETHER L3_IPV4 TUNNEL_GRE INNER_L3_IPV4 INNER_L4_UDP - l2_len=14 - l3_len=20 - tunnel_len=4 - inner_l3_len=20 - inner_l4_len=8 - Receive queue=0x0\n+ ol_flags: PKT_RX_L4_CKSUM_UNKNOWN PKT_RX_IP_CKSUM_UNKNOWN PKT_RX_OUTER_L4_CKSUM_UNKNOWN\n+\n+Send packet::\n+\n+ sendp(Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(sport=22, dport=8805)/PFCP(Sfield=1, SEID=123),iface=\"enp216s0f0\")\n+\n+It can be parsed as MAC_IPV4_PFCP_SESSION::\n+\n+ ptype: 352\n+ port 0/queue 0: received 1 packets\n+ src=00:00:00:00:00:00 - dst=00:11:22:33:44:55 - type=0x0800 - length=82 - nb_segs=1 - sw ptype: L2_ETHER L3_IPV4 TUNNEL_GRE INNER_L3_IPV4 INNER_L4_UDP - l2_len=14 - l3_len=20 - tunnel_len=4 - inner_l3_len=20 - inner_l4_len=8 - Receive queue=0x0\n+ ol_flags: PKT_RX_L4_CKSUM_UNKNOWN PKT_RX_IP_CKSUM_UNKNOWN PKT_RX_OUTER_L4_CKSUM_UNKNOWN\n+\n+Send packet::\n+\n+ sendp(Ether(dst=\"00:11:22:33:44:55\")/IPv6(nh=0x2F)/GRE(proto=0x86dd)/IPv6()/UDP(sport=22, dport=8805)/PFCP(Sfield=0),iface=\"enp216s0f0\")\n+\n+It can be parsed as MAC_IPV6_PFCP_NODE::\n+\n+ ptype: 353\n+ port 0/queue 0: received 1 packets\n+ src=00:00:00:00:00:00 - dst=00:11:22:33:44:55 - type=0x86dd - length=122 - nb_segs=1 - sw ptype: L2_ETHER L3_IPV6 TUNNEL_GRE INNER_L3_IPV6 INNER_L4_UDP - l2_len=14 - l3_len=40 - tunnel_len=4 - inner_l3_len=40 - inner_l4_len=8 - Receive queue=0x0\n+ ol_flags: PKT_RX_L4_CKSUM_UNKNOWN PKT_RX_IP_CKSUM_UNKNOWN PKT_RX_OUTER_L4_CKSUM_UNKNOWN\n+\n+Send packet::\n+\n+ sendp(Ether(dst=\"00:11:22:33:44:55\")/IPv6(nh=0x2F)/GRE(proto=0x86dd)/IPv6()/UDP(sport=22, dport=8805)/PFCP(Sfield=1, SEID=256),iface=\"enp216s0f0\")\n+\n+It can be parsed as MAC_IPV6_PFCP_SESSION::\n+\n+ ptype: 354\n+ port 0/queue 0: received 1 packets\n+ src=00:00:00:00:00:00 - dst=00:11:22:33:44:55 - type=0x86dd - length=122 - nb_segs=1 - sw ptype: L2_ETHER L3_IPV6 TUNNEL_GRE INNER_L3_IPV6 INNER_L4_UDP - l2_len=14 - l3_len=40 - tunnel_len=4 - inner_l3_len=40 - inner_l4_len=8 - Receive queue=0x0\n+ ol_flags: PKT_RX_L4_CKSUM_UNKNOWN PKT_RX_IP_CKSUM_UNKNOWN PKT_RX_OUTER_L4_CKSUM_UNKNOWN\ndiff --git a/test_plans/cvl_advanced_rss_gtpogre_test_plan.rst b/test_plans/cvl_advanced_rss_gtpogre_test_plan.rst\nnew file mode 100644\nindex 00000000..30977694\n--- /dev/null\n+++ b/test_plans/cvl_advanced_rss_gtpogre_test_plan.rst\n@@ -0,0 +1,1861 @@\n+.. Copyright (c) <2021>, Intel Corporation\n+ All rights reserved.\n+\n+ Redistribution and use in source and binary forms, with or without\n+ modification, are permitted provided that the following conditions\n+ are met:\n+\n+ - Redistributions of source code must retain the above copyright\n+ notice, this list of conditions and the following disclaimer.\n+\n+ - Redistributions in binary form must reproduce the above copyright\n+ notice, this list of conditions and the following disclaimer in\n+ the documentation and/or other materials provided with the\n+ distribution.\n+\n+ - Neither the name of Intel Corporation nor the names of its\n+ contributors may be used to endorse or promote products derived\n+ from this software without specific prior written permission.\n+\n+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n+ \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS\n+ FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE\n+ COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,\n+ INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n+ (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\n+ SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\n+ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,\n+ STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED\n+ OF THE POSSIBILITY OF SUCH DAMAGE.\n+\n+=============================\n+CVL: Advanced RSS FOR GTPoGRE\n+=============================\n+\n+Description\n+===========\n+GTP over GRE feature enhances packet core performance in 4G LTE and 5G networks.\n+In GTP over GRE market segment package the parse graph is expanded to look for\n+a GTP or PFCP header after parsing a GRE header. GTP over GRE packets contain\n+two tunnel protocols.\n+The next header after the GRE header may be IPv4 or IPv6. If an IPv6 header\n+is present, extension headers may be present. Then unlike in other types of\n+packages in case of finding UDP header parser does not assume UDP_LAST protocol\n+after GRE tunnel, but looks for GTP or PFCP headers. In case of finding those\n+headers the GRE header and the next IP header found in the packet after the\n+GRE header shall not be reported. Parser reports one of the already existing\n+GTP or PFCP ptypes.\n+\n+Pattern and input set\n+---------------------\n+.. table::\n+\n+ +-------------------------------+---------------------------+----------------------------------------------------------------------------------+\n+ | Hash function: toeplitz |\n+ +-------------------------------+---------------------------+----------------------------------------------------------------------------------+\n+ | Packet Type | Pattern | All the Input Set options in combination |\n+ +===============================+===========================+==================================================================================+\n+ | GTP-U data packet types | MAC_IPV4_GTPU_IPV4 | gtpu, ipv4, l3-src-only, l3-dst-only |\n+ | IPv4/IPv6 transport | | |\n+ | IPv4/IPv6 payload | | |\n+ +-------------------------------+---------------------------+----------------------------------------------------------------------------------+\n+ | | MAC_IPV4_GTPU_IPV4_UDP | gtpu, ipv4-udp, l3-src-only, l3-dst-only, l4-src-only, l4-dst-only, ipv4 |\n+ +-------------------------------+---------------------------+----------------------------------------------------------------------------------+\n+ | | MAC_IPV4_GTPU_IPV4_TCP | gtpu, ipv4-tcp, l3-src-only, l3-dst-only, l4-src-only, l4-dst-only, ipv4 |\n+ +-------------------------------+---------------------------+----------------------------------------------------------------------------------+\n+ | | MAC_IPV4_GTPU_IPV6 | gtpu, ipv6, l3-src-only, l3-dst-only |\n+ +-------------------------------+---------------------------+----------------------------------------------------------------------------------+\n+ | | MAC_IPV4_GTPU_IPV6_UDP | gtpu, ipv6-udp, l3-src-only, l3-dst-only, l4-src-only, l4-dst-only, ipv6 |\n+ +-------------------------------+---------------------------+----------------------------------------------------------------------------------+\n+ | | MAC_IPV4_GTPU_IPV6_TCP | gtpu, ipv6-tcp, l3-src-only, l3-dst-only, l4-src-only, l4-dst-only, ipv6 |\n+ +-------------------------------+---------------------------+----------------------------------------------------------------------------------+\n+ | | MAC_IPV6_GTPU_IPV4 | gtpu, ipv4, l3-src-only, l3-dst-only |\n+ +-------------------------------+---------------------------+----------------------------------------------------------------------------------+\n+ | | MAC_IPV6_GTPU_IPV4_UDP | gtpu, ipv4-udp, l3-src-only, l3-dst-only, l4-src-only, l4-dst-only, ipv4 |\n+ +-------------------------------+---------------------------+----------------------------------------------------------------------------------+\n+ | | MAC_IPV6_GTPU_IPV4_TCP | gtpu, ipv4-tcp, l3-src-only, l3-dst-only, l4-src-only, l4-dst-only, ipv4 |\n+ +-------------------------------+---------------------------+----------------------------------------------------------------------------------+\n+ | | MAC_IPV6_GTPU_IPV6 | gtpu, ipv6, l3-src-only, l3-dst-only |\n+ +-------------------------------+---------------------------+----------------------------------------------------------------------------------+\n+ | | MAC_IPV6_GTPU_IPV6_UDP | gtpu, ipv6-udp, l3-src-only, l3-dst-only, l4-src-only, l4-dst-only, ipv6 |\n+ +-------------------------------+---------------------------+----------------------------------------------------------------------------------+\n+ | | MAC_IPV6_GTPU_IPV6_TCP | gtpu, ipv6-tcp, l3-src-only, l3-dst-only, l4-src-only, l4-dst-only, ipv6 |\n+ +-------------------------------+---------------------------+----------------------------------------------------------------------------------+\n+ | | MAC_IPV4_GTPU_EH_IPV4 | gtpu, ipv4, l3-src-only, l3-dst-only |\n+ +-------------------------------+---------------------------+----------------------------------------------------------------------------------+\n+ | | MAC_IPV4_GTPU_EH_IPV4_UDP | gtpu, ipv4-udp, l3-src-only, l3-dst-only, l4-src-only, l4-dst-only, ipv4 |\n+ +-------------------------------+---------------------------+----------------------------------------------------------------------------------+\n+ | | MAC_IPV4_GTPU_EH_IPV4_TCP | gtpu, ipv4-tcp, l3-src-only, l3-dst-only, l4-src-only, l4-dst-only, ipv4 |\n+ +-------------------------------+---------------------------+----------------------------------------------------------------------------------+\n+ | | MAC_IPV4_GTPU_EH_IPV6 | gtpu, ipv6, l3-src-only, l3-dst-only |\n+ +-------------------------------+---------------------------+----------------------------------------------------------------------------------+\n+ | | MAC_IPV4_GTPU_EH_IPV6_UDP | gtpu, ipv6-udp, l3-src-only, l3-dst-only, l4-src-only, l4-dst-only, ipv6 |\n+ +-------------------------------+---------------------------+----------------------------------------------------------------------------------+\n+ | | MAC_IPV4_GTPU_EH_IPV6_TCP | gtpu, ipv6-tcp, l3-src-only, l3-dst-only, l4-src-only, l4-dst-only, ipv6 |\n+ +-------------------------------+---------------------------+----------------------------------------------------------------------------------+\n+ | | MAC_IPV6_GTPU_EH_IPV4 | gtpu, ipv4, l3-src-only, l3-dst-only |\n+ +-------------------------------+---------------------------+----------------------------------------------------------------------------------+\n+ | | MAC_IPV6_GTPU_EH_IPV4_UDP | gtpu, ipv4-udp, l3-src-only, l3-dst-only, l4-src-only, l4-dst-only, ipv4 |\n+ +-------------------------------+---------------------------+----------------------------------------------------------------------------------+\n+ | | MAC_IPV6_GTPU_EH_IPV4_TCP | gtpu, ipv4-tcp, l3-src-only, l3-dst-only, l4-src-only, l4-dst-only, ipv4 |\n+ +-------------------------------+---------------------------+----------------------------------------------------------------------------------+\n+ | | MAC_IPV6_GTPU_EH_IPV6 | gtpu, ipv6, l3-src-only, l3-dst-only |\n+ +-------------------------------+---------------------------+----------------------------------------------------------------------------------+\n+ | | MAC_IPV6_GTPU_EH_IPV6_UDP | gtpu, ipv6-udp, l3-src-only, l3-dst-only, l4-src-only, l4-dst-only, ipv6 |\n+ +-------------------------------+---------------------------+----------------------------------------------------------------------------------+\n+ | | MAC_IPV6_GTPU_EH_IPV6_TCP | gtpu, ipv6-tcp, l3-src-only, l3-dst-only, l4-src-only, l4-dst-only, ipv6 |\n+ +-------------------------------+---------------------------+----------------------------------------------------------------------------------+\n+\n+.. table::\n+\n+ +-------------------------------+---------------------------+-------------------+\n+ | Hash function: Symmetric_toeplitz |\n+ +-------------------------------+---------------------------+-------------------+\n+ | Packet Type | Pattern | Input Set |\n+ +===============================+===========================+===================+\n+ | GTP-U data packet types | MAC_IPV4_GTPU_IPV4 | ipv4 |\n+ | IPv4/IPv6 transport | | |\n+ | IPv4/IPv6 payload | | |\n+ +-------------------------------+---------------------------+-------------------+\n+ | | MAC_IPV4_GTPU_IPV4_UDP | ipv4-udp |\n+ +-------------------------------+---------------------------+-------------------+\n+ | | MAC_IPV4_GTPU_IPV4_TCP | ipv4-tcp |\n+ +-------------------------------+---------------------------+-------------------+\n+ | | MAC_IPV4_GTPU_IPV6 | ipv6 |\n+ +-------------------------------+---------------------------+-------------------+\n+ | | MAC_IPV4_GTPU_IPV6_UDP | ipv6-udp |\n+ +-------------------------------+---------------------------+-------------------+\n+ | | MAC_IPV4_GTPU_IPV6_TCP | ipv6-tcp |\n+ +-------------------------------+---------------------------+-------------------+\n+ | | MAC_IPV6_GTPU_IPV4 | ipv4 |\n+ +-------------------------------+---------------------------+-------------------+\n+ | | MAC_IPV6_GTPU_IPV4_UDP | ipv4-udp |\n+ +-------------------------------+---------------------------+-------------------+\n+ | | MAC_IPV6_GTPU_IPV4_TCP | ipv4-tcp |\n+ +-------------------------------+---------------------------+-------------------+\n+ | | MAC_IPV6_GTPU_IPV6 | ipv6 |\n+ +-------------------------------+---------------------------+-------------------+\n+ | | MAC_IPV6_GTPU_IPV6_UDP | ipv6-udp |\n+ +-------------------------------+---------------------------+-------------------+\n+ | | MAC_IPV6_GTPU_IPV6_TCP | ipv6-tcp |\n+ +-------------------------------+---------------------------+-------------------+\n+ | | MAC_IPV4_GTPU_EH_IPV4 | ipv4 |\n+ +-------------------------------+---------------------------+-------------------+\n+ | | MAC_IPV4_GTPU_EH_IPV4_UDP | ipv4-udp |\n+ +-------------------------------+---------------------------+-------------------+\n+ | | MAC_IPV4_GTPU_EH_IPV4_TCP | ipv4-tcp |\n+ +-------------------------------+---------------------------+-------------------+\n+ | | MAC_IPV4_GTPU_EH_IPV6 | ipv6 |\n+ +-------------------------------+---------------------------+-------------------+\n+ | | MAC_IPV4_GTPU_EH_IPV6_UDP | ipv6-udp |\n+ +-------------------------------+---------------------------+-------------------+\n+ | | MAC_IPV4_GTPU_EH_IPV6_TCP | ipv6-tcp |\n+ +-------------------------------+---------------------------+-------------------+\n+ | | MAC_IPV6_GTPU_EH_IPV4 | ipv4 |\n+ +-------------------------------+---------------------------+-------------------+\n+ | | MAC_IPV6_GTPU_EH_IPV4_UDP | ipv4-udp |\n+ +-------------------------------+---------------------------+-------------------+\n+ | | MAC_IPV6_GTPU_EH_IPV4_TCP | ipv4-tcp |\n+ +-------------------------------+---------------------------+-------------------+\n+ | | MAC_IPV6_GTPU_EH_IPV6 | ipv6 |\n+ +-------------------------------+---------------------------+-------------------+\n+ | | MAC_IPV6_GTPU_EH_IPV6_UDP | ipv6-udp |\n+ +-------------------------------+---------------------------+-------------------+\n+ | | MAC_IPV6_GTPU_EH_IPV6_TCP | ipv6-tcp |\n+ +-------------------------------+---------------------------+-------------------+\n+\n+.. note::\n+\n+ The ptype of GTPoGRE is parsed the same as GTP packet,\n+ so they match gtpu RSS rule.\n+\n+Prerequisites\n+=============\n+\n+1. Hardware:\n+\n+ - Intel E810 series ethernet cards: columbiaville_25g/columbiaville_100g/\n+\n+2. Software:\n+\n+ - dpdk: http://dpdk.org/git/dpdk\n+ - scapy: http://www.secdev.org/projects/scapy/\n+\n+.. note::\n+\n+ This rss feature designed for CVL NIC 25G and 100g, so below the case only support CVL nic.\n+\n+3. Copy gtpogre pkg to /lib/firmware/updates/intel/ice/ddp/ice.pkg\n+ Then reload ice driver\n+\n+4. bind the CVL port to dpdk driver in DUT::\n+\n+ modprobe vfio-pci\n+ usertools/dpdk-devbind.py --force --bind=vfio-pci 0000:3b:00.0\n+\n+.. note::\n+\n+ The kernel must be >= 3.6+ and VT-d must be enabled in bios.\n+\n+5. Launch the testpmd to configuration queue of rx and tx number 64 in DUT::\n+\n+ testpmd>./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -c 0xff -n 4 -- -i --rxq=64 --txq=64 --disable-rss --port-topology=loop\n+ testpmd>set fwd rxonly\n+ testpmd>set verbose 1\n+\n+6. For test case \"parse PFCP over GRE packet\", we need to add print log\n+ in testpmd to show the PFCP ptype, then compile DPDK again::\n+\n+ diff --git a/drivers/net/ice/ice_rxtx.c b/drivers/net/ice/ice_rxtx.c\n+ index 4136d045e..17e588f5f 100644\n+ --- a/drivers/net/ice/ice_rxtx.c\n+ +++ b/drivers/net/ice/ice_rxtx.c\n+ @@ -1573,6 +1573,7 @@ ice_rx_scan_hw_ring(struct ice_rx_queue *rxq)\n+ pkt_flags = ice_rxd_error_to_pkt_flags(stat_err0);\n+ mb->packet_type = ptype_tbl[ICE_RX_FLEX_DESC_PTYPE_M &\n+ rte_le_to_cpu_16(rxdp[j].wb.ptype_flex_flags0)];\n+ + printf(\"ptype: %3d\\n\", ICE_RX_FLEX_DESC_PTYPE_M & rte_le_to_cpu_16(rxdp[j].wb.ptype_flex_flags0));\n+ ice_rxd_to_vlan_tci(mb, &rxdp[j]);\n+ rxq->rxd_to_pkt_fields(rxq, mb, &rxdp[j]);\n+\n+ @@ -3048,6 +3049,7 @@ ice_set_rx_function(struct rte_eth_dev *dev)\n+ PMD_INIT_FUNC_TRACE();\n+ struct ice_adapter *ad =\n+ ICE_DEV_PRIVATE_TO_ADAPTER(dev->data->dev_private);\n+ +#if 0\n+ #ifdef RTE_ARCH_X86\n+ struct ice_rx_queue *rxq;\n+ int i;\n+ @@ -3126,7 +3128,7 @@ ice_set_rx_function(struct rte_eth_dev *dev)\n+ }\n+ return;\n+ }\n+ -\n+ +#endif\n+ #endif\n+\n+7. start scapy and configuration NVGRE and GTP profile in tester\n+ scapy::\n+\n+ >>> import sys\n+ >>> from scapy.contrib.gtp import *\n+\n+toeplitz cases\n+==============\n+all the test cases in the pattern::\n+\n+ outer ipv4 + inner ipv4\n+ outer ipv4 + inner ipv6\n+ outer ipv6 + inner ipv4\n+ outer ipv6 + inner ipv6\n+\n+run the same test steps as below:\n+\n+1. validate rule.\n+2. create rule and list rule.\n+3. send a basic hit pattern packet,record the hash value.\n+ check the packet distributed to queue by rss.\n+4. send hit pattern packets with changed input set in the rule.\n+ check the received packets have different hash value with basic packet.\n+ check all the packets are distributed to queues by rss.\n+5. send hit pattern packets with changed input set not in the rule.\n+ check the received packet have same hash value with the basic packet.\n+ check all the packets are distributed to queues by rss.\n+ note: if there is not this type packet in the case, omit this step.\n+6. send not hit pattern packets with input set in the rule.\n+ check the received packets have not hash value, and distributed to queue 0.\n+ note: if there is not this type packet in the case, omit this step.\n+7. distroy the rule and list rule.\n+8. send same packets with step 3.\n+ check the received packets have not hash value, and distributed to queue 0,\n+\n+Pattern: outer ipv4 + inner ipv4\n+--------------------------------\n+The Ptype of GTPoGRE is parsed same as GTP packet, so they match gtp RSS rule.\n+We just need to add the GTPoGRE packet to the packets check.\n+we need to add GTPoGRE packet to \"basic hit pattern packets\",\n+\"hit pattern/defined input set\" and \"hit pattern/not defined input set\".\n+the GTPoGRE packet format in this pattern is to add::\n+\n+ IP(proto=0x2F)/GRE(proto=0x0800)/\n+\n+after Ether layer, before IP layer, just like::\n+\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(dst=\"192.168.0.1\", src=\"192.168.0.2\")/(\"X\"*480)],iface=\"enp216s0f0\")\n+\n+\n+Test case: MAC_IPV4_GTPU_EH_IPV4 with UL/DL\n+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\n+\n+DL case\n+\n+basic hit pattern packets are the same in this test case::\n+\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(dst=\"192.168.0.1\", src=\"192.168.0.2\")/(\"X\"*480)],iface=\"enp216s0f0\")\n+\n+all the DL cases have same pattern, so we send same\n+not hit pattern/not defined input set packets::\n+\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(dst=\"192.168.0.1\", src=\"192.168.0.2\")/(\"X\"*480)],iface=\"enp216s0f0\")\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IPv6(src=\"ABAB:910B:6666:3457:8295:3333:1800:2929\",dst=\"CDCD:910A:2222:5498:8475:1111:3900:2020\")/(\"X\"*480)],iface=\"enp216s0f0\")\n+\n+Subcase: MAC_IPV4_GTPU_EH_DL_IPV4_L3DST\n+:::::::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv4 / end actions rss types ipv4 l3-dst-only end key_len 0 queues end / end\n+\n+hit pattern/defined input set::\n+\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(dst=\"192.168.1.1\", src=\"192.168.0.2\")/(\"X\"*480)],iface=\"enp216s0f0\")\n+\n+hit pattern/not defined input set::\n+\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(dst=\"192.168.0.1\", src=\"192.168.1.2\")/(\"X\"*480)],iface=\"enp216s0f0\")\n+\n+Subcase: MAC_IPV4_GTPU_EH_DL_IPV4_L3SRC\n+:::::::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv4 / end actions rss types ipv4 l3-src-only end key_len 0 queues end / end\n+\n+hit pattern/defined input set::\n+\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(dst=\"192.168.0.1\", src=\"192.168.1.2\")/(\"X\"*480)],iface=\"enp216s0f0\")\n+\n+hit pattern/not defined input set::\n+\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(dst=\"192.168.1.1\", src=\"192.168.0.2\")/(\"X\"*480)],iface=\"enp216s0f0\")\n+\n+Subcase: MAC_IPV4_GTPU_EH_DL_IPV4\n+:::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv4 / end actions rss types ipv4 end key_len 0 queues end / end\n+\n+hit pattern/defined input set::\n+\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(dst=\"192.168.1.1\", src=\"192.168.0.2\")/(\"X\"*480)],iface=\"enp216s0f0\")\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(dst=\"192.168.0.1\", src=\"192.168.1.2\")/(\"X\"*480)],iface=\"enp216s0f0\")\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(dst=\"192.168.1.1\", src=\"192.168.1.2\")/(\"X\"*480)],iface=\"enp216s0f0\")\n+\n+hit pattern/not defined input set::\n+\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(dst=\"192.168.0.1\", src=\"192.168.0.2\")/(\"X\"*480)],iface=\"enp216s0f0\")\n+\n+Subcase: MAC_IPV4_GTPU_EH_DL_IPV4_GTPU\n+::::::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv4 / end actions rss types gtpu end key_len 0 queues end / end\n+\n+hit pattern/defined input set::\n+\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(dst=\"192.168.0.1\", src=\"192.168.0.2\")/(\"X\"*480)],iface=\"enp216s0f0\")\n+\n+hit pattern/not defined input set::\n+\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(dst=\"192.168.1.1\", src=\"192.168.1.2\")/(\"X\"*480)],iface=\"enp216s0f0\")\n+\n+\n+UL case\n+\n+basic hit pattern packets are the same in this test case::\n+\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(dst=\"192.168.0.1\", src=\"192.168.0.2\")/(\"X\"*480)],iface=\"enp216s0f0\")\n+\n+all the UL cases have same pattern, so we send same\n+not hit pattern/not defined input set packets::\n+\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(dst=\"192.168.0.1\", src=\"192.168.0.2\")/(\"X\"*480)],iface=\"enp216s0f0\")\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IPv6(src=\"ABAB:910B:6666:3457:8295:3333:1800:2929\",dst=\"CDCD:910A:2222:5498:8475:1111:3900:2020\")/(\"X\"*480)],iface=\"enp216s0f0\")\n+\n+Subcase: MAC_IPV4_GTPU_EH_UL_IPV4_L3DST\n+:::::::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 / end actions rss types ipv4 l3-dst-only end key_len 0 queues end / end\n+\n+packets: change the pdu_type value(0->1/1->0) of packets of Subcase MAC_IPV4_GTPU_EH_DL_IPV4_L3DST.\n+\n+Subcase: MAC_IPV4_GTPU_EH_UL_IPV4_L3SRC\n+:::::::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 / end actions rss types ipv4 l3-src-only end key_len 0 queues end / end\n+\n+packets: change the pdu_type value(0->1/1->0) of packets of Subcase MAC_IPV4_GTPU_EH_DL_IPV4_L3SRC.\n+\n+Subcase: MAC_IPV4_GTPU_EH_UL_IPV4\n+:::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 / end actions rss types ipv4 end key_len 0 queues end / end\n+\n+packets: change the pdu_type value(0->1/1->0) of packets of Subcase MAC_IPV4_GTPU_EH_DL_IPV4.\n+\n+Subcase: MAC_IPV4_GTPU_EH_UL_IPV4_GTPU\n+::::::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 / end actions rss types gtpu end key_len 0 queues end / end\n+\n+packets: change the pdu_type value(0->1/1->0) of packets of Subcase MAC_IPV4_GTPU_EH_UL_IPV4_GTPU.\n+\n+\n+Test case: MAC_IPV4_GTPU_EH_IPV4_UDP with UL/DL\n+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\n+\n+DL case\n+\n+basic hit pattern packets are the same in this test case::\n+\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(dst=\"192.168.0.1\", src=\"192.168.0.2\")/UDP(sport=22, dport=23)/(\"X\"*480)],iface=\"enp216s0f0\")\n+\n+all the DL cases have same pattern, so we send same\n+not hit pattern/not defined input set packets::\n+\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(dst=\"192.168.0.1\", src=\"192.168.0.2\")/UDP(sport=22, dport=23)/(\"X\"*480)],iface=\"enp216s0f0\")\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(dst=\"192.168.0.1\", src=\"192.168.0.2\")/TCP(sport=22, dport=23)/(\"X\"*480)],iface=\"enp216s0f0\")\n+\n+Subcase: MAC_IPV4_GTPU_EH_DL_IPV4_UDP_L3DST\n+:::::::::::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv4 / udp / end actions rss types ipv4-udp l3-dst-only end key_len 0 queues end / end\n+\n+hit pattern/defined input set::\n+\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(dst=\"192.168.1.1\", src=\"192.168.0.2\")/UDP(sport=22, dport=23)/(\"X\"*480)],iface=\"enp216s0f0\")\n+\n+hit pattern/not defined input set::\n+\n+ sendp([Ether(dst=\"68:05:ca:a3:28:94\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(dst=\"192.168.0.1\", src=\"192.168.1.2\")/UDP(sport=32, dport=33)/(\"X\"*480)],iface=\"enp216s0f0\")\n+\n+Subcase: MAC_IPV4_GTPU_EH_DL_IPV4_UDP_L3SRC\n+:::::::::::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv4 / udp / end actions rss types ipv4-udp l3-src-only end key_len 0 queues end / end\n+\n+hit pattern/defined input set::\n+\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(dst=\"192.168.0.1\", src=\"192.168.1.2\")/UDP(sport=22, dport=23)/(\"X\"*480)],iface=\"enp216s0f0\")\n+\n+hit pattern/not defined input set::\n+\n+ sendp([Ether(dst=\"68:05:ca:a3:28:94\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(dst=\"192.168.1.1\", src=\"192.168.0.2\")/UDP(sport=32, dport=33)/(\"X\"*480)],iface=\"enp216s0f0\")\n+\n+Subcase: MAC_IPV4_GTPU_EH_DL_IPV4_UDP_L3SRC_L4SRC\n+:::::::::::::::::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv4 / udp / end actions rss types ipv4-udp l3-src-only l4-src-only end key_len 0 queues end / end\n+\n+hit pattern/defined input set::\n+\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(dst=\"192.168.0.1\", src=\"192.168.1.2\")/UDP(sport=22, dport=23)/(\"X\"*480)],iface=\"enp216s0f0\")\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(dst=\"192.168.0.1\", src=\"192.168.0.2\")/UDP(sport=32, dport=23)/(\"X\"*480)],iface=\"enp216s0f0\")\n+\n+hit pattern/not defined input set::\n+\n+ sendp([Ether(dst=\"68:05:ca:a3:28:94\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(dst=\"192.168.1.1\", src=\"192.168.0.2\")/UDP(sport=22, dport=33)/(\"X\"*480)],iface=\"enp216s0f0\")\n+\n+Subcase: MAC_IPV4_GTPU_EH_DL_IPV4_UDP_L3SRC_L4DST\n+:::::::::::::::::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv4 / udp / end actions rss types ipv4-udp l3-src-only l4-dst-only end key_len 0 queues end / end\n+\n+hit pattern/defined input set::\n+\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(dst=\"192.168.0.1\", src=\"192.168.1.2\")/UDP(sport=22, dport=23)/(\"X\"*480)],iface=\"enp216s0f0\")\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(dst=\"192.168.0.1\", src=\"192.168.0.2\")/UDP(sport=22, dport=33)/(\"X\"*480)],iface=\"enp216s0f0\")\n+\n+hit pattern/not defined input set::\n+\n+ sendp([Ether(dst=\"68:05:ca:a3:28:94\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(dst=\"192.168.1.1\", src=\"192.168.0.2\")/UDP(sport=32, dport=23)/(\"X\"*480)],iface=\"enp216s0f0\")\n+\n+Subcase: MAC_IPV4_GTPU_EH_DL_IPV4_UDP_L3DST_L4SRC\n+:::::::::::::::::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv4 / udp / end actions rss types ipv4-udp l3-dst-only l4-src-only end key_len 0 queues end / end\n+\n+hit pattern/defined input set::\n+\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(dst=\"192.168.1.1\", src=\"192.168.0.2\")/UDP(sport=22, dport=23)/(\"X\"*480)],iface=\"enp216s0f0\")\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(dst=\"192.168.0.1\", src=\"192.168.0.2\")/UDP(sport=32, dport=23)/(\"X\"*480)],iface=\"enp216s0f0\")\n+\n+hit pattern/not defined input set::\n+\n+ sendp([Ether(dst=\"68:05:ca:a3:28:94\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(dst=\"192.168.0.1\", src=\"192.168.1.2\")/UDP(sport=22, dport=33)/(\"X\"*480)],iface=\"enp216s0f0\")\n+\n+Subcase: MAC_IPV4_GTPU_EH_DL_IPV4_UDP_L3DST_L4DST\n+:::::::::::::::::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv4 / udp / end actions rss types ipv4-udp l3-dst-only l4-dst-only end key_len 0 queues end / end\n+\n+hit pattern/defined input set::\n+\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(dst=\"192.168.1.1\", src=\"192.168.0.2\")/UDP(sport=22, dport=23)/(\"X\"*480)],iface=\"enp216s0f0\")\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(dst=\"192.168.0.1\", src=\"192.168.0.2\")/UDP(sport=22, dport=33)/(\"X\"*480)],iface=\"enp216s0f0\")\n+\n+hit pattern/not defined input set::\n+\n+ sendp([Ether(dst=\"68:05:ca:a3:28:94\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(dst=\"192.168.0.1\", src=\"192.168.1.2\")/UDP(sport=32, dport=23)/(\"X\"*480)],iface=\"enp216s0f0\")\n+\n+Subcase: MAC_IPV4_GTPU_EH_DL_IPV4_UDP_L4DST\n+:::::::::::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv4 / udp / end actions rss types ipv4-udp l4-dst-only end key_len 0 queues end / end\n+\n+hit pattern/defined input set::\n+\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(dst=\"192.168.0.1\", src=\"192.168.0.2\")/UDP(sport=22, dport=33)/(\"X\"*480)],iface=\"enp216s0f0\")\n+\n+hit pattern/not defined input set::\n+\n+ sendp([Ether(dst=\"68:05:ca:a3:28:94\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(dst=\"192.168.1.1\", src=\"192.168.1.2\")/UDP(sport=32, dport=23)/(\"X\"*480)],iface=\"enp216s0f0\")\n+\n+Subcase: MAC_IPV4_GTPU_EH_DL_IPV4_UDP_L4SRC\n+:::::::::::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv4 / udp / end actions rss types ipv4-udp l4-src-only end key_len 0 queues end / end\n+\n+hit pattern/defined input set::\n+\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(dst=\"192.168.0.1\", src=\"192.168.0.2\")/UDP(sport=32, dport=23)/(\"X\"*480)],iface=\"enp216s0f0\")\n+\n+hit pattern/not defined input set::\n+\n+ sendp([Ether(dst=\"68:05:ca:a3:28:94\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(dst=\"192.168.1.1\", src=\"192.168.1.2\")/UDP(sport=22, dport=33)/(\"X\"*480)],iface=\"enp216s0f0\")\n+\n+Subcase: MAC_IPV4_GTPU_EH_DL_IPV4_UDP_IPV4\n+::::::::::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv4 / udp / end actions rss types ipv4 end key_len 0 queues end / end\n+\n+hit pattern/defined input set::\n+\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(dst=\"192.168.1.1\", src=\"192.168.0.2\")/UDP(sport=22, dport=23)/(\"X\"*480)],iface=\"enp216s0f0\")\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(dst=\"192.168.0.1\", src=\"192.168.1.2\")/UDP(sport=22, dport=23)/(\"X\"*480)],iface=\"enp216s0f0\")\n+\n+hit pattern/not defined input set::\n+\n+ sendp([Ether(dst=\"68:05:ca:a3:28:94\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(dst=\"192.168.0.1\", src=\"192.168.0.2\")/UDP(sport=32, dport=33)/(\"X\"*480)],iface=\"enp216s0f0\")\n+\n+Subcase: MAC_IPV4_GTPU_EH_DL_IPV4_UDP\n+:::::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv4 / udp / end actions rss types ipv4-udp end key_len 0 queues end / end\n+\n+hit pattern/defined input set::\n+\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(dst=\"192.168.1.1\", src=\"192.168.0.2\")/UDP(sport=22, dport=23)/(\"X\"*480)],iface=\"enp216s0f0\")\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(dst=\"192.168.0.1\", src=\"192.168.1.2\")/UDP(sport=22, dport=23)/(\"X\"*480)],iface=\"enp216s0f0\")\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(dst=\"192.168.0.1\", src=\"192.168.0.2\")/UDP(sport=32, dport=23)/(\"X\"*480)],iface=\"enp216s0f0\")\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(dst=\"192.168.0.1\", src=\"192.168.0.2\")/UDP(sport=22, dport=33)/(\"X\"*480)],iface=\"enp216s0f0\")\n+\n+hit pattern/not defined input set::\n+\n+ sendp([Ether(dst=\"68:05:ca:a3:28:94\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(dst=\"192.168.0.1\", src=\"192.168.0.2\")/UDP(sport=22, dport=23)/(\"X\"*480)],iface=\"enp216s0f0\")\n+\n+Subcase: MAC_IPV4_GTPU_EH_DL_IPV4_UDP_GTPU\n+::::::::::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv4 / udp / end actions rss types gtpu end key_len 0 queues end / end\n+\n+hit pattern/defined input set::\n+\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(dst=\"192.168.0.1\", src=\"192.168.0.2\")/UDP(sport=22, dport=23)/(\"X\"*480)],iface=\"enp216s0f0\")\n+\n+hit pattern/not defined input set::\n+\n+ sendp([Ether(dst=\"68:05:ca:a3:28:94\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(dst=\"192.168.1.1\", src=\"192.168.1.2\")/UDP(sport=32, dport=33)/(\"X\"*480)],iface=\"enp216s0f0\")\n+\n+UL case\n+\n+basic hit pattern packets are the same in this test case::\n+\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(dst=\"192.168.0.1\", src=\"192.168.0.2\")/UDP(sport=22, dport=23)/(\"X\"*480)],iface=\"enp216s0f0\")\n+\n+all the UL cases have same pattern, so we send same\n+not hit pattern/not defined input set packets::\n+\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(dst=\"192.168.0.1\", src=\"192.168.0.2\")/UDP(sport=22, dport=23)/(\"X\"*480)],iface=\"enp216s0f0\")\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(dst=\"192.168.0.1\", src=\"192.168.0.2\")/TCP(sport=22, dport=23)/(\"X\"*480)],iface=\"enp216s0f0\")\n+\n+Subcase: MAC_IPV4_GTPU_EH_UL_IPV4_UDP_L3DST\n+:::::::::::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 / udp / end actions rss types ipv4-udp l3-dst-only end key_len 0 queues end / end\n+\n+packets: change the pdu_type value(0->1/1->0) of packets of Subcase MAC_IPV4_GTPU_EH_DL_IPV4_UDP_L3DST.\n+\n+Subcase: MAC_IPV4_GTPU_EH_UL_IPV4_UDP_L3SRC\n+:::::::::::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 / udp / end actions rss types ipv4-udp l3-src-only end key_len 0 queues end / end\n+\n+packets: change the pdu_type value(0->1/1->0) of packets of Subcase MAC_IPV4_GTPU_EH_DL_IPV4_UDP_L3SRC.\n+\n+Subcase: MAC_IPV4_GTPU_EH_UL_IPV4_UDP_L3SRC_L4SRC\n+:::::::::::::::::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 / udp / end actions rss types ipv4-udp l3-src-only l4-src-only end key_len 0 queues end / end\n+\n+packets: change the pdu_type value(0->1/1->0) of packets of Subcase MAC_IPV4_GTPU_EH_DL_IPV4_UDP_L3DST_L4DST.\n+\n+Subcase: MAC_IPV4_GTPU_EH_UL_IPV4_UDP_L3SRC_L4DST\n+:::::::::::::::::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 / udp / end actions rss types ipv4-udp l3-src-only l4-dst-only end key_len 0 queues end / end\n+\n+packets: change the pdu_type value(0->1/1->0) of packets of Subcase MAC_IPV4_GTPU_EH_DL_IPV4_UDP_L3DST_L4SRC.\n+\n+Subcase: MAC_IPV4_GTPU_EH_UL_IPV4_UDP_L3DST_L4SRC\n+:::::::::::::::::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 / udp / end actions rss types ipv4-udp l3-dst-only l4-src-only end key_len 0 queues end / end\n+\n+packets: change the pdu_type value(0->1/1->0) of packets of Subcase MAC_IPV4_GTPU_EH_DL_IPV4_UDP_L3SRC_L4DST.\n+\n+Subcase: MAC_IPV4_GTPU_EH_UL_IPV4_UDP_L3DST_L4DST\n+:::::::::::::::::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 / udp / end actions rss types ipv4-udp l3-dst-only l4-dst-only end key_len 0 queues end / end\n+\n+packets: change the pdu_type value(0->1/1->0) of packets of Subcase MAC_IPV4_GTPU_EH_DL_IPV4_UDP_L3SRC_L4SRC.\n+\n+Subcase: MAC_IPV4_GTPU_EH_UL_IPV4_UDP_L4DST\n+:::::::::::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 / udp / end actions rss types ipv4-udp l4-dst-only end key_len 0 queues end / end\n+\n+packets: change the pdu_type value(0->1/1->0) of packets of Subcase MAC_IPV4_GTPU_EH_DL_IPV4_UDP_L4DST.\n+\n+Subcase: MAC_IPV4_GTPU_EH_UL_IPV4_UDP_L4SRC\n+:::::::::::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 / udp / end actions rss types ipv4-udp l4-src-only end key_len 0 queues end / end\n+\n+packets: change the pdu_type value(0->1/1->0) of packets of Subcase MAC_IPV4_GTPU_EH_DL_IPV4_UDP_L4SRC.\n+\n+Subcase: MAC_IPV4_GTPU_EH_UL_IPV4_UDP_IPV4\n+::::::::::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 / udp / end actions rss types ipv4 end key_len 0 queues end / end\n+\n+packets: change the pdu_type value(0->1/1->0) of packets of Subcase MAC_IPV4_GTPU_EH_DL_IPV4_UDP_IPV4.\n+\n+Subcase: MAC_IPV4_GTPU_EH_UL_IPV4_UDP\n+:::::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 / udp / end actions rss types ipv4-udp end key_len 0 queues end / end\n+\n+packets: change the pdu_type value(0->1/1->0) of packets of Subcase MAC_IPV4_GTPU_EH_DL_IPV4_UDP.\n+\n+Subcase: MAC_IPV4_GTPU_EH_UL_IPV4_UDP_GTPU\n+::::::::::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 / udp / end actions rss types gtpu end key_len 0 queues end / end\n+\n+packets: change the pdu_type value(0->1/1->0) of packets of Subcase MAC_IPV4_GTPU_EH_DL_IPV4_UDP_GTPU.\n+\n+\n+Test case: MAC_IPV4_GTPU_EH_IPV4_TCP with UL/DL\n+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\n+the rules and packets in this test case is similar to \"Test case: MAC_IPV4_GTPU_EH_IPV4_UDP with UL/DL\"\n+just change some parts of rules and packets:\n+\n+ rule:\n+ change inner udp to tcp, change ipv4-udp to ipv4-tcp\n+ packets:\n+ if the packet's inner L4 layer is UDP, change it to TCP;\n+ if the packet's inner L4 layer is TCP, change it to UDP;\n+\n+DL case\n+\n+Subcase: MAC_IPV4_GTPU_EH_DL_IPV4_TCP_L3DST\n+:::::::::::::::::::::::::::::::::::::::::::\n+\n+Subcase: MAC_IPV4_GTPU_EH_DL_IPV4_TCP_L3SRT\n+:::::::::::::::::::::::::::::::::::::::::::\n+\n+Subcase: MAC_IPV4_GTPU_EH_DL_IPV4_TCP_L3DST_L4DST\n+:::::::::::::::::::::::::::::::::::::::::::::::::\n+\n+Subcase: MAC_IPV4_GTPU_EH_DL_IPV4_TCP_L3DST_L4SRC\n+:::::::::::::::::::::::::::::::::::::::::::::::::\n+\n+Subcase: MAC_IPV4_GTPU_EH_DL_IPV4_TCP_L3SRC_L4DST\n+:::::::::::::::::::::::::::::::::::::::::::::::::\n+\n+Subcase: MAC_IPV4_GTPU_EH_DL_IPV4_TCP_L3SRC_L4SRC\n+:::::::::::::::::::::::::::::::::::::::::::::::::\n+\n+Subcase: MAC_IPV4_GTPU_EH_DL_IPV4_TCP_L4DST\n+:::::::::::::::::::::::::::::::::::::::::::\n+\n+Subcase: MAC_IPV4_GTPU_EH_DL_IPV4_TCP_L4SRC\n+:::::::::::::::::::::::::::::::::::::::::::\n+\n+Subcase: MAC_IPV4_GTPU_EH_DL_IPV4_TCP\n+:::::::::::::::::::::::::::::::::::::\n+\n+Subcase: MAC_IPV4_GTPU_EH_DL_IPV4_TCP_GTPU\n+::::::::::::::::::::::::::::::::::::::::::\n+\n+UL case\n+\n+Subcase: MAC_IPV4_GTPU_EH_UL_IPV4_TCP_L3DST\n+:::::::::::::::::::::::::::::::::::::::::::\n+\n+Subcase: MAC_IPV4_GTPU_EH_UL_IPV4_TCP_L3SRT\n+:::::::::::::::::::::::::::::::::::::::::::\n+\n+Subcase: MAC_IPV4_GTPU_EH_UL_IPV4_TCP_L3DST_L4DST\n+:::::::::::::::::::::::::::::::::::::::::::::::::\n+\n+Subcase: MAC_IPV4_GTPU_EH_UL_IPV4_TCP_L3DST_L4SRC\n+:::::::::::::::::::::::::::::::::::::::::::::::::\n+\n+Subcase: MAC_IPV4_GTPU_EH_UL_IPV4_TCP_L3SRC_L4DST\n+:::::::::::::::::::::::::::::::::::::::::::::::::\n+\n+Subcase: MAC_IPV4_GTPU_EH_UL_IPV4_TCP_L3SRC_L4SRC\n+:::::::::::::::::::::::::::::::::::::::::::::::::\n+\n+Subcase: MAC_IPV4_GTPU_EH_UL_IPV4_TCP_L4DST\n+:::::::::::::::::::::::::::::::::::::::::::\n+\n+Subcase: MAC_IPV4_GTPU_EH_UL_IPV4_TCP_L4SRC\n+:::::::::::::::::::::::::::::::::::::::::::\n+\n+Subcase: MAC_IPV4_GTPU_EH_UL_IPV4_TCP\n+:::::::::::::::::::::::::::::::::::::\n+\n+Subcase: MAC_IPV4_GTPU_EH_UL_IPV4_TCP_GTPU\n+::::::::::::::::::::::::::::::::::::::::::\n+\n+\n+Test case: MAC_IPV4_GTPU_EH_IPV4 without UL/DL\n+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\n+basic hit pattern packets are the same in this test case::\n+\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(dst=\"192.168.0.1\", src=\"192.168.0.2\")/(\"X\"*480)],iface=\"enp216s0f0\")\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(dst=\"192.168.0.1\", src=\"192.168.0.2\")/(\"X\"*480)],iface=\"enp216s0f0\")\n+\n+all the cases have same pattern, so we send same\n+not hit pattern/not defined input set packets::\n+\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IPv6(src=\"ABAB:910B:6666:3457:8295:3333:1800:2929\",dst=\"CDCD:910A:2222:5498:8475:1111:3900:2020\")/(\"X\"*480)],iface=\"enp216s0f0\")\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IPv6(src=\"ABAB:910B:6666:3457:8295:3333:1800:2929\",dst=\"CDCD:910A:2222:5498:8475:1111:3900:2020\")/(\"X\"*480)],iface=\"enp216s0f0\")\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(dst=\"192.168.0.1\", src=\"192.168.0.2\")/(\"X\"*480)],iface=\"enp216s0f0\")\n+\n+Subcase: MAC_IPV4_GTPU_EH_IPV4_L3DST\n+::::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv4 / end actions rss types ipv4 l3-dst-only end key_len 0 queues end / end\n+\n+hit pattern/defined input set::\n+\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(dst=\"192.168.1.1\", src=\"192.168.0.2\")/(\"X\"*480)],iface=\"enp216s0f0\")\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(dst=\"192.168.1.1\", src=\"192.168.0.2\")/(\"X\"*480)],iface=\"enp216s0f0\")\n+\n+hit pattern/not defined input set::\n+\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(dst=\"192.168.0.1\", src=\"192.168.1.2\")/(\"X\"*480)],iface=\"enp216s0f0\")\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345)/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(dst=\"192.168.0.1\", src=\"192.168.1.2\")/(\"X\"*480)],iface=\"enp216s0f0\")\n+\n+Subcase: MAC_IPV4_GTPU_EH_IPV4_L3SRC\n+::::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv4 / end actions rss types ipv4 l3-src-only end key_len 0 queues end / end\n+\n+hit pattern/defined input set::\n+\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(dst=\"192.168.0.1\", src=\"192.168.1.2\")/(\"X\"*480)],iface=\"enp216s0f0\")\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(dst=\"192.168.0.1\", src=\"192.168.1.2\")/(\"X\"*480)],iface=\"enp216s0f0\")\n+\n+hit pattern/not defined input set::\n+\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(dst=\"192.168.1.1\", src=\"192.168.0.2\")/(\"X\"*480)],iface=\"enp216s0f0\")\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345)/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(dst=\"192.168.1.1\", src=\"192.168.0.2\")/(\"X\"*480)],iface=\"enp216s0f0\")\n+\n+Subcase: MAC_IPV4_GTPU_EH_IPV4\n+::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv4 / end actions rss types ipv4 end key_len 0 queues end / end\n+\n+hit pattern/defined input set::\n+\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(dst=\"192.168.0.1\", src=\"192.168.1.2\")/(\"X\"*480)],iface=\"enp216s0f0\")\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(dst=\"192.168.1.1\", src=\"192.168.0.2\")/(\"X\"*480)],iface=\"enp216s0f0\")\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(dst=\"192.168.1.1\", src=\"192.168.1.2\")/(\"X\"*480)],iface=\"enp216s0f0\")\n+\n+hit pattern/not defined input set::\n+\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(dst=\"192.168.0.1\", src=\"192.168.0.2\")/(\"X\"*480)],iface=\"enp216s0f0\")\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345)/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(dst=\"192.168.0.1\", src=\"192.168.0.2\")/(\"X\"*480)],iface=\"enp216s0f0\")\n+\n+Subcase: MAC_IPV4_GTPU_EH_IPV4_GTPU\n+:::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv4 / end actions rss types gtpu end key_len 0 queues end / end\n+\n+hit pattern/defined input set::\n+\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(dst=\"192.168.0.1\", src=\"192.168.0.2\")/(\"X\"*480)],iface=\"enp216s0f0\")\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345)/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(dst=\"192.168.0.1\", src=\"192.168.0.2\")/(\"X\"*480)],iface=\"enp216s0f0\")\n+\n+hit pattern/not defined input set::\n+\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(dst=\"192.168.1.1\", src=\"192.168.1.2\")/(\"X\"*480)],iface=\"enp216s0f0\")\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(dst=\"192.168.1.1\", src=\"192.168.1.2\")/(\"X\"*480)],iface=\"enp216s0f0\")\n+\n+Test case: MAC_IPV4_GTPU_EH_IPV4_UDP without UL/DL\n+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\n+basic hit pattern packets are the same in this test case::\n+\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(dst=\"192.168.0.1\", src=\"192.168.0.2\")/UDP(sport=22, dport=23)/(\"X\"*480)],iface=\"enp216s0f0\")\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(dst=\"192.168.0.1\", src=\"192.168.0.2\")/UDP(sport=22, dport=23)/(\"X\"*480)],iface=\"enp216s0f0\")\n+\n+all the cases have same pattern, so we send same\n+not hit pattern/not defined input set packets::\n+\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(dst=\"192.168.0.1\", src=\"192.168.0.2\")/TCP(sport=22, dport=23)/(\"X\"*480)],iface=\"enp216s0f0\")\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(dst=\"192.168.0.1\", src=\"192.168.0.2\")/TCP(sport=22, dport=23)/(\"X\"*480)],iface=\"enp216s0f0\")\n+\n+Subcase: MAC_IPV4_GTPU_EH_IPV4_UDP_L3DST\n+::::::::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv4 / udp / end actions rss types ipv4-udp l3-dst-only end key_len 0 queues end / end\n+\n+hit pattern/defined input set::\n+\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(dst=\"192.168.1.1\", src=\"192.168.0.2\")/UDP(sport=22, dport=23)/(\"X\"*480)],iface=\"enp216s0f0\")\n+\n+hit pattern/not defined input set::\n+\n+ sendp([Ether(dst=\"68:05:ca:a3:28:94\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(dst=\"192.168.0.1\", src=\"192.168.1.2\")/UDP(sport=32, dport=33)/(\"X\"*480)],iface=\"enp216s0f0\")\n+ sendp([Ether(dst=\"68:05:ca:a3:28:94\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345)/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(dst=\"192.168.0.1\", src=\"192.168.1.2\")/UDP(sport=32, dport=33)/(\"X\"*480)],iface=\"enp216s0f0\")\n+\n+Subcase: MAC_IPV4_GTPU_EH_IPV4_UDP_L3SRC\n+::::::::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv4 / udp / end actions rss types ipv4-udp l3-src-only end key_len 0 queues end / end\n+\n+hit pattern/defined input set::\n+\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(dst=\"192.168.0.1\", src=\"192.168.1.2\")/UDP(sport=22, dport=23)/(\"X\"*480)],iface=\"enp216s0f0\")\n+\n+hit pattern/not defined input set::\n+\n+ sendp([Ether(dst=\"68:05:ca:a3:28:94\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(dst=\"192.168.1.1\", src=\"192.168.0.2\")/UDP(sport=32, dport=33)/(\"X\"*480)],iface=\"enp216s0f0\")\n+ sendp([Ether(dst=\"68:05:ca:a3:28:94\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345)/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(dst=\"192.168.1.1\", src=\"192.168.0.2\")/UDP(sport=32, dport=33)/(\"X\"*480)],iface=\"enp216s0f0\")\n+\n+Subcase: MAC_IPV4_GTPU_EH_IPV4_UDP_L3SRC_L4SRC\n+::::::::::::::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv4 / udp / end actions rss types ipv4-udp l3-src-only l4-src-only end key_len 0 queues end / end\n+\n+hit pattern/defined input set::\n+\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(dst=\"192.168.0.1\", src=\"192.168.1.2\")/UDP(sport=22, dport=23)/(\"X\"*480)],iface=\"enp216s0f0\")\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(dst=\"192.168.0.1\", src=\"192.168.0.2\")/UDP(sport=32, dport=23)/(\"X\"*480)],iface=\"enp216s0f0\")\n+\n+hit pattern/not defined input set::\n+\n+ sendp([Ether(dst=\"68:05:ca:a3:28:94\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(dst=\"192.168.1.1\", src=\"192.168.0.2\")/UDP(sport=22, dport=33)/(\"X\"*480)],iface=\"enp216s0f0\")\n+ sendp([Ether(dst=\"68:05:ca:a3:28:94\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345)/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(dst=\"192.168.1.1\", src=\"192.168.0.2\")/UDP(sport=22, dport=33)/(\"X\"*480)],iface=\"enp216s0f0\")\n+\n+Subcase: MAC_IPV4_GTPU_EH_IPV4_UDP_L3SRC_L4DST\n+::::::::::::::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv4 / udp / end actions rss types ipv4-udp l3-src-only l4-dst-only end key_len 0 queues end / end\n+\n+hit pattern/defined input set::\n+\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(dst=\"192.168.0.1\", src=\"192.168.1.2\")/UDP(sport=22, dport=23)/(\"X\"*480)],iface=\"enp216s0f0\")\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(dst=\"192.168.0.1\", src=\"192.168.0.2\")/UDP(sport=22, dport=33)/(\"X\"*480)],iface=\"enp216s0f0\")\n+\n+hit pattern/not defined input set::\n+\n+ sendp([Ether(dst=\"68:05:ca:a3:28:94\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(dst=\"192.168.1.1\", src=\"192.168.0.2\")/UDP(sport=32, dport=23)/(\"X\"*480)],iface=\"enp216s0f0\")\n+ sendp([Ether(dst=\"68:05:ca:a3:28:94\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345)/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(dst=\"192.168.1.1\", src=\"192.168.0.2\")/UDP(sport=32, dport=23)/(\"X\"*480)],iface=\"enp216s0f0\")\n+\n+Subcase: MAC_IPV4_GTPU_EH_IPV4_UDP_L3DST_L4SRC\n+::::::::::::::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv4 / udp / end actions rss types ipv4-udp l3-dst-only l4-src-only end key_len 0 queues end / end\n+\n+hit pattern/defined input set::\n+\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(dst=\"192.168.1.1\", src=\"192.168.0.2\")/UDP(sport=22, dport=23)/(\"X\"*480)],iface=\"enp216s0f0\")\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(dst=\"192.168.0.1\", src=\"192.168.0.2\")/UDP(sport=32, dport=23)/(\"X\"*480)],iface=\"enp216s0f0\")\n+\n+hit pattern/not defined input set::\n+\n+ sendp([Ether(dst=\"68:05:ca:a3:28:94\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(dst=\"192.168.0.1\", src=\"192.168.1.2\")/UDP(sport=22, dport=33)/(\"X\"*480)],iface=\"enp216s0f0\")\n+ sendp([Ether(dst=\"68:05:ca:a3:28:94\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345)/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(dst=\"192.168.0.1\", src=\"192.168.1.2\")/UDP(sport=22, dport=33)/(\"X\"*480)],iface=\"enp216s0f0\")\n+\n+Subcase: MAC_IPV4_GTPU_EH_IPV4_UDP_L3DST_L4DST\n+::::::::::::::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv4 / udp / end actions rss types ipv4-udp l3-dst-only l4-dst-only end key_len 0 queues end / end\n+\n+hit pattern/defined input set::\n+\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(dst=\"192.168.1.1\", src=\"192.168.0.2\")/UDP(sport=22, dport=23)/(\"X\"*480)],iface=\"enp216s0f0\")\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(dst=\"192.168.0.1\", src=\"192.168.0.2\")/UDP(sport=22, dport=33)/(\"X\"*480)],iface=\"enp216s0f0\")\n+\n+hit pattern/not defined input set::\n+\n+ sendp([Ether(dst=\"68:05:ca:a3:28:94\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(dst=\"192.168.0.1\", src=\"192.168.1.2\")/UDP(sport=32, dport=23)/(\"X\"*480)],iface=\"enp216s0f0\")\n+ sendp([Ether(dst=\"68:05:ca:a3:28:94\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345)/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(dst=\"192.168.0.1\", src=\"192.168.1.2\")/UDP(sport=32, dport=23)/(\"X\"*480)],iface=\"enp216s0f0\")\n+\n+Subcase: MAC_IPV4_GTPU_EH_IPV4_UDP_L4DST\n+::::::::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv4 / udp / end actions rss types ipv4-udp l4-dst-only end key_len 0 queues end / end\n+\n+hit pattern/defined input set::\n+\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(dst=\"192.168.0.1\", src=\"192.168.0.2\")/UDP(sport=22, dport=33)/(\"X\"*480)],iface=\"enp216s0f0\")\n+\n+hit pattern/not defined input set::\n+\n+ sendp([Ether(dst=\"68:05:ca:a3:28:94\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(dst=\"192.168.1.1\", src=\"192.168.1.2\")/UDP(sport=32, dport=23)/(\"X\"*480)],iface=\"enp216s0f0\")\n+ sendp([Ether(dst=\"68:05:ca:a3:28:94\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345)/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(dst=\"192.168.1.1\", src=\"192.168.1.2\")/UDP(sport=32, dport=23)/(\"X\"*480)],iface=\"enp216s0f0\")\n+\n+Subcase: MAC_IPV4_GTPU_EH_IPV4_UDP_L4SRC\n+::::::::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv4 / udp / end actions rss types ipv4-udp l4-src-only end key_len 0 queues end / end\n+\n+hit pattern/defined input set::\n+\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(dst=\"192.168.0.1\", src=\"192.168.0.2\")/UDP(sport=32, dport=23)/(\"X\"*480)],iface=\"enp216s0f0\")\n+\n+hit pattern/not defined input set::\n+\n+ sendp([Ether(dst=\"68:05:ca:a3:28:94\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(dst=\"192.168.1.1\", src=\"192.168.1.2\")/UDP(sport=22, dport=33)/(\"X\"*480)],iface=\"enp216s0f0\")\n+ sendp([Ether(dst=\"68:05:ca:a3:28:94\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345)/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(dst=\"192.168.1.1\", src=\"192.168.1.2\")/UDP(sport=22, dport=33)/(\"X\"*480)],iface=\"enp216s0f0\")\n+\n+Subcase: MAC_IPV4_GTPU_EH_IPV4_UDP_IPV4\n+:::::::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv4 / udp / end actions rss types ipv4 end key_len 0 queues end / end\n+\n+hit pattern/defined input set::\n+\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(dst=\"192.168.1.1\", src=\"192.168.0.2\")/UDP(sport=22, dport=23)/(\"X\"*480)],iface=\"enp216s0f0\")\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(dst=\"192.168.0.1\", src=\"192.168.1.2\")/UDP(sport=22, dport=23)/(\"X\"*480)],iface=\"enp216s0f0\")\n+\n+hit pattern/not defined input set::\n+\n+ sendp([Ether(dst=\"68:05:ca:a3:28:94\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(dst=\"192.168.0.1\", src=\"192.168.0.2\")/UDP(sport=32, dport=33)/(\"X\"*480)],iface=\"enp216s0f0\")\n+ sendp([Ether(dst=\"68:05:ca:a3:28:94\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345)/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(dst=\"192.168.0.1\", src=\"192.168.0.2\")/UDP(sport=32, dport=33)/(\"X\"*480)],iface=\"enp216s0f0\")\n+\n+Subcase: MAC_IPV4_GTPU_EH_IPV4_UDP\n+::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv4 / udp / end actions rss types ipv4-udp end key_len 0 queues end / end\n+\n+hit pattern/defined input set::\n+\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(dst=\"192.168.1.1\", src=\"192.168.0.2\")/UDP(sport=22, dport=23)/(\"X\"*480)],iface=\"enp216s0f0\")\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(dst=\"192.168.0.1\", src=\"192.168.1.2\")/UDP(sport=22, dport=23)/(\"X\"*480)],iface=\"enp216s0f0\")\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(dst=\"192.168.0.1\", src=\"192.168.0.2\")/UDP(sport=32, dport=23)/(\"X\"*480)],iface=\"enp216s0f0\")\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(dst=\"192.168.0.1\", src=\"192.168.0.2\")/UDP(sport=22, dport=33)/(\"X\"*480)],iface=\"enp216s0f0\")\n+\n+hit pattern/not defined input set::\n+\n+ sendp([Ether(dst=\"68:05:ca:a3:28:94\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(dst=\"192.168.0.1\", src=\"192.168.0.2\")/UDP(sport=22, dport=23)/(\"X\"*480)],iface=\"enp216s0f0\")\n+ sendp([Ether(dst=\"68:05:ca:a3:28:94\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345)/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(dst=\"192.168.0.1\", src=\"192.168.0.2\")/UDP(sport=22, dport=23)/(\"X\"*480)],iface=\"enp216s0f0\")\n+\n+Subcase: MAC_IPV4_GTPU_EH_IPV4_UDP_GTPU\n+:::::::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv4 / udp / end actions rss types gtpu end key_len 0 queues end / end\n+\n+hit pattern/defined input set::\n+\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(dst=\"192.168.0.1\", src=\"192.168.0.2\")/UDP(sport=22, dport=23)/(\"X\"*480)],iface=\"enp216s0f0\")\n+\n+hit pattern/not defined input set::\n+\n+ sendp([Ether(dst=\"68:05:ca:a3:28:94\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(dst=\"192.168.1.1\", src=\"192.168.1.2\")/UDP(sport=32, dport=33)/(\"X\"*480)],iface=\"enp216s0f0\")\n+ sendp([Ether(dst=\"68:05:ca:a3:28:94\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(dst=\"192.168.1.1\", src=\"192.168.1.2\")/UDP(sport=32, dport=33)/(\"X\"*480)],iface=\"enp216s0f0\")\n+\n+Test case: MAC_IPV4_GTPU_EH_IPV4_TCP without UL/DL\n+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\n+the rules and packets in this test case is similar to \"Test case: MAC_IPV4_GTPU_EH_IPV4_UDP without UL/DL\"\n+just change some parts of rules and packets:\n+\n+ rule:\n+ change inner udp to tcp, change ipv4-udp to ipv4-tcp\n+ packets:\n+ if the packet's inner L4 layer is UDP, change it to TCP;\n+ if the packet's inner L4 layer is TCP, change it to UDP;\n+\n+Subcase: MAC_IPV4_GTPU_EH_IPV4_TCP_L3DST\n+::::::::::::::::::::::::::::::::::::::::\n+\n+Subcase: MAC_IPV4_GTPU_EH_IPV4_TCP_L3SRT\n+::::::::::::::::::::::::::::::::::::::::\n+\n+Subcase: MAC_IPV4_GTPU_EH_IPV4_TCP_L3DST_L4DST\n+::::::::::::::::::::::::::::::::::::::::::::::\n+\n+Subcase: MAC_IPV4_GTPU_EH_IPV4_TCP_L3DST_L4SRC\n+::::::::::::::::::::::::::::::::::::::::::::::\n+\n+Subcase: MAC_IPV4_GTPU_EH_IPV4_TCP_L3SRC_L4DST\n+::::::::::::::::::::::::::::::::::::::::::::::\n+\n+Subcase: MAC_IPV4_GTPU_EH_IPV4_TCP_L3SRC_L4SRC\n+::::::::::::::::::::::::::::::::::::::::::::::\n+\n+Subcase: MAC_IPV4_GTPU_EH_IPV4_TCP_L4DST\n+::::::::::::::::::::::::::::::::::::::::\n+\n+Subcase: MAC_IPV4_GTPU_EH_IPV4_TCP_L4SRC\n+::::::::::::::::::::::::::::::::::::::::\n+\n+Subcase: MAC_IPV4_GTPU_EH_IPV4_TCP\n+::::::::::::::::::::::::::::::::::\n+\n+Subcase: MAC_IPV4_GTPU_EH_IPV4_TCP_GTPU\n+:::::::::::::::::::::::::::::::::::::::\n+\n+\n+Test case: MAC_IPV4_GTPU_IPV4\n+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\n+basic hit pattern packets are the same in this test case::\n+\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(dst=\"192.168.0.1\", src=\"192.168.0.2\")/(\"X\"*480)],iface=\"enp216s0f0\")\n+\n+all the cases have same pattern, so we send same\n+not hit pattern/not defined input set packets::\n+\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(dst=\"192.168.0.1\", src=\"192.168.0.2\")/(\"X\"*480)],iface=\"enp216s0f0\")\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IPv6(src=\"ABAB:910B:6666:3457:8295:3333:1800:2929\",dst=\"CDCD:910A:2222:5498:8475:1111:3900:2020\")/(\"X\"*480)],iface=\"enp216s0f0\")\n+\n+Subcase: MAC_IPV4_GTPU_IPV4_L3DST\n+:::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 / end actions rss types ipv4 l3-dst-only end key_len 0 queues end / end\n+\n+hit pattern/defined input set::\n+\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(dst=\"192.168.1.1\", src=\"192.168.0.2\")/(\"X\"*480)],iface=\"enp216s0f0\")\n+\n+hit pattern/not defined input set::\n+\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345)/IP(dst=\"192.168.0.1\", src=\"192.168.1.2\")/(\"X\"*480)],iface=\"enp216s0f0\")\n+\n+Subcase: MAC_IPV4_GTPU_IPV4_L3SRC\n+:::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 / end actions rss types ipv4 l3-src-only end key_len 0 queues end / end\n+\n+hit pattern/defined input set::\n+\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(dst=\"192.168.0.1\", src=\"192.168.1.2\")/(\"X\"*480)],iface=\"enp216s0f0\")\n+\n+hit pattern/not defined input set::\n+\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345)/IP(dst=\"192.168.1.1\", src=\"192.168.0.2\")/(\"X\"*480)],iface=\"enp216s0f0\")\n+\n+Subcase: MAC_IPV4_GTPU_IPV4\n+:::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 / end actions rss types ipv4 end key_len 0 queues end / end\n+\n+hit pattern/defined input set::\n+\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(dst=\"192.168.1.1\", src=\"192.168.0.2\")/(\"X\"*480)],iface=\"enp216s0f0\")\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(dst=\"192.168.0.1\", src=\"192.168.1.2\")/(\"X\"*480)],iface=\"enp216s0f0\")\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(dst=\"192.168.1.1\", src=\"192.168.1.2\")/(\"X\"*480)],iface=\"enp216s0f0\")\n+\n+hit pattern/not defined input set::\n+\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345)/IP(dst=\"192.168.0.1\", src=\"192.168.0.2\")/(\"X\"*480)],iface=\"enp216s0f0\")\n+\n+Subcase: MAC_IPV4_GTPU_IPV4_GTPU\n+::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 / end actions rss types gtpu end key_len 0 queues end / end\n+\n+hit pattern/defined input set::\n+\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345)/IP(dst=\"192.168.0.1\", src=\"192.168.0.2\")/(\"X\"*480)],iface=\"enp216s0f0\")\n+\n+hit pattern/not defined input set::\n+\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(dst=\"192.168.1.1\", src=\"192.168.1.2\")/(\"X\"*480)],iface=\"enp216s0f0\")\n+\n+Test case: MAC_IPV4_GTPU_IPV4_UDP\n+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\n+basic hit pattern packets are the same in this test case::\n+\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(dst=\"192.168.0.1\", src=\"192.168.0.2\")/UDP(sport=22,dport=23)/(\"X\"*480)],iface=\"enp216s0f0\")\n+\n+all the cases have same pattern, so we send same\n+not hit pattern/not defined input set packets::\n+\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(dst=\"192.168.0.1\", src=\"192.168.0.2\")/UDP(sport=22, dport=23)/(\"X\"*480)],iface=\"enp216s0f0\")\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(dst=\"192.168.0.1\", src=\"192.168.0.2\")/TCP(sport=22,dport=23)/(\"X\"*480)],iface=\"enp216s0f0\")\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IPv6(src=\"ABAB:910B:6666:3457:8295:3333:1800:2929\",dst=\"CDCD:910A:2222:5498:8475:1111:3900:2020\")/UDP(sport=22,dport=23)/(\"X\"*480)],iface=\"enp216s0f0\")\n+\n+Subcase: MAC_IPV4_GTPU_IPV4_UDP_L3DST\n+:::::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 / udp / end actions rss types ipv4-udp l3-dst-only end key_len 0 queues end / end\n+\n+hit pattern/defined input set::\n+\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(dst=\"192.168.1.1\", src=\"192.168.0.2\")/UDP(sport=22,dport=23)/(\"X\"*480)],iface=\"enp216s0f0\")\n+\n+hit pattern/not defined input set::\n+\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345)/IP(dst=\"192.168.0.1\", src=\"192.168.1.2\")/UDP(sport=32,dport=33)/(\"X\"*480)],iface=\"enp216s0f0\")\n+\n+Subcase: MAC_IPV4_GTPU_IPV4_UDP_L3SRC\n+:::::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 / udp / end actions rss types ipv4-udp l3-src-only end key_len 0 queues end / end\n+\n+hit pattern/defined input set::\n+\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(dst=\"192.168.0.1\", src=\"192.168.1.2\")/UDP(sport=22,dport=23)/(\"X\"*480)],iface=\"enp216s0f0\")\n+\n+hit pattern/not defined input set::\n+\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345)/IP(dst=\"192.168.1.1\", src=\"192.168.0.2\")/UDP(sport=32,dport=33)/(\"X\"*480)],iface=\"enp216s0f0\")\n+\n+Subcase: MAC_IPV4_GTPU_IPV4_UDP_L3SRC_L4SRC\n+:::::::::::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 / udp / end actions rss types ipv4-udp l3-src-only l4-src-only end key_len 0 queues end / end\n+\n+hit pattern/defined input set::\n+\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(dst=\"192.168.0.1\", src=\"192.168.1.2\")/UDP(sport=22,dport=23)/(\"X\"*480)],iface=\"enp216s0f0\")\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(dst=\"192.168.0.1\", src=\"192.168.0.2\")/UDP(sport=32,dport=23)/(\"X\"*480)],iface=\"enp216s0f0\")\n+\n+hit pattern/not defined input set::\n+\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345)/IP(dst=\"192.168.1.1\", src=\"192.168.0.2\")/UDP(sport=22,dport=33)/(\"X\"*480)],iface=\"enp216s0f0\")\n+\n+Subcase: MAC_IPV4_GTPU_IPV4_UDP_L3SRC_L4DST\n+:::::::::::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 / udp / end actions rss types ipv4-udp l3-src-only l4-dst-only end key_len 0 queues end / end\n+\n+hit pattern/defined input set::\n+\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(dst=\"192.168.0.1\", src=\"192.168.1.2\")/UDP(sport=22,dport=23)/(\"X\"*480)],iface=\"enp216s0f0\")\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(dst=\"192.168.0.1\", src=\"192.168.0.2\")/UDP(sport=22,dport=33)/(\"X\"*480)],iface=\"enp216s0f0\")\n+\n+hit pattern/not defined input set::\n+\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345)/IP(dst=\"192.168.1.1\", src=\"192.168.0.2\")/UDP(sport=32,dport=23)/(\"X\"*480)],iface=\"enp216s0f0\")\n+\n+Subcase: MAC_IPV4_GTPU_IPV4_UDP_L3DST_L4SRC\n+:::::::::::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 / udp / end actions rss types ipv4-udp l3-dst-only l4-src-only end key_len 0 queues end / end\n+\n+hit pattern/defined input set::\n+\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(dst=\"192.168.1.1\", src=\"192.168.0.2\")/UDP(sport=22,dport=23)/(\"X\"*480)],iface=\"enp216s0f0\")\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(dst=\"192.168.0.1\", src=\"192.168.0.2\")/UDP(sport=32,dport=23)/(\"X\"*480)],iface=\"enp216s0f0\")\n+\n+hit pattern/not defined input set::\n+\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345)/IP(dst=\"192.168.0.1\", src=\"192.168.1.2\")/UDP(sport=22,dport=33)/(\"X\"*480)],iface=\"enp216s0f0\")\n+\n+Subcase: MAC_IPV4_GTPU_IPV4_UDP_L3DST_L4DST\n+:::::::::::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 / udp / end actions rss types ipv4-udp l3-dst-only l4-dst-only end key_len 0 queues end / end\n+\n+hit pattern/defined input set::\n+\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(dst=\"192.168.1.1\", src=\"192.168.0.2\")/UDP(sport=22,dport=23)/(\"X\"*480)],iface=\"enp216s0f0\")\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(dst=\"192.168.0.1\", src=\"192.168.0.2\")/UDP(sport=22,dport=33)/(\"X\"*480)],iface=\"enp216s0f0\")\n+\n+hit pattern/not defined input set::\n+\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345)/IP(dst=\"192.168.0.1\", src=\"192.168.1.2\")/UDP(sport=32,dport=23)/(\"X\"*480)],iface=\"enp216s0f0\")\n+\n+Subcase: MAC_IPV4_GTPU_IPV4_UDP_L4DST\n+:::::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 / udp / end actions rss types ipv4-udp l4-dst-only end key_len 0 queues end / end\n+\n+hit pattern/defined input set::\n+\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(dst=\"192.168.0.1\", src=\"192.168.0.2\")/UDP(sport=22,dport=33)/(\"X\"*480)],iface=\"enp216s0f0\")\n+\n+hit pattern/not defined input set::\n+\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345)/IP(dst=\"192.168.1.1\", src=\"192.168.1.2\")/UDP(sport=32,dport=23)/(\"X\"*480)],iface=\"enp216s0f0\")\n+\n+Subcase: MAC_IPV4_GTPU_IPV4_UDP_L4SRC\n+:::::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 / udp / end actions rss types ipv4-udp l4-src-only end key_len 0 queues end / end\n+\n+hit pattern/defined input set::\n+\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(dst=\"192.168.0.1\", src=\"192.168.0.2\")/UDP(sport=32,dport=23)/(\"X\"*480)],iface=\"enp216s0f0\")\n+\n+hit pattern/not defined input set::\n+\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345)/IP(dst=\"192.168.1.1\", src=\"192.168.1.2\")/UDP(sport=22,dport=33)/(\"X\"*480)],iface=\"enp216s0f0\")\n+\n+Subcase: MAC_IPV4_GTPU_IPV4_UDP_IPV4\n+::::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 / udp / end actions rss types ipv4 end key_len 0 queues end / end\n+\n+hit pattern/defined input set::\n+\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(dst=\"192.168.1.1\", src=\"192.168.0.2\")/UDP(sport=22,dport=23)/(\"X\"*480)],iface=\"enp216s0f0\")\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(dst=\"192.168.0.1\", src=\"192.168.1.2\")/UDP(sport=22,dport=23)/(\"X\"*480)],iface=\"enp216s0f0\")\n+\n+hit pattern/not defined input set::\n+\n+ sendp([Ether(dst=\"68:05:ca:a3:28:94\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345)/IP(dst=\"192.168.0.1\", src=\"192.168.0.2\")/UDP(sport=32,dport=33)/(\"X\"*480)],iface=\"enp216s0f0\")\n+\n+Subcase: MAC_IPV4_GTPU_IPV4_UDP\n+:::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 / udp / end actions rss types ipv4-udp end key_len 0 queues end / end\n+\n+hit pattern/defined input set::\n+\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(dst=\"192.168.1.1\", src=\"192.168.0.2\")/UDP(sport=22,dport=23)/(\"X\"*480)],iface=\"enp216s0f0\")\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(dst=\"192.168.0.1\", src=\"192.168.1.2\")/UDP(sport=22,dport=23)/(\"X\"*480)],iface=\"enp216s0f0\")\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(dst=\"192.168.0.1\", src=\"192.168.0.2\")/UDP(sport=32,dport=23)/(\"X\"*480)],iface=\"enp216s0f0\")\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(dst=\"192.168.0.1\", src=\"192.168.0.2\")/UDP(sport=22,dport=33)/(\"X\"*480)],iface=\"enp216s0f0\")\n+\n+hit pattern/not defined input set::\n+\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345)/IP(dst=\"192.168.0.1\", src=\"192.168.0.2\")/UDP(sport=22,dport=23)/(\"X\"*480)],iface=\"enp216s0f0\")\n+\n+Subcase: MAC_IPV4_GTPU_IPV4_UDP_GTPU\n+::::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 / udp / end actions rss types gtpu end key_len 0 queues end / end\n+\n+hit pattern/defined input set::\n+\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x12345)/IP(dst=\"192.168.0.1\", src=\"192.168.0.2\")/UDP(sport=22,dport=23)/(\"X\"*480)],iface=\"enp216s0f0\")\n+\n+hit pattern/not defined input set::\n+\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(dst=\"192.168.1.1\", src=\"192.168.1.2\")/UDP(sport=32,dport=33)/(\"X\"*480)],iface=\"enp216s0f0\")\n+\n+\n+Test case: MAC_IPV4_GTPU_IPV4_TCP\n+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\n+the rules and packets in this test case is similar to \"Test case: MAC_IPV4_GTPU_IPV4_UDP\"\n+just change some parts of rules and packets:\n+\n+ rule:\n+ change inner udp to tcp, change ipv4-udp to ipv4-tcp\n+ packets:\n+ if the packet's inner L4 layer is UDP, change it to TCP;\n+ if the packet's inner L4 layer is TCP, change it to UDP;\n+\n+Subcase: MAC_IPV4_GTPU_IPV4_TCP_L3DST\n+:::::::::::::::::::::::::::::::::::::\n+\n+Subcase: MAC_IPV4_GTPU_IPV4_TCP_L3SRT\n+:::::::::::::::::::::::::::::::::::::\n+\n+Subcase: MAC_IPV4_GTPU_IPV4_TCP_L3DST_L4DST\n+:::::::::::::::::::::::::::::::::::::::::::\n+\n+Subcase: MAC_IPV4_GTPU_IPV4_TCP_L3DST_L4SRC\n+:::::::::::::::::::::::::::::::::::::::::::\n+\n+Subcase: MAC_IPV4_GTPU_IPV4_TCP_L3SRC_L4DST\n+:::::::::::::::::::::::::::::::::::::::::::\n+\n+Subcase: MAC_IPV4_GTPU_IPV4_TCP_L3SRC_L4SRC\n+:::::::::::::::::::::::::::::::::::::::::::\n+\n+Subcase: MAC_IPV4_GTPU_IPV4_TCP_L4DST\n+:::::::::::::::::::::::::::::::::::::\n+\n+Subcase: MAC_IPV4_GTPU_IPV4_TCP_L4SRC\n+:::::::::::::::::::::::::::::::::::::\n+\n+Subcase: MAC_IPV4_GTPU_IPV4_TCP\n+:::::::::::::::::::::::::::::::\n+\n+Subcase: MAC_IPV4_GTPU_IPV4_TCP_GTPU\n+::::::::::::::::::::::::::::::::::::\n+\n+Pattern: outer ipv4 + inner ipv6\n+--------------------------------\n+\n+reconfig all the cases of \"Pattern: outer ipv4 + inner ipv4\"\n+\n+ rule:\n+ change inner ipv4 to ipv6, change ipv4-udp to ipv6-udp, change ipv4-tcp to ipv6-tcp.\n+ packets:\n+ change the packet's inner L3 layer from IP to IPv6;\n+ change the ipv4 address to ipv6 address.\n+\n+Pattern: outer ipv6 + inner ipv4\n+--------------------------------\n+\n+reconfig all the cases of \"Pattern: outer ipv4 + inner ipv4\"\n+\n+ rule:\n+ change outer ipv4 to ipv6.\n+ packets:\n+ change the packet's outer L3 layer from::\n+\n+ IP(proto=0x2F)/GRE(proto=0x0800)/IP()\n+\n+ to::\n+\n+ IPv6(nh=0x2F)/GRE(proto=0x86dd)/IPv6()\n+\n+ after Ether layer, before IP layer, just like::\n+\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IPv6(nh=0x2F)/GRE(proto=0x86dd)/IPv6()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(dst=\"192.168.0.1\", src=\"192.168.0.2\")/(\"X\"*480)],iface=\"enp216s0f0\")\n+\n+Pattern: outer ipv6 + inner ipv6\n+--------------------------------\n+\n+reconfig all the cases of \"Pattern: outer ipv4 + inner ipv4\"\n+\n+ rule:\n+ change outer ipv4 to ipv6.\n+ change inner ipv4 to ipv6, change ipv4-udp to ipv6-udp, change ipv4-tcp to ipv6-tcp.\n+ packets:\n+ change the packet's inner L3 layer from IP to IPv6;\n+ change the ipv4 address to ipv6 address.\n+ change the packet's outer L3 layer from::\n+\n+ IP(proto=0x2F)/GRE(proto=0x0800)/IP()\n+\n+ to::\n+\n+ IPv6(nh=0x2F)/GRE(proto=0x86dd)/IPv6()\n+\n+ after Ether layer, before IP layer, just like::\n+\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IPv6(nh=0x2F)/GRE(proto=0x86dd)/IPv6()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IPv6(src=\"ABAB:910B:6666:3457:8295:3333:1800:2929\",dst=\"CDCD:910A:2222:5498:8475:1111:3900:2020\")/(\"X\"*480)],iface=\"enp216s0f0\")\n+\n+inner L4 protocal hash case\n+===========================\n+Subcase: MAC_IPV4_GTPU_IPV4_UDP/TCP\n+-----------------------------------\n+1. start testpmd without disable rss::\n+\n+ ./x86_64-native-linuxapp-gcc/app/testpmd -c 0xff -n 4 -- -i --rxq=64 --txq=64 --port-topology=loop\n+\n+2. create rules::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 / udp / end actions rss types ipv4-udp end key_len 0 queues end / end\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 / tcp / end actions rss types ipv4-tcp end key_len 0 queues end / end\n+\n+3. send packets::\n+\n+ sendp([Ether(dst=\"68:05:ca:a3:28:94\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(dst=\"192.168.0.1\",src=\"192.168.0.2\")/TCP(sport=22,dport=23)/(\"X\"*480)],iface=\"enp216s0f0\")\n+ sendp([Ether(dst=\"68:05:ca:a3:28:94\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(dst=\"192.168.0.1\",src=\"192.168.0.2\")/UDP(sport=22,dport=23)/(\"X\"*480)],iface=\"enp216s0f0\")\n+\n+4. check the two packets received with different hash values, and distributed to queue by RSS.\n+\n+5. flush the rules, send the two packets again, check they are distributed to the same queue.\n+\n+Subcase: MAC_IPV4_GTPU_EH_IPV6_UDP/TCP\n+--------------------------------------\n+1. start testpmd without disable rss::\n+\n+ ./x86_64-native-linuxapp-gcc/app/testpmd -c 0xff -n 4 -- -i --rxq=64 --txq=64 --port-topology=loop\n+\n+2. create rules::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv6 / udp / end actions rss types ipv6-udp end key_len 0 queues end / end\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv6 / tcp / end actions rss types ipv6-tcp end key_len 0 queues end / end\n+\n+3. send packets::\n+\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IPv6(src=\"ABAB:910B:6666:3457:8295:3333:1800:2929\",dst=\"CDCD:910A:2222:5498:8475:1111:3900:2020\")/UDP(sport=22,dport=23)/(\"X\"*480)],iface=\"enp216s0f0\")\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IPv6(src=\"ABAB:910B:6666:3457:8295:3333:1800:2929\",dst=\"CDCD:910A:2222:5498:8475:1111:3900:2020\")/TCP(sport=22,dport=23)/(\"X\"*480)],iface=\"enp216s0f0\")\n+\n+4. check the two packets received with different hash values, and distributed to queue by RSS.\n+\n+5. flush the rules, send the two packets again, check they are distributed to the same queue.\n+\n+Subcase: MAC_IPV6_GTPU_IPV4_UDP/TCP\n+-----------------------------------\n+1. start testpmd without disable rss::\n+\n+ ./x86_64-native-linuxapp-gcc/app/testpmd -c 0xff -n 4 -- -i --rxq=64 --txq=64 --port-topology=loop\n+\n+2. create rules::\n+\n+ flow create 0 ingress pattern eth / ipv6 / udp / gtpu / gtp_psc / ipv4 / udp / end actions rss types ipv4-udp end key_len 0 queues end / end\n+ flow create 0 ingress pattern eth / ipv6 / udp / gtpu / gtp_psc / ipv4 / tcp / end actions rss types ipv4-tcp end key_len 0 queues end / end\n+\n+3. send packets::\n+\n+ sendp([Ether(dst=\"68:05:ca:a3:28:94\")/IPv6(nh=0x2F)/GRE(proto=0x86dd)/IPv6()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(dst=\"192.168.0.1\",src=\"192.168.0.2\")/TCP(sport=22,dport=23)/(\"X\"*480)],iface=\"enp216s0f0\")\n+ sendp([Ether(dst=\"68:05:ca:a3:28:94\")/IPv6(nh=0x2F)/GRE(proto=0x86dd)/IPv6()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(dst=\"192.168.0.1\",src=\"192.168.0.2\")/UDP(sport=22,dport=23)/(\"X\"*480)],iface=\"enp216s0f0\")\n+\n+4. check the two packets received with different hash values, and distributed to queue by RSS.\n+\n+5. flush the rules, send the two packets again, check they are distributed to the same queue.\n+\n+Subcase: MAC_IPV6_GTPU_EH_IPV6_UDP/TCP\n+--------------------------------------\n+1. start testpmd without disable rss::\n+\n+ ./x86_64-native-linuxapp-gcc/app/testpmd -c 0xff -n 4 -- -i --rxq=64 --txq=64 --port-topology=loop\n+\n+2. create rules::\n+\n+ flow create 0 ingress pattern eth / ipv6 / udp / gtpu / gtp_psc pdu_t is 1 / ipv6 / udp / end actions rss types ipv6-udp end key_len 0 queues end / end\n+ flow create 0 ingress pattern eth / ipv6 / udp / gtpu / gtp_psc pdu_t is 1 / ipv6 / tcp / end actions rss types ipv6-tcp end key_len 0 queues end / end\n+\n+3. send packets::\n+\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IPv6(nh=0x2F)/GRE(proto=0x86dd)/IPv6()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IPv6(src=\"ABAB:910B:6666:3457:8295:3333:1800:2929\",dst=\"CDCD:910A:2222:5498:8475:1111:3900:2020\")/UDP(sport=22,dport=23)/(\"X\"*480)],iface=\"enp216s0f0\")\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IPv6(nh=0x2F)/GRE(proto=0x86dd)/IPv6()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IPv6(src=\"ABAB:910B:6666:3457:8295:3333:1800:2929\",dst=\"CDCD:910A:2222:5498:8475:1111:3900:2020\")/TCP(sport=22,dport=23)/(\"X\"*480)],iface=\"enp216s0f0\")\n+\n+4. check the two packets received with different hash values, and distributed to queue by RSS.\n+\n+5. flush the rules, send the two packets again, check they are distributed to the same queue.\n+\n+\n+symmetric cases\n+===============\n+\n+start testpmd without disable rss::\n+\n+ ./x86_64-native-linuxapp-gcc/app/testpmd -c 0xff -n 4 -- -i --rxq=64 --txq=64 --port-topology=loop\n+\n+all the test cases run the same test steps as below:\n+\n+1. validate rule.\n+2. if the rule inner protocol is IPV4_UDP/TCP or IPV6_UDP/TCP,\n+ set \"port config all rss all\".\n+3. send a basic hit pattern packet,record the hash value.\n+ then send a hit pattern packet with switched value of input set in the rule.\n+ check the two received packets have different hash value.\n+ check both the packets are distributed to queues by rss.\n+4. create rule and list rule.\n+5. send same packets with step 2.\n+ check the received packets have same hash value.\n+ check both the packets are distributed to queues by rss.\n+6. send two not hit pattern packets with switched value of input set in the rule.\n+ check the received packets have different hash value.\n+ check both the packets are distributed to queues by rss.\n+ note: if there is not this type packet in the case, omit this step.\n+7. distroy the rule and list rule.\n+8. send the same packets in step3, only switch ip address.\n+ check the received packets which switched ip address have different hash value.\n+\n+Pattern: symmetric outer ipv4 + inner ipv4\n+------------------------------------------\n+\n+Test case: symmetric MAC_IPV4_GTPU_EH_IPV4 with UL/DL\n+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\n+Subcase: symmetric MAC_IPV4_GTPU_EH_DL_IPV4\n+:::::::::::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv4 / end actions rss func symmetric_toeplitz types ipv4 end key_len 0 queues end / end\n+\n+hit pattern/defined input set:\n+MAC_IPV4_GTPU_EH_DL_IPV4::\n+\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(dst=\"192.168.0.1\",src=\"192.168.0.2\")/(\"X\"*480)],iface=\"enp216s0f0\")\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(dst=\"192.168.0.2\",src=\"192.168.0.1\")/(\"X\"*480)],iface=\"enp216s0f0\")\n+\n+not hit pattern with switched value of input set in the rule:\n+MAC_IPV4_GTPU_EH_UL_IPV4::\n+\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(dst=\"192.168.0.1\",src=\"192.168.0.2\")/(\"X\"*480)],iface=\"enp216s0f0\")\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(dst=\"192.168.0.2\",src=\"192.168.0.1\")/(\"X\"*480)],iface=\"enp216s0f0\")\n+\n+MAC_IPV4_GTPU_EH_DL_IPV6::\n+\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IPv6(dst=\"ABAB:910B:6666:3457:8295:3333:1800:2929\",src=\"CDCD:910A:2222:5498:8475:1111:3900:2020\")/(\"X\"*480)],iface=\"enp216s0f0\")\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IPv6(src=\"ABAB:910B:6666:3457:8295:3333:1800:2929\",dst=\"CDCD:910A:2222:5498:8475:1111:3900:2020\")/(\"X\"*480)],iface=\"enp216s0f0\")\n+\n+MAC_IPV4_GTPU_IPV4::\n+\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(dst=\"192.168.0.1\",src=\"192.168.0.2\")/(\"X\"*480)],iface=\"enp216s0f0\")\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(dst=\"192.168.0.2\",src=\"192.168.0.1\")/(\"X\"*480)],iface=\"enp216s0f0\")\n+\n+Subcase: symmetric MAC_IPV4_GTPU_EH_UL_IPV4\n+:::::::::::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 / end actions rss func symmetric_toeplitz types ipv4 end key_len 0 queues end / end\n+\n+packets: change the pdu_type value(0->1/1->0) of packets of Subcase symmetric MAC_IPV4_GTPU_EH_DL_IPV4.\n+\n+Test case: symmetric MAC_IPV4_GTPU_EH_IPV4_UDP with UL/DL\n+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\n+Subcase: symmetric MAC_IPV4_GTPU_EH_DL_IPV4_UDP\n+:::::::::::::::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 0 / ipv4 / udp / end actions rss func symmetric_toeplitz types ipv4-udp end key_len 0 queues end / end\n+\n+hit pattern/defined input set::\n+\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(dst=\"192.168.0.1\", src=\"192.168.0.2\")/UDP(sport=22, dport=23)/(\"X\"*480)],iface=\"enp216s0f0\")\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(dst=\"192.168.0.2\", src=\"192.168.0.1\")/UDP(sport=22, dport=23)/(\"X\"*480)],iface=\"enp216s0f0\")\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(dst=\"192.168.0.1\", src=\"192.168.0.2\")/UDP(sport=23, dport=22)/(\"X\"*480)],iface=\"enp216s0f0\")\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(dst=\"192.168.0.2\", src=\"192.168.0.1\")/UDP(sport=23, dport=22)/(\"X\"*480)],iface=\"enp216s0f0\")\n+\n+not hit pattern with switched value of input set in the rule:\n+MAC_IPV4_GTPU_EH_UL_IPV4_UDP::\n+\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(dst=\"192.168.0.1\", src=\"192.168.0.2\")/UDP(sport=22, dport=23)/(\"X\"*480)],iface=\"enp216s0f0\")\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(dst=\"192.168.0.2\", src=\"192.168.0.1\")/UDP(sport=22, dport=23)/(\"X\"*480)],iface=\"enp216s0f0\")\n+\n+MAC_IPV4_GTPU_EH_DL_IPV4_TCP::\n+\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(dst=\"192.168.0.1\", src=\"192.168.0.2\")/TCP(sport=22, dport=23)/(\"X\"*480)],iface=\"enp216s0f0\")\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(dst=\"192.168.0.2\", src=\"192.168.0.1\")/TCP(sport=22, dport=23)/(\"X\"*480)],iface=\"enp216s0f0\")\n+\n+MAC_IPV4_GTPU_EH_DL_IPV6_UDP::\n+\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IPv6(src=\"ABAB:910B:6666:3457:8295:3333:1800:2929\",dst=\"CDCD:910A:2222:5498:8475:1111:3900:2020\")/UDP(sport=22, dport=23)/(\"X\"*480)],iface=\"enp216s0f0\")\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IPv6(dst=\"ABAB:910B:6666:3457:8295:3333:1800:2929\",src=\"CDCD:910A:2222:5498:8475:1111:3900:2020\")/UDP(sport=22, dport=23)/(\"X\"*480)],iface=\"enp216s0f0\")\n+\n+MAC_IPV4_GTPU_IPV4_UDP::\n+\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(dst=\"192.168.0.1\", src=\"192.168.0.2\")/UDP(sport=22, dport=23)/(\"X\"*480)],iface=\"enp216s0f0\")\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(dst=\"192.168.0.2\", src=\"192.168.0.1\")/UDP(sport=22, dport=23)/(\"X\"*480)],iface=\"enp216s0f0\")\n+\n+Subcase: symmetric MAC_IPV4_GTPU_EH_UL_IPV4_UDP\n+:::::::::::::::::::::::::::::::::::::::::::::::\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc pdu_t is 1 / ipv4 / udp / end actions rss func symmetric_toeplitz types ipv4-udp end key_len 0 queues end / end\n+\n+packets: change the pdu_type value(0->1/1->0) of packets of Subcase symmetric MAC_IPV4_GTPU_EH_DL_IPV4_UDP.\n+\n+\n+Test case: symmetric MAC_IPV4_GTPU_EH_IPV4_TCP with UL/DL\n+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\n+the rules and packets in this test case is similar to \"Test case: symmetric MAC_IPV4_GTPU_EH_IPV4_UDP with UL/DL\"\n+just change some parts of rules and packets:\n+\n+ rule:\n+ change inner udp to tcp, change ipv4-udp to ipv4-tcp\n+ packets:\n+ if the packet's inner L4 layer is UDP, change it to TCP;\n+ if the packet's inner L4 layer is TCP, change it to UDP;\n+\n+Subcase: symmetric MAC_IPV4_GTPU_EH_DL_IPV4_TCP\n+:::::::::::::::::::::::::::::::::::::::::::::::\n+\n+Subcase: symmetric MAC_IPV4_GTPU_EH_UL_IPV4_TCP\n+:::::::::::::::::::::::::::::::::::::::::::::::\n+\n+Test case: symmetric MAC_IPV4_GTPU_EH_IPV4 without UL/DL\n+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv4 / end actions rss func symmetric_toeplitz types ipv4 end key_len 0 queues end / end\n+\n+hit pattern/defined input set:\n+MAC_IPV4_GTPU_EH_IPV4::\n+\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(dst=\"192.168.0.3\",src=\"192.168.0.4\")/(\"X\"*480)],iface=\"enp216s0f0\")\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(dst=\"192.168.0.4\",src=\"192.168.0.3\")/(\"X\"*480)],iface=\"enp216s0f0\")\n+\n+not hit pattern with switched value of input set in the rule:\n+MAC_IPV4_GTPU_EH_IPV6::\n+\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IPv6(dst=\"ABAB:910B:6666:3457:8295:3333:1800:2929\",src=\"CDCD:910A:2222:5498:8475:1111:3900:2020\")/(\"X\"*480)],iface=\"enp216s0f0\")\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IPv6(src=\"ABAB:910B:6666:3457:8295:3333:1800:2929\",dst=\"CDCD:910A:2222:5498:8475:1111:3900:2020\")/(\"X\"*480)],iface=\"enp216s0f0\")\n+\n+MAC_IPV4_GTPU_IPV4::\n+\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(dst=\"192.168.0.1\",src=\"192.168.0.2\")/(\"X\"*480)],iface=\"enp216s0f0\")\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(dst=\"192.168.0.2\",src=\"192.168.0.1\")/(\"X\"*480)],iface=\"enp216s0f0\")\n+\n+Test case: symmetric MAC_IPV4_GTPU_EH_IPV4_UDP without UL/DL\n+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv4 / udp / end actions rss func symmetric_toeplitz types ipv4-udp end key_len 0 queues end / end\n+\n+hit pattern/defined input set:\n+MAC_IPV4_GTPU_EH_DL_IPV4_UDP::\n+\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(dst=\"192.168.0.1\",src=\"192.168.0.2\")/UDP(sport=22, dport=23)/(\"X\"*480)],iface=\"enp216s0f0\")\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(dst=\"192.168.0.1\",src=\"192.168.0.2\")/UDP(sport=23, dport=22)/(\"X\"*480)],iface=\"enp216s0f0\")\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(dst=\"192.168.0.2\",src=\"192.168.0.1\")/UDP(sport=22, dport=23)/(\"X\"*480)],iface=\"enp216s0f0\")\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(dst=\"192.168.0.2\",src=\"192.168.0.1\")/UDP(sport=23, dport=22)/(\"X\"*480)],iface=\"enp216s0f0\")\n+\n+MAC_IPV4_GTPU_EH_UL_IPV4_UDP::\n+\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(dst=\"192.168.0.1\",src=\"192.168.0.2\")/UDP(sport=22, dport=23)/(\"X\"*480)],iface=\"enp216s0f0\")\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(dst=\"192.168.0.1\",src=\"192.168.0.2\")/UDP(sport=23, dport=22)/(\"X\"*480)],iface=\"enp216s0f0\")\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(dst=\"192.168.0.2\",src=\"192.168.0.1\")/UDP(sport=22, dport=23)/(\"X\"*480)],iface=\"enp216s0f0\")\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=1, P=1, QFI=0x34)/IP(dst=\"192.168.0.2\",src=\"192.168.0.1\")/UDP(sport=23, dport=22)/(\"X\"*480)],iface=\"enp216s0f0\")\n+\n+not hit pattern with switched value of input set in the rule:\n+MAC_IPV4_GTPU_EH_IPV4_TCP::\n+\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(dst=\"192.168.0.1\",src=\"192.168.0.2\")/TCP(sport=22, dport=23)/(\"X\"*480)],iface=\"enp216s0f0\")\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(dst=\"192.168.0.2\",src=\"192.168.0.1\")/TCP(sport=22, dport=23)/(\"X\"*480)],iface=\"enp216s0f0\")\n+\n+MAC_IPV4_GTPU_EH_IPV6_UDP::\n+\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IPv6(dst=\"ABAB:910B:6666:3457:8295:3333:1800:2929\",src=\"CDCD:910A:2222:5498:8475:1111:3900:2020\")/UDP(sport=22, dport=23)/(\"X\"*480)],iface=\"enp216s0f0\")\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IPv6(src=\"ABAB:910B:6666:3457:8295:3333:1800:2929\",dst=\"CDCD:910A:2222:5498:8475:1111:3900:2020\")/UDP(sport=22, dport=23)/(\"X\"*480)],iface=\"enp216s0f0\")\n+\n+MAC_IPV4_GTPU_IPV4_UDP::\n+\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(dst=\"192.168.0.1\",src=\"192.168.0.2\")/UDP(sport=22, dport=23)/(\"X\"*480)],iface=\"enp216s0f0\")\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(dst=\"192.168.0.2\",src=\"192.168.0.1\")/UDP(sport=23, dport=22)/(\"X\"*480)],iface=\"enp216s0f0\")\n+\n+Test case: symmetric MAC_IPV4_GTPU_EH_IPV4_TCP without UL/DL\n+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\n+the rules and packets in this test case is similar to \"Test case: symmetric MAC_IPV4_GTPU_EH_IPV4_UDP without UL/DL\"\n+just change some parts of rules and packets:\n+\n+ rule:\n+ change inner udp to tcp, change ipv4-udp to ipv4-tcp\n+ packets:\n+ if the packet's inner L4 layer is UDP, change it to TCP;\n+ if the packet's inner L4 layer is TCP, change it to UDP;\n+\n+\n+Test case: symmetric MAC_IPV4_GTPU_IPV4\n+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 / end actions rss func symmetric_toeplitz types ipv4 end key_len 0 queues end / end\n+\n+hit pattern/defined input set:\n+MAC_IPV4_GTPU_IPV4::\n+\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(dst=\"192.168.0.1\",src=\"192.168.0.2\")/(\"X\"*480)],iface=\"enp216s0f0\")\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(dst=\"192.168.0.2\",src=\"192.168.0.1\")/(\"X\"*480)],iface=\"enp216s0f0\")\n+\n+not hit pattern with switched value of input set in the rule:\n+MAC_IPV4_GTPU_IPV6::\n+\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IPv6(dst=\"ABAB:910B:6666:3457:8295:3333:1800:2929\",src=\"CDCD:910A:2222:5498:8475:1111:3900:2020\")/(\"X\"*480)],iface=\"enp216s0f0\")\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IPv6(src=\"ABAB:910B:6666:3457:8295:3333:1800:2929\",dst=\"CDCD:910A:2222:5498:8475:1111:3900:2020\")/(\"X\"*480)],iface=\"enp216s0f0\")\n+\n+MAC_IPV4_GTPU_EH_IPV4::\n+\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(dst=\"192.168.0.1\",src=\"192.168.0.2\")/(\"X\"*480)],iface=\"enp216s0f0\")\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(dst=\"192.168.0.2\",src=\"192.168.0.1\")/(\"X\"*480)],iface=\"enp216s0f0\")\n+\n+Test case: symmetric MAC_IPV4_GTPU_IPV4_UDP\n+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\n+rule::\n+\n+ flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 / udp / end actions rss func symmetric_toeplitz types ipv4-udp end key_len 0 queues end / end\n+\n+hit pattern/defined input set:\n+MAC_IPV4_GTPU_IPV4_UDP::\n+\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(dst=\"192.168.0.1\",src=\"192.168.0.2\")/UDP(sport=22, dport=23)/(\"X\"*480)],iface=\"enp216s0f0\")\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(dst=\"192.168.0.1\",src=\"192.168.0.2\")/UDP(sport=23, dport=22)/(\"X\"*480)],iface=\"enp216s0f0\")\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(dst=\"192.168.0.2\",src=\"192.168.0.1\")/UDP(sport=22, dport=23)/(\"X\"*480)],iface=\"enp216s0f0\")\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(dst=\"192.168.0.2\",src=\"192.168.0.1\")/UDP(sport=23, dport=22)/(\"X\"*480)],iface=\"enp216s0f0\")\n+\n+not hit pattern with switched value of input set in the rule:\n+MAC_IPV4_GTPU_EH_IPV4_UDP::\n+\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(dst=\"192.168.0.1\",src=\"192.168.0.2\")/UDP(sport=22, dport=23)/(\"X\"*480)],iface=\"enp216s0f0\")\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(dst=\"192.168.0.2\",src=\"192.168.0.1\")/UDP(sport=22, dport=23)/(\"X\"*480)],iface=\"enp216s0f0\")\n+\n+MAC_IPV4_GTPU_IPV4_TCP::\n+\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(dst=\"192.168.0.2\",src=\"192.168.0.1\")/TCP(sport=22, dport=23)/(\"X\"*480)],iface=\"enp216s0f0\")\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(dst=\"192.168.0.1\",src=\"192.168.0.2\")/TCP(sport=23, dport=22)/(\"X\"*480)],iface=\"enp216s0f0\")\n+\n+MAC_IPV4_GTPU_IPV6_UDP::\n+\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IPv6(dst=\"ABAB:910B:6666:3457:8295:3333:1800:2929\",src=\"CDCD:910A:2222:5498:8475:1111:3900:2020\")/UDP(sport=22, dport=23)/(\"X\"*480)],iface=\"enp216s0f0\")\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IPv6(src=\"ABAB:910B:6666:3457:8295:3333:1800:2929\",dst=\"CDCD:910A:2222:5498:8475:1111:3900:2020\")/UDP(sport=22, dport=23)/(\"X\"*480)],iface=\"enp216s0f0\")\n+\n+Test case: symmetric MAC_IPV4_GTPU_IPV4_TCP\n+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\n+the rules and packets in this test case is similar to \"Test case: symmetric MAC_IPV4_GTPU_IPV4_UDP\"\n+just change some parts of rules and packets:\n+\n+ rule:\n+ change inner udp to tcp, change ipv4-udp to ipv4-tcp\n+ packets:\n+ if the packet's inner L4 layer is UDP, change it to TCP;\n+ if the packet's inner L4 layer is TCP, change it to UDP;\n+\n+Pattern: symmetric outer ipv4 + inner ipv6\n+------------------------------------------\n+\n+reconfig all the cases of \"Pattern: symmetric outer ipv4 + inner ipv4\"\n+\n+ rule:\n+ change inner ipv4 to ipv6, change ipv4-udp to ipv6-udp, change ipv4-tcp to ipv6-tcp.\n+ packets:\n+ change the packet's inner L3 layer from IP to IPv6;\n+ change the ipv4 address to ipv6 address.\n+\n+Pattern: symmetric outer ipv6 + inner ipv4\n+------------------------------------------\n+\n+reconfig all the cases of \"Pattern: symmetric outer ipv4 + inner ipv4\"\n+\n+ rule:\n+ change outer ipv4 to ipv6.\n+ packets:\n+ change the packet's outer L3 layer from::\n+\n+ IP(proto=0x2F)/GRE(proto=0x0800)/IP()\n+\n+ to::\n+\n+ IPv6(nh=0x2F)/GRE(proto=0x86dd)/IPv6()\n+\n+ after Ether layer, before IP layer, just like::\n+\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IPv6(nh=0x2F)/GRE(proto=0x86dd)/IPv6()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(dst=\"192.168.0.1\", src=\"192.168.0.2\")/(\"X\"*480)],iface=\"enp216s0f0\")\n+\n+Pattern: symmetric outer ipv6 + inner ipv6\n+------------------------------------------\n+\n+reconfig all the cases of \"Pattern: symmetric outer ipv4 + inner ipv4\"\n+\n+ rule:\n+ change outer ipv4 to ipv6.\n+ change inner ipv4 to ipv6, change ipv4-udp to ipv6-udp, change ipv4-tcp to ipv6-tcp.\n+ packets:\n+ change the packet's inner L3 layer from IP to IPv6;\n+ change the ipv4 address to ipv6 address.\n+ change the packet's outer L3 layer from::\n+\n+ IP(proto=0x2F)/GRE(proto=0x0800)/IP()\n+\n+ to::\n+\n+ IPv6(nh=0x2F)/GRE(proto=0x86dd)/IPv6()\n+\n+ after Ether layer, before IP layer, just like::\n+\n+ sendp([Ether(dst=\"68:05:CA:BB:26:E0\")/IPv6(nh=0x2F)/GRE(proto=0x86dd)/IPv6()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/GTPPDUSessionContainer(type=0, P=1, QFI=0x34)/IP(dst=\"192.168.0.1\", src=\"192.168.0.2\")/(\"X\"*480)],iface=\"enp216s0f0\")\n+\n+parse PFCP over GRE packet\n+==========================\n+Send packet::\n+\n+ sendp(Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(sport=22, dport=8805)/PFCP(Sfield=0),iface=\"enp216s0f0\")\n+ sendp(Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(sport=22, dport=8805)/PFCP(Sfield=1, SEID=123),iface=\"enp216s0f0\")\n+ sendp(Ether(dst=\"00:11:22:33:44:55\")/IPv6(nh=0x2F)/GRE(proto=0x86dd)/IPv6()/UDP(sport=22, dport=8805)/PFCP(Sfield=0),iface=\"enp216s0f0\")\n+ sendp(Ether(dst=\"00:11:22:33:44:55\")/IPv6(nh=0x2F)/GRE(proto=0x86dd)/IPv6()/UDP(sport=22, dport=8805)/PFCP(Sfield=1, SEID=256),iface=\"enp216s0f0\")\n+\n+It can be parsed as MAC_IPV4_PFCP_NODE::\n+\n+ ptype: 351\n+ port 0/queue 0: received 1 packets\n+ src=00:00:00:00:00:00 - dst=00:11:22:33:44:55 - type=0x0800 - length=82 - nb_segs=1 - sw ptype: L2_ETHER L3_IPV4 TUNNEL_GRE INNER_L3_IPV4 INNER_L4_UDP - l2_len=14 - l3_len=20 - tunnel_len=4 - inner_l3_len=20 - inner_l4_len=8 - Receive queue=0x0\n+ ol_flags: PKT_RX_L4_CKSUM_UNKNOWN PKT_RX_IP_CKSUM_UNKNOWN PKT_RX_OUTER_L4_CKSUM_UNKNOWN\n+\n+Send packet::\n+\n+ sendp(Ether(dst=\"00:11:22:33:44:55\")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(sport=22, dport=8805)/PFCP(Sfield=1, SEID=123),iface=\"enp216s0f0\")\n+\n+It can be parsed as MAC_IPV4_PFCP_SESSION::\n+\n+ ptype: 352\n+ port 0/queue 0: received 1 packets\n+ src=00:00:00:00:00:00 - dst=00:11:22:33:44:55 - type=0x0800 - length=82 - nb_segs=1 - sw ptype: L2_ETHER L3_IPV4 TUNNEL_GRE INNER_L3_IPV4 INNER_L4_UDP - l2_len=14 - l3_len=20 - tunnel_len=4 - inner_l3_len=20 - inner_l4_len=8 - Receive queue=0x0\n+ ol_flags: PKT_RX_L4_CKSUM_UNKNOWN PKT_RX_IP_CKSUM_UNKNOWN PKT_RX_OUTER_L4_CKSUM_UNKNOWN\n+\n+Send packet::\n+\n+ sendp(Ether(dst=\"00:11:22:33:44:55\")/IPv6(nh=0x2F)/GRE(proto=0x86dd)/IPv6()/UDP(sport=22, dport=8805)/PFCP(Sfield=0),iface=\"enp216s0f0\")\n+\n+It can be parsed as MAC_IPV6_PFCP_NODE::\n+\n+ ptype: 353\n+ port 0/queue 0: received 1 packets\n+ src=00:00:00:00:00:00 - dst=00:11:22:33:44:55 - type=0x86dd - length=122 - nb_segs=1 - sw ptype: L2_ETHER L3_IPV6 TUNNEL_GRE INNER_L3_IPV6 INNER_L4_UDP - l2_len=14 - l3_len=40 - tunnel_len=4 - inner_l3_len=40 - inner_l4_len=8 - Receive queue=0x0\n+ ol_flags: PKT_RX_L4_CKSUM_UNKNOWN PKT_RX_IP_CKSUM_UNKNOWN PKT_RX_OUTER_L4_CKSUM_UNKNOWN\n+\n+Send packet::\n+\n+ sendp(Ether(dst=\"00:11:22:33:44:55\")/IPv6(nh=0x2F)/GRE(proto=0x86dd)/IPv6()/UDP(sport=22, dport=8805)/PFCP(Sfield=1, SEID=256),iface=\"enp216s0f0\")\n+\n+It can be parsed as MAC_IPV6_PFCP_SESSION::\n+\n+ ptype: 354\n+ port 0/queue 0: received 1 packets\n+ src=00:00:00:00:00:00 - dst=00:11:22:33:44:55 - type=0x86dd - length=122 - nb_segs=1 - sw ptype: L2_ETHER L3_IPV6 TUNNEL_GRE INNER_L3_IPV6 INNER_L4_UDP - l2_len=14 - l3_len=40 - tunnel_len=4 - inner_l3_len=40 - inner_l4_len=8 - Receive queue=0x0\n+ ol_flags: PKT_RX_L4_CKSUM_UNKNOWN PKT_RX_IP_CKSUM_UNKNOWN PKT_RX_OUTER_L4_CKSUM_UNKNOWN\ndiff --git a/test_plans/index.rst b/test_plans/index.rst\nindex 2be687a9..947eb05d 100644\n--- a/test_plans/index.rst\n+++ b/test_plans/index.rst\n@@ -44,8 +44,10 @@ The following are the test plans for the DPDK DTS automated test system.\n coremask_test_plan\n cvl_advanced_rss_test_plan\n cvl_advanced_rss_gtpu_test_plan\n+ cvl_advanced_rss_gtpogre_test_plan\n cvl_advanced_iavf_rss_test_plan\n cvl_advanced_iavf_rss_gtpu_test_plan\n+ cvl_advanced_iavf_rss_gtpogre_test_plan\n cvl_advanced_iavf_rss_vlan_esp_ah_l2tp_pfcp_test_plan\n cvl_advanced_rss_pppoe_vlan_esp_ah_l2tp_pfcp_test_plan\n cvl_dcf_acl_filter_test_plan\n", "prefixes": [] }{ "id": 90052, "url": "