Re: [PATCH net RESEND] net: ethernet: ti: am65-cpsw: Add IFF_UNICAST_FLT flag to port device

Andrew Lunn
2024-02-29T13:22:31Z

On Wed, Feb 28, 2024 at 08:05:16PM -0800, Jakub Kicinski wrote:
> On Wed, 28 Feb 2024 11:13:23 +0000 Sanjuán García, Jorge wrote:
> > Since commit 8940e6b669ca ("net: dsa: avoid call to __dev_set_promiscuity()
> > while rtnl_mutex isn't held") when conecting one of this switch's port
> > to a DSA switch as the conduit interface, the network interface is set to
> > promiscuous mode by default and cannot be set to not promiscuous mode again
> > from userspace. The reason for this is that the cpsw ports net devices
> > do not have the flag IFF_UNICAST_FLT set in their private flags.
> >
> > The cpsw switch should be able to set not promiscuous mode as otherwise
> > a '1' is written to bit ALE_PORT_MACONLY_CAF which makes ethernet frames
> > get an additional VLAN tag when entering the port connected to the DSA
> > switch. Setting the IFF_UNICAST_FLT flag to all ports allows us to have
> > the conduit interface on the DSA subsystem set as not promiscuous.
>
> It doesn't look like am65-cpsw-nuss supports unicast filtering,
> tho, does it? So we're lying about support to work around some
> CPSW weirdness (additional VLAN tag thing)?

I considered that as well, it is also not clear to me if this actually
works. At minimum the description needs additions.

The interesting thing here is, this is a switch port. If there is an
entry in the FDB, that is as good as a unicast filter.

Now, i've no idea if this actually works. This is more Vladimirs
area. What especially needs testing is a port not a member of a
bridge, when you don't really expect there to be any FDB entries.

Andrew