]> git.ipfire.org Git - thirdparty/openwrt.git/commitdiff
scripts: dhcpv6: don't report custom ip6class if default 23989/head
authorShine <4c.fce2@proton.me>
Mon, 29 Jun 2026 07:23:45 +0000 (09:23 +0200)
committerRobert Marko <robimarko@gmail.com>
Mon, 29 Jun 2026 12:50:18 +0000 (14:50 +0200)
odhcp6c returns delegated prefixes with a "class=<IAID>" tag if a custom
IAID was specified in the -P argument. This tag must then be used for any
prefix filter ("network.<interface>.ip6class") instead of the uplink i/f
name.

OpenWrt by default uses the first eight digits of the uplink i/f name's MD5
hash as IAID. Don't report a custom "class" tag for this default IAID.

Fixes: f08cd5ce5d66d76fa6e282d6e3f29bab9cdf8023
Signed-off-by: Shine <4c.fce2@proton.me>
Tested-by: Goetz Goerisch <ggoerisch@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/23989
Signed-off-by: Robert Marko <robimarko@gmail.com>
package/network/ipv6/odhcp6c/files/dhcpv6.script

index 94f1952ecc4756f59c34936001ff51a3cea75a3a..189bd4fea531eaf53b7acbecac408a5ce703206a 100755 (executable)
@@ -1,10 +1,12 @@
 #!/bin/sh
 [ -z "$2" ] && echo "Error: should be run by odhcpc6c" && exit 1
 . /lib/functions.sh
+. /lib/functions/network.sh
 . /lib/netifd/netifd-proto.sh
 
 setup_interface () {
        local device="$1"
+       local iaid
        local prefsig=""
        local addrsig=""
 
@@ -42,7 +44,9 @@ setup_interface () {
                proto_add_dns_search "$domain"
        done
 
+       network_generate_iface_iaid iaid "$device"
        for prefix in $PREFIXES; do
+               prefix="${prefix/,class=$iaid/}"
                proto_add_ipv6_prefix "$prefix"
                prefsig="$prefsig ${prefix%%,*}"
                local entry="${prefix#*/}"