summaryrefslogtreecommitdiff
path: root/data/templates/wwan/ip-down.script.tmpl
blob: 9dc15ea99cf31a4575718bebb29bbece7ab2a263 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#!/bin/sh

# 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 $2 | egrep "(ttyS[0-9]+|usb[0-9]+b.*)$") ]; then
    exit 0
fi

# 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/{{ ifname }}/upper_* ]; then
    # Determine upper (VRF) interface
    VRF=$(basename $(ls -d /sys/class/net/{{ ifname }}/upper_*))
    # Remove upper_ prefix from result string
    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 {{ ifname }}"
else
    # Remove default route from GRT (global routing table)
    vtysh -c "conf t" -c "no ip route 0.0.0.0/0 {{ ifname }}"
fi

DIALER_PID=$(cat /var/run/{{ ifname }}.pid)
logger -t pppd[$DIALER_PID] "removed default route via {{ ifname }} metric {{ backup.distance }}"