Kickass Qdisc - v. 1.0
Marcel Flores - marcel-flores@u.northwestern.edu
About
=====
Kickass is a congestion control mechanism by Marcel Flores and Aleksandar
Kuzmanovic at the Northwestern Networks Group.
These files contain the implementation of the Kickass router for Linux. The
router logic has been implemented as a Linux qdisc which can be attached to an
outgoing network interface
Dependencies
============
0) Ensure you have the source headers installed for your current kernel version
(sch_kickass has only been tested in 3.12.3, but will likely work in other
versions, user beware!)
1) Custom version of tc (included).
Unpack the included coded for iproute2
tar xzvf iproute2_kickass.tgz
Compile it:
cd iproute2_kickass
make
2) ethtool - the setup scripts make use of ethtool to disable offloading.
Building sch_kickass:
=====================
1) make
Installing:
===========
1) First, be sure to turn off offloading (current implementations require
offloading to be truned off):
./turn_off_offloading.sh
2) Run the launch script
./launch_sch_kickass.sh
This performs two tasks. First, it loads the kernel module. Second, it
attaches to kickass queueing discipline to the specified network device with
a 1000 packet queue
Removing:
=========
1) Simply run:
./kill_sch_kickass.sh
to remove the qdisc and remove the kernel module.
Known Bugs:
===========
-Fragmentation behaves oddly on other kernel versions.
-Any checksum or other offloading causes issues (maybe fundamemtal with packet
manipulation)
-Router rate subject to integer inaccuracies. The reference implementation uses
a user space daemon to perform calculations in userspace, however this
introduces a number of issues. Given that we have to massage to the nearest
acceptable fragment size, the error should be tolerable. In the mean time, it
keeps the rate stored as a *10 value, to add precision.
Acknowledgements
================
Kickass development team acknowledgements can be found on the project website.
Contact
=======
Questions and comments should be directed to Marcel Flores at
marcel-flores@u.northwestern.edu