Lines Matching +full:2500 +full:base +full:- +full:x
3 /*-
4 * SPDX-License-Identifier: BSD-4-Clause
43 * Prototypes and definitions for BSD/OS-compatible network interface
67 * In-kernel representation of a single supported media type.
72 int ifm_data; /* for driver-specific use */
73 void *ifm_aux; /* for driver-specific use */
82 int ifm_media; /* current user-set media word */
118 * ---- -------
119 * 0-4 Media variant
120 * 5-7 Media type
121 * 8-15 Type specific options (includes added variant bits on Ethernet)
122 * 16-18 Mode (for multi-mode devices)
124 * 20-27 Shared (global) options
125 * 28-31 Instance
135 #define IFM_ETHER_SUBTYPE(x) (((x) & IFM_TMASK) | \ argument
136 (((x) & (IFM_ETH_XTYPE >> IFM_ETH_XSHIFT)) << IFM_ETH_XSHIFT))
137 #define IFM_X(x) IFM_ETHER_SUBTYPE(x) /* internal shorthand */ argument
138 #define IFM_ETHER_SUBTYPE_SET(x) (IFM_ETHER_SUBTYPE(x) | IFM_ETHER) argument
139 #define IFM_ETHER_SUBTYPE_GET(x) ((x) & (IFM_TMASK|IFM_ETH_XTYPE)) argument
140 #define IFM_ETHER_IS_EXTENDED(x) ((x) & IFM_ETH_XTYPE) argument
142 #define IFM_10_T 3 /* 10BaseT - RJ45 */
143 #define IFM_10_2 4 /* 10Base2 - Thinnet */
144 #define IFM_10_5 5 /* 10Base5 - AUI */
145 #define IFM_100_TX 6 /* 100BaseTX - RJ45 */
146 #define IFM_100_FX 7 /* 100BaseFX - Fiber */
147 #define IFM_100_T4 8 /* 100BaseT4 - 4 pair cat 3 */
148 #define IFM_100_VG 9 /* 100VG-AnyLAN */
150 #define IFM_1000_SX 11 /* 1000BaseSX - multi-mode fiber */
152 #define IFM_10_FL 13 /* 10BaseFL - Fiber */
153 #define IFM_1000_LX 14 /* 1000baseLX - single-mode fiber */
154 #define IFM_1000_CX 15 /* 1000baseCX - 150ohm STP */
155 #define IFM_1000_T 16 /* 1000baseT - 4 pair cat 5 */
157 #define IFM_10G_LR 18 /* 10GBase-LR 1310nm Single-mode */
158 #define IFM_10G_SR 19 /* 10GBase-SR 850nm Multi-mode */
160 #define IFM_2500_SX 21 /* 2500BaseSX - multi-mode fiber */
163 #define IFM_10G_LRM 24 /* 10GBase-LRM 850nm Multi-mode */
165 #define IFM_10G_T 26 /* 10GBase-T - RJ45 */
166 #define IFM_40G_CR4 27 /* 40GBase-CR4 */
167 #define IFM_40G_SR4 28 /* 40GBase-SR4 */
168 #define IFM_40G_LR4 29 /* 40GBase-LR4 */
169 #define IFM_1000_KX 30 /* 1000Base-KX backplane */
173 #define IFM_10G_KX4 IFM_X(32) /* 10GBase-KX4 backplane */
174 #define IFM_10G_KR IFM_X(33) /* 10GBase-KR backplane */
175 #define IFM_10G_CR1 IFM_X(34) /* 10GBase-CR1 Twinax splitter */
176 #define IFM_20G_KR2 IFM_X(35) /* 20GBase-KR2 backplane */
177 #define IFM_2500_KX IFM_X(36) /* 2500Base-KX backplane */
178 #define IFM_2500_T IFM_X(37) /* 2500Base-T - RJ45 (NBaseT) */
179 #define IFM_5000_T IFM_X(38) /* 5000Base-T - RJ45 (NBaseT) */
185 #define IFM_1000_CX_SGMII IFM_X(44) /* 1000Base-CX-SGMII */
186 #define IFM_40G_KR4 IFM_X(45) /* 40GBase-KR4 */
187 #define IFM_10G_ER IFM_X(46) /* 10GBase-ER */
188 #define IFM_100G_CR4 IFM_X(47) /* 100GBase-CR4 */
189 #define IFM_100G_SR4 IFM_X(48) /* 100GBase-SR4 */
190 #define IFM_100G_KR4 IFM_X(49) /* 100GBase-KR4 */
191 #define IFM_100G_LR4 IFM_X(50) /* 100GBase-LR4 */
192 #define IFM_56G_R4 IFM_X(51) /* 56GBase-R4 */
193 #define IFM_100_T IFM_X(52) /* 100BaseT - RJ45 */
194 #define IFM_25G_CR IFM_X(53) /* 25GBase-CR */
195 #define IFM_25G_KR IFM_X(54) /* 25GBase-KR */
196 #define IFM_25G_SR IFM_X(55) /* 25GBase-SR */
197 #define IFM_50G_CR2 IFM_X(56) /* 50GBase-CR2 */
198 #define IFM_50G_KR2 IFM_X(57) /* 50GBase-KR2 */
199 #define IFM_25G_LR IFM_X(58) /* 25GBase-LR */
204 #define IFM_2500_X IFM_X(63) /* 2500BaseX */
205 #define IFM_5000_KR IFM_X(64) /* 5GBase-KR backplane */
206 #define IFM_25G_T IFM_X(65) /* 25GBase-T - RJ45 */
207 #define IFM_25G_CR_S IFM_X(66) /* 25GBase-CR (short) */
208 #define IFM_25G_CR1 IFM_X(67) /* 25GBase-CR1 DA cable */
209 #define IFM_25G_KR_S IFM_X(68) /* 25GBase-KR (short) */
210 #define IFM_5000_KR_S IFM_X(69) /* 5GBase-KR backplane (short) */
211 #define IFM_5000_KR1 IFM_X(70) /* 5GBase-KR backplane */
212 #define IFM_25G_AUI IFM_X(71) /* 25G-AUI-C2C (chip to chip) */
213 #define IFM_40G_XLAUI IFM_X(72) /* 40G-XLAUI */
215 #define IFM_40G_ER4 IFM_X(74) /* 40GBase-ER4 */
216 #define IFM_50G_SR2 IFM_X(75) /* 50GBase-SR2 */
217 #define IFM_50G_LR2 IFM_X(76) /* 50GBase-LR2 */
219 #define IFM_50G_LAUI2 IFM_X(78) /* 50G-LAUI2 */
221 #define IFM_50G_AUI2 IFM_X(80) /* 50G-AUI2 */
222 #define IFM_50G_CP IFM_X(81) /* 50GBase-CP */
223 #define IFM_50G_SR IFM_X(82) /* 50GBase-SR */
224 #define IFM_50G_LR IFM_X(83) /* 50GBase-LR */
225 #define IFM_50G_FR IFM_X(84) /* 50GBase-FR */
226 #define IFM_50G_KR_PAM4 IFM_X(85) /* 50GBase-KR PAM4 */
227 #define IFM_25G_KR1 IFM_X(86) /* 25GBase-KR1 */
229 #define IFM_50G_AUI1 IFM_X(88) /* 50G-AUI1 */
230 #define IFM_100G_CAUI4_AC IFM_X(89) /* 100G-CAUI4 active copper/optical */
231 #define IFM_100G_CAUI4 IFM_X(90) /* 100G-CAUI4 */
232 #define IFM_100G_AUI4_AC IFM_X(91) /* 100G-AUI4 active copper/optical */
233 #define IFM_100G_AUI4 IFM_X(92) /* 100G-AUI4 */
234 #define IFM_100G_CR_PAM4 IFM_X(93) /* 100GBase-CR PAM4 */
235 #define IFM_100G_KR_PAM4 IFM_X(94) /* 100GBase-CR PAM4 */
236 #define IFM_100G_CP2 IFM_X(95) /* 100GBase-CP2 */
237 #define IFM_100G_SR2 IFM_X(96) /* 100GBase-SR2 */
238 #define IFM_100G_DR IFM_X(97) /* 100GBase-DR */
239 #define IFM_100G_KR2_PAM4 IFM_X(98) /* 100GBase-KR2 PAM4 */
240 #define IFM_100G_CAUI2_AC IFM_X(99) /* 100G-CAUI2 active copper/optical */
241 #define IFM_100G_CAUI2 IFM_X(100) /* 100G-CAUI2 */
242 #define IFM_100G_AUI2_AC IFM_X(101) /* 100G-AUI2 active copper/optical */
243 #define IFM_100G_AUI2 IFM_X(102) /* 100G-AUI2 */
244 #define IFM_200G_CR4_PAM4 IFM_X(103) /* 200GBase-CR4 PAM4 */
245 #define IFM_200G_SR4 IFM_X(104) /* 200GBase-SR4 */
246 #define IFM_200G_FR4 IFM_X(105) /* 200GBase-FR4 */
247 #define IFM_200G_LR4 IFM_X(106) /* 200GBase-LR4 */
248 #define IFM_200G_DR4 IFM_X(107) /* 200GBase-DR4 */
249 #define IFM_200G_KR4_PAM4 IFM_X(108) /* 200GBase-KR4 PAM4 */
250 #define IFM_200G_AUI4_AC IFM_X(109) /* 200G-AUI4 active copper/optical */
251 #define IFM_200G_AUI4 IFM_X(110) /* 200G-AUI4 */
252 #define IFM_200G_AUI8_AC IFM_X(111) /* 200G-AUI8 active copper/optical */
253 #define IFM_200G_AUI8 IFM_X(112) /* 200G-AUI8 */
254 #define IFM_400G_FR8 IFM_X(113) /* 400GBase-FR8 */
255 #define IFM_400G_LR8 IFM_X(114) /* 400GBase-LR8 */
256 #define IFM_400G_DR4 IFM_X(115) /* 400GBase-DR4 */
257 #define IFM_400G_AUI8_AC IFM_X(116) /* 400G-AUI8 active copper/optical */
258 #define IFM_400G_AUI8 IFM_X(117) /* 400G-AUI8 */
259 #define IFM_50G_KR4 IFM_X(118) /* 50GBase-KR4 */
260 #define IFM_40G_LM4 IFM_X(119) /* 40GBase-LM4 */
261 #define IFM_1000_BX IFM_X(120) /* 1000Base-BX */
314 /* operating mode for multi-mode devices */
343 * Shared media sub-types
364 #define IFM_TMASK 0x0000001f /* Media sub-type */
393 #define IFM_TYPE(x) ((x) & IFM_NMASK) argument
394 #define IFM_SUBTYPE(x) \ argument
395 (IFM_TYPE(x) == IFM_ETHER ? IFM_ETHER_SUBTYPE_GET(x) : ((x) & IFM_TMASK))
396 #define IFM_TYPE_MATCH(x,y) \ argument
397 (IFM_TYPE(x) == IFM_TYPE(y) && IFM_SUBTYPE(x) == IFM_SUBTYPE(y))
398 #define IFM_TYPE_OPTIONS(x) ((x) & IFM_OMASK) argument
399 #define IFM_INST(x) (((x) & IFM_IMASK) >> IFM_ISHIFT) argument
400 #define IFM_OPTIONS(x) ((x) & (IFM_OMASK | IFM_GMASK)) argument
401 #define IFM_MODE(x) ((x) & IFM_MMASK) argument
417 * NOTE: all but the top-level type descriptions must contain NO whitespace!
449 { IFM_10G_LR, "10Gbase-LR" }, \
450 { IFM_10G_SR, "10Gbase-SR" }, \
451 { IFM_10G_CX4, "10Gbase-CX4" }, \
452 { IFM_2500_SX, "2500BaseSX" }, \
453 { IFM_10G_LRM, "10Gbase-LRM" }, \
454 { IFM_10G_TWINAX, "10Gbase-Twinax" }, \
455 { IFM_10G_TWINAX_LONG, "10Gbase-Twinax-Long" }, \
457 { IFM_10G_T, "10Gbase-T" }, \
458 { IFM_40G_CR4, "40Gbase-CR4" }, \
459 { IFM_40G_SR4, "40Gbase-SR4" }, \
460 { IFM_40G_LR4, "40Gbase-LR4" }, \
461 { IFM_40G_LM4, "40GBase-LM4" }, \
462 { IFM_1000_KX, "1000Base-KX" }, \
464 { IFM_10G_KX4, "10GBase-KX4" }, \
465 { IFM_10G_KR, "10GBase-KR" }, \
466 { IFM_10G_CR1, "10GBase-CR1" }, \
467 { IFM_20G_KR2, "20GBase-KR2" }, \
468 { IFM_2500_KX, "2500Base-KX" }, \
469 { IFM_2500_T, "2500Base-T" }, \
470 { IFM_5000_T, "5000Base-T" }, \
471 { IFM_50G_PCIE, "PCIExpress-50G" }, \
472 { IFM_25G_PCIE, "PCIExpress-25G" }, \
473 { IFM_1000_SGMII, "1000Base-SGMII" }, \
474 { IFM_10G_SFI, "10GBase-SFI" }, \
475 { IFM_40G_XLPPI, "40GBase-XLPPI" }, \
476 { IFM_1000_CX_SGMII, "1000Base-CX-SGMII" }, \
477 { IFM_40G_KR4, "40GBase-KR4" }, \
478 { IFM_10G_ER, "10GBase-ER" }, \
479 { IFM_100G_CR4, "100GBase-CR4" }, \
480 { IFM_100G_SR4, "100GBase-SR4" }, \
481 { IFM_100G_KR4, "100GBase-KR4" }, \
482 { IFM_100G_LR4, "100GBase-LR4" }, \
483 { IFM_56G_R4, "56GBase-R4" }, \
485 { IFM_25G_CR, "25GBase-CR" }, \
486 { IFM_25G_KR, "25GBase-KR" }, \
487 { IFM_25G_SR, "25GBase-SR" }, \
488 { IFM_50G_CR2, "50GBase-CR2" }, \
489 { IFM_50G_KR2, "50GBase-KR2" }, \
490 { IFM_50G_KR4, "50GBase-KR4" }, \
491 { IFM_25G_LR, "25GBase-LR" }, \
492 { IFM_10G_AOC, "10GBase-AOC" }, \
493 { IFM_25G_ACC, "25GBase-ACC" }, \
494 { IFM_25G_AOC, "25GBase-AOC" }, \
495 { IFM_100_SGMII, "100M-SGMII" }, \
496 { IFM_2500_X, "2500Base-X" }, \
497 { IFM_5000_KR, "5000Base-KR" }, \
498 { IFM_25G_T, "25GBase-T" }, \
499 { IFM_25G_CR_S, "25GBase-CR-S" }, \
500 { IFM_25G_CR1, "25GBase-CR1" }, \
501 { IFM_25G_KR_S, "25GBase-KR-S" }, \
502 { IFM_5000_KR_S, "5000Base-KR-S" }, \
503 { IFM_5000_KR1, "5000Base-KR1" }, \
504 { IFM_25G_AUI, "25G-AUI" }, \
505 { IFM_40G_XLAUI, "40G-XLAUI" }, \
506 { IFM_40G_XLAUI_AC, "40G-XLAUI-AC" }, \
507 { IFM_40G_ER4, "40GBase-ER4" }, \
508 { IFM_50G_SR2, "50GBase-SR2" }, \
509 { IFM_50G_LR2, "50GBase-LR2" }, \
510 { IFM_50G_LAUI2_AC, "50G-LAUI2-AC" }, \
511 { IFM_50G_LAUI2, "50G-LAUI2" }, \
512 { IFM_50G_AUI2_AC, "50G-AUI2-AC" }, \
513 { IFM_50G_AUI2, "50G-AUI2" }, \
514 { IFM_50G_CP, "50GBase-CP" }, \
515 { IFM_50G_SR, "50GBase-SR" }, \
516 { IFM_50G_LR, "50GBase-LR" }, \
517 { IFM_50G_FR, "50GBase-FR" }, \
518 { IFM_50G_KR_PAM4, "50GBase-KR-PAM4" }, \
519 { IFM_25G_KR1, "25GBase-KR1" }, \
520 { IFM_50G_AUI1_AC, "50G-AUI1-AC" }, \
521 { IFM_50G_AUI1, "50G-AUI1" }, \
522 { IFM_100G_CAUI4_AC, "100G-CAUI4-AC" }, \
523 { IFM_100G_CAUI4, "100G-CAUI4" }, \
524 { IFM_100G_AUI4_AC, "100G-AUI4-AC" }, \
525 { IFM_100G_AUI4, "100G-AUI4" }, \
526 { IFM_100G_CR_PAM4, "100GBase-CR-PAM4" }, \
527 { IFM_100G_KR_PAM4, "100GBase-KR-PAM4" }, \
528 { IFM_100G_CP2, "100GBase-CP2" }, \
529 { IFM_100G_SR2, "100GBase-SR2" }, \
530 { IFM_100G_DR, "100GBase-DR" }, \
531 { IFM_100G_KR2_PAM4, "100GBase-KR2-PAM4" }, \
532 { IFM_100G_CAUI2_AC, "100G-CAUI2-AC" }, \
533 { IFM_100G_CAUI2, "100G-CAUI2" }, \
534 { IFM_100G_AUI2_AC, "100G-AUI2-AC" }, \
535 { IFM_100G_AUI2, "100G-AUI2" }, \
536 { IFM_200G_CR4_PAM4, "200GBase-CR4-PAM4" }, \
537 { IFM_200G_SR4, "200GBase-SR4" }, \
538 { IFM_200G_FR4, "200GBase-FR4" }, \
539 { IFM_200G_LR4, "200GBase-LR4" }, \
540 { IFM_200G_DR4, "200GBase-DR4" }, \
541 { IFM_200G_KR4_PAM4, "200GBase-KR4-PAM4" }, \
542 { IFM_200G_AUI4_AC, "200G-AUI4-AC" }, \
543 { IFM_200G_AUI4, "200G-AUI4" }, \
544 { IFM_200G_AUI8_AC, "200G-AUI8-AC" }, \
545 { IFM_200G_AUI8, "200G-AUI8" }, \
546 { IFM_400G_FR8, "400GBase-FR8" }, \
547 { IFM_400G_LR8, "400GBase-LR8" }, \
548 { IFM_400G_DR4, "400GBase-DR4" }, \
549 { IFM_400G_AUI8_AC, "400G-AUI8-AC" }, \
550 { IFM_400G_AUI8, "400G-AUI8" }, \
574 { IFM_2500_SX, "2500SX" }, \
580 { IFM_10_T | IFM_FDX, "10baseT-FDX" }, \
581 { IFM_10_T | IFM_FDX | IFM_FLOW, "10baseT-FDX-flow" }, \
582 { IFM_100_TX | IFM_FDX, "100baseTX-FDX" }, \
583 { IFM_100_TX | IFM_FDX | IFM_FLOW, "100baseTX-FDX-flow" }, \
584 { IFM_1000_T | IFM_FDX, "1000baseT-FDX" }, \
585 { IFM_1000_T | IFM_FDX | IFM_FLOW, "1000baseT-FDX-flow" }, \
587 "1000baseT-FDX-flow-master" }, \
589 "1000baseT-FDX-master" }, \
590 { IFM_1000_T | IFM_ETH_MASTER, "1000baseT-master" }, \
703 { IFM_ATM_MM_155, "Multi-mode/155MBit" }, \
704 { IFM_ATM_SM_155, "Single-mode/155MBit" }, \
706 { IFM_ATM_MM_622, "Multi-mode/622MBit" }, \
707 { IFM_ATM_SM_622, "Single-mode/622MBit" }, \
714 { IFM_ATM_UTP_25, "UTP-25" }, \
715 { IFM_ATM_TAXI_100, "TAXI-100" }, \
716 { IFM_ATM_TAXI_140, "TAXI-140" }, \
717 { IFM_ATM_MM_155, "MM-155" }, \
718 { IFM_ATM_SM_155, "SM-155" }, \
719 { IFM_ATM_UTP_155, "UTP-155" }, \
720 { IFM_ATM_MM_622, "MM-622" }, \
721 { IFM_ATM_SM_622, "SM-622" }, \
747 { IFM_AUTO | IFM_FLOW, "auto-flow" }, \
753 { IFM_FDX, "full-duplex" }, \
754 { IFM_HDX, "half-duplex" }, \
759 { IFM_LOOP, "hw-loopback" }, \
800 { IFM_ETHER | IFM_2500_SX, IF_Mbps(2500ULL) }, \
814 { IFM_ETHER | IFM_2500_KX, IF_Mbps(2500ULL) }, \
815 { IFM_ETHER | IFM_2500_T, IF_Mbps(2500ULL) }, \
842 { IFM_ETHER | IFM_2500_X, IF_Mbps(2500ULL) }, \
929 (ifms)->ifms_string[((ifms)->ifms_bit & (bit)) ? 1 : 0]