switchdev: introduce switchdev notifier
[deliverable/linux.git] / include / net / switchdev.h
CommitLineData
007f790c
JP
1/*
2 * include/net/switchdev.h - Switch device API
3 * Copyright (c) 2014 Jiri Pirko <jiri@resnulli.us>
4 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 2 of the License, or
8 * (at your option) any later version.
9 */
10#ifndef _LINUX_SWITCHDEV_H_
11#define _LINUX_SWITCHDEV_H_
12
13#include <linux/netdevice.h>
03bf0c28
JP
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}
007f790c
JP
25
26#ifdef CONFIG_NET_SWITCHDEV
27
28int netdev_switch_parent_id_get(struct net_device *dev,
29 struct netdev_phys_item_id *psid);
38dcf357 30int netdev_switch_port_stp_update(struct net_device *dev, u8 state);
03bf0c28
JP
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);
007f790c
JP
35
36#else
37
38static inline int netdev_switch_parent_id_get(struct net_device *dev,
39 struct netdev_phys_item_id *psid)
40{
41 return -EOPNOTSUPP;
42}
43
38dcf357
SF
44static inline int netdev_switch_port_stp_update(struct net_device *dev,
45 u8 state)
46{
47 return -EOPNOTSUPP;
48}
49
03bf0c28
JP
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
007f790c
JP
66#endif
67
68#endif /* _LINUX_SWITCHDEV_H_ */
This page took 0.037781 seconds and 5 git commands to generate.