blob: 9d68d47e0e536416e43f78f7637597014df93bbe [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],
Carmelo Cascone776be382018-12-12 19:03:57 -08009 ["port_meters_ingress_ingress_color", 8, false],
10 ["host_meter_control_meter_tag", 8, false],
Frank Wangd7e3b4b2017-09-24 13:37:54 +090011 ["tmp_1", 32, false],
12 ["tmp_2", 32, false],
Carmelo Cascone776be382018-12-12 19:03:57 -080013 ["port_meters_egress_egress_color", 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 Cascone03ae0ac2018-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 Cascone03ae0ac2018-10-11 08:31:59 -0700182 "errors" : [
Jonghwan Hyun6777d532018-11-18 20:50:16 +0900183 ["NoError", 0],
184 ["PacketTooShort", 1],
185 ["NoMatch", 2],
186 ["StackOutOfBounds", 3],
187 ["HeaderTooShort", 4],
188 ["ParserTimeout", 5]
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700189 ],
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",
Carmelo Cascone776be382018-12-12 19:03:57 -0800462 "result_target" : ["scalars", "host_meter_control_meter_tag"]
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 Cascone03ae0ac2018-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 Cascone03ae0ac2018-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" : [],
Jonghwan Hyun6777d532018-11-18 20:50:16 +0900530 "calculations" : [
531 {
532 "name" : "calc",
533 "id" : 0,
534 "source_info" : {
535 "filename" : "include/checksums.p4",
536 "line" : 32,
537 "column" : 8,
538 "source_fragment" : "update_checksum(hdr.ipv4.isValid(), ..."
539 },
540 "algo" : "csum16",
541 "input" : [
542 {
543 "type" : "field",
544 "value" : ["ipv4", "version"]
545 },
546 {
547 "type" : "field",
548 "value" : ["ipv4", "ihl"]
549 },
550 {
551 "type" : "field",
552 "value" : ["ipv4", "dscp"]
553 },
554 {
555 "type" : "field",
556 "value" : ["ipv4", "ecn"]
557 },
558 {
559 "type" : "field",
560 "value" : ["ipv4", "len"]
561 },
562 {
563 "type" : "field",
564 "value" : ["ipv4", "identification"]
565 },
566 {
567 "type" : "field",
568 "value" : ["ipv4", "flags"]
569 },
570 {
571 "type" : "field",
572 "value" : ["ipv4", "frag_offset"]
573 },
574 {
575 "type" : "field",
576 "value" : ["ipv4", "ttl"]
577 },
578 {
579 "type" : "field",
580 "value" : ["ipv4", "protocol"]
581 },
582 {
583 "type" : "field",
584 "value" : ["ipv4", "src_addr"]
585 },
586 {
587 "type" : "field",
588 "value" : ["ipv4", "dst_addr"]
589 }
590 ]
591 }
592 ],
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700593 "learn_lists" : [],
594 "actions" : [
595 {
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700596 "name" : "_drop",
Keesjan Karsten23368892018-05-22 10:46:01 +0000597 "id" : 0,
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700598 "runtime_data" : [],
599 "primitives" : [
600 {
601 "op" : "drop",
602 "parameters" : [],
603 "source_info" : {
Frank Wangd7e3b4b2017-09-24 13:37:54 +0900604 "filename" : "include/actions.p4",
Keesjan Karsten23368892018-05-22 10:46:01 +0000605 "line" : 24,
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700606 "column" : 4,
607 "source_fragment" : "mark_to_drop()"
608 }
609 }
610 ]
611 },
612 {
613 "name" : "NoAction",
Keesjan Karsten23368892018-05-22 10:46:01 +0000614 "id" : 1,
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700615 "runtime_data" : [],
616 "primitives" : []
617 },
618 {
Frank Wangd7e3b4b2017-09-24 13:37:54 +0900619 "name" : "NoAction",
Keesjan Karsten23368892018-05-22 10:46:01 +0000620 "id" : 2,
Frank Wangd7e3b4b2017-09-24 13:37:54 +0900621 "runtime_data" : [],
622 "primitives" : []
623 },
624 {
Carmelo Cascone81929aa2018-04-07 01:38:55 -0700625 "name" : "ingress.table0_control.set_next_hop_id",
Keesjan Karsten23368892018-05-22 10:46:01 +0000626 "id" : 3,
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700627 "runtime_data" : [
628 {
629 "name" : "next_hop_id",
630 "bitwidth" : 16
631 }
632 ],
633 "primitives" : [
634 {
635 "op" : "assign",
636 "parameters" : [
637 {
638 "type" : "field",
639 "value" : ["scalars", "local_metadata_t.next_hop_id"]
640 },
641 {
642 "type" : "runtime_data",
643 "value" : 0
644 }
645 ],
646 "source_info" : {
Frank Wangd7e3b4b2017-09-24 13:37:54 +0900647 "filename" : "include/table0.p4",
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700648 "line" : 30,
649 "column" : 8,
650 "source_fragment" : "local_metadata.next_hop_id = next_hop_id"
651 }
652 }
653 ]
654 },
655 {
Keesjan Karsten23368892018-05-22 10:46:01 +0000656 "name" : "ingress.table0_control.send_to_cpu",
657 "id" : 4,
658 "runtime_data" : [],
659 "primitives" : [
660 {
661 "op" : "assign",
662 "parameters" : [
663 {
664 "type" : "field",
665 "value" : ["standard_metadata", "egress_spec"]
666 },
667 {
668 "type" : "hexstr",
669 "value" : "0x00ff"
670 }
671 ],
672 "source_info" : {
673 "filename" : "include/defines.p4",
Jonghwan Hyun6777d532018-11-18 20:50:16 +0900674 "line" : 34,
Keesjan Karsten23368892018-05-22 10:46:01 +0000675 "column" : 24,
676 "source_fragment" : "255; ..."
677 }
678 }
679 ]
680 },
681 {
682 "name" : "ingress.table0_control.set_egress_port",
683 "id" : 5,
684 "runtime_data" : [
685 {
686 "name" : "port",
687 "bitwidth" : 9
688 }
689 ],
690 "primitives" : [
691 {
692 "op" : "assign",
693 "parameters" : [
694 {
695 "type" : "field",
696 "value" : ["standard_metadata", "egress_spec"]
697 },
698 {
699 "type" : "runtime_data",
700 "value" : 0
701 }
702 ],
703 "source_info" : {
704 "filename" : "include/table0.p4",
705 "line" : 38,
706 "column" : 8,
707 "source_fragment" : "standard_metadata.egress_spec = port"
708 }
709 }
710 ]
711 },
712 {
Carmelo Cascone81929aa2018-04-07 01:38:55 -0700713 "name" : "ingress.host_meter_control.read_meter",
Keesjan Karsten23368892018-05-22 10:46:01 +0000714 "id" : 6,
Frank Wangd7e3b4b2017-09-24 13:37:54 +0900715 "runtime_data" : [],
716 "primitives" : []
717 },
718 {
Keesjan Karsten23368892018-05-22 10:46:01 +0000719 "name" : "ingress.wcmp_control.set_egress_port",
720 "id" : 7,
721 "runtime_data" : [
722 {
723 "name" : "port",
724 "bitwidth" : 9
725 }
726 ],
727 "primitives" : [
728 {
729 "op" : "assign",
730 "parameters" : [
731 {
732 "type" : "field",
733 "value" : ["standard_metadata", "egress_spec"]
734 },
735 {
736 "type" : "runtime_data",
737 "value" : 0
738 }
739 ],
740 "source_info" : {
741 "filename" : "include/wcmp.p4",
742 "line" : 31,
743 "column" : 8,
744 "source_fragment" : "standard_metadata.egress_spec = port"
745 }
746 }
747 ]
748 },
749 {
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700750 "name" : "act",
Frank Wangd7e3b4b2017-09-24 13:37:54 +0900751 "id" : 8,
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700752 "runtime_data" : [],
753 "primitives" : [
754 {
Frank Wangd7e3b4b2017-09-24 13:37:54 +0900755 "op" : "drop",
756 "parameters" : [],
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700757 "source_info" : {
Frank Wangd7e3b4b2017-09-24 13:37:54 +0900758 "filename" : "include/port_meters.p4",
759 "line" : 29,
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700760 "column" : 12,
Frank Wangd7e3b4b2017-09-24 13:37:54 +0900761 "source_fragment" : "mark_to_drop()"
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700762 }
763 }
764 ]
765 },
766 {
767 "name" : "act_0",
Frank Wangd7e3b4b2017-09-24 13:37:54 +0900768 "id" : 9,
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700769 "runtime_data" : [],
770 "primitives" : [
771 {
772 "op" : "assign",
773 "parameters" : [
774 {
775 "type" : "field",
776 "value" : ["scalars", "tmp"]
777 },
778 {
779 "type" : "expression",
780 "value" : {
781 "type" : "expression",
782 "value" : {
783 "op" : "&",
784 "left" : {
785 "type" : "field",
786 "value" : ["standard_metadata", "ingress_port"]
787 },
788 "right" : {
789 "type" : "hexstr",
790 "value" : "0xffffffff"
791 }
792 }
793 }
794 }
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200795 ],
796 "source_info" : {
797 "filename" : "include/port_counters.p4",
798 "line" : 29,
799 "column" : 35,
800 "source_fragment" : "(bit<32>) standard_metadata.ingress_port"
801 }
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700802 },
803 {
804 "op" : "count",
805 "parameters" : [
806 {
807 "type" : "counter_array",
Carmelo Cascone81929aa2018-04-07 01:38:55 -0700808 "value" : "ingress.port_counters_ingress.ingress_port_counter"
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700809 },
810 {
811 "type" : "field",
812 "value" : ["scalars", "tmp"]
813 }
814 ],
815 "source_info" : {
Frank Wangd7e3b4b2017-09-24 13:37:54 +0900816 "filename" : "include/port_counters.p4",
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700817 "line" : 29,
818 "column" : 8,
819 "source_fragment" : "ingress_port_counter.count((bit<32>) standard_metadata.ingress_port)"
820 }
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700821 },
822 {
823 "op" : "assign",
824 "parameters" : [
825 {
826 "type" : "field",
Frank Wangd7e3b4b2017-09-24 13:37:54 +0900827 "value" : ["scalars", "tmp_0"]
828 },
829 {
830 "type" : "expression",
831 "value" : {
832 "type" : "expression",
833 "value" : {
834 "op" : "&",
835 "left" : {
836 "type" : "field",
837 "value" : ["standard_metadata", "ingress_port"]
838 },
839 "right" : {
840 "type" : "hexstr",
841 "value" : "0xffffffff"
842 }
843 }
844 }
845 }
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200846 ],
847 "source_info" : {
848 "filename" : "include/port_meters.p4",
849 "line" : 27,
850 "column" : 53,
851 "source_fragment" : "(bit<32>)standard_metadata.ingress_port"
852 }
Frank Wangd7e3b4b2017-09-24 13:37:54 +0900853 },
854 {
855 "op" : "execute_meter",
856 "parameters" : [
857 {
858 "type" : "meter_array",
Carmelo Cascone81929aa2018-04-07 01:38:55 -0700859 "value" : "ingress.port_meters_ingress.ingress_port_meter"
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700860 },
861 {
862 "type" : "field",
Frank Wangd7e3b4b2017-09-24 13:37:54 +0900863 "value" : ["scalars", "tmp_0"]
864 },
865 {
866 "type" : "field",
Carmelo Cascone776be382018-12-12 19:03:57 -0800867 "value" : ["scalars", "port_meters_ingress_ingress_color"]
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700868 }
869 ],
870 "source_info" : {
Frank Wangd7e3b4b2017-09-24 13:37:54 +0900871 "filename" : "include/port_meters.p4",
872 "line" : 27,
873 "column" : 8,
Keesjan Karsten23368892018-05-22 10:46:01 +0000874 "source_fragment" : "ingress_port_meter.execute_meter<MeterColor>((bit<32>)standard_metadata.ingress_port, ingress_color)"
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700875 }
876 }
877 ]
878 },
879 {
Frank Wangd7e3b4b2017-09-24 13:37:54 +0900880 "name" : "act_1",
881 "id" : 10,
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700882 "runtime_data" : [],
883 "primitives" : [
884 {
885 "op" : "assign",
886 "parameters" : [
887 {
888 "type" : "field",
Frank Wangd7e3b4b2017-09-24 13:37:54 +0900889 "value" : ["standard_metadata", "egress_spec"]
890 },
891 {
892 "type" : "field",
893 "value" : ["packet_out", "egress_port"]
894 }
895 ],
896 "source_info" : {
897 "filename" : "include/packet_io.p4",
898 "line" : 27,
899 "column" : 12,
900 "source_fragment" : "standard_metadata.egress_spec = hdr.packet_out.egress_port"
901 }
902 },
903 {
904 "op" : "remove_header",
905 "parameters" : [
906 {
907 "type" : "header",
908 "value" : "packet_out"
909 }
910 ],
911 "source_info" : {
912 "filename" : "include/packet_io.p4",
913 "line" : 28,
914 "column" : 12,
915 "source_fragment" : "hdr.packet_out.setInvalid()"
916 }
917 }
918 ]
919 },
920 {
921 "name" : "act_2",
922 "id" : 11,
923 "runtime_data" : [],
924 "primitives" : [
925 {
926 "op" : "assign",
927 "parameters" : [
928 {
929 "type" : "field",
Carmelo Cascone776be382018-12-12 19:03:57 -0800930 "value" : ["scalars", "host_meter_control_meter_tag"]
Frank Wangd7e3b4b2017-09-24 13:37:54 +0900931 },
932 {
Keesjan Karsten23368892018-05-22 10:46:01 +0000933 "type" : "hexstr",
934 "value" : "0x00"
Frank Wangd7e3b4b2017-09-24 13:37:54 +0900935 }
Keesjan Karsten23368892018-05-22 10:46:01 +0000936 ],
937 "source_info" : {
938 "filename" : "include/defines.p4",
Jonghwan Hyun6777d532018-11-18 20:50:16 +0900939 "line" : 37,
Keesjan Karsten23368892018-05-22 10:46:01 +0000940 "column" : 36,
941 "source_fragment" : "8w0; ..."
942 }
Frank Wangd7e3b4b2017-09-24 13:37:54 +0900943 }
944 ]
945 },
946 {
947 "name" : "act_3",
948 "id" : 12,
949 "runtime_data" : [],
950 "primitives" : [
951 {
Frank Wangd7e3b4b2017-09-24 13:37:54 +0900952 "op" : "drop",
953 "parameters" : [],
954 "source_info" : {
955 "filename" : "include/host_meter_table.p4",
Keesjan Karsten23368892018-05-22 10:46:01 +0000956 "line" : 48,
Frank Wangd7e3b4b2017-09-24 13:37:54 +0900957 "column" : 12,
958 "source_fragment" : "mark_to_drop()"
959 }
960 }
961 ]
962 },
963 {
Keesjan Karsten23368892018-05-22 10:46:01 +0000964 "name" : "act_4",
965 "id" : 13,
Frank Wangd7e3b4b2017-09-24 13:37:54 +0900966 "runtime_data" : [],
967 "primitives" : [
968 {
969 "op" : "drop",
970 "parameters" : [],
971 "source_info" : {
972 "filename" : "include/port_meters.p4",
973 "line" : 43,
974 "column" : 12,
975 "source_fragment" : "mark_to_drop()"
976 }
977 }
978 ]
979 },
980 {
Keesjan Karsten23368892018-05-22 10:46:01 +0000981 "name" : "act_5",
982 "id" : 14,
Frank Wangd7e3b4b2017-09-24 13:37:54 +0900983 "runtime_data" : [],
984 "primitives" : [
985 {
986 "op" : "assign",
987 "parameters" : [
988 {
989 "type" : "field",
990 "value" : ["scalars", "tmp_1"]
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700991 },
992 {
993 "type" : "expression",
994 "value" : {
995 "type" : "expression",
996 "value" : {
997 "op" : "&",
998 "left" : {
999 "type" : "field",
1000 "value" : ["standard_metadata", "egress_port"]
1001 },
1002 "right" : {
1003 "type" : "hexstr",
1004 "value" : "0xffffffff"
1005 }
1006 }
1007 }
1008 }
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001009 ],
1010 "source_info" : {
1011 "filename" : "include/port_counters.p4",
1012 "line" : 39,
1013 "column" : 34,
1014 "source_fragment" : "(bit<32>) standard_metadata.egress_port"
1015 }
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001016 },
1017 {
1018 "op" : "count",
1019 "parameters" : [
1020 {
1021 "type" : "counter_array",
Carmelo Cascone81929aa2018-04-07 01:38:55 -07001022 "value" : "egress.port_counters_egress.egress_port_counter"
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001023 },
1024 {
1025 "type" : "field",
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001026 "value" : ["scalars", "tmp_1"]
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001027 }
1028 ],
1029 "source_info" : {
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001030 "filename" : "include/port_counters.p4",
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001031 "line" : 39,
1032 "column" : 8,
1033 "source_fragment" : "egress_port_counter.count((bit<32>) standard_metadata.egress_port)"
1034 }
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001035 },
1036 {
1037 "op" : "assign",
1038 "parameters" : [
1039 {
1040 "type" : "field",
1041 "value" : ["scalars", "tmp_2"]
1042 },
1043 {
1044 "type" : "expression",
1045 "value" : {
1046 "type" : "expression",
1047 "value" : {
1048 "op" : "&",
1049 "left" : {
1050 "type" : "field",
1051 "value" : ["standard_metadata", "egress_port"]
1052 },
1053 "right" : {
1054 "type" : "hexstr",
1055 "value" : "0xffffffff"
1056 }
1057 }
1058 }
1059 }
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001060 ],
1061 "source_info" : {
1062 "filename" : "include/port_meters.p4",
1063 "line" : 41,
1064 "column" : 52,
1065 "source_fragment" : "(bit<32>)standard_metadata.egress_port"
1066 }
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001067 },
1068 {
1069 "op" : "execute_meter",
1070 "parameters" : [
1071 {
1072 "type" : "meter_array",
Carmelo Cascone81929aa2018-04-07 01:38:55 -07001073 "value" : "egress.port_meters_egress.egress_port_meter"
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001074 },
1075 {
1076 "type" : "field",
1077 "value" : ["scalars", "tmp_2"]
1078 },
1079 {
1080 "type" : "field",
Carmelo Cascone776be382018-12-12 19:03:57 -08001081 "value" : ["scalars", "port_meters_egress_egress_color"]
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001082 }
1083 ],
1084 "source_info" : {
1085 "filename" : "include/port_meters.p4",
1086 "line" : 41,
1087 "column" : 8,
Keesjan Karsten23368892018-05-22 10:46:01 +00001088 "source_fragment" : "egress_port_meter.execute_meter<MeterColor>((bit<32>)standard_metadata.egress_port, egress_color)"
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001089 }
1090 }
1091 ]
1092 },
1093 {
Keesjan Karsten23368892018-05-22 10:46:01 +00001094 "name" : "act_6",
1095 "id" : 15,
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001096 "runtime_data" : [],
1097 "primitives" : [
1098 {
1099 "op" : "add_header",
1100 "parameters" : [
1101 {
1102 "type" : "header",
1103 "value" : "packet_in"
1104 }
1105 ],
1106 "source_info" : {
1107 "filename" : "include/packet_io.p4",
1108 "line" : 38,
1109 "column" : 12,
1110 "source_fragment" : "hdr.packet_in.setValid()"
1111 }
1112 },
1113 {
1114 "op" : "assign",
1115 "parameters" : [
1116 {
1117 "type" : "field",
1118 "value" : ["packet_in", "ingress_port"]
1119 },
1120 {
1121 "type" : "field",
1122 "value" : ["standard_metadata", "ingress_port"]
1123 }
1124 ],
1125 "source_info" : {
1126 "filename" : "include/packet_io.p4",
1127 "line" : 39,
1128 "column" : 12,
1129 "source_fragment" : "hdr.packet_in.ingress_port = standard_metadata.ingress_port"
1130 }
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001131 }
1132 ]
1133 }
1134 ],
1135 "pipelines" : [
1136 {
1137 "name" : "ingress",
1138 "id" : 0,
1139 "source_info" : {
1140 "filename" : "basic.p4",
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001141 "line" : 37,
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001142 "column" : 8,
1143 "source_fragment" : "ingress"
1144 },
1145 "init_table" : "tbl_act",
1146 "tables" : [
1147 {
1148 "name" : "tbl_act",
1149 "id" : 0,
1150 "key" : [],
1151 "match_type" : "exact",
1152 "type" : "simple",
1153 "max_size" : 1024,
1154 "with_counters" : false,
1155 "support_timeout" : false,
1156 "direct_meters" : null,
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001157 "action_ids" : [9],
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001158 "actions" : ["act_0"],
1159 "base_default_next" : "node_3",
1160 "next_tables" : {
1161 "act_0" : "node_3"
1162 },
1163 "default_entry" : {
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001164 "action_id" : 9,
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001165 "action_const" : true,
1166 "action_data" : [],
1167 "action_entry_const" : true
1168 }
1169 },
1170 {
1171 "name" : "tbl_act_0",
1172 "id" : 1,
1173 "key" : [],
1174 "match_type" : "exact",
1175 "type" : "simple",
1176 "max_size" : 1024,
1177 "with_counters" : false,
1178 "support_timeout" : false,
1179 "direct_meters" : null,
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001180 "action_ids" : [8],
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001181 "actions" : ["act"],
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001182 "base_default_next" : "node_5",
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001183 "next_tables" : {
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001184 "act" : "node_5"
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001185 },
1186 "default_entry" : {
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001187 "action_id" : 8,
1188 "action_const" : true,
1189 "action_data" : [],
1190 "action_entry_const" : true
1191 }
1192 },
1193 {
1194 "name" : "tbl_act_1",
1195 "id" : 2,
1196 "key" : [],
1197 "match_type" : "exact",
1198 "type" : "simple",
1199 "max_size" : 1024,
1200 "with_counters" : false,
1201 "support_timeout" : false,
1202 "direct_meters" : null,
1203 "action_ids" : [10],
1204 "actions" : ["act_1"],
1205 "base_default_next" : null,
1206 "next_tables" : {
1207 "act_1" : null
1208 },
1209 "default_entry" : {
1210 "action_id" : 10,
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001211 "action_const" : true,
1212 "action_data" : [],
1213 "action_entry_const" : true
1214 }
1215 },
1216 {
Carmelo Cascone81929aa2018-04-07 01:38:55 -07001217 "name" : "ingress.table0_control.table0",
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001218 "id" : 3,
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001219 "source_info" : {
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001220 "filename" : "include/table0.p4",
Keesjan Karsten23368892018-05-22 10:46:01 +00001221 "line" : 41,
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001222 "column" : 10,
1223 "source_fragment" : "table0"
1224 },
1225 "key" : [
1226 {
1227 "match_type" : "ternary",
Carmelo Cascone81929aa2018-04-07 01:38:55 -07001228 "name" : "standard_metadata.ingress_port",
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001229 "target" : ["standard_metadata", "ingress_port"],
1230 "mask" : null
1231 },
1232 {
1233 "match_type" : "ternary",
Carmelo Cascone81929aa2018-04-07 01:38:55 -07001234 "name" : "hdr.ethernet.src_addr",
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001235 "target" : ["ethernet", "src_addr"],
1236 "mask" : null
1237 },
1238 {
1239 "match_type" : "ternary",
Carmelo Cascone81929aa2018-04-07 01:38:55 -07001240 "name" : "hdr.ethernet.dst_addr",
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001241 "target" : ["ethernet", "dst_addr"],
1242 "mask" : null
1243 },
1244 {
1245 "match_type" : "ternary",
Carmelo Cascone81929aa2018-04-07 01:38:55 -07001246 "name" : "hdr.ethernet.ether_type",
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001247 "target" : ["ethernet", "ether_type"],
1248 "mask" : null
1249 },
1250 {
1251 "match_type" : "ternary",
Carmelo Cascone81929aa2018-04-07 01:38:55 -07001252 "name" : "hdr.ipv4.src_addr",
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001253 "target" : ["ipv4", "src_addr"],
1254 "mask" : null
1255 },
1256 {
1257 "match_type" : "ternary",
Carmelo Cascone81929aa2018-04-07 01:38:55 -07001258 "name" : "hdr.ipv4.dst_addr",
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001259 "target" : ["ipv4", "dst_addr"],
1260 "mask" : null
1261 },
1262 {
1263 "match_type" : "ternary",
Carmelo Cascone81929aa2018-04-07 01:38:55 -07001264 "name" : "hdr.ipv4.protocol",
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001265 "target" : ["ipv4", "protocol"],
1266 "mask" : null
1267 },
1268 {
1269 "match_type" : "ternary",
Carmelo Cascone81929aa2018-04-07 01:38:55 -07001270 "name" : "local_metadata.l4_src_port",
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001271 "target" : ["scalars", "local_metadata_t.l4_src_port"],
1272 "mask" : null
1273 },
1274 {
1275 "match_type" : "ternary",
Carmelo Cascone81929aa2018-04-07 01:38:55 -07001276 "name" : "local_metadata.l4_dst_port",
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001277 "target" : ["scalars", "local_metadata_t.l4_dst_port"],
1278 "mask" : null
1279 }
1280 ],
1281 "match_type" : "ternary",
1282 "type" : "simple",
1283 "max_size" : 1024,
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001284 "with_counters" : true,
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001285 "support_timeout" : false,
1286 "direct_meters" : null,
Keesjan Karsten23368892018-05-22 10:46:01 +00001287 "action_ids" : [5, 4, 3, 0],
1288 "actions" : ["ingress.table0_control.set_egress_port", "ingress.table0_control.send_to_cpu", "ingress.table0_control.set_next_hop_id", "_drop"],
1289 "base_default_next" : "tbl_act_2",
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001290 "next_tables" : {
Keesjan Karsten23368892018-05-22 10:46:01 +00001291 "ingress.table0_control.set_egress_port" : "tbl_act_2",
1292 "ingress.table0_control.send_to_cpu" : "tbl_act_2",
1293 "ingress.table0_control.set_next_hop_id" : "tbl_act_2",
1294 "_drop" : "tbl_act_2"
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001295 },
1296 "default_entry" : {
Keesjan Karsten23368892018-05-22 10:46:01 +00001297 "action_id" : 0,
1298 "action_const" : true,
1299 "action_data" : [],
1300 "action_entry_const" : true
1301 }
1302 },
1303 {
1304 "name" : "tbl_act_2",
1305 "id" : 4,
1306 "key" : [],
1307 "match_type" : "exact",
1308 "type" : "simple",
1309 "max_size" : 1024,
1310 "with_counters" : false,
1311 "support_timeout" : false,
1312 "direct_meters" : null,
1313 "action_ids" : [11],
1314 "actions" : ["act_2"],
1315 "base_default_next" : "ingress.host_meter_control.host_meter_table",
1316 "next_tables" : {
1317 "act_2" : "ingress.host_meter_control.host_meter_table"
1318 },
1319 "default_entry" : {
1320 "action_id" : 11,
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001321 "action_const" : true,
1322 "action_data" : [],
1323 "action_entry_const" : true
1324 }
1325 },
1326 {
Carmelo Cascone81929aa2018-04-07 01:38:55 -07001327 "name" : "ingress.host_meter_control.host_meter_table",
Keesjan Karsten23368892018-05-22 10:46:01 +00001328 "id" : 5,
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001329 "source_info" : {
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001330 "filename" : "include/host_meter_table.p4",
1331 "line" : 33,
1332 "column" : 10,
1333 "source_fragment" : "host_meter_table"
1334 },
1335 "key" : [
1336 {
1337 "match_type" : "lpm",
Carmelo Cascone81929aa2018-04-07 01:38:55 -07001338 "name" : "hdr.ethernet.src_addr",
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001339 "target" : ["ethernet", "src_addr"],
1340 "mask" : null
1341 }
1342 ],
1343 "match_type" : "lpm",
1344 "type" : "simple",
1345 "max_size" : 1024,
1346 "with_counters" : false,
1347 "support_timeout" : false,
Carmelo Cascone81929aa2018-04-07 01:38:55 -07001348 "direct_meters" : "ingress.host_meter_control.host_meter",
Keesjan Karsten23368892018-05-22 10:46:01 +00001349 "action_ids" : [6, 1],
Carmelo Cascone81929aa2018-04-07 01:38:55 -07001350 "actions" : ["ingress.host_meter_control.read_meter", "NoAction"],
Keesjan Karsten23368892018-05-22 10:46:01 +00001351 "base_default_next" : "node_10",
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001352 "next_tables" : {
Keesjan Karsten23368892018-05-22 10:46:01 +00001353 "ingress.host_meter_control.read_meter" : "node_10",
1354 "NoAction" : "node_10"
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001355 },
1356 "default_entry" : {
Keesjan Karsten23368892018-05-22 10:46:01 +00001357 "action_id" : 1,
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001358 "action_const" : false,
1359 "action_data" : [],
1360 "action_entry_const" : false
1361 }
1362 },
1363 {
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001364 "name" : "tbl_act_3",
1365 "id" : 6,
1366 "key" : [],
1367 "match_type" : "exact",
1368 "type" : "simple",
1369 "max_size" : 1024,
1370 "with_counters" : false,
1371 "support_timeout" : false,
1372 "direct_meters" : null,
1373 "action_ids" : [12],
1374 "actions" : ["act_3"],
Keesjan Karsten23368892018-05-22 10:46:01 +00001375 "base_default_next" : "node_12",
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001376 "next_tables" : {
Keesjan Karsten23368892018-05-22 10:46:01 +00001377 "act_3" : "node_12"
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001378 },
1379 "default_entry" : {
1380 "action_id" : 12,
1381 "action_const" : true,
1382 "action_data" : [],
1383 "action_entry_const" : true
1384 }
1385 },
1386 {
Carmelo Cascone81929aa2018-04-07 01:38:55 -07001387 "name" : "ingress.wcmp_control.wcmp_table",
Keesjan Karsten23368892018-05-22 10:46:01 +00001388 "id" : 7,
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001389 "source_info" : {
1390 "filename" : "include/wcmp.p4",
Keesjan Karsten23368892018-05-22 10:46:01 +00001391 "line" : 34,
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001392 "column" : 10,
1393 "source_fragment" : "wcmp_table"
1394 },
1395 "key" : [
1396 {
1397 "match_type" : "exact",
Carmelo Cascone81929aa2018-04-07 01:38:55 -07001398 "name" : "local_metadata.next_hop_id",
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001399 "target" : ["scalars", "local_metadata_t.next_hop_id"],
1400 "mask" : null
1401 }
1402 ],
1403 "match_type" : "exact",
1404 "type" : "indirect_ws",
Carmelo Cascone81929aa2018-04-07 01:38:55 -07001405 "action_profile" : "ingress.wcmp_control.wcmp_selector",
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001406 "max_size" : 1024,
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001407 "with_counters" : true,
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001408 "support_timeout" : false,
1409 "direct_meters" : null,
Keesjan Karsten23368892018-05-22 10:46:01 +00001410 "action_ids" : [7, 2],
1411 "actions" : ["ingress.wcmp_control.set_egress_port", "NoAction"],
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001412 "base_default_next" : null,
1413 "next_tables" : {
Keesjan Karsten23368892018-05-22 10:46:01 +00001414 "ingress.wcmp_control.set_egress_port" : null,
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001415 "NoAction" : null
1416 }
1417 }
1418 ],
1419 "action_profiles" : [
1420 {
Carmelo Cascone81929aa2018-04-07 01:38:55 -07001421 "name" : "ingress.wcmp_control.wcmp_selector",
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001422 "id" : 0,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001423 "source_info" : {
1424 "filename" : "include/wcmp.p4",
1425 "line" : 28,
1426 "column" : 55,
1427 "source_fragment" : "wcmp_selector"
1428 },
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001429 "max_size" : 64,
1430 "selector" : {
1431 "algo" : "crc16",
1432 "input" : [
1433 {
1434 "type" : "field",
1435 "value" : ["ipv4", "src_addr"]
1436 },
1437 {
1438 "type" : "field",
1439 "value" : ["ipv4", "dst_addr"]
1440 },
1441 {
1442 "type" : "field",
1443 "value" : ["ipv4", "protocol"]
1444 },
1445 {
1446 "type" : "field",
1447 "value" : ["scalars", "local_metadata_t.l4_src_port"]
1448 },
1449 {
1450 "type" : "field",
1451 "value" : ["scalars", "local_metadata_t.l4_dst_port"]
1452 }
1453 ]
1454 }
1455 }
1456 ],
1457 "conditionals" : [
1458 {
1459 "name" : "node_3",
1460 "id" : 0,
1461 "source_info" : {
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001462 "filename" : "include/port_meters.p4",
1463 "line" : 28,
1464 "column" : 12,
Keesjan Karsten23368892018-05-22 10:46:01 +00001465 "source_fragment" : "ingress_color == MeterColor_RED"
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001466 },
1467 "expression" : {
1468 "type" : "expression",
1469 "value" : {
1470 "op" : "==",
1471 "left" : {
1472 "type" : "field",
Carmelo Cascone776be382018-12-12 19:03:57 -08001473 "value" : ["scalars", "port_meters_ingress_ingress_color"]
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001474 },
1475 "right" : {
1476 "type" : "hexstr",
Keesjan Karsten23368892018-05-22 10:46:01 +00001477 "value" : "0x02"
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001478 }
1479 }
1480 },
1481 "true_next" : "tbl_act_0",
1482 "false_next" : "node_5"
1483 },
1484 {
1485 "name" : "node_5",
1486 "id" : 1,
1487 "source_info" : {
1488 "filename" : "include/packet_io.p4",
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001489 "line" : 26,
1490 "column" : 12,
1491 "source_fragment" : "standard_metadata.ingress_port == CPU_PORT"
1492 },
1493 "expression" : {
1494 "type" : "expression",
1495 "value" : {
1496 "op" : "==",
1497 "left" : {
1498 "type" : "field",
1499 "value" : ["standard_metadata", "ingress_port"]
1500 },
1501 "right" : {
1502 "type" : "hexstr",
1503 "value" : "0x00ff"
1504 }
1505 }
1506 },
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001507 "true_next" : "tbl_act_1",
Carmelo Cascone81929aa2018-04-07 01:38:55 -07001508 "false_next" : "ingress.table0_control.table0"
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001509 },
1510 {
Keesjan Karsten23368892018-05-22 10:46:01 +00001511 "name" : "node_10",
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001512 "id" : 2,
Keesjan Karsten23368892018-05-22 10:46:01 +00001513 "source_info" : {
1514 "filename" : "include/host_meter_table.p4",
1515 "line" : 47,
1516 "column" : 12,
1517 "source_fragment" : "meter_tag == MeterColor_RED"
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001518 },
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001519 "expression" : {
1520 "type" : "expression",
1521 "value" : {
Keesjan Karsten23368892018-05-22 10:46:01 +00001522 "op" : "==",
1523 "left" : {
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001524 "type" : "field",
Carmelo Cascone776be382018-12-12 19:03:57 -08001525 "value" : ["scalars", "host_meter_control_meter_tag"]
Keesjan Karsten23368892018-05-22 10:46:01 +00001526 },
1527 "right" : {
1528 "type" : "hexstr",
1529 "value" : "0x02"
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001530 }
1531 }
1532 },
Keesjan Karsten23368892018-05-22 10:46:01 +00001533 "true_next" : "tbl_act_3",
1534 "false_next" : "node_12"
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001535 },
1536 {
Keesjan Karsten23368892018-05-22 10:46:01 +00001537 "name" : "node_12",
1538 "id" : 3,
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001539 "source_info" : {
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001540 "filename" : "include/wcmp.p4",
Keesjan Karsten23368892018-05-22 10:46:01 +00001541 "line" : 52,
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001542 "column" : 12,
1543 "source_fragment" : "local_metadata.next_hop_id != 0"
1544 },
1545 "expression" : {
1546 "type" : "expression",
1547 "value" : {
1548 "op" : "!=",
1549 "left" : {
1550 "type" : "field",
1551 "value" : ["scalars", "local_metadata_t.next_hop_id"]
1552 },
1553 "right" : {
1554 "type" : "hexstr",
1555 "value" : "0x0000"
1556 }
1557 }
1558 },
1559 "false_next" : null,
Carmelo Cascone81929aa2018-04-07 01:38:55 -07001560 "true_next" : "ingress.wcmp_control.wcmp_table"
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001561 }
1562 ]
1563 },
1564 {
1565 "name" : "egress",
1566 "id" : 1,
1567 "source_info" : {
1568 "filename" : "basic.p4",
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001569 "line" : 55,
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001570 "column" : 8,
1571 "source_fragment" : "egress"
1572 },
Keesjan Karsten23368892018-05-22 10:46:01 +00001573 "init_table" : "tbl_act_4",
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001574 "tables" : [
1575 {
Keesjan Karsten23368892018-05-22 10:46:01 +00001576 "name" : "tbl_act_4",
1577 "id" : 8,
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001578 "key" : [],
1579 "match_type" : "exact",
1580 "type" : "simple",
1581 "max_size" : 1024,
1582 "with_counters" : false,
1583 "support_timeout" : false,
1584 "direct_meters" : null,
Keesjan Karsten23368892018-05-22 10:46:01 +00001585 "action_ids" : [14],
1586 "actions" : ["act_5"],
1587 "base_default_next" : "node_17",
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001588 "next_tables" : {
Keesjan Karsten23368892018-05-22 10:46:01 +00001589 "act_5" : "node_17"
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001590 },
1591 "default_entry" : {
Keesjan Karsten23368892018-05-22 10:46:01 +00001592 "action_id" : 14,
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001593 "action_const" : true,
1594 "action_data" : [],
1595 "action_entry_const" : true
1596 }
1597 },
1598 {
Keesjan Karsten23368892018-05-22 10:46:01 +00001599 "name" : "tbl_act_5",
1600 "id" : 9,
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001601 "key" : [],
1602 "match_type" : "exact",
1603 "type" : "simple",
1604 "max_size" : 1024,
1605 "with_counters" : false,
1606 "support_timeout" : false,
1607 "direct_meters" : null,
Keesjan Karsten23368892018-05-22 10:46:01 +00001608 "action_ids" : [13],
1609 "actions" : ["act_4"],
1610 "base_default_next" : "node_19",
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001611 "next_tables" : {
Keesjan Karsten23368892018-05-22 10:46:01 +00001612 "act_4" : "node_19"
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001613 },
1614 "default_entry" : {
Keesjan Karsten23368892018-05-22 10:46:01 +00001615 "action_id" : 13,
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001616 "action_const" : true,
1617 "action_data" : [],
1618 "action_entry_const" : true
1619 }
1620 },
1621 {
Keesjan Karsten23368892018-05-22 10:46:01 +00001622 "name" : "tbl_act_6",
1623 "id" : 10,
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001624 "key" : [],
1625 "match_type" : "exact",
1626 "type" : "simple",
1627 "max_size" : 1024,
1628 "with_counters" : false,
1629 "support_timeout" : false,
1630 "direct_meters" : null,
Keesjan Karsten23368892018-05-22 10:46:01 +00001631 "action_ids" : [15],
1632 "actions" : ["act_6"],
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001633 "base_default_next" : null,
1634 "next_tables" : {
Keesjan Karsten23368892018-05-22 10:46:01 +00001635 "act_6" : null
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001636 },
1637 "default_entry" : {
Keesjan Karsten23368892018-05-22 10:46:01 +00001638 "action_id" : 15,
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001639 "action_const" : true,
1640 "action_data" : [],
1641 "action_entry_const" : true
1642 }
1643 }
1644 ],
1645 "action_profiles" : [],
1646 "conditionals" : [
1647 {
Keesjan Karsten23368892018-05-22 10:46:01 +00001648 "name" : "node_17",
1649 "id" : 4,
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001650 "source_info" : {
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001651 "filename" : "include/port_meters.p4",
1652 "line" : 42,
1653 "column" : 12,
Keesjan Karsten23368892018-05-22 10:46:01 +00001654 "source_fragment" : "egress_color == MeterColor_RED"
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001655 },
1656 "expression" : {
1657 "type" : "expression",
1658 "value" : {
1659 "op" : "==",
1660 "left" : {
1661 "type" : "field",
Carmelo Cascone776be382018-12-12 19:03:57 -08001662 "value" : ["scalars", "port_meters_egress_egress_color"]
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001663 },
1664 "right" : {
1665 "type" : "hexstr",
Keesjan Karsten23368892018-05-22 10:46:01 +00001666 "value" : "0x02"
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001667 }
1668 }
1669 },
Keesjan Karsten23368892018-05-22 10:46:01 +00001670 "true_next" : "tbl_act_5",
1671 "false_next" : "node_19"
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001672 },
1673 {
Keesjan Karsten23368892018-05-22 10:46:01 +00001674 "name" : "node_19",
1675 "id" : 5,
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001676 "source_info" : {
1677 "filename" : "include/packet_io.p4",
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001678 "line" : 37,
1679 "column" : 12,
1680 "source_fragment" : "standard_metadata.egress_port == CPU_PORT"
1681 },
1682 "expression" : {
1683 "type" : "expression",
1684 "value" : {
1685 "op" : "==",
1686 "left" : {
1687 "type" : "field",
1688 "value" : ["standard_metadata", "egress_port"]
1689 },
1690 "right" : {
1691 "type" : "hexstr",
1692 "value" : "0x00ff"
1693 }
1694 }
1695 },
1696 "false_next" : null,
Keesjan Karsten23368892018-05-22 10:46:01 +00001697 "true_next" : "tbl_act_6"
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001698 }
1699 ]
1700 }
1701 ],
Jonghwan Hyun6777d532018-11-18 20:50:16 +09001702 "checksums" : [
1703 {
1704 "name" : "cksum",
1705 "id" : 0,
1706 "source_info" : {
1707 "filename" : "include/checksums.p4",
1708 "line" : 32,
1709 "column" : 8,
1710 "source_fragment" : "update_checksum(hdr.ipv4.isValid(), ..."
1711 },
1712 "target" : ["ipv4", "hdr_checksum"],
1713 "type" : "generic",
1714 "calculation" : "calc",
1715 "if_cond" : {
1716 "type" : "expression",
1717 "value" : {
1718 "op" : "d2b",
1719 "left" : null,
1720 "right" : {
1721 "type" : "field",
1722 "value" : ["ipv4", "$valid$"]
1723 }
1724 }
1725 }
1726 }
1727 ],
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001728 "force_arith" : [],
1729 "extern_instances" : [],
1730 "field_aliases" : [
1731 [
1732 "queueing_metadata.enq_timestamp",
1733 ["standard_metadata", "enq_timestamp"]
1734 ],
1735 [
1736 "queueing_metadata.enq_qdepth",
1737 ["standard_metadata", "enq_qdepth"]
1738 ],
1739 [
1740 "queueing_metadata.deq_timedelta",
1741 ["standard_metadata", "deq_timedelta"]
1742 ],
1743 [
1744 "queueing_metadata.deq_qdepth",
1745 ["standard_metadata", "deq_qdepth"]
1746 ],
1747 [
1748 "intrinsic_metadata.ingress_global_timestamp",
1749 ["standard_metadata", "ingress_global_timestamp"]
1750 ],
1751 [
Carmelo Cascone81929aa2018-04-07 01:38:55 -07001752 "intrinsic_metadata.egress_global_timestamp",
1753 ["standard_metadata", "egress_global_timestamp"]
1754 ],
1755 [
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001756 "intrinsic_metadata.lf_field_list",
1757 ["standard_metadata", "lf_field_list"]
1758 ],
1759 [
1760 "intrinsic_metadata.mcast_grp",
1761 ["standard_metadata", "mcast_grp"]
1762 ],
1763 [
1764 "intrinsic_metadata.resubmit_flag",
1765 ["standard_metadata", "resubmit_flag"]
1766 ],
1767 [
1768 "intrinsic_metadata.egress_rid",
1769 ["standard_metadata", "egress_rid"]
Carmelo Cascone81929aa2018-04-07 01:38:55 -07001770 ],
1771 [
1772 "intrinsic_metadata.recirculate_flag",
1773 ["standard_metadata", "recirculate_flag"]
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001774 ]
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001775 ],
1776 "program" : "basic.p4",
1777 "__meta__" : {
1778 "version" : [2, 18],
1779 "compiler" : "https://github.com/p4lang/p4c"
1780 }
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001781}