From patchwork Wed Aug 26 15:24:12 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ed Czeck X-Patchwork-Id: 76037 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 B2336A04B1; Wed, 26 Aug 2020 17:25:31 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id B67DB1C119; Wed, 26 Aug 2020 17:24:29 +0200 (CEST) Received: from mail-qk1-f195.google.com (mail-qk1-f195.google.com [209.85.222.195]) by dpdk.org (Postfix) with ESMTP id A81C91C116 for ; Wed, 26 Aug 2020 17:24:28 +0200 (CEST) Received: by mail-qk1-f195.google.com with SMTP id b14so2220122qkn.4 for ; Wed, 26 Aug 2020 08:24:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=atomicrules-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=5BUawuK6SUNLO9yKog9LaOSQhDhDDMGh8W+f8Ja+VFQ=; b=0ag5eRHCghUZg/dhJ/DhEk9U6dNlBmp3YVq42M8ASP3ydVqokqgj2Kr0obOkuDH+he EbkRBb+glIz8shmhahej2t/JfXBtnw4+UvUbSPPfToWv+qAl3WIrWUsNHU44JXg7Gw9g l5MZP9YKhX4P3RyPmka7hyIrqzbUMtsoEyp7xnZXxdbLBfLsQ+RaI5wF31DwnjlPOnHF gsz5zLNfKYaNjUt5qDJ/A3wRCicbLQkFfSyH8urmfvgoVZ4YBKxbowscvIu4XocOURpk igUDiNYAsAM412rXexqY6oLF7dUVifh1Ov8Xj6PZ4xCsmbFYNiQZk1yjLdZ2YAFbetwr 9UWQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=5BUawuK6SUNLO9yKog9LaOSQhDhDDMGh8W+f8Ja+VFQ=; b=GFoxWgEv7AvO6NwiQb0+gy4yU36Rg+bf5ciHZFWPgc8GOoYjDB+Lo7zeh73CKSjECU iIRgjf3VeaE2cx65Z2ZEDwntn01tG5FAz8fPMmT/nBr6KFR1Tw3dUchsE26mjpcgDQJw 6GYwwPi0YxEbUq8mJ4iCLdGRxdTaIhvYuqGDLMuYAzrwEY7pxPYcRX5C0x3BritADESZ 5T5XUXzNieTbOeAaRcJ+bidXX/mE63NOOh/u/O3tFZxPrS6/RjAPFgHTx0iA/3/w9HlN 6mA/hJ69BHnctuH2JuqzW8CbdjcDCirjs3D2ey0szrW0ZJNiOSuSqAdq5KfzVLypjerK cRkg== X-Gm-Message-State: AOAM530Hs59F0RGFENLzO9kq27CM7g3JI6onjZbAEyaW0NR8ZNc0u0nT byJi7eg2c5txRuWn2IqUzmyPm841dUa1JUuk X-Google-Smtp-Source: ABdhPJzDFMyr1daU6/DHrAyRw8/Sp/heQ8ovLFuSoWLl5M6M11ceh2QEXIV5BJ+jbr2fATlzi0msNw== X-Received: by 2002:a37:8b87:: with SMTP id n129mr14317830qkd.354.1598455467605; Wed, 26 Aug 2020 08:24:27 -0700 (PDT) Received: from z390.czeck.local (pool-72-74-133-40.bstnma.fios.verizon.net. [72.74.133.40]) by smtp.gmail.com with ESMTPSA id q34sm2323744qtk.32.2020.08.26.08.24.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 26 Aug 2020 08:24:26 -0700 (PDT) From: Ed Czeck To: dev@dpdk.org, ferruh.yigit@intel.com, bruce.richardson@intel.com Cc: shepard.siegel@atomicrules.com, john.miller@atomicrules.com, Ed Czeck Date: Wed, 26 Aug 2020 11:24:12 -0400 Message-Id: <20200826152412.9553-2-ed.czeck@atomicrules.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200826152412.9553-1-ed.czeck@atomicrules.com> References: <20200819153539.32698-1-ed.czeck@atomicrules.com> <20200826152412.9553-1-ed.czeck@atomicrules.com> Subject: [dpdk-dev] [PATCH 2/2] net/ark: remove RTE_LIBRTE_ARK_PAD_TX configuration macro 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" Replace behavior with RTE_LIBRTE_ARK_MIN_TX_PKTLEN with a default value of 0. Update documentation as needed. Signed-off-by: Ed Czeck --- doc/guides/nics/ark.rst | 16 ++++++++---- drivers/net/ark/ark_ethdev_tx.c | 44 +++++++++++++++++++-------------- drivers/net/ark/ark_logs.h | 8 ------ 3 files changed, 36 insertions(+), 32 deletions(-) diff --git a/doc/guides/nics/ark.rst b/doc/guides/nics/ark.rst index c3ffcbbc2..c7ed4095f 100644 --- a/doc/guides/nics/ark.rst +++ b/doc/guides/nics/ark.rst @@ -126,11 +126,10 @@ Configuration Information The following configuration options are available for the ARK PMD: - * **CONFIG_RTE_LIBRTE_ARK_PMD** (default y): Enables or disables inclusion - of the ARK PMD driver in the DPDK compilation. - - * **CONFIG_RTE_LIBRTE_ARK_PAD_TX** (default y): When enabled TX - packets are padded to 60 bytes to support downstream MACS. + * **RTE_LIBRTE_ARK_MIN_TX_PKTLEN** (default 0): Sets the minimum + packet length for tx packets to the FPGA. Packets less than this + length are padded to meet the requirement. This allows padding to + be offloaded or remain in host software. Building DPDK @@ -144,6 +143,13 @@ By default the ARK PMD library will be built into the DPDK library. For configuring and using UIO and VFIO frameworks, please also refer :ref:`the documentation that comes with DPDK suite `. +To build with a non-zero minimum tx packet length, set the above macro in your +CFLAGS environment prior to the meson build step. I.e., + + export CFLAGS="-DRTE_LIBRTE_ARK_MIN_TX_PKTLEN=60" + meson build + + Supported ARK RTL PCIe Instances -------------------------------- diff --git a/drivers/net/ark/ark_ethdev_tx.c b/drivers/net/ark/ark_ethdev_tx.c index 72624deb3..d24d7ac21 100644 --- a/drivers/net/ark/ark_ethdev_tx.c +++ b/drivers/net/ark/ark_ethdev_tx.c @@ -15,6 +15,13 @@ #define ARK_TX_MAX_NOCHAIN (RTE_MBUF_DEFAULT_DATAROOM) +#ifndef RTE_LIBRTE_ARK_MIN_TX_PKTLEN +#define ARK_MIN_TX_PKTLEN 0 +#else +#define ARK_MIN_TX_PKTLEN RTE_LIBRTE_ARK_MIN_TX_PKTLEN +#endif + + /* ************************************************************************* */ struct ark_tx_queue { struct ark_tx_meta *meta_q; @@ -91,6 +98,7 @@ eth_ark_xmit_pkts(void *vtxq, struct rte_mbuf **tx_pkts, uint16_t nb_pkts) uint32_t prod_index_limit; int stat; uint16_t nb; + const uint32_t min_pkt_len = ARK_MIN_TX_PKTLEN; queue = (struct ark_tx_queue *)vtxq; @@ -104,27 +112,25 @@ eth_ark_xmit_pkts(void *vtxq, struct rte_mbuf **tx_pkts, uint16_t nb_pkts) ++nb) { mbuf = tx_pkts[nb]; - if (ARK_TX_PAD_TO_60) { - if (unlikely(rte_pktmbuf_pkt_len(mbuf) < 60)) { - /* this packet even if it is small can be split, - * be sure to add to the end mbuf + if (unlikely(rte_pktmbuf_pkt_len(mbuf) < min_pkt_len)) { + /* this packet even if it is small can be split, + * be sure to add to the end mbuf + */ + uint16_t to_add = min_pkt_len - + rte_pktmbuf_pkt_len(mbuf); + char *appended = + rte_pktmbuf_append(mbuf, to_add); + + if (appended == 0) { + /* This packet is in error, + * we cannot send it so just + * count it and delete it. */ - uint16_t to_add = - 60 - rte_pktmbuf_pkt_len(mbuf); - char *appended = - rte_pktmbuf_append(mbuf, to_add); - - if (appended == 0) { - /* This packet is in error, - * we cannot send it so just - * count it and delete it. - */ - queue->tx_errors += 1; - rte_pktmbuf_free(mbuf); - continue; - } - memset(appended, 0, to_add); + queue->tx_errors += 1; + rte_pktmbuf_free(mbuf); + continue; } + memset(appended, 0, to_add); } if (unlikely(mbuf->nb_segs != 1)) { diff --git a/drivers/net/ark/ark_logs.h b/drivers/net/ark/ark_logs.h index c3d7e7d39..ca46d86c9 100644 --- a/drivers/net/ark/ark_logs.h +++ b/drivers/net/ark/ark_logs.h @@ -8,14 +8,6 @@ #include #include - -/* Configuration option to pad TX packets to 60 bytes */ -#ifdef RTE_LIBRTE_ARK_PAD_TX -#define ARK_TX_PAD_TO_60 1 -#else -#define ARK_TX_PAD_TO_60 0 -#endif - /* system camel case definition changed to upper case */ #define PRIU32 PRIu32 #define PRIU64 PRIu64