blob: 372bdcd72e2d19ac70f4e0581bdfe26d21e614ba [file] [log] [blame]
Carmelo Cascone5899c132016-04-06 22:09:08 -07001{
2 "header_types": [
3 {
4 "name": "standard_metadata_t",
5 "id": 0,
6 "fields": [
7 [
8 "ingress_port",
9 9
10 ],
11 [
12 "packet_length",
13 32
14 ],
15 [
16 "egress_spec",
17 9
18 ],
19 [
20 "egress_port",
21 9
22 ],
23 [
24 "egress_instance",
25 32
26 ],
27 [
28 "instance_type",
29 32
30 ],
31 [
32 "clone_spec",
33 32
34 ],
35 [
36 "_padding",
37 5
38 ]
39 ],
40 "length_exp": null,
41 "max_length": null
42 },
43 {
44 "name": "ethernet_t",
45 "id": 1,
46 "fields": [
47 [
48 "dstAddr",
49 48
50 ],
51 [
52 "srcAddr",
53 48
54 ],
55 [
56 "etherType",
57 16
58 ]
59 ],
60 "length_exp": null,
61 "max_length": null
62 },
63 {
64 "name": "intrinsic_metadata_t",
65 "id": 2,
66 "fields": [
67 [
68 "ingress_global_timestamp",
69 32
70 ],
71 [
72 "lf_field_list",
73 32
74 ],
75 [
76 "mcast_grp",
77 16
78 ],
79 [
80 "egress_rid",
81 16
82 ]
83 ],
84 "length_exp": null,
85 "max_length": null
86 },
87 {
88 "name": "cpu_header_t",
89 "id": 3,
90 "fields": [
91 [
92 "device",
93 8
94 ],
95 [
96 "reason",
97 8
98 ]
99 ],
100 "length_exp": null,
101 "max_length": null
102 }
103 ],
104 "headers": [
105 {
106 "name": "standard_metadata",
107 "id": 0,
108 "header_type": "standard_metadata_t",
109 "metadata": true
110 },
111 {
112 "name": "ethernet",
113 "id": 1,
114 "header_type": "ethernet_t",
115 "metadata": false
116 },
117 {
118 "name": "intrinsic_metadata",
119 "id": 2,
120 "header_type": "intrinsic_metadata_t",
121 "metadata": true
122 },
123 {
124 "name": "cpu_header",
125 "id": 3,
126 "header_type": "cpu_header_t",
127 "metadata": false
128 }
129 ],
130 "header_stacks": [],
131 "parsers": [
132 {
133 "name": "parser",
134 "id": 0,
135 "init_state": "start",
136 "parse_states": [
137 {
138 "name": "start",
139 "id": 0,
140 "parser_ops": [],
141 "transition_key": [
142 {
143 "type": "lookahead",
144 "value": [
145 0,
146 64
147 ]
148 }
149 ],
150 "transitions": [
151 {
152 "value": "0x0000000000000000",
153 "mask": null,
154 "next_state": "parse_cpu_header"
155 },
156 {
157 "value": "default",
158 "mask": null,
159 "next_state": "parse_ethernet"
160 }
161 ]
162 },
163 {
164 "name": "parse_cpu_header",
165 "id": 1,
166 "parser_ops": [
167 {
168 "op": "extract",
169 "parameters": [
170 {
171 "type": "regular",
172 "value": "cpu_header"
173 }
174 ]
175 }
176 ],
177 "transition_key": [],
178 "transitions": [
179 {
180 "value": "default",
181 "mask": null,
182 "next_state": "parse_ethernet"
183 }
184 ]
185 },
186 {
187 "name": "parse_ethernet",
188 "id": 2,
189 "parser_ops": [
190 {
191 "op": "extract",
192 "parameters": [
193 {
194 "type": "regular",
195 "value": "ethernet"
196 }
197 ]
198 }
199 ],
200 "transition_key": [],
201 "transitions": [
202 {
203 "value": "default",
204 "mask": null,
205 "next_state": null
206 }
207 ]
208 }
209 ]
210 }
211 ],
212 "deparsers": [
213 {
214 "name": "deparser",
215 "id": 0,
216 "order": [
217 "cpu_header",
218 "ethernet"
219 ]
220 }
221 ],
222 "meter_arrays": [],
223 "actions": [
224 {
225 "name": "flood",
226 "id": 0,
227 "runtime_data": [],
228 "primitives": [
229 {
230 "op": "modify_field",
231 "parameters": [
232 {
233 "type": "field",
234 "value": [
235 "intrinsic_metadata",
236 "mcast_grp"
237 ]
238 },
239 {
240 "type": "field",
241 "value": [
242 "standard_metadata",
243 "ingress_port"
244 ]
245 }
246 ]
247 }
248 ]
249 },
250 {
251 "name": "_drop",
252 "id": 1,
253 "runtime_data": [],
254 "primitives": [
255 {
256 "op": "modify_field",
257 "parameters": [
258 {
259 "type": "field",
260 "value": [
261 "standard_metadata",
262 "egress_spec"
263 ]
264 },
265 {
266 "type": "hexstr",
267 "value": "0x1ff"
268 }
269 ]
270 }
271 ]
272 },
273 {
274 "name": "fwd",
275 "id": 2,
276 "runtime_data": [
277 {
278 "name": "port",
279 "bitwidth": 9
280 }
281 ],
282 "primitives": [
283 {
284 "op": "modify_field",
285 "parameters": [
286 {
287 "type": "field",
288 "value": [
289 "standard_metadata",
290 "egress_spec"
291 ]
292 },
293 {
294 "type": "runtime_data",
295 "value": 0
296 }
297 ]
298 }
299 ]
300 },
301 {
302 "name": "send_to_cpu",
303 "id": 3,
304 "runtime_data": [
305 {
306 "name": "device",
307 "bitwidth": 8
308 },
309 {
310 "name": "reason",
311 "bitwidth": 8
312 }
313 ],
314 "primitives": [
315 {
316 "op": "add_header",
317 "parameters": [
318 {
319 "type": "header",
320 "value": "cpu_header"
321 }
322 ]
323 },
324 {
325 "op": "modify_field",
326 "parameters": [
327 {
328 "type": "field",
329 "value": [
330 "cpu_header",
331 "device"
332 ]
333 },
334 {
335 "type": "runtime_data",
336 "value": 0
337 }
338 ]
339 },
340 {
341 "op": "modify_field",
342 "parameters": [
343 {
344 "type": "field",
345 "value": [
346 "cpu_header",
347 "reason"
348 ]
349 },
350 {
351 "type": "runtime_data",
352 "value": 1
353 }
354 ]
355 },
356 {
357 "op": "modify_field",
358 "parameters": [
359 {
360 "type": "field",
361 "value": [
362 "standard_metadata",
363 "egress_spec"
364 ]
365 },
366 {
367 "type": "hexstr",
368 "value": "0xfa"
369 }
370 ]
371 }
372 ]
373 }
374 ],
375 "pipelines": [
376 {
377 "name": "ingress",
378 "id": 0,
379 "init_table": "table0",
380 "tables": [
381 {
382 "name": "table0",
383 "id": 0,
384 "match_type": "ternary",
385 "type": "simple",
386 "max_size": 16384,
387 "with_counters": false,
388 "direct_meters": null,
389 "support_timeout": false,
390 "key": [
391 {
392 "match_type": "ternary",
393 "target": [
394 "standard_metadata",
395 "ingress_port"
396 ],
397 "mask": null
398 },
399 {
400 "match_type": "ternary",
401 "target": [
402 "ethernet",
403 "dstAddr"
404 ],
405 "mask": null
406 },
407 {
408 "match_type": "ternary",
409 "target": [
410 "ethernet",
411 "srcAddr"
412 ],
413 "mask": null
414 },
415 {
416 "match_type": "ternary",
417 "target": [
418 "ethernet",
419 "etherType"
420 ],
421 "mask": null
422 }
423 ],
424 "actions": [
425 "fwd",
426 "flood",
427 "send_to_cpu",
428 "_drop"
429 ],
430 "next_tables": {
431 "fwd": null,
432 "flood": null,
433 "send_to_cpu": null,
434 "_drop": null
435 },
436 "default_action": null
437 }
438 ],
439 "conditionals": []
440 },
441 {
442 "name": "egress",
443 "id": 1,
444 "init_table": null,
445 "tables": [],
446 "conditionals": []
447 }
448 ],
449 "calculations": [],
450 "checksums": [],
451 "learn_lists": [],
452 "field_lists": [],
453 "counter_arrays": [],
454 "register_arrays": [],
455 "force_arith": [
456 [
457 "standard_metadata",
458 "ingress_port"
459 ],
460 [
461 "standard_metadata",
462 "packet_length"
463 ],
464 [
465 "standard_metadata",
466 "egress_spec"
467 ],
468 [
469 "standard_metadata",
470 "egress_port"
471 ],
472 [
473 "standard_metadata",
474 "egress_instance"
475 ],
476 [
477 "standard_metadata",
478 "instance_type"
479 ],
480 [
481 "standard_metadata",
482 "clone_spec"
483 ],
484 [
485 "standard_metadata",
486 "_padding"
487 ],
488 [
489 "intrinsic_metadata",
490 "ingress_global_timestamp"
491 ],
492 [
493 "intrinsic_metadata",
494 "lf_field_list"
495 ],
496 [
497 "intrinsic_metadata",
498 "mcast_grp"
499 ],
500 [
501 "intrinsic_metadata",
502 "egress_rid"
503 ]
504 ]
505}