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.
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.
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.