From: Richard Donkin <richard.don...@corigine.com> The DMA transfer length is allowed to be as large as NFDK_TX_MAX_DATA_PER_HEAD. The existing check would not allow a simple- type descriptor to be created for a packet of size NFDK_TX_MAX_DATA_PER_HEAD, but it would also not enable gather-type descriptors to be created correctly later.
Change the limit of simple-type descriptors to include packets of size NFDK_TX_MAX_DATA_PER_HEAD. In practice this fixes traffic with packets of size 4096. Previously such packets would not be transmitted correctly. Fixes: c73dced48c8c ("net/nfp: add NFDk Tx") Cc: sta...@dpdk.org Signed-off-by: Richard Donkin <richard.don...@corigine.com> Reviewed-by: Chaoyong He <chaoyong...@corigine.com> --- drivers/net/nfp/nfp_rxtx.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/nfp/nfp_rxtx.c b/drivers/net/nfp/nfp_rxtx.c index 01cffdfde0..fa4cc94a43 100644 --- a/drivers/net/nfp/nfp_rxtx.c +++ b/drivers/net/nfp/nfp_rxtx.c @@ -1214,7 +1214,7 @@ nfp_net_nfdk_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts, uint16_t nb_pk if ((hw->cap & NFP_NET_CFG_CTRL_LSO_ANY) && (pkt->ol_flags & RTE_MBUF_F_TX_TCP_SEG)) { type = NFDK_DESC_TX_TYPE_TSO; - } else if (!pkt->next && dma_len < NFDK_TX_MAX_DATA_PER_HEAD) { + } else if (!pkt->next && dma_len <= NFDK_TX_MAX_DATA_PER_HEAD) { type = NFDK_DESC_TX_TYPE_SIMPLE; } else { type = NFDK_DESC_TX_TYPE_GATHER; -- 2.29.3