[PATCH v2] batman-adv: Move from DEBUGFS to batctl

Adrian Schmutzler mail at adrianschmutzler.de
Mi Mär 27 18:26:16 CET 2019


Applied.

 

From: Adrian Schmutzler [mailto:mail at adrianschmutzler.de] 
Sent: Dienstag, 26. März 2019 15:48
To: 'Adrian Schmutzler' <freifunk at adrianschmutzler.de>; 'franken-dev at freifunk.net' <franken-dev at freifunk.net>
Subject: RE: [PATCH v2] batman-adv: Move from DEBUGFS to batctl

 

Robert, schickst du gelegentlich nochmal ein Review für die V2? 

> -----Original Message----- 
> From: franken-dev [mailto:franken-dev-bounces at freifunk.net] On Behalf Of 
> Adrian Schmutzler 
> Sent: Montag, 25. März 2019 13:10 
> To: franken-dev at freifunk.net <mailto:franken-dev at freifunk.net>  
> Subject: [PATCH v2] batman-adv: Move from DEBUGFS to batctl 
> 
> The debug filesystem will be deprecated and disabled by default 
> in newer versions of B.A.T.M.A.N. 
> 
> This patch switches our code to the batctl, as recommended. 
> 
> Since batctl can suppress headers, this actually makes our life 
> easier ... 
> 
> Signed-off-by: Adrian Schmutzler <freifunk at adrianschmutzler.de <mailto:freifunk at adrianschmutzler.de> > 
> Tested-by: Adrian Schmutzler <freifunk at adrianschmutzler.de <mailto:freifunk at adrianschmutzler.de> > 
> 
> --- 
> 
> Changes in v2: 
> - Fixed/reformatted batctl tg lines 
> - Used same order in WebUI 
> --- 
>  src/packages/fff/fff-nodewatcher/Makefile          |  3 +-- 
>  .../fff/fff-nodewatcher/files/usr/sbin/nodewatcher | 23 ++++++++++------------ 
>  src/packages/fff/fff-support/Makefile              |  3 +-- 
>  .../fff/fff-support/files/usr/sbin/show_info       |  6 +++--- 
>  src/packages/fff/fff-web/Makefile                  |  3 +-- 
>  .../fff-web/files/www/public/cgi-bin/status.html   |  6 +++--- 
>  .../fff/fff-web/files/www/ssl/cgi-bin/home.html    |  6 +++--- 
>  7 files changed, 22 insertions(+), 28 deletions(-) 
> 
> diff --git a/src/packages/fff/fff-nodewatcher/Makefile b/src/packages/fff/fff- 
> nodewatcher/Makefile 
> index eea86ae6..f6bdbb52 100644 
> --- a/src/packages/fff/fff-nodewatcher/Makefile 
> +++ b/src/packages/fff/fff-nodewatcher/Makefile 
> @@ -1,8 +1,7 @@ 
>  include $(TOPDIR)/rules.mk 
> 
>  PKG_NAME:=fff-nodewatcher 
> -PKG_VERSION:=51 
> -PKG_RELEASE:=1 
> +PKG_RELEASE:=52 
> 
>  PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME) 
> 
> diff --git a/src/packages/fff/fff-nodewatcher/files/usr/sbin/nodewatcher 
> b/src/packages/fff/fff-nodewatcher/files/usr/sbin/nodewatcher 
> index 9d96b07b..5e75f032 100755 
> --- a/src/packages/fff/fff-nodewatcher/files/usr/sbin/nodewatcher 
> +++ b/src/packages/fff/fff-nodewatcher/files/usr/sbin/nodewatcher 
> @@ -12,7 +12,7 @@ if ! lock -n "$lockfile"; then 
>  fi 
>  trap "lock -u \"$lockfile\"" INT TERM EXIT 
> 
> -SCRIPT_VERSION="51" 
> +SCRIPT_VERSION="52" 
> 
>  #Get the configuration from the uci configuration file 
>  #If it does not exists, then get it from a normal bash file with variables. 
> @@ -227,14 +227,13 @@ crawl() { 
>          done 
> 
>          # Build a list of direct neighbors 
> -        batman_adv_originators=$(awk \ 
> +        batman_adv_originators=$(/usr/sbin/batctl o -H | awk \ 
>              'BEGIN { FS=" "; i=0 } # set the delimiter to " " 
> -            /O/ { next } # ignore lines with O (will remove second line) 
> -            /B/ { next } # ignore line with B (will remove first line) 
>              {   sub("\\(", "", $0) # remove parentheses 
>                  sub("\\)", "", $0) 
>                  sub("\\[", "", $0) 
> -                sub("\\]:", "", $0) 
> +                sub("\\]", "", $0) 
> +                sub("\\*", "", $0) 
>                  sub("  ", " ", $0) 
>                  o=$1".*"$1 # build a regex to find lines that contains the $1 (=originator) 
> twice 
>                  if ($0 ~ o) # filter for this regex (will remove entries without direct 
> neighbor) 
> @@ -242,24 +241,22 @@ crawl() { 
>                      printf 
> "<originator_"i"><originator>"$1"</originator><link_quality>"$3"</link_quality 
> ><nexthop>"$4"</nexthop><last_seen>"$2"</last_seen><outgoing_interface 
> >"$5"</outgoing_interface></originator_"i">" 
>                      i++ 
>                  } 
> -            }' /sys/kernel/debug/batman_adv/bat0/originators) 
> +            }') 
> 
> -        batman_adv_gateway_mode=$(batctl gw) 
> +        batman_adv_gateway_mode=$(/usr/sbin/batctl gw) 
> 
> -        batman_adv_gateway_list=$(awk \ 
> +        batman_adv_gateway_list=$(/usr/sbin/batctl gwl -H | awk \ 
>              'BEGIN { FS=" "; i=0 } 
> -            /B.A.T.M.A.N./ { next } 
> -            /Gateway/ { next } 
>              /No gateways/ { next } 
>              {   sub("\\(", "", $0) 
>                  sub("\\)", "", $0) 
>                  sub("\\[ *", "", $0) 
>                  sub("\\]:", "", $0) 
> -                sub("=> ", "true ", $0) 
> -                sub("   ", "false ", $0) 
> +                sub("\\* ", "true ", $0) 
> +                sub("  ", "false ", $0) 
>                  printf 
> "<gateway_"i"><selected>"$1"</selected><gateway>"$2"</gateway><link_qu 
> ality>"$3"</link_quality><nexthop>"$4"</nexthop><outgoing_interface>"$5"< 
> /outgoing_interface><gw_class>"$6" "$7" "$8"</gw_class></gateway_"i">" 
>                  i++ 
> -            }' /sys/kernel/debug/batman_adv/bat0/gateways) 
> +            }') 
>      fi 
>      err "$(date): Collecting information about conected clients" 
>      #CLIENTS 
> diff --git a/src/packages/fff/fff-support/Makefile b/src/packages/fff/fff- 
> support/Makefile 
> index 73066adb..56e35740 100644 
> --- a/src/packages/fff/fff-support/Makefile 
> +++ b/src/packages/fff/fff-support/Makefile 
> @@ -1,8 +1,7 @@ 
>  include $(TOPDIR)/rules.mk 
> 
>  PKG_NAME:=fff-support 
> -PKG_VERSION:=0.0.1 
> -PKG_RELEASE:=1 
> +PKG_RELEASE:=2 
> 
>  PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME) 
> 
> diff --git a/src/packages/fff/fff-support/files/usr/sbin/show_info 
> b/src/packages/fff/fff-support/files/usr/sbin/show_info 
> index 7a75966d..d7ec8247 100755 
> --- a/src/packages/fff/fff-support/files/usr/sbin/show_info 
> +++ b/src/packages/fff/fff-support/files/usr/sbin/show_info 
> @@ -98,8 +98,8 @@ echo "-> SYSTEM" 
>  echo "Name: ${HOSTNAME}" 
>  echo "Modell: $(cat /tmp/sysinfo/model 2>/dev/null)" 
>  echo "MAC-Adresse: $(cat /sys/class/net/br-mesh/address)" 
> -echo "Bekannte Knoten: $((`cat 
> /sys/kernel/debug/batman_adv/bat0/transtable_global | grep '^ [^ ]' | cut -b 
> 39-55 | sort | uniq | wc -l 2>/dev/null`+1))" 
> -echo "Nachbarknoten: $(cat /sys/kernel/debug/batman_adv/bat0/originators 
> | grep '^[0-9a-f]' | cut -b 37-53 | sort | uniq | wc -l 2>/dev/null)" 
> +echo "Bekannte Knoten: $(($(batctl tg -H | cut -b 40-56 | sort | uniq | wc -l 
> 2>/dev/null)+1))" 
> +echo "Nachbarknoten: $(batctl o -H | cut -b 40-56 | sort | uniq | wc -l 
> 2>/dev/null)" 
>  echo "VPN via fastd: ${vpn_active}" 
>  echo "VPN via L2TP: ${l2tp_active}" 
>  echo "Laufzeit: ${uptime}" 
> @@ -128,7 +128,7 @@ echo "Fastd Version: $(fastd --version 2> /dev/null | cut - 
> d' ' -f 2)" 
> 
>  echo "" 
>  echo "-> Netz: FREIFUNK" 
> -echo "Nutzer: $(cat /sys/kernel/debug/batman_adv/bat0/transtable_local 2> 
> /dev/null | grep -c 'W')" 
> +echo "Nutzer: $(batctl tl -H 2> /dev/null | grep -c 'W')" 
>  echo "Empfangen: $(cat /sys/class/net/br-mesh/statistics/rx_bytes 2> 
> /dev/null | human_bytes)" 
>  echo "Gesendet: $(cat /sys/class/net/br-mesh/statistics/tx_bytes 2> /dev/null 
> | human_bytes)" 
>  echo "IPv4 Adressen: $(addr 4 br-mesh)" 
> diff --git a/src/packages/fff/fff-web/Makefile b/src/packages/fff/fff- 
> web/Makefile 
> index 7a3c4e38..9bb10f71 100644 
> --- a/src/packages/fff/fff-web/Makefile 
> +++ b/src/packages/fff/fff-web/Makefile 
> @@ -1,8 +1,7 @@ 
>  include $(TOPDIR)/rules.mk 
> 
>  PKG_NAME:=fff-web 
> -PKG_VERSION:=6 
> -PKG_RELEASE:=2 
> +PKG_RELEASE:=7 
> 
>  PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME) 
> 
> diff --git a/src/packages/fff/fff-web/files/www/public/cgi-bin/status.html 
> b/src/packages/fff/fff-web/files/www/public/cgi-bin/status.html 
> index 96d657b8..88ae1921 100755 
> --- a/src/packages/fff/fff-web/files/www/public/cgi-bin/status.html 
> +++ b/src/packages/fff/fff-web/files/www/public/cgi-bin/status.html 
> @@ -61,9 +61,9 @@ contact="$(uci -q get "fff.system.contact")" 
>                                                       <legend>Status</legend> 
>                                                       <table> 
> 
>       <tr><th>Hood:</th><td><% echo "$hood" %></td></tr> 
> - 
>       <tr><th>Nachbarknoten:</th><td><% echo -n $(cat 
> /sys/kernel/debug/batman_adv/bat0/originators | grep '^[0-9a-f]' | cut -b 37- 
> 53 | sort | uniq | wc -l 2> /dev/null) %></td></tr> 
> - 
>       <tr><th>Bekannte Knoten:</th><td><% echo -n $((`cat 
> /sys/kernel/debug/batman_adv/bat0/transtable_global | grep '^ [^ ]' | cut -b 
> 39-55 | sort | uniq | wc -l 2> /dev/null`+1)) %></td></tr> 
> -                                                             <tr><th>Lokale 
> Clients:</th><td><% echo -n $(cat 
> /sys/kernel/debug/batman_adv/bat0/transtable_local 2> /dev/null | grep -c 
> 'W') %></td></tr> 
> + 
>       <tr><th>Bekannte Knoten:</th><td><% echo -n $(($(batctl tg -H | cut - 
> b 40-56 | sort | uniq | wc -l 2> /dev/null)+1)) %></td></tr> 
> + 
>       <tr><th>Nachbarknoten:</th><td><% echo -n $(batctl o -H | cut -b 40- 
> 56 | sort | uniq | wc -l 2> /dev/null) %></td></tr> 
> +                                                             <tr><th>Lokale 
> Clients:</th><td><% echo -n $(batctl tl -H 2> /dev/null | grep -c 'W') 
> %></td></tr> 
>                                                       </table> 
>                                               </fieldset> 
>                                       </td></tr> 
> diff --git a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/home.html 
> b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/home.html 
> index 45b618d4..4d1cc93f 100755 
> --- a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/home.html 
> +++ b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/home.html 
> @@ -59,8 +59,8 @@ fi 
>               <tr><th>Name:</th><td><%= ${HOSTNAME} %></td></tr> 
>               <tr><th>Modell:</th><td><% cat /tmp/sysinfo/model 
> 2>/dev/null %></td></tr> 
>               <tr><th>MAC-Adresse:</th><td><%= $(cat /sys/class/net/br- 
> mesh/address) %></td></tr> 
> -             <tr><th>Bekannte Knoten:</th><td><%= $((`cat 
> /sys/kernel/debug/batman_adv/bat0/transtable_global | grep '^ [^ ]' | cut -b 
> 39-55 | sort | uniq | wc -l 2>/dev/null`+1)) %></td></tr> 
> -             <tr><th>Nachbarknoten:</th><td><%= $(cat 
> /sys/kernel/debug/batman_adv/bat0/originators | grep '^[0-9a-f]' | cut -b 37- 
> 53 | sort | uniq | wc -l 2>/dev/null) %></td></tr> 
> +             <tr><th>Bekannte Knoten:</th><td><%= $(($(batctl tg -H | cut - 
> b 40-56 | sort | uniq | wc -l 2>/dev/null)+1)) %></td></tr> 
> +             <tr><th>Nachbarknoten:</th><td><%= $(batctl o -H | cut -b 40- 
> 56 | sort | uniq | wc -l 2>/dev/null) %></td></tr> 
>               <tr><th>VPN via fastd:</th><td><%= ${vpn_active} 
> %></td></tr> 
>               <tr><th>VPN via L2TP:</th><td><%= ${l2tp_active} 
> %></td></tr> 
>               <tr><th>Laufzeit:</th><td><%= ${uptime} %></td></tr> 
> @@ -71,7 +71,7 @@ fi 
>  <fieldset style="padding-bottom:12px"> 
>       <legend>Netz: Freifunk</legend> 
>       <table> 
> -             <tr><th>Nutzer:</th><td><% cat 
> /sys/kernel/debug/batman_adv/bat0/transtable_local 2> /dev/null | grep -c 'W' 
> %></td></tr> 
> +             <tr><th>Nutzer:</th><td><% batctl tl -H 2> /dev/null | grep -c 
> 'W' %></td></tr> 
>               <tr><th>Empfangen:</th><td><% cat /sys/class/net/br- 
> mesh/statistics/rx_bytes 2> /dev/null | human_bytes %></td></tr> 
>               <tr><th>Gesendet:</th><td><% cat /sys/class/net/br- 
> mesh/statistics/tx_bytes 2> /dev/null | human_bytes %></td></tr> 
>               <tr><th>IPv4 Adressen:</th><td><% addr 4 br-mesh 
> %></td></tr> 
> -- 
> 2.11.0 
-------------- nächster Teil --------------
Ein Dateianhang mit HTML-Daten wurde abgetrennt...
URL: <https://{'listname': 'franken-dev-freifunk.net', 'hostname': 'lists.freifunk.net'}/pipermail/franken-dev-freifunk.net/attachments/20190327/8f48ead0/attachment.html>
-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname   : nicht verfügbar
Dateityp    : application/pgp-signature
Dateigröße  : 834 bytes
Beschreibung: nicht verfügbar
URL         : <https://{'listname': 'franken-dev-freifunk.net', 'hostname': 'lists.freifunk.net'}/pipermail/franken-dev-freifunk.net/attachments/20190327/8f48ead0/attachment.sig>


Mehr Informationen über die Mailingliste franken-dev