summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Breunig <christian@breunig.cc>2025-01-06 09:04:35 +0100
committerGitHub <noreply@github.com>2025-01-06 09:04:35 +0100
commit9c091f0f601d1a24e386ad0d883c6dd2f2c51b63 (patch)
treed7da37535496545d7af8b6fbe3117a7ffb56b5e3
parent9dae22e875bc77e44633027d06afdb95eb97d66b (diff)
parente65dba36fd76b54b0ff35968475913b5b255a914 (diff)
downloadvyos-1x-9c091f0f601d1a24e386ad0d883c6dd2f2c51b63.tar.gz
vyos-1x-9c091f0f601d1a24e386ad0d883c6dd2f2c51b63.zip
Merge pull request #4278 from yzguy/T7016
T7016: force delete only dynamic IPv4 address from interface
-rw-r--r--python/vyos/ifconfig/interface.py12
1 files changed, 7 insertions, 5 deletions
diff --git a/python/vyos/ifconfig/interface.py b/python/vyos/ifconfig/interface.py
index cad1685a9..de821ab60 100644
--- a/python/vyos/ifconfig/interface.py
+++ b/python/vyos/ifconfig/interface.py
@@ -1423,11 +1423,13 @@ class Interface(Control):
tmp = get_interface_address(self.ifname)
if tmp and 'addr_info' in tmp:
for address_dict in tmp['addr_info']:
- # Only remove dynamic assigned addresses
- if 'dynamic' not in address_dict:
- continue
- address = address_dict['local']
- self.del_addr(address)
+ if address_dict['family'] == 'inet':
+ # Only remove dynamic assigned addresses
+ if 'dynamic' not in address_dict:
+ continue
+ address = address_dict['local']
+ prefixlen = address_dict['prefixlen']
+ self.del_addr(f'{address}/{prefixlen}')
# cleanup old config files
for file in [dhclient_config_file, systemd_override_file, dhclient_lease_file]: