File: blocks

package info (click to toggle)
tcng 10b-1
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k
  • size: 3,632 kB
  • ctags: 2,515
  • sloc: ansic: 19,038; pascal: 4,640; yacc: 2,619; sh: 1,908; perl: 1,546; lex: 772; makefile: 755
file content (181 lines) | stat: -rw-r--r-- 2,397 bytes parent folder | download | duplicates (5)
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