• Vladimir Oltean's avatar
    net: mscc: ocelot: offload bridge port flags to device · 421741ea
    Vladimir Oltean authored
    We should not be unconditionally enabling address learning, since doing
    that is actively detrimential when a port is standalone and not offloading
    a bridge. Namely, if a port in the switch is standalone and others are
    offloading the bridge, then we could enter a situation where we learn an
    address towards the standalone port, but the bridged ports could not
    forward the packet there, because the CPU is the only path between the
    standalone and the bridged ports. The solution of course is to not
    enable address learning unless the bridge asks for it.
    
    We need to set up the initial port flags for no learning and flooding
    everything, and also when the port joins and leaves the bridge.
    The flood configuration was already configured ok for standalone mode
    in ocelot_init, we just need to disable learning in ocelot_init_port.
    Signed-off-by: default avatarVladimir Oltean <vladimir.oltean@nxp.com>
    Reviewed-by: default avatarAlexandre Belloni <alexandre.belloni@bootlin.com>
    Reviewed-by: default avatarFlorian Fainelli <f.fainelli@gmail.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    421741ea
ocelot.c 51.1 KB