[PATCH net-next 5/5] net: dsa: mv88e6xxx: implementation of dynamic ATU entries
netdev at kapio-technology.com
netdev at kapio-technology.com
Thu Feb 2 09:00:00 PST 2023
On 2023-01-31 19:56, Simon Horman wrote:
>> --- a/drivers/net/dsa/mv88e6xxx/chip.c
>> +++ b/drivers/net/dsa/mv88e6xxx/chip.c
>> @@ -42,6 +42,7 @@
>> #include "ptp.h"
>> #include "serdes.h"
>> #include "smi.h"
>> +#include "switchdev.h"
>>
>> static void assert_reg_lock(struct mv88e6xxx_chip *chip)
>> {
>> @@ -2726,18 +2727,25 @@ static int mv88e6xxx_port_fdb_add(struct
>> dsa_switch *ds, int port,
>> const unsigned char *addr, u16 vid,
>> u16 fdb_flags, struct dsa_db db)
>> {
>> + bool is_dynamic = !!(fdb_flags & DSA_FDB_FLAG_DYNAMIC);
>> struct mv88e6xxx_chip *chip = ds->priv;
>> + u8 state;
>> int err;
>>
>> - /* Ignore entries with flags set */
>> - if (fdb_flags)
>> - return 0;
>> + state = MV88E6XXX_G1_ATU_DATA_STATE_UC_STATIC;
>> + if (is_dynamic)
>> + state = MV88E6XXX_G1_ATU_DATA_STATE_UC_AGE_7_NEWEST;
>
> What if flags other than DSA_FDB_FLAG_DYNAMIC are set (in future)?
They will have to be caught and handled here if there is support for it,
e.g. something like...
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.
>
>> + else
>> + if (fdb_flags)
>
> nit: else if (fdb_flags)
>
>> + return 0;
>>
>
> ...
More information about the Linux-mediatek
mailing list