[PATCH] nodewatcher: Add support for layer 3 neighbors

Fabian Bläse fabian at blaese.de
So Sep 8 20:40:43 CEST 2019


Hey Tim,

so war es ursprünglich mal, ja.
Die Position der Parameter kann sich aber ändern. Bei "cost", welches in Adrians Patch für das senden der rxcost an das Monitoring verwendet wird, ist das beispielsweise so, weil in der Mitte noch "rtt" und "rttcost" dazu kommen.

Generell würde ich eine Lösung vorziehen, bei der der Output (mehr oder weniger) sinnvoll geparsed wird, auch wenn sich die Reihenfolge der Parameter ändert.

Gruß
Fabian

On 08.09.19 16:53, Tim Niemeyer wrote:
> Moin
> 
>     BABELS=$(echo dump |nc ::1 33123 | awk '/^add neighbour/ {print "<neighbour>"$5"<outgoing_interface>babel</outgoing_interface></neighbour>"}')                                                                                                
> 
>     DATA=$DATA"<clients>$dataclient</clients>"                                                                                                                                                                                                
>     DATA=$DATA"<babel_neighbours>$BABELS</babel_neighbours>"                                                                                                                                                                                  
>     DATA=$DATA"$dataair" 
> 
> Grüße
> Tim
> 
> Am Sonntag, den 08.09.2019, 13:49 +0200 schrieb Adrian Schmutzler:
>> 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</batm
>> an_adv_originators>"
>>      DATA=$DATA"<batman_adv_gateway_mode>$batman_adv_gateway_mode</ba
>> tman_adv_gateway_mode>"
>>      DATA=$DATA"<batman_adv_gateway_list>$batman_adv_gateway_list</ba
>> tman_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</out
>> going_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"
> 

-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname   : signature.asc
Dateityp    : application/pgp-signature
Dateigröße  : 833 bytes
Beschreibung: OpenPGP digital signature
URL         : <https://lists.freifunk.net/pipermail/franken-dev-freifunk.net/attachments/20190908/fd71d6da/attachment.sig>


Mehr Informationen über die Mailingliste franken-dev