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

From: Marek Behún
Date: Fri Sep 02 2022 - 22:48:48 EST


On Fri, 2 Sep 2022 10:31:46 +0000
Vladimir Oltean <vladimir.oltean@xxxxxxx> 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/20190824024251.4542-4-marek.behun@xxxxxx/
>
> 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