blob: 2e428be6e876af025bd3ae4e4a1d3ca17f0f195e [file] [log] [blame]
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001{
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07002 "header_types" : [
3 {
4 "name" : "scalars_0",
5 "id" : 0,
6 "fields" : [
7 ["tmp", 32, false],
8 ["tmp_0", 32, false],
Keesjan Karsten23368892018-05-22 10:46:01 +00009 ["port_meters_ingress_ingress_color_0", 8, false],
10 ["host_meter_control_meter_tag_0", 8, false],
Frank Wangd7e3b4b2017-09-24 13:37:54 +090011 ["tmp_1", 32, false],
12 ["tmp_2", 32, false],
Keesjan Karsten23368892018-05-22 10:46:01 +000013 ["port_meters_egress_egress_color_0", 8, false],
Carmelo Casconeca94bcf2017-10-27 14:16:59 -070014 ["local_metadata_t.l4_src_port", 16, false],
15 ["local_metadata_t.l4_dst_port", 16, false],
Keesjan Karsten23368892018-05-22 10:46:01 +000016 ["local_metadata_t.next_hop_id", 16, false]
Carmelo Casconeca94bcf2017-10-27 14:16:59 -070017 ]
18 },
19 {
Carmelo Casconeca94bcf2017-10-27 14:16:59 -070020 "name" : "standard_metadata",
Carmelo Cascone6af4e172018-06-15 16:01:30 +020021 "id" : 1,
Carmelo Casconeca94bcf2017-10-27 14:16:59 -070022 "fields" : [
23 ["ingress_port", 9, false],
24 ["egress_spec", 9, false],
25 ["egress_port", 9, false],
26 ["clone_spec", 32, false],
27 ["instance_type", 32, false],
28 ["drop", 1, false],
29 ["recirculate_port", 16, false],
30 ["packet_length", 32, false],
31 ["enq_timestamp", 32, false],
32 ["enq_qdepth", 19, false],
33 ["deq_timedelta", 32, false],
34 ["deq_qdepth", 19, false],
35 ["ingress_global_timestamp", 48, false],
Carmelo Cascone81929aa2018-04-07 01:38:55 -070036 ["egress_global_timestamp", 48, false],
Carmelo Casconeca94bcf2017-10-27 14:16:59 -070037 ["lf_field_list", 32, false],
38 ["mcast_grp", 16, false],
Carmelo Cascone81929aa2018-04-07 01:38:55 -070039 ["resubmit_flag", 32, false],
Carmelo Casconeca94bcf2017-10-27 14:16:59 -070040 ["egress_rid", 16, false],
41 ["checksum_error", 1, false],
Carmelo Cascone81929aa2018-04-07 01:38:55 -070042 ["recirculate_flag", 32, false],
Carmelo Casconeb0f45fe2018-10-11 08:31:59 -070043 ["parser_error", 32, false],
Keesjan Karsten23368892018-05-22 10:46:01 +000044 ["_padding_0", 5, false]
Carmelo Casconeca94bcf2017-10-27 14:16:59 -070045 ]
Carmelo Cascone6af4e172018-06-15 16:01:30 +020046 },
47 {
48 "name" : "packet_out_header_t",
49 "id" : 2,
50 "fields" : [
51 ["egress_port", 9, false],
52 ["_padding", 7, false]
53 ]
54 },
55 {
56 "name" : "packet_in_header_t",
57 "id" : 3,
58 "fields" : [
59 ["ingress_port", 9, false],
60 ["_padding", 7, false]
61 ]
62 },
63 {
64 "name" : "ethernet_t",
65 "id" : 4,
66 "fields" : [
67 ["dst_addr", 48, false],
68 ["src_addr", 48, false],
69 ["ether_type", 16, false]
70 ]
71 },
72 {
73 "name" : "ipv4_t",
74 "id" : 5,
75 "fields" : [
76 ["version", 4, false],
77 ["ihl", 4, false],
78 ["dscp", 6, false],
79 ["ecn", 2, false],
80 ["len", 16, false],
81 ["identification", 16, false],
82 ["flags", 3, false],
83 ["frag_offset", 13, false],
84 ["ttl", 8, false],
85 ["protocol", 8, false],
86 ["hdr_checksum", 16, false],
87 ["src_addr", 32, false],
88 ["dst_addr", 32, false]
89 ]
90 },
91 {
92 "name" : "tcp_t",
93 "id" : 6,
94 "fields" : [
95 ["src_port", 16, false],
96 ["dst_port", 16, false],
97 ["seq_no", 32, false],
98 ["ack_no", 32, false],
99 ["data_offset", 4, false],
100 ["res", 3, false],
101 ["ecn", 3, false],
102 ["ctrl", 6, false],
103 ["window", 16, false],
104 ["checksum", 16, false],
105 ["urgent_ptr", 16, false]
106 ]
107 },
108 {
109 "name" : "udp_t",
110 "id" : 7,
111 "fields" : [
112 ["src_port", 16, false],
113 ["dst_port", 16, false],
114 ["length_", 16, false],
115 ["checksum", 16, false]
116 ]
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700117 }
118 ],
119 "headers" : [
120 {
121 "name" : "scalars",
122 "id" : 0,
123 "header_type" : "scalars_0",
124 "metadata" : true,
125 "pi_omit" : true
126 },
127 {
128 "name" : "standard_metadata",
129 "id" : 1,
130 "header_type" : "standard_metadata",
131 "metadata" : true,
132 "pi_omit" : true
133 },
134 {
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700135 "name" : "packet_out",
Jonghwan Hyun4a9a6712017-11-13 14:43:55 -0800136 "id" : 2,
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700137 "header_type" : "packet_out_header_t",
138 "metadata" : false,
139 "pi_omit" : true
140 },
141 {
142 "name" : "packet_in",
Jonghwan Hyun4a9a6712017-11-13 14:43:55 -0800143 "id" : 3,
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700144 "header_type" : "packet_in_header_t",
145 "metadata" : false,
146 "pi_omit" : true
Jonghwan Hyun4a9a6712017-11-13 14:43:55 -0800147 },
148 {
149 "name" : "ethernet",
150 "id" : 4,
151 "header_type" : "ethernet_t",
152 "metadata" : false,
153 "pi_omit" : true
154 },
155 {
156 "name" : "ipv4",
157 "id" : 5,
158 "header_type" : "ipv4_t",
159 "metadata" : false,
160 "pi_omit" : true
161 },
162 {
163 "name" : "tcp",
164 "id" : 6,
165 "header_type" : "tcp_t",
166 "metadata" : false,
167 "pi_omit" : true
168 },
169 {
170 "name" : "udp",
171 "id" : 7,
172 "header_type" : "udp_t",
173 "metadata" : false,
174 "pi_omit" : true
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700175 }
176 ],
177 "header_stacks" : [],
178 "header_union_types" : [],
179 "header_unions" : [],
180 "header_union_stacks" : [],
181 "field_lists" : [],
Carmelo Casconeb0f45fe2018-10-11 08:31:59 -0700182 "errors" : [
183 ["NoError", 1],
184 ["PacketTooShort", 2],
185 ["NoMatch", 3],
186 ["StackOutOfBounds", 4],
187 ["HeaderTooShort", 5],
188 ["ParserTimeout", 6]
189 ],
Keesjan Karsten23368892018-05-22 10:46:01 +0000190 "enums" : [],
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700191 "parsers" : [
192 {
193 "name" : "parser",
194 "id" : 0,
195 "init_state" : "start",
196 "parse_states" : [
197 {
198 "name" : "start",
199 "id" : 0,
200 "parser_ops" : [],
201 "transitions" : [
202 {
Carmelo Cascone81929aa2018-04-07 01:38:55 -0700203 "type" : "hexstr",
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700204 "value" : "0x00ff",
205 "mask" : null,
206 "next_state" : "parse_packet_out"
207 },
208 {
209 "value" : "default",
210 "mask" : null,
211 "next_state" : "parse_ethernet"
212 }
213 ],
214 "transition_key" : [
215 {
216 "type" : "field",
217 "value" : ["standard_metadata", "ingress_port"]
218 }
219 ]
220 },
221 {
222 "name" : "parse_packet_out",
223 "id" : 1,
224 "parser_ops" : [
225 {
226 "parameters" : [
227 {
228 "type" : "regular",
229 "value" : "packet_out"
230 }
231 ],
232 "op" : "extract"
233 }
234 ],
235 "transitions" : [
236 {
237 "value" : "default",
238 "mask" : null,
239 "next_state" : "parse_ethernet"
240 }
241 ],
242 "transition_key" : []
243 },
244 {
245 "name" : "parse_ethernet",
246 "id" : 2,
247 "parser_ops" : [
248 {
249 "parameters" : [
250 {
251 "type" : "regular",
252 "value" : "ethernet"
253 }
254 ],
255 "op" : "extract"
256 }
257 ],
258 "transitions" : [
259 {
Carmelo Cascone81929aa2018-04-07 01:38:55 -0700260 "type" : "hexstr",
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700261 "value" : "0x0800",
262 "mask" : null,
263 "next_state" : "parse_ipv4"
264 },
265 {
266 "value" : "default",
267 "mask" : null,
268 "next_state" : null
269 }
270 ],
271 "transition_key" : [
272 {
273 "type" : "field",
274 "value" : ["ethernet", "ether_type"]
275 }
276 ]
277 },
278 {
279 "name" : "parse_ipv4",
280 "id" : 3,
281 "parser_ops" : [
282 {
283 "parameters" : [
284 {
285 "type" : "regular",
286 "value" : "ipv4"
287 }
288 ],
289 "op" : "extract"
290 }
291 ],
292 "transitions" : [
293 {
Carmelo Cascone81929aa2018-04-07 01:38:55 -0700294 "type" : "hexstr",
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700295 "value" : "0x06",
296 "mask" : null,
297 "next_state" : "parse_tcp"
298 },
299 {
Carmelo Cascone81929aa2018-04-07 01:38:55 -0700300 "type" : "hexstr",
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700301 "value" : "0x11",
302 "mask" : null,
303 "next_state" : "parse_udp"
304 },
305 {
306 "value" : "default",
307 "mask" : null,
308 "next_state" : null
309 }
310 ],
311 "transition_key" : [
312 {
313 "type" : "field",
314 "value" : ["ipv4", "protocol"]
315 }
316 ]
317 },
318 {
319 "name" : "parse_tcp",
320 "id" : 4,
321 "parser_ops" : [
322 {
323 "parameters" : [
324 {
325 "type" : "regular",
326 "value" : "tcp"
327 }
328 ],
329 "op" : "extract"
330 },
331 {
332 "parameters" : [
333 {
334 "type" : "field",
335 "value" : ["scalars", "local_metadata_t.l4_src_port"]
336 },
337 {
338 "type" : "field",
339 "value" : ["tcp", "src_port"]
340 }
341 ],
342 "op" : "set"
343 },
344 {
345 "parameters" : [
346 {
347 "type" : "field",
348 "value" : ["scalars", "local_metadata_t.l4_dst_port"]
349 },
350 {
351 "type" : "field",
352 "value" : ["tcp", "dst_port"]
353 }
354 ],
355 "op" : "set"
356 }
357 ],
358 "transitions" : [
359 {
360 "value" : "default",
361 "mask" : null,
362 "next_state" : null
363 }
364 ],
365 "transition_key" : []
366 },
367 {
368 "name" : "parse_udp",
369 "id" : 5,
370 "parser_ops" : [
371 {
372 "parameters" : [
373 {
374 "type" : "regular",
375 "value" : "udp"
376 }
377 ],
378 "op" : "extract"
379 },
380 {
381 "parameters" : [
382 {
383 "type" : "field",
384 "value" : ["scalars", "local_metadata_t.l4_src_port"]
385 },
386 {
387 "type" : "field",
388 "value" : ["udp", "src_port"]
389 }
390 ],
391 "op" : "set"
392 },
393 {
394 "parameters" : [
395 {
396 "type" : "field",
397 "value" : ["scalars", "local_metadata_t.l4_dst_port"]
398 },
399 {
400 "type" : "field",
401 "value" : ["udp", "dst_port"]
402 }
403 ],
404 "op" : "set"
405 }
406 ],
407 "transitions" : [
408 {
409 "value" : "default",
410 "mask" : null,
411 "next_state" : null
412 }
413 ],
414 "transition_key" : []
415 }
416 ]
417 }
418 ],
Carmelo Cascone81929aa2018-04-07 01:38:55 -0700419 "parse_vsets" : [],
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700420 "deparsers" : [
421 {
422 "name" : "deparser",
423 "id" : 0,
424 "source_info" : {
Frank Wangd7e3b4b2017-09-24 13:37:54 +0900425 "filename" : "include/parsers.p4",
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700426 "line" : 72,
427 "column" : 8,
428 "source_fragment" : "deparser"
429 },
430 "order" : ["packet_in", "ethernet", "ipv4", "tcp", "udp"]
431 }
432 ],
Frank Wangd7e3b4b2017-09-24 13:37:54 +0900433 "meter_arrays" : [
434 {
Carmelo Cascone81929aa2018-04-07 01:38:55 -0700435 "name" : "ingress.port_meters_ingress.ingress_port_meter",
Frank Wangd7e3b4b2017-09-24 13:37:54 +0900436 "id" : 0,
437 "source_info" : {
438 "filename" : "include/port_meters.p4",
439 "line" : 23,
440 "column" : 32,
441 "source_fragment" : "ingress_port_meter"
442 },
443 "is_direct" : false,
444 "size" : 511,
445 "rate_count" : 2,
446 "type" : "bytes"
447 },
448 {
Carmelo Cascone81929aa2018-04-07 01:38:55 -0700449 "name" : "ingress.host_meter_control.host_meter",
Frank Wangd7e3b4b2017-09-24 13:37:54 +0900450 "id" : 1,
451 "source_info" : {
452 "filename" : "include/host_meter_table.p4",
453 "line" : 27,
Keesjan Karsten23368892018-05-22 10:46:01 +0000454 "column" : 46,
Frank Wangd7e3b4b2017-09-24 13:37:54 +0900455 "source_fragment" : "host_meter"
456 },
457 "is_direct" : true,
458 "rate_count" : 2,
459 "type" : "bytes",
460 "size" : 1024,
Carmelo Cascone81929aa2018-04-07 01:38:55 -0700461 "binding" : "ingress.host_meter_control.host_meter_table",
Keesjan Karsten23368892018-05-22 10:46:01 +0000462 "result_target" : ["scalars", "host_meter_control_meter_tag_0"]
Frank Wangd7e3b4b2017-09-24 13:37:54 +0900463 },
464 {
Carmelo Cascone81929aa2018-04-07 01:38:55 -0700465 "name" : "egress.port_meters_egress.egress_port_meter",
Frank Wangd7e3b4b2017-09-24 13:37:54 +0900466 "id" : 2,
467 "source_info" : {
468 "filename" : "include/port_meters.p4",
469 "line" : 37,
470 "column" : 32,
471 "source_fragment" : "egress_port_meter"
472 },
473 "is_direct" : false,
474 "size" : 511,
475 "rate_count" : 2,
476 "type" : "bytes"
477 }
478 ],
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700479 "counter_arrays" : [
480 {
Carmelo Cascone81929aa2018-04-07 01:38:55 -0700481 "name" : "ingress.port_counters_ingress.ingress_port_counter",
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700482 "id" : 0,
483 "source_info" : {
Frank Wangd7e3b4b2017-09-24 13:37:54 +0900484 "filename" : "include/port_counters.p4",
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700485 "line" : 26,
486 "column" : 38,
487 "source_fragment" : "ingress_port_counter"
488 },
489 "size" : 511,
490 "is_direct" : false
491 },
492 {
Carmelo Cascone81929aa2018-04-07 01:38:55 -0700493 "name" : "ingress.table0_control.table0_counter",
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700494 "id" : 1,
495 "is_direct" : true,
Carmelo Casconeb0f45fe2018-10-11 08:31:59 -0700496 "binding" : "ingress.table0_control.table0",
497 "source_info" : {
498 "filename" : "include/table0.p4",
499 "line" : 27,
500 "column" : 50,
501 "source_fragment" : "table0_counter"
502 }
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700503 },
504 {
Carmelo Cascone81929aa2018-04-07 01:38:55 -0700505 "name" : "ingress.wcmp_control.wcmp_table_counter",
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700506 "id" : 2,
507 "is_direct" : true,
Carmelo Casconeb0f45fe2018-10-11 08:31:59 -0700508 "binding" : "ingress.wcmp_control.wcmp_table",
509 "source_info" : {
510 "filename" : "include/wcmp.p4",
511 "line" : 27,
512 "column" : 50,
513 "source_fragment" : "wcmp_table_counter"
514 }
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700515 },
516 {
Carmelo Cascone81929aa2018-04-07 01:38:55 -0700517 "name" : "egress.port_counters_egress.egress_port_counter",
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700518 "id" : 3,
519 "source_info" : {
Frank Wangd7e3b4b2017-09-24 13:37:54 +0900520 "filename" : "include/port_counters.p4",
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700521 "line" : 36,
522 "column" : 38,
523 "source_fragment" : "egress_port_counter"
524 },
525 "size" : 511,
526 "is_direct" : false
527 }
528 ],
529 "register_arrays" : [],
530 "calculations" : [],
531 "learn_lists" : [],
532 "actions" : [
533 {
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700534 "name" : "_drop",
Keesjan Karsten23368892018-05-22 10:46:01 +0000535 "id" : 0,
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700536 "runtime_data" : [],
537 "primitives" : [
538 {
539 "op" : "drop",
540 "parameters" : [],
541 "source_info" : {
Frank Wangd7e3b4b2017-09-24 13:37:54 +0900542 "filename" : "include/actions.p4",
Keesjan Karsten23368892018-05-22 10:46:01 +0000543 "line" : 24,
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700544 "column" : 4,
545 "source_fragment" : "mark_to_drop()"
546 }
547 }
548 ]
549 },
550 {
551 "name" : "NoAction",
Keesjan Karsten23368892018-05-22 10:46:01 +0000552 "id" : 1,
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700553 "runtime_data" : [],
554 "primitives" : []
555 },
556 {
Frank Wangd7e3b4b2017-09-24 13:37:54 +0900557 "name" : "NoAction",
Keesjan Karsten23368892018-05-22 10:46:01 +0000558 "id" : 2,
Frank Wangd7e3b4b2017-09-24 13:37:54 +0900559 "runtime_data" : [],
560 "primitives" : []
561 },
562 {
Carmelo Cascone81929aa2018-04-07 01:38:55 -0700563 "name" : "ingress.table0_control.set_next_hop_id",
Keesjan Karsten23368892018-05-22 10:46:01 +0000564 "id" : 3,
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700565 "runtime_data" : [
566 {
567 "name" : "next_hop_id",
568 "bitwidth" : 16
569 }
570 ],
571 "primitives" : [
572 {
573 "op" : "assign",
574 "parameters" : [
575 {
576 "type" : "field",
577 "value" : ["scalars", "local_metadata_t.next_hop_id"]
578 },
579 {
580 "type" : "runtime_data",
581 "value" : 0
582 }
583 ],
584 "source_info" : {
Frank Wangd7e3b4b2017-09-24 13:37:54 +0900585 "filename" : "include/table0.p4",
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700586 "line" : 30,
587 "column" : 8,
588 "source_fragment" : "local_metadata.next_hop_id = next_hop_id"
589 }
590 }
591 ]
592 },
593 {
Keesjan Karsten23368892018-05-22 10:46:01 +0000594 "name" : "ingress.table0_control.send_to_cpu",
595 "id" : 4,
596 "runtime_data" : [],
597 "primitives" : [
598 {
599 "op" : "assign",
600 "parameters" : [
601 {
602 "type" : "field",
603 "value" : ["standard_metadata", "egress_spec"]
604 },
605 {
606 "type" : "hexstr",
607 "value" : "0x00ff"
608 }
609 ],
610 "source_info" : {
611 "filename" : "include/defines.p4",
612 "line" : 28,
613 "column" : 24,
614 "source_fragment" : "255; ..."
615 }
616 }
617 ]
618 },
619 {
620 "name" : "ingress.table0_control.set_egress_port",
621 "id" : 5,
622 "runtime_data" : [
623 {
624 "name" : "port",
625 "bitwidth" : 9
626 }
627 ],
628 "primitives" : [
629 {
630 "op" : "assign",
631 "parameters" : [
632 {
633 "type" : "field",
634 "value" : ["standard_metadata", "egress_spec"]
635 },
636 {
637 "type" : "runtime_data",
638 "value" : 0
639 }
640 ],
641 "source_info" : {
642 "filename" : "include/table0.p4",
643 "line" : 38,
644 "column" : 8,
645 "source_fragment" : "standard_metadata.egress_spec = port"
646 }
647 }
648 ]
649 },
650 {
Carmelo Cascone81929aa2018-04-07 01:38:55 -0700651 "name" : "ingress.host_meter_control.read_meter",
Keesjan Karsten23368892018-05-22 10:46:01 +0000652 "id" : 6,
Frank Wangd7e3b4b2017-09-24 13:37:54 +0900653 "runtime_data" : [],
654 "primitives" : []
655 },
656 {
Keesjan Karsten23368892018-05-22 10:46:01 +0000657 "name" : "ingress.wcmp_control.set_egress_port",
658 "id" : 7,
659 "runtime_data" : [
660 {
661 "name" : "port",
662 "bitwidth" : 9
663 }
664 ],
665 "primitives" : [
666 {
667 "op" : "assign",
668 "parameters" : [
669 {
670 "type" : "field",
671 "value" : ["standard_metadata", "egress_spec"]
672 },
673 {
674 "type" : "runtime_data",
675 "value" : 0
676 }
677 ],
678 "source_info" : {
679 "filename" : "include/wcmp.p4",
680 "line" : 31,
681 "column" : 8,
682 "source_fragment" : "standard_metadata.egress_spec = port"
683 }
684 }
685 ]
686 },
687 {
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700688 "name" : "act",
Frank Wangd7e3b4b2017-09-24 13:37:54 +0900689 "id" : 8,
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700690 "runtime_data" : [],
691 "primitives" : [
692 {
Frank Wangd7e3b4b2017-09-24 13:37:54 +0900693 "op" : "drop",
694 "parameters" : [],
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700695 "source_info" : {
Frank Wangd7e3b4b2017-09-24 13:37:54 +0900696 "filename" : "include/port_meters.p4",
697 "line" : 29,
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700698 "column" : 12,
Frank Wangd7e3b4b2017-09-24 13:37:54 +0900699 "source_fragment" : "mark_to_drop()"
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700700 }
701 }
702 ]
703 },
704 {
705 "name" : "act_0",
Frank Wangd7e3b4b2017-09-24 13:37:54 +0900706 "id" : 9,
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700707 "runtime_data" : [],
708 "primitives" : [
709 {
710 "op" : "assign",
711 "parameters" : [
712 {
713 "type" : "field",
714 "value" : ["scalars", "tmp"]
715 },
716 {
717 "type" : "expression",
718 "value" : {
719 "type" : "expression",
720 "value" : {
721 "op" : "&",
722 "left" : {
723 "type" : "field",
724 "value" : ["standard_metadata", "ingress_port"]
725 },
726 "right" : {
727 "type" : "hexstr",
728 "value" : "0xffffffff"
729 }
730 }
731 }
732 }
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200733 ],
734 "source_info" : {
735 "filename" : "include/port_counters.p4",
736 "line" : 29,
737 "column" : 35,
738 "source_fragment" : "(bit<32>) standard_metadata.ingress_port"
739 }
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700740 },
741 {
742 "op" : "count",
743 "parameters" : [
744 {
745 "type" : "counter_array",
Carmelo Cascone81929aa2018-04-07 01:38:55 -0700746 "value" : "ingress.port_counters_ingress.ingress_port_counter"
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700747 },
748 {
749 "type" : "field",
750 "value" : ["scalars", "tmp"]
751 }
752 ],
753 "source_info" : {
Frank Wangd7e3b4b2017-09-24 13:37:54 +0900754 "filename" : "include/port_counters.p4",
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700755 "line" : 29,
756 "column" : 8,
757 "source_fragment" : "ingress_port_counter.count((bit<32>) standard_metadata.ingress_port)"
758 }
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700759 },
760 {
761 "op" : "assign",
762 "parameters" : [
763 {
764 "type" : "field",
Frank Wangd7e3b4b2017-09-24 13:37:54 +0900765 "value" : ["scalars", "tmp_0"]
766 },
767 {
768 "type" : "expression",
769 "value" : {
770 "type" : "expression",
771 "value" : {
772 "op" : "&",
773 "left" : {
774 "type" : "field",
775 "value" : ["standard_metadata", "ingress_port"]
776 },
777 "right" : {
778 "type" : "hexstr",
779 "value" : "0xffffffff"
780 }
781 }
782 }
783 }
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200784 ],
785 "source_info" : {
786 "filename" : "include/port_meters.p4",
787 "line" : 27,
788 "column" : 53,
789 "source_fragment" : "(bit<32>)standard_metadata.ingress_port"
790 }
Frank Wangd7e3b4b2017-09-24 13:37:54 +0900791 },
792 {
793 "op" : "execute_meter",
794 "parameters" : [
795 {
796 "type" : "meter_array",
Carmelo Cascone81929aa2018-04-07 01:38:55 -0700797 "value" : "ingress.port_meters_ingress.ingress_port_meter"
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700798 },
799 {
800 "type" : "field",
Frank Wangd7e3b4b2017-09-24 13:37:54 +0900801 "value" : ["scalars", "tmp_0"]
802 },
803 {
804 "type" : "field",
805 "value" : ["scalars", "port_meters_ingress_ingress_color_0"]
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700806 }
807 ],
808 "source_info" : {
Frank Wangd7e3b4b2017-09-24 13:37:54 +0900809 "filename" : "include/port_meters.p4",
810 "line" : 27,
811 "column" : 8,
Keesjan Karsten23368892018-05-22 10:46:01 +0000812 "source_fragment" : "ingress_port_meter.execute_meter<MeterColor>((bit<32>)standard_metadata.ingress_port, ingress_color)"
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700813 }
814 }
815 ]
816 },
817 {
Frank Wangd7e3b4b2017-09-24 13:37:54 +0900818 "name" : "act_1",
819 "id" : 10,
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700820 "runtime_data" : [],
821 "primitives" : [
822 {
823 "op" : "assign",
824 "parameters" : [
825 {
826 "type" : "field",
Frank Wangd7e3b4b2017-09-24 13:37:54 +0900827 "value" : ["standard_metadata", "egress_spec"]
828 },
829 {
830 "type" : "field",
831 "value" : ["packet_out", "egress_port"]
832 }
833 ],
834 "source_info" : {
835 "filename" : "include/packet_io.p4",
836 "line" : 27,
837 "column" : 12,
838 "source_fragment" : "standard_metadata.egress_spec = hdr.packet_out.egress_port"
839 }
840 },
841 {
842 "op" : "remove_header",
843 "parameters" : [
844 {
845 "type" : "header",
846 "value" : "packet_out"
847 }
848 ],
849 "source_info" : {
850 "filename" : "include/packet_io.p4",
851 "line" : 28,
852 "column" : 12,
853 "source_fragment" : "hdr.packet_out.setInvalid()"
854 }
855 }
856 ]
857 },
858 {
859 "name" : "act_2",
860 "id" : 11,
861 "runtime_data" : [],
862 "primitives" : [
863 {
864 "op" : "assign",
865 "parameters" : [
866 {
867 "type" : "field",
Keesjan Karsten23368892018-05-22 10:46:01 +0000868 "value" : ["scalars", "host_meter_control_meter_tag_0"]
Frank Wangd7e3b4b2017-09-24 13:37:54 +0900869 },
870 {
Keesjan Karsten23368892018-05-22 10:46:01 +0000871 "type" : "hexstr",
872 "value" : "0x00"
Frank Wangd7e3b4b2017-09-24 13:37:54 +0900873 }
Keesjan Karsten23368892018-05-22 10:46:01 +0000874 ],
875 "source_info" : {
876 "filename" : "include/defines.p4",
877 "line" : 31,
878 "column" : 36,
879 "source_fragment" : "8w0; ..."
880 }
Frank Wangd7e3b4b2017-09-24 13:37:54 +0900881 }
882 ]
883 },
884 {
885 "name" : "act_3",
886 "id" : 12,
887 "runtime_data" : [],
888 "primitives" : [
889 {
Frank Wangd7e3b4b2017-09-24 13:37:54 +0900890 "op" : "drop",
891 "parameters" : [],
892 "source_info" : {
893 "filename" : "include/host_meter_table.p4",
Keesjan Karsten23368892018-05-22 10:46:01 +0000894 "line" : 48,
Frank Wangd7e3b4b2017-09-24 13:37:54 +0900895 "column" : 12,
896 "source_fragment" : "mark_to_drop()"
897 }
898 }
899 ]
900 },
901 {
Keesjan Karsten23368892018-05-22 10:46:01 +0000902 "name" : "act_4",
903 "id" : 13,
Frank Wangd7e3b4b2017-09-24 13:37:54 +0900904 "runtime_data" : [],
905 "primitives" : [
906 {
907 "op" : "drop",
908 "parameters" : [],
909 "source_info" : {
910 "filename" : "include/port_meters.p4",
911 "line" : 43,
912 "column" : 12,
913 "source_fragment" : "mark_to_drop()"
914 }
915 }
916 ]
917 },
918 {
Keesjan Karsten23368892018-05-22 10:46:01 +0000919 "name" : "act_5",
920 "id" : 14,
Frank Wangd7e3b4b2017-09-24 13:37:54 +0900921 "runtime_data" : [],
922 "primitives" : [
923 {
924 "op" : "assign",
925 "parameters" : [
926 {
927 "type" : "field",
928 "value" : ["scalars", "tmp_1"]
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700929 },
930 {
931 "type" : "expression",
932 "value" : {
933 "type" : "expression",
934 "value" : {
935 "op" : "&",
936 "left" : {
937 "type" : "field",
938 "value" : ["standard_metadata", "egress_port"]
939 },
940 "right" : {
941 "type" : "hexstr",
942 "value" : "0xffffffff"
943 }
944 }
945 }
946 }
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200947 ],
948 "source_info" : {
949 "filename" : "include/port_counters.p4",
950 "line" : 39,
951 "column" : 34,
952 "source_fragment" : "(bit<32>) standard_metadata.egress_port"
953 }
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700954 },
955 {
956 "op" : "count",
957 "parameters" : [
958 {
959 "type" : "counter_array",
Carmelo Cascone81929aa2018-04-07 01:38:55 -0700960 "value" : "egress.port_counters_egress.egress_port_counter"
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700961 },
962 {
963 "type" : "field",
Frank Wangd7e3b4b2017-09-24 13:37:54 +0900964 "value" : ["scalars", "tmp_1"]
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700965 }
966 ],
967 "source_info" : {
Frank Wangd7e3b4b2017-09-24 13:37:54 +0900968 "filename" : "include/port_counters.p4",
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700969 "line" : 39,
970 "column" : 8,
971 "source_fragment" : "egress_port_counter.count((bit<32>) standard_metadata.egress_port)"
972 }
Frank Wangd7e3b4b2017-09-24 13:37:54 +0900973 },
974 {
975 "op" : "assign",
976 "parameters" : [
977 {
978 "type" : "field",
979 "value" : ["scalars", "tmp_2"]
980 },
981 {
982 "type" : "expression",
983 "value" : {
984 "type" : "expression",
985 "value" : {
986 "op" : "&",
987 "left" : {
988 "type" : "field",
989 "value" : ["standard_metadata", "egress_port"]
990 },
991 "right" : {
992 "type" : "hexstr",
993 "value" : "0xffffffff"
994 }
995 }
996 }
997 }
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200998 ],
999 "source_info" : {
1000 "filename" : "include/port_meters.p4",
1001 "line" : 41,
1002 "column" : 52,
1003 "source_fragment" : "(bit<32>)standard_metadata.egress_port"
1004 }
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001005 },
1006 {
1007 "op" : "execute_meter",
1008 "parameters" : [
1009 {
1010 "type" : "meter_array",
Carmelo Cascone81929aa2018-04-07 01:38:55 -07001011 "value" : "egress.port_meters_egress.egress_port_meter"
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001012 },
1013 {
1014 "type" : "field",
1015 "value" : ["scalars", "tmp_2"]
1016 },
1017 {
1018 "type" : "field",
1019 "value" : ["scalars", "port_meters_egress_egress_color_0"]
1020 }
1021 ],
1022 "source_info" : {
1023 "filename" : "include/port_meters.p4",
1024 "line" : 41,
1025 "column" : 8,
Keesjan Karsten23368892018-05-22 10:46:01 +00001026 "source_fragment" : "egress_port_meter.execute_meter<MeterColor>((bit<32>)standard_metadata.egress_port, egress_color)"
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001027 }
1028 }
1029 ]
1030 },
1031 {
Keesjan Karsten23368892018-05-22 10:46:01 +00001032 "name" : "act_6",
1033 "id" : 15,
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001034 "runtime_data" : [],
1035 "primitives" : [
1036 {
1037 "op" : "add_header",
1038 "parameters" : [
1039 {
1040 "type" : "header",
1041 "value" : "packet_in"
1042 }
1043 ],
1044 "source_info" : {
1045 "filename" : "include/packet_io.p4",
1046 "line" : 38,
1047 "column" : 12,
1048 "source_fragment" : "hdr.packet_in.setValid()"
1049 }
1050 },
1051 {
1052 "op" : "assign",
1053 "parameters" : [
1054 {
1055 "type" : "field",
1056 "value" : ["packet_in", "ingress_port"]
1057 },
1058 {
1059 "type" : "field",
1060 "value" : ["standard_metadata", "ingress_port"]
1061 }
1062 ],
1063 "source_info" : {
1064 "filename" : "include/packet_io.p4",
1065 "line" : 39,
1066 "column" : 12,
1067 "source_fragment" : "hdr.packet_in.ingress_port = standard_metadata.ingress_port"
1068 }
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001069 }
1070 ]
1071 }
1072 ],
1073 "pipelines" : [
1074 {
1075 "name" : "ingress",
1076 "id" : 0,
1077 "source_info" : {
1078 "filename" : "basic.p4",
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001079 "line" : 37,
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001080 "column" : 8,
1081 "source_fragment" : "ingress"
1082 },
1083 "init_table" : "tbl_act",
1084 "tables" : [
1085 {
1086 "name" : "tbl_act",
1087 "id" : 0,
1088 "key" : [],
1089 "match_type" : "exact",
1090 "type" : "simple",
1091 "max_size" : 1024,
1092 "with_counters" : false,
1093 "support_timeout" : false,
1094 "direct_meters" : null,
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001095 "action_ids" : [9],
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001096 "actions" : ["act_0"],
1097 "base_default_next" : "node_3",
1098 "next_tables" : {
1099 "act_0" : "node_3"
1100 },
1101 "default_entry" : {
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001102 "action_id" : 9,
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001103 "action_const" : true,
1104 "action_data" : [],
1105 "action_entry_const" : true
1106 }
1107 },
1108 {
1109 "name" : "tbl_act_0",
1110 "id" : 1,
1111 "key" : [],
1112 "match_type" : "exact",
1113 "type" : "simple",
1114 "max_size" : 1024,
1115 "with_counters" : false,
1116 "support_timeout" : false,
1117 "direct_meters" : null,
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001118 "action_ids" : [8],
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001119 "actions" : ["act"],
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001120 "base_default_next" : "node_5",
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001121 "next_tables" : {
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001122 "act" : "node_5"
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001123 },
1124 "default_entry" : {
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001125 "action_id" : 8,
1126 "action_const" : true,
1127 "action_data" : [],
1128 "action_entry_const" : true
1129 }
1130 },
1131 {
1132 "name" : "tbl_act_1",
1133 "id" : 2,
1134 "key" : [],
1135 "match_type" : "exact",
1136 "type" : "simple",
1137 "max_size" : 1024,
1138 "with_counters" : false,
1139 "support_timeout" : false,
1140 "direct_meters" : null,
1141 "action_ids" : [10],
1142 "actions" : ["act_1"],
1143 "base_default_next" : null,
1144 "next_tables" : {
1145 "act_1" : null
1146 },
1147 "default_entry" : {
1148 "action_id" : 10,
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001149 "action_const" : true,
1150 "action_data" : [],
1151 "action_entry_const" : true
1152 }
1153 },
1154 {
Carmelo Cascone81929aa2018-04-07 01:38:55 -07001155 "name" : "ingress.table0_control.table0",
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001156 "id" : 3,
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001157 "source_info" : {
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001158 "filename" : "include/table0.p4",
Keesjan Karsten23368892018-05-22 10:46:01 +00001159 "line" : 41,
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001160 "column" : 10,
1161 "source_fragment" : "table0"
1162 },
1163 "key" : [
1164 {
1165 "match_type" : "ternary",
Carmelo Cascone81929aa2018-04-07 01:38:55 -07001166 "name" : "standard_metadata.ingress_port",
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001167 "target" : ["standard_metadata", "ingress_port"],
1168 "mask" : null
1169 },
1170 {
1171 "match_type" : "ternary",
Carmelo Cascone81929aa2018-04-07 01:38:55 -07001172 "name" : "hdr.ethernet.src_addr",
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001173 "target" : ["ethernet", "src_addr"],
1174 "mask" : null
1175 },
1176 {
1177 "match_type" : "ternary",
Carmelo Cascone81929aa2018-04-07 01:38:55 -07001178 "name" : "hdr.ethernet.dst_addr",
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001179 "target" : ["ethernet", "dst_addr"],
1180 "mask" : null
1181 },
1182 {
1183 "match_type" : "ternary",
Carmelo Cascone81929aa2018-04-07 01:38:55 -07001184 "name" : "hdr.ethernet.ether_type",
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001185 "target" : ["ethernet", "ether_type"],
1186 "mask" : null
1187 },
1188 {
1189 "match_type" : "ternary",
Carmelo Cascone81929aa2018-04-07 01:38:55 -07001190 "name" : "hdr.ipv4.src_addr",
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001191 "target" : ["ipv4", "src_addr"],
1192 "mask" : null
1193 },
1194 {
1195 "match_type" : "ternary",
Carmelo Cascone81929aa2018-04-07 01:38:55 -07001196 "name" : "hdr.ipv4.dst_addr",
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001197 "target" : ["ipv4", "dst_addr"],
1198 "mask" : null
1199 },
1200 {
1201 "match_type" : "ternary",
Carmelo Cascone81929aa2018-04-07 01:38:55 -07001202 "name" : "hdr.ipv4.protocol",
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001203 "target" : ["ipv4", "protocol"],
1204 "mask" : null
1205 },
1206 {
1207 "match_type" : "ternary",
Carmelo Cascone81929aa2018-04-07 01:38:55 -07001208 "name" : "local_metadata.l4_src_port",
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001209 "target" : ["scalars", "local_metadata_t.l4_src_port"],
1210 "mask" : null
1211 },
1212 {
1213 "match_type" : "ternary",
Carmelo Cascone81929aa2018-04-07 01:38:55 -07001214 "name" : "local_metadata.l4_dst_port",
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001215 "target" : ["scalars", "local_metadata_t.l4_dst_port"],
1216 "mask" : null
1217 }
1218 ],
1219 "match_type" : "ternary",
1220 "type" : "simple",
1221 "max_size" : 1024,
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001222 "with_counters" : true,
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001223 "support_timeout" : false,
1224 "direct_meters" : null,
Keesjan Karsten23368892018-05-22 10:46:01 +00001225 "action_ids" : [5, 4, 3, 0],
1226 "actions" : ["ingress.table0_control.set_egress_port", "ingress.table0_control.send_to_cpu", "ingress.table0_control.set_next_hop_id", "_drop"],
1227 "base_default_next" : "tbl_act_2",
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001228 "next_tables" : {
Keesjan Karsten23368892018-05-22 10:46:01 +00001229 "ingress.table0_control.set_egress_port" : "tbl_act_2",
1230 "ingress.table0_control.send_to_cpu" : "tbl_act_2",
1231 "ingress.table0_control.set_next_hop_id" : "tbl_act_2",
1232 "_drop" : "tbl_act_2"
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001233 },
1234 "default_entry" : {
Keesjan Karsten23368892018-05-22 10:46:01 +00001235 "action_id" : 0,
1236 "action_const" : true,
1237 "action_data" : [],
1238 "action_entry_const" : true
1239 }
1240 },
1241 {
1242 "name" : "tbl_act_2",
1243 "id" : 4,
1244 "key" : [],
1245 "match_type" : "exact",
1246 "type" : "simple",
1247 "max_size" : 1024,
1248 "with_counters" : false,
1249 "support_timeout" : false,
1250 "direct_meters" : null,
1251 "action_ids" : [11],
1252 "actions" : ["act_2"],
1253 "base_default_next" : "ingress.host_meter_control.host_meter_table",
1254 "next_tables" : {
1255 "act_2" : "ingress.host_meter_control.host_meter_table"
1256 },
1257 "default_entry" : {
1258 "action_id" : 11,
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001259 "action_const" : true,
1260 "action_data" : [],
1261 "action_entry_const" : true
1262 }
1263 },
1264 {
Carmelo Cascone81929aa2018-04-07 01:38:55 -07001265 "name" : "ingress.host_meter_control.host_meter_table",
Keesjan Karsten23368892018-05-22 10:46:01 +00001266 "id" : 5,
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001267 "source_info" : {
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001268 "filename" : "include/host_meter_table.p4",
1269 "line" : 33,
1270 "column" : 10,
1271 "source_fragment" : "host_meter_table"
1272 },
1273 "key" : [
1274 {
1275 "match_type" : "lpm",
Carmelo Cascone81929aa2018-04-07 01:38:55 -07001276 "name" : "hdr.ethernet.src_addr",
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001277 "target" : ["ethernet", "src_addr"],
1278 "mask" : null
1279 }
1280 ],
1281 "match_type" : "lpm",
1282 "type" : "simple",
1283 "max_size" : 1024,
1284 "with_counters" : false,
1285 "support_timeout" : false,
Carmelo Cascone81929aa2018-04-07 01:38:55 -07001286 "direct_meters" : "ingress.host_meter_control.host_meter",
Keesjan Karsten23368892018-05-22 10:46:01 +00001287 "action_ids" : [6, 1],
Carmelo Cascone81929aa2018-04-07 01:38:55 -07001288 "actions" : ["ingress.host_meter_control.read_meter", "NoAction"],
Keesjan Karsten23368892018-05-22 10:46:01 +00001289 "base_default_next" : "node_10",
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001290 "next_tables" : {
Keesjan Karsten23368892018-05-22 10:46:01 +00001291 "ingress.host_meter_control.read_meter" : "node_10",
1292 "NoAction" : "node_10"
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001293 },
1294 "default_entry" : {
Keesjan Karsten23368892018-05-22 10:46:01 +00001295 "action_id" : 1,
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001296 "action_const" : false,
1297 "action_data" : [],
1298 "action_entry_const" : false
1299 }
1300 },
1301 {
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001302 "name" : "tbl_act_3",
1303 "id" : 6,
1304 "key" : [],
1305 "match_type" : "exact",
1306 "type" : "simple",
1307 "max_size" : 1024,
1308 "with_counters" : false,
1309 "support_timeout" : false,
1310 "direct_meters" : null,
1311 "action_ids" : [12],
1312 "actions" : ["act_3"],
Keesjan Karsten23368892018-05-22 10:46:01 +00001313 "base_default_next" : "node_12",
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001314 "next_tables" : {
Keesjan Karsten23368892018-05-22 10:46:01 +00001315 "act_3" : "node_12"
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001316 },
1317 "default_entry" : {
1318 "action_id" : 12,
1319 "action_const" : true,
1320 "action_data" : [],
1321 "action_entry_const" : true
1322 }
1323 },
1324 {
Carmelo Cascone81929aa2018-04-07 01:38:55 -07001325 "name" : "ingress.wcmp_control.wcmp_table",
Keesjan Karsten23368892018-05-22 10:46:01 +00001326 "id" : 7,
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001327 "source_info" : {
1328 "filename" : "include/wcmp.p4",
Keesjan Karsten23368892018-05-22 10:46:01 +00001329 "line" : 34,
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001330 "column" : 10,
1331 "source_fragment" : "wcmp_table"
1332 },
1333 "key" : [
1334 {
1335 "match_type" : "exact",
Carmelo Cascone81929aa2018-04-07 01:38:55 -07001336 "name" : "local_metadata.next_hop_id",
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001337 "target" : ["scalars", "local_metadata_t.next_hop_id"],
1338 "mask" : null
1339 }
1340 ],
1341 "match_type" : "exact",
1342 "type" : "indirect_ws",
Carmelo Cascone81929aa2018-04-07 01:38:55 -07001343 "action_profile" : "ingress.wcmp_control.wcmp_selector",
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001344 "max_size" : 1024,
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001345 "with_counters" : true,
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001346 "support_timeout" : false,
1347 "direct_meters" : null,
Keesjan Karsten23368892018-05-22 10:46:01 +00001348 "action_ids" : [7, 2],
1349 "actions" : ["ingress.wcmp_control.set_egress_port", "NoAction"],
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001350 "base_default_next" : null,
1351 "next_tables" : {
Keesjan Karsten23368892018-05-22 10:46:01 +00001352 "ingress.wcmp_control.set_egress_port" : null,
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001353 "NoAction" : null
1354 }
1355 }
1356 ],
1357 "action_profiles" : [
1358 {
Carmelo Cascone81929aa2018-04-07 01:38:55 -07001359 "name" : "ingress.wcmp_control.wcmp_selector",
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001360 "id" : 0,
Carmelo Casconeb0f45fe2018-10-11 08:31:59 -07001361 "source_info" : {
1362 "filename" : "include/wcmp.p4",
1363 "line" : 28,
1364 "column" : 55,
1365 "source_fragment" : "wcmp_selector"
1366 },
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001367 "max_size" : 64,
1368 "selector" : {
1369 "algo" : "crc16",
1370 "input" : [
1371 {
1372 "type" : "field",
1373 "value" : ["ipv4", "src_addr"]
1374 },
1375 {
1376 "type" : "field",
1377 "value" : ["ipv4", "dst_addr"]
1378 },
1379 {
1380 "type" : "field",
1381 "value" : ["ipv4", "protocol"]
1382 },
1383 {
1384 "type" : "field",
1385 "value" : ["scalars", "local_metadata_t.l4_src_port"]
1386 },
1387 {
1388 "type" : "field",
1389 "value" : ["scalars", "local_metadata_t.l4_dst_port"]
1390 }
1391 ]
1392 }
1393 }
1394 ],
1395 "conditionals" : [
1396 {
1397 "name" : "node_3",
1398 "id" : 0,
1399 "source_info" : {
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001400 "filename" : "include/port_meters.p4",
1401 "line" : 28,
1402 "column" : 12,
Keesjan Karsten23368892018-05-22 10:46:01 +00001403 "source_fragment" : "ingress_color == MeterColor_RED"
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001404 },
1405 "expression" : {
1406 "type" : "expression",
1407 "value" : {
1408 "op" : "==",
1409 "left" : {
1410 "type" : "field",
1411 "value" : ["scalars", "port_meters_ingress_ingress_color_0"]
1412 },
1413 "right" : {
1414 "type" : "hexstr",
Keesjan Karsten23368892018-05-22 10:46:01 +00001415 "value" : "0x02"
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001416 }
1417 }
1418 },
1419 "true_next" : "tbl_act_0",
1420 "false_next" : "node_5"
1421 },
1422 {
1423 "name" : "node_5",
1424 "id" : 1,
1425 "source_info" : {
1426 "filename" : "include/packet_io.p4",
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001427 "line" : 26,
1428 "column" : 12,
1429 "source_fragment" : "standard_metadata.ingress_port == CPU_PORT"
1430 },
1431 "expression" : {
1432 "type" : "expression",
1433 "value" : {
1434 "op" : "==",
1435 "left" : {
1436 "type" : "field",
1437 "value" : ["standard_metadata", "ingress_port"]
1438 },
1439 "right" : {
1440 "type" : "hexstr",
1441 "value" : "0x00ff"
1442 }
1443 }
1444 },
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001445 "true_next" : "tbl_act_1",
Carmelo Cascone81929aa2018-04-07 01:38:55 -07001446 "false_next" : "ingress.table0_control.table0"
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001447 },
1448 {
Keesjan Karsten23368892018-05-22 10:46:01 +00001449 "name" : "node_10",
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001450 "id" : 2,
Keesjan Karsten23368892018-05-22 10:46:01 +00001451 "source_info" : {
1452 "filename" : "include/host_meter_table.p4",
1453 "line" : 47,
1454 "column" : 12,
1455 "source_fragment" : "meter_tag == MeterColor_RED"
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001456 },
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001457 "expression" : {
1458 "type" : "expression",
1459 "value" : {
Keesjan Karsten23368892018-05-22 10:46:01 +00001460 "op" : "==",
1461 "left" : {
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001462 "type" : "field",
Keesjan Karsten23368892018-05-22 10:46:01 +00001463 "value" : ["scalars", "host_meter_control_meter_tag_0"]
1464 },
1465 "right" : {
1466 "type" : "hexstr",
1467 "value" : "0x02"
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001468 }
1469 }
1470 },
Keesjan Karsten23368892018-05-22 10:46:01 +00001471 "true_next" : "tbl_act_3",
1472 "false_next" : "node_12"
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001473 },
1474 {
Keesjan Karsten23368892018-05-22 10:46:01 +00001475 "name" : "node_12",
1476 "id" : 3,
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001477 "source_info" : {
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001478 "filename" : "include/wcmp.p4",
Keesjan Karsten23368892018-05-22 10:46:01 +00001479 "line" : 52,
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001480 "column" : 12,
1481 "source_fragment" : "local_metadata.next_hop_id != 0"
1482 },
1483 "expression" : {
1484 "type" : "expression",
1485 "value" : {
1486 "op" : "!=",
1487 "left" : {
1488 "type" : "field",
1489 "value" : ["scalars", "local_metadata_t.next_hop_id"]
1490 },
1491 "right" : {
1492 "type" : "hexstr",
1493 "value" : "0x0000"
1494 }
1495 }
1496 },
1497 "false_next" : null,
Carmelo Cascone81929aa2018-04-07 01:38:55 -07001498 "true_next" : "ingress.wcmp_control.wcmp_table"
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001499 }
1500 ]
1501 },
1502 {
1503 "name" : "egress",
1504 "id" : 1,
1505 "source_info" : {
1506 "filename" : "basic.p4",
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001507 "line" : 55,
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001508 "column" : 8,
1509 "source_fragment" : "egress"
1510 },
Keesjan Karsten23368892018-05-22 10:46:01 +00001511 "init_table" : "tbl_act_4",
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001512 "tables" : [
1513 {
Keesjan Karsten23368892018-05-22 10:46:01 +00001514 "name" : "tbl_act_4",
1515 "id" : 8,
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001516 "key" : [],
1517 "match_type" : "exact",
1518 "type" : "simple",
1519 "max_size" : 1024,
1520 "with_counters" : false,
1521 "support_timeout" : false,
1522 "direct_meters" : null,
Keesjan Karsten23368892018-05-22 10:46:01 +00001523 "action_ids" : [14],
1524 "actions" : ["act_5"],
1525 "base_default_next" : "node_17",
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001526 "next_tables" : {
Keesjan Karsten23368892018-05-22 10:46:01 +00001527 "act_5" : "node_17"
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001528 },
1529 "default_entry" : {
Keesjan Karsten23368892018-05-22 10:46:01 +00001530 "action_id" : 14,
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001531 "action_const" : true,
1532 "action_data" : [],
1533 "action_entry_const" : true
1534 }
1535 },
1536 {
Keesjan Karsten23368892018-05-22 10:46:01 +00001537 "name" : "tbl_act_5",
1538 "id" : 9,
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001539 "key" : [],
1540 "match_type" : "exact",
1541 "type" : "simple",
1542 "max_size" : 1024,
1543 "with_counters" : false,
1544 "support_timeout" : false,
1545 "direct_meters" : null,
Keesjan Karsten23368892018-05-22 10:46:01 +00001546 "action_ids" : [13],
1547 "actions" : ["act_4"],
1548 "base_default_next" : "node_19",
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001549 "next_tables" : {
Keesjan Karsten23368892018-05-22 10:46:01 +00001550 "act_4" : "node_19"
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001551 },
1552 "default_entry" : {
Keesjan Karsten23368892018-05-22 10:46:01 +00001553 "action_id" : 13,
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001554 "action_const" : true,
1555 "action_data" : [],
1556 "action_entry_const" : true
1557 }
1558 },
1559 {
Keesjan Karsten23368892018-05-22 10:46:01 +00001560 "name" : "tbl_act_6",
1561 "id" : 10,
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001562 "key" : [],
1563 "match_type" : "exact",
1564 "type" : "simple",
1565 "max_size" : 1024,
1566 "with_counters" : false,
1567 "support_timeout" : false,
1568 "direct_meters" : null,
Keesjan Karsten23368892018-05-22 10:46:01 +00001569 "action_ids" : [15],
1570 "actions" : ["act_6"],
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001571 "base_default_next" : null,
1572 "next_tables" : {
Keesjan Karsten23368892018-05-22 10:46:01 +00001573 "act_6" : null
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001574 },
1575 "default_entry" : {
Keesjan Karsten23368892018-05-22 10:46:01 +00001576 "action_id" : 15,
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001577 "action_const" : true,
1578 "action_data" : [],
1579 "action_entry_const" : true
1580 }
1581 }
1582 ],
1583 "action_profiles" : [],
1584 "conditionals" : [
1585 {
Keesjan Karsten23368892018-05-22 10:46:01 +00001586 "name" : "node_17",
1587 "id" : 4,
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001588 "source_info" : {
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001589 "filename" : "include/port_meters.p4",
1590 "line" : 42,
1591 "column" : 12,
Keesjan Karsten23368892018-05-22 10:46:01 +00001592 "source_fragment" : "egress_color == MeterColor_RED"
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001593 },
1594 "expression" : {
1595 "type" : "expression",
1596 "value" : {
1597 "op" : "==",
1598 "left" : {
1599 "type" : "field",
1600 "value" : ["scalars", "port_meters_egress_egress_color_0"]
1601 },
1602 "right" : {
1603 "type" : "hexstr",
Keesjan Karsten23368892018-05-22 10:46:01 +00001604 "value" : "0x02"
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001605 }
1606 }
1607 },
Keesjan Karsten23368892018-05-22 10:46:01 +00001608 "true_next" : "tbl_act_5",
1609 "false_next" : "node_19"
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001610 },
1611 {
Keesjan Karsten23368892018-05-22 10:46:01 +00001612 "name" : "node_19",
1613 "id" : 5,
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001614 "source_info" : {
1615 "filename" : "include/packet_io.p4",
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001616 "line" : 37,
1617 "column" : 12,
1618 "source_fragment" : "standard_metadata.egress_port == CPU_PORT"
1619 },
1620 "expression" : {
1621 "type" : "expression",
1622 "value" : {
1623 "op" : "==",
1624 "left" : {
1625 "type" : "field",
1626 "value" : ["standard_metadata", "egress_port"]
1627 },
1628 "right" : {
1629 "type" : "hexstr",
1630 "value" : "0x00ff"
1631 }
1632 }
1633 },
1634 "false_next" : null,
Keesjan Karsten23368892018-05-22 10:46:01 +00001635 "true_next" : "tbl_act_6"
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001636 }
1637 ]
1638 }
1639 ],
1640 "checksums" : [],
1641 "force_arith" : [],
1642 "extern_instances" : [],
1643 "field_aliases" : [
1644 [
1645 "queueing_metadata.enq_timestamp",
1646 ["standard_metadata", "enq_timestamp"]
1647 ],
1648 [
1649 "queueing_metadata.enq_qdepth",
1650 ["standard_metadata", "enq_qdepth"]
1651 ],
1652 [
1653 "queueing_metadata.deq_timedelta",
1654 ["standard_metadata", "deq_timedelta"]
1655 ],
1656 [
1657 "queueing_metadata.deq_qdepth",
1658 ["standard_metadata", "deq_qdepth"]
1659 ],
1660 [
1661 "intrinsic_metadata.ingress_global_timestamp",
1662 ["standard_metadata", "ingress_global_timestamp"]
1663 ],
1664 [
Carmelo Cascone81929aa2018-04-07 01:38:55 -07001665 "intrinsic_metadata.egress_global_timestamp",
1666 ["standard_metadata", "egress_global_timestamp"]
1667 ],
1668 [
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001669 "intrinsic_metadata.lf_field_list",
1670 ["standard_metadata", "lf_field_list"]
1671 ],
1672 [
1673 "intrinsic_metadata.mcast_grp",
1674 ["standard_metadata", "mcast_grp"]
1675 ],
1676 [
1677 "intrinsic_metadata.resubmit_flag",
1678 ["standard_metadata", "resubmit_flag"]
1679 ],
1680 [
1681 "intrinsic_metadata.egress_rid",
1682 ["standard_metadata", "egress_rid"]
Carmelo Cascone81929aa2018-04-07 01:38:55 -07001683 ],
1684 [
1685 "intrinsic_metadata.recirculate_flag",
1686 ["standard_metadata", "recirculate_flag"]
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001687 ]
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001688 ],
1689 "program" : "basic.p4",
1690 "__meta__" : {
1691 "version" : [2, 18],
1692 "compiler" : "https://github.com/p4lang/p4c"
1693 }
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001694}