Bug 483425

Summary: TC CBQ based filters doesn't shape the traffic on 64-bit platforms
Product: Red Hat Enterprise Linux 5 Reporter: satish <satish>
Component: iprouteAssignee: Marcela Mašláňová <mmaslano>
Status: CLOSED WORKSFORME QA Contact: BaseOS QE <qe-baseos-auto>
Severity: medium Docs Contact:
Priority: low    
Version: 5.2CC: satish
Target Milestone: rc   
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2009-03-06 15:38:13 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description satish 2009-02-01 05:18:27 UTC
Description of problem:

TC CBQ based filters doesn't shape the traffic on 64-bit platforms i.e. RHEL 5.1 64bit platform, However the same work with 32bit platforms

Version-Release number of selected component (if applicable):
5.1 64bit, 5.264bit

How reproducible:
Simple TC rules using CBQ based shapping will reproduce the problem
<----- Sample Test Script ---->
tc qdisc add dev eth0 root handle 1: cbq bandwidth 1000mbit avpkt 1272
tc class add dev eth0 parent 1:0 classid 1:1 cbq bandwidth 1000mbit rate 200kbit prio 1 maxburst 2000 avpkt 1272 bounded isolated
tc class add dev eth0 parent 1:1 classid 1:2 cbq bandwidth 1000mbit rate 200kbit prio 1 maxburst 2000 avpkt 1272 bounded isolated
tc filter add dev eth0 parent 1:0 protocol ip prio 1 u32 match ip dst 10.0.0.53/32 flowid 1:2


Steps to Reproduce:
1. Setup a TC rules with CBQ, Refer to the above script
  
Actual results:
1. The traffic is not shapped and there is no errors and everything looks fine from TC

[root@imits198 ~]# tc -s qdisc show dev eth0
qdisc cbq 1: rate 1000Mbit (bounded,isolated) prio no-transmit
 Sent 65197551 bytes 112697 pkt (dropped 0, overlimits 19014 requeues 0)
 rate 0bit 0pps backlog 0b 0p requeues 0
  borrowed 0 overactions 0 avgidle 10 undertime 0

 [root@imits198 ~]# tc -s class show dev eth0
class cbq 1: root rate 1000Mbit (bounded,isolated) prio no-transmit
 Sent 10511655 bytes 93617 pkt (dropped 0, overlimits 0 requeues 0)
 rate 0bit 0pps backlog 0b 0p requeues 0
  borrowed 0 overactions 0 avgidle 10 undertime 0
class cbq 1:1 parent 1: rate 200000bit (bounded,isolated) prio 1
 Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
 rate 0bit 0pps backlog 0b 0p requeues 0
  borrowed 0 overactions 0 avgidle 0 undertime 0
class cbq 1:2 parent 1:1 rate 200000bit (bounded,isolated) prio 1
 Sent 54696434 bytes 19169 pkt (dropped 0, overlimits 34624 requeues 0)
 rate 0bit 0pps backlog 0b 0p requeues 0
  borrowed 0 overactions 18997 avgidle 10 undertime 0

[root@imits198 ~]# tc -s filter show dev eth0
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:2  (rule hit 112794 success 19169)
  match 0a000035/ffffffff at 16 (success 19169 )


Expected results:
The traffic should be shapped based on the above rules

Additional info:

Comment 1 Marcela Mašláňová 2009-03-06 15:38:13 UTC
Set as you said. Try to download by wget. The maximal burst was 2.02M/s which is normal overlap for this setting.

I tested at x86_64.