summaryrefslogtreecommitdiff
path: root/python
diff options
context:
space:
mode:
authorChristian Poessinger <christian@poessinger.com>2020-03-27 17:03:24 +0100
committerChristian Poessinger <christian@poessinger.com>2020-03-28 11:28:56 +0100
commit09a0cecf02972fa9019fcfd900c50b27797f40e2 (patch)
treed58db577283626a93c2680ec9e3aa7b9cfea0e25 /python
parentadc09e4ecaf91bc93b3994eac4f2f2ac2786a1c7 (diff)
downloadvyos-1x-09a0cecf02972fa9019fcfd900c50b27797f40e2.tar.gz
vyos-1x-09a0cecf02972fa9019fcfd900c50b27797f40e2.zip
ipv6: T1831: migrate autoconf node
Autoconfigure addresses using Prefix Information in Router Advertisements.
Diffstat (limited to 'python')
-rw-r--r--python/vyos/configdict.py5
-rw-r--r--python/vyos/ifconfig/interface.py11
-rw-r--r--python/vyos/ifconfig_vlan.py4
3 files changed, 19 insertions, 1 deletions
diff --git a/python/vyos/configdict.py b/python/vyos/configdict.py
index b0214ded4..66da52ff3 100644
--- a/python/vyos/configdict.py
+++ b/python/vyos/configdict.py
@@ -123,6 +123,7 @@ def vlan_to_dict(conf):
'ip_enable_arp_accept': 0,
'ip_enable_arp_announce': 0,
'ip_enable_arp_ignore': 0,
+ 'ipv6_autoconf': 0,
'ipv6_forwarding': 1,
'ipv6_dup_addr_detect': 1,
'ingress_qos': '',
@@ -189,6 +190,10 @@ def vlan_to_dict(conf):
if conf.exists('ip enable-arp-ignore'):
vlan['ip_enable_arp_ignore'] = 1
+ # Enable acquisition of IPv6 address using stateless autoconfig (SLAAC)
+ if conf.exists('ipv6 address autoconf'):
+ vlan['ipv6_autoconf'] = 1
+
# Disable IPv6 forwarding on this interface
if conf.exists('ipv6 disable-forwarding'):
vlan['ipv6_forwarding'] = 0
diff --git a/python/vyos/ifconfig/interface.py b/python/vyos/ifconfig/interface.py
index da6b54e69..a2d202466 100644
--- a/python/vyos/ifconfig/interface.py
+++ b/python/vyos/ifconfig/interface.py
@@ -115,6 +115,10 @@ class Interface(DHCP):
'validate': assert_boolean,
'location': '/proc/sys/net/ipv4/conf/{ifname}/arp_ignore',
},
+ 'ipv6_autoconf': {
+ 'validate': lambda fwd: assert_range(fwd,0,2),
+ 'location': '/proc/sys/net/ipv6/conf/{ifname}/autoconf',
+ },
'ipv6_forwarding': {
'validate': lambda fwd: assert_range(fwd,0,2),
'location': '/proc/sys/net/ipv6/conf/{ifname}/forwarding',
@@ -382,6 +386,13 @@ class Interface(DHCP):
"""
return self.set_interface('arp_ignore', arp_ignore)
+ def set_ipv6_autoconf(self, autoconf):
+ """
+ Autoconfigure addresses using Prefix Information in Router
+ Advertisements.
+ """
+ return self.set_interface('ipv6_autoconf', autoconf)
+
def set_ipv6_forwarding(self, forwarding):
"""
Configure IPv6 interface-specific Host/Router behaviour.
diff --git a/python/vyos/ifconfig_vlan.py b/python/vyos/ifconfig_vlan.py
index b3c5f3b76..00270cf58 100644
--- a/python/vyos/ifconfig_vlan.py
+++ b/python/vyos/ifconfig_vlan.py
@@ -64,7 +64,9 @@ def apply_vlan_config(vlan, config):
vlan.set_arp_announce(config['ip_enable_arp_announce'])
# configure ARP ignore
vlan.set_arp_ignore(config['ip_enable_arp_ignore'])
- # Disable IPv6 forwarding on this interface
+ # IPv6 address autoconfiguration
+ vlan.set_ipv6_autoconf(config['ipv6_autoconf'])
+ # IPv6 forwarding
vlan.set_ipv6_forwarding(config['ipv6_forwarding'])
# IPv6 Duplicate Address Detection (DAD) tries
vlan.set_ipv6_dad_messages(config['ipv6_dup_addr_detect'])