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