blob: ad8843a14061631e19e07ca058a2aa1661781e1b [file] [log] [blame]
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001{
2 "program" : "basic.p4",
3 "__meta__" : {
4 "version" : [2, 7],
5 "compiler" : "https://github.com/p4lang/p4c"
6 },
7 "header_types" : [
8 {
9 "name" : "scalars_0",
10 "id" : 0,
11 "fields" : [
12 ["tmp", 32, false],
13 ["tmp_0", 32, false],
Keesjan Karsten23368892018-05-22 10:46:01 +000014 ["port_meters_ingress_ingress_color_0", 8, false],
15 ["host_meter_control_meter_tag_0", 8, false],
Frank Wangd7e3b4b2017-09-24 13:37:54 +090016 ["tmp_1", 32, false],
17 ["tmp_2", 32, false],
Keesjan Karsten23368892018-05-22 10:46:01 +000018 ["port_meters_egress_egress_color_0", 8, false],
Carmelo Casconeca94bcf2017-10-27 14:16:59 -070019 ["local_metadata_t.l4_src_port", 16, false],
20 ["local_metadata_t.l4_dst_port", 16, false],
Keesjan Karsten23368892018-05-22 10:46:01 +000021 ["local_metadata_t.next_hop_id", 16, false]
Carmelo Casconeca94bcf2017-10-27 14:16:59 -070022 ]
23 },
24 {
Jonghwan Hyun4a9a6712017-11-13 14:43:55 -080025 "name" : "packet_out_header_t",
Carmelo Casconeca94bcf2017-10-27 14:16:59 -070026 "id" : 1,
27 "fields" : [
Jonghwan Hyun4a9a6712017-11-13 14:43:55 -080028 ["egress_port", 9, false],
29 ["_padding", 7, false]
30 ]
31 },
32 {
33 "name" : "packet_in_header_t",
34 "id" : 2,
35 "fields" : [
36 ["ingress_port", 9, false],
Keesjan Karsten23368892018-05-22 10:46:01 +000037 ["_padding", 7, false]
Jonghwan Hyun4a9a6712017-11-13 14:43:55 -080038 ]
39 },
40 {
41 "name" : "ethernet_t",
42 "id" : 3,
43 "fields" : [
Carmelo Casconeca94bcf2017-10-27 14:16:59 -070044 ["dst_addr", 48, false],
45 ["src_addr", 48, false],
46 ["ether_type", 16, false]
47 ]
48 },
49 {
50 "name" : "ipv4_t",
Jonghwan Hyun4a9a6712017-11-13 14:43:55 -080051 "id" : 4,
Carmelo Casconeca94bcf2017-10-27 14:16:59 -070052 "fields" : [
53 ["version", 4, false],
54 ["ihl", 4, false],
Jonghwan Hyun8be03392017-12-04 15:48:44 -080055 ["dscp", 6, false],
56 ["ecn", 2, false],
Carmelo Casconeca94bcf2017-10-27 14:16:59 -070057 ["len", 16, false],
58 ["identification", 16, false],
59 ["flags", 3, false],
60 ["frag_offset", 13, false],
61 ["ttl", 8, false],
62 ["protocol", 8, false],
63 ["hdr_checksum", 16, false],
64 ["src_addr", 32, false],
65 ["dst_addr", 32, false]
66 ]
67 },
68 {
69 "name" : "tcp_t",
Jonghwan Hyun4a9a6712017-11-13 14:43:55 -080070 "id" : 5,
Carmelo Casconeca94bcf2017-10-27 14:16:59 -070071 "fields" : [
72 ["src_port", 16, false],
73 ["dst_port", 16, false],
74 ["seq_no", 32, false],
75 ["ack_no", 32, false],
76 ["data_offset", 4, false],
77 ["res", 3, false],
78 ["ecn", 3, false],
79 ["ctrl", 6, false],
80 ["window", 16, false],
81 ["checksum", 16, false],
82 ["urgent_ptr", 16, false]
83 ]
84 },
85 {
86 "name" : "udp_t",
Jonghwan Hyun4a9a6712017-11-13 14:43:55 -080087 "id" : 6,
Carmelo Casconeca94bcf2017-10-27 14:16:59 -070088 "fields" : [
89 ["src_port", 16, false],
90 ["dst_port", 16, false],
91 ["length_", 16, false],
92 ["checksum", 16, false]
93 ]
94 },
95 {
Carmelo Casconeca94bcf2017-10-27 14:16:59 -070096 "name" : "standard_metadata",
97 "id" : 7,
98 "fields" : [
99 ["ingress_port", 9, false],
100 ["egress_spec", 9, false],
101 ["egress_port", 9, false],
102 ["clone_spec", 32, false],
103 ["instance_type", 32, false],
104 ["drop", 1, false],
105 ["recirculate_port", 16, false],
106 ["packet_length", 32, false],
107 ["enq_timestamp", 32, false],
108 ["enq_qdepth", 19, false],
109 ["deq_timedelta", 32, false],
110 ["deq_qdepth", 19, false],
111 ["ingress_global_timestamp", 48, false],
Carmelo Cascone81929aa2018-04-07 01:38:55 -0700112 ["egress_global_timestamp", 48, false],
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700113 ["lf_field_list", 32, false],
114 ["mcast_grp", 16, false],
Carmelo Cascone81929aa2018-04-07 01:38:55 -0700115 ["resubmit_flag", 32, false],
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700116 ["egress_rid", 16, false],
117 ["checksum_error", 1, false],
Carmelo Cascone81929aa2018-04-07 01:38:55 -0700118 ["recirculate_flag", 32, false],
Keesjan Karsten23368892018-05-22 10:46:01 +0000119 ["_padding_0", 5, false]
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700120 ]
121 }
122 ],
123 "headers" : [
124 {
125 "name" : "scalars",
126 "id" : 0,
127 "header_type" : "scalars_0",
128 "metadata" : true,
129 "pi_omit" : true
130 },
131 {
132 "name" : "standard_metadata",
133 "id" : 1,
134 "header_type" : "standard_metadata",
135 "metadata" : true,
136 "pi_omit" : true
137 },
138 {
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700139 "name" : "packet_out",
Jonghwan Hyun4a9a6712017-11-13 14:43:55 -0800140 "id" : 2,
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700141 "header_type" : "packet_out_header_t",
142 "metadata" : false,
143 "pi_omit" : true
144 },
145 {
146 "name" : "packet_in",
Jonghwan Hyun4a9a6712017-11-13 14:43:55 -0800147 "id" : 3,
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700148 "header_type" : "packet_in_header_t",
149 "metadata" : false,
150 "pi_omit" : true
Jonghwan Hyun4a9a6712017-11-13 14:43:55 -0800151 },
152 {
153 "name" : "ethernet",
154 "id" : 4,
155 "header_type" : "ethernet_t",
156 "metadata" : false,
157 "pi_omit" : true
158 },
159 {
160 "name" : "ipv4",
161 "id" : 5,
162 "header_type" : "ipv4_t",
163 "metadata" : false,
164 "pi_omit" : true
165 },
166 {
167 "name" : "tcp",
168 "id" : 6,
169 "header_type" : "tcp_t",
170 "metadata" : false,
171 "pi_omit" : true
172 },
173 {
174 "name" : "udp",
175 "id" : 7,
176 "header_type" : "udp_t",
177 "metadata" : false,
178 "pi_omit" : true
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700179 }
180 ],
181 "header_stacks" : [],
182 "header_union_types" : [],
183 "header_unions" : [],
184 "header_union_stacks" : [],
185 "field_lists" : [],
186 "errors" : [
Frank Wangd7e3b4b2017-09-24 13:37:54 +0900187 ["NoError", 1],
188 ["PacketTooShort", 2],
189 ["NoMatch", 3],
190 ["StackOutOfBounds", 4],
191 ["HeaderTooShort", 5],
192 ["ParserTimeout", 6]
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700193 ],
Keesjan Karsten23368892018-05-22 10:46:01 +0000194 "enums" : [],
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700195 "parsers" : [
196 {
197 "name" : "parser",
198 "id" : 0,
199 "init_state" : "start",
200 "parse_states" : [
201 {
202 "name" : "start",
203 "id" : 0,
204 "parser_ops" : [],
205 "transitions" : [
206 {
Carmelo Cascone81929aa2018-04-07 01:38:55 -0700207 "type" : "hexstr",
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700208 "value" : "0x00ff",
209 "mask" : null,
210 "next_state" : "parse_packet_out"
211 },
212 {
213 "value" : "default",
214 "mask" : null,
215 "next_state" : "parse_ethernet"
216 }
217 ],
218 "transition_key" : [
219 {
220 "type" : "field",
221 "value" : ["standard_metadata", "ingress_port"]
222 }
223 ]
224 },
225 {
226 "name" : "parse_packet_out",
227 "id" : 1,
228 "parser_ops" : [
229 {
230 "parameters" : [
231 {
232 "type" : "regular",
233 "value" : "packet_out"
234 }
235 ],
236 "op" : "extract"
237 }
238 ],
239 "transitions" : [
240 {
241 "value" : "default",
242 "mask" : null,
243 "next_state" : "parse_ethernet"
244 }
245 ],
246 "transition_key" : []
247 },
248 {
249 "name" : "parse_ethernet",
250 "id" : 2,
251 "parser_ops" : [
252 {
253 "parameters" : [
254 {
255 "type" : "regular",
256 "value" : "ethernet"
257 }
258 ],
259 "op" : "extract"
260 }
261 ],
262 "transitions" : [
263 {
Carmelo Cascone81929aa2018-04-07 01:38:55 -0700264 "type" : "hexstr",
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700265 "value" : "0x0800",
266 "mask" : null,
267 "next_state" : "parse_ipv4"
268 },
269 {
270 "value" : "default",
271 "mask" : null,
272 "next_state" : null
273 }
274 ],
275 "transition_key" : [
276 {
277 "type" : "field",
278 "value" : ["ethernet", "ether_type"]
279 }
280 ]
281 },
282 {
283 "name" : "parse_ipv4",
284 "id" : 3,
285 "parser_ops" : [
286 {
287 "parameters" : [
288 {
289 "type" : "regular",
290 "value" : "ipv4"
291 }
292 ],
293 "op" : "extract"
294 }
295 ],
296 "transitions" : [
297 {
Carmelo Cascone81929aa2018-04-07 01:38:55 -0700298 "type" : "hexstr",
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700299 "value" : "0x06",
300 "mask" : null,
301 "next_state" : "parse_tcp"
302 },
303 {
Carmelo Cascone81929aa2018-04-07 01:38:55 -0700304 "type" : "hexstr",
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700305 "value" : "0x11",
306 "mask" : null,
307 "next_state" : "parse_udp"
308 },
309 {
310 "value" : "default",
311 "mask" : null,
312 "next_state" : null
313 }
314 ],
315 "transition_key" : [
316 {
317 "type" : "field",
318 "value" : ["ipv4", "protocol"]
319 }
320 ]
321 },
322 {
323 "name" : "parse_tcp",
324 "id" : 4,
325 "parser_ops" : [
326 {
327 "parameters" : [
328 {
329 "type" : "regular",
330 "value" : "tcp"
331 }
332 ],
333 "op" : "extract"
334 },
335 {
336 "parameters" : [
337 {
338 "type" : "field",
339 "value" : ["scalars", "local_metadata_t.l4_src_port"]
340 },
341 {
342 "type" : "field",
343 "value" : ["tcp", "src_port"]
344 }
345 ],
346 "op" : "set"
347 },
348 {
349 "parameters" : [
350 {
351 "type" : "field",
352 "value" : ["scalars", "local_metadata_t.l4_dst_port"]
353 },
354 {
355 "type" : "field",
356 "value" : ["tcp", "dst_port"]
357 }
358 ],
359 "op" : "set"
360 }
361 ],
362 "transitions" : [
363 {
364 "value" : "default",
365 "mask" : null,
366 "next_state" : null
367 }
368 ],
369 "transition_key" : []
370 },
371 {
372 "name" : "parse_udp",
373 "id" : 5,
374 "parser_ops" : [
375 {
376 "parameters" : [
377 {
378 "type" : "regular",
379 "value" : "udp"
380 }
381 ],
382 "op" : "extract"
383 },
384 {
385 "parameters" : [
386 {
387 "type" : "field",
388 "value" : ["scalars", "local_metadata_t.l4_src_port"]
389 },
390 {
391 "type" : "field",
392 "value" : ["udp", "src_port"]
393 }
394 ],
395 "op" : "set"
396 },
397 {
398 "parameters" : [
399 {
400 "type" : "field",
401 "value" : ["scalars", "local_metadata_t.l4_dst_port"]
402 },
403 {
404 "type" : "field",
405 "value" : ["udp", "dst_port"]
406 }
407 ],
408 "op" : "set"
409 }
410 ],
411 "transitions" : [
412 {
413 "value" : "default",
414 "mask" : null,
415 "next_state" : null
416 }
417 ],
418 "transition_key" : []
419 }
420 ]
421 }
422 ],
Carmelo Cascone81929aa2018-04-07 01:38:55 -0700423 "parse_vsets" : [],
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700424 "deparsers" : [
425 {
426 "name" : "deparser",
427 "id" : 0,
428 "source_info" : {
Frank Wangd7e3b4b2017-09-24 13:37:54 +0900429 "filename" : "include/parsers.p4",
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700430 "line" : 72,
431 "column" : 8,
432 "source_fragment" : "deparser"
433 },
434 "order" : ["packet_in", "ethernet", "ipv4", "tcp", "udp"]
435 }
436 ],
Frank Wangd7e3b4b2017-09-24 13:37:54 +0900437 "meter_arrays" : [
438 {
Carmelo Cascone81929aa2018-04-07 01:38:55 -0700439 "name" : "ingress.port_meters_ingress.ingress_port_meter",
Frank Wangd7e3b4b2017-09-24 13:37:54 +0900440 "id" : 0,
441 "source_info" : {
442 "filename" : "include/port_meters.p4",
443 "line" : 23,
444 "column" : 32,
445 "source_fragment" : "ingress_port_meter"
446 },
447 "is_direct" : false,
448 "size" : 511,
449 "rate_count" : 2,
450 "type" : "bytes"
451 },
452 {
Carmelo Cascone81929aa2018-04-07 01:38:55 -0700453 "name" : "ingress.host_meter_control.host_meter",
Frank Wangd7e3b4b2017-09-24 13:37:54 +0900454 "id" : 1,
455 "source_info" : {
456 "filename" : "include/host_meter_table.p4",
457 "line" : 27,
Keesjan Karsten23368892018-05-22 10:46:01 +0000458 "column" : 46,
Frank Wangd7e3b4b2017-09-24 13:37:54 +0900459 "source_fragment" : "host_meter"
460 },
461 "is_direct" : true,
462 "rate_count" : 2,
463 "type" : "bytes",
464 "size" : 1024,
Carmelo Cascone81929aa2018-04-07 01:38:55 -0700465 "binding" : "ingress.host_meter_control.host_meter_table",
Keesjan Karsten23368892018-05-22 10:46:01 +0000466 "result_target" : ["scalars", "host_meter_control_meter_tag_0"]
Frank Wangd7e3b4b2017-09-24 13:37:54 +0900467 },
468 {
Carmelo Cascone81929aa2018-04-07 01:38:55 -0700469 "name" : "egress.port_meters_egress.egress_port_meter",
Frank Wangd7e3b4b2017-09-24 13:37:54 +0900470 "id" : 2,
471 "source_info" : {
472 "filename" : "include/port_meters.p4",
473 "line" : 37,
474 "column" : 32,
475 "source_fragment" : "egress_port_meter"
476 },
477 "is_direct" : false,
478 "size" : 511,
479 "rate_count" : 2,
480 "type" : "bytes"
481 }
482 ],
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700483 "counter_arrays" : [
484 {
Carmelo Cascone81929aa2018-04-07 01:38:55 -0700485 "name" : "ingress.port_counters_ingress.ingress_port_counter",
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700486 "id" : 0,
487 "source_info" : {
Frank Wangd7e3b4b2017-09-24 13:37:54 +0900488 "filename" : "include/port_counters.p4",
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700489 "line" : 26,
490 "column" : 38,
491 "source_fragment" : "ingress_port_counter"
492 },
493 "size" : 511,
494 "is_direct" : false
495 },
496 {
Carmelo Cascone81929aa2018-04-07 01:38:55 -0700497 "name" : "ingress.table0_control.table0_counter",
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700498 "id" : 1,
499 "is_direct" : true,
Carmelo Cascone81929aa2018-04-07 01:38:55 -0700500 "binding" : "ingress.table0_control.table0"
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700501 },
502 {
Carmelo Cascone81929aa2018-04-07 01:38:55 -0700503 "name" : "ingress.wcmp_control.wcmp_table_counter",
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700504 "id" : 2,
505 "is_direct" : true,
Carmelo Cascone81929aa2018-04-07 01:38:55 -0700506 "binding" : "ingress.wcmp_control.wcmp_table"
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700507 },
508 {
Carmelo Cascone81929aa2018-04-07 01:38:55 -0700509 "name" : "egress.port_counters_egress.egress_port_counter",
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700510 "id" : 3,
511 "source_info" : {
Frank Wangd7e3b4b2017-09-24 13:37:54 +0900512 "filename" : "include/port_counters.p4",
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700513 "line" : 36,
514 "column" : 38,
515 "source_fragment" : "egress_port_counter"
516 },
517 "size" : 511,
518 "is_direct" : false
519 }
520 ],
521 "register_arrays" : [],
522 "calculations" : [],
523 "learn_lists" : [],
524 "actions" : [
525 {
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700526 "name" : "_drop",
Keesjan Karsten23368892018-05-22 10:46:01 +0000527 "id" : 0,
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700528 "runtime_data" : [],
529 "primitives" : [
530 {
531 "op" : "drop",
532 "parameters" : [],
533 "source_info" : {
Frank Wangd7e3b4b2017-09-24 13:37:54 +0900534 "filename" : "include/actions.p4",
Keesjan Karsten23368892018-05-22 10:46:01 +0000535 "line" : 24,
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700536 "column" : 4,
537 "source_fragment" : "mark_to_drop()"
538 }
539 }
540 ]
541 },
542 {
543 "name" : "NoAction",
Keesjan Karsten23368892018-05-22 10:46:01 +0000544 "id" : 1,
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700545 "runtime_data" : [],
546 "primitives" : []
547 },
548 {
Frank Wangd7e3b4b2017-09-24 13:37:54 +0900549 "name" : "NoAction",
Keesjan Karsten23368892018-05-22 10:46:01 +0000550 "id" : 2,
Frank Wangd7e3b4b2017-09-24 13:37:54 +0900551 "runtime_data" : [],
552 "primitives" : []
553 },
554 {
Carmelo Cascone81929aa2018-04-07 01:38:55 -0700555 "name" : "ingress.table0_control.set_next_hop_id",
Keesjan Karsten23368892018-05-22 10:46:01 +0000556 "id" : 3,
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700557 "runtime_data" : [
558 {
559 "name" : "next_hop_id",
560 "bitwidth" : 16
561 }
562 ],
563 "primitives" : [
564 {
565 "op" : "assign",
566 "parameters" : [
567 {
568 "type" : "field",
569 "value" : ["scalars", "local_metadata_t.next_hop_id"]
570 },
571 {
572 "type" : "runtime_data",
573 "value" : 0
574 }
575 ],
576 "source_info" : {
Frank Wangd7e3b4b2017-09-24 13:37:54 +0900577 "filename" : "include/table0.p4",
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700578 "line" : 30,
579 "column" : 8,
580 "source_fragment" : "local_metadata.next_hop_id = next_hop_id"
581 }
582 }
583 ]
584 },
585 {
Keesjan Karsten23368892018-05-22 10:46:01 +0000586 "name" : "ingress.table0_control.send_to_cpu",
587 "id" : 4,
588 "runtime_data" : [],
589 "primitives" : [
590 {
591 "op" : "assign",
592 "parameters" : [
593 {
594 "type" : "field",
595 "value" : ["standard_metadata", "egress_spec"]
596 },
597 {
598 "type" : "hexstr",
599 "value" : "0x00ff"
600 }
601 ],
602 "source_info" : {
603 "filename" : "include/defines.p4",
604 "line" : 28,
605 "column" : 24,
606 "source_fragment" : "255; ..."
607 }
608 }
609 ]
610 },
611 {
612 "name" : "ingress.table0_control.set_egress_port",
613 "id" : 5,
614 "runtime_data" : [
615 {
616 "name" : "port",
617 "bitwidth" : 9
618 }
619 ],
620 "primitives" : [
621 {
622 "op" : "assign",
623 "parameters" : [
624 {
625 "type" : "field",
626 "value" : ["standard_metadata", "egress_spec"]
627 },
628 {
629 "type" : "runtime_data",
630 "value" : 0
631 }
632 ],
633 "source_info" : {
634 "filename" : "include/table0.p4",
635 "line" : 38,
636 "column" : 8,
637 "source_fragment" : "standard_metadata.egress_spec = port"
638 }
639 }
640 ]
641 },
642 {
Carmelo Cascone81929aa2018-04-07 01:38:55 -0700643 "name" : "ingress.host_meter_control.read_meter",
Keesjan Karsten23368892018-05-22 10:46:01 +0000644 "id" : 6,
Frank Wangd7e3b4b2017-09-24 13:37:54 +0900645 "runtime_data" : [],
646 "primitives" : []
647 },
648 {
Keesjan Karsten23368892018-05-22 10:46:01 +0000649 "name" : "ingress.wcmp_control.set_egress_port",
650 "id" : 7,
651 "runtime_data" : [
652 {
653 "name" : "port",
654 "bitwidth" : 9
655 }
656 ],
657 "primitives" : [
658 {
659 "op" : "assign",
660 "parameters" : [
661 {
662 "type" : "field",
663 "value" : ["standard_metadata", "egress_spec"]
664 },
665 {
666 "type" : "runtime_data",
667 "value" : 0
668 }
669 ],
670 "source_info" : {
671 "filename" : "include/wcmp.p4",
672 "line" : 31,
673 "column" : 8,
674 "source_fragment" : "standard_metadata.egress_spec = port"
675 }
676 }
677 ]
678 },
679 {
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700680 "name" : "act",
Frank Wangd7e3b4b2017-09-24 13:37:54 +0900681 "id" : 8,
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700682 "runtime_data" : [],
683 "primitives" : [
684 {
Frank Wangd7e3b4b2017-09-24 13:37:54 +0900685 "op" : "drop",
686 "parameters" : [],
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700687 "source_info" : {
Frank Wangd7e3b4b2017-09-24 13:37:54 +0900688 "filename" : "include/port_meters.p4",
689 "line" : 29,
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700690 "column" : 12,
Frank Wangd7e3b4b2017-09-24 13:37:54 +0900691 "source_fragment" : "mark_to_drop()"
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700692 }
693 }
694 ]
695 },
696 {
697 "name" : "act_0",
Frank Wangd7e3b4b2017-09-24 13:37:54 +0900698 "id" : 9,
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700699 "runtime_data" : [],
700 "primitives" : [
701 {
702 "op" : "assign",
703 "parameters" : [
704 {
705 "type" : "field",
706 "value" : ["scalars", "tmp"]
707 },
708 {
709 "type" : "expression",
710 "value" : {
711 "type" : "expression",
712 "value" : {
713 "op" : "&",
714 "left" : {
715 "type" : "field",
716 "value" : ["standard_metadata", "ingress_port"]
717 },
718 "right" : {
719 "type" : "hexstr",
720 "value" : "0xffffffff"
721 }
722 }
723 }
724 }
725 ]
726 },
727 {
728 "op" : "count",
729 "parameters" : [
730 {
731 "type" : "counter_array",
Carmelo Cascone81929aa2018-04-07 01:38:55 -0700732 "value" : "ingress.port_counters_ingress.ingress_port_counter"
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700733 },
734 {
735 "type" : "field",
736 "value" : ["scalars", "tmp"]
737 }
738 ],
739 "source_info" : {
Frank Wangd7e3b4b2017-09-24 13:37:54 +0900740 "filename" : "include/port_counters.p4",
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700741 "line" : 29,
742 "column" : 8,
743 "source_fragment" : "ingress_port_counter.count((bit<32>) standard_metadata.ingress_port)"
744 }
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700745 },
746 {
747 "op" : "assign",
748 "parameters" : [
749 {
750 "type" : "field",
Frank Wangd7e3b4b2017-09-24 13:37:54 +0900751 "value" : ["scalars", "tmp_0"]
752 },
753 {
754 "type" : "expression",
755 "value" : {
756 "type" : "expression",
757 "value" : {
758 "op" : "&",
759 "left" : {
760 "type" : "field",
761 "value" : ["standard_metadata", "ingress_port"]
762 },
763 "right" : {
764 "type" : "hexstr",
765 "value" : "0xffffffff"
766 }
767 }
768 }
769 }
770 ]
771 },
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 }
927 ]
928 },
929 {
930 "op" : "count",
931 "parameters" : [
932 {
933 "type" : "counter_array",
Carmelo Cascone81929aa2018-04-07 01:38:55 -0700934 "value" : "egress.port_counters_egress.egress_port_counter"
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700935 },
936 {
937 "type" : "field",
Frank Wangd7e3b4b2017-09-24 13:37:54 +0900938 "value" : ["scalars", "tmp_1"]
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700939 }
940 ],
941 "source_info" : {
Frank Wangd7e3b4b2017-09-24 13:37:54 +0900942 "filename" : "include/port_counters.p4",
Carmelo Casconeca94bcf2017-10-27 14:16:59 -0700943 "line" : 39,
944 "column" : 8,
945 "source_fragment" : "egress_port_counter.count((bit<32>) standard_metadata.egress_port)"
946 }
Frank Wangd7e3b4b2017-09-24 13:37:54 +0900947 },
948 {
949 "op" : "assign",
950 "parameters" : [
951 {
952 "type" : "field",
953 "value" : ["scalars", "tmp_2"]
954 },
955 {
956 "type" : "expression",
957 "value" : {
958 "type" : "expression",
959 "value" : {
960 "op" : "&",
961 "left" : {
962 "type" : "field",
963 "value" : ["standard_metadata", "egress_port"]
964 },
965 "right" : {
966 "type" : "hexstr",
967 "value" : "0xffffffff"
968 }
969 }
970 }
971 }
972 ]
973 },
974 {
975 "op" : "execute_meter",
976 "parameters" : [
977 {
978 "type" : "meter_array",
Carmelo Cascone81929aa2018-04-07 01:38:55 -0700979 "value" : "egress.port_meters_egress.egress_port_meter"
Frank Wangd7e3b4b2017-09-24 13:37:54 +0900980 },
981 {
982 "type" : "field",
983 "value" : ["scalars", "tmp_2"]
984 },
985 {
986 "type" : "field",
987 "value" : ["scalars", "port_meters_egress_egress_color_0"]
988 }
989 ],
990 "source_info" : {
991 "filename" : "include/port_meters.p4",
992 "line" : 41,
993 "column" : 8,
Keesjan Karsten23368892018-05-22 10:46:01 +0000994 "source_fragment" : "egress_port_meter.execute_meter<MeterColor>((bit<32>)standard_metadata.egress_port, egress_color)"
Frank Wangd7e3b4b2017-09-24 13:37:54 +0900995 }
996 }
997 ]
998 },
999 {
Keesjan Karsten23368892018-05-22 10:46:01 +00001000 "name" : "act_6",
1001 "id" : 15,
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001002 "runtime_data" : [],
1003 "primitives" : [
1004 {
1005 "op" : "add_header",
1006 "parameters" : [
1007 {
1008 "type" : "header",
1009 "value" : "packet_in"
1010 }
1011 ],
1012 "source_info" : {
1013 "filename" : "include/packet_io.p4",
1014 "line" : 38,
1015 "column" : 12,
1016 "source_fragment" : "hdr.packet_in.setValid()"
1017 }
1018 },
1019 {
1020 "op" : "assign",
1021 "parameters" : [
1022 {
1023 "type" : "field",
1024 "value" : ["packet_in", "ingress_port"]
1025 },
1026 {
1027 "type" : "field",
1028 "value" : ["standard_metadata", "ingress_port"]
1029 }
1030 ],
1031 "source_info" : {
1032 "filename" : "include/packet_io.p4",
1033 "line" : 39,
1034 "column" : 12,
1035 "source_fragment" : "hdr.packet_in.ingress_port = standard_metadata.ingress_port"
1036 }
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001037 }
1038 ]
1039 }
1040 ],
1041 "pipelines" : [
1042 {
1043 "name" : "ingress",
1044 "id" : 0,
1045 "source_info" : {
1046 "filename" : "basic.p4",
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001047 "line" : 37,
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001048 "column" : 8,
1049 "source_fragment" : "ingress"
1050 },
1051 "init_table" : "tbl_act",
1052 "tables" : [
1053 {
1054 "name" : "tbl_act",
1055 "id" : 0,
1056 "key" : [],
1057 "match_type" : "exact",
1058 "type" : "simple",
1059 "max_size" : 1024,
1060 "with_counters" : false,
1061 "support_timeout" : false,
1062 "direct_meters" : null,
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001063 "action_ids" : [9],
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001064 "actions" : ["act_0"],
1065 "base_default_next" : "node_3",
1066 "next_tables" : {
1067 "act_0" : "node_3"
1068 },
1069 "default_entry" : {
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001070 "action_id" : 9,
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001071 "action_const" : true,
1072 "action_data" : [],
1073 "action_entry_const" : true
1074 }
1075 },
1076 {
1077 "name" : "tbl_act_0",
1078 "id" : 1,
1079 "key" : [],
1080 "match_type" : "exact",
1081 "type" : "simple",
1082 "max_size" : 1024,
1083 "with_counters" : false,
1084 "support_timeout" : false,
1085 "direct_meters" : null,
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001086 "action_ids" : [8],
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001087 "actions" : ["act"],
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001088 "base_default_next" : "node_5",
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001089 "next_tables" : {
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001090 "act" : "node_5"
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001091 },
1092 "default_entry" : {
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001093 "action_id" : 8,
1094 "action_const" : true,
1095 "action_data" : [],
1096 "action_entry_const" : true
1097 }
1098 },
1099 {
1100 "name" : "tbl_act_1",
1101 "id" : 2,
1102 "key" : [],
1103 "match_type" : "exact",
1104 "type" : "simple",
1105 "max_size" : 1024,
1106 "with_counters" : false,
1107 "support_timeout" : false,
1108 "direct_meters" : null,
1109 "action_ids" : [10],
1110 "actions" : ["act_1"],
1111 "base_default_next" : null,
1112 "next_tables" : {
1113 "act_1" : null
1114 },
1115 "default_entry" : {
1116 "action_id" : 10,
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001117 "action_const" : true,
1118 "action_data" : [],
1119 "action_entry_const" : true
1120 }
1121 },
1122 {
Carmelo Cascone81929aa2018-04-07 01:38:55 -07001123 "name" : "ingress.table0_control.table0",
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001124 "id" : 3,
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001125 "source_info" : {
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001126 "filename" : "include/table0.p4",
Keesjan Karsten23368892018-05-22 10:46:01 +00001127 "line" : 41,
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001128 "column" : 10,
1129 "source_fragment" : "table0"
1130 },
1131 "key" : [
1132 {
1133 "match_type" : "ternary",
Carmelo Cascone81929aa2018-04-07 01:38:55 -07001134 "name" : "standard_metadata.ingress_port",
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001135 "target" : ["standard_metadata", "ingress_port"],
1136 "mask" : null
1137 },
1138 {
1139 "match_type" : "ternary",
Carmelo Cascone81929aa2018-04-07 01:38:55 -07001140 "name" : "hdr.ethernet.src_addr",
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001141 "target" : ["ethernet", "src_addr"],
1142 "mask" : null
1143 },
1144 {
1145 "match_type" : "ternary",
Carmelo Cascone81929aa2018-04-07 01:38:55 -07001146 "name" : "hdr.ethernet.dst_addr",
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001147 "target" : ["ethernet", "dst_addr"],
1148 "mask" : null
1149 },
1150 {
1151 "match_type" : "ternary",
Carmelo Cascone81929aa2018-04-07 01:38:55 -07001152 "name" : "hdr.ethernet.ether_type",
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001153 "target" : ["ethernet", "ether_type"],
1154 "mask" : null
1155 },
1156 {
1157 "match_type" : "ternary",
Carmelo Cascone81929aa2018-04-07 01:38:55 -07001158 "name" : "hdr.ipv4.src_addr",
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001159 "target" : ["ipv4", "src_addr"],
1160 "mask" : null
1161 },
1162 {
1163 "match_type" : "ternary",
Carmelo Cascone81929aa2018-04-07 01:38:55 -07001164 "name" : "hdr.ipv4.dst_addr",
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001165 "target" : ["ipv4", "dst_addr"],
1166 "mask" : null
1167 },
1168 {
1169 "match_type" : "ternary",
Carmelo Cascone81929aa2018-04-07 01:38:55 -07001170 "name" : "hdr.ipv4.protocol",
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001171 "target" : ["ipv4", "protocol"],
1172 "mask" : null
1173 },
1174 {
1175 "match_type" : "ternary",
Carmelo Cascone81929aa2018-04-07 01:38:55 -07001176 "name" : "local_metadata.l4_src_port",
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001177 "target" : ["scalars", "local_metadata_t.l4_src_port"],
1178 "mask" : null
1179 },
1180 {
1181 "match_type" : "ternary",
Carmelo Cascone81929aa2018-04-07 01:38:55 -07001182 "name" : "local_metadata.l4_dst_port",
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001183 "target" : ["scalars", "local_metadata_t.l4_dst_port"],
1184 "mask" : null
1185 }
1186 ],
1187 "match_type" : "ternary",
1188 "type" : "simple",
1189 "max_size" : 1024,
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001190 "with_counters" : true,
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001191 "support_timeout" : false,
1192 "direct_meters" : null,
Keesjan Karsten23368892018-05-22 10:46:01 +00001193 "action_ids" : [5, 4, 3, 0],
1194 "actions" : ["ingress.table0_control.set_egress_port", "ingress.table0_control.send_to_cpu", "ingress.table0_control.set_next_hop_id", "_drop"],
1195 "base_default_next" : "tbl_act_2",
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001196 "next_tables" : {
Keesjan Karsten23368892018-05-22 10:46:01 +00001197 "ingress.table0_control.set_egress_port" : "tbl_act_2",
1198 "ingress.table0_control.send_to_cpu" : "tbl_act_2",
1199 "ingress.table0_control.set_next_hop_id" : "tbl_act_2",
1200 "_drop" : "tbl_act_2"
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001201 },
1202 "default_entry" : {
Keesjan Karsten23368892018-05-22 10:46:01 +00001203 "action_id" : 0,
1204 "action_const" : true,
1205 "action_data" : [],
1206 "action_entry_const" : true
1207 }
1208 },
1209 {
1210 "name" : "tbl_act_2",
1211 "id" : 4,
1212 "key" : [],
1213 "match_type" : "exact",
1214 "type" : "simple",
1215 "max_size" : 1024,
1216 "with_counters" : false,
1217 "support_timeout" : false,
1218 "direct_meters" : null,
1219 "action_ids" : [11],
1220 "actions" : ["act_2"],
1221 "base_default_next" : "ingress.host_meter_control.host_meter_table",
1222 "next_tables" : {
1223 "act_2" : "ingress.host_meter_control.host_meter_table"
1224 },
1225 "default_entry" : {
1226 "action_id" : 11,
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001227 "action_const" : true,
1228 "action_data" : [],
1229 "action_entry_const" : true
1230 }
1231 },
1232 {
Carmelo Cascone81929aa2018-04-07 01:38:55 -07001233 "name" : "ingress.host_meter_control.host_meter_table",
Keesjan Karsten23368892018-05-22 10:46:01 +00001234 "id" : 5,
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001235 "source_info" : {
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001236 "filename" : "include/host_meter_table.p4",
1237 "line" : 33,
1238 "column" : 10,
1239 "source_fragment" : "host_meter_table"
1240 },
1241 "key" : [
1242 {
1243 "match_type" : "lpm",
Carmelo Cascone81929aa2018-04-07 01:38:55 -07001244 "name" : "hdr.ethernet.src_addr",
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001245 "target" : ["ethernet", "src_addr"],
1246 "mask" : null
1247 }
1248 ],
1249 "match_type" : "lpm",
1250 "type" : "simple",
1251 "max_size" : 1024,
1252 "with_counters" : false,
1253 "support_timeout" : false,
Carmelo Cascone81929aa2018-04-07 01:38:55 -07001254 "direct_meters" : "ingress.host_meter_control.host_meter",
Keesjan Karsten23368892018-05-22 10:46:01 +00001255 "action_ids" : [6, 1],
Carmelo Cascone81929aa2018-04-07 01:38:55 -07001256 "actions" : ["ingress.host_meter_control.read_meter", "NoAction"],
Keesjan Karsten23368892018-05-22 10:46:01 +00001257 "base_default_next" : "node_10",
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001258 "next_tables" : {
Keesjan Karsten23368892018-05-22 10:46:01 +00001259 "ingress.host_meter_control.read_meter" : "node_10",
1260 "NoAction" : "node_10"
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001261 },
1262 "default_entry" : {
Keesjan Karsten23368892018-05-22 10:46:01 +00001263 "action_id" : 1,
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001264 "action_const" : false,
1265 "action_data" : [],
1266 "action_entry_const" : false
1267 }
1268 },
1269 {
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001270 "name" : "tbl_act_3",
1271 "id" : 6,
1272 "key" : [],
1273 "match_type" : "exact",
1274 "type" : "simple",
1275 "max_size" : 1024,
1276 "with_counters" : false,
1277 "support_timeout" : false,
1278 "direct_meters" : null,
1279 "action_ids" : [12],
1280 "actions" : ["act_3"],
Keesjan Karsten23368892018-05-22 10:46:01 +00001281 "base_default_next" : "node_12",
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001282 "next_tables" : {
Keesjan Karsten23368892018-05-22 10:46:01 +00001283 "act_3" : "node_12"
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001284 },
1285 "default_entry" : {
1286 "action_id" : 12,
1287 "action_const" : true,
1288 "action_data" : [],
1289 "action_entry_const" : true
1290 }
1291 },
1292 {
Carmelo Cascone81929aa2018-04-07 01:38:55 -07001293 "name" : "ingress.wcmp_control.wcmp_table",
Keesjan Karsten23368892018-05-22 10:46:01 +00001294 "id" : 7,
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001295 "source_info" : {
1296 "filename" : "include/wcmp.p4",
Keesjan Karsten23368892018-05-22 10:46:01 +00001297 "line" : 34,
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001298 "column" : 10,
1299 "source_fragment" : "wcmp_table"
1300 },
1301 "key" : [
1302 {
1303 "match_type" : "exact",
Carmelo Cascone81929aa2018-04-07 01:38:55 -07001304 "name" : "local_metadata.next_hop_id",
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001305 "target" : ["scalars", "local_metadata_t.next_hop_id"],
1306 "mask" : null
1307 }
1308 ],
1309 "match_type" : "exact",
1310 "type" : "indirect_ws",
Carmelo Cascone81929aa2018-04-07 01:38:55 -07001311 "action_profile" : "ingress.wcmp_control.wcmp_selector",
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001312 "max_size" : 1024,
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001313 "with_counters" : true,
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001314 "support_timeout" : false,
1315 "direct_meters" : null,
Keesjan Karsten23368892018-05-22 10:46:01 +00001316 "action_ids" : [7, 2],
1317 "actions" : ["ingress.wcmp_control.set_egress_port", "NoAction"],
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001318 "base_default_next" : null,
1319 "next_tables" : {
Keesjan Karsten23368892018-05-22 10:46:01 +00001320 "ingress.wcmp_control.set_egress_port" : null,
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001321 "NoAction" : null
1322 }
1323 }
1324 ],
1325 "action_profiles" : [
1326 {
Carmelo Cascone81929aa2018-04-07 01:38:55 -07001327 "name" : "ingress.wcmp_control.wcmp_selector",
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001328 "id" : 0,
1329 "max_size" : 64,
1330 "selector" : {
1331 "algo" : "crc16",
1332 "input" : [
1333 {
1334 "type" : "field",
1335 "value" : ["ipv4", "src_addr"]
1336 },
1337 {
1338 "type" : "field",
1339 "value" : ["ipv4", "dst_addr"]
1340 },
1341 {
1342 "type" : "field",
1343 "value" : ["ipv4", "protocol"]
1344 },
1345 {
1346 "type" : "field",
1347 "value" : ["scalars", "local_metadata_t.l4_src_port"]
1348 },
1349 {
1350 "type" : "field",
1351 "value" : ["scalars", "local_metadata_t.l4_dst_port"]
1352 }
1353 ]
1354 }
1355 }
1356 ],
1357 "conditionals" : [
1358 {
1359 "name" : "node_3",
1360 "id" : 0,
1361 "source_info" : {
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001362 "filename" : "include/port_meters.p4",
1363 "line" : 28,
1364 "column" : 12,
Keesjan Karsten23368892018-05-22 10:46:01 +00001365 "source_fragment" : "ingress_color == MeterColor_RED"
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001366 },
1367 "expression" : {
1368 "type" : "expression",
1369 "value" : {
1370 "op" : "==",
1371 "left" : {
1372 "type" : "field",
1373 "value" : ["scalars", "port_meters_ingress_ingress_color_0"]
1374 },
1375 "right" : {
1376 "type" : "hexstr",
Keesjan Karsten23368892018-05-22 10:46:01 +00001377 "value" : "0x02"
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001378 }
1379 }
1380 },
1381 "true_next" : "tbl_act_0",
1382 "false_next" : "node_5"
1383 },
1384 {
1385 "name" : "node_5",
1386 "id" : 1,
1387 "source_info" : {
1388 "filename" : "include/packet_io.p4",
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001389 "line" : 26,
1390 "column" : 12,
1391 "source_fragment" : "standard_metadata.ingress_port == CPU_PORT"
1392 },
1393 "expression" : {
1394 "type" : "expression",
1395 "value" : {
1396 "op" : "==",
1397 "left" : {
1398 "type" : "field",
1399 "value" : ["standard_metadata", "ingress_port"]
1400 },
1401 "right" : {
1402 "type" : "hexstr",
1403 "value" : "0x00ff"
1404 }
1405 }
1406 },
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001407 "true_next" : "tbl_act_1",
Carmelo Cascone81929aa2018-04-07 01:38:55 -07001408 "false_next" : "ingress.table0_control.table0"
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001409 },
1410 {
Keesjan Karsten23368892018-05-22 10:46:01 +00001411 "name" : "node_10",
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001412 "id" : 2,
Keesjan Karsten23368892018-05-22 10:46:01 +00001413 "source_info" : {
1414 "filename" : "include/host_meter_table.p4",
1415 "line" : 47,
1416 "column" : 12,
1417 "source_fragment" : "meter_tag == MeterColor_RED"
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001418 },
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001419 "expression" : {
1420 "type" : "expression",
1421 "value" : {
Keesjan Karsten23368892018-05-22 10:46:01 +00001422 "op" : "==",
1423 "left" : {
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001424 "type" : "field",
Keesjan Karsten23368892018-05-22 10:46:01 +00001425 "value" : ["scalars", "host_meter_control_meter_tag_0"]
1426 },
1427 "right" : {
1428 "type" : "hexstr",
1429 "value" : "0x02"
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001430 }
1431 }
1432 },
Keesjan Karsten23368892018-05-22 10:46:01 +00001433 "true_next" : "tbl_act_3",
1434 "false_next" : "node_12"
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001435 },
1436 {
Keesjan Karsten23368892018-05-22 10:46:01 +00001437 "name" : "node_12",
1438 "id" : 3,
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001439 "source_info" : {
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001440 "filename" : "include/wcmp.p4",
Keesjan Karsten23368892018-05-22 10:46:01 +00001441 "line" : 52,
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001442 "column" : 12,
1443 "source_fragment" : "local_metadata.next_hop_id != 0"
1444 },
1445 "expression" : {
1446 "type" : "expression",
1447 "value" : {
1448 "op" : "!=",
1449 "left" : {
1450 "type" : "field",
1451 "value" : ["scalars", "local_metadata_t.next_hop_id"]
1452 },
1453 "right" : {
1454 "type" : "hexstr",
1455 "value" : "0x0000"
1456 }
1457 }
1458 },
1459 "false_next" : null,
Carmelo Cascone81929aa2018-04-07 01:38:55 -07001460 "true_next" : "ingress.wcmp_control.wcmp_table"
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001461 }
1462 ]
1463 },
1464 {
1465 "name" : "egress",
1466 "id" : 1,
1467 "source_info" : {
1468 "filename" : "basic.p4",
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001469 "line" : 55,
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001470 "column" : 8,
1471 "source_fragment" : "egress"
1472 },
Keesjan Karsten23368892018-05-22 10:46:01 +00001473 "init_table" : "tbl_act_4",
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001474 "tables" : [
1475 {
Keesjan Karsten23368892018-05-22 10:46:01 +00001476 "name" : "tbl_act_4",
1477 "id" : 8,
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001478 "key" : [],
1479 "match_type" : "exact",
1480 "type" : "simple",
1481 "max_size" : 1024,
1482 "with_counters" : false,
1483 "support_timeout" : false,
1484 "direct_meters" : null,
Keesjan Karsten23368892018-05-22 10:46:01 +00001485 "action_ids" : [14],
1486 "actions" : ["act_5"],
1487 "base_default_next" : "node_17",
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001488 "next_tables" : {
Keesjan Karsten23368892018-05-22 10:46:01 +00001489 "act_5" : "node_17"
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001490 },
1491 "default_entry" : {
Keesjan Karsten23368892018-05-22 10:46:01 +00001492 "action_id" : 14,
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001493 "action_const" : true,
1494 "action_data" : [],
1495 "action_entry_const" : true
1496 }
1497 },
1498 {
Keesjan Karsten23368892018-05-22 10:46:01 +00001499 "name" : "tbl_act_5",
1500 "id" : 9,
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001501 "key" : [],
1502 "match_type" : "exact",
1503 "type" : "simple",
1504 "max_size" : 1024,
1505 "with_counters" : false,
1506 "support_timeout" : false,
1507 "direct_meters" : null,
Keesjan Karsten23368892018-05-22 10:46:01 +00001508 "action_ids" : [13],
1509 "actions" : ["act_4"],
1510 "base_default_next" : "node_19",
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001511 "next_tables" : {
Keesjan Karsten23368892018-05-22 10:46:01 +00001512 "act_4" : "node_19"
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001513 },
1514 "default_entry" : {
Keesjan Karsten23368892018-05-22 10:46:01 +00001515 "action_id" : 13,
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001516 "action_const" : true,
1517 "action_data" : [],
1518 "action_entry_const" : true
1519 }
1520 },
1521 {
Keesjan Karsten23368892018-05-22 10:46:01 +00001522 "name" : "tbl_act_6",
1523 "id" : 10,
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001524 "key" : [],
1525 "match_type" : "exact",
1526 "type" : "simple",
1527 "max_size" : 1024,
1528 "with_counters" : false,
1529 "support_timeout" : false,
1530 "direct_meters" : null,
Keesjan Karsten23368892018-05-22 10:46:01 +00001531 "action_ids" : [15],
1532 "actions" : ["act_6"],
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001533 "base_default_next" : null,
1534 "next_tables" : {
Keesjan Karsten23368892018-05-22 10:46:01 +00001535 "act_6" : null
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001536 },
1537 "default_entry" : {
Keesjan Karsten23368892018-05-22 10:46:01 +00001538 "action_id" : 15,
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001539 "action_const" : true,
1540 "action_data" : [],
1541 "action_entry_const" : true
1542 }
1543 }
1544 ],
1545 "action_profiles" : [],
1546 "conditionals" : [
1547 {
Keesjan Karsten23368892018-05-22 10:46:01 +00001548 "name" : "node_17",
1549 "id" : 4,
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001550 "source_info" : {
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001551 "filename" : "include/port_meters.p4",
1552 "line" : 42,
1553 "column" : 12,
Keesjan Karsten23368892018-05-22 10:46:01 +00001554 "source_fragment" : "egress_color == MeterColor_RED"
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001555 },
1556 "expression" : {
1557 "type" : "expression",
1558 "value" : {
1559 "op" : "==",
1560 "left" : {
1561 "type" : "field",
1562 "value" : ["scalars", "port_meters_egress_egress_color_0"]
1563 },
1564 "right" : {
1565 "type" : "hexstr",
Keesjan Karsten23368892018-05-22 10:46:01 +00001566 "value" : "0x02"
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001567 }
1568 }
1569 },
Keesjan Karsten23368892018-05-22 10:46:01 +00001570 "true_next" : "tbl_act_5",
1571 "false_next" : "node_19"
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001572 },
1573 {
Keesjan Karsten23368892018-05-22 10:46:01 +00001574 "name" : "node_19",
1575 "id" : 5,
Frank Wangd7e3b4b2017-09-24 13:37:54 +09001576 "source_info" : {
1577 "filename" : "include/packet_io.p4",
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001578 "line" : 37,
1579 "column" : 12,
1580 "source_fragment" : "standard_metadata.egress_port == CPU_PORT"
1581 },
1582 "expression" : {
1583 "type" : "expression",
1584 "value" : {
1585 "op" : "==",
1586 "left" : {
1587 "type" : "field",
1588 "value" : ["standard_metadata", "egress_port"]
1589 },
1590 "right" : {
1591 "type" : "hexstr",
1592 "value" : "0x00ff"
1593 }
1594 }
1595 },
1596 "false_next" : null,
Keesjan Karsten23368892018-05-22 10:46:01 +00001597 "true_next" : "tbl_act_6"
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001598 }
1599 ]
1600 }
1601 ],
1602 "checksums" : [],
1603 "force_arith" : [],
1604 "extern_instances" : [],
1605 "field_aliases" : [
1606 [
1607 "queueing_metadata.enq_timestamp",
1608 ["standard_metadata", "enq_timestamp"]
1609 ],
1610 [
1611 "queueing_metadata.enq_qdepth",
1612 ["standard_metadata", "enq_qdepth"]
1613 ],
1614 [
1615 "queueing_metadata.deq_timedelta",
1616 ["standard_metadata", "deq_timedelta"]
1617 ],
1618 [
1619 "queueing_metadata.deq_qdepth",
1620 ["standard_metadata", "deq_qdepth"]
1621 ],
1622 [
1623 "intrinsic_metadata.ingress_global_timestamp",
1624 ["standard_metadata", "ingress_global_timestamp"]
1625 ],
1626 [
Carmelo Cascone81929aa2018-04-07 01:38:55 -07001627 "intrinsic_metadata.egress_global_timestamp",
1628 ["standard_metadata", "egress_global_timestamp"]
1629 ],
1630 [
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001631 "intrinsic_metadata.lf_field_list",
1632 ["standard_metadata", "lf_field_list"]
1633 ],
1634 [
1635 "intrinsic_metadata.mcast_grp",
1636 ["standard_metadata", "mcast_grp"]
1637 ],
1638 [
1639 "intrinsic_metadata.resubmit_flag",
1640 ["standard_metadata", "resubmit_flag"]
1641 ],
1642 [
1643 "intrinsic_metadata.egress_rid",
1644 ["standard_metadata", "egress_rid"]
Carmelo Cascone81929aa2018-04-07 01:38:55 -07001645 ],
1646 [
1647 "intrinsic_metadata.recirculate_flag",
1648 ["standard_metadata", "recirculate_flag"]
Carmelo Casconeca94bcf2017-10-27 14:16:59 -07001649 ]
1650 ]
1651}