From patchwork Tue Sep 15 06:26:08 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Junfeng Guo X-Patchwork-Id: 77682 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 F08EDA04C7; Tue, 15 Sep 2020 08:29:31 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 532131C129; Tue, 15 Sep 2020 08:28:26 +0200 (CEST) Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by dpdk.org (Postfix) with ESMTP id 6AE5B1C12A for ; Tue, 15 Sep 2020 08:28:24 +0200 (CEST) IronPort-SDR: ucvjOEdFF2dLV0FmGljePyR8Yi7dgSfzlpy0TdaUFtOYFAE0tZDYlu8WRYfR48BAvWV/IPY8eh 5ob7zRmZ4utQ== X-IronPort-AV: E=McAfee;i="6000,8403,9744"; a="160141053" X-IronPort-AV: E=Sophos;i="5.76,428,1592895600"; d="scan'208";a="160141053" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga007.jf.intel.com ([10.7.209.58]) by orsmga102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 Sep 2020 23:28:24 -0700 IronPort-SDR: 7qIOwg11kXwmjHhL3tp977AA3hHqLtjJUIsFO/YKBF6yn2qTyjIydWTGQdMEn7tC0f6YifHqtr h2+tOyyNat5g== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.76,428,1592895600"; d="scan'208";a="345700490" Received: from dpdk-junfengguo-v3.sh.intel.com ([10.67.119.146]) by orsmga007.jf.intel.com with ESMTP; 14 Sep 2020 23:28:22 -0700 From: Junfeng Guo To: qi.z.zhang@intel.com, jingjing.wu@intel.com, beilei.xing@intel.com Cc: dev@dpdk.org, junfeng.guo@intel.com Date: Tue, 15 Sep 2020 14:26:08 +0800 Message-Id: <20200915062609.3786061-2-junfeng.guo@intel.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200915062609.3786061-1-junfeng.guo@intel.com> References: <20200804123920.485253-1-junfeng.guo@intel.com> <20200915062609.3786061-1-junfeng.guo@intel.com> MIME-Version: 1.0 Subject: [dpdk-dev] [PATCH v3 1/2] net/iavf: replace function name with macro 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" Replace some function name with macro to shrink coding charactors. VIRTCHNL_DEL_PROTO_HDR_FIELD, VIRTCHNL_ADD_PROTO_HDR_FIELD --> REFINE_PROTO_FLD. Signed-off-by: Junfeng Guo --- drivers/net/iavf/iavf_hash.c | 42 ++++++++++++++---------------------- 1 file changed, 16 insertions(+), 26 deletions(-) diff --git a/drivers/net/iavf/iavf_hash.c b/drivers/net/iavf/iavf_hash.c index 3152218dc..d8a4dc8bf 100644 --- a/drivers/net/iavf/iavf_hash.c +++ b/drivers/net/iavf/iavf_hash.c @@ -539,6 +539,9 @@ iavf_hash_parse_pattern(struct iavf_pattern_match_item *pattern_match_item, return 0; } +#define REFINE_PROTO_FLD(op, fld) \ + VIRTCHNL_##op##_PROTO_HDR_FIELD(hdr, VIRTCHNL_PROTO_HDR_##fld) + /* refine proto hdrs base on l2, l3, l4 rss type */ static void iavf_refine_proto_hdrs_l234(struct virtchnl_proto_hdrs *proto_hdrs, @@ -554,11 +557,9 @@ iavf_refine_proto_hdrs_l234(struct virtchnl_proto_hdrs *proto_hdrs, if (!(rss_type & ETH_RSS_ETH)) hdr->field_selector = 0; else if (rss_type & ETH_RSS_L2_SRC_ONLY) - VIRTCHNL_DEL_PROTO_HDR_FIELD(hdr, - VIRTCHNL_PROTO_HDR_ETH_DST); + REFINE_PROTO_FLD(DEL, ETH_DST); else if (rss_type & ETH_RSS_L2_DST_ONLY) - VIRTCHNL_DEL_PROTO_HDR_FIELD(hdr, - VIRTCHNL_PROTO_HDR_ETH_SRC); + REFINE_PROTO_FLD(DEL, ETH_SRC); break; case VIRTCHNL_PROTO_HDR_IPV4: if (rss_type & @@ -567,11 +568,9 @@ iavf_refine_proto_hdrs_l234(struct virtchnl_proto_hdrs *proto_hdrs, ETH_RSS_NONFRAG_IPV4_TCP | ETH_RSS_NONFRAG_IPV4_SCTP)) { if (rss_type & ETH_RSS_L3_SRC_ONLY) - VIRTCHNL_DEL_PROTO_HDR_FIELD(hdr, - VIRTCHNL_PROTO_HDR_IPV4_DST); + REFINE_PROTO_FLD(DEL, IPV4_DST); else if (rss_type & ETH_RSS_L3_DST_ONLY) - VIRTCHNL_DEL_PROTO_HDR_FIELD(hdr, - VIRTCHNL_PROTO_HDR_IPV4_SRC); + REFINE_PROTO_FLD(DEL, IPV4_SRC); else if (rss_type & (ETH_RSS_L4_SRC_ONLY | ETH_RSS_L4_DST_ONLY)) @@ -587,11 +586,9 @@ iavf_refine_proto_hdrs_l234(struct virtchnl_proto_hdrs *proto_hdrs, ETH_RSS_NONFRAG_IPV6_TCP | ETH_RSS_NONFRAG_IPV6_SCTP)) { if (rss_type & ETH_RSS_L3_SRC_ONLY) - VIRTCHNL_DEL_PROTO_HDR_FIELD(hdr, - VIRTCHNL_PROTO_HDR_IPV6_DST); + REFINE_PROTO_FLD(DEL, IPV6_DST); else if (rss_type & ETH_RSS_L3_DST_ONLY) - VIRTCHNL_DEL_PROTO_HDR_FIELD(hdr, - VIRTCHNL_PROTO_HDR_IPV6_SRC); + REFINE_PROTO_FLD(DEL, IPV6_SRC); else if (rss_type & (ETH_RSS_L4_SRC_ONLY | ETH_RSS_L4_DST_ONLY)) @@ -605,11 +602,9 @@ iavf_refine_proto_hdrs_l234(struct virtchnl_proto_hdrs *proto_hdrs, (ETH_RSS_NONFRAG_IPV4_UDP | ETH_RSS_NONFRAG_IPV6_UDP)) { if (rss_type & ETH_RSS_L4_SRC_ONLY) - VIRTCHNL_DEL_PROTO_HDR_FIELD(hdr, - VIRTCHNL_PROTO_HDR_UDP_DST_PORT); + REFINE_PROTO_FLD(DEL, UDP_DST_PORT); else if (rss_type & ETH_RSS_L4_DST_ONLY) - VIRTCHNL_DEL_PROTO_HDR_FIELD(hdr, - VIRTCHNL_PROTO_HDR_UDP_SRC_PORT); + REFINE_PROTO_FLD(DEL, UDP_SRC_PORT); else if (rss_type & (ETH_RSS_L3_SRC_ONLY | ETH_RSS_L3_DST_ONLY)) @@ -623,11 +618,9 @@ iavf_refine_proto_hdrs_l234(struct virtchnl_proto_hdrs *proto_hdrs, (ETH_RSS_NONFRAG_IPV4_TCP | ETH_RSS_NONFRAG_IPV6_TCP)) { if (rss_type & ETH_RSS_L4_SRC_ONLY) - VIRTCHNL_DEL_PROTO_HDR_FIELD(hdr, - VIRTCHNL_PROTO_HDR_TCP_DST_PORT); + REFINE_PROTO_FLD(DEL, TCP_DST_PORT); else if (rss_type & ETH_RSS_L4_DST_ONLY) - VIRTCHNL_DEL_PROTO_HDR_FIELD(hdr, - VIRTCHNL_PROTO_HDR_TCP_SRC_PORT); + REFINE_PROTO_FLD(DEL, TCP_SRC_PORT); else if (rss_type & (ETH_RSS_L3_SRC_ONLY | ETH_RSS_L3_DST_ONLY)) @@ -641,11 +634,9 @@ iavf_refine_proto_hdrs_l234(struct virtchnl_proto_hdrs *proto_hdrs, (ETH_RSS_NONFRAG_IPV4_SCTP | ETH_RSS_NONFRAG_IPV6_SCTP)) { if (rss_type & ETH_RSS_L4_SRC_ONLY) - VIRTCHNL_DEL_PROTO_HDR_FIELD(hdr, - VIRTCHNL_PROTO_HDR_SCTP_DST_PORT); + REFINE_PROTO_FLD(DEL, SCTP_DST_PORT); else if (rss_type & ETH_RSS_L4_DST_ONLY) - VIRTCHNL_DEL_PROTO_HDR_FIELD(hdr, - VIRTCHNL_PROTO_HDR_TCP_SRC_PORT); + REFINE_PROTO_FLD(DEL, SCTP_SRC_PORT); else if (rss_type & (ETH_RSS_L3_SRC_ONLY | ETH_RSS_L3_DST_ONLY)) @@ -699,8 +690,7 @@ iavf_refine_proto_hdrs_gtpu(struct virtchnl_proto_hdrs *proto_hdrs, hdr = &proto_hdrs->proto_hdr[i]; switch (hdr->type) { case VIRTCHNL_PROTO_HDR_GTPU_IP: - VIRTCHNL_ADD_PROTO_HDR_FIELD(hdr, - VIRTCHNL_PROTO_HDR_GTPU_IP_TEID); + REFINE_PROTO_FLD(ADD, GTPU_IP_TEID); break; default: break; From patchwork Tue Sep 15 06:26:09 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Junfeng Guo X-Patchwork-Id: 77683 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 D5229A04C7; Tue, 15 Sep 2020 08:29:42 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id D47411C138; Tue, 15 Sep 2020 08:28:27 +0200 (CEST) Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by dpdk.org (Postfix) with ESMTP id 5EE091C12A for ; Tue, 15 Sep 2020 08:28:26 +0200 (CEST) IronPort-SDR: BJ1Kpn3XToaB/1wtmgEBu+U3iZEiU79H3XrYkCL+v+woh34itdUZuwEXmsUf8Mzapus00pAo3C TLJyQLHwXydw== X-IronPort-AV: E=McAfee;i="6000,8403,9744"; a="160141057" X-IronPort-AV: E=Sophos;i="5.76,428,1592895600"; d="scan'208";a="160141057" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga007.jf.intel.com ([10.7.209.58]) by orsmga102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 Sep 2020 23:28:26 -0700 IronPort-SDR: VSgFagZOauVVEVXuRVp9B6chPvuR1BtA2Mr2LVkQvYSuvcIXRkDML8a1qS37lsNonRybVoVSBu C5Kz3208vkCQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.76,428,1592895600"; d="scan'208";a="345700498" Received: from dpdk-junfengguo-v3.sh.intel.com ([10.67.119.146]) by orsmga007.jf.intel.com with ESMTP; 14 Sep 2020 23:28:24 -0700 From: Junfeng Guo To: qi.z.zhang@intel.com, jingjing.wu@intel.com, beilei.xing@intel.com Cc: dev@dpdk.org, junfeng.guo@intel.com Date: Tue, 15 Sep 2020 14:26:09 +0800 Message-Id: <20200915062609.3786061-3-junfeng.guo@intel.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200915062609.3786061-1-junfeng.guo@intel.com> References: <20200804123920.485253-1-junfeng.guo@intel.com> <20200915062609.3786061-1-junfeng.guo@intel.com> MIME-Version: 1.0 Subject: [dpdk-dev] [PATCH v3 2/2] net/iavf: support RSS for IPv6 prefix 64bit 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" RSS for IPv6 prefix 64bit fields are supported in this patch, so that we can use prefix instead of full IPv6 address for RSS. The prefix here only includes the first 64 bits of both SRC and DST IPv6 address. Signed-off-by: Junfeng Guo --- drivers/net/iavf/iavf_hash.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/drivers/net/iavf/iavf_hash.c b/drivers/net/iavf/iavf_hash.c index d8a4dc8bf..c270daf5f 100644 --- a/drivers/net/iavf/iavf_hash.c +++ b/drivers/net/iavf/iavf_hash.c @@ -580,7 +580,28 @@ iavf_refine_proto_hdrs_l234(struct virtchnl_proto_hdrs *proto_hdrs, } break; case VIRTCHNL_PROTO_HDR_IPV6: + if (rss_type & RTE_ETH_RSS_L3_PRE64) { + REFINE_PROTO_FLD(DEL, IPV6_SRC); + REFINE_PROTO_FLD(DEL, IPV6_DST); + REFINE_PROTO_FLD(ADD, IPV6_PREFIX64_SRC); + REFINE_PROTO_FLD(ADD, IPV6_PREFIX64_DST); + } if (rss_type & + (ETH_RSS_IPV6_PRE64 | + ETH_RSS_IPV6_PRE64_UDP | + ETH_RSS_IPV6_PRE64_TCP | + ETH_RSS_IPV6_PRE64_SCTP)) { + if (rss_type & ETH_RSS_L3_SRC_ONLY) + REFINE_PROTO_FLD(DEL, + IPV6_PREFIX64_DST); + else if (rss_type & ETH_RSS_L3_DST_ONLY) + REFINE_PROTO_FLD(DEL, + IPV6_PREFIX64_SRC); + else if (rss_type & + (ETH_RSS_L4_SRC_ONLY | + ETH_RSS_L4_DST_ONLY)) + hdr->field_selector = 0; + } else if (rss_type & (ETH_RSS_IPV6 | ETH_RSS_NONFRAG_IPV6_UDP | ETH_RSS_NONFRAG_IPV6_TCP |