From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 54A94A0093 for ; Fri, 22 May 2020 11:42:36 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 4C2451D969; Fri, 22 May 2020 11:42:36 +0200 (CEST) Received: from mail-wm1-f47.google.com (mail-wm1-f47.google.com [209.85.128.47]) by dpdk.org (Postfix) with ESMTP id C18711D969 for ; Fri, 22 May 2020 11:42:35 +0200 (CEST) Received: by mail-wm1-f47.google.com with SMTP id u188so9203862wmu.1 for ; Fri, 22 May 2020 02:42:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=zisRSShbW1kQcCIZ/LIpRZuVpUjvbCBldcZg/WkzRGs=; b=JhQeU4AK6kjoOti5xGl8hk7KHpu8d3VT+r8ELrpIt3pguzYvzcy5QYbdKpk9n1uQ1A bExuN2FcI3M5FILlWLZ7ch2Vf0MOID4SHUtOLH7Z0GPu959RrxKO1XXwuU5Hdx9mCQ7v LUCKeKgzrBLgWi6fnwD9HcRBep47qhICoGaVcHZflQ2osTW8jeTWbyv93B6YUTSVegQu X6gRMCxCWzyIpHXV/b5/2LbSpRp+lE03F5nZPEBRPJGVyGSmIf49jf5AuYc3JtSgfxHF Jkw/Roy/dbkcYSyhsTjwzFPXdxhXFrM591U5SU8IF1UCL0ZgFiGVRgkNJMH5rONGiF6z bjUQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=zisRSShbW1kQcCIZ/LIpRZuVpUjvbCBldcZg/WkzRGs=; b=pEqED+F6nLMGMDYuHT9a1009cjwZyIsjdWR2HoPK3tV519/dXDt9cmC3ZPxpgkTbp9 u9iaD2esKStOriOYtyJFuKCDApxzBUm4aq29acNbBilWZnXNvzKOmkuZHe9MC7nWoE7e pyKd0OjymNfM9GWK1FAHCE0mt+/+9aLwjFP0IC+wDak45KAhq/DjY4EaqDqNTuD+NWwQ EgtfOLeuEQRP5OkQSoElkZbICF+Xfs/R82Cl1CBH/J4MnNlCD9FpfPg4WOYKzQd0aDjk 6FJMFbcs+o7V/rS4wBa7npI+pnaFfN9fDVQ/5symLcJYWkGzugGhylgWNpwrqXH9KkEE IIpQ== X-Gm-Message-State: AOAM530HMtGvBWhyPlj01vhwCtvLntRUiFMZbsbCssbUUbEcdD0KUOsH K197PX0SsOffzpuE0YCUyaKbunvpmJEa+Q== X-Google-Smtp-Source: ABdhPJw0LGfw3iXMv6wvOU6XLu0FXfa7uTtBxv7BN1e94qqBQOk9vK8G2lN1CRkunsOmUnJWXPLezA== X-Received: by 2002:a1c:b141:: with SMTP id a62mr12152025wmf.7.1590140555430; Fri, 22 May 2020 02:42:35 -0700 (PDT) Received: from localhost ([88.98.246.218]) by smtp.gmail.com with ESMTPSA id n65sm8340126wmb.48.2020.05.22.02.42.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 22 May 2020 02:42:34 -0700 (PDT) From: luca.boccassi@gmail.com To: Qi Zhang Cc: Qiming Yang , Simei Su , dpdk stable Date: Fri, 22 May 2020 10:40:20 +0100 Message-Id: <20200522094022.1025696-41-luca.boccassi@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200522094022.1025696-1-luca.boccassi@gmail.com> References: <20200519130549.112823-214-luca.boccassi@gmail.com> <20200522094022.1025696-1-luca.boccassi@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: [dpdk-stable] patch 'net/ice: fix RSS for GTPU' has been queued to stable release 19.11.3 X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches for DPDK stable branches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: stable-bounces@dpdk.org Sender: "stable" Hi, FYI, your patch has been queued to stable release 19.11.3 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 05/24/20. So please shout if anyone has objections. Also note that after the patch there's a diff of the upstream commit vs the patch applied to the branch. This will indicate if there was any rebasing needed to apply to the stable branch. If there were code changes for rebasing (ie: not only metadata diffs), please double check that the rebase was correctly done. Thanks. Luca Boccassi --- >From 69516f9e3f5a7e764c294fda1c2ada65755170db Mon Sep 17 00:00:00 2001 From: Qi Zhang Date: Wed, 13 May 2020 20:11:44 +0800 Subject: [PATCH] net/ice: fix RSS for GTPU [ upstream commit 31fc9249c7212e3a6333f45110145b19432b1c1c ] All supported pattern for GTPU include extend header: pattern_eth_ipv4_gtpu_eh_ipv4 pattern_eth_ipv4_gtpu_eh_ipv4_udp pattern_eth_ipv4_gtpu_eh_ipv4_tcp So the RSS rule should only take effect on GTPU packet that contains extend header. The patch fix above issue and also allow inner l4 port as input set. Fixes: c08a72c79c7f ("net/ice: fix pattern name of GTPU with extension header") Signed-off-by: Qi Zhang Acked-by: Qiming Yang Tested-by: Simei Su --- drivers/net/ice/base/ice_flow.c | 42 +++++++++++++++++++++++---------- drivers/net/ice/base/ice_flow.h | 1 + drivers/net/ice/ice_hash.c | 10 +++++--- 3 files changed, 38 insertions(+), 15 deletions(-) diff --git a/drivers/net/ice/base/ice_flow.c b/drivers/net/ice/base/ice_flow.c index c3a31374ea..9d58d284f3 100644 --- a/drivers/net/ice/base/ice_flow.c +++ b/drivers/net/ice/base/ice_flow.c @@ -548,11 +548,41 @@ ice_flow_proc_seg_hdrs(struct ice_flow_prof_params *params) (const ice_bitmap_t *)ice_ptypes_ipv4_il; ice_and_bitmap(params->ptypes, params->ptypes, src, ICE_FLOW_PTYPE_MAX); + if (hdrs & ICE_FLOW_SEG_HDR_UDP) { + src = (const ice_bitmap_t *)ice_ptypes_udp_il; + ice_and_bitmap(params->ptypes, + params->ptypes, src, + ICE_FLOW_PTYPE_MAX); + } else if (hdrs & ICE_FLOW_SEG_HDR_TCP) { + ice_and_bitmap(params->ptypes, params->ptypes, + (const ice_bitmap_t *) + ice_ptypes_tcp_il, + ICE_FLOW_PTYPE_MAX); + } else if (hdrs & ICE_FLOW_SEG_HDR_SCTP) { + src = (const ice_bitmap_t *)ice_ptypes_sctp_il; + ice_and_bitmap(params->ptypes, params->ptypes, + src, ICE_FLOW_PTYPE_MAX); + } } else if (hdrs & ICE_FLOW_SEG_HDR_IPV6) { src = !i ? (const ice_bitmap_t *)ice_ptypes_ipv6_ofos : (const ice_bitmap_t *)ice_ptypes_ipv6_il; ice_and_bitmap(params->ptypes, params->ptypes, src, ICE_FLOW_PTYPE_MAX); + if (hdrs & ICE_FLOW_SEG_HDR_UDP) { + src = (const ice_bitmap_t *)ice_ptypes_udp_il; + ice_and_bitmap(params->ptypes, + params->ptypes, src, + ICE_FLOW_PTYPE_MAX); + } else if (hdrs & ICE_FLOW_SEG_HDR_TCP) { + ice_and_bitmap(params->ptypes, params->ptypes, + (const ice_bitmap_t *) + ice_ptypes_tcp_il, + ICE_FLOW_PTYPE_MAX); + } else if (hdrs & ICE_FLOW_SEG_HDR_SCTP) { + src = (const ice_bitmap_t *)ice_ptypes_sctp_il; + ice_and_bitmap(params->ptypes, params->ptypes, + src, ICE_FLOW_PTYPE_MAX); + } } if (hdrs & ICE_FLOW_SEG_HDR_ICMP) { @@ -560,18 +590,6 @@ ice_flow_proc_seg_hdrs(struct ice_flow_prof_params *params) (const ice_bitmap_t *)ice_ptypes_icmp_il; ice_and_bitmap(params->ptypes, params->ptypes, src, ICE_FLOW_PTYPE_MAX); - } else if (hdrs & ICE_FLOW_SEG_HDR_UDP) { - src = (const ice_bitmap_t *)ice_ptypes_udp_il; - ice_and_bitmap(params->ptypes, params->ptypes, src, - ICE_FLOW_PTYPE_MAX); - } else if (hdrs & ICE_FLOW_SEG_HDR_TCP) { - ice_and_bitmap(params->ptypes, params->ptypes, - (const ice_bitmap_t *)ice_ptypes_tcp_il, - ICE_FLOW_PTYPE_MAX); - } else if (hdrs & ICE_FLOW_SEG_HDR_SCTP) { - src = (const ice_bitmap_t *)ice_ptypes_sctp_il; - ice_and_bitmap(params->ptypes, params->ptypes, src, - ICE_FLOW_PTYPE_MAX); } else if (hdrs & ICE_FLOW_SEG_HDR_GRE) { if (!i) { src = (const ice_bitmap_t *)ice_ptypes_gre_of; diff --git a/drivers/net/ice/base/ice_flow.h b/drivers/net/ice/base/ice_flow.h index 94a3801c9a..9b314a1eaa 100644 --- a/drivers/net/ice/base/ice_flow.h +++ b/drivers/net/ice/base/ice_flow.h @@ -118,6 +118,7 @@ enum ice_flow_seg_hdr { * ICE_FLOW_SEG_HDR_GTPU_UP 1 1 */ #define ICE_FLOW_SEG_HDR_GTPU (ICE_FLOW_SEG_HDR_GTPU_IP | \ + ICE_FLOW_SEG_HDR_GTPU_EH | \ ICE_FLOW_SEG_HDR_GTPU_DWN | \ ICE_FLOW_SEG_HDR_GTPU_UP) diff --git a/drivers/net/ice/ice_hash.c b/drivers/net/ice/ice_hash.c index 0fdd4d68d4..23c455762b 100644 --- a/drivers/net/ice/ice_hash.c +++ b/drivers/net/ice/ice_hash.c @@ -95,7 +95,7 @@ struct rss_type_match_hdr hint_7 = { struct rss_type_match_hdr hint_8 = { ICE_FLOW_SEG_HDR_IPV6 | ICE_FLOW_SEG_HDR_SCTP, ETH_RSS_NONFRAG_IPV6_SCTP}; struct rss_type_match_hdr hint_9 = { - ICE_FLOW_SEG_HDR_GTPU_IP, ETH_RSS_IPV4}; + ICE_FLOW_SEG_HDR_GTPU_EH, ETH_RSS_IPV4}; struct rss_type_match_hdr hint_10 = { ICE_FLOW_SEG_HDR_PPPOE, ETH_RSS_IPV4}; struct rss_type_match_hdr hint_11 = { @@ -104,6 +104,10 @@ struct rss_type_match_hdr hint_12 = { ICE_FLOW_SEG_HDR_PPPOE, ETH_RSS_NONFRAG_IPV4_TCP}; struct rss_type_match_hdr hint_13 = { ICE_FLOW_SEG_HDR_PPPOE, ETH_RSS_NONFRAG_IPV4_SCTP}; +struct rss_type_match_hdr hint_14 = { + ICE_FLOW_SEG_HDR_GTPU_EH, ETH_RSS_NONFRAG_IPV4_UDP}; +struct rss_type_match_hdr hint_15 = { + ICE_FLOW_SEG_HDR_GTPU_EH, ETH_RSS_NONFRAG_IPV4_TCP}; /* Supported pattern for os default package. */ static struct ice_pattern_match_item ice_hash_pattern_list_os[] = { @@ -130,8 +134,8 @@ static struct ice_pattern_match_item ice_hash_pattern_list_comms[] = { {pattern_eth_ipv6_sctp, ICE_INSET_NONE, &hint_8}, {pattern_empty, ICE_INSET_NONE, &hint_0}, {pattern_eth_ipv4_gtpu_eh_ipv4, ICE_INSET_NONE, &hint_9}, - {pattern_eth_ipv4_gtpu_eh_ipv4_udp, ICE_INSET_NONE, &hint_9}, - {pattern_eth_ipv4_gtpu_eh_ipv4_tcp, ICE_INSET_NONE, &hint_9}, + {pattern_eth_ipv4_gtpu_eh_ipv4_udp, ICE_INSET_NONE, &hint_14}, + {pattern_eth_ipv4_gtpu_eh_ipv4_tcp, ICE_INSET_NONE, &hint_15}, {pattern_eth_pppoes_ipv4, ICE_INSET_NONE, &hint_10}, {pattern_eth_pppoes_ipv4_udp, ICE_INSET_NONE, &hint_11}, {pattern_eth_pppoes_ipv4_tcp, ICE_INSET_NONE, &hint_12}, -- 2.20.1 --- Diff of the applied patch vs upstream commit (please double-check if non-empty: --- --- - 2020-05-22 10:37:40.823041199 +0100 +++ 0041-net-ice-fix-RSS-for-GTPU.patch 2020-05-22 10:37:39.260415080 +0100 @@ -1,8 +1,10 @@ -From 31fc9249c7212e3a6333f45110145b19432b1c1c Mon Sep 17 00:00:00 2001 +From 69516f9e3f5a7e764c294fda1c2ada65755170db Mon Sep 17 00:00:00 2001 From: Qi Zhang Date: Wed, 13 May 2020 20:11:44 +0800 Subject: [PATCH] net/ice: fix RSS for GTPU +[ upstream commit 31fc9249c7212e3a6333f45110145b19432b1c1c ] + All supported pattern for GTPU include extend header: pattern_eth_ipv4_gtpu_eh_ipv4 pattern_eth_ipv4_gtpu_eh_ipv4_udp @@ -13,7 +15,6 @@ as input set. Fixes: c08a72c79c7f ("net/ice: fix pattern name of GTPU with extension header") -Cc: stable@dpdk.org Signed-off-by: Qi Zhang Acked-by: Qiming Yang @@ -25,10 +26,10 @@ 3 files changed, 38 insertions(+), 15 deletions(-) diff --git a/drivers/net/ice/base/ice_flow.c b/drivers/net/ice/base/ice_flow.c -index 08e646b04e..e741f59400 100644 +index c3a31374ea..9d58d284f3 100644 --- a/drivers/net/ice/base/ice_flow.c +++ b/drivers/net/ice/base/ice_flow.c -@@ -694,11 +694,41 @@ ice_flow_proc_seg_hdrs(struct ice_flow_prof_params *params) +@@ -548,11 +548,41 @@ ice_flow_proc_seg_hdrs(struct ice_flow_prof_params *params) (const ice_bitmap_t *)ice_ptypes_ipv4_il; ice_and_bitmap(params->ptypes, params->ptypes, src, ICE_FLOW_PTYPE_MAX); @@ -70,7 +71,7 @@ } if (hdrs & ICE_FLOW_SEG_HDR_ICMP) { -@@ -706,18 +736,6 @@ ice_flow_proc_seg_hdrs(struct ice_flow_prof_params *params) +@@ -560,18 +590,6 @@ ice_flow_proc_seg_hdrs(struct ice_flow_prof_params *params) (const ice_bitmap_t *)ice_ptypes_icmp_il; ice_and_bitmap(params->ptypes, params->ptypes, src, ICE_FLOW_PTYPE_MAX); @@ -90,19 +91,19 @@ if (!i) { src = (const ice_bitmap_t *)ice_ptypes_gre_of; diff --git a/drivers/net/ice/base/ice_flow.h b/drivers/net/ice/base/ice_flow.h -index 3897d8b884..c8a0483e38 100644 +index 94a3801c9a..9b314a1eaa 100644 --- a/drivers/net/ice/base/ice_flow.h +++ b/drivers/net/ice/base/ice_flow.h -@@ -160,6 +160,7 @@ enum ice_flow_seg_hdr { +@@ -118,6 +118,7 @@ enum ice_flow_seg_hdr { * ICE_FLOW_SEG_HDR_GTPU_UP 1 1 */ #define ICE_FLOW_SEG_HDR_GTPU (ICE_FLOW_SEG_HDR_GTPU_IP | \ + ICE_FLOW_SEG_HDR_GTPU_EH | \ ICE_FLOW_SEG_HDR_GTPU_DWN | \ ICE_FLOW_SEG_HDR_GTPU_UP) - #define ICE_FLOW_SEG_HDR_PFCP (ICE_FLOW_SEG_HDR_PFCP_NODE | \ + diff --git a/drivers/net/ice/ice_hash.c b/drivers/net/ice/ice_hash.c -index 72c8ddc9a8..11435cbfbe 100644 +index 0fdd4d68d4..23c455762b 100644 --- a/drivers/net/ice/ice_hash.c +++ b/drivers/net/ice/ice_hash.c @@ -95,7 +95,7 @@ struct rss_type_match_hdr hint_7 = {