• Vladimir Oltean's avatar
    net: dsa: felix: migrate host FDB and MDB entries when changing tag proto · f9cef64f
    Vladimir Oltean authored
    The "ocelot" and "ocelot-8021q" tagging protocols make use of different
    hardware resources, and host FDB entries have different destination
    ports in the switch analyzer module, practically speaking.
    
    So when the user requests a tagging protocol change, the driver must
    migrate all host FDB and MDB entries from the NPI port (in fact CPU port
    module) towards the same physical port, but this time used as a regular
    port.
    
    It is pointless for the felix driver to keep a copy of the host
    addresses, when we can create and export DSA helpers for walking through
    the addresses that it already needs to keep on the CPU port, for
    refcounting purposes.
    
    felix_classify_db() is moved up to avoid a forward declaration.
    
    We pass "bool change" because dp->fdbs and dp->mdbs are uninitialized
    lists when felix_setup() first calls felix_set_tag_protocol(), so we
    need to avoid calling dsa_port_walk_fdbs() during probe time.
    Signed-off-by: default avatarVladimir Oltean <vladimir.oltean@nxp.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    f9cef64f
felix.c 49.9 KB