summaryrefslogtreecommitdiff
path: root/data
diff options
context:
space:
mode:
authorChristian Poessinger <christian@poessinger.com>2020-06-11 23:15:10 +0200
committerChristian Poessinger <christian@poessinger.com>2020-06-12 00:21:24 +0200
commitf79646e08b2158e4b792c2e98997a72a73a75f10 (patch)
tree9301377a1eaf2bd41a9606577f898238b0cae6b6 /data
parentd94fcc3ae312421e4658c21bb8dfd4847a1a8b48 (diff)
downloadvyos-1x-f79646e08b2158e4b792c2e98997a72a73a75f10.tar.gz
vyos-1x-f79646e08b2158e4b792c2e98997a72a73a75f10.zip
wwan: T2586: fix installing VRF default route
After commit 1c7d7cb ("wwan: T2529: migrate device from ttyUSB to usbXbY.YpZ.Z") the up/down scripts did not properly parse the passed tty for setting up default routes.
Diffstat (limited to 'data')
-rw-r--r--data/templates/wwan/ip-down.script.tmpl23
-rw-r--r--data/templates/wwan/ip-up.script.tmpl22
2 files changed, 23 insertions, 22 deletions
diff --git a/data/templates/wwan/ip-down.script.tmpl b/data/templates/wwan/ip-down.script.tmpl
index 194f8d863..f7b38cbc5 100644
--- a/data/templates/wwan/ip-down.script.tmpl
+++ b/data/templates/wwan/ip-down.script.tmpl
@@ -1,26 +1,27 @@
#!/bin/sh
-tty=$2
+# Script parameters will be like:
+# wlm0 /dev/serial/by-bus/usb0b1.3p1.3 115200 10.100.118.91 10.64.64.64 wlm0
# Only applicable for Wireless Modems (WWAN)
-if [ -z "$(echo $tty | egrep "tty(USB|ACM)")" ]; then
+if [ -z $(echo $2 | egrep "(ttyS[0-9]+|usb[0-9]+b.*)$") ]; then
exit 0
fi
-# Determine if we are enslaved to a VRF, this is needed to properly insert
-# the default route
-VRF_NAME=""
+# Determine if we are running inside a VRF or not, required for proper routing table
+# NOTE: the down script can not be properly templated as we need the VRF name,
+# which is not present on deletion, thus we read it from the operating system.
if [ -d /sys/class/net/{{ intf }}/upper_* ]; then
# Determine upper (VRF) interface
VRF=$(basename $(ls -d /sys/class/net/{{ intf }}/upper_*))
# Remove upper_ prefix from result string
- VRF=${VRF#"upper_"}
- # Populate variable to run in VR context
- VRF_NAME=" -c vrf ${VRF_NAME} "
+ VRF_NAME=${VRF#"upper_"}
+ # Remove default route from VRF routing table
+ vtysh -c "conf t" -c "vrf ${VRF_NAME}" -c "no ip route 0.0.0.0/0 {{ intf }}"
+else
+ # Remove default route from GRT (global routing table)
+ vtysh -c "conf t" -c "no ip route 0.0.0.0/0 {{ intf }}"
fi
-# Remove default route to either default or VRF routing table
-vtysh -c "conf t" ${VRF_NAME} -c "no ip route 0.0.0.0/0 {{ intf }} {{ metric }}"
-
DIALER_PID=$(cat /var/run/{{ intf }}.pid)
logger -t pppd[$DIALER_PID] "removed default route via {{ intf }} metric {{ metric }}"
diff --git a/data/templates/wwan/ip-up.script.tmpl b/data/templates/wwan/ip-up.script.tmpl
index 89e42a23a..3a7eec800 100644
--- a/data/templates/wwan/ip-up.script.tmpl
+++ b/data/templates/wwan/ip-up.script.tmpl
@@ -1,25 +1,25 @@
#!/bin/sh
-tty=$2
+# Script parameters will be like:
+# wlm0 /dev/serial/by-bus/usb0b1.3p1.3 115200 10.100.118.91 10.64.64.64 wlm0
# Only applicable for Wireless Modems (WWAN)
-if [ -z "$(echo $tty | egrep "tty(USB|ACM)")" ]; then
+if [ -z $(echo $2 | egrep "(ttyS[0-9]+|usb[0-9]+b.*)$") ]; then
exit 0
fi
-DIALER_PID=$(cat /var/run/{{ intf }}.pid)
-
-# Determine if we are enslaved to a VRF, this is needed to properly insert
-# the default route
-VRF_NAME=""
+# Determine if we are running inside a VRF or not, required for proper routing table
if [ -d /sys/class/net/{{ intf }}/upper_* ]; then
# Determine upper (VRF) interface
VRF=$(basename $(ls -d /sys/class/net/{{ intf }}/upper_*))
# Remove upper_ prefix from result string
- VRF=${VRF#"upper_"}
- VRF_NAME="vrf ${VRF}"
+ VRF_NAME=${VRF#"upper_"}
+ # Remove default route from VRF routing table
+ vtysh -c "conf t" -c "vrf ${VRF_NAME}" -c "ip route 0.0.0.0/0 {{ intf }} {{ metric }}"
+else
+ # Remove default route from GRT (global routing table)
+ vtysh -c "conf t" -c "ip route 0.0.0.0/0 {{ intf }} {{ metric }}"
fi
-# Apply default route to either default or VRF routing table
-vtysh -c "conf t" -c "ip route 0.0.0.0/0 {{ intf }} ${VRF_NAME} {{ metric }}"
+DIALER_PID=$(cat /var/run/{{ intf }}.pid)
logger -t pppd[$DIALER_PID] "added default route via {{ intf }} metric {{ metric }} ${VRF_NAME}"