[contrib] Allow Network Protocol header to display in rom-o-matic
[gpxe.git] / src / include / gpxe / if_ether.h
blobb96bee08befe306deb51aea37395b350ebae3d6e
1 #ifndef _GPXE_IF_ETHER_H
2 #define _GPXE_IF_ETHER_H
4 FILE_LICENCE ( GPL2_OR_LATER );
6 #include <stdint.h>
8 #define ETH_ALEN 6 /* Size of Ethernet address */
9 #define ETH_HLEN 14 /* Size of ethernet header */
10 #define ETH_ZLEN 60 /* Minimum packet */
11 #define ETH_FRAME_LEN 1514 /* Maximum packet */
12 #define ETH_DATA_ALIGN 2 /* Amount needed to align the data after an ethernet header */
13 #ifndef ETH_MAX_MTU
14 #define ETH_MAX_MTU (ETH_FRAME_LEN-ETH_HLEN)
15 #endif
17 #define ETH_P_RAW 0x0000 /* Raw packet */
18 #define ETH_P_IP 0x0800 /* Internet Protocl Packet */
19 #define ETH_P_ARP 0x0806 /* Address Resolution Protocol */
20 #define ETH_P_RARP 0x8035 /* Reverse Address resolution Protocol */
21 #define ETH_P_IPV6 0x86DD /* IPv6 over blueblook */
22 #define ETH_P_SLOW 0x8809 /* Ethernet slow protocols */
23 #define ETH_P_EAPOL 0x888E /* 802.1X EAP over LANs */
24 #define ETH_P_AOE 0x88A2 /* ATA over Ethernet */
26 /** An Ethernet link-layer header */
27 struct ethhdr {
28 /** Destination MAC address */
29 uint8_t h_dest[ETH_ALEN];
30 /** Source MAC address */
31 uint8_t h_source[ETH_ALEN];
32 /** Protocol ID */
33 uint16_t h_protocol;
34 } __attribute__ ((packed));
36 #endif /* _GPXE_IF_ETHER_H */