[PATCH v2 net 0/2] Fix wrong transport_header when sending VLAN-tagged frames
From: wei . fang
Date: Fri Aug 07 2026 - 02:30:53 EST
From: Wei Fang <wei.fang@xxxxxxx>
When sending a VLAN-tagged frame via AF_PACKET or tap, calling
skb_set_network_header() before skb_probe_transport_header() causes
the flow dissector to misinterpret the inner protocol header as a
VLAN header. As a result, transport_header is never set and remains
at its uninitialized sentinel value (~0U).
Move skb_probe_transport_header() to before skb_set_network_header()
so the flow dissector sees network_header still pointing to the VLAN
header and can correctly identify the transport layer.
---
v2 changes:
1. Move skb_probe_transport_header() to before skb_set_network_header()
2. Change the commit messages and titles
v1 link: https://lore.kernel.org/imx/20260805105314.3882595-1-wei.fang@xxxxxxxxxxx/
---
Wei Fang (2):
net: packet: fix wrong transport_header when sending VLAN-tagged frame
net: tap: fix wrong transport_header when sending VLAN-tagged frame
drivers/net/tap.c | 3 ++-
net/packet/af_packet.c | 4 ++--
2 files changed, 4 insertions(+), 3 deletions(-)
--
2.34.1