[PATCH] batman-adv: Move from DEBUGFS to batctl
Robert Langhammer
rlanghammer at web.de
Fr Mär 22 13:25:08 CET 2019
Am 22. März 2019 13:14:12 MEZ schrieb Adrian Schmutzler <mail at adrianschmutzler.de>:
>Hallo Robert,
>
>> -----Original Message-----
>> From: franken-dev [mailto:franken-dev-bounces at freifunk.net] On Behalf
>Of
>> robert
>> Sent: Freitag, 22. März 2019 09:03
>> To: franken-dev at freifunk.net
>> Subject: Re: [PATCH] batman-adv: Move from DEBUGFS to batctl
>>
>> Hallo Adrian,
>> schaut gut aus. Ich gehe mal davon aus, dass du die cut-Bytes richtig
>> gezaehlt hast ;-)
>> Inkonsequent ist die Verwendung des absoluten Pfades zu batctl. Was
>aber
>
>Ich hatte es zuerst komplett ohne, aber der nodewatcher wird ja als
>einziger vom micron.d gestartet, deshalb habe ich da sicherheitshalber
>die absoluten Pfade genommen. Die anderen Sachen werden immer nur vom
>user ausgeführt.
>
>> egal ist, da /etc/profile gelesen wird und der Pfad bekannt ist. Und
>> /usr/sbin wird auch in Zukunft nicht rausfliegen.
>>
>> Reviewed-by: Robert Langhammer <rlanghammer at web.de>
>>
>>
>> ps. Da sind ja noch backsticks drin.
>
>Was meinst du?
Weiter unten sind noch gemixte nested kommandsubstitutions mit $() und backsticks. Altlasten, hat mit dem Patch nix zu tun. Ist mir nur aufgefallen.
>
>Grüße
>
>Adrian
>
>>
>>
>> Am 21.03.19 um 13:50 schrieb Adrian Schmutzler:
>> > 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>
>> > Tested-by: Adrian Schmutzler <freifunk at adrianschmutzler.de>
>> > ---
>> > 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..f2cf016b 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 | grep '^ [^ ]' | 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..ca0f42fe 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>Nachbarknoten:</th><td><% echo -n $(batctl o -H | cut -b 40-
>> 56 | sort | uniq | wc -l 2> /dev/null) %></td></tr>
>> > +
>> <tr><th>Bekannte Knoten:</th><td><% echo -n $((`batctl tg -H | grep
>> '^ [^ ]' | cut -b 40-56 | sort | uniq | wc -l 2> /dev/null`+1))
>%></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..cd1892b3 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 | grep
>> '^ [^ ]' | 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>
Mehr Informationen über die Mailingliste franken-dev