Merge branch 'signal-for-v5.11' of git://git.kernel.org/pub/scm/linux/kernel/git...
[linux-block.git] / net / batman-adv / translation-table.h
CommitLineData
7db7d9f3 1/* SPDX-License-Identifier: GPL-2.0 */
68e039f9 2/* Copyright (C) 2007-2020 B.A.T.M.A.N. contributors:
c6c8fea2 3 *
35c133a0 4 * Marek Lindner, Simon Wunderlich, Antonio Quartulli
c6c8fea2
SE
5 */
6
7#ifndef _NET_BATMAN_ADV_TRANSLATION_TABLE_H_
8#define _NET_BATMAN_ADV_TRANSLATION_TABLE_H_
9
1e2c2a4f
SE
10#include "main.h"
11
68a600de
SE
12#include <linux/netdevice.h>
13#include <linux/netlink.h>
68a600de 14#include <linux/skbuff.h>
1e2c2a4f
SE
15#include <linux/types.h>
16
56303d34 17int batadv_tt_init(struct batadv_priv *bat_priv);
6b5e971a
SE
18bool batadv_tt_local_add(struct net_device *soft_iface, const u8 *addr,
19 unsigned short vid, int ifindex, u32 mark);
20u16 batadv_tt_local_remove(struct batadv_priv *bat_priv,
21 const u8 *addr, unsigned short vid,
22 const char *message, bool roaming);
d34f0550
MS
23int batadv_tt_local_dump(struct sk_buff *msg, struct netlink_callback *cb);
24int batadv_tt_global_dump(struct sk_buff *msg, struct netlink_callback *cb);
56303d34
SE
25void batadv_tt_global_del_orig(struct batadv_priv *bat_priv,
26 struct batadv_orig_node *orig_node,
6b5e971a 27 s32 match_vid, const char *message);
32e72744
LL
28struct batadv_tt_global_entry *
29batadv_tt_global_hash_find(struct batadv_priv *bat_priv, const u8 *addr,
30 unsigned short vid);
31void batadv_tt_global_entry_put(struct batadv_tt_global_entry *tt_global_entry);
1d8ab8d3 32int batadv_tt_global_hash_count(struct batadv_priv *bat_priv,
6b5e971a 33 const u8 *addr, unsigned short vid);
56303d34 34struct batadv_orig_node *batadv_transtable_search(struct batadv_priv *bat_priv,
6b5e971a 35 const u8 *src, const u8 *addr,
c018ad3d 36 unsigned short vid);
56303d34 37void batadv_tt_free(struct batadv_priv *bat_priv);
6b5e971a 38bool batadv_is_my_client(struct batadv_priv *bat_priv, const u8 *addr,
c018ad3d 39 unsigned short vid);
6b5e971a
SE
40bool batadv_is_ap_isolated(struct batadv_priv *bat_priv, u8 *src, u8 *dst,
41 unsigned short vid);
e1bf0c14 42void batadv_tt_local_commit_changes(struct batadv_priv *bat_priv);
56303d34 43bool batadv_tt_global_client_is_roaming(struct batadv_priv *bat_priv,
6b5e971a 44 u8 *addr, unsigned short vid);
7c1fd91d 45bool batadv_tt_local_client_is_roaming(struct batadv_priv *bat_priv,
6b5e971a 46 u8 *addr, unsigned short vid);
a19d3d85 47void batadv_tt_local_resize_to_mtu(struct net_device *soft_iface);
30cfd02b
AQ
48bool batadv_tt_add_temporary_global_entry(struct batadv_priv *bat_priv,
49 struct batadv_orig_node *orig_node,
c018ad3d
AQ
50 const unsigned char *addr,
51 unsigned short vid);
42cb0bef 52bool batadv_tt_global_is_isolated(struct batadv_priv *bat_priv,
6b5e971a 53 const u8 *addr, unsigned short vid);
c6c8fea2 54
86452f81
SE
55int batadv_tt_cache_init(void);
56void batadv_tt_cache_destroy(void);
57
c6c8fea2 58#endif /* _NET_BATMAN_ADV_TRANSLATION_TABLE_H_ */