"""wpa_supplicant open MESH network connectivity"""
return wrap_wpas_mesh_test(_test_wpas_mesh_open_no_auto, dev, apdev)
+def add_mesh_secure_net(dev):
+ id = dev.add_network()
+ dev.set_network(id, "mode", "5")
+ dev.set_network_quoted(id, "ssid", "wpas-mesh-sec")
+ dev.set_network(id, "key_mgmt", "SAE")
+ dev.set_network(id, "frequency", "2412")
+ dev.set_network_quoted(id, "psk", "thisismypassphrase!")
+ return id
def _test_wpas_mesh_secure(dev, apdev, test_connectivity):
dev[0].request("SET sae_groups ")
- id = dev[0].add_network()
- dev[0].set_network(id, "mode", "5")
- dev[0].set_network_quoted(id, "ssid", "wpas-mesh-sec")
- dev[0].set_network(id, "key_mgmt", "SAE")
- dev[0].set_network(id, "frequency", "2412")
- dev[0].set_network_quoted(id, "psk", "thisismypassphrase!")
+ id = add_mesh_secure_net(dev[0])
dev[0].mesh_group_add(id)
dev[1].request("SET sae_groups ")
- id = dev[1].add_network()
- dev[1].set_network(id, "mode", "5")
- dev[1].set_network_quoted(id, "ssid", "wpas-mesh-sec")
- dev[1].set_network(id, "key_mgmt", "SAE")
- dev[1].set_network(id, "frequency", "2412")
- dev[1].set_network_quoted(id, "psk", "thisismypassphrase!")
+ id = add_mesh_secure_net(dev[1])
dev[1].mesh_group_add(id)
# Check for mesh joined
"""wpa_supplicant secure MESH network connectivity"""
return wrap_wpas_mesh_test(_test_wpas_mesh_secure, dev, apdev)
+def test_wpas_mesh_secure_sae_group_mismatch(dev, apdev):
+ """wpa_supplicant secure MESH and SAE group mismatch"""
+ addr0 = dev[0].p2p_interface_addr()
+ addr1 = dev[1].p2p_interface_addr()
+ addr2 = dev[2].p2p_interface_addr()
-def _test_wpas_mesh_secure_no_auto(dev, apdev, test_connectivity):
- dev[0].request("SET sae_groups ")
- id = dev[0].add_network()
- dev[0].set_network(id, "mode", "5")
- dev[0].set_network_quoted(id, "ssid", "wpas-mesh-sec")
- dev[0].set_network(id, "key_mgmt", "SAE")
- dev[0].set_network(id, "frequency", "2412")
- dev[0].set_network_quoted(id, "psk", "thisismypassphrase!")
+ dev[0].request("SET sae_groups 19 25")
+ id = add_mesh_secure_net(dev[0])
dev[0].mesh_group_add(id)
+ dev[1].request("SET sae_groups 19")
+ id = add_mesh_secure_net(dev[1])
+ dev[1].mesh_group_add(id)
+
+ dev[2].request("SET sae_groups 26")
+ id = add_mesh_secure_net(dev[2])
+ dev[2].mesh_group_add(id)
+
+ check_mesh_group_added(dev[0])
+ check_mesh_group_added(dev[1])
+ check_mesh_group_added(dev[2])
+
+ ev = dev[0].wait_event(["MESH-PEER-CONNECTED"])
+ if ev is None:
+ raise Exception("Remote peer did not connect")
+ if addr1 not in ev:
+ raise Exception("Unexpected peer connected: " + ev)
+
+ ev = dev[1].wait_event(["MESH-PEER-CONNECTED"])
+ if ev is None:
+ raise Exception("Remote peer did not connect")
+ if addr0 not in ev:
+ raise Exception("Unexpected peer connected: " + ev)
+
+ ev = dev[2].wait_event(["MESH-PEER-CONNECTED"], timeout=1)
+ if ev is not None:
+ raise Exception("Unexpected peer connection at dev[2]: " + ev)
+
+ ev = dev[0].wait_event(["MESH-PEER-CONNECTED"], timeout=0.1)
+ if ev is not None:
+ raise Exception("Unexpected peer connection: " + ev)
+
+ ev = dev[1].wait_event(["MESH-PEER-CONNECTED"], timeout=0.1)
+ if ev is not None:
+ raise Exception("Unexpected peer connection: " + ev)
+
+ dev[0].request("SET sae_groups ")
dev[1].request("SET sae_groups ")
- id = dev[1].add_network()
- dev[1].set_network(id, "mode", "5")
- dev[1].set_network_quoted(id, "ssid", "wpas-mesh-sec")
- dev[1].set_network(id, "key_mgmt", "SAE")
- dev[1].set_network(id, "frequency", "2412")
- dev[1].set_network_quoted(id, "psk", "thisismypassphrase!")
+ dev[2].request("SET sae_groups ")
+
+def _test_wpas_mesh_secure_no_auto(dev, apdev, test_connectivity):
+ dev[0].request("SET sae_groups 19")
+ id = add_mesh_secure_net(dev[0])
+ dev[0].mesh_group_add(id)
+
+ dev[1].request("SET sae_groups 19")
+ id = add_mesh_secure_net(dev[1])
dev[1].set_network(id, "no_auto_peer", "1")
dev[1].mesh_group_add(id)
# Test connectivity 0->1 and 1->0
test_connectivity(dev[0], dev[1])
+ dev[0].request("SET sae_groups ")
+ dev[1].request("SET sae_groups ")
def test_wpas_mesh_secure_no_auto(dev, apdev):
"""wpa_supplicant secure MESH network connectivity"""