From 94db91519605235e347672a3e0f9615936e10e98 Mon Sep 17 00:00:00 2001 From: Jo-Philipp Wich Date: Wed, 2 Jun 2010 00:22:13 +0000 Subject: base-files: - add aliases to device by default (not ifname) - introduce option "layer" to select the target ifname to attach the alias to: - 3 use tun device (tun over bridge over device) fallback to bridge or device - 2 use bridge (bridge over device) fallback to device - 1 use device SVN-Revision: 21655 --- package/base-files/files/lib/network/config.sh | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) (limited to 'package/base-files/files/lib') diff --git a/package/base-files/files/lib/network/config.sh b/package/base-files/files/lib/network/config.sh index a31e836..2ca04fa 100755 --- a/package/base-files/files/lib/network/config.sh +++ b/package/base-files/files/lib/network/config.sh @@ -246,6 +246,25 @@ setup_interface_alias() { config_get cfg "$config" interface [ "$parent" == "$cfg" ] || return 0 + # parent device and ifname + local p_device p_type + config_get p_device "$cfg" device + config_get p_type "$cfg" type + + # select alias ifname + local layer use_iface + config_get layer "$config" layer 2 + case "$layer:$p_type" in + # layer 3: e.g. pppoe-wan or pptp-vpn + 3:*) use_iface="$iface" ;; + + # layer 2 and parent is bridge: e.g. br-wan + 2:bridge) use_iface="br-$cfg" ;; + + # layer 1: e.g. eth0 or ath0 + *) use_iface="$p_device" ;; + esac + # alias counter local ctr config_get ctr "$parent" alias_count 0 @@ -258,14 +277,14 @@ setup_interface_alias() { append list "$config" config_set "$parent" aliases "$list" - iface="$iface:$ctr" - set_interface_ifname "$config" "$iface" + use_iface="$use_iface:$ctr" + set_interface_ifname "$config" "$use_iface" local proto config_get proto "$config" proto "static" case "${proto}" in static) - setup_interface_static "$iface" "$config" + setup_interface_static "$use_iface" "$config" ;; *) echo "Unsupported type '$proto' for alias config '$config'" -- cgit v1.1