[PATCH] nodewatcher: Add support for layer 3 neighbors

Adrian Schmutzler freifunk at adrianschmutzler.de
So Sep 8 13:49:35 CEST 2019


This adds layer 3 neighbors and their cost/penalty values
to the values sent by alfred and thus makes them available
in Monitoring.

Signed-off-by: Adrian Schmutzler <freifunk at adrianschmutzler.de>
---
 src/packages/fff/fff-nodewatcher/Makefile            |  2 +-
 .../fff/fff-nodewatcher/files/usr/sbin/nodewatcher   | 12 +++++++++++-
 2 files changed, 12 insertions(+), 2 deletions(-)

diff --git a/src/packages/fff/fff-nodewatcher/Makefile b/src/packages/fff/fff-nodewatcher/Makefile
index be5f267a..0ed6684d 100644
--- a/src/packages/fff/fff-nodewatcher/Makefile
+++ b/src/packages/fff/fff-nodewatcher/Makefile
@@ -1,7 +1,7 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=fff-nodewatcher
-PKG_RELEASE:=54
+PKG_RELEASE:=55
 
 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 09f6843d..c9044fe8 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="54"
+SCRIPT_VERSION="55"
 
 #Get the configuration from the uci configuration file
 #If it does not exists, then get it from a normal bash file with variables.
@@ -291,6 +291,16 @@ crawl() {
     DATA=$DATA"<batman_adv_originators>$batman_adv_originators</batman_adv_originators>"
     DATA=$DATA"<batman_adv_gateway_mode>$batman_adv_gateway_mode</batman_adv_gateway_mode>"
     DATA=$DATA"<batman_adv_gateway_list>$batman_adv_gateway_list</batman_adv_gateway_list>"
+
+    if [ -s /etc/config/babeld ]; then
+        BABELS="$(echo dump | nc ::1 33123 | grep '^add neighbour' |
+            awk -v RS='\n' \
+                '{r = gensub(/.*add neighbour.*address ([0-9a-fA-F:]*) +if +([^ ]+).* cost +([0-9.]+).*/, \
+                "<neighbour><ip>\\1</ip><outgoing_interface>\\2</outgoing_interface><link_cost>\\3</link_cost></neighbour>", "g"); print r;}')"
+
+        DATA=$DATA"<babel_neighbours>$BABELS</babel_neighbours>"
+    fi
+
     DATA=$DATA"<client_count>$client_count</client_count>"
     DATA=$DATA"<clients>$dataclient</clients>"
     DATA=$DATA"$dataair"
-- 
2.20.1



Mehr Informationen über die Mailingliste franken-dev