mirror of
https://git.FreeBSD.org/src.git
synced 2025-02-04 17:15:50 +00:00
Move struct ether_vlan_header to ethernet.h, out of if_vlan_var.h,
since this structure is protocol definition, not part of implementation.
This commit is contained in:
parent
a31070e90d
commit
00f22c06e8
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=274374
@ -72,6 +72,25 @@ struct ether_addr {
|
|||||||
|
|
||||||
#define ETHER_IS_MULTICAST(addr) (*(addr) & 0x01) /* is address mcast/bcast? */
|
#define ETHER_IS_MULTICAST(addr) (*(addr) & 0x01) /* is address mcast/bcast? */
|
||||||
|
|
||||||
|
/*
|
||||||
|
* 802.1q Virtual LAN header.
|
||||||
|
*/
|
||||||
|
struct ether_vlan_header {
|
||||||
|
uint8_t evl_dhost[ETHER_ADDR_LEN];
|
||||||
|
uint8_t evl_shost[ETHER_ADDR_LEN];
|
||||||
|
uint16_t evl_encap_proto;
|
||||||
|
uint16_t evl_tag;
|
||||||
|
uint16_t evl_proto;
|
||||||
|
} __packed;
|
||||||
|
|
||||||
|
#define EVL_VLID_MASK 0x0FFF
|
||||||
|
#define EVL_PRI_MASK 0xE000
|
||||||
|
#define EVL_VLANOFTAG(tag) ((tag) & EVL_VLID_MASK)
|
||||||
|
#define EVL_PRIOFTAG(tag) (((tag) >> 13) & 7)
|
||||||
|
#define EVL_CFIOFTAG(tag) (((tag) >> 12) & 1)
|
||||||
|
#define EVL_MAKETAG(vlid, pri, cfi) \
|
||||||
|
((((((pri) & 7) << 1) | ((cfi) & 1)) << 12) | ((vlid) & EVL_VLID_MASK))
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* NOTE: 0x0000-0x05DC (0..1500) are generally IEEE 802.3 length fields.
|
* NOTE: 0x0000-0x05DC (0..1500) are generally IEEE 802.3 length fields.
|
||||||
* However, there are some conflicts.
|
* However, there are some conflicts.
|
||||||
|
@ -32,22 +32,6 @@
|
|||||||
#ifndef _NET_IF_VLAN_VAR_H_
|
#ifndef _NET_IF_VLAN_VAR_H_
|
||||||
#define _NET_IF_VLAN_VAR_H_ 1
|
#define _NET_IF_VLAN_VAR_H_ 1
|
||||||
|
|
||||||
struct ether_vlan_header {
|
|
||||||
u_char evl_dhost[ETHER_ADDR_LEN];
|
|
||||||
u_char evl_shost[ETHER_ADDR_LEN];
|
|
||||||
u_int16_t evl_encap_proto;
|
|
||||||
u_int16_t evl_tag;
|
|
||||||
u_int16_t evl_proto;
|
|
||||||
};
|
|
||||||
|
|
||||||
#define EVL_VLID_MASK 0x0FFF
|
|
||||||
#define EVL_PRI_MASK 0xE000
|
|
||||||
#define EVL_VLANOFTAG(tag) ((tag) & EVL_VLID_MASK)
|
|
||||||
#define EVL_PRIOFTAG(tag) (((tag) >> 13) & 7)
|
|
||||||
#define EVL_CFIOFTAG(tag) (((tag) >> 12) & 1)
|
|
||||||
#define EVL_MAKETAG(vlid, pri, cfi) \
|
|
||||||
((((((pri) & 7) << 1) | ((cfi) & 1)) << 12) | ((vlid) & EVL_VLID_MASK))
|
|
||||||
|
|
||||||
/* Set the VLAN ID in an mbuf packet header non-destructively. */
|
/* Set the VLAN ID in an mbuf packet header non-destructively. */
|
||||||
#define EVL_APPLY_VLID(m, vlid) \
|
#define EVL_APPLY_VLID(m, vlid) \
|
||||||
do { \
|
do { \
|
||||||
|
Loading…
x
Reference in New Issue
Block a user