Home Page

23/11/2001 : This page is not valid. Plz go to docum.org 

 

 

 

  • Used kernel, iproute2+tc and hardware
  • I switched to iproute2-2.4.7-now-ss010824.tar.gz and kernel 2.4.9 on 4/9/01. And I have some new hardware : AMD 1.4 Ghz with 256 MB Ram.

    I switched to iproute2-2.4.7-now-ss010803.tar.gz and kernel 2.4.7 on 8/8/01.

  • Kernel
  • I'm using kernel 2.2.18 and kernel 2.4.4. I first did the tests with kernel 2.2.18, but I redo them with kernel 2.4.4 since a lot changed in the networking code. You can find the .config for kernel 2.2.18 here and for kernel 2.4.4 here . Currently, the 2.2.18 kernel is patched for win4lin, LPP, WRR and DiffServ. I'm doing all the tests with kernel 2.4.x since 2/6/2001.

    My kernel 2.4.8 config : .config

  • iproute2+tc
  • I downloaded the latest source (07/10/2001) and applied the WRR patch. I enabled DiffServ (TC_CONFIG_DIFFSERV=y in Config). I compiled and install tc and ip in /sbin.

  • Hardware
  • I have some new hardware (AMD 1.4 Ghz, 256MB Ram, NIC's) and I'm still working on a good setup to test the qos. I'm planning on creating a second LAN to test the qos so my normal traffic (backup of my laptop and other stuff) can not influence the qos tests.

    I'm using a laptop to send traffic to my server and it's on that laptop I setup the QOS. I also have a bridge in the network to create a bottleneck. The laptop is a Compaq Armada E500, Mobile Pentium 400Mhz, 64MB Ram and a PCMCIA xircom 10/100Mbit card. The server is a P120 Mhz, 32MB Ram and a Ethernet Express Pro 100 card (kernel 2.2.18). The bridge is a 486/25Mhz, 3Com 509 ISA card and NE2000 PCI (kernel 2.4.3). I have a second PC: AMD300Mhz, 64MB Ram, 3com 3c509 to generate traffic. I also use 3 hubs (both 10Mbit).

  • Real-time bandwidth monitor
  • I wanted to monitor the outgoing traffic on a NIC. For that I needed a real-time monitoring of the bandwidth and an average. I also wanted to know the bandwidth of the different classes.

    I couldn't find a tool to do that for me. So I wrote a small Perl script and I called it monitor.pl. When I setup my tests, I use the ipchains tool to mark all the packets that I want to put in a class. I use this mark to filter the packets and to put them in the right class. At the same time, I created a chain for the traffic so each packet that will be putted in a class will also pass his own chain. So I have a chain that contains exatly all the traffic of only one class.

    All the chains have a built-in byte counter. When you have the value of these byte counter and divide that by the elapsed time, you have the bandwidth. I used this idea in the script monitor.pl. The script reads the byte counters from the different chains, gets the time in microseconds and calculates the bandwidth.

    So in my setup, I use one computer to generate traffic and to setup the QOS. An other computer on the network is the receiver. The monitor.pl scripts runs on the computer that generates the traffic and not on the bottleneck.

  • Filtering
  • I allways use the fw filter based on the marks of the packets. For testing it's easier to use the destination port as filter, so you need only a second PC as the destination. In real life, you are probably using a combination of port/ip-address, but you will have the same result as if you where using the destination port.

    An overview of filters can be found on this page.

  • Traffic generators
  • Overview on this page.