Cannot use ipvlan/macvlan with docker

I'm trying to move my pihole docker container from my standalone rpi to my OpenWRT router - currently running on a small x86 embedded PC.

I've flashed 21.02.0-rc4 and installed all of the docker packages and the luci app. While I can create ipvlan/macvlan networks just fine, trying to create/start a container using an ipvlan or macvlan network gives the following error:

docker: Error response from daemon: failed to create the ipvlan port: operation not supported.

At first I thought it was because I was trying to set the parent to br-lan, but even trying to use a physical interface like eth0 doesn't work either. This happens even with a simple image like alpine with no exposed ports, and regardless of whether I create the network or container (or both) via luci, the docker cli, or docker-compose.

I use ipvlan networks on my other server (Ubuntu) without issue, so I'm trying to figure out what it is about OpenWRTs version of docker that is preventing this.

In case this helps, below is the output of docker info, though there doesn't appear to be anything significantly different between this and the output on my Ubuntu server, unless having cgroupns enabled or version 2 of cgroup vs version 1 would be causing this. (The runc and containerd versions are also different, but since the docker version (20.10.7) is the same, I have a hard time imaging that to be the culprit)

Context:    default
Debug Mode: false

Containers: 0
Running: 0
Paused: 0
Stopped: 0
Images: 3
Server Version: 20.10.7
Storage Driver: overlay2
Backing Filesystem: extfs
Supports d_type: true
Native Overlay Diff: true
userxattr: false
Logging Driver: json-file
Cgroup Driver: cgroupfs
Cgroup Version: 2
Volume: local
Network: bridge host ipvlan macvlan null overlay
Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
Swarm: inactive
Runtimes: io.containerd.runc.v2 io.containerd.runtime.v1.linux runc
Default Runtime: runc
Init Binary: docker-init
containerd version: d71fcd7d8303cbf684402823e425e9dd2e99285d
runc version: b9ee9c6314599f1b4a7f497e1f1f856fe433d3b7
init version: de40ad0
Security Options:
Kernel Version: 5.4.137
Operating System: OpenWrt 21.02.0-rc4
OSType: linux
Architecture: x86_64
CPUs: 4
Total Memory: 1.776GiB
Name: fitlet.studiop
Docker Root Dir: /opt/docker
Debug Mode: false
Experimental: false
Insecure Registries:
Live Restore Enabled: false

you need kmod-ipvlan