diff options
author | Christian Poessinger <christian@poessinger.com> | 2020-04-04 12:31:21 +0200 |
---|---|---|
committer | Christian Poessinger <christian@poessinger.com> | 2020-04-04 12:31:21 +0200 |
commit | 29bae2e88911f72abe8294576b3c6eba806598a7 (patch) | |
tree | dcb8f069ef4b3d4eccca4747b26c53a06e60dc5c | |
parent | fec5b40244520b8455abd2fdcd8ce347a27fd7f4 (diff) | |
download | vyos-1x-29bae2e88911f72abe8294576b3c6eba806598a7.tar.gz vyos-1x-29bae2e88911f72abe8294576b3c6eba806598a7.zip |
wwan: T2219: add default route into VRF
-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"
|