linux/net/batman-adv/bridge_loop_avoidance.h
<<
>>
Prefs
   1/* Copyright (C) 2011-2016  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#include "main.h"
  22
  23#include <linux/types.h>
  24
  25struct net_device;
  26struct seq_file;
  27struct sk_buff;
  28
  29#ifdef CONFIG_BATMAN_ADV_BLA
  30bool batadv_bla_rx(struct batadv_priv *bat_priv, struct sk_buff *skb,
  31                   unsigned short vid, bool is_bcast);
  32bool batadv_bla_tx(struct batadv_priv *bat_priv, struct sk_buff *skb,
  33                   unsigned short vid);
  34bool batadv_bla_is_backbone_gw(struct sk_buff *skb,
  35                               struct batadv_orig_node *orig_node,
  36                               int hdr_size);
  37int batadv_bla_claim_table_seq_print_text(struct seq_file *seq, void *offset);
  38int batadv_bla_backbone_table_seq_print_text(struct seq_file *seq,
  39                                             void *offset);
  40bool batadv_bla_is_backbone_gw_orig(struct batadv_priv *bat_priv, u8 *orig,
  41                                    unsigned short vid);
  42bool batadv_bla_check_bcast_duplist(struct batadv_priv *bat_priv,
  43                                    struct sk_buff *skb);
  44void batadv_bla_update_orig_address(struct batadv_priv *bat_priv,
  45                                    struct batadv_hard_iface *primary_if,
  46                                    struct batadv_hard_iface *oldif);
  47void batadv_bla_status_update(struct net_device *net_dev);
  48int batadv_bla_init(struct batadv_priv *bat_priv);
  49void batadv_bla_free(struct batadv_priv *bat_priv);
  50
  51#define BATADV_BLA_CRC_INIT     0
  52#else /* ifdef CONFIG_BATMAN_ADV_BLA */
  53
  54static inline bool batadv_bla_rx(struct batadv_priv *bat_priv,
  55                                 struct sk_buff *skb, unsigned short vid,
  56                                 bool is_bcast)
  57{
  58        return false;
  59}
  60
  61static inline bool batadv_bla_tx(struct batadv_priv *bat_priv,
  62                                 struct sk_buff *skb, unsigned short vid)
  63{
  64        return false;
  65}
  66
  67static inline bool batadv_bla_is_backbone_gw(struct sk_buff *skb,
  68                                             struct batadv_orig_node *orig_node,
  69                                             int hdr_size)
  70{
  71        return false;
  72}
  73
  74static inline int batadv_bla_claim_table_seq_print_text(struct seq_file *seq,
  75                                                        void *offset)
  76{
  77        return 0;
  78}
  79
  80static inline int batadv_bla_backbone_table_seq_print_text(struct seq_file *seq,
  81                                                           void *offset)
  82{
  83        return 0;
  84}
  85
  86static inline bool batadv_bla_is_backbone_gw_orig(struct batadv_priv *bat_priv,
  87                                                  u8 *orig, unsigned short vid)
  88{
  89        return false;
  90}
  91
  92static inline bool
  93batadv_bla_check_bcast_duplist(struct batadv_priv *bat_priv,
  94                               struct sk_buff *skb)
  95{
  96        return false;
  97}
  98
  99static inline void
 100batadv_bla_update_orig_address(struct batadv_priv *bat_priv,
 101                               struct batadv_hard_iface *primary_if,
 102                               struct batadv_hard_iface *oldif)
 103{
 104}
 105
 106static inline int batadv_bla_init(struct batadv_priv *bat_priv)
 107{
 108        return 1;
 109}
 110
 111static inline void batadv_bla_free(struct batadv_priv *bat_priv)
 112{
 113}
 114
 115#endif /* ifdef CONFIG_BATMAN_ADV_BLA */
 116
 117#endif /* ifndef _NET_BATMAN_ADV_BLA_H_ */
 118