diff options
author | glebius <glebius@FreeBSD.org> | 2014-11-11 10:22:33 +0000 |
---|---|---|
committer | glebius <glebius@FreeBSD.org> | 2014-11-11 10:22:33 +0000 |
commit | b786a57a348cc97896eea33fb19295b9947103e0 (patch) | |
tree | 6ef1823077a9bbe499d926bf516a19762eb14d3a | |
parent | 664419606cbabbda7fd2aecc50f6fc3d21bb850a (diff) | |
download | FreeBSD-src-b786a57a348cc97896eea33fb19295b9947103e0.zip FreeBSD-src-b786a57a348cc97896eea33fb19295b9947103e0.tar.gz |
Move struct ether_vlan_header to ethernet.h, out of if_vlan_var.h,
since this structure is protocol definition, not part of implementation.
-rw-r--r-- | sys/net/ethernet.h | 19 | ||||
-rw-r--r-- | sys/net/if_vlan_var.h | 16 |
2 files changed, 19 insertions, 16 deletions
diff --git a/sys/net/ethernet.h b/sys/net/ethernet.h index 10abf64..438028d 100644 --- a/sys/net/ethernet.h +++ b/sys/net/ethernet.h @@ -73,6 +73,25 @@ struct ether_addr { #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. * However, there are some conflicts. */ diff --git a/sys/net/if_vlan_var.h b/sys/net/if_vlan_var.h index b240874..ed4753e 100644 --- a/sys/net/if_vlan_var.h +++ b/sys/net/if_vlan_var.h @@ -32,22 +32,6 @@ #ifndef _NET_IF_VLAN_VAR_H_ #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. */ #define EVL_APPLY_VLID(m, vlid) \ do { \ |