#ifndef __UIP_ETH_H__ #define __UIP_ETH_H__ #include "uipopt.h" /******************************************************************************* * Ether types ******************************************************************************/ #define UIP_ETHTYPE_ARP 0x0806 #define UIP_ETHTYPE_IPv4 0x0800 #define UIP_ETHTYPE_8021Q 0x8100 #define UIP_ETHTYPE_IPv6 0x86dd /** * Representation of a 48-bit Ethernet address. */ struct uip_eth_addr { u8_t addr[6]; }; /** * The Ethernet header. */ struct __attribute__ ((__packed__)) uip_eth_hdr { struct uip_eth_addr dest; struct uip_eth_addr src; u16_t type; }; /** * The 802.1Q Ethernet header (VLAN). */ struct __attribute__ ((__packed__)) uip_vlan_eth_hdr { struct uip_eth_addr dest; struct uip_eth_addr src; u16_t tpid; u16_t vid; u16_t type; }; int is_vlan_packet(struct uip_vlan_eth_hdr *hdr); #endif /* __UIP_ETH_H__ */