base-files: allow failsafe to configure vlans

In preparation of properly setting up vlans and switches, add
support for configuring failsafe on a vlan tagged interface.

Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
lede-17.01
Jonas Gorski 2016-07-29 00:23:55 +02:00
parent c18edcec45
commit 072cf26729
1 changed files with 29 additions and 3 deletions

View File

@ -3,9 +3,22 @@
# Copyright (C) 2010 Vertical Communications # Copyright (C) 2010 Vertical Communications
preinit_ip_config() { preinit_ip_config() {
grep -q "$1" /proc/net/dev || return local netdev vid
ip link set dev $1 up netdev=${1%\.*}
vid=${1#*\.}
if [ "$vid" = "$netdev" ]; then
vid=
fi
grep -q "$netdev" /proc/net/dev || return
if [ -n "$vid" ]; then
ip link add link $netdev name $1 type vlan id $vid
fi
ip link set dev $netdev up
ip -4 address add $pi_ip/$pi_netmask broadcast $pi_broadcast dev $1 ip -4 address add $pi_ip/$pi_netmask broadcast $pi_broadcast dev $1
} }
@ -52,8 +65,21 @@ preinit_ip() {
preinit_ip_deconfig() { preinit_ip_deconfig() {
[ -n "$pi_ifname" ] && grep -q "$pi_ifname" /proc/net/dev && { [ -n "$pi_ifname" ] && grep -q "$pi_ifname" /proc/net/dev && {
local netdev vid
netdev=${pi_ifname%\.*}
vid=${pi_ifname#*\.}
if [ "$vid" = "$netdev" ]; then
vid=
fi
ip -4 address flush dev $pi_ifname ip -4 address flush dev $pi_ifname
ip link set dev $pi_ifname down ip link set dev $netdev down
if [ -n "$vid" ]; then
ip link delete $pi_ifname
fi
} }
} }