Wait up to 3 seconds for the Quantenna interface.

Fixes b/33211748 and b/33280156.

Change-Id: I75c96b5f47d439bfef9770ad52d5a97b833a6b3b
diff --git a/fs/skeleton/etc/init.d/network b/fs/skeleton/etc/init.d/network
index 2b15d8e..3899412 100755
--- a/fs/skeleton/etc/init.d/network
+++ b/fs/skeleton/etc/init.d/network
@@ -420,7 +420,7 @@
       i=0
       while true; do
         if ! interface_exists wlan"$i"; then
-          echo "add wlan$i 3" >/sys/class/net/quantenna/vlan
+          add_quantenna_interface "wlan$i" 3
           break
         fi
         i=$((i+1))
diff --git a/fs/skeleton/etc/utils.sh b/fs/skeleton/etc/utils.sh
index e4f4b9c..17470b1 100644
--- a/fs/skeleton/etc/utils.sh
+++ b/fs/skeleton/etc/utils.sh
@@ -265,6 +265,18 @@
   [ -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 dbb0da8..7cec68c 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
-      echo "add $client_interface 2" >/sys/class/net/quantenna/vlan
+      add_quantenna_interface "$client_interface" 2
       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
-      echo "add $secondary_interface 4" >/sys/class/net/quantenna/vlan
+      add_quantenna_interface "$secondary_interface" 4
       mac=$(get_locally_administered_mac_addr "$mac")
     else
       local phy=$(find_phy_for_interface "$interface")