On Fri, Jun 23, 2017 at 05:48:26PM +0200, Linus Lüssing wrote:
[...] This patch fixes this issue by storing the flags used in the CRC calculation on a a per TT orig entry basis to be able to respond with the correct, original flags in an intermediate TT Response for one thing. And to be able to correctly unset sync flags once all nodes announcing a sync flag vanish for another.
Fixes: fa614fd04692 ("batman-adv: fix tt_global_entries flags update") [...]
By the way, I was able to reliably reproduce the issue within network namespaces with following two scrips (with the latter running the former):
https://metameute.de/~tux/batman-adv/setup-batman-netns.sh https://metameute.de/~tux/batman-adv/test-batman-bla.sh
The scripts create a simple three node topology like:
A === B === C | | ------- | c
A, B, C are connected in a line topology, B and C share the same BLA backbone. There is only one host, c, in the upper mesh layer.
The scripts turn on the extended isolation just on B for a few seconds via the isolation mark / ebtables and then disables it again.
So, in the end, the local translation table for B and C looks sane again, with no wifi or isolation flag. However A continues sending TT Requests while receiving invalid TT Responses for C.
(I used "batctl tracedump" to check, as "batctl log" unfortunately does not work with network namespaces yet)
After applying this patch, the endless TT Requests/Replies do not appear for me anymore. And the global translation table on all three nodes looks fine again, too (that is the isolation flag is gone again as it is supposed to while it wrongfully persisted for A without this patch).
Regards, Linus