Subject: Re: DSA with MV88E6321 and imx28

From: Andrew Lunn <[email-masked]>
Date: Tue, 11 Jun 2019 14:19:38 +0200

On Tue, Jun 11, 2019 at 09:36:16AM +0200, Benjamin Beckmeyer wrote:
> >> So all ports are now in forwarding mode (Switch port register 0x4 of all ports 
> >> are 0x7f), but I don't reach it over ping.
> > Hi
> >
> > The most common error for people new to DSA is forgetting to bring
> > the master interface up.
> >
> > The second thing to understand is that by default, all interfaces are
> > separated. So the switch won't bridge frames between ports, until you
> > add the ports to a Linux bridge. But you can give each interface its
> > own IP address.
> >
> >     Andrew
> 
> Hi Andrew,
> thanks for your help again. Sorry for the late reply we had a stats day yesterday. 
> What interface do you mean with master interface? I assume, you mean eth0 (cpu port)?

Yes. The master interface is the pipe between the host and the
switch. It is only used as a pipe. It needs to be up, but there is no
point having an IP address on it, since it cannot send packets itself.

lan1-4 are slave interfaces. They can have IP addresses.

> I deleted the IP address of this interface and tried to add it to the bridge:
> 
> brctl addif bridge0 eth0
> brctl: bridge bridge0: Invalid argument

Yes, you should not do this. Just have the master interface up, but
otherwise leave it alone. It also needs to be up before you bring the
slave interfaces up.

> I tried this with all lan1-4 interfaces and they just work and directly after
> I added them I got some information about the port:
> 
> brctl addif br0 lan4
> [  156.085842] br0: port 4(lan4) entered blocking state
> [  156.091022] br0: port 4(lan4) entered disabled state
> 
> After I brought up the bridge with:
> 
> ip link set br0 up
> [  445.313697] br0: port 4(lan4) entered blocking state
> [  445.318896] br0: port 4(lan4) entered forwarding state
> 
> So I gave my eth0 an IP address and started tcpdump on eth0:

No. If you have created a bridge, put the IP address on the bridge.
If you have a slave which is not part of the bridge, you can give it
an IP address. Just treat the interfaces as Linux interfaces. Run
dhclient on them, use ethtool, iproute2, an snmp agent, add them to a
bridge. They are just normal Linux interfaces, which can make use of
the switch hardware to accelerate some operations, like bridging
frames.

   Andrew