History

packet: deliver VLAN TPID to userspace

This enables userspace to get VLAN TPID as well as the VLAN TCI.

Atzm Watanabe committed 12 years ago

Commit a0cdfcf1 parent e4d26f42 files · +24 −14Browse files

Showing the changes to include/uapi/linux (1 of 2 files). Show all

Unified · Split

include/uapi/linux/if_packet.h+14−10
@@ -84,17 +84,18 @@ struct tpacket_auxdata { · 83 unmodified lines
8484 __u16 tp_mac;
8585 __u16 tp_net;
8686 __u16 tp_vlan_tci;
87− __u16 tp_padding;
87+ __u16 tp_vlan_tpid;
8888 };
8989
9090 /* Rx ring - header status */
91−#define TP_STATUS_KERNEL 0
92−#define TP_STATUS_USER (1 << 0)
93−#define TP_STATUS_COPY (1 << 1)
94−#define TP_STATUS_LOSING (1 << 2)
95−#define TP_STATUS_CSUMNOTREADY (1 << 3)
96−#define TP_STATUS_VLAN_VALID (1 << 4) /* auxdata has valid tp_vlan_tci */
97−#define TP_STATUS_BLK_TMO (1 << 5)
91+#define TP_STATUS_KERNEL 0
92+#define TP_STATUS_USER (1 << 0)
93+#define TP_STATUS_COPY (1 << 1)
94+#define TP_STATUS_LOSING (1 << 2)
95+#define TP_STATUS_CSUMNOTREADY (1 << 3)
96+#define TP_STATUS_VLAN_VALID (1 << 4) /* auxdata has valid tp_vlan_tci */
97+#define TP_STATUS_BLK_TMO (1 << 5)
98+#define TP_STATUS_VLAN_TPID_VALID (1 << 6) /* auxdata has valid tp_vlan_tpid */
9899
99100 /* Tx ring - header status */
100101 #define TP_STATUS_AVAILABLE 0
@@ -133,12 +134,15 @@ struct tpacket2_hdr { · 32 unmodified lines
133134 __u32 tp_sec;
134135 __u32 tp_nsec;
135136 __u16 tp_vlan_tci;
136− __u8 tp_padding[6];
137+ __u16 tp_vlan_tpid;
138+ __u8 tp_padding[4];
137139 };
138140
139141 struct tpacket_hdr_variant1 {
140142 __u32 tp_rxhash;
141143 __u32 tp_vlan_tci;
144+ __u16 tp_vlan_tpid;
145+ __u16 tp_padding;
142146 };
143147
144148 struct tpacket3_hdr {
@@ -154,7 +158,7 @@ struct tpacket3_hdr { · 9 unmodified lines
154158 union {
155159 struct tpacket_hdr_variant1 hv1;
156160 };
157− __u8 tp_padding[12];
161+ __u8 tp_padding[8];
158162 };
159163
160164 struct tpacket_bd_ts {