2006-01-14 04:31:36 +02:00
|
|
|
#!/bin/sh
|
2006-05-30 22:38:38 +03:00
|
|
|
setup_wl()
|
2006-01-14 04:31:36 +02:00
|
|
|
{
|
|
|
|
[ -f /proc/net/wl0 ] && {
|
|
|
|
lsmod | grep wlcompat >&- || insmod wlcompat
|
|
|
|
}
|
|
|
|
iwconfig "$INTERFACE" 2>&- | grep -v 'no wireless' >&- && {
|
|
|
|
/sbin/wifi
|
|
|
|
}
|
2006-05-30 22:38:38 +03:00
|
|
|
}
|
|
|
|
setup_eth()
|
|
|
|
{
|
2006-01-14 04:31:36 +02:00
|
|
|
[ -d /proc/switch ] || {
|
|
|
|
insmod switch-core
|
|
|
|
insmod switch-robo || insmod switch-adm
|
|
|
|
}
|
|
|
|
if="$(echo "$INTERFACE" | sed s,eth,et,)"
|
|
|
|
ifconfig "$INTERFACE" up 2>&- >&-
|
|
|
|
[ -d "/proc/switch/$INTERFACE" ] || return 0
|
2006-01-26 18:09:58 +02:00
|
|
|
echo "1" > "/proc/switch/$INTERFACE/reset"
|
2006-01-14 04:31:36 +02:00
|
|
|
echo "1" > "/proc/switch/$INTERFACE/enable_vlan"
|
|
|
|
for vlan in $(seq 0 15); do
|
2006-04-05 06:45:06 +03:00
|
|
|
eval "hwname=\"\${vlan${vlan}hwname}\""
|
|
|
|
[ "$hwname" = "$if" ] && {
|
|
|
|
eval "vports=\"\${vlan${vlan}ports}\""
|
2006-01-14 04:31:36 +02:00
|
|
|
[ -n "$vports" ] && echo "$vports" > "/proc/switch/$INTERFACE/vlan/$vlan/ports"
|
|
|
|
$DEBUG vconfig add "$INTERFACE" "$vlan"
|
|
|
|
}
|
|
|
|
done
|
|
|
|
}
|
|
|
|
|
|
|
|
do_register()
|
|
|
|
{
|
|
|
|
case "${INTERFACE%%[0-9]*}" in
|
|
|
|
eth) setup_eth;;
|
2006-05-30 22:38:38 +03:00
|
|
|
wl) setup_wl;;
|
2006-01-14 04:31:36 +02:00
|
|
|
esac
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
case "$ACTION" in
|
|
|
|
add|register) do_register;;
|
|
|
|
esac
|