aboutsummaryrefslogtreecommitdiffstats
path: root/net/core/dev.c
diff options
context:
space:
mode:
authorAndy Roulin <aroulin@cumulusnetworks.com>2019-02-22 13:06:36 -0500
committerDavid S. Miller <davem@davemloft.net>2019-02-24 16:01:04 -0500
commitb58996795dc4921123ada213f9f10b8317d3f34f (patch)
tree92d774fa39380da66ce4d88f93ec9dfb36c361ff /net/core/dev.c
parent45c0e7b25ab21b8217ae63d1d31850a40e415f57 (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.c19
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}
7955EXPORT_SYMBOL(dev_change_proto_down); 7955EXPORT_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 */
7965int 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}
7974EXPORT_SYMBOL(dev_change_proto_down_generic);
7975
7957u32 __dev_xdp_query(struct net_device *dev, bpf_op_t bpf_op, 7976u32 __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{