Wait for MAC address before adding interface to bridge.
Change-Id: Idab220c9f5861302b995de563e205225343dfb1c
diff --git a/fs/skeleton/etc/init.d/network b/fs/skeleton/etc/init.d/network
index 3899412..b36a2da 100755
--- a/fs/skeleton/etc/init.d/network
+++ b/fs/skeleton/etc/init.d/network
@@ -229,6 +229,14 @@
for x in "$@"; do
[ -e "$x" ] || continue
+ # Wait for MAC address.
+ for i in $(seq 1 12); do
+ if [ "$(get_mac_address_for_interface "$x")" != 00:00:00:00:00:00 ]; then
+ break
+ fi
+ sleep 0.25
+ done
+
local x="${x#/sys/class/net/}"
echo "Adding interface $x..."
@@ -420,7 +428,7 @@
i=0
while true; do
if ! interface_exists wlan"$i"; then
- add_quantenna_interface "wlan$i" 3
+ echo "add wlan$i 3" >/sys/class/net/quantenna/vlan
break
fi
i=$((i+1))
diff --git a/fs/skeleton/etc/utils.sh b/fs/skeleton/etc/utils.sh
index 17470b1..e4f4b9c 100644
--- a/fs/skeleton/etc/utils.sh
+++ b/fs/skeleton/etc/utils.sh
@@ -265,18 +265,6 @@
[ -e "/sys/class/net/$1" ]
}
-add_quantenna_interface() {
- local interface=$1
- local vlan=$2
- echo "add $interface $vlan" >/sys/class/net/quantenna/vlan
- for i in `seq 12`; do
- if interface_exists "$interface"; then
- break
- fi
- sleep 0.25
- done
-}
-
is_quantenna_interface() {
# Check for "$1 " to prevent "wlanX" from matching "wlanX_portal".
filecontains "$1 " /sys/class/net/quantenna/vlan >/dev/null 2>&1
diff --git a/fs/skeleton/sbin/hotplug b/fs/skeleton/sbin/hotplug
index 7cec68c..dbb0da8 100755
--- a/fs/skeleton/sbin/hotplug
+++ b/fs/skeleton/sbin/hotplug
@@ -18,7 +18,7 @@
local client_interface=$(echo "$interface" | sed s/^wlan/wcli/)
if ! interface_exists "$client_interface"; then
if is_quantenna_interface "$interface"; then
- add_quantenna_interface "$client_interface" 2
+ echo "add $client_interface 2" >/sys/class/net/quantenna/vlan
mac=$(get_locally_administered_mac_addr "$mac")
else
local phy=$(find_phy_for_interface "$interface")
@@ -76,7 +76,7 @@
if ! interface_exists "$secondary_interface"; then
if is_quantenna_interface "$interface"; then
- add_quantenna_interface "$secondary_interface" 4
+ echo "add $secondary_interface 4" >/sys/class/net/quantenna/vlan
mac=$(get_locally_administered_mac_addr "$mac")
else
local phy=$(find_phy_for_interface "$interface")