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 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181
|
# blocks allowed in unnamed device body ---------------------------------------
tcc | sed 's/.* root //'
{
{
fifo;
}
}
EOF
pfifo
# blocks allowed in named device body -----------------------------------------
tcc
dev "eth1" {
{
fifo;
}
}
EOF
tc qdisc add dev eth1 handle 1:0 root pfifo
# blocks allowed in qdisc body ------------------------------------------------
tcc -xif:err -Xx,all 2>&1 | grep -v '^#'
prio {
{
class (1);
class (2);
}
class (3);
}
EOF
block eth0 egress
qdisc 1 = prio bands 3
class 1 =
class 2 =
class 3 =
action 0 = unspec
match action 0
# blocks allowed in class body ------------------------------------------------
tcc -c
prio {
class {
$foo = 1;
{
fifo(limit $foo kp);
}
}
}
EOF
# blocks allowed in filter body -----------------------------------------------
tcc | sed '/fw classid/s/.*handle //p;d'
prio {
fw {
{
class (1) on (1);
}
{
$n = 2;
class (2) on ($n);
class (3) on (1+$n);
}
}
}
EOF
1 fw classid 1:1
2 fw classid 1:2
3 fw classid 1:3
# qdisc propagates through blocks ---------------------------------------------
tcc
prio {
class (1) {
{
fifo;
}
}
}
EOF
tc qdisc add dev eth0 handle 1:0 root prio
tc qdisc add dev eth0 handle 2:0 parent 1:1 pfifo
# qdisc collision from distinct blocks is detected (1) ------------------------
tcc 2>&1
prio {
class {
{
fifo;
}
{
fifo;
}
}
}
EOF
ERROR
<stdin>:7: only one qdisc allowed in class body
# qdisc collision from distinct blocks is detected (2) ------------------------
tcc 2>&1
prio {
class {
{
fifo;
}
$foo = 1;
{
fifo;
}
}
}
EOF
ERROR
<stdin>:8: only one qdisc allowed in class body
# "inner" blocks are shown correctly in variable use output -------------------
tcc -c -u stderr -Wnounused 2>&1
$a = 0;
dev "xyz" {
$a = 1;
{
$a = 2;
prio {
$a = 3;
{
$a = 4;
fw {
$a = 5;
{
$a = 6;
class
on (1)
{
$a = 7;
{
$a = 8;
fifo;
$a = 9;
}
$a = 10;
}
$a = 11;
}
$a = 12;
}
$a = 13;
}
$a = 14;
}
$a = 15;
}
$a = 16;
}
$a = 17;
EOF
$a = 0
{ device xyz
$a = 1
{
$a = 2
{ qdisc xyz:1
$a = 3
{
$a = 4
{ filter xyz:1::1
$a = 5
{
$a = 6
{ class xyz:1:1
$a = 7
{
$a = 8
$a = 9
}
$a = 10
}
$a = 11
}
$a = 12
}
$a = 13
}
$a = 14
}
$a = 15
}
$a = 16
}
$a = 17
|