Hi Vivien,
On 08/31/2017 11:37 AM, Vivien Didelot wrote:
> Currently the SoC network interface (called master) to which a switch
> fabric hangs, has its dsa_ptr pointing to a dsa_switch_tree instance.
>
> This is not quite correct, because this interface is physically wired to
> one of the switch ports (called CPU port), and because in a switch
> fabric with multiple CPU ports, several master interfaces will point to
> several CPU ports of the same dsa_switch_tree.
>
> This patchset adds a new dsa_master structure to represent the pipe
> between the SoC master interface and its switch CPU port. This structure
> will store specific data such as the master ethtool_ops copy and the
> tagging protocol used to pass frames with the associated slave ports.
> The dsa_ptr is changed to a dsa_master instance, and each DSA slave now
> has a pointer to a master port.
>
> This is a step forward better control over the CPU conduit and support
> for multiple CPU ports.
Looked briefly over this series and this looks good to me, Andrew has a
valid point about reducing the number of dereferences in hot paths
though. Thanks!
>
> Vivien Didelot (4):
> net: dsa: introduce dsa_master
> net: dsa: move master ethtool ops in dsa_master
> net: dsa: change dsa_ptr for a dsa_master
> net: dsa: assign a master to slave ports
>
> drivers/net/dsa/b53/b53_common.c | 4 +-
> drivers/net/dsa/bcm_sf2.c| 8 +--
> drivers/net/dsa/mt7530.c | 4 +-
> drivers/net/dsa/mv88e6060.c | 2 +-
> drivers/net/dsa/qca8k.c | 2 +-
> include/linux/netdevice.h| 4 +-
> include/net/dsa.h| 42 +--
> net/dsa/Makefile | 2 +-
> net/dsa/dsa.c| 34 +
> net/dsa/dsa2.c | 38 +-
> net/dsa/dsa_priv.h | 24 +++
> net/dsa/legacy.c | 34 +
> net/dsa/master.c | 149
> +++
> net/dsa/slave.c | 117 +-
> net/dsa/tag_brcm.c | 5 +-
> net/dsa/tag_dsa.c| 3 +-
> net/dsa/tag_edsa.c | 3 +-
> net/dsa/tag_ksz.c| 5 +-
> net/dsa/tag_lan9303.c| 6 +-
> net/dsa/tag_mtk.c| 12 +---
> net/dsa/tag_qca.c| 12 +---
> net/dsa/tag_trailer.c| 5 +-
> 22 files changed, 265 insertions(+), 250 deletions(-)
> create mode 100644 net/dsa/master.c
>
--
Florian