xref: /linux/net/batman-adv/bridge_loop_avoidance.h (revision baf69e275317602bb1f2c87e40d1e03c90b31e38)
1 /*
2  * Copyright (C) 2011-2012 B.A.T.M.A.N. contributors:
3  *
4  * Simon Wunderlich
5  *
6  * This program is free software; you can redistribute it and/or
7  * modify it under the terms of version 2 of the GNU General Public
8  * License as published by the Free Software Foundation.
9  *
10  * This program is distributed in the hope that it will be useful, but
11  * WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13  * General Public License for more details.
14  *
15  * You should have received a copy of the GNU General Public License
16  * along with this program; if not, write to the Free Software
17  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
18  * 02110-1301, USA
19  *
20  */
21 
22 #ifndef _NET_BATMAN_ADV_BLA_H_
23 #define _NET_BATMAN_ADV_BLA_H_
24 
25 #ifdef CONFIG_BATMAN_ADV_BLA
26 int bla_rx(struct bat_priv *bat_priv, struct sk_buff *skb, short vid,
27 	   bool is_bcast);
28 int bla_tx(struct bat_priv *bat_priv, struct sk_buff *skb, short vid);
29 int bla_is_backbone_gw(struct sk_buff *skb,
30 		       struct orig_node *orig_node, int hdr_size);
31 int bla_claim_table_seq_print_text(struct seq_file *seq, void *offset);
32 int bla_is_backbone_gw_orig(struct bat_priv *bat_priv, uint8_t *orig);
33 int bla_check_bcast_duplist(struct bat_priv *bat_priv,
34 			    struct bcast_packet *bcast_packet, int hdr_size);
35 void bla_update_orig_address(struct bat_priv *bat_priv,
36 			     struct hard_iface *primary_if,
37 			     struct hard_iface *oldif);
38 int bla_init(struct bat_priv *bat_priv);
39 void bla_free(struct bat_priv *bat_priv);
40 
41 #define BLA_CRC_INIT	0
42 #else /* ifdef CONFIG_BATMAN_ADV_BLA */
43 
44 static inline int bla_rx(struct bat_priv *bat_priv, struct sk_buff *skb,
45 			 short vid, bool is_bcast)
46 {
47 	return 0;
48 }
49 
50 static inline int bla_tx(struct bat_priv *bat_priv, struct sk_buff *skb,
51 			 short vid)
52 {
53 	return 0;
54 }
55 
56 static inline int bla_is_backbone_gw(struct sk_buff *skb,
57 				     struct orig_node *orig_node,
58 				     int hdr_size)
59 {
60 	return 0;
61 }
62 
63 static inline int bla_claim_table_seq_print_text(struct seq_file *seq,
64 						 void *offset)
65 {
66 	return 0;
67 }
68 
69 static inline int bla_is_backbone_gw_orig(struct bat_priv *bat_priv,
70 					  uint8_t *orig)
71 {
72 	return 0;
73 }
74 
75 static inline int bla_check_bcast_duplist(struct bat_priv *bat_priv,
76 					  struct bcast_packet *bcast_packet,
77 					  int hdr_size)
78 {
79 	return 0;
80 }
81 
82 static inline void bla_update_orig_address(struct bat_priv *bat_priv,
83 					   struct hard_iface *primary_if,
84 					   struct hard_iface *oldif)
85 {
86 }
87 
88 static inline int bla_init(struct bat_priv *bat_priv)
89 {
90 	return 1;
91 }
92 
93 static inline void bla_free(struct bat_priv *bat_priv)
94 {
95 }
96 
97 #endif /* ifdef CONFIG_BATMAN_ADV_BLA */
98 
99 #endif /* ifndef _NET_BATMAN_ADV_BLA_H_ */
100