Re: [PATCH net-next v2 2/7] net: switchdev: support static FDB addresses
From: Scott Feldman <hidden>
Date: 2015-08-06 06:28:37
Also in:
lkml
On Wed, Aug 5, 2015 at 10:44 PM, Vivien Didelot [off-list ref] wrote:
quoted hunk ↗ jump to hunk
This patch adds a is_static boolean to the switchdev_obj_fdb structure, in order to set the ndm_state to either NUD_NOARP or NUD_REACHABLE. Signed-off-by: Vivien Didelot <redacted> --- include/net/switchdev.h | 1 + net/switchdev/switchdev.c | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-)diff --git a/include/net/switchdev.h b/include/net/switchdev.h index e90e1a0..0e296b8 100644 --- a/include/net/switchdev.h +++ b/include/net/switchdev.h@@ -72,6 +72,7 @@ struct switchdev_obj { struct switchdev_obj_fdb { /* PORT_FDB */ u8 addr[ETH_ALEN]; u16 vid; + bool is_static;
What do you think about changing this to u16 ndm_state? That way, it can be used on input (fdb add) and output (fdb dump), and the driver can privately track the state, kind of like how the bridge keeps is_static, is_local, etc.
quoted hunk ↗ jump to hunk
} fdb; } u; };diff --git a/net/switchdev/switchdev.c b/net/switchdev/switchdev.c index 9db87a3..e9d1cac 100644 --- a/net/switchdev/switchdev.c +++ b/net/switchdev/switchdev.c@@ -811,7 +811,7 @@ static int switchdev_port_fdb_dump_cb(struct net_device *dev, ndm->ndm_flags = NTF_SELF; ndm->ndm_type = 0; ndm->ndm_ifindex = dev->ifindex; - ndm->ndm_state = NUD_REACHABLE; + ndm->ndm_state = obj->u.fdb.is_static ? NUD_NOARP : NUD_REACHABLE; if (nla_put(dump->skb, NDA_LLADDR, ETH_ALEN, obj->u.fdb.addr)) goto nla_put_failure; --2.4.6