Re: [PATCH net] net: dsa: b53: be VLAN unaware when not filtering

From: Jonas Gorski

Date: Tue Aug 11 2026 - 04:06:32 EST


On Mon, Aug 10, 2026 at 2:04 PM Vladimir Oltean <olteanv@xxxxxxxxx> wrote:
>
> On Thu, Aug 06, 2026 at 01:09:03PM +0200, Jonas Gorski wrote:
> > > static int b53_arl_rw_op(struct b53_device *dev, unsigned int op)
> > > {
> > > u8 reg;
> > >
> > > if (op > ARLTBL_RW)
> > > return -EINVAL;
> > >
> > > b53_read8(dev, B53_ARLIO_PAGE, B53_ARLTBL_RW_CTRL, &reg);
> > > reg |= ARLTBL_START_DONE;
> > > if (op)
> > > reg |= ARLTBL_RW;
> > > else
> > > reg &= ~ARLTBL_RW;
> > > if (dev->vlan_enabled)
> > > reg &= ~ARLTBL_IVL_SVL_SELECT;
> > > else
> > > reg |= ARLTBL_IVL_SVL_SELECT;
> >
> > This ARLTBL_IVL_SVL_SELECT bit is only implemented for a small subset
> > of switches (bcm5302x / bcm58* and bcm53134). Additionally, according
> > to the register description, this also requires enabling "per port
> > IVL/SVL" mode, which is not enable by b53. The description of that
> > also says that the VIDs used in SVL ports must not be used in IVL
> > ports. No idea what the consequences are if they do.
>
> What does enabling per port IVL/SVL mode do?

I don't have access to a datasheet or a device to test, Florian will
need to answer that completely.

I can only guess from the register descriptions, which imply that
enabling SVL for port makes any ARL lookups SVL based, i.e. VID is
ignored/forced to 0. Presumably this essentially only applies to for
frames received on that port for lookup / learning.

There is a global option for configuring IVL or SVL, but this option
is only valid when VLAN-aware is enabled in the switch. Without it,
learning is always SVL.

I do not know how the per port IVL/SVL actually register works, and
whether you can enable IVL in VLAN-unaware mode (I would guess not).

Note that there is no differentiation in ARL entries themselves
whether they are IVL or SVL entries, only the table index calculation
changes.

Best regards,
Jonas