Bug 515522

Summary: tc fails to replace internal netem qdisc with pfifo - RTNETLINK answers: Invalid argument
Product: [Fedora] Fedora Reporter: David <davidwjames>
Component: iprouteAssignee: Marcela Mašláňová <mmaslano>
Status: CLOSED NOTABUG QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: low    
Version: 11CC: davidwjames, mmaslano, rvokal
Target Milestone: ---   
Target Release: ---   
Hardware: i686   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2009-08-13 14:14:26 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 David 2009-08-04 16:18:52 UTC
User-Agent:       Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.12) Gecko/2009070611 Firefox/3.0.12

when attempting to replace the internal qdisc for netem with pfifo, tc gives RTNETLINK error and fails.

The script worked in f7 and f10; Fails on new install of f11

See Netem site for another example that fails:
http://www.linuxfoundation.org/en/Net:Netem#How_to_reorder_packets_based_on_jitter.3F

Reproducible: Always

Steps to Reproduce:
#gather some data
date
echo -n Kernel:  " "
uname -r
rpm -q  iproute
lsmod | grep sch
modinfo sch_netem

#create queues for eth2 (all available interface behave the same on my box)
/sbin/tc qdisc del dev eth2 root 2>&1
/sbin/tc qdisc add dev eth2 root handle 1: prio 2>&1
/sbin/tc qdisc add dev eth2 parent 1:3 handle 30: netem delay 1ms 2>&1
/sbin/tc qdisc add dev eth2 handle 40: parent 30:1 pfifo limit 16000 2>&1
/sbin/tc qdisc show dev eth2 2>&1


Actual Results:  
Tue Aug  4 10:07:31 MDT 2009
Kernel:  2.6.29.6-213.fc11.i686.PAE
iproute-2.6.29-2.fc11.i586
sch_netem               5524  1
sch_prio                4220  1
filename:       /lib/modules/2.6.29.6-213.fc11.i686.PAE/kernel/net/sched/sch_netem.ko
license:        GPL
srcversion:     4EA19BD84D4639EDA68D5AC
depends:
vermagic:       2.6.29.6-213.fc11.i686.PAE SMP mod_unload 686
RTNETLINK answers: Invalid argument
qdisc prio 1: root bands 3 priomap  1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
qdisc netem 30: parent 1:3 limit 1000 delay 999us


Expected Results:  
#from an F10 installed system:
Wed Jul  1 09:32:59 MDT 2009
Kernel:  2.6.27.5-117.fc10.i686.PAE
sch_netem              10240  1 
sch_prio                8448  1 
filename:       /lib/modules/2.6.27.5-117.fc10.i686.PAE/kernel/net/sched/sch_netem.ko
license:        GPL
srcversion:     AAB2A768D030645593C1EE2
depends:        
vermagic:       2.6.27.5-117.fc10.i686.PAE SMP mod_unload 686 4KSTACKS 
qdisc prio 1: root bands 3 priomap  1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
qdisc netem 30: parent 1:3 limit 1000 delay 999us
qdisc pfifo 40: parent 30:1 limit 16000

Note that in F10 the last tc qdisc add actually adds the pfifo,  in F11 we get the RTNETLINK complaint.

Comment 1 Marcela Mašláňová 2009-08-13 10:50:25 UTC
I've tested replacing netem with pfifo and it looks like there is no possibility to change the same class which was already defined. It looks more like kernel problem because I've tested test-cases with different iproute releases and none of them work as it is documented.

I've sent a bug report to upstream project, probably they would know better.

Comment 2 Marcela Mašláňová 2009-08-13 14:14:26 UTC
Kind reply from kernel-net developers contain this link
http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=02201464119334690fe209849843881b8e9cfa9f

So netem is classless since kernel-2.6.29 and the documentation is outdated. This mean notabug for this package.