The first two patches are actual fixes.
The first one tries to avoid sending uninitialized data that could be interpreted as invalid TT change events in both TT request and OGM. Following invalid entries could be seen when that happen with batctl o:
* 00:00:00:00:00:00 -1 [....] ( 0) 88:12:4e:ad:7e:ba (179) (0x45845380) * 00:00:00:00:78:79 4092 [.W..] ( 0) 88:12:4e:ad:7e:3c (145) (0x8ebadb8b)
The second one fixes an issue that happened when a TT change event list is too big for the MTU, the list was never actually sent nor free and continued to grow indefinitely from this point. That also caused the OGM TTVN to increase at each OGM interval without any changes being ever visible to other nodes. This ever growing TT change event list could be observed by looking at /sys/kernel/slab/batadv_tt_change_cache/objects that sometimes showed unusal high value even after issuing a memcache shrink.
The next two patches are potential slight improvements. While patch 3 is mainly cosmetic (having negative tt.local_changes value is not exactly an issue), patch 4 is here to keep the TT changes list as short as possible.
Remi Pommarel (4): batman-adv: Do not send uninitialized TT changes batman-adv: Do not let TT changes list grows indefinitely batman-adv: Remove atomic usage for tt.local_changes batman-adv: Don't keep redundant TT change events
net/batman-adv/soft-interface.c | 2 +- net/batman-adv/translation-table.c | 48 +++++++++++++++++++----------- net/batman-adv/types.h | 4 +-- 3 files changed, 34 insertions(+), 20 deletions(-)