Changeset View
Changeset View
Standalone View
Standalone View
sys/net/if_media.h
Show First 20 Lines • Show All 123 Lines • ▼ Show 20 Lines | |||||
* 20-27 Shared (global) options | * 20-27 Shared (global) options | ||||
* 28-31 Instance | * 28-31 Instance | ||||
*/ | */ | ||||
/* | /* | ||||
* Ethernet | * Ethernet | ||||
*/ | */ | ||||
#define IFM_ETHER 0x00000020 | #define IFM_ETHER 0x00000020 | ||||
#define IFM_ETHER_SUBTYPE_SET(x) (((x) & 0x1f) | (((x) & 0x1e0) << 6) | IFM_ETHER) | |||||
#define IFM_ETHER_SUBTYPE_GET(x) (((x) & 0x1f) | (((x) & 0x7800) >> 6)) | |||||
#define IFM_10_T 3 /* 10BaseT - RJ45 */ | #define IFM_10_T 3 /* 10BaseT - RJ45 */ | ||||
#define IFM_10_2 4 /* 10Base2 - Thinnet */ | #define IFM_10_2 4 /* 10Base2 - Thinnet */ | ||||
#define IFM_10_5 5 /* 10Base5 - AUI */ | #define IFM_10_5 5 /* 10Base5 - AUI */ | ||||
#define IFM_100_TX 6 /* 100BaseTX - RJ45 */ | #define IFM_100_TX 6 /* 100BaseTX - RJ45 */ | ||||
#define IFM_100_FX 7 /* 100BaseFX - Fiber */ | #define IFM_100_FX 7 /* 100BaseFX - Fiber */ | ||||
#define IFM_100_T4 8 /* 100BaseT4 - 4 pair cat 3 */ | #define IFM_100_T4 8 /* 100BaseT4 - 4 pair cat 3 */ | ||||
#define IFM_100_VG 9 /* 100VG-AnyLAN */ | #define IFM_100_VG 9 /* 100VG-AnyLAN */ | ||||
#define IFM_100_T2 10 /* 100BaseT2 */ | #define IFM_100_T2 10 /* 100BaseT2 */ | ||||
Show All 11 Lines | |||||
#define IFM_10G_TWINAX 22 /* 10GBase Twinax copper */ | #define IFM_10G_TWINAX 22 /* 10GBase Twinax copper */ | ||||
#define IFM_10G_TWINAX_LONG 23 /* 10GBase Twinax Long copper */ | #define IFM_10G_TWINAX_LONG 23 /* 10GBase Twinax Long copper */ | ||||
#define IFM_10G_LRM 24 /* 10GBase-LRM 850nm Multi-mode */ | #define IFM_10G_LRM 24 /* 10GBase-LRM 850nm Multi-mode */ | ||||
#define IFM_UNKNOWN 25 /* media types not defined yet */ | #define IFM_UNKNOWN 25 /* media types not defined yet */ | ||||
#define IFM_10G_T 26 /* 10GBase-T - RJ45 */ | #define IFM_10G_T 26 /* 10GBase-T - RJ45 */ | ||||
#define IFM_40G_CR4 27 /* 40GBase-CR4 */ | #define IFM_40G_CR4 27 /* 40GBase-CR4 */ | ||||
#define IFM_40G_SR4 28 /* 40GBase-SR4 */ | #define IFM_40G_SR4 28 /* 40GBase-SR4 */ | ||||
#define IFM_40G_LR4 29 /* 40GBase-LR4 */ | #define IFM_40G_LR4 29 /* 40GBase-LR4 */ | ||||
#define IFM_VFAST 30 /* test "V.fast" */ | |||||
#define IFM_1000_KX 31 /* 1000Base-KX backplane */ | |||||
#define IFM_10G_KX4 32 /* 10GBase-KX4 backplane */ | |||||
#define IFM_10G_KR 33 /* 10GBase-KR backplane */ | |||||
#define IFM_10G_CR1 34 /* 10GBase-CR1 Twinax splitter */ | |||||
#define IFM_20G_KR2 35 /* 20GBase-KR2 backplane */ | |||||
#define IFM_2500_KX 36 /* 2500Base-KX backplane */ | |||||
#define IFM_2500_T 37 /* 2500Base-T - RJ45 (NBaseT) */ | |||||
#define IFM_5000_T 38 /* 5000Base-T - RJ45 (NBaseT) */ | |||||
#define IFM_50G_PCIE 39 /* 50G Ethernet over PCIE */ | |||||
#define IFM_25G_PCIE 40 /* 25G Ethernet over PCIE */ | |||||
#define IFM_1000_SGMII 41 /* 1G media interface */ | |||||
#define IFM_10G_SFI 42 /* 10G media interface */ | |||||
#define IFM_40G_XLPPI 43 /* 40G media interface */ | |||||
#define IFM_1000_CX_SGMII 44 /* 1000Base-CX-SGMII */ | |||||
#define IFM_40G_KR4 45 /* 40GBase-KR4 */ | |||||
#define IFM_10G_ER 46 /* 10GBase-ER */ | |||||
#define IFM_100G_CR4 47 /* 100GBase-CR4 */ | |||||
#define IFM_100G_SR4 48 /* 100GBase-SR4 */ | |||||
#define IFM_100G_KR4 49 /* 100GBase-KR4 */ | |||||
#define IFM_100G_LR4 50 /* 100GBase-LR4 */ | |||||
#define IFM_56G_R4 51 /* 56GBase-R4 */ | |||||
#define IFM_100_T 52 /* 100BaseT - RJ45 */ | |||||
#define IFM_25G_CR 53 /* 25GBase-CR */ | |||||
#define IFM_25G_KR 54 /* 25GBase-KR */ | |||||
#define IFM_25G_SR 55 /* 25GBase-SR */ | |||||
#define IFM_50G_CR2 56 /* 50GBase-CR2 */ | |||||
#define IFM_50G_KR2 57 /* 50GBase-KR2 */ | |||||
/* | /* | ||||
* Please update ieee8023ad_lacp.c:lacp_compose_key() | * Please update ieee8023ad_lacp.c:lacp_compose_key() | ||||
* after adding new Ethernet media types. | * after adding new Ethernet media types. | ||||
*/ | */ | ||||
/* note 31 is the max! */ | /* Note 0x1ff is the max! */ | ||||
#define IFM_ETH_MASTER 0x00000100 /* master mode (1000baseT) */ | #define IFM_ETH_MASTER 0x00000100 /* master mode (1000baseT) */ | ||||
#define IFM_ETH_RXPAUSE 0x00000200 /* receive PAUSE frames */ | #define IFM_ETH_RXPAUSE 0x00000200 /* receive PAUSE frames */ | ||||
#define IFM_ETH_TXPAUSE 0x00000400 /* transmit PAUSE frames */ | #define IFM_ETH_TXPAUSE 0x00000400 /* transmit PAUSE frames */ | ||||
/* | /* | ||||
* Token ring | * Token ring | ||||
*/ | */ | ||||
▲ Show 20 Lines • Show All 130 Lines • ▼ Show 20 Lines | #define IFM_STATUS_VALID_LIST { \ | ||||
IFM_AVALID, \ | IFM_AVALID, \ | ||||
0 \ | 0 \ | ||||
} | } | ||||
/* | /* | ||||
* Macros to extract various bits of information from the media word. | * Macros to extract various bits of information from the media word. | ||||
*/ | */ | ||||
#define IFM_TYPE(x) ((x) & IFM_NMASK) | #define IFM_TYPE(x) ((x) & IFM_NMASK) | ||||
#define IFM_SUBTYPE(x) ((x) & IFM_TMASK) | #define IFM_SUBTYPE(x) \ | ||||
(IFM_TYPE(x) == IFM_ETHER ? IFM_ETHER_SUBTYPE_GET(x) : ((x) & IFM_TMASK)) | |||||
#define IFM_TYPE_MATCH(x,y) \ | |||||
(IFM_TYPE(x) == IFM_TYPE(y) && IFM_SUBTYPE(x) == IFM_SUBTYPE(y)) | |||||
#define IFM_TYPE_OPTIONS(x) ((x) & IFM_OMASK) | #define IFM_TYPE_OPTIONS(x) ((x) & IFM_OMASK) | ||||
#define IFM_INST(x) (((x) & IFM_IMASK) >> IFM_ISHIFT) | #define IFM_INST(x) (((x) & IFM_IMASK) >> IFM_ISHIFT) | ||||
#define IFM_OPTIONS(x) ((x) & (IFM_OMASK | IFM_GMASK)) | #define IFM_OPTIONS(x) ((x) & (IFM_OMASK | IFM_GMASK)) | ||||
#define IFM_MODE(x) ((x) & IFM_MMASK) | #define IFM_MODE(x) ((x) & IFM_MMASK) | ||||
#define IFM_INST_MAX IFM_INST(IFM_IMASK) | #define IFM_INST_MAX IFM_INST(IFM_IMASK) | ||||
/* | /* | ||||
▲ Show 20 Lines • Show All 48 Lines • ▼ Show 20 Lines | #define IFM_SUBTYPE_ETHERNET_DESCRIPTIONS { \ | ||||
{ IFM_10G_LRM, "10Gbase-LRM" }, \ | { IFM_10G_LRM, "10Gbase-LRM" }, \ | ||||
{ IFM_10G_TWINAX, "10Gbase-Twinax" }, \ | { IFM_10G_TWINAX, "10Gbase-Twinax" }, \ | ||||
{ IFM_10G_TWINAX_LONG, "10Gbase-Twinax-Long" }, \ | { IFM_10G_TWINAX_LONG, "10Gbase-Twinax-Long" }, \ | ||||
{ IFM_UNKNOWN, "Unknown" }, \ | { IFM_UNKNOWN, "Unknown" }, \ | ||||
{ IFM_10G_T, "10Gbase-T" }, \ | { IFM_10G_T, "10Gbase-T" }, \ | ||||
{ IFM_40G_CR4, "40Gbase-CR4" }, \ | { IFM_40G_CR4, "40Gbase-CR4" }, \ | ||||
{ IFM_40G_SR4, "40Gbase-SR4" }, \ | { IFM_40G_SR4, "40Gbase-SR4" }, \ | ||||
{ IFM_40G_LR4, "40Gbase-LR4" }, \ | { IFM_40G_LR4, "40Gbase-LR4" }, \ | ||||
{ IFM_VFAST, "V.fast" }, \ | |||||
{ IFM_1000_KX, "1000Base-KX" }, \ | |||||
{ IFM_10G_KX4, "10GBase-KX4" }, \ | |||||
{ IFM_10G_KR, "10GBase-KR" }, \ | |||||
{ IFM_10G_CR1, "10GBase-CR1" }, \ | |||||
{ IFM_20G_KR2, "20GBase-KR2" }, \ | |||||
{ IFM_2500_KX, "2500Base-KX" }, \ | |||||
{ IFM_2500_T, "2500Base-T" }, \ | |||||
{ IFM_5000_T, "5000Base-T" }, \ | |||||
{ IFM_50G_PCIE, "PCIExpress-50G" }, \ | |||||
{ IFM_25G_PCIE, "PCIExpress-25G" }, \ | |||||
{ IFM_1000_SGMII, "1000Base-SGMII" }, \ | |||||
{ IFM_10G_SFI, "10GBase-SFI" }, \ | |||||
{ IFM_40G_XLPPI, "40GBase-XLPPI" }, \ | |||||
{ IFM_1000_CX_SGMII, "1000Base-CX-SGMII" }, \ | |||||
{ IFM_40G_KR4, "40GBase-KR4" }, \ | |||||
{ IFM_10G_ER, "10GBase-ER" }, \ | |||||
{ IFM_100G_CR4, "100GBase-CR4" }, \ | |||||
{ IFM_100G_SR4, "100GBase-SR4" }, \ | |||||
{ IFM_100G_KR4, "100GBase-KR4" }, \ | |||||
{ IFM_10G_ER, "10GBase-ER" }, \ | |||||
{ IFM_100G_CR4, "100GBase-CR4" }, \ | |||||
{ IFM_100G_SR4, "100GBase-SR4" }, \ | |||||
{ IFM_100G_KR4, "100GBase-KR4" }, \ | |||||
{ IFM_100G_LR4, "100GBase-LR4" }, \ | |||||
{ IFM_56G_R4, "56GBase-R4" }, \ | |||||
{ IFM_100_T, "100BaseT" }, \ | |||||
{ IFM_25G_CR, "25GBase-CR" }, \ | |||||
{ IFM_25G_KR, "25GBase-KR" }, \ | |||||
{ IFM_25G_SR, "25GBase-SR" }, \ | |||||
{ IFM_50G_CR2, "50GBase-CR2" }, \ | |||||
{ IFM_50G_KR2, "50GBase-KR2" }, \ | |||||
{ 0, NULL }, \ | { 0, NULL }, \ | ||||
} | } | ||||
#define IFM_SUBTYPE_ETHERNET_ALIASES { \ | #define IFM_SUBTYPE_ETHERNET_ALIASES { \ | ||||
{ IFM_10_T, "10baseT" }, \ | { IFM_10_T, "10baseT" }, \ | ||||
{ IFM_10_T, "UTP" }, \ | { IFM_10_T, "UTP" }, \ | ||||
{ IFM_10_T, "10UTP" }, \ | { IFM_10_T, "10UTP" }, \ | ||||
{ IFM_10_2, "BNC" }, \ | { IFM_10_2, "BNC" }, \ | ||||
▲ Show 20 Lines • Show All 285 Lines • ▼ Show 20 Lines | #define IFM_BAUDRATE_DESCRIPTIONS { \ | ||||
{ IFM_ETHER | IFM_2500_SX, IF_Mbps(2500ULL) }, \ | { IFM_ETHER | IFM_2500_SX, IF_Mbps(2500ULL) }, \ | ||||
{ IFM_ETHER | IFM_10G_TWINAX, IF_Gbps(10ULL) }, \ | { IFM_ETHER | IFM_10G_TWINAX, IF_Gbps(10ULL) }, \ | ||||
{ IFM_ETHER | IFM_10G_TWINAX_LONG, IF_Gbps(10ULL) }, \ | { IFM_ETHER | IFM_10G_TWINAX_LONG, IF_Gbps(10ULL) }, \ | ||||
{ IFM_ETHER | IFM_10G_LRM, IF_Gbps(10ULL) }, \ | { IFM_ETHER | IFM_10G_LRM, IF_Gbps(10ULL) }, \ | ||||
{ IFM_ETHER | IFM_10G_T, IF_Gbps(10ULL) }, \ | { IFM_ETHER | IFM_10G_T, IF_Gbps(10ULL) }, \ | ||||
{ IFM_ETHER | IFM_40G_CR4, IF_Gbps(40ULL) }, \ | { IFM_ETHER | IFM_40G_CR4, IF_Gbps(40ULL) }, \ | ||||
{ IFM_ETHER | IFM_40G_SR4, IF_Gbps(40ULL) }, \ | { IFM_ETHER | IFM_40G_SR4, IF_Gbps(40ULL) }, \ | ||||
{ IFM_ETHER | IFM_40G_LR4, IF_Gbps(40ULL) }, \ | { IFM_ETHER | IFM_40G_LR4, IF_Gbps(40ULL) }, \ | ||||
{ IFM_ETHER_SUBTYPE_SET(IFM_VFAST), IF_Gbps(40ULL) }, \ | |||||
{ IFM_ETHER_SUBTYPE_SET(IFM_1000_KX), IF_Mbps(1000) }, \ | |||||
{ IFM_ETHER_SUBTYPE_SET(IFM_10G_KX4), IF_Gbps(10ULL) }, \ | |||||
{ IFM_ETHER_SUBTYPE_SET(IFM_10G_KR), IF_Gbps(10ULL) }, \ | |||||
{ IFM_ETHER_SUBTYPE_SET(IFM_10G_CR1), IF_Gbps(10ULL) }, \ | |||||
{ IFM_ETHER_SUBTYPE_SET(IFM_20G_KR2), IF_Gbps(20ULL) }, \ | |||||
{ IFM_ETHER_SUBTYPE_SET(IFM_2500_KX), IF_Mbps(2500) }, \ | |||||
{ IFM_ETHER_SUBTYPE_SET(IFM_2500_T), IF_Mbps(2500) }, \ | |||||
{ IFM_ETHER_SUBTYPE_SET(IFM_5000_T), IF_Mbps(5000) }, \ | |||||
{ IFM_ETHER_SUBTYPE_SET(IFM_50G_PCIE), IF_Gbps(50ULL) }, \ | |||||
{ IFM_ETHER_SUBTYPE_SET(IFM_25G_PCIE), IF_Gbps(25ULL) }, \ | |||||
{ IFM_ETHER_SUBTYPE_SET(IFM_1000_SGMII), IF_Mbps(1000) }, \ | |||||
{ IFM_ETHER_SUBTYPE_SET(IFM_10G_SFI), IF_Gbps(10ULL) }, \ | |||||
{ IFM_ETHER_SUBTYPE_SET(IFM_40G_XLPPI), IF_Gbps(40ULL) }, \ | |||||
{ IFM_ETHER_SUBTYPE_SET(IFM_1000_CX_SGMII), IF_Mbps(1000) }, \ | |||||
{ IFM_ETHER_SUBTYPE_SET(IFM_40G_KR4), IF_Gbps(40ULL) }, \ | |||||
{ IFM_ETHER_SUBTYPE_SET(IFM_10G_ER), IF_Gbps(10ULL) }, \ | |||||
{ IFM_ETHER_SUBTYPE_SET(IFM_100G_CR4), IF_Gbps(100ULL) }, \ | |||||
{ IFM_ETHER_SUBTYPE_SET(IFM_100G_SR4), IF_Gbps(100ULL) }, \ | |||||
{ IFM_ETHER_SUBTYPE_SET(IFM_100G_KR4), IF_Gbps(100ULL) }, \ | |||||
{ IFM_ETHER_SUBTYPE_SET(IFM_100G_LR4), IF_Gbps(100ULL) }, \ | |||||
{ IFM_ETHER_SUBTYPE_SET(IFM_56G_R4), IF_Gbps(56ULL) }, \ | |||||
{ IFM_ETHER_SUBTYPE_SET(IFM_100_T), IF_Mbps(100ULL) }, \ | |||||
{ IFM_ETHER_SUBTYPE_SET(IFM_25G_CR), IF_Gbps(25ULL) }, \ | |||||
{ IFM_ETHER_SUBTYPE_SET(IFM_25G_KR), IF_Gbps(25ULL) }, \ | |||||
{ IFM_ETHER_SUBTYPE_SET(IFM_25G_SR), IF_Gbps(25ULL) }, \ | |||||
{ IFM_ETHER_SUBTYPE_SET(IFM_50G_CR2), IF_Gbps(50ULL) }, \ | |||||
{ IFM_ETHER_SUBTYPE_SET(IFM_50G_KR2), IF_Gbps(50ULL) }, \ | |||||
\ | \ | ||||
{ IFM_TOKEN | IFM_TOK_STP4, IF_Mbps(4) }, \ | { IFM_TOKEN | IFM_TOK_STP4, IF_Mbps(4) }, \ | ||||
{ IFM_TOKEN | IFM_TOK_STP16, IF_Mbps(16) }, \ | { IFM_TOKEN | IFM_TOK_STP16, IF_Mbps(16) }, \ | ||||
{ IFM_TOKEN | IFM_TOK_UTP4, IF_Mbps(4) }, \ | { IFM_TOKEN | IFM_TOK_UTP4, IF_Mbps(4) }, \ | ||||
{ IFM_TOKEN | IFM_TOK_UTP16, IF_Mbps(16) }, \ | { IFM_TOKEN | IFM_TOK_UTP16, IF_Mbps(16) }, \ | ||||
\ | \ | ||||
{ IFM_FDDI | IFM_FDDI_SMF, IF_Mbps(100) }, \ | { IFM_FDDI | IFM_FDDI_SMF, IF_Mbps(100) }, \ | ||||
{ IFM_FDDI | IFM_FDDI_MMF, IF_Mbps(100) }, \ | { IFM_FDDI | IFM_FDDI_MMF, IF_Mbps(100) }, \ | ||||
▲ Show 20 Lines • Show All 50 Lines • Show Last 20 Lines |