Greetings,
I am running vanilla Linux kernel v4.4.6.
When using AF_PACKET sockets with PACKET_AUXDATA socket option to access
the VLAN TCI information of received frames, I have noticed that the
VLAN information in struct tpacket_auxdata, namely,
- tp_vlan_tci
- tp_vlan_tpid
- TP_STATUS_VLAN_VALID and TP_STATUS_VLAN_TPID_VALID flags
is filled in only when the socket is bound to htons (ETH_P_ALL). If the
socket is bound to any specific protocol, the VLAN information fields in
struct tpacket_auxdata are set to 0 even if the datagram of the specific
protocol was received in an 802.1Q-tagged frame.
Is this behavior intentional? If not, I would be honored to try to
provide a patch but I am not well-versed in kernel internals so any
guidance would be most appreciated.
Thanks!
Best regards,
Peter