As the link speeds have evolved over the years, the list of supported
rates is obsolete in OVS.
Yet a catch all value (NETDEV_F_OTHER) is available, so use it.
Fixes: 6240c0b4c80e ("netdev: Add netdev_get_speed() to netdev API.")
Signed-off-by: David Marchand <[email protected]>
Acked-by: Mike Pattrick <[email protected]>
Acked-by: Eelco Chaudron <[email protected]>
---
Changes since v2:
- excluded 0 and unknown speeds for netdev-linux,
---
lib/netdev-bsd.c | 3 +++
lib/netdev-linux.c | 3 +++
tests/system-interface.at | 2 +-
3 files changed, 7 insertions(+), 1 deletion(-)
diff --git a/lib/netdev-bsd.c b/lib/netdev-bsd.c
index 6e3091b939..c7cd59376a 100644
--- a/lib/netdev-bsd.c
+++ b/lib/netdev-bsd.c
@@ -1151,6 +1151,9 @@ netdev_bsd_get_features(const struct netdev *netdev,
/* Current settings. */
*current = netdev_bsd_parse_media(ifmr.ifm_active);
+ if (!*current) {
+ *current = NETDEV_F_OTHER;
+ }
/* Advertised features. */
*advertised = netdev_bsd_parse_media(ifmr.ifm_current);
diff --git a/lib/netdev-linux.c b/lib/netdev-linux.c
index a63d03d484..c383663dde 100644
--- a/lib/netdev-linux.c
+++ b/lib/netdev-linux.c
@@ -2679,6 +2679,9 @@ netdev_linux_read_features(struct netdev_linux *netdev)
netdev->current = NETDEV_F_100GB_FD;
} else if (netdev->current_speed == 1000000) {
netdev->current = NETDEV_F_1TB_FD;
+ } else if (netdev->current_speed
+ && netdev->current_speed != SPEED_UNKNOWN) {
+ netdev->current = NETDEV_F_OTHER;
} else {
netdev->current = 0;
}
diff --git a/tests/system-interface.at b/tests/system-interface.at
index d4ee5c46ba..cb0835ad6b 100644
--- a/tests/system-interface.at
+++ b/tests/system-interface.at
@@ -199,7 +199,7 @@ OFPST_PORT_DESC reply (OF1.5):
1(tap0): addr:aa:55:aa:55:00:01
config: 0
state: LIVE
- current: COPPER
+ current: OTHER COPPER
speed: 50000 Mbps now, 0 Mbps max
])
--
2.51.0
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev