File: classvar

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 (118 lines) | stat: -rw-r--r-- 2,884 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
# class variables: multiple class selections ----------------------------------
tcc -Wnoexplicit -xif:err -Xx,all 2>&1 >/dev/null | grep -v ^#
#include "fields.tc"

field ip_nexthdr = ip_hdr[20] if ip_hl == 5;

dsmark (default_index 0) {
    $be = class { /* DEPRECATED !!! use <> now */
        fifo;
    }
    drop if tcp_sport == 80;
    class $be if tcp_sport == 53;
    drop if tcp_sport == 13;
    class $be if udp_sport != 0;
    drop if 1;
}
EOF
block eth0 egress
qdisc 2 = fifo
qdisc 1 = dsmark default_index 0 indices 1
class 0 = qdisc 2
action 0 = class 1:0
action 1 = drop
match 0:4:4=0x5 0:72:8=0x06 0:160:16=0x0050 action 1
match 0:4:4=0x5 0:72:8=0x06 0:160:16=0x0035 action 0
match 0:4:4=0x5 0:72:8=0x06 0:160:16=0x000D action 1
match 0:4:4=0x5 0:72:8=0x11 0:160:16=0x0000 action 1
match 0:4:4=0x5 0:72:8=0x11 action 0
match action 1
# class variables: selections on assignment too -------------------------------
tcc -Wnoexplicit -xif:err -Xx,all 2>&1 >/dev/null | grep -v ^#
#include "fields.tc"

field ip_nexthdr = ip_hdr[20] if ip_hl == 5;

dsmark (default_index 0) {
    $be = class
	if tcp_sport == 6667
    {
        fifo;
    }
    drop if tcp_sport == 80;
    class $be if tcp_sport == 53;
    drop if tcp_sport == 13;
    class $be if udp_sport != 0;
    drop if 1;
}
EOF
block eth0 egress
qdisc 2 = fifo
qdisc 1 = dsmark default_index 0 indices 1
class 0 = qdisc 2
action 1 = drop
action 0 = class 1:0
match 0:4:4=0x5 0:72:8=0x06 0:160:16=0x1A0B action 0
match 0:4:4=0x5 0:72:8=0x06 0:160:16=0x0050 action 1
match 0:4:4=0x5 0:72:8=0x06 0:160:16=0x0035 action 0
match 0:4:4=0x5 0:72:8=0x06 0:160:16=0x000D action 1
match 0:4:4=0x5 0:72:8=0x11 0:160:16=0x0000 action 1
match 0:4:4=0x5 0:72:8=0x11 action 0
match action 1
# class variables: reuse class selection path (1) -----------------------------
tcc -xif:err -Xx,all 2>&1 >/dev/null | grep -v ^#
dsmark {
    $c = class (<$a>) if raw[0] == 1;
    class (<$b>) if raw[0] == 2;
    class $c if raw[0] == 3;

    prio {
	$a = class {}
	$b = class {}
    }
}
EOF
block eth0 egress
qdisc 2 = prio bands 3
class 1 =
class 2 =
qdisc 1 = dsmark indices 4
class 0 = qdisc 2
class 1 =
class 2 =
action 0 = unspec
action 2 = class 1:2,2:2
action 1 = class 1:1,2:1
match 0:0:8=0x01 action 1
match 0:0:8=0x02 action 2
match 0:0:8=0x03 action 1
match action 0
# class variables: reuse class selection path (2) -----------------------------
tcc -xif:err -Xx,all 2>&1 >/dev/null | grep -v ^#
dsmark {
    $c = class (<$a>);
    $d = class (<$b>);

    prio {
	$a = class {}
	$b = class {}
    }

    class $c if raw[0] == 1;
    class $d if raw[0] == 2;
}
EOF
block eth0 egress
qdisc 2 = prio bands 3
class 1 =
class 2 =
qdisc 1 = dsmark indices 4
class 0 = qdisc 2
class 1 =
class 2 =
action 0 = unspec
action 2 = class 1:2,2:2
action 1 = class 1:1,2:1
match 0:0:8=0x01 action 1
match 0:0:8=0x02 action 2
match action 0