/* * Copyright 2006-2010, Haiku, Inc. All Rights Reserved. * Distributed under the terms of the MIT License. */ #ifndef ETHERNET_H #define ETHERNET_H #include <SupportDefs.h> #define ETHER_ADDRESS_LENGTH 6 #define ETHER_CRC_LENGTH 4 #define ETHER_HEADER_LENGTH 14 #define ETHER_MIN_FRAME_SIZE 64 #define ETHER_MAX_FRAME_SIZE 1514 struct ether_header { uint8 destination[ETHER_ADDRESS_LENGTH]; uint8 source[ETHER_ADDRESS_LENGTH]; uint16 type; } _PACKED; // ethernet types #define ETHER_TYPE_IP 0x0800 #define ETHER_TYPE_ARP 0x0806 #define ETHER_TYPE_IPX 0x8137 #define ETHER_TYPE_IPV6 0x86dd #define ETHER_TYPE_PPPOE_DISCOVERY 0x8863 // PPPoE discovery stage #define ETHER_TYPE_PPPOE 0x8864 // PPPoE session stage #endif // ETHERNET_H