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