aboutsummaryrefslogtreecommitdiff
path: root/net/mwan3/files
diff options
context:
space:
mode:
authorAaron Goodman <aaronjg@stanford.edu>2020-12-12 08:45:53 -0500
committerFlorian Eckert <fe@dev.tdt.de>2020-12-16 09:32:02 +0100
commit5691ff247f24d6784af8fd2f5b7ed17879dbcc08 (patch)
tree4511d3ce089a91b26c24f15021c76e7d5ede26aa /net/mwan3/files
parent6ccb14a3795797c9463d5e98067f5e5ad06f2dad (diff)
mwan3: fix linkdown routes not being added
Signed-off-by: Aaron Goodman <aaronjg@stanford.edu>
Diffstat (limited to 'net/mwan3/files')
-rw-r--r--net/mwan3/files/lib/mwan3/common.sh3
-rw-r--r--net/mwan3/files/lib/mwan3/mwan3.sh2
-rwxr-xr-xnet/mwan3/files/usr/sbin/mwan3rtmon16
3 files changed, 10 insertions, 11 deletions
diff --git a/net/mwan3/files/lib/mwan3/common.sh b/net/mwan3/files/lib/mwan3/common.sh
index 3cb6f1a45..bb55a466c 100644
--- a/net/mwan3/files/lib/mwan3/common.sh
+++ b/net/mwan3/files/lib/mwan3/common.sh
@@ -129,6 +129,9 @@ mwan3_init()
LOG debug "Max interface count is ${MWAN3_INTERFACE_MAX}"
fi
+ # remove "linkdown", expiry and source based routing modifiers from route lines
+ MWAN3_ROUTE_LINE_EXP="s/linkdown //; s/expires [0-9]\+sec//;s/error [0-9]\+//; ${source_routing:+s/default\(.*\) from [^ ]*/default\1/;} p"
+
# mark mask constants
bitcnt=$(mwan3_count_one_bits MMX_MASK)
mmdefault=$(((1<<bitcnt)-1))
diff --git a/net/mwan3/files/lib/mwan3/mwan3.sh b/net/mwan3/files/lib/mwan3/mwan3.sh
index 26bdcbcd2..6821b8503 100644
--- a/net/mwan3/files/lib/mwan3/mwan3.sh
+++ b/net/mwan3/files/lib/mwan3/mwan3.sh
@@ -413,7 +413,7 @@ mwan3_get_routes()
local source_routing
config_get_bool source_routing globals source_routing 0
[ $source_routing -eq 0 ] && unset source_routing
- $IP route list table main | sed -ne "/^linkdown/T; s/expires \([0-9]\+\)sec//;s/error [0-9]\+//; ${source_routing:+s/default\(.*\) from [^ ]*/default\1/;} p" | uniq
+ $IP route list table main | sed -ne "$MWAN3_ROUTE_LINE_EXP" | uniq
}
mwan3_create_iface_route()
diff --git a/net/mwan3/files/usr/sbin/mwan3rtmon b/net/mwan3/files/usr/sbin/mwan3rtmon
index 6ece58125..e460615ed 100755
--- a/net/mwan3/files/usr/sbin/mwan3rtmon
+++ b/net/mwan3/files/usr/sbin/mwan3rtmon
@@ -69,7 +69,7 @@ mwan3_add_all_routes()
mwan3_rtmon_route_handle()
{
- local action route_line family tbl device line route_line_exp tid source_routing
+ local action route_line family tbl device line tid source_routing
route_line=${1##"Deleted "}
route_family=$2
@@ -79,29 +79,25 @@ mwan3_rtmon_route_handle()
if [ "$route_line" = "$1" ]; then
action="replace"
- route_line_exp="s/expires \([0-9]\+\)sec//;s/error [0-9]\+//; ${source_routing:+s/default\(.*\) from [^ ]*/default\1/}"
$IPS -! add mwan3_connected_${route_family##ip} ${route_line%% *}
else
action="del"
- route_line_exp="s/expires [0-9]\+sec//;s/error [0-9]\+//; ${source_routing:+s/default\(.*\) from [^ ]*/default\1/}"
mwan3_set_connected_${route_family}
fi
+ if [ -z "${route_line##*linkdown*}" ]; then
+ LOG debug "attempting to add link on down interface - $route_line"
+ fi
+
if [ "$route_family" = "ipv4" ]; then
IP="$IP4"
elif [ "$route_family" = "ipv6" ] && [ $NO_IPV6 -eq 0 ]; then
IP="$IP6"
- route_line=$(echo "$route_line" | sed "$route_line_exp")
else
LOG warn "route update called with invalid family - $route_family"
return
fi
-
- # don't try to add routes when link has gone down
- if [ -z "${route_line##linkdown*}" ]; then
- LOG debug "not adding route due to linkdown - skipping $route_line"
- return
- fi
+ route_line=$(echo "$route_line" | sed -ne "$MWAN3_ROUTE_LINE_EXP")
handle_route() {
local iface=$1