On 15/02/2022 10:06, Ferruh Yigit wrote:
On 2/10/2022 1:09 PM, Radu Nicolau wrote:
This reverts commit ff8b8bcd2ebe, which resulted in incorrect buffer size
being computed for TSO packets.
Fixes: ff8b8bcd2ebe ("net/iavf: fix segmentation offload condition")
Commit 'ff8b8bcd2ebe' was already fixing segmentation offload,
are we having the initial issue back when this patch reverted?
Is there a fix for that initial issue?
+Kevin, Luca,
Since this patch reverts a fix done after 21.11, is there a way
to stop that fix to be merged for 21.11.x?
This revert patch would show up for us as a relevant one to backport, so
in the worst case where initial fix was already pushed to dpdk.org, the
revert would be taken too and the net result would be ok by release time.
In this case, as the initial fix is not pushed to dpdk.org stable
branches yet and as you have let us know, we can just make a note to
skip it, or remove from a personal staging repo if already backported there.
I'll add an email filter for 'reverts' to catch this so you won't have
to ping manually, but feel free to do that as I suspect (hope :-)) it's
only a handful of patches per release.
Thanks for highlighting, Kevin.
Signed-off-by: Radu Nicolau <radu.nico...@intel.com>
---
drivers/net/iavf/iavf_rxtx.c | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/drivers/net/iavf/iavf_rxtx.c b/drivers/net/iavf/iavf_rxtx.c
index b0fed1b992..ba272bb211 100644
--- a/drivers/net/iavf/iavf_rxtx.c
+++ b/drivers/net/iavf/iavf_rxtx.c
@@ -2464,9 +2464,10 @@ iavf_fill_data_desc(volatile struct iavf_tx_desc *desc,
desc->buffer_addr = rte_mbuf_data_iova(m);
/* calculate data buffer size less set header lengths */
- if (m->ol_flags & (RTE_MBUF_F_TX_TCP_SEG | RTE_MBUF_F_TX_UDP_SEG)) {
- if (m->ol_flags & RTE_MBUF_F_TX_TUNNEL_MASK)
- hdrlen += m->outer_l3_len;
+ if ((m->ol_flags & RTE_MBUF_F_TX_TUNNEL_MASK) &&
+ (m->ol_flags & (RTE_MBUF_F_TX_TCP_SEG |
+ RTE_MBUF_F_TX_UDP_SEG))) {
+ hdrlen += m->outer_l3_len;
if (m->ol_flags & RTE_MBUF_F_TX_L4_MASK)
hdrlen += m->l3_len + m->l4_len;
else