apparently active optical cables are distinct from direct attached
cables, so here's a bunch of extra media types for them.

you can also get LR and ER(?) optics for 25g.

ok?

Index: if_media.h
===================================================================
RCS file: /cvs/src/sys/net/if_media.h,v
retrieving revision 1.39
diff -u -p -r1.39 if_media.h
--- if_media.h  24 Jan 2017 10:08:30 -0000      1.39
+++ if_media.h  14 Nov 2017 03:37:46 -0000
@@ -196,6 +196,13 @@ uint64_t   ifmedia_baudrate(uint64_t);
 #define        IFM_25G_SR      49              /* 25GBase-SR */
 #define        IFM_50G_CR2     50              /* 50GBase-CR2 */
 #define        IFM_50G_KR2     51              /* 50GBase-KR2 */
+#define        IFM_25G_LR      52              /* 25GBase-LR */
+#define        IFM_25G_ER      53              /* 25GBase-ER */
+#define        IFM_10G_AOC     54              /* 10G Active Optical Cable */
+#define        IFM_25G_AOC     55              /* 25G Active Optical Cable */
+#define        IFM_40G_AOC     56              /* 40G Active Optical Cable */
+#define        IFM_100G_AOC    57              /* 100G Active Optical Cable */
+#define        IFM_25G_SFP_CU  58              /* 25G SFP28 direct attached 
cable */
 
 #define        IFM_ETH_MASTER  0x0000000000010000ULL   /* master mode 
(1000baseT) */
 #define        IFM_ETH_RXPAUSE 0x0000000000020000ULL   /* receive PAUSE frames 
*/
@@ -541,6 +548,7 @@ struct ifmedia_description {
        { IFM_ETHER|IFM_10G_KR,         "10GBASE-KR" },                 \
        { IFM_ETHER|IFM_10G_CR1,        "10GbaseCR1" },                 \
        { IFM_ETHER|IFM_10G_CR1,        "10GBASE-CR1" },                \
+       { IFM_ETHER|IFM_10G_AOC,        "10G-AOC" },                    \
        { IFM_ETHER|IFM_20G_KR2,        "20GbaseKR2" },                 \
        { IFM_ETHER|IFM_20G_KR2,        "20GBASE-KR2" },                \
        { IFM_ETHER|IFM_2500_KX,        "2500baseKX" },                 \
@@ -559,6 +567,7 @@ struct ifmedia_description {
        { IFM_ETHER|IFM_1000_CX_SGMII,  "1000BASE-CX-SGMII" },          \
        { IFM_ETHER|IFM_40G_KR4,        "40GbaseKR4" },                 \
        { IFM_ETHER|IFM_40G_KR4,        "40GBASE-KR4" },                \
+       { IFM_ETHER|IFM_40G_AOC,        "40G-AOC" },                    \
        { IFM_ETHER|IFM_10G_ER,         "10GbaseER" },                  \
        { IFM_ETHER|IFM_10G_ER,         "10GBASE-ER" },                 \
        { IFM_ETHER|IFM_100G_CR4,       "100GbaseCR4" },                \
@@ -569,6 +578,7 @@ struct ifmedia_description {
        { IFM_ETHER|IFM_100G_KR4,       "100GBASE-KR4" },               \
        { IFM_ETHER|IFM_100G_LR4,       "100GbaseLR4" },                \
        { IFM_ETHER|IFM_100G_LR4,       "100GBASE-LR4" },               \
+       { IFM_ETHER|IFM_100G_AOC,       "100G-AOC" },                   \
        { IFM_ETHER|IFM_56G_R4,         "56GbaseR4" },                  \
        { IFM_ETHER|IFM_56G_R4,         "56GBASE-R4" },                 \
        { IFM_ETHER|IFM_25G_CR,         "25GbaseCR" },                  \
@@ -577,6 +587,12 @@ struct ifmedia_description {
        { IFM_ETHER|IFM_25G_KR,         "25GBASE-KR" },                 \
        { IFM_ETHER|IFM_25G_SR,         "25GbaseSR" },                  \
        { IFM_ETHER|IFM_25G_SR,         "25GBASE-SR" },                 \
+       { IFM_ETHER|IFM_25G_LR,         "25GbaseLR" },                  \
+       { IFM_ETHER|IFM_25G_LR,         "25GBASE-LR" },                 \
+       { IFM_ETHER|IFM_25G_ER,         "25GbaseER" },                  \
+       { IFM_ETHER|IFM_25G_ER,         "25GBASE-ER" },                 \
+       { IFM_ETHER|IFM_25G_SFP_CU      "25GSFP28" },                   \
+       { IFM_ETHER|IFM_10G_AOC,        "25G-AOC" },                    \
        { IFM_ETHER|IFM_50G_CR2,        "50GbaseCR2" },                 \
        { IFM_ETHER|IFM_50G_CR2,        "50GBASE-CR2" },                \
        { IFM_ETHER|IFM_50G_KR2,        "50GbaseKR2" },                 \

Reply via email to