blob: 5769494b59843ccefee9860d02459a6176034ae0 [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],
Keesjan Karsten23368892018-05-22 10:46:01 +000043 ["_padding_0", 5, false]
Carmelo Casconeca94bcf2017-10-27 14:16:59 -070044 ]
Carmelo Cascone6af4e172018-06-15 16:01:30 +020045 },
46 {
47 "name" : "packet_out_header_t",
48 "id" : 2,
49 "fields" : [
50 ["egress_port", 9, false],
51 ["_padding", 7, false]
52 ]
53 },
54 {
55 "name" : "packet_in_header_t",
56 "id" : 3,
57 "fields" : [
58 ["ingress_port", 9, false],
59 ["_padding", 7, false]
60 ]
61 },
62 {
63 "name" : "ethernet_t",
64 "id" : 4,
65 "fields" : [
66 ["dst_addr", 48, false],
67 ["src_addr", 48, false],
68 ["ether_type", 16, false]
69 ]
70 },
71 {
72 "name" : "ipv4_t",
73 "id" : 5,
74 "fields" : [
75 ["version", 4, false],
76 ["ihl", 4, false],
77 ["dscp", 6, false],
78 ["ecn", 2, false],
79 ["len", 16, false],
80 ["identification", 16, false],
81 ["flags", 3, false],
82 ["frag_offset", 13, false],
83 ["ttl", 8, false],
84 ["protocol", 8, false],
85 ["hdr_checksum", 16, false],
86 ["src_addr", 32, false],
87 ["dst_addr", 32, false]
88 ]
89 },
90 {
91 "name" : "tcp_t",
92 "id" : 6,
93 "fields" : [
94 ["src_port", 16, false],
95 ["dst_port", 16, false],
96 ["seq_no", 32, false],
97 ["ack_no", 32, false],
98 ["data_offset", 4, false],
99 ["res", 3, false],
100 ["ecn", 3, false],
101 ["ctrl", 6, false],
102 ["window", 16, false],
103 ["checksum", 16, false],
104 ["urgent_ptr", 16, false]
105 ]
106 },
107 {
108 "name" : "udp_t",
109 "id" : 7,
110 "fields" : [
111 ["src_port", 16, false],
112 ["dst_port", 16, false],
113 ["length_", 16, false],
114 ["checksum", 16, false]
115 ]
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700116 }
117 ],
118 "headers" : [
119 {
120 "name" : "scalars",
121 "id" : 0,
122 "header_type" : "scalars_0",
123 "metadata" : true,
124 "pi_omit" : true
125 },
126 {
127 "name" : "standard_metadata",
128 "id" : 1,
129 "header_type" : "standard_metadata",
130 "metadata" : true,
131 "pi_omit" : true
132 },
133 {
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700134 "name" : "packet_out",
Jonghwan Hyun4a9a6712017-11-13 14:43:55 -0800135 "id" : 2,
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700136 "header_type" : "packet_out_header_t",
137 "metadata" : false,
138 "pi_omit" : true
139 },
140 {
141 "name" : "packet_in",
Jonghwan Hyun4a9a6712017-11-13 14:43:55 -0800142 "id" : 3,
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700143 "header_type" : "packet_in_header_t",
144 "metadata" : false,
145 "pi_omit" : true
Jonghwan Hyun4a9a6712017-11-13 14:43:55 -0800146 },
147 {
148 "name" : "ethernet",
149 "id" : 4,
150 "header_type" : "ethernet_t",
151 "metadata" : false,
152 "pi_omit" : true
153 },
154 {
155 "name" : "ipv4",
156 "id" : 5,
157 "header_type" : "ipv4_t",
158 "metadata" : false,
159 "pi_omit" : true
160 },
161 {
162 "name" : "tcp",
163 "id" : 6,
164 "header_type" : "tcp_t",
165 "metadata" : false,
166 "pi_omit" : true
167 },
168 {
169 "name" : "udp",
170 "id" : 7,
171 "header_type" : "udp_t",
172 "metadata" : false,
173 "pi_omit" : true
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700174 }
175 ],
176 "header_stacks" : [],
177 "header_union_types" : [],
178 "header_unions" : [],
179 "header_union_stacks" : [],
180 "field_lists" : [],
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200181 "errors" : [],
Keesjan Karsten23368892018-05-22 10:46:01 +0000182 "enums" : [],
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700183 "parsers" : [
184 {
185 "name" : "parser",
186 "id" : 0,
187 "init_state" : "start",
188 "parse_states" : [
189 {
190 "name" : "start",
191 "id" : 0,
192 "parser_ops" : [],
193 "transitions" : [
194 {
Carmelo Cascone81929aa2018-04-07 01:38:55 -0700195 "type" : "hexstr",
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700196 "value" : "0x00ff",
197 "mask" : null,
198 "next_state" : "parse_packet_out"
199 },
200 {
201 "value" : "default",
202 "mask" : null,
203 "next_state" : "parse_ethernet"
204 }
205 ],
206 "transition_key" : [
207 {
208 "type" : "field",
209 "value" : ["standard_metadata", "ingress_port"]
210 }
211 ]
212 },
213 {
214 "name" : "parse_packet_out",
215 "id" : 1,
216 "parser_ops" : [
217 {
218 "parameters" : [
219 {
220 "type" : "regular",
221 "value" : "packet_out"
222 }
223 ],
224 "op" : "extract"
225 }
226 ],
227 "transitions" : [
228 {
229 "value" : "default",
230 "mask" : null,
231 "next_state" : "parse_ethernet"
232 }
233 ],
234 "transition_key" : []
235 },
236 {
237 "name" : "parse_ethernet",
238 "id" : 2,
239 "parser_ops" : [
240 {
241 "parameters" : [
242 {
243 "type" : "regular",
244 "value" : "ethernet"
245 }
246 ],
247 "op" : "extract"
248 }
249 ],
250 "transitions" : [
251 {
Carmelo Cascone81929aa2018-04-07 01:38:55 -0700252 "type" : "hexstr",
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700253 "value" : "0x0800",
254 "mask" : null,
255 "next_state" : "parse_ipv4"
256 },
257 {
258 "value" : "default",
259 "mask" : null,
260 "next_state" : null
261 }
262 ],
263 "transition_key" : [
264 {
265 "type" : "field",
266 "value" : ["ethernet", "ether_type"]
267 }
268 ]
269 },
270 {
271 "name" : "parse_ipv4",
272 "id" : 3,
273 "parser_ops" : [
274 {
275 "parameters" : [
276 {
277 "type" : "regular",
278 "value" : "ipv4"
279 }
280 ],
281 "op" : "extract"
282 }
283 ],
284 "transitions" : [
285 {
Carmelo Cascone81929aa2018-04-07 01:38:55 -0700286 "type" : "hexstr",
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700287 "value" : "0x06",
288 "mask" : null,
289 "next_state" : "parse_tcp"
290 },
291 {
Carmelo Cascone81929aa2018-04-07 01:38:55 -0700292 "type" : "hexstr",
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700293 "value" : "0x11",
294 "mask" : null,
295 "next_state" : "parse_udp"
296 },
297 {
298 "value" : "default",
299 "mask" : null,
300 "next_state" : null
301 }
302 ],
303 "transition_key" : [
304 {
305 "type" : "field",
306 "value" : ["ipv4", "protocol"]
307 }
308 ]
309 },
310 {
311 "name" : "parse_tcp",
312 "id" : 4,
313 "parser_ops" : [
314 {
315 "parameters" : [
316 {
317 "type" : "regular",
318 "value" : "tcp"
319 }
320 ],
321 "op" : "extract"
322 },
323 {
324 "parameters" : [
325 {
326 "type" : "field",
327 "value" : ["scalars", "local_metadata_t.l4_src_port"]
328 },
329 {
330 "type" : "field",
331 "value" : ["tcp", "src_port"]
332 }
333 ],
334 "op" : "set"
335 },
336 {
337 "parameters" : [
338 {
339 "type" : "field",
340 "value" : ["scalars", "local_metadata_t.l4_dst_port"]
341 },
342 {
343 "type" : "field",
344 "value" : ["tcp", "dst_port"]
345 }
346 ],
347 "op" : "set"
348 }
349 ],
350 "transitions" : [
351 {
352 "value" : "default",
353 "mask" : null,
354 "next_state" : null
355 }
356 ],
357 "transition_key" : []
358 },
359 {
360 "name" : "parse_udp",
361 "id" : 5,
362 "parser_ops" : [
363 {
364 "parameters" : [
365 {
366 "type" : "regular",
367 "value" : "udp"
368 }
369 ],
370 "op" : "extract"
371 },
372 {
373 "parameters" : [
374 {
375 "type" : "field",
376 "value" : ["scalars", "local_metadata_t.l4_src_port"]
377 },
378 {
379 "type" : "field",
380 "value" : ["udp", "src_port"]
381 }
382 ],
383 "op" : "set"
384 },
385 {
386 "parameters" : [
387 {
388 "type" : "field",
389 "value" : ["scalars", "local_metadata_t.l4_dst_port"]
390 },
391 {
392 "type" : "field",
393 "value" : ["udp", "dst_port"]
394 }
395 ],
396 "op" : "set"
397 }
398 ],
399 "transitions" : [
400 {
401 "value" : "default",
402 "mask" : null,
403 "next_state" : null
404 }
405 ],
406 "transition_key" : []
407 }
408 ]
409 }
410 ],
Carmelo Cascone81929aa2018-04-07 01:38:55 -0700411 "parse_vsets" : [],
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700412 "deparsers" : [
413 {
414 "name" : "deparser",
415 "id" : 0,
416 "source_info" : {
Frank Wangd7e3b4b2017-09-24 13:37:54 +0900417 "filename" : "include/parsers.p4",
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700418 "line" : 72,
419 "column" : 8,
420 "source_fragment" : "deparser"
421 },
422 "order" : ["packet_in", "ethernet", "ipv4", "tcp", "udp"]
423 }
424 ],
Frank Wangd7e3b4b2017-09-24 13:37:54 +0900425 "meter_arrays" : [
426 {
Carmelo Cascone81929aa2018-04-07 01:38:55 -0700427 "name" : "ingress.port_meters_ingress.ingress_port_meter",
Frank Wangd7e3b4b2017-09-24 13:37:54 +0900428 "id" : 0,
429 "source_info" : {
430 "filename" : "include/port_meters.p4",
431 "line" : 23,
432 "column" : 32,
433 "source_fragment" : "ingress_port_meter"
434 },
435 "is_direct" : false,
436 "size" : 511,
437 "rate_count" : 2,
438 "type" : "bytes"
439 },
440 {
Carmelo Cascone81929aa2018-04-07 01:38:55 -0700441 "name" : "ingress.host_meter_control.host_meter",
Frank Wangd7e3b4b2017-09-24 13:37:54 +0900442 "id" : 1,
443 "source_info" : {
444 "filename" : "include/host_meter_table.p4",
445 "line" : 27,
Keesjan Karsten23368892018-05-22 10:46:01 +0000446 "column" : 46,
Frank Wangd7e3b4b2017-09-24 13:37:54 +0900447 "source_fragment" : "host_meter"
448 },
449 "is_direct" : true,
450 "rate_count" : 2,
451 "type" : "bytes",
452 "size" : 1024,
Carmelo Cascone81929aa2018-04-07 01:38:55 -0700453 "binding" : "ingress.host_meter_control.host_meter_table",
Keesjan Karsten23368892018-05-22 10:46:01 +0000454 "result_target" : ["scalars", "host_meter_control_meter_tag_0"]
Frank Wangd7e3b4b2017-09-24 13:37:54 +0900455 },
456 {
Carmelo Cascone81929aa2018-04-07 01:38:55 -0700457 "name" : "egress.port_meters_egress.egress_port_meter",
Frank Wangd7e3b4b2017-09-24 13:37:54 +0900458 "id" : 2,
459 "source_info" : {
460 "filename" : "include/port_meters.p4",
461 "line" : 37,
462 "column" : 32,
463 "source_fragment" : "egress_port_meter"
464 },
465 "is_direct" : false,
466 "size" : 511,
467 "rate_count" : 2,
468 "type" : "bytes"
469 }
470 ],
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700471 "counter_arrays" : [
472 {
Carmelo Cascone81929aa2018-04-07 01:38:55 -0700473 "name" : "ingress.port_counters_ingress.ingress_port_counter",
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700474 "id" : 0,
475 "source_info" : {
Frank Wangd7e3b4b2017-09-24 13:37:54 +0900476 "filename" : "include/port_counters.p4",
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700477 "line" : 26,
478 "column" : 38,
479 "source_fragment" : "ingress_port_counter"
480 },
481 "size" : 511,
482 "is_direct" : false
483 },
484 {
Carmelo Cascone81929aa2018-04-07 01:38:55 -0700485 "name" : "ingress.table0_control.table0_counter",
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700486 "id" : 1,
487 "is_direct" : true,
Carmelo Cascone81929aa2018-04-07 01:38:55 -0700488 "binding" : "ingress.table0_control.table0"
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700489 },
490 {
Carmelo Cascone81929aa2018-04-07 01:38:55 -0700491 "name" : "ingress.wcmp_control.wcmp_table_counter",
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700492 "id" : 2,
493 "is_direct" : true,
Carmelo Cascone81929aa2018-04-07 01:38:55 -0700494 "binding" : "ingress.wcmp_control.wcmp_table"
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700495 },
496 {
Carmelo Cascone81929aa2018-04-07 01:38:55 -0700497 "name" : "egress.port_counters_egress.egress_port_counter",
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700498 "id" : 3,
499 "source_info" : {
Frank Wangd7e3b4b2017-09-24 13:37:54 +0900500 "filename" : "include/port_counters.p4",
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700501 "line" : 36,
502 "column" : 38,
503 "source_fragment" : "egress_port_counter"
504 },
505 "size" : 511,
506 "is_direct" : false
507 }
508 ],
509 "register_arrays" : [],
510 "calculations" : [],
511 "learn_lists" : [],
512 "actions" : [
513 {
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700514 "name" : "_drop",
Keesjan Karsten23368892018-05-22 10:46:01 +0000515 "id" : 0,
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700516 "runtime_data" : [],
517 "primitives" : [
518 {
519 "op" : "drop",
520 "parameters" : [],
521 "source_info" : {
Frank Wangd7e3b4b2017-09-24 13:37:54 +0900522 "filename" : "include/actions.p4",
Keesjan Karsten23368892018-05-22 10:46:01 +0000523 "line" : 24,
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700524 "column" : 4,
525 "source_fragment" : "mark_to_drop()"
526 }
527 }
528 ]
529 },
530 {
531 "name" : "NoAction",
Keesjan Karsten23368892018-05-22 10:46:01 +0000532 "id" : 1,
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700533 "runtime_data" : [],
534 "primitives" : []
535 },
536 {
Frank Wangd7e3b4b2017-09-24 13:37:54 +0900537 "name" : "NoAction",
Keesjan Karsten23368892018-05-22 10:46:01 +0000538 "id" : 2,
Frank Wangd7e3b4b2017-09-24 13:37:54 +0900539 "runtime_data" : [],
540 "primitives" : []
541 },
542 {
Carmelo Cascone81929aa2018-04-07 01:38:55 -0700543 "name" : "ingress.table0_control.set_next_hop_id",
Keesjan Karsten23368892018-05-22 10:46:01 +0000544 "id" : 3,
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700545 "runtime_data" : [
546 {
547 "name" : "next_hop_id",
548 "bitwidth" : 16
549 }
550 ],
551 "primitives" : [
552 {
553 "op" : "assign",
554 "parameters" : [
555 {
556 "type" : "field",
557 "value" : ["scalars", "local_metadata_t.next_hop_id"]
558 },
559 {
560 "type" : "runtime_data",
561 "value" : 0
562 }
563 ],
564 "source_info" : {
Frank Wangd7e3b4b2017-09-24 13:37:54 +0900565 "filename" : "include/table0.p4",
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700566 "line" : 30,
567 "column" : 8,
568 "source_fragment" : "local_metadata.next_hop_id = next_hop_id"
569 }
570 }
571 ]
572 },
573 {
Keesjan Karsten23368892018-05-22 10:46:01 +0000574 "name" : "ingress.table0_control.send_to_cpu",
575 "id" : 4,
576 "runtime_data" : [],
577 "primitives" : [
578 {
579 "op" : "assign",
580 "parameters" : [
581 {
582 "type" : "field",
583 "value" : ["standard_metadata", "egress_spec"]
584 },
585 {
586 "type" : "hexstr",
587 "value" : "0x00ff"
588 }
589 ],
590 "source_info" : {
591 "filename" : "include/defines.p4",
592 "line" : 28,
593 "column" : 24,
594 "source_fragment" : "255; ..."
595 }
596 }
597 ]
598 },
599 {
600 "name" : "ingress.table0_control.set_egress_port",
601 "id" : 5,
602 "runtime_data" : [
603 {
604 "name" : "port",
605 "bitwidth" : 9
606 }
607 ],
608 "primitives" : [
609 {
610 "op" : "assign",
611 "parameters" : [
612 {
613 "type" : "field",
614 "value" : ["standard_metadata", "egress_spec"]
615 },
616 {
617 "type" : "runtime_data",
618 "value" : 0
619 }
620 ],
621 "source_info" : {
622 "filename" : "include/table0.p4",
623 "line" : 38,
624 "column" : 8,
625 "source_fragment" : "standard_metadata.egress_spec = port"
626 }
627 }
628 ]
629 },
630 {
Carmelo Cascone81929aa2018-04-07 01:38:55 -0700631 "name" : "ingress.host_meter_control.read_meter",
Keesjan Karsten23368892018-05-22 10:46:01 +0000632 "id" : 6,
Frank Wangd7e3b4b2017-09-24 13:37:54 +0900633 "runtime_data" : [],
634 "primitives" : []
635 },
636 {
Keesjan Karsten23368892018-05-22 10:46:01 +0000637 "name" : "ingress.wcmp_control.set_egress_port",
638 "id" : 7,
639 "runtime_data" : [
640 {
641 "name" : "port",
642 "bitwidth" : 9
643 }
644 ],
645 "primitives" : [
646 {
647 "op" : "assign",
648 "parameters" : [
649 {
650 "type" : "field",
651 "value" : ["standard_metadata", "egress_spec"]
652 },
653 {
654 "type" : "runtime_data",
655 "value" : 0
656 }
657 ],
658 "source_info" : {
659 "filename" : "include/wcmp.p4",
660 "line" : 31,
661 "column" : 8,
662 "source_fragment" : "standard_metadata.egress_spec = port"
663 }
664 }
665 ]
666 },
667 {
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700668 "name" : "act",
Frank Wangd7e3b4b2017-09-24 13:37:54 +0900669 "id" : 8,
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700670 "runtime_data" : [],
671 "primitives" : [
672 {
Frank Wangd7e3b4b2017-09-24 13:37:54 +0900673 "op" : "drop",
674 "parameters" : [],
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700675 "source_info" : {
Frank Wangd7e3b4b2017-09-24 13:37:54 +0900676 "filename" : "include/port_meters.p4",
677 "line" : 29,
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700678 "column" : 12,
Frank Wangd7e3b4b2017-09-24 13:37:54 +0900679 "source_fragment" : "mark_to_drop()"
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700680 }
681 }
682 ]
683 },
684 {
685 "name" : "act_0",
Frank Wangd7e3b4b2017-09-24 13:37:54 +0900686 "id" : 9,
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700687 "runtime_data" : [],
688 "primitives" : [
689 {
690 "op" : "assign",
691 "parameters" : [
692 {
693 "type" : "field",
694 "value" : ["scalars", "tmp"]
695 },
696 {
697 "type" : "expression",
698 "value" : {
699 "type" : "expression",
700 "value" : {
701 "op" : "&",
702 "left" : {
703 "type" : "field",
704 "value" : ["standard_metadata", "ingress_port"]
705 },
706 "right" : {
707 "type" : "hexstr",
708 "value" : "0xffffffff"
709 }
710 }
711 }
712 }
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200713 ],
714 "source_info" : {
715 "filename" : "include/port_counters.p4",
716 "line" : 29,
717 "column" : 35,
718 "source_fragment" : "(bit<32>) standard_metadata.ingress_port"
719 }
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700720 },
721 {
722 "op" : "count",
723 "parameters" : [
724 {
725 "type" : "counter_array",
Carmelo Cascone81929aa2018-04-07 01:38:55 -0700726 "value" : "ingress.port_counters_ingress.ingress_port_counter"
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700727 },
728 {
729 "type" : "field",
730 "value" : ["scalars", "tmp"]
731 }
732 ],
733 "source_info" : {
Frank Wangd7e3b4b2017-09-24 13:37:54 +0900734 "filename" : "include/port_counters.p4",
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700735 "line" : 29,
736 "column" : 8,
737 "source_fragment" : "ingress_port_counter.count((bit<32>) standard_metadata.ingress_port)"
738 }
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700739 },
740 {
741 "op" : "assign",
742 "parameters" : [
743 {
744 "type" : "field",
Frank Wangd7e3b4b2017-09-24 13:37:54 +0900745 "value" : ["scalars", "tmp_0"]
746 },
747 {
748 "type" : "expression",
749 "value" : {
750 "type" : "expression",
751 "value" : {
752 "op" : "&",
753 "left" : {
754 "type" : "field",
755 "value" : ["standard_metadata", "ingress_port"]
756 },
757 "right" : {
758 "type" : "hexstr",
759 "value" : "0xffffffff"
760 }
761 }
762 }
763 }
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200764 ],
765 "source_info" : {
766 "filename" : "include/port_meters.p4",
767 "line" : 27,
768 "column" : 53,
769 "source_fragment" : "(bit<32>)standard_metadata.ingress_port"
770 }
Frank Wangd7e3b4b2017-09-24 13:37:54 +0900771 },
772 {
773 "op" : "execute_meter",
774 "parameters" : [
775 {
776 "type" : "meter_array",
Carmelo Cascone81929aa2018-04-07 01:38:55 -0700777 "value" : "ingress.port_meters_ingress.ingress_port_meter"
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700778 },
779 {
780 "type" : "field",
Frank Wangd7e3b4b2017-09-24 13:37:54 +0900781 "value" : ["scalars", "tmp_0"]
782 },
783 {
784 "type" : "field",
785 "value" : ["scalars", "port_meters_ingress_ingress_color_0"]
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700786 }
787 ],
788 "source_info" : {
Frank Wangd7e3b4b2017-09-24 13:37:54 +0900789 "filename" : "include/port_meters.p4",
790 "line" : 27,
791 "column" : 8,
Keesjan Karsten23368892018-05-22 10:46:01 +0000792 "source_fragment" : "ingress_port_meter.execute_meter<MeterColor>((bit<32>)standard_metadata.ingress_port, ingress_color)"
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700793 }
794 }
795 ]
796 },
797 {
Frank Wangd7e3b4b2017-09-24 13:37:54 +0900798 "name" : "act_1",
799 "id" : 10,
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700800 "runtime_data" : [],
801 "primitives" : [
802 {
803 "op" : "assign",
804 "parameters" : [
805 {
806 "type" : "field",
Frank Wangd7e3b4b2017-09-24 13:37:54 +0900807 "value" : ["standard_metadata", "egress_spec"]
808 },
809 {
810 "type" : "field",
811 "value" : ["packet_out", "egress_port"]
812 }
813 ],
814 "source_info" : {
815 "filename" : "include/packet_io.p4",
816 "line" : 27,
817 "column" : 12,
818 "source_fragment" : "standard_metadata.egress_spec = hdr.packet_out.egress_port"
819 }
820 },
821 {
822 "op" : "remove_header",
823 "parameters" : [
824 {
825 "type" : "header",
826 "value" : "packet_out"
827 }
828 ],
829 "source_info" : {
830 "filename" : "include/packet_io.p4",
831 "line" : 28,
832 "column" : 12,
833 "source_fragment" : "hdr.packet_out.setInvalid()"
834 }
835 }
836 ]
837 },
838 {
839 "name" : "act_2",
840 "id" : 11,
841 "runtime_data" : [],
842 "primitives" : [
843 {
844 "op" : "assign",
845 "parameters" : [
846 {
847 "type" : "field",
Keesjan Karsten23368892018-05-22 10:46:01 +0000848 "value" : ["scalars", "host_meter_control_meter_tag_0"]
Frank Wangd7e3b4b2017-09-24 13:37:54 +0900849 },
850 {
Keesjan Karsten23368892018-05-22 10:46:01 +0000851 "type" : "hexstr",
852 "value" : "0x00"
Frank Wangd7e3b4b2017-09-24 13:37:54 +0900853 }
Keesjan Karsten23368892018-05-22 10:46:01 +0000854 ],
855 "source_info" : {
856 "filename" : "include/defines.p4",
857 "line" : 31,
858 "column" : 36,
859 "source_fragment" : "8w0; ..."
860 }
Frank Wangd7e3b4b2017-09-24 13:37:54 +0900861 }
862 ]
863 },
864 {
865 "name" : "act_3",
866 "id" : 12,
867 "runtime_data" : [],
868 "primitives" : [
869 {
Frank Wangd7e3b4b2017-09-24 13:37:54 +0900870 "op" : "drop",
871 "parameters" : [],
872 "source_info" : {
873 "filename" : "include/host_meter_table.p4",
Keesjan Karsten23368892018-05-22 10:46:01 +0000874 "line" : 48,
Frank Wangd7e3b4b2017-09-24 13:37:54 +0900875 "column" : 12,
876 "source_fragment" : "mark_to_drop()"
877 }
878 }
879 ]
880 },
881 {
Keesjan Karsten23368892018-05-22 10:46:01 +0000882 "name" : "act_4",
883 "id" : 13,
Frank Wangd7e3b4b2017-09-24 13:37:54 +0900884 "runtime_data" : [],
885 "primitives" : [
886 {
887 "op" : "drop",
888 "parameters" : [],
889 "source_info" : {
890 "filename" : "include/port_meters.p4",
891 "line" : 43,
892 "column" : 12,
893 "source_fragment" : "mark_to_drop()"
894 }
895 }
896 ]
897 },
898 {
Keesjan Karsten23368892018-05-22 10:46:01 +0000899 "name" : "act_5",
900 "id" : 14,
Frank Wangd7e3b4b2017-09-24 13:37:54 +0900901 "runtime_data" : [],
902 "primitives" : [
903 {
904 "op" : "assign",
905 "parameters" : [
906 {
907 "type" : "field",
908 "value" : ["scalars", "tmp_1"]
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700909 },
910 {
911 "type" : "expression",
912 "value" : {
913 "type" : "expression",
914 "value" : {
915 "op" : "&",
916 "left" : {
917 "type" : "field",
918 "value" : ["standard_metadata", "egress_port"]
919 },
920 "right" : {
921 "type" : "hexstr",
922 "value" : "0xffffffff"
923 }
924 }
925 }
926 }
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200927 ],
928 "source_info" : {
929 "filename" : "include/port_counters.p4",
930 "line" : 39,
931 "column" : 34,
932 "source_fragment" : "(bit<32>) standard_metadata.egress_port"
933 }
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700934 },
935 {
936 "op" : "count",
937 "parameters" : [
938 {
939 "type" : "counter_array",
Carmelo Cascone81929aa2018-04-07 01:38:55 -0700940 "value" : "egress.port_counters_egress.egress_port_counter"
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700941 },
942 {
943 "type" : "field",
Frank Wangd7e3b4b2017-09-24 13:37:54 +0900944 "value" : ["scalars", "tmp_1"]
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700945 }
946 ],
947 "source_info" : {
Frank Wangd7e3b4b2017-09-24 13:37:54 +0900948 "filename" : "include/port_counters.p4",
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700949 "line" : 39,
950 "column" : 8,
951 "source_fragment" : "egress_port_counter.count((bit<32>) standard_metadata.egress_port)"
952 }
Frank Wangd7e3b4b2017-09-24 13:37:54 +0900953 },
954 {
955 "op" : "assign",
956 "parameters" : [
957 {
958 "type" : "field",
959 "value" : ["scalars", "tmp_2"]
960 },
961 {
962 "type" : "expression",
963 "value" : {
964 "type" : "expression",
965 "value" : {
966 "op" : "&",
967 "left" : {
968 "type" : "field",
969 "value" : ["standard_metadata", "egress_port"]
970 },
971 "right" : {
972 "type" : "hexstr",
973 "value" : "0xffffffff"
974 }
975 }
976 }
977 }
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200978 ],
979 "source_info" : {
980 "filename" : "include/port_meters.p4",
981 "line" : 41,
982 "column" : 52,
983 "source_fragment" : "(bit<32>)standard_metadata.egress_port"
984 }
Frank Wangd7e3b4b2017-09-24 13:37:54 +0900985 },
986 {
987 "op" : "execute_meter",
988 "parameters" : [
989 {
990 "type" : "meter_array",
Carmelo Cascone81929aa2018-04-07 01:38:55 -0700991 "value" : "egress.port_meters_egress.egress_port_meter"
Frank Wangd7e3b4b2017-09-24 13:37:54 +0900992 },
993 {
994 "type" : "field",
995 "value" : ["scalars", "tmp_2"]
996 },
997 {
998 "type" : "field",
999 "value" : ["scalars", "port_meters_egress_egress_color_0"]
1000 }
1001 ],
1002 "source_info" : {
1003 "filename" : "include/port_meters.p4",
1004 "line" : 41,
1005 "column" : 8,
Keesjan Karsten23368892018-05-22 10:46:01 +00001006 "source_fragment" : "egress_port_meter.execute_meter<MeterColor>((bit<32>)standard_metadata.egress_port, egress_color)"
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001007 }
1008 }
1009 ]
1010 },
1011 {
Keesjan Karsten23368892018-05-22 10:46:01 +00001012 "name" : "act_6",
1013 "id" : 15,
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001014 "runtime_data" : [],
1015 "primitives" : [
1016 {
1017 "op" : "add_header",
1018 "parameters" : [
1019 {
1020 "type" : "header",
1021 "value" : "packet_in"
1022 }
1023 ],
1024 "source_info" : {
1025 "filename" : "include/packet_io.p4",
1026 "line" : 38,
1027 "column" : 12,
1028 "source_fragment" : "hdr.packet_in.setValid()"
1029 }
1030 },
1031 {
1032 "op" : "assign",
1033 "parameters" : [
1034 {
1035 "type" : "field",
1036 "value" : ["packet_in", "ingress_port"]
1037 },
1038 {
1039 "type" : "field",
1040 "value" : ["standard_metadata", "ingress_port"]
1041 }
1042 ],
1043 "source_info" : {
1044 "filename" : "include/packet_io.p4",
1045 "line" : 39,
1046 "column" : 12,
1047 "source_fragment" : "hdr.packet_in.ingress_port = standard_metadata.ingress_port"
1048 }
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001049 }
1050 ]
1051 }
1052 ],
1053 "pipelines" : [
1054 {
1055 "name" : "ingress",
1056 "id" : 0,
1057 "source_info" : {
1058 "filename" : "basic.p4",
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001059 "line" : 37,
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001060 "column" : 8,
1061 "source_fragment" : "ingress"
1062 },
1063 "init_table" : "tbl_act",
1064 "tables" : [
1065 {
1066 "name" : "tbl_act",
1067 "id" : 0,
1068 "key" : [],
1069 "match_type" : "exact",
1070 "type" : "simple",
1071 "max_size" : 1024,
1072 "with_counters" : false,
1073 "support_timeout" : false,
1074 "direct_meters" : null,
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001075 "action_ids" : [9],
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001076 "actions" : ["act_0"],
1077 "base_default_next" : "node_3",
1078 "next_tables" : {
1079 "act_0" : "node_3"
1080 },
1081 "default_entry" : {
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001082 "action_id" : 9,
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001083 "action_const" : true,
1084 "action_data" : [],
1085 "action_entry_const" : true
1086 }
1087 },
1088 {
1089 "name" : "tbl_act_0",
1090 "id" : 1,
1091 "key" : [],
1092 "match_type" : "exact",
1093 "type" : "simple",
1094 "max_size" : 1024,
1095 "with_counters" : false,
1096 "support_timeout" : false,
1097 "direct_meters" : null,
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001098 "action_ids" : [8],
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001099 "actions" : ["act"],
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001100 "base_default_next" : "node_5",
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001101 "next_tables" : {
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001102 "act" : "node_5"
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001103 },
1104 "default_entry" : {
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001105 "action_id" : 8,
1106 "action_const" : true,
1107 "action_data" : [],
1108 "action_entry_const" : true
1109 }
1110 },
1111 {
1112 "name" : "tbl_act_1",
1113 "id" : 2,
1114 "key" : [],
1115 "match_type" : "exact",
1116 "type" : "simple",
1117 "max_size" : 1024,
1118 "with_counters" : false,
1119 "support_timeout" : false,
1120 "direct_meters" : null,
1121 "action_ids" : [10],
1122 "actions" : ["act_1"],
1123 "base_default_next" : null,
1124 "next_tables" : {
1125 "act_1" : null
1126 },
1127 "default_entry" : {
1128 "action_id" : 10,
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001129 "action_const" : true,
1130 "action_data" : [],
1131 "action_entry_const" : true
1132 }
1133 },
1134 {
Carmelo Cascone81929aa2018-04-07 01:38:55 -07001135 "name" : "ingress.table0_control.table0",
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001136 "id" : 3,
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001137 "source_info" : {
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001138 "filename" : "include/table0.p4",
Keesjan Karsten23368892018-05-22 10:46:01 +00001139 "line" : 41,
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001140 "column" : 10,
1141 "source_fragment" : "table0"
1142 },
1143 "key" : [
1144 {
1145 "match_type" : "ternary",
Carmelo Cascone81929aa2018-04-07 01:38:55 -07001146 "name" : "standard_metadata.ingress_port",
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001147 "target" : ["standard_metadata", "ingress_port"],
1148 "mask" : null
1149 },
1150 {
1151 "match_type" : "ternary",
Carmelo Cascone81929aa2018-04-07 01:38:55 -07001152 "name" : "hdr.ethernet.src_addr",
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001153 "target" : ["ethernet", "src_addr"],
1154 "mask" : null
1155 },
1156 {
1157 "match_type" : "ternary",
Carmelo Cascone81929aa2018-04-07 01:38:55 -07001158 "name" : "hdr.ethernet.dst_addr",
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001159 "target" : ["ethernet", "dst_addr"],
1160 "mask" : null
1161 },
1162 {
1163 "match_type" : "ternary",
Carmelo Cascone81929aa2018-04-07 01:38:55 -07001164 "name" : "hdr.ethernet.ether_type",
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001165 "target" : ["ethernet", "ether_type"],
1166 "mask" : null
1167 },
1168 {
1169 "match_type" : "ternary",
Carmelo Cascone81929aa2018-04-07 01:38:55 -07001170 "name" : "hdr.ipv4.src_addr",
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001171 "target" : ["ipv4", "src_addr"],
1172 "mask" : null
1173 },
1174 {
1175 "match_type" : "ternary",
Carmelo Cascone81929aa2018-04-07 01:38:55 -07001176 "name" : "hdr.ipv4.dst_addr",
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001177 "target" : ["ipv4", "dst_addr"],
1178 "mask" : null
1179 },
1180 {
1181 "match_type" : "ternary",
Carmelo Cascone81929aa2018-04-07 01:38:55 -07001182 "name" : "hdr.ipv4.protocol",
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001183 "target" : ["ipv4", "protocol"],
1184 "mask" : null
1185 },
1186 {
1187 "match_type" : "ternary",
Carmelo Cascone81929aa2018-04-07 01:38:55 -07001188 "name" : "local_metadata.l4_src_port",
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001189 "target" : ["scalars", "local_metadata_t.l4_src_port"],
1190 "mask" : null
1191 },
1192 {
1193 "match_type" : "ternary",
Carmelo Cascone81929aa2018-04-07 01:38:55 -07001194 "name" : "local_metadata.l4_dst_port",
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001195 "target" : ["scalars", "local_metadata_t.l4_dst_port"],
1196 "mask" : null
1197 }
1198 ],
1199 "match_type" : "ternary",
1200 "type" : "simple",
1201 "max_size" : 1024,
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001202 "with_counters" : true,
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001203 "support_timeout" : false,
1204 "direct_meters" : null,
Keesjan Karsten23368892018-05-22 10:46:01 +00001205 "action_ids" : [5, 4, 3, 0],
1206 "actions" : ["ingress.table0_control.set_egress_port", "ingress.table0_control.send_to_cpu", "ingress.table0_control.set_next_hop_id", "_drop"],
1207 "base_default_next" : "tbl_act_2",
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001208 "next_tables" : {
Keesjan Karsten23368892018-05-22 10:46:01 +00001209 "ingress.table0_control.set_egress_port" : "tbl_act_2",
1210 "ingress.table0_control.send_to_cpu" : "tbl_act_2",
1211 "ingress.table0_control.set_next_hop_id" : "tbl_act_2",
1212 "_drop" : "tbl_act_2"
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001213 },
1214 "default_entry" : {
Keesjan Karsten23368892018-05-22 10:46:01 +00001215 "action_id" : 0,
1216 "action_const" : true,
1217 "action_data" : [],
1218 "action_entry_const" : true
1219 }
1220 },
1221 {
1222 "name" : "tbl_act_2",
1223 "id" : 4,
1224 "key" : [],
1225 "match_type" : "exact",
1226 "type" : "simple",
1227 "max_size" : 1024,
1228 "with_counters" : false,
1229 "support_timeout" : false,
1230 "direct_meters" : null,
1231 "action_ids" : [11],
1232 "actions" : ["act_2"],
1233 "base_default_next" : "ingress.host_meter_control.host_meter_table",
1234 "next_tables" : {
1235 "act_2" : "ingress.host_meter_control.host_meter_table"
1236 },
1237 "default_entry" : {
1238 "action_id" : 11,
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001239 "action_const" : true,
1240 "action_data" : [],
1241 "action_entry_const" : true
1242 }
1243 },
1244 {
Carmelo Cascone81929aa2018-04-07 01:38:55 -07001245 "name" : "ingress.host_meter_control.host_meter_table",
Keesjan Karsten23368892018-05-22 10:46:01 +00001246 "id" : 5,
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001247 "source_info" : {
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001248 "filename" : "include/host_meter_table.p4",
1249 "line" : 33,
1250 "column" : 10,
1251 "source_fragment" : "host_meter_table"
1252 },
1253 "key" : [
1254 {
1255 "match_type" : "lpm",
Carmelo Cascone81929aa2018-04-07 01:38:55 -07001256 "name" : "hdr.ethernet.src_addr",
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001257 "target" : ["ethernet", "src_addr"],
1258 "mask" : null
1259 }
1260 ],
1261 "match_type" : "lpm",
1262 "type" : "simple",
1263 "max_size" : 1024,
1264 "with_counters" : false,
1265 "support_timeout" : false,
Carmelo Cascone81929aa2018-04-07 01:38:55 -07001266 "direct_meters" : "ingress.host_meter_control.host_meter",
Keesjan Karsten23368892018-05-22 10:46:01 +00001267 "action_ids" : [6, 1],
Carmelo Cascone81929aa2018-04-07 01:38:55 -07001268 "actions" : ["ingress.host_meter_control.read_meter", "NoAction"],
Keesjan Karsten23368892018-05-22 10:46:01 +00001269 "base_default_next" : "node_10",
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001270 "next_tables" : {
Keesjan Karsten23368892018-05-22 10:46:01 +00001271 "ingress.host_meter_control.read_meter" : "node_10",
1272 "NoAction" : "node_10"
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001273 },
1274 "default_entry" : {
Keesjan Karsten23368892018-05-22 10:46:01 +00001275 "action_id" : 1,
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001276 "action_const" : false,
1277 "action_data" : [],
1278 "action_entry_const" : false
1279 }
1280 },
1281 {
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001282 "name" : "tbl_act_3",
1283 "id" : 6,
1284 "key" : [],
1285 "match_type" : "exact",
1286 "type" : "simple",
1287 "max_size" : 1024,
1288 "with_counters" : false,
1289 "support_timeout" : false,
1290 "direct_meters" : null,
1291 "action_ids" : [12],
1292 "actions" : ["act_3"],
Keesjan Karsten23368892018-05-22 10:46:01 +00001293 "base_default_next" : "node_12",
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001294 "next_tables" : {
Keesjan Karsten23368892018-05-22 10:46:01 +00001295 "act_3" : "node_12"
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001296 },
1297 "default_entry" : {
1298 "action_id" : 12,
1299 "action_const" : true,
1300 "action_data" : [],
1301 "action_entry_const" : true
1302 }
1303 },
1304 {
Carmelo Cascone81929aa2018-04-07 01:38:55 -07001305 "name" : "ingress.wcmp_control.wcmp_table",
Keesjan Karsten23368892018-05-22 10:46:01 +00001306 "id" : 7,
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001307 "source_info" : {
1308 "filename" : "include/wcmp.p4",
Keesjan Karsten23368892018-05-22 10:46:01 +00001309 "line" : 34,
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001310 "column" : 10,
1311 "source_fragment" : "wcmp_table"
1312 },
1313 "key" : [
1314 {
1315 "match_type" : "exact",
Carmelo Cascone81929aa2018-04-07 01:38:55 -07001316 "name" : "local_metadata.next_hop_id",
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001317 "target" : ["scalars", "local_metadata_t.next_hop_id"],
1318 "mask" : null
1319 }
1320 ],
1321 "match_type" : "exact",
1322 "type" : "indirect_ws",
Carmelo Cascone81929aa2018-04-07 01:38:55 -07001323 "action_profile" : "ingress.wcmp_control.wcmp_selector",
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001324 "max_size" : 1024,
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001325 "with_counters" : true,
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001326 "support_timeout" : false,
1327 "direct_meters" : null,
Keesjan Karsten23368892018-05-22 10:46:01 +00001328 "action_ids" : [7, 2],
1329 "actions" : ["ingress.wcmp_control.set_egress_port", "NoAction"],
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001330 "base_default_next" : null,
1331 "next_tables" : {
Keesjan Karsten23368892018-05-22 10:46:01 +00001332 "ingress.wcmp_control.set_egress_port" : null,
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001333 "NoAction" : null
1334 }
1335 }
1336 ],
1337 "action_profiles" : [
1338 {
Carmelo Cascone81929aa2018-04-07 01:38:55 -07001339 "name" : "ingress.wcmp_control.wcmp_selector",
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001340 "id" : 0,
1341 "max_size" : 64,
1342 "selector" : {
1343 "algo" : "crc16",
1344 "input" : [
1345 {
1346 "type" : "field",
1347 "value" : ["ipv4", "src_addr"]
1348 },
1349 {
1350 "type" : "field",
1351 "value" : ["ipv4", "dst_addr"]
1352 },
1353 {
1354 "type" : "field",
1355 "value" : ["ipv4", "protocol"]
1356 },
1357 {
1358 "type" : "field",
1359 "value" : ["scalars", "local_metadata_t.l4_src_port"]
1360 },
1361 {
1362 "type" : "field",
1363 "value" : ["scalars", "local_metadata_t.l4_dst_port"]
1364 }
1365 ]
1366 }
1367 }
1368 ],
1369 "conditionals" : [
1370 {
1371 "name" : "node_3",
1372 "id" : 0,
1373 "source_info" : {
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001374 "filename" : "include/port_meters.p4",
1375 "line" : 28,
1376 "column" : 12,
Keesjan Karsten23368892018-05-22 10:46:01 +00001377 "source_fragment" : "ingress_color == MeterColor_RED"
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001378 },
1379 "expression" : {
1380 "type" : "expression",
1381 "value" : {
1382 "op" : "==",
1383 "left" : {
1384 "type" : "field",
1385 "value" : ["scalars", "port_meters_ingress_ingress_color_0"]
1386 },
1387 "right" : {
1388 "type" : "hexstr",
Keesjan Karsten23368892018-05-22 10:46:01 +00001389 "value" : "0x02"
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001390 }
1391 }
1392 },
1393 "true_next" : "tbl_act_0",
1394 "false_next" : "node_5"
1395 },
1396 {
1397 "name" : "node_5",
1398 "id" : 1,
1399 "source_info" : {
1400 "filename" : "include/packet_io.p4",
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001401 "line" : 26,
1402 "column" : 12,
1403 "source_fragment" : "standard_metadata.ingress_port == CPU_PORT"
1404 },
1405 "expression" : {
1406 "type" : "expression",
1407 "value" : {
1408 "op" : "==",
1409 "left" : {
1410 "type" : "field",
1411 "value" : ["standard_metadata", "ingress_port"]
1412 },
1413 "right" : {
1414 "type" : "hexstr",
1415 "value" : "0x00ff"
1416 }
1417 }
1418 },
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001419 "true_next" : "tbl_act_1",
Carmelo Cascone81929aa2018-04-07 01:38:55 -07001420 "false_next" : "ingress.table0_control.table0"
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001421 },
1422 {
Keesjan Karsten23368892018-05-22 10:46:01 +00001423 "name" : "node_10",
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001424 "id" : 2,
Keesjan Karsten23368892018-05-22 10:46:01 +00001425 "source_info" : {
1426 "filename" : "include/host_meter_table.p4",
1427 "line" : 47,
1428 "column" : 12,
1429 "source_fragment" : "meter_tag == MeterColor_RED"
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001430 },
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001431 "expression" : {
1432 "type" : "expression",
1433 "value" : {
Keesjan Karsten23368892018-05-22 10:46:01 +00001434 "op" : "==",
1435 "left" : {
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001436 "type" : "field",
Keesjan Karsten23368892018-05-22 10:46:01 +00001437 "value" : ["scalars", "host_meter_control_meter_tag_0"]
1438 },
1439 "right" : {
1440 "type" : "hexstr",
1441 "value" : "0x02"
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001442 }
1443 }
1444 },
Keesjan Karsten23368892018-05-22 10:46:01 +00001445 "true_next" : "tbl_act_3",
1446 "false_next" : "node_12"
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001447 },
1448 {
Keesjan Karsten23368892018-05-22 10:46:01 +00001449 "name" : "node_12",
1450 "id" : 3,
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001451 "source_info" : {
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001452 "filename" : "include/wcmp.p4",
Keesjan Karsten23368892018-05-22 10:46:01 +00001453 "line" : 52,
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001454 "column" : 12,
1455 "source_fragment" : "local_metadata.next_hop_id != 0"
1456 },
1457 "expression" : {
1458 "type" : "expression",
1459 "value" : {
1460 "op" : "!=",
1461 "left" : {
1462 "type" : "field",
1463 "value" : ["scalars", "local_metadata_t.next_hop_id"]
1464 },
1465 "right" : {
1466 "type" : "hexstr",
1467 "value" : "0x0000"
1468 }
1469 }
1470 },
1471 "false_next" : null,
Carmelo Cascone81929aa2018-04-07 01:38:55 -07001472 "true_next" : "ingress.wcmp_control.wcmp_table"
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001473 }
1474 ]
1475 },
1476 {
1477 "name" : "egress",
1478 "id" : 1,
1479 "source_info" : {
1480 "filename" : "basic.p4",
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001481 "line" : 55,
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001482 "column" : 8,
1483 "source_fragment" : "egress"
1484 },
Keesjan Karsten23368892018-05-22 10:46:01 +00001485 "init_table" : "tbl_act_4",
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001486 "tables" : [
1487 {
Keesjan Karsten23368892018-05-22 10:46:01 +00001488 "name" : "tbl_act_4",
1489 "id" : 8,
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001490 "key" : [],
1491 "match_type" : "exact",
1492 "type" : "simple",
1493 "max_size" : 1024,
1494 "with_counters" : false,
1495 "support_timeout" : false,
1496 "direct_meters" : null,
Keesjan Karsten23368892018-05-22 10:46:01 +00001497 "action_ids" : [14],
1498 "actions" : ["act_5"],
1499 "base_default_next" : "node_17",
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001500 "next_tables" : {
Keesjan Karsten23368892018-05-22 10:46:01 +00001501 "act_5" : "node_17"
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001502 },
1503 "default_entry" : {
Keesjan Karsten23368892018-05-22 10:46:01 +00001504 "action_id" : 14,
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001505 "action_const" : true,
1506 "action_data" : [],
1507 "action_entry_const" : true
1508 }
1509 },
1510 {
Keesjan Karsten23368892018-05-22 10:46:01 +00001511 "name" : "tbl_act_5",
1512 "id" : 9,
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001513 "key" : [],
1514 "match_type" : "exact",
1515 "type" : "simple",
1516 "max_size" : 1024,
1517 "with_counters" : false,
1518 "support_timeout" : false,
1519 "direct_meters" : null,
Keesjan Karsten23368892018-05-22 10:46:01 +00001520 "action_ids" : [13],
1521 "actions" : ["act_4"],
1522 "base_default_next" : "node_19",
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001523 "next_tables" : {
Keesjan Karsten23368892018-05-22 10:46:01 +00001524 "act_4" : "node_19"
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001525 },
1526 "default_entry" : {
Keesjan Karsten23368892018-05-22 10:46:01 +00001527 "action_id" : 13,
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001528 "action_const" : true,
1529 "action_data" : [],
1530 "action_entry_const" : true
1531 }
1532 },
1533 {
Keesjan Karsten23368892018-05-22 10:46:01 +00001534 "name" : "tbl_act_6",
1535 "id" : 10,
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001536 "key" : [],
1537 "match_type" : "exact",
1538 "type" : "simple",
1539 "max_size" : 1024,
1540 "with_counters" : false,
1541 "support_timeout" : false,
1542 "direct_meters" : null,
Keesjan Karsten23368892018-05-22 10:46:01 +00001543 "action_ids" : [15],
1544 "actions" : ["act_6"],
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001545 "base_default_next" : null,
1546 "next_tables" : {
Keesjan Karsten23368892018-05-22 10:46:01 +00001547 "act_6" : null
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001548 },
1549 "default_entry" : {
Keesjan Karsten23368892018-05-22 10:46:01 +00001550 "action_id" : 15,
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001551 "action_const" : true,
1552 "action_data" : [],
1553 "action_entry_const" : true
1554 }
1555 }
1556 ],
1557 "action_profiles" : [],
1558 "conditionals" : [
1559 {
Keesjan Karsten23368892018-05-22 10:46:01 +00001560 "name" : "node_17",
1561 "id" : 4,
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001562 "source_info" : {
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001563 "filename" : "include/port_meters.p4",
1564 "line" : 42,
1565 "column" : 12,
Keesjan Karsten23368892018-05-22 10:46:01 +00001566 "source_fragment" : "egress_color == MeterColor_RED"
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001567 },
1568 "expression" : {
1569 "type" : "expression",
1570 "value" : {
1571 "op" : "==",
1572 "left" : {
1573 "type" : "field",
1574 "value" : ["scalars", "port_meters_egress_egress_color_0"]
1575 },
1576 "right" : {
1577 "type" : "hexstr",
Keesjan Karsten23368892018-05-22 10:46:01 +00001578 "value" : "0x02"
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001579 }
1580 }
1581 },
Keesjan Karsten23368892018-05-22 10:46:01 +00001582 "true_next" : "tbl_act_5",
1583 "false_next" : "node_19"
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001584 },
1585 {
Keesjan Karsten23368892018-05-22 10:46:01 +00001586 "name" : "node_19",
1587 "id" : 5,
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001588 "source_info" : {
1589 "filename" : "include/packet_io.p4",
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001590 "line" : 37,
1591 "column" : 12,
1592 "source_fragment" : "standard_metadata.egress_port == CPU_PORT"
1593 },
1594 "expression" : {
1595 "type" : "expression",
1596 "value" : {
1597 "op" : "==",
1598 "left" : {
1599 "type" : "field",
1600 "value" : ["standard_metadata", "egress_port"]
1601 },
1602 "right" : {
1603 "type" : "hexstr",
1604 "value" : "0x00ff"
1605 }
1606 }
1607 },
1608 "false_next" : null,
Keesjan Karsten23368892018-05-22 10:46:01 +00001609 "true_next" : "tbl_act_6"
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001610 }
1611 ]
1612 }
1613 ],
1614 "checksums" : [],
1615 "force_arith" : [],
1616 "extern_instances" : [],
1617 "field_aliases" : [
1618 [
1619 "queueing_metadata.enq_timestamp",
1620 ["standard_metadata", "enq_timestamp"]
1621 ],
1622 [
1623 "queueing_metadata.enq_qdepth",
1624 ["standard_metadata", "enq_qdepth"]
1625 ],
1626 [
1627 "queueing_metadata.deq_timedelta",
1628 ["standard_metadata", "deq_timedelta"]
1629 ],
1630 [
1631 "queueing_metadata.deq_qdepth",
1632 ["standard_metadata", "deq_qdepth"]
1633 ],
1634 [
1635 "intrinsic_metadata.ingress_global_timestamp",
1636 ["standard_metadata", "ingress_global_timestamp"]
1637 ],
1638 [
Carmelo Cascone81929aa2018-04-07 01:38:55 -07001639 "intrinsic_metadata.egress_global_timestamp",
1640 ["standard_metadata", "egress_global_timestamp"]
1641 ],
1642 [
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001643 "intrinsic_metadata.lf_field_list",
1644 ["standard_metadata", "lf_field_list"]
1645 ],
1646 [
1647 "intrinsic_metadata.mcast_grp",
1648 ["standard_metadata", "mcast_grp"]
1649 ],
1650 [
1651 "intrinsic_metadata.resubmit_flag",
1652 ["standard_metadata", "resubmit_flag"]
1653 ],
1654 [
1655 "intrinsic_metadata.egress_rid",
1656 ["standard_metadata", "egress_rid"]
Carmelo Cascone81929aa2018-04-07 01:38:55 -07001657 ],
1658 [
1659 "intrinsic_metadata.recirculate_flag",
1660 ["standard_metadata", "recirculate_flag"]
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001661 ]
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001662 ],
1663 "program" : "basic.p4",
1664 "__meta__" : {
1665 "version" : [2, 18],
1666 "compiler" : "https://github.com/p4lang/p4c"
1667 }
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001668}