Example #1
0
    def _get_config(self, config_dict, mconfig):
        def get_virtual_iface_mac(iface):
            virt_ifaddresses = netifaces.ifaddresses(iface)
            return virt_ifaddresses[netifaces.AF_LINK][0]['addr']

        virtual_iface = config_dict.get('virtual_interface', None)
        virtual_mac = None
        if virtual_iface:
            virtual_mac = get_virtual_iface_mac(virtual_iface)
        mtr_ip = None
        if 'mtr_ip' in config_dict:
            mtr_ip = config_dict['mtr_ip']
        mtr_mac = None
        if mtr_ip:
            mtr_mac = get_virtual_iface_mac(config_dict['mtr_interface'])
        return self.ArpdConfig(
            #TODO failsafes for fields not existing or yml updates
            virtual_iface=virtual_iface,
            virtual_mac=virtual_mac,
            ue_ip_blocks=[cidr_to_ip_netmask_tuple(mconfig.ue_ip_block)],
            cwf_check_quota_ip=config_dict.get('quota_check_ip', None),
            cwf_bridge_mac=get_virtual_iface_mac(config_dict['bridge_name']),
            mtr_ip=mtr_ip,
            mtr_mac=mtr_mac,
        )
Example #2
0
    def _get_config(self, config_dict, mconfig):
        def get_virtual_iface_mac():
            virtual_iface = config_dict['virtual_interface']
            virt_ifaddresses = netifaces.ifaddresses(virtual_iface)
            return virt_ifaddresses[netifaces.AF_LINK][0]['addr']

        return self.ArpdConfig(
            virtual_iface=config_dict['virtual_interface'],
            virtual_mac=get_virtual_iface_mac(),
            ue_ip_blocks=[cidr_to_ip_netmask_tuple(mconfig.ue_ip_block)],
        )
Example #3
0
    def _get_config(self, config_dict, mconfig):
        def get_virtual_iface_mac(iface):
            virt_ifaddresses = netifaces.ifaddresses(iface)
            return virt_ifaddresses[netifaces.AF_LINK][0]['addr']

        enable_nat = config_dict.get('enable_nat', True)
        # if NAT is disabled, enable router by default.
        dp_router_enabled = config_dict.get('dp_router_enabled', not enable_nat)

        setup_type = config_dict.get('setup_type', None)

        virtual_iface = config_dict.get('virtual_interface', None)
        if enable_nat is True or setup_type != 'LTE':
            if virtual_iface is not None:
                virtual_mac = get_virtual_iface_mac(virtual_iface)
            else:
                virtual_mac = None
        else:
            # override virtual mac from config file.
            virtual_mac = config_dict.get('virtual_mac', None)

        mtr_ip = None
        if 'mtr_ip' in config_dict:
            mtr_ip = config_dict['mtr_ip']
        mtr_mac = None
        if mtr_ip:
            if 'mtr_mac' in config_dict:
                mtr_mac = config_dict['mtr_mac']
            else:
                mtr_mac = get_virtual_iface_mac(config_dict['mtr_interface'])

        return self.ArpdConfig(
            # TODO failsafes for fields not existing or yml updates
            virtual_iface=virtual_iface,
            virtual_mac=virtual_mac,
            # TODO deprecate this, use mobilityD API to get ip-blocks
            ue_ip_blocks=[cidr_to_ip_netmask_tuple(mconfig.ue_ip_block)],
            cwf_check_quota_ip=config_dict.get('quota_check_ip', None),
            cwf_bridge_mac=get_virtual_iface_mac(config_dict['bridge_name']),
            mtr_ip=mtr_ip,
            mtr_mac=mtr_mac,
            enable_nat=enable_nat,
            dp_router_enabled=dp_router_enabled,
        )