diff options
| author | metricsmancer <metricsmancer@gmail.com> | 2026-03-21 17:59:56 +0100 |
|---|---|---|
| committer | metricsmancer <metricsmancer@gmail.com> | 2026-03-21 17:59:56 +0100 |
| commit | 5c800be95921e2d22ea0e43b931dea1abd3616a0 (patch) | |
| tree | f94da64b14f34ec8c6d4b7c7d0c2f0ce4db350e7 /src | |
| parent | fc06cc45148a42171baf9f4ae01da33c3f0df1aa (diff) | |
| download | vyos-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-x | src/conf_mode/interfaces_pppoe.py | 15 |
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 |
