From 29bae2e88911f72abe8294576b3c6eba806598a7 Mon Sep 17 00:00:00 2001 From: Christian Poessinger Date: Sat, 4 Apr 2020 12:31:21 +0200 Subject: wwan: T2219: add default route into VRF --- data/templates/wwan/ip-down.script.tmpl | 14 +++++++++++++- data/templates/wwan/ip-up.script.tmpl | 14 +++++++++++++- 2 files changed, 26 insertions(+), 2 deletions(-) (limited to 'data/templates') 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" -- cgit v1.2.3