blob: cdaefbca2a62192c2359e77353f39dc9584d45d4 [file] [log] [blame]
Yi Tsengbe342052017-11-03 10:21:23 -07001{
Yi Tseng1d842672017-11-28 16:06:52 -08002 "program" : "p4c-out/bmv2/fabric.p4i",
Yi Tsengbe342052017-11-03 10:21:23 -07003 "__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" : [
Yi Tsengc6844f52017-12-19 11:58:25 -080012 ["tmp", 4, false],
13 ["tmp_0", 32, false],
Yi Tsengbe342052017-11-03 10:21:23 -070014 ["tmp_1", 32, false],
Yi Tseng1d842672017-11-28 16:06:52 -080015 ["next_tmp_0", 1, false],
Yi Tsengbe342052017-11-03 10:21:23 -070016 ["fabric_metadata_t.fwd_type", 3, false],
17 ["fabric_metadata_t.next_id", 32, false],
Yi Tsengbe342052017-11-03 10:21:23 -070018 ["fabric_metadata_t.pop_vlan_at_egress", 1, false],
19 ["fabric_metadata_t.ip_proto", 8, false],
20 ["fabric_metadata_t.l4_src_port", 16, false],
Yi Tsengf55eaa82017-11-29 15:51:28 -080021 ["fabric_metadata_t.l4_dst_port", 16, false],
Yi Tseng1d842672017-11-28 16:06:52 -080022 ["fabric_metadata_t.original_ether_type", 16, false],
Yi Tsengc6844f52017-12-19 11:58:25 -080023 ["_padding_0", 7, false]
24 ]
25 },
26 {
27 "name" : "ethernet_t",
28 "id" : 1,
29 "fields" : [
30 ["dst_addr", 48, false],
31 ["src_addr", 48, false],
32 ["ether_type", 16, false]
33 ]
34 },
35 {
36 "name" : "vlan_tag_t",
37 "id" : 2,
38 "fields" : [
39 ["pri", 3, false],
40 ["cfi", 1, false],
41 ["vlan_id", 12, false],
42 ["ether_type", 16, false]
43 ]
44 },
45 {
46 "name" : "mpls_t",
47 "id" : 3,
48 "fields" : [
49 ["label", 20, false],
50 ["tc", 3, false],
51 ["bos", 1, false],
52 ["ttl", 8, false]
Yi Tsengbe342052017-11-03 10:21:23 -070053 ]
54 },
55 {
56 "name" : "ipv4_t",
Yi Tsengc6844f52017-12-19 11:58:25 -080057 "id" : 4,
Yi Tsengbe342052017-11-03 10:21:23 -070058 "fields" : [
59 ["version", 4, false],
60 ["ihl", 4, false],
61 ["diffserv", 8, false],
62 ["total_len", 16, false],
63 ["identification", 16, false],
64 ["flags", 3, false],
65 ["frag_offset", 13, false],
66 ["ttl", 8, false],
67 ["protocol", 8, false],
68 ["hdr_checksum", 16, false],
69 ["src_addr", 32, false],
70 ["dst_addr", 32, false]
71 ]
72 },
73 {
Yi Tsengbe342052017-11-03 10:21:23 -070074 "name" : "ipv6_t",
75 "id" : 5,
76 "fields" : [
77 ["version", 4, false],
78 ["traffic_class", 8, false],
79 ["flow_label", 20, false],
80 ["payload_len", 16, false],
81 ["next_hdr", 8, false],
82 ["hop_limit", 8, false],
83 ["src_addr", 128, false],
84 ["dst_addr", 128, false]
85 ]
86 },
87 {
88 "name" : "arp_t",
89 "id" : 6,
90 "fields" : [
91 ["hw_type", 16, false],
92 ["proto_type", 16, false],
93 ["hw_addr_len", 8, false],
94 ["proto_addr_len", 8, false],
95 ["opcode", 16, false]
96 ]
97 },
98 {
99 "name" : "tcp_t",
100 "id" : 7,
101 "fields" : [
102 ["src_port", 16, false],
103 ["dst_port", 16, false],
104 ["seq_no", 32, false],
105 ["ack_no", 32, false],
106 ["data_offset", 4, false],
107 ["res", 3, false],
108 ["ecn", 3, false],
109 ["ctrl", 6, false],
110 ["window", 16, false],
111 ["checksum", 16, false],
112 ["urgent_ptr", 16, false]
113 ]
114 },
115 {
116 "name" : "udp_t",
117 "id" : 8,
118 "fields" : [
119 ["src_port", 16, false],
120 ["dst_port", 16, false],
121 ["len", 16, false],
122 ["checksum", 16, false]
123 ]
124 },
125 {
126 "name" : "icmp_t",
127 "id" : 9,
128 "fields" : [
129 ["icmp_type", 8, false],
130 ["icmp_code", 8, false],
Yi Tsengf73a5532017-11-17 15:58:57 -0800131 ["checksum", 16, false],
132 ["identifier", 16, false],
133 ["sequence_number", 16, false],
134 ["timestamp", 64, false]
Yi Tsengbe342052017-11-03 10:21:23 -0700135 ]
136 },
137 {
138 "name" : "packet_out_header_t",
139 "id" : 10,
140 "fields" : [
141 ["egress_port", 9, false],
Yi Tseng1d842672017-11-28 16:06:52 -0800142 ["_pad", 7, false]
Yi Tsengbe342052017-11-03 10:21:23 -0700143 ]
144 },
145 {
146 "name" : "packet_in_header_t",
147 "id" : 11,
148 "fields" : [
149 ["ingress_port", 9, false],
Yi Tseng1d842672017-11-28 16:06:52 -0800150 ["_pad", 7, false]
Yi Tsengbe342052017-11-03 10:21:23 -0700151 ]
152 },
153 {
154 "name" : "standard_metadata",
155 "id" : 12,
156 "fields" : [
157 ["ingress_port", 9, false],
158 ["egress_spec", 9, false],
159 ["egress_port", 9, false],
160 ["clone_spec", 32, false],
161 ["instance_type", 32, false],
162 ["drop", 1, false],
163 ["recirculate_port", 16, false],
164 ["packet_length", 32, false],
165 ["enq_timestamp", 32, false],
166 ["enq_qdepth", 19, false],
167 ["deq_timedelta", 32, false],
168 ["deq_qdepth", 19, false],
169 ["ingress_global_timestamp", 48, false],
170 ["lf_field_list", 32, false],
171 ["mcast_grp", 16, false],
172 ["resubmit_flag", 1, false],
173 ["egress_rid", 16, false],
174 ["checksum_error", 1, false],
Yi Tseng1d842672017-11-28 16:06:52 -0800175 ["_padding", 4, false]
Yi Tsengbe342052017-11-03 10:21:23 -0700176 ]
177 }
178 ],
179 "headers" : [
180 {
Yi Tsengbe342052017-11-03 10:21:23 -0700181 "name" : "scalars",
Yi Tsengc6844f52017-12-19 11:58:25 -0800182 "id" : 0,
Yi Tsengbe342052017-11-03 10:21:23 -0700183 "header_type" : "scalars_0",
184 "metadata" : true,
185 "pi_omit" : true
186 },
187 {
188 "name" : "standard_metadata",
Yi Tsengc6844f52017-12-19 11:58:25 -0800189 "id" : 1,
Yi Tsengbe342052017-11-03 10:21:23 -0700190 "header_type" : "standard_metadata",
191 "metadata" : true,
192 "pi_omit" : true
193 },
194 {
195 "name" : "ethernet",
Yi Tsengc6844f52017-12-19 11:58:25 -0800196 "id" : 2,
Yi Tsengbe342052017-11-03 10:21:23 -0700197 "header_type" : "ethernet_t",
198 "metadata" : false,
199 "pi_omit" : true
200 },
201 {
202 "name" : "vlan_tag",
Yi Tsengc6844f52017-12-19 11:58:25 -0800203 "id" : 3,
Yi Tsengbe342052017-11-03 10:21:23 -0700204 "header_type" : "vlan_tag_t",
205 "metadata" : false,
206 "pi_omit" : true
207 },
208 {
Yi Tsengbe342052017-11-03 10:21:23 -0700209 "name" : "mpls",
Yi Tsengbd46d052018-01-22 17:18:16 -0800210 "id" : 4,
Yi Tsengbe342052017-11-03 10:21:23 -0700211 "header_type" : "mpls_t",
212 "metadata" : false,
213 "pi_omit" : true
214 },
215 {
216 "name" : "ipv4",
Yi Tsengbd46d052018-01-22 17:18:16 -0800217 "id" : 5,
Yi Tsengbe342052017-11-03 10:21:23 -0700218 "header_type" : "ipv4_t",
219 "metadata" : false,
220 "pi_omit" : true
221 },
222 {
223 "name" : "ipv6",
Yi Tsengbd46d052018-01-22 17:18:16 -0800224 "id" : 6,
Yi Tsengbe342052017-11-03 10:21:23 -0700225 "header_type" : "ipv6_t",
226 "metadata" : false,
227 "pi_omit" : true
228 },
229 {
230 "name" : "arp",
Yi Tsengbd46d052018-01-22 17:18:16 -0800231 "id" : 7,
Yi Tsengbe342052017-11-03 10:21:23 -0700232 "header_type" : "arp_t",
233 "metadata" : false,
234 "pi_omit" : true
235 },
236 {
237 "name" : "tcp",
Yi Tsengbd46d052018-01-22 17:18:16 -0800238 "id" : 8,
Yi Tsengbe342052017-11-03 10:21:23 -0700239 "header_type" : "tcp_t",
240 "metadata" : false,
241 "pi_omit" : true
242 },
243 {
244 "name" : "udp",
Yi Tsengbd46d052018-01-22 17:18:16 -0800245 "id" : 9,
Yi Tsengbe342052017-11-03 10:21:23 -0700246 "header_type" : "udp_t",
247 "metadata" : false,
248 "pi_omit" : true
249 },
250 {
251 "name" : "icmp",
Yi Tsengbd46d052018-01-22 17:18:16 -0800252 "id" : 10,
Yi Tsengbe342052017-11-03 10:21:23 -0700253 "header_type" : "icmp_t",
254 "metadata" : false,
255 "pi_omit" : true
256 },
257 {
258 "name" : "packet_out",
Yi Tsengbd46d052018-01-22 17:18:16 -0800259 "id" : 11,
Yi Tsengbe342052017-11-03 10:21:23 -0700260 "header_type" : "packet_out_header_t",
261 "metadata" : false,
262 "pi_omit" : true
263 },
264 {
265 "name" : "packet_in",
Yi Tsengbd46d052018-01-22 17:18:16 -0800266 "id" : 12,
Yi Tsengbe342052017-11-03 10:21:23 -0700267 "header_type" : "packet_in_header_t",
268 "metadata" : false,
269 "pi_omit" : true
270 }
271 ],
272 "header_stacks" : [],
273 "header_union_types" : [],
274 "header_unions" : [],
275 "header_union_stacks" : [],
276 "field_lists" : [],
277 "errors" : [
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800278 ["NoError", 1],
279 ["PacketTooShort", 2],
280 ["NoMatch", 3],
281 ["StackOutOfBounds", 4],
282 ["HeaderTooShort", 5],
283 ["ParserTimeout", 6]
Yi Tsengbe342052017-11-03 10:21:23 -0700284 ],
285 "enums" : [],
286 "parsers" : [
287 {
288 "name" : "parser",
289 "id" : 0,
290 "init_state" : "start",
291 "parse_states" : [
292 {
293 "name" : "start",
294 "id" : 0,
295 "parser_ops" : [],
296 "transitions" : [
297 {
298 "value" : "0x00ff",
299 "mask" : null,
300 "next_state" : "parse_packet_out"
301 },
302 {
303 "value" : "default",
304 "mask" : null,
305 "next_state" : "parse_ethernet"
306 }
307 ],
308 "transition_key" : [
309 {
310 "type" : "field",
311 "value" : ["standard_metadata", "ingress_port"]
312 }
313 ]
314 },
315 {
316 "name" : "parse_packet_out",
317 "id" : 1,
318 "parser_ops" : [
319 {
320 "parameters" : [
321 {
322 "type" : "regular",
323 "value" : "packet_out"
324 }
325 ],
326 "op" : "extract"
327 }
328 ],
329 "transitions" : [
330 {
331 "value" : "default",
332 "mask" : null,
333 "next_state" : "parse_ethernet"
334 }
335 ],
336 "transition_key" : []
337 },
338 {
339 "name" : "parse_ethernet",
340 "id" : 2,
341 "parser_ops" : [
342 {
343 "parameters" : [
344 {
345 "type" : "regular",
346 "value" : "ethernet"
347 }
348 ],
349 "op" : "extract"
Yi Tseng1d842672017-11-28 16:06:52 -0800350 },
351 {
352 "parameters" : [
353 {
354 "type" : "field",
355 "value" : ["scalars", "fabric_metadata_t.original_ether_type"]
356 },
357 {
358 "type" : "field",
359 "value" : ["ethernet", "ether_type"]
360 }
361 ],
362 "op" : "set"
Yi Tsengbe342052017-11-03 10:21:23 -0700363 }
364 ],
365 "transitions" : [
366 {
Yi Tsengbe342052017-11-03 10:21:23 -0700367 "value" : "0x8100",
368 "mask" : null,
369 "next_state" : "parse_vlan_tag"
370 },
371 {
372 "value" : "0x8847",
373 "mask" : null,
374 "next_state" : "parse_mpls"
375 },
376 {
377 "value" : "0x0806",
378 "mask" : null,
379 "next_state" : "parse_arp"
380 },
381 {
382 "value" : "0x0800",
383 "mask" : null,
384 "next_state" : "parse_ipv4"
385 },
386 {
Yi Tsengbe342052017-11-03 10:21:23 -0700387 "value" : "default",
388 "mask" : null,
389 "next_state" : null
390 }
391 ],
392 "transition_key" : [
393 {
394 "type" : "field",
395 "value" : ["ethernet", "ether_type"]
396 }
397 ]
398 },
399 {
400 "name" : "parse_vlan_tag",
401 "id" : 3,
402 "parser_ops" : [
403 {
404 "parameters" : [
405 {
406 "type" : "regular",
407 "value" : "vlan_tag"
408 }
409 ],
410 "op" : "extract"
411 }
412 ],
413 "transitions" : [
414 {
Yi Tsengbe342052017-11-03 10:21:23 -0700415 "value" : "0x0806",
416 "mask" : null,
417 "next_state" : "parse_arp"
418 },
419 {
420 "value" : "0x0800",
421 "mask" : null,
422 "next_state" : "parse_ipv4"
423 },
424 {
Yi Tsengbd46d052018-01-22 17:18:16 -0800425 "value" : "0x8847",
Yi Tsengbe342052017-11-03 10:21:23 -0700426 "mask" : null,
Yi Tsengbd46d052018-01-22 17:18:16 -0800427 "next_state" : "parse_mpls"
Yi Tsengbe342052017-11-03 10:21:23 -0700428 },
429 {
430 "value" : "default",
431 "mask" : null,
432 "next_state" : null
433 }
434 ],
435 "transition_key" : [
436 {
437 "type" : "field",
438 "value" : ["vlan_tag", "ether_type"]
439 }
440 ]
441 },
442 {
443 "name" : "parse_mpls",
Yi Tsengbd46d052018-01-22 17:18:16 -0800444 "id" : 4,
Yi Tsengbe342052017-11-03 10:21:23 -0700445 "parser_ops" : [
446 {
447 "parameters" : [
448 {
449 "type" : "regular",
450 "value" : "mpls"
451 }
452 ],
453 "op" : "extract"
454 },
455 {
456 "parameters" : [
457 {
458 "type" : "field",
Yi Tsengc6844f52017-12-19 11:58:25 -0800459 "value" : ["scalars", "tmp"]
Yi Tsengbe342052017-11-03 10:21:23 -0700460 },
461 {
462 "type" : "lookahead",
Yi Tsengc6844f52017-12-19 11:58:25 -0800463 "value" : [0, 4]
Yi Tsengbe342052017-11-03 10:21:23 -0700464 }
465 ],
466 "op" : "set"
467 }
468 ],
469 "transitions" : [
470 {
471 "value" : "0x04",
472 "mask" : null,
473 "next_state" : "parse_ipv4"
474 },
475 {
Yi Tsengbe342052017-11-03 10:21:23 -0700476 "value" : "default",
477 "mask" : null,
478 "next_state" : "parse_ethernet"
479 }
480 ],
481 "transition_key" : [
482 {
483 "type" : "field",
Yi Tsengc6844f52017-12-19 11:58:25 -0800484 "value" : ["scalars", "tmp"]
Yi Tsengbe342052017-11-03 10:21:23 -0700485 }
486 ]
487 },
488 {
489 "name" : "parse_ipv4",
Yi Tsengbd46d052018-01-22 17:18:16 -0800490 "id" : 5,
Yi Tsengbe342052017-11-03 10:21:23 -0700491 "parser_ops" : [
492 {
493 "parameters" : [
494 {
495 "type" : "regular",
496 "value" : "ipv4"
497 }
498 ],
499 "op" : "extract"
500 },
501 {
502 "parameters" : [
503 {
504 "type" : "field",
505 "value" : ["scalars", "fabric_metadata_t.ip_proto"]
506 },
507 {
508 "type" : "field",
509 "value" : ["ipv4", "protocol"]
510 }
511 ],
512 "op" : "set"
513 }
514 ],
515 "transitions" : [
516 {
517 "value" : "0x06",
518 "mask" : null,
519 "next_state" : "parse_tcp"
520 },
521 {
522 "value" : "0x11",
523 "mask" : null,
524 "next_state" : "parse_udp"
525 },
526 {
527 "value" : "0x01",
528 "mask" : null,
529 "next_state" : "parse_icmp"
530 },
531 {
532 "value" : "default",
533 "mask" : null,
534 "next_state" : null
535 }
536 ],
537 "transition_key" : [
538 {
539 "type" : "field",
540 "value" : ["ipv4", "protocol"]
541 }
542 ]
543 },
544 {
Yi Tsengbe342052017-11-03 10:21:23 -0700545 "name" : "parse_arp",
Carmelo Casconeed88f2b2018-01-26 17:36:34 -0800546 "id" : 6,
Yi Tsengbe342052017-11-03 10:21:23 -0700547 "parser_ops" : [
548 {
549 "parameters" : [
550 {
551 "type" : "regular",
552 "value" : "arp"
553 }
554 ],
555 "op" : "extract"
556 }
557 ],
558 "transitions" : [
559 {
560 "value" : "default",
561 "mask" : null,
562 "next_state" : null
563 }
564 ],
565 "transition_key" : []
566 },
567 {
568 "name" : "parse_tcp",
Carmelo Casconeed88f2b2018-01-26 17:36:34 -0800569 "id" : 7,
Yi Tsengbe342052017-11-03 10:21:23 -0700570 "parser_ops" : [
571 {
572 "parameters" : [
573 {
574 "type" : "regular",
575 "value" : "tcp"
576 }
577 ],
578 "op" : "extract"
579 },
580 {
581 "parameters" : [
582 {
583 "type" : "field",
584 "value" : ["scalars", "fabric_metadata_t.l4_src_port"]
585 },
586 {
587 "type" : "field",
588 "value" : ["tcp", "src_port"]
589 }
590 ],
591 "op" : "set"
592 },
593 {
594 "parameters" : [
595 {
596 "type" : "field",
597 "value" : ["scalars", "fabric_metadata_t.l4_dst_port"]
598 },
599 {
600 "type" : "field",
601 "value" : ["tcp", "dst_port"]
602 }
603 ],
604 "op" : "set"
605 }
606 ],
607 "transitions" : [
608 {
609 "value" : "default",
610 "mask" : null,
611 "next_state" : null
612 }
613 ],
614 "transition_key" : []
615 },
616 {
617 "name" : "parse_udp",
Carmelo Casconeed88f2b2018-01-26 17:36:34 -0800618 "id" : 8,
Yi Tsengbe342052017-11-03 10:21:23 -0700619 "parser_ops" : [
620 {
621 "parameters" : [
622 {
623 "type" : "regular",
624 "value" : "udp"
625 }
626 ],
627 "op" : "extract"
628 },
629 {
630 "parameters" : [
631 {
632 "type" : "field",
633 "value" : ["scalars", "fabric_metadata_t.l4_src_port"]
634 },
635 {
636 "type" : "field",
637 "value" : ["udp", "src_port"]
638 }
639 ],
640 "op" : "set"
641 },
642 {
643 "parameters" : [
644 {
645 "type" : "field",
646 "value" : ["scalars", "fabric_metadata_t.l4_dst_port"]
647 },
648 {
649 "type" : "field",
650 "value" : ["udp", "dst_port"]
651 }
652 ],
653 "op" : "set"
654 }
655 ],
656 "transitions" : [
657 {
658 "value" : "default",
659 "mask" : null,
660 "next_state" : null
661 }
662 ],
663 "transition_key" : []
664 },
665 {
666 "name" : "parse_icmp",
Carmelo Casconeed88f2b2018-01-26 17:36:34 -0800667 "id" : 9,
Yi Tsengbe342052017-11-03 10:21:23 -0700668 "parser_ops" : [
669 {
670 "parameters" : [
671 {
672 "type" : "regular",
673 "value" : "icmp"
674 }
675 ],
676 "op" : "extract"
677 }
678 ],
679 "transitions" : [
680 {
681 "value" : "default",
682 "mask" : null,
683 "next_state" : null
684 }
685 ],
686 "transition_key" : []
687 }
688 ]
689 }
690 ],
691 "deparsers" : [
692 {
693 "name" : "deparser",
694 "id" : 0,
695 "source_info" : {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800696 "filename" : "include/parser.p4",
Carmelo Casconeed88f2b2018-01-26 17:36:34 -0800697 "line" : 166,
Yi Tsengbe342052017-11-03 10:21:23 -0700698 "column" : 8,
699 "source_fragment" : "FabricDeparser"
700 },
Carmelo Casconeed88f2b2018-01-26 17:36:34 -0800701 "order" : ["packet_in", "ethernet", "vlan_tag", "mpls", "arp", "ipv4", "tcp", "udp", "icmp"]
Yi Tsengbe342052017-11-03 10:21:23 -0700702 }
703 ],
704 "meter_arrays" : [],
705 "counter_arrays" : [
706 {
Yi Tseng3a5731e2018-01-22 11:38:58 -0800707 "name" : "filtering.ingress_port_vlan_counter",
Yi Tseng1d842672017-11-28 16:06:52 -0800708 "id" : 0,
Yi Tseng3a5731e2018-01-22 11:38:58 -0800709 "is_direct" : true,
710 "binding" : "filtering.ingress_port_vlan"
711 },
712 {
713 "name" : "filtering.fwd_classifier_counter",
714 "id" : 1,
715 "is_direct" : true,
716 "binding" : "filtering.fwd_classifier"
717 },
718 {
719 "name" : "forwarding.bridging_counter",
720 "id" : 2,
721 "is_direct" : true,
722 "binding" : "forwarding.bridging"
723 },
724 {
725 "name" : "forwarding.mpls_counter",
726 "id" : 3,
727 "is_direct" : true,
728 "binding" : "forwarding.mpls"
729 },
730 {
731 "name" : "forwarding.unicast_v4_counter",
732 "id" : 4,
733 "is_direct" : true,
734 "binding" : "forwarding.unicast_v4"
735 },
736 {
737 "name" : "forwarding.multicast_v4_counter",
738 "id" : 5,
739 "is_direct" : true,
740 "binding" : "forwarding.multicast_v4"
741 },
742 {
Yi Tseng3a5731e2018-01-22 11:38:58 -0800743 "name" : "forwarding.acl_counter",
Carmelo Casconeed88f2b2018-01-26 17:36:34 -0800744 "id" : 6,
Yi Tseng3a5731e2018-01-22 11:38:58 -0800745 "is_direct" : true,
746 "binding" : "forwarding.acl"
747 },
748 {
749 "name" : "next.simple_counter",
Carmelo Casconeed88f2b2018-01-26 17:36:34 -0800750 "id" : 7,
Yi Tseng3a5731e2018-01-22 11:38:58 -0800751 "is_direct" : true,
752 "binding" : "next.simple"
753 },
754 {
755 "name" : "next.hashed_counter",
Carmelo Casconeed88f2b2018-01-26 17:36:34 -0800756 "id" : 8,
Yi Tseng3a5731e2018-01-22 11:38:58 -0800757 "is_direct" : true,
758 "binding" : "next.hashed"
759 },
760 {
761 "name" : "next.broadcast_counter",
Carmelo Casconeed88f2b2018-01-26 17:36:34 -0800762 "id" : 9,
Yi Tseng3a5731e2018-01-22 11:38:58 -0800763 "is_direct" : true,
764 "binding" : "next.broadcast"
765 },
766 {
767 "name" : "port_counters_control.egress_port_counter",
Carmelo Casconeed88f2b2018-01-26 17:36:34 -0800768 "id" : 10,
Yi Tsengbe342052017-11-03 10:21:23 -0700769 "source_info" : {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800770 "filename" : "include/control/port_counter.p4",
Yi Tsengbe342052017-11-03 10:21:23 -0700771 "line" : 23,
772 "column" : 38,
773 "source_fragment" : "egress_port_counter"
774 },
775 "size" : 511,
776 "is_direct" : false
777 },
778 {
779 "name" : "port_counters_control.ingress_port_counter",
Carmelo Casconeed88f2b2018-01-26 17:36:34 -0800780 "id" : 11,
Yi Tsengbe342052017-11-03 10:21:23 -0700781 "source_info" : {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800782 "filename" : "include/control/port_counter.p4",
Yi Tsengbe342052017-11-03 10:21:23 -0700783 "line" : 24,
784 "column" : 38,
785 "source_fragment" : "ingress_port_counter"
786 },
787 "size" : 511,
788 "is_direct" : false
789 }
790 ],
791 "register_arrays" : [],
792 "calculations" : [
793 {
794 "name" : "calc",
795 "id" : 0,
796 "source_info" : {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800797 "filename" : "include/checksum.p4",
Carmelo Casconeed88f2b2018-01-26 17:36:34 -0800798 "line" : 56,
Yi Tsengbe342052017-11-03 10:21:23 -0700799 "column" : 8,
800 "source_fragment" : "verify_checksum(hdr.ipv4.isValid(), ..."
801 },
802 "algo" : "csum16",
803 "input" : [
804 {
805 "type" : "field",
806 "value" : ["ipv4", "version"]
807 },
808 {
809 "type" : "field",
810 "value" : ["ipv4", "ihl"]
811 },
812 {
813 "type" : "field",
814 "value" : ["ipv4", "diffserv"]
815 },
816 {
817 "type" : "field",
818 "value" : ["ipv4", "total_len"]
819 },
820 {
821 "type" : "field",
822 "value" : ["ipv4", "identification"]
823 },
824 {
825 "type" : "field",
826 "value" : ["ipv4", "flags"]
827 },
828 {
829 "type" : "field",
830 "value" : ["ipv4", "frag_offset"]
831 },
832 {
833 "type" : "field",
834 "value" : ["ipv4", "ttl"]
835 },
836 {
837 "type" : "field",
838 "value" : ["ipv4", "protocol"]
839 },
840 {
841 "type" : "field",
842 "value" : ["ipv4", "src_addr"]
843 },
844 {
845 "type" : "field",
846 "value" : ["ipv4", "dst_addr"]
847 }
848 ]
849 },
850 {
851 "name" : "calc_0",
852 "id" : 1,
853 "source_info" : {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800854 "filename" : "include/checksum.p4",
855 "line" : 28,
Yi Tsengbe342052017-11-03 10:21:23 -0700856 "column" : 8,
857 "source_fragment" : "update_checksum(hdr.ipv4.isValid(), ..."
858 },
859 "algo" : "csum16",
860 "input" : [
861 {
862 "type" : "field",
863 "value" : ["ipv4", "version"]
864 },
865 {
866 "type" : "field",
867 "value" : ["ipv4", "ihl"]
868 },
869 {
870 "type" : "field",
871 "value" : ["ipv4", "diffserv"]
872 },
873 {
874 "type" : "field",
875 "value" : ["ipv4", "total_len"]
876 },
877 {
878 "type" : "field",
879 "value" : ["ipv4", "identification"]
880 },
881 {
882 "type" : "field",
883 "value" : ["ipv4", "flags"]
884 },
885 {
886 "type" : "field",
887 "value" : ["ipv4", "frag_offset"]
888 },
889 {
890 "type" : "field",
891 "value" : ["ipv4", "ttl"]
892 },
893 {
894 "type" : "field",
895 "value" : ["ipv4", "protocol"]
896 },
897 {
898 "type" : "field",
899 "value" : ["ipv4", "src_addr"]
900 },
901 {
902 "type" : "field",
903 "value" : ["ipv4", "dst_addr"]
904 }
905 ]
Yi Tsengbe342052017-11-03 10:21:23 -0700906 }
907 ],
908 "learn_lists" : [],
909 "actions" : [
910 {
911 "name" : "nop",
912 "id" : 0,
913 "runtime_data" : [],
914 "primitives" : []
915 },
916 {
917 "name" : "nop",
918 "id" : 1,
919 "runtime_data" : [],
920 "primitives" : []
921 },
922 {
Yi Tseng1d842672017-11-28 16:06:52 -0800923 "name" : "NoAction",
Yi Tsengbe342052017-11-03 10:21:23 -0700924 "id" : 2,
925 "runtime_data" : [],
Yi Tseng1d842672017-11-28 16:06:52 -0800926 "primitives" : []
Yi Tsengbe342052017-11-03 10:21:23 -0700927 },
928 {
Yi Tseng1d842672017-11-28 16:06:52 -0800929 "name" : "NoAction",
Yi Tsengbe342052017-11-03 10:21:23 -0700930 "id" : 3,
931 "runtime_data" : [],
Yi Tseng1d842672017-11-28 16:06:52 -0800932 "primitives" : []
Yi Tsengbe342052017-11-03 10:21:23 -0700933 },
934 {
935 "name" : "NoAction",
936 "id" : 4,
937 "runtime_data" : [],
938 "primitives" : []
939 },
940 {
941 "name" : "NoAction",
942 "id" : 5,
943 "runtime_data" : [],
944 "primitives" : []
945 },
946 {
947 "name" : "NoAction",
948 "id" : 6,
949 "runtime_data" : [],
950 "primitives" : []
951 },
952 {
953 "name" : "NoAction",
954 "id" : 7,
955 "runtime_data" : [],
956 "primitives" : []
957 },
958 {
959 "name" : "NoAction",
960 "id" : 8,
961 "runtime_data" : [],
962 "primitives" : []
963 },
964 {
Yi Tseng1d842672017-11-28 16:06:52 -0800965 "name" : "filtering.drop",
Carmelo Casconeed88f2b2018-01-26 17:36:34 -0800966 "id" : 9,
Yi Tsengbe342052017-11-03 10:21:23 -0700967 "runtime_data" : [],
Yi Tseng1d842672017-11-28 16:06:52 -0800968 "primitives" : [
969 {
970 "op" : "drop",
971 "parameters" : [],
972 "source_info" : {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800973 "filename" : "include/control/filtering.p4",
Yi Tseng3a5731e2018-01-22 11:38:58 -0800974 "line" : 31,
Yi Tseng1d842672017-11-28 16:06:52 -0800975 "column" : 8,
976 "source_fragment" : "mark_to_drop()"
977 }
978 }
979 ]
Yi Tsengbe342052017-11-03 10:21:23 -0700980 },
981 {
Yi Tsengbe342052017-11-03 10:21:23 -0700982 "name" : "filtering.set_vlan",
Carmelo Casconeed88f2b2018-01-26 17:36:34 -0800983 "id" : 10,
Yi Tsengbe342052017-11-03 10:21:23 -0700984 "runtime_data" : [
985 {
986 "name" : "new_vlan_id",
987 "bitwidth" : 12
988 }
989 ],
990 "primitives" : [
991 {
992 "op" : "assign",
993 "parameters" : [
994 {
995 "type" : "field",
996 "value" : ["vlan_tag", "vlan_id"]
997 },
998 {
999 "type" : "runtime_data",
1000 "value" : 0
1001 }
1002 ],
1003 "source_info" : {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001004 "filename" : "include/control/filtering.p4",
Yi Tseng3a5731e2018-01-22 11:38:58 -08001005 "line" : 35,
Yi Tsengbe342052017-11-03 10:21:23 -07001006 "column" : 8,
1007 "source_fragment" : "hdr.vlan_tag.vlan_id = new_vlan_id"
1008 }
1009 }
1010 ]
1011 },
1012 {
1013 "name" : "filtering.push_internal_vlan",
Carmelo Casconeed88f2b2018-01-26 17:36:34 -08001014 "id" : 11,
Yi Tsengbe342052017-11-03 10:21:23 -07001015 "runtime_data" : [
1016 {
1017 "name" : "new_vlan_id",
1018 "bitwidth" : 12
1019 }
1020 ],
1021 "primitives" : [
1022 {
1023 "op" : "add_header",
1024 "parameters" : [
1025 {
1026 "type" : "header",
1027 "value" : "vlan_tag"
1028 }
1029 ],
1030 "source_info" : {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001031 "filename" : "include/control/filtering.p4",
Yi Tseng3a5731e2018-01-22 11:38:58 -08001032 "line" : 41,
Yi Tsengbe342052017-11-03 10:21:23 -07001033 "column" : 8,
1034 "source_fragment" : "hdr.vlan_tag.setValid()"
1035 }
1036 },
1037 {
1038 "op" : "assign",
1039 "parameters" : [
1040 {
1041 "type" : "field",
1042 "value" : ["vlan_tag", "cfi"]
1043 },
1044 {
1045 "type" : "hexstr",
1046 "value" : "0x00"
1047 }
1048 ],
1049 "source_info" : {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001050 "filename" : "include/control/filtering.p4",
Yi Tseng3a5731e2018-01-22 11:38:58 -08001051 "line" : 42,
Yi Tsengbe342052017-11-03 10:21:23 -07001052 "column" : 8,
1053 "source_fragment" : "hdr.vlan_tag.cfi = 0"
1054 }
1055 },
1056 {
1057 "op" : "assign",
1058 "parameters" : [
1059 {
1060 "type" : "field",
1061 "value" : ["vlan_tag", "pri"]
1062 },
1063 {
1064 "type" : "hexstr",
1065 "value" : "0x00"
1066 }
1067 ],
1068 "source_info" : {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001069 "filename" : "include/control/filtering.p4",
Yi Tseng3a5731e2018-01-22 11:38:58 -08001070 "line" : 43,
Yi Tsengbe342052017-11-03 10:21:23 -07001071 "column" : 8,
1072 "source_fragment" : "hdr.vlan_tag.pri = 0"
1073 }
1074 },
1075 {
1076 "op" : "assign",
1077 "parameters" : [
1078 {
1079 "type" : "field",
1080 "value" : ["vlan_tag", "ether_type"]
1081 },
1082 {
Yi Tseng1d842672017-11-28 16:06:52 -08001083 "type" : "field",
1084 "value" : ["ethernet", "ether_type"]
1085 }
1086 ],
1087 "source_info" : {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001088 "filename" : "include/control/filtering.p4",
Yi Tseng3a5731e2018-01-22 11:38:58 -08001089 "line" : 44,
Yi Tseng1d842672017-11-28 16:06:52 -08001090 "column" : 8,
1091 "source_fragment" : "hdr.vlan_tag.ether_type = hdr.ethernet.ether_type"
1092 }
1093 },
1094 {
1095 "op" : "assign",
1096 "parameters" : [
1097 {
1098 "type" : "field",
1099 "value" : ["ethernet", "ether_type"]
1100 },
1101 {
Yi Tsengbe342052017-11-03 10:21:23 -07001102 "type" : "hexstr",
1103 "value" : "0x8100"
1104 }
1105 ],
1106 "source_info" : {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001107 "filename" : "include/control/../define.p4",
Yi Tsengf55eaa82017-11-29 15:51:28 -08001108 "line" : 32,
Yi Tsengbe342052017-11-03 10:21:23 -07001109 "column" : 31,
1110 "source_fragment" : "0x8100; ..."
1111 }
1112 },
1113 {
1114 "op" : "assign",
1115 "parameters" : [
1116 {
1117 "type" : "field",
1118 "value" : ["vlan_tag", "vlan_id"]
1119 },
1120 {
1121 "type" : "runtime_data",
1122 "value" : 0
1123 }
1124 ],
1125 "source_info" : {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001126 "filename" : "include/control/filtering.p4",
Yi Tseng3a5731e2018-01-22 11:38:58 -08001127 "line" : 35,
Yi Tsengbe342052017-11-03 10:21:23 -07001128 "column" : 8,
1129 "source_fragment" : "hdr.vlan_tag.vlan_id = new_vlan_id; ..."
1130 }
1131 },
1132 {
1133 "op" : "assign",
1134 "parameters" : [
1135 {
1136 "type" : "field",
1137 "value" : ["scalars", "fabric_metadata_t.pop_vlan_at_egress"]
1138 },
1139 {
1140 "type" : "expression",
1141 "value" : {
1142 "type" : "expression",
1143 "value" : {
1144 "op" : "b2d",
1145 "left" : null,
1146 "right" : {
1147 "type" : "bool",
1148 "value" : true
1149 }
1150 }
1151 }
1152 }
1153 ],
1154 "source_info" : {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001155 "filename" : "include/control/filtering.p4",
Yi Tseng3a5731e2018-01-22 11:38:58 -08001156 "line" : 49,
Yi Tsengbe342052017-11-03 10:21:23 -07001157 "column" : 8,
1158 "source_fragment" : "fabric_metadata.pop_vlan_at_egress = true"
1159 }
1160 }
1161 ]
1162 },
1163 {
1164 "name" : "filtering.set_forwarding_type",
Carmelo Casconeed88f2b2018-01-26 17:36:34 -08001165 "id" : 12,
Yi Tsengbe342052017-11-03 10:21:23 -07001166 "runtime_data" : [
1167 {
1168 "name" : "fwd_type",
1169 "bitwidth" : 3
1170 }
1171 ],
1172 "primitives" : [
1173 {
1174 "op" : "assign",
1175 "parameters" : [
1176 {
1177 "type" : "field",
1178 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
1179 },
1180 {
1181 "type" : "runtime_data",
1182 "value" : 0
1183 }
1184 ],
1185 "source_info" : {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001186 "filename" : "include/control/filtering.p4",
Yi Tseng3a5731e2018-01-22 11:38:58 -08001187 "line" : 53,
Yi Tsengbe342052017-11-03 10:21:23 -07001188 "column" : 8,
1189 "source_fragment" : "fabric_metadata.fwd_type = fwd_type"
1190 }
1191 }
1192 ]
1193 },
1194 {
Yi Tseng1d842672017-11-28 16:06:52 -08001195 "name" : "forwarding.drop",
Carmelo Casconeed88f2b2018-01-26 17:36:34 -08001196 "id" : 13,
Yi Tseng1d842672017-11-28 16:06:52 -08001197 "runtime_data" : [],
1198 "primitives" : [
1199 {
1200 "op" : "drop",
1201 "parameters" : [],
1202 "source_info" : {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001203 "filename" : "include/control/forwarding.p4",
Carmelo Casconeed88f2b2018-01-26 17:36:34 -08001204 "line" : 37,
Yi Tseng1d842672017-11-28 16:06:52 -08001205 "column" : 8,
1206 "source_fragment" : "mark_to_drop()"
1207 }
1208 }
1209 ]
1210 },
1211 {
Yi Tsengbe342052017-11-03 10:21:23 -07001212 "name" : "forwarding.set_next_id",
Carmelo Casconeed88f2b2018-01-26 17:36:34 -08001213 "id" : 14,
1214 "runtime_data" : [
1215 {
1216 "name" : "next_id",
1217 "bitwidth" : 32
1218 }
1219 ],
1220 "primitives" : [
1221 {
1222 "op" : "assign",
1223 "parameters" : [
1224 {
1225 "type" : "field",
1226 "value" : ["scalars", "fabric_metadata_t.next_id"]
1227 },
1228 {
1229 "type" : "runtime_data",
1230 "value" : 0
1231 }
1232 ],
1233 "source_info" : {
1234 "filename" : "include/control/forwarding.p4",
1235 "line" : 41,
1236 "column" : 8,
1237 "source_fragment" : "fabric_metadata.next_id = next_id"
1238 }
1239 }
1240 ]
1241 },
1242 {
1243 "name" : "forwarding.set_next_id",
1244 "id" : 15,
1245 "runtime_data" : [
1246 {
1247 "name" : "next_id",
1248 "bitwidth" : 32
1249 }
1250 ],
1251 "primitives" : [
1252 {
1253 "op" : "assign",
1254 "parameters" : [
1255 {
1256 "type" : "field",
1257 "value" : ["scalars", "fabric_metadata_t.next_id"]
1258 },
1259 {
1260 "type" : "runtime_data",
1261 "value" : 0
1262 }
1263 ],
1264 "source_info" : {
1265 "filename" : "include/control/forwarding.p4",
1266 "line" : 41,
1267 "column" : 8,
1268 "source_fragment" : "fabric_metadata.next_id = next_id"
1269 }
1270 }
1271 ]
1272 },
1273 {
1274 "name" : "forwarding.set_next_id",
Yi Tsengf55eaa82017-11-29 15:51:28 -08001275 "id" : 16,
1276 "runtime_data" : [
1277 {
1278 "name" : "next_id",
1279 "bitwidth" : 32
1280 }
1281 ],
1282 "primitives" : [
1283 {
1284 "op" : "assign",
1285 "parameters" : [
1286 {
1287 "type" : "field",
1288 "value" : ["scalars", "fabric_metadata_t.next_id"]
1289 },
1290 {
1291 "type" : "runtime_data",
1292 "value" : 0
1293 }
1294 ],
1295 "source_info" : {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001296 "filename" : "include/control/forwarding.p4",
Carmelo Casconeed88f2b2018-01-26 17:36:34 -08001297 "line" : 41,
Yi Tsengf55eaa82017-11-29 15:51:28 -08001298 "column" : 8,
1299 "source_fragment" : "fabric_metadata.next_id = next_id"
1300 }
1301 }
1302 ]
1303 },
1304 {
1305 "name" : "forwarding.set_next_id",
Yi Tsengbe342052017-11-03 10:21:23 -07001306 "id" : 17,
1307 "runtime_data" : [
1308 {
1309 "name" : "next_id",
1310 "bitwidth" : 32
1311 }
1312 ],
1313 "primitives" : [
1314 {
1315 "op" : "assign",
1316 "parameters" : [
1317 {
1318 "type" : "field",
1319 "value" : ["scalars", "fabric_metadata_t.next_id"]
1320 },
1321 {
1322 "type" : "runtime_data",
1323 "value" : 0
1324 }
1325 ],
1326 "source_info" : {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001327 "filename" : "include/control/forwarding.p4",
Carmelo Casconeed88f2b2018-01-26 17:36:34 -08001328 "line" : 41,
Yi Tsengbe342052017-11-03 10:21:23 -07001329 "column" : 8,
1330 "source_fragment" : "fabric_metadata.next_id = next_id"
1331 }
1332 }
1333 ]
1334 },
1335 {
Yi Tsengbe342052017-11-03 10:21:23 -07001336 "name" : "forwarding.pop_mpls_and_next",
Carmelo Casconeed88f2b2018-01-26 17:36:34 -08001337 "id" : 18,
Yi Tsengbe342052017-11-03 10:21:23 -07001338 "runtime_data" : [
1339 {
1340 "name" : "next_id",
1341 "bitwidth" : 32
1342 }
1343 ],
1344 "primitives" : [
1345 {
1346 "op" : "remove_header",
1347 "parameters" : [
1348 {
1349 "type" : "header",
1350 "value" : "mpls"
1351 }
1352 ],
1353 "source_info" : {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001354 "filename" : "include/control/forwarding.p4",
Carmelo Casconeed88f2b2018-01-26 17:36:34 -08001355 "line" : 45,
Yi Tsengbe342052017-11-03 10:21:23 -07001356 "column" : 8,
1357 "source_fragment" : "hdr.mpls.setInvalid()"
1358 }
1359 },
1360 {
1361 "op" : "assign",
1362 "parameters" : [
1363 {
1364 "type" : "field",
Yi Tsengbe342052017-11-03 10:21:23 -07001365 "value" : ["scalars", "fabric_metadata_t.next_id"]
1366 },
1367 {
1368 "type" : "runtime_data",
1369 "value" : 0
1370 }
1371 ],
1372 "source_info" : {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001373 "filename" : "include/control/forwarding.p4",
Carmelo Casconeed88f2b2018-01-26 17:36:34 -08001374 "line" : 46,
Yi Tsengbe342052017-11-03 10:21:23 -07001375 "column" : 8,
1376 "source_fragment" : "fabric_metadata.next_id = next_id"
1377 }
1378 }
1379 ]
1380 },
1381 {
Yi Tsengbe342052017-11-03 10:21:23 -07001382 "name" : "forwarding.duplicate_to_controller",
Carmelo Casconeed88f2b2018-01-26 17:36:34 -08001383 "id" : 19,
Yi Tsengbe342052017-11-03 10:21:23 -07001384 "runtime_data" : [],
1385 "primitives" : [
1386 {
1387 "op" : "assign",
1388 "parameters" : [
1389 {
1390 "type" : "field",
Yi Tsengbe342052017-11-03 10:21:23 -07001391 "value" : ["standard_metadata", "egress_spec"]
1392 },
1393 {
1394 "type" : "hexstr",
1395 "value" : "0x00ff"
1396 }
1397 ],
1398 "source_info" : {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001399 "filename" : "include/control/../define.p4",
1400 "line" : 50,
Yi Tsengbe342052017-11-03 10:21:23 -07001401 "column" : 28,
1402 "source_fragment" : "255; ..."
1403 }
1404 }
1405 ]
1406 },
1407 {
Yi Tsengbe342052017-11-03 10:21:23 -07001408 "name" : "next.output",
Carmelo Casconeed88f2b2018-01-26 17:36:34 -08001409 "id" : 20,
Yi Tsengbe342052017-11-03 10:21:23 -07001410 "runtime_data" : [
1411 {
1412 "name" : "port_num",
1413 "bitwidth" : 9
1414 }
1415 ],
1416 "primitives" : [
1417 {
1418 "op" : "assign",
1419 "parameters" : [
1420 {
1421 "type" : "field",
1422 "value" : ["standard_metadata", "egress_spec"]
1423 },
1424 {
1425 "type" : "runtime_data",
1426 "value" : 0
1427 }
1428 ],
1429 "source_info" : {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001430 "filename" : "include/control/next.p4",
Yi Tseng3a5731e2018-01-22 11:38:58 -08001431 "line" : 33,
Yi Tsengbe342052017-11-03 10:21:23 -07001432 "column" : 8,
1433 "source_fragment" : "standard_metadata.egress_spec = port_num"
1434 }
Yi Tsengbe342052017-11-03 10:21:23 -07001435 }
1436 ]
1437 },
1438 {
1439 "name" : "next.set_vlan_output",
Carmelo Casconeed88f2b2018-01-26 17:36:34 -08001440 "id" : 21,
Yi Tsengbe342052017-11-03 10:21:23 -07001441 "runtime_data" : [
1442 {
1443 "name" : "new_vlan_id",
1444 "bitwidth" : 12
1445 },
1446 {
1447 "name" : "port_num",
1448 "bitwidth" : 9
1449 }
1450 ],
1451 "primitives" : [
1452 {
1453 "op" : "assign",
1454 "parameters" : [
1455 {
1456 "type" : "field",
1457 "value" : ["vlan_tag", "vlan_id"]
1458 },
1459 {
1460 "type" : "runtime_data",
1461 "value" : 0
1462 }
1463 ],
1464 "source_info" : {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001465 "filename" : "include/control/next.p4",
Yi Tseng3a5731e2018-01-22 11:38:58 -08001466 "line" : 37,
Yi Tsengbe342052017-11-03 10:21:23 -07001467 "column" : 8,
1468 "source_fragment" : "hdr.vlan_tag.vlan_id = new_vlan_id"
1469 }
1470 },
1471 {
1472 "op" : "assign",
1473 "parameters" : [
1474 {
1475 "type" : "field",
1476 "value" : ["scalars", "fabric_metadata_t.pop_vlan_at_egress"]
1477 },
1478 {
1479 "type" : "expression",
1480 "value" : {
1481 "type" : "expression",
1482 "value" : {
1483 "op" : "b2d",
1484 "left" : null,
1485 "right" : {
1486 "type" : "bool",
1487 "value" : false
1488 }
1489 }
1490 }
1491 }
1492 ],
1493 "source_info" : {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001494 "filename" : "include/control/next.p4",
Yi Tseng3a5731e2018-01-22 11:38:58 -08001495 "line" : 40,
Yi Tsengbe342052017-11-03 10:21:23 -07001496 "column" : 8,
1497 "source_fragment" : "fabric_metadata.pop_vlan_at_egress = false"
1498 }
1499 },
1500 {
1501 "op" : "assign",
1502 "parameters" : [
1503 {
1504 "type" : "field",
1505 "value" : ["standard_metadata", "egress_spec"]
1506 },
1507 {
1508 "type" : "runtime_data",
1509 "value" : 1
1510 }
1511 ],
1512 "source_info" : {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001513 "filename" : "include/control/next.p4",
Yi Tseng3a5731e2018-01-22 11:38:58 -08001514 "line" : 33,
Yi Tsengbe342052017-11-03 10:21:23 -07001515 "column" : 8,
1516 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
1517 }
Yi Tsengbe342052017-11-03 10:21:23 -07001518 }
1519 ]
1520 },
1521 {
1522 "name" : "next.l3_routing",
Carmelo Casconeed88f2b2018-01-26 17:36:34 -08001523 "id" : 22,
Yi Tsengbe342052017-11-03 10:21:23 -07001524 "runtime_data" : [
1525 {
1526 "name" : "port_num",
1527 "bitwidth" : 9
1528 },
1529 {
1530 "name" : "smac",
1531 "bitwidth" : 48
1532 },
1533 {
1534 "name" : "dmac",
1535 "bitwidth" : 48
1536 }
1537 ],
1538 "primitives" : [
1539 {
1540 "op" : "assign",
1541 "parameters" : [
1542 {
1543 "type" : "field",
1544 "value" : ["ethernet", "src_addr"]
1545 },
1546 {
1547 "type" : "runtime_data",
1548 "value" : 1
1549 }
1550 ],
1551 "source_info" : {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001552 "filename" : "include/control/next.p4",
Yi Tseng3a5731e2018-01-22 11:38:58 -08001553 "line" : 45,
Yi Tsengbe342052017-11-03 10:21:23 -07001554 "column" : 8,
1555 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
1556 }
1557 },
1558 {
1559 "op" : "assign",
1560 "parameters" : [
1561 {
1562 "type" : "field",
1563 "value" : ["ethernet", "dst_addr"]
1564 },
1565 {
1566 "type" : "runtime_data",
1567 "value" : 2
1568 }
1569 ],
1570 "source_info" : {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001571 "filename" : "include/control/next.p4",
Yi Tseng3a5731e2018-01-22 11:38:58 -08001572 "line" : 49,
Yi Tsengbe342052017-11-03 10:21:23 -07001573 "column" : 8,
1574 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
1575 }
1576 },
1577 {
1578 "op" : "assign",
1579 "parameters" : [
1580 {
1581 "type" : "field",
1582 "value" : ["standard_metadata", "egress_spec"]
1583 },
1584 {
1585 "type" : "runtime_data",
1586 "value" : 0
1587 }
1588 ],
1589 "source_info" : {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001590 "filename" : "include/control/next.p4",
Yi Tseng3a5731e2018-01-22 11:38:58 -08001591 "line" : 33,
Yi Tsengbe342052017-11-03 10:21:23 -07001592 "column" : 8,
1593 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
1594 }
Yi Tsengbe342052017-11-03 10:21:23 -07001595 }
1596 ]
1597 },
1598 {
1599 "name" : "next.l3_routing",
Carmelo Casconeed88f2b2018-01-26 17:36:34 -08001600 "id" : 23,
Yi Tsengbe342052017-11-03 10:21:23 -07001601 "runtime_data" : [
1602 {
1603 "name" : "port_num",
1604 "bitwidth" : 9
1605 },
1606 {
1607 "name" : "smac",
1608 "bitwidth" : 48
1609 },
1610 {
1611 "name" : "dmac",
1612 "bitwidth" : 48
1613 }
1614 ],
1615 "primitives" : [
1616 {
1617 "op" : "assign",
1618 "parameters" : [
1619 {
1620 "type" : "field",
1621 "value" : ["ethernet", "src_addr"]
1622 },
1623 {
1624 "type" : "runtime_data",
1625 "value" : 1
1626 }
1627 ],
1628 "source_info" : {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001629 "filename" : "include/control/next.p4",
Yi Tseng3a5731e2018-01-22 11:38:58 -08001630 "line" : 45,
Yi Tsengbe342052017-11-03 10:21:23 -07001631 "column" : 8,
1632 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
1633 }
1634 },
1635 {
1636 "op" : "assign",
1637 "parameters" : [
1638 {
1639 "type" : "field",
1640 "value" : ["ethernet", "dst_addr"]
1641 },
1642 {
1643 "type" : "runtime_data",
1644 "value" : 2
1645 }
1646 ],
1647 "source_info" : {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001648 "filename" : "include/control/next.p4",
Yi Tseng3a5731e2018-01-22 11:38:58 -08001649 "line" : 49,
Yi Tsengbe342052017-11-03 10:21:23 -07001650 "column" : 8,
1651 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
1652 }
1653 },
1654 {
1655 "op" : "assign",
1656 "parameters" : [
1657 {
1658 "type" : "field",
1659 "value" : ["standard_metadata", "egress_spec"]
1660 },
1661 {
1662 "type" : "runtime_data",
1663 "value" : 0
1664 }
1665 ],
1666 "source_info" : {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001667 "filename" : "include/control/next.p4",
Yi Tseng3a5731e2018-01-22 11:38:58 -08001668 "line" : 33,
Yi Tsengbe342052017-11-03 10:21:23 -07001669 "column" : 8,
1670 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
1671 }
Yi Tsengbe342052017-11-03 10:21:23 -07001672 }
1673 ]
1674 },
1675 {
1676 "name" : "next.set_mcast_group",
Carmelo Casconeed88f2b2018-01-26 17:36:34 -08001677 "id" : 24,
Yi Tsengbe342052017-11-03 10:21:23 -07001678 "runtime_data" : [
1679 {
1680 "name" : "gid",
1681 "bitwidth" : 16
1682 },
1683 {
1684 "name" : "smac",
1685 "bitwidth" : 48
1686 }
1687 ],
1688 "primitives" : [
1689 {
1690 "op" : "assign",
1691 "parameters" : [
1692 {
1693 "type" : "field",
1694 "value" : ["standard_metadata", "mcast_grp"]
1695 },
1696 {
1697 "type" : "runtime_data",
1698 "value" : 0
1699 }
1700 ],
1701 "source_info" : {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001702 "filename" : "include/control/next.p4",
Yi Tseng3a5731e2018-01-22 11:38:58 -08001703 "line" : 59,
Yi Tsengbe342052017-11-03 10:21:23 -07001704 "column" : 8,
1705 "source_fragment" : "standard_metadata.mcast_grp = gid"
1706 }
1707 },
1708 {
1709 "op" : "assign",
1710 "parameters" : [
1711 {
1712 "type" : "field",
1713 "value" : ["ethernet", "src_addr"]
1714 },
1715 {
1716 "type" : "runtime_data",
1717 "value" : 1
1718 }
1719 ],
1720 "source_info" : {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001721 "filename" : "include/control/next.p4",
Yi Tseng3a5731e2018-01-22 11:38:58 -08001722 "line" : 45,
Yi Tsengbe342052017-11-03 10:21:23 -07001723 "column" : 8,
1724 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
1725 }
1726 }
1727 ]
1728 },
1729 {
Yi Tseng1b154bd2017-11-20 17:48:19 -08001730 "name" : "next.mpls_routing_v4",
Carmelo Casconeed88f2b2018-01-26 17:36:34 -08001731 "id" : 25,
Yi Tseng1b154bd2017-11-20 17:48:19 -08001732 "runtime_data" : [
1733 {
1734 "name" : "port_num",
1735 "bitwidth" : 9
1736 },
1737 {
1738 "name" : "smac",
1739 "bitwidth" : 48
1740 },
1741 {
1742 "name" : "dmac",
1743 "bitwidth" : 48
1744 },
1745 {
1746 "name" : "label",
1747 "bitwidth" : 20
1748 }
1749 ],
1750 "primitives" : [
1751 {
1752 "op" : "assign",
1753 "parameters" : [
1754 {
1755 "type" : "field",
1756 "value" : ["ethernet", "src_addr"]
1757 },
1758 {
1759 "type" : "runtime_data",
1760 "value" : 1
1761 }
1762 ],
1763 "source_info" : {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001764 "filename" : "include/control/next.p4",
Yi Tseng3a5731e2018-01-22 11:38:58 -08001765 "line" : 45,
Yi Tseng1b154bd2017-11-20 17:48:19 -08001766 "column" : 8,
1767 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
1768 }
1769 },
1770 {
1771 "op" : "assign",
1772 "parameters" : [
1773 {
1774 "type" : "field",
1775 "value" : ["ethernet", "dst_addr"]
1776 },
1777 {
1778 "type" : "runtime_data",
1779 "value" : 2
1780 }
1781 ],
1782 "source_info" : {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001783 "filename" : "include/control/next.p4",
Yi Tseng3a5731e2018-01-22 11:38:58 -08001784 "line" : 49,
Yi Tseng1b154bd2017-11-20 17:48:19 -08001785 "column" : 8,
1786 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
1787 }
1788 },
1789 {
1790 "op" : "assign",
1791 "parameters" : [
1792 {
1793 "type" : "field",
1794 "value" : ["standard_metadata", "egress_spec"]
1795 },
1796 {
1797 "type" : "runtime_data",
1798 "value" : 0
1799 }
1800 ],
1801 "source_info" : {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001802 "filename" : "include/control/next.p4",
Yi Tseng3a5731e2018-01-22 11:38:58 -08001803 "line" : 33,
Yi Tseng1b154bd2017-11-20 17:48:19 -08001804 "column" : 8,
1805 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
1806 }
1807 },
1808 {
Yi Tseng1b154bd2017-11-20 17:48:19 -08001809 "op" : "add_header",
1810 "parameters" : [
1811 {
1812 "type" : "header",
1813 "value" : "mpls"
1814 }
1815 ],
1816 "source_info" : {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001817 "filename" : "include/control/next.p4",
Yi Tseng3a5731e2018-01-22 11:38:58 -08001818 "line" : 65,
Yi Tseng1b154bd2017-11-20 17:48:19 -08001819 "column" : 8,
1820 "source_fragment" : "hdr.mpls.setValid()"
1821 }
1822 },
1823 {
1824 "op" : "assign",
1825 "parameters" : [
1826 {
1827 "type" : "field",
Yi Tsengbd46d052018-01-22 17:18:16 -08001828 "value" : ["vlan_tag", "ether_type"]
Yi Tseng1b154bd2017-11-20 17:48:19 -08001829 },
1830 {
1831 "type" : "hexstr",
1832 "value" : "0x8847"
1833 }
1834 ],
1835 "source_info" : {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001836 "filename" : "include/control/../define.p4",
Yi Tsengf55eaa82017-11-29 15:51:28 -08001837 "line" : 33,
Yi Tseng1b154bd2017-11-20 17:48:19 -08001838 "column" : 31,
1839 "source_fragment" : "0x8847; ..."
1840 }
1841 },
1842 {
1843 "op" : "assign",
1844 "parameters" : [
1845 {
1846 "type" : "field",
1847 "value" : ["mpls", "label"]
1848 },
1849 {
1850 "type" : "runtime_data",
1851 "value" : 3
1852 }
1853 ],
1854 "source_info" : {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001855 "filename" : "include/control/next.p4",
Yi Tseng3a5731e2018-01-22 11:38:58 -08001856 "line" : 67,
Yi Tseng1b154bd2017-11-20 17:48:19 -08001857 "column" : 8,
1858 "source_fragment" : "hdr.mpls.label = label; ..."
1859 }
1860 },
1861 {
1862 "op" : "assign",
1863 "parameters" : [
1864 {
1865 "type" : "field",
1866 "value" : ["mpls", "tc"]
1867 },
1868 {
Yi Tseng1d842672017-11-28 16:06:52 -08001869 "type" : "hexstr",
1870 "value" : "0x00"
Yi Tseng1b154bd2017-11-20 17:48:19 -08001871 }
1872 ],
1873 "source_info" : {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001874 "filename" : "include/control/next.p4",
Yi Tseng3a5731e2018-01-22 11:38:58 -08001875 "line" : 68,
Yi Tseng1b154bd2017-11-20 17:48:19 -08001876 "column" : 8,
1877 "source_fragment" : "hdr.mpls.tc = tc; ..."
1878 }
1879 },
1880 {
1881 "op" : "assign",
1882 "parameters" : [
1883 {
1884 "type" : "field",
1885 "value" : ["mpls", "bos"]
1886 },
1887 {
1888 "type" : "hexstr",
1889 "value" : "0x01"
1890 }
1891 ],
1892 "source_info" : {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001893 "filename" : "include/control/next.p4",
Yi Tseng3a5731e2018-01-22 11:38:58 -08001894 "line" : 69,
Yi Tseng1b154bd2017-11-20 17:48:19 -08001895 "column" : 8,
Yi Tseng1d842672017-11-28 16:06:52 -08001896 "source_fragment" : "hdr.mpls.bos = 1w1"
Yi Tseng1b154bd2017-11-20 17:48:19 -08001897 }
1898 },
1899 {
1900 "op" : "assign",
1901 "parameters" : [
1902 {
1903 "type" : "field",
1904 "value" : ["mpls", "ttl"]
1905 },
1906 {
1907 "type" : "hexstr",
1908 "value" : "0x40"
1909 }
1910 ],
1911 "source_info" : {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001912 "filename" : "include/control/../define.p4",
1913 "line" : 60,
Yi Tseng1b154bd2017-11-20 17:48:19 -08001914 "column" : 32,
1915 "source_fragment" : "64; ..."
1916 }
1917 }
1918 ]
1919 },
1920 {
Yi Tseng3a5731e2018-01-22 11:38:58 -08001921 "name" : "next.mpls_routing_v4",
Carmelo Casconeed88f2b2018-01-26 17:36:34 -08001922 "id" : 26,
Yi Tseng1b154bd2017-11-20 17:48:19 -08001923 "runtime_data" : [
1924 {
1925 "name" : "port_num",
1926 "bitwidth" : 9
1927 },
1928 {
1929 "name" : "smac",
1930 "bitwidth" : 48
1931 },
1932 {
1933 "name" : "dmac",
1934 "bitwidth" : 48
1935 },
1936 {
1937 "name" : "label",
1938 "bitwidth" : 20
1939 }
1940 ],
1941 "primitives" : [
1942 {
1943 "op" : "assign",
1944 "parameters" : [
1945 {
1946 "type" : "field",
1947 "value" : ["ethernet", "src_addr"]
1948 },
1949 {
1950 "type" : "runtime_data",
1951 "value" : 1
1952 }
1953 ],
1954 "source_info" : {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001955 "filename" : "include/control/next.p4",
Yi Tseng3a5731e2018-01-22 11:38:58 -08001956 "line" : 45,
Yi Tseng1b154bd2017-11-20 17:48:19 -08001957 "column" : 8,
1958 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
1959 }
1960 },
1961 {
1962 "op" : "assign",
1963 "parameters" : [
1964 {
1965 "type" : "field",
1966 "value" : ["ethernet", "dst_addr"]
1967 },
1968 {
1969 "type" : "runtime_data",
1970 "value" : 2
1971 }
1972 ],
1973 "source_info" : {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001974 "filename" : "include/control/next.p4",
Yi Tseng3a5731e2018-01-22 11:38:58 -08001975 "line" : 49,
Yi Tseng1b154bd2017-11-20 17:48:19 -08001976 "column" : 8,
1977 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
1978 }
1979 },
1980 {
1981 "op" : "assign",
1982 "parameters" : [
1983 {
1984 "type" : "field",
1985 "value" : ["standard_metadata", "egress_spec"]
1986 },
1987 {
1988 "type" : "runtime_data",
1989 "value" : 0
1990 }
1991 ],
1992 "source_info" : {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001993 "filename" : "include/control/next.p4",
Yi Tseng3a5731e2018-01-22 11:38:58 -08001994 "line" : 33,
Yi Tseng1b154bd2017-11-20 17:48:19 -08001995 "column" : 8,
1996 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
1997 }
1998 },
1999 {
Yi Tseng1b154bd2017-11-20 17:48:19 -08002000 "op" : "add_header",
2001 "parameters" : [
2002 {
2003 "type" : "header",
2004 "value" : "mpls"
2005 }
2006 ],
2007 "source_info" : {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002008 "filename" : "include/control/next.p4",
Yi Tseng3a5731e2018-01-22 11:38:58 -08002009 "line" : 65,
Yi Tseng1b154bd2017-11-20 17:48:19 -08002010 "column" : 8,
2011 "source_fragment" : "hdr.mpls.setValid()"
2012 }
2013 },
2014 {
2015 "op" : "assign",
2016 "parameters" : [
2017 {
2018 "type" : "field",
Yi Tsengbd46d052018-01-22 17:18:16 -08002019 "value" : ["vlan_tag", "ether_type"]
Yi Tseng1b154bd2017-11-20 17:48:19 -08002020 },
2021 {
2022 "type" : "hexstr",
2023 "value" : "0x8847"
2024 }
2025 ],
2026 "source_info" : {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002027 "filename" : "include/control/../define.p4",
Yi Tsengf55eaa82017-11-29 15:51:28 -08002028 "line" : 33,
Yi Tseng1b154bd2017-11-20 17:48:19 -08002029 "column" : 31,
2030 "source_fragment" : "0x8847; ..."
2031 }
2032 },
2033 {
2034 "op" : "assign",
2035 "parameters" : [
2036 {
2037 "type" : "field",
2038 "value" : ["mpls", "label"]
2039 },
2040 {
2041 "type" : "runtime_data",
2042 "value" : 3
2043 }
2044 ],
2045 "source_info" : {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002046 "filename" : "include/control/next.p4",
Yi Tseng3a5731e2018-01-22 11:38:58 -08002047 "line" : 67,
Yi Tseng1b154bd2017-11-20 17:48:19 -08002048 "column" : 8,
2049 "source_fragment" : "hdr.mpls.label = label; ..."
2050 }
2051 },
2052 {
2053 "op" : "assign",
2054 "parameters" : [
2055 {
2056 "type" : "field",
2057 "value" : ["mpls", "tc"]
2058 },
2059 {
Yi Tseng1d842672017-11-28 16:06:52 -08002060 "type" : "hexstr",
2061 "value" : "0x00"
Yi Tseng1b154bd2017-11-20 17:48:19 -08002062 }
2063 ],
2064 "source_info" : {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002065 "filename" : "include/control/next.p4",
Yi Tseng3a5731e2018-01-22 11:38:58 -08002066 "line" : 68,
Yi Tseng1b154bd2017-11-20 17:48:19 -08002067 "column" : 8,
2068 "source_fragment" : "hdr.mpls.tc = tc; ..."
2069 }
2070 },
2071 {
2072 "op" : "assign",
2073 "parameters" : [
2074 {
2075 "type" : "field",
2076 "value" : ["mpls", "bos"]
2077 },
2078 {
2079 "type" : "hexstr",
2080 "value" : "0x01"
2081 }
2082 ],
2083 "source_info" : {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002084 "filename" : "include/control/next.p4",
Yi Tseng3a5731e2018-01-22 11:38:58 -08002085 "line" : 69,
2086 "column" : 8,
2087 "source_fragment" : "hdr.mpls.bos = 1w1"
2088 }
2089 },
2090 {
2091 "op" : "assign",
2092 "parameters" : [
2093 {
2094 "type" : "field",
2095 "value" : ["mpls", "ttl"]
2096 },
2097 {
2098 "type" : "hexstr",
2099 "value" : "0x40"
2100 }
2101 ],
2102 "source_info" : {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002103 "filename" : "include/control/../define.p4",
2104 "line" : 60,
Yi Tseng3a5731e2018-01-22 11:38:58 -08002105 "column" : 32,
2106 "source_fragment" : "64; ..."
2107 }
2108 }
2109 ]
2110 },
2111 {
2112 "name" : "next.mpls_routing_v6",
Carmelo Casconeed88f2b2018-01-26 17:36:34 -08002113 "id" : 27,
Yi Tseng3a5731e2018-01-22 11:38:58 -08002114 "runtime_data" : [
2115 {
2116 "name" : "port_num",
2117 "bitwidth" : 9
2118 },
2119 {
2120 "name" : "smac",
2121 "bitwidth" : 48
2122 },
2123 {
2124 "name" : "dmac",
2125 "bitwidth" : 48
2126 },
2127 {
2128 "name" : "label",
2129 "bitwidth" : 20
2130 }
2131 ],
2132 "primitives" : [
2133 {
2134 "op" : "assign",
2135 "parameters" : [
2136 {
2137 "type" : "field",
2138 "value" : ["ethernet", "src_addr"]
2139 },
2140 {
2141 "type" : "runtime_data",
2142 "value" : 1
2143 }
2144 ],
2145 "source_info" : {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002146 "filename" : "include/control/next.p4",
Yi Tseng3a5731e2018-01-22 11:38:58 -08002147 "line" : 45,
2148 "column" : 8,
2149 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2150 }
2151 },
2152 {
2153 "op" : "assign",
2154 "parameters" : [
2155 {
2156 "type" : "field",
2157 "value" : ["ethernet", "dst_addr"]
2158 },
2159 {
2160 "type" : "runtime_data",
2161 "value" : 2
2162 }
2163 ],
2164 "source_info" : {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002165 "filename" : "include/control/next.p4",
Yi Tseng3a5731e2018-01-22 11:38:58 -08002166 "line" : 49,
2167 "column" : 8,
2168 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2169 }
2170 },
2171 {
2172 "op" : "assign",
2173 "parameters" : [
2174 {
2175 "type" : "field",
2176 "value" : ["standard_metadata", "egress_spec"]
2177 },
2178 {
2179 "type" : "runtime_data",
2180 "value" : 0
2181 }
2182 ],
2183 "source_info" : {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002184 "filename" : "include/control/next.p4",
Yi Tseng3a5731e2018-01-22 11:38:58 -08002185 "line" : 33,
2186 "column" : 8,
2187 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2188 }
2189 },
2190 {
2191 "op" : "add_header",
2192 "parameters" : [
2193 {
2194 "type" : "header",
2195 "value" : "mpls"
2196 }
2197 ],
2198 "source_info" : {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002199 "filename" : "include/control/next.p4",
Yi Tseng3a5731e2018-01-22 11:38:58 -08002200 "line" : 65,
2201 "column" : 8,
2202 "source_fragment" : "hdr.mpls.setValid()"
2203 }
2204 },
2205 {
2206 "op" : "assign",
2207 "parameters" : [
2208 {
2209 "type" : "field",
Yi Tsengbd46d052018-01-22 17:18:16 -08002210 "value" : ["vlan_tag", "ether_type"]
Yi Tseng3a5731e2018-01-22 11:38:58 -08002211 },
2212 {
2213 "type" : "hexstr",
2214 "value" : "0x8847"
2215 }
2216 ],
2217 "source_info" : {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002218 "filename" : "include/control/../define.p4",
Yi Tseng3a5731e2018-01-22 11:38:58 -08002219 "line" : 33,
2220 "column" : 31,
2221 "source_fragment" : "0x8847; ..."
2222 }
2223 },
2224 {
2225 "op" : "assign",
2226 "parameters" : [
2227 {
2228 "type" : "field",
2229 "value" : ["mpls", "label"]
2230 },
2231 {
2232 "type" : "runtime_data",
2233 "value" : 3
2234 }
2235 ],
2236 "source_info" : {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002237 "filename" : "include/control/next.p4",
Yi Tseng3a5731e2018-01-22 11:38:58 -08002238 "line" : 67,
2239 "column" : 8,
2240 "source_fragment" : "hdr.mpls.label = label; ..."
2241 }
2242 },
2243 {
2244 "op" : "assign",
2245 "parameters" : [
2246 {
2247 "type" : "field",
2248 "value" : ["mpls", "tc"]
2249 },
2250 {
2251 "type" : "hexstr",
2252 "value" : "0x00"
2253 }
2254 ],
2255 "source_info" : {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002256 "filename" : "include/control/next.p4",
Yi Tseng3a5731e2018-01-22 11:38:58 -08002257 "line" : 68,
2258 "column" : 8,
2259 "source_fragment" : "hdr.mpls.tc = tc; ..."
2260 }
2261 },
2262 {
2263 "op" : "assign",
2264 "parameters" : [
2265 {
2266 "type" : "field",
2267 "value" : ["mpls", "bos"]
2268 },
2269 {
2270 "type" : "hexstr",
2271 "value" : "0x01"
2272 }
2273 ],
2274 "source_info" : {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002275 "filename" : "include/control/next.p4",
Yi Tseng3a5731e2018-01-22 11:38:58 -08002276 "line" : 69,
Yi Tseng1b154bd2017-11-20 17:48:19 -08002277 "column" : 8,
Yi Tseng1d842672017-11-28 16:06:52 -08002278 "source_fragment" : "hdr.mpls.bos = 1w1"
Yi Tseng1b154bd2017-11-20 17:48:19 -08002279 }
2280 },
2281 {
2282 "op" : "assign",
2283 "parameters" : [
2284 {
2285 "type" : "field",
2286 "value" : ["mpls", "ttl"]
2287 },
2288 {
2289 "type" : "hexstr",
2290 "value" : "0x40"
2291 }
2292 ],
2293 "source_info" : {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002294 "filename" : "include/control/../define.p4",
2295 "line" : 60,
Yi Tseng1b154bd2017-11-20 17:48:19 -08002296 "column" : 32,
2297 "source_fragment" : "64; ..."
2298 }
2299 }
2300 ]
2301 },
2302 {
Yi Tsengbe342052017-11-03 10:21:23 -07002303 "name" : "act",
Carmelo Casconeed88f2b2018-01-26 17:36:34 -08002304 "id" : 28,
Yi Tsengbe342052017-11-03 10:21:23 -07002305 "runtime_data" : [],
2306 "primitives" : [
2307 {
2308 "op" : "assign",
2309 "parameters" : [
2310 {
2311 "type" : "field",
2312 "value" : ["standard_metadata", "egress_spec"]
2313 },
2314 {
2315 "type" : "field",
2316 "value" : ["packet_out", "egress_port"]
2317 }
2318 ],
2319 "source_info" : {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002320 "filename" : "include/control/packetio.p4",
Yi Tsengbe342052017-11-03 10:21:23 -07002321 "line" : 26,
2322 "column" : 12,
2323 "source_fragment" : "standard_metadata.egress_spec = hdr.packet_out.egress_port"
2324 }
Yi Tseng1d842672017-11-28 16:06:52 -08002325 },
2326 {
2327 "op" : "remove_header",
2328 "parameters" : [
2329 {
2330 "type" : "header",
2331 "value" : "packet_out"
2332 }
2333 ],
2334 "source_info" : {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002335 "filename" : "include/control/packetio.p4",
Yi Tseng1d842672017-11-28 16:06:52 -08002336 "line" : 27,
2337 "column" : 12,
2338 "source_fragment" : "hdr.packet_out.setInvalid()"
2339 }
Yi Tsengbe342052017-11-03 10:21:23 -07002340 }
2341 ]
2342 },
2343 {
2344 "name" : "act_0",
Carmelo Casconeed88f2b2018-01-26 17:36:34 -08002345 "id" : 29,
Yi Tsengbe342052017-11-03 10:21:23 -07002346 "runtime_data" : [],
2347 "primitives" : [
2348 {
2349 "op" : "assign",
2350 "parameters" : [
2351 {
2352 "type" : "field",
Yi Tsengbd46d052018-01-22 17:18:16 -08002353 "value" : ["vlan_tag", "ether_type"]
Yi Tseng1d842672017-11-28 16:06:52 -08002354 },
2355 {
2356 "type" : "hexstr",
2357 "value" : "0x0800"
2358 }
2359 ],
2360 "source_info" : {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002361 "filename" : "include/control/../define.p4",
Yi Tseng1d842672017-11-28 16:06:52 -08002362 "line" : 35,
2363 "column" : 31,
2364 "source_fragment" : "0x0800; ..."
2365 }
2366 },
2367 {
2368 "op" : "assign",
2369 "parameters" : [
2370 {
2371 "type" : "field",
2372 "value" : ["scalars", "fabric_metadata_t.original_ether_type"]
2373 },
2374 {
2375 "type" : "hexstr",
2376 "value" : "0x0800"
2377 }
2378 ],
2379 "source_info" : {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002380 "filename" : "include/control/../define.p4",
Yi Tseng1d842672017-11-28 16:06:52 -08002381 "line" : 35,
2382 "column" : 31,
2383 "source_fragment" : "0x0800; ..."
2384 }
2385 }
2386 ]
2387 },
2388 {
2389 "name" : "act_1",
Carmelo Casconeed88f2b2018-01-26 17:36:34 -08002390 "id" : 30,
Yi Tseng1d842672017-11-28 16:06:52 -08002391 "runtime_data" : [],
2392 "primitives" : [
2393 {
2394 "op" : "assign",
2395 "parameters" : [
2396 {
2397 "type" : "field",
Yi Tseng1d842672017-11-28 16:06:52 -08002398 "value" : ["scalars", "next_tmp_0"]
2399 },
2400 {
2401 "type" : "expression",
2402 "value" : {
2403 "type" : "expression",
2404 "value" : {
2405 "op" : "b2d",
2406 "left" : null,
2407 "right" : {
2408 "type" : "bool",
2409 "value" : true
2410 }
2411 }
2412 }
2413 }
2414 ]
2415 }
2416 ]
2417 },
2418 {
Yi Tsengbd46d052018-01-22 17:18:16 -08002419 "name" : "act_2",
Carmelo Casconeed88f2b2018-01-26 17:36:34 -08002420 "id" : 31,
Yi Tseng1d842672017-11-28 16:06:52 -08002421 "runtime_data" : [],
2422 "primitives" : [
2423 {
2424 "op" : "assign",
2425 "parameters" : [
2426 {
2427 "type" : "field",
2428 "value" : ["scalars", "next_tmp_0"]
2429 },
2430 {
2431 "type" : "expression",
2432 "value" : {
2433 "type" : "expression",
2434 "value" : {
2435 "op" : "b2d",
2436 "left" : null,
2437 "right" : {
2438 "type" : "bool",
2439 "value" : false
2440 }
2441 }
2442 }
2443 }
2444 ]
2445 }
2446 ]
2447 },
2448 {
Yi Tsengbd46d052018-01-22 17:18:16 -08002449 "name" : "act_3",
Carmelo Casconeed88f2b2018-01-26 17:36:34 -08002450 "id" : 32,
Yi Tseng1d842672017-11-28 16:06:52 -08002451 "runtime_data" : [],
2452 "primitives" : [
2453 {
2454 "op" : "assign",
2455 "parameters" : [
2456 {
2457 "type" : "field",
2458 "value" : ["ipv4", "ttl"]
2459 },
2460 {
2461 "type" : "expression",
2462 "value" : {
2463 "type" : "expression",
2464 "value" : {
2465 "op" : "&",
2466 "left" : {
2467 "type" : "expression",
2468 "value" : {
2469 "op" : "+",
2470 "left" : {
2471 "type" : "field",
2472 "value" : ["ipv4", "ttl"]
2473 },
2474 "right" : {
2475 "type" : "hexstr",
2476 "value" : "0xff"
2477 }
2478 }
2479 },
2480 "right" : {
2481 "type" : "hexstr",
2482 "value" : "0xff"
2483 }
2484 }
2485 }
2486 }
2487 ],
2488 "source_info" : {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002489 "filename" : "include/control/next.p4",
Yi Tseng3a5731e2018-01-22 11:38:58 -08002490 "line" : 140,
Yi Tseng1d842672017-11-28 16:06:52 -08002491 "column" : 20,
2492 "source_fragment" : "hdr.ipv4.ttl = hdr.ipv4.ttl - 1"
2493 }
2494 }
2495 ]
2496 },
2497 {
Yi Tsengbd46d052018-01-22 17:18:16 -08002498 "name" : "act_4",
Carmelo Casconeed88f2b2018-01-26 17:36:34 -08002499 "id" : 33,
Yi Tseng1d842672017-11-28 16:06:52 -08002500 "runtime_data" : [],
2501 "primitives" : [
2502 {
2503 "op" : "assign",
2504 "parameters" : [
2505 {
2506 "type" : "field",
Yi Tsengc6844f52017-12-19 11:58:25 -08002507 "value" : ["scalars", "tmp_0"]
Yi Tsengbe342052017-11-03 10:21:23 -07002508 },
2509 {
2510 "type" : "expression",
2511 "value" : {
2512 "type" : "expression",
2513 "value" : {
2514 "op" : "&",
2515 "left" : {
2516 "type" : "field",
2517 "value" : ["standard_metadata", "egress_spec"]
2518 },
2519 "right" : {
2520 "type" : "hexstr",
2521 "value" : "0xffffffff"
2522 }
2523 }
2524 }
2525 }
2526 ]
2527 },
2528 {
2529 "op" : "count",
2530 "parameters" : [
2531 {
2532 "type" : "counter_array",
2533 "value" : "port_counters_control.egress_port_counter"
2534 },
2535 {
2536 "type" : "field",
Yi Tsengc6844f52017-12-19 11:58:25 -08002537 "value" : ["scalars", "tmp_0"]
Yi Tsengbe342052017-11-03 10:21:23 -07002538 }
2539 ],
2540 "source_info" : {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002541 "filename" : "include/control/port_counter.p4",
Yi Tsengbe342052017-11-03 10:21:23 -07002542 "line" : 28,
2543 "column" : 12,
2544 "source_fragment" : "egress_port_counter.count((bit<32>)standard_metadata.egress_spec)"
2545 }
2546 }
2547 ]
2548 },
2549 {
Carmelo Casconeed88f2b2018-01-26 17:36:34 -08002550 "name" : "act_5",
2551 "id" : 34,
Yi Tsengbe342052017-11-03 10:21:23 -07002552 "runtime_data" : [],
2553 "primitives" : [
2554 {
2555 "op" : "assign",
2556 "parameters" : [
2557 {
2558 "type" : "field",
Yi Tsengc6844f52017-12-19 11:58:25 -08002559 "value" : ["scalars", "tmp_1"]
Yi Tsengbe342052017-11-03 10:21:23 -07002560 },
2561 {
2562 "type" : "expression",
2563 "value" : {
2564 "type" : "expression",
2565 "value" : {
2566 "op" : "&",
2567 "left" : {
2568 "type" : "field",
2569 "value" : ["standard_metadata", "ingress_port"]
2570 },
2571 "right" : {
2572 "type" : "hexstr",
2573 "value" : "0xffffffff"
2574 }
2575 }
2576 }
2577 }
2578 ]
2579 },
2580 {
2581 "op" : "count",
2582 "parameters" : [
2583 {
2584 "type" : "counter_array",
2585 "value" : "port_counters_control.ingress_port_counter"
2586 },
2587 {
2588 "type" : "field",
Yi Tsengc6844f52017-12-19 11:58:25 -08002589 "value" : ["scalars", "tmp_1"]
Yi Tsengbe342052017-11-03 10:21:23 -07002590 }
2591 ],
2592 "source_info" : {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002593 "filename" : "include/control/port_counter.p4",
Yi Tsengbe342052017-11-03 10:21:23 -07002594 "line" : 31,
2595 "column" : 12,
2596 "source_fragment" : "ingress_port_counter.count((bit<32>)standard_metadata.ingress_port)"
2597 }
2598 }
2599 ]
2600 },
2601 {
Carmelo Casconeed88f2b2018-01-26 17:36:34 -08002602 "name" : "act_6",
2603 "id" : 35,
Yi Tseng1d842672017-11-28 16:06:52 -08002604 "runtime_data" : [],
2605 "primitives" : [
2606 {
2607 "op" : "assign",
2608 "parameters" : [
2609 {
2610 "type" : "field",
2611 "value" : ["ethernet", "ether_type"]
2612 },
2613 {
2614 "type" : "field",
Yi Tsengbd46d052018-01-22 17:18:16 -08002615 "value" : ["vlan_tag", "ether_type"]
Yi Tseng1d842672017-11-28 16:06:52 -08002616 }
2617 ],
2618 "source_info" : {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002619 "filename" : "include/control/next.p4",
Carmelo Casconeed88f2b2018-01-26 17:36:34 -08002620 "line" : 162,
Yi Tsengbd46d052018-01-22 17:18:16 -08002621 "column" : 12,
2622 "source_fragment" : "hdr.ethernet.ether_type = hdr.vlan_tag.ether_type"
Yi Tseng1d842672017-11-28 16:06:52 -08002623 }
Yi Tsengbd46d052018-01-22 17:18:16 -08002624 },
Yi Tsengbe342052017-11-03 10:21:23 -07002625 {
2626 "op" : "remove_header",
2627 "parameters" : [
2628 {
2629 "type" : "header",
2630 "value" : "vlan_tag"
2631 }
2632 ],
2633 "source_info" : {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002634 "filename" : "include/control/next.p4",
Carmelo Casconeed88f2b2018-01-26 17:36:34 -08002635 "line" : 163,
Yi Tsengbe342052017-11-03 10:21:23 -07002636 "column" : 12,
2637 "source_fragment" : "hdr.vlan_tag.setInvalid()"
2638 }
2639 }
2640 ]
2641 },
2642 {
Carmelo Casconeed88f2b2018-01-26 17:36:34 -08002643 "name" : "act_7",
2644 "id" : 36,
Yi Tsengbe342052017-11-03 10:21:23 -07002645 "runtime_data" : [],
2646 "primitives" : [
2647 {
2648 "op" : "add_header",
2649 "parameters" : [
2650 {
2651 "type" : "header",
2652 "value" : "packet_in"
2653 }
2654 ],
2655 "source_info" : {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002656 "filename" : "include/control/packetio.p4",
Yi Tsengbe342052017-11-03 10:21:23 -07002657 "line" : 39,
2658 "column" : 12,
2659 "source_fragment" : "hdr.packet_in.setValid()"
2660 }
2661 },
2662 {
2663 "op" : "assign",
2664 "parameters" : [
2665 {
2666 "type" : "field",
2667 "value" : ["packet_in", "ingress_port"]
2668 },
2669 {
2670 "type" : "field",
2671 "value" : ["standard_metadata", "ingress_port"]
2672 }
2673 ],
2674 "source_info" : {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002675 "filename" : "include/control/packetio.p4",
Yi Tsengbe342052017-11-03 10:21:23 -07002676 "line" : 40,
2677 "column" : 12,
2678 "source_fragment" : "hdr.packet_in.ingress_port = standard_metadata.ingress_port"
2679 }
2680 }
2681 ]
Yi Tsengbe342052017-11-03 10:21:23 -07002682 }
2683 ],
2684 "pipelines" : [
2685 {
2686 "name" : "ingress",
2687 "id" : 0,
2688 "source_info" : {
2689 "filename" : "fabric.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002690 "line" : 33,
Yi Tsengbe342052017-11-03 10:21:23 -07002691 "column" : 8,
2692 "source_fragment" : "FabricIngress"
2693 },
2694 "init_table" : "node_2",
2695 "tables" : [
2696 {
2697 "name" : "tbl_act",
2698 "id" : 0,
2699 "key" : [],
2700 "match_type" : "exact",
2701 "type" : "simple",
2702 "max_size" : 1024,
2703 "with_counters" : false,
2704 "support_timeout" : false,
2705 "direct_meters" : null,
Carmelo Casconeed88f2b2018-01-26 17:36:34 -08002706 "action_ids" : [28],
Yi Tsengbe342052017-11-03 10:21:23 -07002707 "actions" : ["act"],
2708 "base_default_next" : null,
2709 "next_tables" : {
2710 "act" : null
2711 },
2712 "default_entry" : {
Carmelo Casconeed88f2b2018-01-26 17:36:34 -08002713 "action_id" : 28,
Yi Tsengbe342052017-11-03 10:21:23 -07002714 "action_const" : true,
2715 "action_data" : [],
2716 "action_entry_const" : true
2717 }
2718 },
2719 {
2720 "name" : "filtering.ingress_port_vlan",
2721 "id" : 1,
2722 "source_info" : {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002723 "filename" : "include/control/filtering.p4",
Yi Tseng3a5731e2018-01-22 11:38:58 -08002724 "line" : 57,
Yi Tsengbe342052017-11-03 10:21:23 -07002725 "column" : 10,
2726 "source_fragment" : "ingress_port_vlan"
2727 },
2728 "key" : [
2729 {
2730 "match_type" : "exact",
2731 "target" : ["standard_metadata", "ingress_port"],
2732 "mask" : null
2733 },
2734 {
2735 "match_type" : "exact",
2736 "target" : ["vlan_tag", "$valid$"],
2737 "mask" : null
2738 },
2739 {
2740 "match_type" : "ternary",
2741 "target" : ["vlan_tag", "vlan_id"],
2742 "mask" : null
2743 }
2744 ],
2745 "match_type" : "ternary",
2746 "type" : "simple",
2747 "max_size" : 1024,
Yi Tsengbd46d052018-01-22 17:18:16 -08002748 "with_counters" : true,
Yi Tsengbe342052017-11-03 10:21:23 -07002749 "support_timeout" : false,
2750 "direct_meters" : null,
Carmelo Casconeed88f2b2018-01-26 17:36:34 -08002751 "action_ids" : [11, 10, 0, 9],
Yi Tseng1d842672017-11-28 16:06:52 -08002752 "actions" : ["filtering.push_internal_vlan", "filtering.set_vlan", "nop", "filtering.drop"],
Yi Tsengbe342052017-11-03 10:21:23 -07002753 "base_default_next" : "filtering.fwd_classifier",
2754 "next_tables" : {
2755 "filtering.push_internal_vlan" : "filtering.fwd_classifier",
2756 "filtering.set_vlan" : "filtering.fwd_classifier",
2757 "nop" : "filtering.fwd_classifier",
Yi Tseng1d842672017-11-28 16:06:52 -08002758 "filtering.drop" : "filtering.fwd_classifier"
Yi Tsengbe342052017-11-03 10:21:23 -07002759 },
2760 "default_entry" : {
Yi Tseng3a5731e2018-01-22 11:38:58 -08002761 "action_id" : 0,
Yi Tsengbe342052017-11-03 10:21:23 -07002762 "action_const" : true,
2763 "action_data" : [],
2764 "action_entry_const" : true
2765 }
2766 },
2767 {
2768 "name" : "filtering.fwd_classifier",
2769 "id" : 2,
2770 "source_info" : {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002771 "filename" : "include/control/filtering.p4",
Yi Tseng3a5731e2018-01-22 11:38:58 -08002772 "line" : 76,
Yi Tsengbe342052017-11-03 10:21:23 -07002773 "column" : 10,
2774 "source_fragment" : "fwd_classifier"
2775 },
2776 "key" : [
2777 {
2778 "match_type" : "exact",
2779 "target" : ["standard_metadata", "ingress_port"],
2780 "mask" : null
2781 },
2782 {
2783 "match_type" : "exact",
2784 "target" : ["ethernet", "dst_addr"],
2785 "mask" : null
2786 },
2787 {
2788 "match_type" : "exact",
Yi Tseng1d842672017-11-28 16:06:52 -08002789 "target" : ["scalars", "fabric_metadata_t.original_ether_type"],
Yi Tsengbe342052017-11-03 10:21:23 -07002790 "mask" : null
2791 }
2792 ],
2793 "match_type" : "exact",
2794 "type" : "simple",
2795 "max_size" : 1024,
Yi Tsengbd46d052018-01-22 17:18:16 -08002796 "with_counters" : true,
Yi Tsengbe342052017-11-03 10:21:23 -07002797 "support_timeout" : false,
2798 "direct_meters" : null,
Carmelo Casconeed88f2b2018-01-26 17:36:34 -08002799 "action_ids" : [12],
Yi Tsengbe342052017-11-03 10:21:23 -07002800 "actions" : ["filtering.set_forwarding_type"],
2801 "base_default_next" : "node_6",
2802 "next_tables" : {
2803 "filtering.set_forwarding_type" : "node_6"
2804 },
2805 "default_entry" : {
Carmelo Casconeed88f2b2018-01-26 17:36:34 -08002806 "action_id" : 12,
Yi Tsengbe342052017-11-03 10:21:23 -07002807 "action_const" : true,
2808 "action_data" : ["0x0"],
2809 "action_entry_const" : true
2810 }
2811 },
2812 {
2813 "name" : "forwarding.bridging",
2814 "id" : 3,
2815 "source_info" : {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002816 "filename" : "include/control/forwarding.p4",
Carmelo Casconeed88f2b2018-01-26 17:36:34 -08002817 "line" : 53,
Yi Tsengbe342052017-11-03 10:21:23 -07002818 "column" : 10,
2819 "source_fragment" : "bridging"
2820 },
2821 "key" : [
2822 {
2823 "match_type" : "exact",
2824 "target" : ["vlan_tag", "vlan_id"],
2825 "mask" : null
2826 },
2827 {
2828 "match_type" : "ternary",
2829 "target" : ["ethernet", "dst_addr"],
2830 "mask" : null
2831 }
2832 ],
2833 "match_type" : "ternary",
2834 "type" : "simple",
2835 "max_size" : 1024,
Yi Tsengbd46d052018-01-22 17:18:16 -08002836 "with_counters" : true,
Yi Tsengbe342052017-11-03 10:21:23 -07002837 "support_timeout" : false,
2838 "direct_meters" : null,
Carmelo Casconeed88f2b2018-01-26 17:36:34 -08002839 "action_ids" : [14, 2],
Yi Tseng1d842672017-11-28 16:06:52 -08002840 "actions" : ["forwarding.set_next_id", "NoAction"],
2841 "base_default_next" : "forwarding.acl",
2842 "next_tables" : {
2843 "forwarding.set_next_id" : "forwarding.acl",
2844 "NoAction" : "forwarding.acl"
2845 },
2846 "default_entry" : {
2847 "action_id" : 2,
2848 "action_const" : false,
2849 "action_data" : [],
2850 "action_entry_const" : false
2851 }
2852 },
2853 {
2854 "name" : "forwarding.mpls",
2855 "id" : 4,
2856 "source_info" : {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002857 "filename" : "include/control/forwarding.p4",
Carmelo Casconeed88f2b2018-01-26 17:36:34 -08002858 "line" : 65,
Yi Tseng1d842672017-11-28 16:06:52 -08002859 "column" : 10,
2860 "source_fragment" : "mpls"
2861 },
2862 "key" : [
2863 {
2864 "match_type" : "exact",
2865 "target" : ["mpls", "label"],
2866 "mask" : null
2867 }
2868 ],
2869 "match_type" : "exact",
2870 "type" : "simple",
2871 "max_size" : 1024,
Yi Tsengbd46d052018-01-22 17:18:16 -08002872 "with_counters" : true,
Yi Tseng1d842672017-11-28 16:06:52 -08002873 "support_timeout" : false,
2874 "direct_meters" : null,
Carmelo Casconeed88f2b2018-01-26 17:36:34 -08002875 "action_ids" : [18, 3],
Yi Tseng1d842672017-11-28 16:06:52 -08002876 "actions" : ["forwarding.pop_mpls_and_next", "NoAction"],
Yi Tsengbd46d052018-01-22 17:18:16 -08002877 "base_default_next" : "tbl_act_0",
Yi Tseng1d842672017-11-28 16:06:52 -08002878 "next_tables" : {
Yi Tsengbd46d052018-01-22 17:18:16 -08002879 "forwarding.pop_mpls_and_next" : "tbl_act_0",
2880 "NoAction" : "tbl_act_0"
Yi Tseng1d842672017-11-28 16:06:52 -08002881 },
2882 "default_entry" : {
2883 "action_id" : 3,
2884 "action_const" : false,
2885 "action_data" : [],
2886 "action_entry_const" : false
2887 }
2888 },
2889 {
2890 "name" : "tbl_act_0",
2891 "id" : 5,
2892 "key" : [],
2893 "match_type" : "exact",
2894 "type" : "simple",
2895 "max_size" : 1024,
2896 "with_counters" : false,
2897 "support_timeout" : false,
2898 "direct_meters" : null,
Carmelo Casconeed88f2b2018-01-26 17:36:34 -08002899 "action_ids" : [29],
Yi Tseng1d842672017-11-28 16:06:52 -08002900 "actions" : ["act_0"],
2901 "base_default_next" : "forwarding.acl",
2902 "next_tables" : {
2903 "act_0" : "forwarding.acl"
2904 },
2905 "default_entry" : {
Carmelo Casconeed88f2b2018-01-26 17:36:34 -08002906 "action_id" : 29,
Yi Tseng1d842672017-11-28 16:06:52 -08002907 "action_const" : true,
2908 "action_data" : [],
2909 "action_entry_const" : true
2910 }
2911 },
2912 {
Yi Tseng1d842672017-11-28 16:06:52 -08002913 "name" : "forwarding.unicast_v4",
Yi Tsengbd46d052018-01-22 17:18:16 -08002914 "id" : 6,
Yi Tseng1d842672017-11-28 16:06:52 -08002915 "source_info" : {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002916 "filename" : "include/control/forwarding.p4",
Carmelo Casconeed88f2b2018-01-26 17:36:34 -08002917 "line" : 76,
Yi Tseng1d842672017-11-28 16:06:52 -08002918 "column" : 10,
2919 "source_fragment" : "unicast_v4"
2920 },
2921 "key" : [
2922 {
2923 "match_type" : "lpm",
2924 "target" : ["ipv4", "dst_addr"],
2925 "mask" : null
2926 }
2927 ],
2928 "match_type" : "lpm",
2929 "type" : "simple",
2930 "max_size" : 1024,
Yi Tsengbd46d052018-01-22 17:18:16 -08002931 "with_counters" : true,
Yi Tseng1d842672017-11-28 16:06:52 -08002932 "support_timeout" : false,
2933 "direct_meters" : null,
Carmelo Casconeed88f2b2018-01-26 17:36:34 -08002934 "action_ids" : [15, 4],
Yi Tsengbe342052017-11-03 10:21:23 -07002935 "actions" : ["forwarding.set_next_id", "NoAction"],
2936 "base_default_next" : "forwarding.acl",
2937 "next_tables" : {
2938 "forwarding.set_next_id" : "forwarding.acl",
2939 "NoAction" : "forwarding.acl"
2940 },
2941 "default_entry" : {
2942 "action_id" : 4,
2943 "action_const" : false,
2944 "action_data" : [],
2945 "action_entry_const" : false
2946 }
2947 },
2948 {
Yi Tsengbe342052017-11-03 10:21:23 -07002949 "name" : "forwarding.multicast_v4",
Yi Tsengbd46d052018-01-22 17:18:16 -08002950 "id" : 7,
Yi Tsengbe342052017-11-03 10:21:23 -07002951 "source_info" : {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002952 "filename" : "include/control/forwarding.p4",
Carmelo Casconeed88f2b2018-01-26 17:36:34 -08002953 "line" : 87,
Yi Tsengbe342052017-11-03 10:21:23 -07002954 "column" : 10,
2955 "source_fragment" : "multicast_v4"
2956 },
2957 "key" : [
2958 {
2959 "match_type" : "exact",
2960 "target" : ["vlan_tag", "vlan_id"],
2961 "mask" : null
2962 },
2963 {
2964 "match_type" : "lpm",
2965 "target" : ["ipv4", "dst_addr"],
2966 "mask" : null
2967 }
2968 ],
2969 "match_type" : "lpm",
2970 "type" : "simple",
2971 "max_size" : 1024,
Yi Tsengbd46d052018-01-22 17:18:16 -08002972 "with_counters" : true,
Yi Tsengbe342052017-11-03 10:21:23 -07002973 "support_timeout" : false,
2974 "direct_meters" : null,
Carmelo Casconeed88f2b2018-01-26 17:36:34 -08002975 "action_ids" : [16, 5],
Yi Tsengbe342052017-11-03 10:21:23 -07002976 "actions" : ["forwarding.set_next_id", "NoAction"],
2977 "base_default_next" : "forwarding.acl",
2978 "next_tables" : {
2979 "forwarding.set_next_id" : "forwarding.acl",
2980 "NoAction" : "forwarding.acl"
2981 },
2982 "default_entry" : {
Yi Tseng1d842672017-11-28 16:06:52 -08002983 "action_id" : 5,
Yi Tsengbe342052017-11-03 10:21:23 -07002984 "action_const" : false,
2985 "action_data" : [],
2986 "action_entry_const" : false
2987 }
2988 },
2989 {
Carmelo Casconeed88f2b2018-01-26 17:36:34 -08002990 "name" : "forwarding.acl",
Yi Tsengbd46d052018-01-22 17:18:16 -08002991 "id" : 8,
Yi Tsengbe342052017-11-03 10:21:23 -07002992 "source_info" : {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002993 "filename" : "include/control/forwarding.p4",
Carmelo Casconeed88f2b2018-01-26 17:36:34 -08002994 "line" : 127,
Yi Tsengbe342052017-11-03 10:21:23 -07002995 "column" : 10,
2996 "source_fragment" : "acl"
2997 },
2998 "key" : [
2999 {
3000 "match_type" : "ternary",
3001 "target" : ["standard_metadata", "ingress_port"],
3002 "mask" : null
3003 },
3004 {
3005 "match_type" : "ternary",
3006 "target" : ["scalars", "fabric_metadata_t.ip_proto"],
3007 "mask" : null
3008 },
3009 {
3010 "match_type" : "ternary",
Yi Tseng1d842672017-11-28 16:06:52 -08003011 "target" : ["scalars", "fabric_metadata_t.l4_src_port"],
3012 "mask" : null
3013 },
3014 {
3015 "match_type" : "ternary",
3016 "target" : ["scalars", "fabric_metadata_t.l4_dst_port"],
3017 "mask" : null
3018 },
3019 {
3020 "match_type" : "ternary",
Yi Tsengc6844f52017-12-19 11:58:25 -08003021 "target" : ["scalars", "fabric_metadata_t.original_ether_type"],
3022 "mask" : null
3023 },
3024 {
3025 "match_type" : "ternary",
Yi Tsengbe342052017-11-03 10:21:23 -07003026 "target" : ["ethernet", "dst_addr"],
3027 "mask" : null
3028 },
3029 {
3030 "match_type" : "ternary",
3031 "target" : ["ethernet", "src_addr"],
3032 "mask" : null
3033 },
3034 {
3035 "match_type" : "ternary",
Yi Tsengbe342052017-11-03 10:21:23 -07003036 "target" : ["vlan_tag", "vlan_id"],
3037 "mask" : null
3038 },
3039 {
3040 "match_type" : "ternary",
Yi Tsengbe342052017-11-03 10:21:23 -07003041 "target" : ["ipv4", "src_addr"],
3042 "mask" : null
3043 },
3044 {
3045 "match_type" : "ternary",
3046 "target" : ["ipv4", "dst_addr"],
3047 "mask" : null
3048 },
3049 {
3050 "match_type" : "ternary",
Yi Tsengbe342052017-11-03 10:21:23 -07003051 "target" : ["icmp", "icmp_type"],
3052 "mask" : null
3053 },
3054 {
3055 "match_type" : "ternary",
3056 "target" : ["icmp", "icmp_code"],
3057 "mask" : null
3058 }
3059 ],
3060 "match_type" : "ternary",
3061 "type" : "simple",
Yi Tseng1d842672017-11-28 16:06:52 -08003062 "max_size" : 256,
Yi Tsengbd46d052018-01-22 17:18:16 -08003063 "with_counters" : true,
Yi Tsengbe342052017-11-03 10:21:23 -07003064 "support_timeout" : false,
3065 "direct_meters" : null,
Carmelo Casconeed88f2b2018-01-26 17:36:34 -08003066 "action_ids" : [17, 19, 13, 1],
Yi Tseng1d842672017-11-28 16:06:52 -08003067 "actions" : ["forwarding.set_next_id", "forwarding.duplicate_to_controller", "forwarding.drop", "nop"],
Yi Tsengf55eaa82017-11-29 15:51:28 -08003068 "base_default_next" : "next.simple",
Yi Tsengbe342052017-11-03 10:21:23 -07003069 "next_tables" : {
Yi Tsengf55eaa82017-11-29 15:51:28 -08003070 "forwarding.set_next_id" : "next.simple",
3071 "forwarding.duplicate_to_controller" : "next.simple",
Yi Tseng1d842672017-11-28 16:06:52 -08003072 "forwarding.drop" : "next.simple",
Yi Tsengf55eaa82017-11-29 15:51:28 -08003073 "nop" : "next.simple"
Yi Tsengbe342052017-11-03 10:21:23 -07003074 },
3075 "default_entry" : {
3076 "action_id" : 1,
3077 "action_const" : true,
3078 "action_data" : [],
3079 "action_entry_const" : true
3080 }
3081 },
3082 {
Yi Tsengf55eaa82017-11-29 15:51:28 -08003083 "name" : "next.simple",
Carmelo Casconeed88f2b2018-01-26 17:36:34 -08003084 "id" : 9,
Yi Tsengbe342052017-11-03 10:21:23 -07003085 "source_info" : {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003086 "filename" : "include/control/next.p4",
Yi Tseng3a5731e2018-01-22 11:38:58 -08003087 "line" : 89,
Yi Tsengbe342052017-11-03 10:21:23 -07003088 "column" : 10,
3089 "source_fragment" : "simple"
3090 },
3091 "key" : [
3092 {
3093 "match_type" : "exact",
3094 "target" : ["scalars", "fabric_metadata_t.next_id"],
3095 "mask" : null
3096 }
3097 ],
3098 "match_type" : "exact",
3099 "type" : "simple",
3100 "max_size" : 1024,
Yi Tsengbd46d052018-01-22 17:18:16 -08003101 "with_counters" : true,
Yi Tsengbe342052017-11-03 10:21:23 -07003102 "support_timeout" : false,
3103 "direct_meters" : null,
Carmelo Casconeed88f2b2018-01-26 17:36:34 -08003104 "action_ids" : [20, 21, 22, 25, 6],
Yi Tseng3a5731e2018-01-22 11:38:58 -08003105 "actions" : ["next.output", "next.set_vlan_output", "next.l3_routing", "next.mpls_routing_v4", "NoAction"],
Yi Tseng1d842672017-11-28 16:06:52 -08003106 "base_default_next" : null,
Yi Tsengbe342052017-11-03 10:21:23 -07003107 "next_tables" : {
Yi Tsengbd46d052018-01-22 17:18:16 -08003108 "__HIT__" : "tbl_act_1",
3109 "__MISS__" : "tbl_act_2"
Yi Tsengbe342052017-11-03 10:21:23 -07003110 },
3111 "default_entry" : {
Carmelo Casconeed88f2b2018-01-26 17:36:34 -08003112 "action_id" : 6,
Yi Tsengbe342052017-11-03 10:21:23 -07003113 "action_const" : false,
3114 "action_data" : [],
3115 "action_entry_const" : false
3116 }
3117 },
3118 {
Yi Tsengbd46d052018-01-22 17:18:16 -08003119 "name" : "tbl_act_1",
Carmelo Casconeed88f2b2018-01-26 17:36:34 -08003120 "id" : 10,
3121 "key" : [],
3122 "match_type" : "exact",
3123 "type" : "simple",
3124 "max_size" : 1024,
3125 "with_counters" : false,
3126 "support_timeout" : false,
3127 "direct_meters" : null,
3128 "action_ids" : [30],
3129 "actions" : ["act_1"],
3130 "base_default_next" : "node_19",
3131 "next_tables" : {
3132 "act_1" : "node_19"
3133 },
3134 "default_entry" : {
3135 "action_id" : 30,
3136 "action_const" : true,
3137 "action_data" : [],
3138 "action_entry_const" : true
3139 }
3140 },
3141 {
3142 "name" : "tbl_act_2",
3143 "id" : 11,
3144 "key" : [],
3145 "match_type" : "exact",
3146 "type" : "simple",
3147 "max_size" : 1024,
3148 "with_counters" : false,
3149 "support_timeout" : false,
3150 "direct_meters" : null,
3151 "action_ids" : [31],
3152 "actions" : ["act_2"],
3153 "base_default_next" : "node_19",
3154 "next_tables" : {
3155 "act_2" : "node_19"
3156 },
3157 "default_entry" : {
3158 "action_id" : 31,
3159 "action_const" : true,
3160 "action_data" : [],
3161 "action_entry_const" : true
3162 }
3163 },
3164 {
3165 "name" : "tbl_act_3",
Yi Tsengbd46d052018-01-22 17:18:16 -08003166 "id" : 12,
3167 "key" : [],
3168 "match_type" : "exact",
3169 "type" : "simple",
3170 "max_size" : 1024,
3171 "with_counters" : false,
3172 "support_timeout" : false,
3173 "direct_meters" : null,
Carmelo Casconeed88f2b2018-01-26 17:36:34 -08003174 "action_ids" : [32],
Yi Tseng1d842672017-11-28 16:06:52 -08003175 "actions" : ["act_3"],
Yi Tsengbd46d052018-01-22 17:18:16 -08003176 "base_default_next" : "next.hashed",
Yi Tseng1d842672017-11-28 16:06:52 -08003177 "next_tables" : {
Yi Tsengbd46d052018-01-22 17:18:16 -08003178 "act_3" : "next.hashed"
Yi Tseng1d842672017-11-28 16:06:52 -08003179 },
3180 "default_entry" : {
Carmelo Casconeed88f2b2018-01-26 17:36:34 -08003181 "action_id" : 32,
Yi Tseng1d842672017-11-28 16:06:52 -08003182 "action_const" : true,
3183 "action_data" : [],
3184 "action_entry_const" : true
3185 }
3186 },
3187 {
Yi Tsengbe342052017-11-03 10:21:23 -07003188 "name" : "next.hashed",
Carmelo Casconeed88f2b2018-01-26 17:36:34 -08003189 "id" : 13,
Yi Tsengbe342052017-11-03 10:21:23 -07003190 "source_info" : {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003191 "filename" : "include/control/next.p4",
Yi Tseng3a5731e2018-01-22 11:38:58 -08003192 "line" : 103,
Yi Tsengbe342052017-11-03 10:21:23 -07003193 "column" : 10,
3194 "source_fragment" : "hashed"
3195 },
3196 "key" : [
3197 {
3198 "match_type" : "exact",
3199 "target" : ["scalars", "fabric_metadata_t.next_id"],
3200 "mask" : null
3201 }
3202 ],
3203 "match_type" : "exact",
3204 "type" : "indirect_ws",
3205 "action_profile" : "next.ecmp_selector",
3206 "max_size" : 1024,
Yi Tsengbd46d052018-01-22 17:18:16 -08003207 "with_counters" : true,
Yi Tsengbe342052017-11-03 10:21:23 -07003208 "support_timeout" : false,
3209 "direct_meters" : null,
Carmelo Casconeed88f2b2018-01-26 17:36:34 -08003210 "action_ids" : [23, 26, 27, 7],
Yi Tseng1b154bd2017-11-20 17:48:19 -08003211 "actions" : ["next.l3_routing", "next.mpls_routing_v4", "next.mpls_routing_v6", "NoAction"],
Yi Tsengf55eaa82017-11-29 15:51:28 -08003212 "base_default_next" : "next.broadcast",
Yi Tsengbe342052017-11-03 10:21:23 -07003213 "next_tables" : {
Yi Tsengf55eaa82017-11-29 15:51:28 -08003214 "next.l3_routing" : "next.broadcast",
3215 "next.mpls_routing_v4" : "next.broadcast",
3216 "next.mpls_routing_v6" : "next.broadcast",
3217 "NoAction" : "next.broadcast"
Yi Tsengbe342052017-11-03 10:21:23 -07003218 }
3219 },
3220 {
3221 "name" : "next.broadcast",
Carmelo Casconeed88f2b2018-01-26 17:36:34 -08003222 "id" : 14,
Yi Tsengbe342052017-11-03 10:21:23 -07003223 "source_info" : {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003224 "filename" : "include/control/next.p4",
Yi Tseng3a5731e2018-01-22 11:38:58 -08003225 "line" : 126,
Yi Tsengbe342052017-11-03 10:21:23 -07003226 "column" : 10,
3227 "source_fragment" : "broadcast"
3228 },
3229 "key" : [
3230 {
3231 "match_type" : "exact",
3232 "target" : ["scalars", "fabric_metadata_t.next_id"],
3233 "mask" : null
3234 }
3235 ],
3236 "match_type" : "exact",
3237 "type" : "simple",
3238 "max_size" : 1024,
Yi Tsengbd46d052018-01-22 17:18:16 -08003239 "with_counters" : true,
Yi Tsengbe342052017-11-03 10:21:23 -07003240 "support_timeout" : false,
3241 "direct_meters" : null,
Carmelo Casconeed88f2b2018-01-26 17:36:34 -08003242 "action_ids" : [24, 8],
Yi Tsengbe342052017-11-03 10:21:23 -07003243 "actions" : ["next.set_mcast_group", "NoAction"],
Carmelo Casconeed88f2b2018-01-26 17:36:34 -08003244 "base_default_next" : "node_25",
Yi Tsengbe342052017-11-03 10:21:23 -07003245 "next_tables" : {
Carmelo Casconeed88f2b2018-01-26 17:36:34 -08003246 "next.set_mcast_group" : "node_25",
3247 "NoAction" : "node_25"
Yi Tsengbe342052017-11-03 10:21:23 -07003248 },
3249 "default_entry" : {
Carmelo Casconeed88f2b2018-01-26 17:36:34 -08003250 "action_id" : 8,
Yi Tsengbe342052017-11-03 10:21:23 -07003251 "action_const" : false,
3252 "action_data" : [],
3253 "action_entry_const" : false
3254 }
3255 },
3256 {
Carmelo Casconeed88f2b2018-01-26 17:36:34 -08003257 "name" : "tbl_act_4",
3258 "id" : 15,
Yi Tsengbd46d052018-01-22 17:18:16 -08003259 "key" : [],
3260 "match_type" : "exact",
3261 "type" : "simple",
3262 "max_size" : 1024,
3263 "with_counters" : false,
3264 "support_timeout" : false,
3265 "direct_meters" : null,
Carmelo Casconeed88f2b2018-01-26 17:36:34 -08003266 "action_ids" : [33],
3267 "actions" : ["act_4"],
3268 "base_default_next" : "node_27",
Yi Tsengbd46d052018-01-22 17:18:16 -08003269 "next_tables" : {
Carmelo Casconeed88f2b2018-01-26 17:36:34 -08003270 "act_4" : "node_27"
Yi Tsengbd46d052018-01-22 17:18:16 -08003271 },
3272 "default_entry" : {
Carmelo Casconeed88f2b2018-01-26 17:36:34 -08003273 "action_id" : 33,
3274 "action_const" : true,
3275 "action_data" : [],
3276 "action_entry_const" : true
3277 }
3278 },
3279 {
3280 "name" : "tbl_act_5",
3281 "id" : 16,
3282 "key" : [],
3283 "match_type" : "exact",
3284 "type" : "simple",
3285 "max_size" : 1024,
3286 "with_counters" : false,
3287 "support_timeout" : false,
3288 "direct_meters" : null,
3289 "action_ids" : [34],
3290 "actions" : ["act_5"],
3291 "base_default_next" : "node_29",
3292 "next_tables" : {
3293 "act_5" : "node_29"
3294 },
3295 "default_entry" : {
3296 "action_id" : 34,
Yi Tsengbd46d052018-01-22 17:18:16 -08003297 "action_const" : true,
3298 "action_data" : [],
3299 "action_entry_const" : true
3300 }
3301 },
3302 {
Yi Tseng1d842672017-11-28 16:06:52 -08003303 "name" : "tbl_act_6",
Carmelo Casconeed88f2b2018-01-26 17:36:34 -08003304 "id" : 17,
Yi Tsengf55eaa82017-11-29 15:51:28 -08003305 "key" : [],
3306 "match_type" : "exact",
3307 "type" : "simple",
3308 "max_size" : 1024,
3309 "with_counters" : false,
3310 "support_timeout" : false,
3311 "direct_meters" : null,
Carmelo Casconeed88f2b2018-01-26 17:36:34 -08003312 "action_ids" : [35],
Yi Tseng1d842672017-11-28 16:06:52 -08003313 "actions" : ["act_6"],
Yi Tsengbd46d052018-01-22 17:18:16 -08003314 "base_default_next" : null,
Yi Tsengbe342052017-11-03 10:21:23 -07003315 "next_tables" : {
Carmelo Casconeed88f2b2018-01-26 17:36:34 -08003316 "act_6" : null
Yi Tsengbe342052017-11-03 10:21:23 -07003317 },
3318 "default_entry" : {
Carmelo Casconeed88f2b2018-01-26 17:36:34 -08003319 "action_id" : 35,
Yi Tseng3a5731e2018-01-22 11:38:58 -08003320 "action_const" : true,
3321 "action_data" : [],
3322 "action_entry_const" : true
3323 }
Yi Tsengbe342052017-11-03 10:21:23 -07003324 }
3325 ],
3326 "action_profiles" : [
3327 {
3328 "name" : "next.ecmp_selector",
3329 "id" : 0,
3330 "max_size" : 64,
3331 "selector" : {
3332 "algo" : "crc16",
3333 "input" : [
3334 {
3335 "type" : "field",
Yi Tseng1d842672017-11-28 16:06:52 -08003336 "value" : ["ethernet", "dst_addr"]
Yi Tsengbe342052017-11-03 10:21:23 -07003337 },
3338 {
3339 "type" : "field",
Yi Tseng1d842672017-11-28 16:06:52 -08003340 "value" : ["ethernet", "src_addr"]
Yi Tsengbe342052017-11-03 10:21:23 -07003341 },
3342 {
3343 "type" : "field",
Yi Tseng1d842672017-11-28 16:06:52 -08003344 "value" : ["scalars", "fabric_metadata_t.ip_proto"]
Yi Tsengbe342052017-11-03 10:21:23 -07003345 },
3346 {
3347 "type" : "field",
3348 "value" : ["scalars", "fabric_metadata_t.l4_src_port"]
3349 },
3350 {
3351 "type" : "field",
3352 "value" : ["scalars", "fabric_metadata_t.l4_dst_port"]
3353 }
3354 ]
3355 }
3356 }
3357 ],
3358 "conditionals" : [
3359 {
3360 "name" : "node_2",
3361 "id" : 0,
3362 "source_info" : {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003363 "filename" : "include/control/packetio.p4",
Yi Tsengbe342052017-11-03 10:21:23 -07003364 "line" : 25,
3365 "column" : 12,
3366 "source_fragment" : "hdr.packet_out.isValid()"
3367 },
3368 "expression" : {
3369 "type" : "expression",
3370 "value" : {
Yi Tsengbd46d052018-01-22 17:18:16 -08003371 "op" : "d2b",
3372 "left" : null,
3373 "right" : {
Yi Tsengbe342052017-11-03 10:21:23 -07003374 "type" : "field",
3375 "value" : ["packet_out", "$valid$"]
Yi Tsengbe342052017-11-03 10:21:23 -07003376 }
3377 }
3378 },
3379 "true_next" : "tbl_act",
3380 "false_next" : "filtering.ingress_port_vlan"
3381 },
3382 {
3383 "name" : "node_6",
3384 "id" : 1,
3385 "source_info" : {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003386 "filename" : "include/control/forwarding.p4",
Carmelo Casconeed88f2b2018-01-26 17:36:34 -08003387 "line" : 157,
Yi Tsengbe342052017-11-03 10:21:23 -07003388 "column" : 11,
3389 "source_fragment" : "fabric_metadata.fwd_type == FWD_BRIDGING"
3390 },
3391 "expression" : {
3392 "type" : "expression",
3393 "value" : {
3394 "op" : "==",
3395 "left" : {
3396 "type" : "field",
3397 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
3398 },
3399 "right" : {
3400 "type" : "hexstr",
3401 "value" : "0x00"
3402 }
3403 }
3404 },
3405 "true_next" : "forwarding.bridging",
3406 "false_next" : "node_8"
3407 },
3408 {
3409 "name" : "node_8",
3410 "id" : 2,
3411 "source_info" : {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003412 "filename" : "include/control/forwarding.p4",
Carmelo Casconeed88f2b2018-01-26 17:36:34 -08003413 "line" : 158,
Yi Tsengbe342052017-11-03 10:21:23 -07003414 "column" : 17,
3415 "source_fragment" : "fabric_metadata.fwd_type == FWD_MPLS"
3416 },
3417 "expression" : {
3418 "type" : "expression",
3419 "value" : {
3420 "op" : "==",
3421 "left" : {
3422 "type" : "field",
3423 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
3424 },
3425 "right" : {
3426 "type" : "hexstr",
3427 "value" : "0x01"
3428 }
3429 }
3430 },
3431 "true_next" : "forwarding.mpls",
Yi Tsengbd46d052018-01-22 17:18:16 -08003432 "false_next" : "node_11"
Yi Tsengbe342052017-11-03 10:21:23 -07003433 },
3434 {
Yi Tsengbd46d052018-01-22 17:18:16 -08003435 "name" : "node_11",
Yi Tsengbe342052017-11-03 10:21:23 -07003436 "id" : 3,
3437 "source_info" : {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003438 "filename" : "include/control/forwarding.p4",
Carmelo Casconeed88f2b2018-01-26 17:36:34 -08003439 "line" : 165,
Yi Tsengbe342052017-11-03 10:21:23 -07003440 "column" : 17,
3441 "source_fragment" : "fabric_metadata.fwd_type == FWD_IPV4_UNICAST"
3442 },
3443 "expression" : {
3444 "type" : "expression",
3445 "value" : {
3446 "op" : "==",
3447 "left" : {
3448 "type" : "field",
3449 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
3450 },
3451 "right" : {
3452 "type" : "hexstr",
3453 "value" : "0x02"
3454 }
3455 }
3456 },
3457 "true_next" : "forwarding.unicast_v4",
Yi Tsengbd46d052018-01-22 17:18:16 -08003458 "false_next" : "node_13"
Yi Tsengbe342052017-11-03 10:21:23 -07003459 },
3460 {
Yi Tsengbd46d052018-01-22 17:18:16 -08003461 "name" : "node_13",
3462 "id" : 4,
Yi Tsengbe342052017-11-03 10:21:23 -07003463 "source_info" : {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003464 "filename" : "include/control/forwarding.p4",
Carmelo Casconeed88f2b2018-01-26 17:36:34 -08003465 "line" : 166,
Yi Tsengbe342052017-11-03 10:21:23 -07003466 "column" : 17,
3467 "source_fragment" : "fabric_metadata.fwd_type == FWD_IPV4_MULTICAST"
3468 },
3469 "expression" : {
3470 "type" : "expression",
3471 "value" : {
3472 "op" : "==",
3473 "left" : {
3474 "type" : "field",
3475 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
3476 },
3477 "right" : {
3478 "type" : "hexstr",
3479 "value" : "0x03"
3480 }
3481 }
3482 },
3483 "true_next" : "forwarding.multicast_v4",
Yi Tsengbe342052017-11-03 10:21:23 -07003484 "false_next" : "forwarding.acl"
3485 },
3486 {
Carmelo Casconeed88f2b2018-01-26 17:36:34 -08003487 "name" : "node_19",
3488 "id" : 5,
Yi Tseng1d842672017-11-28 16:06:52 -08003489 "expression" : {
3490 "type" : "expression",
3491 "value" : {
3492 "op" : "d2b",
3493 "left" : null,
3494 "right" : {
3495 "type" : "field",
3496 "value" : ["scalars", "next_tmp_0"]
3497 }
3498 }
3499 },
Carmelo Casconeed88f2b2018-01-26 17:36:34 -08003500 "true_next" : "node_20",
Yi Tseng1d842672017-11-28 16:06:52 -08003501 "false_next" : "next.hashed"
3502 },
3503 {
Carmelo Casconeed88f2b2018-01-26 17:36:34 -08003504 "name" : "node_20",
3505 "id" : 6,
Yi Tseng1d842672017-11-28 16:06:52 -08003506 "source_info" : {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003507 "filename" : "include/control/next.p4",
Yi Tseng3a5731e2018-01-22 11:38:58 -08003508 "line" : 138,
Yi Tsengbd46d052018-01-22 17:18:16 -08003509 "column" : 16,
3510 "source_fragment" : "!hdr.mpls.isValid()"
Yi Tseng1d842672017-11-28 16:06:52 -08003511 },
3512 "expression" : {
3513 "type" : "expression",
3514 "value" : {
Yi Tsengbd46d052018-01-22 17:18:16 -08003515 "op" : "not",
3516 "left" : null,
Yi Tseng1d842672017-11-28 16:06:52 -08003517 "right" : {
Yi Tsengbd46d052018-01-22 17:18:16 -08003518 "type" : "expression",
3519 "value" : {
3520 "op" : "d2b",
3521 "left" : null,
3522 "right" : {
3523 "type" : "field",
3524 "value" : ["mpls", "$valid$"]
3525 }
3526 }
Yi Tseng1d842672017-11-28 16:06:52 -08003527 }
3528 }
3529 },
Carmelo Casconeed88f2b2018-01-26 17:36:34 -08003530 "true_next" : "node_21",
Yi Tseng1d842672017-11-28 16:06:52 -08003531 "false_next" : "next.hashed"
3532 },
3533 {
Carmelo Casconeed88f2b2018-01-26 17:36:34 -08003534 "name" : "node_21",
3535 "id" : 7,
Yi Tseng1d842672017-11-28 16:06:52 -08003536 "source_info" : {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003537 "filename" : "include/control/next.p4",
Yi Tseng3a5731e2018-01-22 11:38:58 -08003538 "line" : 139,
Yi Tseng1d842672017-11-28 16:06:52 -08003539 "column" : 19,
3540 "source_fragment" : "hdr.ipv4.isValid()"
3541 },
3542 "expression" : {
3543 "type" : "expression",
3544 "value" : {
Yi Tsengbd46d052018-01-22 17:18:16 -08003545 "op" : "d2b",
3546 "left" : null,
3547 "right" : {
Yi Tseng1d842672017-11-28 16:06:52 -08003548 "type" : "field",
3549 "value" : ["ipv4", "$valid$"]
Yi Tseng1d842672017-11-28 16:06:52 -08003550 }
3551 }
3552 },
Yi Tsengbd46d052018-01-22 17:18:16 -08003553 "true_next" : "tbl_act_3",
Yi Tseng1d842672017-11-28 16:06:52 -08003554 "false_next" : "next.hashed"
3555 },
3556 {
Carmelo Casconeed88f2b2018-01-26 17:36:34 -08003557 "name" : "node_25",
3558 "id" : 8,
Yi Tsengbe342052017-11-03 10:21:23 -07003559 "source_info" : {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003560 "filename" : "include/control/port_counter.p4",
Yi Tsengbe342052017-11-03 10:21:23 -07003561 "line" : 27,
3562 "column" : 12,
3563 "source_fragment" : "standard_metadata.egress_spec < 511"
3564 },
3565 "expression" : {
3566 "type" : "expression",
3567 "value" : {
3568 "op" : "<",
3569 "left" : {
3570 "type" : "field",
3571 "value" : ["standard_metadata", "egress_spec"]
3572 },
3573 "right" : {
3574 "type" : "hexstr",
3575 "value" : "0x01ff"
3576 }
3577 }
3578 },
Carmelo Casconeed88f2b2018-01-26 17:36:34 -08003579 "true_next" : "tbl_act_4",
3580 "false_next" : "node_27"
Yi Tsengbe342052017-11-03 10:21:23 -07003581 },
3582 {
Carmelo Casconeed88f2b2018-01-26 17:36:34 -08003583 "name" : "node_27",
3584 "id" : 9,
Yi Tsengbe342052017-11-03 10:21:23 -07003585 "source_info" : {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003586 "filename" : "include/control/port_counter.p4",
Yi Tsengbe342052017-11-03 10:21:23 -07003587 "line" : 30,
3588 "column" : 12,
3589 "source_fragment" : "standard_metadata.ingress_port < 511"
3590 },
3591 "expression" : {
3592 "type" : "expression",
3593 "value" : {
3594 "op" : "<",
3595 "left" : {
3596 "type" : "field",
3597 "value" : ["standard_metadata", "ingress_port"]
3598 },
3599 "right" : {
3600 "type" : "hexstr",
3601 "value" : "0x01ff"
3602 }
3603 }
3604 },
Carmelo Casconeed88f2b2018-01-26 17:36:34 -08003605 "true_next" : "tbl_act_5",
3606 "false_next" : "node_29"
Yi Tsengf55eaa82017-11-29 15:51:28 -08003607 },
3608 {
Carmelo Casconeed88f2b2018-01-26 17:36:34 -08003609 "name" : "node_29",
3610 "id" : 10,
Yi Tsengbe342052017-11-03 10:21:23 -07003611 "source_info" : {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003612 "filename" : "include/control/next.p4",
Carmelo Casconeed88f2b2018-01-26 17:36:34 -08003613 "line" : 161,
Yi Tsengbe342052017-11-03 10:21:23 -07003614 "column" : 12,
3615 "source_fragment" : "fabric_metadata.pop_vlan_at_egress"
3616 },
3617 "expression" : {
3618 "type" : "expression",
3619 "value" : {
3620 "op" : "d2b",
3621 "left" : null,
3622 "right" : {
3623 "type" : "field",
3624 "value" : ["scalars", "fabric_metadata_t.pop_vlan_at_egress"]
3625 }
3626 }
3627 },
Yi Tseng3a5731e2018-01-22 11:38:58 -08003628 "false_next" : null,
Carmelo Casconeed88f2b2018-01-26 17:36:34 -08003629 "true_next" : "tbl_act_6"
Yi Tseng3a5731e2018-01-22 11:38:58 -08003630 }
3631 ]
3632 },
3633 {
3634 "name" : "egress",
3635 "id" : 1,
3636 "source_info" : {
3637 "filename" : "fabric.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003638 "line" : 60,
Yi Tseng3a5731e2018-01-22 11:38:58 -08003639 "column" : 8,
3640 "source_fragment" : "FabricEgress"
3641 },
Carmelo Casconeed88f2b2018-01-26 17:36:34 -08003642 "init_table" : "node_33",
Yi Tseng3a5731e2018-01-22 11:38:58 -08003643 "tables" : [
3644 {
Carmelo Casconeed88f2b2018-01-26 17:36:34 -08003645 "name" : "tbl_act_7",
3646 "id" : 18,
Yi Tseng3a5731e2018-01-22 11:38:58 -08003647 "key" : [],
3648 "match_type" : "exact",
3649 "type" : "simple",
3650 "max_size" : 1024,
3651 "with_counters" : false,
3652 "support_timeout" : false,
3653 "direct_meters" : null,
Carmelo Casconeed88f2b2018-01-26 17:36:34 -08003654 "action_ids" : [36],
3655 "actions" : ["act_7"],
Yi Tseng3a5731e2018-01-22 11:38:58 -08003656 "base_default_next" : null,
3657 "next_tables" : {
Carmelo Casconeed88f2b2018-01-26 17:36:34 -08003658 "act_7" : null
Yi Tseng3a5731e2018-01-22 11:38:58 -08003659 },
3660 "default_entry" : {
Carmelo Casconeed88f2b2018-01-26 17:36:34 -08003661 "action_id" : 36,
Yi Tseng3a5731e2018-01-22 11:38:58 -08003662 "action_const" : true,
3663 "action_data" : [],
3664 "action_entry_const" : true
3665 }
3666 }
3667 ],
3668 "action_profiles" : [],
3669 "conditionals" : [
Yi Tseng1d842672017-11-28 16:06:52 -08003670 {
Carmelo Casconeed88f2b2018-01-26 17:36:34 -08003671 "name" : "node_33",
3672 "id" : 11,
Yi Tsengbe342052017-11-03 10:21:23 -07003673 "source_info" : {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003674 "filename" : "include/control/packetio.p4",
Yi Tsengbe342052017-11-03 10:21:23 -07003675 "line" : 38,
3676 "column" : 12,
3677 "source_fragment" : "standard_metadata.egress_port == CPU_PORT"
3678 },
3679 "expression" : {
3680 "type" : "expression",
3681 "value" : {
3682 "op" : "==",
3683 "left" : {
3684 "type" : "field",
3685 "value" : ["standard_metadata", "egress_port"]
3686 },
3687 "right" : {
3688 "type" : "hexstr",
3689 "value" : "0x00ff"
3690 }
3691 }
3692 },
3693 "false_next" : null,
Carmelo Casconeed88f2b2018-01-26 17:36:34 -08003694 "true_next" : "tbl_act_7"
Yi Tsengbe342052017-11-03 10:21:23 -07003695 }
3696 ]
3697 }
3698 ],
3699 "checksums" : [
3700 {
3701 "name" : "cksum",
3702 "id" : 0,
3703 "target" : ["ipv4", "hdr_checksum"],
3704 "type" : "generic",
Yi Tsengbd46d052018-01-22 17:18:16 -08003705 "calculation" : "calc",
3706 "if_cond" : {
3707 "type" : "expression",
3708 "value" : {
3709 "op" : "d2b",
3710 "left" : null,
3711 "right" : {
3712 "type" : "field",
3713 "value" : ["ipv4", "$valid$"]
3714 }
3715 }
3716 }
Yi Tsengbe342052017-11-03 10:21:23 -07003717 },
3718 {
3719 "name" : "cksum_0",
3720 "id" : 1,
Yi Tsengbe342052017-11-03 10:21:23 -07003721 "target" : ["ipv4", "hdr_checksum"],
3722 "type" : "generic",
Yi Tsengbd46d052018-01-22 17:18:16 -08003723 "calculation" : "calc_0",
3724 "if_cond" : {
3725 "type" : "expression",
3726 "value" : {
3727 "op" : "d2b",
3728 "left" : null,
3729 "right" : {
3730 "type" : "field",
3731 "value" : ["ipv4", "$valid$"]
3732 }
3733 }
3734 }
Yi Tsengbe342052017-11-03 10:21:23 -07003735 }
3736 ],
3737 "force_arith" : [],
3738 "extern_instances" : [],
3739 "field_aliases" : [
3740 [
3741 "queueing_metadata.enq_timestamp",
3742 ["standard_metadata", "enq_timestamp"]
3743 ],
3744 [
3745 "queueing_metadata.enq_qdepth",
3746 ["standard_metadata", "enq_qdepth"]
3747 ],
3748 [
3749 "queueing_metadata.deq_timedelta",
3750 ["standard_metadata", "deq_timedelta"]
3751 ],
3752 [
3753 "queueing_metadata.deq_qdepth",
3754 ["standard_metadata", "deq_qdepth"]
3755 ],
3756 [
3757 "intrinsic_metadata.ingress_global_timestamp",
3758 ["standard_metadata", "ingress_global_timestamp"]
3759 ],
3760 [
3761 "intrinsic_metadata.lf_field_list",
3762 ["standard_metadata", "lf_field_list"]
3763 ],
3764 [
3765 "intrinsic_metadata.mcast_grp",
3766 ["standard_metadata", "mcast_grp"]
3767 ],
3768 [
3769 "intrinsic_metadata.resubmit_flag",
3770 ["standard_metadata", "resubmit_flag"]
3771 ],
3772 [
3773 "intrinsic_metadata.egress_rid",
3774 ["standard_metadata", "egress_rid"]
3775 ]
3776 ]
3777}