btrfs: [] on the end of a struct field is a variable length array.
[haiku.git] / headers / private / net / ethernet.h
blob20322e19869c51b0eceb216ca69254c31c14969b
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
9 #include <SupportDefs.h>
12 #define ETHER_ADDRESS_LENGTH 6
13 #define ETHER_CRC_LENGTH 4
14 #define ETHER_HEADER_LENGTH 14
16 #define ETHER_MIN_FRAME_SIZE 64
17 #define ETHER_MAX_FRAME_SIZE 1514
19 struct ether_header {
20 uint8 destination[ETHER_ADDRESS_LENGTH];
21 uint8 source[ETHER_ADDRESS_LENGTH];
22 uint16 type;
23 } _PACKED;
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
35 #endif // ETHERNET_H