Antonio Quartulli | 0b87393 | 2013-01-04 03:05:31 +0100 | [diff] [blame] | 1 | /* Copyright (C) 2007-2013 B.A.T.M.A.N. contributors: |
Sven Eckelmann | c6c8fea | 2010-12-13 11:19:28 +0000 | [diff] [blame] | 2 | * |
Antonio Quartulli | 35c133a | 2012-03-14 13:03:01 +0100 | [diff] [blame] | 3 | * Marek Lindner, Simon Wunderlich, Antonio Quartulli |
Sven Eckelmann | c6c8fea | 2010-12-13 11:19:28 +0000 | [diff] [blame] | 4 | * |
| 5 | * This program is free software; you can redistribute it and/or |
| 6 | * modify it under the terms of version 2 of the GNU General Public |
| 7 | * License as published by the Free Software Foundation. |
| 8 | * |
| 9 | * This program is distributed in the hope that it will be useful, but |
| 10 | * WITHOUT ANY WARRANTY; without even the implied warranty of |
| 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
| 12 | * General Public License for more details. |
| 13 | * |
| 14 | * You should have received a copy of the GNU General Public License |
| 15 | * along with this program; if not, write to the Free Software |
| 16 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA |
| 17 | * 02110-1301, USA |
Sven Eckelmann | c6c8fea | 2010-12-13 11:19:28 +0000 | [diff] [blame] | 18 | */ |
| 19 | |
| 20 | #ifndef _NET_BATMAN_ADV_TRANSLATION_TABLE_H_ |
| 21 | #define _NET_BATMAN_ADV_TRANSLATION_TABLE_H_ |
| 22 | |
Sven Eckelmann | 08c36d3 | 2012-05-12 02:09:39 +0200 | [diff] [blame] | 23 | int batadv_tt_len(int changes_num); |
Sven Eckelmann | 56303d3 | 2012-06-05 22:31:31 +0200 | [diff] [blame] | 24 | int batadv_tt_init(struct batadv_priv *bat_priv); |
Sven Eckelmann | 08c36d3 | 2012-05-12 02:09:39 +0200 | [diff] [blame] | 25 | void batadv_tt_local_add(struct net_device *soft_iface, const uint8_t *addr, |
| 26 | int ifindex); |
Antonio Quartulli | 7f91d06 | 2012-08-27 11:44:43 +0200 | [diff] [blame] | 27 | uint16_t batadv_tt_local_remove(struct batadv_priv *bat_priv, |
| 28 | const uint8_t *addr, const char *message, |
| 29 | bool roaming); |
Sven Eckelmann | 08c36d3 | 2012-05-12 02:09:39 +0200 | [diff] [blame] | 30 | int batadv_tt_local_seq_print_text(struct seq_file *seq, void *offset); |
Sven Eckelmann | 56303d3 | 2012-06-05 22:31:31 +0200 | [diff] [blame] | 31 | void batadv_tt_global_add_orig(struct batadv_priv *bat_priv, |
| 32 | struct batadv_orig_node *orig_node, |
Sven Eckelmann | 08c36d3 | 2012-05-12 02:09:39 +0200 | [diff] [blame] | 33 | const unsigned char *tt_buff, int tt_buff_len); |
Sven Eckelmann | 56303d3 | 2012-06-05 22:31:31 +0200 | [diff] [blame] | 34 | int batadv_tt_global_add(struct batadv_priv *bat_priv, |
| 35 | struct batadv_orig_node *orig_node, |
Antonio Quartulli | d4f4469 | 2012-05-25 00:00:54 +0200 | [diff] [blame] | 36 | const unsigned char *addr, uint8_t flags, |
| 37 | uint8_t ttvn); |
Sven Eckelmann | 08c36d3 | 2012-05-12 02:09:39 +0200 | [diff] [blame] | 38 | int batadv_tt_global_seq_print_text(struct seq_file *seq, void *offset); |
Sven Eckelmann | 56303d3 | 2012-06-05 22:31:31 +0200 | [diff] [blame] | 39 | void batadv_tt_global_del_orig(struct batadv_priv *bat_priv, |
| 40 | struct batadv_orig_node *orig_node, |
Sven Eckelmann | 08c36d3 | 2012-05-12 02:09:39 +0200 | [diff] [blame] | 41 | const char *message); |
Sven Eckelmann | 56303d3 | 2012-06-05 22:31:31 +0200 | [diff] [blame] | 42 | struct batadv_orig_node *batadv_transtable_search(struct batadv_priv *bat_priv, |
| 43 | const uint8_t *src, |
| 44 | const uint8_t *addr); |
| 45 | void batadv_tt_free(struct batadv_priv *bat_priv); |
| 46 | bool batadv_send_tt_response(struct batadv_priv *bat_priv, |
Sven Eckelmann | 9641269 | 2012-06-05 22:31:30 +0200 | [diff] [blame] | 47 | struct batadv_tt_query_packet *tt_request); |
Sven Eckelmann | 56303d3 | 2012-06-05 22:31:31 +0200 | [diff] [blame] | 48 | bool batadv_is_my_client(struct batadv_priv *bat_priv, const uint8_t *addr); |
| 49 | void batadv_handle_tt_response(struct batadv_priv *bat_priv, |
Sven Eckelmann | 9641269 | 2012-06-05 22:31:30 +0200 | [diff] [blame] | 50 | struct batadv_tt_query_packet *tt_response); |
Sven Eckelmann | 56303d3 | 2012-06-05 22:31:31 +0200 | [diff] [blame] | 51 | bool batadv_is_ap_isolated(struct batadv_priv *bat_priv, uint8_t *src, |
Sven Eckelmann | 08c36d3 | 2012-05-12 02:09:39 +0200 | [diff] [blame] | 52 | uint8_t *dst); |
Sven Eckelmann | 56303d3 | 2012-06-05 22:31:31 +0200 | [diff] [blame] | 53 | void batadv_tt_update_orig(struct batadv_priv *bat_priv, |
| 54 | struct batadv_orig_node *orig_node, |
Sven Eckelmann | 08c36d3 | 2012-05-12 02:09:39 +0200 | [diff] [blame] | 55 | const unsigned char *tt_buff, uint8_t tt_num_changes, |
| 56 | uint8_t ttvn, uint16_t tt_crc); |
Sven Eckelmann | 56303d3 | 2012-06-05 22:31:31 +0200 | [diff] [blame] | 57 | int batadv_tt_append_diff(struct batadv_priv *bat_priv, |
Marek Lindner | be9aa4c | 2012-05-07 04:22:05 +0800 | [diff] [blame] | 58 | unsigned char **packet_buff, int *packet_buff_len, |
| 59 | int packet_min_len); |
Sven Eckelmann | 56303d3 | 2012-06-05 22:31:31 +0200 | [diff] [blame] | 60 | bool batadv_tt_global_client_is_roaming(struct batadv_priv *bat_priv, |
Sven Eckelmann | 08c36d3 | 2012-05-12 02:09:39 +0200 | [diff] [blame] | 61 | uint8_t *addr); |
Antonio Quartulli | 7c1fd91 | 2012-09-23 22:38:34 +0200 | [diff] [blame] | 62 | bool batadv_tt_local_client_is_roaming(struct batadv_priv *bat_priv, |
| 63 | uint8_t *addr); |
Antonio Quartulli | 30cfd02 | 2012-07-05 23:38:29 +0200 | [diff] [blame] | 64 | bool batadv_tt_add_temporary_global_entry(struct batadv_priv *bat_priv, |
| 65 | struct batadv_orig_node *orig_node, |
| 66 | const unsigned char *addr); |
Sven Eckelmann | c6c8fea | 2010-12-13 11:19:28 +0000 | [diff] [blame] | 67 | |
| 68 | #endif /* _NET_BATMAN_ADV_TRANSLATION_TABLE_H_ */ |