You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
116 lines
4.7 KiB
116 lines
4.7 KiB
1 year ago
|
From 663869cc6276811fec884dd76394c7d8656d326a Mon Sep 17 00:00:00 2001
|
||
|
From: Lyonel Vincent <lyonel@ezix.org>
|
||
|
Date: Tue, 19 Oct 2021 01:09:20 +0200
|
||
|
Subject: [PATCH 61/65] Add more network speeds
|
||
|
|
||
|
cf. Github PR#75
|
||
|
---
|
||
|
src/core/network.cc | 58 ++++++++++++++++++++++++++++++++++++++++++++-
|
||
|
1 file changed, 57 insertions(+), 1 deletion(-)
|
||
|
|
||
|
diff --git a/src/core/network.cc b/src/core/network.cc
|
||
|
index d66c978..01a1f51 100644
|
||
|
--- a/src/core/network.cc
|
||
|
+++ b/src/core/network.cc
|
||
|
@@ -147,19 +147,38 @@ struct ethtool_value
|
||
|
#define SUPPORTED_FIBRE (1 << 10)
|
||
|
#define SUPPORTED_BNC (1 << 11)
|
||
|
#define SUPPORTED_10000baseT_Full (1 << 12)
|
||
|
+#define SUPPORTED_2500baseX_Full (1 << 15)
|
||
|
+#define SUPPORTED_1000baseKX_Full (1 << 17)
|
||
|
+#define SUPPORTED_10000baseKX4_Full (1 << 18)
|
||
|
+#define SUPPORTED_10000baseKR_Full (1 << 19)
|
||
|
+#define SUPPORTED_40000baseKR4_Full (1 << 23)
|
||
|
+#define SUPPORTED_40000baseCR4_Full (1 << 24)
|
||
|
+#define SUPPORTED_40000baseSR4_Full (1 << 25)
|
||
|
+#define SUPPORTED_40000baseLR4_Full (1 << 26)
|
||
|
+#define SUPPORTED_25000baseCR_Full (1 << 31)
|
||
|
|
||
|
/* Indicates what features are supported by the interface,
|
||
|
* in the second word of the extended bitmap. */
|
||
|
+#define SUPPORTED2_25000baseKR_Full (1 << 0)
|
||
|
+#define SUPPORTED2_25000baseSR_Full (1 << 1)
|
||
|
+#define SUPPORTED2_1000baseX_Full (1 << 9)
|
||
|
+#define SUPPORTED2_10000baseCR_Full (1 << 10)
|
||
|
+#define SUPPORTED2_10000baseSR_Full (1 << 11)
|
||
|
+#define SUPPORTED2_10000baseLR_Full (1 << 12)
|
||
|
+#define SUPPORTED2_10000baseLRM_Full (1 << 13)
|
||
|
+#define SUPPORTED2_10000baseER_Full (1 << 14)
|
||
|
#define SUPPORTED2_2500baseT_Full (1 << 15)
|
||
|
#define SUPPORTED2_5000baseT_Full (1 << 16)
|
||
|
|
||
|
-/* The forced speed, 10Mb, 100Mb, gigabit, 2.5GbE, 5GbE, 10GbE. */
|
||
|
+/* The forced speed, 10Mb, 100Mb, gigabit, 2.5GbE, 5GbE, 10GbE and up. */
|
||
|
#define SPEED_10 10
|
||
|
#define SPEED_100 100
|
||
|
#define SPEED_1000 1000
|
||
|
#define SPEED_2500 2500
|
||
|
#define SPEED_5000 5000
|
||
|
#define SPEED_10000 10000
|
||
|
+#define SPEED_25000 25000
|
||
|
+#define SPEED_40000 40000
|
||
|
|
||
|
/* Duplex, half or full. */
|
||
|
#define DUPLEX_HALF 0x00
|
||
|
@@ -381,6 +400,16 @@ static void updateCapabilities(hwNode & interface, u32 supported, u32 supported2
|
||
|
interface.addCapability("1000bt-fd", _("1Gbit/s (full duplex)"));
|
||
|
interface.setCapacity(1000000000ULL);
|
||
|
}
|
||
|
+ if((supported & SUPPORTED_1000baseKX_Full) || (supported2 & SUPPORTED2_1000baseX_Full))
|
||
|
+ {
|
||
|
+ interface.addCapability("1000bx-fd", _("1Gbit/s (full duplex)"));
|
||
|
+ interface.setCapacity(1000000000ULL);
|
||
|
+ }
|
||
|
+ if(supported & SUPPORTED_2500baseX_Full)
|
||
|
+ {
|
||
|
+ interface.addCapability("2500bx-fd", _("2.5Gbit/s (full duplex)"));
|
||
|
+ interface.setCapacity(2500000000ULL);
|
||
|
+ }
|
||
|
if(supported2 & SUPPORTED2_2500baseT_Full)
|
||
|
{
|
||
|
interface.addCapability("2500bt-fd", _("2.5Gbit/s (full duplex)"));
|
||
|
@@ -396,6 +425,25 @@ static void updateCapabilities(hwNode & interface, u32 supported, u32 supported2
|
||
|
interface.addCapability("10000bt-fd", _("10Gbit/s (full duplex)"));
|
||
|
interface.setCapacity(10000000000ULL);
|
||
|
}
|
||
|
+ if((supported & (SUPPORTED_10000baseKX4_Full | SUPPORTED_10000baseKR_Full)) ||
|
||
|
+ (supported2 & (SUPPORTED2_10000baseCR_Full | SUPPORTED2_10000baseSR_Full | SUPPORTED2_10000baseLR_Full |
|
||
|
+ SUPPORTED2_10000baseLRM_Full | SUPPORTED2_10000baseER_Full)))
|
||
|
+ {
|
||
|
+ interface.addCapability("10000bx-fd", _("10Gbit/s (full duplex)"));
|
||
|
+ interface.setCapacity(10000000000ULL);
|
||
|
+ }
|
||
|
+ if((supported & SUPPORTED_25000baseCR_Full) ||
|
||
|
+ (supported2 & (SUPPORTED2_25000baseKR_Full | SUPPORTED2_25000baseSR_Full)))
|
||
|
+ {
|
||
|
+ interface.addCapability("25000bx-fd", _("25Gbit/s (full duplex)"));
|
||
|
+ interface.setCapacity(25000000000ULL);
|
||
|
+ }
|
||
|
+ if(supported & (SUPPORTED_40000baseKR4_Full | SUPPORTED_40000baseCR4_Full |
|
||
|
+ SUPPORTED_40000baseSR4_Full | SUPPORTED_40000baseLR4_Full))
|
||
|
+ {
|
||
|
+ interface.addCapability("40000bx-fd", _("40Gbit/s (full duplex)"));
|
||
|
+ interface.setCapacity(40000000000ULL);
|
||
|
+ }
|
||
|
if(supported & SUPPORTED_Autoneg)
|
||
|
interface.addCapability("autonegotiation", _("Auto-negotiation"));
|
||
|
|
||
|
@@ -425,6 +473,14 @@ static void updateCapabilities(hwNode & interface, u32 supported, u32 supported2
|
||
|
interface.setConfig("speed", "10Gbit/s");
|
||
|
interface.setSize(10000000000ULL);
|
||
|
break;
|
||
|
+ case SPEED_25000:
|
||
|
+ interface.setConfig("speed", "25Gbit/s");
|
||
|
+ interface.setSize(25000000000ULL);
|
||
|
+ break;
|
||
|
+ case SPEED_40000:
|
||
|
+ interface.setConfig("speed", "40Gbit/s");
|
||
|
+ interface.setSize(40000000000ULL);
|
||
|
+ break;
|
||
|
}
|
||
|
switch(duplex)
|
||
|
{
|
||
|
--
|
||
|
2.33.1
|
||
|
|