00001 #ifndef _GPXE_IF_ETHER_H 00002 #define _GPXE_IF_ETHER_H 00003 00004 FILE_LICENCE ( GPL2_OR_LATER ); 00005 00006 #include <stdint.h> 00007 00008 #define ETH_ALEN 6 /* Size of Ethernet address */ 00009 #define ETH_HLEN 14 /* Size of ethernet header */ 00010 #define ETH_ZLEN 60 /* Minimum packet */ 00011 #define ETH_FRAME_LEN 1514 /* Maximum packet */ 00012 #define ETH_DATA_ALIGN 2 /* Amount needed to align the data after an ethernet header */ 00013 #ifndef ETH_MAX_MTU 00014 #define ETH_MAX_MTU (ETH_FRAME_LEN-ETH_HLEN) 00015 #endif 00016 00017 #define ETH_P_RAW 0x0000 /* Raw packet */ 00018 #define ETH_P_IP 0x0800 /* Internet Protocl Packet */ 00019 #define ETH_P_ARP 0x0806 /* Address Resolution Protocol */ 00020 #define ETH_P_RARP 0x8035 /* Reverse Address resolution Protocol */ 00021 #define ETH_P_IPV6 0x86DD /* IPv6 over blueblook */ 00022 #define ETH_P_SLOW 0x8809 /* Ethernet slow protocols */ 00023 #define ETH_P_EAPOL 0x888E /* 802.1X EAP over LANs */ 00024 #define ETH_P_AOE 0x88A2 /* ATA over Ethernet */ 00025 00026 /** An Ethernet link-layer header */ 00027 struct ethhdr { 00028 /** Destination MAC address */ 00029 uint8_t h_dest[ETH_ALEN]; 00030 /** Source MAC address */ 00031 uint8_t h_source[ETH_ALEN]; 00032 /** Protocol ID */ 00033 uint16_t h_protocol; 00034 } __attribute__ ((packed)); 00035 00036 #endif /* _GPXE_IF_ETHER_H */
1.5.7.1