Chain of HTB qdisc does not work

Linux Advanced Routing and Traffic Control

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

 



Greetings!

I configured a chain of htb qdisc's with classes: qdisc htb (1:0) ->
class htb (1:10) -> qdisc htb (10:0) -> class htb (10:1) -> multiple
class (10:1xxx - 10:2xxx).

`tc -s -d class show dev wg0`  show packets sent throug the leaf classes
(10:2xxx). But when I start a real test with iperf I do not see any
shaping. Traffic takes all available capacity.

What am I doing wrong ? Thanks in advance for your answers!

A part of the script, which activates shaping, is below.

#!/usr/bin/bash

TC="/usr/sbin/tc"
OUT_IF="wg0"

$TC qdisc del dev $OUT_IF root handle 1: htb default 50
$TC qdisc add dev $OUT_IF root handle 1: htb default 50

$TC class add dev $OUT_IF parent 1: classid 1:1 htb rate 1000Mbit ceil
1000Mbit

$TC class add dev $OUT_IF parent 1:1 classid 1:10 htb rate 250Mbit ceil
250Mbit
$TC qdisc add dev $OUT_IF parent 1:10 handle 10: htb default 50
$TC class add dev $OUT_IF parent 10: classid 10:1 htb rate 20Mbit ceil
20Mbit
$TC class add dev $OUT_IF parent 10: classid 10:2 htb rate 230Mbit ceil
230Mbit

for (( i=1; i <= 254; i++ ))
do
     $TC class add dev $OUT_IF parent 10:1 classid 10:1$i htb rate 1kbit
ceil 64kbit
     $TC class add dev $OUT_IF parent 10:2 classid 10:2$i htb rate
512kbit ceil 10Mbit
done

$TC filter add dev $OUT_IF parent 1:0 protocol ip u32
$TC filter add dev $OUT_IF parent 1:0 handle 2: protocol ip u32 divisor 256
$TC filter add dev $OUT_IF parent 1:0 protocol ip u32 ht 2:1: match ip
dst 10.1.0.0/16 flowid 1:10

$TC filter add dev $OUT_IF parent 1:0 protocol ip prio 1 u32 match ip
dst 10.0.0.0/8 hashkey mask 0xff0000 at 16 link 2:

$TC filter add dev $OUT_IF parent 10:0 protocol ip u32
$TC filter add dev $OUT_IF parent 10:0 handle 11: protocol ip u32
divisor 256
$TC filter add dev $OUT_IF parent 10:0 handle 12: protocol ip u32
divisor 256
$TC filter add dev $OUT_IF parent 10:0 handle 13: protocol ip u32
divisor 256

$TC filter add dev $OUT_IF parent 10:0 protocol ip u32 ht 11:1: match ip
dst 10.1.1.0/24 hashkey mask 0xff at 16 link 12:
$TC filter add dev $OUT_IF parent 10:0 protocol ip u32 ht 11:2: match ip
dst 10.1.2.0/24 hashkey mask 0xff at 16 link 13:

for (( i=1; i <= 254; i++ ))
do
     xi=$(printf "%x" $i)
     $TC filter add dev $OUT_IF parent 10:0 protocol ip u32 ht 12:$xi:
match ip dst 10.1.1.$i/32 flowid 10:1$i
     $TC filter add dev $OUT_IF parent 10:0 protocol ip u32 ht 13:$xi:
match ip dst 10.1.2.$i/32 flowid 10:2$i
done

$TC filter add dev $OUT_IF parent 10:0 protocol ip prio 1 u32 match ip
dst 10.1.0.0/16 hashkey mask 0xff00 at 16 link 11:

--
Best regards,
Yuriy Ivkin




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