Is CAC fair to your clients that don’t support it?
I support a voice product that does not support CAC. Is it right for me to ask the Wireless Network Administrator to disable it because my device doesn’t support it? Is CAC fair? Why does it supersede WMM? I will attempt to answer some of these questions in this blog.
Cisco uses CAC (Call Admission Control) that enables access points to maintain controlled quality of service (QoS). CAC is also tasked with the ability to ensure there is a limited number of voice clients per AP.
How does CAC maintain control of QoS?
The AP will send a beacon frame out on each SSID, usually every 100ms or so. In these beacon frames, the AP will tell what features it will support for that particular SSID. Inside the beacon frames under the Vendor Tag: Microsoft: WMM parameters the AP tells the clients which WMM Access Category that CAC has been enabled on (see example 1 below). When a device associates to the AP (and the device doesn’t support CAC) the device will choose the highest level of WMM that doesn’t have CAC enabled on (see example 2 below). If CAC is enabled on AC_Voice, but not on AC_Video, AC_Best Effort or AC_Background then the client will choose AC_Video even if the client is expecting to use Voice grade WMM or even when the SSID and VLAN are set up to use Platinum QoS.
Why is this an issue?
WIFI is a contention-based shared media. The AP and clients need to know that no one else will be transmitting at the same time they are. If another device does transmit at the same time it will cause collisions and the packets will have to be resent. In order to avoid collisions, the clients and APs uses Physical Carrier Sense and Virtual Carrier Sense. A device or AP will use both Physical and Virtual Carrier Sense while trying to access the wireless medium.
Physical Carrier sense happens when the station listens to the wireless medium to see if there is RF energy on the medium. If there is, the device will then know that the medium is being used. This is called Clear Channel Assessment (CCA). Virtual Carrier sense is where the station reads the Duration/ID field and sets its own NAV (Network Allocation Vector) timer. While the NAV is still active the station will not transmit. When the NAV timer goes to 0 the station waits DIFS (Disturbed Coordination Function Interframe space), which is set per PHY that you are using. When the DIFS expires the station will choose a random number from the Contention Window (CW) range and multiply it by the slot time of the PHY you are using. After all the timers have ended the device will do another CCA and then transmit.
The Access Category gives the client a range called the Contention Window (CW). This range is called the CWmin and CWmax values (see chart below). The device will choose a random number in the CW range and will multiply this with a set number based on the PHY. The client will wait this random amount of time and then will do another Clear Channel Assessment (CCA) to make sure no one else is transmitting at that time. Each client will choose a different value in the Min/Max times. This gives the AC categories with the lower CW values a better chance to transmit, but it is only a probabilistic chance. The lower Categories will get a chance to transmit. When the lower priority clients hear a transmission in the middle of a count/hold sequence they will pause the count/hold, look into the Duration/ID field and sets its NAV timer. When the NAV timer expires and the air is clear the client will resume the hold sequence from where it left off. So eventually it will transmit even while the higher category might be counting down.
The CW values per AC Categories are below.
Category CWmin CWmax
AC_Voice 3 7
AC_Video 7 15
AC_Background 15 1023
AC_Best Effort 15 1023
When a client is sending voice packets the client expects to send these packets using the Platinum level of QoS to avoid latency or jitter. If the client does not support CAC and it has to choose the next WMM parameter that doesn’t have CAC support (in this case it was Video) the client will possibly get a much higher CWmin and CWmax time then it should. If the controller set up CAC on Video then the client would choose Background. This would give the client an even worse CWmin and CWmax range to work with. This not only affects upstream, but the packets are labeled as video which would further delay the packets through the wired network.
On the return traffic, the network may further strip the QoS level down to Best Effort. In a busy network, this can be problematic for voice clients.
Given all of this, is it right for me to ask the wireless guy at the hospital to change the CAC settings because my device does not support CAC? Or should I push back on my own engineering team to fix our client to support CAC? Or should I do both? I can see the wireless guys ponder this as I ask them to remove CAC. Most people in the wireless field are very accommodating especially when you show them the results. Our device is not seen as just another device needing access. This device is usually pushed by C Suite and the nurses on the floor. Wireless guys realize that our product if given the best environment to work in, will help caregivers communicate more effectively and will ultimately help patients. So, if you see me coming, be forewarned I don’t like CAC, DTIMs set to 2 or higher, FRA or RRM (with no limits set). I might ask for things others don’t, but when I do I will back it up with facts and will always be appreciative of your willingness to work with us.
Example 1 Beacon showing Voice is using ACM (CAC)
Example 2: Data packets showing Client chose QoS of Video
Example 3: Screenshot from the Wireless Controller Config showing the WLAN has the QoS set to Platinum
(Cisco Controller) >show wlan x
WLAN Identifier……………………………. x
Profile Name………………………………. xxxxxxxxx
Network Name (SSID)………………………… xxxxxxxx
Status……………………………………. Disabled
MAC Filtering……………………………… Disabled
Broadcast SSID…………………………….. Disabled
AAA Policy Override………………………… Enabled
************************Data Removed*********************
Quality of Service…………………………. Platinum
Example 4: Screenshot from the Wireless Controller showing CAC and ACM set on the Voice AC
Call Admission Control (CAC) configuration
Voice AC:
Voice AC – Admission control (ACM)………… Enabled
Voice Stream-Size……………………….. 84000
Voice Max-Streams……………………….. 2
Voice max RF bandwidth…………………… 75
Voice reserved roaming bandwidth………….. 6
Voice CAC Method ……………………….. Load-Based
Voice tspec inactivity timeout……………. Disabled
CAC SIP-Voice configuration
SIP based CAC ………………………….. Disabled
SIP Codec Type …………………………. CODEC_TYPE_G711
SIP call bandwidth ……………………… 64
SIP call bandwith sample-size ……………. 20
Video AC:
Video AC – Admission control (ACM)………… Disabled
Video max RF bandwidth…………………… Infinite
Video reserved roaming bandwidth………….. 0
Video load-based CAC mode………………… Disabled
Video CAC Method ……………………….. Static
CAC SIP-Video Configuration
SIP based CAC ………………………….. Disabled
Best-effort AC – Admission control (ACM)…… Disabled
Background AC – Admission control (ACM)……. Disabled
Maximum Number of Clients per AP Radio……….. 200