mirror of
git://projects.qi-hardware.com/openwrt-xburst.git
synced 2024-11-30 03:45:18 +02:00
d787d666cd
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@2480 3c298f89-4303-0410-b956-a3cf2f4a3e73
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_ */
|