Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
torvalds
GitHub Repository: torvalds/linux
Path: blob/master/net/batman-adv/network-coding.h
26278 views
1
/* SPDX-License-Identifier: GPL-2.0 */
2
/* Copyright (C) B.A.T.M.A.N. contributors:
3
*
4
* Martin Hundebøll, Jeppe Ledet-Pedersen
5
*/
6
7
#ifndef _NET_BATMAN_ADV_NETWORK_CODING_H_
8
#define _NET_BATMAN_ADV_NETWORK_CODING_H_
9
10
#include "main.h"
11
12
#include <linux/netdevice.h>
13
#include <linux/skbuff.h>
14
#include <linux/types.h>
15
#include <uapi/linux/batadv_packet.h>
16
17
#ifdef CONFIG_BATMAN_ADV_NC
18
19
void batadv_nc_status_update(struct net_device *net_dev);
20
int batadv_nc_init(void);
21
int batadv_nc_mesh_init(struct batadv_priv *bat_priv);
22
void batadv_nc_mesh_free(struct batadv_priv *bat_priv);
23
void batadv_nc_update_nc_node(struct batadv_priv *bat_priv,
24
struct batadv_orig_node *orig_node,
25
struct batadv_orig_node *orig_neigh_node,
26
struct batadv_ogm_packet *ogm_packet,
27
int is_single_hop_neigh);
28
void batadv_nc_purge_orig(struct batadv_priv *bat_priv,
29
struct batadv_orig_node *orig_node,
30
bool (*to_purge)(struct batadv_priv *,
31
struct batadv_nc_node *));
32
void batadv_nc_init_bat_priv(struct batadv_priv *bat_priv);
33
void batadv_nc_init_orig(struct batadv_orig_node *orig_node);
34
bool batadv_nc_skb_forward(struct sk_buff *skb,
35
struct batadv_neigh_node *neigh_node);
36
void batadv_nc_skb_store_for_decoding(struct batadv_priv *bat_priv,
37
struct sk_buff *skb);
38
void batadv_nc_skb_store_sniffed_unicast(struct batadv_priv *bat_priv,
39
struct sk_buff *skb);
40
41
#else /* ifdef CONFIG_BATMAN_ADV_NC */
42
43
static inline void batadv_nc_status_update(struct net_device *net_dev)
44
{
45
}
46
47
static inline int batadv_nc_init(void)
48
{
49
return 0;
50
}
51
52
static inline int batadv_nc_mesh_init(struct batadv_priv *bat_priv)
53
{
54
return 0;
55
}
56
57
static inline void batadv_nc_mesh_free(struct batadv_priv *bat_priv)
58
{
59
}
60
61
static inline void
62
batadv_nc_update_nc_node(struct batadv_priv *bat_priv,
63
struct batadv_orig_node *orig_node,
64
struct batadv_orig_node *orig_neigh_node,
65
struct batadv_ogm_packet *ogm_packet,
66
int is_single_hop_neigh)
67
{
68
}
69
70
static inline void
71
batadv_nc_purge_orig(struct batadv_priv *bat_priv,
72
struct batadv_orig_node *orig_node,
73
bool (*to_purge)(struct batadv_priv *,
74
struct batadv_nc_node *))
75
{
76
}
77
78
static inline void batadv_nc_init_bat_priv(struct batadv_priv *bat_priv)
79
{
80
}
81
82
static inline void batadv_nc_init_orig(struct batadv_orig_node *orig_node)
83
{
84
}
85
86
static inline bool batadv_nc_skb_forward(struct sk_buff *skb,
87
struct batadv_neigh_node *neigh_node)
88
{
89
return false;
90
}
91
92
static inline void
93
batadv_nc_skb_store_for_decoding(struct batadv_priv *bat_priv,
94
struct sk_buff *skb)
95
{
96
}
97
98
static inline void
99
batadv_nc_skb_store_sniffed_unicast(struct batadv_priv *bat_priv,
100
struct sk_buff *skb)
101
{
102
}
103
104
#endif /* ifdef CONFIG_BATMAN_ADV_NC */
105
106
#endif /* _NET_BATMAN_ADV_NETWORK_CODING_H_ */
107
108