Re: [PATCH net-next 5/5] net: dsa: mv88e6xxx: implementation of dynamic ATU entries

From: netdev
Date: Sat Feb 04 2023 - 03:48:39 EST


On 2023-02-04 09:12, Simon Horman wrote:
On Fri, Feb 03, 2023 at 10:44:22PM +0200, Vladimir Oltean wrote:
On Fri, Feb 03, 2023 at 09:20:22AM +0100, Simon Horman wrote:
> > else if (someflag)
> > dosomething();
> >
> > For now only one flag will actually be set and they are mutually exclusive,
> > as they will not make sense together with the potential flags I know, but
> > that can change at some time of course.
>
> Yes, I see that is workable. I do feel that checking for other flags would
> be a bit more robust. But as you say, there are none. So whichever
> approach you prefer is fine by me.

The model we have for unsupported bits in the SWITCHDEV_ATTR_ID_PORT_PRE_BRIDGE_FLAGS
and SWITCHDEV_ATTR_ID_PORT_BRIDGE_FLAGS handlers is essentially this:

if (flags & ~(supported_flag_mask))
return -EOPNOTSUPP;

if (flags & supported_flag_1)
...

if (flags & supported_flag_2)
...

I suppose applying this model here would address Simon's extensibility concern.

Yes, that is the model I had in mind.

The only thing is that we actually need to return both 0 and -EOPNOTSUPP for unsupported flags. The dynamic flag requires 0 when not supported (and supported) AFAICS.
Setting a mask as 'supported' for a feature that is not really supported defeats the notion of 'supported' IMHO.