LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Linux - Networking (https://www.linuxquestions.org/questions/linux-networking-3/)
-   -   Traffic control problem with DRR scheduler (https://www.linuxquestions.org/questions/linux-networking-3/traffic-control-problem-with-drr-scheduler-848776/)

sunnyhay 12-06-2010 10:57 PM

Traffic control problem with DRR scheduler
 
The problem is that any subclass with DRR (deficit round robin) qdisc will lose any packets sending out. I'll show you all my tc scripts, sending activities and results below.
First I set up my traffic control context like this:

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

tc class add dev eth0 parent 1: classid 1:1 htb rate 1000kbps ceil 1000kbps

tc class add dev eth0 parent 1:1 classid 1:10 htb rate 300kbps ceil 300kbps
tc class add dev eth0 parent 1:1 classid 1:11 htb rate 100kbps ceil 100kbps
tc class add dev eth0 parent 1:1 classid 1:15 htb rate 600kbps ceil 600kbps

tc filter add dev eth0 parent 1: protocol ip prio 10 u32 match ip tos 0x10 0xff flowid 1:10
tc filter add dev eth0 parent 1: protocol ip prio 20 u32 match ip tos 0x20 0xff flowid 1:11

tc qdisc add dev eth0 parent 1:10 handle 20: drr
tc qdisc add dev eth0 parent 1:11 handle 30: drr


Then get the detailed tc statistical tc class report like this:

class htb 1:11 parent 1:1 leaf 30: prio 0 quantum 10000 rate 800000bit ceil 800000bit burst 1599b/8 mpu 0b overhead 0b cburst 1599b/8 mpu 0b overhead 0b level 0
Sent 0 bytes 0 pkt (dropped 100, overlimits 0 requeues 0)
rate 0bit 0pps backlog 0b 0p requeues 0
lended: 0 borrowed: 0 giants: 0
tokens: 249984 ctokens: 249984

class htb 1:1 root rate 8000Kbit ceil 8000Kbit burst 1600b/8 mpu 0b overhead 0b cburst 1600b/8 mpu 0b overhead 0b level 7
Sent 556525 bytes 3969 pkt (dropped 0, overlimits 0 requeues 0)
rate 1496bit 2pps backlog 0b 0p requeues 0
lended: 0 borrowed: 0 giants: 0
tokens: 23250 ctokens: 23250

class htb 1:10 parent 1:1 leaf 20: prio 0 quantum 30000 rate 2400Kbit ceil 2400Kbit burst 1599b/8 mpu 0b overhead 0b cburst 1599b/8 mpu 0b overhead 0b level 0
Sent 0 bytes 0 pkt (dropped 241, overlimits 0 requeues 0)
rate 0bit 0pps backlog 0b 0p requeues 0
lended: 0 borrowed: 0 giants: 0
tokens: 83328 ctokens: 83328

class htb 1:15 parent 1:1 prio 0 quantum 60000 rate 4800Kbit ceil 4800Kbit burst 1599b/8 mpu 0b overhead 0b cburst 1599b/8 mpu 0b overhead 0b level 0
Sent 542725 bytes 3669 pkt (dropped 7, overlimits 0 requeues 0)
rate 1496bit 2pps backlog 0b 0p requeues 0
lended: 3669 borrowed: 0 giants: 0
tokens: 38750 ctokens: 38750


Do you notice any abnormal dropping points by subclass 1:10 and 1:11? Any packets in any rate sending out are dropped!
I just use hping3 to send packets.
In iptables I set
iptables –t mangle –A POSTROUTING –p icmp –d 69.166.51.182 –j DSCP –set-dscp 16
iptables –t mangle –A POSTROUTING –p udp –d 69.166.51.182 –j DSCP –set-dscp 32


Use iptables –t mangle -L we get
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
DSCP icmp -- anywhere sln303-harry.eecs.wsu.edu DSCP set 0x10
DSCP udp -- anywhere sln303-harry.eecs.wsu.edu DSCP set 0x20


But when I set another subclass 1:12 with the similar configuration but only without DRR qdisc attached, all the packets (following the pre-configured filter) can be sent out without any problem.
So could you please tell me what's wrong with the DRR usage? Is there successfuly example or script using DRR without any weird problems? It's new and so nobody gives constructive opinion online. Look forward to your advice or help!
Thank you!

Harry


All times are GMT -5. The time now is 01:04 PM.