40 #ifndef included_ethernet_packet_h 41 #define included_ethernet_packet_h 47 #define ethernet_type(n,s) ETHERNET_TYPE_##s = n, 62 #define ETHERNET_ADDRESS_UNICAST 0 63 #define ETHERNET_ADDRESS_MULTICAST 1 69 return (a[0] >> 0) & 1;
82 return (a[0] >> 1) & 1;
133 #define ETHERNET_N_VLAN (1 << 12) 146 bytes[0] |= (prio & 0x7) << 5;
154 return (bytes[0] >> 5);
184 #define ETHERNET_N_PBB (1 << 24) 202 u32 priority_dei_uca_res_sid;
203 }) ethernet_pbb_header_packed_t;
static int ethernet_address_is_broadcast(u8 *a)
static uword ethernet_address_is_locally_administered(u8 *a)
static int eh_dst_addr_to_rx_ctype(ethernet_header_t *eh)
static uword ethernet_address_cast(u8 *a)
static void ethernet_vlan_header_set_priority_net_order(ethernet_vlan_header_t *h, u8 prio)
static void ethernet_address_set_locally_administered(u8 *a)
static int eh_dst_addr_to_tx_ctype(ethernet_header_t *eh)
typedef CLIB_PACKED(struct{u8 b_dst_address[6];u8 b_src_address[6];u16 b_type;u16 priority_dei_id;u16 i_type;u32 priority_dei_uca_res_sid;}) ethernet_pbb_header_packed_t
#define clib_mem_unaligned(pointer, type)
static u8 ethernet_vlan_header_get_priority_net_order(ethernet_vlan_header_t *h)
#define ETHERNET_ADDRESS_UNICAST