tests: IAPP and multiple BSSes
authorJouni Malinen <jouni@qca.qualcomm.com>
Thu, 18 Aug 2016 17:06:09 +0000 (20:06 +0300)
committerJouni Malinen <j@w1.fi>
Thu, 18 Aug 2016 17:07:17 +0000 (20:07 +0300)
This verifies IAPP socket registration from multiple hostapd interfaces.

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
tests/hwsim/example-hostapd.config
tests/hwsim/test_ap_dynamic.py

index 40015fd..674386a 100644 (file)
@@ -101,3 +101,5 @@ CONFIG_SUITEB=y
 #LIBS_n += -fsanitize=undefined
 #LIBS_c += -fsanitize=undefined
 CONFIG_MBO=y
+
+CONFIG_IAPP=y
index 5c4bbc2..33db463 100644 (file)
@@ -13,7 +13,7 @@ import os
 
 import hwsim_utils
 import hostapd
-from utils import alloc_fail
+from utils import alloc_fail, require_under_vm
 from test_ap_acs import force_prev_ap_on_24g
 
 @remote_compatible
@@ -463,3 +463,44 @@ def test_ap_add_with_driver(dev, apdev):
     dev[0].request("DISCONNECT")
     dev[0].wait_disconnected()
     hapd.disable()
+
+def test_ap_iapp(dev, apdev):
+    """IAPP and multiple BSSes"""
+    require_under_vm()
+    try:
+        _test_ap_iapp(dev, apdev)
+    finally:
+        subprocess.call(['ifconfig', 'br-multicast', 'down'],
+                        stderr=open('/dev/null', 'w'))
+        subprocess.call(['brctl', 'delbr', 'br-multicast'],
+                        stderr=open('/dev/null', 'w'))
+
+def _test_ap_iapp(dev, apdev):
+    br_ifname = 'br-multicast'
+    subprocess.call(['brctl', 'addbr', br_ifname])
+    subprocess.call(['brctl', 'setfd', br_ifname, '0'])
+    subprocess.call(['ip', 'addr', 'add', '10.174.65.206/31', 'dev', br_ifname])
+    subprocess.call(['ip', 'link', 'set', 'dev', br_ifname, 'up'])
+    subprocess.call(['ip', 'route', 'add', '224.0.0.0/4', 'dev', br_ifname])
+
+    params = { "ssid": "test-1",
+               "bridge": br_ifname,
+               "iapp_interface": br_ifname }
+    hapd = hostapd.add_ap(apdev[0], params)
+
+    dev[0].scan_for_bss(apdev[0]['bssid'], freq=2412)
+    dev[0].connect("test-1", key_mgmt="NONE", scan_freq="2412")
+    dev[1].connect("test-1", key_mgmt="NONE", scan_freq="2412")
+
+    hapd2 = hostapd.add_ap(apdev[1], params)
+    dev[0].scan_for_bss(apdev[1]['bssid'], freq=2412)
+    dev[0].roam(apdev[1]['bssid'])
+    dev[0].roam(apdev[0]['bssid'])
+
+    dev[0].request("DISCONNECT")
+    dev[1].request("DISCONNECT")
+    dev[0].wait_disconnected()
+    dev[1].wait_disconnected()
+
+    hapd.disable()
+    hapd2.disable()