[Cake] cake infinite loop(?) with hfsc on one-armed router

Pete Heist pete at heistp.net
Thu Dec 27 18:30:44 EST 2018


I’m seeing what I think it an infinite loop when cake is used in a one-armed router configuration with hfsc as the rate limiter. Three APUs are connected to the same switch and the “middle” APU (apu1a) routes between the default VLAN and a tagged VLAN.

apu2a   <— default VLAN —>   apu1a   <— VLAN 3300 —>   apu2b

After qos is set up, ping from apu2a to apu2b still works fine. When iperf3 is run from apu2a to apu2b it works fine, but when it goes in reverse (apu2b to apu2a), all traffic stops flowing from apu1a on the default VLAN. Traffic still flows from apu1a on VLAN 3300 however, with very high RTT (mean 500ms), leading me to believe that the cake instance on the default VLAN is in an infinite loop.

It does not happen with hfsc+fq_codel, or with htb+cake in the same configuration.

Here are the commands that set up qos, and it only locks up when cake is used as the instance at handle 20, not at handle 21:

-----
tc qdisc add dev eth0 root handle 1: hfsc default 10
tc class add dev eth0 parent 1: classid 1:1 hfsc sc rate 200mbit ul rate 200mbit
tc class add dev eth0 parent 1:1 classid 1:10 hfsc sc rate 100mbit ul rate 100mbit
tc class add dev eth0 parent 1:1 classid 1:11 hfsc sc rate 100mbit ul rate 100mbit
tc filter add dev eth0 protocol ip parent 1:0 prio 1 \
	basic match "meta(vlan mask 0xfff eq 0xce4)" flowid 1:11
tc qdisc add dev eth0 parent 1:10 handle 20: fq_codel # using cake here locks up !!!
tc qdisc add dev eth0 parent 1:11 handle 21: cake
——

I’m using sch_cake and tc-adv from the current HEAD, on kernel 3.16.7 (yeah, I know).

root at apu1a:~/qos# uname -a
Linux apu1a 3.16.7-ckt9-voyage #1 SMP Thu Apr 23 11:10:44 HKT 2015 i686 GNU/Linux

Any ideas just from just this? Otherwise, I can only think to hook up the serial cable and start with the printk’s…



More information about the Cake mailing list