#!/bin/sh setup_wl() { [ -f /proc/net/wl0 ] && { lsmod | grep wlcompat >&- || insmod wlcompat } iwconfig "$INTERFACE" 2>&- | grep -v 'no wireless' >&- && { /sbin/wifi } } setup_eth() { [ -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 echo "1" > "/proc/switch/$INTERFACE/reset" echo "1" > "/proc/switch/$INTERFACE/enable_vlan" for vlan in $(seq 0 15); do eval "hwname=\"\${vlan${vlan}hwname}\"" [ "$hwname" = "$if" ] && { eval "vports=\"\${vlan${vlan}ports}\"" [ -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;; wl) setup_wl;; esac } case "$ACTION" in add|register) do_register;; esac