diff options
author | Christian Poessinger <christian@poessinger.com> | 2020-05-11 18:46:18 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-05-11 18:46:18 +0200 |
commit | 6346a5f1a08e878e51213031ac33dcec08e368cd (patch) | |
tree | 7ace538f7568a8005f0e4f0987b27f0fd8dde20b /python/vyos/ifconfig | |
parent | 4ca0e563861f1d0ebf99afc012a9b95d9492e399 (diff) | |
parent | 49fc2c83adfa2c5dc169cae675f65c8e36a7d6c4 (diff) | |
download | vyos-1x-6346a5f1a08e878e51213031ac33dcec08e368cd.tar.gz vyos-1x-6346a5f1a08e878e51213031ac33dcec08e368cd.zip |
Merge pull request #407 from jjakob/accept-ra-fix-T2449
T2449: set 'accept_ra=2' if 'address dhcpv6' or 'ipv6 address autoconf' is set
Diffstat (limited to 'python/vyos/ifconfig')
-rw-r--r-- | python/vyos/ifconfig/dhcp.py | 6 | ||||
-rw-r--r-- | python/vyos/ifconfig/interface.py | 21 |
2 files changed, 20 insertions, 7 deletions
diff --git a/python/vyos/ifconfig/dhcp.py b/python/vyos/ifconfig/dhcp.py index bf6566c07..57e488cc7 100644 --- a/python/vyos/ifconfig/dhcp.py +++ b/python/vyos/ifconfig/dhcp.py @@ -114,9 +114,6 @@ class _DHCPv6 (Control): render(self.options['options_file'], 'dhcp-client/daemon-options.tmpl', self.options) render(self.options['conf_file'], 'dhcp-client/ipv6.tmpl', self.options) - # no longer accept router announcements on this interface - self._write_sysfs('/proc/sys/net/ipv6/conf/{ifname}/accept_ra'.format(**self.options), 0) - return self._cmd('systemctl restart dhclient6@{ifname}.service'.format(**self.options)) def delete(self): @@ -136,9 +133,6 @@ class _DHCPv6 (Control): self._cmd('systemctl stop dhclient6@{ifname}.service'.format(**self.options)) - # accept router announcements on this interface - self._write_sysfs('/proc/sys/net/ipv6/conf/{ifname}/accept_ra'.format(**self.options), 1) - # cleanup old config files for name in ('conf_file', 'options_file', 'pid_file', 'lease_file'): if os.path.isfile(self.options[name]): diff --git a/python/vyos/ifconfig/interface.py b/python/vyos/ifconfig/interface.py index 7b42e3399..61f2c6482 100644 --- a/python/vyos/ifconfig/interface.py +++ b/python/vyos/ifconfig/interface.py @@ -134,8 +134,12 @@ class Interface(Control): 'validate': assert_boolean, 'location': '/proc/sys/net/ipv4/conf/{ifname}/arp_ignore', }, + 'ipv6_accept_ra': { + 'validate': lambda ara: assert_range(ara,0,3), + 'location': '/proc/sys/net/ipv6/conf/{ifname}/accept_ra', + }, 'ipv6_autoconf': { - 'validate': lambda fwd: assert_range(fwd,0,2), + 'validate': lambda aco: assert_range(aco,0,2), 'location': '/proc/sys/net/ipv6/conf/{ifname}/autoconf', }, 'ipv6_forwarding': { @@ -409,6 +413,21 @@ class Interface(Control): """ return self.set_interface('arp_ignore', arp_ignore) + def set_ipv6_accept_ra(self, accept_ra): + """ + Accept Router Advertisements; autoconfigure using them. + + It also determines whether or not to transmit Router Solicitations. + If and only if the functional setting is to accept Router + Advertisements, Router Solicitations will be transmitted. + + 0 - Do not accept Router Advertisements. + 1 - (default) Accept Router Advertisements if forwarding is disabled. + 2 - Overrule forwarding behaviour. Accept Router Advertisements even if + forwarding is enabled. + """ + return self.set_interface('ipv6_accept_ra', accept_ra) + def set_ipv6_autoconf(self, autoconf): """ Autoconfigure addresses using Prefix Information in Router |