xref: /xnu-8020.121.3/bsd/net/if_media.h (revision fdd8201d7b966f0c3ea610489d29bd841d358941)
1*fdd8201dSApple OSS Distributions /*
2*fdd8201dSApple OSS Distributions  * Copyright (c) 2000-2019 Apple Inc. All rights reserved.
3*fdd8201dSApple OSS Distributions  *
4*fdd8201dSApple OSS Distributions  * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
5*fdd8201dSApple OSS Distributions  *
6*fdd8201dSApple OSS Distributions  * This file contains Original Code and/or Modifications of Original Code
7*fdd8201dSApple OSS Distributions  * as defined in and that are subject to the Apple Public Source License
8*fdd8201dSApple OSS Distributions  * Version 2.0 (the 'License'). You may not use this file except in
9*fdd8201dSApple OSS Distributions  * compliance with the License. The rights granted to you under the License
10*fdd8201dSApple OSS Distributions  * may not be used to create, or enable the creation or redistribution of,
11*fdd8201dSApple OSS Distributions  * unlawful or unlicensed copies of an Apple operating system, or to
12*fdd8201dSApple OSS Distributions  * circumvent, violate, or enable the circumvention or violation of, any
13*fdd8201dSApple OSS Distributions  * terms of an Apple operating system software license agreement.
14*fdd8201dSApple OSS Distributions  *
15*fdd8201dSApple OSS Distributions  * Please obtain a copy of the License at
16*fdd8201dSApple OSS Distributions  * http://www.opensource.apple.com/apsl/ and read it before using this file.
17*fdd8201dSApple OSS Distributions  *
18*fdd8201dSApple OSS Distributions  * The Original Code and all software distributed under the License are
19*fdd8201dSApple OSS Distributions  * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
20*fdd8201dSApple OSS Distributions  * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
21*fdd8201dSApple OSS Distributions  * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
22*fdd8201dSApple OSS Distributions  * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
23*fdd8201dSApple OSS Distributions  * Please see the License for the specific language governing rights and
24*fdd8201dSApple OSS Distributions  * limitations under the License.
25*fdd8201dSApple OSS Distributions  *
26*fdd8201dSApple OSS Distributions  * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
27*fdd8201dSApple OSS Distributions  */
28*fdd8201dSApple OSS Distributions /*	$NetBSD: if_media.h,v 1.3 1997/03/26 01:19:27 thorpej Exp $	*/
29*fdd8201dSApple OSS Distributions /* $FreeBSD: src/sys/net/if_media.h,v 1.9.2.1 2001/07/04 00:12:38 brooks Exp $ */
30*fdd8201dSApple OSS Distributions 
31*fdd8201dSApple OSS Distributions /*
32*fdd8201dSApple OSS Distributions  * Copyright (c) 1997
33*fdd8201dSApple OSS Distributions  *	Jonathan Stone and Jason R. Thorpe.  All rights reserved.
34*fdd8201dSApple OSS Distributions  *
35*fdd8201dSApple OSS Distributions  * This software is derived from information provided by Matt Thomas.
36*fdd8201dSApple OSS Distributions  *
37*fdd8201dSApple OSS Distributions  * Redistribution and use in source and binary forms, with or without
38*fdd8201dSApple OSS Distributions  * modification, are permitted provided that the following conditions
39*fdd8201dSApple OSS Distributions  * are met:
40*fdd8201dSApple OSS Distributions  * 1. Redistributions of source code must retain the above copyright
41*fdd8201dSApple OSS Distributions  *    notice, this list of conditions and the following disclaimer.
42*fdd8201dSApple OSS Distributions  * 2. Redistributions in binary form must reproduce the above copyright
43*fdd8201dSApple OSS Distributions  *    notice, this list of conditions and the following disclaimer in the
44*fdd8201dSApple OSS Distributions  *    documentation and/or other materials provided with the distribution.
45*fdd8201dSApple OSS Distributions  * 3. All advertising materials mentioning features or use of this software
46*fdd8201dSApple OSS Distributions  *    must display the following acknowledgement:
47*fdd8201dSApple OSS Distributions  *	This product includes software developed by Jonathan Stone
48*fdd8201dSApple OSS Distributions  *	and Jason R. Thorpe for the NetBSD Project.
49*fdd8201dSApple OSS Distributions  * 4. The names of the authors may not be used to endorse or promote products
50*fdd8201dSApple OSS Distributions  *    derived from this software without specific prior written permission.
51*fdd8201dSApple OSS Distributions  *
52*fdd8201dSApple OSS Distributions  * THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR
53*fdd8201dSApple OSS Distributions  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
54*fdd8201dSApple OSS Distributions  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
55*fdd8201dSApple OSS Distributions  * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
56*fdd8201dSApple OSS Distributions  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
57*fdd8201dSApple OSS Distributions  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
58*fdd8201dSApple OSS Distributions  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
59*fdd8201dSApple OSS Distributions  * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
60*fdd8201dSApple OSS Distributions  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
61*fdd8201dSApple OSS Distributions  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
62*fdd8201dSApple OSS Distributions  * SUCH DAMAGE.
63*fdd8201dSApple OSS Distributions  */
64*fdd8201dSApple OSS Distributions 
65*fdd8201dSApple OSS Distributions #ifndef _NET_IF_MEDIA_H_
66*fdd8201dSApple OSS Distributions #define _NET_IF_MEDIA_H_
67*fdd8201dSApple OSS Distributions #ifndef DRIVERKIT
68*fdd8201dSApple OSS Distributions #include <sys/appleapiopts.h>
69*fdd8201dSApple OSS Distributions #endif /* DRIVERKIT */
70*fdd8201dSApple OSS Distributions 
71*fdd8201dSApple OSS Distributions /*
72*fdd8201dSApple OSS Distributions  * Prototypes and definitions for BSD/OS-compatible network interface
73*fdd8201dSApple OSS Distributions  * media selection.
74*fdd8201dSApple OSS Distributions  *
75*fdd8201dSApple OSS Distributions  * Where it is safe to do so, this code strays slightly from the BSD/OS
76*fdd8201dSApple OSS Distributions  * design.  Software which uses the API (device drivers, basically)
77*fdd8201dSApple OSS Distributions  * shouldn't notice any difference.
78*fdd8201dSApple OSS Distributions  *
79*fdd8201dSApple OSS Distributions  * Many thanks to Matt Thomas for providing the information necessary
80*fdd8201dSApple OSS Distributions  * to implement this interface.
81*fdd8201dSApple OSS Distributions  */
82*fdd8201dSApple OSS Distributions 
83*fdd8201dSApple OSS Distributions #ifdef KERNEL_PRIVATE
84*fdd8201dSApple OSS Distributions /* sigh; some modules are lazy and thus rely on this */
85*fdd8201dSApple OSS Distributions #include <sys/queue.h>
86*fdd8201dSApple OSS Distributions #endif /* KERNEL_PRIVATE */
87*fdd8201dSApple OSS Distributions 
88*fdd8201dSApple OSS Distributions /*
89*fdd8201dSApple OSS Distributions  * if_media Options word:
90*fdd8201dSApple OSS Distributions  *	Bits	Use
91*fdd8201dSApple OSS Distributions  *	----	-------
92*fdd8201dSApple OSS Distributions  *	0-4	Media variant
93*fdd8201dSApple OSS Distributions  *	5-7     Media type
94*fdd8201dSApple OSS Distributions  *	8-15	Type specific options
95*fdd8201dSApple OSS Distributions  *	16-19	Extended media variant bits
96*fdd8201dSApple OSS Distributions  *	20-27	Shared (global) options
97*fdd8201dSApple OSS Distributions  *	28-31	Instance
98*fdd8201dSApple OSS Distributions  */
99*fdd8201dSApple OSS Distributions 
100*fdd8201dSApple OSS Distributions /*
101*fdd8201dSApple OSS Distributions  * Ethernet
102*fdd8201dSApple OSS Distributions  *
103*fdd8201dSApple OSS Distributions  * In order to use more than 31 subtypes, Ethernet uses the extended media
104*fdd8201dSApple OSS Distributions  * variant bits
105*fdd8201dSApple OSS Distributions  *
106*fdd8201dSApple OSS Distributions  * The extended media variant bits are not backward compatible so they
107*fdd8201dSApple OSS Distributions  * must not be used by kernel extensions like ifnet and drivers that
108*fdd8201dSApple OSS Distributions  * are to be deployed on older system versions
109*fdd8201dSApple OSS Distributions  */
110*fdd8201dSApple OSS Distributions #define IFM_X(x) IFM_X_SUBTYPE(x)   /* internal shorthand */
111*fdd8201dSApple OSS Distributions 
112*fdd8201dSApple OSS Distributions #define IFM_ETHER       0x00000020
113*fdd8201dSApple OSS Distributions #define IFM_10_T        3               /* 10BaseT - RJ45 */
114*fdd8201dSApple OSS Distributions #define IFM_10_2        4               /* 10Base2 - Thinnet */
115*fdd8201dSApple OSS Distributions #define IFM_10_5        5               /* 10Base5 - AUI */
116*fdd8201dSApple OSS Distributions #define IFM_100_TX      6               /* 100BaseTX - RJ45 */
117*fdd8201dSApple OSS Distributions #define IFM_100_FX      7               /* 100BaseFX - Fiber */
118*fdd8201dSApple OSS Distributions #define IFM_100_T4      8               /* 100BaseT4 - 4 pair cat 3 */
119*fdd8201dSApple OSS Distributions #define IFM_100_VG      9               /* 100VG-AnyLAN */
120*fdd8201dSApple OSS Distributions #define IFM_100_T2      10              /* 100BaseT2 */
121*fdd8201dSApple OSS Distributions #define IFM_1000_SX     11              /* 1000BaseSX - multi-mode fiber */
122*fdd8201dSApple OSS Distributions #define IFM_10_STP      12              /* 10BaseT over shielded TP */
123*fdd8201dSApple OSS Distributions #define IFM_10_FL       13              /* 10baseFL - Fiber */
124*fdd8201dSApple OSS Distributions #define IFM_1000_LX     14              /* 1000baseLX - single-mode fiber */
125*fdd8201dSApple OSS Distributions #define IFM_1000_CX     15              /* 1000baseCX - 150ohm STP */
126*fdd8201dSApple OSS Distributions #define IFM_1000_T      16              /* 1000baseT - 4 pair cat 5 */
127*fdd8201dSApple OSS Distributions #ifdef PRIVATE
128*fdd8201dSApple OSS Distributions #define IFM_1000_TX     IFM_1000_T      /* For compatibility */
129*fdd8201dSApple OSS Distributions #endif /* PRIVATE */
130*fdd8201dSApple OSS Distributions #define IFM_HPNA_1      17              /* HomePNA 1.0 (1Mb/s) */
131*fdd8201dSApple OSS Distributions #define IFM_10G_SR      18              /* 10GbaseSR - multi-mode fiber */
132*fdd8201dSApple OSS Distributions #define IFM_10G_LR      19              /* 10GbaseLR - single-mode fiber */
133*fdd8201dSApple OSS Distributions #define IFM_10G_CX4     20              /* 10GbaseCX4 - copper */
134*fdd8201dSApple OSS Distributions #define IFM_10G_T       21              /* 10GbaseT - 4 pair cat 6 */
135*fdd8201dSApple OSS Distributions #define IFM_2500_T      22              /* 2500baseT - 4 pair cat 5 */
136*fdd8201dSApple OSS Distributions #define IFM_5000_T      23              /* 5000baseT - 4 pair cat 5 */
137*fdd8201dSApple OSS Distributions #define IFM_1000_CX_SGMII    24         /* 1000Base-CX-SGMII */
138*fdd8201dSApple OSS Distributions #define IFM_1000_KX     25              /* 1000Base-KX backplane */
139*fdd8201dSApple OSS Distributions #define IFM_10G_KX4     26              /* 10GBase-KX4 backplane */
140*fdd8201dSApple OSS Distributions #define IFM_10G_KR      27              /* 10GBase-KR backplane */
141*fdd8201dSApple OSS Distributions #define IFM_10G_CR1     28              /* 10GBase-CR1 Twinax splitter */
142*fdd8201dSApple OSS Distributions #define IFM_10G_ER      29              /* 10GBase-ER */
143*fdd8201dSApple OSS Distributions #define IFM_20G_KR2     30              /* 20GBase-KR2 backplane */
144*fdd8201dSApple OSS Distributions #define IFM_OTHER       31              /* Other: one of the following */
145*fdd8201dSApple OSS Distributions 
146*fdd8201dSApple OSS Distributions /* following types are not visible to old binaries using the low bits of IFM_TMASK */
147*fdd8201dSApple OSS Distributions #define IFM_2500_SX     IFM_X(32)       /* 2500BaseSX - multi-mode fiber */
148*fdd8201dSApple OSS Distributions #define IFM_10G_TWINAX  IFM_X(33)       /* 10GBase Twinax copper */
149*fdd8201dSApple OSS Distributions #define IFM_10G_TWINAX_LONG     IFM_X(34)       /* 10GBase Twinax Long copper */
150*fdd8201dSApple OSS Distributions #define IFM_10G_LRM     IFM_X(35)       /* 10GBase-LRM 850nm Multi-mode */
151*fdd8201dSApple OSS Distributions #define IFM_2500_KX     IFM_X(36)       /* 2500Base-KX backplane */
152*fdd8201dSApple OSS Distributions #define IFM_40G_CR4     IFM_X(37)       /* 40GBase-CR4 */
153*fdd8201dSApple OSS Distributions #define IFM_40G_SR4     IFM_X(38)       /* 40GBase-SR4 */
154*fdd8201dSApple OSS Distributions #define IFM_50G_PCIE    IFM_X(39)       /* 50G Ethernet over PCIE */
155*fdd8201dSApple OSS Distributions #define IFM_25G_PCIE    IFM_X(40)       /* 25G Ethernet over PCIE */
156*fdd8201dSApple OSS Distributions #define IFM_1000_SGMII  IFM_X(41)       /* 1G media interface */
157*fdd8201dSApple OSS Distributions #define IFM_10G_SFI     IFM_X(42)       /* 10G media interface */
158*fdd8201dSApple OSS Distributions #define IFM_40G_XLPPI   IFM_X(43)       /* 40G media interface */
159*fdd8201dSApple OSS Distributions #define IFM_40G_LR4     IFM_X(44)       /* 40GBase-LR4 */
160*fdd8201dSApple OSS Distributions #define IFM_40G_KR4     IFM_X(45)       /* 40GBase-KR4 */
161*fdd8201dSApple OSS Distributions #define IFM_100G_CR4    IFM_X(47)       /* 100GBase-CR4 */
162*fdd8201dSApple OSS Distributions #define IFM_100G_SR4    IFM_X(48)       /* 100GBase-SR4 */
163*fdd8201dSApple OSS Distributions #define IFM_100G_KR4    IFM_X(49)       /* 100GBase-KR4 */
164*fdd8201dSApple OSS Distributions #define IFM_100G_LR4    IFM_X(50)       /* 100GBase-LR4 */
165*fdd8201dSApple OSS Distributions #define IFM_56G_R4      IFM_X(51)       /* 56GBase-R4 */
166*fdd8201dSApple OSS Distributions #define IFM_100_T       IFM_X(52)       /* 100BaseT - RJ45 */
167*fdd8201dSApple OSS Distributions #define IFM_25G_CR      IFM_X(53)       /* 25GBase-CR */
168*fdd8201dSApple OSS Distributions #define IFM_25G_KR      IFM_X(54)       /* 25GBase-KR */
169*fdd8201dSApple OSS Distributions #define IFM_25G_SR      IFM_X(55)       /* 25GBase-SR */
170*fdd8201dSApple OSS Distributions #define IFM_50G_CR2     IFM_X(56)       /* 50GBase-CR2 */
171*fdd8201dSApple OSS Distributions #define IFM_50G_KR2     IFM_X(57)       /* 50GBase-KR2 */
172*fdd8201dSApple OSS Distributions #define IFM_25G_LR      IFM_X(58)       /* 25GBase-LR */
173*fdd8201dSApple OSS Distributions #define IFM_10G_AOC     IFM_X(59)       /* 10G active optical cable */
174*fdd8201dSApple OSS Distributions #define IFM_25G_ACC     IFM_X(60)       /* 25G active copper cable */
175*fdd8201dSApple OSS Distributions #define IFM_25G_AOC     IFM_X(61)       /* 25G active optical cable */
176*fdd8201dSApple OSS Distributions #define IFM_100_SGMII   IFM_X(62)       /* 100M media interface */
177*fdd8201dSApple OSS Distributions #define IFM_2500_X      IFM_X(63)       /* 2500BaseX */
178*fdd8201dSApple OSS Distributions #define IFM_5000_KR     IFM_X(64)       /* 5GBase-KR backplane */
179*fdd8201dSApple OSS Distributions #define IFM_25G_T       IFM_X(65)       /* 25GBase-T - RJ45 */
180*fdd8201dSApple OSS Distributions #define IFM_25G_CR_S    IFM_X(66)       /* 25GBase-CR (short) */
181*fdd8201dSApple OSS Distributions #define IFM_25G_CR1     IFM_X(67)       /* 25GBase-CR1 DA cable */
182*fdd8201dSApple OSS Distributions #define IFM_25G_KR_S    IFM_X(68)       /* 25GBase-KR (short) */
183*fdd8201dSApple OSS Distributions #define IFM_5000_KR_S   IFM_X(69)       /* 5GBase-KR backplane (short) */
184*fdd8201dSApple OSS Distributions #define IFM_5000_KR1    IFM_X(70)       /* 5GBase-KR backplane */
185*fdd8201dSApple OSS Distributions #define IFM_25G_AUI     IFM_X(71)       /* 25G-AUI-C2C (chip to chip) */
186*fdd8201dSApple OSS Distributions #define IFM_40G_XLAUI   IFM_X(72)       /* 40G-XLAUI */
187*fdd8201dSApple OSS Distributions #define IFM_40G_XLAUI_AC IFM_X(73)      /* 40G active copper/optical */
188*fdd8201dSApple OSS Distributions #define IFM_40G_ER4     IFM_X(74)       /* 40GBase-ER4 */
189*fdd8201dSApple OSS Distributions #define IFM_50G_SR2     IFM_X(75)       /* 50GBase-SR2 */
190*fdd8201dSApple OSS Distributions #define IFM_50G_LR2     IFM_X(76)       /* 50GBase-LR2 */
191*fdd8201dSApple OSS Distributions #define IFM_50G_LAUI2_AC IFM_X(77)      /* 50G active copper/optical */
192*fdd8201dSApple OSS Distributions #define IFM_50G_LAUI2   IFM_X(78)       /* 50G-LAUI2 */
193*fdd8201dSApple OSS Distributions #define IFM_50G_AUI2_AC IFM_X(79)       /* 50G active copper/optical */
194*fdd8201dSApple OSS Distributions #define IFM_50G_AUI2    IFM_X(80)       /* 50G-AUI2 */
195*fdd8201dSApple OSS Distributions #define IFM_50G_CP      IFM_X(81)       /* 50GBase-CP */
196*fdd8201dSApple OSS Distributions #define IFM_50G_SR      IFM_X(82)       /* 50GBase-SR */
197*fdd8201dSApple OSS Distributions #define IFM_50G_LR      IFM_X(83)       /* 50GBase-LR */
198*fdd8201dSApple OSS Distributions #define IFM_50G_FR      IFM_X(84)       /* 50GBase-FR */
199*fdd8201dSApple OSS Distributions #define IFM_50G_KR_PAM4 IFM_X(85)       /* 50GBase-KR PAM4 */
200*fdd8201dSApple OSS Distributions #define IFM_25G_KR1     IFM_X(86)       /* 25GBase-KR1 */
201*fdd8201dSApple OSS Distributions #define IFM_50G_AUI1_AC IFM_X(87)       /* 50G active copper/optical */
202*fdd8201dSApple OSS Distributions #define IFM_50G_AUI1    IFM_X(88)       /* 50G-AUI1 */
203*fdd8201dSApple OSS Distributions #define IFM_100G_CAUI4_AC IFM_X(89)     /* 100G-CAUI4 active copper/optical */
204*fdd8201dSApple OSS Distributions #define IFM_100G_CAUI4 IFM_X(90)        /* 100G-CAUI4 */
205*fdd8201dSApple OSS Distributions #define IFM_100G_AUI4_AC IFM_X(91)      /* 100G-AUI4 active copper/optical */
206*fdd8201dSApple OSS Distributions #define IFM_100G_AUI4   IFM_X(92)       /* 100G-AUI4 */
207*fdd8201dSApple OSS Distributions #define IFM_100G_CR_PAM4 IFM_X(93)      /* 100GBase-CR PAM4 */
208*fdd8201dSApple OSS Distributions #define IFM_100G_KR_PAM4 IFM_X(94)      /* 100GBase-CR PAM4 */
209*fdd8201dSApple OSS Distributions #define IFM_100G_CP2    IFM_X(95)       /* 100GBase-CP2 */
210*fdd8201dSApple OSS Distributions #define IFM_100G_SR2    IFM_X(96)       /* 100GBase-SR2 */
211*fdd8201dSApple OSS Distributions #define IFM_100G_DR     IFM_X(97)       /* 100GBase-DR */
212*fdd8201dSApple OSS Distributions #define IFM_100G_KR2_PAM4 IFM_X(98)     /* 100GBase-KR2 PAM4 */
213*fdd8201dSApple OSS Distributions #define IFM_100G_CAUI2_AC IFM_X(99)     /* 100G-CAUI2 active copper/optical */
214*fdd8201dSApple OSS Distributions #define IFM_100G_CAUI2  IFM_X(100)      /* 100G-CAUI2 */
215*fdd8201dSApple OSS Distributions #define IFM_100G_AUI2_AC IFM_X(101)     /* 100G-AUI2 active copper/optical */
216*fdd8201dSApple OSS Distributions #define IFM_100G_AUI2   IFM_X(102)      /* 100G-AUI2 */
217*fdd8201dSApple OSS Distributions #define IFM_200G_CR4_PAM4 IFM_X(103)    /* 200GBase-CR4 PAM4 */
218*fdd8201dSApple OSS Distributions #define IFM_200G_SR4    IFM_X(104)      /* 200GBase-SR4 */
219*fdd8201dSApple OSS Distributions #define IFM_200G_FR4    IFM_X(105)      /* 200GBase-FR4 */
220*fdd8201dSApple OSS Distributions #define IFM_200G_LR4    IFM_X(106)      /* 200GBase-LR4 */
221*fdd8201dSApple OSS Distributions #define IFM_200G_DR4    IFM_X(107)      /* 200GBase-DR4 */
222*fdd8201dSApple OSS Distributions #define IFM_200G_KR4_PAM4 IFM_X(108)    /* 200GBase-KR4 PAM4 */
223*fdd8201dSApple OSS Distributions #define IFM_200G_AUI4_AC IFM_X(109)     /* 200G-AUI4 active copper/optical */
224*fdd8201dSApple OSS Distributions #define IFM_200G_AUI4   IFM_X(110)      /* 200G-AUI4 */
225*fdd8201dSApple OSS Distributions #define IFM_200G_AUI8_AC IFM_X(111)     /* 200G-AUI8 active copper/optical */
226*fdd8201dSApple OSS Distributions #define IFM_200G_AUI8   IFM_X(112)      /* 200G-AUI8 */
227*fdd8201dSApple OSS Distributions #define IFM_400G_FR8    IFM_X(113)      /* 400GBase-FR8 */
228*fdd8201dSApple OSS Distributions #define IFM_400G_LR8    IFM_X(114)      /* 400GBase-LR8 */
229*fdd8201dSApple OSS Distributions #define IFM_400G_DR4    IFM_X(115)      /* 400GBase-DR4 */
230*fdd8201dSApple OSS Distributions #define IFM_400G_AUI8_AC IFM_X(116)     /* 400G-AUI8 active copper/optical */
231*fdd8201dSApple OSS Distributions #define IFM_400G_AUI8   IFM_X(117)      /* 400G-AUI8 */
232*fdd8201dSApple OSS Distributions 
233*fdd8201dSApple OSS Distributions /*
234*fdd8201dSApple OSS Distributions  * Token ring
235*fdd8201dSApple OSS Distributions  */
236*fdd8201dSApple OSS Distributions #define IFM_TOKEN       0x00000040
237*fdd8201dSApple OSS Distributions #define IFM_TOK_STP4    3               /* Shielded twisted pair 4m - DB9 */
238*fdd8201dSApple OSS Distributions #define IFM_TOK_STP16   4               /* Shielded twisted pair 16m - DB9 */
239*fdd8201dSApple OSS Distributions #define IFM_TOK_UTP4    5               /* Unshielded twisted pair 4m - RJ45 */
240*fdd8201dSApple OSS Distributions #define IFM_TOK_UTP16   6               /* Unshielded twisted pair 16m - RJ45 */
241*fdd8201dSApple OSS Distributions #define IFM_TOK_STP100  7               /* Shielded twisted pair 100m - DB9 */
242*fdd8201dSApple OSS Distributions #define IFM_TOK_UTP100  8               /* Unshielded twisted pair 100m - RJ45 */
243*fdd8201dSApple OSS Distributions #define IFM_TOK_ETR     0x00000200      /* Early token release */
244*fdd8201dSApple OSS Distributions #define IFM_TOK_SRCRT   0x00000400      /* Enable source routing features */
245*fdd8201dSApple OSS Distributions #define IFM_TOK_ALLR    0x00000800      /* All routes / Single route bcast */
246*fdd8201dSApple OSS Distributions #define IFM_TOK_DTR     0x00002000      /* Dedicated token ring */
247*fdd8201dSApple OSS Distributions #define IFM_TOK_CLASSIC 0x00004000      /* Classic token ring */
248*fdd8201dSApple OSS Distributions #define IFM_TOK_AUTO    0x00008000      /* Automatic Dedicate/Classic token ring */
249*fdd8201dSApple OSS Distributions 
250*fdd8201dSApple OSS Distributions /*
251*fdd8201dSApple OSS Distributions  * FDDI
252*fdd8201dSApple OSS Distributions  */
253*fdd8201dSApple OSS Distributions #define IFM_FDDI        0x00000060
254*fdd8201dSApple OSS Distributions #define IFM_FDDI_SMF    3               /* Single-mode fiber */
255*fdd8201dSApple OSS Distributions #define IFM_FDDI_MMF    4               /* Multi-mode fiber */
256*fdd8201dSApple OSS Distributions #define IFM_FDDI_UTP    5               /* CDDI / UTP */
257*fdd8201dSApple OSS Distributions #define IFM_FDDI_DA     0x00000100      /* Dual attach / single attach */
258*fdd8201dSApple OSS Distributions 
259*fdd8201dSApple OSS Distributions /*
260*fdd8201dSApple OSS Distributions  * IEEE 802.11 Wireless
261*fdd8201dSApple OSS Distributions  */
262*fdd8201dSApple OSS Distributions #define IFM_IEEE80211   0x00000080
263*fdd8201dSApple OSS Distributions #define IFM_IEEE80211_FH1       3       /* Frequency Hopping 1Mbps */
264*fdd8201dSApple OSS Distributions #define IFM_IEEE80211_FH2       4       /* Frequency Hopping 2Mbps */
265*fdd8201dSApple OSS Distributions #define IFM_IEEE80211_DS2       5       /* Direct Sequence 2Mbps */
266*fdd8201dSApple OSS Distributions #define IFM_IEEE80211_DS5       6       /* Direct Sequence 5Mbps*/
267*fdd8201dSApple OSS Distributions #define IFM_IEEE80211_DS11      7       /* Direct Sequence 11Mbps*/
268*fdd8201dSApple OSS Distributions #define IFM_IEEE80211_DS1       8       /* Direct Sequence 1Mbps */
269*fdd8201dSApple OSS Distributions #define IFM_IEEE80211_DS22      9       /* Direct Sequence 22Mbps */
270*fdd8201dSApple OSS Distributions #define IFM_IEEE80211_ADHOC     0x00000100      /* Operate in Adhoc mode */
271*fdd8201dSApple OSS Distributions 
272*fdd8201dSApple OSS Distributions /*
273*fdd8201dSApple OSS Distributions  * Shared media sub-types
274*fdd8201dSApple OSS Distributions  */
275*fdd8201dSApple OSS Distributions #define IFM_AUTO        0               /* Autoselect best media */
276*fdd8201dSApple OSS Distributions #define IFM_MANUAL      1               /* Jumper/dipswitch selects media */
277*fdd8201dSApple OSS Distributions #define IFM_NONE        2               /* Deselect all media */
278*fdd8201dSApple OSS Distributions 
279*fdd8201dSApple OSS Distributions /*
280*fdd8201dSApple OSS Distributions  * Shared options
281*fdd8201dSApple OSS Distributions  */
282*fdd8201dSApple OSS Distributions #define IFM_FDX         0x00100000      /* Force full duplex */
283*fdd8201dSApple OSS Distributions #define IFM_HDX         0x00200000      /* Force half duplex */
284*fdd8201dSApple OSS Distributions #define IFM_FLOW        0x00400000      /* enable hardware flow control */
285*fdd8201dSApple OSS Distributions #define IFM_EEE         0x00800000      /* Support energy efficient ethernet */
286*fdd8201dSApple OSS Distributions #define IFM_FLAG0       0x01000000      /* Driver defined flag */
287*fdd8201dSApple OSS Distributions #define IFM_FLAG1       0x02000000      /* Driver defined flag */
288*fdd8201dSApple OSS Distributions #define IFM_FLAG2       0x04000000      /* Driver defined flag */
289*fdd8201dSApple OSS Distributions #define IFM_LOOP        0x08000000      /* Put hardware in loopback */
290*fdd8201dSApple OSS Distributions 
291*fdd8201dSApple OSS Distributions /*
292*fdd8201dSApple OSS Distributions  * Macros to access bits of extended media sub-types (media variants)
293*fdd8201dSApple OSS Distributions  */
294*fdd8201dSApple OSS Distributions #define IFM_TMASK_COMPAT        0x0000001f      /* Lower bits of media sub-type */
295*fdd8201dSApple OSS Distributions #define IFM_TMASK_EXT           0x000f0000      /* For extended media sub-type */
296*fdd8201dSApple OSS Distributions #define IFM_TMASK_EXT_SHIFT     11              /* to extract high bits */
297*fdd8201dSApple OSS Distributions #define IFM_X_SUBTYPE(x) (((x) & IFM_TMASK_COMPAT) | \
298*fdd8201dSApple OSS Distributions 	(((x) & (IFM_TMASK_EXT >> IFM_TMASK_EXT_SHIFT)) << IFM_TMASK_EXT_SHIFT))
299*fdd8201dSApple OSS Distributions 
300*fdd8201dSApple OSS Distributions /*
301*fdd8201dSApple OSS Distributions  * Masks
302*fdd8201dSApple OSS Distributions  */
303*fdd8201dSApple OSS Distributions #define IFM_NMASK       0x000000e0      /* Network type */
304*fdd8201dSApple OSS Distributions #define IFM_TMASK       (IFM_TMASK_COMPAT|IFM_TMASK_EXT)    /* Media sub-type */
305*fdd8201dSApple OSS Distributions #define IFM_IMASK       0xf0000000      /* Instance */
306*fdd8201dSApple OSS Distributions #define IFM_ISHIFT      28              /* Instance shift */
307*fdd8201dSApple OSS Distributions #define IFM_OMASK       0x0000ff00      /* Type specific options */
308*fdd8201dSApple OSS Distributions #define IFM_GMASK       0x0ff00000      /* Global options */
309*fdd8201dSApple OSS Distributions 
310*fdd8201dSApple OSS Distributions /*
311*fdd8201dSApple OSS Distributions  * Status bits
312*fdd8201dSApple OSS Distributions  */
313*fdd8201dSApple OSS Distributions #define IFM_AVALID      0x00000001      /* Active bit valid */
314*fdd8201dSApple OSS Distributions #define IFM_ACTIVE      0x00000002      /* Interface attached to working net */
315*fdd8201dSApple OSS Distributions #define IFM_WAKESAMENET 0x00000004      /* No link transition while asleep */
316*fdd8201dSApple OSS Distributions 
317*fdd8201dSApple OSS Distributions /*
318*fdd8201dSApple OSS Distributions  * Macros to extract various bits of information from the media word.
319*fdd8201dSApple OSS Distributions  */
320*fdd8201dSApple OSS Distributions #define IFM_TYPE(x)         ((x) & IFM_NMASK)
321*fdd8201dSApple OSS Distributions #define IFM_SUBTYPE(x)      ((x) & IFM_TMASK)
322*fdd8201dSApple OSS Distributions #define IFM_TYPE_OPTIONS(x) ((x) & IFM_OMASK)
323*fdd8201dSApple OSS Distributions #define IFM_INST(x)         (((x) & IFM_IMASK) >> IFM_ISHIFT)
324*fdd8201dSApple OSS Distributions #define IFM_OPTIONS(x)  ((x) & (IFM_OMASK|IFM_GMASK))
325*fdd8201dSApple OSS Distributions 
326*fdd8201dSApple OSS Distributions #define IFM_INST_MAX    IFM_INST(IFM_IMASK)
327*fdd8201dSApple OSS Distributions 
328*fdd8201dSApple OSS Distributions /*
329*fdd8201dSApple OSS Distributions  * Macro to create a media word.
330*fdd8201dSApple OSS Distributions  */
331*fdd8201dSApple OSS Distributions #define IFM_MAKEWORD(type, subtype, options, instance)                  \
332*fdd8201dSApple OSS Distributions 	((type) | (subtype) | (options) | ((instance) << IFM_ISHIFT))
333*fdd8201dSApple OSS Distributions 
334*fdd8201dSApple OSS Distributions /*
335*fdd8201dSApple OSS Distributions  * NetBSD extension not defined in the BSDI API.  This is used in various
336*fdd8201dSApple OSS Distributions  * places to get the canonical description for a given type/subtype.
337*fdd8201dSApple OSS Distributions  *
338*fdd8201dSApple OSS Distributions  * NOTE: all but the top-level type descriptions must contain NO whitespace!
339*fdd8201dSApple OSS Distributions  * Otherwise, parsing these in ifconfig(8) would be a nightmare.
340*fdd8201dSApple OSS Distributions  */
341*fdd8201dSApple OSS Distributions struct ifmedia_description {
342*fdd8201dSApple OSS Distributions 	int     ifmt_word;              /* word value; may be masked */
343*fdd8201dSApple OSS Distributions 	const char *ifmt_string;        /* description */
344*fdd8201dSApple OSS Distributions };
345*fdd8201dSApple OSS Distributions 
346*fdd8201dSApple OSS Distributions #define IFM_TYPE_DESCRIPTIONS {                     \
347*fdd8201dSApple OSS Distributions     { IFM_ETHER,     "Ethernet"   },                \
348*fdd8201dSApple OSS Distributions     { IFM_TOKEN,     "Token ring" },                \
349*fdd8201dSApple OSS Distributions     { IFM_FDDI,      "FDDI"       },                \
350*fdd8201dSApple OSS Distributions     { IFM_IEEE80211, "IEEE802.11" },                \
351*fdd8201dSApple OSS Distributions     { 0, NULL },                                    \
352*fdd8201dSApple OSS Distributions }
353*fdd8201dSApple OSS Distributions 
354*fdd8201dSApple OSS Distributions #define IFM_SUBTYPE_ETHERNET_DESCRIPTIONS {         \
355*fdd8201dSApple OSS Distributions     { IFM_10_T,     "10baseT/UTP" },                \
356*fdd8201dSApple OSS Distributions     { IFM_10_2,     "10base2/BNC" },                \
357*fdd8201dSApple OSS Distributions     { IFM_10_5,     "10base5/AUI" },                \
358*fdd8201dSApple OSS Distributions     { IFM_100_TX,   "100baseTX"   },                \
359*fdd8201dSApple OSS Distributions     { IFM_100_FX,   "100baseFX"   },                \
360*fdd8201dSApple OSS Distributions     { IFM_100_T4,   "100baseT4"   },                \
361*fdd8201dSApple OSS Distributions     { IFM_100_VG,   "100baseVG"   },                \
362*fdd8201dSApple OSS Distributions     { IFM_100_T2,   "100baseT2"   },                \
363*fdd8201dSApple OSS Distributions     { IFM_10_STP,   "10baseSTP"   },                \
364*fdd8201dSApple OSS Distributions     { IFM_10_FL,    "10baseFL"    },                \
365*fdd8201dSApple OSS Distributions     { IFM_1000_SX,              "1000baseSX" },                         \
366*fdd8201dSApple OSS Distributions     { IFM_1000_LX,  "1000baseLX"  },                \
367*fdd8201dSApple OSS Distributions     { IFM_1000_CX,  "1000baseCX"  },                \
368*fdd8201dSApple OSS Distributions     { IFM_1000_T,   "1000baseT"   },                \
369*fdd8201dSApple OSS Distributions     { IFM_HPNA_1,               "homePNA" },                            \
370*fdd8201dSApple OSS Distributions     { IFM_10G_LR,               "10Gbase-LR" },                         \
371*fdd8201dSApple OSS Distributions     { IFM_10G_SR,               "10Gbase-SR" },                         \
372*fdd8201dSApple OSS Distributions     { IFM_10G_CX4,              "10Gbase-CX4" },                        \
373*fdd8201dSApple OSS Distributions     { IFM_2500_SX,              "2500BaseSX" },                         \
374*fdd8201dSApple OSS Distributions     { IFM_10G_LRM,              "10Gbase-LRM" },                        \
375*fdd8201dSApple OSS Distributions     { IFM_10G_TWINAX,           "10Gbase-Twinax" },                     \
376*fdd8201dSApple OSS Distributions     { IFM_10G_TWINAX_LONG,      "10Gbase-Twinax-Long" },                \
377*fdd8201dSApple OSS Distributions     { IFM_10G_T,                "10Gbase-T" },                          \
378*fdd8201dSApple OSS Distributions     { IFM_40G_CR4,              "40Gbase-CR4" },                        \
379*fdd8201dSApple OSS Distributions     { IFM_40G_SR4,              "40Gbase-SR4" },                        \
380*fdd8201dSApple OSS Distributions     { IFM_40G_LR4,              "40Gbase-LR4" },                        \
381*fdd8201dSApple OSS Distributions     { IFM_1000_KX,  "1000Base-KX" },                \
382*fdd8201dSApple OSS Distributions     { IFM_OTHER,                "Other" },                              \
383*fdd8201dSApple OSS Distributions     { IFM_10G_KX4,  "10GBase-KX4" },                \
384*fdd8201dSApple OSS Distributions     { IFM_10G_KR,   "10GBase-KR" },                 \
385*fdd8201dSApple OSS Distributions     { IFM_10G_CR1,  "10GBase-CR1" },                \
386*fdd8201dSApple OSS Distributions     { IFM_20G_KR2,              "20GBase-KR2" },                        \
387*fdd8201dSApple OSS Distributions     { IFM_2500_KX,              "2500Base-KX" },                        \
388*fdd8201dSApple OSS Distributions     { IFM_2500_T,               "2500Base-T" },                         \
389*fdd8201dSApple OSS Distributions     { IFM_5000_T,               "5000Base-T" },                         \
390*fdd8201dSApple OSS Distributions     { IFM_50G_PCIE,             "PCIExpress-50G" },                     \
391*fdd8201dSApple OSS Distributions     { IFM_25G_PCIE,             "PCIExpress-25G" },                     \
392*fdd8201dSApple OSS Distributions     { IFM_1000_SGMII,           "1000Base-SGMII" },                     \
393*fdd8201dSApple OSS Distributions     { IFM_10G_SFI,              "10GBase-SFI" },                        \
394*fdd8201dSApple OSS Distributions     { IFM_40G_XLPPI,            "40GBase-XLPPI" },                      \
395*fdd8201dSApple OSS Distributions     { IFM_1000_CX_SGMII,        "1000Base-CX-SGMII" },                  \
396*fdd8201dSApple OSS Distributions     { IFM_40G_KR4,              "40GBase-KR4" },                        \
397*fdd8201dSApple OSS Distributions     { IFM_10G_ER,   "10GBase-ER" },                 \
398*fdd8201dSApple OSS Distributions     { IFM_100G_CR4,             "100GBase-CR4" },                       \
399*fdd8201dSApple OSS Distributions     { IFM_100G_SR4,             "100GBase-SR4" },                       \
400*fdd8201dSApple OSS Distributions     { IFM_100G_KR4,             "100GBase-KR4" },                       \
401*fdd8201dSApple OSS Distributions     { IFM_100G_LR4,             "100GBase-LR4" },                       \
402*fdd8201dSApple OSS Distributions     { IFM_56G_R4,               "56GBase-R4" },                         \
403*fdd8201dSApple OSS Distributions     { IFM_100_T,                "100BaseT" },                           \
404*fdd8201dSApple OSS Distributions     { IFM_25G_CR,   "25GBase-CR" },                 \
405*fdd8201dSApple OSS Distributions     { IFM_25G_KR,   "25GBase-KR" },                 \
406*fdd8201dSApple OSS Distributions     { IFM_25G_SR,   "25GBase-SR" },                 \
407*fdd8201dSApple OSS Distributions     { IFM_50G_CR2,  "50GBase-CR2" },                \
408*fdd8201dSApple OSS Distributions     { IFM_50G_KR2,  "50GBase-KR2" },                \
409*fdd8201dSApple OSS Distributions     { IFM_25G_LR,               "25GBase-LR" },                         \
410*fdd8201dSApple OSS Distributions     { IFM_10G_AOC,              "10GBase-AOC" },                        \
411*fdd8201dSApple OSS Distributions     { IFM_25G_ACC,              "25GBase-ACC" },                        \
412*fdd8201dSApple OSS Distributions     { IFM_25G_AOC,              "25GBase-AOC" },                        \
413*fdd8201dSApple OSS Distributions     { IFM_100_SGMII,            "100M-SGMII" },                         \
414*fdd8201dSApple OSS Distributions     { IFM_2500_X,               "2500Base-X" },                         \
415*fdd8201dSApple OSS Distributions     { IFM_5000_KR,              "5000Base-KR" },                        \
416*fdd8201dSApple OSS Distributions     { IFM_25G_T,                "25GBase-T" },                          \
417*fdd8201dSApple OSS Distributions     { IFM_25G_CR_S,             "25GBase-CR-S" },                       \
418*fdd8201dSApple OSS Distributions     { IFM_25G_CR1,              "25GBase-CR1" },                        \
419*fdd8201dSApple OSS Distributions     { IFM_25G_KR_S,             "25GBase-KR-S" },                       \
420*fdd8201dSApple OSS Distributions     { IFM_5000_KR_S,            "5000Base-KR-S" },                      \
421*fdd8201dSApple OSS Distributions     { IFM_5000_KR1,             "5000Base-KR1" },                       \
422*fdd8201dSApple OSS Distributions     { IFM_25G_AUI,              "25G-AUI" },                            \
423*fdd8201dSApple OSS Distributions     { IFM_40G_XLAUI,            "40G-XLAUI" },                          \
424*fdd8201dSApple OSS Distributions     { IFM_40G_XLAUI_AC,         "40G-XLAUI-AC" },                       \
425*fdd8201dSApple OSS Distributions     { IFM_40G_ER4,              "40GBase-ER4" },                        \
426*fdd8201dSApple OSS Distributions     { IFM_50G_SR2,  "50GBase-SR2" },                \
427*fdd8201dSApple OSS Distributions     { IFM_50G_LR2,  "50GBase-LR2" },                \
428*fdd8201dSApple OSS Distributions     { IFM_50G_LAUI2_AC,         "50G-LAUI2-AC" },                       \
429*fdd8201dSApple OSS Distributions     { IFM_50G_LAUI2,            "50G-LAUI2" },                          \
430*fdd8201dSApple OSS Distributions     { IFM_50G_AUI2_AC,          "50G-AUI2-AC" },                        \
431*fdd8201dSApple OSS Distributions     { IFM_50G_AUI2,             "50G-AUI2" },                           \
432*fdd8201dSApple OSS Distributions     { IFM_50G_CP,               "50GBase-CP" },                         \
433*fdd8201dSApple OSS Distributions     { IFM_50G_SR,               "50GBase-SR" },                         \
434*fdd8201dSApple OSS Distributions     { IFM_50G_LR,               "50GBase-LR" },                         \
435*fdd8201dSApple OSS Distributions     { IFM_50G_FR,               "50GBase-FR" },                         \
436*fdd8201dSApple OSS Distributions     { IFM_50G_KR_PAM4,          "50GBase-KR-PAM4" },                    \
437*fdd8201dSApple OSS Distributions     { IFM_25G_KR1,              "25GBase-KR1" },                        \
438*fdd8201dSApple OSS Distributions     { IFM_50G_AUI1_AC,          "50G-AUI1-AC" },                        \
439*fdd8201dSApple OSS Distributions     { IFM_50G_AUI1,             "50G-AUI1" },                           \
440*fdd8201dSApple OSS Distributions     { IFM_100G_CAUI4_AC,        "100G-CAUI4-AC" },                      \
441*fdd8201dSApple OSS Distributions     { IFM_100G_CAUI4,           "100G-CAUI4" },                         \
442*fdd8201dSApple OSS Distributions     { IFM_100G_AUI4_AC,         "100G-AUI4-AC" },                       \
443*fdd8201dSApple OSS Distributions     { IFM_100G_AUI4,            "100G-AUI4" },                          \
444*fdd8201dSApple OSS Distributions     { IFM_100G_CR_PAM4,         "100GBase-CR-PAM4" },                   \
445*fdd8201dSApple OSS Distributions     { IFM_100G_KR_PAM4,         "100GBase-KR-PAM4" },                   \
446*fdd8201dSApple OSS Distributions     { IFM_100G_CP2,             "100GBase-CP2" },                       \
447*fdd8201dSApple OSS Distributions     { IFM_100G_SR2,             "100GBase-SR2" },                       \
448*fdd8201dSApple OSS Distributions     { IFM_100G_DR,              "100GBase-DR" },                        \
449*fdd8201dSApple OSS Distributions     { IFM_100G_KR2_PAM4,        "100GBase-KR2-PAM4" },                  \
450*fdd8201dSApple OSS Distributions     { IFM_100G_CAUI2_AC,        "100G-CAUI2-AC" },                      \
451*fdd8201dSApple OSS Distributions     { IFM_100G_CAUI2,           "100G-CAUI2" },                         \
452*fdd8201dSApple OSS Distributions     { IFM_100G_AUI2_AC,         "100G-AUI2-AC" },                       \
453*fdd8201dSApple OSS Distributions     { IFM_100G_AUI2,            "100G-AUI2" },                          \
454*fdd8201dSApple OSS Distributions     { IFM_200G_CR4_PAM4,        "200GBase-CR4-PAM4" },                  \
455*fdd8201dSApple OSS Distributions     { IFM_200G_SR4,             "200GBase-SR4" },                       \
456*fdd8201dSApple OSS Distributions     { IFM_200G_FR4,             "200GBase-FR4" },                       \
457*fdd8201dSApple OSS Distributions     { IFM_200G_LR4,             "200GBase-LR4" },                       \
458*fdd8201dSApple OSS Distributions     { IFM_200G_DR4,             "200GBase-DR4" },                       \
459*fdd8201dSApple OSS Distributions     { IFM_200G_KR4_PAM4,        "200GBase-KR4-PAM4" },                  \
460*fdd8201dSApple OSS Distributions     { IFM_200G_AUI4_AC,         "200G-AUI4-AC" },                       \
461*fdd8201dSApple OSS Distributions     { IFM_200G_AUI4,            "200G-AUI4" },                          \
462*fdd8201dSApple OSS Distributions     { IFM_200G_AUI8_AC,         "200G-AUI8-AC" },                       \
463*fdd8201dSApple OSS Distributions     { IFM_200G_AUI8,            "200G-AUI8" },                          \
464*fdd8201dSApple OSS Distributions     { IFM_400G_FR8,             "400GBase-FR8" },                       \
465*fdd8201dSApple OSS Distributions     { IFM_400G_LR8,             "400GBase-LR8" },                       \
466*fdd8201dSApple OSS Distributions     { IFM_400G_DR4,             "400GBase-DR4" },                       \
467*fdd8201dSApple OSS Distributions     { IFM_400G_AUI8_AC,         "400G-AUI8-AC" },                       \
468*fdd8201dSApple OSS Distributions     { IFM_400G_AUI8,            "400G-AUI8" },                          \
469*fdd8201dSApple OSS Distributions     { 0, NULL },                                    \
470*fdd8201dSApple OSS Distributions }
471*fdd8201dSApple OSS Distributions 
472*fdd8201dSApple OSS Distributions #define IFM_SUBTYPE_ETHERNET_ALIASES {              \
473*fdd8201dSApple OSS Distributions     { IFM_10_T,     "UTP"    },                     \
474*fdd8201dSApple OSS Distributions     { IFM_10_T,     "10UTP"  },                     \
475*fdd8201dSApple OSS Distributions     { IFM_10_2,     "BNC"    },                     \
476*fdd8201dSApple OSS Distributions     { IFM_10_2,     "10BNC"  },                     \
477*fdd8201dSApple OSS Distributions     { IFM_10_5,     "AUI"    },                     \
478*fdd8201dSApple OSS Distributions     { IFM_10_5,     "10AUI"  },                     \
479*fdd8201dSApple OSS Distributions     { IFM_100_TX,   "100TX"  },                     \
480*fdd8201dSApple OSS Distributions     { IFM_100_FX,   "100FX"  },                     \
481*fdd8201dSApple OSS Distributions     { IFM_100_T4,   "100T4"  },                     \
482*fdd8201dSApple OSS Distributions     { IFM_100_VG,   "100VG"  },                     \
483*fdd8201dSApple OSS Distributions     { IFM_100_T2,   "100T2"  },                     \
484*fdd8201dSApple OSS Distributions     { IFM_1000_SX,  "1000SX" },                     \
485*fdd8201dSApple OSS Distributions     { IFM_10_STP,   "STP"    },                     \
486*fdd8201dSApple OSS Distributions     { IFM_10_STP,   "10STP"  },                     \
487*fdd8201dSApple OSS Distributions     { IFM_10_FL,    "FL"     },                     \
488*fdd8201dSApple OSS Distributions     { IFM_10_FL,    "10FL"   },                     \
489*fdd8201dSApple OSS Distributions     { IFM_1000_LX,  "1000LX" },                     \
490*fdd8201dSApple OSS Distributions     { IFM_1000_CX,  "1000CX" },                     \
491*fdd8201dSApple OSS Distributions     { IFM_1000_T,   "1000T"  },                     \
492*fdd8201dSApple OSS Distributions     { IFM_HPNA_1,   "HPNA1"  },                     \
493*fdd8201dSApple OSS Distributions     { IFM_10G_SR,   "10GSR"  },                     \
494*fdd8201dSApple OSS Distributions     { IFM_10G_LR,   "10GLR"  },                     \
495*fdd8201dSApple OSS Distributions     { IFM_10G_CX4,  "10GCX4" },                     \
496*fdd8201dSApple OSS Distributions     { IFM_10G_T,    "10GT"   },                     \
497*fdd8201dSApple OSS Distributions     { 0, NULL },                                    \
498*fdd8201dSApple OSS Distributions }
499*fdd8201dSApple OSS Distributions 
500*fdd8201dSApple OSS Distributions #define IFM_SUBTYPE_ETHERNET_OPTION_DESCRIPTIONS {  \
501*fdd8201dSApple OSS Distributions     { 0, NULL },                                    \
502*fdd8201dSApple OSS Distributions }
503*fdd8201dSApple OSS Distributions 
504*fdd8201dSApple OSS Distributions #define IFM_SUBTYPE_TOKENRING_DESCRIPTIONS {        \
505*fdd8201dSApple OSS Distributions     { IFM_TOK_STP4,  "DB9/4Mbit" },                 \
506*fdd8201dSApple OSS Distributions     { IFM_TOK_STP16, "DB9/16Mbit" },                \
507*fdd8201dSApple OSS Distributions     { IFM_TOK_UTP4,  "UTP/4Mbit" },                 \
508*fdd8201dSApple OSS Distributions     { IFM_TOK_UTP16, "UTP/16Mbit" },                \
509*fdd8201dSApple OSS Distributions     { 0, NULL },                                    \
510*fdd8201dSApple OSS Distributions }
511*fdd8201dSApple OSS Distributions 
512*fdd8201dSApple OSS Distributions #define IFM_SUBTYPE_TOKENRING_ALIASES {             \
513*fdd8201dSApple OSS Distributions     { IFM_TOK_STP4,  "4STP" },                      \
514*fdd8201dSApple OSS Distributions     { IFM_TOK_STP16, "16STP" },                     \
515*fdd8201dSApple OSS Distributions     { IFM_TOK_UTP4,  "4UTP" },                      \
516*fdd8201dSApple OSS Distributions     { IFM_TOK_UTP16, "16UTP" },                     \
517*fdd8201dSApple OSS Distributions     { 0, NULL },                                    \
518*fdd8201dSApple OSS Distributions }
519*fdd8201dSApple OSS Distributions 
520*fdd8201dSApple OSS Distributions #define IFM_SUBTYPE_TOKENRING_OPTION_DESCRIPTIONS { \
521*fdd8201dSApple OSS Distributions     { IFM_TOK_ETR,   "EarlyTokenRelease" },         \
522*fdd8201dSApple OSS Distributions     { IFM_TOK_SRCRT, "SourceRouting" },             \
523*fdd8201dSApple OSS Distributions     { IFM_TOK_ALLR,  "AllRoutes" },                 \
524*fdd8201dSApple OSS Distributions     { 0, NULL },                                    \
525*fdd8201dSApple OSS Distributions }
526*fdd8201dSApple OSS Distributions 
527*fdd8201dSApple OSS Distributions #define IFM_SUBTYPE_FDDI_DESCRIPTIONS {             \
528*fdd8201dSApple OSS Distributions     { IFM_FDDI_SMF, "Single-mode" },                \
529*fdd8201dSApple OSS Distributions     { IFM_FDDI_MMF, "Multi-mode" },                 \
530*fdd8201dSApple OSS Distributions     { IFM_FDDI_UTP, "UTP" },                        \
531*fdd8201dSApple OSS Distributions     { 0, NULL },                                    \
532*fdd8201dSApple OSS Distributions }
533*fdd8201dSApple OSS Distributions 
534*fdd8201dSApple OSS Distributions #define IFM_SUBTYPE_FDDI_ALIASES {                  \
535*fdd8201dSApple OSS Distributions     { IFM_FDDI_SMF, "SMF" },                        \
536*fdd8201dSApple OSS Distributions     { IFM_FDDI_MMF, "MMF" },                        \
537*fdd8201dSApple OSS Distributions     { IFM_FDDI_UTP, "CDDI" },                       \
538*fdd8201dSApple OSS Distributions     { 0, NULL },                                    \
539*fdd8201dSApple OSS Distributions }
540*fdd8201dSApple OSS Distributions 
541*fdd8201dSApple OSS Distributions #define IFM_SUBTYPE_FDDI_OPTION_DESCRIPTIONS {      \
542*fdd8201dSApple OSS Distributions     { IFM_FDDI_DA,  "Dual-attach" },                \
543*fdd8201dSApple OSS Distributions     { 0, NULL },                                    \
544*fdd8201dSApple OSS Distributions }
545*fdd8201dSApple OSS Distributions 
546*fdd8201dSApple OSS Distributions #define IFM_SUBTYPE_IEEE80211_DESCRIPTIONS {        \
547*fdd8201dSApple OSS Distributions     { IFM_IEEE80211_FH1,  "FH1"  },                 \
548*fdd8201dSApple OSS Distributions     { IFM_IEEE80211_FH2,  "FH2"  },                 \
549*fdd8201dSApple OSS Distributions     { IFM_IEEE80211_DS1,  "DS1"  },                 \
550*fdd8201dSApple OSS Distributions     { IFM_IEEE80211_DS2,  "DS2"  },                 \
551*fdd8201dSApple OSS Distributions     { IFM_IEEE80211_DS5,  "DS5"  },                 \
552*fdd8201dSApple OSS Distributions     { IFM_IEEE80211_DS11, "DS11" },                 \
553*fdd8201dSApple OSS Distributions     { IFM_IEEE80211_DS22, "DS22" },                 \
554*fdd8201dSApple OSS Distributions     { 0, NULL },                                    \
555*fdd8201dSApple OSS Distributions }
556*fdd8201dSApple OSS Distributions 
557*fdd8201dSApple OSS Distributions #define IFM_SUBTYPE_IEEE80211_OPTION_DESCRIPTIONS { \
558*fdd8201dSApple OSS Distributions     { IFM_IEEE80211_ADHOC,  "adhoc" },              \
559*fdd8201dSApple OSS Distributions     { 0, NULL },                                    \
560*fdd8201dSApple OSS Distributions }
561*fdd8201dSApple OSS Distributions 
562*fdd8201dSApple OSS Distributions #define IFM_SUBTYPE_SHARED_DESCRIPTIONS {           \
563*fdd8201dSApple OSS Distributions     { IFM_AUTO,     "autoselect" },                 \
564*fdd8201dSApple OSS Distributions     { IFM_MANUAL,   "manual" },                     \
565*fdd8201dSApple OSS Distributions     { IFM_NONE,     "none" },                       \
566*fdd8201dSApple OSS Distributions     { 0, NULL },                                    \
567*fdd8201dSApple OSS Distributions }
568*fdd8201dSApple OSS Distributions 
569*fdd8201dSApple OSS Distributions #define IFM_SUBTYPE_SHARED_ALIASES {                \
570*fdd8201dSApple OSS Distributions     { IFM_AUTO,     "auto" },                       \
571*fdd8201dSApple OSS Distributions     { 0, NULL },                                    \
572*fdd8201dSApple OSS Distributions }
573*fdd8201dSApple OSS Distributions 
574*fdd8201dSApple OSS Distributions #define IFM_SHARED_OPTION_DESCRIPTIONS {            \
575*fdd8201dSApple OSS Distributions     { IFM_FDX,      "full-duplex" },                \
576*fdd8201dSApple OSS Distributions     { IFM_HDX,      "half-duplex" },                \
577*fdd8201dSApple OSS Distributions     { IFM_FLOW,     "flow-control" },               \
578*fdd8201dSApple OSS Distributions     { IFM_EEE,	    "energy-efficient-ethernet" },  \
579*fdd8201dSApple OSS Distributions     { IFM_FLAG0,    "flag0" },                      \
580*fdd8201dSApple OSS Distributions     { IFM_FLAG1,    "flag1" },                      \
581*fdd8201dSApple OSS Distributions     { IFM_FLAG2,    "flag2" },                      \
582*fdd8201dSApple OSS Distributions     { IFM_LOOP,     "hw-loopback" },                \
583*fdd8201dSApple OSS Distributions     { 0, NULL },                                    \
584*fdd8201dSApple OSS Distributions }
585*fdd8201dSApple OSS Distributions 
586*fdd8201dSApple OSS Distributions #endif  /* _NET_IF_MEDIA_H_ */
587