HFSC

Lawrence MacIntyre
Wed, 12 May 2004 16:36:28 -0000

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.