# 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*|3g-*) return 0;; ath*) return 0;; wlan*) 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