Files
ipxe/src/include/gpxe/if_ether.h
T
Michael Brown 824d6ffa7f Header rearrangement.
I want to get to the point where any header in include/ reflects a
standard user-level header (e.g. a POSIX header), while everything that's
specific to gPXE lives in include/gpxe/.  Headers that reflect a Linux
header (e.g. if_ether.h) should also be in include/gpxe/, with the same
name as the Linux header and, preferably, the same names used for the
definitions.
2006-04-24 15:42:49 +00:00

33 lines
1.0 KiB
C

#ifndef _GPXE_IF_ETHER_H
#define _GPXE_IF_ETHER_H
#include <stdint.h>
#define ETH_ALEN 6 /* Size of Ethernet address */
#define ETH_HLEN 14 /* Size of ethernet header */
#define ETH_ZLEN 60 /* Minimum packet */
#define ETH_FRAME_LEN 1514 /* Maximum packet */
#define ETH_DATA_ALIGN 2 /* Amount needed to align the data after an ethernet header */
#ifndef ETH_MAX_MTU
#define ETH_MAX_MTU (ETH_FRAME_LEN-ETH_HLEN)
#endif
#define ETH_P_RAW 0x0000 /* Raw packet */
#define ETH_P_IP 0x0800 /* Internet Protocl Packet */
#define ETH_P_ARP 0x0806 /* Address Resolution Protocol */
#define ETH_P_RARP 0x8035 /* Reverse Address resolution Protocol */
#define ETH_P_IPV6 0x86DD /* IPv6 over blueblook */
#define ETH_P_SLOW 0x8809 /* Ethernet slow protocols */
/** An Ethernet link-layer header */
struct ethhdr {
/** Destination MAC address */
uint8_t h_dest[ETH_ALEN];
/** Source MAC address */
uint8_t h_source[ETH_ALEN];
/** Protocol ID */
uint16_t h_protocol;
} __attribute__ ((packed));
#endif /* _GPXE_IF_ETHER_H */