Client Connectivity Tests with WPA3-192 Enterprise (#1080)

* Add new testcases for wpa3-192 security

Signed-off-by: bhargavi-ct <bhargavimamidipaka@candelatech.com>

* Update wpa3-192 testcases in client connectivity

Signed-off-by: bhargavi-ct <bhargavimamidipaka@candelatech.com>

* Add wpa3-192 in encryption lookup in controller.py

Signed-off-by: bhargavi-ct <bhargavimamidipaka@candelatech.com>

* Add wpa3-192 enterprise testcases in sanity suite

Signed-off-by: bhargavi-ct <bhargavimamidipaka@candelatech.com>

* Add wpa3-192 testcases for NAT mode

Signed-off-by: bhargavi-ct <bhargavimamidipaka@candelatech.com>

* Update wpa3-192 NAT mode testcases

Signed-off-by: bhargavi-ct <bhargavimamidipaka@candelatech.com>

* Add wpa3-192 NAT mode testcases in sanity

Signed-off-by: bhargavi-ct <bhargavimamidipaka@candelatech.com>

* Add ow_regression_lf marker to wpa3-192 enterprise test cases

Signed-off-by: bhargavi-ct <bhargavimamidipaka@candelatech.com>

* Update sub_suite_name for wpa3-192 testcases

Signed-off-by: bhargavi-ct <bhargavimamidipaka@candelatech.com>

---------

Signed-off-by: bhargavi-ct <bhargavimamidipaka@candelatech.com>
Co-authored-by: bhargavi-ct <bhargavimamidipaka@candelatech.com>
This commit is contained in:
bhargavi-ct
2025-12-02 10:37:53 +05:30
committed by GitHub
parent aeae2ca43d
commit 4ff0ea24db
4 changed files with 272 additions and 8 deletions

View File

@@ -2587,7 +2587,8 @@ class UProfileUtility:
"wpa2": "eap",
"wpa3": "eap",
"wpa-mixed": "eap",
"wpa3-mixed": "sae"
"wpa3-mixed": "sae",
"wpa3-192": "eap"
}
if encryption in encryption_mapping.keys():
return encryption_mapping[encryption]

View File

@@ -250,7 +250,7 @@ def get_security_flags():
"""used to get the essential markers on security and band"""
# Add more classifications as we go
security = ["open", "wpa", "wep", "wpa2_personal", "wpa3_personal", "wpa3_personal_mixed",
"wpa_wpa2_enterprise_mixed", "wpa2_eap", "wpa2_only_eap",
"wpa_wpa2_enterprise_mixed", "wpa2_eap", "wpa2_only_eap", "wpa3_enterprise_192",
"wpa_wpa2_personal_mixed", "wpa_enterprise", "wpa2_enterprise", "wpa3_enterprise_mixed",
"wpa3_enterprise", "twog", "fiveg", "sixg", "fiveg_lower", "fiveg_upper", "radius", "owe", "owe_transition"]
yield security

View File

@@ -344,4 +344,136 @@ class TestBridgeModeEnterpriseTTLSSuiteTwo(object):
identity=identity, num_sta=num_stations,
dut_data=setup_configuration)
assert passes == "PASS", result
# Wpa3-192
setup_params_enterprise= {
"mode": "BRIDGE",
"ssid_modes": {
"wpa3_enterprise_192": [
{"ssid_name": "OpenWifi_wpa3192_2g", "appliedRadios": ["2G"]},
{"ssid_name": "OpenWifi_wpa3192_5g", "appliedRadios": ["5G"]},
{"ssid_name": "OpenWifi_wpa3192_6g", "appliedRadios": ["6G"]}],
},
"rf": {
"2G": {
"band": "2G",
"channel": 6,
"channel-width": 20 }
,
"5G": {
"band": "5G",
"channel": 36,
"channel-width": 80 }
,
"6G": {
"band": "6G",
"channel": 33,
"channel-width": 320 }
},
"radius": True,
}
@allure.parent_suite("Client Connectivity Tests")
@allure.feature("Client Connectivity")
@allure.suite(suite_name="BRIDGE Mode")
@allure.sub_suite(sub_suite_name="WPA3-192 Enterprise Client Connectivity")
@pytest.mark.parametrize(
'setup_configuration',
[setup_params_enterprise],
indirect=True,
scope="class"
)
@pytest.mark.ow_regression_lf
@pytest.mark.usefixtures("setup_configuration")
@pytest.mark.wpa3_enterprise_192
class TestBridgeModeEnterpriseTTLSSuiteA(object):
""" SuiteA Enterprise Test Cases
pytest -m "client_connectivity_tests and bridge and enterprise and ttls and suiteA"
"""
@pytest.mark.sixg
@pytest.mark.twog
@allure.title("Test for wpa3-192 enterprise 6 GHz")
def test_wpa3_192_enterprise_6g(self, get_test_library, get_dut_logs_per_test_case, get_test_device_logs,
get_target_object, num_stations, setup_configuration, check_connectivity, radius_info):
"""
wpa3-192 enterprise 6g
pytest -m "client_connectivity_tests and bridge and ttls and wpa3_enterprise_192 and sixg"
"""
profile_data = {"ssid_name": "OpenWifi_wpa3192_6g", "appliedRadios": ["6G"]}
ssid_name = profile_data["ssid_name"]
security = "wpa3"
mode = "BRIDGE"
band = "sixg"
ttls_passwd = radius_info["password"]
eap = "TTLS"
identity = radius_info['user']
key_mgmt = "WPA-EAP-SUITE-B-192"
passes, result = get_test_library.enterprise_client_connectivity_test(ssid=ssid_name, security=security,
mode=mode, band=band, eap=eap,
ttls_passwd=ttls_passwd,
identity=identity, num_sta=num_stations,
dut_data=setup_configuration,
ieee80211w=2, pairwise="GCMP-256",
group="GCMP-256",
key_mgmt=key_mgmt)
assert passes == "PASS", result
@pytest.mark.fiveg
@allure.title("Test for wpa3-192 enterprise 5 GHz")
def test_wpa3_192_enterprise_5g(self, get_test_library, get_dut_logs_per_test_case, get_test_device_logs,
get_target_object, num_stations, setup_configuration, check_connectivity, radius_info):
"""
wpa3-192 enterprise 5g
pytest -m "client_connectivity_tests and bridge and ttls and wpa3_enterprise_192 and fiveg"
"""
profile_data = {"ssid_name": "OpenWifi_wpa3192_5g", "appliedRadios": ["5G"]}
ssid_name = profile_data["ssid_name"]
security = "wpa3"
mode = "BRIDGE"
band = "fiveg"
ttls_passwd = radius_info["password"]
eap = "TTLS"
identity = radius_info['user']
key_mgmt = "WPA-EAP-SUITE-B-192"
passes, result = get_test_library.enterprise_client_connectivity_test(ssid=ssid_name, security=security,
mode=mode, band=band, eap=eap,
ttls_passwd=ttls_passwd,
identity=identity, num_sta=num_stations,
dut_data=setup_configuration,
ieee80211w=2, pairwise="GCMP-256",
group="GCMP-256",
key_mgmt=key_mgmt)
assert passes == "PASS", result
@pytest.mark.twog
@allure.title("Test for wpa3-192 enterprise 2 GHz")
def test_wpa3_192_enterprise_2g(self, get_test_library, get_dut_logs_per_test_case, get_test_device_logs,
get_target_object, num_stations, setup_configuration, check_connectivity, radius_info):
"""
wpa3-192 enterprise 2g
pytest -m "client_connectivity_tests and bridge and ttls and wpa3_enterprise_192 and twog and not sixg"
"""
profile_data = {"ssid_name": "OpenWifi_wpa3192_2g", "appliedRadios": ["2G"]}
ssid_name = profile_data["ssid_name"]
security = "wpa3"
mode = "BRIDGE"
band = "twog"
ttls_passwd = radius_info["password"]
eap = "TTLS"
identity = radius_info['user']
key_mgmt = "WPA-EAP-SUITE-B-192"
passes, result = get_test_library.enterprise_client_connectivity_test(ssid=ssid_name, security=security,
mode=mode, band=band, eap=eap,
ttls_passwd=ttls_passwd,
identity=identity, num_sta=num_stations,
dut_data=setup_configuration,
ieee80211w=2, pairwise="GCMP-256",
group="GCMP-256",
key_mgmt=key_mgmt)
assert passes == "PASS", result

View File

@@ -8,7 +8,7 @@ import allure
import pytest
pytestmark = [pytest.mark.client_connectivity_tests, pytest.mark.nat, pytest.mark.enterprise, pytest.mark.ttls,
pytest.mark.ucentral, pytest.mark.sanity, pytest.mark.uc_sanity, pytest.mark.ow_sanity_lf]
pytest.mark.ucentral, pytest.mark.sanity, pytest.mark.uc_sanity]
setup_params_enterprise = {
"mode": "NAT",
@@ -27,7 +27,7 @@ setup_params_enterprise = {
"radius": True
}
@pytest.mark.ow_sanity_lf
@allure.parent_suite("Client Connectivity Tests")
@allure.feature("Client Connectivity")
@allure.suite(suite_name="NAT Mode")
@@ -221,7 +221,7 @@ setup_params_enterprise_two = {
"radius": True
}
@pytest.mark.ow_sanity_lf
@allure.parent_suite("Client Connectivity Tests")
@allure.feature("Client Connectivity")
@allure.suite(suite_name="NAT Mode")
@@ -233,7 +233,7 @@ setup_params_enterprise_two = {
scope="class"
)
@pytest.mark.usefixtures("setup_configuration")
class TestNATModeEnterpriseTTLSSuiteTwo(object):
class TestNATModeEnterpriseTTLSSuiteOne(object):
""" SuiteA Enterprise Test Cases
pytest -m "client_connectivity_tests and nat and enterprise and ttls and suiteB"
"""
@@ -365,6 +365,7 @@ setup_params_enterprise_6G = {
},
"radius": True
}
@pytest.mark.ow_sanity_lf
@allure.parent_suite("Client Connectivity Tests")
@allure.feature("Client Connectivity")
@allure.suite(suite_name="NAT Mode")
@@ -378,9 +379,9 @@ setup_params_enterprise_6G = {
@pytest.mark.usefixtures("setup_configuration")
@pytest.mark.wpa3_enterprise
@pytest.mark.twog
class TestNATModeEnterpriseTTLSSuiteC(object):
class TestNATModeEnterpriseTTLSSuiteTwo(object):
""" SuiteC Enterprise Test Cases
pytest -m "client_connectivity_tests and nat and enterprise and ttls and suiteC"
pytest -m "client_connectivity_tests and nat and enterprise and ttls and suiteB"
"""
@pytest.mark.wpa3_enterprise
@@ -410,3 +411,133 @@ class TestNATModeEnterpriseTTLSSuiteC(object):
key_mgmt="WPA-EAP-SHA256")
assert passes == "PASS", result
# Wpa3-192
setup_params_enterprise= {
"mode": "NAT",
"ssid_modes": {
"wpa3_enterprise_192": [
{"ssid_name": "OpenWifi_wpa3192_2g", "appliedRadios": ["2G"]},
{"ssid_name": "OpenWifi_wpa3192_5g", "appliedRadios": ["5G"]},
{"ssid_name": "OpenWifi_wpa3192_6g", "appliedRadios": ["6G"]}],
},
"rf": {
"2G": {
"band": "2G",
"channel": 6,
"channel-width": 20 }
,
"5G": {
"band": "5G",
"channel": 36,
"channel-width": 80 }
,
"6G": {
"band": "6G",
"channel": 33,
"channel-width": 320 }
},
"radius": True,
}
@pytest.mark.ow_regression_lf
@allure.parent_suite("Client Connectivity Tests")
@allure.feature("Client Connectivity")
@allure.suite(suite_name="NAT Mode")
@allure.sub_suite(sub_suite_name="WPA3-192 Enterprise Client Connectivity")
@pytest.mark.parametrize(
'setup_configuration',
[setup_params_enterprise],
indirect=True,
scope="class"
)
@pytest.mark.usefixtures("setup_configuration")
@pytest.mark.wpa3_enterprise_192
class TestNATModeEnterpriseTTLSSuiteC(object):
""" SuiteA Enterprise Test Cases
pytest -m "client_connectivity_tests and nat and enterprise and ttls and suiteA"
"""
@pytest.mark.sixg
@pytest.mark.twog
@allure.title("Test for wpa3-192 enterprise 6 GHz")
def test_wpa3_192_enterprise_6g(self, get_test_library, get_dut_logs_per_test_case, get_test_device_logs,
get_target_object, num_stations, setup_configuration, check_connectivity, radius_info):
"""
wpa3 enterprise 6g
pytest -m "client_connectivity_tests and nat and ttls and wpa3_enterprise_192 and sixg"
"""
profile_data = {"ssid_name": "OpenWifi_wpa3192_6g", "appliedRadios": ["6G"]}
ssid_name = profile_data["ssid_name"]
security = "wpa3"
mode = "NAT-WAN"
band = "sixg"
ttls_passwd = radius_info["password"]
eap = "TTLS"
identity = radius_info['user']
key_mgmt = "WPA-EAP-SUITE-B-192"
passes, result = get_test_library.enterprise_client_connectivity_test(ssid=ssid_name, security=security,
mode=mode, band=band, eap=eap,
ttls_passwd=ttls_passwd,
identity=identity, num_sta=num_stations,
dut_data=setup_configuration,
ieee80211w=2, pairwise="GCMP-256",
group="GCMP-256",
key_mgmt=key_mgmt)
assert passes == "PASS", result
@pytest.mark.fiveg
@allure.title("Test for wpa3-192 enterprise 5 GHz")
def test_wpa3_192_enterprise_5g(self, get_test_library, get_dut_logs_per_test_case, get_test_device_logs,
get_target_object, num_stations, setup_configuration, check_connectivity, radius_info):
"""
wpa3 enterprise 5g
pytest -m "client_connectivity_tests and nat and ttls and wpa3_enterprise_192 and fiveg"
"""
profile_data = {"ssid_name": "OpenWifi_wpa3192_5g", "appliedRadios": ["5G"]}
ssid_name = profile_data["ssid_name"]
security = "wpa3"
mode = "NAT-WAN"
band = "fiveg"
ttls_passwd = radius_info["password"]
eap = "TTLS"
identity = radius_info['user']
key_mgmt = "WPA-EAP-SUITE-B-192"
passes, result = get_test_library.enterprise_client_connectivity_test(ssid=ssid_name, security=security,
mode=mode, band=band, eap=eap,
ttls_passwd=ttls_passwd,
identity=identity, num_sta=num_stations,
dut_data=setup_configuration,
ieee80211w=2, pairwise="GCMP-256",
group="GCMP-256",
key_mgmt=key_mgmt)
assert passes == "PASS", result
@pytest.mark.twog
@allure.title("Test for wpa3-192 enterprise 2 GHz")
def test_wpa3_192_enterprise_2g(self, get_test_library, get_dut_logs_per_test_case, get_test_device_logs,
get_target_object, num_stations, setup_configuration, check_connectivity, radius_info):
"""
wpa3 enterprise 2g
pytest -m "client_connectivity_tests and nat and ttls and wpa3_enterprise_192 and twog and not sixg"
"""
profile_data = {"ssid_name": "OpenWifi_wpa3192_2g", "appliedRadios": ["2G"]}
ssid_name = profile_data["ssid_name"]
security = "wpa3"
mode = "NAT-WAN"
band = "twog"
ttls_passwd = radius_info["password"]
eap = "TTLS"
identity = radius_info['user']
key_mgmt = "WPA-EAP-SUITE-B-192"
passes, result = get_test_library.enterprise_client_connectivity_test(ssid=ssid_name, security=security,
mode=mode, band=band, eap=eap,
ttls_passwd=ttls_passwd,
identity=identity, num_sta=num_stations,
dut_data=setup_configuration,
ieee80211w=2, pairwise="GCMP-256",
group="GCMP-256",
key_mgmt=key_mgmt)
assert passes == "PASS", result