aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSven Eckelmann <sven@narfation.org>2019-07-12 10:48:53 (GMT)
committerJouni Malinen <j@w1.fi>2019-08-13 10:57:50 (GMT)
commitd1fcf34cb5aca8c6896da6abdc71521f326866e7 (patch)
tree075ba8b1f2c4b16fdf330ed0b48458dcf10983da
parent05822609d105f7bf5308a83a2208ad263c7bb10f (diff)
downloadhostap-d1fcf34cb5aca8c6896da6abdc71521f326866e7.zip
hostap-d1fcf34cb5aca8c6896da6abdc71521f326866e7.tar.gz
hostap-d1fcf34cb5aca8c6896da6abdc71521f326866e7.tar.bz2
tests: Fix wlan.mesh.config.cap workaround for test_wpas_mesh_max_peering
The wlan.mesh.config doesn't have to be the last element of beacon. Things like VHT or HE oper/cap are usually follow the mesh configuration element. The workaround must first get the position of a correct reference value in wlan.mesh.config (ps_protocol) and then calculate the correct wlan.mesh.config.cap offset based on that. Reported-by: Johannes Berg <johannes@sipsolutions.net> Fixes: 2cbaf0de223b ("tests: Work around tshark bug in wpas_mesh_max_peering") Signed-off-by: Sven Eckelmann <sven@narfation.org>
-rw-r--r--tests/hwsim/test_wpas_mesh.py15
1 files changed, 14 insertions, 1 deletions
diff --git a/tests/hwsim/test_wpas_mesh.py b/tests/hwsim/test_wpas_mesh.py
index 5b8b166..cb1bb8c 100644
--- a/tests/hwsim/test_wpas_mesh.py
+++ b/tests/hwsim/test_wpas_mesh.py
@@ -877,8 +877,21 @@ def test_wpas_mesh_max_peering(dev, apdev, params):
out = run_tshark_json(capfile, filt + " && wlan.sa == " + addr)
pkts = json.loads(out)
for pkt in pkts:
+ wlan = pkt["_source"]["layers"]["wlan"]
+ if "wlan.tagged.all" not in wlan:
+ continue
+
+ tagged = wlan["wlan.tagged.all"]
+ if "wlan.tag" not in tagged:
+ continue
+
+ wlan_tag = tagged["wlan.tag"]
+ if "wlan.mesh.config.ps_protocol_raw" not in wlan_tag:
+ continue
+
frame = pkt["_source"]["layers"]["frame_raw"][0]
- cap = int(frame[-2:], 16)
+ cap_offset = wlan_tag["wlan.mesh.config.ps_protocol_raw"][1] + 6
+ cap = int(frame[(cap_offset * 2):(cap_offset * 2 + 2)], 16)
if cap & 0x01:
one[idx] += 1
else: