1/* 2 * Copyright 2006-2010, Haiku, Inc. All Rights Reserved. 3 * Distributed under the terms of the MIT License. 4 */ 5#ifndef ETHERNET_H 6#define ETHERNET_H 7 8 9#include <SupportDefs.h> 10 11 12#define ETHER_ADDRESS_LENGTH 6 13#define ETHER_CRC_LENGTH 4 14#define ETHER_HEADER_LENGTH 14 15 16#define ETHER_MIN_FRAME_SIZE 64 17#define ETHER_MAX_FRAME_SIZE 1514 18 19struct ether_header { 20 uint8 destination[ETHER_ADDRESS_LENGTH]; 21 uint8 source[ETHER_ADDRESS_LENGTH]; 22 uint16 type; 23} _PACKED; 24 25 26// ethernet types 27#define ETHER_TYPE_IP 0x0800 28#define ETHER_TYPE_ARP 0x0806 29#define ETHER_TYPE_IPX 0x8137 30#define ETHER_TYPE_IPV6 0x86dd 31#define ETHER_TYPE_PPPOE_DISCOVERY 0x8863 // PPPoE discovery stage 32#define ETHER_TYPE_PPPOE 0x8864 // PPPoE session stage 33 34 35#endif // ETHERNET_H 36