root/net/batman-adv/tvlv.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


   1 /* SPDX-License-Identifier: GPL-2.0 */
   2 /* Copyright (C) 2007-2019  B.A.T.M.A.N. contributors:
   3  *
   4  * Marek Lindner, Simon Wunderlich
   5  */
   6 
   7 #ifndef _NET_BATMAN_ADV_TVLV_H_
   8 #define _NET_BATMAN_ADV_TVLV_H_
   9 
  10 #include "main.h"
  11 
  12 #include <linux/types.h>
  13 #include <uapi/linux/batadv_packet.h>
  14 
  15 void batadv_tvlv_container_register(struct batadv_priv *bat_priv,
  16                                     u8 type, u8 version,
  17                                     void *tvlv_value, u16 tvlv_value_len);
  18 u16 batadv_tvlv_container_ogm_append(struct batadv_priv *bat_priv,
  19                                      unsigned char **packet_buff,
  20                                      int *packet_buff_len, int packet_min_len);
  21 void batadv_tvlv_ogm_receive(struct batadv_priv *bat_priv,
  22                              struct batadv_ogm_packet *batadv_ogm_packet,
  23                              struct batadv_orig_node *orig_node);
  24 void batadv_tvlv_container_unregister(struct batadv_priv *bat_priv,
  25                                       u8 type, u8 version);
  26 
  27 void batadv_tvlv_handler_register(struct batadv_priv *bat_priv,
  28                                   void (*optr)(struct batadv_priv *bat_priv,
  29                                                struct batadv_orig_node *orig,
  30                                                u8 flags,
  31                                                void *tvlv_value,
  32                                                u16 tvlv_value_len),
  33                                   int (*uptr)(struct batadv_priv *bat_priv,
  34                                               u8 *src, u8 *dst,
  35                                               void *tvlv_value,
  36                                               u16 tvlv_value_len),
  37                                   u8 type, u8 version, u8 flags);
  38 void batadv_tvlv_handler_unregister(struct batadv_priv *bat_priv,
  39                                     u8 type, u8 version);
  40 int batadv_tvlv_containers_process(struct batadv_priv *bat_priv,
  41                                    bool ogm_source,
  42                                    struct batadv_orig_node *orig_node,
  43                                    u8 *src, u8 *dst,
  44                                    void *tvlv_buff, u16 tvlv_buff_len);
  45 void batadv_tvlv_unicast_send(struct batadv_priv *bat_priv, u8 *src,
  46                               u8 *dst, u8 type, u8 version,
  47                               void *tvlv_value, u16 tvlv_value_len);
  48 
  49 #endif /* _NET_BATMAN_ADV_TVLV_H_ */

/* [<][>][^][v][top][bottom][index][help] */