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 64636A0C41; Wed, 6 Oct 2021 19:02:30 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 86009411D7; Wed, 6 Oct 2021 19:01:42 +0200 (CEST) Received: from inva020.nxp.com (inva020.nxp.com [92.121.34.13]) by mails.dpdk.org (Postfix) with ESMTP id A9EE74115E for ; Wed, 6 Oct 2021 19:01:36 +0200 (CEST) Received: from inva020.nxp.com (localhost [127.0.0.1]) by inva020.eu-rdc02.nxp.com (Postfix) with ESMTP id 89A2E1A2403; Wed, 6 Oct 2021 19:01:36 +0200 (CEST) Received: from aprdc01srsp001v.ap-rdc01.nxp.com (aprdc01srsp001v.ap-rdc01.nxp.com [165.114.16.16]) by inva020.eu-rdc02.nxp.com (Postfix) with ESMTP id 274BC1A23FF; Wed, 6 Oct 2021 19:01:36 +0200 (CEST) Received: from lsv03274.swis.in-blr01.nxp.com (lsv03274.swis.in-blr01.nxp.com [92.120.147.114]) by aprdc01srsp001v.ap-rdc01.nxp.com (Postfix) with ESMTP id 85543183AD27; Thu, 7 Oct 2021 01:01:35 +0800 (+08) From: nipun.gupta@nxp.com To: dev@dpdk.org Cc: thomas@monjalon.net, ferruh.yigit@intel.com, hemant.agrawal@nxp.com, sachin.saxena@nxp.com, Vanshika Shukla Date: Wed, 6 Oct 2021 22:31:27 +0530 Message-Id: <20211006170131.32616-7-nipun.gupta@nxp.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20211006170131.32616-1-nipun.gupta@nxp.com> References: <20210927122650.30881-1-nipun.gupta@nxp.com> <20211006170131.32616-1-nipun.gupta@nxp.com> X-Virus-Scanned: ClamAV using ClamSMTP Subject: [dpdk-dev] [PATCH v3 06/10] net/dpaa2: update RSS to support additional distributions X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 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" From: Vanshika Shukla This patch updates the RSS support to support following additional distributions: - VLAN - ESP - AH - PPPOE Signed-off-by: Vanshika Shukla Acked-by: Hemant Agrawal --- drivers/net/dpaa2/base/dpaa2_hw_dpni.c | 70 +++++++++++++++++++++++++- drivers/net/dpaa2/dpaa2_ethdev.h | 7 ++- 2 files changed, 75 insertions(+), 2 deletions(-) diff --git a/drivers/net/dpaa2/base/dpaa2_hw_dpni.c b/drivers/net/dpaa2/base/dpaa2_hw_dpni.c index 641e7027f1..08f49af768 100644 --- a/drivers/net/dpaa2/base/dpaa2_hw_dpni.c +++ b/drivers/net/dpaa2/base/dpaa2_hw_dpni.c @@ -210,6 +210,10 @@ dpaa2_distset_to_dpkg_profile_cfg( int l2_configured = 0, l3_configured = 0; int l4_configured = 0, sctp_configured = 0; int mpls_configured = 0; + int vlan_configured = 0; + int esp_configured = 0; + int ah_configured = 0; + int pppoe_configured = 0; memset(kg_cfg, 0, sizeof(struct dpkg_profile_cfg)); while (req_dist_set) { @@ -217,6 +221,7 @@ dpaa2_distset_to_dpkg_profile_cfg( dist_field = 1ULL << loop; switch (dist_field) { case ETH_RSS_L2_PAYLOAD: + case ETH_RSS_ETH: if (l2_configured) break; @@ -231,7 +236,70 @@ dpaa2_distset_to_dpkg_profile_cfg( kg_cfg->extracts[i].extract.from_hdr.type = DPKG_FULL_FIELD; i++; - break; + break; + + case ETH_RSS_PPPOE: + if (pppoe_configured) + break; + kg_cfg->extracts[i].extract.from_hdr.prot = + NET_PROT_PPPOE; + kg_cfg->extracts[i].extract.from_hdr.field = + NH_FLD_PPPOE_SID; + kg_cfg->extracts[i].type = + DPKG_EXTRACT_FROM_HDR; + kg_cfg->extracts[i].extract.from_hdr.type = + DPKG_FULL_FIELD; + i++; + break; + + case ETH_RSS_ESP: + if (esp_configured) + break; + esp_configured = 1; + + kg_cfg->extracts[i].extract.from_hdr.prot = + NET_PROT_IPSEC_ESP; + kg_cfg->extracts[i].extract.from_hdr.field = + NH_FLD_IPSEC_ESP_SPI; + kg_cfg->extracts[i].type = + DPKG_EXTRACT_FROM_HDR; + kg_cfg->extracts[i].extract.from_hdr.type = + DPKG_FULL_FIELD; + i++; + break; + + case ETH_RSS_AH: + if (ah_configured) + break; + ah_configured = 1; + + kg_cfg->extracts[i].extract.from_hdr.prot = + NET_PROT_IPSEC_AH; + kg_cfg->extracts[i].extract.from_hdr.field = + NH_FLD_IPSEC_AH_SPI; + kg_cfg->extracts[i].type = + DPKG_EXTRACT_FROM_HDR; + kg_cfg->extracts[i].extract.from_hdr.type = + DPKG_FULL_FIELD; + i++; + break; + + case ETH_RSS_C_VLAN: + case ETH_RSS_S_VLAN: + if (vlan_configured) + break; + vlan_configured = 1; + + kg_cfg->extracts[i].extract.from_hdr.prot = + NET_PROT_VLAN; + kg_cfg->extracts[i].extract.from_hdr.field = + NH_FLD_VLAN_TCI; + kg_cfg->extracts[i].type = + DPKG_EXTRACT_FROM_HDR; + kg_cfg->extracts[i].extract.from_hdr.type = + DPKG_FULL_FIELD; + i++; + break; case ETH_RSS_MPLS: diff --git a/drivers/net/dpaa2/dpaa2_ethdev.h b/drivers/net/dpaa2/dpaa2_ethdev.h index 3f34d7ecff..fdc62ec30d 100644 --- a/drivers/net/dpaa2/dpaa2_ethdev.h +++ b/drivers/net/dpaa2/dpaa2_ethdev.h @@ -70,7 +70,12 @@ ETH_RSS_UDP | \ ETH_RSS_TCP | \ ETH_RSS_SCTP | \ - ETH_RSS_MPLS) + ETH_RSS_MPLS | \ + ETH_RSS_C_VLAN | \ + ETH_RSS_S_VLAN | \ + ETH_RSS_ESP | \ + ETH_RSS_AH | \ + ETH_RSS_PPPOE) /* LX2 FRC Parsed values (Little Endian) */ #define DPAA2_PKT_TYPE_ETHER 0x0060 -- 2.17.1