On Tue, May 30, 2017 at 05:16:27PM -0700, Florian Fainelli wrote: > On 05/30/2017 05:06 PM, Andrew Lunn wrote: > >> - past the initial setup, if we start creating bridge devices and so on, > >> we have no way to tell: group Ports 0-3 together and send traffic to CPU > >> port 0, then let Port 5 alone and send traffic to CPU port 1, that's a > >> DSA-only problem though, because we still have the CPU port(s) as > >> independent network interfaces. > > > > What is the problem here? Frames come out the master interface, get > > untagged and passed to the slave interface and go upto the bridge. It > > should all just work. Same in the reverse direction. > > The problem is really that is you have multiple CPU ports, how do you > define which one gets all the traffic by default? Ascending order of > port number? Descending order?
I would probably default to round robin when allocating user ports to CPU ports. That probably gives you the best default. > I actually tend to think that most use cases our there are in the order > of dedicating one CPU port to one corresponding switch port (user > facing, or internal) in order to provided guaranteed bandwidth for that > port. Which is generally a waste of bandwidth. Best case, i get 40Mbps Internet access. Meaning 960Mbps of a dedicated cpu port would be wasted. > But as an user, I want to choose how the grouping is going to > work, and right now, I cannot, unless this is hardcoded in Device Tree, > which sounds both wrong and inadequate. So how about round-robin default, and then devlink to move a user port to a specific cpu port? We also need to watch out for asymmetry. I think newer marvell chips don't support egress to multiple CPU ports. Ingress to the switch i think is unlimited. The older chips are more flexible in this respect. So we need some degree of flexibility here. Andrew