Commit df6edb9e authored by Antonio Quartulli's avatar Antonio Quartulli Committed by Marek Lindner

batman-adv: print client flags in the local/global transtables output

Since clients can have several flags on or off, this patches make them
appear in the local/global transtable output so that they can be checked
for debugging purposes.
Signed-off-by: default avatarAntonio Quartulli <ordex@autistici.org>
Signed-off-by: default avatarMarek Lindner <lindner_marek@yahoo.de>
parent 3d393e47
...@@ -332,7 +332,7 @@ int tt_local_seq_print_text(struct seq_file *seq, void *offset) ...@@ -332,7 +332,7 @@ int tt_local_seq_print_text(struct seq_file *seq, void *offset)
rcu_read_lock(); rcu_read_lock();
__hlist_for_each_rcu(node, head) __hlist_for_each_rcu(node, head)
buf_size += 21; buf_size += 29;
rcu_read_unlock(); rcu_read_unlock();
} }
...@@ -351,8 +351,19 @@ int tt_local_seq_print_text(struct seq_file *seq, void *offset) ...@@ -351,8 +351,19 @@ int tt_local_seq_print_text(struct seq_file *seq, void *offset)
rcu_read_lock(); rcu_read_lock();
hlist_for_each_entry_rcu(tt_local_entry, node, hlist_for_each_entry_rcu(tt_local_entry, node,
head, hash_entry) { head, hash_entry) {
pos += snprintf(buff + pos, 22, " * %pM\n", pos += snprintf(buff + pos, 30, " * %pM "
tt_local_entry->addr); "[%c%c%c%c%c]\n",
tt_local_entry->addr,
(tt_local_entry->flags &
TT_CLIENT_ROAM ? 'R' : '.'),
(tt_local_entry->flags &
TT_CLIENT_NOPURGE ? 'P' : '.'),
(tt_local_entry->flags &
TT_CLIENT_NEW ? 'N' : '.'),
(tt_local_entry->flags &
TT_CLIENT_PENDING ? 'X' : '.'),
(tt_local_entry->flags &
TT_CLIENT_WIFI ? 'W' : '.'));
} }
rcu_read_unlock(); rcu_read_unlock();
} }
...@@ -589,8 +600,8 @@ int tt_global_seq_print_text(struct seq_file *seq, void *offset) ...@@ -589,8 +600,8 @@ int tt_global_seq_print_text(struct seq_file *seq, void *offset)
seq_printf(seq, seq_printf(seq,
"Globally announced TT entries received via the mesh %s\n", "Globally announced TT entries received via the mesh %s\n",
net_dev->name); net_dev->name);
seq_printf(seq, " %-13s %s %-15s %s\n", seq_printf(seq, " %-13s %s %-15s %s %s\n",
"Client", "(TTVN)", "Originator", "(Curr TTVN)"); "Client", "(TTVN)", "Originator", "(Curr TTVN)", "Flags");
buf_size = 1; buf_size = 1;
/* Estimate length for: " * xx:xx:xx:xx:xx:xx (ttvn) via /* Estimate length for: " * xx:xx:xx:xx:xx:xx (ttvn) via
...@@ -600,7 +611,7 @@ int tt_global_seq_print_text(struct seq_file *seq, void *offset) ...@@ -600,7 +611,7 @@ int tt_global_seq_print_text(struct seq_file *seq, void *offset)
rcu_read_lock(); rcu_read_lock();
__hlist_for_each_rcu(node, head) __hlist_for_each_rcu(node, head)
buf_size += 59; buf_size += 67;
rcu_read_unlock(); rcu_read_unlock();
} }
...@@ -619,14 +630,20 @@ int tt_global_seq_print_text(struct seq_file *seq, void *offset) ...@@ -619,14 +630,20 @@ int tt_global_seq_print_text(struct seq_file *seq, void *offset)
rcu_read_lock(); rcu_read_lock();
hlist_for_each_entry_rcu(tt_global_entry, node, hlist_for_each_entry_rcu(tt_global_entry, node,
head, hash_entry) { head, hash_entry) {
pos += snprintf(buff + pos, 61, pos += snprintf(buff + pos, 69,
" * %pM (%3u) via %pM (%3u)\n", " * %pM (%3u) via %pM (%3u) "
tt_global_entry->addr, "[%c%c%c]\n", tt_global_entry->addr,
tt_global_entry->ttvn, tt_global_entry->ttvn,
tt_global_entry->orig_node->orig, tt_global_entry->orig_node->orig,
(uint8_t) atomic_read( (uint8_t) atomic_read(
&tt_global_entry->orig_node-> &tt_global_entry->orig_node->
last_ttvn)); last_ttvn),
(tt_global_entry->flags &
TT_CLIENT_ROAM ? 'R' : '.'),
(tt_global_entry->flags &
TT_CLIENT_PENDING ? 'X' : '.'),
(tt_global_entry->flags &
TT_CLIENT_WIFI ? 'W' : '.'));
} }
rcu_read_unlock(); rcu_read_unlock();
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment