linux/net/batman-adv/tvlv.h
<<
>>
Prefs
   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
  15void batadv_tvlv_container_register(struct batadv_priv *bat_priv,
  16                                    u8 type, u8 version,
  17                                    void *tvlv_value, u16 tvlv_value_len);
  18u16 batadv_tvlv_container_ogm_append(struct batadv_priv *bat_priv,
  19                                     unsigned char **packet_buff,
  20                                     int *packet_buff_len, int packet_min_len);
  21void batadv_tvlv_ogm_receive(struct batadv_priv *bat_priv,
  22                             struct batadv_ogm_packet *batadv_ogm_packet,
  23                             struct batadv_orig_node *orig_node);
  24void batadv_tvlv_container_unregister(struct batadv_priv *bat_priv,
  25                                      u8 type, u8 version);
  26
  27void 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);
  38void batadv_tvlv_handler_unregister(struct batadv_priv *bat_priv,
  39                                    u8 type, u8 version);
  40int 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);
  45void 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_ */
  50