12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- # 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")
|