Referring to Differentiated Services on Linux <draft-almesberger-wajhak-diffserv-linux-01.txt> I read the
examples there; they seem to be very helpful. Especially the last two ones of
thee EF But in my case
I am working on an exterior node (packets are not marked
yet) Here is a
brief description of my problem. 1.
tc qdisc add
dev eth0 handle 1:0 root dsmark indices 64
set_tc_index 2.
tc class
change dev eth0 parent 1:0 classid 1:1 dsmark mask 0x3 value
0xb8 3.
tc class
change dev eth0 parent 1:0 classid 1:2 dsmark mask 0x3 value
0x28 4.
tc class
change dev eth0 parent 1:0 classid 1:3 dsmark mask 0x3 value
0x30 5.
tc class
change dev eth0 parent 1:0 classid 1:4 dsmark mask 0x3 value
0x38 6.
tc class
change dev eth0 parent 1:0 classid 1:5 dsmark mask 0x3 value
0x48 7.
tc class
change dev eth0 parent 1:0 classid 1:6 dsmark mask 0x3 value
0x50 8.
tc class
change dev eth0 parent 1:0 classid 1:7 dsmark mask 0x3 value
0x58 9.
tc class
change dev eth0 parent 1:0 classid 1:8 dsmark mask 0x3 value
0x60 10.
tc class
change dev eth0 parent 1:0 classid 1:9 dsmark mask 0x3 value
0x70 11.
tc class
change dev eth0 parent 1:0 classid 1:a dsmark mask 0x3 value
0x78 12.
tc class
change dev eth0 parent 1:0 classid 1:b dsmark mask 0x3 value
0x88 13.
tc class
change dev eth0 parent 1:0 classid 1:c dsmark mask 0x3 value
0x90 14.
tc class
change dev eth0 parent 1:0 classid 1:d dsmark mask 0x3 value
0x98 15.
tc qdisc add
dev eth0 handle 2:0 parent 1:0 cbq bandwidth 10Mbit cell 8 avpkt 1000 mpu
64 16.
tc class add
dev eth0 classid 2:1 parent 2:0 cbq bandwidth 10Mbit rate 50Kbit avpkt 1000 prio
1 bounded allot 1514 weight 1 maxburst 21 17.
tc class add
dev eth0 classid 2:2 parent 2:0 cbq bandwidth 10Mbit rate 50Kbit avpkt 1000 prio
2 bounded allot 1514 weight 1 maxburst 21 18.
tc class add
dev eth0 classid 2:3 parent 2:0 cbq bandwidth 10Mbit rate 50Kbit avpkt 1000 prio
3 bounded allot 1514 weight 1 maxburst 21 19.
tc class add
dev eth0 classid 2:4 parent 2:0 cbq bandwidth 10Mbit rate 50Kbit avpkt 1000 prio
4 bounded allot 1514 weight 1 maxburst 21 20.
tc class add
dev eth0 classid 2:5 parent 2:0 cbq bandwidth 10Mbit rate 50Kbit avpkt 1000 prio
5 bounded allot 1514 weight 1 maxburst 21 21.
tc class add
dev eth0 classid 2:6 parent 2:0 cbq bandwidth 10Mbit rate 50Kbit avpkt 1000 prio
6 bounded allot 1514 weight 1 maxburst 21 22.
tc class add
dev eth0 classid 2:7 parent 2:0 cbq bandwidth 10Mbit rate 50Kbit avpkt 1000 prio
7 bounded allot 1514 weight 1 maxburst 21 23.
tc class add
dev eth0 classid 2:8 parent 2:0 cbq bandwidth 10Mbit rate 50Kbit avpkt 1000 prio
8 bounded allot 1514 weight 1 maxburst 21 24.
tc class add
dev eth0 classid 2:9 parent 2:0 cbq bandwidth 10Mbit rate 50Kbit avpkt 1000 prio
9 bounded allot 1514 weight 1 maxburst 21 25.
tc class add
dev eth0 classid 2:a parent 2:0 cbq bandwidth 10Mbit rate 50Kbit avpkt 1000 prio
10 bounded allot 1514 weight 1 maxburst 21 26.
tc class add
dev eth0 classid 2:b parent 2:0 cbq bandwidth 10Mbit rate 50Kbit avpkt 1000 prio
11 bounded allot 1514 weight 1 maxburst 21 27.
tc class add
dev eth0 classid 2:c parent 2:0 cbq bandwidth 10Mbit rate 50Kbit avpkt 1000 prio
12 bounded allot 1514 weight 1 maxburst 21 28.
tc class add
dev eth0 classid 2:d parent 2:0 cbq bandwidth 10Mbit rate 50Kbit avpkt 1000 prio
13 bounded allot 1514 weight 1 maxburst 21 29.
etc. So here in
lines 1, 2, till 14 I made a rood qdisc “DSMARK” and put in it two “DSMARK”
classes for marking 0xb8, and 0x28, etc In lines 15,
16, till 28 I added a “CBQ” Now I have no
problem in making filters to classify the incoming traffic according to their IP
header (u32, etc) and to point them to the “DSMARK” classes 1:1, and
1:2. But I need to
reclassify the packets within the “CBQ” again, according to the mark they had
had. The problem
here that I tried to use a “TCINDEX” filter E.g. tc filter
add dev eth0 parent 2:0 protocol ip prio 1 tcindex handle 1 tcindex classid
2:1 This filter is
supposed to point the traffic with the mark 0xb8 to classid
2:1 But when I
added the rest of the filters to point to the classes 2:2, 2:3, 2:d .. only some
of the filters worked well and the rest didn’t Also in that
“TCINDEX” filter, what value does that handle take? Is it in hex or decimal or
is it just the marking classid or what? BEST REGARDS
|