Need clarification with SQM / CoDel output

I removed the SQM configuration from LuCI, and I see the following output of the tc -s qdisc command:

tc -s qdisc
qdisc noqueue 0: dev lo root refcnt 2 
 Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) 
 backlog 0b 0p requeues 0
qdisc mq 0: dev eth0 root 
 Sent 297253219678 bytes 291213620 pkt (dropped 0, overlimits 0 requeues 7827) 
 backlog 0b 0p requeues 7827
qdisc fq_codel 0: dev eth0 parent :5 limit 10240p flows 1024 quantum 1514 target 5ms interval 100ms memory_limit 4Mb ecn drop_batch 64 
 Sent 61662725327 bytes 62911691 pkt (dropped 0, overlimits 0 requeues 761) 
 backlog 0b 0p requeues 761
  maxpacket 1514 drop_overlimit 0 new_flow_count 12767 ecn_mark 0
  new_flows_len 0 old_flows_len 0
qdisc fq_codel 0: dev eth0 parent :4 limit 10240p flows 1024 quantum 1514 target 5ms interval 100ms memory_limit 4Mb ecn drop_batch 64 
 Sent 60839991932 bytes 57664795 pkt (dropped 0, overlimits 0 requeues 1069) 
 backlog 0b 0p requeues 1069
  maxpacket 1514 drop_overlimit 0 new_flow_count 28619 ecn_mark 0
  new_flows_len 0 old_flows_len 0
qdisc fq_codel 0: dev eth0 parent :3 limit 10240p flows 1024 quantum 1514 target 5ms interval 100ms memory_limit 4Mb ecn drop_batch 64 
 Sent 57140031034 bytes 55979009 pkt (dropped 0, overlimits 0 requeues 713) 
 backlog 0b 0p requeues 713
  maxpacket 1514 drop_overlimit 0 new_flow_count 29053 ecn_mark 0
  new_flows_len 0 old_flows_len 0
qdisc fq_codel 0: dev eth0 parent :2 limit 10240p flows 1024 quantum 1514 target 5ms interval 100ms memory_limit 4Mb ecn drop_batch 64 
 Sent 59929689432 bytes 59624043 pkt (dropped 0, overlimits 0 requeues 4885) 
 backlog 0b 0p requeues 4885
  maxpacket 1514 drop_overlimit 0 new_flow_count 27013 ecn_mark 0
  new_flows_len 0 old_flows_len 0
qdisc fq_codel 0: dev eth0 parent :1 limit 10240p flows 1024 quantum 1514 target 5ms interval 100ms memory_limit 4Mb ecn drop_batch 64 
 Sent 57680781953 bytes 55034082 pkt (dropped 0, overlimits 0 requeues 399) 
 backlog 0b 0p requeues 399
  maxpacket 1514 drop_overlimit 0 new_flow_count 4902 ecn_mark 0
  new_flows_len 0 old_flows_len 0
qdisc noqueue 0: dev br-DATA_HOME root refcnt 2 
 Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) 
 backlog 0b 0p requeues 0
qdisc noqueue 0: dev eth0.200 root refcnt 2 
 Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) 
 backlog 0b 0p requeues 0
qdisc noqueue 0: dev br-MRA root refcnt 2 
 Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) 
 backlog 0b 0p requeues 0
qdisc noqueue 0: dev eth0.220 root refcnt 2 
 Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) 
 backlog 0b 0p requeues 0
qdisc noqueue 0: dev br-UniFi_CFG root refcnt 2 
 Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) 
 backlog 0b 0p requeues 0
qdisc noqueue 0: dev eth0.1 root refcnt 2 
 Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) 
 backlog 0b 0p requeues 0
qdisc noqueue 0: dev br-UniFi_MGMT root refcnt 2 
 Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) 
 backlog 0b 0p requeues 0
qdisc noqueue 0: dev eth0.2 root refcnt 2 
 Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) 
 backlog 0b 0p requeues 0
qdisc noqueue 0: dev br-VOICE_HOME root refcnt 2 
 Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) 
 backlog 0b 0p requeues 0
qdisc noqueue 0: dev eth0.250 root refcnt 2 
 Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) 
 backlog 0b 0p requeues 0
qdisc noqueue 0: dev eth0.255 root refcnt 2 
 Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) 
 backlog 0b 0p requeues 0
qdisc noqueue 0: dev eth0.10 root refcnt 2 
 Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) 
 backlog 0b 0p requeues 0
qdisc noqueue 0: dev WG root refcnt 2 
 Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) 
 backlog 0b 0p requeues 0

I'd like to understand where the fq_codel statistics come from, since I had nothing configured in LuCI under SQM when the above output of the tc -s qdisc command was copied. I'm referring to things like reques, new_flow_count, etc. under dev eth0 root, dev eth0 parent :5, dev eth0 parent :4, dev eth0 parent :3, dev eth0 parent :2, and dev eth0 parent :1

I'd also like to know what these entries (dev eth0 parent :5, dev eth0 parent :4, etc. mean)

The file /etc/config/sqm was present but empty after I disabled SQM in LuCI.

And another question I have is, If some of these qdisc fq_codel entries are left over from some previous configuration that I may have tried, is there a safe way to remove them?

I have re-enabled CAKE since I copied that output of the tc -s qdisc command.

Thank you.

I believe this comes from OpenWrt having switched the default qdisc to fq_codel some time ago, I seem unable to find a link though. So by default OpenWrt instantiates fq_codel on each interface.

Mmmh, that is unexpected, it should still contain something...

Only by changing the default qdisc, if you manually delete them, the next hotplug event on that interface might bring them up again.

Thank you, @moeller0.

So, do these entries refer to?
eth0 parent :5 , dev eth0 parent :4 , etc.

is clearly the name of the device/interface this instance of a qdisc is instantiated on.

Tells which "component" this instance belongs to, look at the graphs here for some visualization.

From the man page:
"Classes form a tree, where each class has a single parent. A class may have multiple children. Some qdiscs allow for runtime addition of classes (CBQ, HTB) while others (PRIO) are created with a static number of children."

2 Likes

Thanks, this helped tremendously.

This topic was automatically closed 10 days after the last reply. New replies are no longer allowed.