0
0
mirror of https://github.com/openwrt/routing.git synced 2025-02-24 00:25:07 +00:00
Patrick Grimm d27be8dad9 luci-app-olsrd2: New Package for OLSR2 configuration and status visualisation'
Compile tested: mips_24kc, arm_cortex-a9_vfpv3-d16, i386_pentium4, x86_64, i386_pentium-mmx, mipsel_24kc

Signed-off-by: Patrick Grimm <patrick@lunatiki.de>
2023-01-23 14:25:30 +01:00

92 lines
2.3 KiB
Bash

#!/bin/sh
# Copyright (C) 2016 OpenWrt.org
. /lib/functions.sh
. /usr/share/libubox/jshn.sh
. /lib/functions/olsrd2.sh
case "$1" in
list)
json_init
json_add_object "getVersion"
json_close_object
json_add_object "getLan"
json_close_object
json_add_object "getNode"
json_close_object
json_add_object "getNeighbors"
json_close_object
json_add_object "getAttached_network"
json_close_object
json_add_object "getRoute"
json_close_object
json_add_object "getGraph"
json_close_object
json_add_object "getDomain"
json_close_object
json_dump
;;
call)
case "$2" in
getVersion)
echo '/systeminfo json version /quit' | nc ::1 2009 2>/dev/null
;;
getLan)
echo '/olsrv2info json lan /quit' | nc ::1 2009 2>/dev/null
;;
getNode)
echo '/olsrv2info json node /quit' | nc ::1 2009 2>/dev/null
;;
getNeighbors)
domain="$(uci_get luci_olsr2 general domain)"
[ -z "$domain" ] || domain=".$domain"
json_init
json_add_array "neighbors"
OLDIFS="$IFS"
IFS=$'\n'
neighbor_status="$(echo '/nhdpinfo neighbor /quit' | nc ::1 2009 | cut -f 1,9,10,11,12)"
for neighbor in $neighbor_status; do
json_add_object 0
IFS="$OLDIFS"
i=1
for value in $neighbor ; do
case $i in
1) json_add_string "originator" "${value}"
network_get_neighbour_by_ip "${value}"
json_add_string "lladdr" "${lladdr}"
json_add_string "hostname" "${hostname}${domain}"
network_get_name_by_device interface $dev
json_add_string "interface" "${interface}"
;;
2) json_add_string "metric_in" "${value}";;
3) json_add_string "metric_in_raw" "${value}";;
4) json_add_string "metric_out" "${value}";;
5) json_add_string "metric_out_raw" "${value}";;
esac
i=$(( i + 1 ))
done
IFS=$'\n'
json_close_object
done
IFS="$OLDIFS"
json_close_array
json_dump
;;
getAttached_network)
echo '/olsrv2info json attached_network /quit' | nc ::1 2009 2>/dev/null
;;
getRoute)
echo '/netjsoninfo filter route ipv6_0' | nc ::1 2009 2>/dev/null
;;
getGraph)
echo '/netjsoninfo filter graph ipv6_0' | nc ::1 2009 2>/dev/null
;;
getDomain)
echo '/netjsoninfo domain' | nc ::1 2009 2>/dev/null
;;
esac
;;
esac