]> git.baikalelectronics.ru Git - kernel.git/commit
net/sched: remove hacks added to dev_trans_start() for bonding to work
authorVladimir Oltean <vladimir.oltean@nxp.com>
Sun, 31 Jul 2022 12:41:06 +0000 (15:41 +0300)
committerJakub Kicinski <kuba@kernel.org>
Thu, 4 Aug 2022 02:20:13 +0000 (19:20 -0700)
commit21cd33f5c8819a67f8ab709d0e2229e486a42df8
tree7a866a9bddf2fa7b1316cbce0a45e4c0668cf153
parent9236f9e57f61edeee4b375feb03651dfac1ad3a0
net/sched: remove hacks added to dev_trans_start() for bonding to work

Now that the bonding driver keeps track of the last TX time of ARP and
NS probes, we effectively revert the following commits:

97c09105cfe8 ("net_sched: use macvlan real dev trans_start in dev_trans_start()")
bcae3d1a0a3e ("net_sched: make dev_trans_start return vlan's real dev trans_start")

Note that the approach of continuing to hack at this function would not
get us very far, hence the desire to take a different approach. DSA is
also a virtual device that uses NETIF_F_LLTX, but there, many uppers
share the same lower (DSA master, i.e. the physical host port of a
switch). By making dev_trans_start() on a DSA interface return the
dev_trans_start() of the master, we effectively assume that all other
DSA interfaces are silent, otherwise this corrupts the validity of the
probe timestamp data from the bonding driver's perspective.

Furthermore, the hacks didn't take into consideration the fact that the
lower interface of @dev may not have been physical either. For example,
VLAN over VLAN, or DSA with 2 masters in a LAG.

And even furthermore, there are NETIF_F_LLTX devices which are not
stacked, like veth. The hack here would not work with those, because it
would not have to provide the bonding driver something to chew at all.

Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
net/sched/sch_generic.c