Hi all,

I have been attempting to get to know the basics of CBQ.  Having followed
the example at http://lartc.org/HOWTO//cvs/2.4routing/lartc.html in Section
9.5.4.4, I find myself somewhat baffled.

I have checked & double-checked the commands entered and they conform to the
above (though my bandwidth limits are different).  What I fail to see, using
`tc -s class show dev eth0 && tc -s qdisc show`, is any filtering being
performed:

[root@gw rc.d]# tc -s class show dev eth0 && tc -s qdisc show
class cbq 1: root rate 10Mbit (bounded,isolated) prio no-transmit
 Sent 253851 bytes 3784 pkts (dropped 0, overlimits 0)
  borrowed 0 overactions 0 avgidle 624 undertime 0
class cbq 1:1 parent 1: rate 40Kbit (bounded) prio no-transmit
 Sent 0 bytes 0 pkts (dropped 0, overlimits 0)
  borrowed 0 overactions 0 avgidle 4.52356e+06 undertime 0
class cbq 1:3 parent 1:1 leaf 30: rate 30Kbit prio 5
 Sent 0 bytes 0 pkts (dropped 0, overlimits 0)
  borrowed 0 overactions 0 avgidle 6.03733e+06 undertime 0
class cbq 1:4 parent 1:1 leaf 40: rate 3Kbit prio 5
 Sent 0 bytes 0 pkts (dropped 0, overlimits 0)
  borrowed 0 overactions 0 avgidle 6.0533e+07 undertime 0
qdisc sfq 40: dev eth0 quantum 1514b
 Sent 0 bytes 0 pkts (dropped 0, overlimits 0)

 qdisc sfq 30: dev eth0 quantum 1514b
 Sent 0 bytes 0 pkts (dropped 0, overlimits 0)

 qdisc cbq 1: dev eth0 rate 10Mbit (bounded,isolated) prio no-transmit
 Sent 253851 bytes 3784 pkts (dropped 0, overlimits 0)
  borrowed 0 overactions 0 avgidle 624 undertime 0

Using `tc filter show dev eth0`, I get the following:

filter parent 1: protocol ip pref 1 u32
filter parent 1: protocol ip pref 1 u32 fh 800: ht divisor 1
filter parent 1: protocol ip pref 1 u32 fh 800::800 order 2048 key ht 800
bkt 0 flowid 1:3
  match 00500000/ffff0000 at 20
filter parent 1: protocol ip pref 1 u32 fh 800::801 order 2049 key ht 800
bkt 0 flowid 1:2
  match 0a000003/ffffffff at 12

There is one change to the filter rule given in the example: the second
filter matches against the ip address 10.0.0.3 (my box).  I did this to
ensure all my traffic would get matched.

Should I be expecting to see something from the stats (it makes sense to me
that I should!)?  If so, could someone point me in the direction of where I
may be going wrong?  If not, where should I be looking?

To be clear, here are the commands I used:
[root@gw rc.d]# tc qdisc add dev eth0 root handle 1:0 cbq bandwidth 10Mbit
avpkt 1000 cell 8
[root@gw rc.d]# tc class add dev eth0 parent 1:0 classid 1:1 cbq bandwidth
10Mbit rate 40kbit weight 0.4kbit prio 8 allot 1514 cell 8 maxburst 20 avpkt
1000 bounded
[root@gw rc.d]# tc class add dev eth0 parent 1:1 classid 1:3 cbq bandwidth
10Mbit rate 30kbit weight 0.3kbit prio 5 allot 1514 cell 8 maxburst 20 avpkt
1000
[root@gw rc.d]# tc class add dev eth0 parent 1:1 classid 1:4 cbq bandwidth
10Mbit rate 3kbit weight 0.03kbit prio 5 allot 1514 cell 8 maxburst 20 avpkt
1000
[root@gw rc.d]# tc qdisc add dev eth0 parent 1:3 handle 30: sfq
[root@gw rc.d]# tc qdisc add dev eth0 parent 1:4 handle 40: sfq
[root@gw rc.d]# tc filter add dev eth0 parent 1:0 protocol ip prio 1 u32
match ip sport 80 0xffff flowid 1:3
[root@gw rc.d]# tc filter add dev eth0 parent 1:0 protocol ip prio 1 u32
match ip src 10.0.0.3 flowid 1:2

Kernel is v2.4.18.

Cheers,

Pete Mee


_______________________________________________
LARTC mailing list / [EMAIL PROTECTED]
http://mailman.ds9a.nl/mailman/listinfo/lartc HOWTO: http://lartc.org/

Reply via email to