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: Antonio Quartulli ordex@autistici.org --- translation-table.c | 28 +++++++++++++++++++--------- 1 files changed, 19 insertions(+), 9 deletions(-)
diff --git a/translation-table.c b/translation-table.c index f5a772f..b413eff 100644 --- a/translation-table.c +++ b/translation-table.c @@ -331,7 +331,7 @@ int tt_local_seq_print_text(struct seq_file *seq, void *offset)
rcu_read_lock(); __hlist_for_each_rcu(node, head) - buf_size += 21; + buf_size += 27; rcu_read_unlock(); }
@@ -350,8 +350,14 @@ int tt_local_seq_print_text(struct seq_file *seq, void *offset) rcu_read_lock(); hlist_for_each_entry_rcu(tt_local_entry, node, head, hash_entry) { - pos += snprintf(buff + pos, 22, " * %pM\n", - tt_local_entry->addr); + pos += snprintf(buff + pos, 28, " * %pM [%c%c%c]\n", + tt_local_entry->addr, + (tt_local_entry->flags & + TT_CLIENT_ROAM ? 'R' : '.'), + (tt_local_entry->flags & + TT_CLIENT_NOPURGE ? 'N' : '.'), + (tt_local_entry->flags & + TT_CLIENT_WIFI ? 'W' : '.')); } rcu_read_unlock(); } @@ -588,8 +594,8 @@ int tt_global_seq_print_text(struct seq_file *seq, void *offset) seq_printf(seq, "Globally announced TT entries received via the mesh %s\n", net_dev->name); - seq_printf(seq, " %-13s %s %-15s %s\n", - "Client", "(TTVN)", "Originator", "(Curr TTVN)"); + seq_printf(seq, " %-13s %s %-15s %s %s\n", + "Client", "(TTVN)", "Originator", "(Curr TTVN)", "Flags");
buf_size = 1; /* Estimate length for: " * xx:xx:xx:xx:xx:xx (ttvn) via @@ -599,7 +605,7 @@ int tt_global_seq_print_text(struct seq_file *seq, void *offset)
rcu_read_lock(); __hlist_for_each_rcu(node, head) - buf_size += 59; + buf_size += 66; rcu_read_unlock(); }
@@ -618,14 +624,18 @@ int tt_global_seq_print_text(struct seq_file *seq, void *offset) rcu_read_lock(); hlist_for_each_entry_rcu(tt_global_entry, node, head, hash_entry) { - pos += snprintf(buff + pos, 61, - " * %pM (%3u) via %pM (%3u)\n", + pos += snprintf(buff + pos, 68, + " * %pM (%3u) via %pM (%3u) [%c%c]\n", tt_global_entry->addr, tt_global_entry->ttvn, tt_global_entry->orig_node->orig, (uint8_t) atomic_read( &tt_global_entry->orig_node-> - last_ttvn)); + last_ttvn), + (tt_global_entry->flags & + TT_CLIENT_ROAM ? 'R' : '.'), + (tt_global_entry->flags & + TT_CLIENT_WIFI ? 'W' : '.')); } rcu_read_unlock(); }