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

Reply via email to