diff options
Diffstat (limited to 'net/batman-adv/multicast.h')
-rw-r--r-- | net/batman-adv/multicast.h | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/net/batman-adv/multicast.h b/net/batman-adv/multicast.h new file mode 100644 index 000000000000..73b5d45819c1 --- /dev/null +++ b/net/batman-adv/multicast.h | |||
@@ -0,0 +1,80 @@ | |||
1 | /* Copyright (C) 2014 B.A.T.M.A.N. contributors: | ||
2 | * | ||
3 | * Linus Lüssing | ||
4 | * | ||
5 | * This program is free software; you can redistribute it and/or | ||
6 | * modify it under the terms of version 2 of the GNU General Public | ||
7 | * License as published by the Free Software Foundation. | ||
8 | * | ||
9 | * This program is distributed in the hope that it will be useful, but | ||
10 | * WITHOUT ANY WARRANTY; without even the implied warranty of | ||
11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
12 | * General Public License for more details. | ||
13 | * | ||
14 | * You should have received a copy of the GNU General Public License | ||
15 | * along with this program; if not, see <http://www.gnu.org/licenses/>. | ||
16 | */ | ||
17 | |||
18 | #ifndef _NET_BATMAN_ADV_MULTICAST_H_ | ||
19 | #define _NET_BATMAN_ADV_MULTICAST_H_ | ||
20 | |||
21 | /** | ||
22 | * batadv_forw_mode - the way a packet should be forwarded as | ||
23 | * @BATADV_FORW_ALL: forward the packet to all nodes (currently via classic | ||
24 | * flooding) | ||
25 | * @BATADV_FORW_SINGLE: forward the packet to a single node (currently via the | ||
26 | * BATMAN unicast routing protocol) | ||
27 | * @BATADV_FORW_NONE: don't forward, drop it | ||
28 | */ | ||
29 | enum batadv_forw_mode { | ||
30 | BATADV_FORW_ALL, | ||
31 | BATADV_FORW_SINGLE, | ||
32 | BATADV_FORW_NONE, | ||
33 | }; | ||
34 | |||
35 | #ifdef CONFIG_BATMAN_ADV_MCAST | ||
36 | |||
37 | void batadv_mcast_mla_update(struct batadv_priv *bat_priv); | ||
38 | |||
39 | enum batadv_forw_mode | ||
40 | batadv_mcast_forw_mode(struct batadv_priv *bat_priv, struct sk_buff *skb, | ||
41 | struct batadv_orig_node **mcast_single_orig); | ||
42 | |||
43 | void batadv_mcast_init(struct batadv_priv *bat_priv); | ||
44 | |||
45 | void batadv_mcast_free(struct batadv_priv *bat_priv); | ||
46 | |||
47 | void batadv_mcast_purge_orig(struct batadv_orig_node *orig_node); | ||
48 | |||
49 | #else | ||
50 | |||
51 | static inline void batadv_mcast_mla_update(struct batadv_priv *bat_priv) | ||
52 | { | ||
53 | return; | ||
54 | } | ||
55 | |||
56 | static inline enum batadv_forw_mode | ||
57 | batadv_mcast_forw_mode(struct batadv_priv *bat_priv, struct sk_buff *skb, | ||
58 | struct batadv_orig_node **mcast_single_orig) | ||
59 | { | ||
60 | return BATADV_FORW_ALL; | ||
61 | } | ||
62 | |||
63 | static inline int batadv_mcast_init(struct batadv_priv *bat_priv) | ||
64 | { | ||
65 | return 0; | ||
66 | } | ||
67 | |||
68 | static inline void batadv_mcast_free(struct batadv_priv *bat_priv) | ||
69 | { | ||
70 | return; | ||
71 | } | ||
72 | |||
73 | static inline void batadv_mcast_purge_orig(struct batadv_orig_node *orig_node) | ||
74 | { | ||
75 | return; | ||
76 | } | ||
77 | |||
78 | #endif /* CONFIG_BATMAN_ADV_MCAST */ | ||
79 | |||
80 | #endif /* _NET_BATMAN_ADV_MULTICAST_H_ */ | ||