Skip to content
  • Sven Eckelmann's avatar
    gluon-mesh-batman-adv: Only use local TT to count non-wifi clients (#1676) · 0924074a
    Sven Eckelmann authored
    The amount of local wifi clients is currently counted by two different
    ways:
    
    * asking the kernel wifi layer for the number of of clients on 2.4GHz and
      5GHz band
    * asking batman-adv for the number of non-timed out entries in the local
      translation table with WiFi flag
    
    The number of wifi24+wifi5 and the number of TT wifi client counts are
    reported via respondd to various consumers. The ffrgb meshviewer is
    displaying these values as:
    
    * 2,4 GHz: wifi24
    * 5 GHz: wifi5
    * other: (TT local wifi+non-wifi clients) - (wifi24 + wifi5)
    
    But the local translation table is holding entries much longer than the
    wifi layer. It can therefore easily happen that a wifi client disappears in
    the kernel wifi layer and batman-adv still has the entry stored in the
    local TT.
    
    The ffrgb meshviewer would then show this count in the category "other".
    This often results in confusions because "other" is usually for ethernet
    clients. And nodes with a frequently disappearing larger group of clients
    (near bus stations or larger intersections) often show most clients under
    the group "other" even when this devices doesn't have a LAN ethernet port.
    
    It is better for presentation to calculate the number of total wifi clients
    by summing up wifi24 + wifi5. And getting the number of total clients (non
    wifi + wifi) by adding the result of the previous calculation to the sum of
    non-wifi client in the local batman-adv translation table.
    
    Fixes: 89a9d813
    
     ("gluon-mesh-batman-adv-core: Announce client count by frequency")
    Reported-by: default avatarPascal Wettin <p.wettin@gmx.de>
    (cherry picked from commit b850fff7)
    0924074a