From: Xiaoxin Peng <xiaoxin.p...@broadcom.com> When using multi-mbuf to xmit large packets, we need to use total packet lengths (sum of all segments) to set txbd->flags_type. Packets will not be sent when using tx_pkt->data_len(The first segment of packets).
Fixes: 6eb3cc2294fd ("net/bnxt: add initial Tx code") Cc: sta...@dpdk.org Signed-off-by: Xiaoxin Peng <xiaoxin.p...@broadcom.com> Reviewed-by: Herry Chen <herry.c...@broadcom.com> Reviewed-by: Jason He <jason...@broadcom.com> Reviewed-by: Scott Branden <scott.bran...@broadcom.com> Reviewed-by: Ajit Kumar Khaparde <ajit.khapa...@broadcom.com> --- drivers/net/bnxt/bnxt_txr.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/net/bnxt/bnxt_txr.c b/drivers/net/bnxt/bnxt_txr.c index f8fd22156..23c8e6660 100644 --- a/drivers/net/bnxt/bnxt_txr.c +++ b/drivers/net/bnxt/bnxt_txr.c @@ -160,10 +160,10 @@ static uint16_t bnxt_start_xmit(struct rte_mbuf *tx_pkt, *cmpl_next = false; } txbd->len = tx_pkt->data_len; - if (txbd->len >= 2014) + if (tx_pkt->pkt_len >= 2014) txbd->flags_type |= TX_BD_LONG_FLAGS_LHINT_GTE2K; else - txbd->flags_type |= lhint_arr[txbd->len >> 9]; + txbd->flags_type |= lhint_arr[tx_pkt->pkt_len >> 9]; txbd->address = rte_cpu_to_le_32(rte_mbuf_data_iova(tx_buf->mbuf)); if (long_bd) { -- 2.15.1 (Apple Git-101)