diff options
author | Nikolay Aleksandrov <nikolay@cumulusnetworks.com> | 2018-11-24 04:34:21 +0200 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2018-11-27 15:04:15 -0800 |
commit | 70e4272b4c81828e7d942209bae83b9d92752cfe (patch) | |
tree | 4d3d081ba8776a1d67206c8c9d0ba4d1807e3092 /net/bridge/br.c | |
parent | a428afe82f98d2ffb31c981671630df1fa25906f (diff) | |
download | linux-70e4272b4c81828e7d942209bae83b9d92752cfe.tar.gz linux-70e4272b4c81828e7d942209bae83b9d92752cfe.tar.bz2 linux-70e4272b4c81828e7d942209bae83b9d92752cfe.zip |
net: bridge: add no_linklocal_learn bool option
Use the new boolopt API to add an option which disables learning from
link-local packets. The default is kept as before and learning is
enabled. This is a simple map from a boolopt bit to a bridge private
flag that is tested before learning.
v2: pass NULL for extack via sysfs
Signed-off-by: Nikolay Aleksandrov <nikolay@cumulusnetworks.com>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/bridge/br.c')
-rw-r--r-- | net/bridge/br.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/net/bridge/br.c b/net/bridge/br.c index c527160c1975..b4a51a053586 100644 --- a/net/bridge/br.c +++ b/net/bridge/br.c @@ -189,6 +189,9 @@ int br_boolopt_toggle(struct net_bridge *br, enum br_boolopt_id opt, bool on, struct netlink_ext_ack *extack) { switch (opt) { + case BR_BOOLOPT_NO_LL_LEARN: + br_opt_toggle(br, BROPT_NO_LL_LEARN, on); + break; default: /* shouldn't be called with unsupported options */ WARN_ON(1); @@ -201,6 +204,8 @@ int br_boolopt_toggle(struct net_bridge *br, enum br_boolopt_id opt, bool on, int br_boolopt_get(const struct net_bridge *br, enum br_boolopt_id opt) { switch (opt) { + case BR_BOOLOPT_NO_LL_LEARN: + return br_opt_get(br, BROPT_NO_LL_LEARN); default: /* shouldn't be called with unsupported options */ WARN_ON(1); |