3 # P2P autonomous GO test cases
4 # Copyright (c) 2013, Jouni Malinen <j@w1.fi>
6 # This software may be distributed under the terms of the BSD license.
7 # See README for more details.
12 logger = logging.getLogger(__name__)
15 from wlantest import Wlantest
18 logger.info("Start autonomous GO " + go.ifname)
19 res = go.p2p_start_go()
20 logger.debug("res: " + str(res))
22 def connect_cli(go, client):
23 logger.info("Try to connect the client to the GO")
24 pin = client.wps_read_pin()
25 go.p2p_go_authorize_client(pin)
26 client.p2p_connect_group(go.p2p_dev_addr(), pin, timeout=60)
27 logger.info("Client connected")
28 hwsim_utils.test_connectivity_p2p(go, client)
31 """P2P autonomous GO and client joining group"""
33 connect_cli(dev[0], dev[1])
40 def test_autogo_2cli(dev):
41 """P2P autonomous GO and two clients joining group"""
43 connect_cli(dev[0], dev[1])
44 connect_cli(dev[0], dev[2])
45 hwsim_utils.test_connectivity_p2p(dev[1], dev[2])
50 def test_autogo_tdls(dev):
51 """P2P autonomous GO and two clients using TDLS"""
54 logger.info("Start autonomous GO with fixed parameters " + go.ifname)
56 go.set_network_quoted(id, "ssid", "DIRECT-tdls")
57 go.set_network_quoted(id, "psk", "12345678")
58 go.set_network(id, "mode", "3")
59 go.set_network(id, "disabled", "2")
60 res = go.p2p_start_go(persistent=id)
61 logger.debug("res: " + str(res))
63 wt.add_passphrase("12345678")
64 connect_cli(go, dev[1])
65 connect_cli(go, dev[2])
66 hwsim_utils.test_connectivity_p2p(dev[1], dev[2])
67 bssid = dev[0].p2p_interface_addr()
68 addr1 = dev[1].p2p_interface_addr()
69 addr2 = dev[2].p2p_interface_addr()
70 dev[1].tdls_setup(addr2)
72 hwsim_utils.test_connectivity_p2p(dev[1], dev[2])
73 conf = wt.get_tdls_counter("setup_conf_ok", bssid, addr1, addr2);
75 raise Exception("No TDLS Setup Confirm (success) seen")
76 dl = wt.get_tdls_counter("valid_direct_link", bssid, addr1, addr2);
78 raise Exception("No valid frames through direct link")
79 wt.tdls_clear(bssid, addr1, addr2);
80 dev[1].tdls_teardown(addr2)
82 teardown = wt.get_tdls_counter("teardown", bssid, addr1, addr2);
84 raise Exception("No TDLS Setup Teardown seen")
85 wt.tdls_clear(bssid, addr1, addr2);
86 hwsim_utils.test_connectivity_p2p(dev[1], dev[2])
87 ap_path = wt.get_tdls_counter("valid_ap_path", bssid, addr1, addr2);
89 raise Exception("No valid frames via AP path")
90 direct_link = wt.get_tdls_counter("valid_direct_link", bssid, addr1, addr2);
92 raise Exception("Unexpected frames through direct link")
93 idirect_link = wt.get_tdls_counter("invalid_direct_link", bssid, addr1,
96 raise Exception("Unexpected frames through direct link (invalid)")