The branch main has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=51f313dbc7a28a7bd2013c205261f29f115eb0a7
commit 51f313dbc7a28a7bd2013c205261f29f115eb0a7 Author: Slava Shwartsman <[email protected]> AuthorDate: 2026-05-13 10:10:50 +0000 Commit: Konstantin Belousov <[email protected]> CommitDate: 2026-06-17 18:23:14 +0000 net/if_media.h: Add 800GBase-X and 200Gbit/s per lane support Reviewed by: kib Tested by: Wafa Hamzah <[email protected]> MFC after: 1 week Sponsored by: Nvidia networking Differential revision: https://reviews.freebsd.org/D57083 --- sys/net/ieee8023ad_lacp.c | 3 +++ sys/net/if_media.h | 42 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 45 insertions(+) diff --git a/sys/net/ieee8023ad_lacp.c b/sys/net/ieee8023ad_lacp.c index 99eee570c2a2..5d5fc88f205f 100644 --- a/sys/net/ieee8023ad_lacp.c +++ b/sys/net/ieee8023ad_lacp.c @@ -1198,6 +1198,9 @@ lacp_compose_key(struct lacp_port *lp) case IF_Gbps(400): key = 14; break; + case IF_Gbps(800): + key = 15; + break; default: key = subtype; if (!warned) { diff --git a/sys/net/if_media.h b/sys/net/if_media.h index 5cc8714219c8..5e2548d844c9 100644 --- a/sys/net/if_media.h +++ b/sys/net/if_media.h @@ -264,6 +264,20 @@ uint64_t ifmedia_baudrate(int); #define IFM_400G_CR8 IFM_X(123) /* 400GBase-CR8 */ #define IFM_10_T1S IFM_X(124) /* 10BASE-T1S */ #define IFM_10_T1L IFM_X(125) /* 10BASE-T1L */ +#define IFM_400G_KR2_PAM4 IFM_X(126) /* 400GBase-KR2 PAM4 */ +#define IFM_400G_CR2 IFM_X(127) /* 400GBase-CR2 */ +#define IFM_400G_SR2 IFM_X(128) /* 400GBase-SR2 */ +#define IFM_800G_FR8 IFM_X(129) /* 800GBase-FR8 */ +#define IFM_800G_LR8 IFM_X(130) /* 800GBase-LR8 */ +#define IFM_800G_DR8 IFM_X(131) /* 800GBase-DR8 */ +#define IFM_800G_AUI8_AC IFM_X(132) /* 800G-AUI8 active copper/optical */ +#define IFM_800G_AUI8 IFM_X(133) /* 800G-AUI8 */ +#define IFM_800G_SR8 IFM_X(134) /* 800GBase-SR8 */ +#define IFM_800G_CR8 IFM_X(135) /* 800GBase-CR8 */ +#define IFM_800G_KR8 IFM_X(136) /* 800GBase-KR8 (KR8) */ +#define IFM_800G_CR4 IFM_X(137) /* 800GBase-CR4 */ +#define IFM_800G_SR4 IFM_X(138) /* 800GBase-SR4 */ +#define IFM_800G_KR4_PAM4 IFM_X(139) /* 800GBase-KR4 PAM4 */ /* * Please update ieee8023ad_lacp.c:lacp_compose_key() @@ -558,6 +572,20 @@ struct ifmedia_description { { IFM_400G_CR8, "400GBase-CR8" }, \ { IFM_10_T1S, "10BASE-T1S" }, \ { IFM_10_T1L, "10BASE-T1L" }, \ + { IFM_400G_KR2_PAM4, "400GBase-KR2-PAM4" }, \ + { IFM_400G_CR2, "400GBase-CR2" }, \ + { IFM_400G_SR2, "400GBase-SR2" }, \ + { IFM_800G_FR8, "800GBase-FR8" }, \ + { IFM_800G_LR8, "800GBase-LR8" }, \ + { IFM_800G_DR8, "800GBase-DR8" }, \ + { IFM_800G_AUI8_AC, "800G-AUI8-AC" }, \ + { IFM_800G_AUI8, "800G-AUI8" }, \ + { IFM_800G_SR8, "800GBase-SR8" }, \ + { IFM_800G_KR8, "800GBase-KR8" }, \ + { IFM_800G_CR8, "800GBase-CR8" }, \ + { IFM_800G_CR4, "800GBase-CR4" }, \ + { IFM_800G_SR4, "800GBase-SR4" }, \ + { IFM_800G_KR4_PAM4, "800GBase-KR4-PAM4" }, \ { 0, NULL }, \ } @@ -909,6 +937,20 @@ struct ifmedia_baudrate { { IFM_ETHER | IFM_400G_CR8, IF_Gbps(400ULL) }, \ { IFM_ETHER | IFM_10_T1S, IF_Mbps(10) }, \ { IFM_ETHER | IFM_10_T1L, IF_Mbps(10) }, \ + { IFM_ETHER | IFM_400G_KR2_PAM4, IF_Gbps(400ULL) }, \ + { IFM_ETHER | IFM_400G_CR2, IF_Gbps(400ULL) }, \ + { IFM_ETHER | IFM_400G_SR2, IF_Gbps(400ULL) }, \ + { IFM_ETHER | IFM_800G_FR8, IF_Gbps(800ULL) }, \ + { IFM_ETHER | IFM_800G_LR8, IF_Gbps(800ULL) }, \ + { IFM_ETHER | IFM_800G_DR8, IF_Gbps(800ULL) }, \ + { IFM_ETHER | IFM_800G_AUI8_AC, IF_Gbps(800ULL) }, \ + { IFM_ETHER | IFM_800G_AUI8, IF_Gbps(800ULL) }, \ + { IFM_ETHER | IFM_800G_SR8, IF_Gbps(800ULL) }, \ + { IFM_ETHER | IFM_800G_CR8, IF_Gbps(800ULL) }, \ + { IFM_ETHER | IFM_800G_KR8, IF_Gbps(800ULL) }, \ + { IFM_ETHER | IFM_800G_CR4, IF_Gbps(800ULL) }, \ + { IFM_ETHER | IFM_800G_SR4, IF_Gbps(800ULL) }, \ + { IFM_ETHER | IFM_800G_KR4_PAM4, IF_Gbps(800ULL) }, \ \ { IFM_IEEE80211 | IFM_IEEE80211_FH1, IF_Mbps(1) }, \ { IFM_IEEE80211 | IFM_IEEE80211_FH2, IF_Mbps(2) }, \
