linux/net/batman-adv/network-coding.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0 */
   2/* Copyright (C) 2012-2019  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/seq_file.h>
  14#include <linux/skbuff.h>
  15#include <linux/types.h>
  16#include <uapi/linux/batadv_packet.h>
  17
  18#ifdef CONFIG_BATMAN_ADV_NC
  19
  20void batadv_nc_status_update(struct net_device *net_dev);
  21int batadv_nc_init(void);
  22int batadv_nc_mesh_init(struct batadv_priv *bat_priv);
  23void batadv_nc_mesh_free(struct batadv_priv *bat_priv);
  24void batadv_nc_update_nc_node(struct batadv_priv *bat_priv,
  25                              struct batadv_orig_node *orig_node,
  26                              struct batadv_orig_node *orig_neigh_node,
  27                              struct batadv_ogm_packet *ogm_packet,
  28                              int is_single_hop_neigh);
  29void batadv_nc_purge_orig(struct batadv_priv *bat_priv,
  30                          struct batadv_orig_node *orig_node,
  31                          bool (*to_purge)(struct batadv_priv *,
  32                                           struct batadv_nc_node *));
  33void batadv_nc_init_bat_priv(struct batadv_priv *bat_priv);
  34void batadv_nc_init_orig(struct batadv_orig_node *orig_node);
  35bool batadv_nc_skb_forward(struct sk_buff *skb,
  36                           struct batadv_neigh_node *neigh_node);
  37void batadv_nc_skb_store_for_decoding(struct batadv_priv *bat_priv,
  38                                      struct sk_buff *skb);
  39void batadv_nc_skb_store_sniffed_unicast(struct batadv_priv *bat_priv,
  40                                         struct sk_buff *skb);
  41int batadv_nc_nodes_seq_print_text(struct seq_file *seq, void *offset);
  42void batadv_nc_init_debugfs(struct batadv_priv *bat_priv);
  43
  44#else /* ifdef CONFIG_BATMAN_ADV_NC */
  45
  46static inline void batadv_nc_status_update(struct net_device *net_dev)
  47{
  48}
  49
  50static inline int batadv_nc_init(void)
  51{
  52        return 0;
  53}
  54
  55static inline int batadv_nc_mesh_init(struct batadv_priv *bat_priv)
  56{
  57        return 0;
  58}
  59
  60static inline void batadv_nc_mesh_free(struct batadv_priv *bat_priv)
  61{
  62}
  63
  64static inline void
  65batadv_nc_update_nc_node(struct batadv_priv *bat_priv,
  66                         struct batadv_orig_node *orig_node,
  67                         struct batadv_orig_node *orig_neigh_node,
  68                         struct batadv_ogm_packet *ogm_packet,
  69                         int is_single_hop_neigh)
  70{
  71}
  72
  73static inline void
  74batadv_nc_purge_orig(struct batadv_priv *bat_priv,
  75                     struct batadv_orig_node *orig_node,
  76                     bool (*to_purge)(struct batadv_priv *,
  77                                      struct batadv_nc_node *))
  78{
  79}
  80
  81static inline void batadv_nc_init_bat_priv(struct batadv_priv *bat_priv)
  82{
  83}
  84
  85static inline void batadv_nc_init_orig(struct batadv_orig_node *orig_node)
  86{
  87}
  88
  89static inline bool batadv_nc_skb_forward(struct sk_buff *skb,
  90                                         struct batadv_neigh_node *neigh_node)
  91{
  92        return false;
  93}
  94
  95static inline void
  96batadv_nc_skb_store_for_decoding(struct batadv_priv *bat_priv,
  97                                 struct sk_buff *skb)
  98{
  99}
 100
 101static inline void
 102batadv_nc_skb_store_sniffed_unicast(struct batadv_priv *bat_priv,
 103                                    struct sk_buff *skb)
 104{
 105}
 106
 107static inline int batadv_nc_nodes_seq_print_text(struct seq_file *seq,
 108                                                 void *offset)
 109{
 110        return 0;
 111}
 112
 113static inline void batadv_nc_init_debugfs(struct batadv_priv *bat_priv)
 114{
 115}
 116
 117#endif /* ifdef CONFIG_BATMAN_ADV_NC */
 118
 119#endif /* _NET_BATMAN_ADV_NETWORK_CODING_H_ */
 120