X-Git-Url: https://git.rohieb.name/openwrt.git/blobdiff_plain/e49ecf1adf017e6c29406e084f708b5e3228955c..cc9b5b35070aa53bd5a2dceed271865ea6bb17cb:/package/base-files/files/etc/hotplug.d/net/10-net diff --git a/package/base-files/files/etc/hotplug.d/net/10-net b/package/base-files/files/etc/hotplug.d/net/10-net index 06e524444..013ece39c 100644 --- a/package/base-files/files/etc/hotplug.d/net/10-net +++ b/package/base-files/files/etc/hotplug.d/net/10-net @@ -3,21 +3,32 @@ 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;; + 3g-*|ppp-*|pppoa-*|pppoe-*|pptp-*) 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";; + case "$INTERFACE" in + # Skip wireless parent interfaces + ath[0-9]|wlan[0-9]) ;; + *) + # check the autoload setting + config_get auto "$cfg" auto + case "$auto" in + 1|on|enabled) setup_interface "$INTERFACE";; + esac + ;; esac - # find all vlan configurations for this interface and set them up as well for ifc in $interfaces; do config_get iftype "$ifc" type @@ -38,7 +49,7 @@ delif() { for ifc in $interfaces; do config_get iftype "$ifc" type config_get ifs "$ifc" device - confdevs="$(uci get network.$ifc.ifname)" + confdevs="$(uci_get network.$ifc.ifname)" for dev in $ifs; do [ "${dev%%\.*}" = "$INTERFACE" ] && { list_contains confdevs "$dev" || list_remove ifs "$dev"