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 netlink_callback;
  27struct seq_file;
  28struct sk_buff;
  29
  30#ifdef CONFIG_BATMAN_ADV_BLA
  31bool batadv_bla_rx(struct batadv_priv *bat_priv, struct sk_buff *skb,
  32                   unsigned short vid, bool is_bcast);
  33bool batadv_bla_tx(struct batadv_priv *bat_priv, struct sk_buff *skb,
  34                   unsigned short vid);
  35bool batadv_bla_is_backbone_gw(struct sk_buff *skb,
  36                               struct batadv_orig_node *orig_node,
  37                               int hdr_size);
  38int batadv_bla_claim_table_seq_print_text(struct seq_file *seq, void *offset);
  39int batadv_bla_claim_dump(struct sk_buff *msg, struct netlink_callback *cb);
  40int batadv_bla_backbone_table_seq_print_text(struct seq_file *seq,
  41                                             void *offset);
  42int batadv_bla_backbone_dump(struct sk_buff *msg, struct netlink_callback *cb);
  43bool batadv_bla_is_backbone_gw_orig(struct batadv_priv *bat_priv, u8 *orig,
  44                                    unsigned short vid);
  45bool batadv_bla_check_bcast_duplist(struct batadv_priv *bat_priv,
  46                                    struct sk_buff *skb);
  47void batadv_bla_update_orig_address(struct batadv_priv *bat_priv,
  48                                    struct batadv_hard_iface *primary_if,
  49                                    struct batadv_hard_iface *oldif);
  50void batadv_bla_status_update(struct net_device *net_dev);
  51int batadv_bla_init(struct batadv_priv *bat_priv);
  52void batadv_bla_free(struct batadv_priv *bat_priv);
  53int batadv_bla_claim_dump(struct sk_buff *msg, struct netlink_callback *cb);
  54#define BATADV_BLA_CRC_INIT     0
  55#else /* ifdef CONFIG_BATMAN_ADV_BLA */
  56
  57static inline bool batadv_bla_rx(struct batadv_priv *bat_priv,
  58                                 struct sk_buff *skb, unsigned short vid,
  59                                 bool is_bcast)
  60{
  61        return false;
  62}
  63
  64static inline bool batadv_bla_tx(struct batadv_priv *bat_priv,
  65                                 struct sk_buff *skb, unsigned short vid)
  66{
  67        return false;
  68}
  69
  70static inline bool batadv_bla_is_backbone_gw(struct sk_buff *skb,
  71                                             struct batadv_orig_node *orig_node,
  72                                             int hdr_size)
  73{
  74        return false;
  75}
  76
  77static inline int batadv_bla_claim_table_seq_print_text(struct seq_file *seq,
  78                                                        void *offset)
  79{
  80        return 0;
  81}
  82
  83static inline int batadv_bla_backbone_table_seq_print_text(struct seq_file *seq,
  84                                                           void *offset)
  85{
  86        return 0;
  87}
  88
  89static inline bool batadv_bla_is_backbone_gw_orig(struct batadv_priv *bat_priv,
  90                                                  u8 *orig, unsigned short vid)
  91{
  92        return false;
  93}
  94
  95static inline bool
  96batadv_bla_check_bcast_duplist(struct batadv_priv *bat_priv,
  97                               struct sk_buff *skb)
  98{
  99        return false;
 100}
 101
 102static inline void
 103batadv_bla_update_orig_address(struct batadv_priv *bat_priv,
 104                               struct batadv_hard_iface *primary_if,
 105                               struct batadv_hard_iface *oldif)
 106{
 107}
 108
 109static inline int batadv_bla_init(struct batadv_priv *bat_priv)
 110{
 111        return 1;
 112}
 113
 114static inline void batadv_bla_free(struct batadv_priv *bat_priv)
 115{
 116}
 117
 118static inline int batadv_bla_claim_dump(struct sk_buff *msg,
 119                                        struct netlink_callback *cb)
 120{
 121        return -EOPNOTSUPP;
 122}
 123
 124static inline int batadv_bla_backbone_dump(struct sk_buff *msg,
 125                                           struct netlink_callback *cb)
 126{
 127        return -EOPNOTSUPP;
 128}
 129
 130#endif /* ifdef CONFIG_BATMAN_ADV_BLA */
 131
 132#endif /* ifndef _NET_BATMAN_ADV_BLA_H_ */
 133