23/11/2001 : This page is not valid. Plz go to docum.org
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.
My kernel 2.4.8 config : .config
TC_CONFIG_DIFFSERV=y in Config). I compiled and install tc and ip in /sbin.
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).
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.
An overview of filters can be found on this page.