Page MenuHomeVyOS Platform

DHCPv6-PD config broken by recent change
Closed, ResolvedPublic

Description

Starting with 1.3-rolling-202007251937 (it works in 1.3-rolling-202007251937), the list of prefix-delegated interfaces dhcpv6_pd_interfaces never makes it to the template in /usr/share/vyos/templates/dhcp-client/ipv6.tmpl.

I believe the change likely related to the get_config_dict() changes in T2653 that were merged on July 25.

To demonstrate, as far as I can tell, have any config with DHCPv6-PD, such as:

...
interfaces {
    ethernet eth0 {
        address 1.2.3.4/29
        address dhcpv6
        dhcpv6-options {
            prefix-delegation {
                interface eth1 {
                    address 1
                    sla-id 1
                    sla-len 4
                }
                interface eth2 {
                    address 1
                    sla-id 2
                    sla-len 4
                }
        }
        ipv6 {
            address {
                autoconf
            }
        }
    }
    ethernet eth1 {
        address 192.168.1.1/24
    }
    ethernet eth2 {
        address 192.168.10.1/24
    }
}
...

And then note the following contents of /run/dhcp6c/dhcp6c.eth0.conf:

# generated by dhcp.py
# man https://www.unix.com/man-page/debian/5/dhcp6c.conf/

interface eth0 {
    request domain-name-servers;
    request domain-name;
    send ia-na 1; # non-temporary address
};

id-assoc na 1 {
    # Identity association NA
};

There's no send ia-pd 2; # prefix delegation or id-assoc pd 2 { section, so it seems like the new config code isn't propagating the dhcpv6_pd_interfaces value to the _DHCPv6 class in vyos/ifconfig/dhcp.py from vyos/ifconfig/interface.py.

I also tried setting int eth eth0 dhcpv6-options temporary just to see if that made it to the config file. It did not.

Details

Difficulty level
Unknown (require assessment)
Version
-
Why the issue appeared?
Will be filled on close
Is it a breaking change?
Unspecified (possibly destroys the router)

Event Timeline

gadams created this object in space S1 VyOS Public.

I have to apologize here: While working on https://phabricator.vyos.net/T2653 I knew I must change this and did it on PPPoE but I totally forgot about this on all other interfaces as PPPoE has a special case here.