• Florian Fainelli's avatar
    net: dsa: integrate with SWITCHDEV for HW bridging · b73adef6
    Florian Fainelli authored
    In order to support bridging offloads in DSA switch drivers, select
    NET_SWITCHDEV to get access to the port_stp_update and parent_get_id
    NDOs that we are required to implement.
    
    To facilitate the integratation at the DSA driver level, we implement 3
    types of operations:
    
    - port_join_bridge
    - port_leave_bridge
    - port_stp_update
    
    DSA will resolve which switch ports that are currently bridge port
    members as some Switch hardware/drivers need to know about that to limit
    the register programming to just the relevant registers (especially for
    slow MDIO buses).
    
    We also take care of setting the correct STP state when slave network
    devices are brought up/down while being bridge members.
    
    Finally, when a port is leaving the bridge, we make sure we set in
    BR_STATE_FORWARDING state, otherwise the bridge layer would leave it
    disabled as a result of having left the bridge.
    Signed-off-by: default avatarFlorian Fainelli <f.fainelli@gmail.com>
    Reviewed-by: default avatarGuenter Roeck <linux@roeck-us.net>
    Tested-by: default avatarGuenter Roeck <linux@roeck-us.net>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    b73adef6
dsa.c 19.2 KB