WvStreams
if_arp.h
00001 /*
00002  * INET         An implementation of the TCP/IP protocol suite for the LINUX
00003  *              operating system.  INET is implemented using the  BSD Socket
00004  *              interface as the means of communication with the user level.
00005  *
00006  *              Global definitions for the ARP (RFC 826) protocol.
00007  *
00008  * Authors:     Original taken from Berkeley UNIX 4.3, (c) UCB 1986-1988
00009  *              Portions taken from the KA9Q/NOS (v2.00m PA0GRI) source.
00010  *              Based on a version 1.0.1 04/16/93 taken from Linux
00011  *                Ross Biro, <bir7@leland.Stanford.Edu>
00012  *                Fred N. van Kempen, <waltje@uWalt.NL.Mugnet.ORG>
00013  *                Florian La Roche,
00014  *                Jonathan Layes <layes@loran.com>
00015  *                Arnaldo Carvalho de Melo <acme@conectiva.com.br> ARPHRD_HWX25
00016  *              Stripped down by Net Integration Technologies, 2004
00017  *                Simon Law <sfllaw@nit.ca>
00018  *                Adrian Dewhurst <sailor-h@sailorfrag.net>
00019  *
00020  *  This is just an interface, so it's public domain information.
00021  */
00022 
00023 #ifndef _WV_IF_ARP_H
00024 #define _WV_IF_ARP_H
00025 
00026 /* ARP protocol HARDWARE identifiers. */
00027 #define ARPHRD_NETROM   0               /* from KA9Q: NET/ROM pseudo    */
00028 #define ARPHRD_ETHER    1               /* Ethernet 10Mbps              */
00029 #define ARPHRD_EETHER   2               /* Experimental Ethernet        */
00030 #define ARPHRD_AX25     3               /* AX.25 Level 2                */
00031 #define ARPHRD_PRONET   4               /* PROnet token ring            */
00032 #define ARPHRD_CHAOS    5               /* Chaosnet                     */
00033 #define ARPHRD_IEEE802  6               /* IEEE 802.2 Ethernet/TR/TB    */
00034 #define ARPHRD_ARCNET   7               /* ARCnet                       */
00035 #define ARPHRD_APPLETLK 8               /* APPLEtalk                    */
00036 #define ARPHRD_DLCI     15              /* Frame Relay DLCI             */
00037 #define ARPHRD_ATM      19              /* ATM                          */
00038 #define ARPHRD_METRICOM 23              /* Metricom STRIP (new IANA id) */
00039 #define ARPHRD_IEEE1394 24              /* IEEE 1394 IPv4 - RFC 2734    */
00040 #define ARPHRD_EUI64    27              /* EUI-64                       */
00041 #define ARPHRD_IPSEC    31              /* IPSec tunnel                 */
00042 
00043 /* Dummy types for non ARP hardware */
00044 #define ARPHRD_SLIP     256
00045 #define ARPHRD_CSLIP    257
00046 #define ARPHRD_SLIP6    258
00047 #define ARPHRD_CSLIP6   259
00048 #define ARPHRD_RSRVD    260             /* Notional KISS type           */
00049 #define ARPHRD_ADAPT    264
00050 #define ARPHRD_ROSE     270
00051 #define ARPHRD_X25      271             /* CCITT X.25                   */
00052 #define ARPHRD_HWX25    272             /* Boards with X.25 in firmware */
00053 #define ARPHRD_PPP      512
00054 #define ARPHRD_CISCO    513             /* Cisco HDLC                   */
00055 #define ARPHRD_HDLC     ARPHRD_CISCO
00056 #define ARPHRD_LAPB     516             /* LAPB                         */
00057 #define ARPHRD_DDCMP    517             /* Digital's DDCMP protocol     */
00058 #define ARPHRD_RAWHDLC  518             /* Raw HDLC                     */
00059 
00060 #define ARPHRD_TUNNEL   768             /* IPIP tunnel                  */
00061 #define ARPHRD_TUNNEL6  769             /* IPIP6 tunnel                 */
00062 #define ARPHRD_FRAD     770             /* Frame Relay Access Device    */
00063 #define ARPHRD_SKIP     771             /* SKIP vif                     */
00064 #define ARPHRD_LOOPBACK 772             /* Loopback device              */
00065 #define ARPHRD_LOCALTLK 773             /* Localtalk device             */
00066 #define ARPHRD_FDDI     774             /* Fiber Distributed Data Interface */
00067 #define ARPHRD_BIF      775             /* AP1000 BIF                   */
00068 #define ARPHRD_SIT      776             /* sit0 device - IPv6-in-IPv4   */
00069 #define ARPHRD_IPDDP    777             /* IP over DDP tunneller        */
00070 #define ARPHRD_IPGRE    778             /* GRE over IP                  */
00071 #define ARPHRD_PIMREG   779             /* PIMSM register interface     */
00072 #define ARPHRD_HIPPI    780             /* High Performance Parallel Interface */
00073 #define ARPHRD_ASH      781             /* Nexus 64Mbps Ash             */
00074 #define ARPHRD_ECONET   782             /* Acorn Econet                 */
00075 #define ARPHRD_IRDA     783             /* Linux-IrDA                   */
00076 /* ARP works differently on different FC media .. so    */
00077 #define ARPHRD_FCPP     784             /* Point to point fibrechannel  */
00078 #define ARPHRD_FCAL     785             /* Fibrechannel arbitrated loop */
00079 #define ARPHRD_FCPL     786             /* Fibrechannel public loop     */
00080 #define ARPHRD_FCFABRIC 787             /* Fibrechannel fabric          */
00081         /* 787->799 reserved for fibrechannel media types */
00082 #define ARPHRD_IEEE802_TR 800           /* Magic type ident for TR      */
00083 #define ARPHRD_IEEE80211 801            /* IEEE 802.11                  */
00084 #define ARPHRD_IEEE80211_PRISM 802      /* IEEE 802.11 + Prism2 header  */
00085 
00086 #define ARPHRD_VOID     0xFFFF          /* Void type, nothing is known */
00087 
00088 /* ARP protocol opcodes. */
00089 #define ARPOP_REQUEST   1               /* ARP request                  */
00090 #define ARPOP_REPLY     2               /* ARP reply                    */
00091 #define ARPOP_RREQUEST  3               /* RARP request                 */
00092 #define ARPOP_RREPLY    4               /* RARP reply                   */
00093 #define ARPOP_InREQUEST 8               /* InARP request                */
00094 #define ARPOP_InREPLY   9               /* InARP reply                  */
00095 #define ARPOP_NAK       10              /* (ATM)ARP NAK                 */
00096 
00097 /* ARP Flag values. */
00098 #define ATF_COM         0x02            /* completed entry (ha valid)   */
00099 #define ATF_PERM        0x04            /* permanent entry              */
00100 #define ATF_PUBL        0x08            /* publish entry                */
00101 #define ATF_USETRAILERS 0x10            /* has requested trailers               */
00102 #define ATF_NETMASK     0x20            /* want to use a netmask (only
00103                                            for proxy entries) */
00104 #define ATF_DONTPUB     0x40            /* don't answer this addresses  */
00105 
00106 #endif /* _WV_IF_ARP_H */