From: David Härdeman Date: Fri, 10 Oct 2025 09:43:11 +0000 (+0200) Subject: odhcp6c: use the global DHCP DUID for DHCPv6 X-Git-Url: http://git.openwrt.org/?a=commitdiff_plain;h=7dee632beedbee923c0f993d8e332a8bb3677cc8;p=openwrt%2Fstaging%2Fnbd.git odhcp6c: use the global DHCP DUID for DHCPv6 odhcp6c already supports custom DUIDS on a per-interface basis. When no client identifier has been set, odhcp6c will generate one on the basis of the MAC address of the given interface. This is contrary to how DUIDs are meant to be used, as the client identifier will vary from interface to interface, while it is meant to remain stable for a given host, no matter how the network hardware changes (see RFC8415, §11). Fix this by letting odhcp6c use the global DHCP DUID, if configured. Signed-off-by: David Härdeman Link: https://github.com/openwrt/openwrt/pull/20359 Signed-off-by: Robert Marko --- diff --git a/package/network/ipv6/odhcp6c/files/dhcpv6.sh b/package/network/ipv6/odhcp6c/files/dhcpv6.sh index e8d07ebaa7..00dd610dfa 100755 --- a/package/network/ipv6/odhcp6c/files/dhcpv6.sh +++ b/package/network/ipv6/odhcp6c/files/dhcpv6.sh @@ -2,6 +2,7 @@ . /lib/functions.sh . ../netifd-proto.sh +. /lib/config/uci.sh init_proto "$@" proto_dhcpv6_init_config() { @@ -66,6 +67,7 @@ proto_dhcpv6_setup() { [ -z "$reqprefix" -o "$reqprefix" = "auto" ] && reqprefix=0 [ "$reqprefix" != "no" ] && append opts "-P$reqprefix" + [ -z "$clientid" ] && clientid="$(uci_get network @globals[0] dhcp_default_duid)" [ -n "$clientid" ] && append opts "-c$clientid" [ "$defaultreqopts" = "0" ] && append opts "-R"