77 lines
2.5 KiB
Python
77 lines
2.5 KiB
Python
![]() |
# Test cases for wpa_supplicant WMM-AC operations
|
||
|
# Copyright (c) 2014, Intel Corporation
|
||
|
#
|
||
|
# This software may be distributed under the terms of the BSD license.
|
||
|
# See README for more details.
|
||
|
|
||
|
import logging
|
||
|
logger = logging.getLogger()
|
||
|
|
||
|
import hwsim_utils
|
||
|
import hostapd
|
||
|
|
||
|
def add_wmm_ap(apdev, acm_list):
|
||
|
params = { "ssid": "wmm_ac",
|
||
|
"hw_mode": "g",
|
||
|
"channel": "11",
|
||
|
"wmm_enabled" : "1"}
|
||
|
|
||
|
for ac in acm_list:
|
||
|
params["wmm_ac_%s_acm" % (ac.lower())] = "1"
|
||
|
|
||
|
return hostapd.add_ap(apdev[0]['ifname'], params)
|
||
|
|
||
|
def test_tspec(dev, apdev):
|
||
|
"""Basic addts/delts tests"""
|
||
|
# configure ap with VO and VI requiring admission-control
|
||
|
hapd = add_wmm_ap(apdev, ["VO", "VI"])
|
||
|
dev[0].connect("wmm_ac", key_mgmt="NONE", scan_freq="2462")
|
||
|
hwsim_utils.test_connectivity(dev[0], hapd)
|
||
|
status = dev[0].request("WMM_AC_STATUS")
|
||
|
if "WMM AC is Enabled" not in status:
|
||
|
raise Exception("WMM-AC not enabled")
|
||
|
if "TSID" in status:
|
||
|
raise Exception("Unexpected TSID info")
|
||
|
if "BK: acm=0 uapsd=0" not in status:
|
||
|
raise Exception("Unexpected BK info" + status)
|
||
|
if "BE: acm=0 uapsd=0" not in status:
|
||
|
raise Exception("Unexpected BE info" + status)
|
||
|
if "VI: acm=1 uapsd=0" not in status:
|
||
|
raise Exception("Unexpected VI info" + status)
|
||
|
if "VO: acm=1 uapsd=0" not in status:
|
||
|
raise Exception("Unexpected VO info" + status)
|
||
|
|
||
|
tsid = 5
|
||
|
|
||
|
# make sure we fail when the ac is not configured for acm
|
||
|
try:
|
||
|
dev[0].add_ts(tsid, 3)
|
||
|
raise Exception("ADDTS succeeded although it should have failed")
|
||
|
except Exception, e:
|
||
|
if not str(e).startswith("ADDTS failed"):
|
||
|
raise
|
||
|
status = dev[0].request("WMM_AC_STATUS")
|
||
|
if "TSID" in status:
|
||
|
raise Exception("Unexpected TSID info")
|
||
|
|
||
|
# add tspec for UP=6
|
||
|
dev[0].add_ts(tsid, 6)
|
||
|
status = dev[0].request("WMM_AC_STATUS")
|
||
|
if "TSID" not in status:
|
||
|
raise Exception("Missing TSID info")
|
||
|
|
||
|
# using the same tsid for a different ac is invalid
|
||
|
try:
|
||
|
dev[0].add_ts(tsid, 5)
|
||
|
raise Exception("ADDTS succeeded although it should have failed")
|
||
|
except Exception, e:
|
||
|
if not str(e).startswith("ADDTS failed"):
|
||
|
raise
|
||
|
|
||
|
# update the tspec for a different UP of the same ac
|
||
|
dev[0].add_ts(tsid, 7)
|
||
|
dev[0].del_ts(tsid)
|
||
|
status = dev[0].request("WMM_AC_STATUS")
|
||
|
if "TSID" in status:
|
||
|
raise Exception("Unexpected TSID info")
|