summaryrefslogblamecommitdiffstats
path: root/src/include/gpxe/if_ether.h
blob: 7f0abacbdb3f84d26bcf89b6bd0ce6f3894c8890 (plain) (tree)
1
2
3
4


                   
                   















                                                                                                      









                                      
                         
#ifndef	_IF_ETHER_H
#define	_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_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	/* _IF_ETHER_H */