Re: [PATCH v3 net-next 5/8] net: dsa: felix: support psfp filter on vsc9959

Vladimir Oltean
2021-08-31T08:55:23Z

On Tue, Aug 31, 2021 at 11:46:10AM +0300, Vladimir Oltean wrote:
> On Tue, Aug 31, 2021 at 08:41:36AM +0000, Xiaoliang Yang wrote:
> > Hi Vladimir,
> >
> > On Tue, Aug 31, 2021 at 15:55:26AM +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?

Ah, ok, I was missing the context of the larger change.
vsc9959_psfp_filter_del sets stream->sfid_valid = 0, then calls
vsc9959_stream_table_del which calls the common vsc9959_mact_stream_set.

> 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?

This question remains though.