diff mbox

[3/6] tests: Test FT roaming using fixed key and mac as IDs

Message ID 20160919154744.26244-4-benjamin@sipsolutions.net
State Superseded
Headers show

Commit Message

Benjamin Berg Sept. 19, 2016, 3:47 p.m. UTC
From: Benjamin Berg <benjamin.berg@open-mesh.com>

Add tests to ensure that roaming between two APs work fine if they have a
common FT configured but don't have prior knowledge about each others
existance.

Signed-off-by: Benjamin Berg <benjamin.berg@open-mesh.com>
---
 tests/hwsim/test_ap_ft.py | 42 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 42 insertions(+)
diff mbox

Patch

diff --git a/tests/hwsim/test_ap_ft.py b/tests/hwsim/test_ap_ft.py
index bd9b1ab..560b7b9 100644
--- a/tests/hwsim/test_ap_ft.py
+++ b/tests/hwsim/test_ap_ft.py
@@ -46,6 +46,20 @@  def ft_params(rsn=True, ssid=None, passphrase=None):
     params["reassociation_deadline"] = "1000"
     return params
 
+def ft_params_generic1(rsn=True, ssid=None, passphrase=None):
+    params = ft_params(rsn, ssid, passphrase)
+    params['nas_identifier'] = "02:00:00:00:03:00"
+    params['r1_key_holder'] = "020000000300"
+    params['ft_remote_key'] = "000102030405060708090a0b0c0d0e0f"
+    return params
+
+def ft_params_generic2(rsn=True, ssid=None, passphrase=None):
+    params = ft_params(rsn, ssid, passphrase)
+    params['nas_identifier'] = "02:00:00:00:04:00"
+    params['r1_key_holder'] = "020000000400"
+    params['ft_remote_key'] = "000102030405060708090a0b0c0d0e0f"
+    return params
+
 def ft_params1(rsn=True, ssid=None, passphrase=None):
     params = ft_params(rsn, ssid, passphrase)
     params['nas_identifier'] = "nas1.w1.fi"
@@ -162,6 +176,20 @@  def test_ap_ft(dev, apdev):
     if "[WPA2-FT/PSK-CCMP]" not in dev[0].request("SCAN_RESULTS"):
         raise Exception("Scan results missing RSN element info")
 
+def test_ap_ft_generic(dev, apdev):
+    """WPA2-PSK-FT AP unknown remote (fixed key)"""
+    ssid = "test-ft"
+    passphrase="12345678"
+
+    params = ft_params_generic1(ssid=ssid, passphrase=passphrase)
+    hapd0 = hostapd.add_ap(apdev[0]['ifname'], params)
+    params = ft_params_generic2(ssid=ssid, passphrase=passphrase)
+    hapd1 = hostapd.add_ap(apdev[1]['ifname'], params)
+
+    run_roams(dev[0], apdev, hapd0, hapd1, ssid, passphrase)
+    if "[WPA2-FT/PSK-CCMP]" not in dev[0].request("SCAN_RESULTS"):
+        raise Exception("Scan results missing RSN element info")
+
 def test_ap_ft_many(dev, apdev):
     """WPA2-PSK-FT AP multiple times"""
     ssid = "test-ft"
@@ -218,6 +246,20 @@  def test_ap_ft_over_ds(dev, apdev):
     check_mib(dev[0], [ ("dot11RSNAAuthenticationSuiteRequested", "00-0f-ac-4"),
                         ("dot11RSNAAuthenticationSuiteSelected", "00-0f-ac-4") ])
 
+def test_ap_ft_over_ds_generic(dev, apdev):
+    """WPA2-PSK-FT AP over DS with unknown remote (fixed key)"""
+    ssid = "test-ft"
+    passphrase="12345678"
+
+    params = ft_params_generic1(ssid=ssid, passphrase=passphrase)
+    hapd0 = hostapd.add_ap(apdev[0]['ifname'], params)
+    params = ft_params_generic2(ssid=ssid, passphrase=passphrase)
+    hapd1 = hostapd.add_ap(apdev[1]['ifname'], params)
+
+    run_roams(dev[0], apdev, hapd0, hapd1, ssid, passphrase, over_ds=True)
+    check_mib(dev[0], [ ("dot11RSNAAuthenticationSuiteRequested", "00-0f-ac-4"),
+                        ("dot11RSNAAuthenticationSuiteSelected", "00-0f-ac-4") ])
+
 def test_ap_ft_over_ds_many(dev, apdev):
     """WPA2-PSK-FT AP over DS multiple times"""
     ssid = "test-ft"