Page MenuHomeVyOS Platform

interfaces pppoe missing ipv6 address no-default-link-local option
Open, NormalPublicBUG

Description

PPPoE interfaces automatically receive an IPv6 link-local address (fe80::/10) even when no IPv6 options are configured. There is no CLI option to suppress this, unlike all other interface types (ethernet, bonding, bridge, wireless, etc.) which expose set interfaces <type> <ifname> ipv6 address no-default-link-local.

Steps to reproduce

Configure a PPPoE interface with no IPv6 options whatsoever (no ipv6 address autoconf, no dhcpv6-options, no address dhcpv6).
Bring the interface up.
Run ip addr show <pppoe-ifname>.

Observed behaviour

An inet6 fe80::... link-local address is present on the interface with no way to remove it via CLI.

Expected behaviour

set interfaces pppoe <ifname> ipv6 address no-default-link-local should be available, consistent with all other interface types.

Root cause

Commit rVYOSONEXd0a20884614e (interface: T4627: not every interface type supports IPv6 interface-identifiers, 2025-04-23) restructured IPv6 address options. The old ipv6-address.xml.i (which bundled autoconf, eui64, interface-identifier, and no-default-link-local together) was deleted. Its replacement, ipv6-options.xml.i, now inlines ipv6-address-no-default-link-local.xml.i directly.

All standard interface types use ipv6-options.xml.i and therefore inherit no-default-link-local automatically. PPPoE, however, defines its ipv6 node inline in interfaces_pppoe.xml.in rather than via the shared include. The commit only added ipv6-address-interface-identifier.xml.i to PPPoE's inline node — ipv6-address-no-default-link-local.xml.i was not added alongside it.

Affected file

interface-definitions/interfaces_pppoe.xml.in lines 105–108:

<children>

#include <include/interface/ipv6-address-autoconf.xml.i>  
#include <include/interface/ipv6-address-interface-identifier.xml.i>  
<!-- missing: #include <include/interface/ipv6-address-no-default-link-local.xml.i> -->

</children>

Suggested fix

Add the missing include to interfaces_pppoe.xml.in:

<children>

#include <include/interface/ipv6-address-autoconf.xml.i>  
#include <include/interface/ipv6-address-interface-identifier.xml.i>  
#include <include/interface/ipv6-address-no-default-link-local.xml.i>

</children>

This is consistent with how ipv6-options.xml.i handles the same set of options for all other interface types.

The relevant code references are interface-definitions/interfaces_pppoe.xml.in interfaces_pppoe.xml.in:105-109 and interface-definitions/include/interface/ipv6-options.xml.i which inlines no-default-link-local for all other interface types. ipv6-options.xml.i:1

Details

Version
VyOS 2026.07.11-0033-rolling
Is it a breaking change?
Unspecified (possibly destroys the router)
Issue type
Bug (incorrect behavior)