Subject: Re: [PATCH net-next 0/9] DSA changes for multiple CPU ports (part 4)

From: Marek Behún <[email-masked]>
Date: Sat, 3 Sep 2022 04:48:32 +0200

On Fri, 2 Sep 2022 10:31:46 +0000
Vladimir Oltean <[email-masked]> wrote:

> On Tue, Aug 30, 2022 at 10:59:23PM +0300, Vladimir Oltean wrote:
> > This series represents the final part of that effort. We have:
> > 
> > - the introduction of new UAPI in the form of IFLA_DSA_MASTER  
> 
> Call for opinions: when I resend this, should I keep rtnl_link_ops,
> or should I do what Marek attempted to do, and make the existing iflink
> between a user port and its master writable from user space?
> https://lore.kernel.org/netdev/[email-masked]/
> 
> I'm not sure if we have that many more use cases for rtnl_link_ops..
> at some point I was thinking we could change the way in which dsa_loop
> probes, and allow dynamic creation of such interfaces using RTM_NEWLINK;
> but looking closer at that, it's a bit more complicated, since we'd need
> to attach dsa_loop user ports to a virtual switch, and probe all ports
> at the same time rather than one by one.

My opinion is that it would be better to add new DSA specific netlink
operations instead of using the existing iflink as I did in the that
patch.

I think that DSA should have it's own IP subcommands. Using the
standard, already existing API, is not sufficient for more complex
configurations/DSA routing settings. Consider DSA where there are
multiple switches and the switches are connected via multiple ports:

+----------+   +---------------+   +---------+
|     eth0 <---> sw0p0   sw0p2 <---> sw1p0
| cpu      |   |               |   |        ....
|     eth1 <---> sw0p1   s20p3 <---> sw1p1
+----------+   +---------------+   +---------+

The routing is more complicated in this scenario. The old API is not
sufficient.

Marek