It’s concealing a potential issue with Mikrotik Access Points that isn’t observed on other vendors.
Really? Do the other vendors quietly enable the equivalent of multicast helper known as MC2UC? It’s not even an option to en/disable in many consumer devices. How do you know your device in question is doing the right things anyway with regards to WMM or that it can receive a broadcast reliably?
The Client announces to the AP it’s going to sleep. The AP should then buffer traffic. The Client then announces it’s awake, and the AP re-transmits the buffered packets - this is how Wireless Power Save works.
Your assertion seems to me that you think that the broad/multicast frame should be cached along with the device specific traffic until the device wakes up. I don’t think this is so.
Have a read of this Wikipedia article:
https://en.wikipedia.org/wiki/IEEE_802.11e-2005#Automatic_power_save_delivery
It refers to the detailed article:
https://community.arubanetworks.com/aruba/attachments/aruba/tkb@tkb/37/1/U-APSD%20explained%20and%20debugged_i62_R2.pdf
Section 4.2 of this article strongly implies even in power saving mode all broadcasts and multicasts happen after the regular DTIM. The buffering you refer to is the collection of all network broad/multicasts that occurred while the devices were asleep and the AP sends all of these collected casts to all devices in one hit. After this time the devices can poll and collect any buffered non-broadcast and non-multicast frames for it. So it doesn’t look like WMM buffers broadcasts per device in power save mode and your problem with your device might have to do with errors being received with the broadcast or that it’s not awake at the right time.
Even the IETF has seen fit to address the problem of multicast in Wifi. It’s a very good and detailed article and gets updated monthly:
https://tools.ietf.org/id/draft-ietf-mboned-ieee802-mcast-problems-11.html
Have a read of section " 3.1.4. Power-save Effects on Multicast" - there is a point there:
- “Multicast traffic is delayed in a wireless network if any of the STAs in that network are power savers. All STAs associated to the AP have to be awake at a known time to receive multicast traffic.”
Have a read of section " 4.3. Buffering to Improve Battery Life " - It doesn’t seem to me that WMM caches broadcast traffic for sleeping stations per station - it does it for all stations and then transmits the cached broad/multicasts at once. Your device has to be awake at the right time and receive the broadcast flawlessly.
Meraki say quite clearly here they turn on MC2UC by default:
https://documentation.meraki.com/MR/Other_Topics/Multicast-Unicast_Conversion
Rukus turn it on by default as well (and explains that it drains the battery faster):
https://support.ruckuswireless.com/articles/000003400
It looks like TP-Link enable it by default too:
https://community.tp-link.com/en/business/forum/topic/81122
These articles explain the problem nicely and how UBNT solves it which also involves MC2UC as well as just reducing the propagation of MC and BC traffic on the network.
https://help.ubnt.com/hc/en-us/articles/115001529267-UniFi-Managing-Broadcast-Traffic
https://help.ubnt.com/hc/en-us/articles/115011813968-UniFi-airTime-What-s-Eating-your-Wi-Fi-Performance-
What I am getting at is that your problem can’t be so easily blamed on Mikrotik and using multicast helper in full mode solves your problem for all the reasons in the articles above.
What are your Wifi rates settings? Have you disabled any? Does this problem occur on 2.4GHz and/or 5GHz?
The ARP request is then sent whilst they’re sleeping, and when they notify the AP they’re now awake the ARP request is not re-transmitted, so it appears like the Mikrotik AP is not buffering these broadcast packets when the end device is asleep. As a result the end device doesn’t receive the ARP request to reply to.
Can you determine that the buffered broadcasts after the DTIM are or are not being really sent? Can you determine if they are being received without error? If they were received in error you wouldn’t see them versus them not being transmitted at all.