From patchwork Fri Oct 30 05:21:59 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Guo, Jia" X-Patchwork-Id: 82857 X-Patchwork-Delegate: qi.z.zhang@intel.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id A8151A04DE; Fri, 30 Oct 2020 06:30:28 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 26B1D4CBD; Fri, 30 Oct 2020 06:30:27 +0100 (CET) Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by dpdk.org (Postfix) with ESMTP id ACDA44C91 for ; Fri, 30 Oct 2020 06:30:24 +0100 (CET) IronPort-SDR: r+4vw8wUqaIbagt7BI30+N5vp93UMfmgIXh/PBfhRHuwxZGGTZtViOOGDJXSnrYRvQPSbAHihL rJhTsqJYDCcA== X-IronPort-AV: E=McAfee;i="6000,8403,9789"; a="165976045" X-IronPort-AV: E=Sophos;i="5.77,432,1596524400"; d="scan'208";a="165976045" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 29 Oct 2020 22:30:22 -0700 IronPort-SDR: YKEtclQf/IagbLVpWL15pARurucXA9NyGIJDc5g0DWfO7I28fl0+iDn/Ml3vx8+ObenHHMw3n5 zaxA35jXaNfA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.77,432,1596524400"; d="scan'208";a="351748058" Received: from npg-dpdk-cvl-jeffguo-01.sh.intel.com ([10.67.111.128]) by fmsmga004.fm.intel.com with ESMTP; 29 Oct 2020 22:30:21 -0700 From: Jeff Guo To: jingjing.wu@intel.com, qi.z.zhang@intel.com, beilei.xing@intel.com Cc: dev@dpdk.org, jia.guo@intel.com Date: Fri, 30 Oct 2020 13:21:59 +0800 Message-Id: <20201030052159.63051-1-jia.guo@intel.com> X-Mailer: git-send-email 2.20.1 MIME-Version: 1.0 Subject: [dpdk-dev] [PATCH v1] net/iavf: fix PROT filed for rss hash X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Add PROT field into IPv4 and IPv6 protocol headers for rss hash. Fixes: 91f27b2e39ab ("net/iavf: refactor RSS") Signed-off-by: Jeff Guo --- drivers/net/iavf/iavf_hash.c | 32 ++++++++++++++++++++------------ 1 file changed, 20 insertions(+), 12 deletions(-) diff --git a/drivers/net/iavf/iavf_hash.c b/drivers/net/iavf/iavf_hash.c index be821b62eb..1b4434c1e1 100644 --- a/drivers/net/iavf/iavf_hash.c +++ b/drivers/net/iavf/iavf_hash.c @@ -99,12 +99,14 @@ iavf_hash_parse_pattern_action(struct iavf_adapter *ad, #define proto_hdr_ipv4 { \ VIRTCHNL_PROTO_HDR_IPV4, \ FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_SRC) | \ - FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_DST), {BUFF_NOUSED} } + FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_DST) | \ + FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV4_PROT), {BUFF_NOUSED} } #define proto_hdr_ipv6 { \ VIRTCHNL_PROTO_HDR_IPV6, \ FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV6_SRC) | \ - FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV6_DST), {BUFF_NOUSED} } + FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV6_DST) | \ + FIELD_SELECTOR(VIRTCHNL_PROTO_HDR_IPV6_PROT), {BUFF_NOUSED} } #define proto_hdr_udp { \ VIRTCHNL_PROTO_HDR_UDP, \ @@ -581,14 +583,17 @@ iavf_refine_proto_hdrs_l234(struct virtchnl_proto_hdrs *proto_hdrs, ETH_RSS_NONFRAG_IPV4_UDP | ETH_RSS_NONFRAG_IPV4_TCP | ETH_RSS_NONFRAG_IPV4_SCTP)) { - if (rss_type & ETH_RSS_L3_SRC_ONLY) + if (rss_type & ETH_RSS_L3_SRC_ONLY) { REFINE_PROTO_FLD(DEL, IPV4_DST); - else if (rss_type & ETH_RSS_L3_DST_ONLY) + REFINE_PROTO_FLD(DEL, IPV4_PROT); + } else if (rss_type & ETH_RSS_L3_DST_ONLY) { REFINE_PROTO_FLD(DEL, IPV4_SRC); - else if (rss_type & - (ETH_RSS_L4_SRC_ONLY | - ETH_RSS_L4_DST_ONLY)) + REFINE_PROTO_FLD(DEL, IPV4_PROT); + } else if (rss_type & + (ETH_RSS_L4_SRC_ONLY | + ETH_RSS_L4_DST_ONLY)) { hdr->field_selector = 0; + } } else { hdr->field_selector = 0; } @@ -599,14 +604,17 @@ iavf_refine_proto_hdrs_l234(struct virtchnl_proto_hdrs *proto_hdrs, ETH_RSS_NONFRAG_IPV6_UDP | ETH_RSS_NONFRAG_IPV6_TCP | ETH_RSS_NONFRAG_IPV6_SCTP)) { - if (rss_type & ETH_RSS_L3_SRC_ONLY) + if (rss_type & ETH_RSS_L3_SRC_ONLY) { REFINE_PROTO_FLD(DEL, IPV6_DST); - else if (rss_type & ETH_RSS_L3_DST_ONLY) + REFINE_PROTO_FLD(DEL, IPV6_PROT); + } else if (rss_type & ETH_RSS_L3_DST_ONLY) { REFINE_PROTO_FLD(DEL, IPV6_SRC); - else if (rss_type & - (ETH_RSS_L4_SRC_ONLY | - ETH_RSS_L4_DST_ONLY)) + REFINE_PROTO_FLD(DEL, IPV6_PROT); + } else if (rss_type & + (ETH_RSS_L4_SRC_ONLY | + ETH_RSS_L4_DST_ONLY)) { hdr->field_selector = 0; + } } else { hdr->field_selector = 0; }