diff options
Diffstat (limited to 'drivers/net/wireless/bcmdhd/include/proto/vlan.h')
-rw-r--r-- | drivers/net/wireless/bcmdhd/include/proto/vlan.h | 52 |
1 files changed, 35 insertions, 17 deletions
diff --git a/drivers/net/wireless/bcmdhd/include/proto/vlan.h b/drivers/net/wireless/bcmdhd/include/proto/vlan.h index 2eb4832..a474cfd 100644 --- a/drivers/net/wireless/bcmdhd/include/proto/vlan.h +++ b/drivers/net/wireless/bcmdhd/include/proto/vlan.h @@ -1,7 +1,7 @@ /* * 802.1Q VLAN protocol definitions * - * Copyright (C) 1999-2012, Broadcom Corporation + * Copyright (C) 1999-2014, Broadcom Corporation * * Unless you and Broadcom execute a separate written software license * agreement governing use of this software, this software is licensed to you @@ -21,7 +21,7 @@ * software in any way with any other Broadcom software provided under a license * other than the GPL, without Broadcom's express prior written consent. * - * $Id: vlan.h 346935 2012-07-25 00:24:55Z $ + * $Id: vlan.h 382883 2013-02-04 23:26:09Z $ */ #ifndef _vlan_h_ @@ -31,40 +31,58 @@ #include <typedefs.h> #endif - +/* This marks the start of a packed structure section. */ #include <packed_section_start.h> -#define VLAN_VID_MASK 0xfff -#define VLAN_CFI_SHIFT 12 -#define VLAN_PRI_SHIFT 13 +#ifndef VLAN_VID_MASK +#define VLAN_VID_MASK 0xfff /* low 12 bits are vlan id */ +#endif + +#define VLAN_CFI_SHIFT 12 /* canonical format indicator bit */ +#define VLAN_PRI_SHIFT 13 /* user priority */ -#define VLAN_PRI_MASK 7 +#define VLAN_PRI_MASK 7 /* 3 bits of priority */ -#define VLAN_TPID_OFFSET 12 -#define VLAN_TCI_OFFSET 14 +#define VLAN_TPID_OFFSET 12 /* offset of tag protocol id field */ +#define VLAN_TCI_OFFSET 14 /* offset of tag ctrl info field */ #define VLAN_TAG_LEN 4 -#define VLAN_TAG_OFFSET (2 * ETHER_ADDR_LEN) +#define VLAN_TAG_OFFSET (2 * ETHER_ADDR_LEN) /* offset in Ethernet II packet only */ -#define VLAN_TPID 0x8100 +#define VLAN_TPID 0x8100 /* VLAN ethertype/Tag Protocol ID */ struct vlan_header { - uint16 vlan_type; - uint16 vlan_tag; + uint16 vlan_type; /* 0x8100 */ + uint16 vlan_tag; /* priority, cfi and vid */ }; struct ethervlan_header { uint8 ether_dhost[ETHER_ADDR_LEN]; uint8 ether_shost[ETHER_ADDR_LEN]; - uint16 vlan_type; - uint16 vlan_tag; + uint16 vlan_type; /* 0x8100 */ + uint16 vlan_tag; /* priority, cfi and vid */ uint16 ether_type; }; -#define ETHERVLAN_HDR_LEN (ETHER_HDR_LEN + VLAN_TAG_LEN) +struct dot3_mac_llc_snapvlan_header { + uint8 ether_dhost[ETHER_ADDR_LEN]; /* dest mac */ + uint8 ether_shost[ETHER_ADDR_LEN]; /* src mac */ + uint16 length; /* frame length incl header */ + uint8 dsap; /* always 0xAA */ + uint8 ssap; /* always 0xAA */ + uint8 ctl; /* always 0x03 */ + uint8 oui[3]; /* RFC1042: 0x00 0x00 0x00 + * Bridge-Tunnel: 0x00 0x00 0xF8 + */ + uint16 vlan_type; /* 0x8100 */ + uint16 vlan_tag; /* priority, cfi and vid */ + uint16 ether_type; /* ethertype */ +}; +#define ETHERVLAN_HDR_LEN (ETHER_HDR_LEN + VLAN_TAG_LEN) +/* This marks the end of a packed structure section. */ #include <packed_section_end.h> #define ETHERVLAN_MOVE_HDR(d, s) \ @@ -74,4 +92,4 @@ do { \ *(struct ethervlan_header *)(d) = t; \ } while (0) -#endif +#endif /* _vlan_h_ */ |