summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authormetricsmancer <metricsmancer@gmail.com>2026-03-21 17:59:56 +0100
committermetricsmancer <metricsmancer@gmail.com>2026-03-21 17:59:56 +0100
commit5c800be95921e2d22ea0e43b931dea1abd3616a0 (patch)
treef94da64b14f34ec8c6d4b7c7d0c2f0ce4db350e7 /src
parentfc06cc45148a42171baf9f4ae01da33c3f0df1aa (diff)
downloadvyos-1x-5c800be95921e2d22ea0e43b931dea1abd3616a0.tar.gz
vyos-1x-5c800be95921e2d22ea0e43b931dea1abd3616a0.zip
T8405: fix noipv6 emitted when dhcpv6-options configured without ipv6 node
When a PPPoE interface has dhcpv6-options (e.g. prefix delegation) configured but no explicit ipv6 node, the Jinja template writes noipv6 into the PPP peer configuration. This prevents IPv6CP negotiation, causing the ISP to silently ignore all DHCPv6 traffic. Fix the peer template to also check for dhcpv6_options before emitting noipv6, and add dhcpv6-options and ipv6 to the list of config nodes that trigger a PPPoE session restart so the change takes effect without manual disconnect/reconnect.
Diffstat (limited to 'src')
-rwxr-xr-xsrc/conf_mode/interfaces_pppoe.py15
1 files changed, 12 insertions, 3 deletions
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