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 D0B3FA0548; Mon, 27 Sep 2021 14:27:40 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 68BB041123; Mon, 27 Sep 2021 14:27:04 +0200 (CEST) Received: from inva021.nxp.com (inva021.nxp.com [92.121.34.21]) by mails.dpdk.org (Postfix) with ESMTP id E6ECC410E4 for ; Mon, 27 Sep 2021 14:26:55 +0200 (CEST) Received: from inva021.nxp.com (localhost [127.0.0.1]) by inva021.eu-rdc02.nxp.com (Postfix) with ESMTP id C7B8B20140E; Mon, 27 Sep 2021 14:26:55 +0200 (CEST) Received: from aprdc01srsp001v.ap-rdc01.nxp.com (aprdc01srsp001v.ap-rdc01.nxp.com [165.114.16.16]) by inva021.eu-rdc02.nxp.com (Postfix) with ESMTP id 434AF201127; Mon, 27 Sep 2021 14:26:55 +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 8ED1C183AD0B; Mon, 27 Sep 2021 20:26:54 +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: Mon, 27 Sep 2021 17:56:46 +0530 Message-Id: <20210927122650.30881-8-nipun.gupta@nxp.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20210927122650.30881-1-nipun.gupta@nxp.com> References: <20210927122650.30881-1-nipun.gupta@nxp.com> X-Virus-Scanned: ClamAV using ClamSMTP Subject: [dpdk-dev] [PATCH 07/11] 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 --- 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 07a6811dd2..e1fe14c8b4 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