[RFC,0/4] batman-adv: TT change events fixes and improvements

Message ID cover.1730497875.git.repk@triplefau.lt (mailing list archive)
Headers
Series batman-adv: TT change events fixes and improvements |

Message

Remi Pommarel Nov. 1, 2024, 10:04 p.m. UTC
  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(-)