rtnl_lock();
        ret = __ethtool_get_link_ksettings(hard_iface->net_dev, &link_settings);
        rtnl_unlock();
-       if (ret == 0) {
+
+       /* Virtual interface drivers such as tun / tap interfaces, VLAN, etc
+        * tend to initialize the interface throughput with some value for the
+        * sake of having a throughput number to export via ethtool. This
+        * exported throughput leaves batman-adv to conclude the interface
+        * throughput is genuine (reflecting reality), thus no measurements
+        * are necessary.
+        *
+        * Based on the observation that those interface types also tend to set
+        * the link auto-negotiation to 'off', batman-adv shall check this
+        * setting to differentiate between genuine link throughput information
+        * and placeholders installed by virtual interfaces.
+        */
+       if (ret == 0 && link_settings.base.autoneg == AUTONEG_ENABLE) {
                /* link characteristics might change over time */
                if (link_settings.base.duplex == DUPLEX_FULL)
                        hard_iface->bat_v.flags |= BATADV_FULL_DUPLEX;