I've searched a bit, and haven't figured this out.
First, I have a bit of an odd setup. The outside world connects directly to my main Linux box, and then my Linux box connects to my OpenWRT wrouter, and the rest of the house connects to the router. (It's slightly more complicated than that, but I don't think the additional complication is relevant, and I could turn all of that off and would still have the issue I'm having here.) I do this for a couple of reasons, but the primary one is that I have 10gb fiber to my house, and a 10gb ethernet card in the main Linux box. So, I run NAT (for ipv4), dhcp (only for ipv4), and firewalls on my Linux box.
In the router, I've bridged all the ethernet ports and wifi interfaces together, and put a few VLANs on them. Each VLAN interface has a static ip, so in the interface block of /etc/config/network I'm using option proto "static". All of that works.
For all my hosts, I use SLAAC (...OK, I'm new to ipv6, so I may be getting it wrong) to get addresses, and all of that works. However, the router ports themselves are not getting ipv6 addresses. For the most part, this isn't a big deal -- I can route ipv6 to my hosts through the router even though they only seem to have their own fe80: ipv6 addresses, not the ones on the public subnet I've got. I don't totally understand that, but, OK, whatever. However, the completionist in me wants the router VLAN ports also to have their own IPV6 addresses.
I can't just set up static ipv6 addresses because my provider doesn't give me static addresses. Every time I restart (which includes every time I reboot), both my assigned ipv4 and ipv6 addresses may update. (My provider gives me a :128 static address, but also a :56 prefix, and I have successfully received that prefix and delegated various :64 subnets out of the :56 prefix to the various VLAN interfaces on my linux box using dhcpcd. The other hosts on the net, which aren't my router, are getting ipv6 addresses out of the right :64 subnets based on which VLAN they're on. So, I'm pretty sure I've got SLAAC (with radvd) set up properly on my linux box.)
I know that if I set option proto "dhcp6" to work, I can get the desired addresses for the router's interfaces using option reqaddress "try". It seems to that option reqaddress "try" is ignored if proto is `static, however. However, I really want to give them static ipv4 addresses.
Is there a way for an interface to have both a static ipv4 address and a dynamically allocated ipv6 address?