2017-11-19 17:05:11 +03:00
/* SPDX-License-Identifier: GPL-2.0 */
2018-01-01 02:00:00 +03:00
/* Copyright (C) 2007-2018 B.A.T.M.A.N. contributors:
2010-12-13 14:19:28 +03:00
*
2012-03-14 16:03:01 +04:00
* Marek Lindner , Simon Wunderlich , Antonio Quartulli
2010-12-13 14:19:28 +03:00
*
* This program is free software ; you can redistribute it and / or
* modify it under the terms of version 2 of the GNU General Public
* License as published by the Free Software Foundation .
*
* This program is distributed in the hope that it will be useful , but
* WITHOUT ANY WARRANTY ; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE . See the GNU
* General Public License for more details .
*
* You should have received a copy of the GNU General Public License
2013-11-03 23:40:48 +04:00
* along with this program ; if not , see < http : //www.gnu.org/licenses/>.
2010-12-13 14:19:28 +03:00
*/
# ifndef _NET_BATMAN_ADV_TRANSLATION_TABLE_H_
# define _NET_BATMAN_ADV_TRANSLATION_TABLE_H_
2015-04-17 20:40:28 +03:00
# include "main.h"
# include <linux/types.h>
2016-07-03 14:31:37 +03:00
struct netlink_callback ;
2015-04-17 20:40:28 +03:00
struct net_device ;
struct seq_file ;
2016-07-03 14:31:37 +03:00
struct sk_buff ;
2015-04-17 20:40:28 +03:00
2012-06-06 00:31:31 +04:00
int batadv_tt_init ( struct batadv_priv * bat_priv ) ;
2015-05-26 19:34:26 +03:00
bool batadv_tt_local_add ( struct net_device * soft_iface , const u8 * addr ,
unsigned short vid , int ifindex , u32 mark ) ;
u16 batadv_tt_local_remove ( struct batadv_priv * bat_priv ,
const u8 * addr , unsigned short vid ,
const char * message , bool roaming ) ;
2012-05-12 04:09:39 +04:00
int batadv_tt_local_seq_print_text ( struct seq_file * seq , void * offset ) ;
int batadv_tt_global_seq_print_text ( struct seq_file * seq , void * offset ) ;
2016-07-03 14:31:37 +03:00
int batadv_tt_local_dump ( struct sk_buff * msg , struct netlink_callback * cb ) ;
int batadv_tt_global_dump ( struct sk_buff * msg , struct netlink_callback * cb ) ;
2012-06-06 00:31:31 +04:00
void batadv_tt_global_del_orig ( struct batadv_priv * bat_priv ,
struct batadv_orig_node * orig_node ,
2015-05-26 19:34:26 +03:00
s32 match_vid , const char * message ) ;
2014-02-15 20:47:52 +04:00
int batadv_tt_global_hash_count ( struct batadv_priv * bat_priv ,
2015-05-26 19:34:26 +03:00
const u8 * addr , unsigned short vid ) ;
2012-06-06 00:31:31 +04:00
struct batadv_orig_node * batadv_transtable_search ( struct batadv_priv * bat_priv ,
2015-05-26 19:34:26 +03:00
const u8 * src , const u8 * addr ,
2013-06-04 14:11:39 +04:00
unsigned short vid ) ;
2012-06-06 00:31:31 +04:00
void batadv_tt_free ( struct batadv_priv * bat_priv ) ;
2015-05-26 19:34:26 +03:00
bool batadv_is_my_client ( struct batadv_priv * bat_priv , const u8 * addr ,
2013-06-04 14:11:39 +04:00
unsigned short vid ) ;
2015-05-26 19:34:26 +03:00
bool batadv_is_ap_isolated ( struct batadv_priv * bat_priv , u8 * src , u8 * dst ,
unsigned short vid ) ;
2013-04-23 17:40:01 +04:00
void batadv_tt_local_commit_changes ( struct batadv_priv * bat_priv ) ;
2012-06-06 00:31:31 +04:00
bool batadv_tt_global_client_is_roaming ( struct batadv_priv * bat_priv ,
2015-05-26 19:34:26 +03:00
u8 * addr , unsigned short vid ) ;
2012-09-24 00:38:34 +04:00
bool batadv_tt_local_client_is_roaming ( struct batadv_priv * bat_priv ,
2015-05-26 19:34:26 +03:00
u8 * addr , unsigned short vid ) ;
2013-05-27 11:33:25 +04:00
void batadv_tt_local_resize_to_mtu ( struct net_device * soft_iface ) ;
2012-07-06 01:38:29 +04:00
bool batadv_tt_add_temporary_global_entry ( struct batadv_priv * bat_priv ,
struct batadv_orig_node * orig_node ,
2013-06-04 14:11:39 +04:00
const unsigned char * addr ,
unsigned short vid ) ;
2013-11-16 15:03:52 +04:00
bool batadv_tt_global_is_isolated ( struct batadv_priv * bat_priv ,
2015-05-26 19:34:26 +03:00
const u8 * addr , unsigned short vid ) ;
2010-12-13 14:19:28 +03:00
2016-06-25 17:44:06 +03:00
int batadv_tt_cache_init ( void ) ;
void batadv_tt_cache_destroy ( void ) ;
2010-12-13 14:19:28 +03:00
# endif /* _NET_BATMAN_ADV_TRANSLATION_TABLE_H_ */