| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- # Copyright (C) 2006 OpenWrt.org
- include /lib/network
- addif() {
- # Ensure that ipv6 is loaded, autoloading happens later but ipv6 might be
- # required now for interface setup.
- [ -d /proc/sys/net/ipv6 ] || {
- grep -q '^ipv6' /etc/modules.d/* && insmod ipv6
- }
- # PPP devices are configured by pppd, no need to run setup_interface here
- case "$INTERFACE" in
- ppp*) return 0;;
- esac
- scan_interfaces
- local cfg="$(find_config "$INTERFACE")"
- # check the autoload setting
- config_get auto "$cfg" auto
- case "$auto" in
- 1|on|enabled) setup_interface "$INTERFACE";;
- esac
- # find all vlan configurations for this interface and set them up as well
- for ifc in $interfaces; do
- config_get iftype "$ifc" type
- config_get ifs "$ifc" device
- for dev in $ifs; do
- [ "${dev%%\.*}" = "$INTERFACE" -a "$dev" != "$INTERFACE" ] && {
- add_vlan "$dev"
- }
- done
- done
- }
- delif() {
- scan_interfaces
- # find all vlan configurations for this interface and nuke 'em
- for ifc in $interfaces; do
- config_get iftype "$ifc" type
- config_get ifs "$ifc" device
- confdevs="$(uci get network.$ifc.ifname)"
- for dev in $ifs; do
- [ "${dev%%\.*}" = "$INTERFACE" ] && {
- list_contains confdevs "$dev" || list_remove ifs "$dev"
- }
- done
- uci_set_state "network" "$ifc" device "$ifs"
- done
- }
- case "$ACTION" in
- add|register)
- case "$PHYSDEVDRIVER" in
- natsemi) sleep 1;;
- esac
- addif
- ;;
- remove|unregister)
- delif
- ;;
- esac
|