Multimedia Networks Group  
The QoSbox
Multimedia Networks Group
Dept. of Computer Science
University of Virginia
 

 General
 
    Overview
    People
    Sponsors
 
 Documents
 
    Journal Papers
    Conference Papers
    Talks
    Other Documents
    FAQ
 
 Software

 
    Visualization Applet
    ns-2 Code
    ALTQ/KAME Code
        [Previous KAME patches]
    License
    Support
    CVS Trees
    

 

 Contact us

[Overview | ns-2 | ALTQ/KAME | License | Support | CVS]

Overview

We developed three implementations of the QoSbox. Historically, the first implementation was made in a custom simulator, that we used for comparison with other available schemes. That simulator is still used to provide a visualization of our results via a Java applet. [More...]

   We then implemented our algorithms in the very popular ns-2 network simulator, developed at UC Berkeley initially, and now at the Information Sciences Institute, of the University of Southern California. [More...]

   We also have an implementation of the QoSbox in the ALTQ (v3.0 and above) and KAME (SNAP 20020225 and later) packages. KAME is a set of kernel-level and application-level patches for FreeBSD, NetBSD, and OpenBSD, aiming at providing an open-source IPv6 implementation and enhanced networking functionality for these operating systems. ALTQ provides a set of queueing disciplines (usable as kernel modules) to replace the standard FCFS queueing discipline in FreeBSD, NetBSD, and OpenBSD. ALTQ is included in the KAME distribution, but can be downloaded independently, and indeed does not require KAME be installed. We provide the JoBS queueing discipline, which is the scheduling and dropping algorithm central to the QoSbox, for both ALTQ and KAME. This implementation was tested on a testbed of six PowerEdge 1550 1GHz Pentium-III Dell Servers shown in the picture on the left, equipped with six Ethernet network interface cards each, to assess the computational complexity of the algorithms in use in the QoSbox, as well as their efficiency at high data rates (100 Mbps FastEthernet). [More...]

   We provide access to our CVS trees, for people who want to see what the current development status of the code is. Note that with this web interface (cvs2html), you are not able to download any files - you can merely study the diffs, which is only of interest to developers.

[Top]

ns-2

The ns-2 implementation of the QoSbox is realized by the Queue/JoBS scheduler and dropper and traffic markers (Queue/Marker, derived from an original contribution from Prof. Constantinos Dovrolis). These modules and the relevant documentation have been included in the core distribution of the ns-2 network simulator, as of ns-2.26 (February 28, 2003). We highly recommend that you use the version provided in the stock ns-2 distribution, since the code is now maintained in the ns-2 source tree.

However, for people using an older version (2.1b8a, 2.1b9, 2.1b9a, 2.1b9a-gcc32), we provide patches. Bugfixes and improvements are not backported to these patches - these patches are not supported anymore. For these patches to work, you need a pristine ns-2 tree already installed on your computer (which you can download from the ISI website). After having read and agreed to the license agreement (reproduced in the green box below), you can download one of the following patches depending on the version of ns you are using:
FileApplies toRevision of the QoSbox code
ns-2.1b8a+jobs.tar.gz ns-2.1b8a0.8
ns-2.1b9+jobs.tar.gzns-2.1b9 0.9
ns-2.1b9a+jobs.tar.gz ns-2.1b9a 0.9
ns-2.1b9a-gcc32+jobs.tar.gz ns-2.1b9a (gcc32 snapshot) 1.0
This patch is 70KB and contains all the software needed. From now on, all instructions will be given for ns-2.1b9. For other versions, the instructions are the same, except that you need to replace all occurences of 2.1b9 by the version number.

Assuming you have already compiled all the components in the ns-allinone distribution, once you have downloaded the patch, do the following:
cd NSDIR/ns-2.1b9/
make distclean # only if you compiled ns before
gzip -d -c PATCHDIR/ns-2.1b9+jobs.tar.gz | tar xvf -
./configure
make
# the following is optional but highly recommended
cd tcl/test/
./test-all-jobs quiet
where NSDIR is the absolute path of the directory where ns-2.1b9 resides, and PATCHDIR is the directory where you stored the patch you just downloaded. This sequence of commands will:
(1) install the JoBS extensions,
(2) patch a couple of header files in ns (e.g., you are now able to monitor the number of bytes received by a TCP/DelAck sink),
(3) recompile the whole ns tree with the Queue/JoBS module,
(4) run the validation tests for Queue/JoBS,
(5) include some example scripts in NSDIR/ns-2.1b9/tcl/ex, and
(6) update the documentation files in NSDIR/ns-2.1b9/doc.
The JoBS extensions to ns-2 have been tested successfully on FreeBSD 2.2.7, FreeBSD 4.4 and above, Linux RedHat 6.2 and above (Intel) (RedHat 8.0 imposes you use the gcc32 snapshot), Windows XP/Cygwin (gcc32 snapshot only) and Solaris 8 (Sparc).

If you have a working LaTeX installation, you can regenerate the documentation by doing
cd NSDIR/ns-2.1b9/doc/
make
At the very least, you should have now a file called everything.dvi which is an updated version of the ns manual that contains a new chapter (Chapter 9) explaining what you need to know about the Queue/JoBS module for ns. On UNIX systems, you should be able to read this file by issuing the command
xdvi everything.dvi&
If the update of the documentation does not work (presumably because your LaTeX installation is faulty), we reproduce the chapter (in PDF format) here.

[Top]

ALTQ/KAME

The ALTQ and KAME implementation of the QoSbox is realized by the JoBS queueing discipline. To get the JoBS queueing discipline for ALTQ and/or KAME, you have several choices. If you want the most recent version of the software, you should download KAME. (The JoBS code is now maintained in the KAME tree.) If you are more interested in more stable versions of the code, you should download ALTQ. See below for specific instructions.

KAME (20021028 SNAP and above).    JoBS is included in all KAME SNAP kits released on or after October 28, 2002. This works under all BSD flavors. Please visit the KAME webpage for download and install instructions. Enjoy!

KAME (SNAP kits released between February 25, 2002 and October 21, 2002).   For reference purposes, we provide patches for the FreeBSD KAME SNAP-kits that were released between February 25, 2002, and October 21, 2002. The code was in a state of flux, and it is not even guaranteed it will compile. (Well, as a SNAP kit, the same caveat applies to KAME itself.) Furthermore, it only ran on FreeBSD 4.x and was not ported yet to the other BSDs. In short, stay away from these patches, and use a SNAP kit released on or after October 28, 2002. If you really need a SNAP kit released between February 25, 2002 and October 21, 2002, you can download the JoBS patch corresponding to your KAME SNAP kit from this list. Once you have downloaded the appropriate patch, unzip it using
gzip -d -c kame-jobs.XXXXXXXX.gz | cat > /tmp/kame-jobs.patch
where XXXXXXXX corresponds to the timestamp of the patch you are using. Apply the patch to the KAME distribution with:
 
cd $KAME; patch -p0 < /tmp/kame-jobs.patch
where $KAME denotes the path to your KAME source tree (e.g., /home/nick/kame-snap-20020225/). Please be careful: $KAME does not denote the path to your kernel sources. Recompile and reinstall KAME, following the instructions provided within the KAME distribution, and you should be all set.

ALTQ (3.1 and above).   A stable version of JoBS is included in the base ALTQ distribution as of ALTQ-3.1. Please refer to the ALTQ webpage for download and install instructions. If, for some reason, you have to use ALTQ 3.0, please read on. You can download a modified version of ALTQ 3.0 that includes the JoBS queueing discipline from this page. JoBS is not included in ALTQ 1.x and 2.x, and we do not plan to provide support for these versions.

ALTQ (3.0).   The JoBS queueing discipline was not part of the ALTQ 3.0 base distribution, therefore you have to download it from this webpage. Once you have read the license agreement below (in the green box), you can download

altq-3.0+jobs.tar.gz

This archive is 564KB and contains a modified ALTQ-3.0 source tree, including the JoBS queueing discipline. This source tree will not work if you are using FreeBSD 4.4 or later, NetBSD, or OpenBSD (i.e., it will work with FreeBSD-4.1, 4.2, and 4.3). Furthermore, the code bundled in the ALTQ-3.0 tarball offered here was an alpha version. There were some bugs, which were fixed in later versions. We do not support this code anymore, so, you really should download ALTQ-3.1 or later. With those caveats in mind, if you download this file, you implicitly agree to the license reproduced below. Unzip the archive using
gzip -d -c altq-3.0+jobs.tar.gz | tar xvf -
and then read the file INSTALL in the newly created directory (altq-3.0+jobs) to get the installation instructions.

[Top]

License

A BSD license applies to the QoSbox software distributed as part of, or as an extension to ns-2, ALTQ, and KAME. By downloading any software from this website, you agree to the license agreement reproduced below:

Copyright (c) 2000-2002, the Rector and Board of Visitors of the University of Virginia. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. Neither the name of the University of Virginia nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

[Top]

Support

Support is provided by means of several mailing-lists:

  • Questions regarding ns-2 or the Queue/JoBS implementation in ns-2 should be posted to the ns-users mailing-list. Informations on how to subscribe to the ns-users mailing-list are available there.
  • Questions regarding KAME in general should be posted to the KAME snap-users mailing-list. Informations on how to subscribe to the KAME snap-users mailing-list are available there.
  • Questions regarding ALTQ in general should be posted to the ALTQ mailing-list.
  • Questions regarding the JoBS queueing discipline for ALTQ/KAME should be directed to the ALTQ mailing-list (preferred) or the KAME snap-users mailing-list.
Please note: Support is only offered for the most recent versions of the QoSbox code (altq-3.1, ns-2.26, and current KAME snapkit). Older versions, e.g., patches for altq-3.0 or ns-2.1b9, are unsupported.

[Top]

CVS Trees

The following CVS trees can be accessed:

  • KAME CVS tree. The ALTQ/KAME version of the QoSbox is now maintained in the base KAME tree.
  • ns-2 CVS tree. The ns-2 implementation of the QoSbox queuing disciplines (Queue/JoBS, Queue/Marker, and Queue/Demarker) is now maintained in the base ns-2 tree.
  • CVS tree for the visualization applet. This is the code for the visualization applet that we use in this website. Please note that you cannot download any file from this tree - you can only browse through the list of changes, and diffs, which should be of interest to developers only.
[Top]

D E N A L I Copyright © Multimedia Networks Group , Department of Computer Science , University of Virginia , 2000-2003.
Maintained by Nicolas Christin.

Last modified: Wed Mar 05, 2003 at 19:03:22 EST