On 24/10/17 15:32, Nikolay Aleksandrov wrote: > Hi, > Before this set the bridge would generate a notification on vlan add or del > even if they didn't actually do any changes, which confuses listeners and > is generally not preferred. We could also lose notifications on actual > changes if one adds a range of vlans and there's an error in the middle. > The problem with just breaking and returning an error is that we could > break existing user-space scripts which rely on the vlan delete to clear > all existing entries in the specified range and ignore the non-existing > errors (typically used to clear the current vlan config). > So in order to make the notifications more accurate while keeping backwards > compatibility we add a boolean that tracks if anything actually changed > during the config calls. > > The vlan add is more difficult to fix because it always returns 0 even if > nothing changed, but we cannot use a specific error because the drivers > can return anything and we may mask it, also we'd need to update all places > that directly return the add result, thus to signal that a vlan was created > or updated and in order not to break overlapping vlan range add we pass > down the new boolean that tracks changes to the add functions to check > if anything was actually updated. > > Can't say that I am happy with this change, but currently I don't see any > simpler way which doesn't affect user-space. > > v2: pass changed down to vlan add instead of masking errors > > Thanks, > Nik > > Nikolay Aleksandrov (2): > bridge: netlink: make setlink/dellink notifications more accurate > bridge: vlan: signal if anything changed on vlan add > > net/bridge/br_netlink.c | 51 ++++++++++++++++----------- > net/bridge/br_netlink_tunnel.c | 14 +++++--- > net/bridge/br_private.h | 6 ++-- > net/bridge/br_private_tunnel.h | 3 +- > net/bridge/br_vlan.c | 78 > ++++++++++++++++++++++++++++++------------ > 5 files changed, 102 insertions(+), 50 deletions(-) >
Ah, forgot to update the non-vlan bridge config case with the empty stubs, will send a fixed and tested v3 asap.