From patchwork Mon Oct 5 07:15:04 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nipun Gupta X-Patchwork-Id: 79597 X-Patchwork-Delegate: ferruh.yigit@amd.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 0806AA04BA; Mon, 5 Oct 2020 09:15:17 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 741952C58; Mon, 5 Oct 2020 09:15:16 +0200 (CEST) Received: from inva021.nxp.com (inva021.nxp.com [92.121.34.21]) by dpdk.org (Postfix) with ESMTP id 42B0A1C01 for ; Mon, 5 Oct 2020 09:15:15 +0200 (CEST) Received: from inva021.nxp.com (localhost [127.0.0.1]) by inva021.eu-rdc02.nxp.com (Postfix) with ESMTP id 0033B201299; Mon, 5 Oct 2020 09:15:14 +0200 (CEST) Received: from invc005.ap-rdc01.nxp.com (invc005.ap-rdc01.nxp.com [165.114.16.14]) by inva021.eu-rdc02.nxp.com (Postfix) with ESMTP id 9C4412002C9; Mon, 5 Oct 2020 09:15:10 +0200 (CEST) Received: from lsv03196.swis.in-blr01.nxp.com (lsv03196.swis.in-blr01.nxp.com [92.120.146.192]) by invc005.ap-rdc01.nxp.com (Postfix) with ESMTP id B0739402D6; Mon, 5 Oct 2020 09:15:06 +0200 (CEST) From: nipun.gupta@nxp.com To: dev@dpdk.org Cc: thomas@monjalon.net, ferruh.yigit@intel.com, arybchenko@solarflare.com, hemant.agrawal@nxp.com, sachin.saxena@nxp.com, rohit.raj@nxp.com, Nipun Gupta Date: Mon, 5 Oct 2020 12:45:04 +0530 Message-Id: <20201005071506.28861-1-nipun.gupta@nxp.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200831075333.10135-1-nipun.gupta@nxp.com> References: <20200831075333.10135-1-nipun.gupta@nxp.com> X-Virus-Scanned: ClamAV using ClamSMTP Subject: [dpdk-dev] [PATCH 1/3 v2] ethdev: add rx offload to drop error packets 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" From: Nipun Gupta This change adds a RX offload capability, which once enabled, hardware will drop the packets in case there of any error in the packet such as L3 checksum error or L4 checksum. Signed-off-by: Nipun Gupta Signed-off-by: Rohit Raj Reviewed-By: Asaf Penso --- These patches are based over series: https://patchwork.dpdk.org/patch/78630/ Changes in v2: - Add support in DPAA1 driver (patch 2/3) - Add support and config parameter in testpmd (patch 3/3) lib/librte_ethdev/rte_ethdev.h | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/librte_ethdev/rte_ethdev.h b/lib/librte_ethdev/rte_ethdev.h index 645a18664..314d06c74 100644 --- a/lib/librte_ethdev/rte_ethdev.h +++ b/lib/librte_ethdev/rte_ethdev.h @@ -1260,6 +1260,7 @@ struct rte_eth_conf { #define DEV_RX_OFFLOAD_SCTP_CKSUM 0x00020000 #define DEV_RX_OFFLOAD_OUTER_UDP_CKSUM 0x00040000 #define DEV_RX_OFFLOAD_RSS_HASH 0x00080000 +#define DEV_RX_OFFLOAD_ERR_PKT_DROP 0x00100000 #define DEV_RX_OFFLOAD_CHECKSUM (DEV_RX_OFFLOAD_IPV4_CKSUM | \ DEV_RX_OFFLOAD_UDP_CKSUM | \ From patchwork Mon Oct 5 07:15:05 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nipun Gupta X-Patchwork-Id: 79598 X-Patchwork-Delegate: ferruh.yigit@amd.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 6A376A04BA; Mon, 5 Oct 2020 09:15:34 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 15B531B667; Mon, 5 Oct 2020 09:15:18 +0200 (CEST) Received: from inva020.nxp.com (inva020.nxp.com [92.121.34.13]) by dpdk.org (Postfix) with ESMTP id 2FFC31C01 for ; Mon, 5 Oct 2020 09:15:16 +0200 (CEST) Received: from inva020.nxp.com (localhost [127.0.0.1]) by inva020.eu-rdc02.nxp.com (Postfix) with ESMTP id EF5CE1A07B8; Mon, 5 Oct 2020 09:15:14 +0200 (CEST) Received: from invc005.ap-rdc01.nxp.com (invc005.ap-rdc01.nxp.com [165.114.16.14]) by inva020.eu-rdc02.nxp.com (Postfix) with ESMTP id 85BF21A0754; Mon, 5 Oct 2020 09:15:11 +0200 (CEST) Received: from lsv03196.swis.in-blr01.nxp.com (lsv03196.swis.in-blr01.nxp.com [92.120.146.192]) by invc005.ap-rdc01.nxp.com (Postfix) with ESMTP id 4DF3E402C7; Mon, 5 Oct 2020 09:15:07 +0200 (CEST) From: nipun.gupta@nxp.com To: dev@dpdk.org Cc: thomas@monjalon.net, ferruh.yigit@intel.com, arybchenko@solarflare.com, hemant.agrawal@nxp.com, sachin.saxena@nxp.com, rohit.raj@nxp.com, Nipun Gupta Date: Mon, 5 Oct 2020 12:45:05 +0530 Message-Id: <20201005071506.28861-2-nipun.gupta@nxp.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20201005071506.28861-1-nipun.gupta@nxp.com> References: <20200831075333.10135-1-nipun.gupta@nxp.com> <20201005071506.28861-1-nipun.gupta@nxp.com> X-Virus-Scanned: ClamAV using ClamSMTP Subject: [dpdk-dev] [PATCH 2/3 v2] net/dpaa: support RX offload for error packet drop 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" From: Nipun Gupta This patch supports RX offload capability DEV_RX_OFFLOAD_ERR_PKT_DROP, to drop error packets in the hardware Signed-off-by: Nipun Gupta --- drivers/bus/dpaa/base/fman/fman_hw.c | 7 ++++++- drivers/net/dpaa/dpaa_ethdev.c | 18 ++++++++++++++---- 2 files changed, 20 insertions(+), 5 deletions(-) diff --git a/drivers/bus/dpaa/base/fman/fman_hw.c b/drivers/bus/dpaa/base/fman/fman_hw.c index 4ab49f785..40e4e0000 100644 --- a/drivers/bus/dpaa/base/fman/fman_hw.c +++ b/drivers/bus/dpaa/base/fman/fman_hw.c @@ -597,7 +597,12 @@ void fman_if_discard_rx_errors(struct fman_if *fm_if) { struct __fman_if *__if = container_of(fm_if, struct __fman_if, __if); - unsigned int *fmbm_rfsdm, *fmbm_rfsem; + unsigned int *fmbm_rcfg, *fmbm_rfsdm, *fmbm_rfsem; + unsigned int val; + + fmbm_rcfg = &((struct rx_bmi_regs *)__if->bmi_map)->fmbm_rcfg; + val = in_be32(fmbm_rcfg); + out_be32(fmbm_rcfg, val & ~BMI_PORT_CFG_FDOVR); fmbm_rfsem = &((struct rx_bmi_regs *)__if->bmi_map)->fmbm_rfsem; out_be32(fmbm_rfsem, 0); diff --git a/drivers/net/dpaa/dpaa_ethdev.c b/drivers/net/dpaa/dpaa_ethdev.c index 1f94fc9b9..39f673db5 100644 --- a/drivers/net/dpaa/dpaa_ethdev.c +++ b/drivers/net/dpaa/dpaa_ethdev.c @@ -52,7 +52,8 @@ /* Supported Rx offloads */ static uint64_t dev_rx_offloads_sup = DEV_RX_OFFLOAD_JUMBO_FRAME | - DEV_RX_OFFLOAD_SCATTER; + DEV_RX_OFFLOAD_SCATTER | + DEV_RX_OFFLOAD_ERR_PKT_DROP; /* Rx offloads which cannot be disabled */ static uint64_t dev_rx_offloads_nodis = @@ -262,6 +263,18 @@ dpaa_eth_dev_configure(struct rte_eth_dev *dev) dev->data->scattered_rx = 1; } + if (!(rx_offloads & DEV_RX_OFFLOAD_ERR_PKT_DROP)) { + struct dpaa_if *dpaa_intf = dev->data->dev_private; + struct qman_fq *rxq = &dpaa_intf->rx_queues[0]; + + DPAA_PMD_DEBUG("error packets will not be droppped on hw"); + fman_if_receive_rx_errors(fif, FM_FD_RX_STATUS_ERR_MASK); + fman_if_set_err_fqid(fif, rxq->fqid); + } else { + DPAA_PMD_DEBUG("error packets will be droppped on hw"); + fman_if_discard_rx_errors(fif); + } + if (!(default_q || fmc_q)) { if (dpaa_fm_config(dev, eth_conf->rx_adv_conf.rss_conf.rss_hf)) { @@ -2031,9 +2044,6 @@ dpaa_dev_init(struct rte_eth_dev *eth_dev) fman_intf->mac_addr.addr_bytes[5]); if (!fman_intf->is_shared_mac) { - /* Configure error packet handling */ - fman_if_receive_rx_errors(fman_intf, - FM_FD_RX_STATUS_ERR_MASK); /* Disable RX mode */ fman_if_disable_rx(fman_intf); /* Disable promiscuous mode */ From patchwork Mon Oct 5 07:15:06 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nipun Gupta X-Patchwork-Id: 79599 X-Patchwork-Delegate: ferruh.yigit@amd.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 2BBD8A04BA; Mon, 5 Oct 2020 09:15:53 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 87DD91B68E; Mon, 5 Oct 2020 09:15:19 +0200 (CEST) Received: from inva020.nxp.com (inva020.nxp.com [92.121.34.13]) by dpdk.org (Postfix) with ESMTP id 9FD901B65F for ; Mon, 5 Oct 2020 09:15:16 +0200 (CEST) Received: from inva020.nxp.com (localhost [127.0.0.1]) by inva020.eu-rdc02.nxp.com (Postfix) with ESMTP id 806AE1A0754; Mon, 5 Oct 2020 09:15:15 +0200 (CEST) Received: from invc005.ap-rdc01.nxp.com (invc005.ap-rdc01.nxp.com [165.114.16.14]) by inva020.eu-rdc02.nxp.com (Postfix) with ESMTP id 15E861A07AB; Mon, 5 Oct 2020 09:15:12 +0200 (CEST) Received: from lsv03196.swis.in-blr01.nxp.com (lsv03196.swis.in-blr01.nxp.com [92.120.146.192]) by invc005.ap-rdc01.nxp.com (Postfix) with ESMTP id CEE8840309; Mon, 5 Oct 2020 09:15:07 +0200 (CEST) From: nipun.gupta@nxp.com To: dev@dpdk.org Cc: thomas@monjalon.net, ferruh.yigit@intel.com, arybchenko@solarflare.com, hemant.agrawal@nxp.com, sachin.saxena@nxp.com, rohit.raj@nxp.com, Nipun Gupta Date: Mon, 5 Oct 2020 12:45:06 +0530 Message-Id: <20201005071506.28861-3-nipun.gupta@nxp.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20201005071506.28861-1-nipun.gupta@nxp.com> References: <20200831075333.10135-1-nipun.gupta@nxp.com> <20201005071506.28861-1-nipun.gupta@nxp.com> X-Virus-Scanned: ClamAV using ClamSMTP Subject: [dpdk-dev] [PATCH 3/3 v2] testpmd: support hardware offload to drop error packets 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" From: Nipun Gupta With DEV_RX_OFFLOAD_ERR_PKT_DROP now defined as an offload capability, testpmd showcases this with a new added configuration option 'enable-hw-drop-err'. Signed-off-by: Nipun Gupta --- app/test-pmd/parameters.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/app/test-pmd/parameters.c b/app/test-pmd/parameters.c index 1ead59579..ada870e2d 100644 --- a/app/test-pmd/parameters.c +++ b/app/test-pmd/parameters.c @@ -142,6 +142,7 @@ usage(char* progname) printf(" --enable-hw-vlan-strip: enable hardware vlan strip.\n"); printf(" --enable-hw-vlan-extend: enable hardware vlan extend.\n"); printf(" --enable-hw-qinq-strip: enable hardware qinq strip.\n"); + printf(" --enable-hw-drop-err: enable hardware packet drop for error packets.\n"); printf(" --enable-drop-en: enable per queue packet drop.\n"); printf(" --disable-rss: disable rss.\n"); printf(" --port-topology=: set port topology (paired " @@ -631,6 +632,7 @@ launch_args_parse(int argc, char** argv) { "enable-hw-vlan-strip", 0, 0, 0 }, { "enable-hw-vlan-extend", 0, 0, 0 }, { "enable-hw-qinq-strip", 0, 0, 0 }, + { "enable-hw-drop-err", 0, 0, 0 }, { "enable-drop-en", 0, 0, 0 }, { "disable-rss", 0, 0, 0 }, { "port-topology", 1, 0, 0 }, @@ -1037,6 +1039,9 @@ launch_args_parse(int argc, char** argv) "enable-hw-qinq-strip")) rx_offloads |= DEV_RX_OFFLOAD_QINQ_STRIP; + if (!strcmp(lgopts[opt_idx].name, "enable-hw-drop-err")) + rx_offloads |= DEV_RX_OFFLOAD_ERR_PKT_DROP; + if (!strcmp(lgopts[opt_idx].name, "enable-drop-en")) rx_drop_en = 1;