base-files: bridge config, avoid having a random ipv6 ll address (backport of r26426)
authornbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Sun, 3 Apr 2011 01:24:31 +0000 (01:24 +0000)
committernbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Sun, 3 Apr 2011 01:24:31 +0000 (01:24 +0000)
So far, we are setting the bridge interface up before having added any
bridge interface ports. This results in the bridge assigning a random
mac address to its bridge interface and therefore IPv6 assigning a
matching link local address to the bridge interface as soon as the
bridge interface is up. After adding the first bridge port interface,
the bridge's mac address is reset correctly, however the IPv6 link
local address stays the same.

This commit ensures that we are at least having the IPv6 link local
address of the first interface added to the bridge instead of a random
one.

Signed-off-by: Linus L├╝ssing <linus.luessing@web.de>
git-svn-id: svn://svn.openwrt.org/openwrt/branches/backfire@26427 3c298f89-4303-0410-b956-a3cf2f4a3e73

package/base-files/files/lib/network/config.sh

index d9bd5cead784ef56d664e25a88548f889b35cd9b..ae11853ebc537ea24ead9a23acbdd9156e5ff714 100755 (executable)
@@ -186,11 +186,11 @@ prepare_interface() {
                                        config_get_bool stp "$config" stp 0
                                        $DEBUG brctl addbr "br-$config"
                                        $DEBUG brctl setfd "br-$config" 0
-                                       $DEBUG ifconfig "br-$config" up
                                        $DEBUG ifconfig "$iface" 0.0.0.0
                                        $DEBUG do_sysctl "net.ipv6.conf.$iface.disable_ipv6" 1
                                        $DEBUG brctl addif "br-$config" "$iface"
                                        $DEBUG brctl stp "br-$config" $stp
+                                       $DEBUG ifconfig "br-$config" up
                                        # Creating the bridge here will have triggered a hotplug event, which will
                                        # result in another setup_interface() call, so we simply stop processing
                                        # the current event at this point.