On Sat, Jul 01, 2017 at 11:34:37PM +0800, Marek
Lindner wrote:
On Friday, June 23, 2017 5:48:26 PM HKT Linus
Lüssing wrote:
@@ -1946,6 +1977,7 @@
batadv_tt_global_dump_subentry(struct sk_buff *msg,
u32 portid, u32 seq, struct batadv_tt_orig_list_entry *orig, bool best)
{
+ u16 flags = (common->flags & (~BATADV_TT_SYNC_MASK)) | orig->flags;
Why do we need to output the combined global (partially masked) and the flags
propagated by originator ? Shouldn't writing orig->flags be what we want ?
With this patch orig->flags only stores the TT SYNC bits.
Everything other flag in there is always 0. So printing just orig->flags
would only display the isolation and wireless flag and would omit
the roaming and temporary flag.
Compare with:
@@ -1723,7 +1753,8 @@ static bool batadv_tt_global_add(struct batadv_priv *bat_priv,
}
add_orig_entry:
/* add the new orig_entry (if needed) or update it */
- batadv_tt_global_orig_entry_add(tt_global_entry, orig_node, ttvn);
+ batadv_tt_global_orig_entry_add(tt_global_entry, orig_node, ttvn,
+ flags & BATADV_TT_SYNC_MASK);
Linus,
each originator announces flags covered by BATADV_TT_REMOTE_MASK (0x00FF),
however you are extracting only those covered by BATADV_TT_SYNC_MASK (0x00F0).
Am I wrong or this is preventing the other 4 REMOTE flags (0x000F) to be set in
tt_global_entry->common->flags (because you always filter them out when updating
the entry)?
Cheers,
--
Antonio Quartulli