You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

if_ether.h 1.3KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. #ifndef _IPXE_IF_ETHER_H
  2. #define _IPXE_IF_ETHER_H
  3. FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL );
  4. #include <stdint.h>
  5. #define ETH_ALEN 6 /* Size of Ethernet address */
  6. #define ETH_HLEN 14 /* Size of ethernet header */
  7. #define ETH_ZLEN 60 /* Minimum packet */
  8. #define ETH_FRAME_LEN 1514 /* Maximum packet */
  9. #define ETH_DATA_ALIGN 2 /* Amount needed to align the data after an ethernet header */
  10. #ifndef ETH_MAX_MTU
  11. #define ETH_MAX_MTU (ETH_FRAME_LEN-ETH_HLEN)
  12. #endif
  13. #define ETH_P_RAW 0x0000 /* Raw packet */
  14. #define ETH_P_IP 0x0800 /* Internet Protocl Packet */
  15. #define ETH_P_ARP 0x0806 /* Address Resolution Protocol */
  16. #define ETH_P_RARP 0x8035 /* Reverse Address resolution Protocol */
  17. #define ETH_P_8021Q 0x8100 /* 802.1Q VLAN Extended Header */
  18. #define ETH_P_IPV6 0x86DD /* IPv6 over blueblook */
  19. #define ETH_P_SLOW 0x8809 /* Ethernet slow protocols */
  20. #define ETH_P_EAPOL 0x888E /* 802.1X EAP over LANs */
  21. #define ETH_P_AOE 0x88A2 /* ATA over Ethernet */
  22. #define ETH_P_FCOE 0x8906 /* Fibre Channel over Ethernet */
  23. #define ETH_P_FIP 0x8914 /* FCoE Initialization Protocol */
  24. /** An Ethernet link-layer header */
  25. struct ethhdr {
  26. /** Destination MAC address */
  27. uint8_t h_dest[ETH_ALEN];
  28. /** Source MAC address */
  29. uint8_t h_source[ETH_ALEN];
  30. /** Protocol ID */
  31. uint16_t h_protocol;
  32. } __attribute__ ((packed));
  33. #endif /* _IPXE_IF_ETHER_H */