From patchwork Thu Oct 15 13:23:41 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nipun Gupta X-Patchwork-Id: 317770 Delivered-To: patch@linaro.org Received: by 2002:a92:d603:0:0:0:0:0 with SMTP id w3csp487904ilm; Thu, 15 Oct 2020 06:24:05 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzVmWur2MEl0WoOc8ahu6BsbUEBQ5NeDrkTqnIasll0NYaqkucGchXBI/ctlabfy0zIkaMK X-Received: by 2002:a17:906:1418:: with SMTP id p24mr4517175ejc.46.1602768245614; Thu, 15 Oct 2020 06:24:05 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1602768245; cv=none; d=google.com; s=arc-20160816; b=fS3zkV9LnRa21fH9jxvaBil6swjzS/6y/ZUaBsQ89jxwVHQFcq1N/6gZ4qUtwwDUS0 3FocWpaITXDnS+8rjGZFSzs4+1Vw3cf2jhb+T78TkTD2wqjE5691ZJ2E5Ct0iRKtYeLt ILxcm3Xth6NDkFZ+5Q/LyKLOI344Ea+dJga+dcRpcvqRtPzIggvWXBW4jicch8H8KBHI BNbR92lLhJI6Cg41DWsznn2evxTYmD+y9jvhZiIfkBsET7crSjEsMp/opYk0QPmgeFpl +gfVqVOHB83VNKwRLy7DKbNYTiI6QxutwXOQtWxcZBCDZLBs9+aYQNA4Qd3uh55ovbtE PdBg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:subject:references:in-reply-to :message-id:date:cc:to:from; bh=Oy58AJiLFBWe8Zw3jVxq+Hv+qTbwLcXGuE2eqv2P0Go=; b=r4o1Bm+GeboOz4tousgcGRxmJmTIc4ydgsewu8ZFSOH0JlUGMcnkvKvkTpVKiFNyg7 EtBuGiKby7MOvAyfdhgjn1vjNzVuiUdjGXY4aOVyycynlvif/Uzze7165CdRi2tQhGPo 1haIEq4yhoLTCINapPnl0llQuncmLhHwdHQPl7VB2722hsZf2Uzti2vZZuRWFrCJbFIu aMQhhlb/QEP1RK095SPm0j0YwCCMi+r1G+jQmMuFxZ6pp8tMbIhZ8xDBm2vmPkGc7p+m stIUWucA2Asx4Rl6M1VHaWKi4jAsKhqO8YaTpxF0fF7FZsIrAqLLfqFVC5GwjRs+hIyq SfHg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of dev-bounces@dpdk.org designates 92.243.14.124 as permitted sender) smtp.mailfrom=dev-bounces@dpdk.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=nxp.com Return-Path: Received: from dpdk.org (dpdk.org. [92.243.14.124]) by mx.google.com with ESMTP id a4si2044447eds.296.2020.10.15.06.24.05; Thu, 15 Oct 2020 06:24:05 -0700 (PDT) Received-SPF: pass (google.com: domain of dev-bounces@dpdk.org designates 92.243.14.124 as permitted sender) client-ip=92.243.14.124; Authentication-Results: mx.google.com; spf=pass (google.com: domain of dev-bounces@dpdk.org designates 92.243.14.124 as permitted sender) smtp.mailfrom=dev-bounces@dpdk.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=nxp.com Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 510351E8FB; Thu, 15 Oct 2020 15:23:59 +0200 (CEST) Received: from inva020.nxp.com (inva020.nxp.com [92.121.34.13]) by dpdk.org (Postfix) with ESMTP id 1DC841E8FA for ; Thu, 15 Oct 2020 15:23:56 +0200 (CEST) Received: from inva020.nxp.com (localhost [127.0.0.1]) by inva020.eu-rdc02.nxp.com (Postfix) with ESMTP id A46CB1A0809; Thu, 15 Oct 2020 15:23:55 +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 114CE1A07F7; Thu, 15 Oct 2020 15:23:51 +0200 (CEST) Received: from lsv03273.swis.in-blr01.nxp.com (lsv03273.swis.in-blr01.nxp.com [92.120.147.113]) by invc005.ap-rdc01.nxp.com (Postfix) with ESMTP id A7D604024F; Thu, 15 Oct 2020 15:23:45 +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, jerinjacobk@gmail.com, stephen@networkplumber.org, asafp@nvidia.com, Nipun Gupta Date: Thu, 15 Oct 2020 18:53:41 +0530 Message-Id: <20201015132343.4050-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 v4] 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 and configuration to enable hardware to drop the packets in case of any error in the packets such as L3 checksum error or L4 checksum. Signed-off-by: Nipun Gupta Signed-off-by: Rohit Raj Reviewed-by: Asaf Penso --- v4: - renamed 'rte_rx_err_pkt_drop_conf' to 'rte_eth_rx_err_pkt_drop_conf' - updated function 'port_offload_cap_display' to display newly added offloads - added placeholder for L1 FCS, L3 Checksum, L4 Checksum error packet drops - updated doc/guides/nics/features.rst - updated new added 'DEV_RX_OFFLOAD_*' to 'RTE_DEV_RX_OFFLOAD*' - updated RX to Rx v3: - Add additional rx_err_drop_offload_capa, which is specific capability flag for RX packets error drop offload. Currently only 'all' error packet drops are enabled, but can be extended to provide capability to drop any specific errors like L1 FCS, L3 Checksum etc. - Added separate config structure to enable the drop configuration. - Updated doc with the new updated option in testbbdev (patch 3/3) v2: - Add support in DPAA1 driver (patch 2/3) - Add support and config parameter in testpmd (patch 3/3) lib/librte_ethdev/rte_ethdev.c | 1 + lib/librte_ethdev/rte_ethdev.h | 39 +++++++++++++++++++++++++++++++++- 2 files changed, 39 insertions(+), 1 deletion(-) -- 2.17.1 diff --git a/lib/librte_ethdev/rte_ethdev.c b/lib/librte_ethdev/rte_ethdev.c index 48d1333b1..be25e947e 100644 --- a/lib/librte_ethdev/rte_ethdev.c +++ b/lib/librte_ethdev/rte_ethdev.c @@ -128,6 +128,7 @@ static const struct { RTE_RX_OFFLOAD_BIT2STR(SCTP_CKSUM), RTE_RX_OFFLOAD_BIT2STR(OUTER_UDP_CKSUM), RTE_RX_OFFLOAD_BIT2STR(RSS_HASH), + RTE_RX_OFFLOAD_BIT2STR(ERR_PKT_DROP), }; #undef RTE_RX_OFFLOAD_BIT2STR diff --git a/lib/librte_ethdev/rte_ethdev.h b/lib/librte_ethdev/rte_ethdev.h index d2bf74f12..0db4b4021 100644 --- a/lib/librte_ethdev/rte_ethdev.h +++ b/lib/librte_ethdev/rte_ethdev.h @@ -1194,6 +1194,28 @@ struct rte_intr_conf { uint32_t rmv:1; }; +/** + * A structure used to enable/disable error packet drop on Rx. + */ +struct rte_eth_rx_err_pkt_drop_conf { + /** enable/disable L1 FSC error packet drop on Rx. + * 0 (default) - disable, 1 enable + */ + uint32_t l1_fcs:1; + /** enable/disable L3 Checksum error packet drop on Rx. + * 0 (default) - disable, 1 enable + */ + uint32_t l3_csum:1; + /** enable/disable L4 Checksum error packet drop on Rx. + * 0 (default) - disable, 1 enable + */ + uint32_t l4_csum:1; + /** enable/disable all Rx error packet drop. + * 0 (default) - disable, 1 enable + */ + uint32_t all:1; +}; + /** * A structure used to configure an Ethernet port. * Depending upon the RX multi-queue mode, extra advanced @@ -1236,10 +1258,12 @@ struct rte_eth_conf { uint32_t dcb_capability_en; struct rte_fdir_conf fdir_conf; /**< FDIR configuration. DEPRECATED */ struct rte_intr_conf intr_conf; /**< Interrupt mode configuration. */ + struct rte_eth_rx_err_pkt_drop_conf err_pkt_drop_conf; + /**< Rx error packet drop configuration. */ }; /** - * RX offload capabilities of a device. + * Rx offload capabilities of a device. */ #define DEV_RX_OFFLOAD_VLAN_STRIP 0x00000001 #define DEV_RX_OFFLOAD_IPV4_CKSUM 0x00000002 @@ -1260,6 +1284,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 | \ @@ -1274,6 +1299,16 @@ struct rte_eth_conf { * mentioned in rte_rx_offload_names in rte_ethdev.c file. */ +/** + * Rx Error Drop offload config/capabilities of a device. These + * are valid only when Rx capability RTE_DEV_RX_OFFLOAD_ERR_PKT_DROP + * is supported by the device. + */ +#define RTE_DEV_RX_ERR_PKT_DROP_OFFLOAD_L1_FCS 0x00000001 +#define RTE_DEV_RX_ERR_PKT_DROP_OFFLOAD_L3_CSUM 0x00000002 +#define RTE_DEV_RX_ERR_PKT_DROP_OFFLOAD_L4_CSUM 0x00000004 +#define RTE_DEV_RX_ERR_PKT_DROP_OFFLOAD_ALL 0x80000000 + /** * TX offload capabilities of a device. */ @@ -1411,6 +1446,8 @@ struct rte_eth_dev_info { /**< Device per-queue RX offload capabilities. */ uint64_t tx_queue_offload_capa; /**< Device per-queue TX offload capabilities. */ + uint64_t rx_err_drop_offload_capa; + /**< RX error packet drop offload capabilities. */ uint16_t reta_size; /**< Device redirection table size, the total number of entries. */ uint8_t hash_key_size; /**< Hash key size in bytes */ From patchwork Thu Oct 15 13:23:42 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nipun Gupta X-Patchwork-Id: 317771 Delivered-To: patch@linaro.org Received: by 2002:a92:d603:0:0:0:0:0 with SMTP id w3csp488128ilm; Thu, 15 Oct 2020 06:24:23 -0700 (PDT) X-Google-Smtp-Source: ABdhPJz5WeEKqyyS+eGJBfj6geOjRnNeK5V6CZJlWyWFJki6//jUwdY3xLqnsNfYZWjZSFJqUd/4 X-Received: by 2002:a17:907:94d2:: with SMTP id dn18mr4590863ejc.374.1602768263170; Thu, 15 Oct 2020 06:24:23 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1602768263; cv=none; d=google.com; s=arc-20160816; b=bpVq/f3FU2SAtQNzeLUraeNU3KwmINTf6DxuEgBQW9aFtweCSNBYyGAIJbiEU0K1fw E7BvBkMvoFIyqghJSjcvtW99QFZCf0XccDgRMcYd5tisYlarmbQE/ER3LoQTGsFZNVGt 2F2U2nuNA6zhUiR58SHfhgpu938azljPB5CPLmhSP35rPdWCtbEjA+IJhd4M9k8N7RTq 8Cqp5ag67tiN55xqkYjSFTbrcZdtZK2vpeJNMtj0dcWlwRQgw+Q8yJ4GFKGE+875AHWW hzJ1Pjib9NiLnflBd1KuAsvL4/PZ0/W1ETdROQ0FjtIaJmxM+ggj0WFJrbiAjzDCwmDN zaJw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:subject:references:in-reply-to :message-id:date:cc:to:from; bh=SqVXdJUw4dS6S7sUYPeNS2Whv5Stb9Z3Da3U6u2EB68=; b=nTGObfWVhZjITjGT4NzB39IqV0UvATsgiMIEk1jL58s9NwmorDe+5CeJtVFDtZsJAw nmZCyTHkJI0t8Tsh1lVc0iOKiiAK7n8prtMwd8VZgfQGHTxNL9InnlJRwd6pxZN/q3o4 7Niu8ytyjSiZNDU27lRqQvdiCc4UvXTb6ge5AiIx00yRgK1MK9o7hp8OlM3mXgyTp6eY 85mdUpD2+1p0X8nLD+bqyODANIsaBm+PSa9fYLOg+GI51om4EK56SqoGx11ew/AIC43s Fh6nbbvvOlbP8cuplZwWpbJQ3iJd5R9RK4uoiZ451k9LUdgVpygx82bF0NMWIvHncoJS ybmw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of dev-bounces@dpdk.org designates 92.243.14.124 as permitted sender) smtp.mailfrom=dev-bounces@dpdk.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=nxp.com Return-Path: Received: from dpdk.org (dpdk.org. [92.243.14.124]) by mx.google.com with ESMTP id x3si2065020ejc.362.2020.10.15.06.24.22; Thu, 15 Oct 2020 06:24:23 -0700 (PDT) Received-SPF: pass (google.com: domain of dev-bounces@dpdk.org designates 92.243.14.124 as permitted sender) client-ip=92.243.14.124; Authentication-Results: mx.google.com; spf=pass (google.com: domain of dev-bounces@dpdk.org designates 92.243.14.124 as permitted sender) smtp.mailfrom=dev-bounces@dpdk.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=nxp.com Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 0F4B31E91F; Thu, 15 Oct 2020 15:24:02 +0200 (CEST) Received: from inva021.nxp.com (inva021.nxp.com [92.121.34.21]) by dpdk.org (Postfix) with ESMTP id 8492E1E8FA for ; Thu, 15 Oct 2020 15:23:57 +0200 (CEST) Received: from inva021.nxp.com (localhost [127.0.0.1]) by inva021.eu-rdc02.nxp.com (Postfix) with ESMTP id 4EFF1200730; Thu, 15 Oct 2020 15:23:56 +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 B2E3A2003C6; Thu, 15 Oct 2020 15:23:51 +0200 (CEST) Received: from lsv03273.swis.in-blr01.nxp.com (lsv03273.swis.in-blr01.nxp.com [92.120.147.113]) by invc005.ap-rdc01.nxp.com (Postfix) with ESMTP id 57441402A7; Thu, 15 Oct 2020 15:23:46 +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, jerinjacobk@gmail.com, stephen@networkplumber.org, asafp@nvidia.com, Nipun Gupta Date: Thu, 15 Oct 2020 18:53:42 +0530 Message-Id: <20201015132343.4050-2-nipun.gupta@nxp.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20201015132343.4050-1-nipun.gupta@nxp.com> References: <20200831075333.10135-1-nipun.gupta@nxp.com> <20201015132343.4050-1-nipun.gupta@nxp.com> X-Virus-Scanned: ClamAV using ClamSMTP Subject: [dpdk-dev] [PATCH 2/3 v4] 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 configuration 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 | 23 +++++++++++++++++++---- 2 files changed, 25 insertions(+), 5 deletions(-) -- 2.17.1 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 af47c196a..b9cfc4fb3 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 = @@ -62,6 +63,10 @@ static uint64_t dev_rx_offloads_nodis = DEV_RX_OFFLOAD_OUTER_IPV4_CKSUM | DEV_RX_OFFLOAD_RSS_HASH; +/* Supported Rx Error packet drop offload */ +static uint64_t dev_rx_err_drop_offloads_sup = + RTE_DEV_RX_ERR_PKT_DROP_OFFLOAD_ALL; + /* Supported Tx offloads */ static uint64_t dev_tx_offloads_sup = DEV_TX_OFFLOAD_MT_LOCKFREE | @@ -262,6 +267,18 @@ dpaa_eth_dev_configure(struct rte_eth_dev *dev) dev->data->scattered_rx = 1; } + if (eth_conf->err_pkt_drop_conf.all) { + DPAA_PMD_DEBUG("error packets will be dropped on hw"); + fman_if_discard_rx_errors(fif); + } else { + 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 dropped on hw"); + fman_if_receive_rx_errors(fif, FM_FD_RX_STATUS_ERR_MASK); + fman_if_set_err_fqid(fif, rxq->fqid); + } + if (!(default_q || fmc_q)) { if (dpaa_fm_config(dev, eth_conf->rx_adv_conf.rss_conf.rss_hf)) { @@ -591,6 +608,7 @@ static int dpaa_eth_dev_info(struct rte_eth_dev *dev, dev_rx_offloads_nodis; dev_info->tx_offload_capa = dev_tx_offloads_sup | dev_tx_offloads_nodis; + dev_info->rx_err_drop_offload_capa = dev_rx_err_drop_offloads_sup; dev_info->default_rxportconf.burst_size = DPAA_DEF_RX_BURST_SIZE; dev_info->default_txportconf.burst_size = DPAA_DEF_TX_BURST_SIZE; dev_info->default_rxportconf.nb_queues = 1; @@ -2085,9 +2103,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 Thu Oct 15 13:23:43 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nipun Gupta X-Patchwork-Id: 317772 Delivered-To: patch@linaro.org Received: by 2002:a92:d603:0:0:0:0:0 with SMTP id w3csp488375ilm; Thu, 15 Oct 2020 06:24:43 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyiMS5+9JjIigKpEmOiT9sDlSLUsklkwsUD4V745lNc6r08VDfdQZn3T7YxFuvwktPFOem0 X-Received: by 2002:a17:906:1246:: with SMTP id u6mr1852824eja.432.1602768282890; Thu, 15 Oct 2020 06:24:42 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1602768282; cv=none; d=google.com; s=arc-20160816; b=e7J7l5higeqEwXUwsXoGzvdO8O7HTXGXvct4cc6nH10TYVanGunyI+IFuwPRR8EJZU fPzvFGjwHZ3O8wGPP84lR8xo/mS3ebjBJlSPvucs/uczWT8d4TpP7P8dZYlR3/GBLoJB U8r6AJhks5k+FtFaGCi/IljfQSDwFSpZQR8c1njOUJQf/p3o+Ebk03qf6WdyF7NjriS4 sWLClCUrvQp5pZ37OM7rL/SO4OqUqj8buHEPXsCjHWw3zjWE//xRAZt5VEBxYm2Ylb1T 7rT8W+Y7pM5kdv+4Ccwcw56hOX9YINSsNlDGFFXYLKldFlK8mGL/pJBLAYnJbeagIzWq 8MXw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:subject:references:in-reply-to :message-id:date:cc:to:from; bh=O4ji9Q6pcNlTBJe3Plp5bvsTe0n/ZcHeYUSQ54BrfYo=; b=eDO2P1NrXyhnC8+PLOKfGi64wbPRMezRKlnFXBIu4cOKdi6YGitELc3MoppU6Y1CUB 7m+j1e2xaCuszRCSF2UzQiXjRP4fF58fKAWeen6qxsMdqqoYsy6+IIcMIbdcrcFyoQOY pl5TEu0nz5HHMOX2RKNQ8Uq+QgI0EbO4l0ieO6ZNH08MsWS2zDtqLrUTEv5EnSJev5mL e1bbQ25AVRD5S207dsrx2yPUAMPXH3LxwRlwb8gM5/0y+QZHMNpRtJOsAMqrk1/Fvweo rqWvBkJ08KejKbTMG3+tAVqPoEZGbKipU2a5/V/oUJdTRCJcFtngUcwF+unYuF5kTWqx TSCg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of dev-bounces@dpdk.org designates 92.243.14.124 as permitted sender) smtp.mailfrom=dev-bounces@dpdk.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=nxp.com Return-Path: Received: from dpdk.org (dpdk.org. [92.243.14.124]) by mx.google.com with ESMTP id y22si1951573edi.469.2020.10.15.06.24.42; Thu, 15 Oct 2020 06:24:42 -0700 (PDT) Received-SPF: pass (google.com: domain of dev-bounces@dpdk.org designates 92.243.14.124 as permitted sender) client-ip=92.243.14.124; Authentication-Results: mx.google.com; spf=pass (google.com: domain of dev-bounces@dpdk.org designates 92.243.14.124 as permitted sender) smtp.mailfrom=dev-bounces@dpdk.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=nxp.com Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id B9D6A1E933; Thu, 15 Oct 2020 15:24:03 +0200 (CEST) Received: from inva020.nxp.com (inva020.nxp.com [92.121.34.13]) by dpdk.org (Postfix) with ESMTP id 28D7B1E8FA for ; Thu, 15 Oct 2020 15:23:58 +0200 (CEST) Received: from inva020.nxp.com (localhost [127.0.0.1]) by inva020.eu-rdc02.nxp.com (Postfix) with ESMTP id 006171A07F7; Thu, 15 Oct 2020 15:23:57 +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 5EAA21A0807; Thu, 15 Oct 2020 15:23:52 +0200 (CEST) Received: from lsv03273.swis.in-blr01.nxp.com (lsv03273.swis.in-blr01.nxp.com [92.120.147.113]) by invc005.ap-rdc01.nxp.com (Postfix) with ESMTP id 04D8C40310; Thu, 15 Oct 2020 15:23:46 +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, jerinjacobk@gmail.com, stephen@networkplumber.org, asafp@nvidia.com, Nipun Gupta Date: Thu, 15 Oct 2020 18:53:43 +0530 Message-Id: <20201015132343.4050-3-nipun.gupta@nxp.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20201015132343.4050-1-nipun.gupta@nxp.com> References: <20200831075333.10135-1-nipun.gupta@nxp.com> <20201015132343.4050-1-nipun.gupta@nxp.com> X-Virus-Scanned: ClamAV using ClamSMTP Subject: [dpdk-dev] [PATCH 3/3 v4] app/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, and separate RTE_DEV_RX_ERR_PKT_DROP_OFFLOAD_ALL capability to drop all error packets in hardware, testpmd showcases this with a new added configuration option 'enable-hw-drop-err-all'. Signed-off-by: Nipun Gupta --- app/test-pmd/config.c | 35 +++++++++++++++++++++ app/test-pmd/parameters.c | 7 +++++ app/test-pmd/testpmd.c | 8 +++++ app/test-pmd/testpmd.h | 1 + doc/guides/nics/features.rst | 44 +++++++++++++++++++++++++++ doc/guides/testpmd_app_ug/run_app.rst | 4 +++ 6 files changed, 99 insertions(+) -- 2.17.1 Reviewed-by: Dharmik Thakkar diff --git a/app/test-pmd/config.c b/app/test-pmd/config.c index e73dc66c8..14ef4e468 100644 --- a/app/test-pmd/config.c +++ b/app/test-pmd/config.c @@ -1027,6 +1027,41 @@ port_offload_cap_display(portid_t port_id) printf("off\n"); } + if (dev_info.rx_offload_capa & DEV_RX_OFFLOAD_ERR_PKT_DROP) { + if (dev_info.rx_err_drop_offload_capa & + RTE_DEV_RX_ERR_PKT_DROP_OFFLOAD_L1_FCS) { + printf("RX L1 FCS Error pkt drop: "); + if (ports[port_id].dev_conf.err_pkt_drop_conf.l1_fcs) + printf("on\n"); + else + printf("off\n"); + } + if (dev_info.rx_err_drop_offload_capa & + RTE_DEV_RX_ERR_PKT_DROP_OFFLOAD_L3_CSUM) { + printf("RX L3 Csum Error pkt drop: "); + if (ports[port_id].dev_conf.err_pkt_drop_conf.l3_csum) + printf("on\n"); + else + printf("off\n"); + } + if (dev_info.rx_err_drop_offload_capa & + RTE_DEV_RX_ERR_PKT_DROP_OFFLOAD_L4_CSUM) { + printf("RX L4 Csum Error pkt drop: "); + if (ports[port_id].dev_conf.err_pkt_drop_conf.l4_csum) + printf("on\n"); + else + printf("off\n"); + } + if (dev_info.rx_err_drop_offload_capa & + RTE_DEV_RX_ERR_PKT_DROP_OFFLOAD_ALL) { + printf("RX all Error pkt drop: "); + if (ports[port_id].dev_conf.err_pkt_drop_conf.all) + printf("on\n"); + else + printf("off\n"); + } + } + if (dev_info.tx_offload_capa & DEV_TX_OFFLOAD_VLAN_INSERT) { printf("VLAN insert: "); if (ports[port_id].dev_conf.txmode.offloads & diff --git a/app/test-pmd/parameters.c b/app/test-pmd/parameters.c index 1ead59579..508612426 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-all: enable hardware packet drop for all 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-all", 0, 0, 0 }, { "enable-drop-en", 0, 0, 0 }, { "disable-rss", 0, 0, 0 }, { "port-topology", 1, 0, 0 }, @@ -1283,6 +1285,11 @@ launch_args_parse(int argc, char** argv) rmv_interrupt = 0; if (!strcmp(lgopts[opt_idx].name, "flow-isolate-all")) flow_isolate_all = 1; + if (!strcmp(lgopts[opt_idx].name, + "enable-hw-drop-err-all")) { + rx_err_pkt_drop_all = 1; + } + if (!strcmp(lgopts[opt_idx].name, "tx-offloads")) { char *end = NULL; n = strtoull(optarg, &end, 16); diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c index ccba71c07..c9e7397e6 100644 --- a/app/test-pmd/testpmd.c +++ b/app/test-pmd/testpmd.c @@ -359,6 +359,11 @@ uint8_t lsc_interrupt = 1; /* enabled by default */ */ uint8_t rmv_interrupt = 1; /* enabled by default */ +/* + * Drop all RX error packets on HW itself. + */ +uint8_t rx_err_pkt_drop_all = 0; /* disabled by default */ + uint8_t hot_plug = 0; /**< hotplug disabled by default. */ /* After attach, port setup is called on event or by iterator */ @@ -3359,6 +3364,9 @@ init_port_config(void) (rte_eth_devices[pid].data->dev_flags & RTE_ETH_DEV_INTR_RMV)) port->dev_conf.intr_conf.rmv = 1; + + if (rx_err_pkt_drop_all) + port->dev_conf.err_pkt_drop_conf.all = 1; } } diff --git a/app/test-pmd/testpmd.h b/app/test-pmd/testpmd.h index c7e7e41a9..eab154ed4 100644 --- a/app/test-pmd/testpmd.h +++ b/app/test-pmd/testpmd.h @@ -314,6 +314,7 @@ extern uint8_t no_device_start; /**