FIXME:tc crashes when dsmark root qdisc deleted

Linux Advanced Routing and Traffic Control

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



I tried to run the script efcbq that comes with iproute2 official 
documentation(/usr/share/doc/iproute2/examples/diffserv/efcbq) on 2.4.19 
kernel.

#!/bin/sh
#
TC=tc
DEV=dev\ eth0

$TC qdisc add $DEV handle 1:0 root dsmark indices 64 default_index 0 
set_tc_index
$TC filter add $DEV parent 1:0 protocol ip prio 1 tcindex mask 0xfc shift 2
$TC qdisc add $DEV parent 1:0 handle 2:0 cbq bandwidth 10Mbit cell 8 avpkt 
1000 mpu 64
#
# EF class
#
$TC class add $DEV parent 2:0 classid 2:1 cbq bandwidth 10Mbit rate 1500Kbit 
avpkt 1000 prio 1 bounded isolated allot 1514 weight 1 maxburst 10
# packet fifo for EF?
$TC qdisc add $DEV parent 2:1 pfifo limit 5
$TC filter add $DEV parent 2:0 protocol ip prio 1 handle 0x2e tcindex 
classid 2:1 pass_on
#
# BE class
#
$TC class add $DEV parent 2:0 classid 2:2 cbq bandwidth 10Mbit rate 5Mbit 
avpkt 1000 prio 7 allot 1514 weight 1 maxburst 21 borrow split 2:0 defmap 
0xffff

$TC qdisc add $DEV parent 2:2 red limit 60KB min 15KB max 45KB burst 20 
avpkt 1000 bandwidth 10Mbit probability 0.4

$TC filter add $DEV parent 2:0 protocol ip prio 2 handle 0 tcindex mask 0 
classid 2:2 pass_on




Then on executing

tc qdisc del dev eth1 root handle 1:0

the kernel crashes.
The kernel debug messages upto this stage were(using  dmesg utility)

tcindex_init(sch c21d4720,[qdisc c21d4780],opt c21d4250)
dsmark_init: qdisc c21d4780
tcindex_init(tp c329d9e0)
tcindex_get(tp c329d9e0,handle 0x00000000)
tcindex_change(tp c329d9e0,handle 0x00000000,tca c1417d3c,arg c1417ca4),opt 
c315f9d0,p c18157e0,r 00000000
*arg = 0x0
classid/police 00000000/00000000
tcindex_dump(tp c329d9e0,fh 0x0,skb c11af8c0,t c31d2010),p c18157e0,r 
00000000,b c31d2038
p->perfect 00000000 p->h 00000000
dsmark_get(sch c21d4720,[qdisc c21d4780],classid 10000)
dsmark_get(sch c21d4720,[qdisc c21d4780],classid 10000)
dsmark_graft(sch c21d4720,[qdisc c21d4780],new c31f6800,old c1417cc0)

dsmark_walk(sch c21d4720,[qdisc c21d4780],walker c3b1fc44)
dsmark_walk(sch c21d4720,[qdisc c21d4780],walker c3229c44)
ndex_init(tp c329df20)
tcindex_get(tp c329df20,handle 0x0000002e)
tcindex_change(tp c329df20,handle 0x0000002e,tca c2c01d3c,arg c2c01ca4),opt 
c19c4af0,p c18156c0,r 00000000
*arg = 0x0
classid/police c19c4af4/00000000
hash 64 mask 65535
r=00000000
r=c2c01c3c
tcindex_dump(tp c329df20,fh 0x0,skb c11af8c0,t c31d2010),p c18156c0,r 
00000000,b c31d2038
p->perfect 00000000 p->h c315f9a0
ndex_dump(tp c329d9e0,fh 0x0,skb c11af8c0,t c31d2010),p c18157e0,r 
00000000,b c31d2038
p->perfect 00000000 p->h 00000000
tcindex_walk(tp c329d9e0,walker c2c01c44),p c18157e0
dsmark_walk(sch c21d4720,[qdisc c21d4780],walker c2c71c44)
dsmark_walk(sch c21d4720,[qdisc c21d4780],walker c2175c44)
tcindex_init(tp c329d960)
tcindex_get(tp c329d960,handle 0x00000000)
tcindex_change(tp c329d960,handle 0x00000000,tca c2171d3c,arg c2171ca4),opt 
c315f8d0,p c18156e0,r 00000000
*arg = 0x0
classid/police c315f8dc/00000000
hash 1 mask 0
r=c1815680
tcindex_dump(tp c329d960,fh 0x0,skb c11af980,t c31d2010),p c18156e0,r 
00000000,b c31d2038
p->perfect c1815680 p->h 00000000



If its an error in the command then HOWTO delete the queing discipline when 
dsmark is used as its the root qdisc with no associated class

And if its a bug in the kernel then what is the workaround





_________________________________________________________________
Chat with friends online, try MSN Messenger: http://messenger.msn.com

_______________________________________________
LARTC mailing list / LARTC@mailman.ds9a.nl
http://mailman.ds9a.nl/mailman/listinfo/lartc HOWTO: http://lartc.org/

[Index of Archives]     [LARTC Home Page]     [Netfilter]     [Netfilter Development]     [Network Development]     [Bugtraq]     [GCC Help]     [Yosemite News]     [Linux Kernel]     [Fedora Users]
  Powered by Linux