diff options
Diffstat (limited to 'python')
| -rw-r--r-- | python/vyos/configdict.py | 10 | ||||
| -rwxr-xr-x | python/vyos/ifconfig/interface.py | 8 | 
2 files changed, 10 insertions, 8 deletions
| diff --git a/python/vyos/configdict.py b/python/vyos/configdict.py index 4a7a3a886..df4c80f23 100644 --- a/python/vyos/configdict.py +++ b/python/vyos/configdict.py @@ -383,7 +383,6 @@ def get_interface_dict(config, base, ifname=''):      Return a dictionary with the necessary interface config keys.      """ -      if not ifname:          from vyos import ConfigError          # determine tagNode instance @@ -484,6 +483,9 @@ def get_interface_dict(config, base, ifname=''):      # identical for all types of VLAN interfaces as they all include the same      # XML definitions which hold the defaults.      for vif, vif_config in dict.get('vif', {}).items(): +        # Add subinterface name to dictionary +        dict['vif'][vif].update({'ifname' : f'{ifname}.{vif}'}) +          default_vif_values = defaults(base + ['vif'])          # XXX: T2665: When there is no DHCPv6-PD configuration given, we can safely          # remove the default values from the dict. @@ -515,6 +517,9 @@ def get_interface_dict(config, base, ifname=''):          if dhcp: dict['vif'][vif].update({'dhcp_options_changed' : ''})      for vif_s, vif_s_config in dict.get('vif_s', {}).items(): +        # Add subinterface name to dictionary +        dict['vif_s'][vif_s].update({'ifname' : f'{ifname}.{vif_s}'}) +          default_vif_s_values = defaults(base + ['vif-s'])          # XXX: T2665: we only wan't the vif-s defaults - do not care about vif-c          if 'vif_c' in default_vif_s_values: del default_vif_s_values['vif_c'] @@ -551,6 +556,9 @@ def get_interface_dict(config, base, ifname=''):          if dhcp: dict['vif_s'][vif_s].update({'dhcp_options_changed' : ''})          for vif_c, vif_c_config in vif_s_config.get('vif_c', {}).items(): +            # Add subinterface name to dictionary +            dict['vif_s'][vif_s]['vif_c'][vif_c].update({'ifname' : f'{ifname}.{vif_s}.{vif_c}'}) +              default_vif_c_values = defaults(base + ['vif-s', 'vif-c'])              # XXX: T2665: When there is no DHCPv6-PD configuration given, we can safely diff --git a/python/vyos/ifconfig/interface.py b/python/vyos/ifconfig/interface.py index ea7497e92..22441d1d2 100755 --- a/python/vyos/ifconfig/interface.py +++ b/python/vyos/ifconfig/interface.py @@ -1587,12 +1587,10 @@ class Interface(Control):              tmp['source_interface'] = ifname              tmp['vlan_id'] = vif_s_id -            vif_s_ifname = f'{ifname}.{vif_s_id}' -            vif_s_config['ifname'] = vif_s_ifname -              # It is not possible to change the VLAN encapsulation protocol              # "on-the-fly". For this "quirk" we need to actively delete and              # re-create the VIF-S interface. +            vif_s_ifname = f'{ifname}.{vif_s_id}'              if self.exists(vif_s_ifname):                  cur_cfg = get_interface_config(vif_s_ifname)                  protocol = dict_search('linkinfo.info_data.protocol', cur_cfg).lower() @@ -1614,7 +1612,6 @@ class Interface(Control):                  tmp['vlan_id'] = vif_c_id                  vif_c_ifname = f'{vif_s_ifname}.{vif_c_id}' -                vif_c_config['ifname'] = vif_c_ifname                  c_vlan = VLANIf(vif_c_ifname, **tmp)                  c_vlan.update(vif_c_config) @@ -1625,10 +1622,7 @@ class Interface(Control):          # create/update 802.1q VLAN interfaces          for vif_id, vif_config in config.get('vif', {}).items(): -              vif_ifname = f'{ifname}.{vif_id}' -            vif_config['ifname'] = vif_ifname -              tmp = deepcopy(VLANIf.get_config())              tmp['source_interface'] = ifname              tmp['vlan_id'] = vif_id | 
