Subject: Re: [PATCH net-next 5/7] net: marvell: prestera: add LAG support

From: Andrew Lunn <[email-masked]>
Date: Mon, 8 Feb 2021 23:30:44 +0100

> > I took a quick look at it, and what I found left me very puzzled. I hope
> > you do not mind me asking a generic question about the policy around
> > switchdev drivers. If someone published a driver using something similar
> > to the following configuration flow:
> > 
> > iproute2  daemon(SDK)
> >    |        ^    |
> >    :        :    : user/kernel boundary
> >    v        |    |
> > netlink     |    |
> >    |        |    |
> >    v        |    |
> >  driver     |    |
> >    |        |    |
> >    '--------'    |
> >                  : kernel/hardware boundary
> >                  v
> >                 ASIC
> > 
> > My guess is that they would be (rightly IMO) told something along the
> > lines of "we do not accept drivers that are just shims for proprietary
> > SDKs".
> > 
> > But it seems like if that same someone has enough area to spare in their
> > ASIC to embed a CPU, it is perfectly fine to run that same SDK on it,
> > call it "firmware", and then push a shim driver into the kernel tree.
> > 
> > iproute2
> >    |
> >    :               user/kernel boundary
> >    v
> > netlink
> >    |
> >    v
> >  driver
> >    |
> >    |
> >    :               kernel/hardware boundary
> >    '-------------.
> >                  v
> >              daemon(SDK)
> >                  |
> >                  v
> >                 ASIC
> > 
> > What have we, the community, gained by this? In the old world, the
> > vendor usually at least had to ship me the SDK in source form. Having
> > seen the inside of some of those sausage factories, they are not the
> > kinds of code bases that I want at the bottom of my stack; even less so
> > in binary form where I am entirely at the vendor's mercy for bugfixes.
> > 
> > We are talking about a pure Ethernet fabric here, so there is no fig
> > leaf of "regulatory requirements" to hide behind, in contrast to WiFi
> > for example.
> > 
> > Is it the opinion of the netdev community that it is OK for vendors to
> > use this model?

What i find interesting is the comparison between Microchip Sparx5 and
Marvell Prestera. They offer similar capabilities. Both have a CPU on
them. As you say Marvell is pushing their SDK into this CPU, black
box. Microchip decided to open everything, no firmware, the kernel
driver is directly accessing the hardware, the datasheet is available,
and microchip engineers are here on the list.

I really hope that Sparx5 takes off, and displaces Prestera. In terms
of being able to solve issues, we the community can work with
Sparx5. Prestera is too much a black box.

	Andrew