Merge pull request #22158 from TDT-AG/pr/20230920-mwan3
mwan3: update ubus and status view
This commit is contained in:
commit
f9403708f3
4 changed files with 28 additions and 31 deletions
|
@ -8,7 +8,7 @@
|
||||||
include $(TOPDIR)/rules.mk
|
include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
PKG_NAME:=mwan3
|
PKG_NAME:=mwan3
|
||||||
PKG_VERSION:=2.11.8
|
PKG_VERSION:=2.11.12
|
||||||
PKG_RELEASE:=1
|
PKG_RELEASE:=1
|
||||||
PKG_MAINTAINER:=Florian Eckert <fe@dev.tdt.de>, \
|
PKG_MAINTAINER:=Florian Eckert <fe@dev.tdt.de>, \
|
||||||
Aaron Goodman <aaronjg@alumni.stanford.edu>
|
Aaron Goodman <aaronjg@alumni.stanford.edu>
|
||||||
|
|
|
@ -107,7 +107,7 @@ mwan3_get_mwan3track_status()
|
||||||
tracking="down"
|
tracking="down"
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
tracking="not enabled"
|
tracking="disabled"
|
||||||
fi
|
fi
|
||||||
echo "$tracking"
|
echo "$tracking"
|
||||||
}
|
}
|
||||||
|
|
|
@ -1082,7 +1082,8 @@ mwan3_get_iface_hotplug_state() {
|
||||||
|
|
||||||
mwan3_report_iface_status()
|
mwan3_report_iface_status()
|
||||||
{
|
{
|
||||||
local device result tracking IP IPT error
|
local device result tracking IP IPT
|
||||||
|
local status online uptime result
|
||||||
|
|
||||||
mwan3_get_iface_id id "$1"
|
mwan3_get_iface_id id "$1"
|
||||||
network_get_device device "$1"
|
network_get_device device "$1"
|
||||||
|
@ -1099,40 +1100,39 @@ mwan3_report_iface_status()
|
||||||
IPT="$IPT6"
|
IPT="$IPT6"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -z "$id" ] || [ -z "$device" ]; then
|
if [ -f "$MWAN3TRACK_STATUS_DIR/${1}/STATUS" ]; then
|
||||||
result="offline"
|
status="$(cat "$MWAN3TRACK_STATUS_DIR/${1}/STATUS")"
|
||||||
else
|
else
|
||||||
error=0
|
status="unknown"
|
||||||
[ -n "$($IP rule | awk '$1 == "'$((id+1000)):'"')" ] ||
|
|
||||||
error=$((error+1))
|
|
||||||
[ -n "$($IP rule | awk '$1 == "'$((id+2000)):'"')" ] ||
|
|
||||||
error=$((error+2))
|
|
||||||
[ -n "$($IP rule | awk '$1 == "'$((id+3000)):'"')" ] ||
|
|
||||||
error=$((error+4))
|
|
||||||
[ -n "$($IPT -S mwan3_iface_in_$1 2> /dev/null)" ] ||
|
|
||||||
error=$((error+8))
|
|
||||||
[ -n "$($IP route list table $id default dev $device 2> /dev/null)" ] ||
|
|
||||||
error=$((error+16))
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "$result" = "offline" ]; then
|
if [ "$status" = "online" ]; then
|
||||||
:
|
|
||||||
elif [ $error -eq 0 ]; then
|
|
||||||
online=$(get_online_time "$1")
|
online=$(get_online_time "$1")
|
||||||
network_get_uptime uptime "$1"
|
network_get_uptime uptime "$1"
|
||||||
online="$(printf '%02dh:%02dm:%02ds\n' $((online/3600)) $((online%3600/60)) $((online%60)))"
|
online="$(printf '%02dh:%02dm:%02ds\n' $((online/3600)) $((online%3600/60)) $((online%60)))"
|
||||||
uptime="$(printf '%02dh:%02dm:%02ds\n' $((uptime/3600)) $((uptime%3600/60)) $((uptime%60)))"
|
uptime="$(printf '%02dh:%02dm:%02ds\n' $((uptime/3600)) $((uptime%3600/60)) $((uptime%60)))"
|
||||||
result="$(mwan3_get_iface_hotplug_state $1) $online, uptime $uptime"
|
result="$(mwan3_get_iface_hotplug_state $1) $online, uptime $uptime"
|
||||||
elif [ $error -gt 0 ] && [ $error -ne 31 ]; then
|
|
||||||
result="error (${error})"
|
|
||||||
elif [ "$enabled" = "1" ]; then
|
|
||||||
result="offline"
|
|
||||||
else
|
else
|
||||||
result="disabled"
|
result=0
|
||||||
|
[ -n "$($IP rule | awk '$1 == "'$((id+1000)):'"')" ] ||
|
||||||
|
result=$((result+1))
|
||||||
|
[ -n "$($IP rule | awk '$1 == "'$((id+2000)):'"')" ] ||
|
||||||
|
result=$((result+2))
|
||||||
|
[ -n "$($IP rule | awk '$1 == "'$((id+3000)):'"')" ] ||
|
||||||
|
result=$((result+4))
|
||||||
|
[ -n "$($IPT -S mwan3_iface_in_$1 2> /dev/null)" ] ||
|
||||||
|
result=$((result+8))
|
||||||
|
[ -n "$($IP route list table $id default dev $device 2> /dev/null)" ] ||
|
||||||
|
result=$((result+16))
|
||||||
|
[ "$result" = "0" ] && result=""
|
||||||
fi
|
fi
|
||||||
|
|
||||||
tracking="$(mwan3_get_mwan3track_status $1)"
|
tracking="$(mwan3_get_mwan3track_status $1)"
|
||||||
echo " interface $1 is $result and tracking is $tracking"
|
if [ -n "$result" ]; then
|
||||||
|
echo " interface $1 is $status and tracking is $tracking ($result)"
|
||||||
|
else
|
||||||
|
echo " interface $1 is $status and tracking is $tracking"
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
mwan3_report_policies()
|
mwan3_report_policies()
|
||||||
|
|
|
@ -106,14 +106,10 @@ get_mwan3_status() {
|
||||||
|
|
||||||
config_get enabled "$iface" enabled 0
|
config_get enabled "$iface" enabled 0
|
||||||
|
|
||||||
if [ -d "${MWAN3_STATUS_DIR}" ]; then
|
if [ -f "$MWAN3TRACK_STATUS_DIR/${iface}/STATUS" ]; then
|
||||||
network_get_uptime uptime "$iface"
|
network_get_uptime uptime "$iface"
|
||||||
network_is_up "$iface" && up="1"
|
network_is_up "$iface" && up="1"
|
||||||
if [ -f "$MWAN3TRACK_STATUS_DIR/${iface}/STATUS" ]; then
|
status="$(cat "$MWAN3TRACK_STATUS_DIR/${iface}/STATUS")"
|
||||||
status="$(cat "$MWAN3TRACK_STATUS_DIR/${iface}/STATUS")"
|
|
||||||
else
|
|
||||||
status="notracking"
|
|
||||||
fi
|
|
||||||
else
|
else
|
||||||
uptime=0
|
uptime=0
|
||||||
up=0
|
up=0
|
||||||
|
@ -131,6 +127,7 @@ get_mwan3_status() {
|
||||||
json_add_string "status" "${status}"
|
json_add_string "status" "${status}"
|
||||||
json_add_boolean "enabled" "${enabled}"
|
json_add_boolean "enabled" "${enabled}"
|
||||||
json_add_boolean "running" "${running}"
|
json_add_boolean "running" "${running}"
|
||||||
|
json_add_string "tracking" "${track_status}"
|
||||||
json_add_boolean "up" "${up}"
|
json_add_boolean "up" "${up}"
|
||||||
json_add_array "track_ip"
|
json_add_array "track_ip"
|
||||||
for file in $MWAN3TRACK_STATUS_DIR/${iface}/TRACK_*; do
|
for file in $MWAN3TRACK_STATUS_DIR/${iface}/TRACK_*; do
|
||||||
|
|
Loading…
Reference in a new issue