aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/linux/if_vlan.h33
1 files changed, 23 insertions, 10 deletions
diff --git a/include/linux/if_vlan.h b/include/linux/if_vlan.h
index a26805198b14..a1b0066ec0d9 100644
--- a/include/linux/if_vlan.h
+++ b/include/linux/if_vlan.h
@@ -34,12 +34,30 @@ struct hlist_node;
34#define VLAN_ETH_DATA_LEN 1500 /* Max. octets in payload */ 34#define VLAN_ETH_DATA_LEN 1500 /* Max. octets in payload */
35#define VLAN_ETH_FRAME_LEN 1518 /* Max. octets in frame sans FCS */ 35#define VLAN_ETH_FRAME_LEN 1518 /* Max. octets in frame sans FCS */
36 36
37/*
38 * struct vlan_hdr - vlan header
39 * @h_vlan_TCI: priority and VLAN ID
40 * @h_vlan_encapsulated_proto: packet type ID or len
41 */
42struct vlan_hdr {
43 __be16 h_vlan_TCI;
44 __be16 h_vlan_encapsulated_proto;
45};
46
47/**
48 * struct vlan_ethhdr - vlan ethernet header (ethhdr + vlan_hdr)
49 * @h_dest: destination ethernet address
50 * @h_source: source ethernet address
51 * @h_vlan_proto: ethernet protocol (always 0x8100)
52 * @h_vlan_TCI: priority and VLAN ID
53 * @h_vlan_encapsulated_proto: packet type ID or len
54 */
37struct vlan_ethhdr { 55struct vlan_ethhdr {
38 unsigned char h_dest[ETH_ALEN]; /* destination eth addr */ 56 unsigned char h_dest[ETH_ALEN];
39 unsigned char h_source[ETH_ALEN]; /* source ether addr */ 57 unsigned char h_source[ETH_ALEN];
40 __be16 h_vlan_proto; /* Should always be 0x8100 */ 58 __be16 h_vlan_proto;
41 __be16 h_vlan_TCI; /* Encapsulates priority and VLAN ID */ 59 __be16 h_vlan_TCI;
42 __be16 h_vlan_encapsulated_proto; /* packet type ID field (or len) */ 60 __be16 h_vlan_encapsulated_proto;
43}; 61};
44 62
45#include <linux/skbuff.h> 63#include <linux/skbuff.h>
@@ -49,11 +67,6 @@ static inline struct vlan_ethhdr *vlan_eth_hdr(const struct sk_buff *skb)
49 return (struct vlan_ethhdr *)skb_mac_header(skb); 67 return (struct vlan_ethhdr *)skb_mac_header(skb);
50} 68}
51 69
52struct vlan_hdr {
53 __be16 h_vlan_TCI; /* Encapsulates priority and VLAN ID */
54 __be16 h_vlan_encapsulated_proto; /* packet type ID field (or len) */
55};
56
57#define VLAN_VID_MASK 0xfff 70#define VLAN_VID_MASK 0xfff
58 71
59/* found in socket.c */ 72/* found in socket.c */