summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ncserver/module/ip.py3
1 files changed, 3 insertions, 0 deletions
diff --git a/ncserver/module/ip.py b/ncserver/module/ip.py
index a7f645c..0f3eff1 100644
--- a/ncserver/module/ip.py
+++ b/ncserver/module/ip.py
@@ -200,6 +200,7 @@ def operational(node):
# IPv4
ipv4 = _add_ipv4(iface, nmsa.curr_param)
+ apipa_net = ipaddress.IPv4Network("169.254.0.0/16")
for addr in addrs:
if not isinstance(addr, ipaddress.IPv4Interface):
continue
@@ -213,6 +214,8 @@ def operational(node):
conf = "{a}/{p}".format(a=str(addr.ip), p=addr.network.prefixlen)
if conf in nmsa.list_addresses(name):
origin = "static"
+ elif addr in apipa_net:
+ origin = "random"
addr_node.append(util.leaf_elm('ip:origin', origin))
# IPv6
ipv6 = _add_ipv6(iface, nmsa.curr_param)