From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 80772A0C56; Mon, 23 Aug 2021 07:54:14 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 5BFC440143; Mon, 23 Aug 2021 07:54:14 +0200 (CEST) Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by mails.dpdk.org (Postfix) with ESMTP id 309244003E for ; Mon, 23 Aug 2021 07:54:12 +0200 (CEST) X-IronPort-AV: E=McAfee;i="6200,9189,10084"; a="302623149" X-IronPort-AV: E=Sophos;i="5.84,343,1620716400"; d="scan'208";a="302623149" Received: from fmsmga007.fm.intel.com ([10.253.24.52]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 22 Aug 2021 22:54:02 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.84,343,1620716400"; d="scan'208";a="454671420" Received: from dpdk-qifu-cxl.sh.intel.com ([10.67.119.179]) by fmsmga007.fm.intel.com with ESMTP; 22 Aug 2021 22:53:59 -0700 From: qifu To: dts@dpdk.org Cc: qifu Date: Mon, 23 Aug 2021 10:29:06 -0400 Message-Id: <20210823142906.1259687-1-qi.fu@intel.com> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Subject: [dts] [PATCH V2]test_plans: add test plan for cvl iavf rss support GTPoGRE X-BeenThere: dts@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: test suite reviews and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dts-bounces@dpdk.org Sender: "dts" the ice_gtp-o-gre pkg support GTPoGRE parsing,=20 based on this ddp pkg, dpdk enable rte_flow for GTPoGRE in CVL IAVF. Add this test plan for GTPoGRE RSS tests.=20=20 Signed-off-by: qifu --- ...vl_advanced_iavf_rss_gtpogre_test_plan.rst | 3210 ++++++----------- 1 file changed, 1152 insertions(+), 2058 deletions(-) diff --git a/test_plans/cvl_advanced_iavf_rss_gtpogre_test_plan.rst b/test_= plans/cvl_advanced_iavf_rss_gtpogre_test_plan.rst index a1b3ccf4..5ae80f23 100644 --- a/test_plans/cvl_advanced_iavf_rss_gtpogre_test_plan.rst +++ b/test_plans/cvl_advanced_iavf_rss_gtpogre_test_plan.rst @@ -1,2058 +1,1152 @@ -.. Copyright (c) <2021>, Intel Corporation - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - - - Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - - Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - - - Neither the name of Intel Corporation nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS - FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE - COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, - INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED - OF THE POSSIBILITY OF SUCH DAMAGE. - -=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D -CVL IAVF: Advanced RSS For GTPU -=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D - -Description -=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D - -GTP over GRE feature enhances packet core performance in 4G LTE and 5G net= works. -In GTP over GRE market segment package the parse graph is expanded to look= for -a GTP or PFCP header after parsing a GRE header. GTP over GRE packets cont= ain -two tunnel protocols. -The next header after the GRE header may be IPv4 or IPv6. If an IPv6 head= er -is present, extension headers may be present. Then unlike in other types of -packages in case of finding UDP header parser does not assume UDP_LAST pro= tocol -after GRE tunnel, but looks for GTP or PFCP headers. In case of finding th= ose -headers the GRE header and the next IP header found in the packet after the -GRE header shall not be reported. Parser reports one of the already existi= ng -GTP or PFCP ptypes. - -support pattern and input set ------------------------------ -.. table:: - - +------------------------------------+--------------------------------= -----------------------------------------------------------+ - | Hash function: toeplitz = | - +------------------------------------+--------------------------------= -----------------------------------------------------------+ - | Packet Type | All the Input Set options in co= mbination | - +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D+=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D+ - | MAC_IPV4_GTPU_EH_IPV4 | ipv4, l3-src-only, l3-dst-only = | - +------------------------------------+--------------------------------= -----------------------------------------------------------+ - | MAC_IPV4_GTPU_EH_IPV4_UDP | ipv4, ipv4-udp, l3-src-only, l3= -dst-only, l4-src-only, l4-dst-only | - +------------------------------------+--------------------------------= -----------------------------------------------------------+ - | MAC_IPV4_GTPU_EH_IPV4_TCP | ipv4, ipv4-tcp, l3-src-only, l3= -dst-only, l4-src-only, l4-dst-only | - +------------------------------------+--------------------------------= -----------------------------------------------------------+ - | MAC_IPV4_GTPU_IPV4 | ipv4, gtpu, l3-src-only, l3-dst= -only | - +------------------------------------+--------------------------------= -----------------------------------------------------------+ - | MAC_IPV4_GTPU_IPV4_UDP | ipv4, ipv4-udp, l3-src-only, l3= -dst-only, l4-src-only, l4-dst-only | - +------------------------------------+--------------------------------= -----------------------------------------------------------+ - | MAC_IPV4_GTPU_IPV4_TCP | ipv4, ipv4-tcp, l3-src-only, l3= -dst-only, l4-src-only, l4-dst-only | - +------------------------------------+--------------------------------= -----------------------------------------------------------+ - | MAC_IPV4_GTPU_EH_IPV6 | ipv6, l3-src-only, l3-dst-only = | - +------------------------------------+--------------------------------= -----------------------------------------------------------+ - | MAC_IPV4_GTPU_EH_IPV6_UDP | ipv6, ipv6-udp, l3-src-only, l3= -dst-only, l4-src-only, l4-dst-only | - +------------------------------------+--------------------------------= -----------------------------------------------------------+ - | MAC_IPV4_GTPU_EH_IPV6_TCP | ipv6, ipv6-tcp, l3-src-only, l3= -dst-only, l4-src-only, l4-dst-only | - +------------------------------------+--------------------------------= -----------------------------------------------------------+ - | MAC_IPV4_GTPU_IPV6 | ipv6, gtpu, l3-src-only, l3-dst= -only | - +------------------------------------+--------------------------------= -----------------------------------------------------------+ - | MAC_IPV4_GTPU_IPV6_UDP | ipv6, ipv6-udp, l3-src-only, l3= -dst-only, l4-src-only, l4-dst-only | - +------------------------------------+--------------------------------= -----------------------------------------------------------+ - | MAC_IPV4_GTPU_IPV6_TCP | ipv6, ipv6-tcp, l3-src-only, l3= -dst-only, l4-src-only, l4-dst-only | - +------------------------------------+--------------------------------= -----------------------------------------------------------+ - | MAC_IPV6_GTPU_EH_IPV4 | ipv4, l3-src-only, l3-dst-only = | - +------------------------------------+--------------------------------= -----------------------------------------------------------+ - | MAC_IPV6_GTPU_EH_IPV4_UDP | ipv4, ipv4-udp, l3-src-only, l3= -dst-only, l4-src-only, l4-dst-only | - +------------------------------------+--------------------------------= -----------------------------------------------------------+ - | MAC_IPV6_GTPU_EH_IPV4_TCP | ipv4, ipv4-tcp, l3-src-only, l3= -dst-only, l4-src-only, l4-dst-only | - +------------------------------------+--------------------------------= -----------------------------------------------------------+ - | MAC_IPV6_GTPU_IPV4 | ipv4, gtpu, l3-src-only, l3-dst= -only | - +------------------------------------+--------------------------------= -----------------------------------------------------------+ - | MAC_IPV6_GTPU_IPV4_UDP | ipv4, ipv4-udp, l3-src-only, l3= -dst-only, l4-src-only, l4-dst-only | - +------------------------------------+--------------------------------= -----------------------------------------------------------+ - | MAC_IPV6_GTPU_IPV4_TCP | ipv4, ipv4-tcp, l3-src-only, l3= -dst-only, l4-src-only, l4-dst-only | - +------------------------------------+--------------------------------= -----------------------------------------------------------+ - | MAC_IPV6_GTPU_EH_IPV6 | ipv6, l3-src-only, l3-dst-only = | - +------------------------------------+--------------------------------= -----------------------------------------------------------+ - | MAC_IPV6_GTPU_EH_IPV6_UDP | ipv6, ipv6-udp, l3-src-only, l3= -dst-only, l4-src-only, l4-dst-only | - +------------------------------------+--------------------------------= -----------------------------------------------------------+ - | MAC_IPV6_GTPU_EH_IPV6_TCP | ipv6, ipv6-tcp, l3-src-only, l3= -dst-only, l4-src-only, l4-dst-only | - +------------------------------------+--------------------------------= -----------------------------------------------------------+ - | MAC_IPV6_GTPU_IPV6 | ipv6, gtpu, l3-src-only, l3-dst= -only | - +------------------------------------+--------------------------------= -----------------------------------------------------------+ - | MAC_IPV6_GTPU_IPV6_UDP | ipv6, ipv6-udp, l3-src-only, l3= -dst-only, l4-src-only, l4-dst-only | - +------------------------------------+--------------------------------= -----------------------------------------------------------+ - | MAC_IPV6_GTPU_IPV6_TCP | ipv6, ipv6-tcp, l3-src-only, l3= -dst-only, l4-src-only, l4-dst-only | - +------------------------------------+--------------------------------= -----------------------------------------------------------+ - | MAC_IPV4_GTPU | ipv4, l3-src-only, l3-dst-only = | - +------------------------------------+--------------------------------= -----------------------------------------------------------+ - | MAC_IPV6_GTPU | ipv6, l3-src-only, l3-dst-only = | - +------------------------------------+--------------------------------= -----------------------------------------------------------+ - | MAC_IPV4_GTPC | ipv4, l3-src-only, l3-dst-only = | - +------------------------------------+--------------------------------= -----------------------------------------------------------+ - | MAC_IPV6_GTPC | ipv6, l3-src-only, l3-dst-only = | - +------------------------------------+--------------------------------= -----------------------------------------------------------+ - - -.. table:: - - +------------------------------------+--------------------------------= ----------------+ - | Hash function: Symmetric_toeplitz = | - +------------------------------------+--------------------------------= ----------------+ - | Pattern | all the input set options in co= mbination | - +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D+=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D+ - | MAC_IPV4_GTPU_EH_IPV4 | ipv4 = | - +------------------------------------+--------------------------------= ----------------+ - | MAC_IPV4_GTPU_EH_IPV4_UDP | ipv4-udp = | - +------------------------------------+--------------------------------= ----------------+ - | MAC_IPV4_GTPU_EH_IPV4_TCP | ipv4-tcp = | - +------------------------------------+--------------------------------= ----------------+ - | MAC_IPV4_GTPU_IPV4 | ipv4 = | - +------------------------------------+--------------------------------= ----------------+ - | MAC_IPV4_GTPU_IPV4_UDP | ipv4-udp = | - +------------------------------------+--------------------------------= ----------------+ - | MAC_IPV4_GTPU_IPV4_TCP | ipv4-tcp = | - +------------------------------------+--------------------------------= ----------------+ - | MAC_IPV4_GTPU_EH_IPV6 | ipv6 = | - +------------------------------------+--------------------------------= ----------------+ - | MAC_IPV4_GTPU_EH_IPV6_UDP | ipv6-udp = | - +------------------------------------+--------------------------------= ----------------+ - | MAC_IPV4_GTPU_EH_IPV6_TCP | ipv6-tcp = | - +------------------------------------+--------------------------------= ----------------+ - | MAC_IPV4_GTPU_IPV6 | ipv6 = | - +------------------------------------+--------------------------------= ----------------+ - | MAC_IPV4_GTPU_IPV6_UDP | ipv6-udp = | - +------------------------------------+--------------------------------= ----------------+ - | MAC_IPV4_GTPU_IPV6_TCP | ipv6-tcp = | - +------------------------------------+--------------------------------= ----------------+ - | MAC_IPV6_GTPU_EH_IPV4 | ipv4 = | - +------------------------------------+--------------------------------= ----------------+ - | MAC_IPV6_GTPU_EH_IPV4_UDP | ipv4-udp = | - +------------------------------------+--------------------------------= ----------------+ - | MAC_IPV6_GTPU_EH_IPV4_TCP | ipv4-tcp = | - +------------------------------------+--------------------------------= ----------------+ - | MAC_IPV6_GTPU_IPV4 | ipv4 = | - +------------------------------------+--------------------------------= ----------------+ - | MAC_IPV6_GTPU_IPV4_UDP | ipv4-udp = | - +------------------------------------+--------------------------------= ----------------+ - | MAC_IPV6_GTPU_IPV4_TCP | ipv4-tcp = | - +------------------------------------+--------------------------------= ----------------+ - | MAC_IPV6_GTPU_EH_IPV6 | ipv6 = | - +------------------------------------+--------------------------------= ----------------+ - | MAC_IPV6_GTPU_EH_IPV6_UDP | ipv6-udp = | - +------------------------------------+--------------------------------= ----------------+ - | MAC_IPV6_GTPU_EH_IPV6_TCP | ipv6-tcp = | - +------------------------------------+--------------------------------= ----------------+ - | MAC_IPV6_GTPU_IPV6 | ipv6 = | - +------------------------------------+--------------------------------= ----------------+ - | MAC_IPV6_GTPU_IPV6_UDP | ipv6-udp = | - +------------------------------------+--------------------------------= ----------------+ - | MAC_IPV6_GTPU_IPV6_TCP | ipv6-tcp = | - +------------------------------------+--------------------------------= ----------------+ - | MAC_IPV4_GTPU | ipv4 = | - +------------------------------------+--------------------------------= ----------------+ - | MAC_IPV6_GTPU | ipv6 = | - +------------------------------------+--------------------------------= ----------------+ - | MAC_IPV4_GTPC | ipv4 = | - +------------------------------------+--------------------------------= ----------------+ - | MAC_IPV6_GTPC | ipv6 = | - +------------------------------------+--------------------------------= ----------------+ - - -Prerequisites -=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D - -1. Hardware: - - - Intel E810 series ethernet cards: columbiaville_25g/columbiaville_100g/ - -2. Software: - - - dpdk: http://dpdk.org/git/dpdk - - scapy: http://www.secdev.org/projects/scapy/ - -.. note:: - - This rss feature designed for CVL NIC 25G and 100G, so below cases onl= y support CVL NIC. - -3. Copy gtpogre pkg to /lib/firmware/updates/intel/ice/ddp/ice.pkg - Then reload ice driver - -4. create a VF from a PF in DUT, set mac address for thi VF:: - - echo 1 > /sys/bus/pci/devices/0000\:18\:00.0/sriov_numvfs - ip link set enp24s0f0 vf 0 mac 00:11:22:33:44:55 - -5. bind VF to vfio-pci:: - - modprobe vfio-pci - usertools/dpdk-devbind.py --force --bind=3Dvfio-pci 0000:18:01.0 - -.. note:: - - The kernel must be >=3D 3.6+ and VT-d must be enabled in bios. - -6. Launch the testpmd to configuration queue of rx and tx number 16 in DUT= :: - - testpmd>./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -c 0xff -n 4 -w= 0000:18:01.0 -- -i --rxq=3D16 --txq=3D16 - testpmd>set fwd rxonly - testpmd>set verbose 1 - -7. For test case "parse PFCP over GRE packet", we need to add print log - in testpmd to show the PFCP ptype, then compile DPDK again:: - - diff --git a/drivers/net/iavf/iavf_rxtx.c b/drivers/net/iavf/iavf_rxtx= .c - index af5a28d84..37d996380 100644 - --- a/drivers/net/iavf/iavf_rxtx.c - +++ b/drivers/net/iavf/iavf_rxtx.c - @@ -1692,6 +1692,7 @@ iavf_rx_scan_hw_ring_flex_rxd(struct iavf_rx_que= ue *rxq) - - mb->packet_type =3D ptype_tbl[IAVF_RX_FLEX_DES= C_PTYPE_M & - rte_le_to_cpu_16(rxdp[j].wb.ptype_flex= _flags0)]; - + printf("ptype: %3d\n", IAVF_RX_FLEX_DESC_PTYPE= _M & rte_le_to_cpu_16(rxdp[j].wb.ptype_flex_flags0)); - iavf_flex_rxd_to_vlan_tci(mb, &rxdp[j]); - rxq->rxd_to_pkt_fields(rxq, mb, &rxdp[j]); - stat_err0 =3D rte_le_to_cpu_16(rxdp[j].wb.stat= us_error0); - @@ -2346,6 +2347,7 @@ iavf_set_rx_function(struct rte_eth_dev *dev) - IAVF_DEV_PRIVATE_TO_ADAPTER(dev->data->dev_private); - struct iavf_info *vf =3D IAVF_DEV_PRIVATE_TO_VF(dev->data->dev= _private); - - +#if 0 - #ifdef RTE_ARCH_X86 - struct iavf_rx_queue *rxq; - int i; - @@ -2425,6 +2427,7 @@ iavf_set_rx_function(struct rte_eth_dev *dev) - - return; - } - +#endif - #endif - - if (dev->data->scattered_rx) { - -8. start scapy and configuration NVGRE and GTP profile in tester - scapy:: - - >>> import sys - >>> from scapy.contrib.gtp import * - - -toeplitz cases -=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D - -all the test cases in the pattern:: - - outer ipv4 + inner ipv4 - outer ipv4 + inner ipv6 - outer ipv6 + inner ipv4 - outer ipv6 + inner ipv6 - -run the same test steps as below: - -1. validate rule. -2. create rule and list rule. -3. send a basic hit pattern packet,record the hash value. - check the packet distributed to queue by rss. -4. send hit pattern packets with changed input set in the rule. - check the received packets have different hash value with basic packet. - check all the packets are distributed to queues by rss. -5. send hit pattern packets with changed input set not in the rule. - check the received packet have same hash value with the basic packet. - check all the packets are distributed to queues by rss. - note: if there is not this type packet in the case, omit this step. - -6. destroy the rule and list rule. check the flow list has no rule. - - - -Pattern: outer ipv4 + inner ipv4 --------------------------------- - -The Ptype of GTPoGRE is parsed same as GTP packet, so they match gtp RSS r= ule. -We just need to add the GTPoGRE packet to the packets check. -we need to add GTPoGRE packet to "basic hit pattern packets", -"hit pattern/defined input set" and "hit pattern/not defined input set". -the GTPoGRE packet format in this pattern is to add:: - - IP(proto=3D0x2F)/GRE(proto=3D0x0800)/ - -after Ether layer, before IP layer, just like:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(dst=3D"192.168.0.1"= , src=3D"192.168.0.2")/("X"*480)],iface=3D"enp134s0f0") - -Test case: MAC_IPV4_GTPU_EH_IPV4 with UL/DL ->>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> - -DL case - -basic hit pattern packets are the same in this test case:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(dst=3D"192.168.0.1"= , src=3D"192.168.0.2")/("X"*480)],iface=3D"enp134s0f0") - -Subcase: MAC_IPV4_GTPU_EH_DL_IPV4_L3DST -::::::::::::::::::::::::::::::::::::::: -rule:: - - 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 e= nd / end - -hit pattern and defined input set:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(dst=3D"192.168.10.1= ", src=3D"192.168.0.2")/("X"*480)],iface=3D"enp134s0f0") - -hit pattern but not defined input set:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(dst=3D"192.168.0.1"= , src=3D"192.168.10.2")/("X"*480)],iface=3D"enp134s0f0") - -Subcase: MAC_IPV4_GTPU_EH_DL_IPV4_L3SRC -::::::::::::::::::::::::::::::::::::::: -rule:: - - 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 e= nd / end - -hit pattern and defined input set:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(dst=3D"192.168.0.1"= , src=3D"192.168.10.2")/("X"*480)],iface=3D"enp134s0f0") - -hit pattern but not defined input set:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(dst=3D"192.168.10.1= ", src=3D"192.168.0.2")/("X"*480)],iface=3D"enp134s0f0") - -Subcase: MAC_IPV4_GTPU_EH_DL_IPV4 -::::::::::::::::::::::::::::::::: -rule:: - - 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 - -hit pattern and defined input set:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(dst=3D"192.168.10.1= ", src=3D"192.168.0.2")/("X"*480)],iface=3D"enp134s0f0") - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(dst=3D"192.168.0.1"= , src=3D"192.168.10.2")/("X"*480)],iface=3D"enp134s0f0") - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(dst=3D"192.168.10.1= ", src=3D"192.168.10.2")/("X"*480)],iface=3D"enp134s0f0") - -UL case: - - basic hit pattern packets are the same in this test case:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D1, P=3D1, QFI=3D0x34)/IP(dst=3D"192.168.0.1"= , src=3D"192.168.0.2")/("X"*480)],iface=3D"enp134s0f0") - -Subcase: MAC_IPV4_GTPU_EH_UL_IPV4_L3DST -::::::::::::::::::::::::::::::::::::::: -rule:: - - 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 e= nd / end - -packets: change the pdu_type value(0->1/1->0) of packets of Subcase MAC_IP= V4_GTPU_EH_DL_IPV4_L3DST. - -Subcase: MAC_IPV4_GTPU_EH_UL_IPV4_L3SRC -::::::::::::::::::::::::::::::::::::::: -rule:: - - 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 e= nd / end - -packets: change the pdu_type value(0->1/1->0) of packets of Subcase MAC_IP= V4_GTPU_EH_DL_IPV4_L3SRC. - -Subcase: MAC_IPV4_GTPU_EH_UL_IPV4 -::::::::::::::::::::::::::::::::: -rule:: - - 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 - -packets: change the pdu_type value(0->1/1->0) of packets of Subcase MAC_IP= V4_GTPU_EH_DL_IPV4. - -Test case: MAC_IPV4_GTPU_EH_IPV4_UDP with UL/DL ->>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> - -DL case - -basic hit pattern packets are the same in this test case:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.0.1"= , dst=3D"192.168.0.2")/UDP(sport=3D22, dport=3D23)/("X"*480)], iface=3D"enp= 134s0f0") - -Subcase: MAC_IPV4_GTPU_EH_DL_IPV4_UDP_L3DST -::::::::::::::::::::::::::::::::::::::::::: -rule:: - - 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 - -hit pattern and defined input set:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.0.1"= , dst=3D"192.168.10.2")/UDP(sport=3D22, dport=3D23)/("X"*480)], iface=3D"en= p134s0f0") - -hit pattern but not defined input set:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.10.1= ", dst=3D"192.168.0.2")/UDP(sport=3D12, dport=3D13)/("X"*480)], iface=3D"en= p134s0f0") - -Subcase: MAC_IPV4_GTPU_EH_DL_IPV4_UDP_L3SRC -::::::::::::::::::::::::::::::::::::::::::: -rule:: - - 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 - -hit pattern and defined input set:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.10.1= ", dst=3D"192.168.0.2")/UDP(sport=3D22, dport=3D23)/("X"*480)], iface=3D"en= p134s0f0") - -hit pattern but not defined input set:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.0.1"= , dst=3D"192.168.10.2")/UDP(sport=3D12, dport=3D13)/("X"*480)], iface=3D"en= p134s0f0") - -Subcase: MAC_IPV4_GTPU_EH_DL_IPV4_UDP_L3SRC_L4SRC -::::::::::::::::::::::::::::::::::::::::::::::::: -rule:: - - 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 - -hit pattern and defined input set:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.10.1= ", dst=3D"192.168.0.2")/UDP(sport=3D22, dport=3D23)/("X"*480)], iface=3D"en= p134s0f0") - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.0.1"= , dst=3D"192.168.0.2")/UDP(sport=3D12, dport=3D23)/("X"*480)], iface=3D"enp= 134s0f0") - -hit pattern but not defined input set:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.0.1"= , dst=3D"192.168.10.2")/UDP(sport=3D22, dport=3D13)/("X"*480)], iface=3D"en= p134s0f0") - -Subcase: MAC_IPV4_GTPU_EH_DL_IPV4_UDP_L3SRC_L4DST -::::::::::::::::::::::::::::::::::::::::::::::::: -rule:: - - 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 - -hit pattern and defined input set:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.10.1= ", dst=3D"192.168.0.2")/UDP(sport=3D22, dport=3D23)/("X"*480)], iface=3D"en= p134s0f0") - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.0.1"= , dst=3D"192.168.0.2")/UDP(sport=3D22, dport=3D13)/("X"*480)], iface=3D"enp= 134s0f0") - -hit pattern but not defined input set:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.0.1"= , dst=3D"192.168.10.2")/UDP(sport=3D12, dport=3D23)/("X"*480)], iface=3D"en= p134s0f0") - -Subcase: MAC_IPV4_GTPU_EH_DL_IPV4_UDP_L3DST_L4SRC -::::::::::::::::::::::::::::::::::::::::::::::::: -rule:: - - 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 - -hit pattern and defined input set:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.0.1"= , dst=3D"192.168.10.2")/UDP(sport=3D22, dport=3D23)/("X"*480)], iface=3D"en= p134s0f0") - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.0.1"= , dst=3D"192.168.0.2")/UDP(sport=3D12, dport=3D23)/("X"*480)], iface=3D"enp= 134s0f0") - -hit pattern but not defined input set:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.10.1= ", dst=3D"192.168.0.2")/UDP(sport=3D22, dport=3D13)/("X"*480)], iface=3D"en= p134s0f0") - -Subcase: MAC_IPV4_GTPU_EH_DL_IPV4_UDP_L3DST_L4DST -::::::::::::::::::::::::::::::::::::::::::::::::: -rule:: - - 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 - -hit pattern and defined input set:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.0.1"= , dst=3D"192.168.10.2")/UDP(sport=3D22, dport=3D23)/("X"*480)], iface=3D"en= p134s0f0") - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.0.1"= , dst=3D"192.168.0.2")/UDP(sport=3D22, dport=3D13)/("X"*480)], iface=3D"enp= 134s0f0") - -hit pattern but not defined input set:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.10.1= ", dst=3D"192.168.0.2")/UDP(sport=3D12, dport=3D23)/("X"*480)], iface=3D"en= p134s0f0") - -Subcase: MAC_IPV4_GTPU_EH_DL_IPV4_UDP_L4DST -::::::::::::::::::::::::::::::::::::::::::: -rule:: - - 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 - -hit pattern and defined input set:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.0.1"= , dst=3D"192.168.0.2")/UDP(sport=3D22, dport=3D13)/("X"*480)], iface=3D"enp= 134s0f0") - -hit pattern but not defined input set:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.10.1= ", dst=3D"192.168.10.2")/UDP(sport=3D12, dport=3D23)/("X"*480)], iface=3D"e= np134s0f0") - -Subcase: MAC_IPV4_GTPU_EH_DL_IPV4_UDP_L4SRC -::::::::::::::::::::::::::::::::::::::::::: -rule:: - - 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 - -hit pattern and defined input set:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.0.1"= , dst=3D"192.168.0.2")/UDP(sport=3D12, dport=3D23)/("X"*480)], iface=3D"enp= 134s0f0") - -hit pattern but not defined input set:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.10.1= ", dst=3D"192.168.10.2")/UDP(sport=3D22, dport=3D13)/("X"*480)], iface=3D"e= np134s0f0") - -Subcase: MAC_IPV4_GTPU_EH_DL_IPV4_UDP -::::::::::::::::::::::::::::::::::::: -rule:: - - 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 - -hit pattern and defined input set:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.0.1"= , dst=3D"192.168.0.2")/UDP(sport=3D12, dport=3D23)/("X"*480)], iface=3D"enp= 134s0f0") - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.0.1"= , dst=3D"192.168.0.2")/UDP(sport=3D22, dport=3D13)/("X"*480)], iface=3D"enp= 134s0f0") - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.10.1= ", dst=3D"192.168.0.2")/UDP(sport=3D22, dport=3D23)/("X"*480)], iface=3D"en= p134s0f0") - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.0.1"= , dst=3D"192.168.10.2")/UDP(sport=3D22, dport=3D23)/("X"*480)], iface=3D"en= p134s0f0") - -Subcase: MAC_IPV4_GTPU_EH_DL_IPV4_UDP_L3 -:::::::::::::::::::::::::::::::::::::::: -rule:: - - 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 / e= nd - -hit pattern and defined input set:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.10.1= ", dst=3D"192.168.0.2")/UDP(sport=3D22, dport=3D23)/("X"*480)], iface=3D"en= p134s0f0") - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.0.1"= , dst=3D"192.168.10.2")/UDP(sport=3D22, dport=3D23)/("X"*480)], iface=3D"en= p134s0f0") - -hit pattern but not defined input set:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.0.1"= , dst=3D"192.168.0.2")/UDP(sport=3D12, dport=3D13)/("X"*480)], iface=3D"enp= 134s0f0") - -UL case - -basic hit pattern packets are the same in this test case:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D1, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.0.1"= , dst=3D"192.168.0.2")/UDP(sport=3D22, dport=3D23)/("X"*480)], iface=3D"enp= 134s0f0") - -Subcase: MAC_IPV4_GTPU_EH_UL_IPV4_UDP_L3DST -::::::::::::::::::::::::::::::::::::::::::: -rule:: - - 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 - -packets: change the pdu_type value(0->1/1->0) of packets of Subcase MAC_IP= V4_GTPU_EH_DL_IPV4_UDP_L3DST. - -Subcase: MAC_IPV4_GTPU_EH_UL_IPV4_UDP_L3SRC -::::::::::::::::::::::::::::::::::::::::::: -rule:: - - 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 - -packets: change the pdu_type value(0->1/1->0) of packets of Subcase MAC_IP= V4_GTPU_EH_DL_IPV4_UDP_L3SRC. - -Subcase: MAC_IPV4_GTPU_EH_UL_IPV4_UDP_L3SRC_L4SRC -::::::::::::::::::::::::::::::::::::::::::::::::: -rule:: - - 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 - -packets: change the pdu_type value(0->1/1->0) of packets of Subcase MAC_IP= V4_GTPU_EH_DL_IPV4_UDP_L3SRC_L4SRC. - -Subcase: MAC_IPV4_GTPU_EH_UL_IPV4_UDP_L3SRC_L4DST -::::::::::::::::::::::::::::::::::::::::::::::::: -rule:: - - 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 - -packets: change the pdu_type value(0->1/1->0) of packets of Subcase MAC_IP= V4_GTPU_EH_DL_IPV4_UDP_L3SRC_L4DST. - -Subcase: MAC_IPV4_GTPU_EH_UL_IPV4_UDP_L3DST_L4SRC -::::::::::::::::::::::::::::::::::::::::::::::::: -rule:: - - 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 - -packets: change the pdu_type value(0->1/1->0) of packets of Subcase MAC_IP= V4_GTPU_EH_DL_IPV4_UDP_L3DST_L4SRC. - -Subcase: MAC_IPV4_GTPU_EH_UL_IPV4_UDP_L3DST_L4DST -::::::::::::::::::::::::::::::::::::::::::::::::: -rule:: - - 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 - -packets: change the pdu_type value(0->1/1->0) of packets of Subcase MAC_IP= V4_GTPU_EH_DL_IPV4_UDP_L3DST_L4DST. - -Subcase: MAC_IPV4_GTPU_EH_UL_IPV4_UDP_L4DST -::::::::::::::::::::::::::::::::::::::::::: -rule:: - - 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 - -packets: change the pdu_type value(0->1/1->0) of packets of Subcase MAC_IP= V4_GTPU_EH_DL_IPV4_UDP_L4DST. - -Subcase: MAC_IPV4_GTPU_EH_UL_IPV4_UDP_L4SRC -::::::::::::::::::::::::::::::::::::::::::: -rule:: - - 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 - -packets: change the pdu_type value(0->1/1->0) of packets of Subcase MAC_IP= V4_GTPU_EH_DL_IPV4_UDP_L4SRC. - -Subcase: MAC_IPV4_GTPU_EH_UL_IPV4_UDP -::::::::::::::::::::::::::::::::::::: -rule:: - - 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 - -packets: change the pdu_type value(0->1/1->0) of packets of Subcase MAC_IP= V4_GTPU_EH_DL_IPV4_UDP. - -Subcase: MAC_IPV4_GTPU_EH_UL_IPV4_UDP_L3 -:::::::::::::::::::::::::::::::::::::::: -rule:: - - 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 / e= nd - -packets: change the pdu_type value(0->1/1->0) of packets of Subcase MAC_IP= V4_GTPU_EH_DL_IPV4_UDP. - - -Test case: MAC_IPV4_GTPU_EH_IPV4_TCP with UL/DL ->>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> - -DL case - -basic hit pattern packets are the same in this test case:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.0.1"= , dst=3D"192.168.0.2")/TCP(sport=3D22, dport=3D23)/("X"*480)], iface=3D"enp= 134s0f0") - -Subcase: MAC_IPV4_GTPU_EH_DL_IPV4_TCP_L3DST -::::::::::::::::::::::::::::::::::::::::::: -rule:: - - 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 - -hit pattern and defined input set:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.0.1"= , dst=3D"192.168.10.2")/TCP(sport=3D22, dport=3D23)/("X"*480)], iface=3D"en= p134s0f0") - -hit pattern but not defined input set:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.10.1= ", dst=3D"192.168.0.2")/TCP(sport=3D12, dport=3D13)/("X"*480)], iface=3D"en= p134s0f0") - -Subcase: MAC_IPV4_GTPU_EH_DL_IPV4_TCP_L3SRC -::::::::::::::::::::::::::::::::::::::::::: -rule:: - - 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 - -hit pattern and defined input set:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.10.1= ", dst=3D"192.168.0.2")/TCP(sport=3D22, dport=3D23)/("X"*480)], iface=3D"en= p134s0f0") - -hit pattern but not defined input set:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.0.1"= , dst=3D"192.168.10.2")/TCP(sport=3D12, dport=3D13)/("X"*480)], iface=3D"en= p134s0f0") - -Subcase: MAC_IPV4_GTPU_EH_DL_IPV4_TCP_L3SRC_L4SRC -::::::::::::::::::::::::::::::::::::::::::::::::: -rule:: - - 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 - -hit pattern and defined input set:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.10.1= ", dst=3D"192.168.0.2")/TCP(sport=3D22, dport=3D23)/("X"*480)], iface=3D"en= p134s0f0") - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.0.1"= , dst=3D"192.168.0.2")/TCP(sport=3D12, dport=3D23)/("X"*480)], iface=3D"enp= 134s0f0") - -hit pattern but not defined input set:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.0.1"= , dst=3D"192.168.10.2")/TCP(sport=3D22, dport=3D13)/("X"*480)], iface=3D"en= p134s0f0") - -Subcase: MAC_IPV4_GTPU_EH_DL_IPV4_TCP_L3SRC_L4DST -::::::::::::::::::::::::::::::::::::::::::::::::: -rule:: - - 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 - -hit pattern and defined input set:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.10.1= ", dst=3D"192.168.0.2")/TCP(sport=3D22, dport=3D23)/("X"*480)], iface=3D"en= p134s0f0") - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.0.1"= , dst=3D"192.168.0.2")/TCP(sport=3D22, dport=3D13)/("X"*480)], iface=3D"enp= 134s0f0") - -hit pattern but not defined input set:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.0.1"= , dst=3D"192.168.10.2")/TCP(sport=3D12, dport=3D23)/("X"*480)], iface=3D"en= p134s0f0") - -Subcase: MAC_IPV4_GTPU_EH_DL_IPV4_TCP_L3DST_L4SRC -::::::::::::::::::::::::::::::::::::::::::::::::: -rule:: - - 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 - -hit pattern and defined input set:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.0.1"= , dst=3D"192.168.10.2")/TCP(sport=3D22, dport=3D23)/("X"*480)], iface=3D"en= p134s0f0") - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.0.1"= , dst=3D"192.168.0.2")/TCP(sport=3D12, dport=3D23)/("X"*480)], iface=3D"enp= 134s0f0") - -hit pattern but not defined input set:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.10.1= ", dst=3D"192.168.0.2")/TCP(sport=3D22, dport=3D13)/("X"*480)], iface=3D"en= p134s0f0") - -Subcase: MAC_IPV4_GTPU_EH_DL_IPV4_TCP_L3DST_L4DST -::::::::::::::::::::::::::::::::::::::::::::::::: -rule:: - - 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 - -hit pattern and defined input set:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.0.1"= , dst=3D"192.168.10.2")/TCP(sport=3D22, dport=3D23)/("X"*480)], iface=3D"en= p134s0f0") - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.0.1"= , dst=3D"192.168.0.2")/TCP(sport=3D22, dport=3D13)/("X"*480)], iface=3D"enp= 134s0f0") - -hit pattern but not defined input set:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.10.1= ", dst=3D"192.168.0.2")/TCP(sport=3D12, dport=3D23)/("X"*480)], iface=3D"en= p134s0f0") - -Subcase: MAC_IPV4_GTPU_EH_DL_IPV4_TCP_L4DST -::::::::::::::::::::::::::::::::::::::::::: -rule:: - - 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 - -hit pattern and defined input set:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.0.1"= , dst=3D"192.168.0.2")/TCP(sport=3D22, dport=3D13)/("X"*480)], iface=3D"enp= 134s0f0") - -hit pattern but not defined input set:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.10.1= ", dst=3D"192.168.10.2")/TCP(sport=3D12, dport=3D23)/("X"*480)], iface=3D"e= np134s0f0") - -Subcase: MAC_IPV4_GTPU_EH_DL_IPV4_TCP_L4SRC -::::::::::::::::::::::::::::::::::::::::::: -rule:: - - 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 - -hit pattern and defined input set:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.0.1"= , dst=3D"192.168.0.2")/TCP(sport=3D12, dport=3D23)/("X"*480)], iface=3D"enp= 134s0f0") - -hit pattern but not defined input set:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.10.1= ", dst=3D"192.168.10.2")/TCP(sport=3D22, dport=3D13)/("X"*480)], iface=3D"e= np134s0f0") - -Subcase: MAC_IPV4_GTPU_EH_DL_IPV4_TCP -::::::::::::::::::::::::::::::::::::: -rule:: - - 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 - -hit pattern and defined input set:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.0.1"= , dst=3D"192.168.0.2")/TCP(sport=3D12, dport=3D23)/("X"*480)], iface=3D"enp= 134s0f0") - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.0.1"= , dst=3D"192.168.0.2")/TCP(sport=3D22, dport=3D13)/("X"*480)], iface=3D"enp= 134s0f0") - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.10.1= ", dst=3D"192.168.0.2")/TCP(sport=3D22, dport=3D23)/("X"*480)], iface=3D"en= p134s0f0") - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.0.1"= , dst=3D"192.168.10.2")/TCP(sport=3D22, dport=3D23)/("X"*480)], iface=3D"en= p134s0f0") - -Subcase: MAC_IPV4_GTPU_EH_DL_IPV4_TCP_L3 -:::::::::::::::::::::::::::::::::::::::: -rule:: - - 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 / e= nd - -hit pattern and defined input set:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.10.1= ", dst=3D"192.168.0.2")/TCP(sport=3D22, dport=3D23)/("X"*480)], iface=3D"en= p134s0f0") - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.0.1"= , dst=3D"192.168.10.2")/TCP(sport=3D22, dport=3D23)/("X"*480)], iface=3D"en= p134s0f0") - -hit pattern but not defined input set:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.0.1"= , dst=3D"192.168.0.2")/TCP(sport=3D12, dport=3D13)/("X"*480)], iface=3D"enp= 134s0f0") - -UL case - -basic hit pattern packets are the same in this test case:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D1, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.0.1"= , dst=3D"192.168.0.2")/TCP(sport=3D22, dport=3D23)/("X"*480)], iface=3D"enp= 134s0f0") - -Subcase: MAC_IPV4_GTPU_EH_UL_IPV4_TCP_L3DST -::::::::::::::::::::::::::::::::::::::::::: -rule:: - - 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 - -packets: change the pdu_type value(0->1/1->0) of packets of Subcase MAC_IP= V4_GTPU_EH_DL_IPV4_UDP_L3DST. - -Subcase: MAC_IPV4_GTPU_EH_UL_IPV4_TCP_L3SRC -::::::::::::::::::::::::::::::::::::::::::: -rule:: - - 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 - -packets: change the pdu_type value(0->1/1->0) of packets of Subcase MAC_IP= V4_GTPU_EH_DL_IPV4_UDP_L3SRC. - -Subcase: MAC_IPV4_GTPU_EH_UL_IPV4_TCP_L3SRC_L4SRC -::::::::::::::::::::::::::::::::::::::::::::::::: -rule:: - - 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 - -packets: change the pdu_type value(0->1/1->0) of packets of Subcase MAC_IP= V4_GTPU_EH_DL_IPV4_UDP_L3SRC_L4SRC. - -Subcase: MAC_IPV4_GTPU_EH_UL_IPV4_TCP_L3SRC_L4DST -::::::::::::::::::::::::::::::::::::::::::::::::: -rule:: - - 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 - -packets: change the pdu_type value(0->1/1->0) of packets of Subcase MAC_IP= V4_GTPU_EH_DL_IPV4_UDP_L3SRC_L4DST. - -Subcase: MAC_IPV4_GTPU_EH_UL_IPV4_TCP_L3DST_L4SRC -::::::::::::::::::::::::::::::::::::::::::::::::: -rule:: - - 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 - -packets: change the pdu_type value(0->1/1->0) of packets of Subcase MAC_IP= V4_GTPU_EH_DL_IPV4_UDP_L3DST_L4SRC. - -Subcase: MAC_IPV4_GTPU_EH_UL_IPV4_TCP_L3DST_L4DST -::::::::::::::::::::::::::::::::::::::::::::::::: -rule:: - - 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 - -packets: change the pdu_type value(0->1/1->0) of packets of Subcase MAC_IP= V4_GTPU_EH_DL_IPV4_UDP_L3DST_L4DST. - -Subcase: MAC_IPV4_GTPU_EH_UL_IPV4_TCP_L4DST -::::::::::::::::::::::::::::::::::::::::::: -rule:: - - 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 - -packets: change the pdu_type value(0->1/1->0) of packets of Subcase MAC_IP= V4_GTPU_EH_DL_IPV4_UDP_L4DST. - -Subcase: MAC_IPV4_GTPU_EH_UL_IPV4_TCP_L4SRC -::::::::::::::::::::::::::::::::::::::::::: -rule:: - - 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 - -packets: change the pdu_type value(0->1/1->0) of packets of Subcase MAC_IP= V4_GTPU_EH_DL_IPV4_UDP_L4SRC. - -Subcase: MAC_IPV4_GTPU_EH_UL_IPV4_TCP_L3 -:::::::::::::::::::::::::::::::::::::::: -rule:: - - 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 / e= nd - -packets: change the pdu_type value(0->1/1->0) of packets of Subcase MAC_IP= V4_GTPU_EH_DL_IPV4_UDP. - -Subcase: MAC_IPV4_GTPU_EH_UL_IPV4_TCP -::::::::::::::::::::::::::::::::::::: -rule:: - - 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 - -packets: change the pdu_type value(0->1/1->0) of packets of Subcase MAC_IP= V4_GTPU_EH_DL_IPV4_UDP. - - -Test case: MAC_IPV4_GTPU_EH_IPV4 without UL/DL ->>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> -basic hit pattern packets are the same in this test case:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(dst=3D"192.168.0.1"= , src=3D"192.168.0.2")/("X"*480)],iface=3D"enp134s0f0") - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D1, P=3D1, QFI=3D0x34)/IP(dst=3D"192.168.0.1"= , src=3D"192.168.0.2")/("X"*480)],iface=3D"enp134s0f0") - -Subcase: MAC_IPV4_GTPU_EH_IPV4_L3DST -:::::::::::::::::::::::::::::::::::: -rule:: - - 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 - -hit pattern and defined input set:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(dst=3D"192.168.10.1= ", src=3D"192.168.0.2")/("X"*480)],iface=3D"enp134s0f0") - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D1, P=3D1, QFI=3D0x34)/IP(dst=3D"192.168.10.1= ", src=3D"192.168.0.2")/("X"*480)],iface=3D"enp134s0f0") - -hit pattern but not defined input set:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(dst=3D"192.168.0.1"= , src=3D"192.168.10.2")/("X"*480)],iface=3D"enp134s0f0") - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D1, P=3D1, QFI=3D0x34)/IP(dst=3D"192.168.0.1"= , src=3D"192.168.10.2")/("X"*480)],iface=3D"enp134s0f0") - -Subcase: MAC_IPV4_GTPU_EH_DL_IPV4_L3SRC -::::::::::::::::::::::::::::::::::::::: -rule:: - - 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 - -hit pattern and defined input set:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(dst=3D"192.168.0.1"= , src=3D"192.168.10.2")/("X"*480)],iface=3D"enp134s0f0") - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D1, P=3D1, QFI=3D0x34)/IP(dst=3D"192.168.0.1"= , src=3D"192.168.10.2")/("X"*480)],iface=3D"enp134s0f0") - -hit pattern but not defined input set:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(dst=3D"192.168.10.1= ", src=3D"192.168.0.2")/("X"*480)],iface=3D"enp134s0f0") - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D1, P=3D1, QFI=3D0x34)/IP(dst=3D"192.168.10.1= ", src=3D"192.168.0.2")/("X"*480)],iface=3D"enp134s0f0") - -Subcase: MAC_IPV4_GTPU_EH_DL_IPV4 -::::::::::::::::::::::::::::::::: -rule:: - - flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv4= / end actions rss types ipv4 end key_len 0 queues end / end - -hit pattern and defined input set:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(dst=3D"192.168.10.1= ", src=3D"192.168.0.2")/("X"*480)],iface=3D"enp134s0f0") - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D1, P=3D1, QFI=3D0x34)/IP(dst=3D"192.168.0.1"= , src=3D"192.168.10.2")/("X"*480)],iface=3D"enp134s0f0") - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(dst=3D"192.168.10.1= ", src=3D"192.168.10.2")/("X"*480)],iface=3D"enp134s0f0") - -Test case: MAC_IPV4_GTPU_EH_IPV4_UDP without UL/DL ->>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> -basic hit pattern packets are the same in this test case:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.0.1"= , dst=3D"192.168.0.2")/UDP(sport=3D22, dport=3D23)/("X"*480)], iface=3D"enp= 134s0f0") - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D1, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.0.1"= , dst=3D"192.168.0.2")/UDP(sport=3D22, dport=3D23)/("X"*480)], iface=3D"enp= 134s0f0") - -Subcase: MAC_IPV4_GTPU_EH_IPV4_UDP_L3DST -:::::::::::::::::::::::::::::::::::::::: -rule:: - - 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 en= d / end - -hit pattern and defined input set:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.0.1"= , dst=3D"192.168.10.2")/UDP(sport=3D22, dport=3D23)/("X"*480)], iface=3D"en= p134s0f0") - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D1, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.0.1"= , dst=3D"192.168.10.2")/UDP(sport=3D22, dport=3D23)/("X"*480)], iface=3D"en= p134s0f0") - -hit pattern but not defined input set:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.10.1= ", dst=3D"192.168.0.2")/UDP(sport=3D12, dport=3D13)/("X"*480)], iface=3D"en= p134s0f0") - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D1, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.10.1= ", dst=3D"192.168.0.2")/UDP(sport=3D12, dport=3D13)/("X"*480)], iface=3D"en= p134s0f0") - -Subcase: MAC_IPV4_GTPU_EH_IPV4_UDP_L3SRC -:::::::::::::::::::::::::::::::::::::::: -rule:: - - 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 en= d / end - -hit pattern and defined input set:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.10.1= ", dst=3D"192.168.0.2")/UDP(sport=3D22, dport=3D23)/("X"*480)], iface=3D"en= p134s0f0") - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D1, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.10.1= ", dst=3D"192.168.0.2")/UDP(sport=3D22, dport=3D23)/("X"*480)], iface=3D"en= p134s0f0") - -hit pattern but not defined input set:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.0.1"= , dst=3D"192.168.10.2")/UDP(sport=3D12, dport=3D13)/("X"*480)], iface=3D"en= p134s0f0") - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D1, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.0.1"= , dst=3D"192.168.10.2")/UDP(sport=3D12, dport=3D13)/("X"*480)], iface=3D"en= p134s0f0") - -Subcase: MAC_IPV4_GTPU_EH_IPV4_UDP_L3SRC_L4SRC -:::::::::::::::::::::::::::::::::::::::::::::: -rule:: - - 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 - -hit pattern and defined input set:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.10.1= ", dst=3D"192.168.0.2")/UDP(sport=3D22, dport=3D23)/("X"*480)], iface=3D"en= p134s0f0") - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D1, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.0.1"= , dst=3D"192.168.0.2")/UDP(sport=3D12, dport=3D23)/("X"*480)], iface=3D"enp= 134s0f0") - -hit pattern but not defined input set:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.0.1"= , dst=3D"192.168.10.2")/UDP(sport=3D22, dport=3D13)/("X"*480)], iface=3D"en= p134s0f0") - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D1, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.0.1"= , dst=3D"192.168.10.2")/UDP(sport=3D22, dport=3D13)/("X"*480)], iface=3D"en= p134s0f0") - -Subcase: MAC_IPV4_GTPU_EH_IPV4_UDP_L3SRC_L4DST -:::::::::::::::::::::::::::::::::::::::::::::: -rule:: - - 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 - -hit pattern and defined input set:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.10.1= ", dst=3D"192.168.0.2")/UDP(sport=3D22, dport=3D23)/("X"*480)], iface=3D"en= p134s0f0") - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D1, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.0.1"= , dst=3D"192.168.0.2")/UDP(sport=3D22, dport=3D13)/("X"*480)], iface=3D"enp= 134s0f0") - -hit pattern but not defined input set:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.0.1"= , dst=3D"192.168.10.2")/UDP(sport=3D12, dport=3D23)/("X"*480)], iface=3D"en= p134s0f0") - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D1, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.0.1"= , dst=3D"192.168.10.2")/UDP(sport=3D12, dport=3D23)/("X"*480)], iface=3D"en= p134s0f0") - -Subcase: MAC_IPV4_GTPU_EH_IPV4_UDP_L3DST_L4SRC -:::::::::::::::::::::::::::::::::::::::::::::: -rule:: - - 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 - -hit pattern and defined input set:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.0.1"= , dst=3D"192.168.10.2")/UDP(sport=3D22, dport=3D23)/("X"*480)], iface=3D"en= p134s0f0") - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D1, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.0.1"= , dst=3D"192.168.0.2")/UDP(sport=3D12, dport=3D23)/("X"*480)], iface=3D"enp= 134s0f0") - -hit pattern but not defined input set:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.10.1= ", dst=3D"192.168.0.2")/UDP(sport=3D22, dport=3D13)/("X"*480)], iface=3D"en= p134s0f0") - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D1, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.10.1= ", dst=3D"192.168.0.2")/UDP(sport=3D22, dport=3D13)/("X"*480)], iface=3D"en= p134s0f0") - -Subcase: MAC_IPV4_GTPU_EH_IPV4_UDP_L3DST_L4DST -:::::::::::::::::::::::::::::::::::::::::::::: -rule:: - - 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 - -hit pattern and defined input set:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.0.1"= , dst=3D"192.168.10.2")/UDP(sport=3D22, dport=3D23)/("X"*480)], iface=3D"en= p134s0f0") - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D1, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.0.1"= , dst=3D"192.168.0.2")/UDP(sport=3D22, dport=3D13)/("X"*480)], iface=3D"enp= 134s0f0") - -hit pattern but not defined input set:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.10.1= ", dst=3D"192.168.0.2")/UDP(sport=3D12, dport=3D23)/("X"*480)], iface=3D"en= p134s0f0") - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D1, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.10.1= ", dst=3D"192.168.0.2")/UDP(sport=3D12, dport=3D23)/("X"*480)], iface=3D"en= p134s0f0") - -Subcase: MAC_IPV4_GTPU_EH_IPV4_UDP_L4DST -:::::::::::::::::::::::::::::::::::::::: -rule:: - - 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 en= d / end - -hit pattern and defined input set:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.0.1"= , dst=3D"192.168.0.2")/UDP(sport=3D22, dport=3D13)/("X"*480)], iface=3D"enp= 134s0f0") - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D1, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.0.1"= , dst=3D"192.168.0.2")/UDP(sport=3D22, dport=3D13)/("X"*480)], iface=3D"enp= 134s0f0") - -hit pattern but not defined input set:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.10.1= ", dst=3D"192.168.10.2")/UDP(sport=3D12, dport=3D23)/("X"*480)], iface=3D"e= np134s0f0") - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D1, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.10.1= ", dst=3D"192.168.10.2")/UDP(sport=3D12, dport=3D23)/("X"*480)], iface=3D"e= np134s0f0") - -Subcase: MAC_IPV4_GTPU_EH_IPV4_UDP_L4SRC -:::::::::::::::::::::::::::::::::::::::: -rule:: - - 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 en= d / end - -hit pattern and defined input set:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.0.1"= , dst=3D"192.168.0.2")/UDP(sport=3D12, dport=3D23)/("X"*480)], iface=3D"enp= 134s0f0") - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D1, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.0.1"= , dst=3D"192.168.0.2")/UDP(sport=3D12, dport=3D23)/("X"*480)], iface=3D"enp= 134s0f0") - -hit pattern but not defined input set:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.10.1= ", dst=3D"192.168.10.2")/UDP(sport=3D22, dport=3D13)/("X"*480)], iface=3D"e= np134s0f0") - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D1, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.10.1= ", dst=3D"192.168.10.2")/UDP(sport=3D22, dport=3D13)/("X"*480)], iface=3D"e= np134s0f0") - -Subcase: MAC_IPV4_GTPU_EH_IPV4_UDP_L3 -::::::::::::::::::::::::::::::::::::: -rule:: - - 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 - -hit pattern and defined input set:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.10.1= ", dst=3D"192.168.0.2")/UDP(sport=3D22, dport=3D23)/("X"*480)], iface=3D"en= p134s0f0") - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D1, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.10.1= ", dst=3D"192.168.0.2")/UDP(sport=3D22, dport=3D23)/("X"*480)], iface=3D"en= p134s0f0") - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.0.1"= , dst=3D"192.168.10.2")/UDP(sport=3D22, dport=3D23)/("X"*480)], iface=3D"en= p134s0f0") - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D1, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.0.1"= , dst=3D"192.168.10.2")/UDP(sport=3D22, dport=3D23)/("X"*480)], iface=3D"en= p134s0f0") - -hit pattern but not defined input set:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.0.1"= , dst=3D"192.168.0.2")/UDP(sport=3D12, dport=3D13)/("X"*480)], iface=3D"enp= 134s0f0") - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D1, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.0.1"= , dst=3D"192.168.0.2")/UDP(sport=3D12, dport=3D13)/("X"*480)], iface=3D"enp= 134s0f0") - -Subcase: MAC_IPV4_GTPU_EH_IPV4_UDP -:::::::::::::::::::::::::::::::::: -rule:: - - 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 - -hit pattern and defined input set:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.0.1"= , dst=3D"192.168.0.2")/UDP(sport=3D12, dport=3D23)/("X"*480)], iface=3D"enp= 134s0f0") - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D1, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.0.1"= , dst=3D"192.168.0.2")/UDP(sport=3D22, dport=3D13)/("X"*480)], iface=3D"enp= 134s0f0") - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.10.1= ", dst=3D"192.168.0.2")/UDP(sport=3D22, dport=3D23)/("X"*480)], iface=3D"en= p134s0f0") - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D1, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.0.1"= , dst=3D"192.168.10.2")/UDP(sport=3D22, dport=3D23)/("X"*480)], iface=3D"en= p134s0f0") - - -Test case: MAC_IPV4_GTPU_EH_IPV4_TCP without UL/DL ->>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> -basic hit pattern packets are the same in this test case:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.0.1"= , dst=3D"192.168.0.2")/TCP(sport=3D22, dport=3D23)/("X"*480)], iface=3D"enp= 134s0f0") - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D1, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.0.1"= , dst=3D"192.168.0.2")/TCP(sport=3D22, dport=3D23)/("X"*480)], iface=3D"enp= 134s0f0") - -Subcase: MAC_IPV4_GTPU_EH_IPV4_TCP_L3DST -:::::::::::::::::::::::::::::::::::::::: -rule:: - - 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 en= d / end - -hit pattern and defined input set:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.0.1"= , dst=3D"192.168.10.2")/TCP(sport=3D22, dport=3D23)/("X"*480)], iface=3D"en= p134s0f0") - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D1, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.0.1"= , dst=3D"192.168.10.2")/TCP(sport=3D22, dport=3D23)/("X"*480)], iface=3D"en= p134s0f0") - -hit pattern but not defined input set:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.10.1= ", dst=3D"192.168.0.2")/TCP(sport=3D12, dport=3D13)/("X"*480)], iface=3D"en= p134s0f0") - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D1, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.10.1= ", dst=3D"192.168.0.2")/TCP(sport=3D12, dport=3D13)/("X"*480)], iface=3D"en= p134s0f0") - -Subcase: MAC_IPV4_GTPU_EH_IPV4_TCP_L3SRC -:::::::::::::::::::::::::::::::::::::::: -rule:: - - 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 en= d / end - -hit pattern and defined input set:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.10.1= ", dst=3D"192.168.0.2")/TCP(sport=3D22, dport=3D23)/("X"*480)], iface=3D"en= p134s0f0") - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D1, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.10.1= ", dst=3D"192.168.0.2")/TCP(sport=3D22, dport=3D23)/("X"*480)], iface=3D"en= p134s0f0") - -hit pattern but not defined input set:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.0.1"= , dst=3D"192.168.10.2")/TCP(sport=3D12, dport=3D13)/("X"*480)], iface=3D"en= p134s0f0") - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D1, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.0.1"= , dst=3D"192.168.10.2")/TCP(sport=3D12, dport=3D13)/("X"*480)], iface=3D"en= p134s0f0") - -Subcase: MAC_IPV4_GTPU_EH_IPV4_TCP_L3SRC_L4SRC -:::::::::::::::::::::::::::::::::::::::::::::: -rule:: - - 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 - -hit pattern and defined input set:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.10.1= ", dst=3D"192.168.0.2")/TCP(sport=3D22, dport=3D23)/("X"*480)], iface=3D"en= p134s0f0") - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D1, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.0.1"= , dst=3D"192.168.0.2")/TCP(sport=3D12, dport=3D23)/("X"*480)], iface=3D"enp= 134s0f0") - -hit pattern but not defined input set:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.0.1"= , dst=3D"192.168.10.2")/TCP(sport=3D22, dport=3D13)/("X"*480)], iface=3D"en= p134s0f0") - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D1, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.0.1"= , dst=3D"192.168.10.2")/TCP(sport=3D22, dport=3D13)/("X"*480)], iface=3D"en= p134s0f0") - -Subcase: MAC_IPV4_GTPU_EH_IPV4_TCP_L3SRC_L4DST -:::::::::::::::::::::::::::::::::::::::::::::: -rule:: - - 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 - -hit pattern and defined input set:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.10.1= ", dst=3D"192.168.0.2")/TCP(sport=3D22, dport=3D23)/("X"*480)], iface=3D"en= p134s0f0") - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D1, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.0.1"= , dst=3D"192.168.0.2")/TCP(sport=3D22, dport=3D13)/("X"*480)], iface=3D"enp= 134s0f0") - -hit pattern but not defined input set:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.0.1"= , dst=3D"192.168.10.2")/TCP(sport=3D12, dport=3D23)/("X"*480)], iface=3D"en= p134s0f0") - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D1, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.0.1"= , dst=3D"192.168.10.2")/TCP(sport=3D12, dport=3D23)/("X"*480)], iface=3D"en= p134s0f0") - -Subcase: MAC_IPV4_GTPU_EH_IPV4_TCP_L3DST_L4SRC -:::::::::::::::::::::::::::::::::::::::::::::: -rule:: - - 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 - -hit pattern and defined input set:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.0.1"= , dst=3D"192.168.10.2")/TCP(sport=3D22, dport=3D23)/("X"*480)], iface=3D"en= p134s0f0") - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D1, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.0.1"= , dst=3D"192.168.0.2")/TCP(sport=3D12, dport=3D23)/("X"*480)], iface=3D"enp= 134s0f0") - -hit pattern but not defined input set:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.10.1= ", dst=3D"192.168.0.2")/TCP(sport=3D22, dport=3D13)/("X"*480)], iface=3D"en= p134s0f0") - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D1, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.10.1= ", dst=3D"192.168.0.2")/TCP(sport=3D22, dport=3D13)/("X"*480)], iface=3D"en= p134s0f0") - -Subcase: MAC_IPV4_GTPU_EH_IPV4_TCP_L3DST_L4DST -:::::::::::::::::::::::::::::::::::::::::::::: -rule:: - - 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 - -hit pattern and defined input set:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.0.1"= , dst=3D"192.168.10.2")/TCP(sport=3D22, dport=3D23)/("X"*480)], iface=3D"en= p134s0f0") - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D1, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.0.1"= , dst=3D"192.168.0.2")/TCP(sport=3D22, dport=3D13)/("X"*480)], iface=3D"enp= 134s0f0") - -hit pattern but not defined input set:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.10.1= ", dst=3D"192.168.0.2")/TCP(sport=3D12, dport=3D23)/("X"*480)], iface=3D"en= p134s0f0") - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D1, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.10.1= ", dst=3D"192.168.0.2")/TCP(sport=3D12, dport=3D23)/("X"*480)], iface=3D"en= p134s0f0") - -Subcase: MAC_IPV4_GTPU_EH_IPV4_TCP_L4DST -:::::::::::::::::::::::::::::::::::::::: -rule:: - - 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 en= d / end - -hit pattern and defined input set:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.0.1"= , dst=3D"192.168.0.2")/TCP(sport=3D22, dport=3D13)/("X"*480)], iface=3D"enp= 134s0f0") - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D1, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.0.1"= , dst=3D"192.168.0.2")/TCP(sport=3D22, dport=3D13)/("X"*480)], iface=3D"enp= 134s0f0") - -hit pattern but not defined input set:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.10.1= ", dst=3D"192.168.10.2")/TCP(sport=3D12, dport=3D23)/("X"*480)], iface=3D"e= np134s0f0") - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D1, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.10.1= ", dst=3D"192.168.10.2")/TCP(sport=3D12, dport=3D23)/("X"*480)], iface=3D"e= np134s0f0") - -Subcase: MAC_IPV4_GTPU_EH_IPV4_TCP_L4SRC -:::::::::::::::::::::::::::::::::::::::: -rule:: - - 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 en= d / end - -hit pattern and defined input set:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.0.1"= , dst=3D"192.168.0.2")/TCP(sport=3D12, dport=3D23)/("X"*480)], iface=3D"enp= 134s0f0") - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D1, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.0.1"= , dst=3D"192.168.0.2")/TCP(sport=3D12, dport=3D23)/("X"*480)], iface=3D"enp= 134s0f0") - -hit pattern but not defined input set:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.10.1= ", dst=3D"192.168.10.2")/TCP(sport=3D22, dport=3D13)/("X"*480)], iface=3D"e= np134s0f0") - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D1, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.10.1= ", dst=3D"192.168.10.2")/TCP(sport=3D22, dport=3D13)/("X"*480)], iface=3D"e= np134s0f0") - -Subcase: MAC_IPV4_GTPU_EH_IPV4_TCP_L3 -::::::::::::::::::::::::::::::::::::: -rule:: - - 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 - -hit pattern and defined input set:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.10.1= ", dst=3D"192.168.0.2")/TCP(sport=3D22, dport=3D23)/("X"*480)], iface=3D"en= p134s0f0") - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D1, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.10.1= ", dst=3D"192.168.0.2")/TCP(sport=3D22, dport=3D23)/("X"*480)], iface=3D"en= p134s0f0") - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.0.1"= , dst=3D"192.168.10.2")/TCP(sport=3D22, dport=3D23)/("X"*480)], iface=3D"en= p134s0f0") - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D1, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.0.1"= , dst=3D"192.168.10.2")/TCP(sport=3D22, dport=3D23)/("X"*480)], iface=3D"en= p134s0f0") - -hit pattern but not defined input set:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.0.1"= , dst=3D"192.168.0.2")/TCP(sport=3D12, dport=3D13)/("X"*480)], iface=3D"enp= 134s0f0") - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D1, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.0.1"= , dst=3D"192.168.0.2")/TCP(sport=3D12, dport=3D13)/("X"*480)], iface=3D"enp= 134s0f0") - -Subcase: MAC_IPV4_GTPU_EH_IPV4_TCP -:::::::::::::::::::::::::::::::::: -rule:: - - 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 - -hit pattern and defined input set:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.0.1"= , dst=3D"192.168.0.2")/TCP(sport=3D12, dport=3D23)/("X"*480)], iface=3D"enp= 134s0f0") - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D1, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.0.1"= , dst=3D"192.168.0.2")/TCP(sport=3D22, dport=3D13)/("X"*480)], iface=3D"enp= 134s0f0") - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.10.1= ", dst=3D"192.168.0.2")/TCP(sport=3D22, dport=3D23)/("X"*480)], iface=3D"en= p134s0f0") - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D1, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.0.1"= , dst=3D"192.168.10.2")/TCP(sport=3D22, dport=3D23)/("X"*480)], iface=3D"en= p134s0f0") - - -Test case: MAC_IPV4_GTPU_IPV4 ->>>>>>>>>>>>>>>>>>>>>>>>>>>>> -basic hit pattern packets are the same in this test case:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /IP(dst=3D"192.168.0.1", src=3D"192.168.0.2")/("X"*480)],iface=3D"enp134s0f= 0") - -Subcase: MAC_IPV4_GTPU_IPV4_L3DST -::::::::::::::::::::::::::::::::: -rule:: - - flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 / end act= ions rss types ipv4 l3-dst-only end key_len 0 queues end / end - -hit pattern and defined input set:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /IP(dst=3D"192.168.10.1", src=3D"192.168.0.2")/("X"*480)],iface=3D"enp134s0= f0") - -hit pattern but not defined input set:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /IP(dst=3D"192.168.0.1", src=3D"192.168.10.2")/("X"*480)],iface=3D"enp134s0= f0") - -Subcase: MAC_IPV4_GTPU_IPV4_L3SRC -::::::::::::::::::::::::::::::::: -rule:: - - flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 / end act= ions rss types ipv4 l3-src-only end key_len 0 queues end / end - -hit pattern and defined input set:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /IP(dst=3D"192.168.0.1", src=3D"192.168.10.2")/("X"*480)],iface=3D"enp134s0= f0") - -hit pattern but not defined input set:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /IP(dst=3D"192.168.10.1", src=3D"192.168.0.2")/("X"*480)],iface=3D"enp134s0= f0") - -Subcase: MAC_IPV4_GTPU_IPV4 -::::::::::::::::::::::::::: -rule:: - - flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 / end act= ions rss types ipv4 end key_len 0 queues end / end - -hit pattern and defined input set:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /IP(dst=3D"192.168.10.1", src=3D"192.168.0.2")/("X"*480)],iface=3D"enp134s0= f0") - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /IP(dst=3D"192.168.0.1", src=3D"192.168.10.2")/("X"*480)],iface=3D"enp134s0= f0") - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /IP(dst=3D"192.168.10.1", src=3D"192.168.10.2")/("X"*480)],iface=3D"enp134s= 0f0") - -Subcase: MAC_IPV4_GTPU_IPV4_gtpu -:::::::::::::::::::::::::::::::: -rule:: - - flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 / end act= ions rss types gtpu end key_len 0 queues end / end - -hit pattern and defined input set:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123457)= /IP(dst=3D"192.168.0.1", src=3D"192.168.0.2")/("X"*480)],iface=3D"enp134s0f= 0") - -hit pattern but not defined input set:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /IP(dst=3D"192.168.10.1", src=3D"192.168.10.2")/("X"*480)],iface=3D"enp134s= 0f0") - -Test case: MAC_IPV4_GTPU_IPV4_UDP ->>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> -basic hit pattern packets are the same in this test case:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /IP(src=3D"192.168.0.1", dst=3D"192.168.0.2")/UDP(sport=3D22, dport=3D23)/(= "X"*480)], iface=3D"enp134s0f0") - -Subcase: MAC_IPV4_GTPU_IPV4_UDP_L3DST -::::::::::::::::::::::::::::::::::::: -rule:: - - flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 / udp / e= nd actions rss types ipv4-udp l3-dst-only end key_len 0 queues end / end - -hit pattern and defined input set:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /IP(src=3D"192.168.0.1", dst=3D"192.168.10.2")/UDP(sport=3D22, dport=3D23)/= ("X"*480)], iface=3D"enp134s0f0") - -hit pattern but not defined input set:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /IP(src=3D"192.168.10.1", dst=3D"192.168.0.2")/UDP(sport=3D12, dport=3D13)/= ("X"*480)], iface=3D"enp134s0f0") - -Subcase: MAC_IPV4_GTPU_IPV4_UDP_L3SRC -::::::::::::::::::::::::::::::::::::: -rule:: - - flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 / udp / e= nd actions rss types ipv4-udp l3-src-only end key_len 0 queues end / end - -hit pattern and defined input set:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /IP(src=3D"192.168.10.1", dst=3D"192.168.0.2")/UDP(sport=3D22, dport=3D23)/= ("X"*480)], iface=3D"enp134s0f0") - -hit pattern but not defined input set:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /IP(src=3D"192.168.0.1", dst=3D"192.168.10.2")/UDP(sport=3D12, dport=3D13)/= ("X"*480)], iface=3D"enp134s0f0") - -Subcase: MAC_IPV4_GTPU_IPV4_UDP_L3SRC_L4SRC -::::::::::::::::::::::::::::::::::::::::::: -rule:: - - flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 / udp / e= nd actions rss types ipv4-udp l3-src-only l4-src-only end key_len 0 queues = end / end - -hit pattern and defined input set:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /IP(src=3D"192.168.10.1", dst=3D"192.168.0.2")/UDP(sport=3D22, dport=3D23)/= ("X"*480)], iface=3D"enp134s0f0") - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /IP(src=3D"192.168.0.1", dst=3D"192.168.0.2")/UDP(sport=3D12, dport=3D23)/(= "X"*480)], iface=3D"enp134s0f0") - -hit pattern but not defined input set:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /IP(src=3D"192.168.0.1", dst=3D"192.168.10.2")/UDP(sport=3D22, dport=3D13)/= ("X"*480)], iface=3D"enp134s0f0") - -Subcase: MAC_IPV4_GTPU_IPV4_UDP_L3SRC_L4DST -::::::::::::::::::::::::::::::::::::::::::: -rule:: - - flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 / udp / e= nd actions rss types ipv4-udp l3-src-only l4-dst-only end key_len 0 queues = end / end - -hit pattern and defined input set:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /IP(src=3D"192.168.10.1", dst=3D"192.168.0.2")/UDP(sport=3D22, dport=3D23)/= ("X"*480)], iface=3D"enp134s0f0") - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /IP(src=3D"192.168.0.1", dst=3D"192.168.0.2")/UDP(sport=3D22, dport=3D13)/(= "X"*480)], iface=3D"enp134s0f0") - -hit pattern but not defined input set:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /IP(src=3D"192.168.0.1", dst=3D"192.168.10.2")/UDP(sport=3D12, dport=3D23)/= ("X"*480)], iface=3D"enp134s0f0") - -Subcase: MAC_IPV4_GTPU_IPV4_UDP_L3DST_L4SRC -::::::::::::::::::::::::::::::::::::::::::: -rule:: - - flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 / udp / e= nd actions rss types ipv4-udp l3-dst-only l4-src-only end key_len 0 queues = end / end - -hit pattern and defined input set:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /IP(src=3D"192.168.0.1", dst=3D"192.168.10.2")/UDP(sport=3D22, dport=3D23)/= ("X"*480)], iface=3D"enp134s0f0") - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /IP(src=3D"192.168.0.1", dst=3D"192.168.0.2")/UDP(sport=3D12, dport=3D23)/(= "X"*480)], iface=3D"enp134s0f0") - -hit pattern but not defined input set:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /IP(src=3D"192.168.10.1", dst=3D"192.168.0.2")/UDP(sport=3D22, dport=3D13)/= ("X"*480)], iface=3D"enp134s0f0") - -Subcase: MAC_IPV4_GTPU_IPV4_UDP_L3DST_L4DST -::::::::::::::::::::::::::::::::::::::::::: -rule:: - - flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 / udp / e= nd actions rss types ipv4-udp l3-dst-only l4-dst-only end key_len 0 queues = end / end - -hit pattern and defined input set:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /IP(src=3D"192.168.0.1", dst=3D"192.168.10.2")/UDP(sport=3D22, dport=3D23)/= ("X"*480)], iface=3D"enp134s0f0") - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /IP(src=3D"192.168.0.1", dst=3D"192.168.0.2")/UDP(sport=3D22, dport=3D13)/(= "X"*480)], iface=3D"enp134s0f0") - -hit pattern but not defined input set:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /IP(src=3D"192.168.10.1", dst=3D"192.168.0.2")/UDP(sport=3D12, dport=3D23)/= ("X"*480)], iface=3D"enp134s0f0") - -Subcase: MAC_IPV4_GTPU_IPV4_UDP_L4DST -::::::::::::::::::::::::::::::::::::: -rule:: - - flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 / udp / e= nd actions rss types ipv4-udp l4-dst-only end key_len 0 queues end / end - -hit pattern and defined input set:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /IP(src=3D"192.168.0.1", dst=3D"192.168.0.2")/UDP(sport=3D22, dport=3D13)/(= "X"*480)], iface=3D"enp134s0f0") - -hit pattern but not defined input set:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /IP(src=3D"192.168.10.1", dst=3D"192.168.10.2")/UDP(sport=3D12, dport=3D23)= /("X"*480)], iface=3D"enp134s0f0") - -Subcase: MAC_IPV4_GTPU_IPV4_UDP_L4SRC -::::::::::::::::::::::::::::::::::::: -rule:: - - 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 en= d / end - -hit pattern and defined input set:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /IP(src=3D"192.168.0.1", dst=3D"192.168.0.2")/UDP(sport=3D12, dport=3D23)/(= "X"*480)], iface=3D"enp134s0f0") - -hit pattern but not defined input set:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /IP(src=3D"192.168.10.1", dst=3D"192.168.10.2")/UDP(sport=3D22, dport=3D13)= /("X"*480)], iface=3D"enp134s0f0") - -Subcase: MAC_IPV4_GTPU_IPV4_UDP_L3 -:::::::::::::::::::::::::::::::::: -rule:: - - flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 / udp / e= nd actions rss types ipv4 end key_len 0 queues end / end - -hit pattern and defined input set:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /IP(src=3D"192.168.10.1", dst=3D"192.168.0.2")/UDP(sport=3D22, dport=3D23)/= ("X"*480)], iface=3D"enp134s0f0") - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /IP(src=3D"192.168.0.1", dst=3D"192.168.10.2")/UDP(sport=3D22, dport=3D23)/= ("X"*480)], iface=3D"enp134s0f0") - -hit pattern but not defined input set:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /IP(src=3D"192.168.0.1", dst=3D"192.168.0.2")/UDP(sport=3D12, dport=3D13)/(= "X"*480)], iface=3D"enp134s0f0") - -Subcase: MAC_IPV4_GTPU_IPV4_UDP -::::::::::::::::::::::::::::::: -rule:: - - flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 / udp / e= nd actions rss types ipv4-udp end key_len 0 queues end / end - -hit pattern and defined input set:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /IP(src=3D"192.168.0.1", dst=3D"192.168.0.2")/UDP(sport=3D12, dport=3D23)/(= "X"*480)], iface=3D"enp134s0f0") - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /IP(src=3D"192.168.0.1", dst=3D"192.168.0.2")/UDP(sport=3D22, dport=3D13)/(= "X"*480)], iface=3D"enp134s0f0") - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /IP(src=3D"192.168.10.1", dst=3D"192.168.0.2")/UDP(sport=3D22, dport=3D23)/= ("X"*480)], iface=3D"enp134s0f0") - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /IP(src=3D"192.168.0.1", dst=3D"192.168.10.2")/UDP(sport=3D22, dport=3D23)/= ("X"*480)], iface=3D"enp134s0f0") - - -Test case: MAC_IPV4_GTPU_IPV4_TCP ->>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> -basic hit pattern packets are the same in this test case:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /IP(src=3D"192.168.0.1", dst=3D"192.168.0.2")/TCP(sport=3D22, dport=3D23)/(= "X"*480)], iface=3D"enp134s0f0") - -Subcase: MAC_IPV4_GTPU_IPV4_TCP_L3DST -::::::::::::::::::::::::::::::::::::: -rule:: - - flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 / tcp / e= nd actions rss types ipv4-tcp l3-dst-only end key_len 0 queues end / end - -hit pattern and defined input set:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /IP(src=3D"192.168.0.1", dst=3D"192.168.10.2")/TCP(sport=3D22, dport=3D23)/= ("X"*480)], iface=3D"enp134s0f0") - -hit pattern but not defined input set:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /IP(src=3D"192.168.10.1", dst=3D"192.168.0.2")/TCP(sport=3D12, dport=3D13)/= ("X"*480)], iface=3D"enp134s0f0") - -Subcase: MAC_IPV4_GTPU_IPV4_TCP_L3SRC -::::::::::::::::::::::::::::::::::::: -rule:: - - flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 / tcp / e= nd actions rss types ipv4-tcp l3-src-only end key_len 0 queues end / end - -hit pattern and defined input set:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /IP(src=3D"192.168.10.1", dst=3D"192.168.0.2")/TCP(sport=3D22, dport=3D23)/= ("X"*480)], iface=3D"enp134s0f0") - -hit pattern but not defined input set:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /IP(src=3D"192.168.0.1", dst=3D"192.168.10.2")/TCP(sport=3D12, dport=3D13)/= ("X"*480)], iface=3D"enp134s0f0") - -Subcase: MAC_IPV4_GTPU_IPV4_TCP_L3SRC_L4SRC -::::::::::::::::::::::::::::::::::::::::::: -rule:: - - flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 / tcp / e= nd actions rss types ipv4-tcp l3-src-only l4-src-only end key_len 0 queues = end / end - -hit pattern and defined input set:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /IP(src=3D"192.168.10.1", dst=3D"192.168.0.2")/TCP(sport=3D22, dport=3D23)/= ("X"*480)], iface=3D"enp134s0f0") - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /IP(src=3D"192.168.0.1", dst=3D"192.168.0.2")/TCP(sport=3D12, dport=3D23)/(= "X"*480)], iface=3D"enp134s0f0") - -hit pattern but not defined input set:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /IP(src=3D"192.168.0.1", dst=3D"192.168.10.2")/TCP(sport=3D22, dport=3D13)/= ("X"*480)], iface=3D"enp134s0f0") - -Subcase: MAC_IPV4_GTPU_IPV4_TCP_L3SRC_L4DST -::::::::::::::::::::::::::::::::::::::::::: -rule:: - - flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 / tcp / e= nd actions rss types ipv4-tcp l3-src-only l4-dst-only end key_len 0 queues = end / end - -hit pattern and defined input set:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /IP(src=3D"192.168.10.1", dst=3D"192.168.0.2")/TCP(sport=3D22, dport=3D23)/= ("X"*480)], iface=3D"enp134s0f0") - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /IP(src=3D"192.168.0.1", dst=3D"192.168.0.2")/TCP(sport=3D22, dport=3D13)/(= "X"*480)], iface=3D"enp134s0f0") - -hit pattern but not defined input set:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /IP(src=3D"192.168.0.1", dst=3D"192.168.10.2")/TCP(sport=3D12, dport=3D23)/= ("X"*480)], iface=3D"enp134s0f0") - -Subcase: MAC_IPV4_GTPU_IPV4_TCP_L3DST_L4SRC -::::::::::::::::::::::::::::::::::::::::::: -rule:: - - flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 / tcp / e= nd actions rss types ipv4-tcp l3-dst-only l4-src-only end key_len 0 queues = end / end - -hit pattern and defined input set:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /IP(src=3D"192.168.0.1", dst=3D"192.168.10.2")/TCP(sport=3D22, dport=3D23)/= ("X"*480)], iface=3D"enp134s0f0") - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /IP(src=3D"192.168.0.1", dst=3D"192.168.0.2")/TCP(sport=3D12, dport=3D23)/(= "X"*480)], iface=3D"enp134s0f0") - -hit pattern but not defined input set:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /IP(src=3D"192.168.10.1", dst=3D"192.168.0.2")/TCP(sport=3D22, dport=3D13)/= ("X"*480)], iface=3D"enp134s0f0") - -Subcase: MAC_IPV4_GTPU_IPV4_TCP_L3DST_L4DST -::::::::::::::::::::::::::::::::::::::::::: -rule:: - - flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 / tcp / e= nd actions rss types ipv4-tcp l3-dst-only l4-dst-only end key_len 0 queues = end / end - -hit pattern and defined input set:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /IP(src=3D"192.168.0.1", dst=3D"192.168.10.2")/TCP(sport=3D22, dport=3D23)/= ("X"*480)], iface=3D"enp134s0f0") - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /IP(src=3D"192.168.0.1", dst=3D"192.168.0.2")/TCP(sport=3D22, dport=3D13)/(= "X"*480)], iface=3D"enp134s0f0") - -hit pattern but not defined input set:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /IP(src=3D"192.168.10.1", dst=3D"192.168.0.2")/TCP(sport=3D12, dport=3D23)/= ("X"*480)], iface=3D"enp134s0f0") - -Subcase: MAC_IPV4_GTPU_IPV4_TCP_L4DST -::::::::::::::::::::::::::::::::::::: -rule:: - - flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 / tcp / e= nd actions rss types ipv4-tcp l4-dst-only end key_len 0 queues end / end - -hit pattern and defined input set:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /IP(src=3D"192.168.0.1", dst=3D"192.168.0.2")/TCP(sport=3D22, dport=3D13)/(= "X"*480)], iface=3D"enp134s0f0") - -hit pattern but not defined input set:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /IP(src=3D"192.168.10.1", dst=3D"192.168.10.2")/TCP(sport=3D12, dport=3D23)= /("X"*480)], iface=3D"enp134s0f0") - -Subcase: MAC_IPV4_GTPU_IPV4_TCP_L4SRC -::::::::::::::::::::::::::::::::::::: -rule:: - - 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 en= d / end - -hit pattern and defined input set:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /IP(src=3D"192.168.0.1", dst=3D"192.168.0.2")/TCP(sport=3D12, dport=3D23)/(= "X"*480)], iface=3D"enp134s0f0") - -hit pattern but not defined input set:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /IP(src=3D"192.168.10.1", dst=3D"192.168.10.2")/TCP(sport=3D22, dport=3D13)= /("X"*480)], iface=3D"enp134s0f0") - -Subcase: MAC_IPV4_GTPU_IPV4_TCP_L3 -:::::::::::::::::::::::::::::::::: -rule:: - - flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 / tcp / e= nd actions rss types ipv4 end key_len 0 queues end / end - -hit pattern and defined input set:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /IP(src=3D"192.168.10.1", dst=3D"192.168.0.2")/TCP(sport=3D22, dport=3D23)/= ("X"*480)], iface=3D"enp134s0f0") - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /IP(src=3D"192.168.0.1", dst=3D"192.168.10.2")/TCP(sport=3D22, dport=3D23)/= ("X"*480)], iface=3D"enp134s0f0") - -hit pattern but not defined input set:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /IP(src=3D"192.168.0.1", dst=3D"192.168.0.2")/TCP(sport=3D12, dport=3D13)/(= "X"*480)], iface=3D"enp134s0f0") - -Subcase: MAC_IPV4_GTPU_IPV4_TCP -::::::::::::::::::::::::::::::: -rule:: - - flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 / tcp / e= nd actions rss types ipv4-tcp end key_len 0 queues end / end - -hit pattern and defined input set:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /IP(src=3D"192.168.0.1", dst=3D"192.168.0.2")/TCP(sport=3D12, dport=3D23)/(= "X"*480)], iface=3D"enp134s0f0") - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /IP(src=3D"192.168.0.1", dst=3D"192.168.0.2")/TCP(sport=3D22, dport=3D13)/(= "X"*480)], iface=3D"enp134s0f0") - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /IP(src=3D"192.168.10.1", dst=3D"192.168.0.2")/TCP(sport=3D22, dport=3D23)/= ("X"*480)], iface=3D"enp134s0f0") - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /IP(src=3D"192.168.0.1", dst=3D"192.168.10.2")/TCP(sport=3D22, dport=3D23)/= ("X"*480)], iface=3D"enp134s0f0") - - - -Pattern: outer ipv4 + inner ipv6 --------------------------------- - -reconfig all the cases of "Pattern: outer ipv4 + inner ipv4" - - rule: - change inner ipv4 to ipv6, change ipv4-udp to ipv6-udp, change ipv= 4-tcp to ipv6-tcp. - packets: - change the packet's inner L3 layer from IP to IPv6; - change the ipv4 address to ipv6 address. - -Pattern: outer ipv6 + inner ipv4 --------------------------------- - -reconfig all the cases of "Pattern: outer ipv4 + inner ipv4" - - rule: - change outer ipv4 to ipv6. - packets: - change the packet's outer L3 layer from:: - - IP(proto=3D0x2F)/GRE(proto=3D0x0800)/IP() - - to:: - - IPv6(nh=3D0x2F)/GRE(proto=3D0x86dd)/IPv6() - - after Ether layer, before IP layer, just like:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IPv6(nh=3D0x2F)/GRE(prot= o=3D0x86dd)/IPv6()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x= 123456)/GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(dst=3D"192.1= 68.0.1", src=3D"192.168.0.2")/("X"*480)],iface=3D"enp134s0f0") - - -Pattern: outer ipv6 + inner ipv6 --------------------------------- - -reconfig all the cases of "Pattern: outer ipv4 + inner ipv4" - - rule: - change outer ipv4 to ipv6. - change inner ipv4 to ipv6, change ipv4-udp to ipv6-udp, change ipv= 4-tcp to ipv6-tcp. - packets: - change the packet's inner L3 layer from IP to IPv6; - change the ipv4 address to ipv6 address. - change the packet's outer L3 layer from:: - - IP(proto=3D0x2F)/GRE(proto=3D0x0800)/IP() - - to:: - - IPv6(nh=3D0x2F)/GRE(proto=3D0x86dd)/IPv6() - - after Ether layer, before IP layer, just like:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IPv6(nh=3D0x2F)/GRE(prot= o=3D0x86dd)/IPv6()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x= 123456)/GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IPv6(src=3D"ABA= B:910B:6666:3457:8295:3333:1800:2929",dst=3D"CDCD:910A:2222:5498:8475:1111:= 3900:2020")/("X"*480)],iface=3D"enp134s0f0") - - -symmetric cases -=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D - -all the test cases run the same test steps as below: - -1. validate rule. -2. create rule and list rule. -3. send a basic hit pattern packet,record the hash value. -4. send a hit pattern packet with switched value of input set in the rule. - check the received packets have same hash value. - check both the packets are distributed to queues by rss. -5. destroy the rule and list rule. -6. send the packet in step 4. - check the received packet has different hash value with which in step 3= (including the case has no hash value). - -Pattern: symmetric outer ipv4 + inner ipv4 ------------------------------------------- - -Test case: symmetric MAC_IPV4_GTPU_EH_IPV4 with UL/DL ->>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> -Subcase: symmetric MAC_IPV4_GTPU_EH_DL_IPV4 -::::::::::::::::::::::::::::::::::::::::::: -rule:: - - 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_le= n 0 queues end / end - -hit pattern/defined input set: -MAC_IPV4_GTPU_EH_DL_IPV4 nonfrag:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.0.1"= ,dst=3D"192.168.0.2")/("X"*480)], iface=3D"enp134s0f0") - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.0.2"= ,dst=3D"192.168.0.1")/("X"*480)], iface=3D"enp134s0f0") - -MAC_IPV4_GTPU_EH_DL_IPV4 frag:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.0.3"= ,dst=3D"192.168.0.8",frag=3D6)/("X"*480)], iface=3D"enp134s0f0") - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.0.8"= ,dst=3D"192.168.0.3",frag=3D6)/("X"*480)], iface=3D"enp134s0f0") - -MAC_IPV4_GTPU_EH_DL_IPV4_ICMP:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.0.10= ",dst=3D"192.168.0.20")/ICMP()/("X"*480)], iface=3D"enp134s0f0") - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.0.20= ",dst=3D"192.168.0.10")/ICMP()/("X"*480)], iface=3D"enp134s0f0") - -MAC_IPV4_GTPU_EH_DL_IPV4_UDP:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.0.10= ",dst=3D"192.168.0.20")/UDP()/("X"*480)], iface=3D"enp134s0f0") - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.0.20= ",dst=3D"192.168.0.10")/UDP()/("X"*480)], iface=3D"enp134s0f0") - - -Subcase: symmetric MAC_IPV4_GTPU_EH_UL_IPV4 -::::::::::::::::::::::::::::::::::::::::::: -rule:: - - 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_le= n 0 queues end / end - -packets: change the pdu_type value(0->1/1->0) of packets of Subcase symmet= ric MAC_IPV4_GTPU_EH_DL_IPV4. - - -Test case: symmetric MAC_IPV4_GTPU_EH_IPV4_UDP with UL/DL ->>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> -Subcase: symmetric MAC_IPV4_GTPU_EH_DL_IPV4_UDP -::::::::::::::::::::::::::::::::::::::::::::::: -rule:: - - 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 - -hit pattern/defined input set:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.0.1"= , dst=3D"192.168.0.2")/UDP(sport=3D22,dport=3D23)/("X"*480)], iface=3D"enp1= 34s0f0") - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.0.2"= , dst=3D"192.168.0.1")/UDP(sport=3D22,dport=3D23)/("X"*480)], iface=3D"enp1= 34s0f0") - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.0.1"= , dst=3D"192.168.0.2")/UDP(sport=3D23,dport=3D22)/("X"*480)], iface=3D"enp1= 34s0f0") - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.0.2"= , dst=3D"192.168.0.1")/UDP(sport=3D23,dport=3D22)/("X"*480)], iface=3D"enp1= 34s0f0") - - -Subcase: symmetric MAC_IPV4_GTPU_EH_UL_IPV4_UDP -::::::::::::::::::::::::::::::::::::::::::::::: -rule:: - - 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 - -packets: change the pdu_type value(0->1/1->0) of packets of Subcase symmet= ric MAC_IPV4_GTPU_EH_DL_IPV4. - - -Test case: symmetric MAC_IPV4_GTPU_EH_IPV4_TCP with UL/DL ->>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> -the rules and packets in this test case is similar to "Test case: symmetri= c MAC_IPV4_GTPU_EH_IPV4_UDP with UL/DL" -just change some parts of rules and packets:: - - rule: - change inner udp to tcp, change ipv4-udp to ipv4-tcp - packets: - change the packet's inner L4 layer UDP to TCP - -Subcase: symmetric MAC_IPV4_GTPU_EH_DL_IPV4_TCP -::::::::::::::::::::::::::::::::::::::::::::::: - -Subcase: symmetric MAC_IPV4_GTPU_EH_UL_IPV4_TCP -::::::::::::::::::::::::::::::::::::::::::::::: - -Test case: symmetric MAC_IPV4_GTPU_EH_IPV4 without UL/DL ->>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> -rule:: - - 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 - -hit pattern/defined input set:: -MAC_IPV4_GTPU_EH_DL_IPV4 nonfrag:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.0.1"= ,dst=3D"192.168.0.2")/("X"*480)], iface=3D"enp134s0f0") - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.0.2"= ,dst=3D"192.168.0.1")/("X"*480)], iface=3D"enp134s0f0") - -MAC_IPV4_GTPU_EH_DL_IPV4 frag:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D1, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.0.3"= ,dst=3D"192.168.0.8",frag=3D6)/("X"*480)], iface=3D"enp134s0f0") - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D1, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.0.8"= ,dst=3D"192.168.0.3",frag=3D6)/("X"*480)], iface=3D"enp134s0f0") - -MAC_IPV4_GTPU_EH_DL_IPV4_ICMP:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.0.10= ",dst=3D"192.168.0.20")/ICMP()/("X"*480)], iface=3D"enp134s0f0") - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.0.20= ",dst=3D"192.168.0.10")/ICMP()/("X"*480)], iface=3D"enp134s0f0") - -MAC_IPV4_GTPU_EH_DL_IPV4_UDP:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D1, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.0.10= ",dst=3D"192.168.0.20")/UDP()/("X"*480)], iface=3D"enp134s0f0") - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D1, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.0.20= ",dst=3D"192.168.0.10")/UDP()/("X"*480)], iface=3D"enp134s0f0") - - -Test case: symmetric MAC_IPV4_GTPU_EH_IPV4_UDP without UL/DL ->>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> -rule:: - - 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 - -hit pattern/defined input set:: -MAC_IPV4_GTPU_EH_DL_IPV4_UDP:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.0.1"= , dst=3D"192.168.0.2")/UDP(sport=3D22,dport=3D23)/("X"*480)], iface=3D"enp1= 34s0f0") - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.0.2"= , dst=3D"192.168.0.1")/UDP(sport=3D22,dport=3D23)/("X"*480)], iface=3D"enp1= 34s0f0") - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.0.1"= , dst=3D"192.168.0.2")/UDP(sport=3D23,dport=3D22)/("X"*480)], iface=3D"enp1= 34s0f0") - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.0.2"= , dst=3D"192.168.0.1")/UDP(sport=3D23,dport=3D22)/("X"*480)], iface=3D"enp1= 34s0f0") - -MAC_IPV4_GTPU_EH_UL_IPV4_UDP:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D1, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.0.1"= , dst=3D"192.168.0.2")/UDP(sport=3D22,dport=3D23)/("X"*480)], iface=3D"enp1= 34s0f0") - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D1, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.0.2"= , dst=3D"192.168.0.1")/UDP(sport=3D22,dport=3D23)/("X"*480)], iface=3D"enp1= 34s0f0") - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D1, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.0.1"= , dst=3D"192.168.0.2")/UDP(sport=3D23,dport=3D22)/("X"*480)], iface=3D"enp1= 34s0f0") - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /GTPPDUSessionContainer(type=3D1, P=3D1, QFI=3D0x34)/IP(src=3D"192.168.0.2"= , dst=3D"192.168.0.1")/UDP(sport=3D23,dport=3D22)/("X"*480)], iface=3D"enp1= 34s0f0") - - -Test case: symmetric MAC_IPV4_GTPU_EH_IPV4_TCP without UL/DL ->>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> -the rules and packets in this test case is similar to "Test case: symmetri= c MAC_IPV4_GTPU_EH_IPV4_UDP without UL/DL" -just change some parts of rules and packets:: - - rule: - change inner udp to tcp, change ipv4-udp to ipv4-tcp - packets: - change the packet's inner L4 layer UDP to TCP - - -Test case: symmetric MAC_IPV4_GTPU_IPV4 ->>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> -rule:: - - flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 / end act= ions rss func symmetric_toeplitz types ipv4 end key_len 0 queues end / end - -hit pattern/defined input set:: -MAC_IPV4_GTPU_IPV4 nonfrag:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /IP(src=3D"192.168.0.1",dst=3D"192.168.0.2")/("X"*480)], iface=3D"enp134s0f= 0") - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /IP(src=3D"192.168.0.2",dst=3D"192.168.0.1")/("X"*480)], iface=3D"enp134s0f= 0") - -MAC_IPV4_GTPU_IPV4 frag:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /IP(src=3D"192.168.0.3",dst=3D"192.168.0.8",frag=3D6)/("X"*480)], iface=3D"= enp134s0f0") - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /IP(src=3D"192.168.0.8",dst=3D"192.168.0.3",frag=3D6)/("X"*480)], iface=3D"= enp134s0f0") - -MAC_IPV4_GTPU_IPV4_ICMP:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /IP(src=3D"192.168.0.10",dst=3D"192.168.0.20")/ICMP()/("X"*480)], iface=3D"= enp134s0f0") - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /IP(src=3D"192.168.0.20",dst=3D"192.168.0.10")/ICMP()/("X"*480)], iface=3D"= enp134s0f0") - -MAC_IPV4_GTPU_IPV4_UDP:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /IP(src=3D"192.168.0.10",dst=3D"192.168.0.20")/UDP()/("X"*480)], iface=3D"e= np134s0f0") - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /IP(src=3D"192.168.0.20",dst=3D"192.168.0.10")/UDP()/("X"*480)], iface=3D"e= np134s0f0") - -Test case: symmetric MAC_IPV4_GTPU_IPV4_UDP ->>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> -rule:: - - flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 / udp / e= nd actions rss func symmetric_toeplitz types ipv4-udp end key_len 0 queues = end / end - -hit pattern/defined input set:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /IP(src=3D"192.168.0.1", dst=3D"192.168.0.2")/UDP(sport=3D22,dport=3D23)/("= X"*480)], iface=3D"enp134s0f0") - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /IP(src=3D"192.168.0.2", dst=3D"192.168.0.1")/UDP(sport=3D22,dport=3D23)/("= X"*480)], iface=3D"enp134s0f0") - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /IP(src=3D"192.168.0.1", dst=3D"192.168.0.2")/UDP(sport=3D23,dport=3D22)/("= X"*480)], iface=3D"enp134s0f0") - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /IP(src=3D"192.168.0.2", dst=3D"192.168.0.1")/UDP(sport=3D23,dport=3D22)/("= X"*480)], iface=3D"enp134s0f0") - - -Test case: symmetric MAC_IPV4_GTPU_IPV4_TCP ->>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> -the rules and packets in this test case is similar to "Test case: symmetri= c MAC_IPV4_GTPU_IPV4_UDP" -just change some parts of rules and packets:: - - rule: - change inner udp to tcp, change ipv4-udp to ipv4-tcp - packets: - change the packet's inner L4 layer UDP to TCP - - - -Pattern: symmetric outer ipv4 + inner ipv6 ------------------------------------------- - -reconfig all the cases of "Pattern: symmetric outer ipv4 + inner ipv4" - - rule: - change inner ipv4 to ipv6, change ipv4-udp to ipv6-udp, change ipv= 4-tcp to ipv6-tcp. - packets: - change the packet's inner L3 layer from IP to IPv6; - change the ipv4 address to ipv6 address. - - -Pattern: symmetric outer ipv6 + inner ipv4 ------------------------------------------- - -reconfig all the cases of "Pattern: symmetric outer ipv4 + inner ipv4" - - rule: - change outer ipv4 to ipv6. - packets: - change the packet's outer L3 layer from:: - - IP(proto=3D0x2F)/GRE(proto=3D0x0800)/IP() - - to:: - - IPv6(nh=3D0x2F)/GRE(proto=3D0x86dd)/IPv6() - - after Ether layer, before IP layer, just like:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IPv6(nh=3D0x2F)/GRE(prot= o=3D0x86dd)/IPv6()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x= 123456)/GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(dst=3D"192.1= 68.0.1", src=3D"192.168.0.2")/("X"*480)],iface=3D"enp134s0f0") - - -Pattern: symmetric outer ipv6 + inner ipv6 ------------------------------------------- - -reconfig all the cases of "Pattern: symmetric outer ipv4 + inner ipv4" - - rule: - change outer ipv4 to ipv6. - change inner ipv4 to ipv6, change ipv4-udp to ipv6-udp, change ipv= 4-tcp to ipv6-tcp. - packets: - change the packet's inner L3 layer from IP to IPv6; - change the ipv4 address to ipv6 address. - change the packet's outer L3 layer from:: - - IP(proto=3D0x2F)/GRE(proto=3D0x0800)/IP() - - to:: - - IPv6(nh=3D0x2F)/GRE(proto=3D0x86dd)/IPv6() - - after Ether layer, before IP layer, just like:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IPv6(nh=3D0x2F)/GRE(prot= o=3D0x86dd)/IPv6()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x= 123456)/GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IPv6(src=3D"ABA= B:910B:6666:3457:8295:3333:1800:2929",dst=3D"CDCD:910A:2222:5498:8475:1111:= 3900:2020")/("X"*480)],iface=3D"enp134s0f0") - - -inner L4 protocol hash case -=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D -Subcase: MAC_IPV4_GTPU_IPV4_UDP/TCP ------------------------------------ -1. create rules:: - - flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 / udp / e= nd actions rss types ipv4-udp end key_len 0 queues end / end - flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv4 / tcp / e= nd actions rss types ipv4-tcp end key_len 0 queues end / end - -2. send packets:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /IP(dst=3D"192.168.0.1",src=3D"192.168.0.2")/TCP(sport=3D22,dport=3D23)/("X= "*480)],iface=3D"enp134s0f0") - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /IP(dst=3D"192.168.0.1",src=3D"192.168.0.2")/UDP(sport=3D22,dport=3D23)/("X= "*480)],iface=3D"enp134s0f0") - -3. check the two packets received with different hash values, and distribu= ted to queue by RSS. - -4. flush the rules, send the two packets again, check they are distributed= to the same queue:: - - testpmd> flow flush 0 - -Subcase: MAC_IPV6_GTPU_IPV4_UDP/TCP ------------------------------------ -1. create rules:: - - flow create 0 ingress pattern eth / ipv6 / udp / gtpu / ipv4 / udp / e= nd actions rss types ipv4-udp end key_len 0 queues end / end - flow create 0 ingress pattern eth / ipv6 / udp / gtpu / ipv4 / tcp / e= nd actions rss types ipv4-tcp end key_len 0 queues end / end - -2. send packets:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IPv6(nh=3D0x2F)/GRE(proto=3D0x= 86dd)/IPv6()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456= )/IP(dst=3D"192.168.0.1",src=3D"192.168.0.2")/TCP(sport=3D22,dport=3D23)/("= X"*480)],iface=3D"enp134s0f0") - sendp([Ether(dst=3D"00:11:22:33:44:55")/IPv6(nh=3D0x2F)/GRE(proto=3D0x= 86dd)/IPv6()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456= )/IP(dst=3D"192.168.0.1",src=3D"192.168.0.2")/UDP(sport=3D22,dport=3D23)/("= X"*480)],iface=3D"enp134s0f0") - -3. check the two packets received with different hash values, and distribu= ted to queue by RSS. - -4. flush the rules, send the two packets again, check they are distributed= to the same queue:: - - testpmd> flow flush 0 - -Subcase: MAC_IPV4_GTPU_IPV6_UDP/TCP ------------------------------------ -1. create rules:: - - flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv6 / udp / e= nd actions rss types ipv6-udp end key_len 0 queues end / end - flow create 0 ingress pattern eth / ipv4 / udp / gtpu / ipv6 / tcp / e= nd actions rss types ipv6-tcp end key_len 0 queues end / end - -2. send packets:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /IPv6(dst=3D"1111:2222:3333:4444:5555:6666:7777:8888",src=3D"2222:3333:4444= :5555:6666:7777:8888:9999")/TCP(sport=3D22,dport=3D23)/("X"*480)],iface=3D"= enp134s0f0") - sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0= x0800)/IP()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456)= /IPv6(dst=3D"1111:2222:3333:4444:5555:6666:7777:8888",src=3D"2222:3333:4444= :5555:6666:7777:8888:9999")/UDP(sport=3D22,dport=3D23)/("X"*480)],iface=3D"= enp134s0f0") - -3. check the two packets received with different hash values, and distribu= ted to queue by RSS. - -4. flush the rules, send the two packets again, check they are distributed= to the same queue:: - - testpmd> flow flush 0 - -Subcase: MAC_IPV6_GTPU_IPV6_UDP/TCP ------------------------------------ -1. create rules:: - - flow create 0 ingress pattern eth / ipv6 / udp / gtpu / ipv6 / udp / e= nd actions rss types ipv6-udp end key_len 0 queues end / end - flow create 0 ingress pattern eth / ipv6 / udp / gtpu / ipv6 / tcp / e= nd actions rss types ipv6-tcp end key_len 0 queues end / end - -2. send packets:: - - sendp([Ether(dst=3D"00:11:22:33:44:55")/IPv6(nh=3D0x2F)/GRE(proto=3D0x= 86dd)/IPv6()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456= )/IPv6(dst=3D"1111:2222:3333:4444:5555:6666:7777:8888",src=3D"2222:3333:444= 4:5555:6666:7777:8888:9999")/TCP(sport=3D22,dport=3D23)/("X"*480)],iface=3D= "enp134s0f0") - sendp([Ether(dst=3D"00:11:22:33:44:55")/IPv6(nh=3D0x2F)/GRE(proto=3D0x= 86dd)/IPv6()/UDP(dport=3D2152)/GTP_U_Header(gtp_type=3D255, teid=3D0x123456= )/IPv6(dst=3D"1111:2222:3333:4444:5555:6666:7777:8888",src=3D"2222:3333:444= 4:5555:6666:7777:8888:9999")/UDP(sport=3D22,dport=3D23)/("X"*480)],iface=3D= "enp134s0f0") - -3. check the two packets received with different hash values, and distribu= ted to queue by RSS. - -4. flush the rules, send the two packets again, check they are distributed= to the same queue:: - - testpmd> flow flush 0 - -parse PFCP over GRE packet -=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D -Send packet:: - - sendp(Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0x= 0800)/IP()/UDP(sport=3D22, dport=3D8805)/PFCP(Sfield=3D0),iface=3D"enp216s0= f0") - sendp(Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0x= 0800)/IP()/UDP(sport=3D22, dport=3D8805)/PFCP(Sfield=3D1, SEID=3D123),iface= =3D"enp216s0f0") - sendp(Ether(dst=3D"00:11:22:33:44:55")/IPv6(nh=3D0x2F)/GRE(proto=3D0x8= 6dd)/IPv6()/UDP(sport=3D22, dport=3D8805)/PFCP(Sfield=3D0),iface=3D"enp216s= 0f0") - sendp(Ether(dst=3D"00:11:22:33:44:55")/IPv6(nh=3D0x2F)/GRE(proto=3D0x8= 6dd)/IPv6()/UDP(sport=3D22, dport=3D8805)/PFCP(Sfield=3D1, SEID=3D256),ifac= e=3D"enp216s0f0") - -It can be parsed as MAC_IPV4_PFCP_NODE:: - - ptype: 351 - port 0/queue 0: received 1 packets - src=3D00:00:00:00:00:00 - dst=3D00:11:22:33:44:55 - type=3D0x0800 - = length=3D82 - nb_segs=3D1 - sw ptype: L2_ETHER L3_IPV4 TUNNEL_GRE INNER_L3_= IPV4 INNER_L4_UDP - l2_len=3D14 - l3_len=3D20 - tunnel_len=3D4 - inner_l3_= len=3D20 - inner_l4_len=3D8 - Receive queue=3D0x0 - ol_flags: PKT_RX_L4_CKSUM_UNKNOWN PKT_RX_IP_CKSUM_UNKNOWN PKT_RX_OUT= ER_L4_CKSUM_UNKNOWN - -Send packet:: - - sendp(Ether(dst=3D"00:11:22:33:44:55")/IP(proto=3D0x2F)/GRE(proto=3D0x= 0800)/IP()/UDP(sport=3D22, dport=3D8805)/PFCP(Sfield=3D1, SEID=3D123),iface= =3D"enp216s0f0") - -It can be parsed as MAC_IPV4_PFCP_SESSION:: - - ptype: 352 - port 0/queue 0: received 1 packets - src=3D00:00:00:00:00:00 - dst=3D00:11:22:33:44:55 - type=3D0x0800 - = length=3D82 - nb_segs=3D1 - sw ptype: L2_ETHER L3_IPV4 TUNNEL_GRE INNER_L3_= IPV4 INNER_L4_UDP - l2_len=3D14 - l3_len=3D20 - tunnel_len=3D4 - inner_l3_= len=3D20 - inner_l4_len=3D8 - Receive queue=3D0x0 - ol_flags: PKT_RX_L4_CKSUM_UNKNOWN PKT_RX_IP_CKSUM_UNKNOWN PKT_RX_OUT= ER_L4_CKSUM_UNKNOWN - -Send packet:: - - sendp(Ether(dst=3D"00:11:22:33:44:55")/IPv6(nh=3D0x2F)/GRE(proto=3D0x8= 6dd)/IPv6()/UDP(sport=3D22, dport=3D8805)/PFCP(Sfield=3D0),iface=3D"enp216s= 0f0") - -It can be parsed as MAC_IPV6_PFCP_NODE:: - - ptype: 353 - port 0/queue 0: received 1 packets - src=3D00:00:00:00:00:00 - dst=3D00:11:22:33:44:55 - type=3D0x86dd - = length=3D122 - nb_segs=3D1 - sw ptype: L2_ETHER L3_IPV6 TUNNEL_GRE INNER_L3= _IPV6 INNER_L4_UDP - l2_len=3D14 - l3_len=3D40 - tunnel_len=3D4 - inner_l3= _len=3D40 - inner_l4_len=3D8 - Receive queue=3D0x0 - ol_flags: PKT_RX_L4_CKSUM_UNKNOWN PKT_RX_IP_CKSUM_UNKNOWN PKT_RX_OUT= ER_L4_CKSUM_UNKNOWN - -Send packet:: - - sendp(Ether(dst=3D"00:11:22:33:44:55")/IPv6(nh=3D0x2F)/GRE(proto=3D0x8= 6dd)/IPv6()/UDP(sport=3D22, dport=3D8805)/PFCP(Sfield=3D1, SEID=3D256),ifac= e=3D"enp216s0f0") - -It can be parsed as MAC_IPV6_PFCP_SESSION:: - - ptype: 354 - port 0/queue 0: received 1 packets - src=3D00:00:00:00:00:00 - dst=3D00:11:22:33:44:55 - type=3D0x86dd - = length=3D122 - nb_segs=3D1 - sw ptype: L2_ETHER L3_IPV6 TUNNEL_GRE INNER_L3= _IPV6 INNER_L4_UDP - l2_len=3D14 - l3_len=3D40 - tunnel_len=3D4 - inner_l3= _len=3D40 - inner_l4_len=3D8 - Receive queue=3D0x0 - ol_flags: PKT_RX_L4_CKSUM_UNKNOWN PKT_RX_IP_CKSUM_UNKNOWN PKT_RX_OUT= ER_L4_CKSUM_UNKNOWN +.. Copyright (c) <2021>, Intel Corporation=0D + All rights reserved.=0D +=0D + Redistribution and use in source and binary forms, with or without=0D + modification, are permitted provided that the following conditions=0D + are met:=0D +=0D + - Redistributions of source code must retain the above copyright=0D + notice, this list of conditions and the following disclaimer.=0D +=0D + - Redistributions in binary form must reproduce the above copyright=0D + notice, this list of conditions and the following disclaimer in=0D + the documentation and/or other materials provided with the=0D + distribution.=0D +=0D + - Neither the name of Intel Corporation nor the names of its=0D + contributors may be used to endorse or promote products derived=0D + from this software without specific prior written permission.=0D +=0D + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS=0D + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT=0D + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS=0D + FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE=0D + COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,=0D + INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES=0D + (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR=0D + SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)=0D + HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,=0D + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)=0D + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED=0D + OF THE POSSIBILITY OF SUCH DAMAGE.=0D +=0D +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=0D +CVL IAVF Support GTPoGRE in RSS=0D +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=0D +=0D +Description=0D +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=0D +The GTPoGRE pkt structure is shown below:=0D +.. table::=0D +=0D + +------------+------------+-----------+------------+-----------+-----+--= ----------+----------+--------+=0D + | MAC header | Eth header | IP Packet | GRE header | IP packet | UDP | G= TP header | IP packet| TCP/UDP|=0D + +------------+------------+-----------+------------+-----------+-----+--= ----------+----------+--------+=0D +=0D +As previous(dpdk-21.05) DDP limitation, the outer IP layer of an GTP over = GRE packet will be mapped to the outer layer of IP/GTPU/IP packet type,=0D +while customers need the second IP layer.=0D +A new DDP package is required in dpdk-21.08, the new DDP's parser will be = able to generate 3 layer's IP protocol header,=0D +so it will not allow a GTP over GRE packet to share the same profile with = a normal GTP packet.=0D +And DPDK need to support both RSS and FDIR in CVL IAVF.=0D +=0D +This test plan is designed to check the RSS of GTPoGRE.=0D +Supported input set: inner most l3/l4 src/dst=0D +Supported function: toeplitz, symmetric=0D +=0D +=0D +Prerequisites=0D +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=0D +1. Hardware:=0D + columbiaville_25g/columbiaville_100g=0D +=0D +2. Software:=0D + dpdk: http://dpdk.org/git/dpdk=0D + scapy: http://www.secdev.org/projects/scapy/=0D +=0D +3. Copy specific gtpogre(ice_gtp-o-gre-1.3.5.0.pkg) package to /lib/firmwa= re/updates/intel/ice/ddp/ice.pkg,=0D + then load driver::=0D +=0D + rmmod ice=0D + insmod ice.ko=0D +=0D +4. Compile DPDK::=0D +=0D + CC=3Dgcc meson --werror -Denable_kmods=3DTrue -Dlibdir=3Dlib --default= -library=3Dstatic x86_64-native-linuxapp-gcc=0D + ninja -C x86_64-native-linuxapp-gcc -j 110=0D +=0D +5. Get the pci device id of DUT, for example::=0D +=0D + ./usertools/dpdk-devbind.py -s=0D +=0D + 0000:18:00.0 'Device 159b' if=3Dens785f0 drv=3Dice unused=3Dvfio-pci=0D + 0000:18:00.1 'Device 159b' if=3Dens785f1 drv=3Dice unused=3Dvfio-pci=0D +=0D +6. Generate 4 VFs on PF0(not all the VFs are used)::=0D +=0D + echo 4 > /sys/bus/pci/devices/0000:18:00.0/sriov_numvfs=0D +=0D + ./usertools/dpdk-devbind.py -s=0D + 0000:18:01.0 'Ethernet Adaptive Virtual Function 1889' if=3Dens785f0v0= drv=3Diavf unused=3Dvfio-pci=0D + 0000:18:01.1 'Ethernet Adaptive Virtual Function 1889' if=3Dens785f0v1= drv=3Diavf unused=3Dvfio-pci=0D + 0000:18:01.2 'Ethernet Adaptive Virtual Function 1889' if=3Dens785f0v2= drv=3Diavf unused=3Dvfio-pci=0D + 0000:18:01.3 'Ethernet Adaptive Virtual Function 1889' if=3Dens785f0v3= drv=3Diavf unused=3Dvfio-pci=0D +=0D +7. Set mac addr for VFs::=0D +=0D + ip link set ens785f0 vf 1 mac 00:11:22:33:44:00=0D + ip link set ens785f0 vf 1 mac 00:11:22:33:44:11=0D + ip link set ens785f0 vf 2 mac 00:11:22:33:44:22=0D + ip link set ens785f0 vf 3 mac 00:11:22:33:44:33=0D +=0D +8. Bind VFs to dpdk driver::=0D +=0D + modprobe vfio-pci=0D + ./usertools/dpdk-devbind.py -b vfio-pci 0000:18:01.0 0000:18:01.1 0000= :18:01.2 0000:18:01.3=0D +=0D +9. launch testpmd::=0D +=0D + ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -c 0xf -n 4 -a 0000:18:0= 1.0 -- -i --rxq=3D16 --txq=3D16 --disable-rss=0D + testpmd> set fwd rxonly=0D + testpmd> set verbose 1=0D + testpmd> start=0D +=0D +10. start scapy and configuration GTP profile in tester=0D + scapy::=0D +=0D + >>> import sys=0D + >>> from scapy.contrib.gtp import *=0D +=0D +=0D +toeplitz cases test steps=0D +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=0D +1. validate rules.=0D +2. create rules and list rules.=0D +3. send a basic hit pattern packet,record the hash value.=0D + check the packet distributed to queue by rss.=0D +4. send hit pattern packets with changed input set in the rule.=0D + check the received packets have different hash value with basic packet.= =0D + check all the packets are distributed to queues by rss.=0D +5. send hit pattern packets with changed input set not in the rule.=0D + check the received packet have same hash value with the basic packet.=0D + check all the packets are distributed to queues by rss.=0D + note: if there is not this type packet in the case, omit this step.=0D +6. destroy the rule and list rule. check the flow list has no rule.=0D +=0D +=0D +symmetric cases test steps=0D +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=0D +1. validate rules.=0D +2. create rules and list rules.=0D +3. send a basic hit pattern packet,record the hash value.=0D +4. send a hit pattern packet with switched value of input set in the rule.= =0D + check the received packets have same hash value.=0D + check both the packets are distributed to queues by rss.=0D +5. destroy the rule and list rule.=0D +6. send the packet in step 4.=0D + check the received packet has different hash value with which in step 3= (including the case has no hash value).=0D +=0D +=0D +supported pattern and inputset=0D +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=0D +.. table::=0D +=0D + +---------------------------------------------------------------------= -------------------------------------------------------------------------+= =0D + | Hash function: toeplitz = |= =0D + +------------------------+------------------------------------+-------= -------------------------------------------------------------------------+= =0D + | combination | Packet Type | All th= e Input Set options in combination |= =0D + +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D+=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D+=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D+=0D + | IP*+IP*+IP* | MAC_IP*_GRE_IP*_GTPU_IP* | ip*, l= 3-src-only, l3-dst-only |= =0D + +------------------------+------------------------------------+-------= -------------------------------------------------------------------------+= =0D + | | MAC_IP*_GRE_IP*_GTPU_IP*_UDP | ip*, l= 3-src-only, l3-dst-only, l4-src-only, l4-dst-only, ip*-udp |= =0D + +------------------------+------------------------------------+-------= -------------------------------------------------------------------------+= =0D + | | MAC_IP*_GRE_IP*_GTPU_IP*_TCP | ip*, l= 3-src-only, l3-dst-only, l4-src-only, l4-dst-only, ip*-tcp |= =0D + +------------------------+------------------------------------+-------= -------------------------------------------------------------------------+= =0D + | | MAC_IP*_GRE_IP*_GTPU_EH_IP* | ip*, l= 3-src-only, l3-dst-only |= =0D + +------------------------+------------------------------------+-------= -------------------------------------------------------------------------+= =0D + | | MAC_IP*_GRE_IP*_GTPU_EH_IP*_UDP | ip*, l= 3-src-only, l3-dst-only, l4-src-only, l4-dst-only, ip*-udp |= =0D + +------------------------+------------------------------------+-------= -------------------------------------------------------------------------+= =0D + | | MAC_IP*_GRE_IP*_GTPU_EH_IP*_TCP | ip*, l= 3-src-only, l3-dst-only, l4-src-only, l4-dst-only, ip*-tcp |= =0D + +------------------------+------------------------------------+-------= -------------------------------------------------------------------------+= =0D + | | MAC_IP*_GRE_IP*_GTPU_UL_IP* | ip*, l= 3-src-only, l3-dst-only |= =0D + +------------------------+------------------------------------+-------= -------------------------------------------------------------------------+= =0D + | | MAC_IP*_GRE_IP*_GTPU_UL_IP*_UDP | ip*, l= 3-src-only, l3-dst-only, l4-src-only, l4-dst-only, ip*-udp |= =0D + +------------------------+------------------------------------+-------= -------------------------------------------------------------------------+= =0D + | | MAC_IP*_GRE_IP*_GTPU_UL_IP*_TCP | ip*, l= 3-src-only, l3-dst-only, l4-src-only, l4-dst-only, ip*-tcp |= =0D + +------------------------+------------------------------------+-------= -------------------------------------------------------------------------+= =0D + | | MAC_IP*_GRE_IP*_GTPU_DL_IP* | ip*, l= 3-src-only, l3-dst-only |= =0D + +------------------------+------------------------------------+-------= -------------------------------------------------------------------------+= =0D + | | MAC_IP*_GRE_IP*_GTPU_DL_IP*_UDP | ip*, l= 3-src-only, l3-dst-only, l4-src-only, l4-dst-only, ip*-udp |= =0D + +------------------------+------------------------------------+-------= -------------------------------------------------------------------------+= =0D + | | MAC_IP*_GRE_IP*_GTPU_DL_IP*_TCP | ip*, l= 3-src-only, l3-dst-only, l4-src-only, l4-dst-only, ip*-tcp |= =0D + +------------------------+------------------------------------+-------= -------------------------------------------------------------------------+= =0D +=0D +.. table::=0D +=0D + +---------------------------------------------------------------------= ----------------------------------------+=0D + | Hash function: symmetric = |=0D + +------------------------+------------------------------------+-------= ----------------------------------------+=0D + | combination | Packet Type | All th= e Input Set options in combination |=0D + +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D+=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D+=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D+=0D + | IP*+IP*+IP* | MAC_IP*_GRE_IP*_GTPU_IP* | ip* = |=0D + +------------------------+------------------------------------+-------= ----------------------------------------+=0D + | | MAC_IP*_GRE_IP*_GTPU_IP*_UDP | ip*-ud= p |=0D + +------------------------+------------------------------------+-------= ----------------------------------------+=0D + | | MAC_IP*_GRE_IP*_GTPU_IP*_TCP | ip*-tc= p |=0D + +------------------------+------------------------------------+-------= ----------------------------------------+=0D + | | MAC_IP*_GRE_IP*_GTPU_EH_IP* | ip* = |=0D + +------------------------+------------------------------------+-------= ----------------------------------------+=0D + | | MAC_IP*_GRE_IP*_GTPU_EH_IP*_UDP | ip*-ud= p |=0D + +------------------------+------------------------------------+-------= ----------------------------------------+=0D + | | MAC_IP*_GRE_IP*_GTPU_EH_IP*_TCP | ip*-tc= p |=0D + +------------------------+------------------------------------+-------= ----------------------------------------+=0D + | | MAC_IP*_GRE_IP*_GTPU_UL_IP* | ip* = |=0D + +------------------------+------------------------------------+-------= ----------------------------------------+=0D + | | MAC_IP*_GRE_IP*_GTPU_UL_IP*_UDP | ip*-ud= p |=0D + +------------------------+------------------------------------+-------= ----------------------------------------+=0D + | | MAC_IP*_GRE_IP*_GTPU_UL_IP*_TCP | ip*-tc= p |=0D + +------------------------+------------------------------------+-------= ----------------------------------------+=0D + | | MAC_IP*_GRE_IP*_GTPU_DL_IP* | ip* = |=0D + +------------------------+------------------------------------+-------= ----------------------------------------+=0D + | | MAC_IP*_GRE_IP*_GTPU_DL_IP*_UDP | ip*-ud= p |=0D + +------------------------+------------------------------------+-------= ----------------------------------------+=0D + | | MAC_IP*_GRE_IP*_GTPU_DL_IP*_TCP | ip*-tc= p |=0D + +------------------------+------------------------------------+-------= ----------------------------------------+=0D +=0D +each combination just need to change the IP* and ip* with IPV4/IPV6 and ip= v4/ipv6, the inputset is same. there are 8 combinations in total:=0D +1. IPV4+IPV4+IPV4=0D +2. IPV6+IPV4+IPV4=0D +3. IPV4+IPV6+IPV4=0D +4. IPV4+IPV4+IPV6=0D +5. IPV6+IPV6+IPV4=0D +6. IPV4+IPV6+IPV6=0D +7. IPV6+IPV4+IPV6=0D +8. IPV6+IPV6+IPV6=0D +=0D +=0D +1. toeplitz: IPV4+IPV4+IPV4=0D +=0D +MAC_IPV4_GRE_IPV4_GTPU_IPV4=0D +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=0D +basic packet::=0D +=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.2", dst=3D"1.1= .2.3")/GRE()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP()/GTP_U_Header()/IP(s= rc=3D"1.1.2.6", dst=3D"1.1.2.7")],iface=3D"ens786f0")=0D +=0D +L3SRC=0D +-----=0D +rule::=0D +=0D + flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp / gtpu / i= pv4 / end actions rss types ipv4 l3-src-only end key_len 0 queues end / end= =0D +=0D +hit pattern and defined input set::=0D +=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.2", dst=3D"1.1= .2.3")/GRE()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP()/GTP_U_Header()/IP(s= rc=3D"1.1.2.16", dst=3D"1.1.2.7")],iface=3D"ens786f0")=0D +=0D +hit pattern but not defined input set::=0D +=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.12", dst=3D"1.= 1.2.13")/GRE()/IP(src=3D"1.1.2.14", dst=3D"1.1.2.15")/UDP()/GTP_U_Header()/= IP(src=3D"1.1.2.6", dst=3D"1.1.2.17")],iface=3D"ens786f0")=0D +=0D +L3DST=0D +-----=0D +rule::=0D +=0D + flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp / gtpu / i= pv4 / end actions rss types l3-dst-only end key_len 0 queues end / end=0D +=0D +hit pattern and defined input set::=0D +=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.2", dst=3D"1.1= .2.3")/GRE()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP()/GTP_U_Header()/IP(s= rc=3D"1.1.2.6", dst=3D"1.1.2.17")],iface=3D"ens786f0")=0D +=0D +hit pattern but not defined input set::=0D +=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.12", dst=3D"1.= 1.2.13")/GRE()/IP(src=3D"1.1.2.14", dst=3D"1.1.2.15")/UDP()/GTP_U_Header()/= IP(src=3D"1.1.2.16", dst=3D"1.1.2.7")],iface=3D"ens786f0")=0D +=0D +IPV4=0D +----=0D +rule::=0D +=0D + flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp / gtpu / i= pv4 / end actions rss types ipv4 end key_len 0 queues end / end=0D +=0D +hit pattern and defined input set::=0D +=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.2", dst=3D"1.1= .2.3")/GRE()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP()/GTP_U_Header()/IP(s= rc=3D"1.1.2.16", dst=3D"1.1.2.7")],iface=3D"ens786f0")=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.2", dst=3D"1.1= .2.3")/GRE()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP()/GTP_U_Header()/IP(s= rc=3D"1.1.2.6", dst=3D"1.1.2.17")],iface=3D"ens786f0")=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.2", dst=3D"1.1= .2.3")/GRE()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP()/GTP_U_Header()/IP(s= rc=3D"1.1.2.16", dst=3D"1.1.2.17")],iface=3D"ens786f0")=0D +=0D +hit pattern but not defined input set::=0D +=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.12", dst=3D"1.= 1.2.13")/GRE()/IP(src=3D"1.1.2.14", dst=3D"1.1.2.15")/UDP()/GTP_U_Header()/= IP(src=3D"1.1.2.6", dst=3D"1.1.2.7")],iface=3D"ens786f0")=0D +=0D +=0D +MAC_IPV4_GRE_IPV4_GTPU_IPV4_UDP=0D +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=0D +basic packet::=0D +=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.2", dst=3D"1.1= .2.3")/GRE()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP()/GTP_U_Header()/IP(s= rc=3D"1.1.2.6", dst=3D"1.1.2.7")/UDP(dport=3D2, sport=3D4)],iface=3D"ens786= f0")=0D +=0D +L3SRC=0D +-----=0D +rule::=0D +=0D + flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp / gtpu / i= pv4 / udp / end actions rss types ipv4-udp l3-src-only end key_len 0 queues= end / end=0D +=0D +hit pattern and defined input set::=0D +=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.2", dst=3D"1.1= .2.3")/GRE()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP()/GTP_U_Header()/IP(s= rc=3D"1.1.2.16", dst=3D"1.1.2.7")/UDP(dport=3D2, sport=3D4)],iface=3D"ens78= 6f0")=0D +=0D +hit pattern but not defined input set::=0D +=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.12", dst=3D"1.= 1.2.13")/GRE()/IP(src=3D"1.1.2.14", dst=3D"1.1.2.15")/UDP()/GTP_U_Header()/= IP(src=3D"1.1.2.6", dst=3D"1.1.2.17")/UDP(dport=3D12, sport=3D14)],iface=3D= "ens786f0")=0D +=0D +L3DST=0D +-----=0D +rule::=0D +=0D + flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp / gtpu / i= pv4 / udp / end actions rss types l3-dst-only end key_len 0 queues end / en= d=0D +=0D +hit pattern and defined input set::=0D +=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.2", dst=3D"1.1= .2.3")/GRE()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP()/GTP_U_Header()/IP(s= rc=3D"1.1.2.6", dst=3D"1.1.2.17")/UDP(dport=3D2, sport=3D4)],iface=3D"ens78= 6f0")=0D +=0D +hit pattern but not defined input set::=0D +=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.12", dst=3D"1.= 1.2.13")/GRE()/IP(src=3D"1.1.2.14", dst=3D"1.1.2.15")/UDP()/GTP_U_Header()/= IP(src=3D"1.1.2.16", dst=3D"1.1.2.7")/UDP(dport=3D12, sport=3D14)],iface=3D= "ens786f0")=0D +=0D +L4SRC=0D +-----=0D +rule::=0D +=0D + flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp / gtpu / i= pv4 / udp / end actions rss types l4-src-only end key_len 0 queues end / en= d=0D +=0D +hit pattern and defined input set::=0D +=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.2", dst=3D"1.1= .2.3")/GRE()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP()/GTP_U_Header()/IP(s= rc=3D"1.1.2.6", dst=3D"1.1.2.7")/UDP(dport=3D2, sport=3D14)],iface=3D"ens78= 6f0")=0D +=0D +hit pattern but not defined input set::=0D +=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.12", dst=3D"1.= 1.2.13")/GRE()/IP(src=3D"1.1.2.14", dst=3D"1.1.2.15")/UDP()/GTP_U_Header()/= IP(src=3D"1.1.2.16", dst=3D"1.1.2.17")/UDP(dport=3D12, sport=3D4)],iface=3D= "ens786f0")=0D +=0D +L4DST=0D +-----=0D +rule::=0D +=0D + flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp / gtpu / i= pv4 / udp / end actions rss types l4-dst-only end key_len 0 queues end / en= d=0D +=0D +hit pattern and defined input set::=0D +=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.2", dst=3D"1.1= .2.3")/GRE()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP()/GTP_U_Header()/IP(s= rc=3D"1.1.2.6", dst=3D"1.1.2.7")/UDP(dport=3D12, sport=3D4)],iface=3D"ens78= 6f0")=0D +=0D +hit pattern but not defined input set::=0D +=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.12", dst=3D"1.= 1.2.13")/GRE()/IP(src=3D"1.1.2.14", dst=3D"1.1.2.15")/UDP()/GTP_U_Header()/= IP(src=3D"1.1.2.16", dst=3D"1.1.2.17")/UDP(dport=3D2, sport=3D14)],iface=3D= "ens786f0")=0D +=0D +L3SRC+L4SRC=0D +-----------=0D +rule::=0D +=0D + flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp / gtpu / i= pv4 / udp / end actions rss types l3-src-only l4-src-only end key_len 0 que= ues end / end=0D +=0D +hit pattern and defined input set::=0D +=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.2", dst=3D"1.1= .2.3")/GRE()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP()/GTP_U_Header()/IP(s= rc=3D"1.1.2.16", dst=3D"1.1.2.7")/UDP(dport=3D2, sport=3D4)],iface=3D"ens78= 6f0")=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.2", dst=3D"1.1= .2.3")/GRE()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP()/GTP_U_Header()/IP(s= rc=3D"1.1.2.6", dst=3D"1.1.2.7")/UDP(dport=3D2, sport=3D14)],iface=3D"ens78= 6f0")=0D +=0D +hit pattern but not defined input set::=0D +=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.12", dst=3D"1.= 1.2.13")/GRE()/IP(src=3D"1.1.2.14", dst=3D"1.1.2.15")/UDP()/GTP_U_Header()/= IP(src=3D"1.1.2.6", dst=3D"1.1.2.17")/UDP(dport=3D12, sport=3D4)],iface=3D"= ens786f0")=0D +=0D +L3SRC+L4DST=0D +-----------=0D +rule::=0D +=0D + flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp / gtpu / i= pv4 / udp / end actions rss types l3-src-only l4-dst-only end key_len 0 que= ues end / end=0D +=0D +hit pattern and defined input set::=0D +=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.2", dst=3D"1.1= .2.3")/GRE()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP()/GTP_U_Header()/IP(s= rc=3D"1.1.2.16", dst=3D"1.1.2.7")/UDP(dport=3D2, sport=3D4)],iface=3D"ens78= 6f0")=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.2", dst=3D"1.1= .2.3")/GRE()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP()/GTP_U_Header()/IP(s= rc=3D"1.1.2.6", dst=3D"1.1.2.7")/UDP(dport=3D12, sport=3D4)],iface=3D"ens78= 6f0")=0D +=0D +hit pattern but not defined input set::=0D +=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.12", dst=3D"1.= 1.2.13")/GRE()/IP(src=3D"1.1.2.14", dst=3D"1.1.2.15")/UDP()/GTP_U_Header()/= IP(src=3D"1.1.2.6", dst=3D"1.1.2.17")/UDP(dport=3D2, sport=3D14)],iface=3D"= ens786f0")=0D +=0D +L3DST+L4SRC=0D +-----------=0D +rule::=0D +=0D + flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp / gtpu / i= pv4 / udp / end actions rss types l3-dst-only l4-src-only end key_len 0 que= ues end / end=0D +=0D +hit pattern and defined input set::=0D +=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.2", dst=3D"1.1= .2.3")/GRE()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP()/GTP_U_Header()/IP(s= rc=3D"1.1.2.6", dst=3D"1.1.2.17")/UDP(dport=3D2, sport=3D4)],iface=3D"ens78= 6f0")=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.2", dst=3D"1.1= .2.3")/GRE()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP()/GTP_U_Header()/IP(s= rc=3D"1.1.2.6", dst=3D"1.1.2.7")/UDP(dport=3D2, sport=3D14)],iface=3D"ens78= 6f0")=0D +=0D +hit pattern but not defined input set::=0D +=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.12", dst=3D"1.= 1.2.13")/GRE()/IP(src=3D"1.1.2.14", dst=3D"1.1.2.15")/UDP()/GTP_U_Header()/= IP(src=3D"1.1.2.16", dst=3D"1.1.2.7")/UDP(dport=3D12, sport=3D4)],iface=3D"= ens786f0")=0D +=0D +L3DST+L4DST=0D +-----------=0D +rule::=0D +=0D + flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp / gtpu / i= pv4 / udp / end actions rss types l3-dst-only l4-dst-only end key_len 0 que= ues end / end=0D +=0D +hit pattern and defined input set::=0D +=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.2", dst=3D"1.1= .2.3")/GRE()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP()/GTP_U_Header()/IP(s= rc=3D"1.1.2.6", dst=3D"1.1.2.17")/UDP(dport=3D2, sport=3D4)],iface=3D"ens78= 6f0")=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.2", dst=3D"1.1= .2.3")/GRE()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP()/GTP_U_Header()/IP(s= rc=3D"1.1.2.6", dst=3D"1.1.2.7")/UDP(dport=3D12, sport=3D4)],iface=3D"ens78= 6f0")=0D +=0D +hit pattern but not defined input set::=0D +=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.12", dst=3D"1.= 1.2.13")/GRE()/IP(src=3D"1.1.2.14", dst=3D"1.1.2.15")/UDP()/GTP_U_Header()/= IP(src=3D"1.1.2.16", dst=3D"1.1.2.7")/UDP(dport=3D2, sport=3D14)],iface=3D"= ens786f0")=0D +=0D +IPV4-UDP=0D +--------=0D +rule::=0D +=0D + flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp / gtpu / i= pv4 / udp / end actions rss types ipv4-udp end key_len 0 queues end / end=0D +=0D +hit pattern and defined input set::=0D +=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.2", dst=3D"1.1= .2.3")/GRE()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP()/GTP_U_Header()/IP(s= rc=3D"1.1.2.6", dst=3D"1.1.2.17")/UDP(dport=3D2, sport=3D4)],iface=3D"ens78= 6f0")=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.2", dst=3D"1.1= .2.3")/GRE()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP()/GTP_U_Header()/IP(s= rc=3D"1.1.2.16", dst=3D"1.1.2.7")/UDP(dport=3D2, sport=3D4)],iface=3D"ens78= 6f0")=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.2", dst=3D"1.1= .2.3")/GRE()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP()/GTP_U_Header()/IP(s= rc=3D"1.1.2.6", dst=3D"1.1.2.7")/UDP(dport=3D12, sport=3D4)],iface=3D"ens78= 6f0")=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.2", dst=3D"1.1= .2.3")/GRE()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP()/GTP_U_Header()/IP(s= rc=3D"1.1.2.6", dst=3D"1.1.2.7")/UDP(dport=3D2, sport=3D14)],iface=3D"ens78= 6f0")=0D +=0D +hit pattern but not defined input set::=0D +=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.12", dst=3D"1.= 1.2.13")/GRE()/IP(src=3D"1.1.2.14", dst=3D"1.1.2.15")/UDP()/GTP_U_Header()/= IP(src=3D"1.1.2.6", dst=3D"1.1.2.7")/UDP(dport=3D2, sport=3D4)],iface=3D"en= s786f0")=0D +=0D +=0D +MAC_IPV4_GRE_IPV4_GTPU_IPV4_TCP=0D +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=0D +reconfig all the cases in MAC_IPV4_GRE_IPV4_GTPU_IPV4_UDP:=0D +packets: change the inner most UDP to TCP=0D +rules: change the inner most udp to tcp, ipv4-udp to ipv4-tcp=0D +=0D +=0D +MAC_IPV4_GRE_IPV4_GTPU_EH_IPV4=0D +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=0D +basic packet::=0D +=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.2", dst=3D"1.1= .2.3")/GRE()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP()/GTP_U_Header()/GTPP= DUSessionContainer()/IP(src=3D"1.1.2.6", dst=3D"1.1.2.7")],iface=3D"ens786f= 0")=0D +=0D +L3SRC=0D +-----=0D +rule::=0D +=0D + flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp / gtpu / g= tp_psc / ipv4 / end actions rss types l3-src-only end key_len 0 queues end = / end=0D +=0D +hit pattern and defined input set::=0D +=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.2", dst=3D"1.1= .2.3")/GRE()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP()/GTP_U_Header()/GTPP= DUSessionContainer()/IP(src=3D"1.1.2.16", dst=3D"1.1.2.7")],iface=3D"ens786= f0")=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.2", dst=3D"1.1= .2.3")/GRE()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP()/GTP_U_Header()/GTPP= DUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(src=3D"1.1.2.16", dst=3D= "1.1.2.7")],iface=3D"ens786f0")=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.2", dst=3D"1.1= .2.3")/GRE()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP()/GTP_U_Header()/GTPP= DUSessionContainer(type=3D1, P=3D1, QFI=3D0x34)/IP(src=3D"1.1.2.16", dst=3D= "1.1.2.7")],iface=3D"ens786f0")=0D +=0D +hit pattern but not defined input set::=0D +=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.12", dst=3D"1.= 1.2.13")/GRE()/IP(src=3D"1.1.2.14", dst=3D"1.1.2.15")/UDP()/GTP_U_Header()/= GTPPDUSessionContainer()/IP(src=3D"1.1.2.6", dst=3D"1.1.2.17")],iface=3D"en= s786f0")=0D +=0D +L3DST=0D +-----=0D +rule::=0D +=0D + flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp / gtpu / g= tp_psc / ipv4 / end actions rss types l3-dst-only end key_len 0 queues end = / end=0D +=0D +hit pattern and defined input set::=0D +=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.2", dst=3D"1.1= .2.3")/GRE()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP()/GTP_U_Header()/GTPP= DUSessionContainer()/IP(src=3D"1.1.2.6", dst=3D"1.1.2.17")],iface=3D"ens786= f0")=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.2", dst=3D"1.1= .2.3")/GRE()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP()/GTP_U_Header()/GTPP= DUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(src=3D"1.1.2.6", dst=3D"= 1.1.2.17")],iface=3D"ens786f0")=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.2", dst=3D"1.1= .2.3")/GRE()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP()/GTP_U_Header()/GTPP= DUSessionContainer(type=3D1, P=3D1, QFI=3D0x34)/IP(src=3D"1.1.2.6", dst=3D"= 1.1.2.17")],iface=3D"ens786f0")=0D +=0D +hit pattern but not defined input set::=0D +=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.12", dst=3D"1.= 1.2.13")/GRE()/IP(src=3D"1.1.2.14", dst=3D"1.1.2.15")/UDP()/GTP_U_Header()/= GTPPDUSessionContainer()/IP(src=3D"1.1.2.16", dst=3D"1.1.2.7")],iface=3D"en= s786f0")=0D +=0D +IPV4=0D +-----=0D +rule::=0D +=0D + flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp / gtpu / g= tp_psc / ipv4 / end actions rss types ipv4 end key_len 0 queues end / end=0D +=0D +hit pattern and defined input set::=0D +=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.2", dst=3D"1.1= .2.3")/GRE()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP()/GTP_U_Header()/GTPP= DUSessionContainer()/IP(src=3D"1.1.2.16", dst=3D"1.1.2.7")],iface=3D"ens786= f0")=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.2", dst=3D"1.1= .2.3")/GRE()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP()/GTP_U_Header()/GTPP= DUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(src=3D"1.1.2.6", dst=3D"= 1.1.2.17")],iface=3D"ens786f0")=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.2", dst=3D"1.1= .2.3")/GRE()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP()/GTP_U_Header()/GTPP= DUSessionContainer(type=3D1, P=3D1, QFI=3D0x34)/IP(src=3D"1.1.2.16", dst=3D= "1.1.2.17")],iface=3D"ens786f0")=0D +=0D +hit pattern but not defined input set::=0D +=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.12", dst=3D"1.= 1.2.13")/GRE()/IP(src=3D"1.1.2.14", dst=3D"1.1.2.15")/UDP()/GTP_U_Header()/= GTPPDUSessionContainer()/IP(src=3D"1.1.2.6", dst=3D"1.1.2.7")],iface=3D"ens= 786f0")=0D +=0D +=0D +MAC_IPV4_GRE_IPV4_GTPU_EH_IPV4_UDP=0D +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=0D +basic packet::=0D +=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.2", dst=3D"1.1= .2.3")/GRE()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP()/GTP_U_Header()/GTPP= DUSessionContainer()/IP(src=3D"1.1.2.6", dst=3D"1.1.2.7")/UDP(dport=3D2, sp= ort=3D4)],iface=3D"ens786f0")=0D +=0D +L3SRC=0D +-----=0D +rule::=0D +=0D + flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp / gtpu / g= tp_psc / ipv4 / udp / end actions rss types l3-src-only end key_len 0 queue= s end / end=0D +=0D +hit pattern and defined input set::=0D +=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.2", dst=3D"1.1= .2.3")/GRE()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP()/GTP_U_Header()/GTPP= DUSessionContainer()/IP(src=3D"1.1.2.16", dst=3D"1.1.2.7")/UDP(dport=3D2, s= port=3D4)],iface=3D"ens786f0")=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.2", dst=3D"1.1= .2.3")/GRE()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP()/GTP_U_Header()/GTPP= DUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(src=3D"1.1.2.16", dst=3D= "1.1.2.7")/UDP(dport=3D2, sport=3D4)],iface=3D"ens786f0")=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.2", dst=3D"1.1= .2.3")/GRE()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP()/GTP_U_Header()/GTPP= DUSessionContainer(type=3D1, P=3D1, QFI=3D0x34)/IP(src=3D"1.1.2.16", dst=3D= "1.1.2.7")/UDP(dport=3D2, sport=3D4)],iface=3D"ens786f0")=0D +=0D +hit pattern but not defined input set::=0D +=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.12", dst=3D"1.= 1.2.13")/GRE()/IP(src=3D"1.1.2.14", dst=3D"1.1.2.15")/UDP()/GTP_U_Header()/= GTPPDUSessionContainer()/IP(src=3D"1.1.2.6", dst=3D"1.1.2.17")/UDP(dport=3D= 12, sport=3D14)],iface=3D"ens786f0")=0D +=0D +L3DST=0D +-----=0D +rule::=0D +=0D + flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp / gtpu / g= tp_psc / ipv4 / udp / end actions rss types l3-dst-only end key_len 0 queue= s end / end=0D +=0D +hit pattern and defined input set::=0D +=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.2", dst=3D"1.1= .2.3")/GRE()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP()/GTP_U_Header()/GTPP= DUSessionContainer()/IP(src=3D"1.1.2.6", dst=3D"1.1.2.17")/UDP(dport=3D2, s= port=3D4)],iface=3D"ens786f0")=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.2", dst=3D"1.1= .2.3")/GRE()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP()/GTP_U_Header()/GTPP= DUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(src=3D"1.1.2.6", dst=3D"= 1.1.2.17")/UDP(dport=3D2, sport=3D4)],iface=3D"ens786f0")=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.2", dst=3D"1.1= .2.3")/GRE()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP()/GTP_U_Header()/GTPP= DUSessionContainer(type=3D1, P=3D1, QFI=3D0x34)/IP(src=3D"1.1.2.6", dst=3D"= 1.1.2.17")/UDP(dport=3D2, sport=3D4)],iface=3D"ens786f0")=0D +=0D +hit pattern but not defined input set::=0D +=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.12", dst=3D"1.= 1.2.13")/GRE()/IP(src=3D"1.1.2.14", dst=3D"1.1.2.15")/UDP()/GTP_U_Header()/= GTPPDUSessionContainer()/IP(src=3D"1.1.2.16", dst=3D"1.1.2.7")/UDP(dport=3D= 12, sport=3D14)],iface=3D"ens786f0")=0D +=0D +L4SRC=0D +-----=0D +rule::=0D +=0D + flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp / gtpu / g= tp_psc / ipv4 / udp / end actions rss types l4-src-only end key_len 0 queue= s end / end=0D +=0D +hit pattern and defined input set::=0D +=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.2", dst=3D"1.1= .2.3")/GRE()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP()/GTP_U_Header()/GTPP= DUSessionContainer()/IP(src=3D"1.1.2.6", dst=3D"1.1.2.7")/UDP(dport=3D2, sp= ort=3D14)],iface=3D"ens786f0")=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.2", dst=3D"1.1= .2.3")/GRE()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP()/GTP_U_Header()/GTPP= DUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(src=3D"1.1.2.6", dst=3D"= 1.1.2.7")/UDP(dport=3D2, sport=3D14)],iface=3D"ens786f0")=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.2", dst=3D"1.1= .2.3")/GRE()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP()/GTP_U_Header()/GTPP= DUSessionContainer(type=3D1, P=3D1, QFI=3D0x34)/IP(src=3D"1.1.2.6", dst=3D"= 1.1.2.7")/UDP(dport=3D2, sport=3D14)],iface=3D"ens786f0")=0D +=0D +hit pattern but not defined input set::=0D +=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.12", dst=3D"1.= 1.2.13")/GRE()/IP(src=3D"1.1.2.14", dst=3D"1.1.2.15")/UDP()/GTP_U_Header()/= GTPPDUSessionContainer()/IP(src=3D"1.1.2.16", dst=3D"1.1.2.17")/UDP(dport= =3D12, sport=3D4)],iface=3D"ens786f0")=0D +=0D +L4DST=0D +-----=0D +rule::=0D +=0D + flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp / gtpu / g= tp_psc / ipv4 / udp / end actions rss types l4-dst-only end key_len 0 queue= s end / end=0D +=0D +hit pattern and defined input set::=0D +=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.2", dst=3D"1.1= .2.3")/GRE()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP()/GTP_U_Header()/GTPP= DUSessionContainer()/IP(src=3D"1.1.2.6", dst=3D"1.1.2.7")/UDP(dport=3D12, s= port=3D4)],iface=3D"ens786f0")=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.2", dst=3D"1.1= .2.3")/GRE()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP()/GTP_U_Header()/GTPP= DUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(src=3D"1.1.2.6", dst=3D"= 1.1.2.7")/UDP(dport=3D12, sport=3D4)],iface=3D"ens786f0")=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.2", dst=3D"1.1= .2.3")/GRE()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP()/GTP_U_Header()/GTPP= DUSessionContainer(type=3D1, P=3D1, QFI=3D0x34)/IP(src=3D"1.1.2.6", dst=3D"= 1.1.2.7")/UDP(dport=3D12, sport=3D4)],iface=3D"ens786f0")=0D +=0D +hit pattern but not defined input set::=0D +=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.12", dst=3D"1.= 1.2.13")/GRE()/IP(src=3D"1.1.2.14", dst=3D"1.1.2.15")/UDP()/GTP_U_Header()/= GTPPDUSessionContainer()/IP(src=3D"1.1.2.16", dst=3D"1.1.2.17")/UDP(dport= =3D2, sport=3D14)],iface=3D"ens786f0")=0D +=0D +L3SRC+L4SRC=0D +-----------=0D +rule::=0D +=0D + flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp / gtpu / g= tp_psc / ipv4 / udp / end actions rss types l3-src-only l4-src-only end key= _len 0 queues end / end=0D +=0D +hit pattern and defined input set::=0D +=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.2", dst=3D"1.1= .2.3")/GRE()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP()/GTP_U_Header()/GTPP= DUSessionContainer()/IP(src=3D"1.1.2.16", dst=3D"1.1.2.7")/UDP(dport=3D2, s= port=3D4)],iface=3D"ens786f0")=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.2", dst=3D"1.1= .2.3")/GRE()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP()/GTP_U_Header()/GTPP= DUSessionContainer()/IP(src=3D"1.1.2.6", dst=3D"1.1.2.7")/UDP(dport=3D2, sp= ort=3D14)],iface=3D"ens786f0")=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.2", dst=3D"1.1= .2.3")/GRE()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP()/GTP_U_Header()/GTPP= DUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(src=3D"1.1.2.16", dst=3D= "1.1.2.7")/UDP(dport=3D2, sport=3D4)],iface=3D"ens786f0")=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.2", dst=3D"1.1= .2.3")/GRE()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP()/GTP_U_Header()/GTPP= DUSessionContainer(type=3D1, P=3D1, QFI=3D0x34)/IP(src=3D"1.1.2.6", dst=3D"= 1.1.2.7")/UDP(dport=3D2, sport=3D14)],iface=3D"ens786f0")=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.2", dst=3D"1.1= .2.3")/GRE()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP()/GTP_U_Header()/GTPP= DUSessionContainer(type=3D1, P=3D1, QFI=3D0x34)/IP(src=3D"1.1.2.16", dst=3D= "1.1.2.7")/UDP(dport=3D2, sport=3D4)],iface=3D"ens786f0")=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.2", dst=3D"1.1= .2.3")/GRE()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP()/GTP_U_Header()/GTPP= DUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(src=3D"1.1.2.6", dst=3D"= 1.1.2.7")/UDP(dport=3D2, sport=3D14)],iface=3D"ens786f0")=0D +=0D +hit pattern but not defined input set::=0D +=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.12", dst=3D"1.= 1.2.13")/GRE()/IP(src=3D"1.1.2.14", dst=3D"1.1.2.15")/UDP()/GTP_U_Header()/= GTPPDUSessionContainer()/IP(src=3D"1.1.2.6", dst=3D"1.1.2.17")/UDP(dport=3D= 12, sport=3D4)],iface=3D"ens786f0")=0D +=0D +L3SRC+L4DST=0D +-----------=0D +rule::=0D +=0D + flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp / gtpu / g= tp_psc / ipv4 / udp / end actions rss types l3-src-only l4-dst-only end key= _len 0 queues end / end=0D +=0D +hit pattern and defined input set::=0D +=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.2", dst=3D"1.1= .2.3")/GRE()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP()/GTP_U_Header()/GTPP= DUSessionContainer()/IP(src=3D"1.1.2.16", dst=3D"1.1.2.7")/UDP(dport=3D2, s= port=3D4)],iface=3D"ens786f0")=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.2", dst=3D"1.1= .2.3")/GRE()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP()/GTP_U_Header()/GTPP= DUSessionContainer()/IP(src=3D"1.1.2.6", dst=3D"1.1.2.7")/UDP(dport=3D12, s= port=3D4)],iface=3D"ens786f0")=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.2", dst=3D"1.1= .2.3")/GRE()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP()/GTP_U_Header()/GTPP= DUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(src=3D"1.1.2.16", dst=3D= "1.1.2.7")/UDP(dport=3D2, sport=3D4)],iface=3D"ens786f0")=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.2", dst=3D"1.1= .2.3")/GRE()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP()/GTP_U_Header()/GTPP= DUSessionContainer(type=3D1, P=3D1, QFI=3D0x34)/IP(src=3D"1.1.2.6", dst=3D"= 1.1.2.7")/UDP(dport=3D12, sport=3D4)],iface=3D"ens786f0")=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.2", dst=3D"1.1= .2.3")/GRE()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP()/GTP_U_Header()/GTPP= DUSessionContainer(type=3D1, P=3D1, QFI=3D0x34)/IP(src=3D"1.1.2.16", dst=3D= "1.1.2.7")/UDP(dport=3D2, sport=3D4)],iface=3D"ens786f0")=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.2", dst=3D"1.1= .2.3")/GRE()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP()/GTP_U_Header()/GTPP= DUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(src=3D"1.1.2.6", dst=3D"= 1.1.2.7")/UDP(dport=3D12, sport=3D4)],iface=3D"ens786f0")=0D +=0D +hit pattern but not defined input set::=0D +=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.12", dst=3D"1.= 1.2.13")/GRE()/IP(src=3D"1.1.2.14", dst=3D"1.1.2.15")/UDP()/GTP_U_Header()/= GTPPDUSessionContainer()/IP(src=3D"1.1.2.6", dst=3D"1.1.2.17")/UDP(dport=3D= 2, sport=3D14)],iface=3D"ens786f0")=0D +=0D +L3DST+L4SRC=0D +-----------=0D +rule::=0D +=0D + flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp / gtpu / g= tp_psc / ipv4 / udp / end actions rss types l3-dst-only l4-src-only end key= _len 0 queues end / end=0D +=0D +hit pattern and defined input set::=0D +=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.2", dst=3D"1.1= .2.3")/GRE()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP()/GTP_U_Header()/GTPP= DUSessionContainer()/IP(src=3D"1.1.2.6", dst=3D"1.1.2.17")/UDP(dport=3D2, s= port=3D4)],iface=3D"ens786f0")=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.2", dst=3D"1.1= .2.3")/GRE()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP()/GTP_U_Header()/GTPP= DUSessionContainer()/IP(src=3D"1.1.2.6", dst=3D"1.1.2.7")/UDP(dport=3D2, sp= ort=3D14)],iface=3D"ens786f0")=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.2", dst=3D"1.1= .2.3")/GRE()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP()/GTP_U_Header()/GTPP= DUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(src=3D"1.1.2.6", dst=3D"= 1.1.2.17")/UDP(dport=3D2, sport=3D4)],iface=3D"ens786f0")=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.2", dst=3D"1.1= .2.3")/GRE()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP()/GTP_U_Header()/GTPP= DUSessionContainer(type=3D1, P=3D1, QFI=3D0x34)/IP(src=3D"1.1.2.6", dst=3D"= 1.1.2.7")/UDP(dport=3D2, sport=3D14)],iface=3D"ens786f0")=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.2", dst=3D"1.1= .2.3")/GRE()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP()/GTP_U_Header()/GTPP= DUSessionContainer(type=3D1, P=3D1, QFI=3D0x34)/IP(src=3D"1.1.2.6", dst=3D"= 1.1.2.17")/UDP(dport=3D2, sport=3D4)],iface=3D"ens786f0")=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.2", dst=3D"1.1= .2.3")/GRE()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP()/GTP_U_Header()/GTPP= DUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(src=3D"1.1.2.6", dst=3D"= 1.1.2.7")/UDP(dport=3D2, sport=3D14)],iface=3D"ens786f0")=0D +=0D +hit pattern but not defined input set::=0D +=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.12", dst=3D"1.= 1.2.13")/GRE()/IP(src=3D"1.1.2.14", dst=3D"1.1.2.15")/UDP()/GTP_U_Header()/= GTPPDUSessionContainer()/IP(src=3D"1.1.2.16", dst=3D"1.1.2.7")/UDP(dport=3D= 12, sport=3D4)],iface=3D"ens786f0")=0D +=0D +L3DST+L4DST=0D +-----------=0D +rule::=0D +=0D + flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp / gtpu / g= tp_psc / ipv4 / udp / end actions rss types l3-dst-only l4-dst-only end key= _len 0 queues end / end=0D +=0D +hit pattern and defined input set::=0D +=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.2", dst=3D"1.1= .2.3")/GRE()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP()/GTP_U_Header()/GTPP= DUSessionContainer()/IP(src=3D"1.1.2.6", dst=3D"1.1.2.17")/UDP(dport=3D2, s= port=3D4)],iface=3D"ens786f0")=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.2", dst=3D"1.1= .2.3")/GRE()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP()/GTP_U_Header()/GTPP= DUSessionContainer()/IP(src=3D"1.1.2.6", dst=3D"1.1.2.7")/UDP(dport=3D12, s= port=3D4)],iface=3D"ens786f0")=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.2", dst=3D"1.1= .2.3")/GRE()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP()/GTP_U_Header()/GTPP= DUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(src=3D"1.1.2.6", dst=3D"= 1.1.2.17")/UDP(dport=3D2, sport=3D4)],iface=3D"ens786f0")=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.2", dst=3D"1.1= .2.3")/GRE()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP()/GTP_U_Header()/GTPP= DUSessionContainer(type=3D1, P=3D1, QFI=3D0x34)/IP(src=3D"1.1.2.6", dst=3D"= 1.1.2.7")/UDP(dport=3D12, sport=3D4)],iface=3D"ens786f0")=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.2", dst=3D"1.1= .2.3")/GRE()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP()/GTP_U_Header()/GTPP= DUSessionContainer(type=3D1, P=3D1, QFI=3D0x34)/IP(src=3D"1.1.2.6", dst=3D"= 1.1.2.17")/UDP(dport=3D2, sport=3D4)],iface=3D"ens786f0")=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.2", dst=3D"1.1= .2.3")/GRE()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP()/GTP_U_Header()/GTPP= DUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(src=3D"1.1.2.6", dst=3D"= 1.1.2.7")/UDP(dport=3D12, sport=3D4)],iface=3D"ens786f0")=0D +=0D +hit pattern but not defined input set::=0D +=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.12", dst=3D"1.= 1.2.13")/GRE()/IP(src=3D"1.1.2.14", dst=3D"1.1.2.15")/UDP()/GTP_U_Header()/= GTPPDUSessionContainer()/IP(src=3D"1.1.2.16", dst=3D"1.1.2.7")/UDP(dport=3D= 2, sport=3D14)],iface=3D"ens786f0")=0D +=0D +IPV4-UDP=0D +--------=0D +rule::=0D +=0D + flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp / gtpu / g= tp_psc / ipv4 / udp / end actions rss types ipv4-udp end key_len 0 queues e= nd / end=0D +=0D +hit pattern and defined input set::=0D +=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.2", dst=3D"1.1= .2.3")/GRE()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP()/GTP_U_Header()/GTPP= DUSessionContainer()/IP(src=3D"1.1.2.6", dst=3D"1.1.2.17")/UDP(dport=3D2, s= port=3D4)],iface=3D"ens786f0")=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.2", dst=3D"1.1= .2.3")/GRE()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP()/GTP_U_Header()/GTPP= DUSessionContainer()/IP(src=3D"1.1.2.16", dst=3D"1.1.2.7")/UDP(dport=3D2, s= port=3D4)],iface=3D"ens786f0")=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.2", dst=3D"1.1= .2.3")/GRE()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP()/GTP_U_Header()/GTPP= DUSessionContainer()/IP(src=3D"1.1.2.6", dst=3D"1.1.2.7")/UDP(dport=3D12, s= port=3D4)],iface=3D"ens786f0")=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.2", dst=3D"1.1= .2.3")/GRE()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP()/GTP_U_Header()/GTPP= DUSessionContainer()/IP(src=3D"1.1.2.6", dst=3D"1.1.2.7")/UDP(dport=3D2, sp= ort=3D14)],iface=3D"ens786f0")=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.2", dst=3D"1.1= .2.3")/GRE()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP()/GTP_U_Header()/GTPP= DUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(src=3D"1.1.2.6", dst=3D"= 1.1.2.17")/UDP(dport=3D2, sport=3D4)],iface=3D"ens786f0")=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.2", dst=3D"1.1= .2.3")/GRE()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP()/GTP_U_Header()/GTPP= DUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(src=3D"1.1.2.16", dst=3D= "1.1.2.7")/UDP(dport=3D2, sport=3D4)],iface=3D"ens786f0")=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.2", dst=3D"1.1= .2.3")/GRE()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP()/GTP_U_Header()/GTPP= DUSessionContainer(type=3D1, P=3D1, QFI=3D0x34)/IP(src=3D"1.1.2.6", dst=3D"= 1.1.2.7")/UDP(dport=3D12, sport=3D4)],iface=3D"ens786f0")=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.2", dst=3D"1.1= .2.3")/GRE()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP()/GTP_U_Header()/GTPP= DUSessionContainer(type=3D1, P=3D1, QFI=3D0x34)/IP(src=3D"1.1.2.6", dst=3D"= 1.1.2.7")/UDP(dport=3D2, sport=3D14)],iface=3D"ens786f0")=0D +=0D +hit pattern but not defined input set::=0D +=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.12", dst=3D"1.= 1.2.13")/GRE()/IP(src=3D"1.1.2.14", dst=3D"1.1.2.15")/UDP()/GTP_U_Header()/= GTPPDUSessionContainer()/IP(src=3D"1.1.2.6", dst=3D"1.1.2.7")/UDP(dport=3D2= , sport=3D4)],iface=3D"ens786f0")=0D +=0D +=0D +MAC_IPV4_GRE_IPV4_GTPU_EH_IPV4_TCP=0D +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=0D +reconfig all test cases in MAC_IPV4_GRE_IPV4_GTPU_EH_IPV4_UDP:=0D +packets: change the inner most UDP to TCP=0D +rules: change the inner most udp to tcp, ipv4-udp to ipv4-tcp=0D +=0D +=0D +MAC_IPV4_GRE_IPV4_GTPU_UL_IPV4=0D +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=0D +basic packet::=0D +=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.2", dst=3D"1.1= .2.3")/GRE()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP()/GTP_U_Header()/GTPP= DUSessionContainer(type=3D1, P=3D1, QFI=3D0x34)/IP(src=3D"1.1.2.6", dst=3D"= 1.1.2.7")],iface=3D"ens786f0")=0D +=0D +L3SRC=0D +-----=0D +rule::=0D +=0D + flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp / gtpu / g= tp_psc is 1 / ipv4 / end actions rss types l3-src-only end key_len 0 queues= end / end=0D +=0D +hit pattern and defined input set::=0D +=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.2", dst=3D"1.1= .2.3")/GRE()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP()/GTP_U_Header()/GTPP= DUSessionContainer(type=3D1, P=3D1, QFI=3D0x34)/IP(src=3D"1.1.2.16", dst=3D= "1.1.2.7")],iface=3D"ens786f0")=0D +=0D +hit pattern but not defined input set::=0D +=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.12", dst=3D"1.= 1.2.13")/GRE()/IP(src=3D"1.1.2.14", dst=3D"1.1.2.15")/UDP()/GTP_U_Header()/= GTPPDUSessionContainer(type=3D1, P=3D1, QFI=3D0x34)/IP(src=3D"1.1.2.6", dst= =3D"1.1.2.17")],iface=3D"ens786f0")=0D +=0D +L3DST=0D +-----=0D +rule::=0D +=0D + flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp / gtpu / g= tp_psc is 1 / ipv4 / end actions rss types l3-dst-only end key_len 0 queues= end / end=0D +=0D +hit pattern and defined input set::=0D +=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.2", dst=3D"1.1= .2.3")/GRE()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP()/GTP_U_Header()/GTPP= DUSessionContainer(type=3D1, P=3D1, QFI=3D0x34)/IP(src=3D"1.1.2.6", dst=3D"= 1.1.2.17")],iface=3D"ens786f0")=0D +=0D +hit pattern but not defined input set::=0D +=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.12", dst=3D"1.= 1.2.13")/GRE()/IP(src=3D"1.1.2.14", dst=3D"1.1.2.15")/UDP()/GTP_U_Header()/= GTPPDUSessionContainer(type=3D1, P=3D1, QFI=3D0x34)/IP(src=3D"1.1.2.16", ds= t=3D"1.1.2.7")],iface=3D"ens786f0")=0D +=0D +IPV4=0D +-----=0D +rule::=0D +=0D + flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp / gtpu / g= tp_psc is 1 / ipv4 / end actions rss types ipv4 end key_len 0 queues end / = end=0D +=0D +hit pattern and defined input set::=0D +=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.2", dst=3D"1.1= .2.3")/GRE()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP()/GTP_U_Header()/GTPP= DUSessionContainer(type=3D1, P=3D1, QFI=3D0x34)/IP(src=3D"1.1.2.16", dst=3D= "1.1.2.7")],iface=3D"ens786f0")=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.2", dst=3D"1.1= .2.3")/GRE()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP()/GTP_U_Header()/GTPP= DUSessionContainer(type=3D1, P=3D1, QFI=3D0x34)/IP(src=3D"1.1.2.6", dst=3D"= 1.1.2.17")],iface=3D"ens786f0")=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.2", dst=3D"1.1= .2.3")/GRE()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP()/GTP_U_Header()/GTPP= DUSessionContainer(type=3D1, P=3D1, QFI=3D0x34)/IP(src=3D"1.1.2.16", dst=3D= "1.1.2.17")],iface=3D"ens786f0")=0D +=0D +hit pattern but not defined input set::=0D +=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.12", dst=3D"1.= 1.2.13")/GRE()/IP(src=3D"1.1.2.14", dst=3D"1.1.2.15")/UDP()/GTP_U_Header()/= GTPPDUSessionContainer(type=3D1, P=3D1, QFI=3D0x34)/IP(src=3D"1.1.2.6", dst= =3D"1.1.2.7")],iface=3D"ens786f0")=0D +=0D +=0D +MAC_IPV4_GRE_IPV4_GTPU_UL_IPV4_UDP=0D +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=0D +basic packet::=0D +=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.2", dst=3D"1.1= .2.3")/GRE()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP()/GTP_U_Header()/GTPP= DUSessionContainer(type=3D1, P=3D1, QFI=3D0x34)/IP(src=3D"1.1.2.6", dst=3D"= 1.1.2.7")/UDP(dport=3D2, sport=3D4)],iface=3D"ens786f0")=0D +=0D +L3SRC=0D +-----=0D +rule::=0D +=0D + flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp / gtpu / g= tp_psc is 1 / ipv4 / udp / end actions rss types l3-src-only end key_len 0 = queues end / end=0D +=0D +hit pattern and defined input set::=0D +=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.2", dst=3D"1.1= .2.3")/GRE()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP()/GTP_U_Header()/GTPP= DUSessionContainer(type=3D1, P=3D1, QFI=3D0x34)/IP(src=3D"1.1.2.16", dst=3D= "1.1.2.7")/UDP(dport=3D2, sport=3D4)],iface=3D"ens786f0")=0D +=0D +hit pattern but not defined input set::=0D +=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.12", dst=3D"1.= 1.2.13")/GRE()/IP(src=3D"1.1.2.14", dst=3D"1.1.2.15")/UDP()/GTP_U_Header()/= GTPPDUSessionContainer(type=3D1, P=3D1, QFI=3D0x34)/IP(src=3D"1.1.2.6", dst= =3D"1.1.2.17")/UDP(dport=3D12, sport=3D14)],iface=3D"ens786f0")=0D +=0D +L3DST=0D +-----=0D +rule::=0D +=0D + flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp / gtpu / g= tp_psc is 1 / ipv4 / udp / end actions rss types l3-dst-only end key_len 0 = queues end / end=0D +=0D +hit pattern and defined input set::=0D +=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.2", dst=3D"1.1= .2.3")/GRE()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP()/GTP_U_Header()/GTPP= DUSessionContainer(type=3D1, P=3D1, QFI=3D0x34)/IP(src=3D"1.1.2.6", dst=3D"= 1.1.2.17")/UDP(dport=3D2, sport=3D4)],iface=3D"ens786f0")=0D +=0D +hit pattern but not defined input set::=0D +=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.12", dst=3D"1.= 1.2.13")/GRE()/IP(src=3D"1.1.2.14", dst=3D"1.1.2.15")/UDP()/GTP_U_Header()/= GTPPDUSessionContainer(type=3D1, P=3D1, QFI=3D0x34)/IP(src=3D"1.1.2.16", ds= t=3D"1.1.2.7")/UDP(dport=3D12, sport=3D14)],iface=3D"ens786f0")=0D +=0D +L4SRC=0D +-----=0D +rule::=0D +=0D + flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp / gtpu / g= tp_psc is 1 / ipv4 / udp / end actions rss types l4-src-only end key_len 0 = queues end / end=0D +=0D +hit pattern and defined input set::=0D +=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.2", dst=3D"1.1= .2.3")/GRE()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP()/GTP_U_Header()/GTPP= DUSessionContainer(type=3D1, P=3D1, QFI=3D0x34)/IP(src=3D"1.1.2.6", dst=3D"= 1.1.2.7")/UDP(dport=3D2, sport=3D14)],iface=3D"ens786f0")=0D +=0D +hit pattern but not defined input set::=0D +=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.12", dst=3D"1.= 1.2.13")/GRE()/IP(src=3D"1.1.2.14", dst=3D"1.1.2.15")/UDP()/GTP_U_Header()/= GTPPDUSessionContainer(type=3D1, P=3D1, QFI=3D0x34)/IP(src=3D"1.1.2.16", ds= t=3D"1.1.2.17")/UDP(dport=3D12, sport=3D4)],iface=3D"ens786f0")=0D +=0D +L4DST=0D +-----=0D +rule::=0D +=0D + flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp / gtpu / g= tp_psc is 1 / ipv4 / udp / end actions rss types l4-dst-only end key_len 0 = queues end / end=0D +=0D +hit pattern and defined input set::=0D +=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.2", dst=3D"1.1= .2.3")/GRE()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP()/GTP_U_Header()/GTPP= DUSessionContainer(type=3D1, P=3D1, QFI=3D0x34)/IP(src=3D"1.1.2.6", dst=3D"= 1.1.2.7")/UDP(dport=3D12, sport=3D4)],iface=3D"ens786f0")=0D +=0D +hit pattern but not defined input set::=0D +=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.12", dst=3D"1.= 1.2.13")/GRE()/IP(src=3D"1.1.2.14", dst=3D"1.1.2.15")/UDP()/GTP_U_Header()/= GTPPDUSessionContainer(type=3D1, P=3D1, QFI=3D0x34)/IP(src=3D"1.1.2.16", ds= t=3D"1.1.2.17")/UDP(dport=3D2, sport=3D14)],iface=3D"ens786f0")=0D +=0D +L3SRC+L4SRC=0D +-----------=0D +rule::=0D +=0D + flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp / gtpu / g= tp_psc is 1 / ipv4 / udp / end actions rss types l3-src-only l4-src-only en= d key_len 0 queues end / end=0D +=0D +hit pattern and defined input set::=0D +=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.2", dst=3D"1.1= .2.3")/GRE()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP()/GTP_U_Header()/GTPP= DUSessionContainer(type=3D1, P=3D1, QFI=3D0x34)/IP(src=3D"1.1.2.6", dst=3D"= 1.1.2.7")/UDP(dport=3D2, sport=3D14)],iface=3D"ens786f0")=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.2", dst=3D"1.1= .2.3")/GRE()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP()/GTP_U_Header()/GTPP= DUSessionContainer(type=3D1, P=3D1, QFI=3D0x34)/IP(src=3D"1.1.2.16", dst=3D= "1.1.2.7")/UDP(dport=3D2, sport=3D4)],iface=3D"ens786f0")=0D +=0D +hit pattern but not defined input set::=0D +=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.12", dst=3D"1.= 1.2.13")/GRE()/IP(src=3D"1.1.2.14", dst=3D"1.1.2.15")/UDP()/GTP_U_Header()/= GTPPDUSessionContainer(type=3D1, P=3D1, QFI=3D0x34)/IP(src=3D"1.1.2.6", dst= =3D"1.1.2.17")/UDP(dport=3D12, sport=3D4)],iface=3D"ens786f0")=0D +=0D +L3SRC+L4DST=0D +-----------=0D +rule::=0D +=0D + flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp / gtpu / g= tp_psc is 1 / ipv4 / udp / end actions rss types l3-src-only l4-dst-only en= d key_len 0 queues end / end=0D +=0D +hit pattern and defined input set::=0D +=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.2", dst=3D"1.1= .2.3")/GRE()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP()/GTP_U_Header()/GTPP= DUSessionContainer(type=3D1, P=3D1, QFI=3D0x34)/IP(src=3D"1.1.2.6", dst=3D"= 1.1.2.7")/UDP(dport=3D12, sport=3D4)],iface=3D"ens786f0")=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.2", dst=3D"1.1= .2.3")/GRE()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP()/GTP_U_Header()/GTPP= DUSessionContainer(type=3D1, P=3D1, QFI=3D0x34)/IP(src=3D"1.1.2.16", dst=3D= "1.1.2.7")/UDP(dport=3D2, sport=3D4)],iface=3D"ens786f0")=0D +=0D +hit pattern but not defined input set::=0D +=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.12", dst=3D"1.= 1.2.13")/GRE()/IP(src=3D"1.1.2.14", dst=3D"1.1.2.15")/UDP()/GTP_U_Header()/= GTPPDUSessionContainer(type=3D1, P=3D1, QFI=3D0x34)/IP(src=3D"1.1.2.6", dst= =3D"1.1.2.17")/UDP(dport=3D2, sport=3D14)],iface=3D"ens786f0")=0D +=0D +L3DST+L4SRC=0D +-----------=0D +rule::=0D +=0D + flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp / gtpu / g= tp_psc is 1 / ipv4 / udp / end actions rss types l3-dst-only l4-src-only en= d key_len 0 queues end / end=0D +=0D +hit pattern and defined input set::=0D +=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.2", dst=3D"1.1= .2.3")/GRE()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP()/GTP_U_Header()/GTPP= DUSessionContainer(type=3D1, P=3D1, QFI=3D0x34)/IP(src=3D"1.1.2.6", dst=3D"= 1.1.2.7")/UDP(dport=3D2, sport=3D14)],iface=3D"ens786f0")=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.2", dst=3D"1.1= .2.3")/GRE()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP()/GTP_U_Header()/GTPP= DUSessionContainer(type=3D1, P=3D1, QFI=3D0x34)/IP(src=3D"1.1.2.6", dst=3D"= 1.1.2.17")/UDP(dport=3D2, sport=3D4)],iface=3D"ens786f0")=0D +=0D +hit pattern but not defined input set::=0D +=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.12", dst=3D"1.= 1.2.13")/GRE()/IP(src=3D"1.1.2.14", dst=3D"1.1.2.15")/UDP()/GTP_U_Header()/= GTPPDUSessionContainer(type=3D1, P=3D1, QFI=3D0x34)/IP(src=3D"1.1.2.16", ds= t=3D"1.1.2.7")/UDP(dport=3D12, sport=3D4)],iface=3D"ens786f0")=0D +=0D +L3DST+L4DST=0D +-----------=0D +rule::=0D +=0D + flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp / gtpu / g= tp_psc is 1 / ipv4 / udp / end actions rss types l3-dst-only l4-dst-only en= d key_len 0 queues end / end=0D +=0D +hit pattern and defined input set::=0D +=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.2", dst=3D"1.1= .2.3")/GRE()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP()/GTP_U_Header()/GTPP= DUSessionContainer(type=3D1, P=3D1, QFI=3D0x34)/IP(src=3D"1.1.2.6", dst=3D"= 1.1.2.7")/UDP(dport=3D12, sport=3D4)],iface=3D"ens786f0")=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.2", dst=3D"1.1= .2.3")/GRE()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP()/GTP_U_Header()/GTPP= DUSessionContainer(type=3D1, P=3D1, QFI=3D0x34)/IP(src=3D"1.1.2.6", dst=3D"= 1.1.2.17")/UDP(dport=3D2, sport=3D4)],iface=3D"ens786f0")=0D +=0D +hit pattern but not defined input set::=0D +=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.12", dst=3D"1.= 1.2.13")/GRE()/IP(src=3D"1.1.2.14", dst=3D"1.1.2.15")/UDP()/GTP_U_Header()/= GTPPDUSessionContainer(type=3D1, P=3D1, QFI=3D0x34)/IP(src=3D"1.1.2.16", ds= t=3D"1.1.2.7")/UDP(dport=3D2, sport=3D14)],iface=3D"ens786f0")=0D +=0D +IPV4-UDP=0D +--------=0D +rule::=0D +=0D + flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp / gtpu / g= tp_psc is 1 / ipv4 / udp / end actions rss types ipv4-udp end key_len 0 que= ues end / end=0D +=0D +hit pattern and defined input set::=0D +=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.2", dst=3D"1.1= .2.3")/GRE()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP()/GTP_U_Header()/GTPP= DUSessionContainer(type=3D1, P=3D1, QFI=3D0x34)/IP(src=3D"1.1.2.6", dst=3D"= 1.1.2.17")/UDP(dport=3D2, sport=3D4)],iface=3D"ens786f0")=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.2", dst=3D"1.1= .2.3")/GRE()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP()/GTP_U_Header()/GTPP= DUSessionContainer(type=3D1, P=3D1, QFI=3D0x34)/IP(src=3D"1.1.2.16", dst=3D= "1.1.2.7")/UDP(dport=3D2, sport=3D4)],iface=3D"ens786f0")=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.2", dst=3D"1.1= .2.3")/GRE()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP()/GTP_U_Header()/GTPP= DUSessionContainer(type=3D1, P=3D1, QFI=3D0x34)/IP(src=3D"1.1.2.6", dst=3D"= 1.1.2.7")/UDP(dport=3D12, sport=3D4)],iface=3D"ens786f0")=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.2", dst=3D"1.1= .2.3")/GRE()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP()/GTP_U_Header()/GTPP= DUSessionContainer(type=3D1, P=3D1, QFI=3D0x34)/IP(src=3D"1.1.2.6", dst=3D"= 1.1.2.7")/UDP(dport=3D2, sport=3D14)],iface=3D"ens786f0")=0D +=0D +hit pattern but not defined input set::=0D +=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.12", dst=3D"1.= 1.2.13")/GRE()/IP(src=3D"1.1.2.14", dst=3D"1.1.2.15")/UDP()/GTP_U_Header()/= GTPPDUSessionContainer(type=3D1, P=3D1, QFI=3D0x34)/IP(src=3D"1.1.2.6", dst= =3D"1.1.2.7")/UDP(dport=3D2, sport=3D4)],iface=3D"ens786f0")=0D +=0D +=0D +MAC_IPV4_GRE_IPV4_GTPU_UL_IPV4_TCP=0D +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=0D +reconfig all test cases in MAC_IPV4_GRE_IPV4_GTPU_EH_IPV4_UDP:=0D +packets: change the inner most UDP to TCP=0D +rules: change the inner most udp to tcp, ipv4-udp to ipv4-tcp=0D +=0D +=0D +MAC_IPV4_GRE_IPV4_GTPU_DL_IPV4=0D +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=0D +packets: change the type value(1->0/0->1) of MAC_IPV4_GRE_IPV4_GTPU_UL_IPV= 4=0D +rule: change the pdu_t value(1->0) of MAC_IPV4_GRE_IPV4_GTPU_UL_IPV4=0D +=0D +=0D +MAC_IPV4_GRE_IPV4_GTPU_DL_IPV4_UDP=0D +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=0D +packets: change the type value(1->0/0->1) of MAC_IPV4_GRE_IPV4_GTPU_UL_IPV= 4_UDP=0D +rule: change the pdu_t value(1->0) of MAC_IPV4_GRE_IPV4_GTPU_UL_IPV4_UDP=0D +=0D +=0D +MAC_IPV4_GRE_IPV4_GTPU_DL_IPV4_TCP=0D +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=0D +packets: change the type value(1->0/0->1) of MAC_IPV4_GRE_IPV4_GTPU_UL_IPV= 4_TCP=0D +rule: change the pdu_t value(1->0) of MAC_IPV4_GRE_IPV4_GTPU_UL_IPV4_TCP=0D +=0D +=0D +2. toeplitz: IPV6+IPV4+IPV4=0D +=0D +reconfig all the cases of toeplitz: IPV4+IPV4+IPV4=0D +=0D + packets: change the packet's outer l3 layer from IP to IPv6(or IPv6 to= IP), change the ipv4 address to ipv6 address.=0D + rule: change the outer ipv4 to ipv6, change the ipv4 address to ipv6 a= ddress.=0D +=0D +3. toeplitz: IPV4+IPV6+IPV4=0D +=0D +reconfig all the cases of toeplitz: IPV4+IPV4+IPV4=0D +=0D + packets: change the packet's inner l3 layer from IP to IPv6(or IPv6 to= IP).=0D + rule: change the inner ipv4 to ipv6.=0D +=0D +4. toeplitz: IPV4+IPV4+IPV6=0D +=0D +reconfig all the cases of toeplitz: IPV4+IPV4+IPV4=0D +=0D + packets: change the packet's inner most l3 layer from IP to IPv6(or IP= v6 to IP), change the ipv4 address to ipv6 address.=0D + rule: change the inner most ipv4 to ipv6, change the ipv4 address to i= pv6 address.=0D +=0D +5. toeplitz: IPV6+IPV6+IPV4=0D +=0D +reconfig all the cases of toeplitz: IPV4+IPV4+IPV4=0D +=0D + packets: change the packet's outer l3 layer from IP to IPv6(or IPv6 to= IP), change the ipv4 address to ipv6 address.=0D + change the packet's inner l3 layer from IP to IPv6(or IPv6 to= IP).=0D + rule: change the outer ipv4 to ipv6, change the ipv4 address to ipv6 a= ddress.=0D + change the inner ipv4 to ipv6.=0D +=0D +6. toeplitz: IPV4+IPV6+IPV6=0D +=0D +reconfig all the cases of toeplitz: IPV4+IPV4+IPV4=0D +=0D + packets: change the packet's inner most l3 layer from IP to IPv6(or IP= v6 to IP), change the ipv4 address to ipv6 address.=0D + change the packet's inner l3 layer from IP to IPv6(or IPv6 to= IP).=0D + rule: change the inner most ipv4 to ipv6, change the ipv4 address to i= pv6 address.=0D + change the inner ipv4 to ipv6.=0D +=0D +7. toeplitz: IPV6+IPV4+IPV6=0D +=0D +reconfig all the cases of toeplitz: IPV4+IPV4+IPV4=0D +=0D + packets: change the packet's outer l3 layer from IP to IPv6(or IPv6 to= IP), change the ipv4 address to ipv6 address.=0D + change the packet's inner most l3 layer from IP to IPv6(or IP= v6 to IP), change the ipv4 address to ipv6 address.=0D + rule: change the outer ipv4 to ipv6, change the ipv4 address to ipv6 a= ddress.=0D + change the inner most ipv4 to ipv6, change the ipv4 address to i= pv6 address.=0D +=0D +8. toeplitz: IPV6+IPV6+IPV6=0D +=0D +reconfig all the cases of toeplitz: IPV4+IPV4+IPV4=0D +=0D + packets: change the packet's outer l3 layer from IP to IPv6(or IPv6 to= IP), change the ipv4 address to ipv6 address.=0D + change the packet's inner l3 layer from IP to IPv6(or IPv6 to= IP).=0D + change the packet's inner most l3 layer from IP to IPv6(or IP= v6 to IP), change the ipv4 address to ipv6 address.=0D + rule: change the outer ipv4 to ipv6, change the ipv4 address to ipv6 a= ddress.=0D + change the inner ipv4 to ipv6.=0D + change the inner most ipv4 to ipv6, change the ipv4 address to i= pv6 address.=0D +=0D +=0D +9. symmetric: IPV4+IPV4+IPV4=0D +=0D +MAC_IPV4_GRE_IPV4_GTPU_IPV4=0D +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=0D +rule::=0D +=0D + flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp / gtpu / i= pv4 / end actions rss func symmetric_toeplitz types ipv4 end key_len 0 queu= es end / end=0D +=0D +packets::=0D +=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.2", dst=3D"1.1= .2.3")/GRE()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP()/GTP_U_Header()/IP(s= rc=3D"1.1.2.6", dst=3D"1.1.2.7")],iface=3D"ens786f0")=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.2", dst=3D"1.1= .2.3")/GRE()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP()/GTP_U_Header()/IP(s= rc=3D"1.1.2.7", dst=3D"1.1.2.6")],iface=3D"ens786f0")=0D +=0D +=0D +MAC_IPV4_GRE_IPV4_GTPU_EH_IPV4_UDP=0D +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=0D +rule::=0D +=0D + flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp / gtpu / g= tp_psc / ipv4 / udp / end actions rss func symmetric_toeplitz types ipv4-ud= p end key_len 0 queues end / end=0D +=0D +packets::=0D +=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.2", dst=3D"1.1= .2.3")/GRE()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP()/GTP_U_Header()/GTPP= DUSessionContainer()/IP(src=3D"1.1.2.6", dst=3D"1.1.2.7")/UDP(dport=3D2, sp= ort=3D4)],iface=3D"ens786f0")=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.2", dst=3D"1.1= .2.3")/GRE()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP()/GTP_U_Header()/GTPP= DUSessionContainer()/IP(src=3D"1.1.2.7", dst=3D"1.1.2.6")/UDP(dport=3D2, sp= ort=3D4)],iface=3D"ens786f0")=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.2", dst=3D"1.1= .2.3")/GRE()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP()/GTP_U_Header()/GTPP= DUSessionContainer()/IP(src=3D"1.1.2.6", dst=3D"1.1.2.7")/UDP(dport=3D4, sp= ort=3D2)],iface=3D"ens786f0")=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.2", dst=3D"1.1= .2.3")/GRE()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP()/GTP_U_Header()/GTPP= DUSessionContainer()/IP(src=3D"1.1.2.7", dst=3D"1.1.2.6")/UDP(dport=3D4, sp= ort=3D2)],iface=3D"ens786f0")=0D +=0D +=0D +MAC_IPV4_GRE_IPV4_GTPU_UL_IPV4_TCP=0D +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=0D +rule::=0D +=0D + flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp / gtpu / g= tp_psc pdu_t is 1 / ipv4 / tcp / end actions rss func symmetric_toeplitz ty= pes ipv4-tcp end key_len 0 queues end / end=0D +=0D +packets::=0D +=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.2", dst=3D"1.1= .2.3")/GRE()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP()/GTP_U_Header()/GTPP= DUSessionContainer(type=3D1, P=3D1, QFI=3D0x34)/IP(src=3D"1.1.2.6", dst=3D"= 1.1.2.7")/TCP(dport=3D2, sport=3D4)],iface=3D"ens786f0")=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.2", dst=3D"1.1= .2.3")/GRE()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP()/GTP_U_Header()/GTPP= DUSessionContainer(type=3D1, P=3D1, QFI=3D0x34)/IP(src=3D"1.1.2.7", dst=3D"= 1.1.2.6")/TCP(dport=3D2, sport=3D4)],iface=3D"ens786f0")=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.2", dst=3D"1.1= .2.3")/GRE()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP()/GTP_U_Header()/GTPP= DUSessionContainer(type=3D1, P=3D1, QFI=3D0x34)/IP(src=3D"1.1.2.6", dst=3D"= 1.1.2.7")/TCP(dport=3D4, sport=3D2)],iface=3D"ens786f0")=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.2", dst=3D"1.1= .2.3")/GRE()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP()/GTP_U_Header()/GTPP= DUSessionContainer(type=3D1, P=3D1, QFI=3D0x34)/IP(src=3D"1.1.2.7", dst=3D"= 1.1.2.6")/TCP(dport=3D4, sport=3D2)],iface=3D"ens786f0")=0D +=0D +=0D +MAC_IPV4_GRE_IPV4_GTPU_DL_IPV4=0D +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=0D +rule::=0D +=0D + flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp / gtpu / g= tp_psc pdu_t is 0 / ipv4 / end actions rss func symmetric_toeplitz types ip= v4 end key_len 0 queues end / end=0D +=0D +packets::=0D +=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.2", dst=3D"1.1= .2.3")/GRE()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP()/GTP_U_Header()/GTPP= DUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(src=3D"1.1.2.6", dst=3D"= 1.1.2.7")],iface=3D"ens786f0")=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.2", dst=3D"1.1= .2.3")/GRE()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP()/GTP_U_Header()/GTPP= DUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(src=3D"1.1.2.7", dst=3D"= 1.1.2.6")],iface=3D"ens786f0")=0D +=0D +=0D +10. symmetric: IPV6+IPV4+IPV4=0D +=0D +reconfig all the cases of symmetric: IPV4+IPV4+IPV4=0D +=0D + packets: change the packet's outer l3 layer from IP to IPv6(or IPv6 to= IP), change the ipv4 address to ipv6 address.=0D + rule: change the outer ipv4 to ipv6, change the ipv4 address to ipv6 a= ddress.=0D +=0D +11. symmetric: IPV4+IPV6+IPV4=0D +=0D +reconfig all the cases of symmetric: IPV4+IPV4+IPV4=0D +=0D + packets: change the packet's inner l3 layer from IP to IPv6(or IPv6 to= IP).=0D + rule: change the inner ipv4 to ipv6.=0D +=0D +12. symmetric: IPV4+IPV4+IPV6=0D +=0D +reconfig all the cases of symmetric: IPV4+IPV4+IPV4=0D +=0D + packets: change the packet's inner most l3 layer from IP to IPv6(or IP= v6 to IP), change the ipv4 address to ipv6 address.=0D + rule: change the inner most ipv4 to ipv6, change the ipv4 address to i= pv6 address.=0D +=0D +13. symmetric: IPV6+IPV6+IPV4=0D +=0D +reconfig all the cases of symmetric: IPV4+IPV4+IPV4=0D +=0D + packets: change the packet's outer l3 layer from IP to IPv6(or IPv6 to= IP), change the ipv4 address to ipv6 address.=0D + change the packet's inner l3 layer from IP to IPv6(or IPv6 to= IP).=0D + rule: change the outer ipv4 to ipv6, change the ipv4 address to ipv6 a= ddress.=0D + change the inner ipv4 to ipv6.=0D +=0D +14. symmetric: IPV4+IPV6+IPV6=0D +=0D +reconfig all the cases of symmetric: IPV4+IPV4+IPV4=0D +=0D + packets: change the packet's inner most l3 layer from IP to IPv6(or IP= v6 to IP), change the ipv4 address to ipv6 address.=0D + change the packet's inner l3 layer from IP to IPv6(or IPv6 to= IP).=0D + rule: change the inner most ipv4 to ipv6, change the ipv4 address to i= pv6 address.=0D + change the inner ipv4 to ipv6.=0D +=0D +15. symmetric: IPV6+IPV4+IPV6=0D +=0D +reconfig all the cases of symmetric: IPV4+IPV4+IPV4=0D +=0D + packets: change the packet's outer l3 layer from IP to IPv6(or IPv6 to= IP), change the ipv4 address to ipv6 address.=0D + change the packet's inner most l3 layer from IP to IPv6(or IP= v6 to IP), change the ipv4 address to ipv6 address.=0D + rule: change the outer ipv4 to ipv6, change the ipv4 address to ipv6 a= ddress.=0D + change the inner most ipv4 to ipv6, change the ipv4 address to i= pv6 address.=0D +=0D +16. symmetric: IPV6+IPV6+IPV6=0D +=0D +reconfig all the cases of symmetric: IPV4+IPV4+IPV4=0D +=0D + packets: change the packet's outer l3 layer from IP to IPv6(or IPv6 to= IP), change the ipv4 address to ipv6 address.=0D + change the packet's inner l3 layer from IP to IPv6(or IPv6 to= IP).=0D + change the packet's inner most l3 layer from IP to IPv6(or IP= v6 to IP), change the ipv4 address to ipv6 address.=0D + rule: change the outer ipv4 to ipv6, change the ipv4 address to ipv6 a= ddress.=0D + change the inner ipv4 to ipv6.=0D + change the inner most ipv4 to ipv6, change the ipv4 address to i= pv6 address.=0D +=0D +=0D +negative test case=0D +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=0D +1. create rules and check all the rules fail::=0D +=0D + testpmd> flow create 0 ingress pattern eth / ipv4 / gre / ipv6 / udp /= gtpu / gtp_psc is 1 / ipv4 / udp / end actions rss types ipv4-udp gtpu end= key_len 0 queues end / end=0D + Bad arguments=0D +=0D + testpmd> flow create 0 ingress pattern eth / ipv4 / gre / ipv6 / udp /= gtpu / gtp_psc is 1 / ipv4 / udp / end actions rss types ipv6-tcp end key_= len 0 queues end / end=0D + Bad arguments=0D +=0D + testpmd> flow create 0 ingress pattern eth / ipv6 / gre / ipv4 / udp /= gtpu / gtp_psc is 1 / ipv4 / end actions rss types ipv4 l4-dst-only end ke= y_len 0 queues end / end=0D + Bad arguments=0D +=0D + testpmd> flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp /= gtpu / ipv6 / end actions rss types ipv6 l2-src-only end key_len 0 queues = end / end=0D + iavf_flow_create(): Failed to create flow=0D + port_flow_complain(): Caught PMD error type 2 (flow rule (handle)): Fa= iled to create parser engine.: Invalid argument=0D +=0D + testpmd> flow create 0 ingress pattern eth / ipv4 / gre / ipv6 / udp /= gtpu / gtp_psc is 1 / ipv6 / tcp / end actions rss func symmetric_toeplitz= types l3-src-only end key_len 0 queues end / end=0D + Bad arguments=0D +=0D + testpmd> flow create 0 ingress pattern eth / ipv6 / gre / ipv6 / udp /= gtpu / gtp_psc is 1 / ipv4 / end actions rss func symmetric_toeplitz types= l4-src-only end key_len 0 queues end / end=0D + Bad arguments=0D +=0D +=0D +exclusive test case=0D +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=0D +=0D +subcase 1: without eh rule + with eh rule=0D +-----------------------------------------=0D +when the rule with eh and another rule without eh co-exist, 2 rules do not= affect each other.=0D +=0D +1. create 1 rule with eh and 1 rule without eh::=0D +=0D + flow create 0 ingress pattern eth / ipv4 / gre / ipv6 / udp / gtpu / i= pv4 / udp / end actions rss types ipv4-udp l3-src-only end key_len 0 queues= end / end=0D + flow create 0 ingress pattern eth / ipv4 / gre / ipv6 / udp / gtpu / g= tp_psc / ipv4 / udp / end actions rss types ipv4-udp l3-dst-only end key_le= n 0 queues end / end=0D +=0D +2. send pkts which hit 2 rules separately, check the pkt will hit each rul= e::=0D +=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP()/GRE()/IP()/UDP()/GTP_U_He= ader()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP()],iface=3D"ens786f0")=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP()/GRE()/IP()/UDP()/GTP_U_He= ader()/IP(src=3D"1.1.2.14", dst=3D"1.1.2.5")/UDP()],iface=3D"ens786f0")=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP()/GRE()/IP()/UDP()/GTP_U_He= ader()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.15")/UDP()],iface=3D"ens786f0")=0D +=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP()/GRE()/IP()/UDP()/GTP_U_He= ader()/GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(src=3D"1.1.2.= 4", dst=3D"1.1.2.5")/UDP()],iface=3D"ens786f0")=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP()/GRE()/IP()/UDP()/GTP_U_He= ader()/GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(src=3D"1.1.2.= 14", dst=3D"1.1.2.5")/UDP()],iface=3D"ens786f0")=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP()/GRE()/IP()/UDP()/GTP_U_He= ader()/GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)/IP(src=3D"1.1.2.= 4", dst=3D"1.1.2.15")/UDP()],iface=3D"ens786f0")=0D +=0D +subcase 2: without l4 rule + with l4 rule=0D +-----------------------------------------=0D +the rule without l4 has a larger coverage than the rule with l4. if user n= eed to create these two rule at the same time.=0D +user should create rule without l4 firstly then create rule with l4.=0D +when 2 rules exist, each pattern hit each rule. destroy l4 rule, l4 patter= n hit l3 rule. destroy l3 rule, l3 pattern will not hit l4 rule.=0D +=0D +1. create 1 rule with l4 and 1 rule without l4::=0D +=0D + flow create 0 ingress pattern eth / ipv6 / gre / ipv6 / udp / gtpu / i= pv4 / end actions rss types ipv4 l3-src-only end key_len 0 queues end / end= =0D + flow create 0 ingress pattern eth / ipv6 / gre / ipv6 / udp / gtpu / i= pv4 / udp / end actions rss types ipv4-udp l3-dst-only end key_len 0 queues= end / end=0D +=0D +2. send pkts which hit 2 rules separately, check the pkt will hit each rul= e::=0D +=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IPv6()/GRE()/IP()/UDP()/GTP_U_= Header()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")],iface=3D"ens786f0")=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IPv6()/GRE()/IP()/UDP()/GTP_U_= Header()/IP(src=3D"1.1.2.14", dst=3D"1.1.2.5")],iface=3D"ens786f0")=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IPv6()/GRE()/IP()/UDP()/GTP_U_= Header()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.15")],iface=3D"ens786f0")=0D +=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IPv6()/GRE()/IP()/UDP()/GTP_U_= Header()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP()],iface=3D"ens786f0")=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IPv6()/GRE()/IP()/UDP()/GTP_U_= Header()/IP(src=3D"1.1.2.14", dst=3D"1.1.2.5")/UDP()],iface=3D"ens786f0")=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IPv6()/GRE()/IP()/UDP()/GTP_U_= Header()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.15")/UDP()],iface=3D"ens786f0")=0D +=0D +3. destroy l4 rule, repeat step 2, check the l4 pkts will hit l3 rule.=0D +=0D +subcase 3: with eh but without ul/dl + ul=0D +-----------------------------------------=0D +when 2 rules exist, each pattern hit each rule. destroy ul rule, ul patter= n hit eh rule without ul/dl.=0D +=0D +1. create 1 rule with ul and 1 rule without ul/dl::=0D +=0D + flow create 0 ingress pattern eth / ipv4 / gre / ipv6 / udp / gtpu / g= tp_psc / ipv4 / udp / end actions rss types ipv4-udp l3-src-only end key_le= n 0 queues end / end=0D + flow create 0 ingress pattern eth / ipv4 / gre / ipv6 / udp / gtpu / g= tp_psc pdu_t is 1 / ipv4 / udp / end actions rss types ipv4-udp l3-dst-only= end key_len 0 queues end / end=0D +=0D +2. send pkts which hit 2 rules separately, check the pkt will hit each rul= e::=0D +=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP()/GRE()/IP()/UDP()/GTP_U_He= ader()/GTPPDUSessionContainer()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP()]= ,iface=3D"ens786f0")=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP()/GRE()/IP()/UDP()/GTP_U_He= ader()/GTPPDUSessionContainer()/IP(src=3D"1.1.2.14", dst=3D"1.1.2.5")/UDP()= ],iface=3D"ens786f0")=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP()/GRE()/IP()/UDP()/GTP_U_He= ader()/GTPPDUSessionContainer()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.15")/UDP()= ],iface=3D"ens786f0")=0D +=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP()/GRE()/IP()/UDP()/GTP_U_He= ader()/GTPPDUSessionContainer(type=3D1, P=3D1, QFI=3D0x34)/IP(src=3D"1.1.2.= 4", dst=3D"1.1.2.5")/UDP()],iface=3D"ens786f0")=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP()/GRE()/IP()/UDP()/GTP_U_He= ader()/GTPPDUSessionContainer(type=3D1, P=3D1, QFI=3D0x34)/IP(src=3D"1.1.2.= 14", dst=3D"1.1.2.5")/UDP()],iface=3D"ens786f0")=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP()/GRE()/IP()/UDP()/GTP_U_He= ader()/GTPPDUSessionContainer(type=3D1, P=3D1, QFI=3D0x34)/IP(src=3D"1.1.2.= 4", dst=3D"1.1.2.15")/UDP()],iface=3D"ens786f0")=0D +=0D +3. destroy ul rule, send pkts in step 2, check the pkt will hit the eh rul= e without ul/dl.=0D +=0D +subcase 4: ipv4/ipv4/ipv4 rule + ipv4/ipv6/ipv4 rule=0D +----------------------------------------------------=0D +currently, the inner ip do not make distinction between ipv4 and ipv6, the= se two patterns use same profile.=0D +so when create two rules of these two patterns with same input set, the se= cond rule can not be created.=0D +=0D +1. create two rules of these two patterns with same input set, check the s= econd rule can not be created::=0D +=0D + flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp / gtpu / g= tp_psc / ipv4 src is 1.1.2.4 dst is 1.1.2.5 / end actions queue index 13 / = mark id 13 / end=0D + flow create 0 ingress pattern eth / ipv4 / gre / ipv6 / udp / gtpu / g= tp_psc / ipv4 src is 1.1.2.4 dst is 1.1.2.5 / end actions queue index 3 / m= ark id 3 / end=0D +=0D + testpmd> flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp /= gtpu / gtp_psc / ipv4 src is 1.1.2.4 dst is 1.1.2.5 / end actions queue in= dex 13 / mark id 13 / end=0D + Flow rule #0 created=0D + testpmd> flow create 0 ingress pattern eth / ipv4 / gre / ipv6 / udp /= gtpu / gtp_psc / ipv4 src is 1.1.2.4 dst is 1.1.2.5 / end actions queue in= dex 3 / mark id 3 / end=0D + iavf_fdir_add(): Failed to add rule request due to the rule is already= existed=0D + iavf_flow_create(): Failed to create flow=0D + port_flow_complain(): Caught PMD error type 2 (flow rule (handle)): Fa= iled to create parser engine.: Invalid argument=0D +=0D --=20 2.25.1