Some high-level virtual drivers need to compute features from their
lower devices, but each currently has its own implementation and may
miss some feature computations. This patch set introduces a common function
to compute features for such devices.
Currently, bonding, team, and bridge have been updated to use the new
helper.
v5:
* rename VIRTUAL_DEV_* to UPPER_DEV_* (Jiri Pirko)
* use IS_ENABLED() instead of ifdef (Simon Horman)
* init max_headroom/tailroom (Simon Horman)
v4:
* update needed_{headroom, tailroom} in the common helper (Ido Schimmel)
* remove unneeded err in team (Stanislav Fomichev)
* remove selftest as `ethtool -k` does not test the dev->*_features. We
can add back the selftest when there is a good way to test. (Sabrina Dubroca)
* link:
https://lore.kernel.org/netdev/[email protected]
v3:
a) fix hw_enc_features assign order (Sabrina Dubroca)
b) set virtual dev feature definition in netdev_features.h (Jakub Kicinski)
c) remove unneeded err in team_del_slave (Stanislav Fomichev)
d) remove NETIF_F_HW_ESP test as it needs to be test with GSO pkts (Sabrina
Dubroca)
v2:
a) remove hard_header_len setting. I will set needed_headroom for bond/team
in a separate patch as bridge has it's own ways. (Ido Schimmel)
b) Add test file to Makefile, set RET=0 to a proper location. (Ido Schimmel)
Hangbin Liu (4):
net: add a common function to compute features for upper devices
bonding: use common function to compute the features
team: use common function to compute the features
net: bridge: use common function to compute the features
drivers/net/bonding/bond_main.c | 99 ++-------------------------------
drivers/net/team/team_core.c | 83 ++-------------------------
include/linux/netdev_features.h | 18 ++++++
include/linux/netdevice.h | 1 +
net/bridge/br_if.c | 22 +-------
net/core/dev.c | 88 +++++++++++++++++++++++++++++
6 files changed, 120 insertions(+), 191 deletions(-)
--
2.50.1