net/bnxt: refactor mbuf pointer reset
[dpdk.git] / drivers / net / ark / ark_ethdev_tx.c
index 72624de..612d918 100644 (file)
@@ -4,6 +4,7 @@
 
 #include <unistd.h>
 
+#include "rte_pmd_ark.h"
 #include "ark_ethdev_tx.h"
 #include "ark_global.h"
 #include "ark_mpu.h"
 #define ARK_TX_META_OFFSET (RTE_PKTMBUF_HEADROOM - ARK_TX_META_SIZE)
 #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 {
@@ -65,7 +71,7 @@ eth_ark_tx_meta_from_mbuf(struct ark_tx_meta *meta,
                          uint8_t flags)
 {
        meta->physaddr = rte_mbuf_data_iova(mbuf);
-       meta->user1 = (uint32_t)mbuf->udata64;
+       meta->user1 = rte_pmd_ark_mbuf_tx_userdata_get(mbuf);
        meta->data_len = rte_pktmbuf_data_len(mbuf);
        meta->flags = flags;
 }
@@ -91,6 +97,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 +111,26 @@ 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 (min_pkt_len &&
+                   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)) {