Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/73497/?format=api
https://patches.dpdk.org/api/patches/73497/?format=api", "web_url": "https://patches.dpdk.org/project/dpdk/patch/20200708042613.249847-2-junfeng.guo@intel.com/", "project": { "id": 1, "url": "https://patches.dpdk.org/api/projects/1/?format=api", "name": "DPDK", "link_name": "dpdk", "list_id": "dev.dpdk.org", "list_email": "dev@dpdk.org", "web_url": "http://core.dpdk.org", "scm_url": "git://dpdk.org/dpdk", "webscm_url": "http://git.dpdk.org/dpdk", "list_archive_url": "https://inbox.dpdk.org/dev", "list_archive_url_format": "https://inbox.dpdk.org/dev/{}", "commit_url_format": "" }, "msgid": "<20200708042613.249847-2-junfeng.guo@intel.com>", "list_archive_url": "https://inbox.dpdk.org/dev/20200708042613.249847-2-junfeng.guo@intel.com", "date": "2020-07-08T04:26:12", "name": "[v4,1/2] net/ice: add FD support for GTPU with outer IPv4 and IPv6", "commit_ref": null, "pull_url": null, "state": "accepted", "archived": true, "hash": "19855ef4db9d79d8c0da4d297eafed9f830f5bef", "submitter": { "id": 1785, "url": "https://patches.dpdk.org/api/people/1785/?format=api", "name": "Junfeng Guo", "email": "junfeng.guo@intel.com" }, "delegate": { "id": 1540, "url": "https://patches.dpdk.org/api/users/1540/?format=api", "username": "qzhan15", "first_name": "Qi", "last_name": "Zhang", "email": "qi.z.zhang@intel.com" }, "mbox": "https://patches.dpdk.org/project/dpdk/patch/20200708042613.249847-2-junfeng.guo@intel.com/mbox/", "series": [ { "id": 10873, "url": "https://patches.dpdk.org/api/series/10873/?format=api", "web_url": "https://patches.dpdk.org/project/dpdk/list/?series=10873", "date": "2020-07-08T04:26:11", "name": "add FD support for GTPU with outer IP on PF and VF", "version": 4, "mbox": "https://patches.dpdk.org/series/10873/mbox/" } ], "comments": "https://patches.dpdk.org/api/patches/73497/comments/", "check": "fail", "checks": "https://patches.dpdk.org/api/patches/73497/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "<dev-bounces@dpdk.org>", "X-Original-To": "patchwork@inbox.dpdk.org", "Delivered-To": "patchwork@inbox.dpdk.org", "Received": [ "from dpdk.org (dpdk.org [92.243.14.124])\n\tby inbox.dpdk.org (Postfix) with ESMTP id 613F8A00BE;\n\tWed, 8 Jul 2020 06:28:06 +0200 (CEST)", "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id 988821DE32;\n\tWed, 8 Jul 2020 06:28:00 +0200 (CEST)", "from mga03.intel.com (mga03.intel.com [134.134.136.65])\n by dpdk.org (Postfix) with ESMTP id 359DC1DE23\n for <dev@dpdk.org>; Wed, 8 Jul 2020 06:27:59 +0200 (CEST)", "from orsmga008.jf.intel.com ([10.7.209.65])\n by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 07 Jul 2020 21:27:58 -0700", "from dpdk-junfengguo-v3.sh.intel.com ([10.67.119.146])\n by orsmga008.jf.intel.com with ESMTP; 07 Jul 2020 21:27:55 -0700" ], "IronPort-SDR": [ "\n q7VKzC4ZAOq51aETxGACvWKHyp8COuLZBzAR4kCwaWab0vzM5ETjhH6gGJXbHuSH0lV7e2gBe+\n tQwhWYJpViRQ==", "\n qQ0g23vFGXiUcXQPl6UMueegXbBRNGJlYGMdX2tCAzYq4v8ESrqwq4ZHLKpQruNXEx/uhMrJ5A\n dAAQcYPqQOuA==" ], "X-IronPort-AV": [ "E=McAfee;i=\"6000,8403,9675\"; a=\"147743868\"", "E=Sophos;i=\"5.75,326,1589266800\"; d=\"scan'208\";a=\"147743868\"", "E=Sophos;i=\"5.75,326,1589266800\"; d=\"scan'208\";a=\"314524759\"" ], "X-Amp-Result": "SKIPPED(no attachment in message)", "X-Amp-File-Uploaded": "False", "X-ExtLoop1": "1", "From": "Junfeng Guo <junfeng.guo@intel.com>", "To": "qi.z.zhang@intel.com,\n\txiaolong.ye@intel.com,\n\tbeilei.xing@intel.com", "Cc": "dev@dpdk.org, jia.guo@intel.com, junfeng.guo@intel.com, simei.su@intel.com", "Date": "Wed, 8 Jul 2020 12:26:12 +0800", "Message-Id": "<20200708042613.249847-2-junfeng.guo@intel.com>", "X-Mailer": "git-send-email 2.25.1", "In-Reply-To": "<20200708042613.249847-1-junfeng.guo@intel.com>", "References": "<20200617024355.44220-1-junfeng.guo@intel.com>\n <20200708042613.249847-1-junfeng.guo@intel.com>", "MIME-Version": "1.0", "Content-Transfer-Encoding": "8bit", "Subject": "[dpdk-dev] [PATCH v4 1/2] net/ice: add FD support for GTPU with\n\touter IPv4 and IPv6", "X-BeenThere": "dev@dpdk.org", "X-Mailman-Version": "2.1.15", "Precedence": "list", "List-Id": "DPDK patches and discussions <dev.dpdk.org>", "List-Unsubscribe": "<https://mails.dpdk.org/options/dev>,\n <mailto:dev-request@dpdk.org?subject=unsubscribe>", "List-Archive": "<http://mails.dpdk.org/archives/dev/>", "List-Post": "<mailto:dev@dpdk.org>", "List-Help": "<mailto:dev-request@dpdk.org?subject=help>", "List-Subscribe": "<https://mails.dpdk.org/listinfo/dev>,\n <mailto:dev-request@dpdk.org?subject=subscribe>", "Errors-To": "dev-bounces@dpdk.org", "Sender": "\"dev\" <dev-bounces@dpdk.org>" }, "content": "Add FDir support for MAC_IPV4_GTPU and MAC_IPV6_GTPU type with outer\nIPv4/IPv6 address, teid and qfi fields matching. Note that outer IPv4\nand IPv6 matching fields here include both SRC & DST of both IPv4 &\nIPv6.\n\nSigned-off-by: Junfeng Guo <junfeng.guo@intel.com>\n---\n drivers/net/ice/ice_fdir_filter.c | 53 ++++++++++++++++++++++++++----\n drivers/net/ice/ice_generic_flow.c | 33 ++++++++++++++++---\n drivers/net/ice/ice_generic_flow.h | 12 +++++--\n 3 files changed, 85 insertions(+), 13 deletions(-)", "diff": "diff --git a/drivers/net/ice/ice_fdir_filter.c b/drivers/net/ice/ice_fdir_filter.c\nindex 3bee4a103..710995749 100644\n--- a/drivers/net/ice/ice_fdir_filter.c\n+++ b/drivers/net/ice/ice_fdir_filter.c\n@@ -70,13 +70,20 @@\n \tICE_FDIR_INSET_VXLAN_IPV4 | \\\n \tICE_INSET_TUN_SCTP_SRC_PORT | ICE_INSET_TUN_SCTP_DST_PORT)\n \n-#define ICE_FDIR_INSET_GTPU (\\\n+#define ICE_FDIR_INSET_IPV4_GTPU (\\\n \tICE_INSET_IPV4_SRC | ICE_INSET_IPV4_DST | ICE_INSET_GTPU_TEID)\n \n-#define ICE_FDIR_INSET_GTPU_EH (\\\n+#define ICE_FDIR_INSET_IPV4_GTPU_EH (\\\n \tICE_INSET_IPV4_SRC | ICE_INSET_IPV4_DST | \\\n \tICE_INSET_GTPU_TEID | ICE_INSET_GTPU_QFI)\n \n+#define ICE_FDIR_INSET_IPV6_GTPU (\\\n+\tICE_INSET_IPV6_SRC | ICE_INSET_IPV6_DST | ICE_INSET_GTPU_TEID)\n+\n+#define ICE_FDIR_INSET_IPV6_GTPU_EH (\\\n+\tICE_INSET_IPV6_SRC | ICE_INSET_IPV6_DST | \\\n+\tICE_INSET_GTPU_TEID | ICE_INSET_GTPU_QFI)\n+\n static struct ice_pattern_match_item ice_fdir_pattern_os[] = {\n \t{pattern_eth_ipv4, ICE_FDIR_INSET_ETH_IPV4, ICE_INSET_NONE},\n \t{pattern_eth_ipv4_udp, ICE_FDIR_INSET_ETH_IPV4_UDP, ICE_INSET_NONE},\n@@ -130,8 +137,10 @@ static struct ice_pattern_match_item ice_fdir_pattern_comms[] = {\n \t\t\t\t ICE_FDIR_INSET_VXLAN_IPV4_TCP, ICE_INSET_NONE},\n \t{pattern_eth_ipv4_udp_vxlan_eth_ipv4_sctp,\n \t\t\t\t ICE_FDIR_INSET_VXLAN_IPV4_SCTP, ICE_INSET_NONE},\n-\t{pattern_eth_ipv4_gtpu,\t ICE_FDIR_INSET_GTPU, ICE_INSET_NONE},\n-\t{pattern_eth_ipv4_gtpu_eh, ICE_FDIR_INSET_GTPU_EH, ICE_INSET_NONE},\n+\t{pattern_eth_ipv4_gtpu,\t ICE_FDIR_INSET_IPV4_GTPU, ICE_INSET_NONE},\n+\t{pattern_eth_ipv4_gtpu_eh, ICE_FDIR_INSET_IPV4_GTPU_EH, ICE_INSET_NONE},\n+\t{pattern_eth_ipv6_gtpu,\t ICE_FDIR_INSET_IPV6_GTPU, ICE_INSET_NONE},\n+\t{pattern_eth_ipv6_gtpu_eh, ICE_FDIR_INSET_IPV6_GTPU_EH, ICE_INSET_NONE},\n };\n \n static struct ice_flow_parser ice_fdir_parser_os;\n@@ -782,6 +791,21 @@ ice_fdir_cross_prof_conflict(struct ice_pf *pf,\n \t\t\t(pf, cflct_ptype, is_tunnel))\n \t\t\tgoto err;\n \t\tbreak;\n+\t/* IPv6 GTPU */\n+\tcase ICE_FLTR_PTYPE_NONF_IPV6_GTPU_IPV6_OTHER:\n+\t\tcflct_ptype = ICE_FLTR_PTYPE_NONF_IPV6_GTPU_IPV6_OTHER;\n+\t\tif (!ice_fdir_prof_resolve_conflict\n+\t\t\t(pf, cflct_ptype, is_tunnel))\n+\t\t\tgoto err;\n+\t\tcflct_ptype = ICE_FLTR_PTYPE_NONF_IPV6_GTPU_IPV6_OTHER;\n+\t\tif (!ice_fdir_prof_resolve_conflict\n+\t\t\t(pf, cflct_ptype, is_tunnel))\n+\t\t\tgoto err;\n+\t\tcflct_ptype = ICE_FLTR_PTYPE_NONF_IPV6_GTPU_IPV6_OTHER;\n+\t\tif (!ice_fdir_prof_resolve_conflict\n+\t\t\t(pf, cflct_ptype, is_tunnel))\n+\t\t\tgoto err;\n+\t\tbreak;\n \t/* IPv6 */\n \tcase ICE_FLTR_PTYPE_NONF_IPV6_UDP:\n \tcase ICE_FLTR_PTYPE_NONF_IPV6_TCP:\n@@ -1013,6 +1037,19 @@ ice_fdir_input_set_conf(struct ice_pf *pf, enum ice_fltr_ptype flow,\n \t\telse\n \t\t\tPMD_DRV_LOG(ERR, \"not supported tunnel type.\");\n \t\tbreak;\n+\tcase ICE_FLTR_PTYPE_NONF_IPV6_GTPU_IPV6_OTHER:\n+\t\tif (ttype == ICE_FDIR_TUNNEL_TYPE_GTPU)\n+\t\t\tICE_FLOW_SET_HDRS(seg, ICE_FLOW_SEG_HDR_GTPU_IP |\n+\t\t\t\t\t ICE_FLOW_SEG_HDR_IPV6 |\n+\t\t\t\t\t ICE_FLOW_SEG_HDR_IPV_OTHER);\n+\t\telse if (ttype == ICE_FDIR_TUNNEL_TYPE_GTPU_EH)\n+\t\t\tICE_FLOW_SET_HDRS(seg, ICE_FLOW_SEG_HDR_GTPU_EH |\n+\t\t\t\t\t ICE_FLOW_SEG_HDR_GTPU_IP |\n+\t\t\t\t\t ICE_FLOW_SEG_HDR_IPV6 |\n+\t\t\t\t\t ICE_FLOW_SEG_HDR_IPV_OTHER);\n+\t\telse\n+\t\t\tPMD_DRV_LOG(ERR, \"not supported tunnel type.\");\n+\t\tbreak;\n \tcase ICE_FLTR_PTYPE_NON_IP_L2:\n \t\tICE_FLOW_SET_HDRS(seg, ICE_FLOW_SEG_HDR_ETH_NON_IP);\n \t\tbreak;\n@@ -1970,8 +2007,12 @@ ice_fdir_parse_pattern(__rte_unused struct ice_adapter *ad,\n \t}\n \n \tif (tunnel_type == ICE_FDIR_TUNNEL_TYPE_GTPU ||\n-\t tunnel_type == ICE_FDIR_TUNNEL_TYPE_GTPU_EH)\n-\t\tflow_type = ICE_FLTR_PTYPE_NONF_IPV4_GTPU_IPV4_OTHER;\n+\t tunnel_type == ICE_FDIR_TUNNEL_TYPE_GTPU_EH) {\n+\t\tif (flow_type == ICE_FLTR_PTYPE_NONF_IPV4_UDP)\n+\t\t\tflow_type = ICE_FLTR_PTYPE_NONF_IPV4_GTPU_IPV4_OTHER;\n+\t\telse\n+\t\t\tflow_type = ICE_FLTR_PTYPE_NONF_IPV6_GTPU_IPV6_OTHER;\n+\t}\n \n \tfilter->tunnel_type = tunnel_type;\n \tfilter->input.flow_type = flow_type;\ndiff --git a/drivers/net/ice/ice_generic_flow.c b/drivers/net/ice/ice_generic_flow.c\nindex ad103d0e8..9f83a428d 100644\n--- a/drivers/net/ice/ice_generic_flow.c\n+++ b/drivers/net/ice/ice_generic_flow.c\n@@ -1033,7 +1033,7 @@ enum rte_flow_item_type pattern_eth_ipv6_nvgre_eth_ipv6_icmp6[] = {\n \tRTE_FLOW_ITEM_TYPE_END,\n };\n \n-/* GTPU */\n+/*IPv4 GTPU (EH) */\n enum rte_flow_item_type pattern_eth_ipv4_gtpu[] = {\n \tRTE_FLOW_ITEM_TYPE_ETH,\n \tRTE_FLOW_ITEM_TYPE_IPV4,\n@@ -1041,22 +1041,45 @@ enum rte_flow_item_type pattern_eth_ipv4_gtpu[] = {\n \tRTE_FLOW_ITEM_TYPE_GTPU,\n \tRTE_FLOW_ITEM_TYPE_END,\n };\n-enum rte_flow_item_type pattern_eth_ipv4_gtpu_ipv4[] = {\n+\n+enum rte_flow_item_type pattern_eth_ipv4_gtpu_eh[] = {\n \tRTE_FLOW_ITEM_TYPE_ETH,\n \tRTE_FLOW_ITEM_TYPE_IPV4,\n \tRTE_FLOW_ITEM_TYPE_UDP,\n \tRTE_FLOW_ITEM_TYPE_GTPU,\n-\tRTE_FLOW_ITEM_TYPE_IPV4,\n+\tRTE_FLOW_ITEM_TYPE_GTP_PSC,\n \tRTE_FLOW_ITEM_TYPE_END,\n };\n-enum rte_flow_item_type pattern_eth_ipv4_gtpu_eh[] = {\n+\n+/*IPv6 GTPU (EH) */\n+enum rte_flow_item_type pattern_eth_ipv6_gtpu[] = {\n \tRTE_FLOW_ITEM_TYPE_ETH,\n-\tRTE_FLOW_ITEM_TYPE_IPV4,\n+\tRTE_FLOW_ITEM_TYPE_IPV6,\n+\tRTE_FLOW_ITEM_TYPE_UDP,\n+\tRTE_FLOW_ITEM_TYPE_GTPU,\n+\tRTE_FLOW_ITEM_TYPE_END,\n+};\n+\n+enum rte_flow_item_type pattern_eth_ipv6_gtpu_eh[] = {\n+\tRTE_FLOW_ITEM_TYPE_ETH,\n+\tRTE_FLOW_ITEM_TYPE_IPV6,\n \tRTE_FLOW_ITEM_TYPE_UDP,\n \tRTE_FLOW_ITEM_TYPE_GTPU,\n \tRTE_FLOW_ITEM_TYPE_GTP_PSC,\n \tRTE_FLOW_ITEM_TYPE_END,\n };\n+\n+/*IPv4 GTPU IPv4 */\n+enum rte_flow_item_type pattern_eth_ipv4_gtpu_ipv4[] = {\n+\tRTE_FLOW_ITEM_TYPE_ETH,\n+\tRTE_FLOW_ITEM_TYPE_IPV4,\n+\tRTE_FLOW_ITEM_TYPE_UDP,\n+\tRTE_FLOW_ITEM_TYPE_GTPU,\n+\tRTE_FLOW_ITEM_TYPE_IPV4,\n+\tRTE_FLOW_ITEM_TYPE_END,\n+};\n+\n+/*IPv4 GTPU EH IPv4 */\n enum rte_flow_item_type pattern_eth_ipv4_gtpu_eh_ipv4[] = {\n \tRTE_FLOW_ITEM_TYPE_ETH,\n \tRTE_FLOW_ITEM_TYPE_IPV4,\ndiff --git a/drivers/net/ice/ice_generic_flow.h b/drivers/net/ice/ice_generic_flow.h\nindex 492a48cd9..3ce9a1f27 100644\n--- a/drivers/net/ice/ice_generic_flow.h\n+++ b/drivers/net/ice/ice_generic_flow.h\n@@ -361,10 +361,18 @@ extern enum rte_flow_item_type pattern_eth_ipv6_nvgre_eth_ipv6_udp[];\n extern enum rte_flow_item_type pattern_eth_ipv6_nvgre_eth_ipv6_sctp[];\n extern enum rte_flow_item_type pattern_eth_ipv6_nvgre_eth_ipv6_icmp6[];\n \n-/* GTPU */\n+/* IPv4 GTPU (EH) */\n extern enum rte_flow_item_type pattern_eth_ipv4_gtpu[];\n-extern enum rte_flow_item_type pattern_eth_ipv4_gtpu_ipv4[];\n extern enum rte_flow_item_type pattern_eth_ipv4_gtpu_eh[];\n+\n+/* IPv6 GTPU (EH) */\n+extern enum rte_flow_item_type pattern_eth_ipv6_gtpu[];\n+extern enum rte_flow_item_type pattern_eth_ipv6_gtpu_eh[];\n+\n+/* IPv4 GTPU IPv4 */\n+extern enum rte_flow_item_type pattern_eth_ipv4_gtpu_ipv4[];\n+\n+/* IPv4 GTPU EH IPv4 */\n extern enum rte_flow_item_type pattern_eth_ipv4_gtpu_eh_ipv4[];\n extern enum rte_flow_item_type pattern_eth_ipv4_gtpu_eh_ipv4_udp[];\n extern enum rte_flow_item_type pattern_eth_ipv4_gtpu_eh_ipv4_tcp[];\n", "prefixes": [ "v4", "1/2" ] }{ "id": 73497, "url": "