On Sat, Jul 01, 2017 at 07:34:56PM +0200, Linus Lüssing wrote:
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,