[Cake] out of tree "cake" now buildable on multiple linux versions

Dave Taht dave.taht at gmail.com
Wed Apr 22 04:16:01 EDT 2015


Do a:

git clone https://github.com/dtaht/sch_cake.git

 # IF you have kernel source installed to leverage, adding cake is as easy as:

cd sch_cake
make; sudo make install

# How do you install kernel headers on various linuxes?

NOTE: I did not take the time to get the linux version checks
exactly correct, but did manage to get it to compile on linux
3.13 and linux 3.18 without error, on x86_64.

To use it properly, you will also need to build and install the
iproute with cake support:

git clone git://kau.toke.dk/cake/iproute2/ iproute2-cake
cd iproute2-cake
#edit out the sfq_codel entry in tc/Makefile (for now)
make
make install

#Then:

tc qdisc add dev whatever root cake # and whatever options

Some example results while a rrul test was running:

d at nuc-client:~/git/iproute2-cake$ ./tc/tc -s qdisc show dev eth0
qdisc cake 8002: root refcnt 2 unlimited diffserv4 flows
 Sent 13895939355 bytes 9605458 pkt (dropped 194, overlimits 0 requeues 0)
 backlog 318798b 26p requeues 0
           Class 0     Class 1     Class 2     Class 3
  rate          0bit        0bit        0bit        0bit
  target       5.0ms       5.0ms       5.0ms       5.0ms
interval     105.0ms     105.0ms     105.0ms     105.0ms
Pk delay       6.0ms       5.0ms         1us       2.3ms
Av delay       1.5ms       1.4ms         0us       654us
Sp delay       317us       201us         0us       141us
  pkts        128068      316663          56      236467
way inds           0           0           0           0
way miss           3          40           3           7
way cols           0           0           0           0
  bytes     45317244 11531124242        5524  2320607748
  drops          173          21           0           0
  marks            0           0           0           0

A problem I have is in reconciling the netperf-wrapper plots which hit
a minimum of 2ms for sparse flows, where I typically see ~200us delay
in the qdiscs themselves. I have generally not cared at all about
about anything less than 3ms prior to now.

qdisc cake 8003: root refcnt 2 bandwidth 920Mbit diffserv4 flows
 Sent 2298586363 bytes 1826648 pkt (dropped 45, overlimits 474931 requeues 0)
 backlog 468331b 25p requeues 0
           Class 0     Class 1     Class 2     Class 3
  rate       920Mbit  862500Kbit     690Mbit     230Mbit
  target       5.0ms       5.0ms       5.0ms       5.0ms
interval     105.0ms     105.0ms     105.0ms     105.0ms
Pk delay       4.6ms       3.2ms         0us       5.2ms
Av delay       1.5ms       1.2ms         0us       1.6ms
Sp delay       303us       290us         0us       191us
  pkts        110498      111953           0      181478
way inds           0           0           0           0
way miss           3          31           0           6
way cols           0           0           0           0
  bytes    347279080  1377499174           0   574954712
  drops           14           0           0          31
  marks            0           0           0           0

Have I mentioned how much I hate offloads? see the backlog relative to
the number of "packets".

Still, I do think developing this out of tree will help a lot, after
we get kernel versions straightened out more. Next up is trying to get
it to build on openwrt, also out of tree.

-- 
Dave Täht
Open Networking needs **Open Source Hardware**

https://plus.google.com/u/0/+EricRaymond/posts/JqxCe2pFr67



More information about the Cake mailing list