RE: [PATCH v3 net-next 5/8] net: dsa: felix: support psfp filter on vsc9959
From: Xiaoliang Yang
Date: Tue Aug 31 2021 - 05:00:02 EST
On Tue, Aug 31, 2021 at 16:46:13AM +0800, Vladimir Oltean wrote:
> > > > +static int vsc9959_mact_stream_set(struct ocelot *ocelot,
> > > > + struct felix_stream *stream,
> > > > + struct netlink_ext_ack *extack) {
> > > > + struct ocelot_mact_entry entry;
> > > > + u32 row, col, reg, dst_idx;
> > > > + int ret;
> > > > +
> > > > + /* Stream identification desn't support to add a stream with non
> > > > + * existent MAC (The MAC entry has not been learned in MAC table).
> > > > + */
> > >
> > > Who will add the MAC entry to the MAC table in this design? The user?
> >
> > Yes, The MAC entry is always learned by hardware, user also can add it
> > by using "bridge fdb add".
> >
> > > So if the STREAMDATA entry for this SFID was valid, you mark the MAC
> > > table entry as static, otherwise you mark it as ageable? Why?
> >
> > If the MAC entry is learned by hardware, it's marked as ageable. When
> > setting the PSFP filter on this stream, it needs to be set to static.
> > For example, if the MAC table entry is not set to static, when link is
> > down for a period of time, the MAC entry will be forgotten, and SFID
> > information will be lost.
> > After disable PSFP filter on the stream, there is no need to keep the
> > MAC entry static, setting the type back to ageable can cope with
> > network topology changes.
> >
>
> So if the MAC table entry is ageable, will the TSN stream disappear from
> hardware even though it is still present in tc?
Yes, PSFP filter information on the stream will be lost in hardware.
>
> I think in previous versions you were automatically installing a static MAC table
> entry when one was not present (either it was absent, or the entry was
> dynamically learned). Why did that change?
The PSFP gate and police action are set on ingress port, and " tc-filter" has no parameter to set the forward port for the filtered stream. And I also think that adding a FDB mac entry in tc-filter command is not good.