Cake qdisc + layer cake + ack filtering

Would it be correct or incorrect to apply ack-filtering to direction that is split into different classes?
My reasoning would be that each class has a much lower ingress to egress ratio, specifically if there were tcp ports placed in the video (my depictions isn't diffserv4 but just wondering)
e.g. 50 down 10 up layer_cake.qos

root@OpenWrt:~# tc -s qdisc show dev eth0.2
qdisc cake 8021: root refcnt 2 bandwidth 10Mbit diffserv3 dual-srchost nat nowash ack-filter split-gso rtt 100ms noatm overhead 22 mpu 64
 Sent 64681839 bytes 106754 pkt (dropped 1253, overlimits 86753 requeues 0)
 backlog 0b 0p requeues 0
 memory used: 4214240b of 4Mb
 capacity estimate: 10Mbit
 min/max network layer size:           28 /    1500
 min/max overhead-adjusted size:       64 /    1522
 average network hdr offset:           14

                   Bulk  Best Effort        Voice
  thresh        625Kbit       10Mbit     2500Kbit
  target         29.1ms          5ms       7.29ms
  interval        124ms        100ms        102ms
  pk_delay          0us       7.25ms        603us
  av_delay          0us       4.63ms         16us
  sp_delay          0us         17us         14us
  backlog            0b           0b           0b
  pkts                0       107986           21
  bytes               0     66142167         1288
  way_inds            0            0            0
  way_miss            0          484            2
  way_cols            0            0            0
  drops               0         1018            0
  marks               0        24400            0
  ack_drop            0          235            0
  sp_flows            0            7            0
  bk_flows            0            1            0
  un_flows            0            0            0
  max_len             0        18168           71
  quantum           300          305          300

ACK filtering as designed in cake is really only aimed at the internet upload direction, either if the link is asymmetric with down>>up or if the link has a bursty MAC layer like docsis.
ACK can only be filtered independently per flow so is essentially orthogonal to cake's priority tins.

I'm not sure I understand that response :neutral_face:

ACK filtering works by comparing incoming with queued up packets in cake's stochastic queues. If two packets are pure ACKs with essentially just different acknowledgment numbers the newer ACK replaces the older ACK in the queue (at the older's position, so closer to being sent) and TCPs ACK clocking sees less delay and TCP senders are less likely to stall. But for this src and dst IP addresses and port numbers need to match. Does that help?

1 Like

Yes, thank you for the information.