xref: /openbsd-src/regress/usr.sbin/bgpd/unittests/rde_community_test.h (revision bb45cee663faaf662ba72e9bdb2d7ad15586011b)
19b645b30Sclaudio struct rde_peer peer = {
29b645b30Sclaudio 	.conf.local_as = 42,
39b645b30Sclaudio 	.conf.remote_as = 22512,
49b645b30Sclaudio };
59b645b30Sclaudio struct rde_peer peer_l4 = {
69b645b30Sclaudio 	.conf.local_as = 196618,
79b645b30Sclaudio 	.conf.remote_as = 22512,
89b645b30Sclaudio };
99b645b30Sclaudio struct rde_peer peer_r4 = {
109b645b30Sclaudio 	.conf.local_as = 22512,
119b645b30Sclaudio 	.conf.remote_as = 196618,
129b645b30Sclaudio };
139b645b30Sclaudio struct rde_peer peer_b4 = {
149b645b30Sclaudio 	.conf.local_as = 196618,
159b645b30Sclaudio 	.conf.remote_as = 424242,
169b645b30Sclaudio };
179b645b30Sclaudio 
18ff8ffa77Sclaudio struct vector {
19ff8ffa77Sclaudio 	uint8_t	*data;
20ff8ffa77Sclaudio 	size_t	size;
21*bb45cee6Sclaudio 	uint8_t	*expected;
22*bb45cee6Sclaudio 	size_t	expsize;
23ff8ffa77Sclaudio } vectors[] = {
24ff8ffa77Sclaudio 
25ff8ffa77Sclaudio 	{
26ff8ffa77Sclaudio 		.data = "\xc0\x08\x04\x00\x00\x48\xce",
27ff8ffa77Sclaudio 		.size = 7
28ff8ffa77Sclaudio 	},
29ff8ffa77Sclaudio 	{
30ff8ffa77Sclaudio 		.data = "\xc0\x08\x04\x0f\x10\xc8\x02",
31ff8ffa77Sclaudio 		.size = 7
32ff8ffa77Sclaudio 	},
33ff8ffa77Sclaudio 	{
34ff8ffa77Sclaudio 		.data = "\xc0\x08\x04\x3b\xc0\x00\xc9",
35ff8ffa77Sclaudio 		.size = 7
36ff8ffa77Sclaudio 	},
37ff8ffa77Sclaudio 	{
38ff8ffa77Sclaudio 		.data = "\xe0\x08\x04\x4e\x97\x00\x03",
39ff8ffa77Sclaudio 		.size = 7
40ff8ffa77Sclaudio 	},
41ff8ffa77Sclaudio 	{
42ff8ffa77Sclaudio 		.data = "\xe0\x08\x08\x3b\xc0\x00\xc9\x3b\xc0\x00\xcb",
43ff8ffa77Sclaudio 		.size = 11
44ff8ffa77Sclaudio 	},
45ff8ffa77Sclaudio 	{
46ff8ffa77Sclaudio 		.data = "\xc0\x08\x08\x9e\x19\x7a\x44\x9e\x19\x7a\x45",
47ff8ffa77Sclaudio 		.size = 11
48ff8ffa77Sclaudio 	},
49ff8ffa77Sclaudio 	{
50ff8ffa77Sclaudio 		.data = "\xc0\x08\x14\x00\x00\x0b\x5a\x00\x00\x3f\x89\x00\x00"
51ff8ffa77Sclaudio 		    "\x3f\x94\x00\x00\x48\xce\x00\x00\xa2\xda",
52ff8ffa77Sclaudio 		.size = 23
53ff8ffa77Sclaudio 	},
54ff8ffa77Sclaudio 	{
55ff8ffa77Sclaudio 		.data = "\xc0\x10\x08\x00\x02\xfc\x00\x00\x00\x00\x40",
56ff8ffa77Sclaudio 		.size = 11
57ff8ffa77Sclaudio 	},
58ff8ffa77Sclaudio 	{
59ff8ffa77Sclaudio 		.data = "\xc0\x10\x08\x00\x02\xfc\x00\x00\x00\x00\x42",
60ff8ffa77Sclaudio 		.size = 11
61ff8ffa77Sclaudio 	},
62ff8ffa77Sclaudio 	{
63ff8ffa77Sclaudio 		.data = "\xc0\x10\x08\x00\x02\xfc\x00\x00\x00\x00\xb2",
64ff8ffa77Sclaudio 		.size = 11
65ff8ffa77Sclaudio 	},
66ff8ffa77Sclaudio 	{
67ff8ffa77Sclaudio 		.data = "\xc0\x10\x08\x00\x02\xfc\x00\x00\x00\x00\xd3",
68ff8ffa77Sclaudio 		.size = 11
69ff8ffa77Sclaudio 	},
70ff8ffa77Sclaudio 	{
71ff8ffa77Sclaudio 		.data = "\xe0\x10\x08\x00\x02\xfc\x00\x00\x00\x01\x10",
72ff8ffa77Sclaudio 		.size = 11
73ff8ffa77Sclaudio 	},
74ff8ffa77Sclaudio 	{
75ff8ffa77Sclaudio 		.data = "\xe0\x10\x08\x00\x02\xfc\x00\x00\x00\x01\x1e",
76ff8ffa77Sclaudio 		.size = 11
77ff8ffa77Sclaudio 	},
78ff8ffa77Sclaudio 	{
79ff8ffa77Sclaudio 		.data = "\xe0\x10\x08\x00\x02\xfc\x00\x00\x00\x01\x29",
80ff8ffa77Sclaudio 		.size = 11
81ff8ffa77Sclaudio 	},
82ff8ffa77Sclaudio 	{
83ff8ffa77Sclaudio 		.data = "\xc0\x10\x08\x00\x02\xfc\x00\x00\x00\x01\xb6",
84ff8ffa77Sclaudio 		.size = 11
85ff8ffa77Sclaudio 	},
86ff8ffa77Sclaudio 	{
87ff8ffa77Sclaudio 		.data = "\xc0\x10\x08\x00\x02\xfc\x00\x00\x00\x01\xe0",
88ff8ffa77Sclaudio 		.size = 11
89ff8ffa77Sclaudio 	},
90ff8ffa77Sclaudio 	{
91ff8ffa77Sclaudio 		.data = "\xc0\x10\x08\x00\x02\xfc\x00\x00\x00\x02\x8b",
92ff8ffa77Sclaudio 		.size = 11
93ff8ffa77Sclaudio 	},
94ff8ffa77Sclaudio 	{
95ff8ffa77Sclaudio 		.data = "\xc0\x10\x08\x00\x02\xfc\x00\x00\x00\x02\xc5",
96ff8ffa77Sclaudio 		.size = 11
97ff8ffa77Sclaudio 	},
98ff8ffa77Sclaudio 	{
99ff8ffa77Sclaudio 		.data = "\xc0\x10\x08\x00\x02\xfc\x00\x00\x00\x03\xc2",
100ff8ffa77Sclaudio 		.size = 11
101ff8ffa77Sclaudio 	},
102ff8ffa77Sclaudio 	{
103ff8ffa77Sclaudio 		.data = "\xc0\x10\x08\x00\x02\xfc\x00\x00\x00\x04\x09",
104ff8ffa77Sclaudio 		.size = 11
105ff8ffa77Sclaudio 	},
106ff8ffa77Sclaudio 	{
107ff8ffa77Sclaudio 		.data = "\xc0\x10\x08\x00\x02\xfc\x00\x00\x00\x04\xe4",
108ff8ffa77Sclaudio 		.size = 11
109ff8ffa77Sclaudio 	},
110ff8ffa77Sclaudio 	{
111ff8ffa77Sclaudio 		.data = "\xc0\x10\x08\x00\x02\xfc\x00\x00\x00\x05\x57",
112ff8ffa77Sclaudio 		.size = 11
113ff8ffa77Sclaudio 	},
114ff8ffa77Sclaudio 	{
115ff8ffa77Sclaudio 		.data = "\xc0\x10\x08\x00\x02\xfc\x00\x00\x00\x05\x92",
116ff8ffa77Sclaudio 		.size = 11
117ff8ffa77Sclaudio 	},
118ff8ffa77Sclaudio 	{
119ff8ffa77Sclaudio 		.data = "\xc0\x10\x08\x00\x02\xfd\xe8\x00\x00\x2a\xf8",
120ff8ffa77Sclaudio 		.size = 11
121ff8ffa77Sclaudio 	},
122ff8ffa77Sclaudio 	{
123*bb45cee6Sclaudio 		.data = "\xc0\x20\x0c\x00\x00\xd0\x5b\x00\x00\x00\x0b\x00\x00"
124*bb45cee6Sclaudio 		    "\x00\x03",
125*bb45cee6Sclaudio 		.size = 15
126*bb45cee6Sclaudio 	},
127*bb45cee6Sclaudio 	{
128ff8ffa77Sclaudio 		.data = "\xc0\x20\x18\x00\x00\xd0\x5b\x00\x00\x00\x0b\x00\x00"
129ff8ffa77Sclaudio 		    "\x00\x01\x00\x00\xd0\x5b\x00\x00\x00\x0b\x00\x00"
130ff8ffa77Sclaudio 		    "\x00\x03",
131ff8ffa77Sclaudio 		.size = 27
132ff8ffa77Sclaudio 	},
133ff8ffa77Sclaudio 	{
134ff8ffa77Sclaudio 		.data = "\xe0\x20\x24\x00\x00\xd0\x5b\x00\x00\x00\x0b\x00\x00"
135ff8ffa77Sclaudio 		    "\x00\x01\x00\x00\xd0\x5b\x00\x00\x00\x0b\x00\x00"
136ff8ffa77Sclaudio 		    "\x00\x03\x00\x00\xed\x5f\x00\x00\xed\x5f\x00\x00"
137ff8ffa77Sclaudio 		    "\xed\x5f",
138ff8ffa77Sclaudio 		.size = 39
139ff8ffa77Sclaudio 	},
140ff8ffa77Sclaudio 	{
141ff8ffa77Sclaudio 		.data = "\xe0\x20\x24\x00\x00\xd0\x5b\x00\x00\x00\x0b\x00\x00"
142ff8ffa77Sclaudio 		    "\x00\x01\x00\x00\xd0\x5b\x00\x00\x00\x0b\x00\x00"
143ff8ffa77Sclaudio 		    "\x00\x03\x00\x03\x16\x49\x00\x03\x16\x49\x00\x00"
144ff8ffa77Sclaudio 		    "\x00\x64",
145ff8ffa77Sclaudio 		.size = 39
146ff8ffa77Sclaudio 	},
147ff8ffa77Sclaudio 	{
148ff8ffa77Sclaudio 		.data = "\xe0\x20\x24\x00\x00\xd0\x5b\x00\x00\x00\x0b\x00\x00"
149ff8ffa77Sclaudio 		    "\x00\x01\x00\x00\xd0\x5b\x00\x00\x00\x0b\x00\x00"
150ff8ffa77Sclaudio 		    "\x00\x03\x00\x03\x16\xa9\x00\x03\x16\xa9\x00\x00"
151ff8ffa77Sclaudio 		    "\x00\x00",
152ff8ffa77Sclaudio 		.size = 39
153ff8ffa77Sclaudio 	},
154ff8ffa77Sclaudio 	{
155ff8ffa77Sclaudio 		.data = "\xe0\x20\x24\x00\x00\xd0\x5b\x00\x00\x00\x0b\x00\x00"
156ff8ffa77Sclaudio 		    "\x00\x01\x00\x00\xd0\x5b\x00\x00\x00\x0b\x00\x00"
157ff8ffa77Sclaudio 		    "\x00\x03\x00\x03\x24\x92\x00\x00\x00\x03\x00\x00"
158ff8ffa77Sclaudio 		    "\x00\x01",
159ff8ffa77Sclaudio 		.size = 39
160ff8ffa77Sclaudio 	},
161ff8ffa77Sclaudio 	{
162ff8ffa77Sclaudio 		.data = "\xe0\x20\x24\x00\x00\xd0\x5b\x00\x00\x00\x0b\x00\x00"
163ff8ffa77Sclaudio 		    "\x00\x01\x00\x00\xd0\x5b\x00\x00\x00\x0b\x00\x00"
164ff8ffa77Sclaudio 		    "\x00\x03\x00\x03\x25\x4b\x00\x00\x00\xc8\x00\x00"
165ff8ffa77Sclaudio 		    "\x00\x00",
166ff8ffa77Sclaudio 		.size = 39
167ff8ffa77Sclaudio 	},
168ff8ffa77Sclaudio 	{
169ff8ffa77Sclaudio 		.data = "\xe0\x20\x24\x00\x00\xd0\x5b\x00\x00\x00\x0b\x00\x00"
170ff8ffa77Sclaudio 		    "\x00\x01\x00\x00\xd0\x5b\x00\x00\x00\x0b\x00\x00"
171ff8ffa77Sclaudio 		    "\x00\x03\x00\x03\x26\x8f\x00\x00\x01\x2c\x00\x00"
172ff8ffa77Sclaudio 		    "\x00\x00",
173ff8ffa77Sclaudio 		.size = 39
174ff8ffa77Sclaudio 	},
175ff8ffa77Sclaudio 	{
176ff8ffa77Sclaudio 		.data = "\xe0\x20\x24\x00\x00\xd0\x5b\x00\x00\x00\x0b\x00\x00"
177ff8ffa77Sclaudio 		    "\x00\x01\x00\x00\xd0\x5b\x00\x00\x00\x0b\x00\x00"
178ff8ffa77Sclaudio 		    "\x00\x03\x00\x03\x26\xa3\x00\x00\x02\x58\x00\x03"
179ff8ffa77Sclaudio 		    "\x26\xa3",
180ff8ffa77Sclaudio 		.size = 39
181ff8ffa77Sclaudio 	},
182ff8ffa77Sclaudio 	{
183ff8ffa77Sclaudio 		.data = "\xe0\x20\x24\x00\x00\xd0\x5b\x00\x00\x00\x0b\x00\x00"
184ff8ffa77Sclaudio 		    "\x00\x01\x00\x00\xd0\x5b\x00\x00\x00\x0b\x00\x00"
185ff8ffa77Sclaudio 		    "\x00\x03\x00\x03\x33\xc8\x00\x00\x07\xd0\x00\x00"
186ff8ffa77Sclaudio 		    "\x00\x1e",
187ff8ffa77Sclaudio 		.size = 39
188ff8ffa77Sclaudio 	},
189ff8ffa77Sclaudio 	{
190ff8ffa77Sclaudio 		.data = "\xe0\x20\x30\x00\x00\xd0\x5b\x00\x00\x00\x0b\x00\x00"
191ff8ffa77Sclaudio 		    "\x00\x01\x00\x00\xd0\x5b\x00\x00\x00\x0b\x00\x00"
192ff8ffa77Sclaudio 		    "\x00\x03\x00\x00\xdf\x1e\x00\x00\x00\x1e\x00\x00"
193ff8ffa77Sclaudio 		    "\x00\x00\x00\x00\xdf\x1e\x00\x00\x00\x1e\x00\x00"
194ff8ffa77Sclaudio 		    "\x00\x0a",
195ff8ffa77Sclaudio 		.size = 51
196ff8ffa77Sclaudio 	},
197ff8ffa77Sclaudio 	{
198ff8ffa77Sclaudio 		.data = "\xe0\x20\x30\x00\x00\xd0\x5b\x00\x00\x00\x0b\x00\x00"
199ff8ffa77Sclaudio 		    "\x00\x01\x00\x00\xd0\x5b\x00\x00\x00\x0b\x00\x00"
200ff8ffa77Sclaudio 		    "\x00\x03\x00\x03\x1c\xe3\x00\x00\x00\x01\x00\x00"
201ff8ffa77Sclaudio 		    "\x00\x00\x00\x03\x1c\xe3\x00\x00\x00\x01\x00\x00"
202ff8ffa77Sclaudio 		    "\x00\x02",
203ff8ffa77Sclaudio 		.size = 51
204ff8ffa77Sclaudio 	},
205ff8ffa77Sclaudio 	{
206ff8ffa77Sclaudio 		.data = "\xe0\x20\x30\x00\x00\xd0\x5b\x00\x00\x00\x0b\x00\x00"
207ff8ffa77Sclaudio 		    "\x00\x01\x00\x00\xd0\x5b\x00\x00\x00\x0b\x00\x00"
208ff8ffa77Sclaudio 		    "\x00\x03\x00\x03\x26\xa3\x00\x00\x02\x58\x00\x03"
209ff8ffa77Sclaudio 		    "\x26\xa3\x00\x03\x26\xa3\x00\x03\x26\xa3\x00\x00"
210ff8ffa77Sclaudio 		    "\x00\xc8",
211ff8ffa77Sclaudio 		.size = 51
212ff8ffa77Sclaudio 	},
213ff8ffa77Sclaudio 	{
214ff8ffa77Sclaudio 		.data = "\xe0\x20\x30\x00\x00\xd0\x5b\x00\x00\x00\x0b\x00\x00"
215ff8ffa77Sclaudio 		    "\x00\x01\x00\x00\xd0\x5b\x00\x00\x00\x0b\x00\x00"
216ff8ffa77Sclaudio 		    "\x00\x03\x00\x03\x27\xdd\x00\x00\x00\x00\x00\x00"
217ff8ffa77Sclaudio 		    "\x00\x00\x00\x03\x27\xdd\x00\x00\x00\x00\x00\x00"
218ff8ffa77Sclaudio 		    "\x23\x49",
219ff8ffa77Sclaudio 		.size = 51
220ff8ffa77Sclaudio 	},
221ff8ffa77Sclaudio 	{
222ff8ffa77Sclaudio 		.data = "\xe0\x20\x30\x00\x00\xd0\x5b\x00\x00\x00\x0b\x00\x00"
223ff8ffa77Sclaudio 		    "\x00\x01\x00\x00\xd0\x5b\x00\x00\x00\x0b\x00\x00"
224ff8ffa77Sclaudio 		    "\x00\x03\x00\x03\x27\xdd\x00\x00\x00\x00\x00\x00"
225ff8ffa77Sclaudio 		    "\x00\x00\x00\x03\x27\xdd\x00\x00\x00\x00\x00\x00"
226ff8ffa77Sclaudio 		    "\xc2\x51",
227ff8ffa77Sclaudio 		.size = 51
228ff8ffa77Sclaudio 	},
229ff8ffa77Sclaudio 	{
230ff8ffa77Sclaudio 		.data = "\xe0\x20\x30\x00\x00\xd0\x5b\x00\x00\x00\x0b\x00\x00"
231ff8ffa77Sclaudio 		    "\x00\x01\x00\x00\xd0\x5b\x00\x00\x00\x0b\x00\x00"
232ff8ffa77Sclaudio 		    "\x00\x03\x00\x03\x28\xe8\x00\x00\x00\x00\x00\x00"
233ff8ffa77Sclaudio 		    "\x00\x00\x00\x03\x28\xe8\x00\x00\x00\x01\x00\x00"
234ff8ffa77Sclaudio 		    "\x00\x00",
235ff8ffa77Sclaudio 		.size = 51
236ff8ffa77Sclaudio 	},
237ff8ffa77Sclaudio 	{
238ff8ffa77Sclaudio 		.data = "\xe0\x20\x3c\x00\x00\xd0\x5b\x00\x00\x00\x0b\x00\x00"
239ff8ffa77Sclaudio 		    "\x00\x01\x00\x00\xd0\x5b\x00\x00\x00\x0b\x00\x00"
240ff8ffa77Sclaudio 		    "\x00\x03\x00\x02\x1a\xcd\x00\x00\xfc\x00\x00\x00"
241ff8ffa77Sclaudio 		    "\x00\x0b\x00\x02\x1a\xcd\x00\x00\xfc\x00\x00\x00"
242ff8ffa77Sclaudio 		    "\x00\x15\x00\x02\x1a\xcd\x00\x00\xff\xed\x00\x00"
243ff8ffa77Sclaudio 		    "\x00\x01",
244ff8ffa77Sclaudio 		.size = 63
245ff8ffa77Sclaudio 	},
246ff8ffa77Sclaudio 	{
247ff8ffa77Sclaudio 		.data = "\xe0\x20\x3c\x00\x00\xd0\x5b\x00\x00\x00\x0b\x00\x00"
248ff8ffa77Sclaudio 		    "\x00\x01\x00\x00\xd0\x5b\x00\x00\x00\x0b\x00\x00"
249ff8ffa77Sclaudio 		    "\x00\x03\x00\x03\x16\xa9\x00\x00\x00\x00\x00\x03"
250ff8ffa77Sclaudio 		    "\x35\x3a\x00\x03\x16\xa9\x00\x03\x16\xa9\x00\x00"
251ff8ffa77Sclaudio 		    "\x00\x00\x00\x03\x26\xa3\x00\x03\x26\xa3\x00\x00"
252ff8ffa77Sclaudio 		    "\x03\x84",
253ff8ffa77Sclaudio 		.size = 63
254ff8ffa77Sclaudio 	},
255ff8ffa77Sclaudio 	{
256ff8ffa77Sclaudio 		.data = "\xe0\x20\x3c\x00\x00\xd0\x5b\x00\x00\x00\x0b\x00\x00"
257ff8ffa77Sclaudio 		    "\x00\x01\x00\x00\xd0\x5b\x00\x00\x00\x0b\x00\x00"
258ff8ffa77Sclaudio 		    "\x00\x03\x00\x03\x16\xa9\x00\x03\x16\xa9\x00\x03"
259ff8ffa77Sclaudio 		    "\x16\xa9\x00\x03\x26\xa3\x00\x00\x01\x2c\x00\x00"
260ff8ffa77Sclaudio 		    "\x03\xe7\x00\x03\x26\xa3\x00\x00\x02\x58\x00\x03"
261ff8ffa77Sclaudio 		    "\x26\xa3",
262ff8ffa77Sclaudio 		.size = 63
263ff8ffa77Sclaudio 	},
264ff8ffa77Sclaudio 	{
265ff8ffa77Sclaudio 		.data = "\xe0\x20\xb4\x00\x00\xd0\x5b\x00\x00\x00\x0b\x00\x00"
266ff8ffa77Sclaudio 		    "\x00\x01\x00\x00\xd0\x5b\x00\x00\x00\x0b\x00\x00"
267ff8ffa77Sclaudio 		    "\x00\x03\x00\x03\x22\xd3\x00\x00\x00\x0a\x00\x00"
268ff8ffa77Sclaudio 		    "\x00\x0a\x00\x03\x22\xd3\x00\x00\x00\x0a\x00\x00"
269ff8ffa77Sclaudio 		    "\x00\xc9\x00\x03\x22\xd3\x00\x00\x00\x0a\x00\x00"
270ff8ffa77Sclaudio 		    "\x00\xca\x00\x03\x22\xd3\x00\x00\x00\x14\x00\x00"
271ff8ffa77Sclaudio 		    "\x00\x0b\x00\x03\x22\xd3\x00\x00\x00\x14\x00\x00"
272ff8ffa77Sclaudio 		    "\x00\x64\x00\x03\x22\xd3\x00\x00\x00\x14\x00\x00"
273ff8ffa77Sclaudio 		    "\x00\x65\x00\x03\x22\xd3\x00\x00\x00\x14\x00\x00"
274ff8ffa77Sclaudio 		    "\x00\x66\x00\x03\x22\xd3\x00\x00\x00\x14\x00\x00"
275ff8ffa77Sclaudio 		    "\x00\x67\x00\x03\x22\xd3\x00\x00\x00\x14\x00\x00"
276ff8ffa77Sclaudio 		    "\x00\x68\x00\x03\x22\xd3\x00\x00\x00\x14\x00\x00"
277ff8ffa77Sclaudio 		    "\x00\xc8\x00\x03\x22\xd3\x00\x00\x00\x14\x00\x00"
278ff8ffa77Sclaudio 		    "\x00\xcf\x00\x03\x22\xd3\x00\x00\x00\x14\x00\x00"
279ff8ffa77Sclaudio 		    "\x00\xd0\x00\x03\x22\xd3\x00\x00\x00\x79\x00\x00"
280ff8ffa77Sclaudio 		    "\x00\x00",
281ff8ffa77Sclaudio 		.size = 183
282*bb45cee6Sclaudio 	},
283*bb45cee6Sclaudio 	{
284*bb45cee6Sclaudio 		.data = "\xc0\x10\x08\x43\x00\x00\x00\x00\x00\x00\x02",
285*bb45cee6Sclaudio 		.size = 11,
286*bb45cee6Sclaudio 		.expected = "",
287*bb45cee6Sclaudio 		.expsize = 0,
288*bb45cee6Sclaudio 	},
289*bb45cee6Sclaudio 	{
290*bb45cee6Sclaudio 		.data = "\xc0\x10\x10\x00\x02\xfc\x00\x00\x00\x00\x40"
291*bb45cee6Sclaudio 		    "\x43\x00\x00\x00\x00\x00\x00\x02",
292*bb45cee6Sclaudio 		.size = 19,
293*bb45cee6Sclaudio 		.expected = "\xc0\x10\x08\x00\x02\xfc\x00\x00\x00\x00\x40",
294*bb45cee6Sclaudio 		.expsize = 11,
295*bb45cee6Sclaudio 	},
296*bb45cee6Sclaudio 	{
297*bb45cee6Sclaudio 		.data = "\xc0\x10\x18\x00\x02\xfc\x00\x00\x00\x00\x40"
298*bb45cee6Sclaudio 		    "\x43\x00\x00\x00\x00\x00\x00\x02"
299*bb45cee6Sclaudio 		    "\x06\x00\x00\x00\x00\x00\x00\x01",
300*bb45cee6Sclaudio 		.size = 27,
301*bb45cee6Sclaudio 		.expected = "\xc0\x10\x10\x06\x00\x00\x00\x00\x00\x00\x01"
302*bb45cee6Sclaudio 		    "\x00\x02\xfc\x00\x00\x00\x00\x40",
303*bb45cee6Sclaudio 		.expsize = 19,
304*bb45cee6Sclaudio 	},
305*bb45cee6Sclaudio 	{
306*bb45cee6Sclaudio 		.data = "\xe0\x08\x04\x4e\x97\x00\x03"
307*bb45cee6Sclaudio 		    "\xc0\x10\x08\x43\x00\x00\x00\x00\x00\x00\x02",
308*bb45cee6Sclaudio 		.size = 7 + 11,
309*bb45cee6Sclaudio 		.expected = "\xe0\x08\x04\x4e\x97\x00\x03",
310*bb45cee6Sclaudio 		.expsize = 7,
311*bb45cee6Sclaudio 	},
312*bb45cee6Sclaudio 	{
313*bb45cee6Sclaudio 		.data = "\xe0\x08\x04\x4e\x97\x00\x03"
314*bb45cee6Sclaudio 		    "\xc0\x10\x10\x00\x02\xfc\x00\x00\x00\x00\x40"
315*bb45cee6Sclaudio 		    "\x43\x00\x00\x00\x00\x00\x00\x02",
316*bb45cee6Sclaudio 		.size = 7 + 19,
317*bb45cee6Sclaudio 		.expected = "\xe0\x08\x04\x4e\x97\x00\x03"
318*bb45cee6Sclaudio 		    "\xc0\x10\x08\x00\x02\xfc\x00\x00\x00\x00\x40",
319*bb45cee6Sclaudio 		.expsize = 7 + 11,
320*bb45cee6Sclaudio 	},
321*bb45cee6Sclaudio 	{
322*bb45cee6Sclaudio 		.data = "\xc0\x10\x08\x43\x00\x00\x00\x00\x00\x00\x02"
323*bb45cee6Sclaudio 		    "\xc0\x20\x0c\x00\x00\xd0\x5b\x00\x00\x00\x0b"
324*bb45cee6Sclaudio 		    "\x00\x00\x00\x03",
325*bb45cee6Sclaudio 		.size = 11 + 15,
326*bb45cee6Sclaudio 		.expected = "\xc0\x20\x0c\x00\x00\xd0\x5b\x00\x00\x00\x0b"
327*bb45cee6Sclaudio 		    "\x00\x00\x00\x03",
328*bb45cee6Sclaudio 		.expsize = 15,
329*bb45cee6Sclaudio 	},
330*bb45cee6Sclaudio 	{
331*bb45cee6Sclaudio 		.data = "\xe0\x08\x04\x4e\x97\x00\x03"
332*bb45cee6Sclaudio 		    "\xc0\x10\x08\x43\x00\x00\x00\x00\x00\x00\x02"
333*bb45cee6Sclaudio 		    "\xc0\x20\x0c\x00\x00\xd0\x5b\x00\x00\x00\x0b"
334*bb45cee6Sclaudio 		    "\x00\x00\x00\x03",
335*bb45cee6Sclaudio 		.size = 7 + 11 + 15,
336*bb45cee6Sclaudio 		.expected = "\xe0\x08\x04\x4e\x97\x00\x03"
337*bb45cee6Sclaudio 		    "\xc0\x20\x0c\x00\x00\xd0\x5b\x00\x00\x00\x0b"
338*bb45cee6Sclaudio 		    "\x00\x00\x00\x03",
339*bb45cee6Sclaudio 		.expsize = 7 + 15,
340*bb45cee6Sclaudio 	},
341ff8ffa77Sclaudio };
342ff8ffa77Sclaudio 
343ff8ffa77Sclaudio struct community filters[] = {
344ff8ffa77Sclaudio 	{ /* 0 */
345ff8ffa77Sclaudio 		.flags = COMMUNITY_TYPE_BASIC,
346ff8ffa77Sclaudio 		.data1 = COMMUNITY_WELLKNOWN,
347ff8ffa77Sclaudio 		.data2 = COMMUNITY_NO_ADVERTISE
348ff8ffa77Sclaudio 	},
349ff8ffa77Sclaudio 	{ /* 1 */
350ff8ffa77Sclaudio 		.flags = COMMUNITY_TYPE_BASIC,
351ff8ffa77Sclaudio 		.data1 = COMMUNITY_WELLKNOWN,
352ff8ffa77Sclaudio 		.data2 = COMMUNITY_NO_EXPORT
353ff8ffa77Sclaudio 	},
354ff8ffa77Sclaudio 	{ /* 2 */
355ff8ffa77Sclaudio 		.flags = COMMUNITY_TYPE_BASIC,
356ff8ffa77Sclaudio 		.data1 = COMMUNITY_WELLKNOWN,
357ff8ffa77Sclaudio 		.data2 = COMMUNITY_NO_EXPSUBCONFED
358ff8ffa77Sclaudio 	},
359ff8ffa77Sclaudio 	{ /* 3 */
360ff8ffa77Sclaudio 		.flags = COMMUNITY_TYPE_BASIC,
361ff8ffa77Sclaudio 		.data1 = 22512,
362ff8ffa77Sclaudio 		.data2 = 1
363ff8ffa77Sclaudio 	},
364ff8ffa77Sclaudio 	{ /* 4 */
365ff8ffa77Sclaudio 		.flags = COMMUNITY_TYPE_BASIC,
366ff8ffa77Sclaudio 		.data1 = 22512,
367ff8ffa77Sclaudio 		.data2 = 42
368ff8ffa77Sclaudio 	},
369ff8ffa77Sclaudio 	{ /* 5 */
370ff8ffa77Sclaudio 		.flags = COMMUNITY_TYPE_BASIC,
371ff8ffa77Sclaudio 		.data1 = 22512,
372ff8ffa77Sclaudio 		.data2 = 65366
373ff8ffa77Sclaudio 	},
374ff8ffa77Sclaudio 	{ /* 6 */
375ff8ffa77Sclaudio 		.flags = COMMUNITY_TYPE_BASIC,
376ff8ffa77Sclaudio 		.data1 = 1,
377ff8ffa77Sclaudio 		.data2 = 22512
378ff8ffa77Sclaudio 	},
379ff8ffa77Sclaudio 	{ /* 7 */
380ff8ffa77Sclaudio 		.flags = COMMUNITY_TYPE_BASIC,
381ff8ffa77Sclaudio 		.data1 = 42,
382ff8ffa77Sclaudio 		.data2 = 22512
383ff8ffa77Sclaudio 	},
384ff8ffa77Sclaudio 	{ /* 8 */
385ff8ffa77Sclaudio 		.flags = COMMUNITY_TYPE_BASIC,
386ff8ffa77Sclaudio 		.data1 = 65366,
387ff8ffa77Sclaudio 		.data2 = 22512
388ff8ffa77Sclaudio 	},
389ff8ffa77Sclaudio 	{ /* 9 */
390ff8ffa77Sclaudio 		.flags = COMMUNITY_TYPE_LARGE,
391ff8ffa77Sclaudio 		.data1 = 22512,
392ff8ffa77Sclaudio 		.data2 = 22512,
393ff8ffa77Sclaudio 		.data3 = 22512
394ff8ffa77Sclaudio 	},
395ff8ffa77Sclaudio 	{ /* 10 */
396ff8ffa77Sclaudio 		.flags = COMMUNITY_TYPE_LARGE,
397ff8ffa77Sclaudio 		.data1 = 22512,
398ff8ffa77Sclaudio 		.data2 = 42,
399ff8ffa77Sclaudio 		.data3 = 22512
400ff8ffa77Sclaudio 	},
401ff8ffa77Sclaudio 	{ /* 11 */
402ff8ffa77Sclaudio 		.flags = COMMUNITY_TYPE_LARGE,
403ff8ffa77Sclaudio 		.data1 = 22512,
404ff8ffa77Sclaudio 		.data2 = 42,
405ff8ffa77Sclaudio 		.data3 = 42
406ff8ffa77Sclaudio 	},
407ff8ffa77Sclaudio 	{ /* 12 */
408ff8ffa77Sclaudio 		.flags = COMMUNITY_TYPE_LARGE,
409ff8ffa77Sclaudio 		.data1 = 42,
410ff8ffa77Sclaudio 		.data2 = 22512,
411ff8ffa77Sclaudio 		.data3 = 22512
412ff8ffa77Sclaudio 	},
413ff8ffa77Sclaudio 	{ /* 13 */
414ff8ffa77Sclaudio 		.flags = COMMUNITY_TYPE_LARGE,
415ff8ffa77Sclaudio 		.data1 = 42,
416ff8ffa77Sclaudio 		.data2 = 42,
417ff8ffa77Sclaudio 		.data3 = 22512
418ff8ffa77Sclaudio 	},
419ff8ffa77Sclaudio 	{ /* 14 */
420ff8ffa77Sclaudio 		.flags = COMMUNITY_TYPE_LARGE,
421ff8ffa77Sclaudio 		.data1 = 42,
422ff8ffa77Sclaudio 		.data2 = 22512,
423ff8ffa77Sclaudio 		.data3 = 42
424ff8ffa77Sclaudio 	},
425ff8ffa77Sclaudio 	{ /* 15 */
426ff8ffa77Sclaudio 		.flags = COMMUNITY_TYPE_LARGE,
427ff8ffa77Sclaudio 		.data1 = 65366,
428ff8ffa77Sclaudio 		.data2 = 22512,
429ff8ffa77Sclaudio 		.data3 = 22512
430ff8ffa77Sclaudio 	},
431ff8ffa77Sclaudio 	{ /* 16 */
432ff8ffa77Sclaudio 		.flags = COMMUNITY_TYPE_LARGE,
433ff8ffa77Sclaudio 		.data1 = 22512,
434ff8ffa77Sclaudio 		.data2 = 65366,
435ff8ffa77Sclaudio 		.data3 = 22512
436ff8ffa77Sclaudio 	},
437ff8ffa77Sclaudio 	{ /* 17 */
438ff8ffa77Sclaudio 		.flags = COMMUNITY_TYPE_LARGE,
439ff8ffa77Sclaudio 		.data1 = 22512,
440ff8ffa77Sclaudio 		.data2 = 65366,
441ff8ffa77Sclaudio 		.data3 = 65366
442ff8ffa77Sclaudio 	},
443ff8ffa77Sclaudio 	{ /* 18 */
444ff8ffa77Sclaudio 		.flags = COMMUNITY_TYPE_LARGE,
445ff8ffa77Sclaudio 		.data1 = 42,
446ff8ffa77Sclaudio 		.data2 = 42,
447ff8ffa77Sclaudio 		.data3 = 42
448ff8ffa77Sclaudio 	},
449ff8ffa77Sclaudio 	{ /* 19 */
450ff8ffa77Sclaudio 		.flags = COMMUNITY_TYPE_LARGE,
451ff8ffa77Sclaudio 		.data1 = 65366,
452ff8ffa77Sclaudio 		.data2 = 65366,
453ff8ffa77Sclaudio 		.data3 = 65366
454ff8ffa77Sclaudio 	},
455ff8ffa77Sclaudio 	{ /* 20 */
456ff8ffa77Sclaudio 		.flags = COMMUNITY_TYPE_BASIC | (COMMUNITY_ANY << 16),
457ff8ffa77Sclaudio 		.data1 = COMMUNITY_WELLKNOWN,
458ff8ffa77Sclaudio 	},
459ff8ffa77Sclaudio 	{ /* 21 */
460ff8ffa77Sclaudio 		.flags = COMMUNITY_TYPE_BASIC | (COMMUNITY_ANY << 16),
461ff8ffa77Sclaudio 		.data1 = 22512,
462ff8ffa77Sclaudio 	},
463ff8ffa77Sclaudio 	{ /* 22 */
464ff8ffa77Sclaudio 		.flags = COMMUNITY_TYPE_BASIC | (COMMUNITY_ANY << 8),
465ff8ffa77Sclaudio 		.data2 = 22512
466ff8ffa77Sclaudio 	},
467ff8ffa77Sclaudio 	{ /* 23 */
468ff8ffa77Sclaudio 		.flags = COMMUNITY_TYPE_LARGE | (COMMUNITY_ANY << 8) |
469ff8ffa77Sclaudio 		    (COMMUNITY_ANY << 16) | (COMMUNITY_ANY << 24),
470ff8ffa77Sclaudio 	},
471ff8ffa77Sclaudio 	{ /* 24 */
472ff8ffa77Sclaudio 		.flags = COMMUNITY_TYPE_LARGE | (COMMUNITY_ANY << 16) |
473ff8ffa77Sclaudio 		    (COMMUNITY_ANY << 24),
474ff8ffa77Sclaudio 		.data1 = 22512,
475ff8ffa77Sclaudio 	},
476ff8ffa77Sclaudio 	{ /* 25 */
477ff8ffa77Sclaudio 		.flags = COMMUNITY_TYPE_EXT,
478ff8ffa77Sclaudio 		.data3 = EXT_COMMUNITY_TRANS_TWO_AS << 8 | 0x02,
479ff8ffa77Sclaudio 		.data1 = 22512,
480ff8ffa77Sclaudio 		.data2 = 42,
481ff8ffa77Sclaudio 	},
482ff8ffa77Sclaudio 	{ /* 26 */
483ff8ffa77Sclaudio 		.flags = COMMUNITY_TYPE_EXT,
484ff8ffa77Sclaudio 		.data3 = EXT_COMMUNITY_TRANS_FOUR_AS << 8 | 0x02,
485ff8ffa77Sclaudio 		.data1 = 22512,
486ff8ffa77Sclaudio 		.data2 = 42,
487ff8ffa77Sclaudio 	},
488ff8ffa77Sclaudio 	{ /* 27 */
489ff8ffa77Sclaudio 		.flags = COMMUNITY_TYPE_EXT,
490ff8ffa77Sclaudio 		.data3 = EXT_COMMUNITY_TRANS_FOUR_AS << 8 | 0x02,
491ff8ffa77Sclaudio 		.data1 = 22512,
492ff8ffa77Sclaudio 		.data2 = 15,
493ff8ffa77Sclaudio 	},
4949b645b30Sclaudio 	{ /* 28 */
4959b645b30Sclaudio 		.flags = COMMUNITY_TYPE_BASIC | (COMMUNITY_LOCAL_AS << 8) |
4969b645b30Sclaudio 		    (COMMUNITY_NEIGHBOR_AS << 16),
4979b645b30Sclaudio 	},
4989b645b30Sclaudio 	{ /* 29 */
4999b645b30Sclaudio 		.flags = COMMUNITY_TYPE_LARGE | (COMMUNITY_LOCAL_AS << 8) |
5009b645b30Sclaudio 		    (COMMUNITY_NEIGHBOR_AS << 24),
5019b645b30Sclaudio 	},
5029b645b30Sclaudio 	{ /* 30 */
5039b645b30Sclaudio 		.flags = COMMUNITY_TYPE_EXT | (COMMUNITY_LOCAL_AS << 8) |
5049b645b30Sclaudio 		    (COMMUNITY_NEIGHBOR_AS << 16),
5059b645b30Sclaudio 		.data3 = EXT_COMMUNITY_TRANS_TWO_AS << 8 | 0x02,
5069b645b30Sclaudio 	},
5079b645b30Sclaudio 	{ /* 31 */
5089b645b30Sclaudio 		.flags = COMMUNITY_TYPE_BASIC,
5099b645b30Sclaudio 		.data1 = 42,
5109b645b30Sclaudio 		.data2 = 22512,
5119b645b30Sclaudio 	},
5129b645b30Sclaudio 	{ /* 32 */
5139b645b30Sclaudio 		.flags = COMMUNITY_TYPE_BASIC,
5149b645b30Sclaudio 		.data1 = 65366,
5159b645b30Sclaudio 		.data2 = 22512,
5169b645b30Sclaudio 	},
5179b645b30Sclaudio 	{ /* 33 */
5189b645b30Sclaudio 		.flags = COMMUNITY_TYPE_BASIC,
5199b645b30Sclaudio 		.data1 = 42,
5209b645b30Sclaudio 		.data2 = 65366,
5219b645b30Sclaudio 	},
5229b645b30Sclaudio 	{ /* 34 */
5239b645b30Sclaudio 		.flags = COMMUNITY_TYPE_LARGE,
5249b645b30Sclaudio 		.data1 = 42,
5259b645b30Sclaudio 		.data2 = 0,
5269b645b30Sclaudio 		.data3 = 22512,
5279b645b30Sclaudio 	},
5289b645b30Sclaudio 	{ /* 35 */
5299b645b30Sclaudio 		.flags = COMMUNITY_TYPE_LARGE,
5309b645b30Sclaudio 		.data1 = 196618,
5319b645b30Sclaudio 		.data2 = 0,
5329b645b30Sclaudio 		.data3 = 22512,
5339b645b30Sclaudio 	},
5349b645b30Sclaudio 	{ /* 36 */
5359b645b30Sclaudio 		.flags = COMMUNITY_TYPE_LARGE,
5369b645b30Sclaudio 		.data1 = 22512,
5379b645b30Sclaudio 		.data2 = 0,
5389b645b30Sclaudio 		.data3 = 196618,
5399b645b30Sclaudio 	},
5409b645b30Sclaudio 	{ /* 37 */
5419b645b30Sclaudio 		.flags = COMMUNITY_TYPE_LARGE,
5429b645b30Sclaudio 		.data1 = 196618,
5439b645b30Sclaudio 		.data2 = 0,
5449b645b30Sclaudio 		.data3 = 424242,
5459b645b30Sclaudio 	},
5469b645b30Sclaudio 	{ /* 38 */
5479b645b30Sclaudio 		.flags = COMMUNITY_TYPE_EXT,
5489b645b30Sclaudio 		.data1 = 42,
5499b645b30Sclaudio 		.data2 = 22512,
5509b645b30Sclaudio 		.data3 = EXT_COMMUNITY_TRANS_TWO_AS << 8 | 0x02,
5519b645b30Sclaudio 	},
5529b645b30Sclaudio 	{ /* 39 */
5539b645b30Sclaudio 		.flags = COMMUNITY_TYPE_EXT,
5549b645b30Sclaudio 		.data1 = 42,
5559b645b30Sclaudio 		.data2 = 22512,
5569b645b30Sclaudio 		.data3 = EXT_COMMUNITY_TRANS_FOUR_AS << 8 | 0x02,
5579b645b30Sclaudio 	},
5589b645b30Sclaudio 	{ /* 40 */
5599b645b30Sclaudio 		.flags = COMMUNITY_TYPE_EXT,
5609b645b30Sclaudio 		.data1 = 196618,
5619b645b30Sclaudio 		.data2 = 22512,
5629b645b30Sclaudio 		.data3 = EXT_COMMUNITY_TRANS_FOUR_AS << 8 | 0x02,
5639b645b30Sclaudio 	},
5649b645b30Sclaudio 	{ /* 41 */
5659b645b30Sclaudio 		.flags = COMMUNITY_TYPE_EXT,
5669b645b30Sclaudio 		.data1 = 22512,
5679b645b30Sclaudio 		.data2 = 196618,
5689b645b30Sclaudio 		.data3 = EXT_COMMUNITY_TRANS_TWO_AS << 8 | 0x02,
5699b645b30Sclaudio 	},
570000e30a8Sclaudio 	{ /* 42 */
571000e30a8Sclaudio 		.flags = COMMUNITY_TYPE_EXT | (COMMUNITY_ANY << 24),
572000e30a8Sclaudio 	},
573000e30a8Sclaudio 	{ /* 43 */
574000e30a8Sclaudio 		.flags = COMMUNITY_TYPE_EXT | (COMMUNITY_ANY << 8),
575000e30a8Sclaudio 		.data3 = (-1 << 8) | 0x02,
576000e30a8Sclaudio 	},
577000e30a8Sclaudio 	{ /* 44 */
578000e30a8Sclaudio 		.flags = COMMUNITY_TYPE_EXT | (COMMUNITY_ANY << 8),
579000e30a8Sclaudio 		.data3 = EXT_COMMUNITY_TRANS_FOUR_AS << 8 | 0x02,
580000e30a8Sclaudio 	},
581000e30a8Sclaudio 	{ /* 45 */
582000e30a8Sclaudio 		.flags = COMMUNITY_TYPE_EXT | (COMMUNITY_ANY << 16),
583000e30a8Sclaudio 		.data3 = EXT_COMMUNITY_TRANS_FOUR_AS << 8 | 0x02,
584000e30a8Sclaudio 		.data1 = 196618,
585000e30a8Sclaudio 	},
586ff8ffa77Sclaudio };
587ff8ffa77Sclaudio 
588ff8ffa77Sclaudio struct testfilter {
5899b645b30Sclaudio 	int		 in[8];
5909b645b30Sclaudio 	int		 delete;
5919b645b30Sclaudio 	int		 match;
592ff8ffa77Sclaudio 	int		 mout;
5936eadef58Sclaudio 	int		 ncomm;
5946eadef58Sclaudio 	int		 next;
5956eadef58Sclaudio 	int		 nlarge;
5969b645b30Sclaudio 	struct rde_peer *peer;
597ff8ffa77Sclaudio } testfilters[] = {
598ff8ffa77Sclaudio 	{
599ff8ffa77Sclaudio 		.in = { 1, 2, -1 },
600ff8ffa77Sclaudio 		.match = 1,
601ff8ffa77Sclaudio 		.mout = 1,
602ff8ffa77Sclaudio 		.delete = 1,
603ff8ffa77Sclaudio 	},
604ff8ffa77Sclaudio 	{
605ff8ffa77Sclaudio 		.in = { 1, 2, -1 },
606ff8ffa77Sclaudio 		.match = 2,
607ff8ffa77Sclaudio 		.mout = 1,
608ff8ffa77Sclaudio 		.delete = 2,
609ff8ffa77Sclaudio 	},
610ff8ffa77Sclaudio 	{
611ff8ffa77Sclaudio 		.in = { 1, 2, -1 },
612ff8ffa77Sclaudio 		.match = 20,
613ff8ffa77Sclaudio 		.mout = 1,
614ff8ffa77Sclaudio 		.delete = 20,
615ff8ffa77Sclaudio 	},
616ff8ffa77Sclaudio 	{
617ff8ffa77Sclaudio 		.in = { 1, 2, 1, 2, -1 },
618ff8ffa77Sclaudio 		.match = 5,
619ff8ffa77Sclaudio 		.mout = 0,
620ff8ffa77Sclaudio 		.delete = 5,
621ff8ffa77Sclaudio 	},
622ff8ffa77Sclaudio 	{
623ff8ffa77Sclaudio 		.in = { 3, 4, 5, 6, 7, 8, -1 },
624ff8ffa77Sclaudio 		.match = 5,
625ff8ffa77Sclaudio 		.mout = 1,
626ff8ffa77Sclaudio 		.delete = 5,
627ff8ffa77Sclaudio 	},
628ff8ffa77Sclaudio 	{ /* 5 */
629ff8ffa77Sclaudio 		.in = { 3, 4, 5, 6, 7, 8, -1 },
630ff8ffa77Sclaudio 		.match = 20,
631ff8ffa77Sclaudio 		.mout = 0,
632ff8ffa77Sclaudio 		.delete = -1,
633ff8ffa77Sclaudio 	},
634ff8ffa77Sclaudio 	{
635ff8ffa77Sclaudio 		.in = { 3, 4, 5, 6, 7, 8, -1 },
636ff8ffa77Sclaudio 		.match = 21,
637ff8ffa77Sclaudio 		.mout = 1,
638ff8ffa77Sclaudio 		.delete = 21,
639ff8ffa77Sclaudio 	},
640ff8ffa77Sclaudio 	{
641ff8ffa77Sclaudio 		.in = { 3, 4, 5, 6, 7, 8, -1 },
642ff8ffa77Sclaudio 		.match = 22,
643ff8ffa77Sclaudio 		.mout = 1,
644ff8ffa77Sclaudio 		.delete = 22,
645ff8ffa77Sclaudio 	},
646ff8ffa77Sclaudio 	{
647ff8ffa77Sclaudio 		.in = { 17, 18, 19, -1 },
648ff8ffa77Sclaudio 		.match = 22,
649ff8ffa77Sclaudio 		.mout = 0,
650ff8ffa77Sclaudio 		.delete = 17,
651ff8ffa77Sclaudio 	},
652ff8ffa77Sclaudio 	{
653ff8ffa77Sclaudio 		.in = { 17, 18, 19, 7, 8, -1 },
654ff8ffa77Sclaudio 		.match = 18,
655ff8ffa77Sclaudio 		.mout = 1,
656ff8ffa77Sclaudio 		.delete = 19,
657ff8ffa77Sclaudio 	},
658ff8ffa77Sclaudio 	{ /* 10 */
659ff8ffa77Sclaudio 		.in = { 1, 3, 5, -1 },
660ff8ffa77Sclaudio 		.match = 23,
661ff8ffa77Sclaudio 		.mout = 0,
662ff8ffa77Sclaudio 		.delete = -1,
663ff8ffa77Sclaudio 	},
664ff8ffa77Sclaudio 	{
665ff8ffa77Sclaudio 		.in = { 1, 3, 5, 17, -1 },
666ff8ffa77Sclaudio 		.match = 23,
667ff8ffa77Sclaudio 		.mout = 1,
668ff8ffa77Sclaudio 		.delete = 23,
669ff8ffa77Sclaudio 	},
670ff8ffa77Sclaudio 	{
671ff8ffa77Sclaudio 		.in = { 1, 3, 5, 19, -1 },
672ff8ffa77Sclaudio 		.match = 24,
673ff8ffa77Sclaudio 		.mout = 0,
674ff8ffa77Sclaudio 		.delete = -1,
675ff8ffa77Sclaudio 	},
676ff8ffa77Sclaudio 	{
677ff8ffa77Sclaudio 		.in = { 19, 18, 17, -1 },
678ff8ffa77Sclaudio 		.match = 24,
679ff8ffa77Sclaudio 		.mout = 1,
680ff8ffa77Sclaudio 		.delete = 24,
681ff8ffa77Sclaudio 	},
682ff8ffa77Sclaudio 	{
683ff8ffa77Sclaudio 		.in = { 25, 26, -1 },
684ff8ffa77Sclaudio 		.match = 25,
685ff8ffa77Sclaudio 		.mout = 1,
686ff8ffa77Sclaudio 		.delete = 25,
687ff8ffa77Sclaudio 	},
688ff8ffa77Sclaudio 	{ /* 15 */
689ff8ffa77Sclaudio 		.in = { 25, 26, -1 },
690ff8ffa77Sclaudio 		.match = 26,
691ff8ffa77Sclaudio 		.mout = 1,
692ff8ffa77Sclaudio 		.delete = 26,
693ff8ffa77Sclaudio 	},
694ff8ffa77Sclaudio 	{
695ff8ffa77Sclaudio 		.in = { 17, 0, -1 },
696ff8ffa77Sclaudio 		.match = 0,
697ff8ffa77Sclaudio 		.mout = 1,
698ff8ffa77Sclaudio 		.delete = 0,
699ff8ffa77Sclaudio 	},
7006eadef58Sclaudio 	{
7016eadef58Sclaudio 		.in = { -1 },
7026eadef58Sclaudio 		.match = 21,
7036eadef58Sclaudio 		.mout = 0,
7046eadef58Sclaudio 		.delete = -1,
7056eadef58Sclaudio 		.ncomm = 0 + 1,
7066eadef58Sclaudio 		.next = 0 + 1,
7076eadef58Sclaudio 		.nlarge = 0 + 1,
7086eadef58Sclaudio 	},
7096eadef58Sclaudio 	{
7106eadef58Sclaudio 		.in = { 0, 3, 6, -1 },
7116eadef58Sclaudio 		.match = -1,
7126eadef58Sclaudio 		.delete = -1,
7136eadef58Sclaudio 		.ncomm = 3 + 1,
7146eadef58Sclaudio 		.next = 0 + 1,
7156eadef58Sclaudio 		.nlarge = 0 + 1,
7166eadef58Sclaudio 	},
7176eadef58Sclaudio 	{
7186eadef58Sclaudio 		.in = { 0, 25, 26, 19, -1 },
7196eadef58Sclaudio 		.match = -1,
7206eadef58Sclaudio 		.delete = -1,
7216eadef58Sclaudio 		.ncomm = 1 + 1,
7226eadef58Sclaudio 		.next = 2 + 1,
7236eadef58Sclaudio 		.nlarge = 1 + 1,
7246eadef58Sclaudio 	},
7256eadef58Sclaudio 	{ /* 20 */
7266eadef58Sclaudio 		.in = { 0, 10, 26, -1 },
7276eadef58Sclaudio 		.match = -1,
7286eadef58Sclaudio 		.delete = -1,
7296eadef58Sclaudio 		.ncomm = 1 + 1,
7306eadef58Sclaudio 		.next = 1 + 1,
7316eadef58Sclaudio 		.nlarge = 1 + 1,
7326eadef58Sclaudio 	},
7339b645b30Sclaudio 	{
7349b645b30Sclaudio 		.in = { 28, -1 },
7359b645b30Sclaudio 		.match = 28,
7369b645b30Sclaudio 		.mout = 1,
7379b645b30Sclaudio 		.delete = 28,
7389b645b30Sclaudio 		.peer = &peer,
7399b645b30Sclaudio 	},
7409b645b30Sclaudio 	{
7419b645b30Sclaudio 		.in = { 31, -1 },
7429b645b30Sclaudio 		.match = 28,
7439b645b30Sclaudio 		.mout = 1,
7449b645b30Sclaudio 		.delete = 28,
7459b645b30Sclaudio 		.peer = &peer,
7469b645b30Sclaudio 	},
7479b645b30Sclaudio 	{
7489b645b30Sclaudio 		.in = { 31, -1 },
7499b645b30Sclaudio 		.match = 28,
7509b645b30Sclaudio 		.mout = 0,
7519b645b30Sclaudio 		.peer = &peer_l4,
7529b645b30Sclaudio 	},
7539b645b30Sclaudio 	{
7549b645b30Sclaudio 		.in = { 31, -1 },
7559b645b30Sclaudio 		.match = 28,
7569b645b30Sclaudio 		.mout = 0,
7579b645b30Sclaudio 		.peer = &peer_r4,
7589b645b30Sclaudio 	},
7599b645b30Sclaudio 	{ /* 25 */
7609b645b30Sclaudio 		.in = { 31, -1 },
7619b645b30Sclaudio 		.match = 28,
7629b645b30Sclaudio 		.mout = 0,
7639b645b30Sclaudio 		.peer = &peer_b4,
7649b645b30Sclaudio 	},
7659b645b30Sclaudio 	{
7669b645b30Sclaudio 		.in = { 32, -1 },
7679b645b30Sclaudio 		.match = 28,
7689b645b30Sclaudio 		.mout = 0,
7699b645b30Sclaudio 		.peer = &peer,
7709b645b30Sclaudio 	},
7719b645b30Sclaudio 	{
7729b645b30Sclaudio 		.in = { 32, -1 },
7739b645b30Sclaudio 		.match = 28,
7749b645b30Sclaudio 		.mout = 0,
7759b645b30Sclaudio 		.peer = &peer_l4,
7769b645b30Sclaudio 	},
7779b645b30Sclaudio 	{
7789b645b30Sclaudio 		.in = { 32, -1 },
7799b645b30Sclaudio 		.match = 28,
7809b645b30Sclaudio 		.mout = 0,
7819b645b30Sclaudio 		.peer = &peer_r4,
7829b645b30Sclaudio 	},
7839b645b30Sclaudio 	{
7849b645b30Sclaudio 		.in = { 32, -1 },
7859b645b30Sclaudio 		.match = 28,
7869b645b30Sclaudio 		.mout = 0,
7879b645b30Sclaudio 		.peer = &peer_b4,
7889b645b30Sclaudio 	},
7899b645b30Sclaudio 	{ /* 30 */
7909b645b30Sclaudio 		.in = { 33, -1 },
7919b645b30Sclaudio 		.match = 28,
7929b645b30Sclaudio 		.mout = 0,
7939b645b30Sclaudio 		.peer = &peer,
7949b645b30Sclaudio 	},
7959b645b30Sclaudio 	{
7969b645b30Sclaudio 		.in = { 33, -1 },
7979b645b30Sclaudio 		.match = 28,
7989b645b30Sclaudio 		.mout = 0,
7999b645b30Sclaudio 		.peer = &peer_l4,
8009b645b30Sclaudio 	},
8019b645b30Sclaudio 	{
8029b645b30Sclaudio 		.in = { 33, -1 },
8039b645b30Sclaudio 		.match = 28,
8049b645b30Sclaudio 		.mout = 0,
8059b645b30Sclaudio 		.peer = &peer_r4,
8069b645b30Sclaudio 	},
8079b645b30Sclaudio 	{
8089b645b30Sclaudio 		.in = { 33, -1 },
8099b645b30Sclaudio 		.match = 28,
8109b645b30Sclaudio 		.mout = 0,
8119b645b30Sclaudio 		.peer = &peer_b4,
8129b645b30Sclaudio 	},
8139b645b30Sclaudio 	{
8149b645b30Sclaudio 		.in = { 29, -1 },
8159b645b30Sclaudio 		.match = 29,
8169b645b30Sclaudio 		.mout = 1,
8179b645b30Sclaudio 		.delete = 29,
8189b645b30Sclaudio 		.peer = &peer,
8199b645b30Sclaudio 	},
8209b645b30Sclaudio 	{ /* 35 */
8219b645b30Sclaudio 		.in = { 29, -1 },
8229b645b30Sclaudio 		.match = 29,
8239b645b30Sclaudio 		.mout = 1,
8249b645b30Sclaudio 		.delete = 29,
8259b645b30Sclaudio 		.peer = &peer_l4,
8269b645b30Sclaudio 	},
8279b645b30Sclaudio 	{
8289b645b30Sclaudio 		.in = { 29, -1 },
8299b645b30Sclaudio 		.match = 29,
8309b645b30Sclaudio 		.mout = 1,
8319b645b30Sclaudio 		.delete = 29,
8329b645b30Sclaudio 		.peer = &peer_r4,
8339b645b30Sclaudio 	},
8349b645b30Sclaudio 	{
8359b645b30Sclaudio 		.in = { 29, -1 },
8369b645b30Sclaudio 		.match = 29,
8379b645b30Sclaudio 		.mout = 1,
8389b645b30Sclaudio 		.delete = 29,
8399b645b30Sclaudio 		.peer = &peer_b4,
8409b645b30Sclaudio 	},
8419b645b30Sclaudio 	{
8429b645b30Sclaudio 		.in = { 34, -1 },
8439b645b30Sclaudio 		.match = 29,
8449b645b30Sclaudio 		.mout = 1,
8459b645b30Sclaudio 		.peer = &peer,
8469b645b30Sclaudio 	},
8479b645b30Sclaudio 	{
8489b645b30Sclaudio 		.in = { 34, -1 },
8499b645b30Sclaudio 		.match = 29,
8509b645b30Sclaudio 		.mout = 0,
8519b645b30Sclaudio 		.peer = &peer_l4,
8529b645b30Sclaudio 	},
8539b645b30Sclaudio 	{ /* 40 */
8549b645b30Sclaudio 		.in = { 34, -1 },
8559b645b30Sclaudio 		.match = 29,
8569b645b30Sclaudio 		.mout = 0,
8579b645b30Sclaudio 		.peer = &peer_r4,
8589b645b30Sclaudio 	},
8599b645b30Sclaudio 	{
8609b645b30Sclaudio 		.in = { 34, -1 },
8619b645b30Sclaudio 		.match = 29,
8629b645b30Sclaudio 		.mout = 0,
8639b645b30Sclaudio 		.peer = &peer_b4,
8649b645b30Sclaudio 	},
8659b645b30Sclaudio 	{
8669b645b30Sclaudio 		.in = { 35, -1 },
8679b645b30Sclaudio 		.match = 29,
8689b645b30Sclaudio 		.mout = 0,
8699b645b30Sclaudio 		.peer = &peer,
8709b645b30Sclaudio 	},
8719b645b30Sclaudio 	{
8729b645b30Sclaudio 		.in = { 35, -1 },
8739b645b30Sclaudio 		.match = 29,
8749b645b30Sclaudio 		.mout = 1,
8759b645b30Sclaudio 		.peer = &peer_l4,
8769b645b30Sclaudio 	},
8779b645b30Sclaudio 	{
8789b645b30Sclaudio 		.in = { 35, -1 },
8799b645b30Sclaudio 		.match = 29,
8809b645b30Sclaudio 		.mout = 0,
8819b645b30Sclaudio 		.peer = &peer_r4,
8829b645b30Sclaudio 	},
8839b645b30Sclaudio 	{ /* 45 */
8849b645b30Sclaudio 		.in = { 35, -1 },
8859b645b30Sclaudio 		.match = 29,
8869b645b30Sclaudio 		.mout = 0,
8879b645b30Sclaudio 		.peer = &peer_b4,
8889b645b30Sclaudio 	},
8899b645b30Sclaudio 	{
8909b645b30Sclaudio 		.in = { 36, -1 },
8919b645b30Sclaudio 		.match = 29,
8929b645b30Sclaudio 		.mout = 0,
8939b645b30Sclaudio 		.peer = &peer,
8949b645b30Sclaudio 	},
8959b645b30Sclaudio 	{
8969b645b30Sclaudio 		.in = { 36, -1 },
8979b645b30Sclaudio 		.match = 29,
8989b645b30Sclaudio 		.mout = 0,
8999b645b30Sclaudio 		.peer = &peer_l4,
9009b645b30Sclaudio 	},
9019b645b30Sclaudio 	{
9029b645b30Sclaudio 		.in = { 36, -1 },
9039b645b30Sclaudio 		.match = 29,
9049b645b30Sclaudio 		.mout = 1,
9059b645b30Sclaudio 		.peer = &peer_r4,
9069b645b30Sclaudio 	},
9079b645b30Sclaudio 	{
9089b645b30Sclaudio 		.in = { 36, -1 },
9099b645b30Sclaudio 		.match = 29,
9109b645b30Sclaudio 		.mout = 0,
9119b645b30Sclaudio 		.peer = &peer_b4,
9129b645b30Sclaudio 	},
9139b645b30Sclaudio 	{ /* 50 */
9149b645b30Sclaudio 		.in = { 37, -1 },
9159b645b30Sclaudio 		.match = 29,
9169b645b30Sclaudio 		.mout = 0,
9179b645b30Sclaudio 		.peer = &peer,
9189b645b30Sclaudio 	},
9199b645b30Sclaudio 	{
9209b645b30Sclaudio 		.in = { 37, -1 },
9219b645b30Sclaudio 		.match = 29,
9229b645b30Sclaudio 		.mout = 0,
9239b645b30Sclaudio 		.peer = &peer_l4,
9249b645b30Sclaudio 	},
9259b645b30Sclaudio 	{
9269b645b30Sclaudio 		.in = { 37, -1 },
9279b645b30Sclaudio 		.match = 29,
9289b645b30Sclaudio 		.mout = 0,
9299b645b30Sclaudio 		.peer = &peer_r4,
9309b645b30Sclaudio 	},
9319b645b30Sclaudio 	{
9329b645b30Sclaudio 		.in = { 37, -1 },
9339b645b30Sclaudio 		.match = 29,
9349b645b30Sclaudio 		.mout = 1,
9359b645b30Sclaudio 		.peer = &peer_b4,
9369b645b30Sclaudio 	},
9379b645b30Sclaudio 	{
9389b645b30Sclaudio 		.in = { 30, -1 },
9399b645b30Sclaudio 		.match = 30,
9409b645b30Sclaudio 		.mout = 1,
9419b645b30Sclaudio 		.delete = 30,
9429b645b30Sclaudio 		.peer = &peer,
9439b645b30Sclaudio 	},
9449b645b30Sclaudio 	{ /* 55 */
9459b645b30Sclaudio 		.in = { 30, -1 },
9469b645b30Sclaudio 		.match = 30,
9479b645b30Sclaudio 		.mout = 1,
9489b645b30Sclaudio 		.delete = 30,
9499b645b30Sclaudio 		.peer = &peer_l4,
9509b645b30Sclaudio 	},
9519b645b30Sclaudio 	{
9529b645b30Sclaudio 		.in = { 30, -1 },
9539b645b30Sclaudio 		.match = 30,
9549b645b30Sclaudio 		.mout = 1,
9559b645b30Sclaudio 		.delete = 30,
9569b645b30Sclaudio 		.peer = &peer_r4,
9579b645b30Sclaudio 	},
9589b645b30Sclaudio 	{
9599b645b30Sclaudio 		.in = { 38, -1 },
9609b645b30Sclaudio 		.match = 30,
9619b645b30Sclaudio 		.mout = 1,
9629b645b30Sclaudio 		.peer = &peer,
9639b645b30Sclaudio 	},
9649b645b30Sclaudio 	{
9659b645b30Sclaudio 		.in = { 38, -1 },
9669b645b30Sclaudio 		.match = 30,
9679b645b30Sclaudio 		.mout = 0,
9689b645b30Sclaudio 		.peer = &peer_l4,
9699b645b30Sclaudio 	},
9709b645b30Sclaudio 	{
9719b645b30Sclaudio 		.in = { 38, -1 },
9729b645b30Sclaudio 		.match = 30,
9739b645b30Sclaudio 		.mout = 0,
9749b645b30Sclaudio 		.peer = &peer_r4,
9759b645b30Sclaudio 	},
9769b645b30Sclaudio 	{ /* 60 */
9779b645b30Sclaudio 		.in = { 39, -1 },
9789b645b30Sclaudio 		.match = 30,
9799b645b30Sclaudio 		.mout = 1,
9809b645b30Sclaudio 		.peer = &peer,
9819b645b30Sclaudio 	},
9829b645b30Sclaudio 	{
9839b645b30Sclaudio 		.in = { 39, -1 },
9849b645b30Sclaudio 		.match = 30,
9859b645b30Sclaudio 		.mout = 0,
9869b645b30Sclaudio 		.peer = &peer_l4,
9879b645b30Sclaudio 	},
9889b645b30Sclaudio 	{
9899b645b30Sclaudio 		.in = { 39, -1 },
9909b645b30Sclaudio 		.match = 30,
9919b645b30Sclaudio 		.mout = 0,
9929b645b30Sclaudio 		.peer = &peer_r4,
9939b645b30Sclaudio 	},
9949b645b30Sclaudio 	{
9959b645b30Sclaudio 		.in = { 40, -1 },
9969b645b30Sclaudio 		.match = 30,
9979b645b30Sclaudio 		.mout = 0,
9989b645b30Sclaudio 		.peer = &peer,
9999b645b30Sclaudio 	},
10009b645b30Sclaudio 	{
10019b645b30Sclaudio 		.in = { 40, -1 },
10029b645b30Sclaudio 		.match = 30,
10039b645b30Sclaudio 		.mout = 1,
10049b645b30Sclaudio 		.peer = &peer_l4,
10059b645b30Sclaudio 	},
10069b645b30Sclaudio 	{ /* 65 */
10079b645b30Sclaudio 		.in = { 40, -1 },
10089b645b30Sclaudio 		.match = 30,
10099b645b30Sclaudio 		.mout = 0,
10109b645b30Sclaudio 		.peer = &peer_r4,
10119b645b30Sclaudio 	},
10129b645b30Sclaudio 	{
10139b645b30Sclaudio 		.in = { 41, -1 },
10149b645b30Sclaudio 		.match = 30,
10159b645b30Sclaudio 		.mout = 0,
10169b645b30Sclaudio 		.peer = &peer,
10179b645b30Sclaudio 	},
10189b645b30Sclaudio 	{
10199b645b30Sclaudio 		.in = { 41, -1 },
10209b645b30Sclaudio 		.match = 30,
10219b645b30Sclaudio 		.mout = 0,
10229b645b30Sclaudio 		.peer = &peer_l4,
10239b645b30Sclaudio 	},
10249b645b30Sclaudio 	{
10259b645b30Sclaudio 		.in = { 41, -1 },
10269b645b30Sclaudio 		.match = 30,
10279b645b30Sclaudio 		.mout = 1,
10289b645b30Sclaudio 		.peer = &peer_r4,
10299b645b30Sclaudio 	},
1030000e30a8Sclaudio 	{
1031000e30a8Sclaudio 		.in = { 38, -1 },
1032000e30a8Sclaudio 		.match = 30,
1033000e30a8Sclaudio 		.mout = 1,
1034000e30a8Sclaudio 		.peer = &peer,
1035000e30a8Sclaudio 	},
1036000e30a8Sclaudio 	{ /* 70 */
1037000e30a8Sclaudio 		.in = { 38, 39, 40, -1 },
1038000e30a8Sclaudio 		.match = 42,
1039000e30a8Sclaudio 		.mout = 1,
1040000e30a8Sclaudio 		.delete = 42,
1041000e30a8Sclaudio 		.next = 0 + 1,
1042000e30a8Sclaudio 		.peer = &peer,
1043000e30a8Sclaudio 	},
1044000e30a8Sclaudio 	{
1045000e30a8Sclaudio 		.in = { 38, 39, 40, -1 },
1046000e30a8Sclaudio 		.match = 43,
1047000e30a8Sclaudio 		.mout = 1,
1048000e30a8Sclaudio 		.delete = 43,
1049000e30a8Sclaudio 		.next = 0 + 1,
1050000e30a8Sclaudio 		.peer = &peer,
1051000e30a8Sclaudio 	},
1052000e30a8Sclaudio 	{
1053000e30a8Sclaudio 		.in = { 39, 40, -1 },
1054000e30a8Sclaudio 		.match = 44,
1055000e30a8Sclaudio 		.mout = 1,
1056000e30a8Sclaudio 		.delete = 44,
1057000e30a8Sclaudio 		.next = 0 + 1,
1058000e30a8Sclaudio 		.peer = &peer,
1059000e30a8Sclaudio 	},
1060000e30a8Sclaudio 	{
1061000e30a8Sclaudio 		.in = { 38, -1 },
1062000e30a8Sclaudio 		.match = 44,
1063000e30a8Sclaudio 		.mout = 0,
1064000e30a8Sclaudio 		.peer = &peer,
1065000e30a8Sclaudio 	},
1066000e30a8Sclaudio 	{
1067000e30a8Sclaudio 		.in = { 40, -1 },
1068000e30a8Sclaudio 		.match = 45,
1069000e30a8Sclaudio 		.mout = 1,
1070000e30a8Sclaudio 		.delete = 45,
1071000e30a8Sclaudio 		.next = 0 + 1,
1072000e30a8Sclaudio 		.peer = &peer,
1073000e30a8Sclaudio 	},
1074000e30a8Sclaudio 	{ /* 75 */
1075000e30a8Sclaudio 		.in = { 38, 39, 41, -1 },
1076000e30a8Sclaudio 		.match = 45,
1077000e30a8Sclaudio 		.mout = 0,
1078000e30a8Sclaudio 		.peer = &peer,
1079000e30a8Sclaudio 	},
1080ff8ffa77Sclaudio };
1081