Blame view
net/batman-adv/multicast.h
2.87 KB
7db7d9f36 batman-adv: Add S... |
1 |
/* SPDX-License-Identifier: GPL-2.0 */ |
68e039f96 batman-adv: Updat... |
2 |
/* Copyright (C) 2014-2020 B.A.T.M.A.N. contributors: |
c5caf4ef3 batman-adv: Multi... |
3 4 |
* * Linus Lüssing |
c5caf4ef3 batman-adv: Multi... |
5 6 7 8 |
*/ #ifndef _NET_BATMAN_ADV_MULTICAST_H_ #define _NET_BATMAN_ADV_MULTICAST_H_ |
1e2c2a4fe batman-adv: Add r... |
9 |
#include "main.h" |
68a600de9 batman-adv: Use i... |
10 11 12 |
#include <linux/netlink.h> #include <linux/seq_file.h> #include <linux/skbuff.h> |
1e2c2a4fe batman-adv: Add r... |
13 |
|
1d8ab8d3c batman-adv: Modif... |
14 |
/** |
6f68b0027 batman-adv: Fix k... |
15 |
* enum batadv_forw_mode - the way a packet should be forwarded as |
1d8ab8d3c batman-adv: Modif... |
16 17 |
*/ enum batadv_forw_mode { |
8b84cc4fb batman-adv: Use i... |
18 19 20 21 |
/** * @BATADV_FORW_ALL: forward the packet to all nodes (currently via * classic flooding) */ |
1d8ab8d3c batman-adv: Modif... |
22 |
BATADV_FORW_ALL, |
8b84cc4fb batman-adv: Use i... |
23 24 |
/** |
32e727449 batman-adv: Add m... |
25 26 27 28 29 30 31 |
* @BATADV_FORW_SOME: forward the packet to some nodes (currently via * a multicast-to-unicast conversion and the BATMAN unicast routing * protocol) */ BATADV_FORW_SOME, /** |
8b84cc4fb batman-adv: Use i... |
32 33 34 |
* @BATADV_FORW_SINGLE: forward the packet to a single node (currently * via the BATMAN unicast routing protocol) */ |
1d8ab8d3c batman-adv: Modif... |
35 |
BATADV_FORW_SINGLE, |
8b84cc4fb batman-adv: Use i... |
36 37 |
/** @BATADV_FORW_NONE: don't forward, drop it */ |
1d8ab8d3c batman-adv: Modif... |
38 39 |
BATADV_FORW_NONE, }; |
c5caf4ef3 batman-adv: Multi... |
40 |
#ifdef CONFIG_BATMAN_ADV_MCAST |
1d8ab8d3c batman-adv: Modif... |
41 42 43 |
enum batadv_forw_mode batadv_mcast_forw_mode(struct batadv_priv *bat_priv, struct sk_buff *skb, struct batadv_orig_node **mcast_single_orig); |
3236d215a batman-adv: mcast... |
44 45 46 47 |
int batadv_mcast_forw_send_orig(struct batadv_priv *bat_priv, struct sk_buff *skb, unsigned short vid, struct batadv_orig_node *orig_node); |
32e727449 batman-adv: Add m... |
48 49 |
int batadv_mcast_forw_send(struct batadv_priv *bat_priv, struct sk_buff *skb, unsigned short vid); |
60432d756 batman-adv: Annou... |
50 |
void batadv_mcast_init(struct batadv_priv *bat_priv); |
4e3e823b5 batman-adv: Add d... |
51 |
int batadv_mcast_flags_seq_print_text(struct seq_file *seq, void *offset); |
53dd9a68b batman-adv: add m... |
52 53 54 55 |
int batadv_mcast_mesh_info_put(struct sk_buff *msg, struct batadv_priv *bat_priv); int batadv_mcast_flags_dump(struct sk_buff *msg, struct netlink_callback *cb); |
c5caf4ef3 batman-adv: Multi... |
56 |
void batadv_mcast_free(struct batadv_priv *bat_priv); |
60432d756 batman-adv: Annou... |
57 |
void batadv_mcast_purge_orig(struct batadv_orig_node *orig_node); |
c5caf4ef3 batman-adv: Multi... |
58 |
#else |
1d8ab8d3c batman-adv: Modif... |
59 60 61 62 63 64 |
static inline enum batadv_forw_mode batadv_mcast_forw_mode(struct batadv_priv *bat_priv, struct sk_buff *skb, struct batadv_orig_node **mcast_single_orig) { return BATADV_FORW_ALL; } |
32e727449 batman-adv: Add m... |
65 |
static inline int |
3236d215a batman-adv: mcast... |
66 67 68 69 70 71 72 73 74 75 |
batadv_mcast_forw_send_orig(struct batadv_priv *bat_priv, struct sk_buff *skb, unsigned short vid, struct batadv_orig_node *orig_node) { kfree_skb(skb); return NET_XMIT_DROP; } static inline int |
32e727449 batman-adv: Add m... |
76 77 78 79 80 81 |
batadv_mcast_forw_send(struct batadv_priv *bat_priv, struct sk_buff *skb, unsigned short vid) { kfree_skb(skb); return NET_XMIT_DROP; } |
60432d756 batman-adv: Annou... |
82 83 84 85 |
static inline int batadv_mcast_init(struct batadv_priv *bat_priv) { return 0; } |
53dd9a68b batman-adv: add m... |
86 87 88 89 90 91 92 93 94 95 96 |
static inline int batadv_mcast_mesh_info_put(struct sk_buff *msg, struct batadv_priv *bat_priv) { return 0; } static inline int batadv_mcast_flags_dump(struct sk_buff *msg, struct netlink_callback *cb) { return -EOPNOTSUPP; } |
c5caf4ef3 batman-adv: Multi... |
97 98 |
static inline void batadv_mcast_free(struct batadv_priv *bat_priv) { |
c5caf4ef3 batman-adv: Multi... |
99 |
} |
60432d756 batman-adv: Annou... |
100 101 |
static inline void batadv_mcast_purge_orig(struct batadv_orig_node *orig_node) { |
60432d756 batman-adv: Annou... |
102 |
} |
c5caf4ef3 batman-adv: Multi... |
103 104 105 |
#endif /* CONFIG_BATMAN_ADV_MCAST */ #endif /* _NET_BATMAN_ADV_MULTICAST_H_ */ |