Re: [PATCH net-next 2/6] net: dsa: vsc73xx: add port_stp_state_set function

From: Vladimir Oltean
Date: Sun Jun 25 2023 - 07:21:39 EST


On Wed, Jun 21, 2023 at 11:27:14PM +0200, Linus Walleij wrote:
> On Wed, Jun 21, 2023 at 9:33 PM Andrew Lunn <andrew@xxxxxxx> wrote:
>
> > > + struct vsc73xx *vsc = ds->priv;
> > > + /* FIXME: STP frames isn't forwarded at this moment. BPDU frames are
> > > + * forwarded only from to PI/SI interface. For more info see chapter
> > > + * 2.7.1 (CPU Forwarding) in datasheet.
> >
> > Do you mean the CPU never gets to see the BPDU frames?
> >
> > Does the hardware have any sort of packet matching to trap frames to
> > the CPU? Can you match on the destination MAC address
> > 01:80:C2:00:00:00 ?
>
> The hardware contains an embedded Intel 8054 CPU that can
> execute programs to do pretty much anything.
>
> The bad news: it requires a custom SDK thingy that we do not
> have access to.
>
> So far we used the chips in a bit of vanilla mode, which is all I
> have ever seen in the systems we have and it can't do much,
> not even add a helpful frame tag, but as can be seen from the
> patches it can do VLAN...
>
> Yours,
> Linus Walleij

But even without involving the iCPU, it should be possible to inject/extract
control packets over the SI interface, using the CPU_CAPT and CPUTXDAT block
registers, correct?

IIUC, ocelot with tag_8021q does just that for STP and PTP, see
ocelot_port_inject_frame() and ocelot_xtr_poll_frame().