diff --git a/tests/e2e/basic/validation_of_operating_modes/client_isolation/test_client_isolation.py b/tests/e2e/basic/validation_of_operating_modes/client_isolation/test_client_isolation.py index c3cc6cad6..9f7bdfc33 100644 --- a/tests/e2e/basic/validation_of_operating_modes/client_isolation/test_client_isolation.py +++ b/tests/e2e/basic/validation_of_operating_modes/client_isolation/test_client_isolation.py @@ -1,12 +1,25 @@ """ - Test Client Isolation: Bridge Mode - pytest -m client_isolation +Testplan: +Client Isolation is feature that isolates clients only with in the same SSID, Thereby +adding level of security to the users connected to the same SSID. However, we are able +to ping the Stations from other SSID’s + +Any user knowing the Password to the SSID can connect to network and gain the privileges +with in the network. If the user is a malicious user it is a threat to other users in +the same network. Client isolation feature isolates every client connected to the SSID +adding a level of security against attacks and threats to others users in the same SSID. + +In this Test plan we have covered various scenarios and test working of the feature. + +Mode: Bridge + +Marker: pytest -m "wpa2_personal and bridge and client_isolation" """ import allure import pytest -pytestmark = [pytest.mark.ow_regression_lf, pytest.mark.client_isolation, pytest.mark.bridge] +pytestmark = [pytest.mark.ow_regression_lf, pytest.mark.wpa2_personal, pytest.mark.client_isolation, pytest.mark.bridge] setup_params_general = { "mode": "BRIDGE", @@ -53,25 +66,36 @@ setup_params_general = { indirect=True, scope="class" ) -@allure.feature("BRIDGE MODE CLIENT ISOLATION") -@allure.parent_suite("CLIENT ISOLATION") -@allure.suite(suite_name="BRIDGE MODE") -@allure.sub_suite(sub_suite_name="Test Client Isolation Enabled SSIDs") +@allure.feature("Bridge Mode Client Isolation") +@allure.parent_suite("Client Isolation") +@allure.suite(suite_name="Bridge") +@allure.sub_suite(sub_suite_name="Client Isolation-Enabled SSIDs") @pytest.mark.usefixtures("setup_configuration") @pytest.mark.ci_enabled class TestClientIsolationEnabled(object): """ Test Config with Enabling Client Isolation in SSIDs - pytest -m "client_isolation and ci_enabled and bridge" + pytest -m "wpa2_personal and bridge and client_isolation and ci_enabled" """ - @pytest.mark.wpa2_personal + @pytest.mark.one_of_each @pytest.mark.fiveg - @pytest.mark.ci_enabled_in_5g_ssid - @allure.title("Verify the connectivity of 2 clients connected to the different SSID by enabling the client " - "isolation in both the SSID's.(5Ghz)") + @pytest.mark.ci_different_ssid + @allure.title("2 Clients connected to different SSIDs, CI is Enabled on both 5G SSIDs") @allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-10610", name="WIFI-10610") - def test_client_isolation_enabled_ssid_5g(self, setup_configuration, get_test_library, num_stations, - get_test_device_logs, get_dut_logs_per_test_case, check_connectivity): + def test_client_isolation_enabled_ssids_5g(self, setup_configuration, get_test_library, num_stations, + get_test_device_logs, get_dut_logs_per_test_case, check_connectivity): + """ + Description: + Client Isolation is feature that isolates clients only within the same SSID, + Thereby adding level of security to the users connected to the same SSID. + However, we are able to ping the Stations from other SSIDs. + + This testcase is to verify that the clients connected to the different SSIDs + (with client isolation enabled on both) are not isolated when + both the clients are on 5GHz band. + + Markers: client_isolation and wpa2_personal and bridge and ci_enabled and fiveg and ci_different_ssid + """ profile_data = {"ssid_name": "ci_enabled_wpa2_ssid1_5g", "appliedRadios": ["5G"], "security_key": "OpenWifi"} ssid_name1 = profile_data["ssid_name"] @@ -80,59 +104,78 @@ class TestClientIsolationEnabled(object): security_key = profile_data["security_key"] security = "wpa2" mode = "BRIDGE" - band = "fiveg" - result, description = get_test_library.client_isolation(ssid1=ssid_name1, ssid2=ssid_name2, + result, information = get_test_library.client_isolation(ssid1=ssid_name1, ssid2=ssid_name2, passkey=security_key, - security=security, mode=mode, band_2g=None, - band_5g=band, + security=security, mode=mode, + band_5g=True, dut_data=setup_configuration, num_sta=2, side_a_min_rate=6291456, side_a_max_rate=0, - side_b_min_rate=6291456,side_b_max_rate=0, - sniff_radio=True) - if not result: - assert False, description + side_b_min_rate=6291456, side_b_max_rate=0) + if result is False: + pytest.fail(information) else: - assert True, description + if information["drop_a"] == 100 or information["drop_b"] == 100: + pytest.fail("It was expected that the traffic would run between the endpoints as the stations were " + "connected to different SSIDs.") + assert True - @pytest.mark.wpa2_personal @pytest.mark.twog - @pytest.mark.ci_enabled_in_2g_ssid - @allure.title("Run traffic between eth2 port (AP) and station (with client isolation enabled) -2.4GHz") + @pytest.mark.between_eth_client + @allure.title("Traffic run between WAN port (AP) and station, CI is Enabled on 2G") @allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-10620", name="WIFI-10620") def test_client_isolation_enabled_with_2g(self, setup_configuration, get_test_library, num_stations, - get_test_device_logs, get_dut_logs_per_test_case, check_connectivity): + get_test_device_logs, get_dut_logs_per_test_case, check_connectivity): + """ + Description: + Client Isolation is feature that isolates clients only within the same SSID, + Thereby adding level of security to the users connected to the same SSID. + However, we are able to ping the Stations from other SSIDs. + + This testcase is to verify that the endpoints (a station and a wan port) + (with client isolation enabled) are not isolated when + the station is on 2.4GHz band. + + Markers: client_isolation and wpa2_personal and bridge and ci_enabled and twog and between_eth_client + """ profile_data = {"ssid_name": "ci_enabled_wpa2_ssid1_2g", "appliedRadios": ["2G"], "security_key": "OpenWifi"} ssid_name = profile_data["ssid_name"] security_key = profile_data["security_key"] security = "wpa2" mode = "BRIDGE" - band = "twog" - result, description = get_test_library.client_isolation(ssid1=ssid_name, ssid2=None, + result, information = get_test_library.client_isolation(ssid1=ssid_name, ssid2=None, passkey=security_key, - security=security, mode=mode, band_2g=band, - band_5g=None, + security=security, mode=mode, band_2g=True, dut_data=setup_configuration, num_sta=1, side_a_min_rate=6291456, side_a_max_rate=0, - side_b_min_rate=6291456, side_b_max_rate=0, - sniff_radio=True) - if not result: - assert False, description + side_b_min_rate=6291456, side_b_max_rate=0) + if result is False: + pytest.fail(information) else: - assert True, description + if information["drop_a"] == 100 or information["drop_b"] == 100: + pytest.fail("It is expected that the traffic would run between the WAN port and any station.") + assert True - - # clients_connected to different ssid, enabling isolation in both(2.4GH) - @pytest.mark.wpa2_personal @pytest.mark.twog - @pytest.mark.ci_ebabled_in_2g - @allure.title("Verify the connectivity of 2 clients connected to the different SSID by enabling the client " - "isolation in both the SSID's.(2.4Ghz)") - @allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-10602",name="WIFI-10602") + @pytest.mark.ci_different_ssid + @allure.title("2 Clients connected to different SSIDs, CI is Enabled on both 2G SSIDs") + @allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-10602", name="WIFI-10602") def test_client_isolation_enabled_ssids_2g(self, setup_configuration, get_test_library, num_stations, - get_test_device_logs, get_dut_logs_per_test_case, check_connectivity): + get_test_device_logs, get_dut_logs_per_test_case, check_connectivity): + """ + Description: + Client Isolation is feature that isolates clients only within the same SSID, + Thereby adding level of security to the users connected to the same SSID. + However, we are able to ping the Stations from other SSIDs. + + This testcase is to verify that the clients connected to the different SSIDs + (with client isolation enabled on both) are not isolated when + both the clients are on 2.4GHz band. + + Markers: client_isolation and wpa2_personal and bridge and ci_enabled and twog and ci_different_ssid + """ profile_data = {"ssid_name": "ci_enabled_wpa2_ssid1_2g", "appliedRadios": ["2G"], "security_key": "OpenWifi"} ssid_name1 = profile_data["ssid_name"] @@ -141,50 +184,59 @@ class TestClientIsolationEnabled(object): security_key = profile_data["security_key"] security = "wpa2" mode = "BRIDGE" - band = "twog" - result, description = get_test_library.client_isolation(ssid1=ssid_name1, ssid2=ssid_name2, + result, information = get_test_library.client_isolation(ssid1=ssid_name1, ssid2=ssid_name2, passkey=security_key, - security=security, mode=mode, band_2g=band, - band_5g=None, + security=security, mode=mode, band_2g=True, dut_data=setup_configuration, num_sta=2, side_a_min_rate=6291456, side_a_max_rate=0, - side_b_min_rate=6291456, side_b_max_rate=0, - sniff_radio=True) - if not result: - assert False, description + side_b_min_rate=6291456, side_b_max_rate=0) + if result is False: + pytest.fail(information) else: - assert True, description + if information["drop_a"] == 100 or information["drop_b"] == 100: + pytest.fail("It was expected that the traffic would run between the endpoints as the stations were " + "connected to different SSIDs.") + assert True - - # Running traffic between eth2 to station with client-isolation enabled in (5GH) ssid - @pytest.mark.wpa2_personal @pytest.mark.fiveg - @pytest.mark.eth_to_5g_station_true - @allure.title("Run traffic between eth2 port (AP) and station (with client isolation enabled) -5GHz") + @pytest.mark.between_eth_client + @allure.title("Traffic run between WAN port (AP) and station, CI is Enabled on 5G") @allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-10621", name="WIFI-10621") def test_client_isolation_enabled_with_5g(self, setup_configuration, get_test_library, num_stations, - get_test_device_logs, get_dut_logs_per_test_case, check_connectivity): + get_test_device_logs, get_dut_logs_per_test_case, check_connectivity): + """ + Description: + Client Isolation is feature that isolates clients only within the same SSID, + Thereby adding level of security to the users connected to the same SSID. + However, we are able to ping the Stations from other SSIDs. + + This testcase is to verify that the endpoints (a station and a wan port) + (with client isolation enabled) are not isolated when + the station is on 5GHz band. + + Markers: client_isolation and wpa2_personal and bridge and ci_enabled and fiveg and between_eth_client + """ profile_data = {"ssid_name": "ci_enabled_wpa2_ssid1_5g", "appliedRadios": ["5G"], "security_key": "OpenWifi"} ssid_name = profile_data["ssid_name"] security_key = profile_data["security_key"] security = "wpa2" mode = "BRIDGE" - band ="fiveg" - result, description = get_test_library.client_isolation(ssid1=ssid_name, ssid2=None, + result, information = get_test_library.client_isolation(ssid1=ssid_name, ssid2=None, passkey=security_key, - security=security, mode=mode, band_2g=None, - band_5g=band, + security=security, mode=mode, + band_5g=True, dut_data=setup_configuration, num_sta=1, side_a_min_rate=6291456, side_a_max_rate=0, - side_b_min_rate=6291456, side_b_max_rate=0, - sniff_radio=True) - if not result: - assert False, description + side_b_min_rate=6291456, side_b_max_rate=0) + if result is False: + pytest.fail(information) else: - assert True, description + if information["drop_a"] == 100 or information["drop_b"] == 100: + pytest.fail("It is expected that the traffic would run between the WAN port and any station.") + assert True setup_params_general1 = { @@ -232,25 +284,35 @@ setup_params_general1 = { indirect=True, scope="class" ) -@allure.feature("BRIDGE MODE CLIENT ISOLATION") -@allure.parent_suite("CLIENT ISOLATION") -@allure.suite(suite_name="BRIDGE MODE") -@allure.sub_suite(sub_suite_name="Test Client Isolation Disabled SSIDs") +@allure.feature("Bridge Mode Client Isolation") +@allure.parent_suite("Client Isolation") +@allure.suite(suite_name="Bridge") +@allure.sub_suite(sub_suite_name="Client Isolation-Disabled SSIDs") @pytest.mark.usefixtures("setup_configuration") @pytest.mark.ci_disabled class TestClientIsolationDisabled(object): """ - Test Config with Enabling Client Isolation in SSIDs - pytest -m "client_isolation and ci_disabled and bridge" + Test Config with Disabling Client Isolation in SSIDs + pytest -m "wpa2_personal and bridge and client_isolation and ci_disabled" """ - @pytest.mark.wpa2_personal @pytest.mark.twog - @pytest.mark.ci_disabled_in_2g_ssid - @allure.title("Verify the connectivity of 2 clients connected to the different SSID disabling the client " - "isolation(2.4Ghz)") + @pytest.mark.ci_different_ssid + @allure.title("2 Clients connected to different SSIDs, CI is Disabled on both 2G SSIDs") @allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-10603", name="WIFI-10603") def test_client_isolation_disabled_ssids_2g(self, setup_configuration, get_test_library, num_stations, - get_test_device_logs, get_dut_logs_per_test_case, check_connectivity): + get_test_device_logs, get_dut_logs_per_test_case, check_connectivity): + """ + Description: + Client Isolation is feature that isolates clients only within the same SSID, + Thereby adding level of security to the users connected to the same SSID. + However, we are able to ping the Stations from other SSIDs. + + This testcase is to verify that the clients connected to the different SSIDs + (with client isolation disabled on both) are not isolated when + both the clients are on 2.4GHz band. + + Markers: client_isolation and wpa2_personal and bridge and ci_disabled and twog and ci_different_ssid + """ profile_data = {"ssid_name": "ci_disabled_wpa2_ssid1_2g", "appliedRadios": ["2G"], "security_key": "OpenWifi"} ssid_name1 = profile_data["ssid_name"] @@ -259,58 +321,78 @@ class TestClientIsolationDisabled(object): security_key = profile_data["security_key"] security = "wpa2" mode = "BRIDGE" - band = "twog" - result, description = get_test_library.client_isolation(ssid1=ssid_name1, ssid2=ssid_name2, + result, information = get_test_library.client_isolation(ssid1=ssid_name1, ssid2=ssid_name2, passkey=security_key, - security=security, mode=mode, band_2g=band, - band_5g=None, + security=security, mode=mode, band_2g=True, dut_data=setup_configuration, num_sta=2, side_a_min_rate=6291456, side_a_max_rate=0, - side_b_min_rate=6291456, side_b_max_rate=0, - sniff_radio=True) - if not result: - assert False, description + side_b_min_rate=6291456, side_b_max_rate=0) + if result is False: + pytest.fail(information) else: - assert True, description + if information["drop_a"] == 100 or information["drop_b"] == 100: + pytest.fail("It was expected that the traffic would run between the endpoints as the stations were " + "connected to different SSIDs.") + assert True - @pytest.mark.wpa2_personal + @pytest.mark.one_of_each @pytest.mark.twog - @pytest.mark.eth_to_2g_station_false - @allure.title("Run traffic between eth2 port (AP) and station (with client isolation disabled) -2.4GHz") + @pytest.mark.between_eth_client + @allure.title("Traffic run between WAN port (AP) and station, CI is Disabled on 2G") @allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-10624", name="WIFI-10624") def test_client_isolation_disabled_with_2g(self, setup_configuration, get_test_library, num_stations, - get_test_device_logs, get_dut_logs_per_test_case, check_connectivity): + get_test_device_logs, get_dut_logs_per_test_case, check_connectivity): + """ + Description: + Client Isolation is feature that isolates clients only within the same SSID, + Thereby adding level of security to the users connected to the same SSID. + However, we are able to ping the Stations from other SSIDs. + + This testcase is to verify that the endpoints (a station and a wan port) + (with client isolation disabled) are not isolated when + the station is on 2.4GHz band. + + Markers: client_isolation and wpa2_personal and bridge and ci_disabled and twog and between_eth_client + """ profile_data = {"ssid_name": "ci_disabled_wpa2_ssid1_2g", "appliedRadios": ["2G"], "security_key": "OpenWifi"} ssid_name = profile_data["ssid_name"] security_key = profile_data["security_key"] security = "wpa2" mode = "BRIDGE" - band = "twog" - result, description = get_test_library.client_isolation(ssid1=ssid_name, ssid2=None, + result, information = get_test_library.client_isolation(ssid1=ssid_name, ssid2=None, passkey=security_key, - security=security, mode=mode, band_2g=band, - band_5g=None, + security=security, mode=mode, band_2g=True, dut_data=setup_configuration, num_sta=1, side_a_min_rate=6291456, side_a_max_rate=0, - side_b_min_rate=6291456, side_b_max_rate=0, - sniff_radio=True) - if not result: - assert False, description + side_b_min_rate=6291456, side_b_max_rate=0) + if result is False: + pytest.fail(information) else: - assert True, description + if information["drop_a"] == 100 or information["drop_b"] == 100: + pytest.fail("It is expected that the traffic would run between the WAN port and any station.") + assert True - # clients_connected to different ssid, disabling isolation in both(5GH) - @pytest.mark.wpa2_personal @pytest.mark.fiveg - @pytest.mark.ci_disabled_in_5g_ssid - @allure.title("Verify the connectivity of 2 clients connected to the different SSID disabling the client " - "isolation(5Ghz)") - @allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-10611",name="WIFI-10611") - def test_client_isolation_disabled_ssid_5g(self, setup_configuration, get_test_library, num_stations, - get_test_device_logs, get_dut_logs_per_test_case, check_connectivity): + @pytest.mark.ci_different_ssid + @allure.title("2 Clients connected to different SSIDs, CI is Disabled on both 5G SSIDs") + @allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-10611", name="WIFI-10611") + def test_client_isolation_disabled_ssids_5g(self, setup_configuration, get_test_library, num_stations, + get_test_device_logs, get_dut_logs_per_test_case, check_connectivity): + """ + Description: + Client Isolation is feature that isolates clients only within the same SSID, + Thereby adding level of security to the users connected to the same SSID. + However, we are able to ping the Stations from other SSIDs. + + This testcase is to verify that the clients connected to the different SSIDs + (with client isolation disabled on both) are not isolated when + both the clients are on 5GHz band. + + Markers: client_isolation and wpa2_personal and bridge and ci_disabled and fiveg and ci_different_ssid + """ profile_data = {"ssid_name": "ci_disabled_wpa2_ssid1_5g", "appliedRadios": ["5G"], "security_key": "OpenWifi"} ssid_name1 = profile_data["ssid_name"] @@ -319,49 +401,60 @@ class TestClientIsolationDisabled(object): security_key = profile_data["security_key"] security = "wpa2" mode = "BRIDGE" - band = "fiveg" - result, description = get_test_library.client_isolation(ssid1=ssid_name1, ssid2=ssid_name2, + result, information = get_test_library.client_isolation(ssid1=ssid_name1, ssid2=ssid_name2, passkey=security_key, - security=security, mode=mode, band_2g=None, - band_5g=band, + security=security, mode=mode, + band_5g=True, dut_data=setup_configuration, num_sta=2, side_a_min_rate=6291456, side_a_max_rate=0, - side_b_min_rate=6291456, side_b_max_rate=0, - sniff_radio=True) - if not result: - assert False, description + side_b_min_rate=6291456, side_b_max_rate=0) + if result is False: + pytest.fail(information) else: - assert True, description + if information["drop_a"] == 100 or information["drop_b"] == 100: + pytest.fail("It was expected that the traffic would run between the endpoints as the stations were " + "connected to different SSIDs.") + assert True - # Running traffic between eth2 to station with client-isolation disabled in (5GH) ssid - @pytest.mark.wpa2_personal @pytest.mark.fiveg - @pytest.mark.eth_to_5g_station_false - @allure.title("Run traffic between eth2 port (AP) and station (with client isolation disabled) -5GHz") + @pytest.mark.between_eth_client + @allure.title("Traffic run between WAN port (AP) and station, CI is Disabled on 5G") @allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-10623", name="WIFI-10623") def test_client_isolation_disabled_with_5g(self, setup_configuration, get_test_library, num_stations, - get_test_device_logs, get_dut_logs_per_test_case, check_connectivity): + get_test_device_logs, get_dut_logs_per_test_case, check_connectivity): + """ + Description: + Client Isolation is feature that isolates clients only within the same SSID, + Thereby adding level of security to the users connected to the same SSID. + However, we are able to ping the Stations from other SSIDs. + + This testcase is to verify that the endpoints (a station and a wan port) + (with client isolation disabled) are not isolated when + the station is on 5GHz band. + + Markers: client_isolation and wpa2_personal and bridge and ci_disabled and fiveg and between_eth_client + """ profile_data = {"ssid_name": "ci_disabled_wpa2_ssid1_5g", "appliedRadios": ["5G"], "security_key": "OpenWifi"} ssid_name = profile_data["ssid_name"] security_key = profile_data["security_key"] security = "wpa2" mode = "BRIDGE" - band = "fiveg" - result, description = get_test_library.client_isolation(ssid1=ssid_name, ssid2=None, + result, information = get_test_library.client_isolation(ssid1=ssid_name, ssid2=None, passkey=security_key, - security=security, mode=mode, band_2g=None, - band_5g=band, + security=security, mode=mode, + band_5g=True, dut_data=setup_configuration, num_sta=1, side_a_min_rate=6291456, side_a_max_rate=0, - side_b_min_rate=6291456, side_b_max_rate=0, - sniff_radio=True) - if not result: - assert False, description + side_b_min_rate=6291456, side_b_max_rate=0) + if result is False: + pytest.fail(information) else: - assert True, description + if information["drop_a"] == 100 or information["drop_b"] == 100: + pytest.fail("It is expected that the traffic would run between the WAN port and any station.") + assert True setup_params_general2 = { @@ -401,138 +494,188 @@ setup_params_general2 = { "rf": {}, "radius": False } + + @pytest.mark.parametrize( 'setup_configuration', [setup_params_general2], indirect=True, scope="class" ) -@allure.feature("BRIDGE MODE CLIENT ISOLATION") -@allure.parent_suite("CLIENT ISOLATION") -@allure.suite(suite_name="BRIDGE MODE") -@allure.sub_suite(sub_suite_name="Test Client Isolation Same SSIDs") +@allure.feature("Bridge Mode Client Isolation") +@allure.parent_suite("Client Isolation") +@allure.suite(suite_name="Bridge") +@allure.sub_suite(sub_suite_name="Client Isolation Same-SSID") @pytest.mark.usefixtures("setup_configuration") @pytest.mark.ci_same_ssid class TestClientIsolationSameSSID(object): """ - Test Config with Enabling Client Isolation in SSIDs - pytest -m "client_isolation and ci_same_ssid and bridge" + Test Config with Enabling/Disabling Client Isolation on same SSID + pytest -m "wpa2_personal and bridge and client_isolation and ci_same_ssid" """ - @pytest.mark.wpa2_personal + @pytest.mark.twog - @pytest.mark.same_ssid_enabling_isolation_2g - @allure.title("Verify the connectivity of 2 clients connected to the same SSID enabling the client " - "isolation.(2.4Ghz)") + @pytest.mark.ci_enabled + @allure.title("2 Clients connected to same SSID, CI is Enabled on 2G") @allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-10601", name="WIFI-10601") - def test_cleint_isolation_enabled_same_ssid_2g(self, setup_configuration, get_test_library, num_stations, - get_test_device_logs, get_dut_logs_per_test_case, check_connectivity): + def test_client_isolation_enabled_same_ssid_2g(self, setup_configuration, get_test_library, num_stations, + get_test_device_logs, get_dut_logs_per_test_case, + check_connectivity): + """ + Description: + Client Isolation is feature that isolates clients only within the same SSID, + Thereby adding level of security to the users connected to the same SSID. + However, we are able to ping the Stations from other SSIDs. + + This testcase is to verify that the clients connected to the same SSID + (with client isolation enabled) are isolated when + both the clients are on 2.4GHz band. + + Markers: client_isolation and wpa2_personal and bridge and ci_same_ssid and twog and ci_enabled + """ profile_data = {"ssid_name": "ci_enabled_wpa2_ssid", "appliedRadios": ["2G"], "security_key": "OpenWifi"} ssid_name = profile_data["ssid_name"] security_key = profile_data["security_key"] security = "wpa2" mode = "BRIDGE" - band = "twog" - result, description = get_test_library.client_isolation(ssid1=ssid_name, ssid2=ssid_name, + result, information = get_test_library.client_isolation(ssid1=ssid_name, ssid2=ssid_name, passkey=security_key, - security=security, mode=mode, band_2g=band, - band_5g=None, + security=security, mode=mode, band_2g=True, dut_data=setup_configuration, num_sta=2, side_a_min_rate=6291456, side_a_max_rate=0, - side_b_min_rate=6291456, side_b_max_rate=0, - sniff_radio=True) - if not result: - assert False, description + side_b_min_rate=6291456, side_b_max_rate=0) + if result is False: + pytest.fail(information) else: - assert True, description + if information["drop_a"] != 100 or information["drop_b"] != 100: + pytest.fail("It was expected that the traffic would not run between the endpoints as the stations were" + " connected to the same SSID and Client Isolation was enabled.") + assert True - # clients_connected to same ssid, disabled isolation(2.4GH) - @pytest.mark.wpa2_personal @pytest.mark.twog - @pytest.mark.same_ssid_disabling_isolation_2g - @allure.title("Verify the connectivity of 2 clients connected to the same SSID without enabling the client " - "isolation.(2.4Ghz)") - @allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-10604",name="WIFI-10604") - def test_cleint_isolation_disabled_same_ssid_2g(self, setup_configuration, get_test_library, num_stations, - get_test_device_logs, get_dut_logs_per_test_case, check_connectivity): + @pytest.mark.ci_disabled + @allure.title("2 Clients connected to same SSID, CI is Disabled on 2G") + @allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-10604", name="WIFI-10604") + def test_client_isolation_disabled_same_ssid_2g(self, setup_configuration, get_test_library, num_stations, + get_test_device_logs, get_dut_logs_per_test_case, + check_connectivity): + """ + Description: + Client Isolation is feature that isolates clients only within the same SSID, + Thereby adding level of security to the users connected to the same SSID. + However, we are able to ping the Stations from other SSIDs. + + This testcase is to verify that the clients connected to the same SSID + (with client isolation disabled) are not isolated when + both the clients are on 2.4GHz band. + + Markers: client_isolation and wpa2_personal and bridge and ci_same_ssid and twog and ci_disabled + """ profile_data = {"ssid_name": "ci_disabled_wpa2_ssid", "appliedRadios": ["2G"], "security_key": "OpenWifi"} ssid_name = profile_data["ssid_name"] security_key = profile_data["security_key"] security = "wpa2" mode = "BRIDGE" - band = "twog" - result, description = get_test_library.client_isolation(ssid1=ssid_name, ssid2=ssid_name, + result, information = get_test_library.client_isolation(ssid1=ssid_name, ssid2=ssid_name, passkey=security_key, - security=security, mode=mode, band_2g=band, - band_5g=None, + security=security, mode=mode, band_2g=True, dut_data=setup_configuration, num_sta=2, side_a_min_rate=6291456, side_a_max_rate=0, - side_b_min_rate=6291456, side_b_max_rate=0, - sniff_radio=True) - if not result: - assert False, description + side_b_min_rate=6291456, side_b_max_rate=0) + if result is False: + pytest.fail(information) else: - assert True, description + if information["drop_a"] == 100 or information["drop_b"] == 100: + pytest.fail("It was expected that the traffic would run between the endpoints as Client Isolation" + " was Disabled.") + assert True - # clients_connected to same ssid, enabled isolation(5GHZ) - @pytest.mark.wpa2_personal + @pytest.mark.one_of_each @pytest.mark.fiveg - @pytest.mark.same_ssid_enabling_isolation_5g - @allure.title("Verify the connectivity of 2 clients connected to the same SSID by enabling client isolation.(5Ghz)") + @pytest.mark.ci_enabled + @allure.title("2 Clients connected to same SSID, CI is Enabled on 5G") @allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-10606", name="WIFI-10606") - def test_cleint_isolation_enabled_same_ssid_5g(self, setup_configuration, get_test_library, num_stations, - get_test_device_logs, get_dut_logs_per_test_case, check_connectivity): + def test_client_isolation_enabled_same_ssid_5g(self, setup_configuration, get_test_library, num_stations, + get_test_device_logs, get_dut_logs_per_test_case, + check_connectivity): + """ + Description: + Client Isolation is feature that isolates clients only within the same SSID, + Thereby adding level of security to the users connected to the same SSID. + However, we are able to ping the Stations from other SSIDs. + + This testcase is to verify that the clients connected to the same SSID + (with client isolation enabled) are isolated when + both the clients are on 5GHz band. + + Markers: client_isolation and wpa2_personal and bridge and ci_same_ssid and fiveg and ci_enabled + """ profile_data = {"ssid_name": "ci_enabled_wpa2_ssid", "appliedRadios": ["5G"], "security_key": "OpenWifi"} ssid_name = profile_data["ssid_name"] security_key = profile_data["security_key"] security = "wpa2" mode = "BRIDGE" - band = "fiveg" - result, description = get_test_library.client_isolation(ssid1=ssid_name, ssid2=ssid_name, + result, information = get_test_library.client_isolation(ssid1=ssid_name, ssid2=ssid_name, passkey=security_key, - security=security, mode=mode, band_2g=None, - band_5g=band, + security=security, mode=mode, + band_5g=True, dut_data=setup_configuration, num_sta=2, side_a_min_rate=6291456, side_a_max_rate=0, - side_b_min_rate=6291456, side_b_max_rate=0, - sniff_radio=True) - if not result: - assert False, description + side_b_min_rate=6291456, side_b_max_rate=0) + if result is False: + pytest.fail(information) else: - assert True, description + if information["drop_a"] != 100 or information["drop_b"] != 100: + pytest.fail("It was expected that the traffic would not run between the endpoints as the stations were" + " connected to the same SSID and Client Isolation was enabled.") + assert True - @pytest.mark.wpa2_personal @pytest.mark.fiveg - @pytest.mark.same_ssid_disabling_isolation_5g - @allure.title("Verify the connectivity of 2 clients connected to the same SSID disabling the client isolation.(5Ghz)") + @pytest.mark.ci_disabled + @allure.title("2 Clients connected to same SSID, CI is Disabled on 5G") @allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-10612", name="WIFI-10612") - def test_cleint_isolation_disabled_same_ssid_5g(self, setup_configuration, get_test_library, num_stations, - get_test_device_logs, get_dut_logs_per_test_case, check_connectivity): + def test_client_isolation_disabled_same_ssid_5g(self, setup_configuration, get_test_library, num_stations, + get_test_device_logs, get_dut_logs_per_test_case, + check_connectivity): + """ + Description: + Client Isolation is feature that isolates clients only within the same SSID, + Thereby adding level of security to the users connected to the same SSID. + However, we are able to ping the Stations from other SSIDs. + + This testcase is to verify that the clients connected to the same SSID + (with client isolation disabled) are not isolated when + both the clients are on 5GHz band. + + Markers: client_isolation and wpa2_personal and bridge and ci_same_ssid and fiveg and ci_disabled + """ profile_data = {"ssid_name": "ci_disabled_wpa2_ssid", "appliedRadios": ["5G"], "security_key": "OpenWifi"} ssid_name = profile_data["ssid_name"] security_key = profile_data["security_key"] security = "wpa2" mode = "BRIDGE" - band = "fiveg" - result, description = get_test_library.client_isolation(ssid1=ssid_name, ssid2=ssid_name, + result, information = get_test_library.client_isolation(ssid1=ssid_name, ssid2=ssid_name, passkey=security_key, - security=security, mode=mode, band_2g=None, - band_5g=band, + security=security, mode=mode, + band_5g=True, dut_data=setup_configuration, num_sta=2, side_a_min_rate=6291456, side_a_max_rate=0, - side_b_min_rate=6291456, side_b_max_rate=0, - sniff_radio=True) - if not result: - assert False, description + side_b_min_rate=6291456, side_b_max_rate=0) + if result is False: + pytest.fail(information) else: - assert True, description + if information["drop_a"] == 100 or information["drop_b"] == 100: + pytest.fail("It was expected that the traffic would run between the endpoints as Client Isolation" + " was Disabled.") + assert True setup_params_general3 = { @@ -572,34 +715,46 @@ setup_params_general3 = { "rf": {}, "radius": False } + + @pytest.mark.parametrize( 'setup_configuration', [setup_params_general3], indirect=True, scope="class" ) -@allure.feature("BRIDGE MODE CLIENT ISOLATION") -@allure.parent_suite("CLIENT ISOLATION") -@allure.suite(suite_name="BRIDGE MODE") -@allure.sub_suite(sub_suite_name="Test Client Isolation Enable and Disabled with Different SSIDs") +@allure.feature("Bridge Mode Client Isolation") +@allure.parent_suite("Client Isolation") +@allure.suite(suite_name="Bridge") +@allure.sub_suite(sub_suite_name="Client Isolation Enabled/Disabled on 2 Different SSIDs") @pytest.mark.usefixtures("setup_configuration") @pytest.mark.ci_different_ssid class TestClientIsolationDifferentSSID(object): """ - Test Config with Enabling Client Isolation in SSIDs - pytest -m "client_isolation and ci_different_ssid and bridge" + Test Config with Enabling/Disabling Client Isolation in different SSIDs + pytest -m "wpa2_personal and bridge and client_isolation and ci_different_ssid" """ - - # clients_connected to different ssid,enabling isolation in ssid (2GH)& isolation disabled in ssid (2GHZ) - @pytest.mark.wpa2_personal - @pytest.mark.ci @pytest.mark.twog - @pytest.mark.ci_enable_and_disable_2g - @allure.title("Verify the connectivity of 2 clients connected to different SSID's where Client isolation is enabled" - " in one and disabled in other.(2.4Ghz)") + @pytest.mark.ci_enabled_and_disabled + @pytest.mark.bi_directional + @allure.title("CI is enabled on one 2G and disabled on other 2G ssid") @allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-10605", name="WIFI-10605") - def test_client_isoaltion_enabled_ssid_2g_disabled_ssid_2g(self, setup_configuration, get_test_library, num_stations, - get_test_device_logs, get_dut_logs_per_test_case, check_connectivity): + def test_client_isolation_enabled_ssid_2g_disabled_ssid_2g(self, setup_configuration, get_test_library, + num_stations, get_test_device_logs, + get_dut_logs_per_test_case, check_connectivity): + """ + Description: + Client Isolation is feature that isolates clients only within the same SSID, + Thereby adding level of security to the users connected to the same SSID. + However, we are able to ping the Stations from other SSIDs. + + This testcase is to verify that the clients connected to the different SSIDs + (with client isolation enabled on A and disabled on B) are not isolated when + both the clients are on 2.4GHz band. + + Markers: client_isolation and wpa2_personal and bridge and ci_different_ssid and twog and + ci_enabled_and_disabled and bi_directional + """ profile_data = {"ssid_name": "ci_enabled_wpa2_ssid_2g", "appliedRadios": ["2G"], "security_key": "OpenWifi"} ssid_name1 = profile_data["ssid_name"] @@ -608,32 +763,42 @@ class TestClientIsolationDifferentSSID(object): security_key = profile_data["security_key"] security = "wpa2" mode = "BRIDGE" - band = "twog" - result, description = get_test_library.client_isolation(ssid1=ssid_name1, ssid2=ssid_name2, + result, information = get_test_library.client_isolation(ssid1=ssid_name1, ssid2=ssid_name2, passkey=security_key, - security=security, mode=mode, band_2g=band, - band_5g=None, + security=security, mode=mode, band_2g=True, dut_data=setup_configuration, num_sta=2, side_a_min_rate=6291456, side_a_max_rate=0, - side_b_min_rate=6291456, side_b_max_rate=0, - sniff_radio=True) - if not result: - assert False, description + side_b_min_rate=6291456, side_b_max_rate=0) + if result is False: + pytest.fail(information) else: - assert True, description + if information["drop_a"] == 100 or information["drop_b"] == 100: + pytest.fail("It was expected that the traffic would run between the endpoints as the stations were " + "connected to different SSIDs.") + assert True - - # clients_connected to different ssid,enabling isolation in ssid (5GH)& isolation disabled in ssid (5GHZ) - @pytest.mark.wpa2_personal - @pytest.mark.ci @pytest.mark.fiveg - @pytest.mark.ci_enable_and_disable_5g - @allure.title("Verify the connectivity of 2 clients connected to different SSID's where Client isolation is enabled" - " in one and disabled in other.(5Ghz)") + @pytest.mark.ci_enabled_and_disabled + @pytest.mark.bi_directional + @allure.title("CI is enabled on one 5G and disabled on other 5G ssid") @allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-10613", name="WIFI-10613") - def test_client_isoaltion_enabled_ssid_5g_disabled_ssid_5g(self, setup_configuration, get_test_library, num_stations, - get_test_device_logs, get_dut_logs_per_test_case, check_connectivity): + def test_client_isolation_enabled_ssid_5g_disabled_ssid_5g(self, setup_configuration, get_test_library, + num_stations, get_test_device_logs, + get_dut_logs_per_test_case, check_connectivity): + """ + Description: + Client Isolation is feature that isolates clients only within the same SSID, + Thereby adding level of security to the users connected to the same SSID. + However, we are able to ping the Stations from other SSIDs. + + This testcase is to verify that the clients connected to the different SSIDs + (with client isolation enabled on A and disabled on B) are not isolated when + both the clients are on 5GHz band. + + Markers: client_isolation and wpa2_personal and bridge and ci_different_ssid and fiveg and + ci_enabled_and_disabled and bi_directional + """ profile_data = {"ssid_name": "ci_enabled_wpa2_ssid_5g", "appliedRadios": ["5G"], "security_key": "OpenWifi"} ssid_name1 = profile_data["ssid_name"] @@ -642,31 +807,44 @@ class TestClientIsolationDifferentSSID(object): security_key = profile_data["security_key"] security = "wpa2" mode = "BRIDGE" - band = "fiveg" - result, description = get_test_library.client_isolation(ssid1=ssid_name1, ssid2=ssid_name2, + result, information = get_test_library.client_isolation(ssid1=ssid_name1, ssid2=ssid_name2, passkey=security_key, - security=security, mode=mode, band_2g=None, - band_5g=band, + security=security, mode=mode, + band_5g=True, dut_data=setup_configuration, num_sta=2, side_a_min_rate=6291456, side_a_max_rate=0, - side_b_min_rate=6291456, side_b_max_rate=0, - sniff_radio=True) - if not result: - assert False, description + side_b_min_rate=6291456, side_b_max_rate=0) + if result is False: + pytest.fail(information) else: - assert True, description + if information["drop_a"] == 100 or information["drop_b"] == 100: + pytest.fail("It was expected that the traffic would run between the endpoints as the stations were " + "connected to different SSIDs.") + assert True - # run traffic from 2g to 5g - @pytest.mark.wpa2_personal @pytest.mark.twog @pytest.mark.fiveg - @pytest.mark.ci_enabled_2g_and_5g_traffic_2g_to_5g - @allure.title("Verify the connectivity of 2 clients connected to different SSID's where Client isolation is enabled" - " in 2G SSID and 5G SSID (run traffic from 2G client to 5G client)") + @pytest.mark.ci_enabled_and_enabled + @pytest.mark.from_2g_to_5g + @allure.title("CI is enabled on both, 2G and 5G (run traffic from 2G client to 5G client)") @allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-10616", name="WIFI-10616") - def test_client_isolation_enabled_ssid2g_and_ssid5g(self, setup_configuration, get_test_library, num_stations, - get_test_device_logs, get_dut_logs_per_test_case, check_connectivity): + def test_client_isolation_enabled_ssid_2g_and_ssid_5g_a_to_b(self, setup_configuration, get_test_library, + num_stations, get_test_device_logs, + get_dut_logs_per_test_case, check_connectivity): + """ + Description: + Client Isolation is feature that isolates clients only within the same SSID, + Thereby adding level of security to the users connected to the same SSID. + However, we are able to ping the Stations from other SSIDs. + + This testcase is to verify that the clients connected to the different SSIDs + (with client isolation enabled on both, 2.4GHz and 5GHz) are not isolated when + traffic is run from 2.4GHz client to 5GHz client. + + Markers: client_isolation and wpa2_personal and bridge and ci_different_ssid and twog and fiveg and + ci_enabled_and_enabled and from_2g_to_5g + """ profile_data = {"ssid_name": "ci_enabled_wpa2_ssid_2g", "appliedRadios": ["2G"], "security_key": "OpenWifi"} ssid_name1 = profile_data["ssid_name"] @@ -675,30 +853,43 @@ class TestClientIsolationDifferentSSID(object): security_key = profile_data["security_key"] security = "wpa2" mode = "BRIDGE" - band_2g = "twog" - band_5g = "fiveg" - result, description = get_test_library.client_isolation(ssid1=ssid_name1, ssid2=ssid_name2, passkey=security_key, - security=security, mode=mode, band_2g=band_2g, band_5g=band_5g, + result, information = get_test_library.client_isolation(ssid1=ssid_name1, ssid2=ssid_name2, + passkey=security_key, security=security, + mode=mode, band_2g=True, band_5g=True, dut_data=setup_configuration, num_sta=2, side_a_min_rate=6291456, side_a_max_rate=0, - side_b_min_rate=0, side_b_max_rate=0, - sniff_radio=True) - if not result: - assert False, description + side_b_min_rate=0, side_b_max_rate=0) + if result is False: + pytest.fail(information) else: - assert True, description + if information["drop_a"] == 100 or information["drop_b"] == 100: + pytest.fail("It was expected that the traffic would run between the endpoints as the stations were " + "connected to different SSIDs.") + assert True - # run traffic from 2g to 5g - @pytest.mark.wpa2_personal @pytest.mark.twog @pytest.mark.fiveg - @pytest.mark.ci_disable_2g_and_5g_traffic_2g_to_5g - @allure.title("Verify the connectivity of 2 clients connected to different SSID's where Client isolation is disabled" - " in 2G SSID and 5G SSID (run traffic from 2G client to 5G client)") - @allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-10618",name="WIFI-10618") - def test_client_isolation_disabled_ssid2g_and_ssid5g(self, setup_configuration, get_test_library, num_stations, - get_test_device_logs, get_dut_logs_per_test_case, check_connectivity): + @pytest.mark.ci_disabled_and_disabled + @pytest.mark.from_2g_to_5g + @allure.title("CI is disabled on both, 2G and 5G (run traffic from 2G client to 5G client)") + @allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-10618", name="WIFI-10618") + def test_client_isolation_disabled_ssid2g_and_ssid_5g_a_to_b(self, setup_configuration, get_test_library, + num_stations, get_test_device_logs, + get_dut_logs_per_test_case, check_connectivity): + """ + Description: + Client Isolation is feature that isolates clients only within the same SSID, + Thereby adding level of security to the users connected to the same SSID. + However, we are able to ping the Stations from other SSIDs. + + This testcase is to verify that the clients connected to the different SSIDs + (with client isolation disabled on both, 2.4GHz and 5GHz) are not isolated when + traffic is run from 2.4GHz client to 5GHz client. + + Markers: client_isolation and wpa2_personal and bridge and ci_different_ssid and twog and fiveg and + ci_disabled_and_disabled and from_2g_to_5g + """ profile_data = {"ssid_name": "ci_disabled_wpa2_ssid_2g", "appliedRadios": ["2G"], "security_key": "OpenWifi"} ssid_name1 = profile_data["ssid_name"] @@ -707,33 +898,45 @@ class TestClientIsolationDifferentSSID(object): security_key = profile_data["security_key"] security = "wpa2" mode = "BRIDGE" - band_2g = "twog" - band_5g = "fiveg" - result, description = get_test_library.client_isolation(ssid1=ssid_name1, ssid2=ssid_name2, + result, information = get_test_library.client_isolation(ssid1=ssid_name1, ssid2=ssid_name2, passkey=security_key, - security=security, mode=mode, band_2g=band_2g, - band_5g=band_5g, + security=security, mode=mode, band_2g=True, + band_5g=True, dut_data=setup_configuration, num_sta=2, side_a_min_rate=6291456, side_a_max_rate=0, - side_b_min_rate=0, side_b_max_rate=0, - sniff_radio=True) - if not result: - assert False, description + side_b_min_rate=0, side_b_max_rate=0) + if result is False: + pytest.fail(information) else: - assert True, description + if information["drop_a"] == 100 or information["drop_b"] == 100: + pytest.fail("It was expected that the traffic would run between the endpoints as the stations were " + "connected to different SSIDs.") + assert True - # clients_connected to different ssid, enabling isolation in both (2GHz) & (5GHz) ssid - # run traffic from 5g to 2g - @pytest.mark.wpa2_personal + @pytest.mark.one_of_each @pytest.mark.twog @pytest.mark.fiveg - @pytest.mark.ci_enabled_2g_and_5g_traffic_5g_to_2g - @allure.title("Verify the connectivity of 2 clients connected to different SSID's where Client isolation is enabled" - " in 2G SSID and 5G SSID (run traffic from 5G client to 2G client)") + @pytest.mark.ci_enabled_and_enabled + @pytest.mark.from_5g_to_2g + @allure.title("CI is enabled on both, 2G and 5G (run traffic from 5G client to 2G client)") @allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-10617", name="WIFI-10617") - def test_client_isolation_enabled_ssid_2gandssid_5g(self, setup_configuration, get_test_library, num_stations, - get_test_device_logs, get_dut_logs_per_test_case, check_connectivity): + def test_client_isolation_enabled_ssid_2g_and_ssid_5g_b_to_a(self, setup_configuration, get_test_library, + num_stations, get_test_device_logs, + get_dut_logs_per_test_case, check_connectivity): + """ + Description: + Client Isolation is feature that isolates clients only within the same SSID, + Thereby adding level of security to the users connected to the same SSID. + However, we are able to ping the Stations from other SSIDs. + + This testcase is to verify that the clients connected to the different SSIDs + (with client isolation enabled on both, 2.4GHz and 5GHz) are not isolated when + traffic is run from 5GHz client to 2.4GHz client. + + Markers: client_isolation and wpa2_personal and bridge and ci_different_ssid and twog and fiveg and + ci_enabled_and_enabled and from_5g_to_2g + """ profile_data = {"ssid_name": "ci_enabled_wpa2_ssid_2g", "appliedRadios": ["2G"], "security_key": "OpenWifi"} ssid_name1 = profile_data["ssid_name"] @@ -742,32 +945,44 @@ class TestClientIsolationDifferentSSID(object): security_key = profile_data["security_key"] security = "wpa2" mode = "BRIDGE" - band_2g = "twog" - band_5g = "fiveg" - result, description = get_test_library.client_isolation(ssid1=ssid_name1, ssid2=ssid_name2, + result, information = get_test_library.client_isolation(ssid1=ssid_name1, ssid2=ssid_name2, passkey=security_key, - security=security, mode=mode, band_2g=band_2g, - band_5g=band_5g, + security=security, mode=mode, band_2g=True, + band_5g=True, dut_data=setup_configuration, num_sta=2, side_a_min_rate=0, side_a_max_rate=0, - side_b_min_rate=6291456, side_b_max_rate=0, sniff_radio=True) - if not result: - assert False, description + side_b_min_rate=6291456, side_b_max_rate=0) + if result is False: + pytest.fail(information) else: - assert True, description + if information["drop_a"] == 100 or information["drop_b"] == 100: + pytest.fail("It was expected that the traffic would run between the endpoints as the stations were " + "connected to different SSIDs.") + assert True - # clients_connected to different ssid, disabled isolation in both (2GHz) & (5GHz) ssid - # run traffic from 5g to 2g - @pytest.mark.wpa2_personal @pytest.mark.twog @pytest.mark.fiveg - @pytest.mark.ci_disable_2g_and_5g_traffic_5g_to_2g - @allure.title("Verify the connectivity of 2 clients connected to different SSID's where Client isolation is disabled" - " in 2G SSID and 5G SSID (run traffic from 5G client to 2G client)") - @allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-10619",name="WIFI-10619") - def test_client_isolation_disabled_ssid_2gandssid_5g(self, setup_configuration, get_test_library, num_stations, - get_test_device_logs, get_dut_logs_per_test_case, check_connectivity): + @pytest.mark.ci_disabled_and_disabled + @pytest.mark.from_5g_to_2g + @allure.title("CI is disabled on both, 2G and 5G (run traffic from 5G client to 2G client)") + @allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-10619", name="WIFI-10619") + def test_client_isolation_disabled_ssid_2g_and_ssid_5g_b_to_a(self, setup_configuration, get_test_library, + num_stations,get_test_device_logs, + get_dut_logs_per_test_case, check_connectivity): + """ + Description: + Client Isolation is feature that isolates clients only within the same SSID, + Thereby adding level of security to the users connected to the same SSID. + However, we are able to ping the Stations from other SSIDs. + + This testcase is to verify that the clients connected to the different SSIDs + (with client isolation disabled on both, 2.4GHz and 5GHz) are not isolated when + traffic is run from 5GHz client to 2.4GHz client. + + Markers: client_isolation and wpa2_personal and bridge and ci_different_ssid and twog and fiveg and + ci_disabled_and_disabled and from_5g_to_2g + """ profile_data = {"ssid_name": "ci_disabled_wpa2_ssid_2g", "appliedRadios": ["2G"], "security_key": "OpenWifi"} ssid_name1 = profile_data["ssid_name"] @@ -776,65 +991,89 @@ class TestClientIsolationDifferentSSID(object): security_key = profile_data["security_key"] security = "wpa2" mode = "BRIDGE" - band_2g = "twog" - band_5g = "fiveg" - result, description = get_test_library.client_isolation(ssid1=ssid_name1, ssid2=ssid_name2, + result, information = get_test_library.client_isolation(ssid1=ssid_name1, ssid2=ssid_name2, passkey=security_key, - security=security, mode=mode, band_2g=band_2g, - band_5g=band_5g, + security=security, mode=mode, band_2g=True, + band_5g=True, dut_data=setup_configuration, num_sta=2, side_a_min_rate=0, side_a_max_rate=0, - side_b_min_rate=6291456, side_b_max_rate=0, - sniff_radio=True) - if not result: - assert False, description + side_b_min_rate=6291456, side_b_max_rate=0) + if result is False: + pytest.fail(information) else: - assert True, description + if information["drop_a"] == 100 or information["drop_b"] == 100: + pytest.fail("It was expected that the traffic would run between the endpoints as the stations were " + "connected to different SSIDs.") + assert True - # run traffic from 2g to 5g - @pytest.mark.wpa2_personal @pytest.mark.twog @pytest.mark.fiveg - @pytest.mark.ci_enabled_2g_disabled_5g_traffic_2g_to_5g - @allure.title("Verify the connectivity of 2 clients connected to different SSID's where Client isolation is enabled" - " in 2G SSID and disabled in 5G SSID (run traffic from 2G client to 5G client)") + @pytest.mark.ci_enabled_and_disabled + @pytest.mark.from_2g_to_5g + @allure.title("CI is enabled on 2G and disabled on 5G (run traffic from 2G client to 5G client)") @allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-10614", name="WIFI-10614") - def test_client_isolation_enabled_ssids_2gdisabled_ssid_5g(self, setup_configuration, get_test_library, num_stations, - get_test_device_logs, get_dut_logs_per_test_case, check_connectivity): + def test_client_isolation_enabled_ssid_2g_disabled_ssid_5g_a_to_b(self, setup_configuration, get_test_library, + num_stations, get_test_device_logs, + get_dut_logs_per_test_case, check_connectivity): + """ + Description: + Client Isolation is feature that isolates clients only within the same SSID, + Thereby adding level of security to the users connected to the same SSID. + However, we are able to ping the Stations from other SSIDs. + + This testcase is to verify that the clients connected to the different SSIDs + (with client isolation enabled on 2.4GHz and disabled on 5GHz) are not isolated when + traffic is run from 2.4GHz client to 5GHz client. + + Markers: client_isolation and wpa2_personal and bridge and ci_different_ssid and twog and fiveg and + ci_enabled_and_disabled and from_2g_to_5g + """ profile_data = {"ssid_name": "ci_enabled_wpa2_ssid_2g", "appliedRadios": ["2G"], "security_key": "OpenWifi"} ssid_name1 = profile_data["ssid_name"] - profile_data ={"ssid_name": "ci_disabled_wpa2_ssid_5g", "appliedRadios": ["5G"], "security_key": "OpenWifi"} + profile_data = {"ssid_name": "ci_disabled_wpa2_ssid_5g", "appliedRadios": ["5G"], "security_key": "OpenWifi"} ssid_name2 = profile_data["ssid_name"] security_key = profile_data["security_key"] security = "wpa2" mode = "BRIDGE" - band_2g = "twog" - band_5g = "fiveg" - result, description = get_test_library.client_isolation(ssid1=ssid_name1, ssid2=ssid_name2, + result, information = get_test_library.client_isolation(ssid1=ssid_name1, ssid2=ssid_name2, passkey=security_key, - security=security, mode=mode, band_2g=band_2g, - band_5g=band_5g, + security=security, mode=mode, band_2g=True, + band_5g=True, dut_data=setup_configuration, num_sta=2, side_a_min_rate=6291456, side_a_max_rate=0, - side_b_min_rate=0, side_b_max_rate=0, - sniff_radio=True) - if not result: - assert False, description + side_b_min_rate=0, side_b_max_rate=0) + if result is False: + pytest.fail(information) else: - assert True, description + if information["drop_a"] == 100 or information["drop_b"] == 100: + pytest.fail("It was expected that the traffic would run between the endpoints as the stations were " + "connected to different SSIDs.") + assert True - # run traffic from 5g to 2g - @pytest.mark.wpa2_personal @pytest.mark.twog @pytest.mark.fiveg - @pytest.mark.ci_disabled_2g_enabled_5g_traffic_5g_to_2g - @allure.title("Verify the connectivity of 2 clients connected to different SSID's where Client isolation is disabled" - " in 2G SSID and enabled in 5G SSID (run traffic from 5G client to 2G client)") + @pytest.mark.ci_disabled_and_enabled + @pytest.mark.from_5g_to_2g + @allure.title("CI is disabled on 2G and enabled on 5G (run traffic from 5G client to 2G client)") @allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-10625", name="WIFI-10625") - def test_client_isolation_disabled_ssid_2genabled_ssid_5g(self, setup_configuration, get_test_library, num_stations, - get_test_device_logs, get_dut_logs_per_test_case, check_connectivity): + def test_client_isolation_disabled_ssid_2g_enabled_ssid_5g_b_to_a(self, setup_configuration, get_test_library, + num_stations, get_test_device_logs, + get_dut_logs_per_test_case, check_connectivity): + """ + Description: + Client Isolation is feature that isolates clients only within the same SSID, + Thereby adding level of security to the users connected to the same SSID. + However, we are able to ping the Stations from other SSIDs. + + This testcase is to verify that the clients connected to the different SSIDs + (with client isolation disabled on 2.4GHz and enabled on 5GHz) are not isolated when + traffic is run from 5GHz client to 2.4GHz client. + + Markers: client_isolation and wpa2_personal and bridge and ci_different_ssid and twog and fiveg and + ci_disabled_and_enabled and from_5g_to_2g + """ profile_data = {"ssid_name": "ci_disabled_wpa2_ssid_2g", "appliedRadios": ["2G"], "security_key": "OpenWifi"} ssid_name1 = profile_data["ssid_name"] @@ -843,34 +1082,44 @@ class TestClientIsolationDifferentSSID(object): security_key = profile_data["security_key"] security = "wpa2" mode = "BRIDGE" - band_2g = "twog" - band_5g = "fiveg" - result, description = get_test_library.client_isolation(ssid1=ssid_name1, ssid2=ssid_name2, + result, information = get_test_library.client_isolation(ssid1=ssid_name1, ssid2=ssid_name2, passkey=security_key, - security=security, mode=mode, band_2g=band_2g, - band_5g=band_5g, + security=security, mode=mode, band_2g=True, + band_5g=True, dut_data=setup_configuration, num_sta=2, side_a_min_rate=0, side_a_max_rate=0, - side_b_min_rate=6291456, side_b_max_rate=0, - sniff_radio=True) - if not result: - assert False, description + side_b_min_rate=6291456, side_b_max_rate=0) + if result is False: + pytest.fail(information) else: - assert True, description + if information["drop_a"] == 100 or information["drop_b"] == 100: + pytest.fail("It was expected that the traffic would run between the endpoints as the stations were " + "connected to different SSIDs.") + assert True - - # clients_connected to different ssid,enabled isolation in (2GHz)ssid & isolation disabled in (5GH)ssid - # run traffic from 5g to 2g - @pytest.mark.wpa2_personal @pytest.mark.twog @pytest.mark.fiveg - @pytest.mark.ci_enabled_2g_disabled_5g_traffic_5g_to_2g - @allure.title("Verify the connectivity of 2 clients connected to different SSID's where Client isolation is enabled" - " in 2G SSID and disabled in 5G SSID (run traffic from 5G client to 2G client)") - @allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-10615",name="WIFI-10615") - def test_client_isolation_enabled_ssids_2g_disabled_ssid_5g(self, setup_configuration, get_test_library, num_stations, - get_test_device_logs, get_dut_logs_per_test_case, check_connectivity): + @pytest.mark.ci_enabled_and_disabled + @pytest.mark.from_5g_to_2g + @allure.title("CI is enabled on 2G and disabled on 5G (run traffic from 5G client to 2G client)") + @allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-10615", name="WIFI-10615") + def test_client_isolation_enabled_ssid_2g_disabled_ssid_5g_b_to_a(self, setup_configuration, get_test_library, + num_stations, get_test_device_logs, + get_dut_logs_per_test_case, check_connectivity): + """ + Description: + Client Isolation is feature that isolates clients only within the same SSID, + Thereby adding level of security to the users connected to the same SSID. + However, we are able to ping the Stations from other SSIDs. + + This testcase is to verify that the clients connected to the different SSIDs + (with client isolation enabled on 2.4GHz and disabled on 5GHz) are not isolated when + traffic is run from 5GHz client to 2.4GHz client. + + Markers: client_isolation and wpa2_personal and bridge and ci_different_ssid and twog and fiveg and + ci_enabled_and_disabled and from_5g_to_2g + """ profile_data = {"ssid_name": "ci_enabled_wpa2_ssid_2g", "appliedRadios": ["2G"], "security_key": "OpenWifi"} ssid_name1 = profile_data["ssid_name"] @@ -879,33 +1128,43 @@ class TestClientIsolationDifferentSSID(object): security_key = profile_data["security_key"] security = "wpa2" mode = "BRIDGE" - band_2g = "twog" - band_5g = "fiveg" - result, description = get_test_library.client_isolation(ssid1=ssid_name1, ssid2=ssid_name2, - passkey=security_key, - security=security, mode=mode, band_2g=band_2g, - band_5g=band_5g, - dut_data=setup_configuration, num_sta=2, - side_a_min_rate=0, side_a_max_rate=0, - side_b_min_rate=6291456, side_b_max_rate=0, - sniff_radio=True) - if not result: - assert False, description + result, information = get_test_library.client_isolation(ssid1=ssid_name1, ssid2=ssid_name2, + passkey=security_key, security=security, mode=mode, + band_2g=True, band_5g=True, + dut_data=setup_configuration, num_sta=2, + side_a_min_rate=0, side_a_max_rate=0, + side_b_min_rate=6291456, side_b_max_rate=0) + if result is False: + pytest.fail(information) else: - assert True, description + if information["drop_a"] == 100 or information["drop_b"] == 100: + pytest.fail("It was expected that the traffic would run between the endpoints as the stations were " + "connected to different SSIDs.") + assert True - # clients_connected to different ssid,disabled isolation in ssid (2GHz)& isolation enabled in ssid(5GH) - # run traffic from 2g to 5g - @pytest.mark.wpa2_personal @pytest.mark.twog @pytest.mark.fiveg - @pytest.mark.ci_disabled_2g_enabled_5g_traffic_2g_to_5g - @allure.title("Verify the connectivity of 2 clients connected to different SSID's where Client isolation is disabled" - " in 2G SSID and enabled in 5G SSID (run traffic from 2G client to 5G client)") + @pytest.mark.ci_disabled_and_enabled + @pytest.mark.from_2g_to_5g + @allure.title("CI is disabled on 2G and enabled on 5G (run traffic from 2G client to 5G client)") @allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-10626", name="WIFI-10626") - def test_client_isolation_disabled_ssid_2g_enabled_ssid_5g(self, setup_configuration, get_test_library, num_stations, - get_test_device_logs, get_dut_logs_per_test_case, check_connectivity): + def test_client_isolation_disabled_ssid_2g_enabled_ssid_5g_a_to_b(self, setup_configuration, get_test_library, + num_stations, get_test_device_logs, + get_dut_logs_per_test_case, check_connectivity): + """ + Description: + Client Isolation is feature that isolates clients only within the same SSID, + Thereby adding level of security to the users connected to the same SSID. + However, we are able to ping the Stations from other SSIDs. + + This testcase is to verify that the clients connected to the different SSIDs + (with client isolation disabled on 2.4GHz and enabled on 5GHz) are not isolated when + traffic is run from 2.4GHz client to 5GHz client. + + Markers: client_isolation and wpa2_personal and bridge and ci_different_ssid and twog and fiveg and + ci_disabled_and_enabled and from_2g_to_5g + """ profile_data = {"ssid_name": "ci_disabled_wpa2_ssid_2g", "appliedRadios": ["2G"], "security_key": "OpenWifi"} ssid_name1 = profile_data["ssid_name"] @@ -914,18 +1173,18 @@ class TestClientIsolationDifferentSSID(object): security_key = profile_data["security_key"] security = "wpa2" mode = "BRIDGE" - band_2g = "twog" - band_5g = "fiveg" - result, description = get_test_library.client_isolation(ssid1=ssid_name1, ssid2=ssid_name2, + result, information = get_test_library.client_isolation(ssid1=ssid_name1, ssid2=ssid_name2, passkey=security_key, - security=security, mode=mode, band_2g=band_2g, - band_5g=band_5g, + security=security, mode=mode, band_2g=True, + band_5g=True, dut_data=setup_configuration, num_sta=2, side_a_min_rate=6291456, side_a_max_rate=0, - side_b_min_rate=0, side_b_max_rate=0, - sniff_radio=True) - if not result: - assert False, description + side_b_min_rate=0, side_b_max_rate=0) + if result is False: + pytest.fail(information) else: - assert True, description + if information["drop_a"] == 100 or information["drop_b"] == 100: + pytest.fail("It was expected that the traffic would run between the endpoints as the stations were " + "connected to different SSIDs.") + assert True