scripts: dhcpv6: don't report custom ip6class if default

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: f08cd5ce5d
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>
This commit is contained in:
Shine authored and Robert Marko committed 2026-06-29 14:50:18 +02:00
1 parent ab40696d61
commit 257aee0cc0
1 file changed
+4
@@ -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#*/}"