aboutsummaryrefslogtreecommitdiffstats
path: root/include/net/switchdev.h
diff options
context:
space:
mode:
authorJiri Pirko <jiri@resnulli.us>2015-01-15 17:49:36 -0500
committerDavid S. Miller <davem@davemloft.net>2015-01-18 00:23:57 -0500
commit03bf0c281234028388108d0aee720954f5fe6924 (patch)
treec1cdfebacbe5d09e904ef185faafd7d8dffc7ee8 /include/net/switchdev.h
parentff8b335610cac5509156f28e03355c895bcc94f5 (diff)
switchdev: introduce switchdev notifier
This patch introduces new notifier for purposes of exposing events which happen on switch driver side. The consumers of the event messages are mainly involved masters, namely bridge and ovs. Suggested-by: Thomas Graf <tgraf@suug.ch> Signed-off-by: Jiri Pirko <jiri@resnulli.us> Signed-off-by: Scott Feldman <sfeldma@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/net/switchdev.h')
-rw-r--r--include/net/switchdev.h31
1 files changed, 31 insertions, 0 deletions
diff --git a/include/net/switchdev.h b/include/net/switchdev.h
index 8a6d1641fd9b..7f8d74372d87 100644
--- a/include/net/switchdev.h
+++ b/include/net/switchdev.h
@@ -11,12 +11,27 @@
11#define _LINUX_SWITCHDEV_H_ 11#define _LINUX_SWITCHDEV_H_
12 12
13#include <linux/netdevice.h> 13#include <linux/netdevice.h>
14#include <linux/notifier.h>
15
16struct netdev_switch_notifier_info {
17 struct net_device *dev;
18};
19
20static inline struct net_device *
21netdev_switch_notifier_info_to_dev(const struct netdev_switch_notifier_info *info)
22{
23 return info->dev;
24}
14 25
15#ifdef CONFIG_NET_SWITCHDEV 26#ifdef CONFIG_NET_SWITCHDEV
16 27
17int netdev_switch_parent_id_get(struct net_device *dev, 28int netdev_switch_parent_id_get(struct net_device *dev,
18 struct netdev_phys_item_id *psid); 29 struct netdev_phys_item_id *psid);
19int netdev_switch_port_stp_update(struct net_device *dev, u8 state); 30int netdev_switch_port_stp_update(struct net_device *dev, u8 state);
31int register_netdev_switch_notifier(struct notifier_block *nb);
32int unregister_netdev_switch_notifier(struct notifier_block *nb);
33int call_netdev_switch_notifiers(unsigned long val, struct net_device *dev,
34 struct netdev_switch_notifier_info *info);
20 35
21#else 36#else
22 37
@@ -32,6 +47,22 @@ static inline int netdev_switch_port_stp_update(struct net_device *dev,
32 return -EOPNOTSUPP; 47 return -EOPNOTSUPP;
33} 48}
34 49
50static inline int register_netdev_switch_notifier(struct notifier_block *nb)
51{
52 return 0;
53}
54
55static inline int unregister_netdev_switch_notifier(struct notifier_block *nb)
56{
57 return 0;
58}
59
60static inline int call_netdev_switch_notifiers(unsigned long val, struct net_device *dev,
61 struct netdev_switch_notifier_info *info);
62{
63 return NOTIFY_DONE;
64}
65
35#endif 66#endif
36 67
37#endif /* _LINUX_SWITCHDEV_H_ */ 68#endif /* _LINUX_SWITCHDEV_H_ */