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) },           \

Reply via email to