[RFC PATCH net-next 0/3] net: add ndo_update_offloads for offload computation
From: Hangbin Liu
Date: Thu Feb 26 2026 - 06:48:15 EST
Currently, master devices (bonding, bridge, team) manually call
netdev_compute_master_upper_features() scattered throughout their port
add/remove operations. This approach requires each driver to remember
to update features at the right times and leads to code duplication.
The series adds a new ndo_update_offloads callback that is automatically
invoked during feature updates when upper/lower device relationships change.
This centralizes the feature computation flow and removes the burden
from individual drivers.
Changes:
1. Patch 1: Add ndo_update_offloads callback to net_device_ops and invoke
it from __netdev_update_features()
2. Patch 2: Convert bonding, bridge, and team drivers to use the new
callback, removing manual feature computation calls
3. Patch 3: Convert net_failover driver, significantly simplifying its
feature management code
*Discuss*:
1. Should we set ndo_update_offloads after ndo_set_features? Or maybe just
call netdev_compute_master_upper_features() in ndo_set_features?
2. Do we need to compute the offload feature for hsr?
Hangbin Liu (3):
net: add ndo_update_offloads
net: use ndo_update_offloads for bonding/bridge/team
failover: use .ndo_update_offloads for failover
drivers/net/bonding/bond_main.c | 10 ++++--
drivers/net/net_failover.c | 64 ++++-----------------------------
drivers/net/team/team_core.c | 11 +++---
include/linux/netdevice.h | 7 ++++
include/net/net_failover.h | 7 ----
net/bridge/br_device.c | 6 ++++
net/bridge/br_if.c | 4 ---
net/core/dev.c | 11 ++++--
8 files changed, 42 insertions(+), 78 deletions(-)
--
2.50.1