Thread (37 messages) 37 messages, 4 authors, 2023-02-20

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

From: Simon Horman <hidden>
Date: 2023-02-03 08:22:47
Also in: bridge, linux-arm-kernel, linux-mediatek, linux-renesas-soc, lkml

On Thu, Feb 02, 2023 at 06:00:00PM +0100, netdev@kapio-technology.com wrote:
On 2023-01-31 19:56, Simon Horman wrote:
quoted
quoted
--- 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.
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.
quoted
quoted
+	else
+		if (fdb_flags)
nit: else if (fdb_flags)
quoted
+			return 0;
...
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help