Optimizing for Zoom videoconferencing

I’ve had a few friends working from home asking about how to improve their Zoom conferences, and before I point them at OpenWRT as an option, I wanted to verify that there is a straightforward path to achieving improvements without getting to down in the weeds.

My first though is that Cake with Diffserv4 as QoS should be all they need to configure and be set, but not sure if that is indeed all that’s needed, as it seems from the DSCP code points the Zoom App sets (56 for audio, 40 for video, and 40 for signaling), that all traffic would wind up in the (bandwidth limited) VoIP tier. Source: https://support.zoom.us/hc/en-us/articles/207368756-QoS-DSCP-Marking

Anyone use Zoom + Cake and can confirm if traffic winds up in the expected tins?

1 Like

For most users, I would assume, simple piece_of_cake with per-interal-IP-address isolation should do wonders for interactive uses like video-conferences (VC). Maybe add a reasonably airtime-fair wifi to the mix (ath9K for stable releases, ath9K and ath10K for current master snapshot, unsure about mt76), and people should be good to go, alternatively recommend they use wire connections to their router for VC.

DSCPs will be considerably trickier especially for the incoming packets...

Yes, I use Zoom and cake. And it does end up in the expected tins.

Be aware though, that if you have a master account with a lot of sub accounts, that the master account holder will need to turn on DSCP in Zoom as it is disabled by default.

2 Likes

Thanks so much for that, very helpful.

so video does wind up in the third tin?
I though cake sent 40 (CS5) to the fourth tin. Here is what the docs show cake sorting into the top tier: CS7, CS6, CS5, CS4, Expedited Forwarding (EF) Voice Admit (VA)

Correct, but I thought the current cake code would 'inherit' dscp marks on a given outbound connection for the return inbound traffic. A most useful feature of cake.

Yes, you're correct. I was using the diffserv3 profile on layer_cake, which doesn't have a separate video tin. When I set it up for a diffserv4 profile, everything goes to the voice tin.

According to the docs for tc-cake, the marks go to the following tins

            Provides a general-purpose Diffserv implementation with four
       tins:
                 Bulk (CS1), 6.25% threshold, generally low priority.
                 Best Effort (general), 100% threshold.
                 Video (AF4x, AF3x, CS3, AF2x, CS2, TOS4, TOS1), 50%
       threshold.
                 Voice (CS7, CS6, EF, VA, CS5, CS4), 25% threshold.

       diffserv3 (default)
            Provides a simple, general-purpose Diffserv implementation with
       three tins:
                 Bulk (CS1), 6.25% threshold, generally low priority.
                 Best Effort (general), 100% threshold.
                 Voice (CS7, CS6, EF, VA, TOS4), 25% threshold, reduced
       Codel interval.

so CS5, DSCP mark 40, which is the default for Zoom video, would go to voice unless you explicitly tell Zoom to modify the marking to, say AF41 (which is what Cisco uses for Webex). The main account holder can modify the marks in the same place they activate DSCP marking.

Subject to correction by someone who knows better, I'd say that AF41 (for video) and their setting of CS7 (56) or EF for voice would be sensible.

2 Likes

Thanks again, vey helpful to confirm the need to adjust the DSCP settings on the master account to these appropriate values, and once done, they do sort into the correct tins.

1 Like

Well, that would be useful, but does not seem to work as I expected. I see my video (third) tin with tons of egress traffic, but my ingress video tin gets zero packets, even though the videoconferencing has incoming video.
Would the inbound be on a different connection for that to be happening?