X-Git-Url: https://tinc-vpn.org/git/browse?p=tinc;a=blobdiff_plain;f=lib%2Fethernet.h;h=8bf2b03e52eb704c4ba1407202c50a810b98fbf2;hp=85649bc2722cb95589d36ee3be1053750620a929;hb=aa9d61b5cd0d6dd8b911cfd06f6bb50ec028d0d1;hpb=96ee04b678143defa1040f2defdd3424efedea11 diff --git a/lib/ethernet.h b/lib/ethernet.h index 85649bc2..8bf2b03e 100644 --- a/lib/ethernet.h +++ b/lib/ethernet.h @@ -1,7 +1,7 @@ /* ethernet.h -- missing Ethernet related definitions - Copyright (C) 2003 Ivo Timmermans - 2003 Guus Sliepen + Copyright (C) 2005 Ivo Timmermans + 2006 Guus Sliepen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -13,11 +13,9 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - - $Id: ethernet.h,v 1.1.2.3 2003/07/18 13:42:35 guus Exp $ + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #ifndef __TINC_ETHERNET_H__ @@ -27,26 +25,42 @@ #define ETH_ALEN 6 #endif -#ifndef ETHER_ADDR_LEN -#define ETHER_ADDR_LEN 6 -#endif - #ifndef ARPHRD_ETHER #define ARPHRD_ETHER 1 #endif -#ifndef ETHERTYPE_IP -#define ETHERTYPE_IP 0x0800 +#ifndef ETH_P_IP +#define ETH_P_IP 0x0800 +#endif + +#ifndef ETH_P_ARP +#define ETH_P_ARP 0x0806 +#endif + +#ifndef ETH_P_IPV6 +#define ETH_P_IPV6 0x86DD +#endif + +#ifndef ETH_P_8021Q +#define ETH_P_8021Q 0x8100 +#endif + +#ifndef HAVE_STRUCT_ETHER_HEADER +struct ether_header { + uint8_t ether_dhost[ETH_ALEN]; + uint8_t ether_shost[ETH_ALEN]; + uint16_t ether_type; +} __attribute__ ((__packed__)); #endif #ifndef HAVE_STRUCT_ARPHDR struct arphdr { - unsigned short int ar_hrd; - unsigned short int ar_pro; - unsigned char ar_hln; - unsigned char ar_pln; - unsigned short int ar_op; -}; + uint16_t ar_hrd; + uint16_t ar_pro; + uint8_t ar_hln; + uint8_t ar_pln; + uint16_t ar_op; +} __attribute__ ((__packed__)); #define ARPOP_REQUEST 1 #define ARPOP_REPLY 2 @@ -64,7 +78,7 @@ struct ether_arp { uint8_t arp_spa[4]; uint8_t arp_tha[ETH_ALEN]; uint8_t arp_tpa[4]; -}; +} __attribute__ ((__packed__)); #define arp_hrd ea_hdr.ar_hrd #define arp_pro ea_hdr.ar_pro #define arp_hln ea_hdr.ar_hln