[source] base-files: allow failsafe to configure vlans

LEDE Commits lede-commits at lists.infradead.org
Sat Aug 13 06:52:17 PDT 2016


jogo pushed a commit to source.git, branch master:
https://git.lede-project.org/?p=source.git;a=commitdiff;h=072cf26729aca15b8a0526f18bce2b5e7a27ab12

commit 072cf26729aca15b8a0526f18bce2b5e7a27ab12
Author: Jonas Gorski <jonas.gorski at gmail.com>
AuthorDate: Fri Jul 29 00:23:55 2016 +0200

    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 at gmail.com>
---
 .../files/lib/preinit/10_indicate_preinit          | 32 ++++++++++++++++++++--
 1 file changed, 29 insertions(+), 3 deletions(-)

diff --git a/package/base-files/files/lib/preinit/10_indicate_preinit b/package/base-files/files/lib/preinit/10_indicate_preinit
index 2062433..33e90b1 100644
--- a/package/base-files/files/lib/preinit/10_indicate_preinit
+++ b/package/base-files/files/lib/preinit/10_indicate_preinit
@@ -3,9 +3,22 @@
 # Copyright (C) 2010 Vertical Communications
 
 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
 }
 
@@ -52,8 +65,21 @@ preinit_ip() {
 
 preinit_ip_deconfig() {
 	[ -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 link set dev $pi_ifname down
+		ip link set dev $netdev down
+
+		if [ -n "$vid" ]; then
+			ip link delete $pi_ifname
+		fi
 	}
 }
 



More information about the lede-commits mailing list