diff options
author | Andy Roulin <aroulin@cumulusnetworks.com> | 2019-02-22 13:06:36 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2019-02-24 16:01:04 -0500 |
commit | b58996795dc4921123ada213f9f10b8317d3f34f (patch) | |
tree | 92d774fa39380da66ce4d88f93ec9dfb36c361ff /net/core/dev.c | |
parent | 45c0e7b25ab21b8217ae63d1d31850a40e415f57 (diff) |
net: dev: add generic protodown handler
Introduce dev_change_proto_down_generic, a generic ndo_change_proto_down
implementation, which sets the netdev carrier state according to proto_down.
This adds the ability to set protodown on vxlan and macvlan devices in a
generic way for use by control protocols like VRRPD.
Signed-off-by: Andy Roulin <aroulin@cumulusnetworks.com>
Acked-by: Roopa Prabhu <roopa@cumulusnetworks.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/core/dev.c')
-rw-r--r-- | net/core/dev.c | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/net/core/dev.c b/net/core/dev.c index 8a0da95ff4cc..2b67f2aa59dd 100644 --- a/net/core/dev.c +++ b/net/core/dev.c | |||
@@ -7954,6 +7954,25 @@ int dev_change_proto_down(struct net_device *dev, bool proto_down) | |||
7954 | } | 7954 | } |
7955 | EXPORT_SYMBOL(dev_change_proto_down); | 7955 | EXPORT_SYMBOL(dev_change_proto_down); |
7956 | 7956 | ||
7957 | /** | ||
7958 | * dev_change_proto_down_generic - generic implementation for | ||
7959 | * ndo_change_proto_down that sets carrier according to | ||
7960 | * proto_down. | ||
7961 | * | ||
7962 | * @dev: device | ||
7963 | * @proto_down: new value | ||
7964 | */ | ||
7965 | int dev_change_proto_down_generic(struct net_device *dev, bool proto_down) | ||
7966 | { | ||
7967 | if (proto_down) | ||
7968 | netif_carrier_off(dev); | ||
7969 | else | ||
7970 | netif_carrier_on(dev); | ||
7971 | dev->proto_down = proto_down; | ||
7972 | return 0; | ||
7973 | } | ||
7974 | EXPORT_SYMBOL(dev_change_proto_down_generic); | ||
7975 | |||
7957 | u32 __dev_xdp_query(struct net_device *dev, bpf_op_t bpf_op, | 7976 | u32 __dev_xdp_query(struct net_device *dev, bpf_op_t bpf_op, |
7958 | enum bpf_netdev_command cmd) | 7977 | enum bpf_netdev_command cmd) |
7959 | { | 7978 | { |