net: dsa: Add helper to resolve bridge port from DSA port
authorTobias Waldekranz <tobias@waldekranz.com>
Thu, 18 Mar 2021 19:25:33 +0000 (20:25 +0100)
committerDavid S. Miller <davem@davemloft.net>
Thu, 18 Mar 2021 23:24:06 +0000 (16:24 -0700)
commitcc76ce9e8dc659561ee62876da2cffc03fb58cc5
tree37ac389b8d14bdb74b514e704792837f0d6c366b
parent44b958a686183287d0b8977a6700f956c82bef94
net: dsa: Add helper to resolve bridge port from DSA port

In order for a driver to be able to query a bridge for information
about itself, e.g. reading out port flags, it has to use a netdev that
is known to the bridge. In the simple case, that is just the netdev
representing the port, e.g. swp0 or swp1 in this example:

   br0
   / \
swp0 swp1

But in the case of an offloaded lag, this will be the bond or team
interface, e.g. bond0 in this example:

     br0
     /
  bond0
   / \
swp0 swp1

Add a helper that hides some of this complexity from the
drivers. Then, redefine dsa_port_offloads_bridge_port using the helper
to avoid double accounting of the set of possible offloaded uppers.

Signed-off-by: Tobias Waldekranz <tobias@waldekranz.com>
Reviewed-by: Vladimir Oltean <olteanv@gmail.com>
Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/net/dsa.h
net/dsa/dsa_priv.h