Home
Members
itmBench
SaTS
Archive

Step-by-step Testbed Installation


This instruction sets up three of the four main parts of an advanced network testbed, installation of the dummynet emulator should follow this link.
  • Active Edge Device, e.g. ITM.
  • FreeBSD AQM implementation
  • Web Traffic Generation Set

Active Edge Device

You need to download the Linux netfilter API first and install it on your machine. The current module works for 2.4.9 kernel.
  1. Download size-aware-linux-v1.0.tar.gz, and unpack it under a separate directory, say /foo/bar/linux/
  2. There should be 5 files under this directory:
    • ipt_qos_ctrl.c, ipt_qos_ctrl.h, conn_hash.h:  Kernel module
    • libipt_qos_ctrl.c: User-space control interface
    • Makefile
  3. Download Linux netfilter API (latest iptables-1.2.8.tar.bz2) and unpack it under some directory, say /foo/bar/iptables/, then do the following:

    • # cp /foo/bar/linux/ipt_qos_ctrl.h \
       /foo/bar/iptables/include/linux/netfilter_ipv4/
      # cp /foo/bar/linux/lib_ipt_qos_ctrl.c \
      /foo/bar/iptables/extensions/
  4. Now you need to recompile iptables and install it.
  5. Make the kernel module ipt_qos_ctrl.o by typing "make", you can also install this module to the kernel module directory /lib/modules/KERNEL-VERSION/kernel/net/ipv4/netfilter/
  6. To upload the classifier, do the following:
    • # modprobe ip_tables iptable_mangle
      # modprobe ipt_qos_ctrl (if you installed it)
      # insmod ipt_qos_ctrl.o (otherwise)
      # iptables -s SRC_ADDRESS -p tcp -t mangle \
      -A POSTROUTING -j qos_ctrl --set-tos 0x10 --set-thres 20
  7. The last commands set up a classifier with classification threshold set to 20 packets, and the DSCP tag for a low-priority class packet is set to 0x10.

FreeBSD AQM Scheme

We slightly modified FreeBSD's implementation of the RED scheme, and named it Dual RED.  To install it, you need to have a FreeBSD 4.4 or up, and apply this patch patch-1.0.FreeBSD.tar.gz to the source tree, and recompile the kernel.

To activate Dual RED, do the following:
# ipfw 63000 add pipe 1 tcp from 192.168.30.2 80 to any out
# ipfw pipe 1 config bw 4Mbit/s delay 100 queue 100 dred 0.002/5/90/0.2/0x10/2

The above commands create a bottleneck link of capacity 4Mbit/s, propagation delay of 100ms, a dual-RED queue of  size 100 packet, minimum threshold 5 packet, maximum threshold 90 packet, max_p for low priority class packet 0.2, classification mask 0x10, and weight between classes 2.


Web Traffic Generation Set

The Web Traffic Generation Set includes web server and client modules. We now introduce them separately.

We slightly modify a proprietary web server to generate HTTP objects of arbitrary size. In our model, each HTTP request carries the size information, instead of a specific address of a webpage. The web server then responds by emitting a synthetic object of the requested size to the client.  The idea is to extend the URL address parser to allow requests in the form of "http://FILE-SIZE", where FILE-SIZE specifies the size in bytes of the dummy file to be generated by the web server. This simple modification allows us to have a model-driven traffic generation set.

To emulate an open-loop client access enviornment, much like the current Internet, we modified the sclient client emulator (created by Gaurav Banga)  to allow arbitrary inter-request interval. The source code of the modified sclient is available here. Details of the sclient design can be found here.