diff --git a/ifupdown2/addons/address.py b/ifupdown2/addons/address.py index a69f294..5ee13db 100644 --- a/ifupdown2/addons/address.py +++ b/ifupdown2/addons/address.py @@ -756,16 +756,8 @@ class address(moduleBase): user_configured_ipv6_addrgen = ifaceobj.get_attr_value_first('ipv6-addrgen') if not user_configured_ipv6_addrgen: - for old_ifaceobj in statemanager.statemanager_api.get_ifaceobjs(ifaceobj.name) or []: - old_config_ipv6_addrgen = old_ifaceobj.get_attr_value_first('ipv6-addrgen') - - if old_config_ipv6_addrgen: - user_configured_ipv6_addrgen = self.get_attr_default_value('ipv6-addrgen') - break - - if not user_configured_ipv6_addrgen: - # no previous config detected we dont have to configure ipv6-addrgen - return + # if user didn't configure ipv6-addrgen, should we reset to default? + user_configured_ipv6_addrgen = self.get_attr_default_value('ipv6-addrgen') ipv6_addrgen_nl = { 'on': 0, diff --git a/ifupdown2/addons/addressvirtual.py b/ifupdown2/addons/addressvirtual.py index e997415..99c4008 100644 --- a/ifupdown2/addons/addressvirtual.py +++ b/ifupdown2/addons/addressvirtual.py @@ -73,6 +73,8 @@ class addressvirtual(moduleBase): default=True ) + self.address_virtual_ipv6_addrgen_value_dict = {'on': 0, 'yes': 0, '0': 0, 'off': 1, 'no': 1, '1': 1} + def get_dependent_ifacenames(self, ifaceobj, ifacenames_all=None): if ifaceobj.get_attr_value('address-virtual'): ifaceobj.link_privflags |= ifaceLinkPrivFlags.ADDRESS_VIRTUAL_SLAVE @@ -207,15 +209,22 @@ class addressvirtual(moduleBase): # IFLA_INET6_ADDR_GEN_MODE values: # 0 = eui64 # 1 = none - ipv6_addrgen_nl = {'on': 0, 'yes': 0, '0': 0, 'off': 1, 'no': 1, '1': 1}.get(ipv6_addrgen.lower(), None) + ipv6_addrgen_nl = self.address_virtual_ipv6_addrgen_value_dict.get(ipv6_addrgen.lower(), None) if ipv6_addrgen_nl is None: - self.logger.warning('%s: value "%s" not allowed for attribute "ipv6-addrgen"' % (ifaceobj.name, user_configured_ipv6_addrgen)) - self.logger.warning('%s: invalid value "%s" for attribute address-virtual-ipv6-addrgen' % (ifaceobj.name, ipv6_addrgen)) else: return True, ipv6_addrgen_nl + else: + # if user didn't configure ipv6-addrgen, should we reset to default? + ipv6_addrgen_nl = self.address_virtual_ipv6_addrgen_value_dict.get( + self.get_attr_default_value('address-virtual-ipv6-addrgen'), + None + ) + if ipv6_addrgen_nl is not None: + return True, ipv6_addrgen_nl + return False, None def _apply_address_config(self, ifaceobj, address_virtual_list):