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