From 9dedcc0d38e158e368c22e3dd3600723582336c6 Mon Sep 17 00:00:00 2001 From: jitendracandela <78074038+jitendracandela@users.noreply.github.com> Date: Tue, 26 Sep 2023 18:54:28 +0530 Subject: [PATCH] Wifi 12923 (#849) * Added strict-forwarding option Signed-off-by: jitendracandela * Added test cases for strict_forwarding test plan Signed-off-by: jitendracandela * Deleted nat mode test cases Signed-off-by: jitendracandela --------- Signed-off-by: jitendracandela --- libs/tip_2x/controller.py | 4 + tests/e2e/basic/strict_forwarding/__init__.py | 0 .../wpa2_personal/__init__.py | 0 .../test_strict_forwarding_bridge.py | 247 ++++++++++++++++++ 4 files changed, 251 insertions(+) create mode 100644 tests/e2e/basic/strict_forwarding/__init__.py create mode 100644 tests/e2e/basic/strict_forwarding/wpa2_personal/__init__.py create mode 100644 tests/e2e/basic/strict_forwarding/wpa2_personal/test_strict_forwarding_bridge.py diff --git a/libs/tip_2x/controller.py b/libs/tip_2x/controller.py index 65ea29d76..2e16a0f81 100644 --- a/libs/tip_2x/controller.py +++ b/libs/tip_2x/controller.py @@ -2652,6 +2652,8 @@ class UProfileUtility: ssid_info[options] = ssid_data[options] if options == "isolate-clients": ssid_info[options] = ssid_data[options] + if options == "strict-forwarding": + ssid_info[options] = ssid_data[options] if options == "captive": ssid_info[options] = ssid_data[options] for i in ssid_data["appliedRadios"]: @@ -2692,6 +2694,8 @@ class UProfileUtility: ssid_info[options] = ssid_data[options] if options == "isolate-clients": ssid_info[options] = ssid_data[options] + if options == "strict-forwarding": + ssid_info[options] = ssid_data[options] if options == "captive": ssid_info[options] = ssid_data[options] ssid_info["services"] = ["captive"] diff --git a/tests/e2e/basic/strict_forwarding/__init__.py b/tests/e2e/basic/strict_forwarding/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/tests/e2e/basic/strict_forwarding/wpa2_personal/__init__.py b/tests/e2e/basic/strict_forwarding/wpa2_personal/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/tests/e2e/basic/strict_forwarding/wpa2_personal/test_strict_forwarding_bridge.py b/tests/e2e/basic/strict_forwarding/wpa2_personal/test_strict_forwarding_bridge.py new file mode 100644 index 000000000..a438c9cd6 --- /dev/null +++ b/tests/e2e/basic/strict_forwarding/wpa2_personal/test_strict_forwarding_bridge.py @@ -0,0 +1,247 @@ +""" + Test Strict Forwarding: Bridge Mode + pytest -m strict_forwarding_tests +""" + +import allure +import pytest + +pytestmark = [pytest.mark.ow_regression_lf, pytest.mark.strict_forwarding_tests, pytest.mark.bridge] + +setup_params_general = { + "mode": "BRIDGE", + "ssid_modes": { + "wpa2_personal": [ + { + "ssid_name": "strict_forwarding_wpa2_br", + "appliedRadios": ["5G"], + "security": "psk2", + "security_key": "something", + "strict-forwarding": True + } + ] + }, + "rf": {}, + "radius": False +} + + +@pytest.mark.parametrize( + 'setup_configuration', + [setup_params_general], + indirect=True, + scope="class" +) +@allure.feature("Strict Forwarding") +@allure.parent_suite("Strict Forwarding") +@allure.suite(suite_name="BRIDGE Mode") +@allure.sub_suite(sub_suite_name="Clients connected to same SSID") +@pytest.mark.usefixtures("setup_configuration") +class TestStrictForwardingSameSSID(object): + """ + Strict Forwarding Test: BRIDGE Mode + pytest -m "strict_forwarding_tests and bridge" + """ + + @pytest.mark.wpa2_personal + @pytest.mark.fiveg + @pytest.mark.clients_connected_same_ssid_sf_enabled + @allure.title("Verify the clients connected to same SSID cannot ping eachother when strict_forwarding is enabled") + @allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-12923", name="WIFI-12923") + def test_sf_enabled_ssid_5g(self, setup_configuration, get_test_library, num_stations, + get_test_device_logs, get_dut_logs_per_test_case, check_connectivity): + + profile_data = { + "ssid_name": "strict_forwarding_wpa2_br", + "appliedRadios": ["5G"], + "security": "psk2", + "security_key": "something", + "strict-forwarding": True + } + ssid_name = profile_data["ssid_name"] + security_key = profile_data["security_key"] + security = "wpa2" + mode = "BRIDGE" + band = "fiveg" + + result, description = get_test_library.strict_forwarding(ssids=[ssid_name], + passkey=security_key, + security=security, mode=mode, + dut_data=setup_configuration, num_stations_per_ssid=2, + side_a_min_rate=6291456, side_a_max_rate=0, + side_b_min_rate=6291456, side_b_max_rate=0, band=band) + if not result: + assert False, description + else: + assert True, description + + +setup_params_general1 = { + "mode": "BRIDGE", + "ssid_modes": { + "wpa2_personal": [ + { + "ssid_name": "sf_enabled_ssid1_wpa2_br", + "appliedRadios": ["5G"], + "security": "psk2", + "security_key": "something", + "strict-forwarding": True + }, + { + "ssid_name": "sf_enabled_ssid2_wpa2_br", + "appliedRadios": ["5G"], + "security": "psk2", + "security_key": "something", + "strict-forwarding": True + } + ] + }, + "rf": {}, + "radius": False +} + + +@pytest.mark.parametrize( + 'setup_configuration', + [setup_params_general1], + indirect=True, + scope="class" +) +@allure.feature("Strict Forwarding") +@allure.parent_suite("Strict Forwarding") +@allure.suite(suite_name="BRIDGE Mode") +@allure.sub_suite(sub_suite_name="Clients connected to two different SSID (sf is enabled on both SSIDs)") +@pytest.mark.usefixtures("setup_configuration") +class TestStrictForwardingEnabledTwoSSID(object): + """ + Strict Forwarding Test: BRIDGE Mode + pytest -m "strict_forwarding_tests and bridge" + """ + + @pytest.mark.wpa2_personal + @pytest.mark.fiveg + @pytest.mark.clients_connected_different_ssid_sf_enabled + @allure.title("Verify whether clients connected to different SSIDs cannot ping each other when strict_forwarding" + " is enabled on both SSIDs") + @allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-12924", name="WIFI-12924") + def test_sf_enabled_two_ssid_5g(self, setup_configuration, get_test_library, num_stations, + get_test_device_logs, get_dut_logs_per_test_case, check_connectivity): + + profile_data = { + "ssid_name": "sf_enabled_ssid1_wpa2_br", + "appliedRadios": ["5G"], + "security": "psk2", + "security_key": "something", + "strict-forwarding": True + } + ssid_name_1 = profile_data["ssid_name"] + profile_data = { + "ssid_name": "sf_enabled_ssid2_wpa2_br", + "appliedRadios": ["5G"], + "security": "psk2", + "security_key": "something", + "strict-forwarding": True + } + ssid_name_2 = profile_data["ssid_name"] + ssids = [ssid_name_1, ssid_name_2] + print("SSIDS", ssids) + security_key = profile_data["security_key"] + security = "wpa2" + mode = "BRIDGE" + band = "fiveg" + result, description = get_test_library.strict_forwarding(ssids=ssids, + passkey=security_key, + security=security, mode=mode, + dut_data=setup_configuration, num_stations_per_ssid=1, + side_a_min_rate=6291456, side_a_max_rate=0, + side_b_min_rate=6291456, side_b_max_rate=0, band=band) + if not result: + assert False, description + else: + assert True, description + + +setup_params_general2 = { + "mode": "BRIDGE", + "ssid_modes": { + "wpa2_personal": [ + { + "ssid_name": "sf_enabled_ssid1_wpa2_br", + "appliedRadios": ["5G"], + "security": "psk2", + "security_key": "something", + "strict-forwarding": True + }, + { + "ssid_name": "sf_disabled_ssid2_wpa2_br", + "appliedRadios": ["5G"], + "security": "psk2", + "security_key": "something", + "strict-forwarding": False + } + ] + }, + "rf": {}, + "radius": False +} + + +@pytest.mark.parametrize( + 'setup_configuration', + [setup_params_general2], + indirect=True, + scope="class" +) +@allure.feature("Strict Forwarding") +@allure.parent_suite("Strict Forwarding") +@allure.suite(suite_name="BRIDGE Mode") +@allure.sub_suite(sub_suite_name="Clients connected to two different SSID (SSID with sf enabled and another " + "SSID where sf is disabled") +@pytest.mark.usefixtures("setup_configuration") +class TestStrictForwardingEnabledSSIDDisableSSID(object): + """ + Strict Forwarding Test: BRIDGE Mode + pytest -m "strict_forwarding_tests and bridge" + """ + + @pytest.mark.wpa2_personal + @pytest.mark.fiveg + @pytest.mark.clients_connected_ssid_sf_enabled_ssid_sf_disable + @allure.title("Verify that clients connected to an SSID with strict_forwarding enabled cannot ping clients " + "connected to another SSID where strict_forwarding is disabled") + @allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-12925", name="WIFI-12925") + def test_sf_enabled_two_ssid_5g(self, setup_configuration, get_test_library, num_stations, + get_test_device_logs, get_dut_logs_per_test_case, check_connectivity): + + profile_data = { + "ssid_name": "sf_enabled_ssid1_wpa2_br", + "appliedRadios": ["5G"], + "security": "psk2", + "security_key": "something", + "strict-forwarding": True + } + ssid_name_1 = profile_data["ssid_name"] + profile_data = { + "ssid_name": "sf_disabled_ssid2_wpa2_br", + "appliedRadios": ["5G"], + "security": "psk2", + "security_key": "something", + "strict-forwarding": False + } + ssid_name_2 = profile_data["ssid_name"] + ssids = [ssid_name_1, ssid_name_2] + security_key = profile_data["security_key"] + security = "wpa2" + mode = "BRIDGE" + band = "fiveg" + print("SSIDS", ssids) + result, description = get_test_library.strict_forwarding(ssids=ssids, + passkey=security_key, + security=security, mode=mode, + dut_data=setup_configuration, num_stations_per_ssid=1, + side_a_min_rate=6291456, side_a_max_rate=0, + side_b_min_rate=6291456, side_b_max_rate=0, band=band) + if not result: + assert False, description + else: + assert True, description