DPDK patches and discussions
 help / color / mirror / Atom feed
From: Ed Czeck <ed.czeck@atomicrules.com>
To: dev@dpdk.org, ferruh.yigit@intel.com, bruce.richardson@intel.com
Cc: shepard.siegel@atomicrules.com, john.miller@atomicrules.com,
	Ed Czeck <ed.czeck@atomicrules.com>
Subject: [dpdk-dev] [PATCH 2/2] net/ark: remove RTE_LIBRTE_ARK_PAD_TX configuration macro
Date: Wed, 26 Aug 2020 11:24:12 -0400	[thread overview]
Message-ID: <20200826152412.9553-2-ed.czeck@atomicrules.com> (raw)
In-Reply-To: <20200826152412.9553-1-ed.czeck@atomicrules.com>

Replace behavior with RTE_LIBRTE_ARK_MIN_TX_PKTLEN
with a default value of 0.
Update documentation as needed.

Signed-off-by: Ed Czeck <ed.czeck@atomicrules.com>
---
 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 <linux_gsg>`.
 
+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 <inttypes.h>
 #include <rte_log.h>
 
-
-/* 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
-- 
2.17.1


  reply	other threads:[~2020-08-26 15:25 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-08-19 15:35 [dpdk-dev] [PATCH] net/ark: fix meson build Ed Czeck
2020-08-19 16:29 ` Ferruh Yigit
2020-08-19 20:45 ` Ed Czeck
2020-08-20 11:16   ` Ferruh Yigit
2020-08-20 15:41     ` Ed Czeck
2020-08-21  9:44       ` Ferruh Yigit
2020-08-20 21:55 ` [dpdk-dev] [PATCH 1/2] net/ark: remove compile time log macros in favor of run time log control Ed Czeck
2020-08-20 21:55   ` [dpdk-dev] [PATCH 2/2] net/ark remove ARK_TX_PAD_TO_60 configuration macro Ed Czeck
2020-08-21  9:50     ` Ferruh Yigit
2020-08-24 13:36 ` [dpdk-dev] [PATCH 1/2] net/ark: remove compile time log macros in favor of run time log control Ed Czeck
2020-08-24 13:36   ` [dpdk-dev] [PATCH 2/2] net/ark: remove RTE_LIBRTE_ARK_PAD_TX configuration macro Ed Czeck
2020-08-24 14:55     ` Ferruh Yigit
2020-08-24 21:51       ` Ed Czeck
2020-08-25  7:43         ` Ferruh Yigit
2020-08-24 14:37   ` [dpdk-dev] [PATCH 1/2] net/ark: remove compile time log macros in favor of run time log control Ferruh Yigit
2020-08-24 14:40     ` Bruce Richardson
2020-08-24 15:09       ` Ferruh Yigit
2020-08-24 21:40         ` Ed Czeck
2020-08-25  7:44           ` Ferruh Yigit
2020-08-26 15:24 ` Ed Czeck
2020-08-26 15:24   ` Ed Czeck [this message]
2020-08-27 16:11 ` Ed Czeck
2020-08-27 16:11   ` [dpdk-dev] [PATCH 2/2] net/ark: remove RTE_LIBRTE_ARK_PAD_TX configuration macro Ed Czeck
2020-09-01 11:17     ` Ferruh Yigit
2020-09-08 19:20 ` [dpdk-dev] [PATCH v7 1/2] net/ark: remove compile time log macros in favor of run time log control Ed Czeck
2020-09-08 19:20   ` [dpdk-dev] [PATCH v7 2/2] net/ark: remove RTE_LIBRTE_ARK_PAD_TX configuration macro Ed Czeck
2020-09-09 13:33   ` [dpdk-dev] [PATCH v7 1/2] net/ark: remove compile time log macros in favor of run time log control Ferruh Yigit

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200826152412.9553-2-ed.czeck@atomicrules.com \
    --to=ed.czeck@atomicrules.com \
    --cc=bruce.richardson@intel.com \
    --cc=dev@dpdk.org \
    --cc=ferruh.yigit@intel.com \
    --cc=john.miller@atomicrules.com \
    --cc=shepard.siegel@atomicrules.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).