On Mon, 18 May 2026 at 15:28, Robin Jarry <[email protected]> wrote: > > This reverts commit 1f250674085aeb4ffd15ac2519a68efc04faf7ac. > > rte_net_get_ptype() now uses |= to set the L2 ptype inside the VLAN > parsing loop. Since pkt_type is already initialized with > RTE_PTYPE_L2_ETHER (0x1), or-ing it with RTE_PTYPE_L2_ETHER_VLAN (0x6) > results in RTE_PTYPE_L2_ETHER_QINQ (0x7). This causes single VLAN frames > to be misidentified as QinQ. > > This was detected while testing DPDK 25.11.1 in grout. The net/tap > driver calls rte_net_get_ptype() in tap_verify_csum() to determine the > L2 header length. With the wrong ptype, l2_len is set to 22 (ether > + QinQ = 14 + 8) instead of 18 (ether + VLAN = 14 + 4), shifting the IP > header pointer by 4 bytes. The checksum is then computed on garbage > data, causing valid packets to be dropped. > > Bugzilla ID: 1941 > Fixes: 1f250674085a ("net: fix packet type for stacked VLAN") > Cc: [email protected]
> Signed-off-by: Robin Jarry <[email protected]> Acked-by: David Marchand <[email protected]> Just a note that this commit is already present in all latest LTS releases. -- David Marchand

