tests: AP MLD and RSN overriding with too long elements
Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
This commit is contained in:
parent
d984172189
commit
87c6b322ee
1 changed files with 25 additions and 2 deletions
|
@ -126,7 +126,12 @@ def test_rsn_override_mld_only_sta(dev, apdev):
|
||||||
"""AP MLD and RSN overriding only on STA"""
|
"""AP MLD and RSN overriding only on STA"""
|
||||||
run_rsn_override_mld(dev, apdev, False, only_sta=True)
|
run_rsn_override_mld(dev, apdev, False, only_sta=True)
|
||||||
|
|
||||||
def run_rsn_override_mld(dev, apdev, mixed, only_sta=False):
|
def test_rsn_override_mld_too_long_elems(dev, apdev):
|
||||||
|
"""AP MLD and RSN overriding with too long elements"""
|
||||||
|
run_rsn_override_mld(dev, apdev, False, too_long_elems=True)
|
||||||
|
|
||||||
|
def run_rsn_override_mld(dev, apdev, mixed, only_sta=False,
|
||||||
|
too_long_elems=False):
|
||||||
with HWSimRadio(use_mlo=True) as (hapd_radio, hapd_iface), \
|
with HWSimRadio(use_mlo=True) as (hapd_radio, hapd_iface), \
|
||||||
HWSimRadio(use_mlo=True) as (wpas_radio, wpas_iface):
|
HWSimRadio(use_mlo=True) as (wpas_radio, wpas_iface):
|
||||||
|
|
||||||
|
@ -174,13 +179,31 @@ def run_rsn_override_mld(dev, apdev, mixed, only_sta=False):
|
||||||
hapd0 = eht_mld_enable_ap(hapd_iface, params)
|
hapd0 = eht_mld_enable_ap(hapd_iface, params)
|
||||||
|
|
||||||
params1['channel'] = '6'
|
params1['channel'] = '6'
|
||||||
|
if too_long_elems:
|
||||||
|
params1['rsnoe_override'] = 'ddff506f9a29' + 251*'cc'
|
||||||
hapd1 = eht_mld_enable_ap(hapd_iface, params1)
|
hapd1 = eht_mld_enable_ap(hapd_iface, params1)
|
||||||
|
|
||||||
wpas.set("sae_pwe", "1")
|
wpas.set("sae_pwe", "1")
|
||||||
wpas.set("rsn_overriding", "1")
|
wpas.set("rsn_overriding", "1")
|
||||||
wpas.connect(ssid, sae_password=passphrase, scan_freq="2412 2437",
|
wpas.connect(ssid, sae_password=passphrase, scan_freq="2412 2437",
|
||||||
key_mgmt="SAE-EXT-KEY", ieee80211w="2", beacon_prot="1",
|
key_mgmt="SAE-EXT-KEY", ieee80211w="2", beacon_prot="1",
|
||||||
pairwise="GCMP-256 CCMP")
|
pairwise="GCMP-256 CCMP", wait_connect=not too_long_elems)
|
||||||
|
if too_long_elems:
|
||||||
|
ev = wpas.wait_event(['Associated with'], timeout=10)
|
||||||
|
if ev is None:
|
||||||
|
raise Exception("Association not reported")
|
||||||
|
ev = wpas.wait_event(['EAPOL-RX'], timeout=1)
|
||||||
|
if ev is None:
|
||||||
|
raise Exception("EAPOL-Key M1 not reported")
|
||||||
|
ev = wpas.wait_event(['EAPOL-RX', 'CTRL-EVENT-DISCONNECTED'],
|
||||||
|
timeout=10)
|
||||||
|
if ev is None:
|
||||||
|
raise Exception("Disconnection not reported")
|
||||||
|
# The AP is expected to fail to send M3 due to RSNOE/RSNO2E/RSNXOE
|
||||||
|
# being too long to fit into the RSN Override Link KDE.
|
||||||
|
if 'EAPOL-RX' in ev:
|
||||||
|
raise Exception("Unexpected EAPOL-Key M3 reported")
|
||||||
|
return
|
||||||
|
|
||||||
eht_verify_status(wpas, hapd0, 2412, 20, is_ht=True, mld=True,
|
eht_verify_status(wpas, hapd0, 2412, 20, is_ht=True, mld=True,
|
||||||
valid_links=3, active_links=3)
|
valid_links=3, active_links=3)
|
||||||
|
|
Loading…
Add table
Reference in a new issue