Lightweight IOS access points have a limited capacity to buffer multicast packets. The multicast transmit buffers are shared across BSSIDs. If there are many WLANS (SSIDs) configured on an AP, then the voice WLAN on an AP may be unable to buffer for a single multicast audio stream, causing audio problems.
The config wlan multicast buffer AireOS command can be used to allocate additional buffers for one or two WLANs.
By default, 50 multicast buffers are available on each radio, to be shared across all WLANs (verified on an AP3502e running 18.104.22.168). Thus, with 4 SSIDs enabled, 12 multicast buffers are available per multicast queue (i.e. per WLAN):
With legacy powersave clients, the AP has to buffer multicasts till each DTIM beacon. With a DTIM of 1, this means that the multicasts must be buffered for up to 104 milliseconds. (With higher DTIM values, the multicasts would need to be buffered for multiple beacon intervals.)
A normal audio stream is transmitted as 20-millisecond samples - in other words, it flows at 50 packets per second. Thus, if a single audio stream needs to be buffered for 1/10 of a second (i.e. a beacon interval), the AP must be able to buffer up to 5 packets per audio stream.
With 15 SSIDs enabled on a radio, by default, each SSID's multicast buffer is only 3 packets. This means that, even with a single multicast audio stream, the voice samples will be dropped, causing garbled audio. If multiple concurrent multicast audio streams (or video streams!) are being transmitted, the results will be much worse.
The solution is to configure the following command on the multicast-enabled WLANs:
Thus, WLAN 1, with 60 buffers, would be able to carry multicast streams for several audio streams, while the other WLANs would be able to buffer only 3 multicast frames per DTIM, and so would drop packets for even a single audio stream.
This demonstration uses a Wireless LAN Controller running AireOS 22.214.171.124, with an 802.11n IOS AP (AP3502e.) Other lightweight IOS APs should work similarly; the multicast buffering scheme on AP-COS APs has not been verified.
During the multicast transmissions, first issue the following AP IOS exec command:
ap#terminal length 30
Then issue this command repetitively (assuming that the first radio is the one of interest):
show controller dot11radio0 | begin --\ In-Prog
Look at the deltas seen in the the "Sent" and "Discards" columns. If Discards increments rapidly, then the multicast buffering may be inadequate.