So I have recently migrated from DD-WRT over to OpenWRT as I was finding that I was having stability issues on the router. My main gateway router is a Linksys WRT3200ACM. It is connected to a VirginMedia SuperHub 4. I am on a 200 Mb package, 200 down 20up.
When I was on the DD-WRT I could set up QoS with HFSC and cake. Along with that I could rate limit each individual client with their MAC address. This was great and worked really well, but every day or so it would reboot itself, so was not a viable solution when we all working from home at the moment.
There are 4 of us in the house. Me, my wife and 2 kids. during the day the kids are constantly on their devices, doing online learning as well as doing constant FaceTime/Whatsapp video calls to their friends.
My wife and I have the obligatory Teams meetings throughout the day. My remote access is Vmware Horizon, and I do Teams on an iPad or a Phone, not via Horizon.
So ..... here is my issue. When on QoS on DD-WRT I was able to fine tune such that my connection to the office via VMware Horizon was stable and latency was low (constantly - sitting around 15-20ms).
Going to OpenWRT I have put in place SQM QoS. This has definitely made a difference with bufferbloat, but as soon as myself or my wife goes on a teams meeting the upload gets killed (though a max of about 6-9Mb of flow can be seen, so plenty bandwidth left. About 8/9Mb), and along with that my VMware session starts to lag, and I can see in the Horizon console that my ping times spike. Can go up to 150ms and sometimes sit there abouts for the duration of the Teams calls. Also I have a BQM set up via thinkbroadband.co.uk and the latency can be visibly seen as going all out of whack.
Is there any way to fine tune the QoS to prevent the uploads from affecting priority services / desktops ? Or any way to optimise QoS so as not to have these massive latency spikes ?
And this looks very much like what DD-WRT probably used. I never went down to the console level to configure as it was all in the GUI, but I am not afraid to that on OpenWRT should the need arise, just so I can really get this sorted out.
I assume that it is an "either/or" situation with regards to this implementation of QoS and the SQM I currently have in place at the moment. Not possible to have both. Unless maybe I have one on the LAN and the other on the WAN.
I suspect your teams is using DSCP tags to keep the latency down. You're using "layer cake" which is designed to let you have some stuff in "high" priority and others in lower priority. My guess is the teams stuff automatically is using some DSCP tag that makes sure it's in high priority.
Does the teams connection actually suffer with stuttering, freezing, garbled audio etc? OR is it just the other stuff that suffers? If so, that's basically "by design".
Teams does not suffer at all.
Other things suffer.
Should I move to some other qos script (not layer cake) ? or is there a way for me to change the way it handles this DSCP tagging ?
Is there a way for me to see if there is any DSCP tagging on OpenWRT. Something like wireshark. Could I get something from using tcpdump maybe ?
you can absolutely tcpdump on the lan and then copy the file over and read it in wireshark.
tcpdump -i br-lan -w mycapture.pcap
The DSCP tags that teams puts on its output obviously can't be modified until they're received by the router... which is too late to avoid the bad effect on wifi. so your wifi is going to suffer to some extent no matter what (unless the app has settings to control what DSCP tag it puts). If the teams app is putting an inappropriately high tag then it will use voice channel over wifi to transmit your video, and that will just not be good. But hey, at least your teams works well.
Your desktop machine which is wired in, should be ok though. You just need to figure out which interactive apps you are using on your desktop machine and tag them for the VIDEO tin on cake, and you'll be probably ok.
I see you have your ingress rate set to 210k for a "200k" connection, does it actually deliver more than the official rate? Have you tried going even lower than - 10% of what you're seeing on your non SQM speedtests?
In case I borked up the link, heres my two lines for the advanced options strings that work well for me and my cable connection :
nat dual-dsthost ingress ack-filter mpu 64
nat dual-srchost ack-filter mpu 64
Those improve how cake will handle different traffic flows. And, of course, it applies to basic cake optimizing, not more advanced tagging. dlakeland is an expert, so you're in good hands there...
If you use piece of cake everything will be treated equally. In this case I think it's likely you'll see your video conferences suffering somewhat. It depends on what you decide to do, if you can identify the other interactive apps you can keep layer cake and put them all at moderate priority, say DSCP tag CS4, and then your interactivity will be preserved and only less interactive stuff will suffer which is usually what you want.
When I had DD-WRT running and I rate limited the offending devices, they never really had any issues. The video quality would be lower, but there would not be any issues with them as a whole.
Would really like to have some sort of queueing that says “anything that is coming from this device and a connection initiated by this device gets priority over any other packet on the network”. Preferably, if Teams is using DSCP, then I would like some what for the QoS to ignore those type of packets, and not give them any priority at all.