git: 51f313dbc7a2 - main - net/if_media.h: Add 800GBase-X and 200Gbit/s per lane support

From: Konstantin Belousov <kib_at_FreeBSD.org>
Date: Wed, 17 Jun 2026 18:23:48 UTC
The branch main has been updated by kib:

URL: https://cgit.FreeBSD.org/src/commit/?id=51f313dbc7a28a7bd2013c205261f29f115eb0a7

commit 51f313dbc7a28a7bd2013c205261f29f115eb0a7
Author:     Slava Shwartsman <slavash@nvidia.com>
AuthorDate: 2026-05-13 10:10:50 +0000
Commit:     Konstantin Belousov <kib@FreeBSD.org>
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 <wafah@nvidia.com>
    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) },		\