|
|
|
@ -12,19 +12,22 @@ nvram () { |
|
|
|
|
. /etc/nvram.overrides |
|
|
|
|
|
|
|
|
|
# valid interface? |
|
|
|
|
if_valid () ( |
|
|
|
|
[ "${1%%[0-9]}" = "vlan" ] && { |
|
|
|
|
if_valid () { |
|
|
|
|
ifconfig "$1" >&- 2>&- || |
|
|
|
|
[ "${1%%[0-9]}" = "br" ] || |
|
|
|
|
{ |
|
|
|
|
[ "${1%%[0-9]}" = "vlan" ] && ( |
|
|
|
|
i=${1#vlan} |
|
|
|
|
hwname=$(nvram get vlan${i}hwname) |
|
|
|
|
hwaddr=$(nvram get ${hwname}macaddr) |
|
|
|
|
[ -z "$hwaddr" ] && return 1 |
|
|
|
|
|
|
|
|
|
vif=$(ifconfig -a | awk '/^eth.*'$hwaddr'/ {print $1; exit}' IGNORECASE=1) |
|
|
|
|
debug "# vlan$i: $hwname $hwaddr => $vif" |
|
|
|
|
debug "# vlan$i => $vif" |
|
|
|
|
|
|
|
|
|
$DEBUG ifconfig $vif up |
|
|
|
|
$DEBUG vconfig add $vif $i 2>/dev/null |
|
|
|
|
} |
|
|
|
|
ifconfig "$1" >/dev/null 2>&1 || [ "${1%%[0-9]}" = "br" ] |
|
|
|
|
[ $? = 0 ] || { echo -e "# $1 ignored: no such interface"; return 1; } |
|
|
|
|
$DEBUG vconfig add $vif $i 2>&- |
|
|
|
|
) |
|
|
|
|
} || |
|
|
|
|
{ echo -e "# $1 ignored: can't find/create"; false; } |
|
|
|
|
} |
|
|
|
|