xref: /freebsd/contrib/wpa/tests/hwsim/test_dpp3.py (revision 32a95656b51ebefcdf3e0b02c110825f59abd26f)
1*32a95656SCy Schubert# Test cases for Device Provisioning Protocol (DPP) version 3
2*32a95656SCy Schubert# Copyright (c) 2021, Qualcomm Innovation Center, Inc.
3*32a95656SCy Schubert#
4*32a95656SCy Schubert# This software may be distributed under the terms of the BSD license.
5*32a95656SCy Schubert# See README for more details.
6*32a95656SCy Schubert
7*32a95656SCy Schubertfrom test_dpp import check_dpp_capab, run_dpp_auto_connect
8*32a95656SCy Schubert
9*32a95656SCy Schubertdef test_dpp_network_intro_version(dev, apdev):
10*32a95656SCy Schubert    """DPP Network Introduction and protocol version"""
11*32a95656SCy Schubert    check_dpp_capab(dev[0], min_ver=3)
12*32a95656SCy Schubert
13*32a95656SCy Schubert    try:
14*32a95656SCy Schubert        id, hapd = run_dpp_auto_connect(dev, apdev, 1, stop_after_prov=True)
15*32a95656SCy Schubert        dev[0].select_network(id, freq=2412)
16*32a95656SCy Schubert        dev[0].wait_connected()
17*32a95656SCy Schubert    finally:
18*32a95656SCy Schubert        dev[0].set("dpp_config_processing", "0", allow_fail=True)
19*32a95656SCy Schubert
20*32a95656SCy Schubertdef test_dpp_network_intro_version_change(dev, apdev):
21*32a95656SCy Schubert    """DPP Network Introduction and protocol version change"""
22*32a95656SCy Schubert    check_dpp_capab(dev[0], min_ver=3)
23*32a95656SCy Schubert
24*32a95656SCy Schubert    try:
25*32a95656SCy Schubert        dev[0].set("dpp_version_override", "2")
26*32a95656SCy Schubert        id, hapd = run_dpp_auto_connect(dev, apdev, 1, stop_after_prov=True)
27*32a95656SCy Schubert        dev[0].set("dpp_version_override", "3")
28*32a95656SCy Schubert        dev[0].select_network(id, freq=2412)
29*32a95656SCy Schubert        dev[0].wait_connected()
30*32a95656SCy Schubert    finally:
31*32a95656SCy Schubert        dev[0].set("dpp_config_processing", "0", allow_fail=True)
32*32a95656SCy Schubert
33*32a95656SCy Schubertdef test_dpp_network_intro_version_missing_req(dev, apdev):
34*32a95656SCy Schubert    """DPP Network Introduction and protocol version missing from request"""
35*32a95656SCy Schubert    check_dpp_capab(dev[0], min_ver=3)
36*32a95656SCy Schubert
37*32a95656SCy Schubert    try:
38*32a95656SCy Schubert        dev[0].set("dpp_version_override", "2")
39*32a95656SCy Schubert        id, hapd = run_dpp_auto_connect(dev, apdev, 1, stop_after_prov=True)
40*32a95656SCy Schubert        dev[0].set("dpp_version_override", "3")
41*32a95656SCy Schubert        dev[0].set("dpp_test", "92")
42*32a95656SCy Schubert        dev[0].select_network(id, freq=2412)
43*32a95656SCy Schubert        ev = dev[0].wait_event(["DPP-INTRO"], timeout=10)
44*32a95656SCy Schubert        if ev is None:
45*32a95656SCy Schubert            raise Exception("DPP network introduction result not seen on STA")
46*32a95656SCy Schubert        if "status=8" not in ev:
47*32a95656SCy Schubert            raise Exception("Unexpected network introduction result on STA: " + ev)
48*32a95656SCy Schubert    finally:
49*32a95656SCy Schubert        dev[0].set("dpp_config_processing", "0", allow_fail=True)
50