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;;
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
esac
addif
;;
+ remove|unregister)
+ delif
+ ;;
esac