summaryrefslogtreecommitdiff
path: root/net/bridge/br.c
diff options
context:
space:
mode:
authorNikolay Aleksandrov <nikolay@cumulusnetworks.com>2018-11-24 04:34:21 +0200
committerDavid S. Miller <davem@davemloft.net>2018-11-27 15:04:15 -0800
commit70e4272b4c81828e7d942209bae83b9d92752cfe (patch)
tree4d3d081ba8776a1d67206c8c9d0ba4d1807e3092 /net/bridge/br.c
parenta428afe82f98d2ffb31c981671630df1fa25906f (diff)
downloadlinux-rpi-70e4272b4c81828e7d942209bae83b9d92752cfe.tar.gz
linux-rpi-70e4272b4c81828e7d942209bae83b9d92752cfe.tar.bz2
linux-rpi-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.c5
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);