Creating New Linux Queuing Disciplines HOWTO

Stephen Braithwaite


Revision History
Revision 0.02005-01-01sb
first draft


This explains how to write a new queuing discipline for Linux using the Linquede Linux Queuing Discipline Development Environment.

Table of Contents

Credits / Contributors
Prerequisites for building a Linux Queuing Discipline
Required Knowledge and Understanding
Hardware Requirements
Software Requirements
Linux Queuing Discipline Basics
Linux's interface to queueing disciplines
The Interface to your Queueing Discipline.
Why use a User Space Queueing Discipline Development Environment
Alternatives to Linquede
Open Source Virtual Machines
Setup and Installation
Overview of Linquede
Linquede fakes a kernel environment for a queuing discipline.
Files and Directories
Test Data
Format of the Input Data Files
Invoking the User Space Simulations
The Scripts Provided
Testing - TCP Traffic Generation
Capturing Data and Running it in Linquede
Further Information


This HOWTO explains an approach to creating a new queuing discipline on Linux. The author has made available a well documented template for the creation of Linux queuing disciplines and a simple queuing discipline development environment called Linquede (LINux QUEing discipline Development Environment). This HOWTO will assume the use of that template and Linquede. A person who has the prerequisite knowledge should easily be able to create his own queuing discipline on Linux using the environment, the template and this guide.

I have named my Linux Queuing Discipline Development Environment Linquede (LINux QUEing discipline Development Environment) so that it may be referred to in less than five words.


This document, Linquede HOWTO, is copyrighted (c) 2005 by Stephen Braithwaite. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover Texts, and with no Back-Cover Texts. A copy of the license is available at

Linux is a registered trademark of Linus Torvalds.


No liability for the contents of this document can be accepted. Use the concepts, examples and information at your own risk. There may be errors and inaccuracies, that could be damaging to your system. Proceed with caution, and although this is highly unlikely, the author(s) do not take any responsibility.

All copyrights are held by their by their respective owners, unless specifically noted otherwise. Use of a term in this document should not be regarded as affecting the validity of any trademark or service mark. Naming of particular products or brands should not be seen as endorsements.

Credits / Contributors

In this document, I have the pleasure of acknowledging my supervisor Dr Ron Addie.


Feedback is most certainly welcome for this document. Send your additions, comments and criticisms to .