netdev at kapio-technology.com
2023-Feb-02 16:45 UTC
[Bridge] [PATCH net-next 3/5] drivers: net: dsa: add fdb entry flags incoming to switchcore drivers
On 2023-01-31 19:54, Simon Horman wrote:>> --- a/drivers/net/dsa/b53/b53_common.c >> +++ b/drivers/net/dsa/b53/b53_common.c >> @@ -1684,11 +1684,15 @@ static int b53_arl_op(struct b53_device *dev, >> int op, int port, >> >> int b53_fdb_add(struct dsa_switch *ds, int port, >> const unsigned char *addr, u16 vid, >> - struct dsa_db db) >> + u16 fdb_flags, struct dsa_db db) >> { >> struct b53_device *priv = ds->priv; >> int ret; >> >> + /* Ignore entries with set flags */ >> + if (fdb_flags) >> + return 0; > > > Would returning -EOPNOTSUPP be more appropriate? > > ...I don't think that would be so good, as the command bridge fdb replace ADDR dev <DEV> master dynamic is a valid command and should not generate errors. When ignored by the driver, it will just install a dynamic FDB entry in the bridge, and the bridge will age it.
Simon Horman
2023-Feb-03 08:17 UTC
[Bridge] [PATCH net-next 3/5] drivers: net: dsa: add fdb entry flags incoming to switchcore drivers
On Thu, Feb 02, 2023 at 05:45:56PM +0100, netdev at kapio-technology.com wrote:> On 2023-01-31 19:54, Simon Horman wrote: > > > --- a/drivers/net/dsa/b53/b53_common.c > > > +++ b/drivers/net/dsa/b53/b53_common.c > > > @@ -1684,11 +1684,15 @@ static int b53_arl_op(struct b53_device > > > *dev, int op, int port, > > > > > > int b53_fdb_add(struct dsa_switch *ds, int port, > > > const unsigned char *addr, u16 vid, > > > - struct dsa_db db) > > > + u16 fdb_flags, struct dsa_db db) > > > { > > > struct b53_device *priv = ds->priv; > > > int ret; > > > > > > + /* Ignore entries with set flags */ > > > + if (fdb_flags) > > > + return 0; > > > > > > Would returning -EOPNOTSUPP be more appropriate? > > > > ... > > I don't think that would be so good, as the command > > bridge fdb replace ADDR dev <DEV> master dynamic > > is a valid command and should not generate errors. When ignored by the > driver, it will just install a dynamic FDB entry in the bridge, and the > bridge will age it.Sure, I agree that it's not necessarily an error that needs to propagate to the user. My assumption, which I now see is likely false, is that drivers could return -EOPNOTSUPP, to indicate to higher layers that the operation is not supported. But the higher layers may not propagate that. But it seems that is not the case here. So I think return 0 is fine after all. Sorry for the noise.
netdev at kapio-technology.com
2023-Feb-03 18:41 UTC
[Bridge] [PATCH net-next 3/5] drivers: net: dsa: add fdb entry flags incoming to switchcore drivers
On 2023-02-03 09:17, Simon Horman wrote:> On Thu, Feb 02, 2023 at 05:45:56PM +0100, netdev at kapio-technology.com > wrote: >> On 2023-01-31 19:54, Simon Horman wrote: >> > > --- a/drivers/net/dsa/b53/b53_common.c >> > > +++ b/drivers/net/dsa/b53/b53_common.c >> > > @@ -1684,11 +1684,15 @@ static int b53_arl_op(struct b53_device >> > > *dev, int op, int port, >> > > >> > > int b53_fdb_add(struct dsa_switch *ds, int port, >> > > const unsigned char *addr, u16 vid, >> > > - struct dsa_db db) >> > > + u16 fdb_flags, struct dsa_db db) >> > > { >> > > struct b53_device *priv = ds->priv; >> > > int ret; >> > > >> > > + /* Ignore entries with set flags */ >> > > + if (fdb_flags) >> > > + return 0; >> > >> > >> > Would returning -EOPNOTSUPP be more appropriate? >> > >> > ... >> >> I don't think that would be so good, as the command >> >> bridge fdb replace ADDR dev <DEV> master dynamic >> >> is a valid command and should not generate errors. When ignored by the >> driver, it will just install a dynamic FDB entry in the bridge, and >> the >> bridge will age it. > > Sure, I agree that it's not necessarily an error that needs > to propagate to the user. > > My assumption, which I now see is likely false, is that drivers > could return -EOPNOTSUPP, to indicate to higher layers that the > operation > is not supported. But the higher layers may not propagate that. > > But it seems that is not the case here. So I think return 0 is fine > after all. Sorry for the noise.No noise at all... I think your concern is quite ligitimate. With this flag there is no iproute2 changes, so not to change behaviour of old commands the best is to ignore silently. But I have another flag coming up that will be accomodated with a new iproute2 command, and then your suggestion is more appropriate. The question will then be if the returns for that flag should be -EOPNOTSUPP.