[LARTC] HFSC

Lawrence MacIntyre lpz@ornl.gov
Wed, 12 May 2004 12:36:28 -0400


Hi:

I am using a machine with the 2.4.26 kernel, and trying to compare the 
performance of the HTB qdisc with the HFSC one.  I have the following 
simple script that allows me to have a video stream on port 1234 while 
it limits a ttcp UDP stream so that the video stream is unimpaired.

#!/bin/bash

tc qdisc add dev eth0 root handle 1: htb default 12

tc class add dev eth0 parent 1: classid 1:1 htb rate 30mbit ceil 30mbit
tc class add dev eth0 parent 1:1 classid 1:10 htb rate 20mbit ceil 30mbit
tc class add dev eth0 parent 1:1 classid 1:11 htb rate 10mbit ceil 30mbit

tc qdisc add dev eth0 parent 1:10 handle 20: pfifo limit 5
tc qdisc add dev eth0 parent 1:11 handle 30: pfifo limit 5

tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32 match ip dport 
1234 0xffff flowid 1:10
tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32 match ip dport 
5001 0xffff flowid 1:11

Now I would like to try H-FSC.  I'm not sure exactly how to go about 
this.  I thought that creating a ul class with two ls classes inside and 
then putting an rt class in one of the ls classes for the video might 
work, but I can't seem to get it to work.  For example,

#!/bin/bash

/usr/local/bin/tc qdisc add dev eth0 root handle 1: hfsc

/usr/local/bin/tc class add dev eth0 parent 1: classid 1:1 hfsc ul m1 
30mbit d 0 m2 30mbit ls m1 30mbit d 0 m2 30mbit

When the second command is executed, the machine simply drops all 
packets going through it.  I would like to try the 2.6 kernel, but my 
machine has an Adaptec SCSI controller that has a broken driver for the 
2.6 kernel.

I don't understand why this statement causes the machine to drop all 
packets on the eth0 interface.
-- 
     Lawrence MacIntyre     865.574.8696     lpz@ornl.gov
                Oak Ridge National Laboratory
High Performance Information Infrastructure Technology Group