]>
Commit | Line | Data |
---|---|---|
30c8bd5a SS |
1 | /* SPDX-License-Identifier: GPL-2.0 */ |
2 | /* Copyright (c) 2018, Intel Corporation. */ | |
3 | ||
4 | #ifndef _FAILOVER_H | |
5 | #define _FAILOVER_H | |
6 | ||
7 | #include <linux/netdevice.h> | |
8 | ||
9 | struct failover_ops { | |
10 | int (*slave_pre_register)(struct net_device *slave_dev, | |
11 | struct net_device *failover_dev); | |
12 | int (*slave_register)(struct net_device *slave_dev, | |
13 | struct net_device *failover_dev); | |
14 | int (*slave_pre_unregister)(struct net_device *slave_dev, | |
15 | struct net_device *failover_dev); | |
16 | int (*slave_unregister)(struct net_device *slave_dev, | |
17 | struct net_device *failover_dev); | |
18 | int (*slave_link_change)(struct net_device *slave_dev, | |
19 | struct net_device *failover_dev); | |
20 | int (*slave_name_change)(struct net_device *slave_dev, | |
21 | struct net_device *failover_dev); | |
22 | rx_handler_result_t (*slave_handle_frame)(struct sk_buff **pskb); | |
23 | }; | |
24 | ||
25 | struct failover { | |
26 | struct list_head list; | |
27 | struct net_device __rcu *failover_dev; | |
28 | struct failover_ops __rcu *ops; | |
29 | }; | |
30 | ||
31 | struct failover *failover_register(struct net_device *dev, | |
32 | struct failover_ops *ops); | |
33 | void failover_unregister(struct failover *failover); | |
34 | int failover_slave_unregister(struct net_device *slave_dev); | |
35 | ||
36 | #endif /* _FAILOVER_H */ |