Hello all: Is CBQ broken in RedHat 8.0? It seems that my CBQ is not using priorities. I have this setup: Internet <-> DSL Modem <-> Linux router <-> IP Switch <-> Laptop The Linux computer is running a fresh, unmodified installation of RedHat 8.0? On the Linux computer, eth0 points to the DSL modem and eth1 points to my internal network. The Linux compter runs DHCP and masquerade. I want to make sure that ssh traffic is prioritied above all other traffic. After reading the HOWTO and the wondershaper code, I set-up the following tc rules on the Linux computer: # The downlink speed, in kilobits DOWNLINK=300 # The uplink speed, in kilobits UPLINK=100 # The device to control DEV=eth0 # Install the root CBQ at 1:0 tc qdisc add dev $DEV root handle 1: cbq avpkt 1000 bandwidth 10mbit # Add a cbq at 1:1 to limit the total bandwidth to the uplink speed tc class add dev $DEV parent 1: classid 1:1 cbq rate ${UPLINK}kbit allot 1500 prio 1 bounded isolated # Create a queue for the high priority traffic tc class add dev $DEV parent 1:1 classid 1:10 cbq rate ${UPLINK}kbit allot 1600 prio 1 avpkt 1000 bounded isolated tc qdisc add dev $DEV parent 1:10 handle 10: sfq perturb 10 # Create a queue for the low priority traffic tc class add dev $DEV parent 1:1 classid 1:20 cbq rate $[9*$UPLINK/10]kbit allot 1600 prio 2 avpkt 1000 bounded isolated tc qdisc add dev $DEV parent 1:20 handle 20: sfq perturb 10 # Filter ssh traffic into the high prioirty queue tc filter add dev $DEV parent 1:0 protocol ip prio 10 u32 match ip sport 22 0xffff flowid 1:10 tc filter add dev $DEV parent 1:0 protocol ip prio 10 u32 match ip dport 22 0xffff flowid 1:10 # Filter the rest of the traffic into the low priority queue, policing the rate and dropping any overflow packets tc filter add dev $DEV parent 1:0 protocol ip prio 13 u32 match ip dst 0.0.0.0/0 police rate $[9*$UPLINK/10]kbit burst 10k drop flowid 1:20 # Police the incoming traffic to the rate we specified tc qdisc add dev $DEV handle ffff: ingress tc filter add dev $DEV parent ffff: protocol ip prio 50 u32 match ip src 0.0.0.0/0 police rate ${DOWNLINK}kbit burst 10k drop flowid :1 What I am expecting from these rules is that the ssh traffic will take complete priority over anything else. Other traffic will only get what is left over. To test this, I set-up a large FTP upload from my laptop to a machine over the Internet and then set up and ssh transfer of a large file to another machine. After letting things settle down, I ran my traffic control script. After a while, I ran this command to see the results: tc -s qdisc ls dev eth0 Here is what I got: qdisc ingress ffff: ---------------- Sent 514549 bytes 9924 pkts (dropped 0, overlimits 0) qdisc sfq 20: quantum 1514b perturb 10sec Sent 10522893 bytes 7296 pkts (dropped 0, overlimits 0) backlog 5p qdisc sfq 10: quantum 1514b perturb 10sec Sent 7648142 bytes 5449 pkts (dropped 0, overlimits 0) qdisc cbq 1: rate 10Mbit (bounded,isolated) prio no-transmit Sent 18173599 bytes 12771 pkts (dropped 120, overlimits 18412) backlog 5p borrowed 0 overactions 0 avgidle 624 undertime 0 The low priority traffic is getting more traffic sent thru. This is not what I wanted. Any ideas why this is happening? Thanks, Neil. -- Neil Aggarwal JAMM Consulting, Inc. (972) 612-6056, http://www.JAMMConsulting.com Custom Internet Development Websites, Ecommerce, Java, databases _______________________________________________ LARTC mailing list / LARTC@mailman.ds9a.nl http://mailman.ds9a.nl/mailman/listinfo/lartc HOWTO: http://lartc.org/