aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSven Eckelmann <sven@narfation.org>2012-05-16 14:23:16 -0400
committerAntonio Quartulli <ordex@autistici.org>2012-06-25 02:21:50 -0400
commita513088d022c8f59cebe17c567797c220563b517 (patch)
treedb0545ed9e4f59bba9d85feeebc668388b258e44
parent0294ca0d92c6539ec6e37edf65a0a5b033dd6d78 (diff)
batman-adv: Prefix translation-table local static functions with batadv_
All non-static symbols of batman-adv were prefixed with batadv_ to avoid collisions with other symbols of the kernel. Other symbols of batman-adv should use the same prefix to keep the naming scheme consistent. Signed-off-by: Sven Eckelmann <sven@narfation.org>
-rw-r--r--net/batman-adv/translation-table.c540
1 files changed, 282 insertions, 258 deletions
diff --git a/net/batman-adv/translation-table.c b/net/batman-adv/translation-table.c
index 2eff22f9fdaa..f7a615261f4e 100644
--- a/net/batman-adv/translation-table.c
+++ b/net/batman-adv/translation-table.c
@@ -29,13 +29,14 @@
29 29
30#include <linux/crc16.h> 30#include <linux/crc16.h>
31 31
32static void send_roam_adv(struct bat_priv *bat_priv, uint8_t *client, 32static void batadv_send_roam_adv(struct bat_priv *bat_priv, uint8_t *client,
33 struct orig_node *orig_node); 33 struct orig_node *orig_node);
34static void tt_purge(struct work_struct *work); 34static void batadv_tt_purge(struct work_struct *work);
35static void tt_global_del_orig_list(struct tt_global_entry *tt_global_entry); 35static void
36batadv_tt_global_del_orig_list(struct tt_global_entry *tt_global_entry);
36 37
37/* returns 1 if they are the same mac addr */ 38/* returns 1 if they are the same mac addr */
38static int compare_tt(const struct hlist_node *node, const void *data2) 39static int batadv_compare_tt(const struct hlist_node *node, const void *data2)
39{ 40{
40 const void *data1 = container_of(node, struct tt_common_entry, 41 const void *data1 = container_of(node, struct tt_common_entry,
41 hash_entry); 42 hash_entry);
@@ -43,15 +44,15 @@ static int compare_tt(const struct hlist_node *node, const void *data2)
43 return (memcmp(data1, data2, ETH_ALEN) == 0 ? 1 : 0); 44 return (memcmp(data1, data2, ETH_ALEN) == 0 ? 1 : 0);
44} 45}
45 46
46static void tt_start_timer(struct bat_priv *bat_priv) 47static void batadv_tt_start_timer(struct bat_priv *bat_priv)
47{ 48{
48 INIT_DELAYED_WORK(&bat_priv->tt_work, tt_purge); 49 INIT_DELAYED_WORK(&bat_priv->tt_work, batadv_tt_purge);
49 queue_delayed_work(batadv_event_workqueue, &bat_priv->tt_work, 50 queue_delayed_work(batadv_event_workqueue, &bat_priv->tt_work,
50 msecs_to_jiffies(5000)); 51 msecs_to_jiffies(5000));
51} 52}
52 53
53static struct tt_common_entry *tt_hash_find(struct hashtable_t *hash, 54static struct tt_common_entry *batadv_tt_hash_find(struct hashtable_t *hash,
54 const void *data) 55 const void *data)
55{ 56{
56 struct hlist_head *head; 57 struct hlist_head *head;
57 struct hlist_node *node; 58 struct hlist_node *node;
@@ -80,26 +81,26 @@ static struct tt_common_entry *tt_hash_find(struct hashtable_t *hash,
80 return tt_common_entry_tmp; 81 return tt_common_entry_tmp;
81} 82}
82 83
83static struct tt_local_entry *tt_local_hash_find(struct bat_priv *bat_priv, 84static struct tt_local_entry *
84 const void *data) 85batadv_tt_local_hash_find(struct bat_priv *bat_priv, const void *data)
85{ 86{
86 struct tt_common_entry *tt_common_entry; 87 struct tt_common_entry *tt_common_entry;
87 struct tt_local_entry *tt_local_entry = NULL; 88 struct tt_local_entry *tt_local_entry = NULL;
88 89
89 tt_common_entry = tt_hash_find(bat_priv->tt_local_hash, data); 90 tt_common_entry = batadv_tt_hash_find(bat_priv->tt_local_hash, data);
90 if (tt_common_entry) 91 if (tt_common_entry)
91 tt_local_entry = container_of(tt_common_entry, 92 tt_local_entry = container_of(tt_common_entry,
92 struct tt_local_entry, common); 93 struct tt_local_entry, common);
93 return tt_local_entry; 94 return tt_local_entry;
94} 95}
95 96
96static struct tt_global_entry *tt_global_hash_find(struct bat_priv *bat_priv, 97static struct tt_global_entry *
97 const void *data) 98batadv_tt_global_hash_find(struct bat_priv *bat_priv, const void *data)
98{ 99{
99 struct tt_common_entry *tt_common_entry; 100 struct tt_common_entry *tt_common_entry;
100 struct tt_global_entry *tt_global_entry = NULL; 101 struct tt_global_entry *tt_global_entry = NULL;
101 102
102 tt_common_entry = tt_hash_find(bat_priv->tt_global_hash, data); 103 tt_common_entry = batadv_tt_hash_find(bat_priv->tt_global_hash, data);
103 if (tt_common_entry) 104 if (tt_common_entry)
104 tt_global_entry = container_of(tt_common_entry, 105 tt_global_entry = container_of(tt_common_entry,
105 struct tt_global_entry, common); 106 struct tt_global_entry, common);
@@ -107,13 +108,14 @@ static struct tt_global_entry *tt_global_hash_find(struct bat_priv *bat_priv,
107 108
108} 109}
109 110
110static void tt_local_entry_free_ref(struct tt_local_entry *tt_local_entry) 111static void
112batadv_tt_local_entry_free_ref(struct tt_local_entry *tt_local_entry)
111{ 113{
112 if (atomic_dec_and_test(&tt_local_entry->common.refcount)) 114 if (atomic_dec_and_test(&tt_local_entry->common.refcount))
113 kfree_rcu(tt_local_entry, common.rcu); 115 kfree_rcu(tt_local_entry, common.rcu);
114} 116}
115 117
116static void tt_global_entry_free_rcu(struct rcu_head *rcu) 118static void batadv_tt_global_entry_free_rcu(struct rcu_head *rcu)
117{ 119{
118 struct tt_common_entry *tt_common_entry; 120 struct tt_common_entry *tt_common_entry;
119 struct tt_global_entry *tt_global_entry; 121 struct tt_global_entry *tt_global_entry;
@@ -125,16 +127,17 @@ static void tt_global_entry_free_rcu(struct rcu_head *rcu)
125 kfree(tt_global_entry); 127 kfree(tt_global_entry);
126} 128}
127 129
128static void tt_global_entry_free_ref(struct tt_global_entry *tt_global_entry) 130static void
131batadv_tt_global_entry_free_ref(struct tt_global_entry *tt_global_entry)
129{ 132{
130 if (atomic_dec_and_test(&tt_global_entry->common.refcount)) { 133 if (atomic_dec_and_test(&tt_global_entry->common.refcount)) {
131 tt_global_del_orig_list(tt_global_entry); 134 batadv_tt_global_del_orig_list(tt_global_entry);
132 call_rcu(&tt_global_entry->common.rcu, 135 call_rcu(&tt_global_entry->common.rcu,
133 tt_global_entry_free_rcu); 136 batadv_tt_global_entry_free_rcu);
134 } 137 }
135} 138}
136 139
137static void tt_orig_list_entry_free_rcu(struct rcu_head *rcu) 140static void batadv_tt_orig_list_entry_free_rcu(struct rcu_head *rcu)
138{ 141{
139 struct tt_orig_list_entry *orig_entry; 142 struct tt_orig_list_entry *orig_entry;
140 143
@@ -144,13 +147,14 @@ static void tt_orig_list_entry_free_rcu(struct rcu_head *rcu)
144 kfree(orig_entry); 147 kfree(orig_entry);
145} 148}
146 149
147static void tt_orig_list_entry_free_ref(struct tt_orig_list_entry *orig_entry) 150static void
151batadv_tt_orig_list_entry_free_ref(struct tt_orig_list_entry *orig_entry)
148{ 152{
149 call_rcu(&orig_entry->rcu, tt_orig_list_entry_free_rcu); 153 call_rcu(&orig_entry->rcu, batadv_tt_orig_list_entry_free_rcu);
150} 154}
151 155
152static void tt_local_event(struct bat_priv *bat_priv, const uint8_t *addr, 156static void batadv_tt_local_event(struct bat_priv *bat_priv,
153 uint8_t flags) 157 const uint8_t *addr, uint8_t flags)
154{ 158{
155 struct tt_change_node *tt_change_node; 159 struct tt_change_node *tt_change_node;
156 160
@@ -176,7 +180,7 @@ int batadv_tt_len(int changes_num)
176 return changes_num * sizeof(struct tt_change); 180 return changes_num * sizeof(struct tt_change);
177} 181}
178 182
179static int tt_local_init(struct bat_priv *bat_priv) 183static int batadv_tt_local_init(struct bat_priv *bat_priv)
180{ 184{
181 if (bat_priv->tt_local_hash) 185 if (bat_priv->tt_local_hash)
182 return 0; 186 return 0;
@@ -200,7 +204,7 @@ void batadv_tt_local_add(struct net_device *soft_iface, const uint8_t *addr,
200 struct tt_orig_list_entry *orig_entry; 204 struct tt_orig_list_entry *orig_entry;
201 int hash_added; 205 int hash_added;
202 206
203 tt_local_entry = tt_local_hash_find(bat_priv, addr); 207 tt_local_entry = batadv_tt_local_hash_find(bat_priv, addr);
204 208
205 if (tt_local_entry) { 209 if (tt_local_entry) {
206 tt_local_entry->last_seen = jiffies; 210 tt_local_entry->last_seen = jiffies;
@@ -234,21 +238,21 @@ void batadv_tt_local_add(struct net_device *soft_iface, const uint8_t *addr,
234 */ 238 */
235 tt_local_entry->common.flags |= TT_CLIENT_NEW; 239 tt_local_entry->common.flags |= TT_CLIENT_NEW;
236 240
237 hash_added = batadv_hash_add(bat_priv->tt_local_hash, compare_tt, 241 hash_added = batadv_hash_add(bat_priv->tt_local_hash, batadv_compare_tt,
238 batadv_choose_orig, 242 batadv_choose_orig,
239 &tt_local_entry->common, 243 &tt_local_entry->common,
240 &tt_local_entry->common.hash_entry); 244 &tt_local_entry->common.hash_entry);
241 245
242 if (unlikely(hash_added != 0)) { 246 if (unlikely(hash_added != 0)) {
243 /* remove the reference for the hash */ 247 /* remove the reference for the hash */
244 tt_local_entry_free_ref(tt_local_entry); 248 batadv_tt_local_entry_free_ref(tt_local_entry);
245 goto out; 249 goto out;
246 } 250 }
247 251
248 tt_local_event(bat_priv, addr, tt_local_entry->common.flags); 252 batadv_tt_local_event(bat_priv, addr, tt_local_entry->common.flags);
249 253
250 /* remove address from global hash if present */ 254 /* remove address from global hash if present */
251 tt_global_entry = tt_global_hash_find(bat_priv, addr); 255 tt_global_entry = batadv_tt_global_hash_find(bat_priv, addr);
252 256
253 /* Check whether it is a roaming! */ 257 /* Check whether it is a roaming! */
254 if (tt_global_entry) { 258 if (tt_global_entry) {
@@ -258,8 +262,9 @@ void batadv_tt_local_add(struct net_device *soft_iface, const uint8_t *addr,
258 hlist_for_each_entry_rcu(orig_entry, node, head, list) { 262 hlist_for_each_entry_rcu(orig_entry, node, head, list) {
259 orig_entry->orig_node->tt_poss_change = true; 263 orig_entry->orig_node->tt_poss_change = true;
260 264
261 send_roam_adv(bat_priv, tt_global_entry->common.addr, 265 batadv_send_roam_adv(bat_priv,
262 orig_entry->orig_node); 266 tt_global_entry->common.addr,
267 orig_entry->orig_node);
263 } 268 }
264 rcu_read_unlock(); 269 rcu_read_unlock();
265 /* The global entry has to be marked as ROAMING and 270 /* The global entry has to be marked as ROAMING and
@@ -270,14 +275,15 @@ void batadv_tt_local_add(struct net_device *soft_iface, const uint8_t *addr,
270 } 275 }
271out: 276out:
272 if (tt_local_entry) 277 if (tt_local_entry)
273 tt_local_entry_free_ref(tt_local_entry); 278 batadv_tt_local_entry_free_ref(tt_local_entry);
274 if (tt_global_entry) 279 if (tt_global_entry)
275 tt_global_entry_free_ref(tt_global_entry); 280 batadv_tt_global_entry_free_ref(tt_global_entry);
276} 281}
277 282
278static void tt_realloc_packet_buff(unsigned char **packet_buff, 283static void batadv_tt_realloc_packet_buff(unsigned char **packet_buff,
279 int *packet_buff_len, int min_packet_len, 284 int *packet_buff_len,
280 int new_packet_len) 285 int min_packet_len,
286 int new_packet_len)
281{ 287{
282 unsigned char *new_buff; 288 unsigned char *new_buff;
283 289
@@ -292,9 +298,10 @@ static void tt_realloc_packet_buff(unsigned char **packet_buff,
292 } 298 }
293} 299}
294 300
295static void tt_prepare_packet_buff(struct bat_priv *bat_priv, 301static void batadv_tt_prepare_packet_buff(struct bat_priv *bat_priv,
296 unsigned char **packet_buff, 302 unsigned char **packet_buff,
297 int *packet_buff_len, int min_packet_len) 303 int *packet_buff_len,
304 int min_packet_len)
298{ 305{
299 struct hard_iface *primary_if; 306 struct hard_iface *primary_if;
300 int req_len; 307 int req_len;
@@ -310,23 +317,24 @@ static void tt_prepare_packet_buff(struct bat_priv *bat_priv,
310 if ((!primary_if) || (req_len > primary_if->soft_iface->mtu)) 317 if ((!primary_if) || (req_len > primary_if->soft_iface->mtu))
311 req_len = min_packet_len; 318 req_len = min_packet_len;
312 319
313 tt_realloc_packet_buff(packet_buff, packet_buff_len, 320 batadv_tt_realloc_packet_buff(packet_buff, packet_buff_len,
314 min_packet_len, req_len); 321 min_packet_len, req_len);
315 322
316 if (primary_if) 323 if (primary_if)
317 batadv_hardif_free_ref(primary_if); 324 batadv_hardif_free_ref(primary_if);
318} 325}
319 326
320static int tt_changes_fill_buff(struct bat_priv *bat_priv, 327static int batadv_tt_changes_fill_buff(struct bat_priv *bat_priv,
321 unsigned char **packet_buff, 328 unsigned char **packet_buff,
322 int *packet_buff_len, int min_packet_len) 329 int *packet_buff_len,
330 int min_packet_len)
323{ 331{
324 struct tt_change_node *entry, *safe; 332 struct tt_change_node *entry, *safe;
325 int count = 0, tot_changes = 0, new_len; 333 int count = 0, tot_changes = 0, new_len;
326 unsigned char *tt_buff; 334 unsigned char *tt_buff;
327 335
328 tt_prepare_packet_buff(bat_priv, packet_buff, 336 batadv_tt_prepare_packet_buff(bat_priv, packet_buff,
329 packet_buff_len, min_packet_len); 337 packet_buff_len, min_packet_len);
330 338
331 new_len = *packet_buff_len - min_packet_len; 339 new_len = *packet_buff_len - min_packet_len;
332 tt_buff = *packet_buff + min_packet_len; 340 tt_buff = *packet_buff + min_packet_len;
@@ -428,12 +436,12 @@ out:
428 return ret; 436 return ret;
429} 437}
430 438
431static void tt_local_set_pending(struct bat_priv *bat_priv, 439static void batadv_tt_local_set_pending(struct bat_priv *bat_priv,
432 struct tt_local_entry *tt_local_entry, 440 struct tt_local_entry *tt_local_entry,
433 uint16_t flags, const char *message) 441 uint16_t flags, const char *message)
434{ 442{
435 tt_local_event(bat_priv, tt_local_entry->common.addr, 443 batadv_tt_local_event(bat_priv, tt_local_entry->common.addr,
436 tt_local_entry->common.flags | flags); 444 tt_local_entry->common.flags | flags);
437 445
438 /* The local client has to be marked as "pending to be removed" but has 446 /* The local client has to be marked as "pending to be removed" but has
439 * to be kept in the table in order to send it in a full table 447 * to be kept in the table in order to send it in a full table
@@ -451,18 +459,19 @@ void batadv_tt_local_remove(struct bat_priv *bat_priv, const uint8_t *addr,
451{ 459{
452 struct tt_local_entry *tt_local_entry = NULL; 460 struct tt_local_entry *tt_local_entry = NULL;
453 461
454 tt_local_entry = tt_local_hash_find(bat_priv, addr); 462 tt_local_entry = batadv_tt_local_hash_find(bat_priv, addr);
455 if (!tt_local_entry) 463 if (!tt_local_entry)
456 goto out; 464 goto out;
457 465
458 tt_local_set_pending(bat_priv, tt_local_entry, TT_CLIENT_DEL | 466 batadv_tt_local_set_pending(bat_priv, tt_local_entry, TT_CLIENT_DEL |
459 (roaming ? TT_CLIENT_ROAM : NO_FLAGS), message); 467 (roaming ? TT_CLIENT_ROAM : NO_FLAGS),
468 message);
460out: 469out:
461 if (tt_local_entry) 470 if (tt_local_entry)
462 tt_local_entry_free_ref(tt_local_entry); 471 batadv_tt_local_entry_free_ref(tt_local_entry);
463} 472}
464 473
465static void tt_local_purge(struct bat_priv *bat_priv) 474static void batadv_tt_local_purge(struct bat_priv *bat_priv)
466{ 475{
467 struct hashtable_t *hash = bat_priv->tt_local_hash; 476 struct hashtable_t *hash = bat_priv->tt_local_hash;
468 struct tt_local_entry *tt_local_entry; 477 struct tt_local_entry *tt_local_entry;
@@ -493,15 +502,15 @@ static void tt_local_purge(struct bat_priv *bat_priv)
493 TT_LOCAL_TIMEOUT)) 502 TT_LOCAL_TIMEOUT))
494 continue; 503 continue;
495 504
496 tt_local_set_pending(bat_priv, tt_local_entry, 505 batadv_tt_local_set_pending(bat_priv, tt_local_entry,
497 TT_CLIENT_DEL, "timed out"); 506 TT_CLIENT_DEL, "timed out");
498 } 507 }
499 spin_unlock_bh(list_lock); 508 spin_unlock_bh(list_lock);
500 } 509 }
501 510
502} 511}
503 512
504static void tt_local_table_free(struct bat_priv *bat_priv) 513static void batadv_tt_local_table_free(struct bat_priv *bat_priv)
505{ 514{
506 struct hashtable_t *hash; 515 struct hashtable_t *hash;
507 spinlock_t *list_lock; /* protects write access to the hash lists */ 516 spinlock_t *list_lock; /* protects write access to the hash lists */
@@ -527,7 +536,7 @@ static void tt_local_table_free(struct bat_priv *bat_priv)
527 tt_local_entry = container_of(tt_common_entry, 536 tt_local_entry = container_of(tt_common_entry,
528 struct tt_local_entry, 537 struct tt_local_entry,
529 common); 538 common);
530 tt_local_entry_free_ref(tt_local_entry); 539 batadv_tt_local_entry_free_ref(tt_local_entry);
531 } 540 }
532 spin_unlock_bh(list_lock); 541 spin_unlock_bh(list_lock);
533 } 542 }
@@ -537,7 +546,7 @@ static void tt_local_table_free(struct bat_priv *bat_priv)
537 bat_priv->tt_local_hash = NULL; 546 bat_priv->tt_local_hash = NULL;
538} 547}
539 548
540static int tt_global_init(struct bat_priv *bat_priv) 549static int batadv_tt_global_init(struct bat_priv *bat_priv)
541{ 550{
542 if (bat_priv->tt_global_hash) 551 if (bat_priv->tt_global_hash)
543 return 0; 552 return 0;
@@ -550,7 +559,7 @@ static int tt_global_init(struct bat_priv *bat_priv)
550 return 0; 559 return 0;
551} 560}
552 561
553static void tt_changes_list_free(struct bat_priv *bat_priv) 562static void batadv_tt_changes_list_free(struct bat_priv *bat_priv)
554{ 563{
555 struct tt_change_node *entry, *safe; 564 struct tt_change_node *entry, *safe;
556 565
@@ -569,8 +578,8 @@ static void tt_changes_list_free(struct bat_priv *bat_priv)
569/* find out if an orig_node is already in the list of a tt_global_entry. 578/* find out if an orig_node is already in the list of a tt_global_entry.
570 * returns 1 if found, 0 otherwise 579 * returns 1 if found, 0 otherwise
571 */ 580 */
572static bool tt_global_entry_has_orig(const struct tt_global_entry *entry, 581static bool batadv_tt_global_entry_has_orig(const struct tt_global_entry *entry,
573 const struct orig_node *orig_node) 582 const struct orig_node *orig_node)
574{ 583{
575 struct tt_orig_list_entry *tmp_orig_entry; 584 struct tt_orig_list_entry *tmp_orig_entry;
576 const struct hlist_head *head; 585 const struct hlist_head *head;
@@ -589,9 +598,9 @@ static bool tt_global_entry_has_orig(const struct tt_global_entry *entry,
589 return found; 598 return found;
590} 599}
591 600
592static void tt_global_add_orig_entry(struct tt_global_entry *tt_global_entry, 601static void
593 struct orig_node *orig_node, 602batadv_tt_global_add_orig_entry(struct tt_global_entry *tt_global_entry,
594 int ttvn) 603 struct orig_node *orig_node, int ttvn)
595{ 604{
596 struct tt_orig_list_entry *orig_entry; 605 struct tt_orig_list_entry *orig_entry;
597 606
@@ -621,7 +630,7 @@ int batadv_tt_global_add(struct bat_priv *bat_priv, struct orig_node *orig_node,
621 int hash_added; 630 int hash_added;
622 struct tt_common_entry *common; 631 struct tt_common_entry *common;
623 632
624 tt_global_entry = tt_global_hash_find(bat_priv, tt_addr); 633 tt_global_entry = batadv_tt_global_hash_find(bat_priv, tt_addr);
625 634
626 if (!tt_global_entry) { 635 if (!tt_global_entry) {
627 tt_global_entry = kzalloc(sizeof(*tt_global_entry), 636 tt_global_entry = kzalloc(sizeof(*tt_global_entry),
@@ -640,16 +649,18 @@ int batadv_tt_global_add(struct bat_priv *bat_priv, struct orig_node *orig_node,
640 spin_lock_init(&tt_global_entry->list_lock); 649 spin_lock_init(&tt_global_entry->list_lock);
641 650
642 hash_added = batadv_hash_add(bat_priv->tt_global_hash, 651 hash_added = batadv_hash_add(bat_priv->tt_global_hash,
643 compare_tt, batadv_choose_orig, 652 batadv_compare_tt,
644 common, &common->hash_entry); 653 batadv_choose_orig, common,
654 &common->hash_entry);
645 655
646 if (unlikely(hash_added != 0)) { 656 if (unlikely(hash_added != 0)) {
647 /* remove the reference for the hash */ 657 /* remove the reference for the hash */
648 tt_global_entry_free_ref(tt_global_entry); 658 batadv_tt_global_entry_free_ref(tt_global_entry);
649 goto out_remove; 659 goto out_remove;
650 } 660 }
651 661
652 tt_global_add_orig_entry(tt_global_entry, orig_node, ttvn); 662 batadv_tt_global_add_orig_entry(tt_global_entry, orig_node,
663 ttvn);
653 } else { 664 } else {
654 /* there is already a global entry, use this one. */ 665 /* there is already a global entry, use this one. */
655 666
@@ -661,14 +672,15 @@ int batadv_tt_global_add(struct bat_priv *bat_priv, struct orig_node *orig_node,
661 * new one. 672 * new one.
662 */ 673 */
663 if (tt_global_entry->common.flags & TT_CLIENT_ROAM) { 674 if (tt_global_entry->common.flags & TT_CLIENT_ROAM) {
664 tt_global_del_orig_list(tt_global_entry); 675 batadv_tt_global_del_orig_list(tt_global_entry);
665 tt_global_entry->common.flags &= ~TT_CLIENT_ROAM; 676 tt_global_entry->common.flags &= ~TT_CLIENT_ROAM;
666 tt_global_entry->roam_at = 0; 677 tt_global_entry->roam_at = 0;
667 } 678 }
668 679
669 if (!tt_global_entry_has_orig(tt_global_entry, orig_node)) 680 if (!batadv_tt_global_entry_has_orig(tt_global_entry,
670 tt_global_add_orig_entry(tt_global_entry, orig_node, 681 orig_node))
671 ttvn); 682 batadv_tt_global_add_orig_entry(tt_global_entry,
683 orig_node, ttvn);
672 } 684 }
673 685
674 if (wifi) 686 if (wifi)
@@ -685,15 +697,16 @@ out_remove:
685 ret = 1; 697 ret = 1;
686out: 698out:
687 if (tt_global_entry) 699 if (tt_global_entry)
688 tt_global_entry_free_ref(tt_global_entry); 700 batadv_tt_global_entry_free_ref(tt_global_entry);
689 return ret; 701 return ret;
690} 702}
691 703
692/* print all orig nodes who announce the address for this global entry. 704/* print all orig nodes who announce the address for this global entry.
693 * it is assumed that the caller holds rcu_read_lock(); 705 * it is assumed that the caller holds rcu_read_lock();
694 */ 706 */
695static void tt_global_print_entry(struct tt_global_entry *tt_global_entry, 707static void
696 struct seq_file *seq) 708batadv_tt_global_print_entry(struct tt_global_entry *tt_global_entry,
709 struct seq_file *seq)
697{ 710{
698 struct hlist_head *head; 711 struct hlist_head *head;
699 struct hlist_node *node; 712 struct hlist_node *node;
@@ -760,7 +773,7 @@ int batadv_tt_global_seq_print_text(struct seq_file *seq, void *offset)
760 tt_global_entry = container_of(tt_common_entry, 773 tt_global_entry = container_of(tt_common_entry,
761 struct tt_global_entry, 774 struct tt_global_entry,
762 common); 775 common);
763 tt_global_print_entry(tt_global_entry, seq); 776 batadv_tt_global_print_entry(tt_global_entry, seq);
764 } 777 }
765 rcu_read_unlock(); 778 rcu_read_unlock();
766 } 779 }
@@ -771,7 +784,8 @@ out:
771} 784}
772 785
773/* deletes the orig list of a tt_global_entry */ 786/* deletes the orig list of a tt_global_entry */
774static void tt_global_del_orig_list(struct tt_global_entry *tt_global_entry) 787static void
788batadv_tt_global_del_orig_list(struct tt_global_entry *tt_global_entry)
775{ 789{
776 struct hlist_head *head; 790 struct hlist_head *head;
777 struct hlist_node *node, *safe; 791 struct hlist_node *node, *safe;
@@ -781,16 +795,17 @@ static void tt_global_del_orig_list(struct tt_global_entry *tt_global_entry)
781 head = &tt_global_entry->orig_list; 795 head = &tt_global_entry->orig_list;
782 hlist_for_each_entry_safe(orig_entry, node, safe, head, list) { 796 hlist_for_each_entry_safe(orig_entry, node, safe, head, list) {
783 hlist_del_rcu(node); 797 hlist_del_rcu(node);
784 tt_orig_list_entry_free_ref(orig_entry); 798 batadv_tt_orig_list_entry_free_ref(orig_entry);
785 } 799 }
786 spin_unlock_bh(&tt_global_entry->list_lock); 800 spin_unlock_bh(&tt_global_entry->list_lock);
787 801
788} 802}
789 803
790static void tt_global_del_orig_entry(struct bat_priv *bat_priv, 804static void
791 struct tt_global_entry *tt_global_entry, 805batadv_tt_global_del_orig_entry(struct bat_priv *bat_priv,
792 struct orig_node *orig_node, 806 struct tt_global_entry *tt_global_entry,
793 const char *message) 807 struct orig_node *orig_node,
808 const char *message)
794{ 809{
795 struct hlist_head *head; 810 struct hlist_head *head;
796 struct hlist_node *node, *safe; 811 struct hlist_node *node, *safe;
@@ -805,22 +820,22 @@ static void tt_global_del_orig_entry(struct bat_priv *bat_priv,
805 orig_node->orig, 820 orig_node->orig,
806 tt_global_entry->common.addr, message); 821 tt_global_entry->common.addr, message);
807 hlist_del_rcu(node); 822 hlist_del_rcu(node);
808 tt_orig_list_entry_free_ref(orig_entry); 823 batadv_tt_orig_list_entry_free_ref(orig_entry);
809 } 824 }
810 } 825 }
811 spin_unlock_bh(&tt_global_entry->list_lock); 826 spin_unlock_bh(&tt_global_entry->list_lock);
812} 827}
813 828
814static void tt_global_del_struct(struct bat_priv *bat_priv, 829static void batadv_tt_global_del_struct(struct bat_priv *bat_priv,
815 struct tt_global_entry *tt_global_entry, 830 struct tt_global_entry *tt_global_entry,
816 const char *message) 831 const char *message)
817{ 832{
818 batadv_dbg(DBG_TT, bat_priv, "Deleting global tt entry %pM: %s\n", 833 batadv_dbg(DBG_TT, bat_priv, "Deleting global tt entry %pM: %s\n",
819 tt_global_entry->common.addr, message); 834 tt_global_entry->common.addr, message);
820 835
821 batadv_hash_remove(bat_priv->tt_global_hash, compare_tt, 836 batadv_hash_remove(bat_priv->tt_global_hash, batadv_compare_tt,
822 batadv_choose_orig, tt_global_entry->common.addr); 837 batadv_choose_orig, tt_global_entry->common.addr);
823 tt_global_entry_free_ref(tt_global_entry); 838 batadv_tt_global_entry_free_ref(tt_global_entry);
824 839
825} 840}
826 841
@@ -828,10 +843,10 @@ static void tt_global_del_struct(struct bat_priv *bat_priv,
828 * within tt_global entry. If yes, we set the TT_CLIENT_ROAM flag and the timer, 843 * within tt_global entry. If yes, we set the TT_CLIENT_ROAM flag and the timer,
829 * otherwise we simply remove the originator scheduled for deletion. 844 * otherwise we simply remove the originator scheduled for deletion.
830 */ 845 */
831static void tt_global_del_roaming(struct bat_priv *bat_priv, 846static void
832 struct tt_global_entry *tt_global_entry, 847batadv_tt_global_del_roaming(struct bat_priv *bat_priv,
833 struct orig_node *orig_node, 848 struct tt_global_entry *tt_global_entry,
834 const char *message) 849 struct orig_node *orig_node, const char *message)
835{ 850{
836 bool last_entry = true; 851 bool last_entry = true;
837 struct hlist_head *head; 852 struct hlist_head *head;
@@ -860,31 +875,31 @@ static void tt_global_del_roaming(struct bat_priv *bat_priv,
860 /* there is another entry, we can simply delete this 875 /* there is another entry, we can simply delete this
861 * one and can still use the other one. 876 * one and can still use the other one.
862 */ 877 */
863 tt_global_del_orig_entry(bat_priv, tt_global_entry, 878 batadv_tt_global_del_orig_entry(bat_priv, tt_global_entry,
864 orig_node, message); 879 orig_node, message);
865} 880}
866 881
867 882
868 883
869static void tt_global_del(struct bat_priv *bat_priv, 884static void batadv_tt_global_del(struct bat_priv *bat_priv,
870 struct orig_node *orig_node, 885 struct orig_node *orig_node,
871 const unsigned char *addr, 886 const unsigned char *addr,
872 const char *message, bool roaming) 887 const char *message, bool roaming)
873{ 888{
874 struct tt_global_entry *tt_global_entry = NULL; 889 struct tt_global_entry *tt_global_entry = NULL;
875 struct tt_local_entry *tt_local_entry = NULL; 890 struct tt_local_entry *local_entry = NULL;
876 891
877 tt_global_entry = tt_global_hash_find(bat_priv, addr); 892 tt_global_entry = batadv_tt_global_hash_find(bat_priv, addr);
878 if (!tt_global_entry) 893 if (!tt_global_entry)
879 goto out; 894 goto out;
880 895
881 if (!roaming) { 896 if (!roaming) {
882 tt_global_del_orig_entry(bat_priv, tt_global_entry, orig_node, 897 batadv_tt_global_del_orig_entry(bat_priv, tt_global_entry,
883 message); 898 orig_node, message);
884 899
885 if (hlist_empty(&tt_global_entry->orig_list)) 900 if (hlist_empty(&tt_global_entry->orig_list))
886 tt_global_del_struct(bat_priv, tt_global_entry, 901 batadv_tt_global_del_struct(bat_priv, tt_global_entry,
887 message); 902 message);
888 903
889 goto out; 904 goto out;
890 } 905 }
@@ -902,29 +917,29 @@ static void tt_global_del(struct bat_priv *bat_priv,
902 * 2) the client roamed to us => we can directly delete 917 * 2) the client roamed to us => we can directly delete
903 * the global entry, since it is useless now. 918 * the global entry, since it is useless now.
904 */ 919 */
905 tt_local_entry = tt_local_hash_find(bat_priv, 920 local_entry = batadv_tt_local_hash_find(bat_priv,
906 tt_global_entry->common.addr); 921 tt_global_entry->common.addr);
907 if (tt_local_entry) { 922 if (local_entry) {
908 /* local entry exists, case 2: client roamed to us. */ 923 /* local entry exists, case 2: client roamed to us. */
909 tt_global_del_orig_list(tt_global_entry); 924 batadv_tt_global_del_orig_list(tt_global_entry);
910 tt_global_del_struct(bat_priv, tt_global_entry, message); 925 batadv_tt_global_del_struct(bat_priv, tt_global_entry, message);
911 } else 926 } else
912 /* no local entry exists, case 1: check for roaming */ 927 /* no local entry exists, case 1: check for roaming */
913 tt_global_del_roaming(bat_priv, tt_global_entry, orig_node, 928 batadv_tt_global_del_roaming(bat_priv, tt_global_entry,
914 message); 929 orig_node, message);
915 930
916 931
917out: 932out:
918 if (tt_global_entry) 933 if (tt_global_entry)
919 tt_global_entry_free_ref(tt_global_entry); 934 batadv_tt_global_entry_free_ref(tt_global_entry);
920 if (tt_local_entry) 935 if (local_entry)
921 tt_local_entry_free_ref(tt_local_entry); 936 batadv_tt_local_entry_free_ref(local_entry);
922} 937}
923 938
924void batadv_tt_global_del_orig(struct bat_priv *bat_priv, 939void batadv_tt_global_del_orig(struct bat_priv *bat_priv,
925 struct orig_node *orig_node, const char *message) 940 struct orig_node *orig_node, const char *message)
926{ 941{
927 struct tt_global_entry *tt_global_entry; 942 struct tt_global_entry *global_entry;
928 struct tt_common_entry *tt_common_entry; 943 struct tt_common_entry *tt_common_entry;
929 uint32_t i; 944 uint32_t i;
930 struct hashtable_t *hash = bat_priv->tt_global_hash; 945 struct hashtable_t *hash = bat_priv->tt_global_hash;
@@ -942,20 +957,19 @@ void batadv_tt_global_del_orig(struct bat_priv *bat_priv,
942 spin_lock_bh(list_lock); 957 spin_lock_bh(list_lock);
943 hlist_for_each_entry_safe(tt_common_entry, node, safe, 958 hlist_for_each_entry_safe(tt_common_entry, node, safe,
944 head, hash_entry) { 959 head, hash_entry) {
945 tt_global_entry = container_of(tt_common_entry, 960 global_entry = container_of(tt_common_entry,
946 struct tt_global_entry, 961 struct tt_global_entry,
947 common); 962 common);
948 963
949 tt_global_del_orig_entry(bat_priv, tt_global_entry, 964 batadv_tt_global_del_orig_entry(bat_priv, global_entry,
950 orig_node, message); 965 orig_node, message);
951 966
952 if (hlist_empty(&tt_global_entry->orig_list)) { 967 if (hlist_empty(&global_entry->orig_list)) {
953 batadv_dbg(DBG_TT, bat_priv, 968 batadv_dbg(DBG_TT, bat_priv,
954 "Deleting global tt entry %pM: %s\n", 969 "Deleting global tt entry %pM: %s\n",
955 tt_global_entry->common.addr, 970 global_entry->common.addr, message);
956 message);
957 hlist_del_rcu(node); 971 hlist_del_rcu(node);
958 tt_global_entry_free_ref(tt_global_entry); 972 batadv_tt_global_entry_free_ref(global_entry);
959 } 973 }
960 } 974 }
961 spin_unlock_bh(list_lock); 975 spin_unlock_bh(list_lock);
@@ -964,7 +978,7 @@ void batadv_tt_global_del_orig(struct bat_priv *bat_priv,
964 orig_node->tt_initialised = false; 978 orig_node->tt_initialised = false;
965} 979}
966 980
967static void tt_global_roam_purge(struct bat_priv *bat_priv) 981static void batadv_tt_global_roam_purge(struct bat_priv *bat_priv)
968{ 982{
969 struct hashtable_t *hash = bat_priv->tt_global_hash; 983 struct hashtable_t *hash = bat_priv->tt_global_hash;
970 struct tt_common_entry *tt_common_entry; 984 struct tt_common_entry *tt_common_entry;
@@ -995,14 +1009,14 @@ static void tt_global_roam_purge(struct bat_priv *bat_priv)
995 tt_global_entry->common.addr); 1009 tt_global_entry->common.addr);
996 1010
997 hlist_del_rcu(node); 1011 hlist_del_rcu(node);
998 tt_global_entry_free_ref(tt_global_entry); 1012 batadv_tt_global_entry_free_ref(tt_global_entry);
999 } 1013 }
1000 spin_unlock_bh(list_lock); 1014 spin_unlock_bh(list_lock);
1001 } 1015 }
1002 1016
1003} 1017}
1004 1018
1005static void tt_global_table_free(struct bat_priv *bat_priv) 1019static void batadv_tt_global_table_free(struct bat_priv *bat_priv)
1006{ 1020{
1007 struct hashtable_t *hash; 1021 struct hashtable_t *hash;
1008 spinlock_t *list_lock; /* protects write access to the hash lists */ 1022 spinlock_t *list_lock; /* protects write access to the hash lists */
@@ -1028,7 +1042,7 @@ static void tt_global_table_free(struct bat_priv *bat_priv)
1028 tt_global_entry = container_of(tt_common_entry, 1042 tt_global_entry = container_of(tt_common_entry,
1029 struct tt_global_entry, 1043 struct tt_global_entry,
1030 common); 1044 common);
1031 tt_global_entry_free_ref(tt_global_entry); 1045 batadv_tt_global_entry_free_ref(tt_global_entry);
1032 } 1046 }
1033 spin_unlock_bh(list_lock); 1047 spin_unlock_bh(list_lock);
1034 } 1048 }
@@ -1038,8 +1052,8 @@ static void tt_global_table_free(struct bat_priv *bat_priv)
1038 bat_priv->tt_global_hash = NULL; 1052 bat_priv->tt_global_hash = NULL;
1039} 1053}
1040 1054
1041static bool _is_ap_isolated(struct tt_local_entry *tt_local_entry, 1055static bool _batadv_is_ap_isolated(struct tt_local_entry *tt_local_entry,
1042 struct tt_global_entry *tt_global_entry) 1056 struct tt_global_entry *tt_global_entry)
1043{ 1057{
1044 bool ret = false; 1058 bool ret = false;
1045 1059
@@ -1064,19 +1078,20 @@ struct orig_node *batadv_transtable_search(struct bat_priv *bat_priv,
1064 int best_tq; 1078 int best_tq;
1065 1079
1066 if (src && atomic_read(&bat_priv->ap_isolation)) { 1080 if (src && atomic_read(&bat_priv->ap_isolation)) {
1067 tt_local_entry = tt_local_hash_find(bat_priv, src); 1081 tt_local_entry = batadv_tt_local_hash_find(bat_priv, src);
1068 if (!tt_local_entry) 1082 if (!tt_local_entry)
1069 goto out; 1083 goto out;
1070 } 1084 }
1071 1085
1072 tt_global_entry = tt_global_hash_find(bat_priv, addr); 1086 tt_global_entry = batadv_tt_global_hash_find(bat_priv, addr);
1073 if (!tt_global_entry) 1087 if (!tt_global_entry)
1074 goto out; 1088 goto out;
1075 1089
1076 /* check whether the clients should not communicate due to AP 1090 /* check whether the clients should not communicate due to AP
1077 * isolation 1091 * isolation
1078 */ 1092 */
1079 if (tt_local_entry && _is_ap_isolated(tt_local_entry, tt_global_entry)) 1093 if (tt_local_entry &&
1094 _batadv_is_ap_isolated(tt_local_entry, tt_global_entry))
1080 goto out; 1095 goto out;
1081 1096
1082 best_tq = 0; 1097 best_tq = 0;
@@ -1100,16 +1115,16 @@ struct orig_node *batadv_transtable_search(struct bat_priv *bat_priv,
1100 rcu_read_unlock(); 1115 rcu_read_unlock();
1101out: 1116out:
1102 if (tt_global_entry) 1117 if (tt_global_entry)
1103 tt_global_entry_free_ref(tt_global_entry); 1118 batadv_tt_global_entry_free_ref(tt_global_entry);
1104 if (tt_local_entry) 1119 if (tt_local_entry)
1105 tt_local_entry_free_ref(tt_local_entry); 1120 batadv_tt_local_entry_free_ref(tt_local_entry);
1106 1121
1107 return orig_node; 1122 return orig_node;
1108} 1123}
1109 1124
1110/* Calculates the checksum of the local table of a given orig_node */ 1125/* Calculates the checksum of the local table of a given orig_node */
1111static uint16_t tt_global_crc(struct bat_priv *bat_priv, 1126static uint16_t batadv_tt_global_crc(struct bat_priv *bat_priv,
1112 struct orig_node *orig_node) 1127 struct orig_node *orig_node)
1113{ 1128{
1114 uint16_t total = 0, total_one; 1129 uint16_t total = 0, total_one;
1115 struct hashtable_t *hash = bat_priv->tt_global_hash; 1130 struct hashtable_t *hash = bat_priv->tt_global_hash;
@@ -1140,8 +1155,8 @@ static uint16_t tt_global_crc(struct bat_priv *bat_priv,
1140 /* find out if this global entry is announced by this 1155 /* find out if this global entry is announced by this
1141 * originator 1156 * originator
1142 */ 1157 */
1143 if (!tt_global_entry_has_orig(tt_global_entry, 1158 if (!batadv_tt_global_entry_has_orig(tt_global_entry,
1144 orig_node)) 1159 orig_node))
1145 continue; 1160 continue;
1146 1161
1147 total_one = 0; 1162 total_one = 0;
@@ -1190,7 +1205,7 @@ static uint16_t batadv_tt_local_crc(struct bat_priv *bat_priv)
1190 return total; 1205 return total;
1191} 1206}
1192 1207
1193static void tt_req_list_free(struct bat_priv *bat_priv) 1208static void batadv_tt_req_list_free(struct bat_priv *bat_priv)
1194{ 1209{
1195 struct tt_req_node *node, *safe; 1210 struct tt_req_node *node, *safe;
1196 1211
@@ -1204,10 +1219,10 @@ static void tt_req_list_free(struct bat_priv *bat_priv)
1204 spin_unlock_bh(&bat_priv->tt_req_list_lock); 1219 spin_unlock_bh(&bat_priv->tt_req_list_lock);
1205} 1220}
1206 1221
1207static void tt_save_orig_buffer(struct bat_priv *bat_priv, 1222static void batadv_tt_save_orig_buffer(struct bat_priv *bat_priv,
1208 struct orig_node *orig_node, 1223 struct orig_node *orig_node,
1209 const unsigned char *tt_buff, 1224 const unsigned char *tt_buff,
1210 uint8_t tt_num_changes) 1225 uint8_t tt_num_changes)
1211{ 1226{
1212 uint16_t tt_buff_len = batadv_tt_len(tt_num_changes); 1227 uint16_t tt_buff_len = batadv_tt_len(tt_num_changes);
1213 1228
@@ -1227,7 +1242,7 @@ static void tt_save_orig_buffer(struct bat_priv *bat_priv,
1227 spin_unlock_bh(&orig_node->tt_buff_lock); 1242 spin_unlock_bh(&orig_node->tt_buff_lock);
1228} 1243}
1229 1244
1230static void tt_req_purge(struct bat_priv *bat_priv) 1245static void batadv_tt_req_purge(struct bat_priv *bat_priv)
1231{ 1246{
1232 struct tt_req_node *node, *safe; 1247 struct tt_req_node *node, *safe;
1233 1248
@@ -1244,8 +1259,8 @@ static void tt_req_purge(struct bat_priv *bat_priv)
1244/* returns the pointer to the new tt_req_node struct if no request 1259/* returns the pointer to the new tt_req_node struct if no request
1245 * has already been issued for this orig_node, NULL otherwise 1260 * has already been issued for this orig_node, NULL otherwise
1246 */ 1261 */
1247static struct tt_req_node *new_tt_req_node(struct bat_priv *bat_priv, 1262static struct tt_req_node *batadv_new_tt_req_node(struct bat_priv *bat_priv,
1248 struct orig_node *orig_node) 1263 struct orig_node *orig_node)
1249{ 1264{
1250 struct tt_req_node *tt_req_node_tmp, *tt_req_node = NULL; 1265 struct tt_req_node *tt_req_node_tmp, *tt_req_node = NULL;
1251 1266
@@ -1271,7 +1286,8 @@ unlock:
1271} 1286}
1272 1287
1273/* data_ptr is useless here, but has to be kept to respect the prototype */ 1288/* data_ptr is useless here, but has to be kept to respect the prototype */
1274static int tt_local_valid_entry(const void *entry_ptr, const void *data_ptr) 1289static int batadv_tt_local_valid_entry(const void *entry_ptr,
1290 const void *data_ptr)
1275{ 1291{
1276 const struct tt_common_entry *tt_common_entry = entry_ptr; 1292 const struct tt_common_entry *tt_common_entry = entry_ptr;
1277 1293
@@ -1280,7 +1296,8 @@ static int tt_local_valid_entry(const void *entry_ptr, const void *data_ptr)
1280 return 1; 1296 return 1;
1281} 1297}
1282 1298
1283static int tt_global_valid_entry(const void *entry_ptr, const void *data_ptr) 1299static int batadv_tt_global_valid(const void *entry_ptr,
1300 const void *data_ptr)
1284{ 1301{
1285 const struct tt_common_entry *tt_common_entry = entry_ptr; 1302 const struct tt_common_entry *tt_common_entry = entry_ptr;
1286 const struct tt_global_entry *tt_global_entry; 1303 const struct tt_global_entry *tt_global_entry;
@@ -1292,15 +1309,15 @@ static int tt_global_valid_entry(const void *entry_ptr, const void *data_ptr)
1292 tt_global_entry = container_of(tt_common_entry, struct tt_global_entry, 1309 tt_global_entry = container_of(tt_common_entry, struct tt_global_entry,
1293 common); 1310 common);
1294 1311
1295 return tt_global_entry_has_orig(tt_global_entry, orig_node); 1312 return batadv_tt_global_entry_has_orig(tt_global_entry, orig_node);
1296} 1313}
1297 1314
1298static struct sk_buff *tt_response_fill_table(uint16_t tt_len, uint8_t ttvn, 1315static struct sk_buff *
1299 struct hashtable_t *hash, 1316batadv_tt_response_fill_table(uint16_t tt_len, uint8_t ttvn,
1300 struct hard_iface *primary_if, 1317 struct hashtable_t *hash,
1301 int (*valid_cb)(const void *, 1318 struct hard_iface *primary_if,
1302 const void *), 1319 int (*valid_cb)(const void *, const void *),
1303 void *cb_data) 1320 void *cb_data)
1304{ 1321{
1305 struct tt_common_entry *tt_common_entry; 1322 struct tt_common_entry *tt_common_entry;
1306 struct tt_query_packet *tt_response; 1323 struct tt_query_packet *tt_response;
@@ -1361,9 +1378,10 @@ out:
1361 return skb; 1378 return skb;
1362} 1379}
1363 1380
1364static int send_tt_request(struct bat_priv *bat_priv, 1381static int batadv_send_tt_request(struct bat_priv *bat_priv,
1365 struct orig_node *dst_orig_node, 1382 struct orig_node *dst_orig_node,
1366 uint8_t ttvn, uint16_t tt_crc, bool full_table) 1383 uint8_t ttvn, uint16_t tt_crc,
1384 bool full_table)
1367{ 1385{
1368 struct sk_buff *skb = NULL; 1386 struct sk_buff *skb = NULL;
1369 struct tt_query_packet *tt_request; 1387 struct tt_query_packet *tt_request;
@@ -1379,7 +1397,7 @@ static int send_tt_request(struct bat_priv *bat_priv,
1379 /* The new tt_req will be issued only if I'm not waiting for a 1397 /* The new tt_req will be issued only if I'm not waiting for a
1380 * reply from the same orig_node yet 1398 * reply from the same orig_node yet
1381 */ 1399 */
1382 tt_req_node = new_tt_req_node(bat_priv, dst_orig_node); 1400 tt_req_node = batadv_new_tt_req_node(bat_priv, dst_orig_node);
1383 if (!tt_req_node) 1401 if (!tt_req_node)
1384 goto out; 1402 goto out;
1385 1403
@@ -1434,8 +1452,8 @@ out:
1434 return ret; 1452 return ret;
1435} 1453}
1436 1454
1437static bool send_other_tt_response(struct bat_priv *bat_priv, 1455static bool batadv_send_other_tt_response(struct bat_priv *bat_priv,
1438 struct tt_query_packet *tt_request) 1456 struct tt_query_packet *tt_request)
1439{ 1457{
1440 struct orig_node *req_dst_orig_node = NULL, *res_dst_orig_node = NULL; 1458 struct orig_node *req_dst_orig_node = NULL, *res_dst_orig_node = NULL;
1441 struct neigh_node *neigh_node = NULL; 1459 struct neigh_node *neigh_node = NULL;
@@ -1515,10 +1533,11 @@ static bool send_other_tt_response(struct bat_priv *bat_priv,
1515 sizeof(struct tt_change); 1533 sizeof(struct tt_change);
1516 ttvn = (uint8_t)atomic_read(&req_dst_orig_node->last_ttvn); 1534 ttvn = (uint8_t)atomic_read(&req_dst_orig_node->last_ttvn);
1517 1535
1518 skb = tt_response_fill_table(tt_len, ttvn, 1536 skb = batadv_tt_response_fill_table(tt_len, ttvn,
1519 bat_priv->tt_global_hash, 1537 bat_priv->tt_global_hash,
1520 primary_if, tt_global_valid_entry, 1538 primary_if,
1521 req_dst_orig_node); 1539 batadv_tt_global_valid,
1540 req_dst_orig_node);
1522 if (!skb) 1541 if (!skb)
1523 goto out; 1542 goto out;
1524 1543
@@ -1563,8 +1582,8 @@ out:
1563 return ret; 1582 return ret;
1564 1583
1565} 1584}
1566static bool send_my_tt_response(struct bat_priv *bat_priv, 1585static bool batadv_send_my_tt_response(struct bat_priv *bat_priv,
1567 struct tt_query_packet *tt_request) 1586 struct tt_query_packet *tt_request)
1568{ 1587{
1569 struct orig_node *orig_node = NULL; 1588 struct orig_node *orig_node = NULL;
1570 struct neigh_node *neigh_node = NULL; 1589 struct neigh_node *neigh_node = NULL;
@@ -1635,10 +1654,11 @@ static bool send_my_tt_response(struct bat_priv *bat_priv,
1635 sizeof(struct tt_change); 1654 sizeof(struct tt_change);
1636 ttvn = (uint8_t)atomic_read(&bat_priv->ttvn); 1655 ttvn = (uint8_t)atomic_read(&bat_priv->ttvn);
1637 1656
1638 skb = tt_response_fill_table(tt_len, ttvn, 1657 skb = batadv_tt_response_fill_table(tt_len, ttvn,
1639 bat_priv->tt_local_hash, 1658 bat_priv->tt_local_hash,
1640 primary_if, tt_local_valid_entry, 1659 primary_if,
1641 NULL); 1660 batadv_tt_local_valid_entry,
1661 NULL);
1642 if (!skb) 1662 if (!skb)
1643 goto out; 1663 goto out;
1644 1664
@@ -1689,26 +1709,28 @@ bool batadv_send_tt_response(struct bat_priv *bat_priv,
1689 if (batadv_bla_is_backbone_gw_orig(bat_priv, tt_request->src)) 1709 if (batadv_bla_is_backbone_gw_orig(bat_priv, tt_request->src))
1690 return true; 1710 return true;
1691 1711
1692 return send_my_tt_response(bat_priv, tt_request); 1712 return batadv_send_my_tt_response(bat_priv, tt_request);
1693 } else { 1713 } else {
1694 return send_other_tt_response(bat_priv, tt_request); 1714 return batadv_send_other_tt_response(bat_priv, tt_request);
1695 } 1715 }
1696} 1716}
1697 1717
1698static void _tt_update_changes(struct bat_priv *bat_priv, 1718static void _batadv_tt_update_changes(struct bat_priv *bat_priv,
1699 struct orig_node *orig_node, 1719 struct orig_node *orig_node,
1700 struct tt_change *tt_change, 1720 struct tt_change *tt_change,
1701 uint16_t tt_num_changes, uint8_t ttvn) 1721 uint16_t tt_num_changes, uint8_t ttvn)
1702{ 1722{
1703 int i; 1723 int i;
1704 int is_wifi; 1724 int is_wifi;
1725 int roams;
1705 1726
1706 for (i = 0; i < tt_num_changes; i++) { 1727 for (i = 0; i < tt_num_changes; i++) {
1707 if ((tt_change + i)->flags & TT_CLIENT_DEL) { 1728 if ((tt_change + i)->flags & TT_CLIENT_DEL) {
1708 tt_global_del(bat_priv, orig_node, 1729 roams = (tt_change + i)->flags & TT_CLIENT_ROAM;
1709 (tt_change + i)->addr, 1730 batadv_tt_global_del(bat_priv, orig_node,
1710 "tt removed by changes", 1731 (tt_change + i)->addr,
1711 (tt_change + i)->flags & TT_CLIENT_ROAM); 1732 "tt removed by changes",
1733 roams);
1712 } else { 1734 } else {
1713 is_wifi = (tt_change + i)->flags & TT_CLIENT_WIFI; 1735 is_wifi = (tt_change + i)->flags & TT_CLIENT_WIFI;
1714 if (!batadv_tt_global_add(bat_priv, orig_node, 1736 if (!batadv_tt_global_add(bat_priv, orig_node,
@@ -1726,8 +1748,8 @@ static void _tt_update_changes(struct bat_priv *bat_priv,
1726 orig_node->tt_initialised = true; 1748 orig_node->tt_initialised = true;
1727} 1749}
1728 1750
1729static void tt_fill_gtable(struct bat_priv *bat_priv, 1751static void batadv_tt_fill_gtable(struct bat_priv *bat_priv,
1730 struct tt_query_packet *tt_response) 1752 struct tt_query_packet *tt_response)
1731{ 1753{
1732 struct orig_node *orig_node = NULL; 1754 struct orig_node *orig_node = NULL;
1733 1755
@@ -1738,9 +1760,10 @@ static void tt_fill_gtable(struct bat_priv *bat_priv,
1738 /* Purge the old table first.. */ 1760 /* Purge the old table first.. */
1739 batadv_tt_global_del_orig(bat_priv, orig_node, "Received full table"); 1761 batadv_tt_global_del_orig(bat_priv, orig_node, "Received full table");
1740 1762
1741 _tt_update_changes(bat_priv, orig_node, 1763 _batadv_tt_update_changes(bat_priv, orig_node,
1742 (struct tt_change *)(tt_response + 1), 1764 (struct tt_change *)(tt_response + 1),
1743 ntohs(tt_response->tt_data), tt_response->ttvn); 1765 ntohs(tt_response->tt_data),
1766 tt_response->ttvn);
1744 1767
1745 spin_lock_bh(&orig_node->tt_buff_lock); 1768 spin_lock_bh(&orig_node->tt_buff_lock);
1746 kfree(orig_node->tt_buff); 1769 kfree(orig_node->tt_buff);
@@ -1755,16 +1778,16 @@ out:
1755 batadv_orig_node_free_ref(orig_node); 1778 batadv_orig_node_free_ref(orig_node);
1756} 1779}
1757 1780
1758static void tt_update_changes(struct bat_priv *bat_priv, 1781static void batadv_tt_update_changes(struct bat_priv *bat_priv,
1759 struct orig_node *orig_node, 1782 struct orig_node *orig_node,
1760 uint16_t tt_num_changes, uint8_t ttvn, 1783 uint16_t tt_num_changes, uint8_t ttvn,
1761 struct tt_change *tt_change) 1784 struct tt_change *tt_change)
1762{ 1785{
1763 _tt_update_changes(bat_priv, orig_node, tt_change, tt_num_changes, 1786 _batadv_tt_update_changes(bat_priv, orig_node, tt_change,
1764 ttvn); 1787 tt_num_changes, ttvn);
1765 1788
1766 tt_save_orig_buffer(bat_priv, orig_node, (unsigned char *)tt_change, 1789 batadv_tt_save_orig_buffer(bat_priv, orig_node,
1767 tt_num_changes); 1790 (unsigned char *)tt_change, tt_num_changes);
1768 atomic_set(&orig_node->last_ttvn, ttvn); 1791 atomic_set(&orig_node->last_ttvn, ttvn);
1769} 1792}
1770 1793
@@ -1773,7 +1796,7 @@ bool batadv_is_my_client(struct bat_priv *bat_priv, const uint8_t *addr)
1773 struct tt_local_entry *tt_local_entry = NULL; 1796 struct tt_local_entry *tt_local_entry = NULL;
1774 bool ret = false; 1797 bool ret = false;
1775 1798
1776 tt_local_entry = tt_local_hash_find(bat_priv, addr); 1799 tt_local_entry = batadv_tt_local_hash_find(bat_priv, addr);
1777 if (!tt_local_entry) 1800 if (!tt_local_entry)
1778 goto out; 1801 goto out;
1779 /* Check if the client has been logically deleted (but is kept for 1802 /* Check if the client has been logically deleted (but is kept for
@@ -1784,7 +1807,7 @@ bool batadv_is_my_client(struct bat_priv *bat_priv, const uint8_t *addr)
1784 ret = true; 1807 ret = true;
1785out: 1808out:
1786 if (tt_local_entry) 1809 if (tt_local_entry)
1787 tt_local_entry_free_ref(tt_local_entry); 1810 batadv_tt_local_entry_free_ref(tt_local_entry);
1788 return ret; 1811 return ret;
1789} 1812}
1790 1813
@@ -1809,12 +1832,12 @@ void batadv_handle_tt_response(struct bat_priv *bat_priv,
1809 goto out; 1832 goto out;
1810 1833
1811 if (tt_response->flags & TT_FULL_TABLE) 1834 if (tt_response->flags & TT_FULL_TABLE)
1812 tt_fill_gtable(bat_priv, tt_response); 1835 batadv_tt_fill_gtable(bat_priv, tt_response);
1813 else 1836 else
1814 tt_update_changes(bat_priv, orig_node, 1837 batadv_tt_update_changes(bat_priv, orig_node,
1815 ntohs(tt_response->tt_data), 1838 ntohs(tt_response->tt_data),
1816 tt_response->ttvn, 1839 tt_response->ttvn,
1817 (struct tt_change *)(tt_response + 1)); 1840 (struct tt_change *)(tt_response + 1));
1818 1841
1819 /* Delete the tt_req_node from pending tt_requests list */ 1842 /* Delete the tt_req_node from pending tt_requests list */
1820 spin_lock_bh(&bat_priv->tt_req_list_lock); 1843 spin_lock_bh(&bat_priv->tt_req_list_lock);
@@ -1827,7 +1850,7 @@ void batadv_handle_tt_response(struct bat_priv *bat_priv,
1827 spin_unlock_bh(&bat_priv->tt_req_list_lock); 1850 spin_unlock_bh(&bat_priv->tt_req_list_lock);
1828 1851
1829 /* Recalculate the CRC for this orig_node and store it */ 1852 /* Recalculate the CRC for this orig_node and store it */
1830 orig_node->tt_crc = tt_global_crc(bat_priv, orig_node); 1853 orig_node->tt_crc = batadv_tt_global_crc(bat_priv, orig_node);
1831 /* Roaming phase is over: tables are in sync again. I can 1854 /* Roaming phase is over: tables are in sync again. I can
1832 * unset the flag 1855 * unset the flag
1833 */ 1856 */
@@ -1841,20 +1864,20 @@ int batadv_tt_init(struct bat_priv *bat_priv)
1841{ 1864{
1842 int ret; 1865 int ret;
1843 1866
1844 ret = tt_local_init(bat_priv); 1867 ret = batadv_tt_local_init(bat_priv);
1845 if (ret < 0) 1868 if (ret < 0)
1846 return ret; 1869 return ret;
1847 1870
1848 ret = tt_global_init(bat_priv); 1871 ret = batadv_tt_global_init(bat_priv);
1849 if (ret < 0) 1872 if (ret < 0)
1850 return ret; 1873 return ret;
1851 1874
1852 tt_start_timer(bat_priv); 1875 batadv_tt_start_timer(bat_priv);
1853 1876
1854 return 1; 1877 return 1;
1855} 1878}
1856 1879
1857static void tt_roam_list_free(struct bat_priv *bat_priv) 1880static void batadv_tt_roam_list_free(struct bat_priv *bat_priv)
1858{ 1881{
1859 struct tt_roam_node *node, *safe; 1882 struct tt_roam_node *node, *safe;
1860 1883
@@ -1868,7 +1891,7 @@ static void tt_roam_list_free(struct bat_priv *bat_priv)
1868 spin_unlock_bh(&bat_priv->tt_roam_list_lock); 1891 spin_unlock_bh(&bat_priv->tt_roam_list_lock);
1869} 1892}
1870 1893
1871static void tt_roam_purge(struct bat_priv *bat_priv) 1894static void batadv_tt_roam_purge(struct bat_priv *bat_priv)
1872{ 1895{
1873 struct tt_roam_node *node, *safe; 1896 struct tt_roam_node *node, *safe;
1874 1897
@@ -1889,8 +1912,8 @@ static void tt_roam_purge(struct bat_priv *bat_priv)
1889 * 1912 *
1890 * returns true if the ROAMING_ADV can be sent, false otherwise 1913 * returns true if the ROAMING_ADV can be sent, false otherwise
1891 */ 1914 */
1892static bool tt_check_roam_count(struct bat_priv *bat_priv, 1915static bool batadv_tt_check_roam_count(struct bat_priv *bat_priv,
1893 uint8_t *client) 1916 uint8_t *client)
1894{ 1917{
1895 struct tt_roam_node *tt_roam_node; 1918 struct tt_roam_node *tt_roam_node;
1896 bool ret = false; 1919 bool ret = false;
@@ -1932,8 +1955,8 @@ unlock:
1932 return ret; 1955 return ret;
1933} 1956}
1934 1957
1935static void send_roam_adv(struct bat_priv *bat_priv, uint8_t *client, 1958static void batadv_send_roam_adv(struct bat_priv *bat_priv, uint8_t *client,
1936 struct orig_node *orig_node) 1959 struct orig_node *orig_node)
1937{ 1960{
1938 struct neigh_node *neigh_node = NULL; 1961 struct neigh_node *neigh_node = NULL;
1939 struct sk_buff *skb = NULL; 1962 struct sk_buff *skb = NULL;
@@ -1944,7 +1967,7 @@ static void send_roam_adv(struct bat_priv *bat_priv, uint8_t *client,
1944 /* before going on we have to check whether the client has 1967 /* before going on we have to check whether the client has
1945 * already roamed to us too many times 1968 * already roamed to us too many times
1946 */ 1969 */
1947 if (!tt_check_roam_count(bat_priv, client)) 1970 if (!batadv_tt_check_roam_count(bat_priv, client))
1948 goto out; 1971 goto out;
1949 1972
1950 skb = dev_alloc_skb(sizeof(struct roam_adv_packet) + ETH_HLEN); 1973 skb = dev_alloc_skb(sizeof(struct roam_adv_packet) + ETH_HLEN);
@@ -1988,30 +2011,30 @@ out:
1988 return; 2011 return;
1989} 2012}
1990 2013
1991static void tt_purge(struct work_struct *work) 2014static void batadv_tt_purge(struct work_struct *work)
1992{ 2015{
1993 struct delayed_work *delayed_work = 2016 struct delayed_work *delayed_work =
1994 container_of(work, struct delayed_work, work); 2017 container_of(work, struct delayed_work, work);
1995 struct bat_priv *bat_priv = 2018 struct bat_priv *bat_priv =
1996 container_of(delayed_work, struct bat_priv, tt_work); 2019 container_of(delayed_work, struct bat_priv, tt_work);
1997 2020
1998 tt_local_purge(bat_priv); 2021 batadv_tt_local_purge(bat_priv);
1999 tt_global_roam_purge(bat_priv); 2022 batadv_tt_global_roam_purge(bat_priv);
2000 tt_req_purge(bat_priv); 2023 batadv_tt_req_purge(bat_priv);
2001 tt_roam_purge(bat_priv); 2024 batadv_tt_roam_purge(bat_priv);
2002 2025
2003 tt_start_timer(bat_priv); 2026 batadv_tt_start_timer(bat_priv);
2004} 2027}
2005 2028
2006void batadv_tt_free(struct bat_priv *bat_priv) 2029void batadv_tt_free(struct bat_priv *bat_priv)
2007{ 2030{
2008 cancel_delayed_work_sync(&bat_priv->tt_work); 2031 cancel_delayed_work_sync(&bat_priv->tt_work);
2009 2032
2010 tt_local_table_free(bat_priv); 2033 batadv_tt_local_table_free(bat_priv);
2011 tt_global_table_free(bat_priv); 2034 batadv_tt_global_table_free(bat_priv);
2012 tt_req_list_free(bat_priv); 2035 batadv_tt_req_list_free(bat_priv);
2013 tt_changes_list_free(bat_priv); 2036 batadv_tt_changes_list_free(bat_priv);
2014 tt_roam_list_free(bat_priv); 2037 batadv_tt_roam_list_free(bat_priv);
2015 2038
2016 kfree(bat_priv->tt_buff); 2039 kfree(bat_priv->tt_buff);
2017} 2040}
@@ -2019,8 +2042,8 @@ void batadv_tt_free(struct bat_priv *bat_priv)
2019/* This function will enable or disable the specified flags for all the entries 2042/* This function will enable or disable the specified flags for all the entries
2020 * in the given hash table and returns the number of modified entries 2043 * in the given hash table and returns the number of modified entries
2021 */ 2044 */
2022static uint16_t tt_set_flags(struct hashtable_t *hash, uint16_t flags, 2045static uint16_t batadv_tt_set_flags(struct hashtable_t *hash, uint16_t flags,
2023 bool enable) 2046 bool enable)
2024{ 2047{
2025 uint32_t i; 2048 uint32_t i;
2026 uint16_t changed_num = 0; 2049 uint16_t changed_num = 0;
@@ -2055,7 +2078,7 @@ out:
2055} 2078}
2056 2079
2057/* Purge out all the tt local entries marked with TT_CLIENT_PENDING */ 2080/* Purge out all the tt local entries marked with TT_CLIENT_PENDING */
2058static void tt_local_purge_pending_clients(struct bat_priv *bat_priv) 2081static void batadv_tt_local_purge_pending_clients(struct bat_priv *bat_priv)
2059{ 2082{
2060 struct hashtable_t *hash = bat_priv->tt_local_hash; 2083 struct hashtable_t *hash = bat_priv->tt_local_hash;
2061 struct tt_common_entry *tt_common_entry; 2084 struct tt_common_entry *tt_common_entry;
@@ -2087,28 +2110,28 @@ static void tt_local_purge_pending_clients(struct bat_priv *bat_priv)
2087 tt_local_entry = container_of(tt_common_entry, 2110 tt_local_entry = container_of(tt_common_entry,
2088 struct tt_local_entry, 2111 struct tt_local_entry,
2089 common); 2112 common);
2090 tt_local_entry_free_ref(tt_local_entry); 2113 batadv_tt_local_entry_free_ref(tt_local_entry);
2091 } 2114 }
2092 spin_unlock_bh(list_lock); 2115 spin_unlock_bh(list_lock);
2093 } 2116 }
2094 2117
2095} 2118}
2096 2119
2097static int tt_commit_changes(struct bat_priv *bat_priv, 2120static int batadv_tt_commit_changes(struct bat_priv *bat_priv,
2098 unsigned char **packet_buff, int *packet_buff_len, 2121 unsigned char **packet_buff,
2099 int packet_min_len) 2122 int *packet_buff_len, int packet_min_len)
2100{ 2123{
2101 uint16_t changed_num = 0; 2124 uint16_t changed_num = 0;
2102 2125
2103 if (atomic_read(&bat_priv->tt_local_changes) < 1) 2126 if (atomic_read(&bat_priv->tt_local_changes) < 1)
2104 return -ENOENT; 2127 return -ENOENT;
2105 2128
2106 changed_num = tt_set_flags(bat_priv->tt_local_hash, 2129 changed_num = batadv_tt_set_flags(bat_priv->tt_local_hash,
2107 TT_CLIENT_NEW, false); 2130 TT_CLIENT_NEW, false);
2108 2131
2109 /* all reset entries have to be counted as local entries */ 2132 /* all reset entries have to be counted as local entries */
2110 atomic_add(changed_num, &bat_priv->num_local_tt); 2133 atomic_add(changed_num, &bat_priv->num_local_tt);
2111 tt_local_purge_pending_clients(bat_priv); 2134 batadv_tt_local_purge_pending_clients(bat_priv);
2112 bat_priv->tt_crc = batadv_tt_local_crc(bat_priv); 2135 bat_priv->tt_crc = batadv_tt_local_crc(bat_priv);
2113 2136
2114 /* Increment the TTVN only once per OGM interval */ 2137 /* Increment the TTVN only once per OGM interval */
@@ -2121,8 +2144,8 @@ static int tt_commit_changes(struct bat_priv *bat_priv,
2121 /* reset the sending counter */ 2144 /* reset the sending counter */
2122 atomic_set(&bat_priv->tt_ogm_append_cnt, TT_OGM_APPEND_MAX); 2145 atomic_set(&bat_priv->tt_ogm_append_cnt, TT_OGM_APPEND_MAX);
2123 2146
2124 return tt_changes_fill_buff(bat_priv, packet_buff, 2147 return batadv_tt_changes_fill_buff(bat_priv, packet_buff,
2125 packet_buff_len, packet_min_len); 2148 packet_buff_len, packet_min_len);
2126} 2149}
2127 2150
2128/* when calling this function (hard_iface == primary_if) has to be true */ 2151/* when calling this function (hard_iface == primary_if) has to be true */
@@ -2133,14 +2156,15 @@ int batadv_tt_append_diff(struct bat_priv *bat_priv,
2133 int tt_num_changes; 2156 int tt_num_changes;
2134 2157
2135 /* if at least one change happened */ 2158 /* if at least one change happened */
2136 tt_num_changes = tt_commit_changes(bat_priv, packet_buff, 2159 tt_num_changes = batadv_tt_commit_changes(bat_priv, packet_buff,
2137 packet_buff_len, packet_min_len); 2160 packet_buff_len,
2161 packet_min_len);
2138 2162
2139 /* if the changes have been sent often enough */ 2163 /* if the changes have been sent often enough */
2140 if ((tt_num_changes < 0) && 2164 if ((tt_num_changes < 0) &&
2141 (!atomic_dec_not_zero(&bat_priv->tt_ogm_append_cnt))) { 2165 (!atomic_dec_not_zero(&bat_priv->tt_ogm_append_cnt))) {
2142 tt_realloc_packet_buff(packet_buff, packet_buff_len, 2166 batadv_tt_realloc_packet_buff(packet_buff, packet_buff_len,
2143 packet_min_len, packet_min_len); 2167 packet_min_len, packet_min_len);
2144 tt_num_changes = 0; 2168 tt_num_changes = 0;
2145 } 2169 }
2146 2170
@@ -2157,24 +2181,24 @@ bool batadv_is_ap_isolated(struct bat_priv *bat_priv, uint8_t *src,
2157 if (!atomic_read(&bat_priv->ap_isolation)) 2181 if (!atomic_read(&bat_priv->ap_isolation))
2158 return false; 2182 return false;
2159 2183
2160 tt_local_entry = tt_local_hash_find(bat_priv, dst); 2184 tt_local_entry = batadv_tt_local_hash_find(bat_priv, dst);
2161 if (!tt_local_entry) 2185 if (!tt_local_entry)
2162 goto out; 2186 goto out;
2163 2187
2164 tt_global_entry = tt_global_hash_find(bat_priv, src); 2188 tt_global_entry = batadv_tt_global_hash_find(bat_priv, src);
2165 if (!tt_global_entry) 2189 if (!tt_global_entry)
2166 goto out; 2190 goto out;
2167 2191
2168 if (_is_ap_isolated(tt_local_entry, tt_global_entry)) 2192 if (_batadv_is_ap_isolated(tt_local_entry, tt_global_entry))
2169 goto out; 2193 goto out;
2170 2194
2171 ret = false; 2195 ret = false;
2172 2196
2173out: 2197out:
2174 if (tt_global_entry) 2198 if (tt_global_entry)
2175 tt_global_entry_free_ref(tt_global_entry); 2199 batadv_tt_global_entry_free_ref(tt_global_entry);
2176 if (tt_local_entry) 2200 if (tt_local_entry)
2177 tt_local_entry_free_ref(tt_local_entry); 2201 batadv_tt_local_entry_free_ref(tt_local_entry);
2178 return ret; 2202 return ret;
2179} 2203}
2180 2204
@@ -2204,14 +2228,14 @@ void batadv_tt_update_orig(struct bat_priv *bat_priv,
2204 goto request_table; 2228 goto request_table;
2205 } 2229 }
2206 2230
2207 tt_update_changes(bat_priv, orig_node, tt_num_changes, ttvn, 2231 batadv_tt_update_changes(bat_priv, orig_node, tt_num_changes,
2208 (struct tt_change *)tt_buff); 2232 ttvn, (struct tt_change *)tt_buff);
2209 2233
2210 /* Even if we received the precomputed crc with the OGM, we 2234 /* Even if we received the precomputed crc with the OGM, we
2211 * prefer to recompute it to spot any possible inconsistency 2235 * prefer to recompute it to spot any possible inconsistency
2212 * in the global table 2236 * in the global table
2213 */ 2237 */
2214 orig_node->tt_crc = tt_global_crc(bat_priv, orig_node); 2238 orig_node->tt_crc = batadv_tt_global_crc(bat_priv, orig_node);
2215 2239
2216 /* The ttvn alone is not enough to guarantee consistency 2240 /* The ttvn alone is not enough to guarantee consistency
2217 * because a single value could represent different states 2241 * because a single value could represent different states
@@ -2240,8 +2264,8 @@ request_table:
2240 "TT inconsistency for %pM. Need to retrieve the correct information (ttvn: %u last_ttvn: %u crc: %u last_crc: %u num_changes: %u)\n", 2264 "TT inconsistency for %pM. Need to retrieve the correct information (ttvn: %u last_ttvn: %u crc: %u last_crc: %u num_changes: %u)\n",
2241 orig_node->orig, ttvn, orig_ttvn, tt_crc, 2265 orig_node->orig, ttvn, orig_ttvn, tt_crc,
2242 orig_node->tt_crc, tt_num_changes); 2266 orig_node->tt_crc, tt_num_changes);
2243 send_tt_request(bat_priv, orig_node, ttvn, tt_crc, 2267 batadv_send_tt_request(bat_priv, orig_node, ttvn,
2244 full_table); 2268 tt_crc, full_table);
2245 return; 2269 return;
2246 } 2270 }
2247 } 2271 }
@@ -2257,12 +2281,12 @@ bool batadv_tt_global_client_is_roaming(struct bat_priv *bat_priv,
2257 struct tt_global_entry *tt_global_entry; 2281 struct tt_global_entry *tt_global_entry;
2258 bool ret = false; 2282 bool ret = false;
2259 2283
2260 tt_global_entry = tt_global_hash_find(bat_priv, addr); 2284 tt_global_entry = batadv_tt_global_hash_find(bat_priv, addr);
2261 if (!tt_global_entry) 2285 if (!tt_global_entry)
2262 goto out; 2286 goto out;
2263 2287
2264 ret = tt_global_entry->common.flags & TT_CLIENT_ROAM; 2288 ret = tt_global_entry->common.flags & TT_CLIENT_ROAM;
2265 tt_global_entry_free_ref(tt_global_entry); 2289 batadv_tt_global_entry_free_ref(tt_global_entry);
2266out: 2290out:
2267 return ret; 2291 return ret;
2268} 2292}