[LARTC] CBQ rate inheritance?

Linux Advanced Routing and Traffic Control

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

 



How is it with cbq rate inheritance? I kind of expected, that if I have a
cbq class with 128 kbps rate, which has three sub-classes with 128 kbps rate
each, those three sub-classes will share those 128 kbps from their parent
class together. But it looks like they are getting 128 kbps or a bit less
each.

Is this the right behavior, or do I have something done wrong?

Also, how exactly does split and defmap work? Do I need it for this?

My setup is like this:


10:
root

10:1
cbq rate 128 Kbit

10:2               10:3               10:4
cbq rate 128 Kbit  cbq rate 128 Kbit  cbq rate 128 Kbit
pfifo              sfq                sfq


Then I use u32 filter to sort traffic to these three classes (each of the
cbq classes has a different prio).

tc qdisc add dev eth0 root handle 10: \
        cbq bandwidth 10000Kbit avpkt 1000 cell 8
tc class add dev eth0 parent 10:0 classid 10:1 \
        cbq bandwidth 128Kbit rate 128Kbit allot 1514 \
        cell 8 weight 12Kbit prio 5 maxburst 2 \
        avpkt 1000 bounded

tc class add dev eth0 parent 10:1 classid 10:2 cbq \
bandwidth 10000Kbit rate 128Kbit allot 1514 weight 12Kbit prio 1 \
avpkt 1000 maxburst 2 split 10:0 defmap 80 bounded
tc qdisc add dev eth0 parent 10:2 pfifo

tc class add dev eth0 parent 10:1 classid 10:3 cbq \
bandwidth 10000Kbit rate  128Kbit allot 1514 weight 12Kbit  prio 3 \
avpkt 1000 maxburst 2 split 10:0 defmap c0 bounded
tc qdisc add dev eth0 parent 10:3 sfq perturb 15

tc class add dev eth0 parent 10:1 classid 10:4 cbq \
bandwidth 10000Kbit rate  128Kbit  allot 1514 weight  12Kbit  prio 4 \
avpkt 1000 maxburst 2 split 10:0 defmap 3f bounded
tc qdisc add dev eth0 parent 10:4 sfq perturb 15

tc filter add dev eth0 parent 10:0 protocol ip prio 1 u32 \
   match ip sport 22 0xffff \
   match ip tos 0x8 0xff \
   match ip src 0.0.0.0/0  \
   flowid  10:4

tc filter add dev eth0 parent 10:0 protocol ip prio 1 u32 \
   match ip dport 22 0xffff \
   match ip tos 0x8 0xff \
   match ip src 0.0.0.0/0  \
   flowid  10:4

tc filter add dev eth0 parent 10:0 protocol ip prio 1 u32 \
   match ip tos 0x8 0xff \
   match ip src 0.0.0.0/0  \
   flowid  10:2

tc filter add dev eth0 parent 10:0 protocol ip prio 1 u32 \
   match ip tos 0x10 0xff \
   match ip src 0.0.0.0/0  \
   flowid  10:2

for i in 21 23 53 33434
do
tc filter add dev eth0 parent 10:0 protocol ip prio 1 u32 \
   match ip dport $i 0xffff \
   match ip src 0.0.0.0/0  \
   flowid 10:2
done

for i in 21 23 53 33434
do
tc filter add dev eth0 parent 10:0 protocol ip prio 1 u32 \
   match ip sport $i 0xffff \
   match ip src 0.0.0.0/0  \
   flowid 10:2
done

for i in 80 3128
do
tc filter add dev eth0 parent 10:0 protocol ip prio 1 u32 \
   match ip sport $i 0xffff \
   match ip src 0.0.0.0/0  \
   flowid 10:3
done

tc filter add dev eth0 parent 10:0 protocol ip prio 1 u32 \
   match ip protocol 1 0xff \
   match ip src 0.0.0.0/0  \
   flowid 10:2 \

tc filter add dev eth0 parent 10:0 protocol ip prio 1 u32 \
        match ip src 0.0.0.0/0  flowid 10:4



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