base-files: apply network interface settings such as macaddr, mtu and txqueuelen...
[openwrt.git] / package / base-files / files / lib / network / config.sh
index 00e372a..ce8ec89 100755 (executable)
@@ -152,7 +152,7 @@ sort_list() {
 prepare_interface() {
        local iface="$1"
        local config="$2"
-       local vifmac="$3"
+       local macaddr="$3"
 
        # if we're called for the bridge interface itself, don't bother trying
        # to create any interfaces here. The scripts have already done that, otherwise
@@ -166,13 +166,15 @@ prepare_interface() {
                # make sure the interface is removed from any existing bridge and deconfigured,
                # (deconfigured only if the interface is not set to proto=none)
                unbridge "$iface"
-               [ "$proto" = none ] || ifconfig "$iface" 0.0.0.0
 
-               # Change interface MAC address if requested
-               [ -n "$vifmac" ] && {
-                       ifconfig "$iface" down
-                       ifconfig "$iface" hw ether "$vifmac" up
-               }
+               local mtu macaddr txqueuelen
+               config_get mtu "$config" mtu
+               [ -n "$macaddr" ] || config_get macaddr "$config" macaddr
+               config_get txqueuelen "$config" txqueuelen
+               [ -n "$macaddr" ] && $DEBUG ifconfig "$iface" down
+               $DEBUG ifconfig "$iface" ${macaddr:+hw ether "$macaddr"} ${mtu:+mtu $mtu} ${txqueuelen:+txqueuelen $txqueuelen} up
+
+               [ "$proto" = none ] || ifconfig "$iface" 0.0.0.0
 
                # Apply sysctl settings
                map_sysctls "$config" "$iface"
@@ -350,14 +352,6 @@ setup_interface() {
        }
 
        # Interface settings
-       grep -qE "^ *$iface:" /proc/net/dev && {
-               local mtu macaddr txqueuelen
-               config_get mtu "$config" mtu
-               config_get macaddr "$config" macaddr
-               config_get txqueuelen "$config" txqueuelen
-               [ -n "$macaddr" ] && $DEBUG ifconfig "$iface" down
-               $DEBUG ifconfig "$iface" ${macaddr:+hw ether "$macaddr"} ${mtu:+mtu $mtu} ${txqueuelen:+txqueuelen $txqueuelen} up
-       }
        set_interface_ifname "$config" "$iface"
 
        [ -n "$proto" ] || config_get proto "$config" proto