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>
#!/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=""
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#*/}"