Our QJump prototype is comprised of two parts:

  1. a Linux kernel moduled implemented using the Linux Traffic Control (TC) interface; and
  2. an application utility that uses LD_PRELOAD to make unmodified applications compatible with QJump.
Both the kernel module and the application utility are available on Github as stand-alone repositories.

Obtaining and building QJump TC Module

The QJump TC source code is available here. You can obtain it from Github by running the following commands:

$ git clone https://github.com/camsas/qjump-tc.git

To build it, make sure that the kernel headers for your kernel are installed and run the following inside the source directory:

$ make

QJump implements a standard TC interface. To use the module, install it into the kernel with optional paramters, e.g.:

$ sudo insmod sch_qjump.ko verbose=3

For full details on how to configure and runn QJump, see this page.

Obtaining and building QJump Application Utility

The QJump application utility source code is available here. You can obtain it from Github by running the following commands:

$ git clone https://github.com/camsas/qjump-app-util.git

To build it, simply run the following in the source directory:

$ make

The QJump Application Utility uses LD_PRELOAD to capture and modify socket parameters to run with QJump. To use it, we provide a handy utility that can be run from the source directory. For example:

$ sudo ./qjau.py --window=9999999 --priority=5 --verbosity=2 --command="ping 127.0.0"