summaryrefslogtreecommitdiff
path: root/data/templates/pppoe/ip-up.script.tmpl
blob: c6aa02e9ee91b0aef2f171aac584a1a650a4d753 (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
28
29
30
31
32
33
#!/bin/sh

# As PPPoE is an "on demand" interface we need to re-configure it when it
# becomes up
if [ "$6" != "{{ intf }}" ]; then
    exit
fi

# add some info to syslog
DIALER_PID=$(cat /var/run/{{ intf }}.pid)
logger -t pppd[$DIALER_PID] "executing $0"

# Debian PPP version has no support for replacing an existing default route
# thus we emulate this ba an ip-up script https://phabricator.vyos.net/T2220.

{% if 'auto' in default_route -%}

# only insert a new default route if there is no default route configured
routes=$(vtysh -c "show running-config" | sed -n "/ip route/,/!/p" | grep 0.0.0.0/0 | wc -l)
if [ "$routes" -eq 0 ]; then
    # No VRF, use default routing table
    vtysh -c "conf t" -c "ip route 0.0.0.0/0 {{ intf }}"
fi

{% elif 'force' in default_route -%}

# Retrieve current static default routes and remove it from the routing table
vtysh -c "show running-config" | sed -n "/ip route/,/!/p" | grep 0.0.0.0/0 | while read route ; do
    vtysh -c "conf t" -c "no ${route}"
done
# No VRF, use default routing table
vtysh -c "conf t" -c "ip route 0.0.0.0/0 {{ intf }}"
{% endif %}