diff options
-rw-r--r-- | data/templates/wwan/ip-down.script.tmpl | 14 | ||||
-rw-r--r-- | data/templates/wwan/ip-up.script.tmpl | 14 |
2 files changed, 26 insertions, 2 deletions
diff --git a/data/templates/wwan/ip-down.script.tmpl b/data/templates/wwan/ip-down.script.tmpl index 1c5b8a749..5ce61f9b1 100644 --- a/data/templates/wwan/ip-down.script.tmpl +++ b/data/templates/wwan/ip-down.script.tmpl @@ -12,7 +12,19 @@ fi device=`echo "$ipparam"|awk '{ print $1 }'`
metric=`echo "$ipparam"|awk '{ print $2 }'`
-vtysh -c "conf t" -c "no ip route 0.0.0.0/0 ${device} ${metric}"
+# Determine if we are enslaved to a VRF, this is needed to properly insert
+# the backup default route
+if [ -d /sys/class/net/${device}/upper_* ]; then
+ # Determine upper (VRF) interface
+ VRF=$(basename $(ls -d /sys/class/net/wlm0/upper_*))
+ # Remove upper_ prefix from result string
+ VRF=${VRF#"upper_"}
+ # Configure VRF default route
+ vtysh -c "conf t" -c "vrf $VRF" -c "no ip route 0.0.0.0/0 ${device} ${metric}"
+else
+ # No VRF, use default routing table
+ vtysh -c "conf t" -c "no ip route 0.0.0.0/0 ${device} ${metric}"
+fi
DIALER_PID=$(cat /var/run/${device}.pid)
logger -t pppd[$DIALER_PID] "removed default route via $device metric $metric"
diff --git a/data/templates/wwan/ip-up.script.tmpl b/data/templates/wwan/ip-up.script.tmpl index c40f3ba9d..a63042989 100644 --- a/data/templates/wwan/ip-up.script.tmpl +++ b/data/templates/wwan/ip-up.script.tmpl @@ -12,7 +12,19 @@ fi device=`echo "$ipparam"|awk '{ print $1 }'`
metric=`echo "$ipparam"|awk '{ print $2 }'`
-vtysh -c "conf t" -c "ip route 0.0.0.0/0 ${device} ${metric}"
+# Determine if we are enslaved to a VRF, this is needed to properly insert
+# the backup default route
+if [ -d /sys/class/net/${device}/upper_* ]; then
+ # Determine upper (VRF) interface
+ VRF=$(basename $(ls -d /sys/class/net/wlm0/upper_*))
+ # Remove upper_ prefix from result string
+ VRF=${VRF#"upper_"}
+ # Configure VRF default route
+ vtysh -c "conf t" -c "vrf $VRF" -c "ip route 0.0.0.0/0 ${device} ${metric}"
+else
+ # No VRF, use default routing table
+ vtysh -c "conf t" -c "ip route 0.0.0.0/0 ${device} ${metric}"
+fi
DIALER_PID=$(cat /var/run/${device}.pid)
logger -t pppd[$DIALER_PID] "added default route via $device metric $metric"
|