net/nfp: clean Tx descriptor flags

When LSO, not doing this can led to firmware disruption. It does
not show as error because TCP ends up sending data again later on.

Fixes: 9ba3d0ae20 ("net/nfp: add TSO support")
Cc: stable@dpdk.org

Signed-off-by: Alejandro Lucero <alejandro.lucero@netronome.com>
This commit is contained in:
Alejandro Lucero 2017-03-21 10:43:19 +00:00 committed by Ferruh Yigit
parent f2b852169b
commit 2dfcada3eb

View File

@ -1660,16 +1660,22 @@ nfp_net_tx_tso(struct nfp_net_txq *txq, struct nfp_net_tx_desc *txd,
struct nfp_net_hw *hw = txq->hw;
if (!(hw->cap & NFP_NET_CFG_CTRL_LSO))
return;
goto clean_txd;
ol_flags = mb->ol_flags;
if (!(ol_flags & PKT_TX_TCP_SEG))
return;
goto clean_txd;
txd->l4_offset = mb->l2_len + mb->l3_len + mb->l4_len;
txd->lso = rte_cpu_to_le_16(mb->tso_segsz);
txd->flags |= PCIE_DESC_TX_LSO;
txd->flags = PCIE_DESC_TX_LSO;
return;
clean_txd:
txd->flags = 0;
txd->l4_offset = 0;
txd->lso = 0;
}
/* nfp_net_tx_cksum - Set TX CSUM offload flags in TX descriptor */