1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101
|
BEGIN CONDITIONAL
tcsim
dev eth0
tc qdisc add dev eth0 root handle 1:0 tbf limit 20kB rate 1Mbit burst 3kB
tc qdisc add dev eth0 parent 1:0 pfifo
EOF
# TBF without inner qdisc (ext) ------------------------------------------------
tcc -x if:err -Xx,all 2>&1 | grep =
tbf (mtu 1.5kB,limit 10kB,rate 1kBps,burst 2kB);
EOF
qdisc 1 = tbf burst 2048 limit 10240 mtu 1536 rate 1000
action 0 = unspec
# TBF with empty inner block (ext) --------------------------------------------
tcc -x if:err -Xx,all 2>&1 | grep =
tbf (mtu 1.5kB,limit 10kB,rate 1kBps,burst 2kB) {
}
EOF
qdisc 1 = tbf burst 2048 limit 10240 mtu 1536 rate 1000
action 0 = unspec
# TBF with inner fifo (ext) ---------------------------------------------------
tcc -x if:err -Xx,all 2>&1 | grep =
tbf (mtu 1.5kB,limit 10kB,rate 1kBps,burst 2kB) {
fifo;
}
EOF
qdisc 2 = fifo
qdisc 1 = tbf burst 2048 limit 10240 mtu 1536 rate 1000
class 0 = qdisc 2
action 0 = unspec
# TBF without inner qdisc, -Xx,fifos (ext) ------------------------------------
tcc -x if:err -Xx,all -Xx,fifos 2>&1 | grep =
tbf (mtu 1.5kB,limit 10kB,rate 1kBps,burst 2kB);
EOF
qdisc 2 = fifo
qdisc 1 = tbf burst 2048 limit 10240 mtu 1536 rate 1000
class 0 = qdisc 2
action 0 = unspec
# TBF in egress, with inner fifo, -Xx,nounspec (ext) --------------------------
tcc -x if:err -Xx,all -Xx,nounspec 2>&1 | grep =
egress {
tbf (mtu 1.5kB,limit 10kB,rate 1kBps,burst 2kB) {
fifo;
}
}
EOF
qdisc 3 = fifo
qdisc 2 = tbf burst 2048 limit 10240 mtu 1536 rate 1000
class 0 = qdisc 3
qdisc 1 = dsmark indices 1
class 0 = qdisc 2
action 0 = class 1:0
# TBF at top-level, with inner fifo, -Xx,nounspec (ext) -----------------------
tcc -x if:err -Xx,all -Xx,nounspec 2>&1 | grep =
tbf (mtu 1.5kB,limit 10kB,rate 1kBps,burst 2kB) {
fifo;
}
EOF
qdisc 2 = fifo
qdisc 1 = tbf burst 2048 limit 10240 mtu 1536 rate 1000
class 0 = qdisc 2
action 0 = class 1:0
# TBF at top-level, without inner qdisc, -Xx,nounspec (ext) -------------------
tcc -x if:err -Xx,all -Xx,nounspec 2>&1 | grep =
tbf (mtu 1.5kB,limit 10kB,rate 1kBps,burst 2kB);
EOF
qdisc 1 = tbf burst 2048 limit 10240 mtu 1536 rate 1000
class 0 =
action 0 = class 1:0
# TBF with inner prio (ext) ----------------------------------------------------
tcc -x if:err -Xx,all 2>&1 | grep =
egress {
class (<$c1>) if raw[0] == 1;
class (<$c2>) if raw[0] == 2;
class (<$c3>) if 1;
tbf (mtu 1.5kB,limit 10kB,rate 1kBps,burst 2kB) {
prio {
$c1 = class (1);
$c2 = class (2);
$c3 = class (3);
}
}
}
EOF
qdisc 3 = prio bands 3
class 1 =
class 2 =
class 3 =
qdisc 2 = tbf burst 2048 limit 10240 mtu 1536 rate 1000
class 0 = qdisc 3
qdisc 1 = dsmark indices 8
class 0 = qdisc 2
class 5 =
class 6 =
class 7 =
action 7 = class 1:7,2:0,3:3
action 6 = class 1:6,2:0,3:2
action 5 = class 1:5,2:0,3:1
match 0:0:8=0x01 action 5
match 0:0:8=0x02 action 6
END CONDITIONAL
|