When receiving a scattered packet, save the stripped VLAN TCI in the first mbuf segment where users expect to find it.
Signed-off-by: Visa Hankala <v...@hankala.org> diff --git a/drivers/net/e1000/em_rxtx.c b/drivers/net/e1000/em_rxtx.c index d48fd52404..cb5ce2307b 100644 --- a/drivers/net/e1000/em_rxtx.c +++ b/drivers/net/e1000/em_rxtx.c @@ -1030,6 +1030,7 @@ eth_em_recv_scattered_pkts(void *rx_queue, struct rte_mbuf **rx_pkts, * - RX port identifier, * - hardware offload data, if any: * - IP checksum flag, + * - VLAN TCI, if any, * - error flags. */ first_seg->port = rxq->port_id; @@ -1039,7 +1040,7 @@ eth_em_recv_scattered_pkts(void *rx_queue, struct rte_mbuf **rx_pkts, rx_desc_error_to_pkt_flags(rxd.errors); /* Only valid if RTE_MBUF_F_RX_VLAN set in pkt_flags */ - rxm->vlan_tci = rte_le_to_cpu_16(rxd.special); + first_seg->vlan_tci = rte_le_to_cpu_16(rxd.special); /* Prefetch data of first segment, if configured to do so. */ rte_packet_prefetch((char *)first_seg->buf_addr +