Skip to content

Commit

Permalink
net: dsa: don't fast age bridge ports with learning turned off
Browse files Browse the repository at this point in the history
On topology changes, stations that were dynamically learned on ports
that are no longer part of the active topology must be flushed - this is
described by clause "17.11 Updating learned station location information"
of IEEE 802.1D-2004.

However, when address learning on the bridge port is turned off in the
first place, there is nothing to flush, so skip a potentially expensive
operation.

We can finally do this now since DSA is aware of the learning state of
its bridged ports.

Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
Vladimir Oltean authored and David S. Miller committed Aug 8, 2021
1 parent 045c45d commit 4eab90d
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion net/dsa/port.c
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ int dsa_port_set_state(struct dsa_port *dp, u8 state, bool do_fast_age)

ds->ops->port_stp_state_set(ds, port, state);

if (do_fast_age) {
if (do_fast_age && dp->learning) {
/* Fast age FDB entries or flush appropriate forwarding database
* for the given port, if we are moving it from Learning or
* Forwarding state, to Disabled or Blocking or Listening state.
Expand Down

0 comments on commit 4eab90d

Please sign in to comment.