On Monday, 25 November 2019 17:46:50 HKT Sven Eckelmann wrote:
The commit d60b8fc69ef2 ("batman-adv: disable ethtool link speed detection when auto negotiation off") disabled the usage of ethtool's link_ksetting when auto negotation was enabled due to invalid values when used with tun/tap virtual net_devices. According to the patch, automatic measurements should be used for these kind of interfaces.
But there are major flaws with this argumentation:
- automatic measurements are not implemented
- auto negotiation has nothing to do with the validity of the retrieved values
The first point has to be fixed by a longer patch series. The "validity" part of the second point must be addressed in the same patch series by dropping the usage of ethtool's link_ksetting (thus always doing automatic measurements over ethernet).
Drop the patch again to have more default values for various net_device types/configurations. The user can still overwrite them using the batadv_hardif's BATADV_ATTR_THROUGHPUT_OVERRIDE.
I am not quite clear on how reverting this patch will get us better default values. In the case reported by Matthias the autoneg detection was working as intended by this very patch you are reverting. As Antonio had originally outlined:
The problem with autonegotiation disabled is that the advertised speed is likely to be a random number set by default by the driver.
This patch was the main reason why Matthias (or Gluon users) even realized that there was an issue with certain Ethernet ports & BATMAN V. Without the patch BATMAN V may have created routing loops and Gluon users would complain about those instead.
There is no disagreement that the situation needs improving but why is reverting this autoneg patch the best course of action ?
Cheers, Marek