Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F167220500
D2056.id4197.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
5 KB
Referenced Files
None
Subscribers
None
D2056.id4197.diff
View Options
Index: sys/dev/virtio/network/if_vtnet.c
===================================================================
--- sys/dev/virtio/network/if_vtnet.c
+++ sys/dev/virtio/network/if_vtnet.c
@@ -938,6 +938,7 @@
ifmedia_init(&sc->vtnet_media, IFM_IMASK, vtnet_ifmedia_upd,
vtnet_ifmedia_sts);
ifmedia_add(&sc->vtnet_media, VTNET_MEDIATYPE, 0, NULL);
+ ifmedia_add(&sc->vtnet_media, IFM_ETHER_SUBTYPE_SET(IFM_VFAST), 0, NULL);
ifmedia_set(&sc->vtnet_media, VTNET_MEDIATYPE);
/* Read (or generate) the MAC address for the adapter. */
Index: sys/net/if_media.h
===================================================================
--- sys/net/if_media.h
+++ sys/net/if_media.h
@@ -129,6 +129,8 @@
* Ethernet
*/
#define IFM_ETHER 0x00000020
+#define IFM_ETHER_SUBTYPE_SET(x) (((x) & 0x1f) | (((x) & 0x3e0) << 6) | IFM_ETHER)
+#define IFM_ETHER_SUBTYPE_GET(x) (((x) & 0x1f) | (((x) & 0xf800) >> 6))
#define IFM_10_T 3 /* 10BaseT - RJ45 */
#define IFM_10_2 4 /* 10Base2 - Thinnet */
#define IFM_10_5 5 /* 10Base5 - AUI */
@@ -156,11 +158,32 @@
#define IFM_40G_CR4 27 /* 40GBase-CR4 */
#define IFM_40G_SR4 28 /* 40GBase-SR4 */
#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_SGMII 41 /* 1G media interface */
+#define IFM_SFI 42 /* 10G media interface */
+#define IFM_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 */
+
/*
* Please update ieee8023ad_lacp.c:lacp_compose_key()
* after adding new Ethernet media types.
*/
-/* note 31 is the max! */
+/* Note 0x3ff is the max! */
#define IFM_ETH_MASTER 0x00000100 /* master mode (1000baseT) */
#define IFM_ETH_RXPAUSE 0x00000200 /* receive PAUSE frames */
@@ -307,7 +330,10 @@
* Macros to extract various bits of information from the media word.
*/
#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_INST(x) (((x) & IFM_IMASK) >> IFM_ISHIFT)
#define IFM_OPTIONS(x) ((x) & (IFM_OMASK | IFM_GMASK))
@@ -372,6 +398,26 @@
{ IFM_40G_CR4, "40Gbase-CR4" }, \
{ IFM_40G_SR4, "40Gbase-SR4" }, \
{ 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_SGMII, "SGMII" }, \
+ { IFM_SFI, "SFI" }, \
+ { IFM_XLPPI, "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" }, \
{ 0, NULL }, \
}
@@ -673,6 +719,26 @@
{ IFM_ETHER | IFM_40G_CR4, IF_Gbps(40ULL) }, \
{ IFM_ETHER | IFM_40G_SR4, 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_SGMII), IF_Mbps(1000) }, \
+ { IFM_ETHER_SUBTYPE_SET(IFM_SFI), IF_Gbps(10ULL) }, \
+ { IFM_ETHER_SUBTYPE_SET(IFM_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_TOKEN | IFM_TOK_STP4, IF_Mbps(4) }, \
{ IFM_TOKEN | IFM_TOK_STP16, IF_Mbps(16) }, \
Index: sys/net/if_media.c
===================================================================
--- sys/net/if_media.c
+++ sys/net/if_media.c
@@ -354,8 +354,7 @@
int i;
for (i = 0; ifmedia_baudrate_descriptions[i].ifmb_word != 0; i++) {
- if ((mword & (IFM_NMASK|IFM_TMASK)) ==
- ifmedia_baudrate_descriptions[i].ifmb_word)
+ if (IFM_TYPE_MATCH(mword, ifmedia_baudrate_descriptions[i].ifmb_word))
return (ifmedia_baudrate_descriptions[i].ifmb_baudrate);
}
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Fri, Aug 21, 1:39 AM (33 m, 5 s)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
37017196
Default Alt Text
D2056.id4197.diff (5 KB)
Attached To
Mode
D2056: Add extended media types to if_media.h and ifconfig
Attached
Detach File
Event Timeline
Log In to Comment