]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - sys/net/if_types.h
Merge from stable/11:
[FreeBSD/FreeBSD.git] / sys / net / if_types.h
1 /*-
2  * Copyright (c) 1989, 1993, 1994
3  *      The Regents of the University of California.  All rights reserved.
4  *
5  * Redistribution and use in source and binary forms, with or without
6  * modification, are permitted provided that the following conditions
7  * are met:
8  * 1. Redistributions of source code must retain the above copyright
9  *    notice, this list of conditions and the following disclaimer.
10  * 2. Redistributions in binary form must reproduce the above copyright
11  *    notice, this list of conditions and the following disclaimer in the
12  *    documentation and/or other materials provided with the distribution.
13  * 4. Neither the name of the University nor the names of its contributors
14  *    may be used to endorse or promote products derived from this software
15  *    without specific prior written permission.
16  *
17  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
18  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
20  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
21  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
22  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
23  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
24  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
25  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
26  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
27  * SUCH DAMAGE.
28  *
29  *      @(#)if_types.h  8.3 (Berkeley) 4/28/95
30  * $FreeBSD$
31  * $NetBSD: if_types.h,v 1.16 2000/04/19 06:30:53 itojun Exp $
32  */
33
34 #ifndef _NET_IF_TYPES_H_
35 #define _NET_IF_TYPES_H_
36
37 /*
38  * Interface types for benefit of parsing media address headers.
39  * This list is derived from the SNMP list of ifTypes, originally
40  * documented in RFC1573, now maintained as:
41  *
42  *      http://www.iana.org/assignments/smi-numbers
43  */
44
45 typedef enum {
46         IFT_OTHER       = 0x1,          /* none of the following */
47         IFT_1822        = 0x2,          /* old-style arpanet imp */
48         IFT_HDH1822     = 0x3,          /* HDH arpanet imp */
49         IFT_X25DDN      = 0x4,          /* x25 to imp */
50         IFT_X25         = 0x5,          /* PDN X25 interface (RFC877) */
51         IFT_ETHER       = 0x6,          /* Ethernet CSMA/CD */
52         IFT_ISO88023    = 0x7,          /* CMSA/CD */
53         IFT_ISO88024    = 0x8,          /* Token Bus */
54         IFT_ISO88025    = 0x9,          /* Token Ring */
55         IFT_ISO88026    = 0xa,          /* MAN */
56         IFT_STARLAN     = 0xb,
57         IFT_P10         = 0xc,          /* Proteon 10MBit ring */
58         IFT_P80         = 0xd,          /* Proteon 80MBit ring */
59         IFT_HY          = 0xe,          /* Hyperchannel */
60         IFT_FDDI        = 0xf,
61         IFT_LAPB        = 0x10,
62         IFT_SDLC        = 0x11,
63         IFT_T1          = 0x12,
64         IFT_CEPT        = 0x13,         /* E1 - european T1 */
65         IFT_ISDNBASIC   = 0x14,
66         IFT_ISDNPRIMARY = 0x15,
67         IFT_PTPSERIAL   = 0x16,         /* Proprietary PTP serial */
68         IFT_PPP         = 0x17,         /* RFC 1331 */
69         IFT_LOOP        = 0x18,         /* loopback */
70         IFT_EON         = 0x19,         /* ISO over IP */
71         IFT_XETHER      = 0x1a,         /* obsolete 3MB experimental ethernet */
72         IFT_NSIP        = 0x1b,         /* XNS over IP */
73         IFT_SLIP        = 0x1c,         /* IP over generic TTY */
74         IFT_ULTRA       = 0x1d,         /* Ultra Technologies */
75         IFT_DS3         = 0x1e,         /* Generic T3 */
76         IFT_SIP         = 0x1f,         /* SMDS */
77         IFT_FRELAY      = 0x20,         /* Frame Relay DTE only */
78         IFT_RS232       = 0x21,
79         IFT_PARA        = 0x22,         /* parallel-port */
80         IFT_ARCNET      = 0x23,
81         IFT_ARCNETPLUS  = 0x24,
82         IFT_ATM         = 0x25,         /* ATM cells */
83         IFT_MIOX25      = 0x26,
84         IFT_SONET       = 0x27,         /* SONET or SDH */
85         IFT_X25PLE      = 0x28,
86         IFT_ISO88022LLC = 0x29,
87         IFT_LOCALTALK   = 0x2a,
88         IFT_SMDSDXI     = 0x2b,
89         IFT_FRELAYDCE   = 0x2c,         /* Frame Relay DCE */
90         IFT_V35         = 0x2d,
91         IFT_HSSI        = 0x2e,
92         IFT_HIPPI       = 0x2f,
93         IFT_MODEM       = 0x30,         /* Generic Modem */
94         IFT_AAL5        = 0x31,         /* AAL5 over ATM */
95         IFT_SONETPATH   = 0x32,
96         IFT_SONETVT     = 0x33,
97         IFT_SMDSICIP    = 0x34,         /* SMDS InterCarrier Interface */
98         IFT_PROPVIRTUAL = 0x35,         /* Proprietary Virtual/internal */
99         IFT_PROPMUX     = 0x36,         /* Proprietary Multiplexing */
100         IFT_IEEE80212   = 0x37,         /* 100BaseVG */
101         IFT_FIBRECHANNEL = 0x38,        /* Fibre Channel */
102         IFT_HIPPIINTERFACE = 0x39,      /* HIPPI interfaces      */
103         IFT_FRAMERELAYINTERCONNECT = 0x3a, /* Obsolete, use 0x20 either 0x2c */
104         IFT_AFLANE8023  = 0x3b,         /* ATM Emulated LAN for 802.3 */
105         IFT_AFLANE8025  = 0x3c,         /* ATM Emulated LAN for 802.5 */
106         IFT_CCTEMUL     = 0x3d,         /* ATM Emulated circuit           */
107         IFT_FASTETHER   = 0x3e,         /* Fast Ethernet (100BaseT) */
108         IFT_ISDN        = 0x3f,         /* ISDN and X.25            */
109         IFT_V11         = 0x40,         /* CCITT V.11/X.21              */
110         IFT_V36         = 0x41,         /* CCITT V.36                   */
111         IFT_G703AT64K   = 0x42,         /* CCITT G703 at 64Kbps */
112         IFT_G703AT2MB   = 0x43,         /* Obsolete see DS1-MIB */
113         IFT_QLLC        = 0x44,         /* SNA QLLC                     */
114         IFT_FASTETHERFX = 0x45,         /* Fast Ethernet (100BaseFX)    */
115         IFT_CHANNEL     = 0x46,         /* channel                      */
116         IFT_IEEE80211   = 0x47,         /* radio spread spectrum        */
117         IFT_IBM370PARCHAN = 0x48,       /* IBM System 360/370 OEMI Channel */
118         IFT_ESCON       = 0x49,         /* IBM Enterprise Systems Connection */
119         IFT_DLSW        = 0x4a,         /* Data Link Switching */
120         IFT_ISDNS       = 0x4b,         /* ISDN S/T interface */
121         IFT_ISDNU       = 0x4c,         /* ISDN U interface */
122         IFT_LAPD        = 0x4d,         /* Link Access Protocol D */
123         IFT_IPSWITCH    = 0x4e,         /* IP Switching Objects */
124         IFT_RSRB        = 0x4f,         /* Remote Source Route Bridging */
125         IFT_ATMLOGICAL  = 0x50,         /* ATM Logical Port */
126         IFT_DS0         = 0x51,         /* Digital Signal Level 0 */
127         IFT_DS0BUNDLE   = 0x52,         /* group of ds0s on the same ds1 */
128         IFT_BSC         = 0x53,         /* Bisynchronous Protocol */
129         IFT_ASYNC       = 0x54,         /* Asynchronous Protocol */
130         IFT_CNR         = 0x55,         /* Combat Net Radio */
131         IFT_ISO88025DTR = 0x56,         /* ISO 802.5r DTR */
132         IFT_EPLRS       = 0x57,         /* Ext Pos Loc Report Sys */
133         IFT_ARAP        = 0x58,         /* Appletalk Remote Access Protocol */
134         IFT_PROPCNLS    = 0x59,         /* Proprietary Connectionless Protocol*/
135         IFT_HOSTPAD     = 0x5a,         /* CCITT-ITU X.29 PAD Protocol */
136         IFT_TERMPAD     = 0x5b,         /* CCITT-ITU X.3 PAD Facility */
137         IFT_FRAMERELAYMPI = 0x5c,       /* Multiproto Interconnect over FR */
138         IFT_X213        = 0x5d,         /* CCITT-ITU X213 */
139         IFT_ADSL        = 0x5e,         /* Asymmetric Digital Subscriber Loop */
140         IFT_RADSL       = 0x5f,         /* Rate-Adapt. Digital Subscriber Loop*/
141         IFT_SDSL        = 0x60,         /* Symmetric Digital Subscriber Loop */
142         IFT_VDSL        = 0x61,         /* Very H-Speed Digital Subscrib. Loop*/
143         IFT_ISO88025CRFPINT = 0x62,     /* ISO 802.5 CRFP */
144         IFT_MYRINET     = 0x63,         /* Myricom Myrinet */
145         IFT_VOICEEM     = 0x64,         /* voice recEive and transMit */
146         IFT_VOICEFXO    = 0x65,         /* voice Foreign Exchange Office */
147         IFT_VOICEFXS    = 0x66,         /* voice Foreign Exchange Station */
148         IFT_VOICEENCAP  = 0x67,         /* voice encapsulation */
149         IFT_VOICEOVERIP = 0x68,         /* voice over IP encapsulation */
150         IFT_ATMDXI      = 0x69,         /* ATM DXI */
151         IFT_ATMFUNI     = 0x6a,         /* ATM FUNI */
152         IFT_ATMIMA      = 0x6b,         /* ATM IMA                    */
153         IFT_PPPMULTILINKBUNDLE = 0x6c,  /* PPP Multilink Bundle */
154         IFT_IPOVERCDLC  = 0x6d,         /* IBM ipOverCdlc */
155         IFT_IPOVERCLAW  = 0x6e,         /* IBM Common Link Access to Workstn */
156         IFT_STACKTOSTACK = 0x6f,        /* IBM stackToStack */
157         IFT_VIRTUALIPADDRESS = 0x70,    /* IBM VIPA */
158         IFT_MPC         = 0x71,         /* IBM multi-protocol channel support */
159         IFT_IPOVERATM   = 0x72,         /* IBM ipOverAtm */
160         IFT_ISO88025FIBER = 0x73,       /* ISO 802.5j Fiber Token Ring */
161         IFT_TDLC        = 0x74,         /* IBM twinaxial data link control */
162         IFT_GIGABITETHERNET = 0x75,     /* Gigabit Ethernet */
163         IFT_HDLC        = 0x76,         /* HDLC */
164         IFT_LAPF        = 0x77,         /* LAP F */
165         IFT_V37         = 0x78,         /* V.37 */
166         IFT_X25MLP      = 0x79,         /* Multi-Link Protocol */
167         IFT_X25HUNTGROUP = 0x7a,        /* X25 Hunt Group */
168         IFT_TRANSPHDLC  = 0x7b,         /* Transp HDLC */
169         IFT_INTERLEAVE  = 0x7c,         /* Interleave channel */
170         IFT_FAST        = 0x7d,         /* Fast channel */
171         IFT_IP          = 0x7e,         /* IP (for APPN HPR in IP networks) */
172         IFT_DOCSCABLEMACLAYER = 0x7f,   /* CATV Mac Layer */
173         IFT_DOCSCABLEDOWNSTREAM = 0x80, /* CATV Downstream interface */
174         IFT_DOCSCABLEUPSTREAM = 0x81,   /* CATV Upstream interface */
175         IFT_A12MPPSWITCH = 0x82,        /* Avalon Parallel Processor */
176         IFT_TUNNEL      = 0x83,         /* Encapsulation interface */
177         IFT_COFFEE      = 0x84,         /* coffee pot */
178         IFT_CES         = 0x85,         /* Circiut Emulation Service */
179         IFT_ATMSUBINTERFACE = 0x86,     /* (x)  ATM Sub Interface */
180         IFT_L2VLAN      = 0x87,         /* Layer 2 Virtual LAN using 802.1Q */
181         IFT_L3IPVLAN    = 0x88,         /* Layer 3 Virtual LAN - IP Protocol */
182         IFT_L3IPXVLAN   = 0x89,         /* Layer 3 Virtual LAN - IPX Prot. */
183         IFT_DIGITALPOWERLINE = 0x8a,    /* IP over Power Lines */
184         IFT_MEDIAMAILOVERIP = 0x8b,     /* (xxx)  Multimedia Mail over IP */
185         IFT_DTM         = 0x8c,         /* Dynamic synchronous Transfer Mode */
186         IFT_DCN         = 0x8d,         /* Data Communications Network */
187         IFT_IPFORWARD   = 0x8e,         /* IP Forwarding Interface */
188         IFT_MSDSL       = 0x8f,         /* Multi-rate Symmetric DSL */
189         IFT_IEEE1394    = 0x90,         /* IEEE1394 High Performance SerialBus*/
190         IFT_IFGSN       = 0x91,         /* HIPPI-6400 */
191         IFT_DVBRCCMACLAYER = 0x92,      /* DVB-RCC MAC Layer */
192         IFT_DVBRCCDOWNSTREAM = 0x93,    /* DVB-RCC Downstream Channel */
193         IFT_DVBRCCUPSTREAM = 0x94,      /* DVB-RCC Upstream Channel */
194         IFT_ATMVIRTUAL  = 0x95,         /* ATM Virtual Interface */
195         IFT_MPLSTUNNEL  = 0x96,         /* MPLS Tunnel Virtual Interface */
196         IFT_SRP         = 0x97,         /* Spatial Reuse Protocol */
197         IFT_VOICEOVERATM = 0x98,        /* Voice over ATM */
198         IFT_VOICEOVERFRAMERELAY = 0x99, /* Voice Over Frame Relay */
199         IFT_IDSL        = 0x9a,         /* Digital Subscriber Loop over ISDN */
200         IFT_COMPOSITELINK = 0x9b,       /* Avici Composite Link Interface */
201         IFT_SS7SIGLINK  = 0x9c,         /* SS7 Signaling Link */
202         IFT_PROPWIRELESSP2P = 0x9d,     /* Prop. P2P wireless interface */
203         IFT_FRFORWARD   = 0x9e,         /* Frame forward Interface */
204         IFT_RFC1483     = 0x9f,         /* Multiprotocol over ATM AAL5 */
205         IFT_USB         = 0xa0,         /* USB Interface */
206         IFT_IEEE8023ADLAG = 0xa1,       /* IEEE 802.3ad Link Aggregate*/
207         IFT_BGPPOLICYACCOUNTING = 0xa2, /* BGP Policy Accounting */
208         IFT_FRF16MFRBUNDLE = 0xa3,      /* FRF.16 Multilik Frame Relay*/
209         IFT_H323GATEKEEPER = 0xa4,      /* H323 Gatekeeper */
210         IFT_H323PROXY   = 0xa5,         /* H323 Voice and Video Proxy */
211         IFT_MPLS        = 0xa6,         /* MPLS */
212         IFT_MFSIGLINK   = 0xa7,         /* Multi-frequency signaling link */
213         IFT_HDSL2       = 0xa8,         /* High Bit-Rate DSL, 2nd gen. */
214         IFT_SHDSL       = 0xa9,         /* Multirate HDSL2 */
215         IFT_DS1FDL      = 0xaa,         /* Facility Data Link (4Kbps) on a DS1*/
216         IFT_POS         = 0xab,         /* Packet over SONET/SDH Interface */
217         IFT_DVBASILN    = 0xac,         /* DVB-ASI Input */
218         IFT_DVBASIOUT   = 0xad,         /* DVB-ASI Output */
219         IFT_PLC         = 0xae,         /* Power Line Communications */
220         IFT_NFAS        = 0xaf,         /* Non-Facility Associated Signaling */
221         IFT_TR008       = 0xb0,         /* TROO8 */
222         IFT_GR303RDT    = 0xb1,         /* Remote Digital Terminal */
223         IFT_GR303IDT    = 0xb2,         /* Integrated Digital Terminal */
224         IFT_ISUP        = 0xb3,         /* ISUP */
225         IFT_PROPDOCSWIRELESSMACLAYER = 0xb4,    /* prop/Wireless MAC Layer */
226         IFT_PROPDOCSWIRELESSDOWNSTREAM = 0xb5,  /* prop/Wireless Downstream */
227         IFT_PROPDOCSWIRELESSUPSTREAM = 0xb6,    /* prop/Wireless Upstream */
228         IFT_HIPERLAN2   = 0xb7,         /* HIPERLAN Type 2 Radio Interface */
229         IFT_PROPBWAP2MP = 0xb8,         /* PropBroadbandWirelessAccess P2MP*/
230         IFT_SONETOVERHEADCHANNEL = 0xb9, /* SONET Overhead Channel */
231         IFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba, /* Digital Wrapper Overhead */
232         IFT_AAL2        = 0xbb,         /* ATM adaptation layer 2 */
233         IFT_RADIOMAC    = 0xbc,         /* MAC layer over radio links */
234         IFT_ATMRADIO    = 0xbd,         /* ATM over radio links */
235         IFT_IMT         = 0xbe,         /* Inter-Machine Trunks */
236         IFT_MVL         = 0xbf,         /* Multiple Virtual Lines DSL */
237         IFT_REACHDSL    = 0xc0,         /* Long Reach DSL */
238         IFT_FRDLCIENDPT = 0xc1,         /* Frame Relay DLCI End Point */
239         IFT_ATMVCIENDPT = 0xc2,         /* ATM VCI End Point */
240         IFT_OPTICALCHANNEL = 0xc3,      /* Optical Channel */
241         IFT_OPTICALTRANSPORT = 0xc4,    /* Optical Transport */
242         IFT_INFINIBAND  = 0xc7,         /* Infiniband */
243         IFT_BRIDGE      = 0xd1,         /* Transparent bridge interface */
244         IFT_STF         = 0xd7,         /* 6to4 interface */
245
246         /*
247          * Not based on IANA assignments.  Conflicting with IANA assignments.
248          * We should make them negative probably.
249          * This requires changes to struct if_data.
250          */
251         IFT_GIF         = 0xf0,         /* Generic tunnel interface */
252         IFT_PVC         = 0xf1,         /* Unused */
253         IFT_ENC         = 0xf4,         /* Encapsulating interface */
254         IFT_PFLOG       = 0xf6,         /* PF packet filter logging */
255         IFT_PFSYNC      = 0xf7,         /* PF packet filter synchronization */
256 } ifType;
257
258 /*
259  * Some (broken) software uses #ifdef IFT_TYPE to check whether
260  * an operating systems supports certain interface type.  Lack of
261  * ifdef leads to a piece of functionality compiled out.
262  */
263 #ifndef BURN_BRIDGES
264 #define IFT_BRIDGE      IFT_BRIDGE
265 #define IFT_PPP         IFT_PPP
266 #define IFT_PROPVIRTUAL IFT_PROPVIRTUAL
267 #define IFT_L2VLAN      IFT_L2VLAN
268 #define IFT_L3IPVLAN    IFT_L3IPVLAN
269 #define IFT_IEEE1394    IFT_IEEE1394
270 #define IFT_INFINIBAND  IFT_INFINIBAND
271 #endif
272
273 #endif /* !_NET_IF_TYPES_H_ */