Dear reader, I'm not updating these pages anymore. If you have tc or ip related questions, you can post them on the LARTC mailing list.



What I wanna do

I want to know how accurate I can bound a class with CBQ. So I created a bounded class 10:2 on root qdisc 10:0 and tried different rates.

Tests

To help, I used my monitor.pl script and 2 other scripts: bounded.sh and test.pl. I run the tests from 1 kbps up to 1250 kbps and I switch to the next rate if the average bandwidth didn't changed within the last 5 results.

Results

Logfile when only one stream is generated: here.
Logfile when 5 parallel streams are generated: here.
Logfile when 10 parallel streams are generated: here.

Two logfiles together on one image (1 stream - 5 streams - 10 streams):

Conclusion

The results are good. You can bound to each bandwidth that you want, but you have to try some rates to get the bandwidth bounded to the bandwidth you want.

When you generate 10 parallel streams, the maximum bandwidth you can reach is higher. I still have to test with other traffic generators to see what happens. (TODO)

I also have to try some other options to see if the accuracy can be improved. Someone suggested that avpkt=500 gives better results. Test will prove if it does. (TODO)