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 376F748931; Tue, 14 Oct 2025 09:21:37 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 8A28140A6B; Tue, 14 Oct 2025 09:20:21 +0200 (CEST) Received: from inva020.nxp.com (inva020.nxp.com [92.121.34.13]) by mails.dpdk.org (Postfix) with ESMTP id 7A54A40288 for ; Tue, 14 Oct 2025 08:00:50 +0200 (CEST) Received: from inva020.nxp.com (localhost [127.0.0.1]) by inva020.eu-rdc02.nxp.com (Postfix) with ESMTP id 601051A1C01; Tue, 14 Oct 2025 08:00:50 +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 360D61A1BD2; Tue, 14 Oct 2025 08:00:50 +0200 (CEST) Received: from lsv031405.swis.in-blr01.nxp.com (lsv031405.swis.in-blr01.nxp.com [92.120.147.93]) by aprdc01srsp001v.ap-rdc01.nxp.com (Postfix) with ESMTP id AE81F18000B0; Tue, 14 Oct 2025 14:00:49 +0800 (+08) From: Prashant Gupta To: dev@dpdk.org, stephen@networkplumber.org, david.marchand@redhat.com Cc: Hemant Agrawal Subject: [PATCH 12/15] net/dpaa2: add devargs to drop parse packets in HW Date: Tue, 14 Oct 2025 11:30:42 +0530 Message-ID: <20251014060045.1304694-13-prashant.gupta_3@nxp.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20251014060045.1304694-1-prashant.gupta_3@nxp.com> References: <20251014060045.1304694-1-prashant.gupta_3@nxp.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Virus-Scanned: ClamAV using ClamSMTP X-Mailman-Approved-At: Tue, 14 Oct 2025 09:20:04 +0200 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 From: Hemant Agrawal This patch add support to allow to drop HW parser error pkts in DPAA2 hardware Signed-off-by: Hemant Agrawal --- doc/guides/nics/dpaa2.rst | 4 ++++ drivers/net/dpaa2/dpaa2_ethdev.c | 11 ++++++++++- drivers/net/dpaa2/dpaa2_ethdev.h | 3 +++ 3 files changed, 17 insertions(+), 1 deletion(-) diff --git a/doc/guides/nics/dpaa2.rst b/doc/guides/nics/dpaa2.rst index 94bf1907df..782220b4cd 100644 --- a/doc/guides/nics/dpaa2.rst +++ b/doc/guides/nics/dpaa2.rst @@ -482,6 +482,10 @@ for details. In this mode tx conf queues need to be polled to free the buffers. e.g. ``fslmc:dpni.1,drv_tx_conf=1`` +* Use dev arg option ``drv_rx_parse_drop=1`` to configure the system to start + dropping the error packets in hardware (parse errors). + e.g. ``fslmc:dpni.1,drv_rx_parse_drop=1`` + * Use dev arg option ``drv_error_queue=1`` to enable Packets in Error queue. DPAA2 hardware drops the error packet in hardware. This option enables the hardware to not drop the error packet and let the driver dump the error diff --git a/drivers/net/dpaa2/dpaa2_ethdev.c b/drivers/net/dpaa2/dpaa2_ethdev.c index 56c23e4717..5b72243346 100644 --- a/drivers/net/dpaa2/dpaa2_ethdev.c +++ b/drivers/net/dpaa2/dpaa2_ethdev.c @@ -34,6 +34,7 @@ #define DRIVER_LOOPBACK_MODE "drv_loopback" #define DRIVER_NO_PREFETCH_MODE "drv_no_prefetch" #define DRIVER_TX_CONF "drv_tx_conf" +#define DRIVER_RX_PARSE_ERR_DROP "drv_rx_parse_drop" #define DRIVER_ERROR_QUEUE "drv_err_queue" #define CHECK_INTERVAL 100 /* 100ms */ #define MAX_REPEAT_TIME 90 /* 9s (90 * 100ms) in total */ @@ -1349,7 +1350,8 @@ dpaa2_dev_start(struct rte_eth_dev *dev) err_cfg.errors = DPNI_ERROR_L3CE | DPNI_ERROR_L4CE; /* if packet with parse error are not to be dropped */ - err_cfg.errors |= DPNI_ERROR_PHE | DPNI_ERROR_BLE; + if (!(priv->flags & DPAA2_PARSE_ERR_DROP)) + err_cfg.errors |= DPNI_ERROR_PHE | DPNI_ERROR_BLE; err_cfg.error_action = DPNI_ERROR_ACTION_CONTINUE; } @@ -2909,6 +2911,12 @@ dpaa2_dev_init(struct rte_eth_dev *eth_dev) DPAA2_PMD_INFO("Enable error queue"); } + /* Packets with parse error to be dropped in hw */ + if (dpaa2_get_devargs(dev->devargs, DRIVER_RX_PARSE_ERR_DROP)) { + priv->flags |= DPAA2_PARSE_ERR_DROP; + DPAA2_PMD_INFO("Drop parse error packets in hw"); + } + if (getenv("DPAA2_PRINT_RX_PARSER_RESULT")) dpaa2_print_parser_result = 1; @@ -3278,5 +3286,6 @@ RTE_PMD_REGISTER_PARAM_STRING(NET_DPAA2_PMD_DRIVER_NAME, DRIVER_LOOPBACK_MODE "= " DRIVER_NO_PREFETCH_MODE "=" DRIVER_TX_CONF "=" + DRIVER_RX_PARSE_ERR_DROP "=" DRIVER_ERROR_QUEUE "="); RTE_LOG_REGISTER_DEFAULT(dpaa2_logtype_pmd, NOTICE); diff --git a/drivers/net/dpaa2/dpaa2_ethdev.h b/drivers/net/dpaa2/dpaa2_ethdev.h index f4adb76bb6..b2ab3d539b 100644 --- a/drivers/net/dpaa2/dpaa2_ethdev.h +++ b/drivers/net/dpaa2/dpaa2_ethdev.h @@ -70,6 +70,9 @@ */ #define DPAA2_TX_CGR_OFF RTE_BIT32(0) +/* Drop packets with parsing error in hw */ +#define DPAA2_PARSE_ERR_DROP RTE_BIT32(1) + /* Disable RX tail drop, default is enable */ #define DPAA2_RX_TAILDROP_OFF RTE_BIT32(2) -- 2.43.0