mirror of
git://projects.qi-hardware.com/openwrt-xburst.git
synced 2024-12-27 21:23:19 +02:00
51 lines
1.2 KiB
C
51 lines
1.2 KiB
C
|
/*
|
||
|
* 802.1Q VLAN protocol definitions
|
||
|
*
|
||
|
* Copyright 2005, Broadcom Corporation
|
||
|
* All Rights Reserved.
|
||
|
*
|
||
|
* THIS SOFTWARE IS OFFERED "AS IS", AND BROADCOM GRANTS NO WARRANTIES OF ANY
|
||
|
* KIND, EXPRESS OR IMPLIED, BY STATUTE, COMMUNICATION OR OTHERWISE. BROADCOM
|
||
|
* SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS
|
||
|
* FOR A SPECIFIC PURPOSE OR NONINFRINGEMENT CONCERNING THIS SOFTWARE.
|
||
|
*
|
||
|
* $Id$
|
||
|
*/
|
||
|
|
||
|
#ifndef _vlan_h_
|
||
|
#define _vlan_h_
|
||
|
|
||
|
/* enable structure packing */
|
||
|
#if defined(__GNUC__)
|
||
|
#define PACKED __attribute__((packed))
|
||
|
#else
|
||
|
#pragma pack(1)
|
||
|
#define PACKED
|
||
|
#endif
|
||
|
|
||
|
#define VLAN_VID_MASK 0xfff /* low 12 bits are vlan id */
|
||
|
#define VLAN_CFI_SHIFT 12 /* canonical format indicator bit */
|
||
|
#define VLAN_PRI_SHIFT 13 /* user priority */
|
||
|
|
||
|
#define VLAN_PRI_MASK 7 /* 3 bits of priority */
|
||
|
|
||
|
#define VLAN_TAG_LEN 4
|
||
|
#define VLAN_TAG_OFFSET (2 * ETHER_ADDR_LEN)
|
||
|
|
||
|
struct ethervlan_header {
|
||
|
uint8 ether_dhost[ETHER_ADDR_LEN];
|
||
|
uint8 ether_shost[ETHER_ADDR_LEN];
|
||
|
uint16 vlan_type; /* 0x8100 */
|
||
|
uint16 vlan_tag; /* priority, cfi and vid */
|
||
|
uint16 ether_type;
|
||
|
};
|
||
|
|
||
|
#define ETHERVLAN_HDR_LEN (ETHER_HDR_LEN + VLAN_TAG_LEN)
|
||
|
|
||
|
#undef PACKED
|
||
|
#if !defined(__GNUC__)
|
||
|
#pragma pack()
|
||
|
#endif
|
||
|
|
||
|
#endif /* _vlan_h_ */
|