From 0d6f9fe5333ab4da58bd38e1500dfccbc3febf6d Mon Sep 17 00:00:00 2001 From: Jeff Guo Date: Wed, 20 May 2020 17:25:21 -0400 Subject: [PATCH] net/i40e: fix setting L2TAG [ upstream commit 61b26a9c5ae569ce5900414a41a42c41d069155c ] Base on HW, if a packet is split into multiple segments, the L2TAG should only be valid on the last Rx descriptor. So fix it by setting L2TAG into mbuf when processing the last split packet. Fixes: ca74903b75cf ("net/i40e: extract non-x86 specific code from vector driver") Signed-off-by: Jeff Guo Acked-by: Qi Zhang --- drivers/net/i40e/i40e_rxtx_vec_common.h | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/net/i40e/i40e_rxtx_vec_common.h b/drivers/net/i40e/i40e_rxtx_vec_common.h index 0e6ffa0078..31f73f6054 100644 --- a/drivers/net/i40e/i40e_rxtx_vec_common.h +++ b/drivers/net/i40e/i40e_rxtx_vec_common.h @@ -33,6 +33,7 @@ reassemble_packets(struct i40e_rx_queue *rxq, struct rte_mbuf **rx_bufs, if (!split_flags[buf_idx]) { /* it's the last packet of the set */ start->hash = end->hash; + start->vlan_tci = end->vlan_tci; start->ol_flags = end->ol_flags; /* we need to strip crc for the whole packet */ start->pkt_len -= rxq->crc_len;