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
|
# ext_all does not allow policing on tcindex ----------------------------------
tcc -xif:err -Xx,all 2>&1
dsmark (indices 1) {
class (1) if 1;
prio {
class
on tcindex element (1)
police (rate 1Mbps,burst 2kB);
}
}
EOF
ERROR
<stdin>:5: dump_all does not support policing at tcindex
# ext_all fails if there is no match and pass_on is set -----------------------
tcc -xif:err -Xx,all 2>&1
dsmark (indices 1) {
class (1) if 1;
prio {
class
on tcindex(pass_on) element (2);
}
}
EOF
ERROR
<stdin>:5: dump_all found no matching choice for value 0x1 in tcindex
# ext_all can convert fall_through to an existing class -----------------------
tcc -xif:err -Xx,all 2>&1 | grep '^action'
dsmark (indices 1) {
class (1) if 1;
prio {
class (1)
on tcindex(fall_through) element (2);
}
}
EOF
action 1 = class 1:1,2:1
# ext_all finds and follows class in above case -------------------------------
tcc -xif:err -Xx,all 2>&1 | grep '^action'
dsmark (indices 1) {
class (1) if 1;
prio {
class (3)
on tcindex(fall_through) element (2);
class (1)
on tcindex(fall_through) element (42)
{
prio {
class (1) on tcindex (shift 1) element (0);
}
}
}
}
EOF
action 1 = class 1:1,2:1,3:1
# ext_all can convert fall_through to a non-existing class --------------------
tcc -xif:err -Xx,all 2>&1 | grep '^action'
dsmark (indices 1) {
class (1) if 1;
prio {
class (2)
on tcindex(fall_through) element (2);
}
}
EOF
action 1 = class 1:1,2:1
# tccext generates dummy class for non-existing class -------------------------
PATH=$PATH:tcc/ext tcc -xif:echo -Xx,all 2>&1 | sed '/^qdisc 2/,/action/p;d'
dsmark (indices 1) {
class (1) if 1;
prio {
class (1)
on tcindex(fall_through) element (2);
}
}
EOF
qdisc 2 = prio bands 3
class 1 =
action 1 = class 1:1,2:1
# ext_all picks tcindex filters in priority order -----------------------------
tcc -xif:err -Xx,all 2>&1 | grep '^action'
dsmark (indices 1) {
class (1) if 1;
prio {
class (1)
on tcindex(pass_on) element (1);
class (2)
on tcindex(pass_on) element (1);
}
}
EOF
action 1 = class 1:1,2:1
|