SPEED_UNKNOWN was introduced in Linux kernel v3.2.
While at it, add some defines for 40G and 100G that were added in more
recent kernels.
Fixes: 6240c0b4c80e ("netdev: Add netdev_get_speed() to netdev API.")
Acked-by: Mike Pattrick <[email protected]>
Acked-by: Eelco Chaudron <[email protected]>
Signed-off-by: David Marchand <[email protected]>
---
Changes since v4:
- moved definitions and annotated with Linux versions,
---
lib/netdev-linux.c | 19 +++++++++++++++++--
1 file changed, 17 insertions(+), 2 deletions(-)
diff --git a/lib/netdev-linux.c b/lib/netdev-linux.c
index c383663dde..1dc64b4e06 100644
--- a/lib/netdev-linux.c
+++ b/lib/netdev-linux.c
@@ -175,6 +175,11 @@ static inline uint32_t rpl_ethtool_cmd_speed(const struct
ethtool_cmd *ep)
#define ADVERTISED_10000baseR_FEC (1 << 20)
#endif
+/* Linux 3.2 introduced "unknown" speed. */
+#ifndef SPEED_UNKNOWN
+#define SPEED_UNKNOWN -1
+#endif
+
/* Linux 3.5 introduced supported and advertised flags for
* 40G base KR4, CR4, SR4 and LR4. */
#ifndef SUPPORTED_40000baseKR4_Full
@@ -188,6 +193,16 @@ static inline uint32_t rpl_ethtool_cmd_speed(const struct
ethtool_cmd *ep)
#define ADVERTISED_40000baseLR4_Full (1 << 26)
#endif
+/* Linux 3.19 introduced speed for 40G. */
+#ifndef SPEED_40000
+#define SPEED_40000 40000
+#endif
+
+/* Linux 4.2 introduced speed for 100G. */
+#ifndef SPEED_100000
+#define SPEED_100000 100000
+#endif
+
/* Linux 2.6.35 introduced IFLA_STATS64 and rtnl_link_stats64.
*
* Tests for rtnl_link_stats64 don't seem to consistently work, e.g. on
@@ -2673,9 +2688,9 @@ netdev_linux_read_features(struct netdev_linux *netdev)
netdev->current = ecmd.duplex ? NETDEV_F_1GB_FD : NETDEV_F_1GB_HD;
} else if (netdev->current_speed == SPEED_10000) {
netdev->current = NETDEV_F_10GB_FD;
- } else if (netdev->current_speed == 40000) {
+ } else if (netdev->current_speed == SPEED_40000) {
netdev->current = NETDEV_F_40GB_FD;
- } else if (netdev->current_speed == 100000) {
+ } else if (netdev->current_speed == SPEED_100000) {
netdev->current = NETDEV_F_100GB_FD;
} else if (netdev->current_speed == 1000000) {
netdev->current = NETDEV_F_1TB_FD;
--
2.51.0
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev