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 5538DA0C4D; Fri, 20 Aug 2021 04:36:20 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 224C74013F; Fri, 20 Aug 2021 04:36:20 +0200 (CEST) Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by mails.dpdk.org (Postfix) with ESMTP id DDFF94003D for ; Fri, 20 Aug 2021 04:36:17 +0200 (CEST) X-IronPort-AV: E=McAfee;i="6200,9189,10081"; a="238823269" X-IronPort-AV: E=Sophos;i="5.84,336,1620716400"; d="scan'208";a="238823269" Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by fmsmga101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 19 Aug 2021 19:36:16 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.84,336,1620716400"; d="scan'208";a="489991292" Received: from dpdk-qifu-cxl.sh.intel.com ([10.67.119.179]) by fmsmga008.fm.intel.com with ESMTP; 19 Aug 2021 19:36:15 -0700 From: qifu To: dts@dpdk.org Cc: qifu Date: Fri, 20 Aug 2021 07:11:45 -0400 Message-Id: <20210820111145.1248737-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 fdir 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 parsering,=20 based on this ddp pkg, dpdk enable rte_flow for GTPoGRE in CVL IAVF. Add this test plan for GTPoGRE FDIR tests.=20=20 Signed-off-by: qifu --- test_plans/iavf_fdir_gtpogre_testplan.rst | 812 ++++++++++++++++++++++ 1 file changed, 812 insertions(+) create mode 100644 test_plans/iavf_fdir_gtpogre_testplan.rst diff --git a/test_plans/iavf_fdir_gtpogre_testplan.rst b/test_plans/iavf_fd= ir_gtpogre_testplan.rst new file mode 100644 index 00000000..94b637fe --- /dev/null +++ b/test_plans/iavf_fdir_gtpogre_testplan.rst @@ -0,0 +1,812 @@ +.. 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=3D=0D +CVL IAVF Support GTPoGRE in FDIR=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=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 FDIR of GTPoGRE.=0D +Supported input set: inner most l3/l4 src/dst, outer l3 src/dst, gtpu teid= , qfi=0D +Supported action: queue index, rss queues, passthru, drop, mark rss=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 0 mac 00:11:22:33:44:55=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=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 +test steps for supported pattern=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=0D +1. validate rules.=0D +2. create rules and list rules.=0D +3. send matched packets, check the action is right:=0D + queue index: to right queue with mark id=0D + rss queues: to right queue group with mark id=0D + passthru: distributed by rss with mark id=0D + drop: not receive pkt=0D + rss+mark: distributed by rss with mark id=0D +4. send mismatched packets, check the action is not right:=0D + queue index: not to right queue without mark id=0D + rss queues: not to right queue group without mark id=0D + passthru: distributed by rss without mark id=0D + drop: receive pkt=0D + rss+mark: distributed by rss without mark id=0D +5. destroy rule, list rules.=0D +6. send matched packets, check the action is not right.=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 + | combination | Packet type | 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=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D+=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=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* | outer l3= src, outer l3 dst, inner most l3 src, inner most l3 dst = |=0D + +------------------------+----------------------------------+---------= ---------------------------------------------------------------------------= ------------------------------+=0D + | | MAC_IP*_GRE_IP*_GTPU_IP*_UDP | outer l3= src, outer l3 dst, inner most l3 src, inner most l3 dst, inner most l4 src= , inner most l4 dst |=0D + +------------------------+----------------------------------+---------= ---------------------------------------------------------------------------= ------------------------------+=0D + | | MAC_IP*_GRE_IP*_GTPU_IP*_TCP | outer l3= src, outer l3 dst, inner most l3 src, inner most l3 dst, inner most l4 src= , inner most l4 dst |=0D + +------------------------+----------------------------------+---------= ---------------------------------------------------------------------------= ------------------------------+=0D + | | MAC_IP*_GRE_IP*_GTPU_EH_IP* | outer l3= src, outer l3 dst, teid, qfi, inner most l3 src, inner most l3 dst = |=0D + +------------------------+----------------------------------+---------= ---------------------------------------------------------------------------= ------------------------------+=0D + | | MAC_IP*_GRE_IP*_GTPU_EH_IP*_UDP | outer l3= src, outer l3 dst, teid, qfi, inner most l3 src, inner most l3 dst, inner = most l4 src, inner most l4 dst|=0D + +------------------------+----------------------------------+---------= ---------------------------------------------------------------------------= ------------------------------+=0D + | | MAC_IP*_GRE_IP*_GTPU_EH_IP*_TCP | outer l3= src, outer l3 dst, teid, qfi, inner most l3 src, inner most l3 dst, inner = most l4 src, inner most l4 dst|=0D + +------------------------+----------------------------------+---------= ---------------------------------------------------------------------------= ------------------------------+=0D + | | MAC_IP*_GRE_IP*_GTPU_UL_IP* | outer l3= src, outer l3 dst, teid, qfi, inner most l3 src, inner most l3 dst = |=0D + +------------------------+----------------------------------+---------= ---------------------------------------------------------------------------= ------------------------------+=0D + | | MAC_IP*_GRE_IP*_GTPU_UL_IP*_UDP | outer l3= src, outer l3 dst, teid, qfi, inner most l3 src, inner most l3 dst, inner = most l4 src, inner most l4 dst|=0D + +------------------------+----------------------------------+---------= ---------------------------------------------------------------------------= ------------------------------+=0D + | | MAC_IP*_GRE_IP*_GTPU_UL_IP*_TCP | outer l3= src, outer l3 dst, teid, qfi, inner most l3 src, inner most l3 dst, inner = most l4 src, inner most l4 dst|=0D + +------------------------+----------------------------------+---------= ---------------------------------------------------------------------------= ------------------------------+=0D + | | MAC_IP*_GRE_IP*_GTPU_DL_IP* | outer l3= src, outer l3 dst, teid, qfi, inner most l3 src, inner most l3 dst = |=0D + +------------------------+----------------------------------+---------= ---------------------------------------------------------------------------= ------------------------------+=0D + | | MAC_IP*_GRE_IP*_GTPU_DL_IP*_UDP | outer l3= src, outer l3 dst, teid, qfi, inner most l3 src, inner most l3 dst, inner = most l4 src, inner most l4 dst|=0D + +------------------------+----------------------------------+---------= ---------------------------------------------------------------------------= ------------------------------+=0D + | | MAC_IP*_GRE_IP*_GTPU_DL_IP*_TCP | outer l3= src, outer l3 dst, teid, qfi, inner most l3 src, inner most l3 dst, inner = most l4 src, inner most l4 dst|=0D + +------------------------+----------------------------------+---------= ---------------------------------------------------------------------------= ------------------------------+=0D +=0D +each combination just need to change the IP* with IPV4 or IPV6, the inputs= et 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. 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 +matched pkt::=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")],iface=3D"ens786f0")=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP()/GRE()/IPv6()/UDP()/GTP_U_= Header()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")],iface=3D"ens786f0")=0D +=0D +unmatched pkt::=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.14", dst=3D"1.1.2.5")],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")],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.5")],iface=3D"ens786f0")=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP()/GRE()/IP()/UDP()/GTP_U_He= ader()/IPv6()],iface=3D"ens786f0")=0D +=0D +queue index=0D +------------=0D +flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp / gtpu / ipv4 = src is 1.1.2.4 dst is 1.1.2.5 / end actions queue index 3 / mark id 13 / en= d=0D +=0D +rss queues=0D +-----------=0D +flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp / gtpu / ipv4 = src is 1.1.2.4 dst is 1.1.2.5 / end actions rss queues 4 5 end / mark id 23= / end=0D +=0D +passthru=0D +---------=0D +flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp / gtpu / ipv4 = src is 1.1.2.4 dst is 1.1.2.5 / end actions passthru / mark id 33 / end=0D +=0D +drop=0D +-----=0D +flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp / gtpu / ipv4 = src is 1.1.2.4 dst is 1.1.2.5 / end actions drop / end=0D +=0D +mark+rss=0D +--------=0D +flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp / gtpu / ipv4 = src is 1.1.2.4 dst is 1.1.2.5 / end actions mark / rss / end=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 +matched pkt::=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()/UDP()/GTP_U_Header()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")= /UDP(sport=3D13, dport=3D23)],iface=3D"ens786f0")=0D +=0D +unmatched pkt::=0D +=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.12", dst=3D"1.= 1.2.3")/GRE()/IP()/UDP()/GTP_U_Header()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5"= )/UDP(sport=3D13, dport=3D23)],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.13")/GRE()/IP()/UDP()/GTP_U_Header()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5"= )/UDP(sport=3D13, dport=3D23)],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()/UDP()/GTP_U_Header()/IP(src=3D"1.1.2.14", dst=3D"1.1.2.5"= )/UDP(sport=3D13, dport=3D23)],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()/UDP()/GTP_U_Header()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.15"= )/UDP(sport=3D13, dport=3D23)],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()/UDP()/GTP_U_Header()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.15"= )/UDP(dport=3D33, sport=3D23)],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()/UDP()/GTP_U_Header()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.15"= )/UDP(dport=3D13, sport=3D33)],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.5")/UDP(sport=3D13, dport=3D23)],= 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()/IPv6()/UDP()/GTP_U_Header()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5= ")/UDP(sport=3D13, dport=3D23)],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()/UDP()/GTP_U_Header()/IPv6()/UDP(sport=3D13, dport=3D23)],= 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()/UDP()/GTP_U_Header()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")= /TCP(sport=3D13, dport=3D23)],iface=3D"ens786f0")=0D +=0D +queue index=0D +------------=0D +flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp / gtpu / ipv4 = src is 1.1.2.4 dst is 1.1.2.5 / udp src is 13 dst is 23 / end actions queue= index 3 / mark id 13 / end=0D +=0D +rss queues=0D +-----------=0D +flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp / gtpu / ipv4 = src is 1.1.2.4 dst is 1.1.2.5 / udp src is 13 dst is 23 / end actions rss q= ueues 4 5 end / mark id 23 / end=0D +=0D +passthru=0D +---------=0D +flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp / gtpu / ipv4 = src is 1.1.2.4 dst is 1.1.2.5 / udp src is 13 dst is 23 / end actions passt= hru / mark id 33 / end=0D +=0D +drop=0D +-----=0D +flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp / gtpu / ipv4 = src is 1.1.2.4 dst is 1.1.2.5 / udp src is 13 dst is 23 / end actions drop = / end=0D +=0D +mark+rss=0D +--------=0D +flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp / gtpu / ipv4 = src is 1.1.2.4 dst is 1.1.2.5 / udp src is 13 dst is 23 / end actions mark = / rss / end=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 +matched pkt::=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()/UDP()/GTP_U_Header()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")= /TCP(sport=3D13, dport=3D23)],iface=3D"ens786f0")=0D +=0D +unmatched pkt::=0D +=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.12", dst=3D"1.= 1.2.3")/GRE()/IP()/UDP()/GTP_U_Header()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5"= )/TCP(sport=3D13, dport=3D23)],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.13")/GRE()/IP()/UDP()/GTP_U_Header()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5"= )/TCP(sport=3D13, dport=3D23)],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()/UDP()/GTP_U_Header()/IP(src=3D"1.1.2.14", dst=3D"1.1.2.5"= )/TCP(sport=3D13, dport=3D23)],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()/UDP()/GTP_U_Header()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.15"= )/TCP(sport=3D13, dport=3D23)],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()/UDP()/GTP_U_Header()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.15"= )/TCP(dport=3D33, sport=3D23)],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()/UDP()/GTP_U_Header()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.15"= )/TCP(dport=3D13, sport=3D33)],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.5")/TCP(sport=3D13, dport=3D23)],= 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()/IPv6()/UDP()/GTP_U_Header()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5= ")/TCP(sport=3D13, dport=3D23)],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()/UDP()/GTP_U_Header()/IPv6()/TCP(sport=3D13, dport=3D23)],= 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()/UDP()/GTP_U_Header()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")= /UDP(sport=3D13, dport=3D23)],iface=3D"ens786f0")=0D +=0D +queue index=0D +------------=0D +flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp / gtpu / ipv4 = src is 1.1.2.4 dst is 1.1.2.5 / tcp src is 13 dst is 23 / end actions queue= index 3 / mark id 13 / end=0D +=0D +rss queues=0D +-----------=0D +flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp / gtpu / ipv4 = src is 1.1.2.4 dst is 1.1.2.5 / tcp src is 13 dst is 23 / end actions rss q= ueues 4 5 end / mark id 23 / end=0D +=0D +passthru=0D +---------=0D +flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp / gtpu / ipv4 = src is 1.1.2.4 dst is 1.1.2.5 / tcp src is 13 dst is 23 / end actions passt= hru / mark id 33 / end=0D +=0D +drop=0D +-----=0D +flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp / gtpu / ipv4 = src is 1.1.2.4 dst is 1.1.2.5 / tcp src is 13 dst is 23 / end actions drop = / end=0D +=0D +mark+rss=0D +--------=0D +flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp / gtpu / ipv4 = src is 1.1.2.4 dst is 1.1.2.5 / tcp src is 13 dst is 23 / end actions mark = / rss / end=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 +matched pkt::=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")],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.5")],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.5")],iface=3D"ens786f0")=0D +=0D +unmatched pkt::=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")],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.5")],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")],ifac= e=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")],ifac= e=3D"ens786f0")=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IPv6()/GRE()/IP()/UDP()/GTP_U_= Header()/GTPPDUSessionContainer()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")],ifa= ce=3D"ens786f0")=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP()/GRE()/IPv6()/UDP()/GTP_U_= Header()/GTPPDUSessionContainer()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")],ifa= ce=3D"ens786f0")=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP()/GRE()/IP()/UDP()/GTP_U_He= ader()/GTPPDUSessionContainer()/IPv6()],iface=3D"ens786f0")=0D +=0D +queue index=0D +------------=0D +flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp / gtpu / gtp_p= sc / ipv4 src is 1.1.2.4 dst is 1.1.2.5 / end actions queue index 3 / mark = id 13 / end=0D +=0D +rss queues=0D +-----------=0D +flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp / gtpu / gtp_p= sc / ipv4 src is 1.1.2.4 dst is 1.1.2.5 / end actions rss queues 4 5 end / = mark id 23 / end=0D +=0D +passthru=0D +---------=0D +flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp / gtpu / gtp_p= sc / ipv4 src is 1.1.2.4 dst is 1.1.2.5 / end actions passthru / mark id 33= / end=0D +=0D +drop=0D +-----=0D +flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp / gtpu / gtp_p= sc / ipv4 src is 1.1.2.4 dst is 1.1.2.5 / end actions drop / end=0D +=0D +mark+rss=0D +--------=0D +flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp / gtpu / gtp_p= sc / ipv4 src is 1.1.2.4 dst is 1.1.2.5 / end actions mark / rss / end=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 +matched pkt::=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()/UDP()/GTP_U_Header()/GTPPDUSessionContainer()/IP(src=3D"1= .1.2.4", dst=3D"1.1.2.5")/UDP(sport=3D13, dport=3D23)],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()/UDP()/GTP_U_Header()/GTPPDUSessionContainer(type=3D0, P= =3D1, QFI=3D0x34)/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP(sport=3D13, dpor= t=3D23)],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()/UDP()/GTP_U_Header()/GTPPDUSessionContainer(type=3D1, P= =3D1, QFI=3D0x34)/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP(sport=3D13, dpor= t=3D23)],iface=3D"ens786f0")=0D +=0D +unmatched pkt::=0D +=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.12", dst=3D"1.= 1.2.3")/GRE()/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer()/IP(src=3D"= 1.1.2.4", dst=3D"1.1.2.5")/UDP(sport=3D13, dport=3D23)],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.13")/GRE()/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer()/IP(src=3D"= 1.1.2.4", dst=3D"1.1.2.5")/UDP(sport=3D13, dport=3D23)],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()/UDP()/GTP_U_Header()/GTPPDUSessionContainer()/IP(src=3D"1= .1.2.14", dst=3D"1.1.2.5")/UDP(sport=3D13, dport=3D23)],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()/UDP()/GTP_U_Header()/GTPPDUSessionContainer()/IP(src=3D"1= .1.2.4", dst=3D"1.1.2.15")/UDP(sport=3D13, dport=3D23)],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()/UDP()/GTP_U_Header()/GTPPDUSessionContainer()/IP(src=3D"1= .1.2.4", dst=3D"1.1.2.15")/UDP(dport=3D33, sport=3D23)],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()/UDP()/GTP_U_Header()/GTPPDUSessionContainer()/IP(src=3D"1= .1.2.4", dst=3D"1.1.2.15")/UDP(dport=3D13, sport=3D33)],iface=3D"ens786f0")= =0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IPv6()/GRE()/IP()/UDP()/GTP_U_= Header()/GTPPDUSessionContainer()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP(= sport=3D13, dport=3D23)],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()/IPv6()/UDP()/GTP_U_Header()/GTPPDUSessionContainer()/IP(src=3D= "1.1.2.4", dst=3D"1.1.2.5")/UDP(sport=3D13, dport=3D23)],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()/UDP()/GTP_U_Header()/GTPPDUSessionContainer()/IPv6()/UDP(= sport=3D13, dport=3D23)],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()/UDP()/GTP_U_Header()/GTPPDUSessionContainer()/IP(src=3D"1= .1.2.4", dst=3D"1.1.2.5")/TCP(sport=3D13, dport=3D23)],iface=3D"ens786f0")= =0D +=0D +queue index=0D +------------=0D +flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp / gtpu / gtp_p= sc / ipv4 src is 1.1.2.4 dst is 1.1.2.5 / udp src is 13 dst is 23 / end act= ions queue index 3 / mark id 13 / end=0D +=0D +rss queues=0D +-----------=0D +flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp / gtpu / gtp_p= sc / ipv4 src is 1.1.2.4 dst is 1.1.2.5 / udp src is 13 dst is 23 / end act= ions rss queues 4 5 end / mark id 23 / end=0D +=0D +passthru=0D +---------=0D +flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp / gtpu / gtp_p= sc / ipv4 src is 1.1.2.4 dst is 1.1.2.5 / udp src is 13 dst is 23 / end act= ions passthru / mark id 33 / end=0D +=0D +drop=0D +-----=0D +flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp / gtpu / gtp_p= sc / ipv4 src is 1.1.2.4 dst is 1.1.2.5 / udp src is 13 dst is 23 / end act= ions drop / end=0D +=0D +mark+rss=0D +--------=0D +flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp / gtpu / gtp_p= sc / ipv4 src is 1.1.2.4 dst is 1.1.2.5 / udp src is 13 dst is 23 / end act= ions mark / rss / end=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 +matched pkt::=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()/UDP()/GTP_U_Header()/GTPPDUSessionContainer()/IP(src=3D"1= .1.2.4", dst=3D"1.1.2.5")/TCP(sport=3D13, dport=3D23)],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()/UDP()/GTP_U_Header()/GTPPDUSessionContainer(type=3D0, P= =3D1, QFI=3D0x34)/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/TCP(sport=3D13, dpor= t=3D23)],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()/UDP()/GTP_U_Header()/GTPPDUSessionContainer(type=3D1, P= =3D1, QFI=3D0x34)/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/TCP(sport=3D13, dpor= t=3D23)],iface=3D"ens786f0")=0D +=0D +unmatched pkt::=0D +=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.12", dst=3D"1.= 1.2.3")/GRE()/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer()/IP(src=3D"= 1.1.2.4", dst=3D"1.1.2.5")/TCP(sport=3D13, dport=3D23)],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.13")/GRE()/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer()/IP(src=3D"= 1.1.2.4", dst=3D"1.1.2.5")/TCP(sport=3D13, dport=3D23)],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()/UDP()/GTP_U_Header()/GTPPDUSessionContainer()/IP(src=3D"1= .1.2.14", dst=3D"1.1.2.5")/TCP(sport=3D13, dport=3D23)],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()/UDP()/GTP_U_Header()/GTPPDUSessionContainer()/IP(src=3D"1= .1.2.4", dst=3D"1.1.2.15")/TCP(sport=3D13, dport=3D23)],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()/UDP()/GTP_U_Header()/GTPPDUSessionContainer()/IP(src=3D"1= .1.2.4", dst=3D"1.1.2.15")/TCP(dport=3D33, sport=3D23)],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()/UDP()/GTP_U_Header()/GTPPDUSessionContainer()/IP(src=3D"1= .1.2.4", dst=3D"1.1.2.15")/TCP(dport=3D13, sport=3D33)],iface=3D"ens786f0")= =0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IPv6()/GRE()/IP()/UDP()/GTP_U_= Header()/GTPPDUSessionContainer()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/TCP(= sport=3D13, dport=3D23)],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()/IPv6()/UDP()/GTP_U_Header()/GTPPDUSessionContainer()/IP(src=3D= "1.1.2.4", dst=3D"1.1.2.5")/TCP(sport=3D13, dport=3D23)],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()/UDP()/GTP_U_Header()/GTPPDUSessionContainer()/IPv6()/TCP(= sport=3D13, dport=3D23)],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()/UDP()/GTP_U_Header()/GTPPDUSessionContainer()/IP(src=3D"1= .1.2.4", dst=3D"1.1.2.5")/UDP(sport=3D13, dport=3D23)],iface=3D"ens786f0")= =0D +=0D +queue index=0D +------------=0D +flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp / gtpu / gtp_p= sc / ipv4 src is 1.1.2.4 dst is 1.1.2.5 / tcp src is 13 dst is 23 / end act= ions queue index 3 / mark id 13 / end=0D +=0D +rss queues=0D +-----------=0D +flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp / gtpu / gtp_p= sc / ipv4 src is 1.1.2.4 dst is 1.1.2.5 / tcp src is 13 dst is 23 / end act= ions rss queues 4 5 end / mark id 23 / end=0D +=0D +passthru=0D +---------=0D +flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp / gtpu / gtp_p= sc / ipv4 src is 1.1.2.4 dst is 1.1.2.5 / tcp src is 13 dst is 23 / end act= ions passthru / mark id 33 / end=0D +=0D +drop=0D +-----=0D +flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp / gtpu / gtp_p= sc / ipv4 src is 1.1.2.4 dst is 1.1.2.5 / tcp src is 13 dst is 23 / end act= ions drop / end=0D +=0D +mark+rss=0D +--------=0D +flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp / gtpu / gtp_p= sc / ipv4 src is 1.1.2.4 dst is 1.1.2.5 / tcp src is 13 dst is 23 / end act= ions mark / rss / end=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 +matched pkt::=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()/UDP()/GTP_U_Header()/GTPPDUSessionContainer(type=3D1, P= =3D1, QFI=3D0x34)/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")],iface=3D"ens786f0")= =0D +=0D +unmatched pkt::=0D +=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.12", dst=3D"1.= 1.2.3")/GRE()/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer(type=3D1, P= =3D1, QFI=3D0x34)/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")/IP(src=3D"1.1.2.2", dst=3D"1.1= .2.13")/GRE()/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer(type=3D1, P= =3D1, QFI=3D0x34)/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")/IP(src=3D"1.1.2.2", dst=3D"1.1= .2.3")/GRE()/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer(type=3D1, P= =3D1, QFI=3D0x34)/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")/IP(src=3D"1.1.2.2", dst=3D"1.1= .2.3")/GRE()/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer(type=3D1, P= =3D1, QFI=3D0x34)/IP(src=3D"1.1.2.4", dst=3D"1.1.2.15")],iface=3D"ens786f0"= )=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IPv6()/GRE()/IP()/UDP()/GTP_U_= Header()/GTPPDUSessionContainer(type=3D1, P=3D1, QFI=3D0x34)/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")/IP(src=3D"1.1.2.2", dst=3D"1.1= .2.3")/GRE()/IPv6()/UDP()/GTP_U_Header(type=3D1, P=3D1, QFI=3D0x34)/GTPPDUS= essionContainer()/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")/IP(src=3D"1.1.2.2", dst=3D"1.1= .2.3")/GRE()/IP()/UDP()/GTP_U_Header(type=3D1, P=3D1, QFI=3D0x34)/GTPPDUSes= sionContainer()/IPv6()],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()/UDP()/GTP_U_Header()/GTPPDUSessionContainer(type=3D0, P= =3D1, QFI=3D0x34)/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")],iface=3D"ens786f0")= =0D +=0D +queue index=0D +------------=0D +flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp / gtpu / gtp_p= sc pdu_t is 1 / ipv4 src is 1.1.2.4 dst is 1.1.2.5 / end actions queue inde= x 3 / mark id 13 / end=0D +=0D +rss queues=0D +-----------=0D +flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp / gtpu / gtp_p= sc pdu_t is 1 / ipv4 src is 1.1.2.4 dst is 1.1.2.5 / end actions rss queues= 4 5 end / mark id 23 / end=0D +=0D +passthru=0D +---------=0D +flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp / gtpu / gtp_p= sc pdu_t is 1 / ipv4 src is 1.1.2.4 dst is 1.1.2.5 / end actions passthru /= mark id 33 / end=0D +=0D +drop=0D +-----=0D +flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp / gtpu / gtp_p= sc pdu_t is 1 / ipv4 src is 1.1.2.4 dst is 1.1.2.5 / end actions drop / end= =0D +=0D +mark+rss=0D +--------=0D +flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp / gtpu / gtp_p= sc pdu_t is 1 / ipv4 src is 1.1.2.4 dst is 1.1.2.5 / end actions mark / rss= / end=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 +matched pkt::=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()/UDP()/GTP_U_Header()/GTPPDUSessionContainer(type=3D1, P= =3D1, QFI=3D0x34)/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP(sport=3D13, dpor= t=3D23)],iface=3D"ens786f0")=0D +=0D +unmatched pkt::=0D +=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.12", dst=3D"1.= 1.2.3")/GRE()/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer(type=3D1, P= =3D1, QFI=3D0x34)/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP(sport=3D13, dpor= t=3D23)],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.13")/GRE()/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer(type=3D1, P= =3D1, QFI=3D0x34)/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP(sport=3D13, dpor= t=3D23)],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()/UDP()/GTP_U_Header()/GTPPDUSessionContainer(type=3D1, P= =3D1, QFI=3D0x34)/IP(src=3D"1.1.2.14", dst=3D"1.1.2.5")/UDP(sport=3D13, dpo= rt=3D23)],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()/UDP()/GTP_U_Header()/GTPPDUSessionContainer(type=3D1, P= =3D1, QFI=3D0x34)/IP(src=3D"1.1.2.4", dst=3D"1.1.2.15")/UDP(sport=3D13, dpo= rt=3D23)],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()/UDP()/GTP_U_Header()/GTPPDUSessionContainer(type=3D1, P= =3D1, QFI=3D0x34)/IP(src=3D"1.1.2.4", dst=3D"1.1.2.15")/UDP(dport=3D33, spo= rt=3D23)],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()/UDP()/GTP_U_Header()/GTPPDUSessionContainer(type=3D1, P= =3D1, QFI=3D0x34)/IP(src=3D"1.1.2.4", dst=3D"1.1.2.15")/UDP(dport=3D13, spo= rt=3D33)],iface=3D"ens786f0")=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IPv6()/GRE()/IP()/UDP()/GTP_U_= Header()/GTPPDUSessionContainer(type=3D1, P=3D1, QFI=3D0x341)/IP(src=3D"1.1= .2.4", dst=3D"1.1.2.5")/UDP(sport=3D13, dport=3D23)],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()/IPv6()/UDP()/GTP_U_Header()/GTPPDUSessionContainer(type=3D1, P= =3D1, QFI=3D0x34)/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP(sport=3D13, dpor= t=3D23)],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()/UDP()/GTP_U_Header()/GTPPDUSessionContainer(type=3D1, P= =3D1, QFI=3D0x341)/IPv6()/UDP(sport=3D13, dport=3D23)],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()/UDP()/GTP_U_Header()/GTPPDUSessionContainer(type=3D1, P= =3D1, QFI=3D0x34)/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/TCP(sport=3D13, dpor= t=3D23)],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()/UDP()/GTP_U_Header()/GTPPDUSessionContainer(type=3D0, P= =3D1, QFI=3D0x34)/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP(sport=3D13, dpor= t=3D23)],iface=3D"ens786f0")=0D +=0D +queue index=0D +------------=0D +flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp / gtpu / gtp_p= sc pdu_t is 1 / ipv4 src is 1.1.2.4 dst is 1.1.2.5 / udp src is 13 dst is 2= 3 / end actions queue index 3 / mark id 13 / end=0D +=0D +rss queues=0D +-----------=0D +flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp / gtpu / gtp_p= sc pdu_t is 1 / ipv4 src is 1.1.2.4 dst is 1.1.2.5 / udp src is 13 dst is 2= 3 / end actions rss queues 4 5 end / mark id 23 / end=0D +=0D +passthru=0D +---------=0D +flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp / gtpu / gtp_p= sc pdu_t is 1 / ipv4 src is 1.1.2.4 dst is 1.1.2.5 / udp src is 13 dst is 2= 3 / end actions passthru / mark id 33 / end=0D +=0D +drop=0D +-----=0D +flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp / gtpu / gtp_p= sc pdu_t is 1 / ipv4 src is 1.1.2.4 dst is 1.1.2.5 / udp src is 13 dst is 2= 3 / end actions drop / end=0D +=0D +mark+rss=0D +--------=0D +flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp / gtpu / gtp_p= sc pdu_t is 1 / ipv4 src is 1.1.2.4 dst is 1.1.2.5 / udp src is 13 dst is 2= 3 / end actions mark / rss / end=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 +matched pkt::=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()/UDP()/GTP_U_Header()/GTPPDUSessionContainer(type=3D1, P= =3D1, QFI=3D0x34)/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/TCP(sport=3D13, dpor= t=3D23)],iface=3D"ens786f0")=0D +=0D +unmatched pkt::=0D +=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.12", dst=3D"1.= 1.2.3")/GRE()/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer(type=3D1, P= =3D1, QFI=3D0x341)/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/TCP(sport=3D13, dpo= rt=3D23)],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.13")/GRE()/IP()/UDP()/GTP_U_Header()/GTPPDUSessionContainer(type=3D1, P= =3D1, QFI=3D0x34)/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/TCP(sport=3D13, dpor= t=3D23)],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()/UDP()/GTP_U_Header()/GTPPDUSessionContainer(type=3D1, P= =3D1, QFI=3D0x341)/IP(src=3D"1.1.2.14", dst=3D"1.1.2.5")/TCP(sport=3D13, dp= ort=3D23)],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()/UDP()/GTP_U_Header()/GTPPDUSessionContainer(type=3D1, P= =3D1, QFI=3D0x34)/IP(src=3D"1.1.2.4", dst=3D"1.1.2.15")/TCP(sport=3D13, dpo= rt=3D23)],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()/UDP()/GTP_U_Header()/GTPPDUSessionContainer(type=3D1, P= =3D1, QFI=3D0x341)/IP(src=3D"1.1.2.4", dst=3D"1.1.2.15")/TCP(dport=3D33, sp= ort=3D23)],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()/UDP()/GTP_U_Header()/GTPPDUSessionContainer(type=3D1, P= =3D1, QFI=3D0x34)/IP(src=3D"1.1.2.4", dst=3D"1.1.2.15")/TCP(dport=3D13, spo= rt=3D33)],iface=3D"ens786f0")=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IPv6()/GRE()/IP()/UDP()/GTP_U_= Header()/GTPPDUSessionContainer(type=3D1, P=3D1, QFI=3D0x341)/IP(src=3D"1.1= .2.4", dst=3D"1.1.2.5")/TCP(sport=3D13, dport=3D23)],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()/IPv6()/UDP()/GTP_U_Header()/GTPPDUSessionContainer(type=3D1, P= =3D1, QFI=3D0x34)/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/TCP(sport=3D13, dpor= t=3D23)],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()/UDP()/GTP_U_Header()/GTPPDUSessionContainer(type=3D1, P= =3D1, QFI=3D0x34)/IPv6()/TCP(sport=3D13, dport=3D23)],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()/UDP()/GTP_U_Header()/GTPPDUSessionContainer(type=3D1, P= =3D1, QFI=3D0x34)/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP(sport=3D13, dpor= t=3D23)],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()/UDP()/GTP_U_Header()/GTPPDUSessionContainer(type=3D0, P= =3D1, QFI=3D0x34)/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/TCP(sport=3D13, dpor= t=3D23)],iface=3D"ens786f0")=0D +=0D +queue index=0D +------------=0D +flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp / gtpu / gtp_p= sc pdu_t is 1 / ipv4 src is 1.1.2.4 dst is 1.1.2.5 / tcp src is 13 dst is 2= 3 / end actions queue index 3 / mark id 13 / end=0D +=0D +rss queues=0D +-----------=0D +flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp / gtpu / gtp_p= sc pdu_t is 1 / ipv4 src is 1.1.2.4 dst is 1.1.2.5 / tcp src is 13 dst is 2= 3 / end actions rss queues 4 5 end / mark id 23 / end=0D +=0D +passthru=0D +---------=0D +flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp / gtpu / gtp_p= sc pdu_t is 1 / ipv4 src is 1.1.2.4 dst is 1.1.2.5 / tcp src is 13 dst is 2= 3 / end actions passthru / mark id 33 / end=0D +=0D +drop=0D +-----=0D +flow create 0 ingress pattern eth / ipv6 / gre / ipv4 / udp / gtpu / gtp_p= sc pdu_t is 1 / ipv4 src is 1.1.2.4 dst is 1.1.2.5 / tcp src is 13 dst is 2= 3 / end actions drop / end=0D +=0D +mark+rss=0D +--------=0D +flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp / gtpu / gtp_p= sc pdu_t is 1 / ipv4 src is 1.1.2.4 dst is 1.1.2.5 / tcp src is 13 dst is 2= 3 / end actions mark / rss / end=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. IPV6+IPV4+IPV4=0D +=0D +reconfig all the cases of 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. IPV4+IPV6+IPV4=0D +=0D +reconfig all the cases of 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. IPV4+IPV4+IPV6=0D +=0D +reconfig all the cases of 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. IPV6+IPV6+IPV4=0D +=0D +reconfig all the cases of 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. IPV4+IPV6+IPV6=0D +=0D +reconfig all the cases of 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. IPV6+IPV4+IPV6=0D +=0D +reconfig all the cases of 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. IPV6+IPV6+IPV6=0D +=0D +reconfig all the cases of 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 +=0D +1. create rules and check all the rules fail::=0D +=0D + testpmd> flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp d= st is 13 / gtpu / ipv4 src is 1.1.2.4 dst is 1.1.2.5 / end actions queue in= dex 33 / mark id 13 / 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 / ipv6 / gre / ipv4 / udp /= gtpu / gtp_psc pdu_t is a/ ipv4 src is 1.1.2.4 dst is 1.1.2.5 / end action= s mark / rss / end=0D + Bad arguments=0D +=0D + testpmd> flow create 0 ingress pattern eth / ipv4 / gre / ipv6 / udp /= gtpu / gtp_psc pdu_t is 2 / ipv4 src is 1.1.2.4 dst is 1.1.2.5 / tcp src i= s 13 dst is 23 / end actions queue index 3 / mark id 13 / end=0D + iavf_fdir_add(): Failed to add rule request due to the hw doesn't supp= ort=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 src is 1.1.2.4 dst i= s 1.1.2.5 / gre / ipv6 / udp / gtpu teid is 0x12 / gtp_psc pdu_t is 1 qfi i= s 0x100 / end actions rss queues 4 5 end / mark id 23 / end=0D + Bad arguments=0D +=0D + testpmd> flow create 0 ingress pattern eth / ipv4 src is 1.1.2.4 dst i= s 1.1.2.5 / gre / ipv4 / udp / gtpu teid is 0x100000000 / gtp_psc pdu_t is = 1 qfi is 0x3 / end actions drop / 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: inner rule + outer rule=0D +----------------------------------=0D +when the inner rule and outer rule co-exist, always the second rule will w= ork.=0D +And the first rule will work when the second rule is destroyed.=0D +=0D +1. create 1 rule using inner as input set and 1 rule using outer as input = set::=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 / udp src is 13 dst is 23 / end= actions queue index 13 / mark id 13 / end=0D + flow create 0 ingress pattern eth / ipv4 src is 1.1.2.14 dst is 1.1.2.= 15 / gre / ipv4 / udp / gtpu teid is 0x12 / gtp_psc qfi is 0x3 / end action= s queue index 14 / mark id 14 / end=0D +=0D +2. send pkts which hit both 2 rules, check the pkt will hit the outer rule= ::=0D +=0D + sendp([Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.14", dst=3D"1.= 1.2.15")/GRE()/IP()/UDP()/GTP_U_Header(teid=3D0x12)/GTPPDUSessionContainer(= QFI=3D0x3)/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP(sport=3D13, dport=3D23)= ],iface=3D"ens786f0")=0D + testpmd> port 0/queue 14: received 1 packets=0D + src=3DA4:BF:01:69:38:A2 - dst=3D00:11:22:33:44:55 - type=3D0x0800 - le= ngth=3D110 - nb_segs=3D1 - RSS hash=3D0x1474171b - RSS queue=3D0xe - FDIR m= atched ID=3D0xe - 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=3D0xe=0D + ol_flags: PKT_RX_RSS_HASH PKT_RX_FDIR PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_C= KSUM_GOOD PKT_RX_FDIR_ID PKT_RX_OUTER_L4_CKSUM_UNKNOWN=0D +=0D +3. destroy the outer rule, send the pkt in step 2, check the pkt will hit = the inner rule::=0D +=0D + flow destroy 0 rule 1=0D + Flow rule #1 destroyed=0D + testpmd> port 0/queue 13: received 1 packets=0D + src=3DA4:BF:01:69:38:A2 - dst=3D00:11:22:33:44:55 - type=3D0x0800 - le= ngth=3D110 - nb_segs=3D1 - RSS hash=3D0x1474171b - RSS queue=3D0xd - FDIR m= atched ID=3D0xd - 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=3D0xd=0D + ol_flags: PKT_RX_RSS_HASH PKT_RX_FDIR PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_C= KSUM_GOOD PKT_RX_FDIR_ID PKT_RX_OUTER_L4_CKSUM_UNKNOWN=0D +=0D +4. destroy the inner rule, send the pkt in step 2, check the pkt won't hit= any rule::=0D +=0D + flow destroy 0 rule 0=0D + Flow rule #0 destroyed=0D + testpmd> port 0/queue 11: received 1 packets=0D + src=3DA4:BF:01:69:38:A2 - dst=3D00:11:22:33:44:55 - type=3D0x0800 - le= ngth=3D110 - nb_segs=3D1 - RSS hash=3D0x1474171b - RSS queue=3D0xb - sw pty= pe: 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 - Rece= ive queue=3D0xb=0D + ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_GOOD PK= T_RX_OUTER_L4_CKSUM_UNKNOWN=0D +=0D +subcase 2: 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 / ipv4 / udp / gtpu / g= tp_psc / ipv4 src is 1.1.2.4 dst is 1.1.2.5 / udp src is 13 dst is 23 / end= actions queue index 13 / mark id 13 / end=0D + flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp / gtpu / i= pv4 src is 1.1.2.4 dst is 1.1.2.5 / udp src is 13 dst is 23 / end actions q= ueue index 3 / mark id 3 / end=0D +=0D +2. send pkts which hit 2 rules separately, check the pkt will hit the each= rule::=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(sp= ort=3D13, dport=3D23)],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.5")/UDP(sport=3D13, dport=3D23)],if= ace=3D"ens786f0")=0D +=0D + testpmd> port 0/queue 13: received 1 packets=0D + src=3D00:00:00:00:00:00 - dst=3D00:11:22:33:44:55 - type=3D0x0800 - le= ngth=3D110 - nb_segs=3D1 - RSS hash=3D0x489dd1c2 - RSS queue=3D0xd - FDIR m= atched ID=3D0xd - 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=3D0xd=0D + ol_flags: PKT_RX_RSS_HASH PKT_RX_FDIR PKT_RX_L4_CKSUM_BAD PKT_RX_IP_CK= SUM_BAD PKT_RX_FDIR_ID PKT_RX_OUTER_L4_CKSUM_UNKNOWN=0D + port 0/queue 3: received 1 packets=0D + src=3D00:00:00:00:00:00 - dst=3D00:11:22:33:44:55 - type=3D0x0800 - le= ngth=3D102 - nb_segs=3D1 - RSS hash=3D0x489dd1c2 - RSS queue=3D0x3 - FDIR m= atched ID=3D0x3 - 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=3D0x3=0D + ol_flags: PKT_RX_RSS_HASH PKT_RX_FDIR PKT_RX_L4_CKSUM_BAD PKT_RX_IP_CK= SUM_BAD PKT_RX_FDIR_ID PKT_RX_OUTER_L4_CKSUM_UNKNOWN=0D +=0D +3. destroy the rule without eh, send the pkt in step 2, check the eh pkt w= ill hit eh rule, and the pkt without eh won't hit any rule::=0D +=0D + flow destroy 0 rule 1=0D + Flow rule #1 destroyed=0D + testpmd> port 0/queue 2: received 1 packets=0D + src=3D00:00:00:00:00:00 - dst=3D00:11:22:33:44:55 - type=3D0x0800 - le= ngth=3D102 - nb_segs=3D1 - RSS hash=3D0x489dd1c2 - RSS queue=3D0x2 - sw pty= pe: 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 - Rece= ive queue=3D0x2=0D + ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_BAD PKT_RX_IP_CKSUM_BAD PKT_= RX_OUTER_L4_CKSUM_UNKNOWN=0D + port 0/queue 13: received 1 packets=0D + src=3D00:00:00:00:00:00 - dst=3D00:11:22:33:44:55 - type=3D0x0800 - le= ngth=3D110 - nb_segs=3D1 - RSS hash=3D0x489dd1c2 - RSS queue=3D0xd - FDIR m= atched ID=3D0xd - 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=3D0xd=0D + ol_flags: PKT_RX_RSS_HASH PKT_RX_FDIR PKT_RX_L4_CKSUM_BAD PKT_RX_IP_CK= SUM_BAD PKT_RX_FDIR_ID PKT_RX_OUTER_L4_CKSUM_UNKNOWN=0D +=0D +4. destroy the rule with eh, send the pkt in step 2, check the pkts won't = hit any rule::=0D +=0D + flow destroy 0 rule 0=0D + Flow rule #0 destroyed=0D + testpmd> port 0/queue 2: received 1 packets=0D + src=3D00:00:00:00:00:00 - dst=3D00:11:22:33:44:55 - type=3D0x0800 - le= ngth=3D110 - nb_segs=3D1 - RSS hash=3D0x489dd1c2 - RSS queue=3D0x2 - sw pty= pe: 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 - Rece= ive queue=3D0x2=0D + ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_BAD PKT_RX_IP_CKSUM_BAD PKT_= RX_OUTER_L4_CKSUM_UNKNOWN=0D +=0D +subcase 3: 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 / 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 / ipv4 / udp / gtpu / g= tp_psc / ipv4 src is 1.1.2.4 dst is 1.1.2.5 / udp src is 13 dst is 23 / end= actions queue index 3 / mark id 3 / end=0D +=0D +2. send pkts which hit 2 rules separately, check the pkt will hit the each= rule::=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")],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.5")/UDP(sp= ort=3D13, dport=3D23)],iface=3D"ens786f0")=0D +=0D + testpmd> port 0/queue 13: received 1 packets=0D + src=3D00:00:00:00:00:00 - dst=3D00:11:22:33:44:55 - type=3D0x0800 - le= ngth=3D102 - nb_segs=3D1 - RSS hash=3D0x489dd1c2 - RSS queue=3D0xd - FDIR m= atched ID=3D0xd - 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=3D0xd=0D + ol_flags: PKT_RX_RSS_HASH PKT_RX_FDIR PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_C= KSUM_BAD PKT_RX_FDIR_ID PKT_RX_OUTER_L4_CKSUM_UNKNOWN=0D + port 0/queue 3: received 1 packets=0D + src=3D00:00:00:00:00:00 - dst=3D00:11:22:33:44:55 - type=3D0x0800 - le= ngth=3D110 - nb_segs=3D1 - RSS hash=3D0x489dd1c2 - RSS queue=3D0x3 - FDIR m= atched ID=3D0x3 - 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=3D0x3=0D + ol_flags: PKT_RX_RSS_HASH PKT_RX_FDIR PKT_RX_L4_CKSUM_BAD PKT_RX_IP_CK= SUM_BAD PKT_RX_FDIR_ID PKT_RX_OUTER_L4_CKSUM_UNKNOWN=0D +=0D +3. destroy the rule with l4, send the pkt with l4, check it will hit the r= ule without l4::=0D +=0D + flow destroy 0 rule 1=0D + Flow rule #1 destroyed=0D + testpmd> port 0/queue 13: received 1 packets=0D + src=3D00:00:00:00:00:00 - dst=3D00:11:22:33:44:55 - type=3D0x0800 - le= ngth=3D110 - nb_segs=3D1 - RSS hash=3D0x489dd1c2 - RSS queue=3D0xd - FDIR m= atched ID=3D0xd - 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=3D0xd=0D + ol_flags: PKT_RX_RSS_HASH PKT_RX_FDIR PKT_RX_L4_CKSUM_BAD PKT_RX_IP_CK= SUM_BAD PKT_RX_FDIR_ID PKT_RX_OUTER_L4_CKSUM_UNKNOWN=0D +=0D +4. destroy the rule without l4, send the pkts in step 2, check the pkts wo= n't hit any rule::=0D +=0D + flow destroy 0 rule 0=0D + Flow rule #0 destroyed=0D + testpmd> port 0/queue 2: received 1 packets=0D + src=3D00:00:00:00:00:00 - dst=3D00:11:22:33:44:55 - type=3D0x0800 - le= ngth=3D110 - nb_segs=3D1 - RSS hash=3D0x489dd1c2 - RSS queue=3D0x2 - sw pty= pe: 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 - Rece= ive queue=3D0x2=0D + ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_BAD PKT_RX_IP_CKSUM_BAD PKT_= RX_OUTER_L4_CKSUM_UNKNOWN=0D + port 0/queue 2: received 1 packets=0D + src=3D00:00:00:00:00:00 - dst=3D00:11:22:33:44:55 - type=3D0x0800 - le= ngth=3D102 - nb_segs=3D1 - RSS hash=3D0x489dd1c2 - RSS queue=3D0x2 - sw pty= pe: 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 - Rece= ive queue=3D0x2=0D + ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_BAD PKT= _RX_OUTER_L4_CKSUM_UNKNOWN=0D +=0D +subcase 4: 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 / 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 / ipv4 / udp / gtpu / g= tp_psc pdu_t is 1 / ipv4 src is 1.1.2.4 dst is 1.1.2.5 / end actions queue = index 3 / mark id 3 / end=0D +=0D +2. send ul pkt, check the pkt will hit ul rule::=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")],iface=3D"ens786f0")=0D +=0D + testpmd> port 0/queue 3: received 1 packets=0D + src=3D00:00:00:00:00:00 - dst=3D00:11:22:33:44:55 - type=3D0x0800 - le= ngth=3D106 - nb_segs=3D1 - RSS hash=3D0x489dd1c2 - RSS queue=3D0x3 - FDIR m= atched ID=3D0x3 - 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=3D0x3=0D + ol_flags: PKT_RX_RSS_HASH PKT_RX_FDIR PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_C= KSUM_BAD PKT_RX_FDIR_ID PKT_RX_OUTER_L4_CKSUM_UNKNOWN=0D +=0D +3. destroy the ul rule, send the pkt in step 2, check the pkt will hit the= eh rule without ul/dl::=0D +=0D + flow destroy 0 rule 1=0D + Flow rule #1 destroyed=0D + testpmd> port 0/queue 13: received 1 packets=0D + src=3D00:00:00:00:00:00 - dst=3D00:11:22:33:44:55 - type=3D0x0800 - le= ngth=3D106 - nb_segs=3D1 - RSS hash=3D0x489dd1c2 - RSS queue=3D0xd - FDIR m= atched ID=3D0xd - 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=3D0xd=0D + ol_flags: PKT_RX_RSS_HASH PKT_RX_FDIR PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_C= KSUM_BAD PKT_RX_FDIR_ID PKT_RX_OUTER_L4_CKSUM_UNKNOWN=0D +=0D +4. destroy the eh rule without ul/dl, send the pkt in step 2, check the pk= t won't hit any rules::=0D +=0D + flow destroy 0 rule 0=0D + Flow rule #0 destroyed=0D + testpmd> port 0/queue 2: received 1 packets=0D + src=3D00:00:00:00:00:00 - dst=3D00:11:22:33:44:55 - type=3D0x0800 - le= ngth=3D106 - nb_segs=3D1 - RSS hash=3D0x489dd1c2 - RSS queue=3D0x2 - sw pty= pe: 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 - Rece= ive queue=3D0x2=0D + ol_flags: PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_BAD PKT= _RX_OUTER_L4_CKSUM_UNKNOWN=0D +=0D +subcase 5: 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