aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Documentation/networking/batman-adv.txt11
-rw-r--r--net/batman-adv/aggregation.c16
-rw-r--r--net/batman-adv/aggregation.h4
-rw-r--r--net/batman-adv/bat_debugfs.c4
-rw-r--r--net/batman-adv/hard-interface.c6
-rw-r--r--net/batman-adv/main.c14
-rw-r--r--net/batman-adv/main.h4
-rw-r--r--net/batman-adv/originator.c8
-rw-r--r--net/batman-adv/packet.h2
-rw-r--r--net/batman-adv/routing.c74
-rw-r--r--net/batman-adv/routing.h6
-rw-r--r--net/batman-adv/send.c16
-rw-r--r--net/batman-adv/send.h2
-rw-r--r--net/batman-adv/soft-interface.c10
-rw-r--r--net/batman-adv/translation-table.c417
-rw-r--r--net/batman-adv/translation-table.h24
-rw-r--r--net/batman-adv/types.h24
-rw-r--r--net/batman-adv/unicast.c2
-rw-r--r--net/batman-adv/vis.c18
19 files changed, 332 insertions, 330 deletions
diff --git a/Documentation/networking/batman-adv.txt b/Documentation/networking/batman-adv.txt
index 18afcd8afd51..713f7c0c4ab3 100644
--- a/Documentation/networking/batman-adv.txt
+++ b/Documentation/networking/batman-adv.txt
@@ -1,4 +1,4 @@
1[state: 27-01-2011] 1[state: 17-04-2011]
2 2
3BATMAN-ADV 3BATMAN-ADV
4---------- 4----------
@@ -19,6 +19,7 @@ duce the overhead to a minimum. It does not depend on any (other)
19network driver, and can be used on wifi as well as ethernet lan, 19network driver, and can be used on wifi as well as ethernet lan,
20vpn, etc ... (anything with ethernet-style layer 2). 20vpn, etc ... (anything with ethernet-style layer 2).
21 21
22
22CONFIGURATION 23CONFIGURATION
23------------- 24-------------
24 25
@@ -160,13 +161,13 @@ face. Each entry can/has to have the following values:
160-> "TQ mac value" - src mac's link quality towards mac address 161-> "TQ mac value" - src mac's link quality towards mac address
161 of a neighbor originator's interface which 162 of a neighbor originator's interface which
162 is being used for routing 163 is being used for routing
163-> "HNA mac" - HNA announced by source mac 164-> "TT mac" - TT announced by source mac
164-> "PRIMARY" - this is a primary interface 165-> "PRIMARY" - this is a primary interface
165-> "SEC mac" - secondary mac address of source 166-> "SEC mac" - secondary mac address of source
166 (requires preceding PRIMARY) 167 (requires preceding PRIMARY)
167 168
168The TQ value has a range from 4 to 255 with 255 being the best. 169The TQ value has a range from 4 to 255 with 255 being the best.
169The HNA entries are showing which hosts are connected to the mesh 170The TT entries are showing which hosts are connected to the mesh
170via bat0 or being bridged into the mesh network. The PRIMARY/SEC 171via bat0 or being bridged into the mesh network. The PRIMARY/SEC
171values are only applied on primary interfaces 172values are only applied on primary interfaces
172 173
@@ -199,7 +200,7 @@ abled during run time. Following log_levels are defined:
199 200
2000 - All debug output disabled 2010 - All debug output disabled
2011 - Enable messages related to routing / flooding / broadcasting 2021 - Enable messages related to routing / flooding / broadcasting
2022 - Enable route or hna added / changed / deleted 2032 - Enable route or tt entry added / changed / deleted
2033 - Enable all messages 2043 - Enable all messages
204 205
205The debug output can be changed at runtime using the file 206The debug output can be changed at runtime using the file
@@ -207,7 +208,7 @@ The debug output can be changed at runtime using the file
207 208
208# echo 2 > /sys/class/net/bat0/mesh/log_level 209# echo 2 > /sys/class/net/bat0/mesh/log_level
209 210
210will enable debug messages for when routes or HNAs change. 211will enable debug messages for when routes or TTs change.
211 212
212 213
213BATCTL 214BATCTL
diff --git a/net/batman-adv/aggregation.c b/net/batman-adv/aggregation.c
index c11788c4c1a1..9b9459024479 100644
--- a/net/batman-adv/aggregation.c
+++ b/net/batman-adv/aggregation.c
@@ -24,10 +24,10 @@
24#include "send.h" 24#include "send.h"
25#include "routing.h" 25#include "routing.h"
26 26
27/* calculate the size of the hna information for a given packet */ 27/* calculate the size of the tt information for a given packet */
28static int hna_len(struct batman_packet *batman_packet) 28static int tt_len(struct batman_packet *batman_packet)
29{ 29{
30 return batman_packet->num_hna * ETH_ALEN; 30 return batman_packet->num_tt * ETH_ALEN;
31} 31}
32 32
33/* return true if new_packet can be aggregated with forw_packet */ 33/* return true if new_packet can be aggregated with forw_packet */
@@ -250,7 +250,7 @@ void receive_aggr_bat_packet(struct ethhdr *ethhdr, unsigned char *packet_buff,
250{ 250{
251 struct batman_packet *batman_packet; 251 struct batman_packet *batman_packet;
252 int buff_pos = 0; 252 int buff_pos = 0;
253 unsigned char *hna_buff; 253 unsigned char *tt_buff;
254 254
255 batman_packet = (struct batman_packet *)packet_buff; 255 batman_packet = (struct batman_packet *)packet_buff;
256 256
@@ -259,14 +259,14 @@ void receive_aggr_bat_packet(struct ethhdr *ethhdr, unsigned char *packet_buff,
259 orig_interval. */ 259 orig_interval. */
260 batman_packet->seqno = ntohl(batman_packet->seqno); 260 batman_packet->seqno = ntohl(batman_packet->seqno);
261 261
262 hna_buff = packet_buff + buff_pos + BAT_PACKET_LEN; 262 tt_buff = packet_buff + buff_pos + BAT_PACKET_LEN;
263 receive_bat_packet(ethhdr, batman_packet, 263 receive_bat_packet(ethhdr, batman_packet,
264 hna_buff, hna_len(batman_packet), 264 tt_buff, tt_len(batman_packet),
265 if_incoming); 265 if_incoming);
266 266
267 buff_pos += BAT_PACKET_LEN + hna_len(batman_packet); 267 buff_pos += BAT_PACKET_LEN + tt_len(batman_packet);
268 batman_packet = (struct batman_packet *) 268 batman_packet = (struct batman_packet *)
269 (packet_buff + buff_pos); 269 (packet_buff + buff_pos);
270 } while (aggregated_packet(buff_pos, packet_len, 270 } while (aggregated_packet(buff_pos, packet_len,
271 batman_packet->num_hna)); 271 batman_packet->num_tt));
272} 272}
diff --git a/net/batman-adv/aggregation.h b/net/batman-adv/aggregation.h
index 062204289d1f..7e6d72fbf540 100644
--- a/net/batman-adv/aggregation.h
+++ b/net/batman-adv/aggregation.h
@@ -25,9 +25,9 @@
25#include "main.h" 25#include "main.h"
26 26
27/* is there another aggregated packet here? */ 27/* is there another aggregated packet here? */
28static inline int aggregated_packet(int buff_pos, int packet_len, int num_hna) 28static inline int aggregated_packet(int buff_pos, int packet_len, int num_tt)
29{ 29{
30 int next_buff_pos = buff_pos + BAT_PACKET_LEN + (num_hna * ETH_ALEN); 30 int next_buff_pos = buff_pos + BAT_PACKET_LEN + (num_tt * ETH_ALEN);
31 31
32 return (next_buff_pos <= packet_len) && 32 return (next_buff_pos <= packet_len) &&
33 (next_buff_pos <= MAX_AGGREGATION_BYTES); 33 (next_buff_pos <= MAX_AGGREGATION_BYTES);
diff --git a/net/batman-adv/bat_debugfs.c b/net/batman-adv/bat_debugfs.c
index 0e9d43509935..abaeec5f6247 100644
--- a/net/batman-adv/bat_debugfs.c
+++ b/net/batman-adv/bat_debugfs.c
@@ -241,13 +241,13 @@ static int softif_neigh_open(struct inode *inode, struct file *file)
241static int transtable_global_open(struct inode *inode, struct file *file) 241static int transtable_global_open(struct inode *inode, struct file *file)
242{ 242{
243 struct net_device *net_dev = (struct net_device *)inode->i_private; 243 struct net_device *net_dev = (struct net_device *)inode->i_private;
244 return single_open(file, hna_global_seq_print_text, net_dev); 244 return single_open(file, tt_global_seq_print_text, net_dev);
245} 245}
246 246
247static int transtable_local_open(struct inode *inode, struct file *file) 247static int transtable_local_open(struct inode *inode, struct file *file)
248{ 248{
249 struct net_device *net_dev = (struct net_device *)inode->i_private; 249 struct net_device *net_dev = (struct net_device *)inode->i_private;
250 return single_open(file, hna_local_seq_print_text, net_dev); 250 return single_open(file, tt_local_seq_print_text, net_dev);
251} 251}
252 252
253static int vis_data_open(struct inode *inode, struct file *file) 253static int vis_data_open(struct inode *inode, struct file *file)
diff --git a/net/batman-adv/hard-interface.c b/net/batman-adv/hard-interface.c
index 7e2f7728f706..dfbfccc9fe40 100644
--- a/net/batman-adv/hard-interface.c
+++ b/net/batman-adv/hard-interface.c
@@ -154,10 +154,10 @@ static void primary_if_select(struct bat_priv *bat_priv,
154 primary_if_update_addr(bat_priv); 154 primary_if_update_addr(bat_priv);
155 155
156 /*** 156 /***
157 * hacky trick to make sure that we send the HNA information via 157 * hacky trick to make sure that we send the TT information via
158 * our new primary interface 158 * our new primary interface
159 */ 159 */
160 atomic_set(&bat_priv->hna_local_changed, 1); 160 atomic_set(&bat_priv->tt_local_changed, 1);
161} 161}
162 162
163static bool hardif_is_iface_up(struct hard_iface *hard_iface) 163static bool hardif_is_iface_up(struct hard_iface *hard_iface)
@@ -339,7 +339,7 @@ int hardif_enable_interface(struct hard_iface *hard_iface, char *iface_name)
339 batman_packet->flags = 0; 339 batman_packet->flags = 0;
340 batman_packet->ttl = 2; 340 batman_packet->ttl = 2;
341 batman_packet->tq = TQ_MAX_VALUE; 341 batman_packet->tq = TQ_MAX_VALUE;
342 batman_packet->num_hna = 0; 342 batman_packet->num_tt = 0;
343 343
344 hard_iface->if_num = bat_priv->num_ifaces; 344 hard_iface->if_num = bat_priv->num_ifaces;
345 bat_priv->num_ifaces++; 345 bat_priv->num_ifaces++;
diff --git a/net/batman-adv/main.c b/net/batman-adv/main.c
index 7edf8d719e15..0a7cee0076f4 100644
--- a/net/batman-adv/main.c
+++ b/net/batman-adv/main.c
@@ -84,8 +84,8 @@ int mesh_init(struct net_device *soft_iface)
84 84
85 spin_lock_init(&bat_priv->forw_bat_list_lock); 85 spin_lock_init(&bat_priv->forw_bat_list_lock);
86 spin_lock_init(&bat_priv->forw_bcast_list_lock); 86 spin_lock_init(&bat_priv->forw_bcast_list_lock);
87 spin_lock_init(&bat_priv->hna_lhash_lock); 87 spin_lock_init(&bat_priv->tt_lhash_lock);
88 spin_lock_init(&bat_priv->hna_ghash_lock); 88 spin_lock_init(&bat_priv->tt_ghash_lock);
89 spin_lock_init(&bat_priv->gw_list_lock); 89 spin_lock_init(&bat_priv->gw_list_lock);
90 spin_lock_init(&bat_priv->vis_hash_lock); 90 spin_lock_init(&bat_priv->vis_hash_lock);
91 spin_lock_init(&bat_priv->vis_list_lock); 91 spin_lock_init(&bat_priv->vis_list_lock);
@@ -100,13 +100,13 @@ int mesh_init(struct net_device *soft_iface)
100 if (originator_init(bat_priv) < 1) 100 if (originator_init(bat_priv) < 1)
101 goto err; 101 goto err;
102 102
103 if (hna_local_init(bat_priv) < 1) 103 if (tt_local_init(bat_priv) < 1)
104 goto err; 104 goto err;
105 105
106 if (hna_global_init(bat_priv) < 1) 106 if (tt_global_init(bat_priv) < 1)
107 goto err; 107 goto err;
108 108
109 hna_local_add(soft_iface, soft_iface->dev_addr); 109 tt_local_add(soft_iface, soft_iface->dev_addr);
110 110
111 if (vis_init(bat_priv) < 1) 111 if (vis_init(bat_priv) < 1)
112 goto err; 112 goto err;
@@ -137,8 +137,8 @@ void mesh_free(struct net_device *soft_iface)
137 gw_node_purge(bat_priv); 137 gw_node_purge(bat_priv);
138 originator_free(bat_priv); 138 originator_free(bat_priv);
139 139
140 hna_local_free(bat_priv); 140 tt_local_free(bat_priv);
141 hna_global_free(bat_priv); 141 tt_global_free(bat_priv);
142 142
143 softif_neigh_purge(bat_priv); 143 softif_neigh_purge(bat_priv);
144 144
diff --git a/net/batman-adv/main.h b/net/batman-adv/main.h
index ace72852ed7b..9ef6ef9b1e18 100644
--- a/net/batman-adv/main.h
+++ b/net/batman-adv/main.h
@@ -39,7 +39,7 @@
39#define PURGE_TIMEOUT 200 /* purge originators after time in seconds if no 39#define PURGE_TIMEOUT 200 /* purge originators after time in seconds if no
40 * valid packet comes in -> TODO: check 40 * valid packet comes in -> TODO: check
41 * influence on TQ_LOCAL_WINDOW_SIZE */ 41 * influence on TQ_LOCAL_WINDOW_SIZE */
42#define LOCAL_HNA_TIMEOUT 3600 /* in seconds */ 42#define TT_LOCAL_TIMEOUT 3600 /* in seconds */
43 43
44#define TQ_LOCAL_WINDOW_SIZE 64 /* sliding packet range of received originator 44#define TQ_LOCAL_WINDOW_SIZE 64 /* sliding packet range of received originator
45 * messages in squence numbers (should be a 45 * messages in squence numbers (should be a
@@ -89,7 +89,7 @@
89 89
90#define DBG_BATMAN 1 /* all messages related to routing / flooding / 90#define DBG_BATMAN 1 /* all messages related to routing / flooding /
91 * broadcasting / etc */ 91 * broadcasting / etc */
92#define DBG_ROUTES 2 /* route or hna added / changed / deleted */ 92#define DBG_ROUTES 2 /* route or tt entry added / changed / deleted */
93#define DBG_ALL 3 93#define DBG_ALL 3
94 94
95 95
diff --git a/net/batman-adv/originator.c b/net/batman-adv/originator.c
index 51af91b7a35b..080ec88330a3 100644
--- a/net/batman-adv/originator.c
+++ b/net/batman-adv/originator.c
@@ -142,7 +142,7 @@ static void orig_node_free_rcu(struct rcu_head *rcu)
142 spin_unlock_bh(&orig_node->neigh_list_lock); 142 spin_unlock_bh(&orig_node->neigh_list_lock);
143 143
144 frag_list_free(&orig_node->frag_list); 144 frag_list_free(&orig_node->frag_list);
145 hna_global_del_orig(orig_node->bat_priv, orig_node, 145 tt_global_del_orig(orig_node->bat_priv, orig_node,
146 "originator timed out"); 146 "originator timed out");
147 147
148 kfree(orig_node->bcast_own); 148 kfree(orig_node->bcast_own);
@@ -220,7 +220,7 @@ struct orig_node *get_orig_node(struct bat_priv *bat_priv, uint8_t *addr)
220 orig_node->bat_priv = bat_priv; 220 orig_node->bat_priv = bat_priv;
221 memcpy(orig_node->orig, addr, ETH_ALEN); 221 memcpy(orig_node->orig, addr, ETH_ALEN);
222 orig_node->router = NULL; 222 orig_node->router = NULL;
223 orig_node->hna_buff = NULL; 223 orig_node->tt_buff = NULL;
224 orig_node->bcast_seqno_reset = jiffies - 1 224 orig_node->bcast_seqno_reset = jiffies - 1
225 - msecs_to_jiffies(RESET_PROTECTION_MS); 225 - msecs_to_jiffies(RESET_PROTECTION_MS);
226 orig_node->batman_seqno_reset = jiffies - 1 226 orig_node->batman_seqno_reset = jiffies - 1
@@ -331,8 +331,8 @@ static bool purge_orig_node(struct bat_priv *bat_priv,
331 &best_neigh_node)) { 331 &best_neigh_node)) {
332 update_routes(bat_priv, orig_node, 332 update_routes(bat_priv, orig_node,
333 best_neigh_node, 333 best_neigh_node,
334 orig_node->hna_buff, 334 orig_node->tt_buff,
335 orig_node->hna_buff_len); 335 orig_node->tt_buff_len);
336 } 336 }
337 } 337 }
338 338
diff --git a/net/batman-adv/packet.h b/net/batman-adv/packet.h
index e7571879af3f..c225c3acc55f 100644
--- a/net/batman-adv/packet.h
+++ b/net/batman-adv/packet.h
@@ -61,7 +61,7 @@ struct batman_packet {
61 uint8_t orig[6]; 61 uint8_t orig[6];
62 uint8_t prev_sender[6]; 62 uint8_t prev_sender[6];
63 uint8_t ttl; 63 uint8_t ttl;
64 uint8_t num_hna; 64 uint8_t num_tt;
65 uint8_t gw_flags; /* flags related to gateway class */ 65 uint8_t gw_flags; /* flags related to gateway class */
66 uint8_t align; 66 uint8_t align;
67} __packed; 67} __packed;
diff --git a/net/batman-adv/routing.c b/net/batman-adv/routing.c
index d8cde2b8d1cf..7648b92aec47 100644
--- a/net/batman-adv/routing.c
+++ b/net/batman-adv/routing.c
@@ -64,28 +64,28 @@ void slide_own_bcast_window(struct hard_iface *hard_iface)
64 } 64 }
65} 65}
66 66
67static void update_HNA(struct bat_priv *bat_priv, struct orig_node *orig_node, 67static void update_TT(struct bat_priv *bat_priv, struct orig_node *orig_node,
68 unsigned char *hna_buff, int hna_buff_len) 68 unsigned char *tt_buff, int tt_buff_len)
69{ 69{
70 if ((hna_buff_len != orig_node->hna_buff_len) || 70 if ((tt_buff_len != orig_node->tt_buff_len) ||
71 ((hna_buff_len > 0) && 71 ((tt_buff_len > 0) &&
72 (orig_node->hna_buff_len > 0) && 72 (orig_node->tt_buff_len > 0) &&
73 (memcmp(orig_node->hna_buff, hna_buff, hna_buff_len) != 0))) { 73 (memcmp(orig_node->tt_buff, tt_buff, tt_buff_len) != 0))) {
74 74
75 if (orig_node->hna_buff_len > 0) 75 if (orig_node->tt_buff_len > 0)
76 hna_global_del_orig(bat_priv, orig_node, 76 tt_global_del_orig(bat_priv, orig_node,
77 "originator changed hna"); 77 "originator changed tt");
78 78
79 if ((hna_buff_len > 0) && (hna_buff)) 79 if ((tt_buff_len > 0) && (tt_buff))
80 hna_global_add_orig(bat_priv, orig_node, 80 tt_global_add_orig(bat_priv, orig_node,
81 hna_buff, hna_buff_len); 81 tt_buff, tt_buff_len);
82 } 82 }
83} 83}
84 84
85static void update_route(struct bat_priv *bat_priv, 85static void update_route(struct bat_priv *bat_priv,
86 struct orig_node *orig_node, 86 struct orig_node *orig_node,
87 struct neigh_node *neigh_node, 87 struct neigh_node *neigh_node,
88 unsigned char *hna_buff, int hna_buff_len) 88 unsigned char *tt_buff, int tt_buff_len)
89{ 89{
90 struct neigh_node *curr_router; 90 struct neigh_node *curr_router;
91 91
@@ -96,7 +96,7 @@ static void update_route(struct bat_priv *bat_priv,
96 96
97 bat_dbg(DBG_ROUTES, bat_priv, "Deleting route towards: %pM\n", 97 bat_dbg(DBG_ROUTES, bat_priv, "Deleting route towards: %pM\n",
98 orig_node->orig); 98 orig_node->orig);
99 hna_global_del_orig(bat_priv, orig_node, 99 tt_global_del_orig(bat_priv, orig_node,
100 "originator timed out"); 100 "originator timed out");
101 101
102 /* route added */ 102 /* route added */
@@ -105,8 +105,8 @@ static void update_route(struct bat_priv *bat_priv,
105 bat_dbg(DBG_ROUTES, bat_priv, 105 bat_dbg(DBG_ROUTES, bat_priv,
106 "Adding route towards: %pM (via %pM)\n", 106 "Adding route towards: %pM (via %pM)\n",
107 orig_node->orig, neigh_node->addr); 107 orig_node->orig, neigh_node->addr);
108 hna_global_add_orig(bat_priv, orig_node, 108 tt_global_add_orig(bat_priv, orig_node,
109 hna_buff, hna_buff_len); 109 tt_buff, tt_buff_len);
110 110
111 /* route changed */ 111 /* route changed */
112 } else { 112 } else {
@@ -135,8 +135,8 @@ static void update_route(struct bat_priv *bat_priv,
135 135
136 136
137void update_routes(struct bat_priv *bat_priv, struct orig_node *orig_node, 137void update_routes(struct bat_priv *bat_priv, struct orig_node *orig_node,
138 struct neigh_node *neigh_node, unsigned char *hna_buff, 138 struct neigh_node *neigh_node, unsigned char *tt_buff,
139 int hna_buff_len) 139 int tt_buff_len)
140{ 140{
141 struct neigh_node *router = NULL; 141 struct neigh_node *router = NULL;
142 142
@@ -147,10 +147,10 @@ void update_routes(struct bat_priv *bat_priv, struct orig_node *orig_node,
147 147
148 if (router != neigh_node) 148 if (router != neigh_node)
149 update_route(bat_priv, orig_node, neigh_node, 149 update_route(bat_priv, orig_node, neigh_node,
150 hna_buff, hna_buff_len); 150 tt_buff, tt_buff_len);
151 /* may be just HNA changed */ 151 /* may be just TT changed */
152 else 152 else
153 update_HNA(bat_priv, orig_node, hna_buff, hna_buff_len); 153 update_TT(bat_priv, orig_node, tt_buff, tt_buff_len);
154 154
155out: 155out:
156 if (router) 156 if (router)
@@ -387,14 +387,14 @@ static void update_orig(struct bat_priv *bat_priv,
387 struct ethhdr *ethhdr, 387 struct ethhdr *ethhdr,
388 struct batman_packet *batman_packet, 388 struct batman_packet *batman_packet,
389 struct hard_iface *if_incoming, 389 struct hard_iface *if_incoming,
390 unsigned char *hna_buff, int hna_buff_len, 390 unsigned char *tt_buff, int tt_buff_len,
391 char is_duplicate) 391 char is_duplicate)
392{ 392{
393 struct neigh_node *neigh_node = NULL, *tmp_neigh_node = NULL; 393 struct neigh_node *neigh_node = NULL, *tmp_neigh_node = NULL;
394 struct neigh_node *router = NULL; 394 struct neigh_node *router = NULL;
395 struct orig_node *orig_node_tmp; 395 struct orig_node *orig_node_tmp;
396 struct hlist_node *node; 396 struct hlist_node *node;
397 int tmp_hna_buff_len; 397 int tmp_tt_buff_len;
398 uint8_t bcast_own_sum_orig, bcast_own_sum_neigh; 398 uint8_t bcast_own_sum_orig, bcast_own_sum_neigh;
399 399
400 bat_dbg(DBG_BATMAN, bat_priv, "update_originator(): " 400 bat_dbg(DBG_BATMAN, bat_priv, "update_originator(): "
@@ -459,18 +459,18 @@ static void update_orig(struct bat_priv *bat_priv,
459 459
460 bonding_candidate_add(orig_node, neigh_node); 460 bonding_candidate_add(orig_node, neigh_node);
461 461
462 tmp_hna_buff_len = (hna_buff_len > batman_packet->num_hna * ETH_ALEN ? 462 tmp_tt_buff_len = (tt_buff_len > batman_packet->num_tt * ETH_ALEN ?
463 batman_packet->num_hna * ETH_ALEN : hna_buff_len); 463 batman_packet->num_tt * ETH_ALEN : tt_buff_len);
464 464
465 /* if this neighbor already is our next hop there is nothing 465 /* if this neighbor already is our next hop there is nothing
466 * to change */ 466 * to change */
467 router = orig_node_get_router(orig_node); 467 router = orig_node_get_router(orig_node);
468 if (router == neigh_node) 468 if (router == neigh_node)
469 goto update_hna; 469 goto update_tt;
470 470
471 /* if this neighbor does not offer a better TQ we won't consider it */ 471 /* if this neighbor does not offer a better TQ we won't consider it */
472 if (router && (router->tq_avg > neigh_node->tq_avg)) 472 if (router && (router->tq_avg > neigh_node->tq_avg))
473 goto update_hna; 473 goto update_tt;
474 474
475 /* if the TQ is the same and the link not more symetric we 475 /* if the TQ is the same and the link not more symetric we
476 * won't consider it either */ 476 * won't consider it either */
@@ -488,16 +488,16 @@ static void update_orig(struct bat_priv *bat_priv,
488 spin_unlock_bh(&orig_node_tmp->ogm_cnt_lock); 488 spin_unlock_bh(&orig_node_tmp->ogm_cnt_lock);
489 489
490 if (bcast_own_sum_orig >= bcast_own_sum_neigh) 490 if (bcast_own_sum_orig >= bcast_own_sum_neigh)
491 goto update_hna; 491 goto update_tt;
492 } 492 }
493 493
494 update_routes(bat_priv, orig_node, neigh_node, 494 update_routes(bat_priv, orig_node, neigh_node,
495 hna_buff, tmp_hna_buff_len); 495 tt_buff, tmp_tt_buff_len);
496 goto update_gw; 496 goto update_gw;
497 497
498update_hna: 498update_tt:
499 update_routes(bat_priv, orig_node, router, 499 update_routes(bat_priv, orig_node, router,
500 hna_buff, tmp_hna_buff_len); 500 tt_buff, tmp_tt_buff_len);
501 501
502update_gw: 502update_gw:
503 if (orig_node->gw_flags != batman_packet->gw_flags) 503 if (orig_node->gw_flags != batman_packet->gw_flags)
@@ -621,7 +621,7 @@ out:
621 621
622void receive_bat_packet(struct ethhdr *ethhdr, 622void receive_bat_packet(struct ethhdr *ethhdr,
623 struct batman_packet *batman_packet, 623 struct batman_packet *batman_packet,
624 unsigned char *hna_buff, int hna_buff_len, 624 unsigned char *tt_buff, int tt_buff_len,
625 struct hard_iface *if_incoming) 625 struct hard_iface *if_incoming)
626{ 626{
627 struct bat_priv *bat_priv = netdev_priv(if_incoming->soft_iface); 627 struct bat_priv *bat_priv = netdev_priv(if_incoming->soft_iface);
@@ -818,14 +818,14 @@ void receive_bat_packet(struct ethhdr *ethhdr,
818 ((orig_node->last_real_seqno == batman_packet->seqno) && 818 ((orig_node->last_real_seqno == batman_packet->seqno) &&
819 (orig_node->last_ttl - 3 <= batman_packet->ttl)))) 819 (orig_node->last_ttl - 3 <= batman_packet->ttl))))
820 update_orig(bat_priv, orig_node, ethhdr, batman_packet, 820 update_orig(bat_priv, orig_node, ethhdr, batman_packet,
821 if_incoming, hna_buff, hna_buff_len, is_duplicate); 821 if_incoming, tt_buff, tt_buff_len, is_duplicate);
822 822
823 /* is single hop (direct) neighbor */ 823 /* is single hop (direct) neighbor */
824 if (is_single_hop_neigh) { 824 if (is_single_hop_neigh) {
825 825
826 /* mark direct link on incoming interface */ 826 /* mark direct link on incoming interface */
827 schedule_forward_packet(orig_node, ethhdr, batman_packet, 827 schedule_forward_packet(orig_node, ethhdr, batman_packet,
828 1, hna_buff_len, if_incoming); 828 1, tt_buff_len, if_incoming);
829 829
830 bat_dbg(DBG_BATMAN, bat_priv, "Forwarding packet: " 830 bat_dbg(DBG_BATMAN, bat_priv, "Forwarding packet: "
831 "rebroadcast neighbor packet with direct link flag\n"); 831 "rebroadcast neighbor packet with direct link flag\n");
@@ -848,7 +848,7 @@ void receive_bat_packet(struct ethhdr *ethhdr,
848 bat_dbg(DBG_BATMAN, bat_priv, 848 bat_dbg(DBG_BATMAN, bat_priv,
849 "Forwarding packet: rebroadcast originator packet\n"); 849 "Forwarding packet: rebroadcast originator packet\n");
850 schedule_forward_packet(orig_node, ethhdr, batman_packet, 850 schedule_forward_packet(orig_node, ethhdr, batman_packet,
851 0, hna_buff_len, if_incoming); 851 0, tt_buff_len, if_incoming);
852 852
853out_neigh: 853out_neigh:
854 if ((orig_neigh_node) && (!is_single_hop_neigh)) 854 if ((orig_neigh_node) && (!is_single_hop_neigh))
diff --git a/net/batman-adv/routing.h b/net/batman-adv/routing.h
index b5a064c88a4f..870f29842b28 100644
--- a/net/batman-adv/routing.h
+++ b/net/batman-adv/routing.h
@@ -25,11 +25,11 @@
25void slide_own_bcast_window(struct hard_iface *hard_iface); 25void slide_own_bcast_window(struct hard_iface *hard_iface);
26void receive_bat_packet(struct ethhdr *ethhdr, 26void receive_bat_packet(struct ethhdr *ethhdr,
27 struct batman_packet *batman_packet, 27 struct batman_packet *batman_packet,
28 unsigned char *hna_buff, int hna_buff_len, 28 unsigned char *tt_buff, int tt_buff_len,
29 struct hard_iface *if_incoming); 29 struct hard_iface *if_incoming);
30void update_routes(struct bat_priv *bat_priv, struct orig_node *orig_node, 30void update_routes(struct bat_priv *bat_priv, struct orig_node *orig_node,
31 struct neigh_node *neigh_node, unsigned char *hna_buff, 31 struct neigh_node *neigh_node, unsigned char *tt_buff,
32 int hna_buff_len); 32 int tt_buff_len);
33int route_unicast_packet(struct sk_buff *skb, struct hard_iface *recv_if); 33int route_unicast_packet(struct sk_buff *skb, struct hard_iface *recv_if);
34int recv_icmp_packet(struct sk_buff *skb, struct hard_iface *recv_if); 34int recv_icmp_packet(struct sk_buff *skb, struct hard_iface *recv_if);
35int recv_unicast_packet(struct sk_buff *skb, struct hard_iface *recv_if); 35int recv_unicast_packet(struct sk_buff *skb, struct hard_iface *recv_if);
diff --git a/net/batman-adv/send.c b/net/batman-adv/send.c
index 02b541a6dfef..f30d0c69ccbb 100644
--- a/net/batman-adv/send.c
+++ b/net/batman-adv/send.c
@@ -121,7 +121,7 @@ static void send_packet_to_if(struct forw_packet *forw_packet,
121 /* adjust all flags and log packets */ 121 /* adjust all flags and log packets */
122 while (aggregated_packet(buff_pos, 122 while (aggregated_packet(buff_pos,
123 forw_packet->packet_len, 123 forw_packet->packet_len,
124 batman_packet->num_hna)) { 124 batman_packet->num_tt)) {
125 125
126 /* we might have aggregated direct link packets with an 126 /* we might have aggregated direct link packets with an
127 * ordinary base packet */ 127 * ordinary base packet */
@@ -146,7 +146,7 @@ static void send_packet_to_if(struct forw_packet *forw_packet,
146 hard_iface->net_dev->dev_addr); 146 hard_iface->net_dev->dev_addr);
147 147
148 buff_pos += sizeof(struct batman_packet) + 148 buff_pos += sizeof(struct batman_packet) +
149 (batman_packet->num_hna * ETH_ALEN); 149 (batman_packet->num_tt * ETH_ALEN);
150 packet_num++; 150 packet_num++;
151 batman_packet = (struct batman_packet *) 151 batman_packet = (struct batman_packet *)
152 (forw_packet->skb->data + buff_pos); 152 (forw_packet->skb->data + buff_pos);
@@ -222,7 +222,7 @@ static void rebuild_batman_packet(struct bat_priv *bat_priv,
222 struct batman_packet *batman_packet; 222 struct batman_packet *batman_packet;
223 223
224 new_len = sizeof(struct batman_packet) + 224 new_len = sizeof(struct batman_packet) +
225 (bat_priv->num_local_hna * ETH_ALEN); 225 (bat_priv->num_local_tt * ETH_ALEN);
226 new_buff = kmalloc(new_len, GFP_ATOMIC); 226 new_buff = kmalloc(new_len, GFP_ATOMIC);
227 227
228 /* keep old buffer if kmalloc should fail */ 228 /* keep old buffer if kmalloc should fail */
@@ -231,7 +231,7 @@ static void rebuild_batman_packet(struct bat_priv *bat_priv,
231 sizeof(struct batman_packet)); 231 sizeof(struct batman_packet));
232 batman_packet = (struct batman_packet *)new_buff; 232 batman_packet = (struct batman_packet *)new_buff;
233 233
234 batman_packet->num_hna = hna_local_fill_buffer(bat_priv, 234 batman_packet->num_tt = tt_local_fill_buffer(bat_priv,
235 new_buff + sizeof(struct batman_packet), 235 new_buff + sizeof(struct batman_packet),
236 new_len - sizeof(struct batman_packet)); 236 new_len - sizeof(struct batman_packet));
237 237
@@ -266,8 +266,8 @@ void schedule_own_packet(struct hard_iface *hard_iface)
266 if (hard_iface->if_status == IF_TO_BE_ACTIVATED) 266 if (hard_iface->if_status == IF_TO_BE_ACTIVATED)
267 hard_iface->if_status = IF_ACTIVE; 267 hard_iface->if_status = IF_ACTIVE;
268 268
269 /* if local hna has changed and interface is a primary interface */ 269 /* if local tt has changed and interface is a primary interface */
270 if ((atomic_read(&bat_priv->hna_local_changed)) && 270 if ((atomic_read(&bat_priv->tt_local_changed)) &&
271 (hard_iface == primary_if)) 271 (hard_iface == primary_if))
272 rebuild_batman_packet(bat_priv, hard_iface); 272 rebuild_batman_packet(bat_priv, hard_iface);
273 273
@@ -309,7 +309,7 @@ void schedule_own_packet(struct hard_iface *hard_iface)
309void schedule_forward_packet(struct orig_node *orig_node, 309void schedule_forward_packet(struct orig_node *orig_node,
310 struct ethhdr *ethhdr, 310 struct ethhdr *ethhdr,
311 struct batman_packet *batman_packet, 311 struct batman_packet *batman_packet,
312 uint8_t directlink, int hna_buff_len, 312 uint8_t directlink, int tt_buff_len,
313 struct hard_iface *if_incoming) 313 struct hard_iface *if_incoming)
314{ 314{
315 struct bat_priv *bat_priv = netdev_priv(if_incoming->soft_iface); 315 struct bat_priv *bat_priv = netdev_priv(if_incoming->soft_iface);
@@ -369,7 +369,7 @@ void schedule_forward_packet(struct orig_node *orig_node,
369 send_time = forward_send_time(); 369 send_time = forward_send_time();
370 add_bat_packet_to_list(bat_priv, 370 add_bat_packet_to_list(bat_priv,
371 (unsigned char *)batman_packet, 371 (unsigned char *)batman_packet,
372 sizeof(struct batman_packet) + hna_buff_len, 372 sizeof(struct batman_packet) + tt_buff_len,
373 if_incoming, 0, send_time); 373 if_incoming, 0, send_time);
374} 374}
375 375
diff --git a/net/batman-adv/send.h b/net/batman-adv/send.h
index 7b2ff19c05e7..247172d71e4b 100644
--- a/net/batman-adv/send.h
+++ b/net/batman-adv/send.h
@@ -29,7 +29,7 @@ void schedule_own_packet(struct hard_iface *hard_iface);
29void schedule_forward_packet(struct orig_node *orig_node, 29void schedule_forward_packet(struct orig_node *orig_node,
30 struct ethhdr *ethhdr, 30 struct ethhdr *ethhdr,
31 struct batman_packet *batman_packet, 31 struct batman_packet *batman_packet,
32 uint8_t directlink, int hna_buff_len, 32 uint8_t directlink, int tt_buff_len,
33 struct hard_iface *if_outgoing); 33 struct hard_iface *if_outgoing);
34int add_bcast_packet_to_list(struct bat_priv *bat_priv, struct sk_buff *skb); 34int add_bcast_packet_to_list(struct bat_priv *bat_priv, struct sk_buff *skb);
35void send_outstanding_bat_packet(struct work_struct *work); 35void send_outstanding_bat_packet(struct work_struct *work);
diff --git a/net/batman-adv/soft-interface.c b/net/batman-adv/soft-interface.c
index 9301e21052e7..d6aaf9fa64d4 100644
--- a/net/batman-adv/soft-interface.c
+++ b/net/batman-adv/soft-interface.c
@@ -543,11 +543,11 @@ static int interface_set_mac_addr(struct net_device *dev, void *p)
543 if (!is_valid_ether_addr(addr->sa_data)) 543 if (!is_valid_ether_addr(addr->sa_data))
544 return -EADDRNOTAVAIL; 544 return -EADDRNOTAVAIL;
545 545
546 /* only modify hna-table if it has been initialised before */ 546 /* only modify transtable if it has been initialised before */
547 if (atomic_read(&bat_priv->mesh_state) == MESH_ACTIVE) { 547 if (atomic_read(&bat_priv->mesh_state) == MESH_ACTIVE) {
548 hna_local_remove(bat_priv, dev->dev_addr, 548 tt_local_remove(bat_priv, dev->dev_addr,
549 "mac address changed"); 549 "mac address changed");
550 hna_local_add(dev, addr->sa_data); 550 tt_local_add(dev, addr->sa_data);
551 } 551 }
552 552
553 memcpy(dev->dev_addr, addr->sa_data, ETH_ALEN); 553 memcpy(dev->dev_addr, addr->sa_data, ETH_ALEN);
@@ -605,7 +605,7 @@ int interface_tx(struct sk_buff *skb, struct net_device *soft_iface)
605 goto dropped; 605 goto dropped;
606 606
607 /* TODO: check this for locks */ 607 /* TODO: check this for locks */
608 hna_local_add(soft_iface, ethhdr->h_source); 608 tt_local_add(soft_iface, ethhdr->h_source);
609 609
610 if (is_multicast_ether_addr(ethhdr->h_dest)) { 610 if (is_multicast_ether_addr(ethhdr->h_dest)) {
611 ret = gw_is_target(bat_priv, skb); 611 ret = gw_is_target(bat_priv, skb);
@@ -843,7 +843,7 @@ struct net_device *softif_create(char *name)
843 843
844 atomic_set(&bat_priv->mesh_state, MESH_INACTIVE); 844 atomic_set(&bat_priv->mesh_state, MESH_INACTIVE);
845 atomic_set(&bat_priv->bcast_seqno, 1); 845 atomic_set(&bat_priv->bcast_seqno, 1);
846 atomic_set(&bat_priv->hna_local_changed, 0); 846 atomic_set(&bat_priv->tt_local_changed, 0);
847 847
848 bat_priv->primary_if = NULL; 848 bat_priv->primary_if = NULL;
849 bat_priv->num_ifaces = 0; 849 bat_priv->num_ifaces = 0;
diff --git a/net/batman-adv/translation-table.c b/net/batman-adv/translation-table.c
index f931830d630e..7b729660cbfd 100644
--- a/net/batman-adv/translation-table.c
+++ b/net/batman-adv/translation-table.c
@@ -26,40 +26,40 @@
26#include "hash.h" 26#include "hash.h"
27#include "originator.h" 27#include "originator.h"
28 28
29static void hna_local_purge(struct work_struct *work); 29static void tt_local_purge(struct work_struct *work);
30static void _hna_global_del_orig(struct bat_priv *bat_priv, 30static void _tt_global_del_orig(struct bat_priv *bat_priv,
31 struct hna_global_entry *hna_global_entry, 31 struct tt_global_entry *tt_global_entry,
32 char *message); 32 char *message);
33 33
34/* returns 1 if they are the same mac addr */ 34/* returns 1 if they are the same mac addr */
35static int compare_lhna(struct hlist_node *node, void *data2) 35static int compare_ltt(struct hlist_node *node, void *data2)
36{ 36{
37 void *data1 = container_of(node, struct hna_local_entry, hash_entry); 37 void *data1 = container_of(node, struct tt_local_entry, hash_entry);
38 38
39 return (memcmp(data1, data2, ETH_ALEN) == 0 ? 1 : 0); 39 return (memcmp(data1, data2, ETH_ALEN) == 0 ? 1 : 0);
40} 40}
41 41
42/* returns 1 if they are the same mac addr */ 42/* returns 1 if they are the same mac addr */
43static int compare_ghna(struct hlist_node *node, void *data2) 43static int compare_gtt(struct hlist_node *node, void *data2)
44{ 44{
45 void *data1 = container_of(node, struct hna_global_entry, hash_entry); 45 void *data1 = container_of(node, struct tt_global_entry, hash_entry);
46 46
47 return (memcmp(data1, data2, ETH_ALEN) == 0 ? 1 : 0); 47 return (memcmp(data1, data2, ETH_ALEN) == 0 ? 1 : 0);
48} 48}
49 49
50static void hna_local_start_timer(struct bat_priv *bat_priv) 50static void tt_local_start_timer(struct bat_priv *bat_priv)
51{ 51{
52 INIT_DELAYED_WORK(&bat_priv->hna_work, hna_local_purge); 52 INIT_DELAYED_WORK(&bat_priv->tt_work, tt_local_purge);
53 queue_delayed_work(bat_event_workqueue, &bat_priv->hna_work, 10 * HZ); 53 queue_delayed_work(bat_event_workqueue, &bat_priv->tt_work, 10 * HZ);
54} 54}
55 55
56static struct hna_local_entry *hna_local_hash_find(struct bat_priv *bat_priv, 56static struct tt_local_entry *tt_local_hash_find(struct bat_priv *bat_priv,
57 void *data) 57 void *data)
58{ 58{
59 struct hashtable_t *hash = bat_priv->hna_local_hash; 59 struct hashtable_t *hash = bat_priv->tt_local_hash;
60 struct hlist_head *head; 60 struct hlist_head *head;
61 struct hlist_node *node; 61 struct hlist_node *node;
62 struct hna_local_entry *hna_local_entry, *hna_local_entry_tmp = NULL; 62 struct tt_local_entry *tt_local_entry, *tt_local_entry_tmp = NULL;
63 int index; 63 int index;
64 64
65 if (!hash) 65 if (!hash)
@@ -69,26 +69,26 @@ static struct hna_local_entry *hna_local_hash_find(struct bat_priv *bat_priv,
69 head = &hash->table[index]; 69 head = &hash->table[index];
70 70
71 rcu_read_lock(); 71 rcu_read_lock();
72 hlist_for_each_entry_rcu(hna_local_entry, node, head, hash_entry) { 72 hlist_for_each_entry_rcu(tt_local_entry, node, head, hash_entry) {
73 if (!compare_eth(hna_local_entry, data)) 73 if (!compare_eth(tt_local_entry, data))
74 continue; 74 continue;
75 75
76 hna_local_entry_tmp = hna_local_entry; 76 tt_local_entry_tmp = tt_local_entry;
77 break; 77 break;
78 } 78 }
79 rcu_read_unlock(); 79 rcu_read_unlock();
80 80
81 return hna_local_entry_tmp; 81 return tt_local_entry_tmp;
82} 82}
83 83
84static struct hna_global_entry *hna_global_hash_find(struct bat_priv *bat_priv, 84static struct tt_global_entry *tt_global_hash_find(struct bat_priv *bat_priv,
85 void *data) 85 void *data)
86{ 86{
87 struct hashtable_t *hash = bat_priv->hna_global_hash; 87 struct hashtable_t *hash = bat_priv->tt_global_hash;
88 struct hlist_head *head; 88 struct hlist_head *head;
89 struct hlist_node *node; 89 struct hlist_node *node;
90 struct hna_global_entry *hna_global_entry; 90 struct tt_global_entry *tt_global_entry;
91 struct hna_global_entry *hna_global_entry_tmp = NULL; 91 struct tt_global_entry *tt_global_entry_tmp = NULL;
92 int index; 92 int index;
93 93
94 if (!hash) 94 if (!hash)
@@ -98,125 +98,125 @@ static struct hna_global_entry *hna_global_hash_find(struct bat_priv *bat_priv,
98 head = &hash->table[index]; 98 head = &hash->table[index];
99 99
100 rcu_read_lock(); 100 rcu_read_lock();
101 hlist_for_each_entry_rcu(hna_global_entry, node, head, hash_entry) { 101 hlist_for_each_entry_rcu(tt_global_entry, node, head, hash_entry) {
102 if (!compare_eth(hna_global_entry, data)) 102 if (!compare_eth(tt_global_entry, data))
103 continue; 103 continue;
104 104
105 hna_global_entry_tmp = hna_global_entry; 105 tt_global_entry_tmp = tt_global_entry;
106 break; 106 break;
107 } 107 }
108 rcu_read_unlock(); 108 rcu_read_unlock();
109 109
110 return hna_global_entry_tmp; 110 return tt_global_entry_tmp;
111} 111}
112 112
113int hna_local_init(struct bat_priv *bat_priv) 113int tt_local_init(struct bat_priv *bat_priv)
114{ 114{
115 if (bat_priv->hna_local_hash) 115 if (bat_priv->tt_local_hash)
116 return 1; 116 return 1;
117 117
118 bat_priv->hna_local_hash = hash_new(1024); 118 bat_priv->tt_local_hash = hash_new(1024);
119 119
120 if (!bat_priv->hna_local_hash) 120 if (!bat_priv->tt_local_hash)
121 return 0; 121 return 0;
122 122
123 atomic_set(&bat_priv->hna_local_changed, 0); 123 atomic_set(&bat_priv->tt_local_changed, 0);
124 hna_local_start_timer(bat_priv); 124 tt_local_start_timer(bat_priv);
125 125
126 return 1; 126 return 1;
127} 127}
128 128
129void hna_local_add(struct net_device *soft_iface, uint8_t *addr) 129void tt_local_add(struct net_device *soft_iface, uint8_t *addr)
130{ 130{
131 struct bat_priv *bat_priv = netdev_priv(soft_iface); 131 struct bat_priv *bat_priv = netdev_priv(soft_iface);
132 struct hna_local_entry *hna_local_entry; 132 struct tt_local_entry *tt_local_entry;
133 struct hna_global_entry *hna_global_entry; 133 struct tt_global_entry *tt_global_entry;
134 int required_bytes; 134 int required_bytes;
135 135
136 spin_lock_bh(&bat_priv->hna_lhash_lock); 136 spin_lock_bh(&bat_priv->tt_lhash_lock);
137 hna_local_entry = hna_local_hash_find(bat_priv, addr); 137 tt_local_entry = tt_local_hash_find(bat_priv, addr);
138 spin_unlock_bh(&bat_priv->hna_lhash_lock); 138 spin_unlock_bh(&bat_priv->tt_lhash_lock);
139 139
140 if (hna_local_entry) { 140 if (tt_local_entry) {
141 hna_local_entry->last_seen = jiffies; 141 tt_local_entry->last_seen = jiffies;
142 return; 142 return;
143 } 143 }
144 144
145 /* only announce as many hosts as possible in the batman-packet and 145 /* only announce as many hosts as possible in the batman-packet and
146 space in batman_packet->num_hna That also should give a limit to 146 space in batman_packet->num_tt That also should give a limit to
147 MAC-flooding. */ 147 MAC-flooding. */
148 required_bytes = (bat_priv->num_local_hna + 1) * ETH_ALEN; 148 required_bytes = (bat_priv->num_local_tt + 1) * ETH_ALEN;
149 required_bytes += BAT_PACKET_LEN; 149 required_bytes += BAT_PACKET_LEN;
150 150
151 if ((required_bytes > ETH_DATA_LEN) || 151 if ((required_bytes > ETH_DATA_LEN) ||
152 (atomic_read(&bat_priv->aggregated_ogms) && 152 (atomic_read(&bat_priv->aggregated_ogms) &&
153 required_bytes > MAX_AGGREGATION_BYTES) || 153 required_bytes > MAX_AGGREGATION_BYTES) ||
154 (bat_priv->num_local_hna + 1 > 255)) { 154 (bat_priv->num_local_tt + 1 > 255)) {
155 bat_dbg(DBG_ROUTES, bat_priv, 155 bat_dbg(DBG_ROUTES, bat_priv,
156 "Can't add new local hna entry (%pM): " 156 "Can't add new local tt entry (%pM): "
157 "number of local hna entries exceeds packet size\n", 157 "number of local tt entries exceeds packet size\n",
158 addr); 158 addr);
159 return; 159 return;
160 } 160 }
161 161
162 bat_dbg(DBG_ROUTES, bat_priv, 162 bat_dbg(DBG_ROUTES, bat_priv,
163 "Creating new local hna entry: %pM\n", addr); 163 "Creating new local tt entry: %pM\n", addr);
164 164
165 hna_local_entry = kmalloc(sizeof(struct hna_local_entry), GFP_ATOMIC); 165 tt_local_entry = kmalloc(sizeof(struct tt_local_entry), GFP_ATOMIC);
166 if (!hna_local_entry) 166 if (!tt_local_entry)
167 return; 167 return;
168 168
169 memcpy(hna_local_entry->addr, addr, ETH_ALEN); 169 memcpy(tt_local_entry->addr, addr, ETH_ALEN);
170 hna_local_entry->last_seen = jiffies; 170 tt_local_entry->last_seen = jiffies;
171 171
172 /* the batman interface mac address should never be purged */ 172 /* the batman interface mac address should never be purged */
173 if (compare_eth(addr, soft_iface->dev_addr)) 173 if (compare_eth(addr, soft_iface->dev_addr))
174 hna_local_entry->never_purge = 1; 174 tt_local_entry->never_purge = 1;
175 else 175 else
176 hna_local_entry->never_purge = 0; 176 tt_local_entry->never_purge = 0;
177 177
178 spin_lock_bh(&bat_priv->hna_lhash_lock); 178 spin_lock_bh(&bat_priv->tt_lhash_lock);
179 179
180 hash_add(bat_priv->hna_local_hash, compare_lhna, choose_orig, 180 hash_add(bat_priv->tt_local_hash, compare_ltt, choose_orig,
181 hna_local_entry, &hna_local_entry->hash_entry); 181 tt_local_entry, &tt_local_entry->hash_entry);
182 bat_priv->num_local_hna++; 182 bat_priv->num_local_tt++;
183 atomic_set(&bat_priv->hna_local_changed, 1); 183 atomic_set(&bat_priv->tt_local_changed, 1);
184 184
185 spin_unlock_bh(&bat_priv->hna_lhash_lock); 185 spin_unlock_bh(&bat_priv->tt_lhash_lock);
186 186
187 /* remove address from global hash if present */ 187 /* remove address from global hash if present */
188 spin_lock_bh(&bat_priv->hna_ghash_lock); 188 spin_lock_bh(&bat_priv->tt_ghash_lock);
189 189
190 hna_global_entry = hna_global_hash_find(bat_priv, addr); 190 tt_global_entry = tt_global_hash_find(bat_priv, addr);
191 191
192 if (hna_global_entry) 192 if (tt_global_entry)
193 _hna_global_del_orig(bat_priv, hna_global_entry, 193 _tt_global_del_orig(bat_priv, tt_global_entry,
194 "local hna received"); 194 "local tt received");
195 195
196 spin_unlock_bh(&bat_priv->hna_ghash_lock); 196 spin_unlock_bh(&bat_priv->tt_ghash_lock);
197} 197}
198 198
199int hna_local_fill_buffer(struct bat_priv *bat_priv, 199int tt_local_fill_buffer(struct bat_priv *bat_priv,
200 unsigned char *buff, int buff_len) 200 unsigned char *buff, int buff_len)
201{ 201{
202 struct hashtable_t *hash = bat_priv->hna_local_hash; 202 struct hashtable_t *hash = bat_priv->tt_local_hash;
203 struct hna_local_entry *hna_local_entry; 203 struct tt_local_entry *tt_local_entry;
204 struct hlist_node *node; 204 struct hlist_node *node;
205 struct hlist_head *head; 205 struct hlist_head *head;
206 int i, count = 0; 206 int i, count = 0;
207 207
208 spin_lock_bh(&bat_priv->hna_lhash_lock); 208 spin_lock_bh(&bat_priv->tt_lhash_lock);
209 209
210 for (i = 0; i < hash->size; i++) { 210 for (i = 0; i < hash->size; i++) {
211 head = &hash->table[i]; 211 head = &hash->table[i];
212 212
213 rcu_read_lock(); 213 rcu_read_lock();
214 hlist_for_each_entry_rcu(hna_local_entry, node, 214 hlist_for_each_entry_rcu(tt_local_entry, node,
215 head, hash_entry) { 215 head, hash_entry) {
216 if (buff_len < (count + 1) * ETH_ALEN) 216 if (buff_len < (count + 1) * ETH_ALEN)
217 break; 217 break;
218 218
219 memcpy(buff + (count * ETH_ALEN), hna_local_entry->addr, 219 memcpy(buff + (count * ETH_ALEN), tt_local_entry->addr,
220 ETH_ALEN); 220 ETH_ALEN);
221 221
222 count++; 222 count++;
@@ -224,20 +224,20 @@ int hna_local_fill_buffer(struct bat_priv *bat_priv,
224 rcu_read_unlock(); 224 rcu_read_unlock();
225 } 225 }
226 226
227 /* if we did not get all new local hnas see you next time ;-) */ 227 /* if we did not get all new local tts see you next time ;-) */
228 if (count == bat_priv->num_local_hna) 228 if (count == bat_priv->num_local_tt)
229 atomic_set(&bat_priv->hna_local_changed, 0); 229 atomic_set(&bat_priv->tt_local_changed, 0);
230 230
231 spin_unlock_bh(&bat_priv->hna_lhash_lock); 231 spin_unlock_bh(&bat_priv->tt_lhash_lock);
232 return count; 232 return count;
233} 233}
234 234
235int hna_local_seq_print_text(struct seq_file *seq, void *offset) 235int tt_local_seq_print_text(struct seq_file *seq, void *offset)
236{ 236{
237 struct net_device *net_dev = (struct net_device *)seq->private; 237 struct net_device *net_dev = (struct net_device *)seq->private;
238 struct bat_priv *bat_priv = netdev_priv(net_dev); 238 struct bat_priv *bat_priv = netdev_priv(net_dev);
239 struct hashtable_t *hash = bat_priv->hna_local_hash; 239 struct hashtable_t *hash = bat_priv->tt_local_hash;
240 struct hna_local_entry *hna_local_entry; 240 struct tt_local_entry *tt_local_entry;
241 struct hard_iface *primary_if; 241 struct hard_iface *primary_if;
242 struct hlist_node *node; 242 struct hlist_node *node;
243 struct hlist_head *head; 243 struct hlist_head *head;
@@ -261,10 +261,10 @@ int hna_local_seq_print_text(struct seq_file *seq, void *offset)
261 } 261 }
262 262
263 seq_printf(seq, "Locally retrieved addresses (from %s) " 263 seq_printf(seq, "Locally retrieved addresses (from %s) "
264 "announced via HNA:\n", 264 "announced via TT:\n",
265 net_dev->name); 265 net_dev->name);
266 266
267 spin_lock_bh(&bat_priv->hna_lhash_lock); 267 spin_lock_bh(&bat_priv->tt_lhash_lock);
268 268
269 buf_size = 1; 269 buf_size = 1;
270 /* Estimate length for: " * xx:xx:xx:xx:xx:xx\n" */ 270 /* Estimate length for: " * xx:xx:xx:xx:xx:xx\n" */
@@ -279,7 +279,7 @@ int hna_local_seq_print_text(struct seq_file *seq, void *offset)
279 279
280 buff = kmalloc(buf_size, GFP_ATOMIC); 280 buff = kmalloc(buf_size, GFP_ATOMIC);
281 if (!buff) { 281 if (!buff) {
282 spin_unlock_bh(&bat_priv->hna_lhash_lock); 282 spin_unlock_bh(&bat_priv->tt_lhash_lock);
283 ret = -ENOMEM; 283 ret = -ENOMEM;
284 goto out; 284 goto out;
285 } 285 }
@@ -291,15 +291,15 @@ int hna_local_seq_print_text(struct seq_file *seq, void *offset)
291 head = &hash->table[i]; 291 head = &hash->table[i];
292 292
293 rcu_read_lock(); 293 rcu_read_lock();
294 hlist_for_each_entry_rcu(hna_local_entry, node, 294 hlist_for_each_entry_rcu(tt_local_entry, node,
295 head, hash_entry) { 295 head, hash_entry) {
296 pos += snprintf(buff + pos, 22, " * %pM\n", 296 pos += snprintf(buff + pos, 22, " * %pM\n",
297 hna_local_entry->addr); 297 tt_local_entry->addr);
298 } 298 }
299 rcu_read_unlock(); 299 rcu_read_unlock();
300 } 300 }
301 301
302 spin_unlock_bh(&bat_priv->hna_lhash_lock); 302 spin_unlock_bh(&bat_priv->tt_lhash_lock);
303 303
304 seq_printf(seq, "%s", buff); 304 seq_printf(seq, "%s", buff);
305 kfree(buff); 305 kfree(buff);
@@ -309,180 +309,180 @@ out:
309 return ret; 309 return ret;
310} 310}
311 311
312static void _hna_local_del(struct hlist_node *node, void *arg) 312static void _tt_local_del(struct hlist_node *node, void *arg)
313{ 313{
314 struct bat_priv *bat_priv = (struct bat_priv *)arg; 314 struct bat_priv *bat_priv = (struct bat_priv *)arg;
315 void *data = container_of(node, struct hna_local_entry, hash_entry); 315 void *data = container_of(node, struct tt_local_entry, hash_entry);
316 316
317 kfree(data); 317 kfree(data);
318 bat_priv->num_local_hna--; 318 bat_priv->num_local_tt--;
319 atomic_set(&bat_priv->hna_local_changed, 1); 319 atomic_set(&bat_priv->tt_local_changed, 1);
320} 320}
321 321
322static void hna_local_del(struct bat_priv *bat_priv, 322static void tt_local_del(struct bat_priv *bat_priv,
323 struct hna_local_entry *hna_local_entry, 323 struct tt_local_entry *tt_local_entry,
324 char *message) 324 char *message)
325{ 325{
326 bat_dbg(DBG_ROUTES, bat_priv, "Deleting local hna entry (%pM): %s\n", 326 bat_dbg(DBG_ROUTES, bat_priv, "Deleting local tt entry (%pM): %s\n",
327 hna_local_entry->addr, message); 327 tt_local_entry->addr, message);
328 328
329 hash_remove(bat_priv->hna_local_hash, compare_lhna, choose_orig, 329 hash_remove(bat_priv->tt_local_hash, compare_ltt, choose_orig,
330 hna_local_entry->addr); 330 tt_local_entry->addr);
331 _hna_local_del(&hna_local_entry->hash_entry, bat_priv); 331 _tt_local_del(&tt_local_entry->hash_entry, bat_priv);
332} 332}
333 333
334void hna_local_remove(struct bat_priv *bat_priv, 334void tt_local_remove(struct bat_priv *bat_priv,
335 uint8_t *addr, char *message) 335 uint8_t *addr, char *message)
336{ 336{
337 struct hna_local_entry *hna_local_entry; 337 struct tt_local_entry *tt_local_entry;
338 338
339 spin_lock_bh(&bat_priv->hna_lhash_lock); 339 spin_lock_bh(&bat_priv->tt_lhash_lock);
340 340
341 hna_local_entry = hna_local_hash_find(bat_priv, addr); 341 tt_local_entry = tt_local_hash_find(bat_priv, addr);
342 342
343 if (hna_local_entry) 343 if (tt_local_entry)
344 hna_local_del(bat_priv, hna_local_entry, message); 344 tt_local_del(bat_priv, tt_local_entry, message);
345 345
346 spin_unlock_bh(&bat_priv->hna_lhash_lock); 346 spin_unlock_bh(&bat_priv->tt_lhash_lock);
347} 347}
348 348
349static void hna_local_purge(struct work_struct *work) 349static void tt_local_purge(struct work_struct *work)
350{ 350{
351 struct delayed_work *delayed_work = 351 struct delayed_work *delayed_work =
352 container_of(work, struct delayed_work, work); 352 container_of(work, struct delayed_work, work);
353 struct bat_priv *bat_priv = 353 struct bat_priv *bat_priv =
354 container_of(delayed_work, struct bat_priv, hna_work); 354 container_of(delayed_work, struct bat_priv, tt_work);
355 struct hashtable_t *hash = bat_priv->hna_local_hash; 355 struct hashtable_t *hash = bat_priv->tt_local_hash;
356 struct hna_local_entry *hna_local_entry; 356 struct tt_local_entry *tt_local_entry;
357 struct hlist_node *node, *node_tmp; 357 struct hlist_node *node, *node_tmp;
358 struct hlist_head *head; 358 struct hlist_head *head;
359 unsigned long timeout; 359 unsigned long timeout;
360 int i; 360 int i;
361 361
362 spin_lock_bh(&bat_priv->hna_lhash_lock); 362 spin_lock_bh(&bat_priv->tt_lhash_lock);
363 363
364 for (i = 0; i < hash->size; i++) { 364 for (i = 0; i < hash->size; i++) {
365 head = &hash->table[i]; 365 head = &hash->table[i];
366 366
367 hlist_for_each_entry_safe(hna_local_entry, node, node_tmp, 367 hlist_for_each_entry_safe(tt_local_entry, node, node_tmp,
368 head, hash_entry) { 368 head, hash_entry) {
369 if (hna_local_entry->never_purge) 369 if (tt_local_entry->never_purge)
370 continue; 370 continue;
371 371
372 timeout = hna_local_entry->last_seen; 372 timeout = tt_local_entry->last_seen;
373 timeout += LOCAL_HNA_TIMEOUT * HZ; 373 timeout += TT_LOCAL_TIMEOUT * HZ;
374 374
375 if (time_before(jiffies, timeout)) 375 if (time_before(jiffies, timeout))
376 continue; 376 continue;
377 377
378 hna_local_del(bat_priv, hna_local_entry, 378 tt_local_del(bat_priv, tt_local_entry,
379 "address timed out"); 379 "address timed out");
380 } 380 }
381 } 381 }
382 382
383 spin_unlock_bh(&bat_priv->hna_lhash_lock); 383 spin_unlock_bh(&bat_priv->tt_lhash_lock);
384 hna_local_start_timer(bat_priv); 384 tt_local_start_timer(bat_priv);
385} 385}
386 386
387void hna_local_free(struct bat_priv *bat_priv) 387void tt_local_free(struct bat_priv *bat_priv)
388{ 388{
389 if (!bat_priv->hna_local_hash) 389 if (!bat_priv->tt_local_hash)
390 return; 390 return;
391 391
392 cancel_delayed_work_sync(&bat_priv->hna_work); 392 cancel_delayed_work_sync(&bat_priv->tt_work);
393 hash_delete(bat_priv->hna_local_hash, _hna_local_del, bat_priv); 393 hash_delete(bat_priv->tt_local_hash, _tt_local_del, bat_priv);
394 bat_priv->hna_local_hash = NULL; 394 bat_priv->tt_local_hash = NULL;
395} 395}
396 396
397int hna_global_init(struct bat_priv *bat_priv) 397int tt_global_init(struct bat_priv *bat_priv)
398{ 398{
399 if (bat_priv->hna_global_hash) 399 if (bat_priv->tt_global_hash)
400 return 1; 400 return 1;
401 401
402 bat_priv->hna_global_hash = hash_new(1024); 402 bat_priv->tt_global_hash = hash_new(1024);
403 403
404 if (!bat_priv->hna_global_hash) 404 if (!bat_priv->tt_global_hash)
405 return 0; 405 return 0;
406 406
407 return 1; 407 return 1;
408} 408}
409 409
410void hna_global_add_orig(struct bat_priv *bat_priv, 410void tt_global_add_orig(struct bat_priv *bat_priv,
411 struct orig_node *orig_node, 411 struct orig_node *orig_node,
412 unsigned char *hna_buff, int hna_buff_len) 412 unsigned char *tt_buff, int tt_buff_len)
413{ 413{
414 struct hna_global_entry *hna_global_entry; 414 struct tt_global_entry *tt_global_entry;
415 struct hna_local_entry *hna_local_entry; 415 struct tt_local_entry *tt_local_entry;
416 int hna_buff_count = 0; 416 int tt_buff_count = 0;
417 unsigned char *hna_ptr; 417 unsigned char *tt_ptr;
418 418
419 while ((hna_buff_count + 1) * ETH_ALEN <= hna_buff_len) { 419 while ((tt_buff_count + 1) * ETH_ALEN <= tt_buff_len) {
420 spin_lock_bh(&bat_priv->hna_ghash_lock); 420 spin_lock_bh(&bat_priv->tt_ghash_lock);
421 421
422 hna_ptr = hna_buff + (hna_buff_count * ETH_ALEN); 422 tt_ptr = tt_buff + (tt_buff_count * ETH_ALEN);
423 hna_global_entry = hna_global_hash_find(bat_priv, hna_ptr); 423 tt_global_entry = tt_global_hash_find(bat_priv, tt_ptr);
424 424
425 if (!hna_global_entry) { 425 if (!tt_global_entry) {
426 spin_unlock_bh(&bat_priv->hna_ghash_lock); 426 spin_unlock_bh(&bat_priv->tt_ghash_lock);
427 427
428 hna_global_entry = 428 tt_global_entry =
429 kmalloc(sizeof(struct hna_global_entry), 429 kmalloc(sizeof(struct tt_global_entry),
430 GFP_ATOMIC); 430 GFP_ATOMIC);
431 431
432 if (!hna_global_entry) 432 if (!tt_global_entry)
433 break; 433 break;
434 434
435 memcpy(hna_global_entry->addr, hna_ptr, ETH_ALEN); 435 memcpy(tt_global_entry->addr, tt_ptr, ETH_ALEN);
436 436
437 bat_dbg(DBG_ROUTES, bat_priv, 437 bat_dbg(DBG_ROUTES, bat_priv,
438 "Creating new global hna entry: " 438 "Creating new global tt entry: "
439 "%pM (via %pM)\n", 439 "%pM (via %pM)\n",
440 hna_global_entry->addr, orig_node->orig); 440 tt_global_entry->addr, orig_node->orig);
441 441
442 spin_lock_bh(&bat_priv->hna_ghash_lock); 442 spin_lock_bh(&bat_priv->tt_ghash_lock);
443 hash_add(bat_priv->hna_global_hash, compare_ghna, 443 hash_add(bat_priv->tt_global_hash, compare_gtt,
444 choose_orig, hna_global_entry, 444 choose_orig, tt_global_entry,
445 &hna_global_entry->hash_entry); 445 &tt_global_entry->hash_entry);
446 446
447 } 447 }
448 448
449 hna_global_entry->orig_node = orig_node; 449 tt_global_entry->orig_node = orig_node;
450 spin_unlock_bh(&bat_priv->hna_ghash_lock); 450 spin_unlock_bh(&bat_priv->tt_ghash_lock);
451 451
452 /* remove address from local hash if present */ 452 /* remove address from local hash if present */
453 spin_lock_bh(&bat_priv->hna_lhash_lock); 453 spin_lock_bh(&bat_priv->tt_lhash_lock);
454 454
455 hna_ptr = hna_buff + (hna_buff_count * ETH_ALEN); 455 tt_ptr = tt_buff + (tt_buff_count * ETH_ALEN);
456 hna_local_entry = hna_local_hash_find(bat_priv, hna_ptr); 456 tt_local_entry = tt_local_hash_find(bat_priv, tt_ptr);
457 457
458 if (hna_local_entry) 458 if (tt_local_entry)
459 hna_local_del(bat_priv, hna_local_entry, 459 tt_local_del(bat_priv, tt_local_entry,
460 "global hna received"); 460 "global tt received");
461 461
462 spin_unlock_bh(&bat_priv->hna_lhash_lock); 462 spin_unlock_bh(&bat_priv->tt_lhash_lock);
463 463
464 hna_buff_count++; 464 tt_buff_count++;
465 } 465 }
466 466
467 /* initialize, and overwrite if malloc succeeds */ 467 /* initialize, and overwrite if malloc succeeds */
468 orig_node->hna_buff = NULL; 468 orig_node->tt_buff = NULL;
469 orig_node->hna_buff_len = 0; 469 orig_node->tt_buff_len = 0;
470 470
471 if (hna_buff_len > 0) { 471 if (tt_buff_len > 0) {
472 orig_node->hna_buff = kmalloc(hna_buff_len, GFP_ATOMIC); 472 orig_node->tt_buff = kmalloc(tt_buff_len, GFP_ATOMIC);
473 if (orig_node->hna_buff) { 473 if (orig_node->tt_buff) {
474 memcpy(orig_node->hna_buff, hna_buff, hna_buff_len); 474 memcpy(orig_node->tt_buff, tt_buff, tt_buff_len);
475 orig_node->hna_buff_len = hna_buff_len; 475 orig_node->tt_buff_len = tt_buff_len;
476 } 476 }
477 } 477 }
478} 478}
479 479
480int hna_global_seq_print_text(struct seq_file *seq, void *offset) 480int tt_global_seq_print_text(struct seq_file *seq, void *offset)
481{ 481{
482 struct net_device *net_dev = (struct net_device *)seq->private; 482 struct net_device *net_dev = (struct net_device *)seq->private;
483 struct bat_priv *bat_priv = netdev_priv(net_dev); 483 struct bat_priv *bat_priv = netdev_priv(net_dev);
484 struct hashtable_t *hash = bat_priv->hna_global_hash; 484 struct hashtable_t *hash = bat_priv->tt_global_hash;
485 struct hna_global_entry *hna_global_entry; 485 struct tt_global_entry *tt_global_entry;
486 struct hard_iface *primary_if; 486 struct hard_iface *primary_if;
487 struct hlist_node *node; 487 struct hlist_node *node;
488 struct hlist_head *head; 488 struct hlist_head *head;
@@ -505,10 +505,11 @@ int hna_global_seq_print_text(struct seq_file *seq, void *offset)
505 goto out; 505 goto out;
506 } 506 }
507 507
508 seq_printf(seq, "Globally announced HNAs received via the mesh %s\n", 508 seq_printf(seq,
509 "Globally announced TT entries received via the mesh %s\n",
509 net_dev->name); 510 net_dev->name);
510 511
511 spin_lock_bh(&bat_priv->hna_ghash_lock); 512 spin_lock_bh(&bat_priv->tt_ghash_lock);
512 513
513 buf_size = 1; 514 buf_size = 1;
514 /* Estimate length for: " * xx:xx:xx:xx:xx:xx via xx:xx:xx:xx:xx:xx\n"*/ 515 /* Estimate length for: " * xx:xx:xx:xx:xx:xx via xx:xx:xx:xx:xx:xx\n"*/
@@ -523,7 +524,7 @@ int hna_global_seq_print_text(struct seq_file *seq, void *offset)
523 524
524 buff = kmalloc(buf_size, GFP_ATOMIC); 525 buff = kmalloc(buf_size, GFP_ATOMIC);
525 if (!buff) { 526 if (!buff) {
526 spin_unlock_bh(&bat_priv->hna_ghash_lock); 527 spin_unlock_bh(&bat_priv->tt_ghash_lock);
527 ret = -ENOMEM; 528 ret = -ENOMEM;
528 goto out; 529 goto out;
529 } 530 }
@@ -534,17 +535,17 @@ int hna_global_seq_print_text(struct seq_file *seq, void *offset)
534 head = &hash->table[i]; 535 head = &hash->table[i];
535 536
536 rcu_read_lock(); 537 rcu_read_lock();
537 hlist_for_each_entry_rcu(hna_global_entry, node, 538 hlist_for_each_entry_rcu(tt_global_entry, node,
538 head, hash_entry) { 539 head, hash_entry) {
539 pos += snprintf(buff + pos, 44, 540 pos += snprintf(buff + pos, 44,
540 " * %pM via %pM\n", 541 " * %pM via %pM\n",
541 hna_global_entry->addr, 542 tt_global_entry->addr,
542 hna_global_entry->orig_node->orig); 543 tt_global_entry->orig_node->orig);
543 } 544 }
544 rcu_read_unlock(); 545 rcu_read_unlock();
545 } 546 }
546 547
547 spin_unlock_bh(&bat_priv->hna_ghash_lock); 548 spin_unlock_bh(&bat_priv->tt_ghash_lock);
548 549
549 seq_printf(seq, "%s", buff); 550 seq_printf(seq, "%s", buff);
550 kfree(buff); 551 kfree(buff);
@@ -554,84 +555,84 @@ out:
554 return ret; 555 return ret;
555} 556}
556 557
557static void _hna_global_del_orig(struct bat_priv *bat_priv, 558static void _tt_global_del_orig(struct bat_priv *bat_priv,
558 struct hna_global_entry *hna_global_entry, 559 struct tt_global_entry *tt_global_entry,
559 char *message) 560 char *message)
560{ 561{
561 bat_dbg(DBG_ROUTES, bat_priv, 562 bat_dbg(DBG_ROUTES, bat_priv,
562 "Deleting global hna entry %pM (via %pM): %s\n", 563 "Deleting global tt entry %pM (via %pM): %s\n",
563 hna_global_entry->addr, hna_global_entry->orig_node->orig, 564 tt_global_entry->addr, tt_global_entry->orig_node->orig,
564 message); 565 message);
565 566
566 hash_remove(bat_priv->hna_global_hash, compare_ghna, choose_orig, 567 hash_remove(bat_priv->tt_global_hash, compare_gtt, choose_orig,
567 hna_global_entry->addr); 568 tt_global_entry->addr);
568 kfree(hna_global_entry); 569 kfree(tt_global_entry);
569} 570}
570 571
571void hna_global_del_orig(struct bat_priv *bat_priv, 572void tt_global_del_orig(struct bat_priv *bat_priv,
572 struct orig_node *orig_node, char *message) 573 struct orig_node *orig_node, char *message)
573{ 574{
574 struct hna_global_entry *hna_global_entry; 575 struct tt_global_entry *tt_global_entry;
575 int hna_buff_count = 0; 576 int tt_buff_count = 0;
576 unsigned char *hna_ptr; 577 unsigned char *tt_ptr;
577 578
578 if (orig_node->hna_buff_len == 0) 579 if (orig_node->tt_buff_len == 0)
579 return; 580 return;
580 581
581 spin_lock_bh(&bat_priv->hna_ghash_lock); 582 spin_lock_bh(&bat_priv->tt_ghash_lock);
582 583
583 while ((hna_buff_count + 1) * ETH_ALEN <= orig_node->hna_buff_len) { 584 while ((tt_buff_count + 1) * ETH_ALEN <= orig_node->tt_buff_len) {
584 hna_ptr = orig_node->hna_buff + (hna_buff_count * ETH_ALEN); 585 tt_ptr = orig_node->tt_buff + (tt_buff_count * ETH_ALEN);
585 hna_global_entry = hna_global_hash_find(bat_priv, hna_ptr); 586 tt_global_entry = tt_global_hash_find(bat_priv, tt_ptr);
586 587
587 if ((hna_global_entry) && 588 if ((tt_global_entry) &&
588 (hna_global_entry->orig_node == orig_node)) 589 (tt_global_entry->orig_node == orig_node))
589 _hna_global_del_orig(bat_priv, hna_global_entry, 590 _tt_global_del_orig(bat_priv, tt_global_entry,
590 message); 591 message);
591 592
592 hna_buff_count++; 593 tt_buff_count++;
593 } 594 }
594 595
595 spin_unlock_bh(&bat_priv->hna_ghash_lock); 596 spin_unlock_bh(&bat_priv->tt_ghash_lock);
596 597
597 orig_node->hna_buff_len = 0; 598 orig_node->tt_buff_len = 0;
598 kfree(orig_node->hna_buff); 599 kfree(orig_node->tt_buff);
599 orig_node->hna_buff = NULL; 600 orig_node->tt_buff = NULL;
600} 601}
601 602
602static void hna_global_del(struct hlist_node *node, void *arg) 603static void tt_global_del(struct hlist_node *node, void *arg)
603{ 604{
604 void *data = container_of(node, struct hna_global_entry, hash_entry); 605 void *data = container_of(node, struct tt_global_entry, hash_entry);
605 606
606 kfree(data); 607 kfree(data);
607} 608}
608 609
609void hna_global_free(struct bat_priv *bat_priv) 610void tt_global_free(struct bat_priv *bat_priv)
610{ 611{
611 if (!bat_priv->hna_global_hash) 612 if (!bat_priv->tt_global_hash)
612 return; 613 return;
613 614
614 hash_delete(bat_priv->hna_global_hash, hna_global_del, NULL); 615 hash_delete(bat_priv->tt_global_hash, tt_global_del, NULL);
615 bat_priv->hna_global_hash = NULL; 616 bat_priv->tt_global_hash = NULL;
616} 617}
617 618
618struct orig_node *transtable_search(struct bat_priv *bat_priv, uint8_t *addr) 619struct orig_node *transtable_search(struct bat_priv *bat_priv, uint8_t *addr)
619{ 620{
620 struct hna_global_entry *hna_global_entry; 621 struct tt_global_entry *tt_global_entry;
621 struct orig_node *orig_node = NULL; 622 struct orig_node *orig_node = NULL;
622 623
623 spin_lock_bh(&bat_priv->hna_ghash_lock); 624 spin_lock_bh(&bat_priv->tt_ghash_lock);
624 hna_global_entry = hna_global_hash_find(bat_priv, addr); 625 tt_global_entry = tt_global_hash_find(bat_priv, addr);
625 626
626 if (!hna_global_entry) 627 if (!tt_global_entry)
627 goto out; 628 goto out;
628 629
629 if (!atomic_inc_not_zero(&hna_global_entry->orig_node->refcount)) 630 if (!atomic_inc_not_zero(&tt_global_entry->orig_node->refcount))
630 goto out; 631 goto out;
631 632
632 orig_node = hna_global_entry->orig_node; 633 orig_node = tt_global_entry->orig_node;
633 634
634out: 635out:
635 spin_unlock_bh(&bat_priv->hna_ghash_lock); 636 spin_unlock_bh(&bat_priv->tt_ghash_lock);
636 return orig_node; 637 return orig_node;
637} 638}
diff --git a/net/batman-adv/translation-table.h b/net/batman-adv/translation-table.h
index f19931ca1457..46152c38cc95 100644
--- a/net/batman-adv/translation-table.h
+++ b/net/batman-adv/translation-table.h
@@ -22,22 +22,22 @@
22#ifndef _NET_BATMAN_ADV_TRANSLATION_TABLE_H_ 22#ifndef _NET_BATMAN_ADV_TRANSLATION_TABLE_H_
23#define _NET_BATMAN_ADV_TRANSLATION_TABLE_H_ 23#define _NET_BATMAN_ADV_TRANSLATION_TABLE_H_
24 24
25int hna_local_init(struct bat_priv *bat_priv); 25int tt_local_init(struct bat_priv *bat_priv);
26void hna_local_add(struct net_device *soft_iface, uint8_t *addr); 26void tt_local_add(struct net_device *soft_iface, uint8_t *addr);
27void hna_local_remove(struct bat_priv *bat_priv, 27void tt_local_remove(struct bat_priv *bat_priv,
28 uint8_t *addr, char *message); 28 uint8_t *addr, char *message);
29int hna_local_fill_buffer(struct bat_priv *bat_priv, 29int tt_local_fill_buffer(struct bat_priv *bat_priv,
30 unsigned char *buff, int buff_len); 30 unsigned char *buff, int buff_len);
31int hna_local_seq_print_text(struct seq_file *seq, void *offset); 31int tt_local_seq_print_text(struct seq_file *seq, void *offset);
32void hna_local_free(struct bat_priv *bat_priv); 32void tt_local_free(struct bat_priv *bat_priv);
33int hna_global_init(struct bat_priv *bat_priv); 33int tt_global_init(struct bat_priv *bat_priv);
34void hna_global_add_orig(struct bat_priv *bat_priv, 34void tt_global_add_orig(struct bat_priv *bat_priv,
35 struct orig_node *orig_node, 35 struct orig_node *orig_node,
36 unsigned char *hna_buff, int hna_buff_len); 36 unsigned char *tt_buff, int tt_buff_len);
37int hna_global_seq_print_text(struct seq_file *seq, void *offset); 37int tt_global_seq_print_text(struct seq_file *seq, void *offset);
38void hna_global_del_orig(struct bat_priv *bat_priv, 38void tt_global_del_orig(struct bat_priv *bat_priv,
39 struct orig_node *orig_node, char *message); 39 struct orig_node *orig_node, char *message);
40void hna_global_free(struct bat_priv *bat_priv); 40void tt_global_free(struct bat_priv *bat_priv);
41struct orig_node *transtable_search(struct bat_priv *bat_priv, uint8_t *addr); 41struct orig_node *transtable_search(struct bat_priv *bat_priv, uint8_t *addr);
42 42
43#endif /* _NET_BATMAN_ADV_TRANSLATION_TABLE_H_ */ 43#endif /* _NET_BATMAN_ADV_TRANSLATION_TABLE_H_ */
diff --git a/net/batman-adv/types.h b/net/batman-adv/types.h
index 9ae507ab7bbe..6b6c32e01c54 100644
--- a/net/batman-adv/types.h
+++ b/net/batman-adv/types.h
@@ -75,8 +75,8 @@ struct orig_node {
75 unsigned long batman_seqno_reset; 75 unsigned long batman_seqno_reset;
76 uint8_t gw_flags; 76 uint8_t gw_flags;
77 uint8_t flags; 77 uint8_t flags;
78 unsigned char *hna_buff; 78 unsigned char *tt_buff;
79 int16_t hna_buff_len; 79 int16_t tt_buff_len;
80 uint32_t last_real_seqno; 80 uint32_t last_real_seqno;
81 uint8_t last_ttl; 81 uint8_t last_ttl;
82 unsigned long bcast_bits[NUM_WORDS]; 82 unsigned long bcast_bits[NUM_WORDS];
@@ -155,21 +155,21 @@ struct bat_priv {
155 struct hlist_head softif_neigh_vids; 155 struct hlist_head softif_neigh_vids;
156 struct list_head vis_send_list; 156 struct list_head vis_send_list;
157 struct hashtable_t *orig_hash; 157 struct hashtable_t *orig_hash;
158 struct hashtable_t *hna_local_hash; 158 struct hashtable_t *tt_local_hash;
159 struct hashtable_t *hna_global_hash; 159 struct hashtable_t *tt_global_hash;
160 struct hashtable_t *vis_hash; 160 struct hashtable_t *vis_hash;
161 spinlock_t forw_bat_list_lock; /* protects forw_bat_list */ 161 spinlock_t forw_bat_list_lock; /* protects forw_bat_list */
162 spinlock_t forw_bcast_list_lock; /* protects */ 162 spinlock_t forw_bcast_list_lock; /* protects */
163 spinlock_t hna_lhash_lock; /* protects hna_local_hash */ 163 spinlock_t tt_lhash_lock; /* protects tt_local_hash */
164 spinlock_t hna_ghash_lock; /* protects hna_global_hash */ 164 spinlock_t tt_ghash_lock; /* protects tt_global_hash */
165 spinlock_t gw_list_lock; /* protects gw_list and curr_gw */ 165 spinlock_t gw_list_lock; /* protects gw_list and curr_gw */
166 spinlock_t vis_hash_lock; /* protects vis_hash */ 166 spinlock_t vis_hash_lock; /* protects vis_hash */
167 spinlock_t vis_list_lock; /* protects vis_info::recv_list */ 167 spinlock_t vis_list_lock; /* protects vis_info::recv_list */
168 spinlock_t softif_neigh_lock; /* protects soft-interface neigh list */ 168 spinlock_t softif_neigh_lock; /* protects soft-interface neigh list */
169 spinlock_t softif_neigh_vid_lock; /* protects soft-interface vid list */ 169 spinlock_t softif_neigh_vid_lock; /* protects soft-interface vid list */
170 int16_t num_local_hna; 170 int16_t num_local_tt;
171 atomic_t hna_local_changed; 171 atomic_t tt_local_changed;
172 struct delayed_work hna_work; 172 struct delayed_work tt_work;
173 struct delayed_work orig_work; 173 struct delayed_work orig_work;
174 struct delayed_work vis_work; 174 struct delayed_work vis_work;
175 struct gw_node __rcu *curr_gw; /* rcu protected pointer */ 175 struct gw_node __rcu *curr_gw; /* rcu protected pointer */
@@ -192,14 +192,14 @@ struct socket_packet {
192 struct icmp_packet_rr icmp_packet; 192 struct icmp_packet_rr icmp_packet;
193}; 193};
194 194
195struct hna_local_entry { 195struct tt_local_entry {
196 uint8_t addr[ETH_ALEN]; 196 uint8_t addr[ETH_ALEN];
197 unsigned long last_seen; 197 unsigned long last_seen;
198 char never_purge; 198 char never_purge;
199 struct hlist_node hash_entry; 199 struct hlist_node hash_entry;
200}; 200};
201 201
202struct hna_global_entry { 202struct tt_global_entry {
203 uint8_t addr[ETH_ALEN]; 203 uint8_t addr[ETH_ALEN];
204 struct orig_node *orig_node; 204 struct orig_node *orig_node;
205 struct hlist_node hash_entry; 205 struct hlist_node hash_entry;
@@ -262,7 +262,7 @@ struct vis_info {
262struct vis_info_entry { 262struct vis_info_entry {
263 uint8_t src[ETH_ALEN]; 263 uint8_t src[ETH_ALEN];
264 uint8_t dest[ETH_ALEN]; 264 uint8_t dest[ETH_ALEN];
265 uint8_t quality; /* quality = 0 means HNA */ 265 uint8_t quality; /* quality = 0 client */
266} __packed; 266} __packed;
267 267
268struct recvlist_node { 268struct recvlist_node {
diff --git a/net/batman-adv/unicast.c b/net/batman-adv/unicast.c
index b46cbf1507e4..19c3daf34ac6 100644
--- a/net/batman-adv/unicast.c
+++ b/net/batman-adv/unicast.c
@@ -300,7 +300,7 @@ int unicast_send_skb(struct sk_buff *skb, struct bat_priv *bat_priv)
300 goto find_router; 300 goto find_router;
301 } 301 }
302 302
303 /* check for hna host - increases orig_node refcount */ 303 /* check for tt host - increases orig_node refcount */
304 orig_node = transtable_search(bat_priv, ethhdr->h_dest); 304 orig_node = transtable_search(bat_priv, ethhdr->h_dest);
305 305
306find_router: 306find_router:
diff --git a/net/batman-adv/vis.c b/net/batman-adv/vis.c
index c8f571d3b5d4..c39f20cc1ba6 100644
--- a/net/batman-adv/vis.c
+++ b/net/batman-adv/vis.c
@@ -194,7 +194,7 @@ static ssize_t vis_data_read_entry(char *buff, struct vis_info_entry *entry,
194{ 194{
195 /* maximal length: max(4+17+2, 3+17+1+3+2) == 26 */ 195 /* maximal length: max(4+17+2, 3+17+1+3+2) == 26 */
196 if (primary && entry->quality == 0) 196 if (primary && entry->quality == 0)
197 return sprintf(buff, "HNA %pM, ", entry->dest); 197 return sprintf(buff, "TT %pM, ", entry->dest);
198 else if (compare_eth(entry->src, src)) 198 else if (compare_eth(entry->src, src))
199 return sprintf(buff, "TQ %pM %d, ", entry->dest, 199 return sprintf(buff, "TQ %pM %d, ", entry->dest,
200 entry->quality); 200 entry->quality);
@@ -622,7 +622,7 @@ static int generate_vis_packet(struct bat_priv *bat_priv)
622 struct vis_info *info = (struct vis_info *)bat_priv->my_vis_info; 622 struct vis_info *info = (struct vis_info *)bat_priv->my_vis_info;
623 struct vis_packet *packet = (struct vis_packet *)info->skb_packet->data; 623 struct vis_packet *packet = (struct vis_packet *)info->skb_packet->data;
624 struct vis_info_entry *entry; 624 struct vis_info_entry *entry;
625 struct hna_local_entry *hna_local_entry; 625 struct tt_local_entry *tt_local_entry;
626 int best_tq = -1, i; 626 int best_tq = -1, i;
627 627
628 info->first_seen = jiffies; 628 info->first_seen = jiffies;
@@ -678,29 +678,29 @@ next:
678 rcu_read_unlock(); 678 rcu_read_unlock();
679 } 679 }
680 680
681 hash = bat_priv->hna_local_hash; 681 hash = bat_priv->tt_local_hash;
682 682
683 spin_lock_bh(&bat_priv->hna_lhash_lock); 683 spin_lock_bh(&bat_priv->tt_lhash_lock);
684 for (i = 0; i < hash->size; i++) { 684 for (i = 0; i < hash->size; i++) {
685 head = &hash->table[i]; 685 head = &hash->table[i];
686 686
687 hlist_for_each_entry(hna_local_entry, node, head, hash_entry) { 687 hlist_for_each_entry(tt_local_entry, node, head, hash_entry) {
688 entry = (struct vis_info_entry *) 688 entry = (struct vis_info_entry *)
689 skb_put(info->skb_packet, 689 skb_put(info->skb_packet,
690 sizeof(*entry)); 690 sizeof(*entry));
691 memset(entry->src, 0, ETH_ALEN); 691 memset(entry->src, 0, ETH_ALEN);
692 memcpy(entry->dest, hna_local_entry->addr, ETH_ALEN); 692 memcpy(entry->dest, tt_local_entry->addr, ETH_ALEN);
693 entry->quality = 0; /* 0 means HNA */ 693 entry->quality = 0; /* 0 means TT */
694 packet->entries++; 694 packet->entries++;
695 695
696 if (vis_packet_full(info)) { 696 if (vis_packet_full(info)) {
697 spin_unlock_bh(&bat_priv->hna_lhash_lock); 697 spin_unlock_bh(&bat_priv->tt_lhash_lock);
698 return 0; 698 return 0;
699 } 699 }
700 } 700 }
701 } 701 }
702 702
703 spin_unlock_bh(&bat_priv->hna_lhash_lock); 703 spin_unlock_bh(&bat_priv->tt_lhash_lock);
704 return 0; 704 return 0;
705 705
706unlock: 706unlock: