1
0
mirror of git://projects.qi-hardware.com/openwrt-xburst.git synced 2024-12-24 19:49:54 +02:00

base-files: apply network interface settings such as macaddr, mtu and txqueuelen in prepare_interface instead of setup_interface. setting the mtu after the interface is up is unreliable on some drivers such as gianfar

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@28297 3c298f89-4303-0410-b956-a3cf2f4a3e73
This commit is contained in:
nbd 2011-09-24 20:34:17 +00:00
parent 8d0d02042c
commit b920313ef3

View File

@ -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