tests: TDLS link status test
Add a test case for checking TDLS link status. Signed-off-by: Oren Givon <oren.givon@intel.com>
This commit is contained in:
parent
4504621f9c
commit
2380d80493
2 changed files with 36 additions and 0 deletions
|
@ -147,6 +147,22 @@ def teardown_tdls(sta0, sta1, ap, responder=False, wildcard=False):
|
||||||
tdls_check_ap(sta0, sta1, bssid, addr0, addr1)
|
tdls_check_ap(sta0, sta1, bssid, addr0, addr1)
|
||||||
check_connectivity(sta0, sta1, hapd)
|
check_connectivity(sta0, sta1, hapd)
|
||||||
|
|
||||||
|
def check_tdls_link(sta0, sta1, connected=True):
|
||||||
|
addr0 = sta0.own_addr()
|
||||||
|
addr1 = sta1.own_addr()
|
||||||
|
status0 = sta0.tdls_link_status(addr1).rstrip()
|
||||||
|
status1 = sta1.tdls_link_status(addr0).rstrip()
|
||||||
|
logger.info("%s: %s" % (sta0.ifname, status0))
|
||||||
|
logger.info("%s: %s" % (sta1.ifname, status1))
|
||||||
|
if status0 != status1:
|
||||||
|
raise Exception("TDLS link status differs between stations")
|
||||||
|
if "status: connected" in status0:
|
||||||
|
if not connected:
|
||||||
|
raise Exception("Expected TDLS link status NOT to be connected")
|
||||||
|
else:
|
||||||
|
if connected:
|
||||||
|
raise Exception("Expected TDLS link status to be connected")
|
||||||
|
|
||||||
def test_ap_tdls_discovery(dev, apdev):
|
def test_ap_tdls_discovery(dev, apdev):
|
||||||
"""WPA2-PSK AP and two stations using TDLS discovery"""
|
"""WPA2-PSK AP and two stations using TDLS discovery"""
|
||||||
hapd = start_ap_wpa2_psk(apdev[0]['ifname'])
|
hapd = start_ap_wpa2_psk(apdev[0]['ifname'])
|
||||||
|
@ -375,3 +391,16 @@ def test_tdls_chan_switch(dev, apdev):
|
||||||
raise Exception("Could not disable TDLS channel switching")
|
raise Exception("Could not disable TDLS channel switching")
|
||||||
if "FAIL" not in dev[0].request("TDLS_CANCEL_CHAN_SWITCH " + dev[1].own_addr()):
|
if "FAIL" not in dev[0].request("TDLS_CANCEL_CHAN_SWITCH " + dev[1].own_addr()):
|
||||||
raise Exception("TDLS_CANCEL_CHAN_SWITCH accepted even though channel switching was already disabled")
|
raise Exception("TDLS_CANCEL_CHAN_SWITCH accepted even though channel switching was already disabled")
|
||||||
|
|
||||||
|
def test_ap_tdls_link_status(dev, apdev):
|
||||||
|
"""Check TDLS link status between two stations"""
|
||||||
|
hapd = start_ap_wpa2_psk(apdev[0]['ifname'])
|
||||||
|
wlantest_setup()
|
||||||
|
connect_2sta_wpa2_psk(dev, hapd)
|
||||||
|
check_tdls_link(dev[0], dev[1], connected=False)
|
||||||
|
setup_tdls(dev[0], dev[1], apdev[0])
|
||||||
|
check_tdls_link(dev[0], dev[1], connected=True)
|
||||||
|
teardown_tdls(dev[0], dev[1], apdev[0])
|
||||||
|
check_tdls_link(dev[0], dev[1], connected=False)
|
||||||
|
if "FAIL" not in dev[0].request("TDLS_LINK_STATUS foo"):
|
||||||
|
raise Exception("Unexpected TDLS_LINK_STATUS response for invalid argument")
|
||||||
|
|
|
@ -760,6 +760,13 @@ class WpaSupplicant:
|
||||||
raise Exception("Failed to request TDLS teardown")
|
raise Exception("Failed to request TDLS teardown")
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
def tdls_link_status(self, peer):
|
||||||
|
cmd = "TDLS_LINK_STATUS " + peer
|
||||||
|
ret = self.group_request(cmd)
|
||||||
|
if "FAIL" in ret:
|
||||||
|
raise Exception("Failed to request TDLS link status")
|
||||||
|
return ret
|
||||||
|
|
||||||
def tspecs(self):
|
def tspecs(self):
|
||||||
"""Return (tsid, up) tuples representing current tspecs"""
|
"""Return (tsid, up) tuples representing current tspecs"""
|
||||||
res = self.request("WMM_AC_STATUS")
|
res = self.request("WMM_AC_STATUS")
|
||||||
|
|
Loading…
Reference in a new issue