if_ether.h

Go to the documentation of this file.
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 */

Generated on Tue Apr 6 20:01:08 2010 for gPXE by  doxygen 1.5.7.1