On Fri, Jun 18, 2010 at 01:09:32PM +0200, Joakim Tjernlund wrote:
This statement assumes that all ports have been configured into a
bridge, which is not the default case. (And why would it be? Having each
port in the same VLAN/subnet is only one of the many possible ways of
configuring your switch ports -- and regular (non-DSA) Linux network
interfaces aren't bridged together by default either.) I.e. after boot,
each of the switch ports behaves as if it's independent.
In current upstream kernels, if you in fact bridge all switch ports
together using Linux bridging, this address lookup will be done by the
Linux bridging code.
That the DSA interfaces will behave just like non-DSA Linux network
interfaces.
Yes. The original DSA commit message says as much:
The switch driver presents each port on the switch as a separate
network interface to Linux, [...]
Yes and no. Right now there is no hardware switch offload code in the
upstream kernel, so all bridging will still be done in software. You
will need something along the lines of the patch I pointed you to to
enable hardware bridging.
With the hardware bridging patch, hardware bridging will continue if
you don't break down your br0 interface before rebooting. (Of course,
your board might still have a hardware reset line that resets the
switch when the CPU resets.)
Imagine the case where you bridge lan1, lan2 (both on the switch chip)
into br0, together with wlan0 (which is not on the switch chip).
Now a packet is sent out of br0. Should it be sent to wlan0 or to the
switch chip? How will you make this decision without an address database
on the Linux side?
The idea is to use existing kernel interface for this as much as
possible. So e.g. if you do:
vconfig add lan1 123
vconfig add lan2 123
brctl addbr br123
brctl addif br123 lan1.123
brctl addif br123 lan2.123
Then the DSA code (or some userspace netlink listener helper, or some
combination of both) should ideally also detect that VLAN 123 on
interfaces lan1 and lan2 are to be bridged together, and program the
switch chip accordingly. I think all VLAN configurations that at least
the Marvell hardware supports can be expressed this way.
To configure things like ingress/egress rate limiting and such in the
switch chip for which there is no Linux counterpart interface, I suppose
some sysfs interface or so might suffice.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html