Message ID | 20230919-fdb_limit-v4-1-39f0293807b8@avm.de (mailing list archive) |
---|---|
State | Accepted |
Commit | cbf51acbc5d50341290c79c97bda8cf46f5c4f22 |
Headers | show |
Series | bridge: Add a limit on learned FDB entries | expand |
On 9/19/23 11:12, Johannes Nixdorf wrote: > In preparation of the following fdb limit for dynamically learned entries, > allow fdb_create to detect that the entry was added by the user. This > way it can skip applying the limit in this case. > > Signed-off-by: Johannes Nixdorf <jnixdorf-oss@avm.de> > --- > net/bridge/br_fdb.c | 7 ++++--- > 1 file changed, 4 insertions(+), 3 deletions(-) > > diff --git a/net/bridge/br_fdb.c b/net/bridge/br_fdb.c > index e69a872bfc1d..f517ea92132c 100644 > --- a/net/bridge/br_fdb.c > +++ b/net/bridge/br_fdb.c > @@ -1056,7 +1056,8 @@ static int fdb_add_entry(struct net_bridge *br, struct net_bridge_port *source, > if (!(flags & NLM_F_CREATE)) > return -ENOENT; > > - fdb = fdb_create(br, source, addr, vid, 0); > + fdb = fdb_create(br, source, addr, vid, > + BIT(BR_FDB_ADDED_BY_USER)); > if (!fdb) > return -ENOMEM; > > @@ -1069,6 +1070,8 @@ static int fdb_add_entry(struct net_bridge *br, struct net_bridge_port *source, > WRITE_ONCE(fdb->dst, source); > modified = true; > } > + > + set_bit(BR_FDB_ADDED_BY_USER, &fdb->flags); > } > > if (fdb_to_nud(br, fdb) != state) { > @@ -1100,8 +1103,6 @@ static int fdb_add_entry(struct net_bridge *br, struct net_bridge_port *source, > if (fdb_handle_notify(fdb, notify)) > modified = true; > > - set_bit(BR_FDB_ADDED_BY_USER, &fdb->flags); > - > fdb->used = jiffies; > if (modified) { > if (refresh) > Acked-by: Nikolay Aleksandrov <razor@blackwall.org>
On Tue, Sep 19, 2023 at 10:12:48AM +0200, Johannes Nixdorf wrote: > In preparation of the following fdb limit for dynamically learned entries, > allow fdb_create to detect that the entry was added by the user. This > way it can skip applying the limit in this case. > > Signed-off-by: Johannes Nixdorf <jnixdorf-oss@avm.de> Reviewed-by: Ido Schimmel <idosch@nvidia.com>
diff --git a/net/bridge/br_fdb.c b/net/bridge/br_fdb.c index e69a872bfc1d..f517ea92132c 100644 --- a/net/bridge/br_fdb.c +++ b/net/bridge/br_fdb.c @@ -1056,7 +1056,8 @@ static int fdb_add_entry(struct net_bridge *br, struct net_bridge_port *source, if (!(flags & NLM_F_CREATE)) return -ENOENT; - fdb = fdb_create(br, source, addr, vid, 0); + fdb = fdb_create(br, source, addr, vid, + BIT(BR_FDB_ADDED_BY_USER)); if (!fdb) return -ENOMEM; @@ -1069,6 +1070,8 @@ static int fdb_add_entry(struct net_bridge *br, struct net_bridge_port *source, WRITE_ONCE(fdb->dst, source); modified = true; } + + set_bit(BR_FDB_ADDED_BY_USER, &fdb->flags); } if (fdb_to_nud(br, fdb) != state) { @@ -1100,8 +1103,6 @@ static int fdb_add_entry(struct net_bridge *br, struct net_bridge_port *source, if (fdb_handle_notify(fdb, notify)) modified = true; - set_bit(BR_FDB_ADDED_BY_USER, &fdb->flags); - fdb->used = jiffies; if (modified) { if (refresh)
In preparation of the following fdb limit for dynamically learned entries, allow fdb_create to detect that the entry was added by the user. This way it can skip applying the limit in this case. Signed-off-by: Johannes Nixdorf <jnixdorf-oss@avm.de> --- net/bridge/br_fdb.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-)