I have two OpenWrt hosts host A an host B. Host A is upstream of host B. The interface of host A where host B is connected to has an address with prefix /56. Host A has odhcpd running as DHCPv6-Server and delegates a prefix of /62 to host B.
Now I would like Host B to get a /58 prefix instead. So I configured Host B with reqprefix '58'. The problem is, host B still gets a prefix of /62. I verified with tcpdump that host A indeed requests /58 and that it receives a /62-prefix.
The first router needs a value large enough with ip6assign and the other router needs to explicit request the PD size on its dhcpv6 client network stanza.
Correct sub2 has a prefix of 56 so it should be able to handout a prefix of 58 unless there are other clients which are requesting large prefixes, so that is something to check.
I have the same setup (not qemu but just regular routers) and my downstream router can request a PD of 58 with option reqprefix
So maybe other clients of sub2 requesting large prefixes (or a qemu quirk), I use 24.10.1 on both routers.
Use ifstatus with the UCI interface name to see details about an interface.
When a prefix of the requested size is not available it will assign a smaller one. I do not know exactly how that works though. Prefix delegation is not an integral kernel feature; OpenWrt specific code somewhere does it.