From patchwork Fri Oct 9 13:13:29 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nipun Gupta X-Patchwork-Id: 317536 Delivered-To: patch@linaro.org Received: by 2002:a92:d603:0:0:0:0:0 with SMTP id w3csp2305101ilm; Fri, 9 Oct 2020 06:13:52 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwxyuxfwueZW28nTsEdzactEuBzXXr4/TuUP+qDE1bOIwuziVpbHs58yLBereDXxd2+IT68 X-Received: by 2002:a50:bb0d:: with SMTP id y13mr15144497ede.317.1602249232643; Fri, 09 Oct 2020 06:13:52 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1602249232; cv=none; d=google.com; s=arc-20160816; b=ikqonYxa+rLAGJ+RbLZ9TL4RclgYEiyMba3tGdRHq5nfWynus2IDwBdBx/EZyUBf33 dCNGNAcpGpENrCGqia8yauCcW7Y3wJUnGdNOmVya3TtlALJ4zwQERjJSifC+J1A10AAk nQUhhX34t0I+BuA+IyvyhOFDLvjvpB2T6dTPBPW/aJqiR+9p/4qR8SlVPysMk1cCTQHK iUDbtnJRdr8fbIztGBQeDYpw59Sc7IyXN1Pu+VCoXTyGXEx8FN+BeKy6svAXnEKlFtma g06/zXMd32n82r15pv3NtRAP4sMNMxorqv9AEOdxndMJWUH3pQQHcxnLxqucWpSyk6ep C37Q== 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=2JWqgtsVqglvsU+PhNdc5A08djcL2ujdnbGX1E3xCzc=; b=S/uPbQUwaNx5SjlrtVO1+VSBJUMnv+nqq6hDibrKGUzSFRms79CqOy7iMT5bVTINRu 8kKls9vdMzfJhCAogd8Yfn1pXIm2WnnOCDrmvYTnsur4tOBnJKPpNqLpGP8k4UQLFAGI eBoAsORD4U+a+QZoQTy8Lbi8rR1IDL7Bvljl4YxbBKPe5YevMdekQ/t+Z7oMYtmDxC+f V8HwikszUUDv8/q58fAzkTYYt7o1lrbFp2TJHLzq3oYQUthmKXPgurrsYhmrcbCVDMQq A+3WDuA61Z5+Uobh+pR8Xu7AsT9Jw9TAyEQxCmrHXAFoqzCLYM7WKtjJPpmY0NMihXtN cyAA== 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 oc24si6327408ejb.530.2020.10.09.06.13.52; Fri, 09 Oct 2020 06:13:52 -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 080171D5A2; Fri, 9 Oct 2020 15:13:47 +0200 (CEST) Received: from inva021.nxp.com (inva021.nxp.com [92.121.34.21]) by dpdk.org (Postfix) with ESMTP id C32811C1D0 for ; Fri, 9 Oct 2020 15:13:44 +0200 (CEST) Received: from inva021.nxp.com (localhost [127.0.0.1]) by inva021.eu-rdc02.nxp.com (Postfix) with ESMTP id 958AA20039E; Fri, 9 Oct 2020 15:13:44 +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 F312620039C; Fri, 9 Oct 2020 15:13:39 +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 95D55402B0; Fri, 9 Oct 2020 15:13:34 +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: Fri, 9 Oct 2020 18:43:29 +0530 Message-Id: <20201009131331.5897-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 v3] 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 --- 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 | 22 ++++++++++++++++++++++ 2 files changed, 23 insertions(+) -- 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..cb968d38a 100644 --- a/lib/librte_ethdev/rte_ethdev.h +++ b/lib/librte_ethdev/rte_ethdev.h @@ -1194,6 +1194,16 @@ struct rte_intr_conf { uint32_t rmv:1; }; +/** + * A structure used to enable/disable error packet drop on RX. + */ +struct rte_rx_err_pkt_drop_conf { + /** 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,6 +1246,8 @@ 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_rx_err_pkt_drop_conf err_pkt_drop_conf; + /**< RX error packet drop configuration. */ }; /** @@ -1260,6 +1272,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 +1287,13 @@ 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 DEV_RX_OFFLOAD_ERR_PKT_DROP + * is supported by the device. + */ +#define DEV_RX_ERR_PKT_DROP_OFFLOAD_ALL 0x00000001 + /** * TX offload capabilities of a device. */ @@ -1411,6 +1431,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 Fri Oct 9 13:13:30 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nipun Gupta X-Patchwork-Id: 317537 Delivered-To: patch@linaro.org Received: by 2002:a92:d603:0:0:0:0:0 with SMTP id w3csp2305289ilm; Fri, 9 Oct 2020 06:14:08 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwaHeK1lhJUeqVJ1d6nFNZAI1QKcecw8wAzcV3FNDWZF76d8ocCyleb9r0AukD9hQuynGuH X-Received: by 2002:a17:906:aad5:: with SMTP id kt21mr14081771ejb.5.1602249248612; Fri, 09 Oct 2020 06:14:08 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1602249248; cv=none; d=google.com; s=arc-20160816; b=iSbw2egrUzJhxSSR44S4uhobtEEOFW916f75BYRpii/bpgDrjzp0NaBt3nhlx4vxKp knkXdKQCG++sHcUvilSGUgAAvxTSk8vTV30F6sjEurbYOfqb+ItqM6fXBXTN/6/PSOPl IPwGgiyKRAu+eUgWZkzhE1HyYZnFXCIiKLtmdTUUQWEZ9ZD6IGfjTcfCSNd4DA4KpdqD NBhcMOiZxO/HBnXgWHfV3SlVPdF+EaeAsWHjo2EGCCHIS7ak6BheRnuVLpl1t+NYHXQI FZBRc5wRXmVGhKaGAhOT9AplHnJS45m3RYbGSkYnsGz/zbm09Xt85dU+w7A8Ngf8bDNL t9Tw== 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=aaWHc1PS2xp0TCxrxtZuImphWOEnDF2mDzDJxB/pxXM=; b=h+07VeC53Le9H9WdMa8gN7GHiSZDaZaKNkSsJznFH983wboucs/JP6WVDiBs5raxT5 OGJbitArjBIZ1XqTacIFLBrd/atx43GWzcgKLcO+1TxMItyy/qOjMSyP508gETsYcevh bkrbtZKBKxHHMo8YeksK8MFNhHbU+dVbSA8jqjXDX2VcAk9DRSpG89kNgIRCABPOrZoT Q7ZqJz/6eEwkdpOqOYjaNcnQxhy1RwjTgUWT5/gCg0NasDgppcHnJ61ccCkk+LlRLG1g 9Q2hAs9SwdUVY8RAZVWvWD2Izysij+kQio8vdZariGSZ3BdItFXV8Ej5/An6Qj8vzOrV ualA== 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 j8si5981286eje.312.2020.10.09.06.14.08; Fri, 09 Oct 2020 06:14:08 -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 7CAE31D5F1; Fri, 9 Oct 2020 15:13:49 +0200 (CEST) Received: from inva021.nxp.com (inva021.nxp.com [92.121.34.21]) by dpdk.org (Postfix) with ESMTP id 15F8E1D5E6 for ; Fri, 9 Oct 2020 15:13:47 +0200 (CEST) Received: from inva021.nxp.com (localhost [127.0.0.1]) by inva021.eu-rdc02.nxp.com (Postfix) with ESMTP id EC8B620107A; Fri, 9 Oct 2020 15:13:46 +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 546AB201064; Fri, 9 Oct 2020 15:13:42 +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 E9E81402CA; Fri, 9 Oct 2020 15:13:36 +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: Fri, 9 Oct 2020 18:43:30 +0530 Message-Id: <20201009131331.5897-2-nipun.gupta@nxp.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20201009131331.5897-1-nipun.gupta@nxp.com> References: <20200831075333.10135-1-nipun.gupta@nxp.com> <20201009131331.5897-1-nipun.gupta@nxp.com> X-Virus-Scanned: ClamAV using ClamSMTP Subject: [dpdk-dev] [PATCH 2/3 v3] 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..bed84a584 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 = + 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 Fri Oct 9 13:13:31 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nipun Gupta X-Patchwork-Id: 317538 Delivered-To: patch@linaro.org Received: by 2002:a92:d603:0:0:0:0:0 with SMTP id w3csp2305604ilm; Fri, 9 Oct 2020 06:14:26 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzd3Z64T07OSLF0mMIZaxy0TfUO19FHelgEt3sDpgkeKEPz95SXuPrHPkSuJoc6Rjgw+wcp X-Received: by 2002:a7b:c2a9:: with SMTP id c9mr14137697wmk.87.1602249266496; Fri, 09 Oct 2020 06:14:26 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1602249266; cv=none; d=google.com; s=arc-20160816; b=V8AIQvhBoOgtJdGBpQUlmF+PvGgeq8ayLqUqwjev7FqYoEaD9rA1/PlT3RB7apfuM6 FG3SJ6XSaKxA66D2vC2kAUREGBAC7nxP7jBuHB8lmnvG9Dgocc0NJSirr22UsNlT9Y5M oxulDY9C8fOkSx95TrLrsbkoL5FdiF49pXR/s7f1OJeBFxDdPNp0BTA7yghR5HDfm2yE Oj9pkpT95GGMOe5VmxutAMpVBItppn7Hh3fZ+xz2LGWyZ4sAq5x7tZVA6RxcheCLKMA9 cOxMiZ8iAWIx219sZwfUzQKhiA6/wZt65u8nLXdr2hVKgjvDKvMFO5RmFw8pSfYtDbmM B3vg== 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=TR7z3CDzLXrai88R7clwiIIj2v+UXip2uV6s2TIgSrE=; b=PKIkSFvLvZ2npOeOmEnxhR9bdlK5sfvPLP0XXiK7neYhSd0ZhTHd9wkM/rEAC9h4jC M0fHdmLWyBoz2jGoBJnQpvU4wnmoe2ugg4WWgrxDpavYwI2J3nac6E7rwAFpar38H8e4 xchLUjQs9ws06mgj3LI/Cyd8bLb4EdG/6SWQwgE9uor3WBeP10Yf0gMu+K7CC1lv9XdG WSAdyR4j8ZafVvp83x5PaV3uH9sDhtplDX0rdO/Yx/LktfLDgt8hdRBUQS1QveU7+gK3 yHsgR4F5lW1BRiKuDDx6rGu+3ss8sbbdwN9XQp3ZIlAzyCdIQMGGjVQl+sXHShpOavVs E/Hg== 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 dc10si5888376edb.26.2020.10.09.06.14.26; Fri, 09 Oct 2020 06:14:26 -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 124731D60B; Fri, 9 Oct 2020 15:13:51 +0200 (CEST) Received: from inva020.nxp.com (inva020.nxp.com [92.121.34.13]) by dpdk.org (Postfix) with ESMTP id 04EB71D605 for ; Fri, 9 Oct 2020 15:13:50 +0200 (CEST) Received: from inva020.nxp.com (localhost [127.0.0.1]) by inva020.eu-rdc02.nxp.com (Postfix) with ESMTP id CD6E21A04B5; Fri, 9 Oct 2020 15:13:48 +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 35E521A049E; Fri, 9 Oct 2020 15:13:44 +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 CE52E4030D; Fri, 9 Oct 2020 15:13:38 +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: Fri, 9 Oct 2020 18:43:31 +0530 Message-Id: <20201009131331.5897-3-nipun.gupta@nxp.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20201009131331.5897-1-nipun.gupta@nxp.com> References: <20200831075333.10135-1-nipun.gupta@nxp.com> <20201009131331.5897-1-nipun.gupta@nxp.com> X-Virus-Scanned: ClamAV using ClamSMTP Subject: [dpdk-dev] [PATCH 3/3 v3] 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 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/parameters.c | 7 +++++++ app/test-pmd/testpmd.c | 8 ++++++++ app/test-pmd/testpmd.h | 1 + doc/guides/testpmd_app_ug/run_app.rst | 4 ++++ 4 files changed, 20 insertions(+) -- 2.17.1 Reviewed-By: Asaf Penso 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; /**