Back to index

glibc  2.9
if_ether.h
Go to the documentation of this file.
00001 /* Copyright (C) 1997 Free Software Foundation, Inc.
00002    This file is part of the GNU C Library.
00003 
00004    The GNU C Library is free software; you can redistribute it and/or
00005    modify it under the terms of the GNU Lesser General Public
00006    License as published by the Free Software Foundation; either
00007    version 2.1 of the License, or (at your option) any later version.
00008 
00009    The GNU C Library is distributed in the hope that it will be useful,
00010    but WITHOUT ANY WARRANTY; without even the implied warranty of
00011    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00012    Lesser General Public License for more details.
00013 
00014    You should have received a copy of the GNU Lesser General Public
00015    License along with the GNU C Library; if not, write to the Free
00016    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
00017    02111-1307 USA.  */
00018 
00019 #ifndef _NET_IF_ETHER_H
00020 #define _NET_IF_ETHER_H     1
00021 
00022 /*
00023  *     IEEE 802.3 Ethernet magic constants.  The frame sizes omit the preamble
00024  *     and FCS/CRC (frame check sequence).
00025  */
00026 
00027 #define ETH_ALEN     6             /* Octets in one ethernet addr      */
00028 #define ETH_HLEN     14            /* Total octets in header.   */
00029 #define ETH_ZLEN     60            /* Min. octets in frame sans FCS */
00030 #define ETH_DATA_LEN 1500          /* Max. octets in payload    */
00031 #define ETH_FRAME_LEN       1514          /* Max. octets in frame sans FCS */
00032 
00033 /*
00034  *     These are the defined Ethernet Protocol ID's.
00035  */
00036 
00037 #define ETH_P_LOOP   0x0060        /* Ethernet Loopback packet */
00038 #define ETH_P_ECHO   0x0200        /* Ethernet Echo packet            */
00039 #define ETH_P_PUP    0x0400        /* Xerox PUP packet         */
00040 #define ETH_P_IP     0x0800        /* Internet Protocol packet */
00041 #define ETH_P_X25    0x0805        /* CCITT X.25               */
00042 #define ETH_P_ARP    0x0806        /* Address Resolution packet       */
00043 #define       ETH_P_BPQ     0x08FF        /* G8BPQ AX.25 Ethernet Packet     [ NOT AN OFFICIALLY REGISTERED ID ] */
00044 #define ETH_P_DEC       0x6000          /* DEC Assigned proto           */
00045 #define ETH_P_DNA_DL    0x6001          /* DEC DNA Dump/Load            */
00046 #define ETH_P_DNA_RC    0x6002          /* DEC DNA Remote Console       */
00047 #define ETH_P_DNA_RT    0x6003          /* DEC DNA Routing              */
00048 #define ETH_P_LAT       0x6004          /* DEC LAT                      */
00049 #define ETH_P_DIAG      0x6005          /* DEC Diagnostics              */
00050 #define ETH_P_CUST      0x6006          /* DEC Customer use             */
00051 #define ETH_P_SCA       0x6007          /* DEC Systems Comms Arch       */
00052 #define ETH_P_RARP      0x8035            /* Reverse Addr Res packet  */
00053 #define ETH_P_ATALK  0x809B        /* Appletalk DDP            */
00054 #define ETH_P_AARP   0x80F3        /* Appletalk AARP           */
00055 #define ETH_P_IPX    0x8137        /* IPX over DIX                    */
00056 #define ETH_P_IPV6   0x86DD        /* IPv6 over bluebook              */
00057 
00058 /*
00059  *     Non DIX types. Won't clash for 1500 types.
00060  */
00061 
00062 #define ETH_P_802_3  0x0001        /* Dummy type for 802.3 frames  */
00063 #define ETH_P_AX25   0x0002        /* Dummy protocol id for AX.25  */
00064 #define ETH_P_ALL    0x0003        /* Every packet (be careful!!!) */
00065 #define ETH_P_802_2  0x0004        /* 802.2 frames             */
00066 #define ETH_P_SNAP   0x0005        /* Internal only            */
00067 #define ETH_P_DDCMP     0x0006          /* DEC DDCMP: Internal only     */
00068 #define ETH_P_WAN_PPP   0x0007          /* Dummy type for WAN PPP frames*/
00069 #define ETH_P_PPP_MP    0x0008          /* Dummy type for PPP MP frames */
00070 #define ETH_P_LOCALTALK 0x0009            /* Localtalk pseudo type    */
00071 #define ETH_P_PPPTALK       0x0010        /* Dummy type for Atalk over PPP*/
00072 #define ETH_P_TR_802_2      0x0011        /* 802.2 frames             */
00073 
00074 /*
00075  *     This is an Ethernet frame header.
00076  */
00077 
00078 struct ethhdr
00079 {
00080   unsigned char      h_dest[ETH_ALEN];    /* destination eth addr     */
00081   unsigned char      h_source[ETH_ALEN];  /* source ether addr */
00082   unsigned short int h_proto;             /* packet type ID field     */
00083 };
00084 
00085 #endif /* net/if_ether.h */