summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--data/templates/pppoe/peer.j22
-rwxr-xr-xsrc/conf_mode/interfaces_pppoe.py15
2 files changed, 13 insertions, 4 deletions
diff --git a/data/templates/pppoe/peer.j2 b/data/templates/pppoe/peer.j2
index efe47f369..1cbfaa670 100644
--- a/data/templates/pppoe/peer.j2
+++ b/data/templates/pppoe/peer.j2
@@ -59,7 +59,7 @@ mru {{ mru }}
{{ "usepeerdns" if no_peer_dns is not vyos_defined }}
-{% if ipv6 is vyos_defined %}
++{% if ipv6 is vyos_defined or dhcpv6_options.pd is vyos_defined or (address is vyos_defined and 'dhcpv6' in address) %}
+ipv6 {{ 'ipv6cp-use-ipaddr' if ipv6.address.autoconf is vyos_defined }}
{% else %}
noipv6
diff --git a/src/conf_mode/interfaces_pppoe.py b/src/conf_mode/interfaces_pppoe.py
index 976702aba..7b93c364d 100755
--- a/src/conf_mode/interfaces_pppoe.py
+++ b/src/conf_mode/interfaces_pppoe.py
@@ -49,9 +49,18 @@ def get_config(config=None):
# We should only terminate the PPPoE session if critical parameters change.
# All parameters that can be changed on-the-fly (like interface description)
# should not lead to a reconnect!
- for options in ['access-concentrator', 'connect-on-demand', 'service-name',
- 'source-interface', 'vrf', 'no-default-route',
- 'authentication', 'host_uniq']:
+ for options in [
+ 'access-concentrator',
+ 'connect-on-demand',
+ 'service-name',
+ 'source-interface',
+ 'vrf',
+ 'no-default-route',
+ 'authentication',
+ 'host-uniq',
+ 'dhcpv6-options',
+ 'ipv6',
+ ]:
if is_node_changed(conf, base + [ifname, options]):
pppoe.update({'shutdown_required': {}})
# bail out early - no need to further process other nodes