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