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 EEB67A0C41; Thu, 16 Sep 2021 08:25:28 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id B8F054003F; Thu, 16 Sep 2021 08:25:28 +0200 (CEST) Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by mails.dpdk.org (Postfix) with ESMTP id EF3A54003C for ; Thu, 16 Sep 2021 08:25:24 +0200 (CEST) X-IronPort-AV: E=McAfee;i="6200,9189,10108"; a="222536352" X-IronPort-AV: E=Sophos;i="5.85,297,1624345200"; d="scan'208";a="222536352" Received: from orsmga007.jf.intel.com ([10.7.209.58]) by orsmga102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 15 Sep 2021 23:25:23 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.85,297,1624345200"; d="scan'208";a="472664603" Received: from dpdk-qifu-cxl.sh.intel.com ([10.67.119.179]) by orsmga007.jf.intel.com with ESMTP; 15 Sep 2021 23:25:19 -0700 From: qifu To: dts@dpdk.org Cc: qifu Date: Thu, 16 Sep 2021 10:57:17 -0400 Message-Id: <20210916145717.1550917-1-qi.fu@intel.com> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Subject: [dts] [PATCH V4]tests: add test suite 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 parsing,=20 based on this ddp pkg, dpdk enable rte_flow for GTPoGRE in CVL IAVF. Add this test suite for GTPoGRE FDIR tests. Signed-off-by: qifu --- tests/TestSuite_iavf_fdir_gtpogre.py | 2266 ++++++++++++++++++++++++++ 1 file changed, 2266 insertions(+) create mode 100644 tests/TestSuite_iavf_fdir_gtpogre.py diff --git a/tests/TestSuite_iavf_fdir_gtpogre.py b/tests/TestSuite_iavf_fd= ir_gtpogre.py new file mode 100644 index 00000000..9ee8ad5c --- /dev/null +++ b/tests/TestSuite_iavf_fdir_gtpogre.py @@ -0,0 +1,2266 @@ +# BSD LICENSE=0D +#=0D +# Copyright(c) 2021 Intel Corporation. All rights reserved.=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 +# * 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 +# * 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 FOR=0D +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT=0D +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,=0D +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT=0D +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,=0D +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY=0D +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT=0D +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE=0D +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.=0D +=0D +from packet import Packet=0D +from pmd_output import PmdOutput=0D +from test_case import TestCase=0D +import re=0D +from utils import GREEN, RED=0D +import time=0D +from scapy.all import *=0D +import rte_flow_common as rfc=0D +=0D +LAUNCH_QUEUE =3D 16=0D +=0D +mac_ipv4_gre_ipv4_gtpu_ipv4_pkt=3D{=0D + "matched":['Ether(dst=3D"00:11:22:33:44:55")/IP()/GRE()/IP()/UDP(dport= =3D2152)/GTP_U_Header()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")',=0D + 'Ether(dst=3D"00:11:22:33:44:55")/IP()/GRE()/IPv6()/UDP(dpo= rt=3D2152)/GTP_U_Header()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")'],=0D + "unmatched":['Ether(dst=3D"00:11:22:33:44:55")/IP()/GRE()/IP()/UDP(dpo= rt=3D2152)/GTP_U_Header()/IP(src=3D"1.1.2.14", dst=3D"1.1.2.5")',=0D + 'Ether(dst=3D"00:11:22:33:44:55")/IP()/GRE()/IP()/UDP(dpo= rt=3D2152)/GTP_U_Header()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.15")',=0D + 'Ether(dst=3D"00:11:22:33:44:55")/IPv6()/GRE()/IP()/UDP(d= port=3D2152)/GTP_U_Header()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")',=0D + 'Ether(dst=3D"00:11:22:33:44:55")/IP()/GRE()/IP()/UDP(dpo= rt=3D2152)/GTP_U_Header()/IPv6()']=0D +}=0D +=0D +tv_mac_ipv4_gre_ipv4_gtpu_ipv4_queue_index =3D {=0D + "name": "tv_mac_ipv4_gre_ipv4_gtpu_ipv4_queue_index",=0D + "rule": "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 / ma= rk id 13 / end",=0D + "scapy_str": {"matched": mac_ipv4_gre_ipv4_gtpu_ipv4_pkt['matched'],=0D + "unmatched": mac_ipv4_gre_ipv4_gtpu_ipv4_pkt['unmatched'= ]=0D + },=0D + "check_param": {"port_id": 0, "rxq": LAUNCH_QUEUE, "queue": 3, "mark_i= d": 13}=0D +}=0D +=0D +tv_mac_ipv4_gre_ipv4_gtpu_ipv4_rss_queues =3D {=0D + "name": "tv_mac_ipv4_gre_ipv4_gtpu_ipv4_rss_queues",=0D + "rule": "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 + "scapy_str": {"matched": mac_ipv4_gre_ipv4_gtpu_ipv4_pkt['matched'],=0D + "unmatched": mac_ipv4_gre_ipv4_gtpu_ipv4_pkt['unmatched'= ]=0D + },=0D + "check_param": {"port_id": 0, "rxq": LAUNCH_QUEUE, "queue": [4, 5], "m= ark_id": 23}=0D +}=0D +=0D +tv_mac_ipv4_gre_ipv4_gtpu_ipv4_passthru =3D {=0D + "name": "tv_mac_ipv4_gre_ipv4_gtpu_ipv4_passthru",=0D + "rule": "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 + "scapy_str": {"matched": mac_ipv4_gre_ipv4_gtpu_ipv4_pkt['matched'],=0D + "unmatched": mac_ipv4_gre_ipv4_gtpu_ipv4_pkt['unmatched'= ]=0D + },=0D + "check_param": {"port_id": 0, "rxq": LAUNCH_QUEUE, "mark_id": 33}=0D +}=0D +=0D +tv_mac_ipv4_gre_ipv4_gtpu_ipv4_drop =3D {=0D + "name": "tv_mac_ipv4_gre_ipv4_gtpu_ipv4_drop",=0D + "rule": "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 + "scapy_str": {"matched": mac_ipv4_gre_ipv4_gtpu_ipv4_pkt['matched'],=0D + "unmatched": mac_ipv4_gre_ipv4_gtpu_ipv4_pkt['unmatched'= ]=0D + },=0D + "check_param": {"port_id": 0, "rxq": LAUNCH_QUEUE, "drop": True}=0D +}=0D +=0D +tv_mac_ipv4_gre_ipv4_gtpu_ipv4_mark_rss =3D {=0D + "name": "tv_mac_ipv4_gre_ipv4_gtpu_ipv4_mark_rss",=0D + "rule": "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 + "scapy_str": {"matched": mac_ipv4_gre_ipv4_gtpu_ipv4_pkt['matched'],=0D + "unmatched": mac_ipv4_gre_ipv4_gtpu_ipv4_pkt['unmatched'= ]=0D + },=0D + "check_param": {"port_id": 0, "rxq": LAUNCH_QUEUE, "mark_id": 0, "rss"= : True}=0D +}=0D +=0D +tvs_mac_ipv4_gre_ipv4_gtpu_ipv4 =3D [=0D + tv_mac_ipv4_gre_ipv4_gtpu_ipv4_queue_index,=0D + tv_mac_ipv4_gre_ipv4_gtpu_ipv4_rss_queues,=0D + tv_mac_ipv4_gre_ipv4_gtpu_ipv4_passthru,=0D + tv_mac_ipv4_gre_ipv4_gtpu_ipv4_drop,=0D + tv_mac_ipv4_gre_ipv4_gtpu_ipv4_mark_rss,=0D + ]=0D +=0D +mac_ipv4_gre_ipv4_gtpu_ipv4_udp_pkt=3D{=0D + "matched":['Ether(dst=3D"00:11:22:33:44:55")/IP()/GRE()/IP()/UDP(dport= =3D2152)/GTP_U_Header()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP(sport=3D13= , dport=3D23)',=0D + 'Ether(dst=3D"00:11:22:33:44:55")/IP()/GRE()/IPv6()/UDP(dpo= rt=3D2152)/GTP_U_Header()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP(sport=3D= 13, dport=3D23)'],=0D + "unmatched":['Ether(dst=3D"00:11:22:33:44:55")/IP()/GRE()/IP()/UDP(dpo= rt=3D2152)/GTP_U_Header()/IP(src=3D"1.1.2.14", dst=3D"1.1.2.5")/UDP(sport= =3D13, dport=3D23)',=0D + 'Ether(dst=3D"00:11:22:33:44:55")/IP()/GRE()/IP()/UDP(dpo= rt=3D2152)/GTP_U_Header()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.15")/UDP(sport= =3D13, dport=3D23)',=0D + 'Ether(dst=3D"00:11:22:33:44:55")/IP()/GRE()/IP()/UDP(dpo= rt=3D2152)/GTP_U_Header()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP(sport=3D= 14, dport=3D23)',=0D + 'Ether(dst=3D"00:11:22:33:44:55")/IP()/GRE()/IP()/UDP(dpo= rt=3D2152)/GTP_U_Header()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP(sport=3D= 13, dport=3D24)',=0D + 'Ether(dst=3D"00:11:22:33:44:55")/IP()/GRE()/IP()/UDP(dpo= rt=3D2152)/GTP_U_Header()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/TCP(sport=3D= 13, dport=3D23)',=0D + 'Ether(dst=3D"00:11:22:33:44:55")/IPv6()/GRE()/IP()/UDP(d= port=3D2152)/GTP_U_Header()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP(sport= =3D13, dport=3D23)',=0D + 'Ether(dst=3D"00:11:22:33:44:55")/IP()/GRE()/IP()/UDP(dpo= rt=3D2152)/GTP_U_Header()/IPv6()/UDP(sport=3D13, dport=3D23)']=0D +}=0D +=0D +tv_mac_ipv4_gre_ipv4_gtpu_ipv4_udp_queue_index =3D {=0D + "name": "tv_mac_ipv4_gre_ipv4_gtpu_ipv4_udp_queue_index",=0D + "rule": "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 + "scapy_str": {"matched": mac_ipv4_gre_ipv4_gtpu_ipv4_udp_pkt['matched'= ],=0D + "unmatched": mac_ipv4_gre_ipv4_gtpu_ipv4_udp_pkt['unmatc= hed']=0D + },=0D + "check_param": {"port_id": 0, "rxq": LAUNCH_QUEUE, "queue": 3, "mark_i= d": 13}=0D +}=0D +=0D +tv_mac_ipv4_gre_ipv4_gtpu_ipv4_udp_rss_queues =3D {=0D + "name": "tv_mac_ipv4_gre_ipv4_gtpu_ipv4_udp_rss_queues",=0D + "rule": "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 queues 4 5 end / mark id 23 / end",=0D + "scapy_str": {"matched": mac_ipv4_gre_ipv4_gtpu_ipv4_udp_pkt['matched'= ],=0D + "unmatched": mac_ipv4_gre_ipv4_gtpu_ipv4_udp_pkt['unmatc= hed']=0D + },=0D + "check_param": {"port_id": 0, "rxq": LAUNCH_QUEUE, "queue": [4, 5], "m= ark_id": 23}=0D +}=0D +=0D +tv_mac_ipv4_gre_ipv4_gtpu_ipv4_udp_passthru =3D {=0D + "name": "tv_mac_ipv4_gre_ipv4_gtpu_ipv4_udp_passthru",=0D + "rule": "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 passthru / mark id 33 / end",=0D + "scapy_str": {"matched": mac_ipv4_gre_ipv4_gtpu_ipv4_udp_pkt['matched'= ],=0D + "unmatched": mac_ipv4_gre_ipv4_gtpu_ipv4_udp_pkt['unmatc= hed']=0D + },=0D + "check_param": {"port_id": 0, "rxq": LAUNCH_QUEUE, "mark_id": 33}=0D +}=0D +=0D +tv_mac_ipv4_gre_ipv4_gtpu_ipv4_udp_drop =3D {=0D + "name": "tv_mac_ipv4_gre_ipv4_gtpu_ipv4_udp_drop",=0D + "rule": "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 + "scapy_str": {"matched": mac_ipv4_gre_ipv4_gtpu_ipv4_udp_pkt['matched'= ],=0D + "unmatched": mac_ipv4_gre_ipv4_gtpu_ipv4_udp_pkt['unmatc= hed']=0D + },=0D + "check_param": {"port_id": 0, "rxq": LAUNCH_QUEUE, "drop": True}=0D +}=0D +=0D +tv_mac_ipv4_gre_ipv4_gtpu_ipv4_udp_mark_rss =3D {=0D + "name": "tv_mac_ipv4_gre_ipv4_gtpu_ipv4_udp_mark_rss",=0D + "rule": "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 + "scapy_str": {"matched": mac_ipv4_gre_ipv4_gtpu_ipv4_udp_pkt['matched'= ],=0D + "unmatched": mac_ipv4_gre_ipv4_gtpu_ipv4_udp_pkt['unmatc= hed']=0D + },=0D + "check_param": {"port_id": 0, "rxq": LAUNCH_QUEUE, "mark_id": 0, "rss"= : True}=0D +}=0D +=0D +tvs_mac_ipv4_gre_ipv4_gtpu_ipv4_udp =3D [=0D + tv_mac_ipv4_gre_ipv4_gtpu_ipv4_udp_queue_index,=0D + tv_mac_ipv4_gre_ipv4_gtpu_ipv4_udp_rss_queues,=0D + tv_mac_ipv4_gre_ipv4_gtpu_ipv4_udp_passthru,=0D + tv_mac_ipv4_gre_ipv4_gtpu_ipv4_udp_drop,=0D + tv_mac_ipv4_gre_ipv4_gtpu_ipv4_udp_mark_rss,=0D + ]=0D +=0D +tvs_mac_ipv4_gre_ipv4_gtpu_ipv4_tcp =3D [eval(str(element).replace('UDP(sp= ort', 'UDP1(sport')=0D + .replace('TCP(spor= t', 'TCP1(sport')=0D + .replace('UDP1(spo= rt', 'TCP(sport')=0D + .replace('TCP1(spo= rt', 'UDP(sport')=0D + .replace('_udp_', = '_tcp_')=0D + .replace('udp src'= , 'tcp src')=0D + )=0D + for element in tvs_mac_ipv4_gre_ipv= 4_gtpu_ipv4_udp]=0D +=0D +mac_ipv4_gre_ipv4_gtpu_eh_ipv4_pkt=3D{=0D + "matched":['Ether(dst=3D"00:11:22:33:44:55")/IP()/GRE()/IP()/UDP(dport= =3D2152)/GTP_U_Header()/GTPPDUSessionContainer()/IP(src=3D"1.1.2.4", dst=3D= "1.1.2.5")',=0D + 'Ether(dst=3D"00:11:22:33:44:55")/IP()/GRE()/IP()/UDP(dport= =3D2152)/GTP_U_Header()/GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x34)= /IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")',=0D + 'Ether(dst=3D"00:11:22:33:44:55")/IP()/GRE()/IP()/UDP(dport= =3D2152)/GTP_U_Header()/GTPPDUSessionContainer(type=3D1, P=3D1, QFI=3D0x34)= /IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")',=0D + 'Ether(dst=3D"00:11:22:33:44:55")/IP()/GRE()/IPv6()/UDP(dpo= rt=3D2152)/GTP_U_Header()/GTPPDUSessionContainer()/IP(src=3D"1.1.2.4", dst= =3D"1.1.2.5")',=0D + 'Ether(dst=3D"00:11:22:33:44:55")/IP()/GRE()/IPv6()/UDP(dpo= rt=3D2152)/GTP_U_Header()/GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x3= 4)/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")',=0D + 'Ether(dst=3D"00:11:22:33:44:55")/IP()/GRE()/IPv6()/UDP(dpo= rt=3D2152)/GTP_U_Header()/GTPPDUSessionContainer(type=3D1, P=3D1, QFI=3D0x3= 4)/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")'],=0D + "unmatched":['Ether(dst=3D"00:11:22:33:44:55")/IP()/GRE()/IP()/UDP(dpo= rt=3D2152)/GTP_U_Header()/GTPPDUSessionContainer()/IP(src=3D"1.1.2.14", dst= =3D"1.1.2.5")',=0D + 'Ether(dst=3D"00:11:22:33:44:55")/IP()/GRE()/IP()/UDP(dpo= rt=3D2152)/GTP_U_Header()/GTPPDUSessionContainer()/IP(src=3D"1.1.2.4", dst= =3D"1.1.2.15")',=0D + 'Ether(dst=3D"00:11:22:33:44:55")/IPv6()/GRE()/IP()/UDP(d= port=3D2152)/GTP_U_Header()/GTPPDUSessionContainer()/IP(src=3D"1.1.2.4", ds= t=3D"1.1.2.5")',=0D + 'Ether(dst=3D"00:11:22:33:44:55")/IP()/GRE()/IP()/UDP(dpo= rt=3D2152)/GTP_U_Header()/GTPPDUSessionContainer()/IPv6()',=0D + 'Ether(dst=3D"00:11:22:33:44:55")/IP()/GRE()/IP()/UDP(dpo= rt=3D2152)/GTP_U_Header()/GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x3= 4)/IP(src=3D"1.1.2.14", dst=3D"1.1.2.5")',=0D + 'Ether(dst=3D"00:11:22:33:44:55")/IP()/GRE()/IP()/UDP(dpo= rt=3D2152)/GTP_U_Header()/GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x3= 4)/IP(src=3D"1.1.2.4", dst=3D"1.1.2.15")',=0D + 'Ether(dst=3D"00:11:22:33:44:55")/IPv6()/GRE()/IP()/UDP(d= port=3D2152)/GTP_U_Header()/GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0= x34)/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")',=0D + 'Ether(dst=3D"00:11:22:33:44:55")/IP()/GRE()/IP()/UDP(dpo= rt=3D2152)/GTP_U_Header()/GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x3= 4)/IPv6()',=0D + 'Ether(dst=3D"00:11:22:33:44:55")/IP()/GRE()/IP()/UDP(dpo= rt=3D2152)/GTP_U_Header()/GTPPDUSessionContainer(type=3D1, P=3D1, QFI=3D0x3= 4)/IP(src=3D"1.1.2.14", dst=3D"1.1.2.5")',=0D + 'Ether(dst=3D"00:11:22:33:44:55")/IP()/GRE()/IP()/UDP(dpo= rt=3D2152)/GTP_U_Header()/GTPPDUSessionContainer(type=3D1, P=3D1, QFI=3D0x3= 4)/IP(src=3D"1.1.2.4", dst=3D"1.1.2.15")',=0D + 'Ether(dst=3D"00:11:22:33:44:55")/IPv6()/GRE()/IP()/UDP(d= port=3D2152)/GTP_U_Header()/GTPPDUSessionContainer(type=3D1, P=3D1, QFI=3D0= x34)/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")',=0D + 'Ether(dst=3D"00:11:22:33:44:55")/IP()/GRE()/IP()/UDP(dpo= rt=3D2152)/GTP_U_Header()/GTPPDUSessionContainer(type=3D1, P=3D1, QFI=3D0x3= 4)/IPv6()',=0D + ]=0D +}=0D +=0D +tv_mac_ipv4_gre_ipv4_gtpu_eh_ipv4_queue_index =3D {=0D + "name": "tv_mac_ipv4_gre_ipv4_gtpu_eh_ipv4_queue_index",=0D + "rule": "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 3 / mark id 13 / end",=0D + "scapy_str": {"matched": mac_ipv4_gre_ipv4_gtpu_eh_ipv4_pkt['matched']= ,=0D + "unmatched": mac_ipv4_gre_ipv4_gtpu_eh_ipv4_pkt['unmatch= ed']=0D + },=0D + "check_param": {"port_id": 0, "rxq": LAUNCH_QUEUE, "queue": 3, "mark_i= d": 13}=0D +}=0D +=0D +tv_mac_ipv4_gre_ipv4_gtpu_eh_ipv4_rss_queues =3D {=0D + "name": "tv_mac_ipv4_gre_ipv4_gtpu_eh_ipv4_rss_queues",=0D + "rule": "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 rss queu= es 4 5 end / mark id 23 / end",=0D + "scapy_str": {"matched": mac_ipv4_gre_ipv4_gtpu_eh_ipv4_pkt['matched']= ,=0D + "unmatched": mac_ipv4_gre_ipv4_gtpu_eh_ipv4_pkt['unmatch= ed']=0D + },=0D + "check_param": {"port_id": 0, "rxq": LAUNCH_QUEUE, "queue": [4, 5], "m= ark_id": 23}=0D +}=0D +=0D +tv_mac_ipv4_gre_ipv4_gtpu_eh_ipv4_passthru =3D {=0D + "name": "tv_mac_ipv4_gre_ipv4_gtpu_eh_ipv4_passthru",=0D + "rule": "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 passthru= / mark id 33 / end",=0D + "scapy_str": {"matched": mac_ipv4_gre_ipv4_gtpu_eh_ipv4_pkt['matched']= ,=0D + "unmatched": mac_ipv4_gre_ipv4_gtpu_eh_ipv4_pkt['unmatch= ed']=0D + },=0D + "check_param": {"port_id": 0, "rxq": LAUNCH_QUEUE, "mark_id": 33}=0D +}=0D +=0D +tv_mac_ipv4_gre_ipv4_gtpu_eh_ipv4_drop =3D {=0D + "name": "tv_mac_ipv4_gre_ipv4_gtpu_eh_ipv4_drop",=0D + "rule": "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 drop / e= nd",=0D + "scapy_str": {"matched": mac_ipv4_gre_ipv4_gtpu_eh_ipv4_pkt['matched']= ,=0D + "unmatched": mac_ipv4_gre_ipv4_gtpu_eh_ipv4_pkt['unmatch= ed']=0D + },=0D + "check_param": {"port_id": 0, "rxq": LAUNCH_QUEUE, "drop": True}=0D +}=0D +=0D +tv_mac_ipv4_gre_ipv4_gtpu_eh_ipv4_mark_rss =3D {=0D + "name": "tv_mac_ipv4_gre_ipv4_gtpu_eh_ipv4_mark_rss",=0D + "rule": "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 mark / r= ss / end",=0D + "scapy_str": {"matched": mac_ipv4_gre_ipv4_gtpu_eh_ipv4_pkt['matched']= ,=0D + "unmatched": mac_ipv4_gre_ipv4_gtpu_eh_ipv4_pkt['unmatch= ed']=0D + },=0D + "check_param": {"port_id": 0, "rxq": LAUNCH_QUEUE, "mark_id": 0, "rss"= : True}=0D +}=0D +=0D +tvs_mac_ipv4_gre_ipv4_gtpu_eh_ipv4 =3D [=0D + tv_mac_ipv4_gre_ipv4_gtpu_eh_ipv4_queue_index,=0D + tv_mac_ipv4_gre_ipv4_gtpu_eh_ipv4_rss_queues,=0D + tv_mac_ipv4_gre_ipv4_gtpu_eh_ipv4_passthru,=0D + tv_mac_ipv4_gre_ipv4_gtpu_eh_ipv4_drop,=0D + tv_mac_ipv4_gre_ipv4_gtpu_eh_ipv4_mark_rss,=0D + ]=0D +=0D +mac_ipv4_gre_ipv4_gtpu_eh_ipv4_udp_pkt=3D{=0D + "matched":['Ether(dst=3D"00:11:22:33:44:55")/IP()/GRE()/IP()/UDP(dport= =3D2152)/GTP_U_Header()/GTPPDUSessionContainer()/IP(src=3D"1.1.2.4", dst=3D= "1.1.2.5")/UDP(sport=3D13, dport=3D23)',=0D + 'Ether(dst=3D"00:11:22:33:44:55")/IP()/GRE()/IPv6()/UDP(dpo= rt=3D2152)/GTP_U_Header()/GTPPDUSessionContainer()/IP(src=3D"1.1.2.4", dst= =3D"1.1.2.5")/UDP(sport=3D13, dport=3D23)',=0D + 'Ether(dst=3D"00:11:22:33:44:55")/IP()/GRE()/IP()/UDP(dport= =3D2152)/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, dport=3D23)',=0D + 'Ether(dst=3D"00:11:22:33:44:55")/IP()/GRE()/IPv6()/UDP(dpo= rt=3D2152)/GTP_U_Header()/GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x3= 4)/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP(sport=3D13, dport=3D23)',=0D + 'Ether(dst=3D"00:11:22:33:44:55")/IP()/GRE()/IP()/UDP(dport= =3D2152)/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, dport=3D23)',=0D + 'Ether(dst=3D"00:11:22:33:44:55")/IP()/GRE()/IPv6()/UDP(dpo= rt=3D2152)/GTP_U_Header()/GTPPDUSessionContainer(type=3D1, P=3D1, QFI=3D0x3= 4)/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP(sport=3D13, dport=3D23)'],=0D + "unmatched":['Ether(dst=3D"00:11:22:33:44:55")/IP()/GRE()/IP()/UDP(dpo= rt=3D2152)/GTP_U_Header()/GTPPDUSessionContainer()/IP(src=3D"1.1.2.14", dst= =3D"1.1.2.5")/UDP(sport=3D13, dport=3D23)',=0D + 'Ether(dst=3D"00:11:22:33:44:55")/IP()/GRE()/IP()/UDP(dpo= rt=3D2152)/GTP_U_Header()/GTPPDUSessionContainer()/IP(src=3D"1.1.2.4", dst= =3D"1.1.2.15")/UDP(sport=3D13, dport=3D23)',=0D + 'Ether(dst=3D"00:11:22:33:44:55")/IP()/GRE()/IP()/UDP(dpo= rt=3D2152)/GTP_U_Header()/GTPPDUSessionContainer()/IP(src=3D"1.1.2.4", dst= =3D"1.1.2.5")/UDP(sport=3D14, dport=3D23)',=0D + 'Ether(dst=3D"00:11:22:33:44:55")/IP()/GRE()/IP()/UDP(dpo= rt=3D2152)/GTP_U_Header()/GTPPDUSessionContainer()/IP(src=3D"1.1.2.4", dst= =3D"1.1.2.5")/UDP(sport=3D13, dport=3D24)',=0D + 'Ether(dst=3D"00:11:22:33:44:55")/IP()/GRE()/IP()/UDP(dpo= rt=3D2152)/GTP_U_Header()/GTPPDUSessionContainer()/IP(src=3D"1.1.2.4", dst= =3D"1.1.2.5")/TCP(sport=3D13, dport=3D23)',=0D + 'Ether(dst=3D"00:11:22:33:44:55")/IPv6()/GRE()/IP()/UDP(d= port=3D2152)/GTP_U_Header()/GTPPDUSessionContainer()/IP(src=3D"1.1.2.4", ds= t=3D"1.1.2.5")/UDP(sport=3D13, dport=3D23)',=0D + 'Ether(dst=3D"00:11:22:33:44:55")/IP()/GRE()/IP()/UDP(dpo= rt=3D2152)/GTP_U_Header()/GTPPDUSessionContainer()/IPv6()/UDP(sport=3D13, d= port=3D23)',=0D + 'Ether(dst=3D"00:11:22:33:44:55")/IP()/GRE()/IP()/UDP(dpo= rt=3D2152)/GTP_U_Header()/GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x3= 4)/IP(src=3D"1.1.2.14", dst=3D"1.1.2.5")/UDP(sport=3D13, dport=3D23)',=0D + 'Ether(dst=3D"00:11:22:33:44:55")/IP()/GRE()/IP()/UDP(dpo= rt=3D2152)/GTP_U_Header()/GTPPDUSessionContainer(type=3D1, P=3D1, QFI=3D0x3= 4)/IP(src=3D"1.1.2.4", dst=3D"1.1.2.15")/UDP(sport=3D13, dport=3D23)',=0D + 'Ether(dst=3D"00:11:22:33:44:55")/IP()/GRE()/IP()/UDP(dpo= rt=3D2152)/GTP_U_Header()/GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x3= 4)/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP(sport=3D14, dport=3D23)',=0D + 'Ether(dst=3D"00:11:22:33:44:55")/IP()/GRE()/IP()/UDP(dpo= rt=3D2152)/GTP_U_Header()/GTPPDUSessionContainer(type=3D1, P=3D1, QFI=3D0x3= 4)/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP(sport=3D13, dport=3D24)',=0D + 'Ether(dst=3D"00:11:22:33:44:55")/IP()/GRE()/IP()/UDP(dpo= rt=3D2152)/GTP_U_Header()/GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x3= 4)/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/TCP(sport=3D13, dport=3D23)',=0D + 'Ether(dst=3D"00:11:22:33:44:55")/IPv6()/GRE()/IP()/UDP(d= port=3D2152)/GTP_U_Header()/GTPPDUSessionContainer(type=3D1, P=3D1, QFI=3D0= x34)/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP(sport=3D13, dport=3D23)',=0D + 'Ether(dst=3D"00:11:22:33:44:55")/IP()/GRE()/IP()/UDP(dpo= rt=3D2152)/GTP_U_Header()/GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x3= 4)/IPv6()/UDP(sport=3D13, dport=3D23)',=0D + 'Ether(dst=3D"00:11:22:33:44:55")/IP()/GRE()/IP()/UDP(dpo= rt=3D2152)/GTP_U_Header()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP(sport=3D= 13, dport=3D23)']=0D +}=0D +=0D +tv_mac_ipv4_gre_ipv4_gtpu_eh_ipv4_udp_queue_index =3D {=0D + "name": "tv_mac_ipv4_gre_ipv4_gtpu_eh_ipv4_udp_queue_index",=0D + "rule": "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 / udp src is 13 dst is= 23 / end actions queue index 3 / mark id 13 / end",=0D + "scapy_str": {"matched": mac_ipv4_gre_ipv4_gtpu_eh_ipv4_udp_pkt['match= ed'],=0D + "unmatched": mac_ipv4_gre_ipv4_gtpu_eh_ipv4_udp_pkt['unm= atched']=0D + },=0D + "check_param": {"port_id": 0, "rxq": LAUNCH_QUEUE, "queue": 3, "mark_i= d": 13}=0D +}=0D +=0D +tv_mac_ipv4_gre_ipv4_gtpu_eh_ipv4_udp_rss_queues =3D {=0D + "name": "tv_mac_ipv4_gre_ipv4_gtpu_eh_ipv4_udp_rss_queues",=0D + "rule": "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 / udp src is 13 dst is= 23 / end actions rss queues 4 5 end / mark id 23 / end",=0D + "scapy_str": {"matched": mac_ipv4_gre_ipv4_gtpu_eh_ipv4_udp_pkt['match= ed'],=0D + "unmatched": mac_ipv4_gre_ipv4_gtpu_eh_ipv4_udp_pkt['unm= atched']=0D + },=0D + "check_param": {"port_id": 0, "rxq": LAUNCH_QUEUE, "queue": [4, 5], "m= ark_id": 23}=0D +}=0D +=0D +tv_mac_ipv4_gre_ipv4_gtpu_eh_ipv4_udp_passthru =3D {=0D + "name": "tv_mac_ipv4_gre_ipv4_gtpu_eh_ipv4_udp_passthru",=0D + "rule": "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 / udp src is 13 dst is= 23 / end actions passthru / mark id 33 / end",=0D + "scapy_str": {"matched": mac_ipv4_gre_ipv4_gtpu_eh_ipv4_udp_pkt['match= ed'],=0D + "unmatched": mac_ipv4_gre_ipv4_gtpu_eh_ipv4_udp_pkt['unm= atched']=0D + },=0D + "check_param": {"port_id": 0, "rxq": LAUNCH_QUEUE, "mark_id": 33}=0D +}=0D +=0D +tv_mac_ipv4_gre_ipv4_gtpu_eh_ipv4_udp_drop =3D {=0D + "name": "tv_mac_ipv4_gre_ipv4_gtpu_eh_ipv4_udp_drop",=0D + "rule": "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 / udp src is 13 dst is= 23 / end actions drop / end",=0D + "scapy_str": {"matched": mac_ipv4_gre_ipv4_gtpu_eh_ipv4_udp_pkt['match= ed'],=0D + "unmatched": mac_ipv4_gre_ipv4_gtpu_eh_ipv4_udp_pkt['unm= atched']=0D + },=0D + "check_param": {"port_id": 0, "rxq": LAUNCH_QUEUE, "drop": True}=0D +}=0D +=0D +tv_mac_ipv4_gre_ipv4_gtpu_eh_ipv4_udp_mark_rss =3D {=0D + "name": "tv_mac_ipv4_gre_ipv4_gtpu_eh_ipv4_udp_mark_rss",=0D + "rule": "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 / udp src is 13 dst is= 23 / end actions mark / rss / end",=0D + "scapy_str": {"matched": mac_ipv4_gre_ipv4_gtpu_eh_ipv4_udp_pkt['match= ed'],=0D + "unmatched": mac_ipv4_gre_ipv4_gtpu_eh_ipv4_udp_pkt['unm= atched']=0D + },=0D + "check_param": {"port_id": 0, "rxq": LAUNCH_QUEUE, "mark_id": 0, "rss"= : True}=0D +}=0D +=0D +tvs_mac_ipv4_gre_ipv4_gtpu_eh_ipv4_udp =3D [=0D + tv_mac_ipv4_gre_ipv4_gtpu_eh_ipv4_udp_queue_index,=0D + tv_mac_ipv4_gre_ipv4_gtpu_eh_ipv4_udp_rss_queues,=0D + tv_mac_ipv4_gre_ipv4_gtpu_eh_ipv4_udp_passthru,=0D + tv_mac_ipv4_gre_ipv4_gtpu_eh_ipv4_udp_drop,=0D + tv_mac_ipv4_gre_ipv4_gtpu_eh_ipv4_udp_mark_rss,=0D + ]=0D +=0D +tvs_mac_ipv4_gre_ipv4_gtpu_eh_ipv4_tcp =3D [eval(str(element).replace('UDP= (sport', 'UDP1(sport')=0D + .replace('TCP(spor= t', 'TCP1(sport')=0D + .replace('UDP1(spo= rt', 'TCP(sport')=0D + .replace('TCP1(spo= rt', 'UDP(sport')=0D + .replace('_udp_', = '_tcp_')=0D + .replace('udp src'= , 'tcp src')=0D + )=0D + for element in tvs_mac_ipv4_gre_ipv= 4_gtpu_eh_ipv4_udp]=0D +=0D +mac_ipv4_gre_ipv4_gtpu_ul_ipv4_pkt=3D{=0D + "matched":['Ether(dst=3D"00:11:22:33:44:55")/IP()/GRE()/IP()/UDP(dport= =3D2152)/GTP_U_Header()/GTPPDUSessionContainer(type=3D1, P=3D1, QFI=3D0x34)= /IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")',=0D + 'Ether(dst=3D"00:11:22:33:44:55")/IP()/GRE()/IPv6()/UDP(dpo= rt=3D2152)/GTP_U_Header()/GTPPDUSessionContainer(type=3D1, P=3D1, QFI=3D0x3= 4)/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")'],=0D + "unmatched":['Ether(dst=3D"00:11:22:33:44:55")/IP()/GRE()/IP()/UDP(dpo= rt=3D2152)/GTP_U_Header()/GTPPDUSessionContainer(type=3D1, P=3D1, QFI=3D0x3= 4)/IP(src=3D"1.1.2.14", dst=3D"1.1.2.5")',=0D + 'Ether(dst=3D"00:11:22:33:44:55")/IP()/GRE()/IP()/UDP(dpo= rt=3D2152)/GTP_U_Header()/GTPPDUSessionContainer(type=3D1, P=3D1, QFI=3D0x3= 4)/IP(src=3D"1.1.2.4", dst=3D"1.1.2.15")',=0D + 'Ether(dst=3D"00:11:22:33:44:55")/IPv6()/GRE()/IP()/UDP(d= port=3D2152)/GTP_U_Header()/GTPPDUSessionContainer(type=3D1, P=3D1, QFI=3D0= x34)/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")',=0D + 'Ether(dst=3D"00:11:22:33:44:55")/IP()/GRE()/IP()/UDP(dpo= rt=3D2152)/GTP_U_Header()/GTPPDUSessionContainer(type=3D1, P=3D1, QFI=3D0x3= 4)/IPv6()',=0D + 'Ether(dst=3D"00:11:22:33:44:55")/IP()/GRE()/IP()/UDP(dpo= rt=3D2152)/GTP_U_Header()/GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x3= 4)/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")',=0D + 'Ether(dst=3D"00:11:22:33:44:55")/IP()/GRE()/IP()/UDP(dpo= rt=3D2152)/GTP_U_Header()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")'=0D + ]=0D +}=0D +=0D +tv_mac_ipv4_gre_ipv4_gtpu_ul_ipv4_queue_index =3D {=0D + "name": "tv_mac_ipv4_gre_ipv4_gtpu_ul_ipv4_queue_index",=0D + "rule": "flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp /= gtpu / gtp_psc pdu_t is 1 / ipv4 src is 1.1.2.4 dst is 1.1.2.5 / end actio= ns queue index 3 / mark id 13 / end",=0D + "scapy_str": {"matched": mac_ipv4_gre_ipv4_gtpu_ul_ipv4_pkt['matched']= ,=0D + "unmatched": mac_ipv4_gre_ipv4_gtpu_ul_ipv4_pkt['unmatch= ed']=0D + },=0D + "check_param": {"port_id": 0, "rxq": LAUNCH_QUEUE, "queue": 3, "mark_i= d": 13}=0D +}=0D +=0D +tv_mac_ipv4_gre_ipv4_gtpu_ul_ipv4_rss_queues =3D {=0D + "name": "tv_mac_ipv4_gre_ipv4_gtpu_ul_ipv4_rss_queues",=0D + "rule": "flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp /= gtpu / gtp_psc pdu_t is 1 / ipv4 src is 1.1.2.4 dst is 1.1.2.5 / end actio= ns rss queues 4 5 end / mark id 23 / end",=0D + "scapy_str": {"matched": mac_ipv4_gre_ipv4_gtpu_ul_ipv4_pkt['matched']= ,=0D + "unmatched": mac_ipv4_gre_ipv4_gtpu_ul_ipv4_pkt['unmatch= ed']=0D + },=0D + "check_param": {"port_id": 0, "rxq": LAUNCH_QUEUE, "queue": [4, 5], "m= ark_id": 23}=0D +}=0D +=0D +tv_mac_ipv4_gre_ipv4_gtpu_ul_ipv4_passthru =3D {=0D + "name": "tv_mac_ipv4_gre_ipv4_gtpu_ul_ipv4_passthru",=0D + "rule": "flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp /= gtpu / gtp_psc pdu_t is 1 / ipv4 src is 1.1.2.4 dst is 1.1.2.5 / end actio= ns passthru / mark id 33 / end",=0D + "scapy_str": {"matched": mac_ipv4_gre_ipv4_gtpu_ul_ipv4_pkt['matched']= ,=0D + "unmatched": mac_ipv4_gre_ipv4_gtpu_ul_ipv4_pkt['unmatch= ed']=0D + },=0D + "check_param": {"port_id": 0, "rxq": LAUNCH_QUEUE, "mark_id": 33}=0D +}=0D +=0D +tv_mac_ipv4_gre_ipv4_gtpu_ul_ipv4_drop =3D {=0D + "name": "tv_mac_ipv4_gre_ipv4_gtpu_ul_ipv4_drop",=0D + "rule": "flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp /= gtpu / gtp_psc pdu_t is 1 / ipv4 src is 1.1.2.4 dst is 1.1.2.5 / end actio= ns drop / end",=0D + "scapy_str": {"matched": mac_ipv4_gre_ipv4_gtpu_ul_ipv4_pkt['matched']= ,=0D + "unmatched": mac_ipv4_gre_ipv4_gtpu_ul_ipv4_pkt['unmatch= ed']=0D + },=0D + "check_param": {"port_id": 0, "rxq": LAUNCH_QUEUE, "drop": True}=0D +}=0D +=0D +tv_mac_ipv4_gre_ipv4_gtpu_ul_ipv4_mark_rss =3D {=0D + "name": "tv_mac_ipv4_gre_ipv4_gtpu_ul_ipv4_mark_rss",=0D + "rule": "flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp /= gtpu / gtp_psc pdu_t is 1 / ipv4 src is 1.1.2.4 dst is 1.1.2.5 / end actio= ns mark / rss / end",=0D + "scapy_str": {"matched": mac_ipv4_gre_ipv4_gtpu_ul_ipv4_pkt['matched']= ,=0D + "unmatched": mac_ipv4_gre_ipv4_gtpu_ul_ipv4_pkt['unmatch= ed']=0D + },=0D + "check_param": {"port_id": 0, "rxq": LAUNCH_QUEUE, "mark_id": 0, "rss"= : True}=0D +}=0D +=0D +tvs_mac_ipv4_gre_ipv4_gtpu_ul_ipv4 =3D [=0D + tv_mac_ipv4_gre_ipv4_gtpu_ul_ipv4_queue_index,=0D + tv_mac_ipv4_gre_ipv4_gtpu_ul_ipv4_rss_queues,=0D + tv_mac_ipv4_gre_ipv4_gtpu_ul_ipv4_passthru,=0D + tv_mac_ipv4_gre_ipv4_gtpu_ul_ipv4_drop,=0D + tv_mac_ipv4_gre_ipv4_gtpu_ul_ipv4_mark_rss,=0D + ]=0D +=0D +mac_ipv4_gre_ipv4_gtpu_ul_ipv4_udp_pkt=3D{=0D + "matched":['Ether(dst=3D"00:11:22:33:44:55")/IP()/GRE()/IP()/UDP(dport= =3D2152)/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, dport=3D23)',=0D + 'Ether(dst=3D"00:11:22:33:44:55")/IP()/GRE()/IPv6()/UDP(dpo= rt=3D2152)/GTP_U_Header()/GTPPDUSessionContainer(type=3D1, P=3D1, QFI=3D0x3= 4)/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP(sport=3D13, dport=3D23)'],=0D + "unmatched":['Ether(dst=3D"00:11:22:33:44:55")/IP()/GRE()/IP()/UDP(dpo= rt=3D2152)/GTP_U_Header()/GTPPDUSessionContainer(type=3D1, P=3D1, QFI=3D0x3= 4)/IP(src=3D"1.1.2.14", dst=3D"1.1.2.5")/UDP(sport=3D13, dport=3D23)',=0D + 'Ether(dst=3D"00:11:22:33:44:55")/IP()/GRE()/IP()/UDP(dpo= rt=3D2152)/GTP_U_Header()/GTPPDUSessionContainer(type=3D1, P=3D1, QFI=3D0x3= 4)/IP(src=3D"1.1.2.4", dst=3D"1.1.2.15")/UDP(sport=3D13, dport=3D23)',=0D + 'Ether(dst=3D"00:11:22:33:44:55")/IP()/GRE()/IP()/UDP(dpo= rt=3D2152)/GTP_U_Header()/GTPPDUSessionContainer(type=3D1, P=3D1, QFI=3D0x3= 4)/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP(sport=3D14, dport=3D23)',=0D + 'Ether(dst=3D"00:11:22:33:44:55")/IP()/GRE()/IP()/UDP(dpo= rt=3D2152)/GTP_U_Header()/GTPPDUSessionContainer(type=3D1, P=3D1, QFI=3D0x3= 4)/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP(sport=3D13, dport=3D24)',=0D + 'Ether(dst=3D"00:11:22:33:44:55")/IP()/GRE()/IP()/UDP(dpo= rt=3D2152)/GTP_U_Header()/GTPPDUSessionContainer(type=3D1, P=3D1, QFI=3D0x3= 4)/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/TCP(sport=3D13, dport=3D23)',=0D + 'Ether(dst=3D"00:11:22:33:44:55")/IPv6()/GRE()/IP()/UDP(d= port=3D2152)/GTP_U_Header()/GTPPDUSessionContainer(type=3D1, P=3D1, QFI=3D0= x34)/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP(sport=3D13, dport=3D23)',=0D + 'Ether(dst=3D"00:11:22:33:44:55")/IP()/GRE()/IP()/UDP(dpo= rt=3D2152)/GTP_U_Header()/GTPPDUSessionContainer(type=3D1, P=3D1, QFI=3D0x3= 4)/IPv6()/UDP(sport=3D13, dport=3D23)',=0D + 'Ether(dst=3D"00:11:22:33:44:55")/IP()/GRE()/IP()/UDP(dpo= rt=3D2152)/GTP_U_Header()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP(sport=3D= 13, dport=3D23)',=0D + 'Ether(dst=3D"00:11:22:33:44:55")/IP()/GRE()/IP()/UDP(dpo= rt=3D2152)/GTP_U_Header()/GTPPDUSessionContainer(type=3D0, P=3D1, QFI=3D0x3= 4)/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP(sport=3D13, dport=3D23)',=0D + ]=0D +}=0D +=0D +tv_mac_ipv4_gre_ipv4_gtpu_ul_ipv4_udp_queue_index =3D {=0D + "name": "tv_mac_ipv4_gre_ipv4_gtpu_ul_ipv4_udp_queue_index",=0D + "rule": "flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp /= gtpu / gtp_psc pdu_t is 1 / ipv4 src is 1.1.2.4 dst is 1.1.2.5 / udp src i= s 13 dst is 23 / end actions queue index 3 / mark id 13 / end",=0D + "scapy_str": {"matched": mac_ipv4_gre_ipv4_gtpu_ul_ipv4_udp_pkt['match= ed'],=0D + "unmatched": mac_ipv4_gre_ipv4_gtpu_ul_ipv4_udp_pkt['unm= atched']=0D + },=0D + "check_param": {"port_id": 0, "rxq": LAUNCH_QUEUE, "queue": 3, "mark_i= d": 13}=0D +}=0D +=0D +tv_mac_ipv4_gre_ipv4_gtpu_ul_ipv4_udp_rss_queues =3D {=0D + "name": "tv_mac_ipv4_gre_ipv4_gtpu_ul_ipv4_udp_rss_queues",=0D + "rule": "flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp /= gtpu / gtp_psc pdu_t is 1 / ipv4 src is 1.1.2.4 dst is 1.1.2.5 / udp src i= s 13 dst is 23 / end actions rss queues 4 5 end / mark id 23 / end",=0D + "scapy_str": {"matched": mac_ipv4_gre_ipv4_gtpu_ul_ipv4_udp_pkt['match= ed'],=0D + "unmatched": mac_ipv4_gre_ipv4_gtpu_ul_ipv4_udp_pkt['unm= atched']=0D + },=0D + "check_param": {"port_id": 0, "rxq": LAUNCH_QUEUE, "queue": [4, 5], "m= ark_id": 23}=0D +}=0D +=0D +tv_mac_ipv4_gre_ipv4_gtpu_ul_ipv4_udp_passthru =3D {=0D + "name": "tv_mac_ipv4_gre_ipv4_gtpu_ul_ipv4_udp_passthru",=0D + "rule": "flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp /= gtpu / gtp_psc pdu_t is 1 / ipv4 src is 1.1.2.4 dst is 1.1.2.5 / udp src i= s 13 dst is 23 / end actions passthru / mark id 33 / end",=0D + "scapy_str": {"matched": mac_ipv4_gre_ipv4_gtpu_ul_ipv4_udp_pkt['match= ed'],=0D + "unmatched": mac_ipv4_gre_ipv4_gtpu_ul_ipv4_udp_pkt['unm= atched']=0D + },=0D + "check_param": {"port_id": 0, "rxq": LAUNCH_QUEUE, "mark_id": 33}=0D +}=0D +=0D +tv_mac_ipv4_gre_ipv4_gtpu_ul_ipv4_udp_drop =3D {=0D + "name": "tv_mac_ipv4_gre_ipv4_gtpu_ul_ipv4_udp_drop",=0D + "rule": "flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp /= gtpu / gtp_psc pdu_t is 1 / ipv4 src is 1.1.2.4 dst is 1.1.2.5 / udp src i= s 13 dst is 23 / end actions drop / end",=0D + "scapy_str": {"matched": mac_ipv4_gre_ipv4_gtpu_ul_ipv4_udp_pkt['match= ed'],=0D + "unmatched": mac_ipv4_gre_ipv4_gtpu_ul_ipv4_udp_pkt['unm= atched']=0D + },=0D + "check_param": {"port_id": 0, "rxq": LAUNCH_QUEUE, "drop": True}=0D +}=0D +=0D +tv_mac_ipv4_gre_ipv4_gtpu_ul_ipv4_udp_mark_rss =3D {=0D + "name": "tv_mac_ipv4_gre_ipv4_gtpu_ul_ipv4_udp_mark_rss",=0D + "rule": "flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp /= gtpu / gtp_psc pdu_t is 1 / ipv4 src is 1.1.2.4 dst is 1.1.2.5 / udp src i= s 13 dst is 23 / end actions mark / rss / end",=0D + "scapy_str": {"matched": mac_ipv4_gre_ipv4_gtpu_ul_ipv4_udp_pkt['match= ed'],=0D + "unmatched": mac_ipv4_gre_ipv4_gtpu_ul_ipv4_udp_pkt['unm= atched']=0D + },=0D + "check_param": {"port_id": 0, "rxq": LAUNCH_QUEUE, "mark_id": 0, "rss"= : True}=0D +}=0D +=0D +tvs_mac_ipv4_gre_ipv4_gtpu_ul_ipv4_udp =3D [=0D + tv_mac_ipv4_gre_ipv4_gtpu_ul_ipv4_udp_queue_index,=0D + tv_mac_ipv4_gre_ipv4_gtpu_ul_ipv4_udp_rss_queues,=0D + tv_mac_ipv4_gre_ipv4_gtpu_ul_ipv4_udp_passthru,=0D + tv_mac_ipv4_gre_ipv4_gtpu_ul_ipv4_udp_drop,=0D + tv_mac_ipv4_gre_ipv4_gtpu_ul_ipv4_udp_mark_rss,=0D + ]=0D +=0D +tvs_mac_ipv4_gre_ipv4_gtpu_ul_ipv4_tcp =3D [eval(str(element).replace('UDP= (sport', 'UDP1(sport')=0D + .replace('TCP(spor= t', 'TCP1(sport')=0D + .replace('UDP1(spo= rt', 'TCP(sport')=0D + .replace('TCP1(spo= rt', 'UDP(sport')=0D + .replace('_udp_', = '_tcp_')=0D + .replace('udp src'= , 'tcp src')=0D + )=0D + for element in tvs_mac_ipv4_gre_ipv= 4_gtpu_ul_ipv4_udp]=0D +=0D +tvs_mac_ipv4_gre_ipv4_gtpu_dl_ipv4 =3D [eval(str(element).replace('_ul_', = '_dl_')=0D + .replace('type=3D1= ', 'type=3D11')=0D + .replace('type=3D0= ', 'type=3D10')=0D + .replace('type=3D1= 1', 'type=3D0')=0D + .replace('type=3D1= 0', 'type=3D1')=0D + .replace('pdu_t is= 1', 'pdu_t is 0')=0D + )=0D + for element in tvs_mac_ipv4_gre_ipv= 4_gtpu_ul_ipv4]=0D +=0D +tvs_mac_ipv4_gre_ipv4_gtpu_dl_ipv4_udp =3D [eval(str(element).replace('_ul= _', '_dl_')=0D + .replace('type=3D1= ', 'type=3D11')=0D + .replace('type=3D0= ', 'type=3D10')=0D + .replace('type=3D1= 1', 'type=3D0')=0D + .replace('type=3D1= 0', 'type=3D1')=0D + .replace('pdu_t is= 1', 'pdu_t is 0')=0D + )=0D + for element in tvs_mac_ipv4_gre_ipv= 4_gtpu_ul_ipv4_udp]=0D +=0D +tvs_mac_ipv4_gre_ipv4_gtpu_dl_ipv4_tcp =3D [eval(str(element).replace('_ul= _', '_dl_')=0D + .replace('type=3D1= ', 'type=3D11')=0D + .replace('type=3D0= ', 'type=3D10')=0D + .replace('type=3D1= 1', 'type=3D0')=0D + .replace('type=3D1= 0', 'type=3D1')=0D + .replace('pdu_t is= 1', 'pdu_t is 0')=0D + )=0D + for element in tvs_mac_ipv4_gre_ipv= 4_gtpu_ul_ipv4_tcp]=0D +=0D +tvs_mac_ipv6_gre_ipv4_gtpu_ipv4 =3D [eval(str(element).replace('mac_ipv4',= 'mac_ipv6')=0D + .replace('IP()/GRE= ', 'IP1()/GRE')=0D + .replace('IPv6()/G= RE', 'IPv66()/GRE')=0D + .replace('IP1()/GR= E', 'IPv6()/GRE')=0D + .replace('IPv66()/= GRE', 'IP()/GRE')=0D + .replace('ipv4 / g= re', 'ipv6 / gre')=0D + )=0D + for element in tvs_mac_ipv4_gre_ipv= 4_gtpu_ipv4]=0D +=0D +tvs_mac_ipv6_gre_ipv4_gtpu_ipv4_udp =3D [eval(str(element).replace('mac_ip= v4', 'mac_ipv6')=0D + .replace('IP()/GRE= ', 'IP1()/GRE')=0D + .replace('IPv6()/G= RE', 'IPv66()/GRE')=0D + .replace('IP1()/GR= E', 'IPv6()/GRE')=0D + .replace('IPv66()/= GRE', 'IP()/GRE')=0D + .replace('ipv4 / g= re', 'ipv6 / gre')=0D + )=0D + for element in tvs_mac_ipv4_gre_ipv= 4_gtpu_ipv4_udp]=0D +=0D +tvs_mac_ipv6_gre_ipv4_gtpu_ipv4_tcp =3D [eval(str(element).replace('mac_ip= v4', 'mac_ipv6')=0D + .replace('IP()/GRE= ', 'IP1()/GRE')=0D + .replace('IPv6()/G= RE', 'IPv66()/GRE')=0D + .replace('IP1()/GR= E', 'IPv6()/GRE')=0D + .replace('IPv66()/= GRE', 'IP()/GRE')=0D + .replace('ipv4 / g= re', 'ipv6 / gre')=0D + )=0D + for element in tvs_mac_ipv4_gre_ipv= 4_gtpu_ipv4_tcp]=0D +=0D +tvs_mac_ipv6_gre_ipv4_gtpu_eh_ipv4 =3D [eval(str(element).replace('mac_ipv= 4', 'mac_ipv6')=0D + .replace('IP()/GRE= ', 'IP1()/GRE')=0D + .replace('IPv6()/G= RE', 'IPv66()/GRE')=0D + .replace('IP1()/GR= E', 'IPv6()/GRE')=0D + .replace('IPv66()/= GRE', 'IP()/GRE')=0D + .replace('ipv4 / g= re', 'ipv6 / gre')=0D + )=0D + for element in tvs_mac_ipv4_gre_ipv= 4_gtpu_eh_ipv4]=0D +=0D +tvs_mac_ipv6_gre_ipv4_gtpu_eh_ipv4_udp =3D [eval(str(element).replace('mac= _ipv4', 'mac_ipv6')=0D + .replace('IP()/GRE= ', 'IP1()/GRE')=0D + .replace('IPv6()/G= RE', 'IPv66()/GRE')=0D + .replace('IP1()/GR= E', 'IPv6()/GRE')=0D + .replace('IPv66()/= GRE', 'IP()/GRE')=0D + .replace('ipv4 / g= re', 'ipv6 / gre')=0D + )=0D + for element in tvs_mac_ipv4_gre_ipv= 4_gtpu_eh_ipv4_udp]=0D +=0D +tvs_mac_ipv6_gre_ipv4_gtpu_eh_ipv4_tcp =3D [eval(str(element).replace('mac= _ipv4', 'mac_ipv6')=0D + .replace('IP()/GRE= ', 'IP1()/GRE')=0D + .replace('IPv6()/G= RE', 'IPv66()/GRE')=0D + .replace('IP1()/GR= E', 'IPv6()/GRE')=0D + .replace('IPv66()/= GRE', 'IP()/GRE')=0D + .replace('ipv4 / g= re', 'ipv6 / gre')=0D + )=0D + for element in tvs_mac_ipv4_gre_ipv= 4_gtpu_eh_ipv4_tcp]=0D +=0D +tvs_mac_ipv6_gre_ipv4_gtpu_ul_ipv4 =3D [eval(str(element).replace('mac_ipv= 4', 'mac_ipv6')=0D + .replace('IP()/GRE= ', 'IP1()/GRE')=0D + .replace('IPv6()/G= RE', 'IPv66()/GRE')=0D + .replace('IP1()/GR= E', 'IPv6()/GRE')=0D + .replace('IPv66()/= GRE', 'IP()/GRE')=0D + .replace('ipv4 / g= re', 'ipv6 / gre')=0D + )=0D + for element in tvs_mac_ipv4_gre_ipv= 4_gtpu_ul_ipv4]=0D +=0D +tvs_mac_ipv6_gre_ipv4_gtpu_ul_ipv4_udp =3D [eval(str(element).replace('mac= _ipv4', 'mac_ipv6')=0D + .replace('IP()/GRE= ', 'IP1()/GRE')=0D + .replace('IPv6()/G= RE', 'IPv66()/GRE')=0D + .replace('IP1()/GR= E', 'IPv6()/GRE')=0D + .replace('IPv66()/= GRE', 'IP()/GRE')=0D + .replace('ipv4 / g= re', 'ipv6 / gre')=0D + )=0D + for element in tvs_mac_ipv4_gre_ipv= 4_gtpu_ul_ipv4_udp]=0D +=0D +tvs_mac_ipv6_gre_ipv4_gtpu_ul_ipv4_tcp =3D [eval(str(element).replace('mac= _ipv4', 'mac_ipv6')=0D + .replace('IP()/GRE= ', 'IP1()/GRE')=0D + .replace('IPv6()/G= RE', 'IPv66()/GRE')=0D + .replace('IP1()/GR= E', 'IPv6()/GRE')=0D + .replace('IPv66()/= GRE', 'IP()/GRE')=0D + .replace('ipv4 / g= re', 'ipv6 / gre')=0D + )=0D + for element in tvs_mac_ipv4_gre_ipv= 4_gtpu_ul_ipv4_tcp]=0D +=0D +tvs_mac_ipv6_gre_ipv4_gtpu_dl_ipv4 =3D [eval(str(element).replace('mac_ipv= 4', 'mac_ipv6')=0D + .replace('IP()/GRE= ', 'IP1()/GRE')=0D + .replace('IPv6()/G= RE', 'IPv66()/GRE')=0D + .replace('IP1()/GR= E', 'IPv6()/GRE')=0D + .replace('IPv66()/= GRE', 'IP()/GRE')=0D + .replace('ipv4 / g= re', 'ipv6 / gre')=0D + )=0D + for element in tvs_mac_ipv4_gre_ipv= 4_gtpu_dl_ipv4]=0D +=0D +tvs_mac_ipv6_gre_ipv4_gtpu_dl_ipv4_udp =3D [eval(str(element).replace('mac= _ipv4', 'mac_ipv6')=0D + .replace('IP()/GRE= ', 'IP1()/GRE')=0D + .replace('IPv6()/G= RE', 'IPv66()/GRE')=0D + .replace('IP1()/GR= E', 'IPv6()/GRE')=0D + .replace('IPv66()/= GRE', 'IP()/GRE')=0D + .replace('ipv4 / g= re', 'ipv6 / gre')=0D + )=0D + for element in tvs_mac_ipv4_gre_ipv= 4_gtpu_dl_ipv4_udp]=0D +=0D +tvs_mac_ipv6_gre_ipv4_gtpu_dl_ipv4_tcp =3D [eval(str(element).replace('mac= _ipv4', 'mac_ipv6')=0D + .replace('IP()/GRE= ', 'IP1()/GRE')=0D + .replace('IPv6()/G= RE', 'IPv66()/GRE')=0D + .replace('IP1()/GR= E', 'IPv6()/GRE')=0D + .replace('IPv66()/= GRE', 'IP()/GRE')=0D + .replace('ipv4 / g= re', 'ipv6 / gre')=0D + )=0D + for element in tvs_mac_ipv4_gre_ipv= 4_gtpu_dl_ipv4_tcp]=0D +=0D +tvs_mac_ipv4_gre_ipv6_gtpu_ipv4 =3D [eval(str(element).replace('gre_ipv4',= 'gre_ipv6')=0D + .replace('GRE()/IP= ()', 'GRE()/IP2()')=0D + .replace('GRE()/IP= v6()', 'GRE()/IPv62()')=0D + .replace('GRE()/IP= 2()', 'GRE()/IPv6()')=0D + .replace('GRE()/IP= v62()', 'GRE()/IP()')=0D + .replace('gre / ip= v4', 'gre / ipv6')=0D + )=0D + for element in tvs_mac_ipv4_gre_ipv= 4_gtpu_ipv4]=0D +=0D +tvs_mac_ipv4_gre_ipv6_gtpu_ipv4_udp =3D [eval(str(element).replace('gre_ip= v4', 'gre_ipv6')=0D + .replace('GRE()/IP= ()', 'GRE()/IP2()')=0D + .replace('GRE()/IP= v6()', 'GRE()/IPv62()')=0D + .replace('GRE()/IP= 2()', 'GRE()/IPv6()')=0D + .replace('GRE()/IP= v62()', 'GRE()/IP()')=0D + .replace('gre / ip= v4', 'gre / ipv6')=0D + )=0D + for element in tvs_mac_ipv4_gre_ipv= 4_gtpu_ipv4_udp]=0D +=0D +tvs_mac_ipv4_gre_ipv6_gtpu_ipv4_tcp =3D [eval(str(element).replace('gre_ip= v4', 'gre_ipv6')=0D + .replace('GRE()/IP= ()', 'GRE()/IP2()')=0D + .replace('GRE()/IP= v6()', 'GRE()/IPv62()')=0D + .replace('GRE()/IP= 2()', 'GRE()/IPv6()')=0D + .replace('GRE()/IP= v62()', 'GRE()/IP()')=0D + .replace('gre / ip= v4', 'gre / ipv6')=0D + )=0D + for element in tvs_mac_ipv4_gre_ipv= 4_gtpu_ipv4_tcp]=0D +=0D +tvs_mac_ipv4_gre_ipv6_gtpu_eh_ipv4 =3D [eval(str(element).replace('gre_ipv= 4', 'gre_ipv6')=0D + .replace('GRE()/IP= ()', 'GRE()/IP2()')=0D + .replace('GRE()/IP= v6()', 'GRE()/IPv62()')=0D + .replace('GRE()/IP= 2()', 'GRE()/IPv6()')=0D + .replace('GRE()/IP= v62()', 'GRE()/IP()')=0D + .replace('gre / ip= v4', 'gre / ipv6')=0D + )=0D + for element in tvs_mac_ipv4_gre_ipv= 4_gtpu_eh_ipv4]=0D +=0D +tvs_mac_ipv4_gre_ipv6_gtpu_eh_ipv4_udp =3D [eval(str(element).replace('gre= _ipv4', 'gre_ipv6')=0D + .replace('GRE()/IP= ()', 'GRE()/IP2()')=0D + .replace('GRE()/IP= v6()', 'GRE()/IPv62()')=0D + .replace('GRE()/IP= 2()', 'GRE()/IPv6()')=0D + .replace('GRE()/IP= v62()', 'GRE()/IP()')=0D + .replace('gre / ip= v4', 'gre / ipv6')=0D + )=0D + for element in tvs_mac_ipv4_gre_ipv= 4_gtpu_eh_ipv4_udp]=0D +=0D +tvs_mac_ipv4_gre_ipv6_gtpu_eh_ipv4_tcp =3D [eval(str(element).replace('gre= _ipv4', 'gre_ipv6')=0D + .replace('GRE()/IP= ()', 'GRE()/IP2()')=0D + .replace('GRE()/IP= v6()', 'GRE()/IPv62()')=0D + .replace('GRE()/IP= 2()', 'GRE()/IPv6()')=0D + .replace('GRE()/IP= v62()', 'GRE()/IP()')=0D + .replace('gre / ip= v4', 'gre / ipv6')=0D + )=0D + for element in tvs_mac_ipv4_gre_ipv= 4_gtpu_eh_ipv4_tcp]=0D +=0D +tvs_mac_ipv4_gre_ipv6_gtpu_ul_ipv4 =3D [eval(str(element).replace('gre_ipv= 4', 'gre_ipv6')=0D + .replace('GRE()/IP= ()', 'GRE()/IP2()')=0D + .replace('GRE()/IP= v6()', 'GRE()/IPv62()')=0D + .replace('GRE()/IP= 2()', 'GRE()/IPv6()')=0D + .replace('GRE()/IP= v62()', 'GRE()/IP()')=0D + .replace('gre / ip= v4', 'gre / ipv6')=0D + )=0D + for element in tvs_mac_ipv4_gre_ipv= 4_gtpu_ul_ipv4]=0D +=0D +tvs_mac_ipv4_gre_ipv6_gtpu_ul_ipv4_udp =3D [eval(str(element).replace('gre= _ipv4', 'gre_ipv6')=0D + .replace('GRE()/IP= ()', 'GRE()/IP2()')=0D + .replace('GRE()/IP= v6()', 'GRE()/IPv62()')=0D + .replace('GRE()/IP= 2()', 'GRE()/IPv6()')=0D + .replace('GRE()/IP= v62()', 'GRE()/IP()')=0D + .replace('gre / ip= v4', 'gre / ipv6')=0D + )=0D + for element in tvs_mac_ipv4_gre_ipv= 4_gtpu_ul_ipv4_udp]=0D +=0D +tvs_mac_ipv4_gre_ipv6_gtpu_ul_ipv4_tcp =3D [eval(str(element).replace('gre= _ipv4', 'gre_ipv6')=0D + .replace('GRE()/IP= ()', 'GRE()/IP2()')=0D + .replace('GRE()/IP= v6()', 'GRE()/IPv62()')=0D + .replace('GRE()/IP= 2()', 'GRE()/IPv6()')=0D + .replace('GRE()/IP= v62()', 'GRE()/IP()')=0D + .replace('gre / ip= v4', 'gre / ipv6')=0D + )=0D + for element in tvs_mac_ipv4_gre_ipv= 4_gtpu_ul_ipv4_tcp]=0D +=0D +tvs_mac_ipv4_gre_ipv6_gtpu_dl_ipv4 =3D [eval(str(element).replace('gre_ipv= 4', 'gre_ipv6')=0D + .replace('GRE()/IP= ()', 'GRE()/IP2()')=0D + .replace('GRE()/IP= v6()', 'GRE()/IPv62()')=0D + .replace('GRE()/IP= 2()', 'GRE()/IPv6()')=0D + .replace('GRE()/IP= v62()', 'GRE()/IP()')=0D + .replace('gre / ip= v4', 'gre / ipv6')=0D + )=0D + for element in tvs_mac_ipv4_gre_ipv= 4_gtpu_dl_ipv4]=0D +=0D +tvs_mac_ipv4_gre_ipv6_gtpu_dl_ipv4_udp =3D [eval(str(element).replace('gre= _ipv4', 'gre_ipv6')=0D + .replace('GRE()/IP= ()', 'GRE()/IP2()')=0D + .replace('GRE()/IP= v6()', 'GRE()/IPv62()')=0D + .replace('GRE()/IP= 2()', 'GRE()/IPv6()')=0D + .replace('GRE()/IP= v62()', 'GRE()/IP()')=0D + .replace('gre / ip= v4', 'gre / ipv6')=0D + )=0D + for element in tvs_mac_ipv4_gre_ipv= 4_gtpu_dl_ipv4_udp]=0D +=0D +tvs_mac_ipv4_gre_ipv6_gtpu_dl_ipv4_tcp =3D [eval(str(element).replace('gre= _ipv4', 'gre_ipv6')=0D + .replace('GRE()/IP= ()', 'GRE()/IP2()')=0D + .replace('GRE()/IP= v6()', 'GRE()/IPv62()')=0D + .replace('GRE()/IP= 2()', 'GRE()/IPv6()')=0D + .replace('GRE()/IP= v62()', 'GRE()/IP()')=0D + .replace('gre / ip= v4', 'gre / ipv6')=0D + )=0D + for element in tvs_mac_ipv4_gre_ipv= 4_gtpu_dl_ipv4_tcp]=0D +=0D +tvs_mac_ipv4_gre_ipv4_gtpu_ipv6 =3D [eval(str(element).replace('gtpu_ipv4'= , 'gtpu_ipv6')=0D + .replace('eh_ipv4', 'e= h_ipv6')=0D + .replace('ul_ipv4', 'u= l_ipv6')=0D + .replace('dl_ipv4', 'd= l_ipv6')=0D + .replace('GTP_U_Header= ()/IPv6', 'GTP_U_Header()/IP')=0D + .replace('GTPPDUSessio= nContainer()/IPv6', 'GTPPDUSessionContainer()/IP')=0D + .replace('QFI=3D0x34)/= IPv6', 'QFI=3D0x34)/IP')=0D + .replace('IP(src=3D"1.= 1.2.4", dst=3D"1.1.2.5")', 'IPv6(src=3D"CDCD:910A:2222:5498:8475:1111:3900:= 1515",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2020")')=0D + .replace('IP(src=3D"1.= 1.2.4", dst=3D"1.1.2.15")', 'IPv6(src=3D"CDCD:910A:2222:5498:8475:1111:3900= :1515",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2021")')=0D + .replace('IP(src=3D"1.= 1.2.14", dst=3D"1.1.2.5")', 'IPv6(src=3D"CDCD:910A:2222:5498:8475:1111:3900= :1516",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2020")')=0D + .replace('ipv4 src is = 1.1.2.4 dst is 1.1.2.5', 'ipv6 src is CDCD:910A:2222:5498:8475:1111:3900:15= 15 dst is CDCD:910A:2222:5498:8475:1111:3900:2020')=0D + )=0D + for element in tvs_mac_ipv4_gre_ipv= 4_gtpu_ipv4]=0D +=0D +tvs_mac_ipv4_gre_ipv4_gtpu_ipv6_udp =3D [eval(str(element).replace('gtpu_i= pv4', 'gtpu_ipv6')=0D + .replace('eh_ipv4', 'e= h_ipv6')=0D + .replace('ul_ipv4', 'u= l_ipv6')=0D + .replace('dl_ipv4', 'd= l_ipv6')=0D + .replace('GTP_U_Header= ()/IPv6', 'GTP_U_Header()/IP')=0D + .replace('GTPPDUSessio= nContainer()/IPv6', 'GTPPDUSessionContainer()/IP')=0D + .replace('QFI=3D0x34)/= IPv6', 'QFI=3D0x34)/IP')=0D + .replace('IP(src=3D"1.= 1.2.4", dst=3D"1.1.2.5")', 'IPv6(src=3D"CDCD:910A:2222:5498:8475:1111:3900:= 1515",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2020")')=0D + .replace('IP(src=3D"1.= 1.2.4", dst=3D"1.1.2.15")', 'IPv6(src=3D"CDCD:910A:2222:5498:8475:1111:3900= :1515",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2021")')=0D + .replace('IP(src=3D"1.= 1.2.14", dst=3D"1.1.2.5")', 'IPv6(src=3D"CDCD:910A:2222:5498:8475:1111:3900= :1516",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2020")')=0D + .replace('ipv4 src is = 1.1.2.4 dst is 1.1.2.5', 'ipv6 src is CDCD:910A:2222:5498:8475:1111:3900:15= 15 dst is CDCD:910A:2222:5498:8475:1111:3900:2020')=0D + )=0D + for element in tvs_mac_ipv4_gre_ipv= 4_gtpu_ipv4_udp]=0D +=0D +tvs_mac_ipv4_gre_ipv4_gtpu_ipv6_tcp =3D [eval(str(element).replace('gtpu_i= pv4', 'gtpu_ipv6')=0D + .replace('eh_ipv4', 'e= h_ipv6')=0D + .replace('ul_ipv4', 'u= l_ipv6')=0D + .replace('dl_ipv4', 'd= l_ipv6')=0D + .replace('GTP_U_Header= ()/IPv6', 'GTP_U_Header()/IP')=0D + .replace('GTPPDUSessio= nContainer()/IPv6', 'GTPPDUSessionContainer()/IP')=0D + .replace('QFI=3D0x34)/= IPv6', 'QFI=3D0x34)/IP')=0D + .replace('IP(src=3D"1.= 1.2.4", dst=3D"1.1.2.5")', 'IPv6(src=3D"CDCD:910A:2222:5498:8475:1111:3900:= 1515",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2020")')=0D + .replace('IP(src=3D"1.= 1.2.4", dst=3D"1.1.2.15")', 'IPv6(src=3D"CDCD:910A:2222:5498:8475:1111:3900= :1515",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2021")')=0D + .replace('IP(src=3D"1.= 1.2.14", dst=3D"1.1.2.5")', 'IPv6(src=3D"CDCD:910A:2222:5498:8475:1111:3900= :1516",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2020")')=0D + .replace('ipv4 src is = 1.1.2.4 dst is 1.1.2.5', 'ipv6 src is CDCD:910A:2222:5498:8475:1111:3900:15= 15 dst is CDCD:910A:2222:5498:8475:1111:3900:2020')=0D + )=0D + for element in tvs_mac_ipv4_gre_ipv= 4_gtpu_ipv4_tcp]=0D +=0D +tvs_mac_ipv4_gre_ipv4_gtpu_eh_ipv6 =3D [eval(str(element).replace('gtpu_ip= v4', 'gtpu_ipv6')=0D + .replace('eh_ipv4', 'e= h_ipv6')=0D + .replace('ul_ipv4', 'u= l_ipv6')=0D + .replace('dl_ipv4', 'd= l_ipv6')=0D + .replace('GTP_U_Header= ()/IPv6', 'GTP_U_Header()/IP')=0D + .replace('GTPPDUSessio= nContainer()/IPv6', 'GTPPDUSessionContainer()/IP')=0D + .replace('QFI=3D0x34)/= IPv6', 'QFI=3D0x34)/IP')=0D + .replace('IP(src=3D"1.= 1.2.4", dst=3D"1.1.2.5")', 'IPv6(src=3D"CDCD:910A:2222:5498:8475:1111:3900:= 1515",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2020")')=0D + .replace('IP(src=3D"1.= 1.2.4", dst=3D"1.1.2.15")', 'IPv6(src=3D"CDCD:910A:2222:5498:8475:1111:3900= :1515",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2021")')=0D + .replace('IP(src=3D"1.= 1.2.14", dst=3D"1.1.2.5")', 'IPv6(src=3D"CDCD:910A:2222:5498:8475:1111:3900= :1516",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2020")')=0D + .replace('ipv4 src is = 1.1.2.4 dst is 1.1.2.5', 'ipv6 src is CDCD:910A:2222:5498:8475:1111:3900:15= 15 dst is CDCD:910A:2222:5498:8475:1111:3900:2020')=0D + )=0D + for element in tvs_mac_ipv4_gre_ipv= 4_gtpu_eh_ipv4]=0D +=0D +tvs_mac_ipv4_gre_ipv4_gtpu_eh_ipv6_udp =3D [eval(str(element).replace('gtp= u_ipv4', 'gtpu_ipv6')=0D + .replace('eh_ipv4', 'e= h_ipv6')=0D + .replace('ul_ipv4', 'u= l_ipv6')=0D + .replace('dl_ipv4', 'd= l_ipv6')=0D + .replace('GTP_U_Header= ()/IPv6', 'GTP_U_Header()/IP')=0D + .replace('GTPPDUSessio= nContainer()/IPv6', 'GTPPDUSessionContainer()/IP')=0D + .replace('QFI=3D0x34)/= IPv6', 'QFI=3D0x34)/IP')=0D + .replace('IP(src=3D"1.= 1.2.4", dst=3D"1.1.2.5")', 'IPv6(src=3D"CDCD:910A:2222:5498:8475:1111:3900:= 1515",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2020")')=0D + .replace('IP(src=3D"1.= 1.2.4", dst=3D"1.1.2.15")', 'IPv6(src=3D"CDCD:910A:2222:5498:8475:1111:3900= :1515",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2021")')=0D + .replace('IP(src=3D"1.= 1.2.14", dst=3D"1.1.2.5")', 'IPv6(src=3D"CDCD:910A:2222:5498:8475:1111:3900= :1516",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2020")')=0D + .replace('ipv4 src is = 1.1.2.4 dst is 1.1.2.5', 'ipv6 src is CDCD:910A:2222:5498:8475:1111:3900:15= 15 dst is CDCD:910A:2222:5498:8475:1111:3900:2020')=0D + )=0D + for element in tvs_mac_ipv4_gre_ipv= 4_gtpu_eh_ipv4_udp]=0D +=0D +tvs_mac_ipv4_gre_ipv4_gtpu_eh_ipv6_tcp =3D [eval(str(element).replace('gtp= u_ipv4', 'gtpu_ipv6')=0D + .replace('eh_ipv4', 'e= h_ipv6')=0D + .replace('ul_ipv4', 'u= l_ipv6')=0D + .replace('dl_ipv4', 'd= l_ipv6')=0D + .replace('GTP_U_Header= ()/IPv6', 'GTP_U_Header()/IP')=0D + .replace('GTPPDUSessio= nContainer()/IPv6', 'GTPPDUSessionContainer()/IP')=0D + .replace('QFI=3D0x34)/= IPv6', 'QFI=3D0x34)/IP')=0D + .replace('IP(src=3D"1.= 1.2.4", dst=3D"1.1.2.5")', 'IPv6(src=3D"CDCD:910A:2222:5498:8475:1111:3900:= 1515",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2020")')=0D + .replace('IP(src=3D"1.= 1.2.4", dst=3D"1.1.2.15")', 'IPv6(src=3D"CDCD:910A:2222:5498:8475:1111:3900= :1515",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2021")')=0D + .replace('IP(src=3D"1.= 1.2.14", dst=3D"1.1.2.5")', 'IPv6(src=3D"CDCD:910A:2222:5498:8475:1111:3900= :1516",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2020")')=0D + .replace('ipv4 src is = 1.1.2.4 dst is 1.1.2.5', 'ipv6 src is CDCD:910A:2222:5498:8475:1111:3900:15= 15 dst is CDCD:910A:2222:5498:8475:1111:3900:2020')=0D + )=0D + for element in tvs_mac_ipv4_gre_ipv= 4_gtpu_eh_ipv4_tcp]=0D +=0D +tvs_mac_ipv4_gre_ipv4_gtpu_ul_ipv6 =3D [eval(str(element).replace('gtpu_ip= v4', 'gtpu_ipv6')=0D + .replace('eh_ipv4', 'e= h_ipv6')=0D + .replace('ul_ipv4', 'u= l_ipv6')=0D + .replace('dl_ipv4', 'd= l_ipv6')=0D + .replace('GTP_U_Header= ()/IPv6', 'GTP_U_Header()/IP')=0D + .replace('GTPPDUSessio= nContainer()/IPv6', 'GTPPDUSessionContainer()/IP')=0D + .replace('QFI=3D0x34)/= IPv6', 'QFI=3D0x34)/IP')=0D + .replace('IP(src=3D"1.= 1.2.4", dst=3D"1.1.2.5")', 'IPv6(src=3D"CDCD:910A:2222:5498:8475:1111:3900:= 1515",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2020")')=0D + .replace('IP(src=3D"1.= 1.2.4", dst=3D"1.1.2.15")', 'IPv6(src=3D"CDCD:910A:2222:5498:8475:1111:3900= :1515",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2021")')=0D + .replace('IP(src=3D"1.= 1.2.14", dst=3D"1.1.2.5")', 'IPv6(src=3D"CDCD:910A:2222:5498:8475:1111:3900= :1516",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2020")')=0D + .replace('ipv4 src is = 1.1.2.4 dst is 1.1.2.5', 'ipv6 src is CDCD:910A:2222:5498:8475:1111:3900:15= 15 dst is CDCD:910A:2222:5498:8475:1111:3900:2020')=0D + )=0D + for element in tvs_mac_ipv4_gre_ipv= 4_gtpu_ul_ipv4]=0D +=0D +tvs_mac_ipv4_gre_ipv4_gtpu_ul_ipv6_udp =3D [eval(str(element).replace('gtp= u_ipv4', 'gtpu_ipv6')=0D + .replace('eh_ipv4', 'e= h_ipv6')=0D + .replace('ul_ipv4', 'u= l_ipv6')=0D + .replace('dl_ipv4', 'd= l_ipv6')=0D + .replace('GTP_U_Header= ()/IPv6', 'GTP_U_Header()/IP')=0D + .replace('GTPPDUSessio= nContainer()/IPv6', 'GTPPDUSessionContainer()/IP')=0D + .replace('QFI=3D0x34)/= IPv6', 'QFI=3D0x34)/IP')=0D + .replace('IP(src=3D"1.= 1.2.4", dst=3D"1.1.2.5")', 'IPv6(src=3D"CDCD:910A:2222:5498:8475:1111:3900:= 1515",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2020")')=0D + .replace('IP(src=3D"1.= 1.2.4", dst=3D"1.1.2.15")', 'IPv6(src=3D"CDCD:910A:2222:5498:8475:1111:3900= :1515",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2021")')=0D + .replace('IP(src=3D"1.= 1.2.14", dst=3D"1.1.2.5")', 'IPv6(src=3D"CDCD:910A:2222:5498:8475:1111:3900= :1516",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2020")')=0D + .replace('ipv4 src is = 1.1.2.4 dst is 1.1.2.5', 'ipv6 src is CDCD:910A:2222:5498:8475:1111:3900:15= 15 dst is CDCD:910A:2222:5498:8475:1111:3900:2020')=0D + )=0D + for element in tvs_mac_ipv4_gre_ipv= 4_gtpu_ul_ipv4_udp]=0D +=0D +tvs_mac_ipv4_gre_ipv4_gtpu_ul_ipv6_tcp =3D [eval(str(element).replace('gtp= u_ipv4', 'gtpu_ipv6')=0D + .replace('eh_ipv4', 'e= h_ipv6')=0D + .replace('ul_ipv4', 'u= l_ipv6')=0D + .replace('dl_ipv4', 'd= l_ipv6')=0D + .replace('GTP_U_Header= ()/IPv6', 'GTP_U_Header()/IP')=0D + .replace('GTPPDUSessio= nContainer()/IPv6', 'GTPPDUSessionContainer()/IP')=0D + .replace('QFI=3D0x34)/= IPv6', 'QFI=3D0x34)/IP')=0D + .replace('IP(src=3D"1.= 1.2.4", dst=3D"1.1.2.5")', 'IPv6(src=3D"CDCD:910A:2222:5498:8475:1111:3900:= 1515",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2020")')=0D + .replace('IP(src=3D"1.= 1.2.4", dst=3D"1.1.2.15")', 'IPv6(src=3D"CDCD:910A:2222:5498:8475:1111:3900= :1515",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2021")')=0D + .replace('IP(src=3D"1.= 1.2.14", dst=3D"1.1.2.5")', 'IPv6(src=3D"CDCD:910A:2222:5498:8475:1111:3900= :1516",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2020")')=0D + .replace('ipv4 src is = 1.1.2.4 dst is 1.1.2.5', 'ipv6 src is CDCD:910A:2222:5498:8475:1111:3900:15= 15 dst is CDCD:910A:2222:5498:8475:1111:3900:2020')=0D + )=0D + for element in tvs_mac_ipv4_gre_ipv= 4_gtpu_ul_ipv4_tcp]=0D +=0D +tvs_mac_ipv4_gre_ipv4_gtpu_dl_ipv6 =3D [eval(str(element).replace('gtpu_ip= v4', 'gtpu_ipv6')=0D + .replace('eh_ipv4', 'e= h_ipv6')=0D + .replace('ul_ipv4', 'u= l_ipv6')=0D + .replace('dl_ipv4', 'd= l_ipv6')=0D + .replace('GTP_U_Header= ()/IPv6', 'GTP_U_Header()/IP')=0D + .replace('GTPPDUSessio= nContainer()/IPv6', 'GTPPDUSessionContainer()/IP')=0D + .replace('QFI=3D0x34)/= IPv6', 'QFI=3D0x34)/IP')=0D + .replace('IP(src=3D"1.= 1.2.4", dst=3D"1.1.2.5")', 'IPv6(src=3D"CDCD:910A:2222:5498:8475:1111:3900:= 1515",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2020")')=0D + .replace('IP(src=3D"1.= 1.2.4", dst=3D"1.1.2.15")', 'IPv6(src=3D"CDCD:910A:2222:5498:8475:1111:3900= :1515",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2021")')=0D + .replace('IP(src=3D"1.= 1.2.14", dst=3D"1.1.2.5")', 'IPv6(src=3D"CDCD:910A:2222:5498:8475:1111:3900= :1516",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2020")')=0D + .replace('ipv4 src is = 1.1.2.4 dst is 1.1.2.5', 'ipv6 src is CDCD:910A:2222:5498:8475:1111:3900:15= 15 dst is CDCD:910A:2222:5498:8475:1111:3900:2020')=0D + )=0D + for element in tvs_mac_ipv4_gre_ipv= 4_gtpu_dl_ipv4]=0D +=0D +tvs_mac_ipv4_gre_ipv4_gtpu_dl_ipv6_udp =3D [eval(str(element).replace('gtp= u_ipv4', 'gtpu_ipv6')=0D + .replace('eh_ipv4', 'e= h_ipv6')=0D + .replace('ul_ipv4', 'u= l_ipv6')=0D + .replace('dl_ipv4', 'd= l_ipv6')=0D + .replace('GTP_U_Header= ()/IPv6', 'GTP_U_Header()/IP')=0D + .replace('GTPPDUSessio= nContainer()/IPv6', 'GTPPDUSessionContainer()/IP')=0D + .replace('QFI=3D0x34)/= IPv6', 'QFI=3D0x34)/IP')=0D + .replace('IP(src=3D"1.= 1.2.4", dst=3D"1.1.2.5")', 'IPv6(src=3D"CDCD:910A:2222:5498:8475:1111:3900:= 1515",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2020")')=0D + .replace('IP(src=3D"1.= 1.2.4", dst=3D"1.1.2.15")', 'IPv6(src=3D"CDCD:910A:2222:5498:8475:1111:3900= :1515",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2021")')=0D + .replace('IP(src=3D"1.= 1.2.14", dst=3D"1.1.2.5")', 'IPv6(src=3D"CDCD:910A:2222:5498:8475:1111:3900= :1516",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2020")')=0D + .replace('ipv4 src is = 1.1.2.4 dst is 1.1.2.5', 'ipv6 src is CDCD:910A:2222:5498:8475:1111:3900:15= 15 dst is CDCD:910A:2222:5498:8475:1111:3900:2020')=0D + )=0D + for element in tvs_mac_ipv4_gre_ipv= 4_gtpu_dl_ipv4_udp]=0D +=0D +tvs_mac_ipv4_gre_ipv4_gtpu_dl_ipv6_tcp =3D [eval(str(element).replace('gtp= u_ipv4', 'gtpu_ipv6')=0D + .replace('eh_ipv4', 'e= h_ipv6')=0D + .replace('ul_ipv4', 'u= l_ipv6')=0D + .replace('dl_ipv4', 'd= l_ipv6')=0D + .replace('GTP_U_Header= ()/IPv6', 'GTP_U_Header()/IP')=0D + .replace('GTPPDUSessio= nContainer()/IPv6', 'GTPPDUSessionContainer()/IP')=0D + .replace('QFI=3D0x34)/= IPv6', 'QFI=3D0x34)/IP')=0D + .replace('IP(src=3D"1.= 1.2.4", dst=3D"1.1.2.5")', 'IPv6(src=3D"CDCD:910A:2222:5498:8475:1111:3900:= 1515",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2020")')=0D + .replace('IP(src=3D"1.= 1.2.4", dst=3D"1.1.2.15")', 'IPv6(src=3D"CDCD:910A:2222:5498:8475:1111:3900= :1515",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2021")')=0D + .replace('IP(src=3D"1.= 1.2.14", dst=3D"1.1.2.5")', 'IPv6(src=3D"CDCD:910A:2222:5498:8475:1111:3900= :1516",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2020")')=0D + .replace('ipv4 src is = 1.1.2.4 dst is 1.1.2.5', 'ipv6 src is CDCD:910A:2222:5498:8475:1111:3900:15= 15 dst is CDCD:910A:2222:5498:8475:1111:3900:2020')=0D + )=0D + for element in tvs_mac_ipv4_gre_ipv= 4_gtpu_dl_ipv4_tcp]=0D +=0D +tvs_mac_ipv6_gre_ipv6_gtpu_ipv4 =3D [eval(str(element).replace('mac_ipv4',= 'mac_ipv6')=0D + .replace('IP()/GRE= ', 'IP1()/GRE')=0D + .replace('IPv6()/G= RE', 'IPv66()/GRE')=0D + .replace('IP1()/GR= E', 'IPv6()/GRE')=0D + .replace('IPv66()/= GRE', 'IP()/GRE')=0D + .replace('ipv4 / g= re', 'ipv6 / gre')=0D + )=0D + for element in tvs_mac_ipv4_gre_ipv= 6_gtpu_ipv4]=0D +=0D +tvs_mac_ipv6_gre_ipv6_gtpu_ipv4_udp =3D [eval(str(element).replace('mac_ip= v4', 'mac_ipv6')=0D + .replace('IP()/GRE= ', 'IP1()/GRE')=0D + .replace('IPv6()/G= RE', 'IPv66()/GRE')=0D + .replace('IP1()/GR= E', 'IPv6()/GRE')=0D + .replace('IPv66()/= GRE', 'IP()/GRE')=0D + .replace('ipv4 / g= re', 'ipv6 / gre')=0D + )=0D + for element in tvs_mac_ipv4_gre_ipv= 6_gtpu_ipv4_udp]=0D +=0D +tvs_mac_ipv6_gre_ipv6_gtpu_ipv4_tcp =3D [eval(str(element).replace('mac_ip= v4', 'mac_ipv6')=0D + .replace('IP()/GRE= ', 'IP1()/GRE')=0D + .replace('IPv6()/G= RE', 'IPv66()/GRE')=0D + .replace('IP1()/GR= E', 'IPv6()/GRE')=0D + .replace('IPv66()/= GRE', 'IP()/GRE')=0D + .replace('ipv4 / g= re', 'ipv6 / gre')=0D + )=0D + for element in tvs_mac_ipv4_gre_ipv= 6_gtpu_ipv4_tcp]=0D +=0D +tvs_mac_ipv6_gre_ipv6_gtpu_eh_ipv4 =3D [eval(str(element).replace('mac_ipv= 4', 'mac_ipv6')=0D + .replace('IP()/GRE= ', 'IP1()/GRE')=0D + .replace('IPv6()/G= RE', 'IPv66()/GRE')=0D + .replace('IP1()/GR= E', 'IPv6()/GRE')=0D + .replace('IPv66()/= GRE', 'IP()/GRE')=0D + .replace('ipv4 / g= re', 'ipv6 / gre')=0D + )=0D + for element in tvs_mac_ipv4_gre_ipv= 6_gtpu_eh_ipv4]=0D +=0D +tvs_mac_ipv6_gre_ipv6_gtpu_eh_ipv4_udp =3D [eval(str(element).replace('mac= _ipv4', 'mac_ipv6')=0D + .replace('IP()/GRE= ', 'IP1()/GRE')=0D + .replace('IPv6()/G= RE', 'IPv66()/GRE')=0D + .replace('IP1()/GR= E', 'IPv6()/GRE')=0D + .replace('IPv66()/= GRE', 'IP()/GRE')=0D + .replace('ipv4 / g= re', 'ipv6 / gre')=0D + )=0D + for element in tvs_mac_ipv4_gre_ipv= 6_gtpu_eh_ipv4_udp]=0D +=0D +tvs_mac_ipv6_gre_ipv6_gtpu_eh_ipv4_tcp =3D [eval(str(element).replace('mac= _ipv4', 'mac_ipv6')=0D + .replace('IP()/GRE= ', 'IP1()/GRE')=0D + .replace('IPv6()/G= RE', 'IPv66()/GRE')=0D + .replace('IP1()/GR= E', 'IPv6()/GRE')=0D + .replace('IPv66()/= GRE', 'IP()/GRE')=0D + .replace('ipv4 / g= re', 'ipv6 / gre')=0D + )=0D + for element in tvs_mac_ipv4_gre_ipv= 6_gtpu_eh_ipv4_tcp]=0D +=0D +tvs_mac_ipv6_gre_ipv6_gtpu_ul_ipv4 =3D [eval(str(element).replace('mac_ipv= 4', 'mac_ipv6')=0D + .replace('IP()/GRE= ', 'IP1()/GRE')=0D + .replace('IPv6()/G= RE', 'IPv66()/GRE')=0D + .replace('IP1()/GR= E', 'IPv6()/GRE')=0D + .replace('IPv66()/= GRE', 'IP()/GRE')=0D + .replace('ipv4 / g= re', 'ipv6 / gre')=0D + )=0D + for element in tvs_mac_ipv4_gre_ipv= 6_gtpu_ul_ipv4]=0D +=0D +tvs_mac_ipv6_gre_ipv6_gtpu_ul_ipv4_udp =3D [eval(str(element).replace('mac= _ipv4', 'mac_ipv6')=0D + .replace('IP()/GRE= ', 'IP1()/GRE')=0D + .replace('IPv6()/G= RE', 'IPv66()/GRE')=0D + .replace('IP1()/GR= E', 'IPv6()/GRE')=0D + .replace('IPv66()/= GRE', 'IP()/GRE')=0D + .replace('ipv4 / g= re', 'ipv6 / gre')=0D + )=0D + for element in tvs_mac_ipv4_gre_ipv= 6_gtpu_ul_ipv4_udp]=0D +=0D +tvs_mac_ipv6_gre_ipv6_gtpu_ul_ipv4_tcp =3D [eval(str(element).replace('mac= _ipv4', 'mac_ipv6')=0D + .replace('IP()/GRE= ', 'IP1()/GRE')=0D + .replace('IPv6()/G= RE', 'IPv66()/GRE')=0D + .replace('IP1()/GR= E', 'IPv6()/GRE')=0D + .replace('IPv66()/= GRE', 'IP()/GRE')=0D + .replace('ipv4 / g= re', 'ipv6 / gre')=0D + )=0D + for element in tvs_mac_ipv4_gre_ipv= 6_gtpu_ul_ipv4_tcp]=0D +=0D +tvs_mac_ipv6_gre_ipv6_gtpu_dl_ipv4 =3D [eval(str(element).replace('mac_ipv= 4', 'mac_ipv6')=0D + .replace('IP()/GRE= ', 'IP1()/GRE')=0D + .replace('IPv6()/G= RE', 'IPv66()/GRE')=0D + .replace('IP1()/GR= E', 'IPv6()/GRE')=0D + .replace('IPv66()/= GRE', 'IP()/GRE')=0D + .replace('ipv4 / g= re', 'ipv6 / gre')=0D + )=0D + for element in tvs_mac_ipv4_gre_ipv= 6_gtpu_dl_ipv4]=0D +=0D +tvs_mac_ipv6_gre_ipv6_gtpu_dl_ipv4_udp =3D [eval(str(element).replace('mac= _ipv4', 'mac_ipv6')=0D + .replace('IP()/GRE= ', 'IP1()/GRE')=0D + .replace('IPv6()/G= RE', 'IPv66()/GRE')=0D + .replace('IP1()/GR= E', 'IPv6()/GRE')=0D + .replace('IPv66()/= GRE', 'IP()/GRE')=0D + .replace('ipv4 / g= re', 'ipv6 / gre')=0D + )=0D + for element in tvs_mac_ipv4_gre_ipv= 6_gtpu_dl_ipv4_udp]=0D +=0D +tvs_mac_ipv6_gre_ipv6_gtpu_dl_ipv4_tcp =3D [eval(str(element).replace('mac= _ipv4', 'mac_ipv6')=0D + .replace('IP()/GRE= ', 'IP1()/GRE')=0D + .replace('IPv6()/G= RE', 'IPv66()/GRE')=0D + .replace('IP1()/GR= E', 'IPv6()/GRE')=0D + .replace('IPv66()/= GRE', 'IP()/GRE')=0D + .replace('ipv4 / g= re', 'ipv6 / gre')=0D + )=0D + for element in tvs_mac_ipv4_gre_ipv= 6_gtpu_dl_ipv4_tcp]=0D +=0D +tvs_mac_ipv4_gre_ipv6_gtpu_ipv6 =3D [eval(str(element).replace('gre_ipv4',= 'gre_ipv6')=0D + .replace('GRE()/IP= ()', 'GRE()/IP2()')=0D + .replace('GRE()/IP= v6()', 'GRE()/IPv62()')=0D + .replace('GRE()/IP= 2()', 'GRE()/IPv6()')=0D + .replace('GRE()/IP= v62()', 'GRE()/IP()')=0D + .replace('gre / ip= v4', 'gre / ipv6')=0D + )=0D + for element in tvs_mac_ipv4_gre_ipv= 4_gtpu_ipv6]=0D +=0D +tvs_mac_ipv4_gre_ipv6_gtpu_ipv6_udp =3D [eval(str(element).replace('gre_ip= v4', 'gre_ipv6')=0D + .replace('GRE()/IP= ()', 'GRE()/IP2()')=0D + .replace('GRE()/IP= v6()', 'GRE()/IPv62()')=0D + .replace('GRE()/IP= 2()', 'GRE()/IPv6()')=0D + .replace('GRE()/IP= v62()', 'GRE()/IP()')=0D + .replace('gre / ip= v4', 'gre / ipv6')=0D + )=0D + for element in tvs_mac_ipv4_gre_ipv= 4_gtpu_ipv6_udp]=0D +=0D +tvs_mac_ipv4_gre_ipv6_gtpu_ipv6_tcp =3D [eval(str(element).replace('gre_ip= v4', 'gre_ipv6')=0D + .replace('GRE()/IP= ()', 'GRE()/IP2()')=0D + .replace('GRE()/IP= v6()', 'GRE()/IPv62()')=0D + .replace('GRE()/IP= 2()', 'GRE()/IPv6()')=0D + .replace('GRE()/IP= v62()', 'GRE()/IP()')=0D + .replace('gre / ip= v4', 'gre / ipv6')=0D + )=0D + for element in tvs_mac_ipv4_gre_ipv= 4_gtpu_ipv6_tcp]=0D +=0D +tvs_mac_ipv4_gre_ipv6_gtpu_eh_ipv6 =3D [eval(str(element).replace('gre_ipv= 4', 'gre_ipv6')=0D + .replace('GRE()/IP= ()', 'GRE()/IP2()')=0D + .replace('GRE()/IP= v6()', 'GRE()/IPv62()')=0D + .replace('GRE()/IP= 2()', 'GRE()/IPv6()')=0D + .replace('GRE()/IP= v62()', 'GRE()/IP()')=0D + .replace('gre / ip= v4', 'gre / ipv6')=0D + )=0D + for element in tvs_mac_ipv4_gre_ipv= 4_gtpu_eh_ipv6]=0D +=0D +tvs_mac_ipv4_gre_ipv6_gtpu_eh_ipv6_udp =3D [eval(str(element).replace('gre= _ipv4', 'gre_ipv6')=0D + .replace('GRE()/IP= ()', 'GRE()/IP2()')=0D + .replace('GRE()/IP= v6()', 'GRE()/IPv62()')=0D + .replace('GRE()/IP= 2()', 'GRE()/IPv6()')=0D + .replace('GRE()/IP= v62()', 'GRE()/IP()')=0D + .replace('gre / ip= v4', 'gre / ipv6')=0D + )=0D + for element in tvs_mac_ipv4_gre_ipv= 4_gtpu_eh_ipv6_udp]=0D +=0D +tvs_mac_ipv4_gre_ipv6_gtpu_eh_ipv6_tcp =3D [eval(str(element).replace('gre= _ipv4', 'gre_ipv6')=0D + .replace('GRE()/IP= ()', 'GRE()/IP2()')=0D + .replace('GRE()/IP= v6()', 'GRE()/IPv62()')=0D + .replace('GRE()/IP= 2()', 'GRE()/IPv6()')=0D + .replace('GRE()/IP= v62()', 'GRE()/IP()')=0D + .replace('gre / ip= v4', 'gre / ipv6')=0D + )=0D + for element in tvs_mac_ipv4_gre_ipv= 4_gtpu_eh_ipv6_tcp]=0D +=0D +tvs_mac_ipv4_gre_ipv6_gtpu_ul_ipv6 =3D [eval(str(element).replace('gre_ipv= 4', 'gre_ipv6')=0D + .replace('GRE()/IP= ()', 'GRE()/IP2()')=0D + .replace('GRE()/IP= v6()', 'GRE()/IPv62()')=0D + .replace('GRE()/IP= 2()', 'GRE()/IPv6()')=0D + .replace('GRE()/IP= v62()', 'GRE()/IP()')=0D + .replace('gre / ip= v4', 'gre / ipv6')=0D + )=0D + for element in tvs_mac_ipv4_gre_ipv= 4_gtpu_ul_ipv6]=0D +=0D +tvs_mac_ipv4_gre_ipv6_gtpu_ul_ipv6_udp =3D [eval(str(element).replace('gre= _ipv4', 'gre_ipv6')=0D + .replace('GRE()/IP= ()', 'GRE()/IP2()')=0D + .replace('GRE()/IP= v6()', 'GRE()/IPv62()')=0D + .replace('GRE()/IP= 2()', 'GRE()/IPv6()')=0D + .replace('GRE()/IP= v62()', 'GRE()/IP()')=0D + .replace('gre / ip= v4', 'gre / ipv6')=0D + )=0D + for element in tvs_mac_ipv4_gre_ipv= 4_gtpu_ul_ipv6_udp]=0D +=0D +tvs_mac_ipv4_gre_ipv6_gtpu_ul_ipv6_tcp =3D [eval(str(element).replace('gre= _ipv4', 'gre_ipv6')=0D + .replace('GRE()/IP= ()', 'GRE()/IP2()')=0D + .replace('GRE()/IP= v6()', 'GRE()/IPv62()')=0D + .replace('GRE()/IP= 2()', 'GRE()/IPv6()')=0D + .replace('GRE()/IP= v62()', 'GRE()/IP()')=0D + .replace('gre / ip= v4', 'gre / ipv6')=0D + )=0D + for element in tvs_mac_ipv4_gre_ipv= 4_gtpu_ul_ipv6_tcp]=0D +=0D +tvs_mac_ipv4_gre_ipv6_gtpu_dl_ipv6 =3D [eval(str(element).replace('gre_ipv= 4', 'gre_ipv6')=0D + .replace('GRE()/IP= ()', 'GRE()/IP2()')=0D + .replace('GRE()/IP= v6()', 'GRE()/IPv62()')=0D + .replace('GRE()/IP= 2()', 'GRE()/IPv6()')=0D + .replace('GRE()/IP= v62()', 'GRE()/IP()')=0D + .replace('gre / ip= v4', 'gre / ipv6')=0D + )=0D + for element in tvs_mac_ipv4_gre_ipv= 4_gtpu_dl_ipv6]=0D +=0D +tvs_mac_ipv4_gre_ipv6_gtpu_dl_ipv6_udp =3D [eval(str(element).replace('gre= _ipv4', 'gre_ipv6')=0D + .replace('GRE()/IP= ()', 'GRE()/IP2()')=0D + .replace('GRE()/IP= v6()', 'GRE()/IPv62()')=0D + .replace('GRE()/IP= 2()', 'GRE()/IPv6()')=0D + .replace('GRE()/IP= v62()', 'GRE()/IP()')=0D + .replace('gre / ip= v4', 'gre / ipv6')=0D + )=0D + for element in tvs_mac_ipv4_gre_ipv= 4_gtpu_dl_ipv6_udp]=0D +=0D +tvs_mac_ipv4_gre_ipv6_gtpu_dl_ipv6_tcp =3D [eval(str(element).replace('gre= _ipv4', 'gre_ipv6')=0D + .replace('GRE()/IP= ()', 'GRE()/IP2()')=0D + .replace('GRE()/IP= v6()', 'GRE()/IPv62()')=0D + .replace('GRE()/IP= 2()', 'GRE()/IPv6()')=0D + .replace('GRE()/IP= v62()', 'GRE()/IP()')=0D + .replace('gre / ip= v4', 'gre / ipv6')=0D + )=0D + for element in tvs_mac_ipv4_gre_ipv= 4_gtpu_dl_ipv6_tcp]=0D +=0D +tvs_mac_ipv6_gre_ipv4_gtpu_ipv6 =3D [eval(str(element).replace('mac_ipv4',= 'mac_ipv6')=0D + .replace('IP()/GRE= ', 'IP1()/GRE')=0D + .replace('IPv6()/G= RE', 'IPv66()/GRE')=0D + .replace('IP1()/GR= E', 'IPv6()/GRE')=0D + .replace('IPv66()/= GRE', 'IP()/GRE')=0D + .replace('ipv4 / g= re', 'ipv6 / gre')=0D + )=0D + for element in tvs_mac_ipv4_gre_ipv= 4_gtpu_ipv6]=0D +=0D +tvs_mac_ipv6_gre_ipv4_gtpu_ipv6_udp =3D [eval(str(element).replace('mac_ip= v4', 'mac_ipv6')=0D + .replace('IP()/GRE= ', 'IP1()/GRE')=0D + .replace('IPv6()/G= RE', 'IPv66()/GRE')=0D + .replace('IP1()/GR= E', 'IPv6()/GRE')=0D + .replace('IPv66()/= GRE', 'IP()/GRE')=0D + .replace('ipv4 / g= re', 'ipv6 / gre')=0D + )=0D + for element in tvs_mac_ipv4_gre_ipv= 4_gtpu_ipv6_udp]=0D +=0D +tvs_mac_ipv6_gre_ipv4_gtpu_ipv6_tcp =3D [eval(str(element).replace('mac_ip= v4', 'mac_ipv6')=0D + .replace('IP()/GRE= ', 'IP1()/GRE')=0D + .replace('IPv6()/G= RE', 'IPv66()/GRE')=0D + .replace('IP1()/GR= E', 'IPv6()/GRE')=0D + .replace('IPv66()/= GRE', 'IP()/GRE')=0D + .replace('ipv4 / g= re', 'ipv6 / gre')=0D + )=0D + for element in tvs_mac_ipv4_gre_ipv= 4_gtpu_ipv6_tcp]=0D +=0D +tvs_mac_ipv6_gre_ipv4_gtpu_eh_ipv6 =3D [eval(str(element).replace('mac_ipv= 4', 'mac_ipv6')=0D + .replace('IP()/GRE= ', 'IP1()/GRE')=0D + .replace('IPv6()/G= RE', 'IPv66()/GRE')=0D + .replace('IP1()/GR= E', 'IPv6()/GRE')=0D + .replace('IPv66()/= GRE', 'IP()/GRE')=0D + .replace('ipv4 / g= re', 'ipv6 / gre')=0D + )=0D + for element in tvs_mac_ipv4_gre_ipv= 4_gtpu_eh_ipv6]=0D +=0D +tvs_mac_ipv6_gre_ipv4_gtpu_eh_ipv6_udp =3D [eval(str(element).replace('mac= _ipv4', 'mac_ipv6')=0D + .replace('IP()/GRE= ', 'IP1()/GRE')=0D + .replace('IPv6()/G= RE', 'IPv66()/GRE')=0D + .replace('IP1()/GR= E', 'IPv6()/GRE')=0D + .replace('IPv66()/= GRE', 'IP()/GRE')=0D + .replace('ipv4 / g= re', 'ipv6 / gre')=0D + )=0D + for element in tvs_mac_ipv4_gre_ipv= 4_gtpu_eh_ipv6_udp]=0D +=0D +tvs_mac_ipv6_gre_ipv4_gtpu_eh_ipv6_tcp =3D [eval(str(element).replace('mac= _ipv4', 'mac_ipv6')=0D + .replace('IP()/GRE= ', 'IP1()/GRE')=0D + .replace('IPv6()/G= RE', 'IPv66()/GRE')=0D + .replace('IP1()/GR= E', 'IPv6()/GRE')=0D + .replace('IPv66()/= GRE', 'IP()/GRE')=0D + .replace('ipv4 / g= re', 'ipv6 / gre')=0D + )=0D + for element in tvs_mac_ipv4_gre_ipv= 4_gtpu_eh_ipv6_tcp]=0D +=0D +tvs_mac_ipv6_gre_ipv4_gtpu_ul_ipv6 =3D [eval(str(element).replace('mac_ipv= 4', 'mac_ipv6')=0D + .replace('IP()/GRE= ', 'IP1()/GRE')=0D + .replace('IPv6()/G= RE', 'IPv66()/GRE')=0D + .replace('IP1()/GR= E', 'IPv6()/GRE')=0D + .replace('IPv66()/= GRE', 'IP()/GRE')=0D + .replace('ipv4 / g= re', 'ipv6 / gre')=0D + )=0D + for element in tvs_mac_ipv4_gre_ipv= 4_gtpu_ul_ipv6]=0D +=0D +tvs_mac_ipv6_gre_ipv4_gtpu_ul_ipv6_udp =3D [eval(str(element).replace('mac= _ipv4', 'mac_ipv6')=0D + .replace('IP()/GRE= ', 'IP1()/GRE')=0D + .replace('IPv6()/G= RE', 'IPv66()/GRE')=0D + .replace('IP1()/GR= E', 'IPv6()/GRE')=0D + .replace('IPv66()/= GRE', 'IP()/GRE')=0D + .replace('ipv4 / g= re', 'ipv6 / gre')=0D + )=0D + for element in tvs_mac_ipv4_gre_ipv= 4_gtpu_ul_ipv6_udp]=0D +=0D +tvs_mac_ipv6_gre_ipv4_gtpu_ul_ipv6_tcp =3D [eval(str(element).replace('mac= _ipv4', 'mac_ipv6')=0D + .replace('IP()/GRE= ', 'IP1()/GRE')=0D + .replace('IPv6()/G= RE', 'IPv66()/GRE')=0D + .replace('IP1()/GR= E', 'IPv6()/GRE')=0D + .replace('IPv66()/= GRE', 'IP()/GRE')=0D + .replace('ipv4 / g= re', 'ipv6 / gre')=0D + )=0D + for element in tvs_mac_ipv4_gre_ipv= 4_gtpu_ul_ipv6_tcp]=0D +=0D +tvs_mac_ipv6_gre_ipv4_gtpu_dl_ipv6 =3D [eval(str(element).replace('mac_ipv= 4', 'mac_ipv6')=0D + .replace('IP()/GRE= ', 'IP1()/GRE')=0D + .replace('IPv6()/G= RE', 'IPv66()/GRE')=0D + .replace('IP1()/GR= E', 'IPv6()/GRE')=0D + .replace('IPv66()/= GRE', 'IP()/GRE')=0D + .replace('ipv4 / g= re', 'ipv6 / gre')=0D + )=0D + for element in tvs_mac_ipv4_gre_ipv= 4_gtpu_dl_ipv6]=0D +=0D +tvs_mac_ipv6_gre_ipv4_gtpu_dl_ipv6_udp =3D [eval(str(element).replace('mac= _ipv4', 'mac_ipv6')=0D + .replace('IP()/GRE= ', 'IP1()/GRE')=0D + .replace('IPv6()/G= RE', 'IPv66()/GRE')=0D + .replace('IP1()/GR= E', 'IPv6()/GRE')=0D + .replace('IPv66()/= GRE', 'IP()/GRE')=0D + .replace('ipv4 / g= re', 'ipv6 / gre')=0D + )=0D + for element in tvs_mac_ipv4_gre_ipv= 4_gtpu_dl_ipv6_udp]=0D +=0D +tvs_mac_ipv6_gre_ipv4_gtpu_dl_ipv6_tcp =3D [eval(str(element).replace('mac= _ipv4', 'mac_ipv6')=0D + .replace('IP()/GRE= ', 'IP1()/GRE')=0D + .replace('IPv6()/G= RE', 'IPv66()/GRE')=0D + .replace('IP1()/GR= E', 'IPv6()/GRE')=0D + .replace('IPv66()/= GRE', 'IP()/GRE')=0D + .replace('ipv4 / g= re', 'ipv6 / gre')=0D + )=0D + for element in tvs_mac_ipv4_gre_ipv= 4_gtpu_dl_ipv6_tcp]=0D +=0D +tvs_mac_ipv6_gre_ipv6_gtpu_ipv6 =3D [eval(str(element).replace('mac_ipv4',= 'mac_ipv6')=0D + .replace('IP()/GRE= ', 'IP1()/GRE')=0D + .replace('IPv6()/G= RE', 'IPv66()/GRE')=0D + .replace('IP1()/GR= E', 'IPv6()/GRE')=0D + .replace('IPv66()/= GRE', 'IP()/GRE')=0D + .replace('ipv4 / g= re', 'ipv6 / gre')=0D + )=0D + for element in tvs_mac_ipv4_gre_ipv= 6_gtpu_ipv6]=0D +=0D +tvs_mac_ipv6_gre_ipv6_gtpu_ipv6_udp =3D [eval(str(element).replace('mac_ip= v4', 'mac_ipv6')=0D + .replace('IP()/GRE= ', 'IP1()/GRE')=0D + .replace('IPv6()/G= RE', 'IPv66()/GRE')=0D + .replace('IP1()/GR= E', 'IPv6()/GRE')=0D + .replace('IPv66()/= GRE', 'IP()/GRE')=0D + .replace('ipv4 / g= re', 'ipv6 / gre')=0D + )=0D + for element in tvs_mac_ipv4_gre_ipv= 6_gtpu_ipv6_udp]=0D +=0D +tvs_mac_ipv6_gre_ipv6_gtpu_ipv6_tcp =3D [eval(str(element).replace('mac_ip= v4', 'mac_ipv6')=0D + .replace('IP()/GRE= ', 'IP1()/GRE')=0D + .replace('IPv6()/G= RE', 'IPv66()/GRE')=0D + .replace('IP1()/GR= E', 'IPv6()/GRE')=0D + .replace('IPv66()/= GRE', 'IP()/GRE')=0D + .replace('ipv4 / g= re', 'ipv6 / gre')=0D + )=0D + for element in tvs_mac_ipv4_gre_ipv= 6_gtpu_ipv6_tcp]=0D +=0D +tvs_mac_ipv6_gre_ipv6_gtpu_eh_ipv6 =3D [eval(str(element).replace('mac_ipv= 4', 'mac_ipv6')=0D + .replace('IP()/GRE= ', 'IP1()/GRE')=0D + .replace('IPv6()/G= RE', 'IPv66()/GRE')=0D + .replace('IP1()/GR= E', 'IPv6()/GRE')=0D + .replace('IPv66()/= GRE', 'IP()/GRE')=0D + .replace('ipv4 / g= re', 'ipv6 / gre')=0D + )=0D + for element in tvs_mac_ipv4_gre_ipv= 6_gtpu_eh_ipv6]=0D +=0D +tvs_mac_ipv6_gre_ipv6_gtpu_eh_ipv6_udp =3D [eval(str(element).replace('mac= _ipv4', 'mac_ipv6')=0D + .replace('IP()/GRE= ', 'IP1()/GRE')=0D + .replace('IPv6()/G= RE', 'IPv66()/GRE')=0D + .replace('IP1()/GR= E', 'IPv6()/GRE')=0D + .replace('IPv66()/= GRE', 'IP()/GRE')=0D + .replace('ipv4 / g= re', 'ipv6 / gre')=0D + )=0D + for element in tvs_mac_ipv4_gre_ipv= 6_gtpu_eh_ipv6_udp]=0D +=0D +tvs_mac_ipv6_gre_ipv6_gtpu_eh_ipv6_tcp =3D [eval(str(element).replace('mac= _ipv4', 'mac_ipv6')=0D + .replace('IP()/GRE= ', 'IP1()/GRE')=0D + .replace('IPv6()/G= RE', 'IPv66()/GRE')=0D + .replace('IP1()/GR= E', 'IPv6()/GRE')=0D + .replace('IPv66()/= GRE', 'IP()/GRE')=0D + .replace('ipv4 / g= re', 'ipv6 / gre')=0D + )=0D + for element in tvs_mac_ipv4_gre_ipv= 6_gtpu_eh_ipv6_tcp]=0D +=0D +tvs_mac_ipv6_gre_ipv6_gtpu_ul_ipv6 =3D [eval(str(element).replace('mac_ipv= 4', 'mac_ipv6')=0D + .replace('IP()/GRE= ', 'IP1()/GRE')=0D + .replace('IPv6()/G= RE', 'IPv66()/GRE')=0D + .replace('IP1()/GR= E', 'IPv6()/GRE')=0D + .replace('IPv66()/= GRE', 'IP()/GRE')=0D + .replace('ipv4 / g= re', 'ipv6 / gre')=0D + )=0D + for element in tvs_mac_ipv4_gre_ipv= 6_gtpu_ul_ipv6]=0D +=0D +tvs_mac_ipv6_gre_ipv6_gtpu_ul_ipv6_udp =3D [eval(str(element).replace('mac= _ipv4', 'mac_ipv6')=0D + .replace('IP()/GRE= ', 'IP1()/GRE')=0D + .replace('IPv6()/G= RE', 'IPv66()/GRE')=0D + .replace('IP1()/GR= E', 'IPv6()/GRE')=0D + .replace('IPv66()/= GRE', 'IP()/GRE')=0D + .replace('ipv4 / g= re', 'ipv6 / gre')=0D + )=0D + for element in tvs_mac_ipv4_gre_ipv= 6_gtpu_ul_ipv6_udp]=0D +=0D +tvs_mac_ipv6_gre_ipv6_gtpu_ul_ipv6_tcp =3D [eval(str(element).replace('mac= _ipv4', 'mac_ipv6')=0D + .replace('IP()/GRE= ', 'IP1()/GRE')=0D + .replace('IPv6()/G= RE', 'IPv66()/GRE')=0D + .replace('IP1()/GR= E', 'IPv6()/GRE')=0D + .replace('IPv66()/= GRE', 'IP()/GRE')=0D + .replace('ipv4 / g= re', 'ipv6 / gre')=0D + )=0D + for element in tvs_mac_ipv4_gre_ipv= 6_gtpu_ul_ipv6_tcp]=0D +=0D +tvs_mac_ipv6_gre_ipv6_gtpu_dl_ipv6 =3D [eval(str(element).replace('mac_ipv= 4', 'mac_ipv6')=0D + .replace('IP()/GRE= ', 'IP1()/GRE')=0D + .replace('IPv6()/G= RE', 'IPv66()/GRE')=0D + .replace('IP1()/GR= E', 'IPv6()/GRE')=0D + .replace('IPv66()/= GRE', 'IP()/GRE')=0D + .replace('ipv4 / g= re', 'ipv6 / gre')=0D + )=0D + for element in tvs_mac_ipv4_gre_ipv= 6_gtpu_dl_ipv6]=0D +=0D +tvs_mac_ipv6_gre_ipv6_gtpu_dl_ipv6_udp =3D [eval(str(element).replace('mac= _ipv4', 'mac_ipv6')=0D + .replace('IP()/GRE= ', 'IP1()/GRE')=0D + .replace('IPv6()/G= RE', 'IPv66()/GRE')=0D + .replace('IP1()/GR= E', 'IPv6()/GRE')=0D + .replace('IPv66()/= GRE', 'IP()/GRE')=0D + .replace('ipv4 / g= re', 'ipv6 / gre')=0D + )=0D + for element in tvs_mac_ipv4_gre_ipv= 6_gtpu_dl_ipv6_udp]=0D +=0D +tvs_mac_ipv6_gre_ipv6_gtpu_dl_ipv6_tcp =3D [eval(str(element).replace('mac= _ipv4', 'mac_ipv6')=0D + .replace('IP()/GRE= ', 'IP1()/GRE')=0D + .replace('IPv6()/G= RE', 'IPv66()/GRE')=0D + .replace('IP1()/GR= E', 'IPv6()/GRE')=0D + .replace('IPv66()/= GRE', 'IP()/GRE')=0D + .replace('ipv4 / g= re', 'ipv6 / gre')=0D + )=0D + for element in tvs_mac_ipv4_gre_ipv= 6_gtpu_dl_ipv6_tcp]=0D +=0D +outer_mac_ipv4_gre_ipv4_gtpu_eh_pkt=3D{=0D + "matched":['Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.4", dst= =3D"1.1.2.5")/GRE()/IP()/UDP(dport=3D2152)/GTP_U_Header(teid=3D0x12)/GTPPDU= SessionContainer(QFI=3D0x3)/IP()',=0D + 'Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.4", dst= =3D"1.1.2.5")/GRE()/IP()/UDP(dport=3D2152)/GTP_U_Header(teid=3D0x12)/GTPPDU= SessionContainer(type=3D0, P=3D1, QFI=3D0x3)/IP()',=0D + 'Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.4", dst= =3D"1.1.2.5")/GRE()/IP()/UDP(dport=3D2152)/GTP_U_Header(teid=3D0x12)/GTPPDU= SessionContainer(type=3D1, P=3D1, QFI=3D0x3)/IP()',=0D + 'Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.4", dst= =3D"1.1.2.5")/GRE()/IP()/UDP(dport=3D2152)/GTP_U_Header(teid=3D0x12)/GTPPDU= SessionContainer(QFI=3D0x3)/IPv6()',=0D + 'Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.4", dst= =3D"1.1.2.5")/GRE()/IP()/UDP(dport=3D2152)/GTP_U_Header(teid=3D0x12)/GTPPDU= SessionContainer(type=3D0, P=3D1, QFI=3D0x3)/IPv6()',=0D + 'Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.4", dst= =3D"1.1.2.5")/GRE()/IP()/UDP(dport=3D2152)/GTP_U_Header(teid=3D0x12)/GTPPDU= SessionContainer(type=3D1, P=3D1, QFI=3D0x3)/IPv6()',=0D + 'Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.4", dst= =3D"1.1.2.5")/GRE()/IP()/UDP(dport=3D2152)/GTP_U_Header(teid=3D0x12)/GTPPDU= SessionContainer(QFI=3D0x3)/IP()/UDP()',=0D + 'Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.4", dst= =3D"1.1.2.5")/GRE()/IP()/UDP(dport=3D2152)/GTP_U_Header(teid=3D0x12)/GTPPDU= SessionContainer(type=3D0, P=3D1, QFI=3D0x3)/IP()/UDP()',=0D + 'Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.4", dst= =3D"1.1.2.5")/GRE()/IP()/UDP(dport=3D2152)/GTP_U_Header(teid=3D0x12)/GTPPDU= SessionContainer(type=3D1, P=3D1, QFI=3D0x3)/IP()/UDP()',=0D + 'Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.4", dst= =3D"1.1.2.5")/GRE()/IP()/UDP(dport=3D2152)/GTP_U_Header(teid=3D0x12)/GTPPDU= SessionContainer(QFI=3D0x3)/IPv6()/UDP()',=0D + 'Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.4", dst= =3D"1.1.2.5")/GRE()/IP()/UDP(dport=3D2152)/GTP_U_Header(teid=3D0x12)/GTPPDU= SessionContainer(type=3D0, P=3D1, QFI=3D0x3)/IPv6()/UDP()',=0D + 'Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.4", dst= =3D"1.1.2.5")/GRE()/IP()/UDP(dport=3D2152)/GTP_U_Header(teid=3D0x12)/GTPPDU= SessionContainer(type=3D1, P=3D1, QFI=3D0x3)/IPv6()/UDP()',=0D + 'Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.4", dst= =3D"1.1.2.5")/GRE()/IP()/UDP(dport=3D2152)/GTP_U_Header(teid=3D0x12)/GTPPDU= SessionContainer(QFI=3D0x3)/IP()/TCP()',=0D + 'Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.4", dst= =3D"1.1.2.5")/GRE()/IP()/UDP(dport=3D2152)/GTP_U_Header(teid=3D0x12)/GTPPDU= SessionContainer(type=3D0, P=3D1, QFI=3D0x3)/IP()/TCP()',=0D + 'Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.4", dst= =3D"1.1.2.5")/GRE()/IP()/UDP(dport=3D2152)/GTP_U_Header(teid=3D0x12)/GTPPDU= SessionContainer(type=3D1, P=3D1, QFI=3D0x3)/IP()/TCP()',=0D + 'Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.4", dst= =3D"1.1.2.5")/GRE()/IP()/UDP(dport=3D2152)/GTP_U_Header(teid=3D0x12)/GTPPDU= SessionContainer(QFI=3D0x3)/IPv6()/TCP()',=0D + 'Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.4", dst= =3D"1.1.2.5")/GRE()/IP()/UDP(dport=3D2152)/GTP_U_Header(teid=3D0x12)/GTPPDU= SessionContainer(type=3D0, P=3D1, QFI=3D0x3)/IPv6()/TCP()',=0D + 'Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.4", dst= =3D"1.1.2.5")/GRE()/IP()/UDP(dport=3D2152)/GTP_U_Header(teid=3D0x12)/GTPPDU= SessionContainer(type=3D1, P=3D1, QFI=3D0x3)/IPv6()/TCP()',=0D + 'Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.4", dst= =3D"1.1.2.5")/GRE()/IPv6()/UDP(dport=3D2152)/GTP_U_Header(teid=3D0x12)/GTPP= DUSessionContainer(QFI=3D0x3)/IP()',=0D + 'Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.4", dst= =3D"1.1.2.5")/GRE()/IPv6()/UDP(dport=3D2152)/GTP_U_Header(teid=3D0x12)/GTPP= DUSessionContainer(type=3D0, P=3D1, QFI=3D0x3)/IP()',=0D + 'Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.4", dst= =3D"1.1.2.5")/GRE()/IPv6()/UDP(dport=3D2152)/GTP_U_Header(teid=3D0x12)/GTPP= DUSessionContainer(type=3D1, P=3D1, QFI=3D0x3)/IP()',=0D + 'Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.4", dst= =3D"1.1.2.5")/GRE()/IPv6()/UDP(dport=3D2152)/GTP_U_Header(teid=3D0x12)/GTPP= DUSessionContainer(QFI=3D0x3)/IPv6()',=0D + 'Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.4", dst= =3D"1.1.2.5")/GRE()/IPv6()/UDP(dport=3D2152)/GTP_U_Header(teid=3D0x12)/GTPP= DUSessionContainer(type=3D0, P=3D1, QFI=3D0x3)/IPv6()',=0D + 'Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.4", dst= =3D"1.1.2.5")/GRE()/IPv6()/UDP(dport=3D2152)/GTP_U_Header(teid=3D0x12)/GTPP= DUSessionContainer(type=3D1, P=3D1, QFI=3D0x3)/IPv6()',=0D + 'Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.4", dst= =3D"1.1.2.5")/GRE()/IPv6()/UDP(dport=3D2152)/GTP_U_Header(teid=3D0x12)/GTPP= DUSessionContainer(QFI=3D0x3)/IP()/UDP()',=0D + 'Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.4", dst= =3D"1.1.2.5")/GRE()/IPv6()/UDP(dport=3D2152)/GTP_U_Header(teid=3D0x12)/GTPP= DUSessionContainer(type=3D0, P=3D1, QFI=3D0x3)/IP()/UDP()',=0D + 'Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.4", dst= =3D"1.1.2.5")/GRE()/IPv6()/UDP(dport=3D2152)/GTP_U_Header(teid=3D0x12)/GTPP= DUSessionContainer(type=3D1, P=3D1, QFI=3D0x3)/IP()/UDP()',=0D + 'Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.4", dst= =3D"1.1.2.5")/GRE()/IPv6()/UDP(dport=3D2152)/GTP_U_Header(teid=3D0x12)/GTPP= DUSessionContainer(QFI=3D0x3)/IPv6()/UDP()',=0D + 'Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.4", dst= =3D"1.1.2.5")/GRE()/IPv6()/UDP(dport=3D2152)/GTP_U_Header(teid=3D0x12)/GTPP= DUSessionContainer(type=3D0, P=3D1, QFI=3D0x3)/IPv6()/UDP()',=0D + 'Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.4", dst= =3D"1.1.2.5")/GRE()/IPv6()/UDP(dport=3D2152)/GTP_U_Header(teid=3D0x12)/GTPP= DUSessionContainer(type=3D1, P=3D1, QFI=3D0x3)/IPv6()/UDP()',=0D + 'Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.4", dst= =3D"1.1.2.5")/GRE()/IPv6()/UDP(dport=3D2152)/GTP_U_Header(teid=3D0x12)/GTPP= DUSessionContainer(QFI=3D0x3)/IP()/TCP()',=0D + 'Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.4", dst= =3D"1.1.2.5")/GRE()/IPv6()/UDP(dport=3D2152)/GTP_U_Header(teid=3D0x12)/GTPP= DUSessionContainer(type=3D0, P=3D1, QFI=3D0x3)/IP()/TCP()',=0D + 'Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.4", dst= =3D"1.1.2.5")/GRE()/IPv6()/UDP(dport=3D2152)/GTP_U_Header(teid=3D0x12)/GTPP= DUSessionContainer(type=3D1, P=3D1, QFI=3D0x3)/IP()/TCP()',=0D + 'Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.4", dst= =3D"1.1.2.5")/GRE()/IPv6()/UDP(dport=3D2152)/GTP_U_Header(teid=3D0x12)/GTPP= DUSessionContainer(QFI=3D0x3)/IPv6()/TCP()',=0D + 'Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.4", dst= =3D"1.1.2.5")/GRE()/IPv6()/UDP(dport=3D2152)/GTP_U_Header(teid=3D0x12)/GTPP= DUSessionContainer(type=3D0, P=3D1, QFI=3D0x3)/IPv6()/TCP()',=0D + 'Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.4", dst= =3D"1.1.2.5")/GRE()/IPv6()/UDP(dport=3D2152)/GTP_U_Header(teid=3D0x12)/GTPP= DUSessionContainer(type=3D1, P=3D1, QFI=3D0x3)/IPv6()/TCP()'],=0D + "unmatched":['Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.14", ds= t=3D"1.1.2.5")/GRE()/IP()/UDP(dport=3D2152)/GTP_U_Header(teid=3D0x12)/GTPPD= USessionContainer(QFI=3D0x3)/IP()',=0D + 'Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.4", dst= =3D"1.1.2.15")/GRE()/IP()/UDP(dport=3D2152)/GTP_U_Header(teid=3D0x12)/GTPPD= USessionContainer(QFI=3D0x3)/IP()',=0D + 'Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.4", dst= =3D"1.1.2.5")/GRE()/IP()/UDP(dport=3D2152)/GTP_U_Header(teid=3D0x11)/GTPPDU= SessionContainer(QFI=3D0x3)/IP()',=0D + 'Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.4", dst= =3D"1.1.2.5")/GRE()/IP()/UDP(dport=3D2152)/GTP_U_Header(teid=3D0x12)/GTPPDU= SessionContainer(QFI=3D0x13)/IP()',=0D + 'Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.14", ds= t=3D"1.1.2.5")/GRE()/IP()/UDP(dport=3D2152)/GTP_U_Header(teid=3D0x12)/GTPPD= USessionContainer(QFI=3D0x3)/IPv6()/UDP()',=0D + 'Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.4", dst= =3D"1.1.2.15")/GRE()/IP()/UDP(dport=3D2152)/GTP_U_Header(teid=3D0x12)/GTPPD= USessionContainer(QFI=3D0x3)/IPv6()/UDP()',=0D + 'Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.4", dst= =3D"1.1.2.5")/GRE()/IP()/UDP(dport=3D2152)/GTP_U_Header(teid=3D0x11)/GTPPDU= SessionContainer(QFI=3D0x3)/IPv6()/TCP()',=0D + 'Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.4", dst= =3D"1.1.2.5")/GRE()/IP()/UDP(dport=3D2152)/GTP_U_Header(teid=3D0x12)/GTPPDU= SessionContainer(QFI=3D0x13)/IPv6()/TCP()',=0D + 'Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.14", ds= t=3D"1.1.2.5")/GRE()/IP()/UDP(dport=3D2152)/GTP_U_Header(teid=3D0x12)/GTPPD= USessionContainer(type=3D0, P=3D1, QFI=3D0x3)/IP()',=0D + 'Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.4", dst= =3D"1.1.2.15")/GRE()/IP()/UDP(dport=3D2152)/GTP_U_Header(teid=3D0x12)/GTPPD= USessionContainer(type=3D0, P=3D1, QFI=3D0x3)/IPv6()',=0D + 'Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.4", dst= =3D"1.1.2.5")/GRE()/IP()/UDP(dport=3D2152)/GTP_U_Header(teid=3D0x11)/GTPPDU= SessionContainer(type=3D0, P=3D1, QFI=3D0x3)/IP()',=0D + 'Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.4", dst= =3D"1.1.2.5")/GRE()/IP()/UDP(dport=3D2152)/GTP_U_Header(teid=3D0x12)/GTPPDU= SessionContainer(type=3D0, P=3D1, QFI=3D0x13)/IPv6()',=0D + 'Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.14", ds= t=3D"1.1.2.5")/GRE()/IP()/UDP(dport=3D2152)/GTP_U_Header(teid=3D0x12)/GTPPD= USessionContainer(type=3D1, P=3D1, QFI=3D0x3)/IP()',=0D + 'Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.4", dst= =3D"1.1.2.15")/GRE()/IP()/UDP(dport=3D2152)/GTP_U_Header(teid=3D0x12)/GTPPD= USessionContainer(type=3D1, P=3D1, QFI=3D0x3)/IPv6()',=0D + 'Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.4", dst= =3D"1.1.2.5")/GRE()/IP()/UDP(dport=3D2152)/GTP_U_Header(teid=3D0x11)/GTPPDU= SessionContainer(type=3D1, P=3D1, QFI=3D0x3)/IP()',=0D + 'Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.4", dst= =3D"1.1.2.5")/GRE()/IP()/UDP(dport=3D2152)/GTP_U_Header(teid=3D0x12)/GTPPDU= SessionContainer(type=3D1, P=3D1, QFI=3D0x13)/IPv6()',=0D + 'Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.4", dst= =3D"1.1.2.5")/GRE()/IP()/UDP(dport=3D2152)/GTP_U_Header(teid=3D0x12)/IP()']= =0D +}=0D +=0D +tv_outer_mac_ipv4_gre_ipv4_gtpu_eh_queue_index =3D {=0D + "name": "tv_outer_mac_ipv4_gre_ipv4_gtpu_eh_queue_index",=0D + "rule": "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 0x12 / gtp_psc qfi is 0x3 / end= actions queue index 3 / mark id 13 / end",=0D + "scapy_str": {"matched": outer_mac_ipv4_gre_ipv4_gtpu_eh_pkt['matched'= ],=0D + "unmatched": outer_mac_ipv4_gre_ipv4_gtpu_eh_pkt['unmatc= hed']=0D + },=0D + "check_param": {"port_id": 0, "rxq": LAUNCH_QUEUE, "queue": 3, "mark_i= d": 13}=0D +}=0D +=0D +tv_outer_mac_ipv4_gre_ipv4_gtpu_eh_rss_queues =3D {=0D + "name": "tv_outer_mac_ipv4_gre_ipv4_gtpu_eh_rss_queues",=0D + "rule": "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 0x12 / gtp_psc qfi is 0x3 / end= actions rss queues 4 5 end / mark id 23 / end",=0D + "scapy_str": {"matched": outer_mac_ipv4_gre_ipv4_gtpu_eh_pkt['matched'= ],=0D + "unmatched": outer_mac_ipv4_gre_ipv4_gtpu_eh_pkt['unmatc= hed']=0D + },=0D + "check_param": {"port_id": 0, "rxq": LAUNCH_QUEUE, "queue": [4, 5], "m= ark_id": 23}=0D +}=0D +=0D +tv_outer_mac_ipv4_gre_ipv4_gtpu_eh_passthru =3D {=0D + "name": "tv_outer_mac_ipv4_gre_ipv4_gtpu_eh_passthru",=0D + "rule": "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 0x12 / gtp_psc qfi is 0x3 / end= actions passthru / mark id 33 / end",=0D + "scapy_str": {"matched": outer_mac_ipv4_gre_ipv4_gtpu_eh_pkt['matched'= ],=0D + "unmatched": outer_mac_ipv4_gre_ipv4_gtpu_eh_pkt['unmatc= hed']=0D + },=0D + "check_param": {"port_id": 0, "rxq": LAUNCH_QUEUE, "mark_id": 33}=0D +}=0D +=0D +tv_outer_mac_ipv4_gre_ipv4_gtpu_eh_drop =3D {=0D + "name": "tv_outer_mac_ipv4_gre_ipv4_gtpu_eh_drop",=0D + "rule": "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 0x12 / gtp_psc qfi is 0x3 / end= actions drop / end",=0D + "scapy_str": {"matched": outer_mac_ipv4_gre_ipv4_gtpu_eh_pkt['matched'= ],=0D + "unmatched": outer_mac_ipv4_gre_ipv4_gtpu_eh_pkt['unmatc= hed']=0D + },=0D + "check_param": {"port_id": 0, "rxq": LAUNCH_QUEUE, "drop": True}=0D +}=0D +=0D +tv_outer_mac_ipv4_gre_ipv4_gtpu_eh_mark_rss =3D {=0D + "name": "tv_outer_mac_ipv4_gre_ipv4_gtpu_eh_mark_rss",=0D + "rule": "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 0x12 / gtp_psc qfi is 0x3 / end= actions mark / rss / end",=0D + "scapy_str": {"matched": outer_mac_ipv4_gre_ipv4_gtpu_eh_pkt['matched'= ],=0D + "unmatched": outer_mac_ipv4_gre_ipv4_gtpu_eh_pkt['unmatc= hed']=0D + },=0D + "check_param": {"port_id": 0, "rxq": LAUNCH_QUEUE, "mark_id": 0, "rss"= : True}=0D +}=0D +=0D +tvs_outer_mac_ipv4_gre_ipv4_gtpu_eh =3D [=0D + tv_outer_mac_ipv4_gre_ipv4_gtpu_eh_queue_index,=0D + tv_outer_mac_ipv4_gre_ipv4_gtpu_eh_rss_queues,=0D + tv_outer_mac_ipv4_gre_ipv4_gtpu_eh_passthru,=0D + tv_outer_mac_ipv4_gre_ipv4_gtpu_eh_drop,=0D + tv_outer_mac_ipv4_gre_ipv4_gtpu_eh_mark_rss,=0D + ]=0D +=0D +=0D +outer_mac_ipv4_gre_ipv4_gtpu_ul_pkt=3D{=0D + "matched":['Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.4", dst= =3D"1.1.2.5")/GRE()/IP()/UDP(dport=3D2152)/GTP_U_Header(teid=3D0x12)/GTPPDU= SessionContainer(type=3D1, P=3D1, QFI=3D0x3)/IP()',=0D + 'Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.4", dst= =3D"1.1.2.5")/GRE()/IP()/UDP(dport=3D2152)/GTP_U_Header(teid=3D0x12)/GTPPDU= SessionContainer(type=3D1, P=3D1, QFI=3D0x3)/IPv6()',=0D + 'Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.4", dst= =3D"1.1.2.5")/GRE()/IP()/UDP(dport=3D2152)/GTP_U_Header(teid=3D0x12)/GTPPDU= SessionContainer(type=3D1, P=3D1, QFI=3D0x3)/IP()/UDP()',=0D + 'Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.4", dst= =3D"1.1.2.5")/GRE()/IP()/UDP(dport=3D2152)/GTP_U_Header(teid=3D0x12)/GTPPDU= SessionContainer(type=3D1, P=3D1, QFI=3D0x3)/IPv6()/UDP()',=0D + 'Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.4", dst= =3D"1.1.2.5")/GRE()/IP()/UDP(dport=3D2152)/GTP_U_Header(teid=3D0x12)/GTPPDU= SessionContainer(type=3D1, P=3D1, QFI=3D0x3)/IP()/TCP()',=0D + 'Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.4", dst= =3D"1.1.2.5")/GRE()/IP()/UDP(dport=3D2152)/GTP_U_Header(teid=3D0x12)/GTPPDU= SessionContainer(type=3D1, P=3D1, QFI=3D0x3)/IPv6()/TCP()',=0D + 'Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.4", dst= =3D"1.1.2.5")/GRE()/IPv6()/UDP(dport=3D2152)/GTP_U_Header(teid=3D0x12)/GTPP= DUSessionContainer(type=3D1, P=3D1, QFI=3D0x3)/IP()',=0D + 'Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.4", dst= =3D"1.1.2.5")/GRE()/IPv6()/UDP(dport=3D2152)/GTP_U_Header(teid=3D0x12)/GTPP= DUSessionContainer(type=3D1, P=3D1, QFI=3D0x3)/IPv6()',=0D + 'Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.4", dst= =3D"1.1.2.5")/GRE()/IPv6()/UDP(dport=3D2152)/GTP_U_Header(teid=3D0x12)/GTPP= DUSessionContainer(type=3D1, P=3D1, QFI=3D0x3)/IP()/UDP()',=0D + 'Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.4", dst= =3D"1.1.2.5")/GRE()/IPv6()/UDP(dport=3D2152)/GTP_U_Header(teid=3D0x12)/GTPP= DUSessionContainer(type=3D1, P=3D1, QFI=3D0x3)/IPv6()/UDP()',=0D + 'Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.4", dst= =3D"1.1.2.5")/GRE()/IPv6()/UDP(dport=3D2152)/GTP_U_Header(teid=3D0x12)/GTPP= DUSessionContainer(type=3D1, P=3D1, QFI=3D0x3)/IP()/TCP()',=0D + 'Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.4", dst= =3D"1.1.2.5")/GRE()/IPv6()/UDP(dport=3D2152)/GTP_U_Header(teid=3D0x12)/GTPP= DUSessionContainer(type=3D1, P=3D1, QFI=3D0x3)/IPv6()/TCP()',],=0D + "unmatched":['Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.14", ds= t=3D"1.1.2.5")/GRE()/IP()/UDP(dport=3D2152)/GTP_U_Header(teid=3D0x12)/GTPPD= USessionContainer(type=3D1, P=3D1, QFI=3D0x3)/IP()',=0D + 'Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.4", dst= =3D"1.1.2.15")/GRE()/IP()/UDP(dport=3D2152)/GTP_U_Header(teid=3D0x12)/GTPPD= USessionContainer(type=3D1, P=3D1, QFI=3D0x3)/IP()',=0D + 'Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.4", dst= =3D"1.1.2.5")/GRE()/IP()/UDP(dport=3D2152)/GTP_U_Header(teid=3D0x11)/GTPPDU= SessionContainer(type=3D1, P=3D1, QFI=3D0x3)/IP()',=0D + 'Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.4", dst= =3D"1.1.2.5")/GRE()/IP()/UDP(dport=3D2152)/GTP_U_Header(teid=3D0x12)/GTPPDU= SessionContainer(type=3D1, P=3D1, QFI=3D0x13)/IP()',=0D + 'Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.4", dst= =3D"1.1.2.5")/GRE()/IP()/UDP(dport=3D2152)/GTP_U_Header(teid=3D0x12)/GTPPDU= SessionContainer(type=3D0, P=3D1, QFI=3D0x3)/IP()',=0D + 'Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.14", ds= t=3D"1.1.2.5")/GRE()/IP()/UDP(dport=3D2152)/GTP_U_Header(teid=3D0x12)/GTPPD= USessionContainer(type=3D1, P=3D1, QFI=3D0x3)/IPv6()',=0D + 'Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.4", dst= =3D"1.1.2.15")/GRE()/IP()/UDP(dport=3D2152)/GTP_U_Header(teid=3D0x12)/GTPPD= USessionContainer(type=3D1, P=3D1, QFI=3D0x3)/IPv6()',=0D + 'Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.4", dst= =3D"1.1.2.5")/GRE()/IP()/UDP(dport=3D2152)/GTP_U_Header(teid=3D0x11)/GTPPDU= SessionContainer(type=3D1, P=3D1, QFI=3D0x3)/IPv6()',=0D + 'Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.4", dst= =3D"1.1.2.5")/GRE()/IP()/UDP(dport=3D2152)/GTP_U_Header(teid=3D0x12)/GTPPDU= SessionContainer(type=3D1, P=3D1, QFI=3D0x13)/IPv6()',=0D + 'Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.4", dst= =3D"1.1.2.5")/GRE()/IP()/UDP(dport=3D2152)/GTP_U_Header(teid=3D0x12)/GTPPDU= SessionContainer(type=3D0, P=3D1, QFI=3D0x3)/IPv6()',=0D + 'Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.14", ds= t=3D"1.1.2.5")/GRE()/IP()/UDP(dport=3D2152)/GTP_U_Header(teid=3D0x12)/GTPPD= USessionContainer(type=3D1, P=3D1, QFI=3D0x3)/IP()/UDP()',=0D + 'Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.4", dst= =3D"1.1.2.15")/GRE()/IP()/UDP(dport=3D2152)/GTP_U_Header(teid=3D0x12)/GTPPD= USessionContainer(type=3D1, P=3D1, QFI=3D0x3)/IP()/UDP()',=0D + 'Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.4", dst= =3D"1.1.2.5")/GRE()/IP()/UDP(dport=3D2152)/GTP_U_Header(teid=3D0x11)/GTPPDU= SessionContainer(type=3D1, P=3D1, QFI=3D0x3)/IPv6()/TCP()',=0D + 'Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.4", dst= =3D"1.1.2.5")/GRE()/IP()/UDP(dport=3D2152)/GTP_U_Header(teid=3D0x12)/GTPPDU= SessionContainer(type=3D1, P=3D1, QFI=3D0x13)/IP()/TCP()',=0D + 'Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.4", dst= =3D"1.1.2.5")/GRE()/IP()/UDP(dport=3D2152)/GTP_U_Header(teid=3D0x12)/GTPPDU= SessionContainer(type=3D0, P=3D1, QFI=3D0x3)/IP()/TCP()',=0D + 'Ether(dst=3D"00:11:22:33:44:55")/IP(src=3D"1.1.2.4", dst= =3D"1.1.2.5")/GRE()/IP()/UDP(dport=3D2152)/GTP_U_Header(teid=3D0x12)/IP()']= =0D +}=0D +=0D +tv_outer_mac_ipv4_gre_ipv4_gtpu_ul_queue_index =3D {=0D + "name": "tv_outer_mac_ipv4_gre_ipv4_gtpu_ul_queue_index",=0D + "rule": "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 0x12 / gtp_psc pdu_t is 1 qfi i= s 0x3 / end actions queue index 3 / mark id 13 / end",=0D + "scapy_str": {"matched": outer_mac_ipv4_gre_ipv4_gtpu_ul_pkt['matched'= ],=0D + "unmatched": outer_mac_ipv4_gre_ipv4_gtpu_ul_pkt['unmatc= hed']=0D + },=0D + "check_param": {"port_id": 0, "rxq": LAUNCH_QUEUE, "queue": 3, "mark_i= d": 13}=0D +}=0D +=0D +tv_outer_mac_ipv4_gre_ipv4_gtpu_ul_rss_queues =3D {=0D + "name": "tv_outer_mac_ipv4_gre_ipv4_gtpu_ul_rss_queues",=0D + "rule": "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 0x12 / gtp_psc pdu_t is 1 qfi i= s 0x3 / end actions rss queues 4 5 end / mark id 23 / end",=0D + "scapy_str": {"matched": outer_mac_ipv4_gre_ipv4_gtpu_ul_pkt['matched'= ],=0D + "unmatched": outer_mac_ipv4_gre_ipv4_gtpu_ul_pkt['unmatc= hed']=0D + },=0D + "check_param": {"port_id": 0, "rxq": LAUNCH_QUEUE, "queue": [4, 5], "m= ark_id": 23}=0D +}=0D +=0D +tv_outer_mac_ipv4_gre_ipv4_gtpu_ul_passthru =3D {=0D + "name": "tv_outer_mac_ipv4_gre_ipv4_gtpu_ul_passthru",=0D + "rule": "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 0x12 / gtp_psc pdu_t is 1 qfi i= s 0x3 / end actions passthru / mark id 33 / end",=0D + "scapy_str": {"matched": outer_mac_ipv4_gre_ipv4_gtpu_ul_pkt['matched'= ],=0D + "unmatched": outer_mac_ipv4_gre_ipv4_gtpu_ul_pkt['unmatc= hed']=0D + },=0D + "check_param": {"port_id": 0, "rxq": LAUNCH_QUEUE, "mark_id": 33}=0D +}=0D +=0D +tv_outer_mac_ipv4_gre_ipv4_gtpu_ul_drop =3D {=0D + "name": "tv_outer_mac_ipv4_gre_ipv4_gtpu_ul_drop",=0D + "rule": "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 0x12 / gtp_psc pdu_t is 1 qfi i= s 0x3 / end actions drop / end",=0D + "scapy_str": {"matched": outer_mac_ipv4_gre_ipv4_gtpu_ul_pkt['matched'= ],=0D + "unmatched": outer_mac_ipv4_gre_ipv4_gtpu_ul_pkt['unmatc= hed']=0D + },=0D + "check_param": {"port_id": 0, "rxq": LAUNCH_QUEUE, "drop": True}=0D +}=0D +=0D +tv_outer_mac_ipv4_gre_ipv4_gtpu_ul_mark_rss =3D {=0D + "name": "tv_outer_mac_ipv4_gre_ipv4_gtpu_ul_mark_rss",=0D + "rule": "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 0x12 / gtp_psc pdu_t is 1 qfi i= s 0x3 / end actions mark / rss / end",=0D + "scapy_str": {"matched": outer_mac_ipv4_gre_ipv4_gtpu_ul_pkt['matched'= ],=0D + "unmatched": outer_mac_ipv4_gre_ipv4_gtpu_ul_pkt['unmatc= hed']=0D + },=0D + "check_param": {"port_id": 0, "rxq": LAUNCH_QUEUE, "mark_id": 0, "rss"= : True}=0D +}=0D +=0D +tvs_outer_mac_ipv4_gre_ipv4_gtpu_ul =3D [=0D + tv_outer_mac_ipv4_gre_ipv4_gtpu_ul_queue_index,=0D + tv_outer_mac_ipv4_gre_ipv4_gtpu_ul_rss_queues,=0D + tv_outer_mac_ipv4_gre_ipv4_gtpu_ul_passthru,=0D + tv_outer_mac_ipv4_gre_ipv4_gtpu_ul_drop,=0D + tv_outer_mac_ipv4_gre_ipv4_gtpu_ul_mark_rss,=0D + ]=0D +=0D +tvs_outer_mac_ipv4_gre_ipv4_gtpu_dl =3D [eval(str(element).replace('_ul', = '_dl')=0D + .replace('type=3D1= ', 'type=3D11')=0D + .replace('type=3D0= ', 'type=3D10')=0D + .replace('type=3D1= 1', 'type=3D0')=0D + .replace('type=3D1= 0', 'type=3D1')=0D + .replace('pdu_t is= 1', 'pdu_t is 0')=0D + )=0D + for element in tvs_outer_mac_ipv4_g= re_ipv4_gtpu_ul]=0D +=0D +tvs_outer_mac_ipv4_gre_ipv6_gtpu_eh =3D [eval(str(element).replace('gre_ip= v4', 'gre_ipv6')=0D + .replace('GRE()/IP= ()', 'GRE()/IP2()')=0D + .replace('GRE()/IP= v6()', 'GRE()/IPv62()')=0D + .replace('GRE()/IP= 2()', 'GRE()/IPv6()')=0D + .replace('GRE()/IP= v62()', 'GRE()/IP()')=0D + .replace('gre / ip= v4', 'gre / ipv6')=0D + )=0D + for element in tvs_outer_mac_ipv4_g= re_ipv4_gtpu_eh]=0D +=0D +tvs_outer_mac_ipv4_gre_ipv6_gtpu_ul =3D [eval(str(element).replace('gre_ip= v4', 'gre_ipv6')=0D + .replace('GRE()/IP= ()', 'GRE()/IP2()')=0D + .replace('GRE()/IP= v6()', 'GRE()/IPv62()')=0D + .replace('GRE()/IP= 2()', 'GRE()/IPv6()')=0D + .replace('GRE()/IP= v62()', 'GRE()/IP()')=0D + .replace('gre / ip= v4', 'gre / ipv6')=0D + )=0D + for element in tvs_outer_mac_ipv4_g= re_ipv4_gtpu_ul]=0D +=0D +tvs_outer_mac_ipv4_gre_ipv6_gtpu_dl =3D [eval(str(element).replace('gre_ip= v4', 'gre_ipv6')=0D + .replace('GRE()/IP= ()', 'GRE()/IP2()')=0D + .replace('GRE()/IP= v6()', 'GRE()/IPv62()')=0D + .replace('GRE()/IP= 2()', 'GRE()/IPv6()')=0D + .replace('GRE()/IP= v62()', 'GRE()/IP()')=0D + .replace('gre / ip= v4', 'gre / ipv6')=0D + )=0D + for element in tvs_outer_mac_ipv4_g= re_ipv4_gtpu_dl]=0D +=0D +tvs_outer_mac_ipv6_gre_ipv4_gtpu_eh =3D [eval(str(element).replace('mac_ip= v4', 'mac_ipv6')=0D + .replace('IP(src= =3D"1.1.2.4", dst=3D"1.1.2.5")', 'IPv6(src=3D"CDCD:910A:2222:5498:8475:1111= :3900:1515",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2020")')=0D + .replace('IP(src= =3D"1.1.2.4", dst=3D"1.1.2.15")', 'IPv6(src=3D"CDCD:910A:2222:5498:8475:111= 1:3900:1515",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2021")')=0D + .replace('IP(src= =3D"1.1.2.14", dst=3D"1.1.2.5")', 'IPv6(src=3D"CDCD:910A:2222:5498:8475:111= 1:3900:1516",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2020")')=0D + .replace('ipv4 src= is 1.1.2.4 dst is 1.1.2.5', 'ipv6 src is CDCD:910A:2222:5498:8475:1111:390= 0:1515 dst is CDCD:910A:2222:5498:8475:1111:3900:2020')=0D + )=0D + for element in tvs_outer_mac_ipv4_g= re_ipv4_gtpu_eh]=0D +=0D +tvs_outer_mac_ipv6_gre_ipv4_gtpu_ul =3D [eval(str(element).replace('mac_ip= v4', 'mac_ipv6')=0D + .replace('IP(src= =3D"1.1.2.4", dst=3D"1.1.2.5")', 'IPv6(src=3D"CDCD:910A:2222:5498:8475:1111= :3900:1515",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2020")')=0D + .replace('IP(src= =3D"1.1.2.4", dst=3D"1.1.2.15")', 'IPv6(src=3D"CDCD:910A:2222:5498:8475:111= 1:3900:1515",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2021")')=0D + .replace('IP(src= =3D"1.1.2.14", dst=3D"1.1.2.5")', 'IPv6(src=3D"CDCD:910A:2222:5498:8475:111= 1:3900:1516",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2020")')=0D + .replace('ipv4 src= is 1.1.2.4 dst is 1.1.2.5', 'ipv6 src is CDCD:910A:2222:5498:8475:1111:390= 0:1515 dst is CDCD:910A:2222:5498:8475:1111:3900:2020')=0D + )=0D + for element in tvs_outer_mac_ipv4_g= re_ipv4_gtpu_ul]=0D +=0D +tvs_outer_mac_ipv6_gre_ipv4_gtpu_dl =3D [eval(str(element).replace('mac_ip= v4', 'mac_ipv6')=0D + .replace('IP(src= =3D"1.1.2.4", dst=3D"1.1.2.5")', 'IPv6(src=3D"CDCD:910A:2222:5498:8475:1111= :3900:1515",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2020")')=0D + .replace('IP(src= =3D"1.1.2.4", dst=3D"1.1.2.15")', 'IPv6(src=3D"CDCD:910A:2222:5498:8475:111= 1:3900:1515",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2021")')=0D + .replace('IP(src= =3D"1.1.2.14", dst=3D"1.1.2.5")', 'IPv6(src=3D"CDCD:910A:2222:5498:8475:111= 1:3900:1516",dst=3D"CDCD:910A:2222:5498:8475:1111:3900:2020")')=0D + .replace('ipv4 src= is 1.1.2.4 dst is 1.1.2.5', 'ipv6 src is CDCD:910A:2222:5498:8475:1111:390= 0:1515 dst is CDCD:910A:2222:5498:8475:1111:3900:2020')=0D + )=0D + for element in tvs_outer_mac_ipv4_g= re_ipv4_gtpu_dl]=0D +=0D +tvs_outer_mac_ipv6_gre_ipv6_gtpu_eh =3D [eval(str(element).replace('gre_ip= v4', 'gre_ipv6')=0D + .replace('GRE()/IP= ()', 'GRE()/IP2()')=0D + .replace('GRE()/IP= v6()', 'GRE()/IPv62()')=0D + .replace('GRE()/IP= 2()', 'GRE()/IPv6()')=0D + .replace('GRE()/IP= v62()', 'GRE()/IP()')=0D + .replace('gre / ip= v4', 'gre / ipv6')=0D + )=0D + for element in tvs_outer_mac_ipv6_g= re_ipv4_gtpu_eh]=0D +=0D +tvs_outer_mac_ipv6_gre_ipv6_gtpu_ul =3D [eval(str(element).replace('gre_ip= v4', 'gre_ipv6')=0D + .replace('GRE()/IP= ()', 'GRE()/IP2()')=0D + .replace('GRE()/IP= v6()', 'GRE()/IPv62()')=0D + .replace('GRE()/IP= 2()', 'GRE()/IPv6()')=0D + .replace('GRE()/IP= v62()', 'GRE()/IP()')=0D + .replace('gre / ip= v4', 'gre / ipv6')=0D + )=0D + for element in tvs_outer_mac_ipv6_g= re_ipv4_gtpu_ul]=0D +=0D +tvs_outer_mac_ipv6_gre_ipv6_gtpu_dl =3D [eval(str(element).replace('gre_ip= v4', 'gre_ipv6')=0D + .replace('GRE()/IP= ()', 'GRE()/IP2()')=0D + .replace('GRE()/IP= v6()', 'GRE()/IPv62()')=0D + .replace('GRE()/IP= 2()', 'GRE()/IPv6()')=0D + .replace('GRE()/IP= v62()', 'GRE()/IP()')=0D + .replace('gre / ip= v4', 'gre / ipv6')=0D + )=0D + for element in tvs_outer_mac_ipv6_g= re_ipv4_gtpu_dl]=0D +=0D +class TestCvlIavfGTPoGREFDIR(TestCase):=0D + def set_up_all(self):=0D + self.ports =3D self.dut.get_ports(self.nic)=0D +=0D + # init pkt=0D + self.pkt =3D Packet()=0D + # set default app parameter=0D + self.pmd_out =3D PmdOutput(self.dut)=0D + self.tester_mac =3D self.tester.get_mac(0)=0D + self.tester_port0 =3D self.tester.get_local_port(self.ports[0])=0D + self.tester_iface0 =3D self.tester.get_interface(self.tester_port0= )=0D +=0D + self.tester.send_expect('ifconfig {} up'.format(self.tester_iface0= ), '# ')=0D + self.param =3D '--rxq=3D{} --txq=3D{} --disable-rss --txd=3D384 --= rxd=3D384'.format(LAUNCH_QUEUE, LAUNCH_QUEUE)=0D + self.param_fdir =3D '--rxq=3D{} --txq=3D{}'.format(LAUNCH_QUEUE, L= AUNCH_QUEUE)=0D + self.vf_flag =3D False=0D + self.cores =3D self.dut.get_core_list("1S/4C/1T")=0D + self.setup_1pf_vfs_env()=0D +=0D + self.ports_pci =3D [self.dut.ports_info[self.ports[0]]['pci']]=0D + self.rxq =3D 16=0D + self.fdirprocess =3D rfc.FdirProcessing(self, self.pmd_out, [self.= tester_iface0], LAUNCH_QUEUE, ipfrag_flag=3DFalse)=0D + self.rssprocess =3D rfc.RssProcessing(self, self.pmd_out, [self.te= ster_iface0], self.rxq)=0D +=0D + def set_up(self):=0D + pass=0D +=0D + def setup_1pf_vfs_env(self):=0D + """=0D + create vf and set vf mac=0D + """=0D + self.vf_flag =3D True=0D + self.dut.bind_interfaces_linux('ice')=0D + self.pf_interface =3D self.dut.ports_info[0]['intf']=0D + self.dut.send_expect("ifconfig {} up".format(self.pf_interface), "= # ")=0D + self.dut.generate_sriov_vfs_by_port(self.ports[0], 1, driver=3Dsel= f.kdriver)=0D + self.dut.send_expect('ip link set {} vf 0 mac 00:11:22:33:44:55'.f= ormat(self.pf_interface), '# ')=0D + self.vf_port =3D self.dut.ports_info[0]['vfs_port']=0D + self.verify(len(self.vf_port) !=3D 0, "VF create failed")=0D + self.vf_driver =3D self.get_suite_cfg()['vf_driver']=0D + if self.vf_driver is None:=0D + self.vf_assign_method =3D 'vfio-pci'=0D + self.vf_port[0].bind_driver(self.vf_driver)=0D +=0D + self.vf_ports_pci =3D [self.vf_port[0].pci]=0D +=0D + def launch_testpmd(self, param_fdir=3DFalse):=0D + """=0D + start testpmd with fdir or rss param, and pf or vf=0D +=0D + :param param_fdir: True: Fdir param/False: rss param=0D + """=0D + if param_fdir =3D=3D True:=0D + self.pmd_out.start_testpmd(cores=3Dself.cores, ports=3Dself.vf= _ports_pci, param=3Dself.param_fdir)=0D + else:=0D + self.pmd_out.start_testpmd(cores=3Dself.cores, ports=3Dself.vf= _ports_pci, param=3Dself.param)=0D + self.dut.send_expect("set fwd rxonly", "testpmd> ")=0D + self.dut.send_expect("set verbose 1", "testpmd> ")=0D + self.dut.send_expect("start", "testpmd> ")=0D +=0D + def destroy_testpmd_and_vf(self):=0D + """=0D + quit testpmd=0D + if vf testpmd, destroy the vfs and set vf_flag =3D false=0D + """=0D + for port_id in self.ports:=0D + self.dut.destroy_sriov_vfs_by_port(port_id)=0D +=0D + def tear_down(self):=0D + self.dut.send_expect("quit", "# ")=0D + self.dut.kill_all()=0D +=0D + def tear_down_all(self):=0D + self.destroy_testpmd_and_vf()=0D + self.dut.kill_all()=0D +=0D + def test_mac_ipv4_gre_ipv4_gtpu_ipv4 (self):=0D + self.launch_testpmd(param_fdir=3DTrue)=0D + self.fdirprocess.flow_director_validate(tvs_mac_ipv4_gre_ipv4_gtpu= _ipv4 )=0D +=0D + def test_mac_ipv4_gre_ipv4_gtpu_ipv4_udp (self):=0D + self.launch_testpmd(param_fdir=3DTrue)=0D + self.fdirprocess.flow_director_validate(tvs_mac_ipv4_gre_ipv4_gtpu= _ipv4_udp )=0D +=0D + def test_mac_ipv4_gre_ipv4_gtpu_ipv4_tcp (self):=0D + self.launch_testpmd(param_fdir=3DTrue)=0D + self.fdirprocess.flow_director_validate(tvs_mac_ipv4_gre_ipv4_gtpu= _ipv4_tcp )=0D +=0D + def test_mac_ipv4_gre_ipv4_gtpu_eh_ipv4 (self):=0D + self.launch_testpmd(param_fdir=3DTrue)=0D + self.fdirprocess.flow_director_validate(tvs_mac_ipv4_gre_ipv4_gtpu= _eh_ipv4 )=0D +=0D + def test_mac_ipv4_gre_ipv4_gtpu_eh_ipv4_udp (self):=0D + self.launch_testpmd(param_fdir=3DTrue)=0D + self.fdirprocess.flow_director_validate(tvs_mac_ipv4_gre_ipv4_gtpu= _eh_ipv4_udp )=0D +=0D + def test_mac_ipv4_gre_ipv4_gtpu_eh_ipv4_tcp (self):=0D + self.launch_testpmd(param_fdir=3DTrue)=0D + self.fdirprocess.flow_director_validate(tvs_mac_ipv4_gre_ipv4_gtpu= _eh_ipv4_tcp )=0D +=0D + def test_mac_ipv4_gre_ipv4_gtpu_ul_ipv4 (self):=0D + self.launch_testpmd(param_fdir=3DTrue)=0D + self.fdirprocess.flow_director_validate(tvs_mac_ipv4_gre_ipv4_gtpu= _ul_ipv4 )=0D +=0D + def test_mac_ipv4_gre_ipv4_gtpu_ul_ipv4_udp (self):=0D + self.launch_testpmd(param_fdir=3DTrue)=0D + self.fdirprocess.flow_director_validate(tvs_mac_ipv4_gre_ipv4_gtpu= _ul_ipv4_udp )=0D +=0D + def test_mac_ipv4_gre_ipv4_gtpu_ul_ipv4_tcp (self):=0D + self.launch_testpmd(param_fdir=3DTrue)=0D + self.fdirprocess.flow_director_validate(tvs_mac_ipv4_gre_ipv4_gtpu= _ul_ipv4_tcp )=0D +=0D + def test_mac_ipv4_gre_ipv4_gtpu_dl_ipv4 (self):=0D + self.launch_testpmd(param_fdir=3DTrue)=0D + self.fdirprocess.flow_director_validate(tvs_mac_ipv4_gre_ipv4_gtpu= _dl_ipv4 )=0D +=0D + def test_mac_ipv4_gre_ipv4_gtpu_dl_ipv4_udp (self):=0D + self.launch_testpmd(param_fdir=3DTrue)=0D + self.fdirprocess.flow_director_validate(tvs_mac_ipv4_gre_ipv4_gtpu= _dl_ipv4_udp )=0D +=0D + def test_mac_ipv4_gre_ipv4_gtpu_dl_ipv4_tcp (self):=0D + self.launch_testpmd(param_fdir=3DTrue)=0D + self.fdirprocess.flow_director_validate(tvs_mac_ipv4_gre_ipv4_gtpu= _dl_ipv4_tcp )=0D +=0D + def test_mac_ipv6_gre_ipv4_gtpu_ipv4 (self):=0D + self.launch_testpmd(param_fdir=3DTrue)=0D + self.fdirprocess.flow_director_validate(tvs_mac_ipv6_gre_ipv4_gtpu= _ipv4 )=0D +=0D + def test_mac_ipv6_gre_ipv4_gtpu_ipv4_udp (self):=0D + self.launch_testpmd(param_fdir=3DTrue)=0D + self.fdirprocess.flow_director_validate(tvs_mac_ipv6_gre_ipv4_gtpu= _ipv4_udp )=0D +=0D + def test_mac_ipv6_gre_ipv4_gtpu_ipv4_tcp (self):=0D + self.launch_testpmd(param_fdir=3DTrue)=0D + self.fdirprocess.flow_director_validate(tvs_mac_ipv6_gre_ipv4_gtpu= _ipv4_tcp )=0D +=0D + def test_mac_ipv6_gre_ipv4_gtpu_eh_ipv4 (self):=0D + self.launch_testpmd(param_fdir=3DTrue)=0D + self.fdirprocess.flow_director_validate(tvs_mac_ipv6_gre_ipv4_gtpu= _eh_ipv4 )=0D +=0D + def test_mac_ipv6_gre_ipv4_gtpu_eh_ipv4_udp (self):=0D + self.launch_testpmd(param_fdir=3DTrue)=0D + self.fdirprocess.flow_director_validate(tvs_mac_ipv6_gre_ipv4_gtpu= _eh_ipv4_udp )=0D +=0D + def test_mac_ipv6_gre_ipv4_gtpu_eh_ipv4_tcp (self):=0D + self.launch_testpmd(param_fdir=3DTrue)=0D + self.fdirprocess.flow_director_validate(tvs_mac_ipv6_gre_ipv4_gtpu= _eh_ipv4_tcp )=0D +=0D + def test_mac_ipv6_gre_ipv4_gtpu_ul_ipv4 (self):=0D + self.launch_testpmd(param_fdir=3DTrue)=0D + self.fdirprocess.flow_director_validate(tvs_mac_ipv6_gre_ipv4_gtpu= _ul_ipv4 )=0D +=0D + def test_mac_ipv6_gre_ipv4_gtpu_ul_ipv4_udp (self):=0D + self.launch_testpmd(param_fdir=3DTrue)=0D + self.fdirprocess.flow_director_validate(tvs_mac_ipv6_gre_ipv4_gtpu= _ul_ipv4_udp )=0D +=0D + def test_mac_ipv6_gre_ipv4_gtpu_ul_ipv4_tcp (self):=0D + self.launch_testpmd(param_fdir=3DTrue)=0D + self.fdirprocess.flow_director_validate(tvs_mac_ipv6_gre_ipv4_gtpu= _ul_ipv4_tcp )=0D +=0D + def test_mac_ipv6_gre_ipv4_gtpu_dl_ipv4 (self):=0D + self.launch_testpmd(param_fdir=3DTrue)=0D + self.fdirprocess.flow_director_validate(tvs_mac_ipv6_gre_ipv4_gtpu= _dl_ipv4 )=0D +=0D + def test_mac_ipv6_gre_ipv4_gtpu_dl_ipv4_udp (self):=0D + self.launch_testpmd(param_fdir=3DTrue)=0D + self.fdirprocess.flow_director_validate(tvs_mac_ipv6_gre_ipv4_gtpu= _dl_ipv4_udp )=0D +=0D + def test_mac_ipv6_gre_ipv4_gtpu_dl_ipv4_tcp (self):=0D + self.launch_testpmd(param_fdir=3DTrue)=0D + self.fdirprocess.flow_director_validate(tvs_mac_ipv6_gre_ipv4_gtpu= _dl_ipv4_tcp )=0D +=0D + def test_mac_ipv4_gre_ipv6_gtpu_ipv4 (self):=0D + self.launch_testpmd(param_fdir=3DTrue)=0D + self.fdirprocess.flow_director_validate(tvs_mac_ipv4_gre_ipv6_gtpu= _ipv4 )=0D +=0D + def test_mac_ipv4_gre_ipv6_gtpu_ipv4_udp (self):=0D + self.launch_testpmd(param_fdir=3DTrue)=0D + self.fdirprocess.flow_director_validate(tvs_mac_ipv4_gre_ipv6_gtpu= _ipv4_udp )=0D +=0D + def test_mac_ipv4_gre_ipv6_gtpu_ipv4_tcp (self):=0D + self.launch_testpmd(param_fdir=3DTrue)=0D + self.fdirprocess.flow_director_validate(tvs_mac_ipv4_gre_ipv6_gtpu= _ipv4_tcp )=0D +=0D + def test_mac_ipv4_gre_ipv6_gtpu_eh_ipv4 (self):=0D + self.launch_testpmd(param_fdir=3DTrue)=0D + self.fdirprocess.flow_director_validate(tvs_mac_ipv4_gre_ipv6_gtpu= _eh_ipv4 )=0D +=0D + def test_mac_ipv4_gre_ipv6_gtpu_eh_ipv4_udp (self):=0D + self.launch_testpmd(param_fdir=3DTrue)=0D + self.fdirprocess.flow_director_validate(tvs_mac_ipv4_gre_ipv6_gtpu= _eh_ipv4_udp )=0D +=0D + def test_mac_ipv4_gre_ipv6_gtpu_eh_ipv4_tcp (self):=0D + self.launch_testpmd(param_fdir=3DTrue)=0D + self.fdirprocess.flow_director_validate(tvs_mac_ipv4_gre_ipv6_gtpu= _eh_ipv4_tcp )=0D +=0D + def test_mac_ipv4_gre_ipv6_gtpu_ul_ipv4 (self):=0D + self.launch_testpmd(param_fdir=3DTrue)=0D + self.fdirprocess.flow_director_validate(tvs_mac_ipv4_gre_ipv6_gtpu= _ul_ipv4 )=0D +=0D + def test_mac_ipv4_gre_ipv6_gtpu_ul_ipv4_udp (self):=0D + self.launch_testpmd(param_fdir=3DTrue)=0D + self.fdirprocess.flow_director_validate(tvs_mac_ipv4_gre_ipv6_gtpu= _ul_ipv4_udp )=0D +=0D + def test_mac_ipv4_gre_ipv6_gtpu_ul_ipv4_tcp (self):=0D + self.launch_testpmd(param_fdir=3DTrue)=0D + self.fdirprocess.flow_director_validate(tvs_mac_ipv4_gre_ipv6_gtpu= _ul_ipv4_tcp )=0D +=0D + def test_mac_ipv4_gre_ipv6_gtpu_dl_ipv4 (self):=0D + self.launch_testpmd(param_fdir=3DTrue)=0D + self.fdirprocess.flow_director_validate(tvs_mac_ipv4_gre_ipv6_gtpu= _dl_ipv4 )=0D +=0D + def test_mac_ipv4_gre_ipv6_gtpu_dl_ipv4_udp (self):=0D + self.launch_testpmd(param_fdir=3DTrue)=0D + self.fdirprocess.flow_director_validate(tvs_mac_ipv4_gre_ipv6_gtpu= _dl_ipv4_udp )=0D +=0D + def test_mac_ipv4_gre_ipv6_gtpu_dl_ipv4_tcp (self):=0D + self.launch_testpmd(param_fdir=3DTrue)=0D + self.fdirprocess.flow_director_validate(tvs_mac_ipv4_gre_ipv6_gtpu= _dl_ipv4_tcp )=0D +=0D + def test_mac_ipv4_gre_ipv4_gtpu_ipv6 (self):=0D + self.launch_testpmd(param_fdir=3DTrue)=0D + self.fdirprocess.flow_director_validate(tvs_mac_ipv4_gre_ipv4_gtpu= _ipv6 )=0D +=0D + def test_mac_ipv4_gre_ipv4_gtpu_ipv6_udp (self):=0D + self.launch_testpmd(param_fdir=3DTrue)=0D + self.fdirprocess.flow_director_validate(tvs_mac_ipv4_gre_ipv4_gtpu= _ipv6_udp )=0D +=0D + def test_mac_ipv4_gre_ipv4_gtpu_ipv6_tcp (self):=0D + self.launch_testpmd(param_fdir=3DTrue)=0D + self.fdirprocess.flow_director_validate(tvs_mac_ipv4_gre_ipv4_gtpu= _ipv6_tcp )=0D +=0D + def test_mac_ipv4_gre_ipv4_gtpu_eh_ipv6 (self):=0D + self.launch_testpmd(param_fdir=3DTrue)=0D + self.fdirprocess.flow_director_validate(tvs_mac_ipv4_gre_ipv4_gtpu= _eh_ipv6 )=0D +=0D + def test_mac_ipv4_gre_ipv4_gtpu_eh_ipv6_udp (self):=0D + self.launch_testpmd(param_fdir=3DTrue)=0D + self.fdirprocess.flow_director_validate(tvs_mac_ipv4_gre_ipv4_gtpu= _eh_ipv6_udp )=0D +=0D + def test_mac_ipv4_gre_ipv4_gtpu_eh_ipv6_tcp (self):=0D + self.launch_testpmd(param_fdir=3DTrue)=0D + self.fdirprocess.flow_director_validate(tvs_mac_ipv4_gre_ipv4_gtpu= _eh_ipv6_tcp )=0D +=0D + def test_mac_ipv4_gre_ipv4_gtpu_ul_ipv6 (self):=0D + self.launch_testpmd(param_fdir=3DTrue)=0D + self.fdirprocess.flow_director_validate(tvs_mac_ipv4_gre_ipv4_gtpu= _ul_ipv6 )=0D +=0D + def test_mac_ipv4_gre_ipv4_gtpu_ul_ipv6_udp (self):=0D + self.launch_testpmd(param_fdir=3DTrue)=0D + self.fdirprocess.flow_director_validate(tvs_mac_ipv4_gre_ipv4_gtpu= _ul_ipv6_udp )=0D +=0D + def test_mac_ipv4_gre_ipv4_gtpu_ul_ipv6_tcp (self):=0D + self.launch_testpmd(param_fdir=3DTrue)=0D + self.fdirprocess.flow_director_validate(tvs_mac_ipv4_gre_ipv4_gtpu= _ul_ipv6_tcp )=0D +=0D + def test_mac_ipv4_gre_ipv4_gtpu_dl_ipv6 (self):=0D + self.launch_testpmd(param_fdir=3DTrue)=0D + self.fdirprocess.flow_director_validate(tvs_mac_ipv4_gre_ipv4_gtpu= _dl_ipv6 )=0D +=0D + def test_mac_ipv4_gre_ipv4_gtpu_dl_ipv6_udp (self):=0D + self.launch_testpmd(param_fdir=3DTrue)=0D + self.fdirprocess.flow_director_validate(tvs_mac_ipv4_gre_ipv4_gtpu= _dl_ipv6_udp )=0D +=0D + def test_mac_ipv4_gre_ipv4_gtpu_dl_ipv6_tcp (self):=0D + self.launch_testpmd(param_fdir=3DTrue)=0D + self.fdirprocess.flow_director_validate(tvs_mac_ipv4_gre_ipv4_gtpu= _dl_ipv6_tcp )=0D +=0D + def test_mac_ipv6_gre_ipv6_gtpu_ipv4 (self):=0D + self.launch_testpmd(param_fdir=3DTrue)=0D + self.fdirprocess.flow_director_validate(tvs_mac_ipv6_gre_ipv6_gtpu= _ipv4 )=0D +=0D + def test_mac_ipv6_gre_ipv6_gtpu_ipv4_udp (self):=0D + self.launch_testpmd(param_fdir=3DTrue)=0D + self.fdirprocess.flow_director_validate(tvs_mac_ipv6_gre_ipv6_gtpu= _ipv4_udp )=0D +=0D + def test_mac_ipv6_gre_ipv6_gtpu_ipv4_tcp (self):=0D + self.launch_testpmd(param_fdir=3DTrue)=0D + self.fdirprocess.flow_director_validate(tvs_mac_ipv6_gre_ipv6_gtpu= _ipv4_tcp )=0D +=0D + def test_mac_ipv6_gre_ipv6_gtpu_eh_ipv4 (self):=0D + self.launch_testpmd(param_fdir=3DTrue)=0D + self.fdirprocess.flow_director_validate(tvs_mac_ipv6_gre_ipv6_gtpu= _eh_ipv4 )=0D +=0D + def test_mac_ipv6_gre_ipv6_gtpu_eh_ipv4_udp (self):=0D + self.launch_testpmd(param_fdir=3DTrue)=0D + self.fdirprocess.flow_director_validate(tvs_mac_ipv6_gre_ipv6_gtpu= _eh_ipv4_udp )=0D +=0D + def test_mac_ipv6_gre_ipv6_gtpu_eh_ipv4_tcp (self):=0D + self.launch_testpmd(param_fdir=3DTrue)=0D + self.fdirprocess.flow_director_validate(tvs_mac_ipv6_gre_ipv6_gtpu= _eh_ipv4_tcp )=0D +=0D + def test_mac_ipv6_gre_ipv6_gtpu_ul_ipv4 (self):=0D + self.launch_testpmd(param_fdir=3DTrue)=0D + self.fdirprocess.flow_director_validate(tvs_mac_ipv6_gre_ipv6_gtpu= _ul_ipv4 )=0D +=0D + def test_mac_ipv6_gre_ipv6_gtpu_ul_ipv4_udp (self):=0D + self.launch_testpmd(param_fdir=3DTrue)=0D + self.fdirprocess.flow_director_validate(tvs_mac_ipv6_gre_ipv6_gtpu= _ul_ipv4_udp )=0D +=0D + def test_mac_ipv6_gre_ipv6_gtpu_ul_ipv4_tcp (self):=0D + self.launch_testpmd(param_fdir=3DTrue)=0D + self.fdirprocess.flow_director_validate(tvs_mac_ipv6_gre_ipv6_gtpu= _ul_ipv4_tcp )=0D +=0D + def test_mac_ipv6_gre_ipv6_gtpu_dl_ipv4 (self):=0D + self.launch_testpmd(param_fdir=3DTrue)=0D + self.fdirprocess.flow_director_validate(tvs_mac_ipv6_gre_ipv6_gtpu= _dl_ipv4 )=0D +=0D + def test_mac_ipv6_gre_ipv6_gtpu_dl_ipv4_udp (self):=0D + self.launch_testpmd(param_fdir=3DTrue)=0D + self.fdirprocess.flow_director_validate(tvs_mac_ipv6_gre_ipv6_gtpu= _dl_ipv4_udp )=0D +=0D + def test_mac_ipv6_gre_ipv6_gtpu_dl_ipv4_tcp (self):=0D + self.launch_testpmd(param_fdir=3DTrue)=0D + self.fdirprocess.flow_director_validate(tvs_mac_ipv6_gre_ipv6_gtpu= _dl_ipv4_tcp )=0D +=0D + def test_mac_ipv4_gre_ipv6_gtpu_ipv6 (self):=0D + self.launch_testpmd(param_fdir=3DTrue)=0D + self.fdirprocess.flow_director_validate(tvs_mac_ipv4_gre_ipv6_gtpu= _ipv6 )=0D +=0D + def test_mac_ipv4_gre_ipv6_gtpu_ipv6_udp (self):=0D + self.launch_testpmd(param_fdir=3DTrue)=0D + self.fdirprocess.flow_director_validate(tvs_mac_ipv4_gre_ipv6_gtpu= _ipv6_udp )=0D +=0D + def test_mac_ipv4_gre_ipv6_gtpu_ipv6_tcp (self):=0D + self.launch_testpmd(param_fdir=3DTrue)=0D + self.fdirprocess.flow_director_validate(tvs_mac_ipv4_gre_ipv6_gtpu= _ipv6_tcp )=0D +=0D + def test_mac_ipv4_gre_ipv6_gtpu_eh_ipv6 (self):=0D + self.launch_testpmd(param_fdir=3DTrue)=0D + self.fdirprocess.flow_director_validate(tvs_mac_ipv4_gre_ipv6_gtpu= _eh_ipv6 )=0D +=0D + def test_mac_ipv4_gre_ipv6_gtpu_eh_ipv6_udp (self):=0D + self.launch_testpmd(param_fdir=3DTrue)=0D + self.fdirprocess.flow_director_validate(tvs_mac_ipv4_gre_ipv6_gtpu= _eh_ipv6_udp )=0D +=0D + def test_mac_ipv4_gre_ipv6_gtpu_eh_ipv6_tcp (self):=0D + self.launch_testpmd(param_fdir=3DTrue)=0D + self.fdirprocess.flow_director_validate(tvs_mac_ipv4_gre_ipv6_gtpu= _eh_ipv6_tcp )=0D +=0D + def test_mac_ipv4_gre_ipv6_gtpu_ul_ipv6 (self):=0D + self.launch_testpmd(param_fdir=3DTrue)=0D + self.fdirprocess.flow_director_validate(tvs_mac_ipv4_gre_ipv6_gtpu= _ul_ipv6 )=0D +=0D + def test_mac_ipv4_gre_ipv6_gtpu_ul_ipv6_udp (self):=0D + self.launch_testpmd(param_fdir=3DTrue)=0D + self.fdirprocess.flow_director_validate(tvs_mac_ipv4_gre_ipv6_gtpu= _ul_ipv6_udp )=0D +=0D + def test_mac_ipv4_gre_ipv6_gtpu_ul_ipv6_tcp (self):=0D + self.launch_testpmd(param_fdir=3DTrue)=0D + self.fdirprocess.flow_director_validate(tvs_mac_ipv4_gre_ipv6_gtpu= _ul_ipv6_tcp )=0D +=0D + def test_mac_ipv4_gre_ipv6_gtpu_dl_ipv6 (self):=0D + self.launch_testpmd(param_fdir=3DTrue)=0D + self.fdirprocess.flow_director_validate(tvs_mac_ipv4_gre_ipv6_gtpu= _dl_ipv6 )=0D +=0D + def test_mac_ipv4_gre_ipv6_gtpu_dl_ipv6_udp (self):=0D + self.launch_testpmd(param_fdir=3DTrue)=0D + self.fdirprocess.flow_director_validate(tvs_mac_ipv4_gre_ipv6_gtpu= _dl_ipv6_udp )=0D +=0D + def test_mac_ipv4_gre_ipv6_gtpu_dl_ipv6_tcp (self):=0D + self.launch_testpmd(param_fdir=3DTrue)=0D + self.fdirprocess.flow_director_validate(tvs_mac_ipv4_gre_ipv6_gtpu= _dl_ipv6_tcp )=0D +=0D + def test_mac_ipv6_gre_ipv4_gtpu_ipv6 (self):=0D + self.launch_testpmd(param_fdir=3DTrue)=0D + self.fdirprocess.flow_director_validate(tvs_mac_ipv6_gre_ipv4_gtpu= _ipv6 )=0D +=0D + def test_mac_ipv6_gre_ipv4_gtpu_ipv6_udp (self):=0D + self.launch_testpmd(param_fdir=3DTrue)=0D + self.fdirprocess.flow_director_validate(tvs_mac_ipv6_gre_ipv4_gtpu= _ipv6_udp )=0D +=0D + def test_mac_ipv6_gre_ipv4_gtpu_ipv6_tcp (self):=0D + self.launch_testpmd(param_fdir=3DTrue)=0D + self.fdirprocess.flow_director_validate(tvs_mac_ipv6_gre_ipv4_gtpu= _ipv6_tcp )=0D +=0D + def test_mac_ipv6_gre_ipv4_gtpu_eh_ipv6 (self):=0D + self.launch_testpmd(param_fdir=3DTrue)=0D + self.fdirprocess.flow_director_validate(tvs_mac_ipv6_gre_ipv4_gtpu= _eh_ipv6 )=0D +=0D + def test_mac_ipv6_gre_ipv4_gtpu_eh_ipv6_udp (self):=0D + self.launch_testpmd(param_fdir=3DTrue)=0D + self.fdirprocess.flow_director_validate(tvs_mac_ipv6_gre_ipv4_gtpu= _eh_ipv6_udp )=0D +=0D + def test_mac_ipv6_gre_ipv4_gtpu_eh_ipv6_tcp (self):=0D + self.launch_testpmd(param_fdir=3DTrue)=0D + self.fdirprocess.flow_director_validate(tvs_mac_ipv6_gre_ipv4_gtpu= _eh_ipv6_tcp )=0D +=0D + def test_mac_ipv6_gre_ipv4_gtpu_ul_ipv6 (self):=0D + self.launch_testpmd(param_fdir=3DTrue)=0D + self.fdirprocess.flow_director_validate(tvs_mac_ipv6_gre_ipv4_gtpu= _ul_ipv6 )=0D +=0D + def test_mac_ipv6_gre_ipv4_gtpu_ul_ipv6_udp (self):=0D + self.launch_testpmd(param_fdir=3DTrue)=0D + self.fdirprocess.flow_director_validate(tvs_mac_ipv6_gre_ipv4_gtpu= _ul_ipv6_udp )=0D +=0D + def test_mac_ipv6_gre_ipv4_gtpu_ul_ipv6_tcp (self):=0D + self.launch_testpmd(param_fdir=3DTrue)=0D + self.fdirprocess.flow_director_validate(tvs_mac_ipv6_gre_ipv4_gtpu= _ul_ipv6_tcp )=0D +=0D + def test_mac_ipv6_gre_ipv4_gtpu_dl_ipv6 (self):=0D + self.launch_testpmd(param_fdir=3DTrue)=0D + self.fdirprocess.flow_director_validate(tvs_mac_ipv6_gre_ipv4_gtpu= _dl_ipv6 )=0D +=0D + def test_mac_ipv6_gre_ipv4_gtpu_dl_ipv6_udp (self):=0D + self.launch_testpmd(param_fdir=3DTrue)=0D + self.fdirprocess.flow_director_validate(tvs_mac_ipv6_gre_ipv4_gtpu= _dl_ipv6_udp )=0D +=0D + def test_mac_ipv6_gre_ipv4_gtpu_dl_ipv6_tcp (self):=0D + self.launch_testpmd(param_fdir=3DTrue)=0D + self.fdirprocess.flow_director_validate(tvs_mac_ipv6_gre_ipv4_gtpu= _dl_ipv6_tcp )=0D +=0D + def test_mac_ipv6_gre_ipv6_gtpu_ipv6 (self):=0D + self.launch_testpmd(param_fdir=3DTrue)=0D + self.fdirprocess.flow_director_validate(tvs_mac_ipv6_gre_ipv6_gtpu= _ipv6 )=0D +=0D + def test_mac_ipv6_gre_ipv6_gtpu_ipv6_udp (self):=0D + self.launch_testpmd(param_fdir=3DTrue)=0D + self.fdirprocess.flow_director_validate(tvs_mac_ipv6_gre_ipv6_gtpu= _ipv6_udp )=0D +=0D + def test_mac_ipv6_gre_ipv6_gtpu_ipv6_tcp (self):=0D + self.launch_testpmd(param_fdir=3DTrue)=0D + self.fdirprocess.flow_director_validate(tvs_mac_ipv6_gre_ipv6_gtpu= _ipv6_tcp )=0D +=0D + def test_mac_ipv6_gre_ipv6_gtpu_eh_ipv6 (self):=0D + self.launch_testpmd(param_fdir=3DTrue)=0D + self.fdirprocess.flow_director_validate(tvs_mac_ipv6_gre_ipv6_gtpu= _eh_ipv6 )=0D +=0D + def test_mac_ipv6_gre_ipv6_gtpu_eh_ipv6_udp (self):=0D + self.launch_testpmd(param_fdir=3DTrue)=0D + self.fdirprocess.flow_director_validate(tvs_mac_ipv6_gre_ipv6_gtpu= _eh_ipv6_udp )=0D +=0D + def test_mac_ipv6_gre_ipv6_gtpu_eh_ipv6_tcp (self):=0D + self.launch_testpmd(param_fdir=3DTrue)=0D + self.fdirprocess.flow_director_validate(tvs_mac_ipv6_gre_ipv6_gtpu= _eh_ipv6_tcp )=0D +=0D + def test_mac_ipv6_gre_ipv6_gtpu_ul_ipv6 (self):=0D + self.launch_testpmd(param_fdir=3DTrue)=0D + self.fdirprocess.flow_director_validate(tvs_mac_ipv6_gre_ipv6_gtpu= _ul_ipv6 )=0D +=0D + def test_mac_ipv6_gre_ipv6_gtpu_ul_ipv6_udp (self):=0D + self.launch_testpmd(param_fdir=3DTrue)=0D + self.fdirprocess.flow_director_validate(tvs_mac_ipv6_gre_ipv6_gtpu= _ul_ipv6_udp )=0D +=0D + def test_mac_ipv6_gre_ipv6_gtpu_ul_ipv6_tcp (self):=0D + self.launch_testpmd(param_fdir=3DTrue)=0D + self.fdirprocess.flow_director_validate(tvs_mac_ipv6_gre_ipv6_gtpu= _ul_ipv6_tcp )=0D +=0D + def test_mac_ipv6_gre_ipv6_gtpu_dl_ipv6 (self):=0D + self.launch_testpmd(param_fdir=3DTrue)=0D + self.fdirprocess.flow_director_validate(tvs_mac_ipv6_gre_ipv6_gtpu= _dl_ipv6 )=0D +=0D + def test_mac_ipv6_gre_ipv6_gtpu_dl_ipv6_udp (self):=0D + self.launch_testpmd(param_fdir=3DTrue)=0D + self.fdirprocess.flow_director_validate(tvs_mac_ipv6_gre_ipv6_gtpu= _dl_ipv6_udp )=0D +=0D + def test_mac_ipv6_gre_ipv6_gtpu_dl_ipv6_tcp (self):=0D + self.launch_testpmd(param_fdir=3DTrue)=0D + self.fdirprocess.flow_director_validate(tvs_mac_ipv6_gre_ipv6_gtpu= _dl_ipv6_tcp )=0D +=0D + def test_outer_mac_ipv4_gre_ipv4_gtpu_eh (self):=0D + self.launch_testpmd(param_fdir=3DTrue)=0D + self.fdirprocess.flow_director_validate(tvs_outer_mac_ipv4_gre_ipv= 4_gtpu_eh )=0D +=0D + def test_outer_mac_ipv4_gre_ipv4_gtpu_ul (self):=0D + self.launch_testpmd(param_fdir=3DTrue)=0D + self.fdirprocess.flow_director_validate(tvs_outer_mac_ipv4_gre_ipv= 4_gtpu_ul )=0D +=0D + def test_outer_mac_ipv4_gre_ipv4_gtpu_dl (self):=0D + self.launch_testpmd(param_fdir=3DTrue)=0D + self.fdirprocess.flow_director_validate(tvs_outer_mac_ipv4_gre_ipv= 4_gtpu_dl )=0D +=0D + def test_outer_mac_ipv4_gre_ipv6_gtpu_eh (self):=0D + self.launch_testpmd(param_fdir=3DTrue)=0D + self.fdirprocess.flow_director_validate(tvs_outer_mac_ipv4_gre_ipv= 6_gtpu_eh )=0D +=0D + def test_outer_mac_ipv4_gre_ipv6_gtpu_ul (self):=0D + self.launch_testpmd(param_fdir=3DTrue)=0D + self.fdirprocess.flow_director_validate(tvs_outer_mac_ipv4_gre_ipv= 6_gtpu_ul )=0D +=0D + def test_outer_mac_ipv4_gre_ipv6_gtpu_dl (self):=0D + self.launch_testpmd(param_fdir=3DTrue)=0D + self.fdirprocess.flow_director_validate(tvs_outer_mac_ipv4_gre_ipv= 6_gtpu_dl )=0D +=0D + def test_outer_mac_ipv6_gre_ipv4_gtpu_eh (self):=0D + self.launch_testpmd(param_fdir=3DTrue)=0D + self.fdirprocess.flow_director_validate(tvs_outer_mac_ipv6_gre_ipv= 4_gtpu_eh )=0D +=0D + def test_outer_mac_ipv6_gre_ipv4_gtpu_ul (self):=0D + self.launch_testpmd(param_fdir=3DTrue)=0D + self.fdirprocess.flow_director_validate(tvs_outer_mac_ipv6_gre_ipv= 4_gtpu_ul )=0D +=0D + def test_outer_mac_ipv6_gre_ipv4_gtpu_dl (self):=0D + self.launch_testpmd(param_fdir=3DTrue)=0D + self.fdirprocess.flow_director_validate(tvs_outer_mac_ipv6_gre_ipv= 4_gtpu_dl )=0D +=0D + def test_outer_mac_ipv6_gre_ipv6_gtpu_eh (self):=0D + self.launch_testpmd(param_fdir=3DTrue)=0D + self.fdirprocess.flow_director_validate(tvs_outer_mac_ipv6_gre_ipv= 6_gtpu_eh )=0D +=0D + def test_outer_mac_ipv6_gre_ipv6_gtpu_ul (self):=0D + self.launch_testpmd(param_fdir=3DTrue)=0D + self.fdirprocess.flow_director_validate(tvs_outer_mac_ipv6_gre_ipv= 6_gtpu_ul )=0D +=0D + def test_outer_mac_ipv6_gre_ipv6_gtpu_dl (self):=0D + self.launch_testpmd(param_fdir=3DTrue)=0D + self.fdirprocess.flow_director_validate(tvs_outer_mac_ipv6_gre_ipv= 6_gtpu_dl )=0D +=0D + def test_negative_cases (self):=0D + negative_rules =3D [=0D + '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 + '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 + '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 + '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 + '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 + ]=0D + self.launch_testpmd(param_fdir=3DTrue)=0D + self.rssprocess.create_rule(negative_rules, check_stats=3DFalse)=0D +=0D + def test_exclusive_cases (self):=0D + result_list =3D []=0D +=0D + self.logger.info('Subcase 1: inner rule and outer rule')=0D + result =3D True=0D + rule_list =3D [=0D + '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 / 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 / e= nd actions queue index 14 / mark id 14 / end']=0D + pkt =3D '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)/GTPPDUSessionCont= ainer(QFI=3D0x3)/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP(sport=3D13, dport= =3D23)'=0D +=0D + self.launch_testpmd(param_fdir=3DTrue)=0D + try:=0D + self.rssprocess.create_rule(rule_list)=0D + except Exception as e:=0D + self.logger.warning('Subcase 1 failed: %s' % e)=0D + result =3D False=0D + hashes, queues =3D self.rssprocess.send_pkt_get_hash_queues(pkts= =3Dpkt)=0D + for queue in queues:=0D + if '0xe' !=3D queue:=0D + result =3D False=0D + self.logger.error('Error: queue index {} !=3D 14'.format(q= ueue))=0D + continue=0D + self.dut.send_expect("flow destroy 0 rule 1", "testpmd>")=0D + hashes, queues =3D self.rssprocess.send_pkt_get_hash_queues(pkts= =3Dpkt)=0D + for queue in queues:=0D + if '0xd' !=3D queue:=0D + result =3D False=0D + self.logger.error('Error: queue index {} !=3D 13'.format(q= ueue))=0D + continue=0D + result_list.append(result)=0D + self.dut.send_expect("quit", "# ")=0D + self.logger.info("*********subcase test result %s" % result_list)= =0D +=0D + self.logger.info('Subcase 2: rule with eh and rule without eh')=0D + result =3D True=0D + rule_list =3D [=0D + '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 / 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 / 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 + pkt =3D ['Ether(dst=3D"00:11:22:33:44:55")/IP()/GRE()/IP()/UDP()/G= TP_U_Header()/GTPPDUSessionContainer()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")= /UDP(sport=3D13, dport=3D23)',=0D + 'Ether(dst=3D"00:11:22:33:44:55")/IP()/GRE()/IP()/UDP()/GT= P_U_Header()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/UDP(sport=3D13, dport=3D2= 3)']=0D +=0D + self.launch_testpmd(param_fdir=3DTrue)=0D + try:=0D + self.rssprocess.create_rule(rule_list)=0D + except Exception as e:=0D + self.logger.warning('Subcase 2 failed: %s' % e)=0D + result =3D False=0D + hashes, queues =3D self.rssprocess.send_pkt_get_hash_queues(pkts= =3Dpkt[0])=0D + for queue in queues:=0D + if '0xd' !=3D queue:=0D + result =3D False=0D + self.logger.error('Error: queue index {} !=3D 13'.format(q= ueue))=0D + continue=0D +=0D + hashes, queues =3D self.rssprocess.send_pkt_get_hash_queues(pkts= =3Dpkt[1])=0D + for queue in queues:=0D + if '0x3' !=3D queue:=0D + result =3D False=0D + self.logger.error('Error: queue index {} !=3D 3'.format(qu= eue))=0D + continue=0D + result_list.append(result)=0D + self.dut.send_expect("quit", "# ")=0D + self.logger.info("*********subcase test result %s" % result_list)= =0D +=0D + self.logger.info('Subcase 3: rule with l4 and rule without l4')=0D + result =3D True=0D + rule_list =3D [=0D + '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 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 / udp src is 13 dst is= 23 / end actions queue index 3 / mark id 3 / end']=0D + pkt =3D ['Ether(dst=3D"00:11:22:33:44:55")/IP()/GRE()/IP()/UDP()/G= TP_U_Header()/GTPPDUSessionContainer()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")= ',=0D + 'Ether(dst=3D"00:11:22:33:44:55")/IP()/GRE()/IP()/UDP()/GT= P_U_Header()/GTPPDUSessionContainer()/IP(src=3D"1.1.2.4", dst=3D"1.1.2.5")/= UDP(sport=3D13, dport=3D23)']=0D +=0D + self.launch_testpmd(param_fdir=3DTrue)=0D + try:=0D + self.rssprocess.create_rule(rule_list)=0D + except Exception as e:=0D + self.logger.warning('Subcase 3 failed: %s' % e)=0D + result =3D False=0D + hashes, queues =3D self.rssprocess.send_pkt_get_hash_queues(pkts= =3Dpkt[0])=0D + for queue in queues:=0D + if '0xd' !=3D queue:=0D + result =3D False=0D + self.logger.error('Error: queue index {} !=3D 13'.format(q= ueue))=0D + continue=0D +=0D + hashes, queues =3D self.rssprocess.send_pkt_get_hash_queues(pkts= =3Dpkt[1])=0D + for queue in queues:=0D + if '0x3' !=3D queue:=0D + result =3D False=0D + self.logger.error('Error: queue index {} !=3D 3'.format(qu= eue))=0D + continue=0D + result_list.append(result)=0D + self.dut.send_expect("quit", "# ")=0D + self.logger.info("*********subcase test result %s" % result_list)= =0D +=0D + self.logger.info('Subcase 4: rule with ul and rule without ul/dl')= =0D + result =3D True=0D + rule_list =3D [=0D + '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 create 0 ingress pattern eth / ipv4 / gre / ipv4 / udp /= gtpu / gtp_psc pdu_t is 1 / ipv4 src is 1.1.2.4 dst is 1.1.2.5 / end actio= ns queue index 3 / mark id 3 / end']=0D + pkt =3D 'Ether(dst=3D"00:11:22:33:44:55")/IP()/GRE()/IP()/UDP()/GT= P_U_Header()/GTPPDUSessionContainer(type=3D1, P=3D1, QFI=3D0x34)/IP(src=3D"= 1.1.2.4", dst=3D"1.1.2.5")'=0D +=0D + self.launch_testpmd(param_fdir=3DTrue)=0D + try:=0D + self.rssprocess.create_rule(rule_list)=0D + except Exception as e:=0D + self.logger.warning('Subcase 4 failed: %s' % e)=0D + result =3D False=0D + hashes, queues =3D self.rssprocess.send_pkt_get_hash_queues(pkts= =3Dpkt)=0D + for queue in queues:=0D + if '0x3' !=3D queue:=0D + result =3D False=0D + self.logger.error('Error: queue index {} !=3D 3'.format(qu= eue))=0D + continue=0D + self.dut.send_expect("flow destroy 0 rule 1", "testpmd>")=0D + hashes, queues =3D self.rssprocess.send_pkt_get_hash_queues(pkts= =3Dpkt)=0D + for queue in queues:=0D + if '0xd' !=3D queue:=0D + result =3D False=0D + self.logger.error('Error: queue index {} !=3D 13'.format(q= ueue))=0D + continue=0D + result_list.append(result)=0D + self.dut.send_expect("quit", "# ")=0D + self.logger.info("*********subcase test result %s" % result_list)= =0D +=0D + self.logger.info('Subcase 5: ipv4/ipv4/ipv4 rule and ipv4/ipv6/ipv= 4 rule')=0D + result =3D True=0D + rule1=3D"flow create 0 ingress pattern eth / ipv4 / gre / ipv4 / u= dp / gtpu / gtp_psc / ipv4 src is 1.1.2.4 dst is 1.1.2.5 / end actions queu= e index 13 / mark id 13 / end"=0D + rule2=3D"flow create 0 ingress pattern eth / ipv4 / gre / ipv6 / u= dp / gtpu / gtp_psc / ipv4 src is 1.1.2.4 dst is 1.1.2.5 / end actions queu= e index 3 / mark id 3 / end"=0D + self.launch_testpmd(param_fdir=3DTrue)=0D + try:=0D + self.rssprocess.create_rule(rule1, check_stats=3DTrue)=0D + self.rssprocess.create_rule(rule2, check_stats=3DFalse)=0D + except Exception as e:=0D + self.logger.warning('Subcase 5 failed: %s' % e)=0D + result =3D False=0D + result_list.append(result)=0D + self.dut.send_expect("quit", "# ")=0D + self.logger.info("*********subcase test result %s" % result_list)= =0D + for i in result_list:=0D + self.verify( i is True, 'some subcase fail')=0D --=20 2.25.1