I have D-Link DIR-878 A1 running OpenWRT 21.02.0-rc3 (also rc2 and rc1) with a simple "dumb AP" config (included at the bottom of this message). All ethernet ports and wireless are bridged together and DHCP and firewall disabled. Router with a DHCP server (72-hour leases) and radvd for IPv6 (ULA only) is connected to DIR-878's WAN port.
Two Android 9 devices connected to the 802.11n 2.4 GHz AP will lose network connection (an x on the wifi icon) after a few hours (3-12 hours is typical, always less than 24 hours). One of the devices will fix itself after an hour or two. The other device will stick with the broken connection as long as it stays in the AP range or is manually reconnected. The AP won't disassociate the devices so they must be correctly replying to the inactivity polls.
I haven't been able to figure out anything in the OpenWRT log that could be interesting. There seems to be no way to determine from the log when a device has lost the network connection. For example, other devices connecting or disconnecting don't seem to be a reason or at least it's not very obvious.
When one of the devices loses network connection (while staying connected to the AP) the other devices continue to work normally with good performance. Both Android 9 devices may be without network connection at the same time but the connection loss doesn't happen at the same moment on both devices (it may be hours apart).
When a device is in the problem state, trying to ping it from a computer connected via ethernet will obviously not work. "iw dev wlan0 station get THE_MAC_ADDRESS" on DIR-878 shows no change in "tx packets" or "rx packets" when pinging is attempted. I suspect that the device doesn't see broadcasted ARP requests and thus cannot attempt to reply to them. So no unicast echo-request packets will be sent from the computer.
If I manually add an ARP entry for the Android 9 device on the computer and try to ping again, then both tx and rx counters grow. tx growth matches the number of echo-requests sent. rx grows about twice the rate of tx. However, no echo-replies will be seen.
Trying to connect from the Android 9 devices to a computer on my LAN using a web browser and IPv4 address shows no IPv4 or ARP packets on the target computer or on the OpenWRT device.
A third device, Android 8.1, has a milder problem. It disconnects and reconnects immediately a few times a day. Sometimes it happens just a few minutes apart, sometimes several hours. It might be an unrelated problem or it might be the same problem as above except that the device notices the problem very quickly and reconnects immediately. In practice this is most visible when using a Chromecast as the controls to the Chromecast get lost for a minute when the Android 8.1 device reconnects. This behavior occurs also on 5 GHz (VHT80). (I haven't tried the Android 9 devices on 5 GHz.)
There are a few other devices connected to the AP but I haven't noticed problems or heard users complaining so I suspect that those don't have this kind of issues.
All three problem devices work without any issues on 2.4 GHz if the AP is set to 802.11g using "uci set wireless.radio0.htmode=NOHT". The three devices used to work fine with a different 2.4 GHz 802.11n AP but that AP broke.
Things that don't help:
Omitting disassoc_low_ack, ieee80211w, wpa_disable_eapol_key_retries, tdls_prohibit, or dtim_period.
uci set wireless.default_radio0.dtim_period=1
uci set 'network.@device.multicast_to_unicast=0'