From 9e5c6a935e2f552f790f843d4bd8e63e1a1d90ca Mon Sep 17 00:00:00 2001
From: Jernej Jakob <jernej.jakob@gmail.com>
Date: Mon, 11 May 2020 17:49:11 +0200
Subject: tunnel: T2449: set accept_ra=2 if ipv6 address autoconf or dhcpv6 is
 set

To make SLAAC and DHCPv6 work when forwarding=1, accept_ra must be 2
(default for accept_ra is 1).
---
 src/conf_mode/interfaces-tunnel.py | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/src/conf_mode/interfaces-tunnel.py b/src/conf_mode/interfaces-tunnel.py
index f4cd53981..3e8653d58 100755
--- a/src/conf_mode/interfaces-tunnel.py
+++ b/src/conf_mode/interfaces-tunnel.py
@@ -251,6 +251,7 @@ default_config_data = {
     'ip': False,
     'ipv6': False,
     'nhrp': [],
+    'ipv6_accept_ra': 1,
     'ipv6_autoconf': 0,
     'ipv6_forwarding': 1,
     'ipv6_dad_transmits': 1,
@@ -401,6 +402,11 @@ def get_config():
     eff_addr = conf.return_effective_values('address')
     options['addresses-del'] = list_diff(eff_addr, options['addresses-add'])
 
+    # to make IPv6 SLAAC and DHCPv6 work with forwarding=1,
+    # accept_ra must be 2
+    if options['ipv6_autoconf'] or 'dhcpv6' in options['address']:
+        options['ipv6_accept_ra'] = 2
+
     # allmulticast fate is linked to multicast
     options['allmulticast'] = options['multicast']
 
@@ -636,7 +642,7 @@ def apply(conf):
 
     # set other interface properties
     for option in ('alias', 'mtu', 'link_detect', 'multicast', 'allmulticast',
-                   'ipv6_autoconf', 'ipv6_forwarding', 'ipv6_dad_transmits'):
+                   'ipv6_accept_ra', 'ipv6_autoconf', 'ipv6_forwarding', 'ipv6_dad_transmits'):
         if not options[option]:
             # should never happen but better safe
             continue
-- 
cgit v1.2.3