コード例 #1
0
    def test_post_processing_in_dp_mode(self) -> None:
        """ Test FreedomFi One specific post processing functionality in Domain Proxy mode"""

        service_cfg = _get_service_config()
        expected = [
            call.delete_parameter(ParameterName.EARFCNDL),
            call.delete_parameter(ParameterName.DL_BANDWIDTH),
            call.delete_parameter(ParameterName.UL_BANDWIDTH),
            call.set_parameter(
                param_name=FreedomFiOneMiscParameters.TUNNEL_REF,
                value='Device.IP.Interface.1.IPv4Address.1.',
            ),
            call.set_parameter(
                param_name=FreedomFiOneMiscParameters.CARRIER_AGG_ENABLE,
                value=True),
            call.set_parameter(
                param_name=FreedomFiOneMiscParameters.CARRIER_NUMBER, value=2),
            call.set_parameter(
                param_name=FreedomFiOneMiscParameters.CONTIGUOUS_CC, value=0),
            call.set_parameter(
                param_name=FreedomFiOneMiscParameters.WEB_UI_ENABLE,
                value=False),
            call.set_parameter(param_name=SASParameters.SAS_ENABLE,
                               value=True),
            call.set_parameter(param_name=SASParameters.SAS_METHOD,
                               value=False),
            call.set_parameter_for_object(
                param_name='PLMN 1 cell reserved',
                value=True,
                object_name='PLMN 1',
            ),
            call.set_parameter(SASParameters.SAS_METHOD, value=True),
            call.set_parameter(FreedomFiOneMiscParameters.PRIM_SOURCE, 'GNSS'),
        ]
        self._check_postprocessing(expected=expected, service_cfg=service_cfg)
コード例 #2
0
    def test_post_process_without_sas_cfg_with_ui(self) -> None:
        """ Test FreedomFi One specific post processing functionality without sas config with ui enabled"""
        service_cfg = {
            "tr069": {
                "interface": "eth1",
                "port": 48080,
                "perf_mgmt_port": 8081,
                "public_ip": "192.88.99.142",
            },
            "prim_src": 'GNSS',
            "reboot_enodeb_on_mme_disconnected": True,
            "s1_interface": "eth1",
            "web_ui_enable_list": ["2006CW5000023"],
        }

        expected = [
            call.delete_parameter(ParameterName.EARFCNDL),
            call.delete_parameter(ParameterName.DL_BANDWIDTH),
            call.delete_parameter(ParameterName.UL_BANDWIDTH),
            call.set_parameter(
                param_name=FreedomFiOneMiscParameters.TUNNEL_REF,
                value='Device.IP.Interface.1.IPv4Address.1.',
            ),
            call.set_parameter(
                param_name=FreedomFiOneMiscParameters.CARRIER_AGG_ENABLE,
                value=True),
            call.set_parameter(
                param_name=FreedomFiOneMiscParameters.CARRIER_NUMBER, value=2),
            call.set_parameter(
                param_name=FreedomFiOneMiscParameters.CONTIGUOUS_CC, value=0),
            call.set_parameter(
                param_name=FreedomFiOneMiscParameters.WEB_UI_ENABLE,
                value=False),
            call.set_parameter(param_name=SASParameters.SAS_ENABLE,
                               value=True),
            call.set_parameter(param_name=SASParameters.SAS_METHOD,
                               value=False),
            call.set_parameter_for_object(
                param_name='PLMN 1 cell reserved',
                value=True,
                object_name='PLMN 1',
            ),
            call.set_parameter(FreedomFiOneMiscParameters.WEB_UI_ENABLE,
                               value=True),
            call.set_parameter(SASParameters.SAS_METHOD, value=True),
            call.set_parameter(FreedomFiOneMiscParameters.PRIM_SOURCE, 'GNSS'),
        ]

        self._check_postprocessing(expected=expected, service_cfg=service_cfg)
コード例 #3
0
    def test_post_processing_in_non_dp_mode(self) -> None:
        """ Test FreedomFi One specific post processing functionality in standalone mode"""
        service_cfg = _get_service_config(dp_mode=False)
        expected = [
            call.delete_parameter(ParameterName.EARFCNDL),
            call.delete_parameter(ParameterName.DL_BANDWIDTH),
            call.delete_parameter(ParameterName.UL_BANDWIDTH),
            call.set_parameter(
                param_name=FreedomFiOneMiscParameters.TUNNEL_REF,
                value='Device.IP.Interface.1.IPv4Address.1.',
            ),
            call.set_parameter(
                param_name=FreedomFiOneMiscParameters.CARRIER_AGG_ENABLE,
                value=True),
            call.set_parameter(
                param_name=FreedomFiOneMiscParameters.CARRIER_NUMBER, value=2),
            call.set_parameter(
                param_name=FreedomFiOneMiscParameters.CONTIGUOUS_CC, value=0),
            call.set_parameter(
                param_name=FreedomFiOneMiscParameters.WEB_UI_ENABLE,
                value=False),
            call.set_parameter(param_name=SASParameters.SAS_ENABLE,
                               value=True),
            call.set_parameter(param_name=SASParameters.SAS_METHOD,
                               value=False),
            call.set_parameter_for_object(
                param_name='PLMN 1 cell reserved',
                value=True,
                object_name='PLMN 1',
            ),
            call.set_parameter(
                SASParameters.SAS_SERVER_URL,
                TEST_SAS_URL,
            ),
            call.set_parameter(SASParameters.SAS_UID, 'M0LK4T'),
            call.set_parameter(SASParameters.SAS_CATEGORY, 'A'),
            call.set_parameter(SASParameters.SAS_CHANNEL_TYPE, 'GAA'),
            call.set_parameter(
                SASParameters.SAS_CERT_SUBJECT,
                TEST_SAS_CERT_SUBJECT,
            ),
            call.set_parameter(SASParameters.SAS_LOCATION, 'indoor'),
            call.set_parameter(SASParameters.SAS_HEIGHT_TYPE, 'AMSL'),
            call.set_parameter(FreedomFiOneMiscParameters.PRIM_SOURCE, 'GNSS'),
        ]

        self._check_postprocessing(expected=expected, service_cfg=service_cfg)
コード例 #4
0
    def test_post_processing(self) -> None:
        """ Test FreedomFi One specific post processing functionality"""

        acs_state_machine = self.build_freedomfi_one_acs_state_machine()
        cfg_desired = Mock()
        acs_state_machine.device_cfg.set_parameter(
            ParameterName.SERIAL_NUMBER,
            "2006CW5000023",
        )

        cfg_init = FreedomFiOneConfigurationInitializer(acs_state_machine)
        cfg_init.postprocess(
            EnodebConfigBuilder.get_mconfig(),
            self._get_service_config(),
            cfg_desired,
        )
        expected = [
            call.delete_parameter('EARFCNDL'),
            call.delete_parameter('DL bandwidth'),
            call.delete_parameter('UL bandwidth'),
            call.set_parameter(
                'tunnel_ref',
                'Device.IP.Interface.1.IPv4Address.1.',
            ),
            call.set_parameter('prim_src', 'GNSS'),
            call.set_parameter('carrier_agg_enable', True),
            call.set_parameter('carrier_number', 2),
            call.set_parameter('contiguous_cc', 0),
            call.set_parameter('web_ui_enable', False),
            call.set_parameter('sas_enabled', True),
            call.set_parameter(
                'sas_server_url',
                'https://spectrum-connect.federatedwireless.com/v1.2/',
            ),
            call.set_parameter('sas_uid', 'M0LK4T'),
            call.set_parameter('sas_category', 'A'),
            call.set_parameter('sas_channel_type', 'GAA'),
            call.set_parameter(
                'sas_cert_subject',
                '/C=TW/O=Sercomm/OU=WInnForum CBSD Certificate/CN=P27-SCE4255W:%s',
            ),
            call.set_parameter('sas_location', 'indoor'),
            call.set_parameter('sas_height_type', 'AMSL'),
            call.set_parameter_for_object(
                param_name='PLMN 1 cell reserved',
                value=True,
                object_name='PLMN 1',
            ),
        ]
        cfg_desired.mock_calls.sort()
        expected.sort()
        self.assertEqual(cfg_desired.mock_calls, expected)

        # Check without sas config
        service_cfg = {
            "tr069": {
                "interface": "eth1",
                "port": 48080,
                "perf_mgmt_port": 8081,
                "public_ip": "192.88.99.142",
            },
            "reboot_enodeb_on_mme_disconnected": True,
            "s1_interface": "eth1",
        }
        cfg_desired = Mock()
        cfg_init.postprocess(
            EnodebConfigBuilder.get_mconfig(),
            service_cfg,
            cfg_desired,
        )
        expected = [
            call.delete_parameter('EARFCNDL'),
            call.delete_parameter('DL bandwidth'),
            call.delete_parameter('UL bandwidth'),
            call.set_parameter(
                'tunnel_ref',
                'Device.IP.Interface.1.IPv4Address.1.',
            ),
            call.set_parameter('prim_src', 'GNSS'),
            call.set_parameter('carrier_agg_enable', True),
            call.set_parameter('carrier_number', 2),
            call.set_parameter('contiguous_cc', 0),
            call.set_parameter('web_ui_enable', False),
            call.set_parameter_for_object(
                param_name='PLMN 1 cell reserved',
                value=True,
                object_name='PLMN 1',
            ),
        ]
        cfg_desired.mock_calls.sort()
        expected.sort()
        self.assertEqual(cfg_desired.mock_calls, expected)

        service_cfg['web_ui_enable_list'] = ["2006CW5000023"]

        expected = [
            call.delete_parameter('EARFCNDL'),
            call.delete_parameter('DL bandwidth'),
            call.delete_parameter('UL bandwidth'),
            call.set_parameter(
                'tunnel_ref',
                'Device.IP.Interface.1.IPv4Address.1.',
            ),
            call.set_parameter('prim_src', 'GNSS'),
            call.set_parameter('carrier_agg_enable', True),
            call.set_parameter('carrier_number', 2),
            call.set_parameter('contiguous_cc', 0),
            call.set_parameter('web_ui_enable', False),
            call.set_parameter('web_ui_enable', True),
            call.set_parameter_for_object(
                param_name='PLMN 1 cell reserved',
                value=True,
                object_name='PLMN 1',
            ),
        ]
        cfg_desired = Mock()
        cfg_init.postprocess(
            EnodebConfigBuilder.get_mconfig(),
            service_cfg,
            cfg_desired,
        )
        cfg_desired.mock_calls.sort()
        expected.sort()
        self.assertEqual(cfg_desired.mock_calls, expected)