diff options
| author | khramshinr <khramshinr@gmail.com> | 2024-03-28 16:01:30 +0800 | 
|---|---|---|
| committer | khramshinr <khramshinr@gmail.com> | 2024-03-28 16:29:06 +0800 | 
| commit | 0d82dfa3725a23969fd6ae02b76b135a29be6df3 (patch) | |
| tree | 9444033736a7efcf8961e13a8e72063d53be4dbc /python | |
| parent | 63b9889f2070ae09774c71ff1449a5c1f7b99881 (diff) | |
| download | vyos-1x-0d82dfa3725a23969fd6ae02b76b135a29be6df3.tar.gz vyos-1x-0d82dfa3725a23969fd6ae02b76b135a29be6df3.zip | |
dhcp-server: T4718: Listen-address is not commit if the ip address is on the interface with vrf
Diffstat (limited to 'python')
| -rw-r--r-- | python/vyos/template.py | 2 | ||||
| -rw-r--r-- | python/vyos/utils/network.py | 4 | 
2 files changed, 3 insertions, 3 deletions
| diff --git a/python/vyos/template.py b/python/vyos/template.py index bde8e3554..19a469c8f 100644 --- a/python/vyos/template.py +++ b/python/vyos/template.py @@ -794,7 +794,7 @@ def kea_address_json(addresses):      out = []      for address in addresses: -        ifname = is_addr_assigned(address, return_ifname=True) +        ifname = is_addr_assigned(address, return_ifname=True, include_vrf=True)          if not ifname:              continue diff --git a/python/vyos/utils/network.py b/python/vyos/utils/network.py index cac59475d..829124b57 100644 --- a/python/vyos/utils/network.py +++ b/python/vyos/utils/network.py @@ -310,7 +310,7 @@ def is_ipv6_link_local(addr):      return False -def is_addr_assigned(ip_address, vrf=None, return_ifname=False) -> bool | str: +def is_addr_assigned(ip_address, vrf=None, return_ifname=False, include_vrf=False) -> bool | str:      """ Verify if the given IPv4/IPv6 address is assigned to any interface """      from netifaces import interfaces      from vyos.utils.network import get_interface_config @@ -321,7 +321,7 @@ def is_addr_assigned(ip_address, vrf=None, return_ifname=False) -> bool | str:          # case there is no need to proceed with this data set - continue loop          # with next element          tmp = get_interface_config(interface) -        if dict_search('master', tmp) != vrf: +        if dict_search('master', tmp) != vrf and not include_vrf:              continue          if is_intf_addr_assigned(interface, ip_address): | 
