if_types.h 12 KB

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