diff options
| author | Christian Breunig <christian@breunig.cc> | 2023-07-03 20:46:55 +0200 | 
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-07-03 20:46:55 +0200 | 
| commit | b9e0cbfa934317f572e0f16bb2a195a3c4a6876e (patch) | |
| tree | 89f36fda3d87cd26986c31c0d90282a6cbbc257e /src/conf_mode/vpp.py | |
| parent | 4599a9e35b8944a56e82d990957da27444b7814c (diff) | |
| parent | f6036065083c76fa6ba0aed67ba7c07e5e53c07b (diff) | |
| download | vyos-1x-b9e0cbfa934317f572e0f16bb2a195a3c4a6876e.tar.gz vyos-1x-b9e0cbfa934317f572e0f16bb2a195a3c4a6876e.zip | |
Merge pull request #2071 from zdc/T1797-sagitta
VPP: T1797: Added interfaces reinitialization
Diffstat (limited to 'src/conf_mode/vpp.py')
| -rwxr-xr-x | src/conf_mode/vpp.py | 19 | 
1 files changed, 11 insertions, 8 deletions
| diff --git a/src/conf_mode/vpp.py b/src/conf_mode/vpp.py index 62ec4c162..dc13f4e60 100755 --- a/src/conf_mode/vpp.py +++ b/src/conf_mode/vpp.py @@ -21,13 +21,11 @@ from pathlib import Path  from re import search as re_search, MULTILINE as re_M  from vyos.config import Config +from vyos.configdep import set_dependents, call_dependents  from vyos.configdict import dict_merge  from vyos.configdict import node_changed  from vyos.ifconfig import Section -from vyos.ifconfig import EthernetIf -from vyos.ifconfig import interface -from vyos.util import call -from vyos.util import rc_cmd +from vyos.util import call, rc_cmd, boot_configuration_complete  from vyos.template import render  from vyos.xml import defaults @@ -48,7 +46,6 @@ MIN_TOTAL_MEMORY = 6  def _get_pci_address_by_interface(iface) -> str: -    from vyos.util import rc_cmd      rc, out = rc_cmd(f'ethtool -i {iface}')      # if ethtool command was successful      if rc == 0 and out: @@ -87,6 +84,9 @@ def get_config(config=None):                  'iface_name': removed_iface,                  'iface_pci_addr': pci_address              }) +            # add an interface to a list of interfaces that need +            # to be reinitialized after the commit +            set_dependents('ethernet', conf, removed_iface)      if not conf.exists(base):          return {'removed_ifaces': removed_ifaces} @@ -107,6 +107,9 @@ def get_config(config=None):          for iface, iface_config in config['interface'].items():              default_values_iface = defaults(base + ['interface'])              config['interface'][iface] = dict_merge(default_values_iface, config['interface'][iface]) +            # add an interface to a list of interfaces that need +            # to be reinitialized after the commit +            set_dependents('ethernet', conf, iface)          # Get PCI address auto          for iface, iface_config in config['interface'].items(): @@ -186,9 +189,9 @@ def apply(config):              if iface not in Section.interfaces():                  vpp_control.lcp_pair_add(iface, iface) -        # update interface config -        #e = EthernetIf(iface) -        #e.update(config['other_interfaces'][iface]) +    # reinitialize interfaces, but not during the first boot +    if boot_configuration_complete(): +        call_dependents()  if __name__ == '__main__': | 
