• Vladimir Oltean's avatar
    net: dsa: don't fast age standalone ports · 39f32101
    Vladimir Oltean authored
    DSA drives the procedure to flush dynamic FDB entries from a port based
    on the change of STP state: whenever we go from a state where address
    learning is enabled (LEARNING, FORWARDING) to a state where it isn't
    (LISTENING, BLOCKING, DISABLED), we need to flush the existing dynamic
    entries.
    
    However, there are cases when this is not needed. Internally, when a
    DSA switch interface is not under a bridge, DSA still keeps it in the
    "FORWARDING" STP state. And when that interface joins a bridge, the
    bridge will meticulously iterate that port through all STP states,
    starting with BLOCKING and ending with FORWARDING. Because there is a
    state transition from the standalone version of FORWARDING into the
    temporary BLOCKING bridge port state, DSA calls the fast age procedure.
    
    Since commit 5e38c158 ("net: dsa: configure better brport flags when
    ports leave the bridge"), DSA asks standalone ports to disable address
    learning. Therefore, there can be no dynamic FDB entries on a standalone
    port. Therefore, it does not make sense to flush dynamic FDB entries on
    one.
    Signed-off-by: default avatarVladimir Oltean <vladimir.oltean@nxp.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    39f32101
slave.c 63.2 KB