Qosify: configuration help - choppy video conference

@elan

Issue: I'm having poor performance with zoom audio+video on multiple devices (iPhone and Amazon Fire). If i shut off video the audio works fine.

Question: My question is around qosify. How do I know what bucket/class packets are falling into? How can I monitor what's going on and if things are working?

# cat /etc/qosify/00-defaults.conf 
# SSH
tcp:22    network_services

# NTP
udp:123   network_services

# DNS
tcp:53    network_services
tcp:5353  network_services
udp:53    network_services
udp:5353  network_services

# DNS over TLS (DoT)
tcp:853   multimedia_conferencing
udp:853   multimedia_conferencing

# HTTP/HTTPS/QUIC
tcp:80    browsing
tcp:443   browsing
udp:80    browsing
udp:443   browsing

# Microsoft (Download)
dns:*1drv*                 bulk
dns:*backblaze*            bulk
dns:*backblazeb2*          bulk
dns:*ms-acdc.office*       bulk
dns:*onedrive*             bulk
dns:*sharepoint*           bulk
dns:*update.microsoft*     bulk
dns:*windowsupdate*        bulk

# MEGA (Download)
dns:*mega*                 bulk

# Dropbox (Download)
dns:*dropboxusercontent*   bulk

# Google (Download)
dns:*drive.google*         bulk
dns:*googleusercontent*    bulk

# Steam (Download)
dns:*steamcontent*         bulk

# Epic Games (Download)
dns:*download.epicgames*   bulk
dns:*download2.epicgames*  bulk
dns:*download3.epicgames*  bulk
dns:*download4.epicgames*  bulk
dns:*epicgames-download1*  bulk

# YouTube
dns:*googlevideo*   besteffort

# Facebook
dns:*fbcdn*         besteffort

# Twitch
dns:*ttvnw*         besteffort

# TikTok
dns:*tiktok*        besteffort

# Netflix
dns:*nflxvideo*     besteffort

# Amazon Prime Video
dns:*aiv-cdn*       besteffort
dns:*aiv-delivery*  besteffort
dns:*pv-cdn*        besteffort

# Disney Plus
dns:*disney*        besteffort
dns:*dssott*        besteffort

# HBO
dns:*hbo*           besteffort
dns:*hbomaxcdn*     besteffort

# BitTorrent
tcp:6881-7000    bulk
tcp:51413        bulk
udp:6771         bulk
udp:6881-7000    bulk
udp:51413        bulk

# Usenet
tcp:119          bulk
tcp:563          bulk

# Live Streaming to YouTube Live, Twitch, Vimeo and LinkedIn Live
tcp:1935-1936    broadcast_video
tcp:2396         broadcast_video
tcp:2935         broadcast_video

# Xbox
tcp:3074         gaming
udp:88           gaming
#udp:500         gaming # UDP port already used in "VoWiFi" rules
udp:3074         gaming
udp:3544         gaming
#udp:4500        gaming # UDP port already used in "VoWiFi" rules

# PlayStation
tcp:3478-3480    gaming
#udp:3478-3479   gaming # UDP ports already used in "Zoom" rules

# Call of Duty
#tcp:3074        gaming # TCP port already used in "Xbox" rules
tcp:3075-3076    gaming
#udp:3074        gaming # UDP port already used in "Xbox" rules
udp:3075-3079    gaming
udp:3658         gaming

# FIFA
tcp:3659         gaming
udp:3659         gaming

# Minecraft
tcp:25565        gaming
udp:19132-19133  gaming
udp:25565        gaming

# Supercell Games
tcp:9339         gaming
udp:9339         gaming

# Zoom, Microsoft Teams, Skype and FaceTime (they use these same ports)
udp:3478-3497    multimedia_conferencing

# Zoom
dns:*zoom*       multimedia_conferencing
tcp:8801-8802    multimedia_conferencing
udp:8801-8810    multimedia_conferencing

# Skype
dns:*skype*      multimedia_conferencing

# FaceTime
udp:16384-16387  multimedia_conferencing
udp:16393-16402  multimedia_conferencing

# GoToMeeting
udp:1853         multimedia_conferencing
udp:8200         multimedia_conferencing

# Webex Meeting
tcp:5004         multimedia_conferencing
udp:9000         multimedia_conferencing

# Jitsi Meet
tcp:5349         multimedia_conferencing
udp:10000        multimedia_conferencing

# Google Meet
udp:19302-19309  multimedia_conferencing

# TeamViewer
tcp:5938         multimedia_conferencing
udp:5938         multimedia_conferencing

# Voice over Internet Protocol (VoIP)
tcp:5060-5061    telephony
udp:5060-5061    telephony

# Voice over WiFi or WiFi Calling (VoWiFi)
udp:500          telephony
udp:4500         telephony

# end

# cat /etc/config/qosify
# tc -s qdisc show 
config defaults
	list defaults /etc/qosify/*.conf
	option dscp_icmp +besteffort
	option dscp_default_tcp unmarked_traffic
	option dscp_default_udp unmarked_traffic

config class unmarked_traffic
	option ingress CS1
	option egress CS1
	option prio_max_avg_pkt_len 1270
	option dscp_prio CS4
	option bulk_trigger_pps 600
	option bulk_trigger_timeout 10
	option dscp_bulk CS1

config class browsing
	option ingress CS0
	option egress CS0
	option prio_max_avg_pkt_len 575
	option dscp_prio AF41
	option bulk_trigger_pps 1000
	option bulk_trigger_timeout 10
	option dscp_bulk CS1

config class bulk
	option ingress CS1
	option egress CS1

config class besteffort
	option ingress CS0
	option egress CS0

config class network_services
	option ingress CS2
	option egress CS2

config class broadcast_video
	option ingress CS3
	option egress CS3

config class gaming
	option ingress CS4
	option egress CS4

config class multimedia_conferencing
	option ingress AF42
	option egress AF42
	option prio_max_avg_pkt_len 575
	option dscp_prio AF41

config class telephony
	option ingress EF
	option egress EF

config interface wan
	option name wan
	option disabled 0
	option bandwidth_up 9mbit
	option bandwidth_down 75mbit
	option overhead_type docsis
	# defaults:
	option ingress 1
	option egress 1
	option mode diffserv4
	option nat 1
	option host_isolate 1
	option autorate_ingress 0
	option ingress_options ""
	option egress_options "wash"
	option options "ether-vlan"

config device wandev
	option disabled 1
	option name wan
	option bandwidth 100mbit

#: /etc/qosify# qosify-status 
===== interface wan: active =====
egress status:
qdisc cake 8001: root refcnt 2 bandwidth 9Mbit diffserv4 dual-srchost nat wash no-ack-filter split-gso rtt 100ms noatm overhead 22 mpu 64 
 Sent 5097129403 bytes 11820756 pkt (dropped 79430, overlimits 10803610 requeues 0) 
 backlog 0b 0p requeues 0
 memory used: 4197760b of 4Mb
 capacity estimate: 9Mbit
 min/max network layer size:           28 /    1500
 min/max overhead-adjusted size:       64 /    1522
 average network hdr offset:           14

                   Bulk  Best Effort        Video        Voice
  thresh      562496bit        9Mbit     4500Kbit     2250Kbit
  target         32.3ms          5ms          5ms       8.07ms
  interval        127ms        100ms        100ms        103ms
  pk_delay       85.5ms       4.45ms         87us       7.96ms
  av_delay       67.1ms       1.21ms         15us       1.42ms
  sp_delay       4.31ms         11us          7us          7us
  backlog            0b           0b           0b           0b
  pkts           796792      1540160      8002235      1560999
  bytes       477638116   1409867479   2025526427   1283468441
  way_inds            0         7942       631045         4765
  way_miss          319        23571       142137        25674
  way_cols            0            0            0            0
  drops           75759         3060          294          317
  marks               0           20            0            0
  ack_drop            0            0            0            0
  sp_flows            2            3            0            1
  bk_flows            0            0            1            0
  un_flows            0            0            0            0
  max_len         18902        42493        17176        10598
  quantum           300          300          300          300


ingress status:
qdisc cake 8002: root refcnt 2 bandwidth 75Mbit diffserv4 dual-dsthost nat nowash ingress no-ack-filter split-gso rtt 100ms noatm overhead 22 mpu 64 
 Sent 32237119936 bytes 25019903 pkt (dropped 33390, overlimits 20765947 requeues 0) 
 backlog 0b 0p requeues 0
 memory used: 1959240b of 4Mb
 capacity estimate: 75Mbit
 min/max network layer size:           46 /    1500
 min/max overhead-adjusted size:       68 /    1522
 average network hdr offset:           14

                   Bulk  Best Effort        Video        Voice
  thresh       4687Kbit       75Mbit    37500Kbit    18750Kbit
  target            5ms          5ms          5ms          5ms
  interval        100ms        100ms        100ms        100ms
  pk_delay       62.8ms        580us         76us         49us
  av_delay       49.2ms        157us         19us         14us
  sp_delay         48us          7us          9us          8us
  backlog            0b           0b           0b           0b
  pkts          7188895     12984196      4448327       431875
  bytes     10592718771  18910929337   2610278354    167136093
  way_inds         4479       468107       507995         6927
  way_miss          906        60646        69895        21518
  way_cols            0            0            0            0
  drops           32099         1273           17            1
  marks               0            1            0            0
  ack_drop            0            0            0            0
  sp_flows            2            2            1            1
  bk_flows            0            0            1            0
  un_flows            0            0            0            0
  max_len         43906        68130        21196        27252
  quantum           300         1514         1144          572

Internet Provider: Comcast (chicago)
Qosify Ver: 2022-03-22-57c7817f-1 - A simple QoS solution based eBPF + CAKE
Firmware: OpenWrt 22.03-SNAPSHOT r19312-1b7cf4dd1c / LuCI openwrt-22.03 branch git-22.083.69105-af8e91c
GW Hardware: Linksys E8450 (UBI)