]> git.ipfire.org Git - thirdparty/hostap.git/blame - tests/hwsim/test_ibss.py
tests: Add a test case for IBSS RSN
[thirdparty/hostap.git] / tests / hwsim / test_ibss.py
CommitLineData
fdae3c40
JM
1#!/usr/bin/python
2#
3# IBSS test cases
4# Copyright (c) 2013, Jouni Malinen <j@w1.fi>
5#
6# This software may be distributed under the terms of the BSD license.
7# See README for more details.
8
9import logging
10logger = logging.getLogger(__name__)
11import time
12
13import hwsim_utils
14
15def connect_ibss_cmd(dev, id):
16 dev.dump_monitor()
17 dev.select_network(id)
18
19def wait_ibss_connection(dev):
20 ev = dev.wait_event(["CTRL-EVENT-CONNECTED"], timeout=20)
21 if ev is None:
22 raise Exception("Connection to the IBSS timed out")
23 dev.dump_monitor()
24
25def add_ibss(dev, ssid, psk=None, proto=None, key_mgmt=None, pairwise=None, group=None):
26 id = dev.add_network()
27 dev.set_network(id, "mode", "1")
28 dev.set_network(id, "frequency", "2412")
29 dev.set_network_quoted(id, "ssid", ssid)
30 if psk:
31 dev.set_network_quoted(id, "psk", psk)
32 if proto:
33 dev.set_network(id, "proto", proto)
34 if key_mgmt:
35 dev.set_network(id, "key_mgmt", key_mgmt)
36 if pairwise:
37 dev.set_network(id, "pairwise", pairwise)
38 if group:
39 dev.set_network(id, "group", group)
40 return id
41
42def add_ibss_rsn(dev, ssid):
43 return add_ibss(dev, ssid, "12345678", "RSN", "WPA-PSK", "CCMP", "CCMP")
44
45def test_ibss_rsn(dev):
46 """IBSS RSN"""
47 ssid="ibss-rsn"
48
49 logger.info("Start IBSS on the first STA")
50 id = add_ibss_rsn(dev[0], ssid)
51 connect_ibss_cmd(dev[0], id)
52 wait_ibss_connection(dev[0])
53
54 logger.info("Join two STAs to the IBSS")
55
56 id = add_ibss_rsn(dev[1], ssid)
57 connect_ibss_cmd(dev[1], id)
58
59 id = add_ibss_rsn(dev[2], ssid)
60 connect_ibss_cmd(dev[2], id)
61
62 wait_ibss_connection(dev[1])
63 wait_ibss_connection(dev[2])
64
65 # Allow some time for all peers to complete key setup
66 time.sleep(3)
67 hwsim_utils.test_connectivity(dev[0].ifname, dev[1].ifname)
68 hwsim_utils.test_connectivity(dev[0].ifname, dev[2].ifname)
69 time.sleep(2)
70 hwsim_utils.test_connectivity(dev[1].ifname, dev[2].ifname)