1/* Copyright (C) 2011-2014 B.A.T.M.A.N. contributors:
2 *
3 * Simon Wunderlich
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_BLA_H_
19#define _NET_BATMAN_ADV_BLA_H_
20
21#ifdef CONFIG_BATMAN_ADV_BLA
22int batadv_bla_rx(struct batadv_priv *bat_priv, struct sk_buff *skb,
23		  unsigned short vid, bool is_bcast);
24int batadv_bla_tx(struct batadv_priv *bat_priv, struct sk_buff *skb,
25		  unsigned short vid);
26int batadv_bla_is_backbone_gw(struct sk_buff *skb,
27			      struct batadv_orig_node *orig_node, int hdr_size);
28int batadv_bla_claim_table_seq_print_text(struct seq_file *seq, void *offset);
29int batadv_bla_backbone_table_seq_print_text(struct seq_file *seq,
30					     void *offset);
31bool batadv_bla_is_backbone_gw_orig(struct batadv_priv *bat_priv, uint8_t *orig,
32				    unsigned short vid);
33int batadv_bla_check_bcast_duplist(struct batadv_priv *bat_priv,
34				   struct sk_buff *skb);
35void batadv_bla_update_orig_address(struct batadv_priv *bat_priv,
36				    struct batadv_hard_iface *primary_if,
37				    struct batadv_hard_iface *oldif);
38int batadv_bla_init(struct batadv_priv *bat_priv);
39void batadv_bla_free(struct batadv_priv *bat_priv);
40
41#define BATADV_BLA_CRC_INIT	0
42#else /* ifdef CONFIG_BATMAN_ADV_BLA */
43
44static inline int batadv_bla_rx(struct batadv_priv *bat_priv,
45				struct sk_buff *skb, unsigned short vid,
46				bool is_bcast)
47{
48	return 0;
49}
50
51static inline int batadv_bla_tx(struct batadv_priv *bat_priv,
52				struct sk_buff *skb, unsigned short vid)
53{
54	return 0;
55}
56
57static inline int batadv_bla_is_backbone_gw(struct sk_buff *skb,
58					    struct batadv_orig_node *orig_node,
59					    int hdr_size)
60{
61	return 0;
62}
63
64static inline int batadv_bla_claim_table_seq_print_text(struct seq_file *seq,
65							void *offset)
66{
67	return 0;
68}
69
70static inline int batadv_bla_backbone_table_seq_print_text(struct seq_file *seq,
71							   void *offset)
72{
73	return 0;
74}
75
76static inline bool batadv_bla_is_backbone_gw_orig(struct batadv_priv *bat_priv,
77						  uint8_t *orig,
78						  unsigned short vid)
79{
80	return false;
81}
82
83static inline int
84batadv_bla_check_bcast_duplist(struct batadv_priv *bat_priv,
85			       struct sk_buff *skb)
86{
87	return 0;
88}
89
90static inline void
91batadv_bla_update_orig_address(struct batadv_priv *bat_priv,
92			       struct batadv_hard_iface *primary_if,
93			       struct batadv_hard_iface *oldif)
94{
95}
96
97static inline int batadv_bla_init(struct batadv_priv *bat_priv)
98{
99	return 1;
100}
101
102static inline void batadv_bla_free(struct batadv_priv *bat_priv)
103{
104}
105
106#endif /* ifdef CONFIG_BATMAN_ADV_BLA */
107
108#endif /* ifndef _NET_BATMAN_ADV_BLA_H_ */
109