Re: [PATCH V2 2/3] net-next: dsa: add multi cpu port support
From: Andrew Lunn <andrew@lunn.ch>
Date: 2017-05-31 00:52:57
Also in:
lkml
On Tue, May 30, 2017 at 05:16:27PM -0700, Florian Fainelli wrote:
On 05/30/2017 05:06 PM, Andrew Lunn wrote:quoted
quoted
- 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