blob: ea168bb4ac4162c2514dc121e2028c613fc5c79b [file] [log] [blame]
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07001{
2 "header_types" : [
3 {
4 "name" : "scalars_0",
5 "id" : 0,
6 "fields" : [
7 ["tmp_0", 4, false],
8 ["tmp", 32, false],
9 ["tmp_1", 32, false],
10 ["bng_ingress_upstream_tmp", 1, false],
11 ["bng_ingress_downstream_tmp", 1, false],
12 ["bng_ingress_upstream_hasReturned", 1, false],
13 ["egress_next_tmp", 1, false],
14 ["fabric_metadata_t._eth_type0", 16, false],
15 ["fabric_metadata_t._ip_eth_type1", 16, false],
16 ["fabric_metadata_t._vlan_id2", 12, false],
17 ["fabric_metadata_t._vlan_pri3", 3, false],
18 ["fabric_metadata_t._vlan_cfi4", 1, false],
19 ["fabric_metadata_t._mpls_label5", 20, false],
20 ["fabric_metadata_t._mpls_ttl6", 8, false],
21 ["fabric_metadata_t._skip_forwarding7", 1, false],
22 ["fabric_metadata_t._skip_next8", 1, false],
23 ["fabric_metadata_t._fwd_type9", 3, false],
24 ["fabric_metadata_t._next_id10", 32, false],
25 ["fabric_metadata_t._is_multicast11", 1, false],
26 ["fabric_metadata_t._is_controller_packet_out12", 1, false],
Daniele Moro01ca2ab2019-06-25 11:48:48 -070027 ["fabric_metadata_t._ip_proto13", 8, false],
28 ["fabric_metadata_t._l4_sport14", 16, false],
29 ["fabric_metadata_t._l4_dport15", 16, false],
30 ["fabric_metadata_t._bng_type16", 2, false],
31 ["fabric_metadata_t._bng_line_id17", 32, false],
32 ["fabric_metadata_t._bng_ds_meter_result18", 32, false],
33 ["_padding_0", 3, false]
Carmelo Cascone4d8785b2019-05-31 17:11:26 -070034 ]
35 },
36 {
37 "name" : "standard_metadata",
38 "id" : 1,
39 "fields" : [
40 ["ingress_port", 9, false],
41 ["egress_spec", 9, false],
42 ["egress_port", 9, false],
43 ["clone_spec", 32, false],
44 ["instance_type", 32, false],
45 ["drop", 1, false],
46 ["recirculate_port", 16, false],
47 ["packet_length", 32, false],
48 ["enq_timestamp", 32, false],
49 ["enq_qdepth", 19, false],
50 ["deq_timedelta", 32, false],
51 ["deq_qdepth", 19, false],
52 ["ingress_global_timestamp", 48, false],
53 ["egress_global_timestamp", 48, false],
54 ["lf_field_list", 32, false],
55 ["mcast_grp", 16, false],
56 ["resubmit_flag", 32, false],
57 ["egress_rid", 16, false],
58 ["recirculate_flag", 32, false],
59 ["checksum_error", 1, false],
60 ["parser_error", 32, false],
61 ["priority", 3, false],
62 ["_padding", 2, false]
63 ]
64 },
65 {
66 "name" : "ethernet_t",
67 "id" : 2,
68 "fields" : [
69 ["dst_addr", 48, false],
70 ["src_addr", 48, false],
71 ["eth_type", 16, false]
72 ]
73 },
74 {
75 "name" : "vlan_tag_t",
76 "id" : 3,
77 "fields" : [
78 ["pri", 3, false],
79 ["cfi", 1, false],
80 ["vlan_id", 12, false],
81 ["eth_type", 16, false]
82 ]
83 },
84 {
85 "name" : "pppoe_t",
86 "id" : 4,
87 "fields" : [
88 ["version", 4, false],
89 ["type_id", 4, false],
90 ["code", 8, false],
91 ["session_id", 16, false],
92 ["length", 16, false],
93 ["protocol", 16, false]
94 ]
95 },
96 {
97 "name" : "mpls_t",
98 "id" : 5,
99 "fields" : [
100 ["label", 20, false],
101 ["tc", 3, false],
102 ["bos", 1, false],
103 ["ttl", 8, false]
104 ]
105 },
106 {
107 "name" : "ipv4_t",
108 "id" : 6,
109 "fields" : [
110 ["version", 4, false],
111 ["ihl", 4, false],
112 ["dscp", 6, false],
113 ["ecn", 2, false],
114 ["total_len", 16, false],
115 ["identification", 16, false],
116 ["flags", 3, false],
117 ["frag_offset", 13, false],
118 ["ttl", 8, false],
119 ["protocol", 8, false],
120 ["hdr_checksum", 16, false],
121 ["src_addr", 32, false],
122 ["dst_addr", 32, false]
123 ]
124 },
125 {
126 "name" : "tcp_t",
127 "id" : 7,
128 "fields" : [
129 ["sport", 16, false],
130 ["dport", 16, false],
131 ["seq_no", 32, false],
132 ["ack_no", 32, false],
133 ["data_offset", 4, false],
134 ["res", 3, false],
135 ["ecn", 3, false],
136 ["ctrl", 6, false],
137 ["window", 16, false],
138 ["checksum", 16, false],
139 ["urgent_ptr", 16, false]
140 ]
141 },
142 {
143 "name" : "udp_t",
144 "id" : 8,
145 "fields" : [
146 ["sport", 16, false],
147 ["dport", 16, false],
148 ["len", 16, false],
149 ["checksum", 16, false]
150 ]
151 },
152 {
153 "name" : "icmp_t",
154 "id" : 9,
155 "fields" : [
156 ["icmp_type", 8, false],
157 ["icmp_code", 8, false],
158 ["checksum", 16, false],
159 ["identifier", 16, false],
160 ["sequence_number", 16, false],
161 ["timestamp", 64, false]
162 ]
163 },
164 {
165 "name" : "packet_out_header_t",
166 "id" : 10,
167 "fields" : [
168 ["egress_port", 9, false],
169 ["_pad", 7, false]
170 ]
171 },
172 {
173 "name" : "packet_in_header_t",
174 "id" : 11,
175 "fields" : [
176 ["ingress_port", 9, false],
177 ["_pad", 7, false]
178 ]
179 }
180 ],
181 "headers" : [
182 {
183 "name" : "scalars",
184 "id" : 0,
185 "header_type" : "scalars_0",
186 "metadata" : true,
187 "pi_omit" : true
188 },
189 {
190 "name" : "standard_metadata",
191 "id" : 1,
192 "header_type" : "standard_metadata",
193 "metadata" : true,
194 "pi_omit" : true
195 },
196 {
197 "name" : "ethernet",
198 "id" : 2,
199 "header_type" : "ethernet_t",
200 "metadata" : false,
201 "pi_omit" : true
202 },
203 {
204 "name" : "vlan_tag",
205 "id" : 3,
206 "header_type" : "vlan_tag_t",
207 "metadata" : false,
208 "pi_omit" : true
209 },
210 {
211 "name" : "inner_vlan_tag",
212 "id" : 4,
213 "header_type" : "vlan_tag_t",
214 "metadata" : false,
215 "pi_omit" : true
216 },
217 {
218 "name" : "pppoe",
219 "id" : 5,
220 "header_type" : "pppoe_t",
221 "metadata" : false,
222 "pi_omit" : true
223 },
224 {
225 "name" : "mpls",
226 "id" : 6,
227 "header_type" : "mpls_t",
228 "metadata" : false,
229 "pi_omit" : true
230 },
231 {
232 "name" : "ipv4",
233 "id" : 7,
234 "header_type" : "ipv4_t",
235 "metadata" : false,
236 "pi_omit" : true
237 },
238 {
239 "name" : "tcp",
240 "id" : 8,
241 "header_type" : "tcp_t",
242 "metadata" : false,
243 "pi_omit" : true
244 },
245 {
246 "name" : "udp",
247 "id" : 9,
248 "header_type" : "udp_t",
249 "metadata" : false,
250 "pi_omit" : true
251 },
252 {
253 "name" : "icmp",
254 "id" : 10,
255 "header_type" : "icmp_t",
256 "metadata" : false,
257 "pi_omit" : true
258 },
259 {
260 "name" : "packet_out",
261 "id" : 11,
262 "header_type" : "packet_out_header_t",
263 "metadata" : false,
264 "pi_omit" : true
265 },
266 {
267 "name" : "packet_in",
268 "id" : 12,
269 "header_type" : "packet_in_header_t",
270 "metadata" : false,
271 "pi_omit" : true
272 }
273 ],
274 "header_stacks" : [],
275 "header_union_types" : [],
276 "header_unions" : [],
277 "header_union_stacks" : [],
Daniele Moro01ca2ab2019-06-25 11:48:48 -0700278 "field_lists" : [
279 {
280 "id" : 1,
281 "name" : "fl",
282 "source_info" : {
Carmelo Cascone7d54994b2019-06-25 18:20:02 -0700283 "filename" : "include/control/acl.p4",
284 "line" : 46,
Daniele Moro01ca2ab2019-06-25 11:48:48 -0700285 "column" : 40,
Carmelo Cascone7d54994b2019-06-25 18:20:02 -0700286 "source_fragment" : "{standard_metadata.ingress_port}"
Daniele Moro01ca2ab2019-06-25 11:48:48 -0700287 },
288 "elements" : [
289 {
290 "type" : "field",
291 "value" : ["standard_metadata", "ingress_port"]
Daniele Moro01ca2ab2019-06-25 11:48:48 -0700292 }
293 ]
294 }
295 ],
Carmelo Cascone4d8785b2019-05-31 17:11:26 -0700296 "errors" : [
297 ["NoError", 1],
298 ["PacketTooShort", 2],
299 ["NoMatch", 3],
300 ["StackOutOfBounds", 4],
301 ["HeaderTooShort", 5],
302 ["ParserTimeout", 6],
303 ["ParserInvalidArgument", 7]
304 ],
305 "enums" : [],
306 "parsers" : [
307 {
308 "name" : "parser",
309 "id" : 0,
310 "init_state" : "start",
311 "parse_states" : [
312 {
313 "name" : "start",
314 "id" : 0,
315 "parser_ops" : [],
316 "transitions" : [
317 {
318 "type" : "hexstr",
319 "value" : "0x00ff",
320 "mask" : null,
321 "next_state" : "parse_packet_out"
322 },
323 {
324 "value" : "default",
325 "mask" : null,
326 "next_state" : "parse_ethernet"
327 }
328 ],
329 "transition_key" : [
330 {
331 "type" : "field",
332 "value" : ["standard_metadata", "ingress_port"]
333 }
334 ]
335 },
336 {
337 "name" : "parse_packet_out",
338 "id" : 1,
339 "parser_ops" : [
340 {
341 "parameters" : [
342 {
343 "type" : "regular",
344 "value" : "packet_out"
345 }
346 ],
347 "op" : "extract"
348 }
349 ],
350 "transitions" : [
351 {
352 "value" : "default",
353 "mask" : null,
354 "next_state" : "parse_ethernet"
355 }
356 ],
357 "transition_key" : []
358 },
359 {
360 "name" : "parse_ethernet",
361 "id" : 2,
362 "parser_ops" : [
363 {
364 "parameters" : [
365 {
366 "type" : "regular",
367 "value" : "ethernet"
368 }
369 ],
370 "op" : "extract"
371 },
372 {
373 "parameters" : [
374 {
375 "type" : "field",
376 "value" : ["scalars", "fabric_metadata_t._eth_type0"]
377 },
378 {
379 "type" : "field",
380 "value" : ["ethernet", "eth_type"]
381 }
382 ],
383 "op" : "set"
384 },
385 {
386 "parameters" : [
387 {
388 "type" : "field",
389 "value" : ["scalars", "fabric_metadata_t._vlan_id2"]
390 },
391 {
392 "type" : "hexstr",
393 "value" : "0x0ffe"
394 }
395 ],
396 "op" : "set"
397 }
398 ],
399 "transitions" : [
400 {
401 "type" : "hexstr",
402 "value" : "0x8100",
403 "mask" : null,
404 "next_state" : "parse_vlan_tag"
405 },
406 {
407 "type" : "hexstr",
408 "value" : "0x8847",
409 "mask" : null,
410 "next_state" : "parse_mpls"
411 },
412 {
413 "type" : "hexstr",
414 "value" : "0x0800",
415 "mask" : null,
416 "next_state" : "parse_ipv4"
417 },
418 {
419 "value" : "default",
420 "mask" : null,
421 "next_state" : null
422 }
423 ],
424 "transition_key" : [
425 {
426 "type" : "field",
427 "value" : ["ethernet", "eth_type"]
428 }
429 ]
430 },
431 {
432 "name" : "parse_vlan_tag",
433 "id" : 3,
434 "parser_ops" : [
435 {
436 "parameters" : [
437 {
438 "type" : "regular",
439 "value" : "vlan_tag"
440 }
441 ],
442 "op" : "extract"
443 }
444 ],
445 "transitions" : [
446 {
447 "type" : "hexstr",
448 "value" : "0x0800",
449 "mask" : null,
450 "next_state" : "parse_ipv4"
451 },
452 {
453 "type" : "hexstr",
454 "value" : "0x8847",
455 "mask" : null,
456 "next_state" : "parse_mpls"
457 },
458 {
459 "type" : "hexstr",
460 "value" : "0x8100",
461 "mask" : null,
462 "next_state" : "parse_inner_vlan_tag"
463 },
464 {
465 "value" : "default",
466 "mask" : null,
467 "next_state" : null
468 }
469 ],
470 "transition_key" : [
471 {
472 "type" : "field",
473 "value" : ["vlan_tag", "eth_type"]
474 }
475 ]
476 },
477 {
478 "name" : "parse_inner_vlan_tag",
479 "id" : 4,
480 "parser_ops" : [
481 {
482 "parameters" : [
483 {
484 "type" : "regular",
485 "value" : "inner_vlan_tag"
486 }
487 ],
488 "op" : "extract"
489 }
490 ],
491 "transitions" : [
492 {
493 "type" : "hexstr",
494 "value" : "0x0800",
495 "mask" : null,
496 "next_state" : "parse_ipv4"
497 },
498 {
499 "type" : "hexstr",
500 "value" : "0x8847",
501 "mask" : null,
502 "next_state" : "parse_mpls"
503 },
504 {
505 "type" : "hexstr",
506 "value" : "0x8863",
507 "mask" : null,
508 "next_state" : "parse_pppoe"
509 },
510 {
511 "type" : "hexstr",
512 "value" : "0x8864",
513 "mask" : null,
514 "next_state" : "parse_pppoe"
515 },
516 {
517 "value" : "default",
518 "mask" : null,
519 "next_state" : null
520 }
521 ],
522 "transition_key" : [
523 {
524 "type" : "field",
525 "value" : ["inner_vlan_tag", "eth_type"]
526 }
527 ]
528 },
529 {
530 "name" : "parse_pppoe",
531 "id" : 5,
532 "parser_ops" : [
533 {
534 "parameters" : [
535 {
536 "type" : "regular",
537 "value" : "pppoe"
538 }
539 ],
540 "op" : "extract"
541 }
542 ],
543 "transitions" : [
544 {
545 "type" : "hexstr",
546 "value" : "0x0021",
547 "mask" : null,
548 "next_state" : "parse_ipv4"
549 },
550 {
551 "value" : "default",
552 "mask" : null,
553 "next_state" : null
554 }
555 ],
556 "transition_key" : [
557 {
558 "type" : "field",
559 "value" : ["pppoe", "protocol"]
560 }
561 ]
562 },
563 {
564 "name" : "parse_mpls",
565 "id" : 6,
566 "parser_ops" : [
567 {
568 "parameters" : [
569 {
570 "type" : "regular",
571 "value" : "mpls"
572 }
573 ],
574 "op" : "extract"
575 },
576 {
577 "parameters" : [
578 {
579 "type" : "field",
580 "value" : ["scalars", "fabric_metadata_t._mpls_label5"]
581 },
582 {
583 "type" : "field",
584 "value" : ["mpls", "label"]
585 }
586 ],
587 "op" : "set"
588 },
589 {
590 "parameters" : [
591 {
592 "type" : "field",
593 "value" : ["scalars", "fabric_metadata_t._mpls_ttl6"]
594 },
595 {
596 "type" : "field",
597 "value" : ["mpls", "ttl"]
598 }
599 ],
600 "op" : "set"
601 },
602 {
603 "parameters" : [
604 {
605 "type" : "field",
606 "value" : ["scalars", "tmp_0"]
607 },
608 {
609 "type" : "lookahead",
610 "value" : [0, 4]
611 }
612 ],
613 "op" : "set"
614 }
615 ],
616 "transitions" : [
617 {
618 "type" : "hexstr",
619 "value" : "0x04",
620 "mask" : null,
621 "next_state" : "parse_ipv4"
622 },
623 {
624 "value" : "default",
625 "mask" : null,
626 "next_state" : "parse_ethernet"
627 }
628 ],
629 "transition_key" : [
630 {
631 "type" : "field",
632 "value" : ["scalars", "tmp_0"]
633 }
634 ]
635 },
636 {
637 "name" : "parse_ipv4",
638 "id" : 7,
639 "parser_ops" : [
640 {
641 "parameters" : [
642 {
643 "type" : "regular",
644 "value" : "ipv4"
645 }
646 ],
647 "op" : "extract"
648 },
649 {
650 "parameters" : [
651 {
652 "type" : "field",
Daniele Moro01ca2ab2019-06-25 11:48:48 -0700653 "value" : ["scalars", "fabric_metadata_t._ip_proto13"]
Carmelo Cascone4d8785b2019-05-31 17:11:26 -0700654 },
655 {
656 "type" : "field",
657 "value" : ["ipv4", "protocol"]
658 }
659 ],
660 "op" : "set"
661 },
662 {
663 "parameters" : [
664 {
665 "type" : "field",
666 "value" : ["scalars", "fabric_metadata_t._ip_eth_type1"]
667 },
668 {
669 "type" : "hexstr",
670 "value" : "0x0800"
671 }
672 ],
673 "op" : "set"
674 }
675 ],
676 "transitions" : [
677 {
678 "type" : "hexstr",
679 "value" : "0x06",
680 "mask" : null,
681 "next_state" : "parse_tcp"
682 },
683 {
684 "type" : "hexstr",
685 "value" : "0x11",
686 "mask" : null,
687 "next_state" : "parse_udp"
688 },
689 {
690 "type" : "hexstr",
691 "value" : "0x01",
692 "mask" : null,
693 "next_state" : "parse_icmp"
694 },
695 {
696 "value" : "default",
697 "mask" : null,
698 "next_state" : null
699 }
700 ],
701 "transition_key" : [
702 {
703 "type" : "field",
704 "value" : ["ipv4", "protocol"]
705 }
706 ]
707 },
708 {
709 "name" : "parse_tcp",
710 "id" : 8,
711 "parser_ops" : [
712 {
713 "parameters" : [
714 {
715 "type" : "regular",
716 "value" : "tcp"
717 }
718 ],
719 "op" : "extract"
720 },
721 {
722 "parameters" : [
723 {
724 "type" : "field",
Daniele Moro01ca2ab2019-06-25 11:48:48 -0700725 "value" : ["scalars", "fabric_metadata_t._l4_sport14"]
Carmelo Cascone4d8785b2019-05-31 17:11:26 -0700726 },
727 {
728 "type" : "field",
729 "value" : ["tcp", "sport"]
730 }
731 ],
732 "op" : "set"
733 },
734 {
735 "parameters" : [
736 {
737 "type" : "field",
Daniele Moro01ca2ab2019-06-25 11:48:48 -0700738 "value" : ["scalars", "fabric_metadata_t._l4_dport15"]
Carmelo Cascone4d8785b2019-05-31 17:11:26 -0700739 },
740 {
741 "type" : "field",
742 "value" : ["tcp", "dport"]
743 }
744 ],
745 "op" : "set"
746 }
747 ],
748 "transitions" : [
749 {
750 "value" : "default",
751 "mask" : null,
752 "next_state" : null
753 }
754 ],
755 "transition_key" : []
756 },
757 {
758 "name" : "parse_udp",
759 "id" : 9,
760 "parser_ops" : [
761 {
762 "parameters" : [
763 {
764 "type" : "regular",
765 "value" : "udp"
766 }
767 ],
768 "op" : "extract"
769 },
770 {
771 "parameters" : [
772 {
773 "type" : "field",
Daniele Moro01ca2ab2019-06-25 11:48:48 -0700774 "value" : ["scalars", "fabric_metadata_t._l4_sport14"]
Carmelo Cascone4d8785b2019-05-31 17:11:26 -0700775 },
776 {
777 "type" : "field",
778 "value" : ["udp", "sport"]
779 }
780 ],
781 "op" : "set"
782 },
783 {
784 "parameters" : [
785 {
786 "type" : "field",
Daniele Moro01ca2ab2019-06-25 11:48:48 -0700787 "value" : ["scalars", "fabric_metadata_t._l4_dport15"]
Carmelo Cascone4d8785b2019-05-31 17:11:26 -0700788 },
789 {
790 "type" : "field",
791 "value" : ["udp", "dport"]
792 }
793 ],
794 "op" : "set"
795 }
796 ],
797 "transitions" : [
798 {
799 "value" : "default",
800 "mask" : null,
801 "next_state" : null
802 }
803 ],
804 "transition_key" : [
805 {
806 "type" : "field",
807 "value" : ["udp", "dport"]
808 }
809 ]
810 },
811 {
812 "name" : "parse_icmp",
813 "id" : 10,
814 "parser_ops" : [
815 {
816 "parameters" : [
817 {
818 "type" : "regular",
819 "value" : "icmp"
820 }
821 ],
822 "op" : "extract"
823 }
824 ],
825 "transitions" : [
826 {
827 "value" : "default",
828 "mask" : null,
829 "next_state" : null
830 }
831 ],
832 "transition_key" : []
833 }
834 ]
835 }
836 ],
837 "parse_vsets" : [],
838 "deparsers" : [
839 {
840 "name" : "deparser",
841 "id" : 0,
842 "source_info" : {
843 "filename" : "include/parser.p4",
844 "line" : 260,
845 "column" : 8,
846 "source_fragment" : "FabricDeparser"
847 },
848 "order" : ["packet_in", "ethernet", "vlan_tag", "inner_vlan_tag", "pppoe", "mpls", "ipv4", "tcp", "udp", "icmp"]
849 }
850 ],
851 "meter_arrays" : [
852 {
853 "name" : "FabricIngress.bng_ingress.downstream.m_besteff",
854 "id" : 0,
855 "source_info" : {
856 "filename" : "include/bng.p4",
Daniele Moro01ca2ab2019-06-25 11:48:48 -0700857 "line" : 177,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -0700858 "column" : 33,
859 "source_fragment" : "m_besteff"
860 },
861 "is_direct" : false,
862 "size" : 8192,
863 "rate_count" : 2,
864 "type" : "bytes"
865 },
866 {
867 "name" : "FabricIngress.bng_ingress.downstream.m_prio",
868 "id" : 1,
869 "source_info" : {
870 "filename" : "include/bng.p4",
Daniele Moro01ca2ab2019-06-25 11:48:48 -0700871 "line" : 178,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -0700872 "column" : 33,
873 "source_fragment" : "m_prio"
874 },
875 "is_direct" : false,
876 "size" : 8192,
877 "rate_count" : 2,
878 "type" : "bytes"
879 }
880 ],
881 "counter_arrays" : [
882 {
883 "name" : "FabricIngress.bng_ingress.upstream.c_terminated",
884 "id" : 0,
885 "source_info" : {
886 "filename" : "include/bng.p4",
887 "line" : 40,
888 "column" : 39,
889 "source_fragment" : "c_terminated"
890 },
891 "size" : 8192,
892 "is_direct" : false
893 },
894 {
895 "name" : "FabricIngress.bng_ingress.upstream.c_dropped",
896 "id" : 1,
897 "source_info" : {
898 "filename" : "include/bng.p4",
899 "line" : 41,
900 "column" : 39,
901 "source_fragment" : "c_dropped"
902 },
903 "size" : 8192,
904 "is_direct" : false
905 },
906 {
907 "name" : "FabricIngress.bng_ingress.upstream.c_control",
908 "id" : 2,
909 "source_info" : {
910 "filename" : "include/bng.p4",
911 "line" : 42,
912 "column" : 39,
913 "source_fragment" : "c_control"
914 },
915 "size" : 8192,
916 "is_direct" : false
917 },
918 {
919 "name" : "FabricIngress.bng_ingress.downstream.c_line_rx",
920 "id" : 3,
921 "source_info" : {
922 "filename" : "include/bng.p4",
Daniele Moro01ca2ab2019-06-25 11:48:48 -0700923 "line" : 175,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -0700924 "column" : 49,
925 "source_fragment" : "c_line_rx"
926 },
927 "size" : 8192,
928 "is_direct" : false
929 },
930 {
931 "name" : "FabricIngress.filtering.ingress_port_vlan_counter",
932 "id" : 4,
933 "is_direct" : true,
934 "binding" : "FabricIngress.filtering.ingress_port_vlan",
935 "source_info" : {
936 "filename" : "include/control/filtering.p4",
937 "line" : 31,
938 "column" : 50,
939 "source_fragment" : "ingress_port_vlan_counter"
940 }
941 },
942 {
943 "name" : "FabricIngress.filtering.fwd_classifier_counter",
944 "id" : 5,
945 "is_direct" : true,
946 "binding" : "FabricIngress.filtering.fwd_classifier",
947 "source_info" : {
948 "filename" : "include/control/filtering.p4",
949 "line" : 80,
950 "column" : 50,
951 "source_fragment" : "fwd_classifier_counter"
952 }
953 },
954 {
955 "name" : "FabricIngress.forwarding.bridging_counter",
956 "id" : 6,
957 "is_direct" : true,
958 "binding" : "FabricIngress.forwarding.bridging",
959 "source_info" : {
960 "filename" : "include/control/forwarding.p4",
961 "line" : 36,
962 "column" : 50,
963 "source_fragment" : "bridging_counter"
964 }
965 },
966 {
967 "name" : "FabricIngress.forwarding.mpls_counter",
968 "id" : 7,
969 "is_direct" : true,
970 "binding" : "FabricIngress.forwarding.mpls",
971 "source_info" : {
972 "filename" : "include/control/forwarding.p4",
973 "line" : 63,
974 "column" : 50,
975 "source_fragment" : "mpls_counter"
976 }
977 },
978 {
979 "name" : "FabricIngress.forwarding.routing_v4_counter",
980 "id" : 8,
981 "is_direct" : true,
982 "binding" : "FabricIngress.forwarding.routing_v4",
983 "source_info" : {
984 "filename" : "include/control/forwarding.p4",
985 "line" : 87,
986 "column" : 50,
987 "source_fragment" : "routing_v4_counter"
988 }
989 },
990 {
991 "name" : "FabricIngress.acl.acl_counter",
992 "id" : 9,
993 "is_direct" : true,
994 "binding" : "FabricIngress.acl.acl",
995 "source_info" : {
996 "filename" : "include/control/acl.p4",
997 "line" : 30,
998 "column" : 50,
999 "source_fragment" : "acl_counter"
1000 }
1001 },
1002 {
1003 "name" : "FabricIngress.next.next_vlan_counter",
1004 "id" : 10,
1005 "is_direct" : true,
1006 "binding" : "FabricIngress.next.next_vlan",
1007 "source_info" : {
1008 "filename" : "include/control/next.p4",
1009 "line" : 67,
1010 "column" : 50,
1011 "source_fragment" : "next_vlan_counter"
1012 }
1013 },
1014 {
1015 "name" : "FabricIngress.next.xconnect_counter",
1016 "id" : 11,
1017 "is_direct" : true,
1018 "binding" : "FabricIngress.next.xconnect",
1019 "source_info" : {
1020 "filename" : "include/control/next.p4",
1021 "line" : 92,
1022 "column" : 50,
1023 "source_fragment" : "xconnect_counter"
1024 }
1025 },
1026 {
1027 "name" : "FabricIngress.next.hashed_counter",
1028 "id" : 12,
1029 "is_direct" : true,
1030 "binding" : "FabricIngress.next.hashed",
1031 "source_info" : {
1032 "filename" : "include/control/next.p4",
1033 "line" : 166,
1034 "column" : 50,
1035 "source_fragment" : "hashed_counter"
1036 }
1037 },
1038 {
1039 "name" : "FabricIngress.next.multicast_counter",
1040 "id" : 13,
1041 "is_direct" : true,
1042 "binding" : "FabricIngress.next.multicast",
1043 "source_info" : {
1044 "filename" : "include/control/next.p4",
1045 "line" : 210,
1046 "column" : 50,
1047 "source_fragment" : "multicast_counter"
1048 }
1049 },
1050 {
1051 "name" : "FabricIngress.port_counters_control.egress_port_counter",
1052 "id" : 14,
1053 "source_info" : {
1054 "filename" : "include/control/port_counter.p4",
1055 "line" : 26,
1056 "column" : 48,
1057 "source_fragment" : "egress_port_counter"
1058 },
1059 "size" : 511,
1060 "is_direct" : false
1061 },
1062 {
1063 "name" : "FabricIngress.port_counters_control.ingress_port_counter",
1064 "id" : 15,
1065 "source_info" : {
1066 "filename" : "include/control/port_counter.p4",
1067 "line" : 27,
1068 "column" : 48,
1069 "source_fragment" : "ingress_port_counter"
1070 },
1071 "size" : 511,
1072 "is_direct" : false
1073 },
1074 {
1075 "name" : "FabricEgress.bng_egress.downstream.c_line_tx",
1076 "id" : 16,
1077 "source_info" : {
1078 "filename" : "include/bng.p4",
Carmelo Cascone7d54994b2019-06-25 18:20:02 -07001079 "line" : 304,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07001080 "column" : 49,
1081 "source_fragment" : "c_line_tx"
1082 },
1083 "size" : 8192,
1084 "is_direct" : false
1085 },
1086 {
1087 "name" : "FabricEgress.egress_next.egress_vlan_counter",
1088 "id" : 17,
1089 "is_direct" : true,
1090 "binding" : "FabricEgress.egress_next.egress_vlan",
1091 "source_info" : {
1092 "filename" : "include/control/next.p4",
1093 "line" : 283,
1094 "column" : 50,
1095 "source_fragment" : "egress_vlan_counter"
1096 }
1097 }
1098 ],
1099 "register_arrays" : [],
1100 "calculations" : [
1101 {
1102 "name" : "calc",
1103 "id" : 0,
1104 "source_info" : {
1105 "filename" : "include/checksum.p4",
1106 "line" : 28,
1107 "column" : 8,
1108 "source_fragment" : "update_checksum(hdr.ipv4.isValid(), ..."
1109 },
1110 "algo" : "csum16",
1111 "input" : [
1112 {
1113 "type" : "field",
1114 "value" : ["ipv4", "version"]
1115 },
1116 {
1117 "type" : "field",
1118 "value" : ["ipv4", "ihl"]
1119 },
1120 {
1121 "type" : "field",
1122 "value" : ["ipv4", "dscp"]
1123 },
1124 {
1125 "type" : "field",
1126 "value" : ["ipv4", "ecn"]
1127 },
1128 {
1129 "type" : "field",
1130 "value" : ["ipv4", "total_len"]
1131 },
1132 {
1133 "type" : "field",
1134 "value" : ["ipv4", "identification"]
1135 },
1136 {
1137 "type" : "field",
1138 "value" : ["ipv4", "flags"]
1139 },
1140 {
1141 "type" : "field",
1142 "value" : ["ipv4", "frag_offset"]
1143 },
1144 {
1145 "type" : "field",
1146 "value" : ["ipv4", "ttl"]
1147 },
1148 {
1149 "type" : "field",
1150 "value" : ["ipv4", "protocol"]
1151 },
1152 {
1153 "type" : "field",
1154 "value" : ["ipv4", "src_addr"]
1155 },
1156 {
1157 "type" : "field",
1158 "value" : ["ipv4", "dst_addr"]
1159 }
1160 ]
1161 },
1162 {
1163 "name" : "calc_0",
1164 "id" : 1,
1165 "source_info" : {
1166 "filename" : "include/checksum.p4",
1167 "line" : 57,
1168 "column" : 8,
1169 "source_fragment" : "verify_checksum(hdr.ipv4.isValid(), ..."
1170 },
1171 "algo" : "csum16",
1172 "input" : [
1173 {
1174 "type" : "field",
1175 "value" : ["ipv4", "version"]
1176 },
1177 {
1178 "type" : "field",
1179 "value" : ["ipv4", "ihl"]
1180 },
1181 {
1182 "type" : "field",
1183 "value" : ["ipv4", "dscp"]
1184 },
1185 {
1186 "type" : "field",
1187 "value" : ["ipv4", "ecn"]
1188 },
1189 {
1190 "type" : "field",
1191 "value" : ["ipv4", "total_len"]
1192 },
1193 {
1194 "type" : "field",
1195 "value" : ["ipv4", "identification"]
1196 },
1197 {
1198 "type" : "field",
1199 "value" : ["ipv4", "flags"]
1200 },
1201 {
1202 "type" : "field",
1203 "value" : ["ipv4", "frag_offset"]
1204 },
1205 {
1206 "type" : "field",
1207 "value" : ["ipv4", "ttl"]
1208 },
1209 {
1210 "type" : "field",
1211 "value" : ["ipv4", "protocol"]
1212 },
1213 {
1214 "type" : "field",
1215 "value" : ["ipv4", "src_addr"]
1216 },
1217 {
1218 "type" : "field",
1219 "value" : ["ipv4", "dst_addr"]
1220 }
1221 ]
1222 }
1223 ],
1224 "learn_lists" : [],
1225 "actions" : [
1226 {
1227 "name" : "nop",
1228 "id" : 0,
1229 "runtime_data" : [],
1230 "primitives" : []
1231 },
1232 {
1233 "name" : "nop",
1234 "id" : 1,
1235 "runtime_data" : [],
1236 "primitives" : []
1237 },
1238 {
1239 "name" : "nop",
1240 "id" : 2,
1241 "runtime_data" : [],
1242 "primitives" : []
1243 },
1244 {
1245 "name" : "nop",
1246 "id" : 3,
1247 "runtime_data" : [],
1248 "primitives" : []
1249 },
1250 {
1251 "name" : "nop",
1252 "id" : 4,
1253 "runtime_data" : [],
1254 "primitives" : []
1255 },
1256 {
1257 "name" : "nop",
1258 "id" : 5,
1259 "runtime_data" : [],
1260 "primitives" : []
1261 },
1262 {
1263 "name" : "nop",
1264 "id" : 6,
1265 "runtime_data" : [],
1266 "primitives" : []
1267 },
1268 {
1269 "name" : "nop",
1270 "id" : 7,
1271 "runtime_data" : [],
1272 "primitives" : []
1273 },
1274 {
1275 "name" : "nop",
1276 "id" : 8,
1277 "runtime_data" : [],
1278 "primitives" : []
1279 },
1280 {
1281 "name" : "nop",
1282 "id" : 9,
1283 "runtime_data" : [],
1284 "primitives" : []
1285 },
1286 {
1287 "name" : "FabricIngress.bng_ingress.upstream.set_line",
1288 "id" : 10,
1289 "runtime_data" : [
1290 {
1291 "name" : "line_id",
1292 "bitwidth" : 32
1293 }
1294 ],
1295 "primitives" : [
1296 {
1297 "op" : "assign",
1298 "parameters" : [
1299 {
1300 "type" : "field",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07001301 "value" : ["scalars", "fabric_metadata_t._bng_line_id17"]
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07001302 },
1303 {
1304 "type" : "runtime_data",
1305 "value" : 0
1306 }
1307 ],
1308 "source_info" : {
1309 "filename" : "include/bng.p4",
1310 "line" : 52,
1311 "column" : 26,
1312 "source_fragment" : "= line_id; ..."
1313 }
1314 }
1315 ]
1316 },
1317 {
1318 "name" : "FabricIngress.bng_ingress.upstream.punt_to_cpu",
1319 "id" : 11,
1320 "runtime_data" : [],
1321 "primitives" : [
1322 {
1323 "op" : "assign",
1324 "parameters" : [
1325 {
1326 "type" : "field",
1327 "value" : ["standard_metadata", "egress_spec"]
1328 },
1329 {
1330 "type" : "hexstr",
1331 "value" : "0x00ff"
1332 }
1333 ],
1334 "source_info" : {
1335 "filename" : "include/bng.p4",
1336 "line" : 72,
1337 "column" : 8,
1338 "source_fragment" : "smeta.egress_spec = 255"
1339 }
1340 },
1341 {
1342 "op" : "assign",
1343 "parameters" : [
1344 {
1345 "type" : "field",
1346 "value" : ["scalars", "fabric_metadata_t._skip_forwarding7"]
1347 },
1348 {
1349 "type" : "expression",
1350 "value" : {
1351 "type" : "expression",
1352 "value" : {
1353 "op" : "b2d",
1354 "left" : null,
1355 "right" : {
1356 "type" : "bool",
1357 "value" : true
1358 }
1359 }
1360 }
1361 }
1362 ],
1363 "source_info" : {
1364 "filename" : "include/bng.p4",
1365 "line" : 73,
1366 "column" : 30,
1367 "source_fragment" : "= true; ..."
1368 }
1369 },
1370 {
1371 "op" : "assign",
1372 "parameters" : [
1373 {
1374 "type" : "field",
1375 "value" : ["scalars", "fabric_metadata_t._skip_next8"]
1376 },
1377 {
1378 "type" : "expression",
1379 "value" : {
1380 "type" : "expression",
1381 "value" : {
1382 "op" : "b2d",
1383 "left" : null,
1384 "right" : {
1385 "type" : "bool",
1386 "value" : true
1387 }
1388 }
1389 }
1390 }
1391 ],
1392 "source_info" : {
1393 "filename" : "include/bng.p4",
1394 "line" : 74,
1395 "column" : 24,
1396 "source_fragment" : "= true; ..."
1397 }
1398 },
1399 {
1400 "op" : "count",
1401 "parameters" : [
1402 {
1403 "type" : "counter_array",
1404 "value" : "FabricIngress.bng_ingress.upstream.c_control"
1405 },
1406 {
1407 "type" : "field",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07001408 "value" : ["scalars", "fabric_metadata_t._bng_line_id17"]
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07001409 }
1410 ],
1411 "source_info" : {
1412 "filename" : "include/bng.p4",
1413 "line" : 75,
1414 "column" : 8,
1415 "source_fragment" : "c_control.count(fmeta.bng.line_id)"
1416 }
1417 }
1418 ]
1419 },
1420 {
1421 "name" : "FabricIngress.bng_ingress.upstream.term_disabled",
1422 "id" : 12,
1423 "runtime_data" : [],
1424 "primitives" : [
1425 {
1426 "op" : "assign",
1427 "parameters" : [
1428 {
1429 "type" : "field",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07001430 "value" : ["scalars", "fabric_metadata_t._bng_type16"]
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07001431 },
1432 {
1433 "type" : "hexstr",
1434 "value" : "0x00"
1435 }
1436 ],
1437 "source_info" : {
1438 "filename" : "include/control/../header.p4",
1439 "line" : 155,
1440 "column" : 36,
1441 "source_fragment" : "2w0x0; ..."
1442 }
1443 },
1444 {
1445 "op" : "assign",
1446 "parameters" : [
1447 {
1448 "type" : "field",
1449 "value" : ["scalars", "fabric_metadata_t._skip_forwarding7"]
1450 },
1451 {
1452 "type" : "expression",
1453 "value" : {
1454 "type" : "expression",
1455 "value" : {
1456 "op" : "b2d",
1457 "left" : null,
1458 "right" : {
1459 "type" : "bool",
1460 "value" : true
1461 }
1462 }
1463 }
1464 }
1465 ],
1466 "source_info" : {
1467 "filename" : "include/bng.p4",
1468 "line" : 107,
1469 "column" : 30,
1470 "source_fragment" : "= true; ..."
1471 }
1472 },
1473 {
1474 "op" : "assign",
1475 "parameters" : [
1476 {
1477 "type" : "field",
1478 "value" : ["scalars", "fabric_metadata_t._skip_next8"]
1479 },
1480 {
1481 "type" : "expression",
1482 "value" : {
1483 "type" : "expression",
1484 "value" : {
1485 "op" : "b2d",
1486 "left" : null,
1487 "right" : {
1488 "type" : "bool",
1489 "value" : true
1490 }
1491 }
1492 }
1493 }
1494 ],
1495 "source_info" : {
1496 "filename" : "include/bng.p4",
1497 "line" : 108,
1498 "column" : 24,
1499 "source_fragment" : "= true; ..."
1500 }
1501 },
1502 {
1503 "op" : "mark_to_drop",
1504 "parameters" : [
1505 {
1506 "type" : "header",
1507 "value" : "standard_metadata"
1508 }
1509 ],
1510 "source_info" : {
1511 "filename" : "include/bng.p4",
1512 "line" : 109,
1513 "column" : 8,
1514 "source_fragment" : "mark_to_drop(smeta)"
1515 }
1516 },
1517 {
1518 "op" : "count",
1519 "parameters" : [
1520 {
1521 "type" : "counter_array",
1522 "value" : "FabricIngress.bng_ingress.upstream.c_dropped"
1523 },
1524 {
1525 "type" : "field",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07001526 "value" : ["scalars", "fabric_metadata_t._bng_line_id17"]
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07001527 }
1528 ],
1529 "source_info" : {
1530 "filename" : "include/bng.p4",
1531 "line" : 110,
1532 "column" : 8,
1533 "source_fragment" : "c_dropped.count(fmeta.bng.line_id)"
1534 }
1535 }
1536 ]
1537 },
1538 {
1539 "name" : "FabricIngress.bng_ingress.upstream.term_enabled_v4",
1540 "id" : 13,
1541 "runtime_data" : [],
1542 "primitives" : [
1543 {
1544 "op" : "assign",
1545 "parameters" : [
1546 {
1547 "type" : "field",
1548 "value" : ["ethernet", "eth_type"]
1549 },
1550 {
1551 "type" : "hexstr",
1552 "value" : "0x0800"
1553 }
1554 ],
1555 "source_info" : {
1556 "filename" : "include/control/../define.p4",
Carmelo Cascone7d54994b2019-06-25 18:20:02 -07001557 "line" : 110,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07001558 "column" : 31,
1559 "source_fragment" : "0x0800; ..."
1560 }
1561 },
1562 {
1563 "op" : "assign",
1564 "parameters" : [
1565 {
1566 "type" : "field",
1567 "value" : ["scalars", "fabric_metadata_t._eth_type0"]
1568 },
1569 {
1570 "type" : "hexstr",
1571 "value" : "0x0800"
1572 }
1573 ],
1574 "source_info" : {
1575 "filename" : "include/control/../define.p4",
Carmelo Cascone7d54994b2019-06-25 18:20:02 -07001576 "line" : 110,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07001577 "column" : 31,
1578 "source_fragment" : "0x0800; ..."
1579 }
1580 },
1581 {
1582 "op" : "remove_header",
1583 "parameters" : [
1584 {
1585 "type" : "header",
1586 "value" : "pppoe"
1587 }
1588 ],
1589 "source_info" : {
1590 "filename" : "include/bng.p4",
1591 "line" : 99,
1592 "column" : 8,
1593 "source_fragment" : "hdr.pppoe.setInvalid()"
1594 }
1595 },
1596 {
1597 "op" : "remove_header",
1598 "parameters" : [
1599 {
1600 "type" : "header",
1601 "value" : "vlan_tag"
1602 }
1603 ],
1604 "source_info" : {
1605 "filename" : "include/bng.p4",
1606 "line" : 100,
1607 "column" : 8,
1608 "source_fragment" : "hdr.vlan_tag.setInvalid()"
1609 }
1610 },
1611 {
1612 "op" : "remove_header",
1613 "parameters" : [
1614 {
1615 "type" : "header",
1616 "value" : "inner_vlan_tag"
1617 }
1618 ],
1619 "source_info" : {
1620 "filename" : "include/bng.p4",
1621 "line" : 101,
1622 "column" : 8,
1623 "source_fragment" : "hdr.inner_vlan_tag.setInvalid()"
1624 }
1625 },
1626 {
1627 "op" : "count",
1628 "parameters" : [
1629 {
1630 "type" : "counter_array",
1631 "value" : "FabricIngress.bng_ingress.upstream.c_terminated"
1632 },
1633 {
1634 "type" : "field",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07001635 "value" : ["scalars", "fabric_metadata_t._bng_line_id17"]
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07001636 }
1637 ],
1638 "source_info" : {
1639 "filename" : "include/bng.p4",
1640 "line" : 102,
1641 "column" : 8,
1642 "source_fragment" : "c_terminated.count(fmeta.bng.line_id)"
1643 }
1644 }
1645 ]
1646 },
1647 {
1648 "name" : "FabricIngress.bng_ingress.downstream.set_line_next",
1649 "id" : 14,
1650 "runtime_data" : [
1651 {
1652 "name" : "line_id",
1653 "bitwidth" : 32
1654 },
1655 {
1656 "name" : "next_id",
1657 "bitwidth" : 32
1658 }
1659 ],
1660 "primitives" : [
1661 {
1662 "op" : "assign",
1663 "parameters" : [
1664 {
1665 "type" : "field",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07001666 "value" : ["scalars", "fabric_metadata_t._bng_type16"]
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07001667 },
1668 {
1669 "type" : "hexstr",
1670 "value" : "0x02"
1671 }
1672 ],
1673 "source_info" : {
1674 "filename" : "include/control/../header.p4",
1675 "line" : 157,
1676 "column" : 39,
1677 "source_fragment" : "2w0x2;; ..."
1678 }
1679 },
1680 {
1681 "op" : "assign",
1682 "parameters" : [
1683 {
1684 "type" : "field",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07001685 "value" : ["scalars", "fabric_metadata_t._bng_line_id17"]
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07001686 },
1687 {
1688 "type" : "runtime_data",
1689 "value" : 0
1690 }
1691 ],
1692 "source_info" : {
1693 "filename" : "include/bng.p4",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07001694 "line" : 187,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07001695 "column" : 26,
1696 "source_fragment" : "= line_id; ..."
1697 }
1698 },
1699 {
1700 "op" : "count",
1701 "parameters" : [
1702 {
1703 "type" : "counter_array",
1704 "value" : "FabricIngress.bng_ingress.downstream.c_line_rx"
1705 },
1706 {
1707 "type" : "runtime_data",
1708 "value" : 0
1709 }
1710 ],
1711 "source_info" : {
1712 "filename" : "include/bng.p4",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07001713 "line" : 188,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07001714 "column" : 8,
1715 "source_fragment" : "c_line_rx.count(line_id)"
1716 }
1717 },
1718 {
1719 "op" : "assign",
1720 "parameters" : [
1721 {
1722 "type" : "field",
1723 "value" : ["scalars", "fabric_metadata_t._next_id10"]
1724 },
1725 {
1726 "type" : "runtime_data",
1727 "value" : 1
1728 }
1729 ],
1730 "source_info" : {
1731 "filename" : "include/bng.p4",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07001732 "line" : 193,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07001733 "column" : 22,
1734 "source_fragment" : "= next_id; ..."
1735 }
1736 },
1737 {
1738 "op" : "assign",
1739 "parameters" : [
1740 {
1741 "type" : "field",
1742 "value" : ["scalars", "fabric_metadata_t._skip_forwarding7"]
1743 },
1744 {
1745 "type" : "expression",
1746 "value" : {
1747 "type" : "expression",
1748 "value" : {
1749 "op" : "b2d",
1750 "left" : null,
1751 "right" : {
1752 "type" : "bool",
1753 "value" : true
1754 }
1755 }
1756 }
1757 }
1758 ],
1759 "source_info" : {
1760 "filename" : "include/bng.p4",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07001761 "line" : 194,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07001762 "column" : 30,
1763 "source_fragment" : "= true; ..."
1764 }
1765 }
1766 ]
1767 },
1768 {
1769 "name" : "FabricIngress.bng_ingress.downstream.set_line_drop",
1770 "id" : 15,
1771 "runtime_data" : [
1772 {
1773 "name" : "line_id",
1774 "bitwidth" : 32
1775 }
1776 ],
1777 "primitives" : [
1778 {
1779 "op" : "assign",
1780 "parameters" : [
1781 {
1782 "type" : "field",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07001783 "value" : ["scalars", "fabric_metadata_t._bng_type16"]
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07001784 },
1785 {
1786 "type" : "hexstr",
1787 "value" : "0x02"
1788 }
1789 ],
1790 "source_info" : {
1791 "filename" : "include/control/../header.p4",
1792 "line" : 157,
1793 "column" : 39,
1794 "source_fragment" : "2w0x2;; ..."
1795 }
1796 },
1797 {
1798 "op" : "assign",
1799 "parameters" : [
1800 {
1801 "type" : "field",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07001802 "value" : ["scalars", "fabric_metadata_t._bng_line_id17"]
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07001803 },
1804 {
1805 "type" : "runtime_data",
1806 "value" : 0
1807 }
1808 ],
1809 "source_info" : {
1810 "filename" : "include/bng.p4",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07001811 "line" : 187,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07001812 "column" : 26,
1813 "source_fragment" : "= line_id; ..."
1814 }
1815 },
1816 {
1817 "op" : "count",
1818 "parameters" : [
1819 {
1820 "type" : "counter_array",
1821 "value" : "FabricIngress.bng_ingress.downstream.c_line_rx"
1822 },
1823 {
1824 "type" : "runtime_data",
1825 "value" : 0
1826 }
1827 ],
1828 "source_info" : {
1829 "filename" : "include/bng.p4",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07001830 "line" : 188,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07001831 "column" : 8,
1832 "source_fragment" : "c_line_rx.count(line_id)"
1833 }
1834 },
1835 {
1836 "op" : "assign",
1837 "parameters" : [
1838 {
1839 "type" : "field",
1840 "value" : ["scalars", "fabric_metadata_t._skip_forwarding7"]
1841 },
1842 {
1843 "type" : "expression",
1844 "value" : {
1845 "type" : "expression",
1846 "value" : {
1847 "op" : "b2d",
1848 "left" : null,
1849 "right" : {
1850 "type" : "bool",
1851 "value" : true
1852 }
1853 }
1854 }
1855 }
1856 ],
1857 "source_info" : {
1858 "filename" : "include/bng.p4",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07001859 "line" : 199,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07001860 "column" : 30,
1861 "source_fragment" : "= true; ..."
1862 }
1863 },
1864 {
1865 "op" : "assign",
1866 "parameters" : [
1867 {
1868 "type" : "field",
1869 "value" : ["scalars", "fabric_metadata_t._skip_next8"]
1870 },
1871 {
1872 "type" : "expression",
1873 "value" : {
1874 "type" : "expression",
1875 "value" : {
1876 "op" : "b2d",
1877 "left" : null,
1878 "right" : {
1879 "type" : "bool",
1880 "value" : true
1881 }
1882 }
1883 }
1884 }
1885 ],
1886 "source_info" : {
1887 "filename" : "include/bng.p4",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07001888 "line" : 200,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07001889 "column" : 24,
1890 "source_fragment" : "= true; ..."
1891 }
1892 },
1893 {
1894 "op" : "mark_to_drop",
1895 "parameters" : [
1896 {
1897 "type" : "header",
1898 "value" : "standard_metadata"
1899 }
1900 ],
1901 "source_info" : {
1902 "filename" : "include/bng.p4",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07001903 "line" : 201,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07001904 "column" : 8,
1905 "source_fragment" : "mark_to_drop(smeta)"
1906 }
1907 }
1908 ]
1909 },
1910 {
1911 "name" : "FabricIngress.bng_ingress.downstream.qos_prio",
1912 "id" : 16,
1913 "runtime_data" : [],
1914 "primitives" : [
1915 {
1916 "op" : "execute_meter",
1917 "parameters" : [
1918 {
1919 "type" : "meter_array",
1920 "value" : "FabricIngress.bng_ingress.downstream.m_prio"
1921 },
1922 {
1923 "type" : "field",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07001924 "value" : ["scalars", "fabric_metadata_t._bng_line_id17"]
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07001925 },
1926 {
1927 "type" : "field",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07001928 "value" : ["scalars", "fabric_metadata_t._bng_ds_meter_result18"]
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07001929 }
1930 ],
1931 "source_info" : {
1932 "filename" : "include/bng.p4",
Carmelo Cascone7d54994b2019-06-25 18:20:02 -07001933 "line" : 237,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07001934 "column" : 8,
1935 "source_fragment" : "m_prio.execute_meter((bit<32>)fmeta.bng.line_id, ..."
1936 }
1937 }
1938 ]
1939 },
1940 {
1941 "name" : "FabricIngress.bng_ingress.downstream.qos_besteff",
1942 "id" : 17,
1943 "runtime_data" : [],
1944 "primitives" : [
1945 {
1946 "op" : "execute_meter",
1947 "parameters" : [
1948 {
1949 "type" : "meter_array",
1950 "value" : "FabricIngress.bng_ingress.downstream.m_besteff"
1951 },
1952 {
1953 "type" : "field",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07001954 "value" : ["scalars", "fabric_metadata_t._bng_line_id17"]
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07001955 },
1956 {
1957 "type" : "field",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07001958 "value" : ["scalars", "fabric_metadata_t._bng_ds_meter_result18"]
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07001959 }
1960 ],
1961 "source_info" : {
1962 "filename" : "include/bng.p4",
Carmelo Cascone7d54994b2019-06-25 18:20:02 -07001963 "line" : 242,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07001964 "column" : 8,
1965 "source_fragment" : "m_besteff.execute_meter((bit<32>)fmeta.bng.line_id, ..."
1966 }
1967 }
1968 ]
1969 },
1970 {
1971 "name" : "FabricIngress.filtering.deny",
1972 "id" : 18,
1973 "runtime_data" : [],
1974 "primitives" : [
1975 {
1976 "op" : "assign",
1977 "parameters" : [
1978 {
1979 "type" : "field",
1980 "value" : ["scalars", "fabric_metadata_t._skip_forwarding7"]
1981 },
1982 {
1983 "type" : "expression",
1984 "value" : {
1985 "type" : "expression",
1986 "value" : {
1987 "op" : "b2d",
1988 "left" : null,
1989 "right" : {
1990 "type" : "bool",
1991 "value" : true
1992 }
1993 }
1994 }
1995 }
1996 ],
1997 "source_info" : {
1998 "filename" : "include/control/filtering.p4",
1999 "line" : 36,
2000 "column" : 40,
2001 "source_fragment" : "= true; ..."
2002 }
2003 },
2004 {
2005 "op" : "assign",
2006 "parameters" : [
2007 {
2008 "type" : "field",
2009 "value" : ["scalars", "fabric_metadata_t._skip_next8"]
2010 },
2011 {
2012 "type" : "expression",
2013 "value" : {
2014 "type" : "expression",
2015 "value" : {
2016 "op" : "b2d",
2017 "left" : null,
2018 "right" : {
2019 "type" : "bool",
2020 "value" : true
2021 }
2022 }
2023 }
2024 }
2025 ],
2026 "source_info" : {
2027 "filename" : "include/control/filtering.p4",
2028 "line" : 37,
2029 "column" : 34,
2030 "source_fragment" : "= true; ..."
2031 }
2032 }
2033 ]
2034 },
2035 {
2036 "name" : "FabricIngress.filtering.permit",
2037 "id" : 19,
2038 "runtime_data" : [],
2039 "primitives" : []
2040 },
2041 {
2042 "name" : "FabricIngress.filtering.permit_with_internal_vlan",
2043 "id" : 20,
2044 "runtime_data" : [
2045 {
2046 "name" : "vlan_id",
2047 "bitwidth" : 12
2048 }
2049 ],
2050 "primitives" : [
2051 {
2052 "op" : "assign",
2053 "parameters" : [
2054 {
2055 "type" : "field",
2056 "value" : ["scalars", "fabric_metadata_t._vlan_id2"]
2057 },
2058 {
2059 "type" : "runtime_data",
2060 "value" : 0
2061 }
2062 ],
2063 "source_info" : {
2064 "filename" : "include/control/filtering.p4",
2065 "line" : 47,
2066 "column" : 32,
2067 "source_fragment" : "= vlan_id; ..."
2068 }
2069 }
2070 ]
2071 },
2072 {
2073 "name" : "FabricIngress.filtering.set_forwarding_type",
2074 "id" : 21,
2075 "runtime_data" : [
2076 {
2077 "name" : "fwd_type",
2078 "bitwidth" : 3
2079 }
2080 ],
2081 "primitives" : [
2082 {
2083 "op" : "assign",
2084 "parameters" : [
2085 {
2086 "type" : "field",
2087 "value" : ["scalars", "fabric_metadata_t._fwd_type9"]
2088 },
2089 {
2090 "type" : "runtime_data",
2091 "value" : 0
2092 }
2093 ],
2094 "source_info" : {
2095 "filename" : "include/control/filtering.p4",
2096 "line" : 83,
2097 "column" : 33,
2098 "source_fragment" : "= fwd_type; ..."
2099 }
2100 }
2101 ]
2102 },
2103 {
2104 "name" : "FabricIngress.forwarding.set_next_id_bridging",
2105 "id" : 22,
2106 "runtime_data" : [
2107 {
2108 "name" : "next_id",
2109 "bitwidth" : 32
2110 }
2111 ],
2112 "primitives" : [
2113 {
2114 "op" : "assign",
2115 "parameters" : [
2116 {
2117 "type" : "field",
2118 "value" : ["scalars", "fabric_metadata_t._next_id10"]
2119 },
2120 {
2121 "type" : "runtime_data",
2122 "value" : 0
2123 }
2124 ],
2125 "source_info" : {
2126 "filename" : "include/control/forwarding.p4",
2127 "line" : 30,
2128 "column" : 32,
2129 "source_fragment" : "= next_id; ..."
2130 }
2131 }
2132 ]
2133 },
2134 {
2135 "name" : "FabricIngress.forwarding.pop_mpls_and_next",
2136 "id" : 23,
2137 "runtime_data" : [
2138 {
2139 "name" : "next_id",
2140 "bitwidth" : 32
2141 }
2142 ],
2143 "primitives" : [
2144 {
2145 "op" : "assign",
2146 "parameters" : [
2147 {
2148 "type" : "field",
2149 "value" : ["scalars", "fabric_metadata_t._mpls_label5"]
2150 },
2151 {
2152 "type" : "hexstr",
2153 "value" : "0x000000"
2154 }
2155 ],
2156 "source_info" : {
2157 "filename" : "include/control/forwarding.p4",
2158 "line" : 66,
2159 "column" : 35,
2160 "source_fragment" : "= 0; ..."
2161 }
2162 },
2163 {
2164 "op" : "assign",
2165 "parameters" : [
2166 {
2167 "type" : "field",
2168 "value" : ["scalars", "fabric_metadata_t._next_id10"]
2169 },
2170 {
2171 "type" : "runtime_data",
2172 "value" : 0
2173 }
2174 ],
2175 "source_info" : {
2176 "filename" : "include/control/forwarding.p4",
2177 "line" : 30,
2178 "column" : 32,
2179 "source_fragment" : "= next_id; ..."
2180 }
2181 }
2182 ]
2183 },
2184 {
2185 "name" : "FabricIngress.forwarding.set_next_id_routing_v4",
2186 "id" : 24,
2187 "runtime_data" : [
2188 {
2189 "name" : "next_id",
2190 "bitwidth" : 32
2191 }
2192 ],
2193 "primitives" : [
2194 {
2195 "op" : "assign",
2196 "parameters" : [
2197 {
2198 "type" : "field",
2199 "value" : ["scalars", "fabric_metadata_t._next_id10"]
2200 },
2201 {
2202 "type" : "runtime_data",
2203 "value" : 0
2204 }
2205 ],
2206 "source_info" : {
2207 "filename" : "include/control/forwarding.p4",
2208 "line" : 30,
2209 "column" : 32,
2210 "source_fragment" : "= next_id; ..."
2211 }
2212 }
2213 ]
2214 },
2215 {
2216 "name" : "FabricIngress.forwarding.nop_routing_v4",
2217 "id" : 25,
2218 "runtime_data" : [],
2219 "primitives" : []
2220 },
2221 {
2222 "name" : "FabricIngress.acl.set_next_id_acl",
2223 "id" : 26,
2224 "runtime_data" : [
2225 {
2226 "name" : "next_id",
2227 "bitwidth" : 32
2228 }
2229 ],
2230 "primitives" : [
2231 {
2232 "op" : "assign",
2233 "parameters" : [
2234 {
2235 "type" : "field",
2236 "value" : ["scalars", "fabric_metadata_t._next_id10"]
2237 },
2238 {
2239 "type" : "runtime_data",
2240 "value" : 0
2241 }
2242 ],
2243 "source_info" : {
2244 "filename" : "include/control/acl.p4",
2245 "line" : 33,
2246 "column" : 32,
2247 "source_fragment" : "= next_id; ..."
2248 }
2249 }
2250 ]
2251 },
2252 {
2253 "name" : "FabricIngress.acl.punt_to_cpu",
2254 "id" : 27,
2255 "runtime_data" : [],
2256 "primitives" : [
2257 {
2258 "op" : "assign",
2259 "parameters" : [
2260 {
2261 "type" : "field",
2262 "value" : ["standard_metadata", "egress_spec"]
2263 },
2264 {
2265 "type" : "hexstr",
2266 "value" : "0x00ff"
2267 }
2268 ],
2269 "source_info" : {
2270 "filename" : "include/control/acl.p4",
2271 "line" : 39,
2272 "column" : 8,
2273 "source_fragment" : "standard_metadata.egress_spec = 255"
2274 }
2275 },
2276 {
2277 "op" : "assign",
2278 "parameters" : [
2279 {
2280 "type" : "field",
2281 "value" : ["scalars", "fabric_metadata_t._skip_next8"]
2282 },
2283 {
2284 "type" : "expression",
2285 "value" : {
2286 "type" : "expression",
2287 "value" : {
2288 "op" : "b2d",
2289 "left" : null,
2290 "right" : {
2291 "type" : "bool",
2292 "value" : true
2293 }
2294 }
2295 }
2296 }
2297 ],
2298 "source_info" : {
2299 "filename" : "include/control/acl.p4",
2300 "line" : 40,
2301 "column" : 34,
2302 "source_fragment" : "= true; ..."
2303 }
2304 }
2305 ]
2306 },
2307 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07002308 "name" : "FabricIngress.acl.set_clone_session_id",
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07002309 "id" : 28,
Daniele Moro01ca2ab2019-06-25 11:48:48 -07002310 "runtime_data" : [
2311 {
2312 "name" : "clone_id",
2313 "bitwidth" : 32
2314 }
2315 ],
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07002316 "primitives" : [
2317 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07002318 "op" : "clone_ingress_pkt_to_egress",
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07002319 "parameters" : [
2320 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07002321 "type" : "runtime_data",
2322 "value" : 0
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07002323 },
2324 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07002325 "type" : "hexstr",
2326 "value" : "0x1"
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07002327 }
2328 ],
2329 "source_info" : {
2330 "filename" : "include/control/acl.p4",
2331 "line" : 46,
Daniele Moro01ca2ab2019-06-25 11:48:48 -07002332 "column" : 8,
Carmelo Cascone7d54994b2019-06-25 18:20:02 -07002333 "source_fragment" : "clone3(CloneType.I2E, clone_id, {standard_metadata.ingress_port})"
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07002334 }
2335 }
2336 ]
2337 },
2338 {
2339 "name" : "FabricIngress.acl.drop",
2340 "id" : 29,
2341 "runtime_data" : [],
2342 "primitives" : [
2343 {
2344 "op" : "mark_to_drop",
2345 "parameters" : [
2346 {
2347 "type" : "header",
2348 "value" : "standard_metadata"
2349 }
2350 ],
2351 "source_info" : {
2352 "filename" : "include/control/acl.p4",
2353 "line" : 51,
2354 "column" : 8,
2355 "source_fragment" : "mark_to_drop(standard_metadata)"
2356 }
2357 },
2358 {
2359 "op" : "assign",
2360 "parameters" : [
2361 {
2362 "type" : "field",
2363 "value" : ["scalars", "fabric_metadata_t._skip_next8"]
2364 },
2365 {
2366 "type" : "expression",
2367 "value" : {
2368 "type" : "expression",
2369 "value" : {
2370 "op" : "b2d",
2371 "left" : null,
2372 "right" : {
2373 "type" : "bool",
2374 "value" : true
2375 }
2376 }
2377 }
2378 }
2379 ],
2380 "source_info" : {
2381 "filename" : "include/control/acl.p4",
2382 "line" : 52,
2383 "column" : 34,
2384 "source_fragment" : "= true; ..."
2385 }
2386 }
2387 ]
2388 },
2389 {
2390 "name" : "FabricIngress.acl.nop_acl",
2391 "id" : 30,
2392 "runtime_data" : [],
2393 "primitives" : []
2394 },
2395 {
2396 "name" : "FabricIngress.next.set_vlan",
2397 "id" : 31,
2398 "runtime_data" : [
2399 {
2400 "name" : "vlan_id",
2401 "bitwidth" : 12
2402 }
2403 ],
2404 "primitives" : [
2405 {
2406 "op" : "assign",
2407 "parameters" : [
2408 {
2409 "type" : "field",
2410 "value" : ["scalars", "fabric_metadata_t._vlan_id2"]
2411 },
2412 {
2413 "type" : "runtime_data",
2414 "value" : 0
2415 }
2416 ],
2417 "source_info" : {
2418 "filename" : "include/control/next.p4",
2419 "line" : 70,
2420 "column" : 32,
2421 "source_fragment" : "= vlan_id; ..."
2422 }
2423 }
2424 ]
2425 },
2426 {
2427 "name" : "FabricIngress.next.output_xconnect",
2428 "id" : 32,
2429 "runtime_data" : [
2430 {
2431 "name" : "port_num",
2432 "bitwidth" : 9
2433 }
2434 ],
2435 "primitives" : [
2436 {
2437 "op" : "assign",
2438 "parameters" : [
2439 {
2440 "type" : "field",
2441 "value" : ["standard_metadata", "egress_spec"]
2442 },
2443 {
2444 "type" : "runtime_data",
2445 "value" : 0
2446 }
2447 ],
2448 "source_info" : {
2449 "filename" : "include/control/next.p4",
2450 "line" : 31,
2451 "column" : 5,
2452 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2453 }
2454 }
2455 ]
2456 },
2457 {
2458 "name" : "FabricIngress.next.set_next_id_xconnect",
2459 "id" : 33,
2460 "runtime_data" : [
2461 {
2462 "name" : "next_id",
2463 "bitwidth" : 32
2464 }
2465 ],
2466 "primitives" : [
2467 {
2468 "op" : "assign",
2469 "parameters" : [
2470 {
2471 "type" : "field",
2472 "value" : ["scalars", "fabric_metadata_t._next_id10"]
2473 },
2474 {
2475 "type" : "runtime_data",
2476 "value" : 0
2477 }
2478 ],
2479 "source_info" : {
2480 "filename" : "include/control/next.p4",
2481 "line" : 100,
2482 "column" : 32,
2483 "source_fragment" : "= next_id; ..."
2484 }
2485 }
2486 ]
2487 },
2488 {
2489 "name" : "FabricIngress.next.output_hashed",
2490 "id" : 34,
2491 "runtime_data" : [
2492 {
2493 "name" : "port_num",
2494 "bitwidth" : 9
2495 }
2496 ],
2497 "primitives" : [
2498 {
2499 "op" : "assign",
2500 "parameters" : [
2501 {
2502 "type" : "field",
2503 "value" : ["standard_metadata", "egress_spec"]
2504 },
2505 {
2506 "type" : "runtime_data",
2507 "value" : 0
2508 }
2509 ],
2510 "source_info" : {
2511 "filename" : "include/control/next.p4",
2512 "line" : 31,
2513 "column" : 5,
2514 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2515 }
2516 }
2517 ]
2518 },
2519 {
2520 "name" : "FabricIngress.next.routing_hashed",
2521 "id" : 35,
2522 "runtime_data" : [
2523 {
2524 "name" : "port_num",
2525 "bitwidth" : 9
2526 },
2527 {
2528 "name" : "smac",
2529 "bitwidth" : 48
2530 },
2531 {
2532 "name" : "dmac",
2533 "bitwidth" : 48
2534 }
2535 ],
2536 "primitives" : [
2537 {
2538 "op" : "assign",
2539 "parameters" : [
2540 {
2541 "type" : "field",
2542 "value" : ["ethernet", "src_addr"]
2543 },
2544 {
2545 "type" : "runtime_data",
2546 "value" : 1
2547 }
2548 ],
2549 "source_info" : {
2550 "filename" : "include/control/next.p4",
2551 "line" : 36,
2552 "column" : 8,
2553 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2554 }
2555 },
2556 {
2557 "op" : "assign",
2558 "parameters" : [
2559 {
2560 "type" : "field",
2561 "value" : ["ethernet", "dst_addr"]
2562 },
2563 {
2564 "type" : "runtime_data",
2565 "value" : 2
2566 }
2567 ],
2568 "source_info" : {
2569 "filename" : "include/control/next.p4",
2570 "line" : 41,
2571 "column" : 8,
2572 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2573 }
2574 },
2575 {
2576 "op" : "assign",
2577 "parameters" : [
2578 {
2579 "type" : "field",
2580 "value" : ["standard_metadata", "egress_spec"]
2581 },
2582 {
2583 "type" : "runtime_data",
2584 "value" : 0
2585 }
2586 ],
2587 "source_info" : {
2588 "filename" : "include/control/next.p4",
2589 "line" : 31,
2590 "column" : 5,
2591 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2592 }
2593 }
2594 ]
2595 },
2596 {
2597 "name" : "FabricIngress.next.mpls_routing_hashed",
2598 "id" : 36,
2599 "runtime_data" : [
2600 {
2601 "name" : "port_num",
2602 "bitwidth" : 9
2603 },
2604 {
2605 "name" : "smac",
2606 "bitwidth" : 48
2607 },
2608 {
2609 "name" : "dmac",
2610 "bitwidth" : 48
2611 },
2612 {
2613 "name" : "label",
2614 "bitwidth" : 20
2615 }
2616 ],
2617 "primitives" : [
2618 {
2619 "op" : "assign",
2620 "parameters" : [
2621 {
2622 "type" : "field",
2623 "value" : ["scalars", "fabric_metadata_t._mpls_label5"]
2624 },
2625 {
2626 "type" : "runtime_data",
2627 "value" : 3
2628 }
2629 ],
2630 "source_info" : {
2631 "filename" : "include/control/next.p4",
2632 "line" : 46,
2633 "column" : 35,
2634 "source_fragment" : "= label; ..."
2635 }
2636 },
2637 {
2638 "op" : "assign",
2639 "parameters" : [
2640 {
2641 "type" : "field",
2642 "value" : ["ethernet", "src_addr"]
2643 },
2644 {
2645 "type" : "runtime_data",
2646 "value" : 1
2647 }
2648 ],
2649 "source_info" : {
2650 "filename" : "include/control/next.p4",
2651 "line" : 36,
2652 "column" : 8,
2653 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2654 }
2655 },
2656 {
2657 "op" : "assign",
2658 "parameters" : [
2659 {
2660 "type" : "field",
2661 "value" : ["ethernet", "dst_addr"]
2662 },
2663 {
2664 "type" : "runtime_data",
2665 "value" : 2
2666 }
2667 ],
2668 "source_info" : {
2669 "filename" : "include/control/next.p4",
2670 "line" : 41,
2671 "column" : 8,
2672 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2673 }
2674 },
2675 {
2676 "op" : "assign",
2677 "parameters" : [
2678 {
2679 "type" : "field",
2680 "value" : ["standard_metadata", "egress_spec"]
2681 },
2682 {
2683 "type" : "runtime_data",
2684 "value" : 0
2685 }
2686 ],
2687 "source_info" : {
2688 "filename" : "include/control/next.p4",
2689 "line" : 31,
2690 "column" : 5,
2691 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2692 }
2693 }
2694 ]
2695 },
2696 {
2697 "name" : "FabricIngress.next.set_mcast_group_id",
2698 "id" : 37,
2699 "runtime_data" : [
2700 {
2701 "name" : "group_id",
2702 "bitwidth" : 16
2703 }
2704 ],
2705 "primitives" : [
2706 {
2707 "op" : "assign",
2708 "parameters" : [
2709 {
2710 "type" : "field",
2711 "value" : ["standard_metadata", "mcast_grp"]
2712 },
2713 {
2714 "type" : "runtime_data",
2715 "value" : 0
2716 }
2717 ],
2718 "source_info" : {
2719 "filename" : "include/control/next.p4",
2720 "line" : 213,
2721 "column" : 8,
2722 "source_fragment" : "standard_metadata.mcast_grp = group_id"
2723 }
2724 },
2725 {
2726 "op" : "assign",
2727 "parameters" : [
2728 {
2729 "type" : "field",
2730 "value" : ["scalars", "fabric_metadata_t._is_multicast11"]
2731 },
2732 {
2733 "type" : "expression",
2734 "value" : {
2735 "type" : "expression",
2736 "value" : {
2737 "op" : "b2d",
2738 "left" : null,
2739 "right" : {
2740 "type" : "bool",
2741 "value" : true
2742 }
2743 }
2744 }
2745 }
2746 ],
2747 "source_info" : {
2748 "filename" : "include/control/next.p4",
2749 "line" : 214,
2750 "column" : 37,
2751 "source_fragment" : "= true; ..."
2752 }
2753 }
2754 ]
2755 },
2756 {
2757 "name" : "act",
2758 "id" : 38,
2759 "runtime_data" : [],
2760 "primitives" : [
2761 {
2762 "op" : "assign",
2763 "parameters" : [
2764 {
2765 "type" : "field",
2766 "value" : ["standard_metadata", "egress_spec"]
2767 },
2768 {
2769 "type" : "field",
2770 "value" : ["packet_out", "egress_port"]
2771 }
2772 ],
2773 "source_info" : {
2774 "filename" : "include/control/packetio.p4",
2775 "line" : 25,
2776 "column" : 12,
2777 "source_fragment" : "standard_metadata.egress_spec = hdr.packet_out.egress_port"
2778 }
2779 },
2780 {
2781 "op" : "remove_header",
2782 "parameters" : [
2783 {
2784 "type" : "header",
2785 "value" : "packet_out"
2786 }
2787 ],
2788 "source_info" : {
2789 "filename" : "include/control/packetio.p4",
2790 "line" : 26,
2791 "column" : 12,
2792 "source_fragment" : "hdr.packet_out.setInvalid()"
2793 }
2794 },
2795 {
2796 "op" : "assign",
2797 "parameters" : [
2798 {
2799 "type" : "field",
2800 "value" : ["scalars", "fabric_metadata_t._is_controller_packet_out12"]
2801 },
2802 {
2803 "type" : "expression",
2804 "value" : {
2805 "type" : "expression",
2806 "value" : {
2807 "op" : "b2d",
2808 "left" : null,
2809 "right" : {
2810 "type" : "bool",
2811 "value" : true
2812 }
2813 }
2814 }
2815 }
2816 ],
2817 "source_info" : {
2818 "filename" : "include/control/packetio.p4",
2819 "line" : 27,
2820 "column" : 53,
2821 "source_fragment" : "= true; ..."
2822 }
2823 },
2824 {
2825 "op" : "exit",
2826 "parameters" : [],
2827 "source_info" : {
2828 "filename" : "include/control/packetio.p4",
2829 "line" : 29,
2830 "column" : 12,
2831 "source_fragment" : "exit"
2832 }
2833 }
2834 ]
2835 },
2836 {
2837 "name" : "act_0",
2838 "id" : 39,
2839 "runtime_data" : [],
2840 "primitives" : [
2841 {
2842 "op" : "assign",
2843 "parameters" : [
2844 {
2845 "type" : "field",
2846 "value" : ["scalars", "fabric_metadata_t._eth_type0"]
2847 },
2848 {
2849 "type" : "field",
2850 "value" : ["vlan_tag", "eth_type"]
2851 }
2852 ],
2853 "source_info" : {
2854 "filename" : "include/control/filtering.p4",
2855 "line" : 105,
2856 "column" : 37,
2857 "source_fragment" : "= hdr.vlan_tag.eth_type; ..."
2858 }
2859 },
2860 {
2861 "op" : "assign",
2862 "parameters" : [
2863 {
2864 "type" : "field",
2865 "value" : ["scalars", "fabric_metadata_t._vlan_id2"]
2866 },
2867 {
2868 "type" : "field",
2869 "value" : ["vlan_tag", "vlan_id"]
2870 }
2871 ],
2872 "source_info" : {
2873 "filename" : "include/control/filtering.p4",
2874 "line" : 106,
2875 "column" : 36,
2876 "source_fragment" : "= hdr.vlan_tag.vlan_id; ..."
2877 }
2878 },
2879 {
2880 "op" : "assign",
2881 "parameters" : [
2882 {
2883 "type" : "field",
2884 "value" : ["scalars", "fabric_metadata_t._vlan_pri3"]
2885 },
2886 {
2887 "type" : "field",
2888 "value" : ["vlan_tag", "pri"]
2889 }
2890 ],
2891 "source_info" : {
2892 "filename" : "include/control/filtering.p4",
2893 "line" : 107,
2894 "column" : 37,
2895 "source_fragment" : "= hdr.vlan_tag.pri; ..."
2896 }
2897 },
2898 {
2899 "op" : "assign",
2900 "parameters" : [
2901 {
2902 "type" : "field",
2903 "value" : ["scalars", "fabric_metadata_t._vlan_cfi4"]
2904 },
2905 {
2906 "type" : "field",
2907 "value" : ["vlan_tag", "cfi"]
2908 }
2909 ],
2910 "source_info" : {
2911 "filename" : "include/control/filtering.p4",
2912 "line" : 108,
2913 "column" : 37,
2914 "source_fragment" : "= hdr.vlan_tag.cfi; ..."
2915 }
2916 }
2917 ]
2918 },
2919 {
2920 "name" : "act_1",
2921 "id" : 40,
2922 "runtime_data" : [],
2923 "primitives" : [
2924 {
2925 "op" : "assign",
2926 "parameters" : [
2927 {
2928 "type" : "field",
2929 "value" : ["scalars", "fabric_metadata_t._mpls_ttl6"]
2930 },
2931 {
2932 "type" : "hexstr",
2933 "value" : "0x41"
2934 }
2935 ],
2936 "source_info" : {
2937 "filename" : "include/control/filtering.p4",
2938 "line" : 115,
2939 "column" : 37,
2940 "source_fragment" : "= DEFAULT_MPLS_TTL + 1; ..."
2941 }
2942 }
2943 ]
2944 },
2945 {
2946 "name" : "act_2",
2947 "id" : 41,
2948 "runtime_data" : [],
2949 "primitives" : [
2950 {
2951 "op" : "assign",
2952 "parameters" : [
2953 {
2954 "type" : "field",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07002955 "value" : ["scalars", "fabric_metadata_t._bng_type16"]
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07002956 },
2957 {
2958 "type" : "hexstr",
2959 "value" : "0x01"
2960 }
2961 ],
2962 "source_info" : {
2963 "filename" : "include/control/../header.p4",
2964 "line" : 156,
2965 "column" : 37,
2966 "source_fragment" : "2w0x1; ..."
2967 }
2968 },
2969 {
2970 "op" : "assign",
2971 "parameters" : [
2972 {
2973 "type" : "field",
2974 "value" : ["scalars", "bng_ingress_upstream_hasReturned"]
2975 },
2976 {
2977 "type" : "expression",
2978 "value" : {
2979 "type" : "expression",
2980 "value" : {
2981 "op" : "b2d",
2982 "left" : null,
2983 "right" : {
2984 "type" : "bool",
2985 "value" : false
2986 }
2987 }
2988 }
2989 }
2990 ]
2991 }
2992 ]
2993 },
2994 {
2995 "name" : "act_3",
2996 "id" : 42,
2997 "runtime_data" : [],
2998 "primitives" : [
2999 {
3000 "op" : "assign",
3001 "parameters" : [
3002 {
3003 "type" : "field",
3004 "value" : ["scalars", "bng_ingress_upstream_tmp"]
3005 },
3006 {
3007 "type" : "expression",
3008 "value" : {
3009 "type" : "expression",
3010 "value" : {
3011 "op" : "b2d",
3012 "left" : null,
3013 "right" : {
3014 "type" : "bool",
3015 "value" : true
3016 }
3017 }
3018 }
3019 }
3020 ]
3021 }
3022 ]
3023 },
3024 {
3025 "name" : "act_4",
3026 "id" : 43,
3027 "runtime_data" : [],
3028 "primitives" : [
3029 {
3030 "op" : "assign",
3031 "parameters" : [
3032 {
3033 "type" : "field",
3034 "value" : ["scalars", "bng_ingress_upstream_tmp"]
3035 },
3036 {
3037 "type" : "expression",
3038 "value" : {
3039 "type" : "expression",
3040 "value" : {
3041 "op" : "b2d",
3042 "left" : null,
3043 "right" : {
3044 "type" : "bool",
3045 "value" : false
3046 }
3047 }
3048 }
3049 }
3050 ]
3051 }
3052 ]
3053 },
3054 {
3055 "name" : "act_5",
3056 "id" : 44,
3057 "runtime_data" : [],
3058 "primitives" : [
3059 {
3060 "op" : "assign",
3061 "parameters" : [
3062 {
3063 "type" : "field",
3064 "value" : ["scalars", "bng_ingress_upstream_hasReturned"]
3065 },
3066 {
3067 "type" : "expression",
3068 "value" : {
3069 "type" : "expression",
3070 "value" : {
3071 "op" : "b2d",
3072 "left" : null,
3073 "right" : {
3074 "type" : "bool",
3075 "value" : true
3076 }
3077 }
3078 }
3079 }
3080 ],
3081 "source_info" : {
3082 "filename" : "include/bng.p4",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07003083 "line" : 156,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07003084 "column" : 12,
3085 "source_fragment" : "return"
3086 }
3087 }
3088 ]
3089 },
3090 {
3091 "name" : "act_6",
3092 "id" : 45,
3093 "runtime_data" : [],
3094 "primitives" : [
3095 {
3096 "op" : "assign",
3097 "parameters" : [
3098 {
3099 "type" : "field",
3100 "value" : ["scalars", "bng_ingress_downstream_tmp"]
3101 },
3102 {
3103 "type" : "expression",
3104 "value" : {
3105 "type" : "expression",
3106 "value" : {
3107 "op" : "b2d",
3108 "left" : null,
3109 "right" : {
3110 "type" : "bool",
3111 "value" : true
3112 }
3113 }
3114 }
3115 }
3116 ]
3117 }
3118 ]
3119 },
3120 {
3121 "name" : "act_7",
3122 "id" : 46,
3123 "runtime_data" : [],
3124 "primitives" : [
3125 {
3126 "op" : "assign",
3127 "parameters" : [
3128 {
3129 "type" : "field",
3130 "value" : ["scalars", "bng_ingress_downstream_tmp"]
3131 },
3132 {
3133 "type" : "expression",
3134 "value" : {
3135 "type" : "expression",
3136 "value" : {
3137 "op" : "b2d",
3138 "left" : null,
3139 "right" : {
3140 "type" : "bool",
3141 "value" : false
3142 }
3143 }
3144 }
3145 }
3146 ]
3147 }
3148 ]
3149 },
3150 {
3151 "name" : "act_8",
3152 "id" : 47,
3153 "runtime_data" : [],
3154 "primitives" : [
3155 {
3156 "op" : "assign",
3157 "parameters" : [
3158 {
3159 "type" : "field",
3160 "value" : ["scalars", "tmp"]
3161 },
3162 {
3163 "type" : "expression",
3164 "value" : {
3165 "type" : "expression",
3166 "value" : {
3167 "op" : "&",
3168 "left" : {
3169 "type" : "field",
3170 "value" : ["standard_metadata", "egress_spec"]
3171 },
3172 "right" : {
3173 "type" : "hexstr",
3174 "value" : "0xffffffff"
3175 }
3176 }
3177 }
3178 }
3179 ],
3180 "source_info" : {
3181 "filename" : "include/control/port_counter.p4",
3182 "line" : 31,
3183 "column" : 38,
3184 "source_fragment" : "(bit<32>)standard_metadata.egress_spec"
3185 }
3186 },
3187 {
3188 "op" : "count",
3189 "parameters" : [
3190 {
3191 "type" : "counter_array",
3192 "value" : "FabricIngress.port_counters_control.egress_port_counter"
3193 },
3194 {
3195 "type" : "field",
3196 "value" : ["scalars", "tmp"]
3197 }
3198 ],
3199 "source_info" : {
3200 "filename" : "include/control/port_counter.p4",
3201 "line" : 31,
3202 "column" : 12,
3203 "source_fragment" : "egress_port_counter.count((bit<32>)standard_metadata.egress_spec)"
3204 }
3205 }
3206 ]
3207 },
3208 {
3209 "name" : "act_9",
3210 "id" : 48,
3211 "runtime_data" : [],
3212 "primitives" : [
3213 {
3214 "op" : "assign",
3215 "parameters" : [
3216 {
3217 "type" : "field",
3218 "value" : ["scalars", "tmp_1"]
3219 },
3220 {
3221 "type" : "expression",
3222 "value" : {
3223 "type" : "expression",
3224 "value" : {
3225 "op" : "&",
3226 "left" : {
3227 "type" : "field",
3228 "value" : ["standard_metadata", "ingress_port"]
3229 },
3230 "right" : {
3231 "type" : "hexstr",
3232 "value" : "0xffffffff"
3233 }
3234 }
3235 }
3236 }
3237 ],
3238 "source_info" : {
3239 "filename" : "include/control/port_counter.p4",
3240 "line" : 34,
3241 "column" : 39,
3242 "source_fragment" : "(bit<32>)standard_metadata.ingress_port"
3243 }
3244 },
3245 {
3246 "op" : "count",
3247 "parameters" : [
3248 {
3249 "type" : "counter_array",
3250 "value" : "FabricIngress.port_counters_control.ingress_port_counter"
3251 },
3252 {
3253 "type" : "field",
3254 "value" : ["scalars", "tmp_1"]
3255 }
3256 ],
3257 "source_info" : {
3258 "filename" : "include/control/port_counter.p4",
3259 "line" : 34,
3260 "column" : 12,
3261 "source_fragment" : "ingress_port_counter.count((bit<32>)standard_metadata.ingress_port)"
3262 }
3263 }
3264 ]
3265 },
3266 {
3267 "name" : "nop",
3268 "id" : 49,
3269 "runtime_data" : [],
3270 "primitives" : []
3271 },
3272 {
3273 "name" : "nop",
3274 "id" : 50,
3275 "runtime_data" : [],
3276 "primitives" : []
3277 },
3278 {
3279 "name" : "FabricEgress.bng_egress.downstream.encap_v4",
3280 "id" : 51,
3281 "runtime_data" : [
3282 {
3283 "name" : "c_tag",
3284 "bitwidth" : 12
3285 },
3286 {
3287 "name" : "pppoe_session_id",
3288 "bitwidth" : 16
3289 }
3290 ],
3291 "primitives" : [
3292 {
3293 "op" : "assign",
3294 "parameters" : [
3295 {
3296 "type" : "field",
3297 "value" : ["vlan_tag", "eth_type"]
3298 },
3299 {
3300 "type" : "hexstr",
3301 "value" : "0x8100"
3302 }
3303 ],
3304 "source_info" : {
3305 "filename" : "include/control/../define.p4",
Carmelo Cascone7d54994b2019-06-25 18:20:02 -07003306 "line" : 107,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07003307 "column" : 31,
3308 "source_fragment" : "0x8100; ..."
3309 }
3310 },
3311 {
3312 "op" : "add_header",
3313 "parameters" : [
3314 {
3315 "type" : "header",
3316 "value" : "inner_vlan_tag"
3317 }
3318 ],
3319 "source_info" : {
3320 "filename" : "include/bng.p4",
Carmelo Cascone7d54994b2019-06-25 18:20:02 -07003321 "line" : 311,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07003322 "column" : 8,
3323 "source_fragment" : "hdr.inner_vlan_tag.setValid()"
3324 }
3325 },
3326 {
3327 "op" : "assign",
3328 "parameters" : [
3329 {
3330 "type" : "field",
3331 "value" : ["inner_vlan_tag", "vlan_id"]
3332 },
3333 {
3334 "type" : "runtime_data",
3335 "value" : 0
3336 }
3337 ],
3338 "source_info" : {
3339 "filename" : "include/bng.p4",
Carmelo Cascone7d54994b2019-06-25 18:20:02 -07003340 "line" : 312,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07003341 "column" : 8,
3342 "source_fragment" : "hdr.inner_vlan_tag.vlan_id = c_tag; ..."
3343 }
3344 },
3345 {
3346 "op" : "assign",
3347 "parameters" : [
3348 {
3349 "type" : "field",
3350 "value" : ["inner_vlan_tag", "eth_type"]
3351 },
3352 {
3353 "type" : "hexstr",
3354 "value" : "0x8864"
3355 }
3356 ],
3357 "source_info" : {
3358 "filename" : "include/control/../define.p4",
Carmelo Cascone7d54994b2019-06-25 18:20:02 -07003359 "line" : 114,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07003360 "column" : 33,
3361 "source_fragment" : "0x8864; ..."
3362 }
3363 },
3364 {
3365 "op" : "add_header",
3366 "parameters" : [
3367 {
3368 "type" : "header",
3369 "value" : "pppoe"
3370 }
3371 ],
3372 "source_info" : {
3373 "filename" : "include/bng.p4",
Carmelo Cascone7d54994b2019-06-25 18:20:02 -07003374 "line" : 314,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07003375 "column" : 8,
3376 "source_fragment" : "hdr.pppoe.setValid()"
3377 }
3378 },
3379 {
3380 "op" : "assign",
3381 "parameters" : [
3382 {
3383 "type" : "field",
3384 "value" : ["pppoe", "version"]
3385 },
3386 {
3387 "type" : "hexstr",
3388 "value" : "0x01"
3389 }
3390 ],
3391 "source_info" : {
3392 "filename" : "include/bng.p4",
Carmelo Cascone7d54994b2019-06-25 18:20:02 -07003393 "line" : 315,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07003394 "column" : 8,
3395 "source_fragment" : "hdr.pppoe.version = 4w1"
3396 }
3397 },
3398 {
3399 "op" : "assign",
3400 "parameters" : [
3401 {
3402 "type" : "field",
3403 "value" : ["pppoe", "type_id"]
3404 },
3405 {
3406 "type" : "hexstr",
3407 "value" : "0x01"
3408 }
3409 ],
3410 "source_info" : {
3411 "filename" : "include/bng.p4",
Carmelo Cascone7d54994b2019-06-25 18:20:02 -07003412 "line" : 316,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07003413 "column" : 8,
3414 "source_fragment" : "hdr.pppoe.type_id = 4w1"
3415 }
3416 },
3417 {
3418 "op" : "assign",
3419 "parameters" : [
3420 {
3421 "type" : "field",
3422 "value" : ["pppoe", "code"]
3423 },
3424 {
3425 "type" : "hexstr",
3426 "value" : "0x00"
3427 }
3428 ],
3429 "source_info" : {
3430 "filename" : "include/bng.p4",
Carmelo Cascone7d54994b2019-06-25 18:20:02 -07003431 "line" : 317,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07003432 "column" : 8,
3433 "source_fragment" : "hdr.pppoe.code = 8w0"
3434 }
3435 },
3436 {
3437 "op" : "assign",
3438 "parameters" : [
3439 {
3440 "type" : "field",
3441 "value" : ["pppoe", "session_id"]
3442 },
3443 {
3444 "type" : "runtime_data",
3445 "value" : 1
3446 }
3447 ],
3448 "source_info" : {
3449 "filename" : "include/bng.p4",
Carmelo Cascone7d54994b2019-06-25 18:20:02 -07003450 "line" : 318,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07003451 "column" : 8,
3452 "source_fragment" : "hdr.pppoe.session_id = pppoe_session_id; ..."
3453 }
3454 },
3455 {
3456 "op" : "count",
3457 "parameters" : [
3458 {
3459 "type" : "counter_array",
3460 "value" : "FabricEgress.bng_egress.downstream.c_line_tx"
3461 },
3462 {
3463 "type" : "field",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07003464 "value" : ["scalars", "fabric_metadata_t._bng_line_id17"]
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07003465 }
3466 ],
3467 "source_info" : {
3468 "filename" : "include/bng.p4",
Carmelo Cascone7d54994b2019-06-25 18:20:02 -07003469 "line" : 319,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07003470 "column" : 8,
3471 "source_fragment" : "c_line_tx.count(fmeta.bng.line_id)"
3472 }
3473 },
3474 {
3475 "op" : "assign",
3476 "parameters" : [
3477 {
3478 "type" : "field",
3479 "value" : ["pppoe", "length"]
3480 },
3481 {
3482 "type" : "expression",
3483 "value" : {
3484 "type" : "expression",
3485 "value" : {
3486 "op" : "&",
3487 "left" : {
3488 "type" : "expression",
3489 "value" : {
3490 "op" : "+",
3491 "left" : {
3492 "type" : "field",
3493 "value" : ["ipv4", "total_len"]
3494 },
3495 "right" : {
3496 "type" : "hexstr",
3497 "value" : "0x0002"
3498 }
3499 }
3500 },
3501 "right" : {
3502 "type" : "hexstr",
3503 "value" : "0xffff"
3504 }
3505 }
3506 }
3507 }
3508 ],
3509 "source_info" : {
3510 "filename" : "include/bng.p4",
Carmelo Cascone7d54994b2019-06-25 18:20:02 -07003511 "line" : 324,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07003512 "column" : 8,
3513 "source_fragment" : "hdr.pppoe.length = hdr.ipv4.total_len + 16w2"
3514 }
3515 },
3516 {
3517 "op" : "assign",
3518 "parameters" : [
3519 {
3520 "type" : "field",
3521 "value" : ["pppoe", "protocol"]
3522 },
3523 {
3524 "type" : "hexstr",
3525 "value" : "0x0021"
3526 }
3527 ],
3528 "source_info" : {
3529 "filename" : "include/control/../define.p4",
Carmelo Cascone7d54994b2019-06-25 18:20:02 -07003530 "line" : 116,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07003531 "column" : 35,
3532 "source_fragment" : "0x0021; ..."
3533 }
3534 }
3535 ]
3536 },
3537 {
3538 "name" : "FabricEgress.egress_next.pop_mpls_if_present",
3539 "id" : 52,
3540 "runtime_data" : [],
3541 "primitives" : [
3542 {
3543 "op" : "remove_header",
3544 "parameters" : [
3545 {
3546 "type" : "header",
3547 "value" : "mpls"
3548 }
3549 ],
3550 "source_info" : {
3551 "filename" : "include/control/next.p4",
3552 "line" : 252,
3553 "column" : 8,
3554 "source_fragment" : "hdr.mpls.setInvalid()"
3555 }
3556 },
3557 {
3558 "op" : "assign",
3559 "parameters" : [
3560 {
3561 "type" : "field",
3562 "value" : ["scalars", "fabric_metadata_t._eth_type0"]
3563 },
3564 {
3565 "type" : "field",
3566 "value" : ["scalars", "fabric_metadata_t._ip_eth_type1"]
3567 }
3568 ],
3569 "source_info" : {
3570 "filename" : "include/control/next.p4",
3571 "line" : 254,
3572 "column" : 33,
3573 "source_fragment" : "= fabric_metadata.ip_eth_type; ..."
3574 }
3575 }
3576 ]
3577 },
3578 {
3579 "name" : "FabricEgress.egress_next.set_mpls",
3580 "id" : 53,
3581 "runtime_data" : [],
3582 "primitives" : [
3583 {
3584 "op" : "add_header",
3585 "parameters" : [
3586 {
3587 "type" : "header",
3588 "value" : "mpls"
3589 }
3590 ],
3591 "source_info" : {
3592 "filename" : "include/control/next.p4",
3593 "line" : 259,
3594 "column" : 8,
3595 "source_fragment" : "hdr.mpls.setValid()"
3596 }
3597 },
3598 {
3599 "op" : "assign",
3600 "parameters" : [
3601 {
3602 "type" : "field",
3603 "value" : ["mpls", "label"]
3604 },
3605 {
3606 "type" : "field",
3607 "value" : ["scalars", "fabric_metadata_t._mpls_label5"]
3608 }
3609 ],
3610 "source_info" : {
3611 "filename" : "include/control/next.p4",
3612 "line" : 260,
3613 "column" : 8,
3614 "source_fragment" : "hdr.mpls.label = fabric_metadata.mpls_label; ..."
3615 }
3616 },
3617 {
3618 "op" : "assign",
3619 "parameters" : [
3620 {
3621 "type" : "field",
3622 "value" : ["mpls", "tc"]
3623 },
3624 {
3625 "type" : "hexstr",
3626 "value" : "0x00"
3627 }
3628 ],
3629 "source_info" : {
3630 "filename" : "include/control/next.p4",
3631 "line" : 261,
3632 "column" : 8,
3633 "source_fragment" : "hdr.mpls.tc = 3w0"
3634 }
3635 },
3636 {
3637 "op" : "assign",
3638 "parameters" : [
3639 {
3640 "type" : "field",
3641 "value" : ["mpls", "bos"]
3642 },
3643 {
3644 "type" : "hexstr",
3645 "value" : "0x01"
3646 }
3647 ],
3648 "source_info" : {
3649 "filename" : "include/control/next.p4",
3650 "line" : 262,
3651 "column" : 8,
3652 "source_fragment" : "hdr.mpls.bos = 1w1"
3653 }
3654 },
3655 {
3656 "op" : "assign",
3657 "parameters" : [
3658 {
3659 "type" : "field",
3660 "value" : ["mpls", "ttl"]
3661 },
3662 {
3663 "type" : "field",
3664 "value" : ["scalars", "fabric_metadata_t._mpls_ttl6"]
3665 }
3666 ],
3667 "source_info" : {
3668 "filename" : "include/control/next.p4",
3669 "line" : 263,
3670 "column" : 8,
3671 "source_fragment" : "hdr.mpls.ttl = fabric_metadata.mpls_ttl; // Decrement after push. ..."
3672 }
3673 },
3674 {
3675 "op" : "assign",
3676 "parameters" : [
3677 {
3678 "type" : "field",
3679 "value" : ["scalars", "fabric_metadata_t._eth_type0"]
3680 },
3681 {
3682 "type" : "hexstr",
3683 "value" : "0x8847"
3684 }
3685 ],
3686 "source_info" : {
3687 "filename" : "include/control/../define.p4",
Carmelo Cascone7d54994b2019-06-25 18:20:02 -07003688 "line" : 108,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07003689 "column" : 31,
3690 "source_fragment" : "0x8847; ..."
3691 }
3692 }
3693 ]
3694 },
3695 {
3696 "name" : "FabricEgress.egress_next.push_vlan",
3697 "id" : 54,
3698 "runtime_data" : [],
3699 "primitives" : [
3700 {
3701 "op" : "add_header",
3702 "parameters" : [
3703 {
3704 "type" : "header",
3705 "value" : "vlan_tag"
3706 }
3707 ],
3708 "source_info" : {
3709 "filename" : "include/control/next.p4",
3710 "line" : 271,
3711 "column" : 8,
3712 "source_fragment" : "hdr.vlan_tag.setValid()"
3713 }
3714 },
3715 {
3716 "op" : "assign",
3717 "parameters" : [
3718 {
3719 "type" : "field",
3720 "value" : ["vlan_tag", "cfi"]
3721 },
3722 {
3723 "type" : "field",
3724 "value" : ["scalars", "fabric_metadata_t._vlan_cfi4"]
3725 }
3726 ],
3727 "source_info" : {
3728 "filename" : "include/control/next.p4",
3729 "line" : 272,
3730 "column" : 8,
3731 "source_fragment" : "hdr.vlan_tag.cfi = fabric_metadata.vlan_cfi; ..."
3732 }
3733 },
3734 {
3735 "op" : "assign",
3736 "parameters" : [
3737 {
3738 "type" : "field",
3739 "value" : ["vlan_tag", "pri"]
3740 },
3741 {
3742 "type" : "field",
3743 "value" : ["scalars", "fabric_metadata_t._vlan_pri3"]
3744 }
3745 ],
3746 "source_info" : {
3747 "filename" : "include/control/next.p4",
3748 "line" : 273,
3749 "column" : 8,
3750 "source_fragment" : "hdr.vlan_tag.pri = fabric_metadata.vlan_pri; ..."
3751 }
3752 },
3753 {
3754 "op" : "assign",
3755 "parameters" : [
3756 {
3757 "type" : "field",
3758 "value" : ["vlan_tag", "eth_type"]
3759 },
3760 {
3761 "type" : "field",
3762 "value" : ["scalars", "fabric_metadata_t._eth_type0"]
3763 }
3764 ],
3765 "source_info" : {
3766 "filename" : "include/control/next.p4",
3767 "line" : 274,
3768 "column" : 8,
3769 "source_fragment" : "hdr.vlan_tag.eth_type = fabric_metadata.eth_type; ..."
3770 }
3771 },
3772 {
3773 "op" : "assign",
3774 "parameters" : [
3775 {
3776 "type" : "field",
3777 "value" : ["vlan_tag", "vlan_id"]
3778 },
3779 {
3780 "type" : "field",
3781 "value" : ["scalars", "fabric_metadata_t._vlan_id2"]
3782 }
3783 ],
3784 "source_info" : {
3785 "filename" : "include/control/next.p4",
3786 "line" : 275,
3787 "column" : 8,
3788 "source_fragment" : "hdr.vlan_tag.vlan_id = fabric_metadata.vlan_id; ..."
3789 }
3790 },
3791 {
3792 "op" : "assign",
3793 "parameters" : [
3794 {
3795 "type" : "field",
3796 "value" : ["ethernet", "eth_type"]
3797 },
3798 {
3799 "type" : "hexstr",
3800 "value" : "0x8100"
3801 }
3802 ],
3803 "source_info" : {
3804 "filename" : "include/control/../define.p4",
Carmelo Cascone7d54994b2019-06-25 18:20:02 -07003805 "line" : 107,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07003806 "column" : 31,
3807 "source_fragment" : "0x8100; ..."
3808 }
3809 }
3810 ]
3811 },
3812 {
3813 "name" : "FabricEgress.egress_next.pop_vlan",
3814 "id" : 55,
3815 "runtime_data" : [],
3816 "primitives" : [
3817 {
3818 "op" : "assign",
3819 "parameters" : [
3820 {
3821 "type" : "field",
3822 "value" : ["ethernet", "eth_type"]
3823 },
3824 {
3825 "type" : "field",
3826 "value" : ["scalars", "fabric_metadata_t._eth_type0"]
3827 }
3828 ],
3829 "source_info" : {
3830 "filename" : "include/control/next.p4",
3831 "line" : 286,
3832 "column" : 8,
3833 "source_fragment" : "hdr.ethernet.eth_type = fabric_metadata.eth_type; ..."
3834 }
3835 },
3836 {
3837 "op" : "remove_header",
3838 "parameters" : [
3839 {
3840 "type" : "header",
3841 "value" : "vlan_tag"
3842 }
3843 ],
3844 "source_info" : {
3845 "filename" : "include/control/next.p4",
3846 "line" : 287,
3847 "column" : 8,
3848 "source_fragment" : "hdr.vlan_tag.setInvalid()"
3849 }
3850 }
3851 ]
3852 },
3853 {
3854 "name" : "act_10",
3855 "id" : 56,
3856 "runtime_data" : [],
3857 "primitives" : [
3858 {
3859 "op" : "exit",
3860 "parameters" : [],
3861 "source_info" : {
3862 "filename" : "include/control/packetio.p4",
3863 "line" : 41,
3864 "column" : 12,
3865 "source_fragment" : "exit"
3866 }
3867 }
3868 ]
3869 },
3870 {
3871 "name" : "act_11",
3872 "id" : 57,
3873 "runtime_data" : [],
3874 "primitives" : [
3875 {
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07003876 "op" : "add_header",
3877 "parameters" : [
3878 {
3879 "type" : "header",
3880 "value" : "packet_in"
3881 }
3882 ],
3883 "source_info" : {
3884 "filename" : "include/control/packetio.p4",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07003885 "line" : 44,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07003886 "column" : 12,
3887 "source_fragment" : "hdr.packet_in.setValid()"
3888 }
3889 },
3890 {
3891 "op" : "assign",
3892 "parameters" : [
3893 {
3894 "type" : "field",
3895 "value" : ["packet_in", "ingress_port"]
3896 },
3897 {
3898 "type" : "field",
3899 "value" : ["standard_metadata", "ingress_port"]
3900 }
3901 ],
3902 "source_info" : {
3903 "filename" : "include/control/packetio.p4",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07003904 "line" : 45,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07003905 "column" : 12,
3906 "source_fragment" : "hdr.packet_in.ingress_port = standard_metadata.ingress_port"
3907 }
3908 },
3909 {
3910 "op" : "exit",
3911 "parameters" : [],
3912 "source_info" : {
3913 "filename" : "include/control/packetio.p4",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07003914 "line" : 47,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07003915 "column" : 12,
3916 "source_fragment" : "exit"
3917 }
3918 }
3919 ]
3920 },
3921 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07003922 "name" : "act_12",
3923 "id" : 58,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07003924 "runtime_data" : [],
3925 "primitives" : [
3926 {
3927 "op" : "mark_to_drop",
3928 "parameters" : [
3929 {
3930 "type" : "header",
3931 "value" : "standard_metadata"
3932 }
3933 ],
3934 "source_info" : {
3935 "filename" : "include/control/next.p4",
3936 "line" : 308,
3937 "column" : 12,
3938 "source_fragment" : "mark_to_drop(standard_metadata)"
3939 }
3940 }
3941 ]
3942 },
3943 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07003944 "name" : "act_13",
3945 "id" : 59,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07003946 "runtime_data" : [],
3947 "primitives" : [
3948 {
3949 "op" : "assign",
3950 "parameters" : [
3951 {
3952 "type" : "field",
3953 "value" : ["scalars", "egress_next_tmp"]
3954 },
3955 {
3956 "type" : "expression",
3957 "value" : {
3958 "type" : "expression",
3959 "value" : {
3960 "op" : "b2d",
3961 "left" : null,
3962 "right" : {
3963 "type" : "bool",
3964 "value" : true
3965 }
3966 }
3967 }
3968 }
3969 ]
3970 }
3971 ]
3972 },
3973 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07003974 "name" : "act_14",
3975 "id" : 60,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07003976 "runtime_data" : [],
3977 "primitives" : [
3978 {
3979 "op" : "assign",
3980 "parameters" : [
3981 {
3982 "type" : "field",
3983 "value" : ["scalars", "egress_next_tmp"]
3984 },
3985 {
3986 "type" : "expression",
3987 "value" : {
3988 "type" : "expression",
3989 "value" : {
3990 "op" : "b2d",
3991 "left" : null,
3992 "right" : {
3993 "type" : "bool",
3994 "value" : false
3995 }
3996 }
3997 }
3998 }
3999 ]
4000 }
4001 ]
4002 },
4003 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07004004 "name" : "act_15",
4005 "id" : 61,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07004006 "runtime_data" : [],
4007 "primitives" : [
4008 {
4009 "op" : "mark_to_drop",
4010 "parameters" : [
4011 {
4012 "type" : "header",
4013 "value" : "standard_metadata"
4014 }
4015 ],
4016 "source_info" : {
4017 "filename" : "include/control/next.p4",
4018 "line" : 327,
4019 "column" : 35,
4020 "source_fragment" : "mark_to_drop(standard_metadata)"
4021 }
4022 }
4023 ]
4024 },
4025 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07004026 "name" : "act_16",
4027 "id" : 62,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07004028 "runtime_data" : [],
4029 "primitives" : [
4030 {
4031 "op" : "assign",
4032 "parameters" : [
4033 {
4034 "type" : "field",
4035 "value" : ["mpls", "ttl"]
4036 },
4037 {
4038 "type" : "expression",
4039 "value" : {
4040 "type" : "expression",
4041 "value" : {
4042 "op" : "&",
4043 "left" : {
4044 "type" : "expression",
4045 "value" : {
4046 "op" : "+",
4047 "left" : {
4048 "type" : "field",
4049 "value" : ["mpls", "ttl"]
4050 },
4051 "right" : {
4052 "type" : "hexstr",
4053 "value" : "0xff"
4054 }
4055 }
4056 },
4057 "right" : {
4058 "type" : "hexstr",
4059 "value" : "0xff"
4060 }
4061 }
4062 }
4063 }
4064 ],
4065 "source_info" : {
4066 "filename" : "include/control/next.p4",
4067 "line" : 326,
4068 "column" : 12,
4069 "source_fragment" : "hdr.mpls.ttl = hdr.mpls.ttl - 1"
4070 }
4071 }
4072 ]
4073 },
4074 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07004075 "name" : "act_17",
4076 "id" : 63,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07004077 "runtime_data" : [],
4078 "primitives" : [
4079 {
4080 "op" : "mark_to_drop",
4081 "parameters" : [
4082 {
4083 "type" : "header",
4084 "value" : "standard_metadata"
4085 }
4086 ],
4087 "source_info" : {
4088 "filename" : "include/control/next.p4",
4089 "line" : 331,
4090 "column" : 39,
4091 "source_fragment" : "mark_to_drop(standard_metadata)"
4092 }
4093 }
4094 ]
4095 },
4096 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07004097 "name" : "act_18",
4098 "id" : 64,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07004099 "runtime_data" : [],
4100 "primitives" : [
4101 {
4102 "op" : "assign",
4103 "parameters" : [
4104 {
4105 "type" : "field",
4106 "value" : ["ipv4", "ttl"]
4107 },
4108 {
4109 "type" : "expression",
4110 "value" : {
4111 "type" : "expression",
4112 "value" : {
4113 "op" : "&",
4114 "left" : {
4115 "type" : "expression",
4116 "value" : {
4117 "op" : "+",
4118 "left" : {
4119 "type" : "field",
4120 "value" : ["ipv4", "ttl"]
4121 },
4122 "right" : {
4123 "type" : "hexstr",
4124 "value" : "0xff"
4125 }
4126 }
4127 },
4128 "right" : {
4129 "type" : "hexstr",
4130 "value" : "0xff"
4131 }
4132 }
4133 }
4134 }
4135 ],
4136 "source_info" : {
4137 "filename" : "include/control/next.p4",
4138 "line" : 330,
4139 "column" : 16,
4140 "source_fragment" : "hdr.ipv4.ttl = hdr.ipv4.ttl - 1"
4141 }
4142 }
4143 ]
4144 }
4145 ],
4146 "pipelines" : [
4147 {
4148 "name" : "ingress",
4149 "id" : 0,
4150 "source_info" : {
4151 "filename" : "fabric.p4",
4152 "line" : 46,
4153 "column" : 8,
4154 "source_fragment" : "FabricIngress"
4155 },
4156 "init_table" : "node_2",
4157 "tables" : [
4158 {
4159 "name" : "tbl_act",
4160 "id" : 0,
4161 "source_info" : {
4162 "filename" : "include/control/packetio.p4",
4163 "line" : 25,
4164 "column" : 42,
4165 "source_fragment" : "= hdr.packet_out.egress_port; ..."
4166 },
4167 "key" : [],
4168 "match_type" : "exact",
4169 "type" : "simple",
4170 "max_size" : 1024,
4171 "with_counters" : false,
4172 "support_timeout" : false,
4173 "direct_meters" : null,
4174 "action_ids" : [38],
4175 "actions" : ["act"],
4176 "base_default_next" : "node_4",
4177 "next_tables" : {
4178 "act" : "node_4"
4179 },
4180 "default_entry" : {
4181 "action_id" : 38,
4182 "action_const" : true,
4183 "action_data" : [],
4184 "action_entry_const" : true
4185 }
4186 },
4187 {
4188 "name" : "tbl_act_0",
4189 "id" : 1,
4190 "source_info" : {
4191 "filename" : "include/control/filtering.p4",
4192 "line" : 105,
4193 "column" : 37,
4194 "source_fragment" : "= hdr.vlan_tag.eth_type; ..."
4195 },
4196 "key" : [],
4197 "match_type" : "exact",
4198 "type" : "simple",
4199 "max_size" : 1024,
4200 "with_counters" : false,
4201 "support_timeout" : false,
4202 "direct_meters" : null,
4203 "action_ids" : [39],
4204 "actions" : ["act_0"],
4205 "base_default_next" : "node_6",
4206 "next_tables" : {
4207 "act_0" : "node_6"
4208 },
4209 "default_entry" : {
4210 "action_id" : 39,
4211 "action_const" : true,
4212 "action_data" : [],
4213 "action_entry_const" : true
4214 }
4215 },
4216 {
4217 "name" : "tbl_act_1",
4218 "id" : 2,
4219 "source_info" : {
4220 "filename" : "include/control/filtering.p4",
4221 "line" : 115,
4222 "column" : 37,
4223 "source_fragment" : "="
4224 },
4225 "key" : [],
4226 "match_type" : "exact",
4227 "type" : "simple",
4228 "max_size" : 1024,
4229 "with_counters" : false,
4230 "support_timeout" : false,
4231 "direct_meters" : null,
4232 "action_ids" : [40],
4233 "actions" : ["act_1"],
4234 "base_default_next" : "FabricIngress.filtering.ingress_port_vlan",
4235 "next_tables" : {
4236 "act_1" : "FabricIngress.filtering.ingress_port_vlan"
4237 },
4238 "default_entry" : {
4239 "action_id" : 40,
4240 "action_const" : true,
4241 "action_data" : [],
4242 "action_entry_const" : true
4243 }
4244 },
4245 {
4246 "name" : "FabricIngress.filtering.ingress_port_vlan",
4247 "id" : 3,
4248 "source_info" : {
4249 "filename" : "include/control/filtering.p4",
4250 "line" : 51,
4251 "column" : 10,
4252 "source_fragment" : "ingress_port_vlan"
4253 },
4254 "key" : [
4255 {
4256 "match_type" : "exact",
4257 "name" : "ig_port",
4258 "target" : ["standard_metadata", "ingress_port"],
4259 "mask" : null
4260 },
4261 {
4262 "match_type" : "exact",
4263 "name" : "vlan_is_valid",
4264 "target" : ["vlan_tag", "$valid$"],
4265 "mask" : null
4266 },
4267 {
4268 "match_type" : "ternary",
4269 "name" : "vlan_id",
4270 "target" : ["vlan_tag", "vlan_id"],
4271 "mask" : null
4272 }
4273 ],
4274 "match_type" : "ternary",
4275 "type" : "simple",
4276 "max_size" : 1024,
4277 "with_counters" : true,
4278 "support_timeout" : false,
4279 "direct_meters" : null,
4280 "action_ids" : [18, 19, 20],
4281 "actions" : ["FabricIngress.filtering.deny", "FabricIngress.filtering.permit", "FabricIngress.filtering.permit_with_internal_vlan"],
4282 "base_default_next" : "FabricIngress.filtering.fwd_classifier",
4283 "next_tables" : {
4284 "FabricIngress.filtering.deny" : "FabricIngress.filtering.fwd_classifier",
4285 "FabricIngress.filtering.permit" : "FabricIngress.filtering.fwd_classifier",
4286 "FabricIngress.filtering.permit_with_internal_vlan" : "FabricIngress.filtering.fwd_classifier"
4287 },
4288 "default_entry" : {
4289 "action_id" : 18,
4290 "action_const" : true,
4291 "action_data" : [],
4292 "action_entry_const" : true
4293 }
4294 },
4295 {
4296 "name" : "FabricIngress.filtering.fwd_classifier",
4297 "id" : 4,
4298 "source_info" : {
4299 "filename" : "include/control/filtering.p4",
4300 "line" : 87,
4301 "column" : 10,
4302 "source_fragment" : "fwd_classifier"
4303 },
4304 "key" : [
4305 {
4306 "match_type" : "exact",
4307 "name" : "ig_port",
4308 "target" : ["standard_metadata", "ingress_port"],
4309 "mask" : null
4310 },
4311 {
4312 "match_type" : "ternary",
4313 "name" : "eth_dst",
4314 "target" : ["ethernet", "dst_addr"],
4315 "mask" : null
4316 },
4317 {
4318 "match_type" : "exact",
4319 "name" : "eth_type",
4320 "target" : ["scalars", "fabric_metadata_t._eth_type0"],
4321 "mask" : null
4322 }
4323 ],
4324 "match_type" : "ternary",
4325 "type" : "simple",
4326 "max_size" : 1024,
4327 "with_counters" : true,
4328 "support_timeout" : false,
4329 "direct_meters" : null,
4330 "action_ids" : [21],
4331 "actions" : ["FabricIngress.filtering.set_forwarding_type"],
4332 "base_default_next" : "node_10",
4333 "next_tables" : {
4334 "FabricIngress.filtering.set_forwarding_type" : "node_10"
4335 },
4336 "default_entry" : {
4337 "action_id" : 21,
4338 "action_const" : true,
4339 "action_data" : ["0x0"],
4340 "action_entry_const" : true
4341 }
4342 },
4343 {
4344 "name" : "tbl_act_2",
4345 "id" : 5,
4346 "source_info" : {
4347 "filename" : "include/bng.p4",
Carmelo Cascone7d54994b2019-06-25 18:20:02 -07004348 "line" : 366,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07004349 "column" : 27,
4350 "source_fragment" : "="
4351 },
4352 "key" : [],
4353 "match_type" : "exact",
4354 "type" : "simple",
4355 "max_size" : 1024,
4356 "with_counters" : false,
4357 "support_timeout" : false,
4358 "direct_meters" : null,
4359 "action_ids" : [41],
4360 "actions" : ["act_2"],
4361 "base_default_next" : "FabricIngress.bng_ingress.upstream.t_line_map",
4362 "next_tables" : {
4363 "act_2" : "FabricIngress.bng_ingress.upstream.t_line_map"
4364 },
4365 "default_entry" : {
4366 "action_id" : 41,
4367 "action_const" : true,
4368 "action_data" : [],
4369 "action_entry_const" : true
4370 }
4371 },
4372 {
4373 "name" : "FabricIngress.bng_ingress.upstream.t_line_map",
4374 "id" : 6,
4375 "source_info" : {
4376 "filename" : "include/bng.p4",
4377 "line" : 55,
4378 "column" : 10,
4379 "source_fragment" : "t_line_map"
4380 },
4381 "key" : [
4382 {
4383 "match_type" : "exact",
4384 "name" : "s_tag",
4385 "target" : ["vlan_tag", "vlan_id"],
4386 "mask" : null
4387 },
4388 {
4389 "match_type" : "exact",
4390 "name" : "c_tag",
4391 "target" : ["inner_vlan_tag", "vlan_id"],
4392 "mask" : null
4393 }
4394 ],
4395 "match_type" : "exact",
4396 "type" : "simple",
4397 "max_size" : 8192,
4398 "with_counters" : false,
4399 "support_timeout" : false,
4400 "direct_meters" : null,
4401 "action_ids" : [0, 10],
4402 "actions" : ["nop", "FabricIngress.bng_ingress.upstream.set_line"],
4403 "base_default_next" : "FabricIngress.bng_ingress.upstream.t_pppoe_cp",
4404 "next_tables" : {
4405 "nop" : "FabricIngress.bng_ingress.upstream.t_pppoe_cp",
4406 "FabricIngress.bng_ingress.upstream.set_line" : "FabricIngress.bng_ingress.upstream.t_pppoe_cp"
4407 },
4408 "default_entry" : {
4409 "action_id" : 0,
4410 "action_const" : true,
4411 "action_data" : [],
4412 "action_entry_const" : true
4413 }
4414 },
4415 {
4416 "name" : "FabricIngress.bng_ingress.upstream.t_pppoe_cp",
4417 "id" : 7,
4418 "source_info" : {
4419 "filename" : "include/bng.p4",
4420 "line" : 78,
4421 "column" : 10,
4422 "source_fragment" : "t_pppoe_cp"
4423 },
4424 "key" : [
4425 {
4426 "match_type" : "exact",
4427 "name" : "pppoe_code",
4428 "target" : ["pppoe", "code"],
4429 "mask" : null
4430 },
4431 {
4432 "match_type" : "ternary",
4433 "name" : "pppoe_protocol",
4434 "target" : ["pppoe", "protocol"],
4435 "mask" : null
4436 }
4437 ],
4438 "match_type" : "ternary",
4439 "type" : "simple",
4440 "max_size" : 16,
4441 "with_counters" : false,
4442 "support_timeout" : false,
4443 "direct_meters" : null,
4444 "action_ids" : [11, 1],
4445 "actions" : ["FabricIngress.bng_ingress.upstream.punt_to_cpu", "nop"],
4446 "base_default_next" : null,
4447 "next_tables" : {
4448 "__HIT__" : "tbl_act_3",
4449 "__MISS__" : "tbl_act_4"
4450 },
4451 "default_entry" : {
4452 "action_id" : 1,
4453 "action_const" : true,
4454 "action_data" : [],
4455 "action_entry_const" : true
4456 }
4457 },
4458 {
4459 "name" : "tbl_act_3",
4460 "id" : 8,
4461 "key" : [],
4462 "match_type" : "exact",
4463 "type" : "simple",
4464 "max_size" : 1024,
4465 "with_counters" : false,
4466 "support_timeout" : false,
4467 "direct_meters" : null,
4468 "action_ids" : [42],
4469 "actions" : ["act_3"],
4470 "base_default_next" : "node_16",
4471 "next_tables" : {
4472 "act_3" : "node_16"
4473 },
4474 "default_entry" : {
4475 "action_id" : 42,
4476 "action_const" : true,
4477 "action_data" : [],
4478 "action_entry_const" : true
4479 }
4480 },
4481 {
4482 "name" : "tbl_act_4",
4483 "id" : 9,
4484 "key" : [],
4485 "match_type" : "exact",
4486 "type" : "simple",
4487 "max_size" : 1024,
4488 "with_counters" : false,
4489 "support_timeout" : false,
4490 "direct_meters" : null,
4491 "action_ids" : [43],
4492 "actions" : ["act_4"],
4493 "base_default_next" : "node_16",
4494 "next_tables" : {
4495 "act_4" : "node_16"
4496 },
4497 "default_entry" : {
4498 "action_id" : 43,
4499 "action_const" : true,
4500 "action_data" : [],
4501 "action_entry_const" : true
4502 }
4503 },
4504 {
4505 "name" : "tbl_act_5",
4506 "id" : 10,
4507 "source_info" : {
4508 "filename" : "include/bng.p4",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07004509 "line" : 156,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07004510 "column" : 12,
4511 "source_fragment" : "return"
4512 },
4513 "key" : [],
4514 "match_type" : "exact",
4515 "type" : "simple",
4516 "max_size" : 1024,
4517 "with_counters" : false,
4518 "support_timeout" : false,
4519 "direct_meters" : null,
4520 "action_ids" : [44],
4521 "actions" : ["act_5"],
4522 "base_default_next" : "node_18",
4523 "next_tables" : {
4524 "act_5" : "node_18"
4525 },
4526 "default_entry" : {
4527 "action_id" : 44,
4528 "action_const" : true,
4529 "action_data" : [],
4530 "action_entry_const" : true
4531 }
4532 },
4533 {
4534 "name" : "FabricIngress.bng_ingress.upstream.t_pppoe_term_v4",
4535 "id" : 11,
4536 "source_info" : {
4537 "filename" : "include/bng.p4",
4538 "line" : 117,
4539 "column" : 10,
4540 "source_fragment" : "t_pppoe_term_v4"
4541 },
4542 "key" : [
4543 {
4544 "match_type" : "exact",
4545 "name" : "line_id",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07004546 "target" : ["scalars", "fabric_metadata_t._bng_line_id17"],
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07004547 "mask" : null
4548 },
4549 {
4550 "match_type" : "exact",
4551 "name" : "ipv4_src",
4552 "target" : ["ipv4", "src_addr"],
4553 "mask" : null
4554 },
4555 {
4556 "match_type" : "exact",
4557 "name" : "pppoe_session_id",
4558 "target" : ["pppoe", "session_id"],
4559 "mask" : null
4560 }
4561 ],
4562 "match_type" : "exact",
4563 "type" : "simple",
4564 "max_size" : 32768,
4565 "with_counters" : false,
4566 "support_timeout" : false,
4567 "direct_meters" : null,
4568 "action_ids" : [13, 12],
4569 "actions" : ["FabricIngress.bng_ingress.upstream.term_enabled_v4", "FabricIngress.bng_ingress.upstream.term_disabled"],
4570 "base_default_next" : "node_27",
4571 "next_tables" : {
4572 "FabricIngress.bng_ingress.upstream.term_enabled_v4" : "node_27",
4573 "FabricIngress.bng_ingress.upstream.term_disabled" : "node_27"
4574 },
4575 "default_entry" : {
4576 "action_id" : 12,
4577 "action_const" : true,
4578 "action_data" : [],
4579 "action_entry_const" : true
4580 }
4581 },
4582 {
4583 "name" : "FabricIngress.bng_ingress.downstream.t_line_map_v4",
4584 "id" : 12,
4585 "source_info" : {
4586 "filename" : "include/bng.p4",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07004587 "line" : 204,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07004588 "column" : 10,
4589 "source_fragment" : "t_line_map_v4"
4590 },
4591 "key" : [
4592 {
4593 "match_type" : "exact",
4594 "name" : "ipv4_dst",
4595 "target" : ["ipv4", "dst_addr"],
4596 "mask" : null
4597 }
4598 ],
4599 "match_type" : "exact",
4600 "type" : "simple",
4601 "max_size" : 32768,
4602 "with_counters" : false,
4603 "support_timeout" : false,
4604 "direct_meters" : null,
4605 "action_ids" : [2, 14, 15],
4606 "actions" : ["nop", "FabricIngress.bng_ingress.downstream.set_line_next", "FabricIngress.bng_ingress.downstream.set_line_drop"],
4607 "base_default_next" : null,
4608 "next_tables" : {
4609 "__HIT__" : "tbl_act_6",
4610 "__MISS__" : "tbl_act_7"
4611 },
4612 "default_entry" : {
4613 "action_id" : 2,
4614 "action_const" : true,
4615 "action_data" : [],
4616 "action_entry_const" : true
4617 }
4618 },
4619 {
4620 "name" : "tbl_act_6",
4621 "id" : 13,
4622 "key" : [],
4623 "match_type" : "exact",
4624 "type" : "simple",
4625 "max_size" : 1024,
4626 "with_counters" : false,
4627 "support_timeout" : false,
4628 "direct_meters" : null,
4629 "action_ids" : [45],
4630 "actions" : ["act_6"],
4631 "base_default_next" : "node_25",
4632 "next_tables" : {
4633 "act_6" : "node_25"
4634 },
4635 "default_entry" : {
4636 "action_id" : 45,
4637 "action_const" : true,
4638 "action_data" : [],
4639 "action_entry_const" : true
4640 }
4641 },
4642 {
4643 "name" : "tbl_act_7",
4644 "id" : 14,
4645 "key" : [],
4646 "match_type" : "exact",
4647 "type" : "simple",
4648 "max_size" : 1024,
4649 "with_counters" : false,
4650 "support_timeout" : false,
4651 "direct_meters" : null,
4652 "action_ids" : [46],
4653 "actions" : ["act_7"],
4654 "base_default_next" : "node_25",
4655 "next_tables" : {
4656 "act_7" : "node_25"
4657 },
4658 "default_entry" : {
4659 "action_id" : 46,
4660 "action_const" : true,
4661 "action_data" : [],
4662 "action_entry_const" : true
4663 }
4664 },
4665 {
4666 "name" : "FabricIngress.bng_ingress.downstream.t_qos_v4",
4667 "id" : 15,
4668 "source_info" : {
4669 "filename" : "include/bng.p4",
Carmelo Cascone7d54994b2019-06-25 18:20:02 -07004670 "line" : 246,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07004671 "column" : 10,
4672 "source_fragment" : "t_qos_v4"
4673 },
4674 "key" : [
4675 {
4676 "match_type" : "ternary",
4677 "name" : "line_id",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07004678 "target" : ["scalars", "fabric_metadata_t._bng_line_id17"],
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07004679 "mask" : null
4680 },
4681 {
4682 "match_type" : "lpm",
4683 "name" : "ipv4_src",
4684 "target" : ["ipv4", "src_addr"],
4685 "mask" : null
4686 },
4687 {
4688 "match_type" : "ternary",
4689 "name" : "ipv4_dscp",
4690 "target" : ["ipv4", "dscp"],
4691 "mask" : null
4692 },
4693 {
4694 "match_type" : "ternary",
4695 "name" : "ipv4_ecn",
4696 "target" : ["ipv4", "ecn"],
4697 "mask" : null
4698 }
4699 ],
4700 "match_type" : "ternary",
4701 "type" : "simple",
4702 "max_size" : 256,
4703 "with_counters" : false,
4704 "support_timeout" : false,
4705 "direct_meters" : null,
4706 "action_ids" : [16, 17],
4707 "actions" : ["FabricIngress.bng_ingress.downstream.qos_prio", "FabricIngress.bng_ingress.downstream.qos_besteff"],
4708 "base_default_next" : "node_27",
4709 "next_tables" : {
4710 "FabricIngress.bng_ingress.downstream.qos_prio" : "node_27",
4711 "FabricIngress.bng_ingress.downstream.qos_besteff" : "node_27"
4712 },
4713 "default_entry" : {
4714 "action_id" : 17,
4715 "action_const" : true,
4716 "action_data" : [],
4717 "action_entry_const" : true
4718 }
4719 },
4720 {
4721 "name" : "FabricIngress.forwarding.bridging",
4722 "id" : 16,
4723 "source_info" : {
4724 "filename" : "include/control/forwarding.p4",
4725 "line" : 46,
4726 "column" : 10,
4727 "source_fragment" : "bridging"
4728 },
4729 "key" : [
4730 {
4731 "match_type" : "exact",
4732 "name" : "vlan_id",
4733 "target" : ["scalars", "fabric_metadata_t._vlan_id2"],
4734 "mask" : null
4735 },
4736 {
4737 "match_type" : "ternary",
4738 "name" : "eth_dst",
4739 "target" : ["ethernet", "dst_addr"],
4740 "mask" : null
4741 }
4742 ],
4743 "match_type" : "ternary",
4744 "type" : "simple",
4745 "max_size" : 1024,
4746 "with_counters" : true,
4747 "support_timeout" : false,
4748 "direct_meters" : null,
4749 "action_ids" : [22, 3],
4750 "actions" : ["FabricIngress.forwarding.set_next_id_bridging", "nop"],
4751 "base_default_next" : "FabricIngress.acl.acl",
4752 "next_tables" : {
4753 "FabricIngress.forwarding.set_next_id_bridging" : "FabricIngress.acl.acl",
4754 "nop" : "FabricIngress.acl.acl"
4755 },
4756 "default_entry" : {
4757 "action_id" : 3,
4758 "action_const" : true,
4759 "action_data" : [],
4760 "action_entry_const" : true
4761 }
4762 },
4763 {
4764 "name" : "FabricIngress.forwarding.mpls",
4765 "id" : 17,
4766 "source_info" : {
4767 "filename" : "include/control/forwarding.p4",
4768 "line" : 71,
4769 "column" : 10,
4770 "source_fragment" : "mpls"
4771 },
4772 "key" : [
4773 {
4774 "match_type" : "exact",
4775 "name" : "mpls_label",
4776 "target" : ["scalars", "fabric_metadata_t._mpls_label5"],
4777 "mask" : null
4778 }
4779 ],
4780 "match_type" : "exact",
4781 "type" : "simple",
4782 "max_size" : 1024,
4783 "with_counters" : true,
4784 "support_timeout" : false,
4785 "direct_meters" : null,
4786 "action_ids" : [23, 4],
4787 "actions" : ["FabricIngress.forwarding.pop_mpls_and_next", "nop"],
4788 "base_default_next" : "FabricIngress.acl.acl",
4789 "next_tables" : {
4790 "FabricIngress.forwarding.pop_mpls_and_next" : "FabricIngress.acl.acl",
4791 "nop" : "FabricIngress.acl.acl"
4792 },
4793 "default_entry" : {
4794 "action_id" : 4,
4795 "action_const" : true,
4796 "action_data" : [],
4797 "action_entry_const" : true
4798 }
4799 },
4800 {
4801 "name" : "FabricIngress.forwarding.routing_v4",
4802 "id" : 18,
4803 "source_info" : {
4804 "filename" : "include/control/forwarding.p4",
4805 "line" : 101,
4806 "column" : 10,
4807 "source_fragment" : "routing_v4"
4808 },
4809 "key" : [
4810 {
4811 "match_type" : "lpm",
4812 "name" : "ipv4_dst",
4813 "target" : ["ipv4", "dst_addr"],
4814 "mask" : null
4815 }
4816 ],
4817 "match_type" : "lpm",
4818 "type" : "simple",
4819 "max_size" : 1024,
4820 "with_counters" : true,
4821 "support_timeout" : false,
4822 "direct_meters" : null,
4823 "action_ids" : [24, 25, 5],
4824 "actions" : ["FabricIngress.forwarding.set_next_id_routing_v4", "FabricIngress.forwarding.nop_routing_v4", "nop"],
4825 "base_default_next" : "FabricIngress.acl.acl",
4826 "next_tables" : {
4827 "FabricIngress.forwarding.set_next_id_routing_v4" : "FabricIngress.acl.acl",
4828 "FabricIngress.forwarding.nop_routing_v4" : "FabricIngress.acl.acl",
4829 "nop" : "FabricIngress.acl.acl"
4830 },
4831 "default_entry" : {
4832 "action_id" : 5,
4833 "action_const" : true,
4834 "action_data" : [],
4835 "action_entry_const" : true
4836 }
4837 },
4838 {
4839 "name" : "FabricIngress.acl.acl",
4840 "id" : 19,
4841 "source_info" : {
4842 "filename" : "include/control/acl.p4",
4843 "line" : 60,
4844 "column" : 10,
4845 "source_fragment" : "acl"
4846 },
4847 "key" : [
4848 {
4849 "match_type" : "ternary",
4850 "name" : "ig_port",
4851 "target" : ["standard_metadata", "ingress_port"],
4852 "mask" : null
4853 },
4854 {
4855 "match_type" : "ternary",
4856 "name" : "ip_proto",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07004857 "target" : ["scalars", "fabric_metadata_t._ip_proto13"],
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07004858 "mask" : null
4859 },
4860 {
4861 "match_type" : "ternary",
4862 "name" : "l4_sport",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07004863 "target" : ["scalars", "fabric_metadata_t._l4_sport14"],
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07004864 "mask" : null
4865 },
4866 {
4867 "match_type" : "ternary",
4868 "name" : "l4_dport",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07004869 "target" : ["scalars", "fabric_metadata_t._l4_dport15"],
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07004870 "mask" : null
4871 },
4872 {
4873 "match_type" : "ternary",
4874 "name" : "eth_src",
4875 "target" : ["ethernet", "dst_addr"],
4876 "mask" : null
4877 },
4878 {
4879 "match_type" : "ternary",
4880 "name" : "eth_dst",
4881 "target" : ["ethernet", "src_addr"],
4882 "mask" : null
4883 },
4884 {
4885 "match_type" : "ternary",
4886 "name" : "vlan_id",
4887 "target" : ["vlan_tag", "vlan_id"],
4888 "mask" : null
4889 },
4890 {
4891 "match_type" : "ternary",
4892 "name" : "eth_type",
4893 "target" : ["scalars", "fabric_metadata_t._eth_type0"],
4894 "mask" : null
4895 },
4896 {
4897 "match_type" : "ternary",
4898 "name" : "ipv4_src",
4899 "target" : ["ipv4", "src_addr"],
4900 "mask" : null
4901 },
4902 {
4903 "match_type" : "ternary",
4904 "name" : "ipv4_dst",
4905 "target" : ["ipv4", "dst_addr"],
4906 "mask" : null
4907 },
4908 {
4909 "match_type" : "ternary",
4910 "name" : "icmp_type",
4911 "target" : ["icmp", "icmp_type"],
4912 "mask" : null
4913 },
4914 {
4915 "match_type" : "ternary",
4916 "name" : "icmp_code",
4917 "target" : ["icmp", "icmp_code"],
4918 "mask" : null
4919 }
4920 ],
4921 "match_type" : "ternary",
4922 "type" : "simple",
4923 "max_size" : 1024,
4924 "with_counters" : true,
4925 "support_timeout" : false,
4926 "direct_meters" : null,
4927 "action_ids" : [26, 27, 28, 29, 30],
Daniele Moro01ca2ab2019-06-25 11:48:48 -07004928 "actions" : ["FabricIngress.acl.set_next_id_acl", "FabricIngress.acl.punt_to_cpu", "FabricIngress.acl.set_clone_session_id", "FabricIngress.acl.drop", "FabricIngress.acl.nop_acl"],
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07004929 "base_default_next" : "node_35",
4930 "next_tables" : {
4931 "FabricIngress.acl.set_next_id_acl" : "node_35",
4932 "FabricIngress.acl.punt_to_cpu" : "node_35",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07004933 "FabricIngress.acl.set_clone_session_id" : "node_35",
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07004934 "FabricIngress.acl.drop" : "node_35",
4935 "FabricIngress.acl.nop_acl" : "node_35"
4936 },
4937 "default_entry" : {
4938 "action_id" : 30,
4939 "action_const" : true,
4940 "action_data" : [],
4941 "action_entry_const" : true
4942 }
4943 },
4944 {
4945 "name" : "FabricIngress.next.xconnect",
4946 "id" : 20,
4947 "source_info" : {
4948 "filename" : "include/control/next.p4",
4949 "line" : 104,
4950 "column" : 10,
4951 "source_fragment" : "xconnect"
4952 },
4953 "key" : [
4954 {
4955 "match_type" : "exact",
4956 "name" : "ig_port",
4957 "target" : ["standard_metadata", "ingress_port"],
4958 "mask" : null
4959 },
4960 {
4961 "match_type" : "exact",
4962 "name" : "next_id",
4963 "target" : ["scalars", "fabric_metadata_t._next_id10"],
4964 "mask" : null
4965 }
4966 ],
4967 "match_type" : "exact",
4968 "type" : "simple",
4969 "max_size" : 1024,
4970 "with_counters" : true,
4971 "support_timeout" : false,
4972 "direct_meters" : null,
4973 "action_ids" : [32, 33, 7],
4974 "actions" : ["FabricIngress.next.output_xconnect", "FabricIngress.next.set_next_id_xconnect", "nop"],
4975 "base_default_next" : "FabricIngress.next.hashed",
4976 "next_tables" : {
4977 "FabricIngress.next.output_xconnect" : "FabricIngress.next.hashed",
4978 "FabricIngress.next.set_next_id_xconnect" : "FabricIngress.next.hashed",
4979 "nop" : "FabricIngress.next.hashed"
4980 },
4981 "default_entry" : {
4982 "action_id" : 7,
4983 "action_const" : true,
4984 "action_data" : [],
4985 "action_entry_const" : true
4986 }
4987 },
4988 {
4989 "name" : "FabricIngress.next.hashed",
4990 "id" : 21,
4991 "source_info" : {
4992 "filename" : "include/control/next.p4",
4993 "line" : 184,
4994 "column" : 10,
4995 "source_fragment" : "hashed"
4996 },
4997 "key" : [
4998 {
4999 "match_type" : "exact",
5000 "name" : "next_id",
5001 "target" : ["scalars", "fabric_metadata_t._next_id10"],
5002 "mask" : null
5003 }
5004 ],
5005 "match_type" : "exact",
5006 "type" : "indirect_ws",
5007 "action_profile" : "FabricIngress.next.hashed_selector",
5008 "max_size" : 1024,
5009 "with_counters" : true,
5010 "support_timeout" : false,
5011 "direct_meters" : null,
5012 "action_ids" : [34, 35, 36, 8],
5013 "actions" : ["FabricIngress.next.output_hashed", "FabricIngress.next.routing_hashed", "FabricIngress.next.mpls_routing_hashed", "nop"],
5014 "base_default_next" : "FabricIngress.next.multicast",
5015 "next_tables" : {
5016 "FabricIngress.next.output_hashed" : "FabricIngress.next.multicast",
5017 "FabricIngress.next.routing_hashed" : "FabricIngress.next.multicast",
5018 "FabricIngress.next.mpls_routing_hashed" : "FabricIngress.next.multicast",
5019 "nop" : "FabricIngress.next.multicast"
5020 }
5021 },
5022 {
5023 "name" : "FabricIngress.next.multicast",
5024 "id" : 22,
5025 "source_info" : {
5026 "filename" : "include/control/next.p4",
5027 "line" : 218,
5028 "column" : 10,
5029 "source_fragment" : "multicast"
5030 },
5031 "key" : [
5032 {
5033 "match_type" : "exact",
5034 "name" : "next_id",
5035 "target" : ["scalars", "fabric_metadata_t._next_id10"],
5036 "mask" : null
5037 }
5038 ],
5039 "match_type" : "exact",
5040 "type" : "simple",
5041 "max_size" : 1024,
5042 "with_counters" : true,
5043 "support_timeout" : false,
5044 "direct_meters" : null,
5045 "action_ids" : [37, 9],
5046 "actions" : ["FabricIngress.next.set_mcast_group_id", "nop"],
5047 "base_default_next" : "FabricIngress.next.next_vlan",
5048 "next_tables" : {
5049 "FabricIngress.next.set_mcast_group_id" : "FabricIngress.next.next_vlan",
5050 "nop" : "FabricIngress.next.next_vlan"
5051 },
5052 "default_entry" : {
5053 "action_id" : 9,
5054 "action_const" : true,
5055 "action_data" : [],
5056 "action_entry_const" : true
5057 }
5058 },
5059 {
5060 "name" : "FabricIngress.next.next_vlan",
5061 "id" : 23,
5062 "source_info" : {
5063 "filename" : "include/control/next.p4",
5064 "line" : 74,
5065 "column" : 10,
5066 "source_fragment" : "next_vlan"
5067 },
5068 "key" : [
5069 {
5070 "match_type" : "exact",
5071 "name" : "next_id",
5072 "target" : ["scalars", "fabric_metadata_t._next_id10"],
5073 "mask" : null
5074 }
5075 ],
5076 "match_type" : "exact",
5077 "type" : "simple",
5078 "max_size" : 1024,
5079 "with_counters" : true,
5080 "support_timeout" : false,
5081 "direct_meters" : null,
5082 "action_ids" : [31, 6],
5083 "actions" : ["FabricIngress.next.set_vlan", "nop"],
5084 "base_default_next" : "node_40",
5085 "next_tables" : {
5086 "FabricIngress.next.set_vlan" : "node_40",
5087 "nop" : "node_40"
5088 },
5089 "default_entry" : {
5090 "action_id" : 6,
5091 "action_const" : true,
5092 "action_data" : [],
5093 "action_entry_const" : true
5094 }
5095 },
5096 {
5097 "name" : "tbl_act_8",
5098 "id" : 24,
5099 "source_info" : {
5100 "filename" : "include/control/port_counter.p4",
5101 "line" : 31,
5102 "column" : 12,
5103 "source_fragment" : "egress_port_counter.count((bit<32>)standard_metadata.egress_spec)"
5104 },
5105 "key" : [],
5106 "match_type" : "exact",
5107 "type" : "simple",
5108 "max_size" : 1024,
5109 "with_counters" : false,
5110 "support_timeout" : false,
5111 "direct_meters" : null,
5112 "action_ids" : [47],
5113 "actions" : ["act_8"],
5114 "base_default_next" : "node_42",
5115 "next_tables" : {
5116 "act_8" : "node_42"
5117 },
5118 "default_entry" : {
5119 "action_id" : 47,
5120 "action_const" : true,
5121 "action_data" : [],
5122 "action_entry_const" : true
5123 }
5124 },
5125 {
5126 "name" : "tbl_act_9",
5127 "id" : 25,
5128 "source_info" : {
5129 "filename" : "include/control/port_counter.p4",
5130 "line" : 34,
5131 "column" : 12,
5132 "source_fragment" : "ingress_port_counter.count((bit<32>)standard_metadata.ingress_port)"
5133 },
5134 "key" : [],
5135 "match_type" : "exact",
5136 "type" : "simple",
5137 "max_size" : 1024,
5138 "with_counters" : false,
5139 "support_timeout" : false,
5140 "direct_meters" : null,
5141 "action_ids" : [48],
5142 "actions" : ["act_9"],
5143 "base_default_next" : null,
5144 "next_tables" : {
5145 "act_9" : null
5146 },
5147 "default_entry" : {
5148 "action_id" : 48,
5149 "action_const" : true,
5150 "action_data" : [],
5151 "action_entry_const" : true
5152 }
5153 }
5154 ],
5155 "action_profiles" : [
5156 {
5157 "name" : "FabricIngress.next.hashed_selector",
5158 "id" : 0,
5159 "source_info" : {
5160 "filename" : "include/control/next.p4",
5161 "line" : 165,
5162 "column" : 57,
5163 "source_fragment" : "hashed_selector"
5164 },
5165 "max_size" : 1024,
5166 "selector" : {
5167 "algo" : "crc16",
5168 "input" : [
5169 {
5170 "type" : "field",
5171 "value" : ["ipv4", "dst_addr"]
5172 },
5173 {
5174 "type" : "field",
5175 "value" : ["ipv4", "src_addr"]
5176 },
5177 {
5178 "type" : "field",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07005179 "value" : ["scalars", "fabric_metadata_t._ip_proto13"]
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07005180 },
5181 {
5182 "type" : "field",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07005183 "value" : ["scalars", "fabric_metadata_t._l4_sport14"]
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07005184 },
5185 {
5186 "type" : "field",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07005187 "value" : ["scalars", "fabric_metadata_t._l4_dport15"]
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07005188 }
5189 ]
5190 }
5191 }
5192 ],
5193 "conditionals" : [
5194 {
5195 "name" : "node_2",
5196 "id" : 0,
5197 "source_info" : {
5198 "filename" : "include/control/packetio.p4",
5199 "line" : 24,
5200 "column" : 12,
5201 "source_fragment" : "hdr.packet_out.isValid()"
5202 },
5203 "expression" : {
5204 "type" : "expression",
5205 "value" : {
5206 "op" : "d2b",
5207 "left" : null,
5208 "right" : {
5209 "type" : "field",
5210 "value" : ["packet_out", "$valid$"]
5211 }
5212 }
5213 },
5214 "true_next" : "tbl_act",
5215 "false_next" : "node_4"
5216 },
5217 {
5218 "name" : "node_4",
5219 "id" : 1,
5220 "source_info" : {
5221 "filename" : "include/control/filtering.p4",
5222 "line" : 104,
5223 "column" : 12,
5224 "source_fragment" : "hdr.vlan_tag.isValid()"
5225 },
5226 "expression" : {
5227 "type" : "expression",
5228 "value" : {
5229 "op" : "d2b",
5230 "left" : null,
5231 "right" : {
5232 "type" : "field",
5233 "value" : ["vlan_tag", "$valid$"]
5234 }
5235 }
5236 },
5237 "true_next" : "tbl_act_0",
5238 "false_next" : "node_6"
5239 },
5240 {
5241 "name" : "node_6",
5242 "id" : 2,
5243 "source_info" : {
5244 "filename" : "include/control/filtering.p4",
5245 "line" : 110,
5246 "column" : 12,
5247 "source_fragment" : "!hdr.mpls.isValid()"
5248 },
5249 "expression" : {
5250 "type" : "expression",
5251 "value" : {
5252 "op" : "not",
5253 "left" : null,
5254 "right" : {
5255 "type" : "expression",
5256 "value" : {
5257 "op" : "d2b",
5258 "left" : null,
5259 "right" : {
5260 "type" : "field",
5261 "value" : ["mpls", "$valid$"]
5262 }
5263 }
5264 }
5265 }
5266 },
5267 "true_next" : "tbl_act_1",
5268 "false_next" : "FabricIngress.filtering.ingress_port_vlan"
5269 },
5270 {
5271 "name" : "node_10",
5272 "id" : 3,
5273 "source_info" : {
5274 "filename" : "include/bng.p4",
Carmelo Cascone7d54994b2019-06-25 18:20:02 -07005275 "line" : 365,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07005276 "column" : 12,
5277 "source_fragment" : "hdr.pppoe.isValid()"
5278 },
5279 "expression" : {
5280 "type" : "expression",
5281 "value" : {
5282 "op" : "d2b",
5283 "left" : null,
5284 "right" : {
5285 "type" : "field",
5286 "value" : ["pppoe", "$valid$"]
5287 }
5288 }
5289 },
5290 "true_next" : "tbl_act_2",
5291 "false_next" : "node_21"
5292 },
5293 {
5294 "name" : "node_16",
5295 "id" : 4,
5296 "expression" : {
5297 "type" : "expression",
5298 "value" : {
5299 "op" : "d2b",
5300 "left" : null,
5301 "right" : {
5302 "type" : "field",
5303 "value" : ["scalars", "bng_ingress_upstream_tmp"]
5304 }
5305 }
5306 },
5307 "true_next" : "tbl_act_5",
5308 "false_next" : "node_18"
5309 },
5310 {
5311 "name" : "node_18",
5312 "id" : 5,
5313 "expression" : {
5314 "type" : "expression",
5315 "value" : {
5316 "op" : "not",
5317 "left" : null,
5318 "right" : {
5319 "type" : "expression",
5320 "value" : {
5321 "op" : "d2b",
5322 "left" : null,
5323 "right" : {
5324 "type" : "field",
5325 "value" : ["scalars", "bng_ingress_upstream_hasReturned"]
5326 }
5327 }
5328 }
5329 }
5330 },
5331 "true_next" : "node_19",
5332 "false_next" : "node_27"
5333 },
5334 {
5335 "name" : "node_19",
5336 "id" : 6,
5337 "source_info" : {
5338 "filename" : "include/bng.p4",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07005339 "line" : 159,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07005340 "column" : 12,
5341 "source_fragment" : "hdr.ipv4.isValid()"
5342 },
5343 "expression" : {
5344 "type" : "expression",
5345 "value" : {
5346 "op" : "d2b",
5347 "left" : null,
5348 "right" : {
5349 "type" : "field",
5350 "value" : ["ipv4", "$valid$"]
5351 }
5352 }
5353 },
5354 "true_next" : "FabricIngress.bng_ingress.upstream.t_pppoe_term_v4",
5355 "false_next" : "node_27"
5356 },
5357 {
5358 "name" : "node_21",
5359 "id" : 7,
5360 "source_info" : {
5361 "filename" : "include/bng.p4",
Carmelo Cascone7d54994b2019-06-25 18:20:02 -07005362 "line" : 279,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07005363 "column" : 12,
5364 "source_fragment" : "hdr.ipv4.isValid()"
5365 },
5366 "expression" : {
5367 "type" : "expression",
5368 "value" : {
5369 "op" : "d2b",
5370 "left" : null,
5371 "right" : {
5372 "type" : "field",
5373 "value" : ["ipv4", "$valid$"]
5374 }
5375 }
5376 },
5377 "true_next" : "FabricIngress.bng_ingress.downstream.t_line_map_v4",
5378 "false_next" : "node_27"
5379 },
5380 {
5381 "name" : "node_25",
5382 "id" : 8,
5383 "expression" : {
5384 "type" : "expression",
5385 "value" : {
5386 "op" : "d2b",
5387 "left" : null,
5388 "right" : {
5389 "type" : "field",
5390 "value" : ["scalars", "bng_ingress_downstream_tmp"]
5391 }
5392 }
5393 },
5394 "true_next" : "FabricIngress.bng_ingress.downstream.t_qos_v4",
5395 "false_next" : "node_27"
5396 },
5397 {
5398 "name" : "node_27",
5399 "id" : 9,
5400 "source_info" : {
5401 "filename" : "fabric.p4",
5402 "line" : 74,
5403 "column" : 12,
5404 "source_fragment" : "fabric_metadata.skip_forwarding == false"
5405 },
5406 "expression" : {
5407 "type" : "expression",
5408 "value" : {
5409 "op" : "==",
5410 "left" : {
5411 "type" : "expression",
5412 "value" : {
5413 "op" : "d2b",
5414 "left" : null,
5415 "right" : {
5416 "type" : "field",
5417 "value" : ["scalars", "fabric_metadata_t._skip_forwarding7"]
5418 }
5419 }
5420 },
5421 "right" : {
5422 "type" : "bool",
5423 "value" : false
5424 }
5425 }
5426 },
5427 "true_next" : "node_28",
5428 "false_next" : "FabricIngress.acl.acl"
5429 },
5430 {
5431 "name" : "node_28",
5432 "id" : 10,
5433 "source_info" : {
5434 "filename" : "include/control/forwarding.p4",
5435 "line" : 141,
5436 "column" : 12,
5437 "source_fragment" : "fabric_metadata.fwd_type == FWD_BRIDGING"
5438 },
5439 "expression" : {
5440 "type" : "expression",
5441 "value" : {
5442 "op" : "==",
5443 "left" : {
5444 "type" : "field",
5445 "value" : ["scalars", "fabric_metadata_t._fwd_type9"]
5446 },
5447 "right" : {
5448 "type" : "hexstr",
5449 "value" : "0x00"
5450 }
5451 }
5452 },
5453 "true_next" : "FabricIngress.forwarding.bridging",
5454 "false_next" : "node_30"
5455 },
5456 {
5457 "name" : "node_30",
5458 "id" : 11,
5459 "source_info" : {
5460 "filename" : "include/control/forwarding.p4",
5461 "line" : 142,
5462 "column" : 17,
5463 "source_fragment" : "fabric_metadata.fwd_type == FWD_MPLS"
5464 },
5465 "expression" : {
5466 "type" : "expression",
5467 "value" : {
5468 "op" : "==",
5469 "left" : {
5470 "type" : "field",
5471 "value" : ["scalars", "fabric_metadata_t._fwd_type9"]
5472 },
5473 "right" : {
5474 "type" : "hexstr",
5475 "value" : "0x01"
5476 }
5477 }
5478 },
5479 "true_next" : "FabricIngress.forwarding.mpls",
5480 "false_next" : "node_32"
5481 },
5482 {
5483 "name" : "node_32",
5484 "id" : 12,
5485 "source_info" : {
5486 "filename" : "include/control/forwarding.p4",
5487 "line" : 143,
5488 "column" : 17,
5489 "source_fragment" : "fabric_metadata.fwd_type == FWD_IPV4_UNICAST"
5490 },
5491 "expression" : {
5492 "type" : "expression",
5493 "value" : {
5494 "op" : "==",
5495 "left" : {
5496 "type" : "field",
5497 "value" : ["scalars", "fabric_metadata_t._fwd_type9"]
5498 },
5499 "right" : {
5500 "type" : "hexstr",
5501 "value" : "0x02"
5502 }
5503 }
5504 },
5505 "true_next" : "FabricIngress.forwarding.routing_v4",
5506 "false_next" : "FabricIngress.acl.acl"
5507 },
5508 {
5509 "name" : "node_35",
5510 "id" : 13,
5511 "source_info" : {
5512 "filename" : "fabric.p4",
5513 "line" : 78,
5514 "column" : 12,
5515 "source_fragment" : "fabric_metadata.skip_next == false"
5516 },
5517 "expression" : {
5518 "type" : "expression",
5519 "value" : {
5520 "op" : "==",
5521 "left" : {
5522 "type" : "expression",
5523 "value" : {
5524 "op" : "d2b",
5525 "left" : null,
5526 "right" : {
5527 "type" : "field",
5528 "value" : ["scalars", "fabric_metadata_t._skip_next8"]
5529 }
5530 }
5531 },
5532 "right" : {
5533 "type" : "bool",
5534 "value" : false
5535 }
5536 }
5537 },
5538 "false_next" : null,
5539 "true_next" : "FabricIngress.next.xconnect"
5540 },
5541 {
5542 "name" : "node_40",
5543 "id" : 14,
5544 "source_info" : {
5545 "filename" : "include/control/port_counter.p4",
5546 "line" : 30,
5547 "column" : 12,
5548 "source_fragment" : "standard_metadata.egress_spec < 511"
5549 },
5550 "expression" : {
5551 "type" : "expression",
5552 "value" : {
5553 "op" : "<",
5554 "left" : {
5555 "type" : "field",
5556 "value" : ["standard_metadata", "egress_spec"]
5557 },
5558 "right" : {
5559 "type" : "hexstr",
5560 "value" : "0x01ff"
5561 }
5562 }
5563 },
5564 "true_next" : "tbl_act_8",
5565 "false_next" : "node_42"
5566 },
5567 {
5568 "name" : "node_42",
5569 "id" : 15,
5570 "source_info" : {
5571 "filename" : "include/control/port_counter.p4",
5572 "line" : 33,
5573 "column" : 12,
5574 "source_fragment" : "standard_metadata.ingress_port < 511"
5575 },
5576 "expression" : {
5577 "type" : "expression",
5578 "value" : {
5579 "op" : "<",
5580 "left" : {
5581 "type" : "field",
5582 "value" : ["standard_metadata", "ingress_port"]
5583 },
5584 "right" : {
5585 "type" : "hexstr",
5586 "value" : "0x01ff"
5587 }
5588 }
5589 },
5590 "false_next" : null,
5591 "true_next" : "tbl_act_9"
5592 }
5593 ]
5594 },
5595 {
5596 "name" : "egress",
5597 "id" : 1,
5598 "source_info" : {
5599 "filename" : "fabric.p4",
5600 "line" : 92,
5601 "column" : 8,
5602 "source_fragment" : "FabricEgress"
5603 },
5604 "init_table" : "node_46",
5605 "tables" : [
5606 {
5607 "name" : "tbl_act_10",
5608 "id" : 26,
5609 "source_info" : {
5610 "filename" : "include/control/packetio.p4",
5611 "line" : 41,
5612 "column" : 12,
5613 "source_fragment" : "exit"
5614 },
5615 "key" : [],
5616 "match_type" : "exact",
5617 "type" : "simple",
5618 "max_size" : 1024,
5619 "with_counters" : false,
5620 "support_timeout" : false,
5621 "direct_meters" : null,
5622 "action_ids" : [56],
5623 "actions" : ["act_10"],
5624 "base_default_next" : "node_48",
5625 "next_tables" : {
5626 "act_10" : "node_48"
5627 },
5628 "default_entry" : {
5629 "action_id" : 56,
5630 "action_const" : true,
5631 "action_data" : [],
5632 "action_entry_const" : true
5633 }
5634 },
5635 {
5636 "name" : "tbl_act_11",
5637 "id" : 27,
5638 "source_info" : {
5639 "filename" : "include/control/packetio.p4",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07005640 "line" : 44,
5641 "column" : 12,
5642 "source_fragment" : "hdr.packet_in.setValid(); ..."
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07005643 },
5644 "key" : [],
5645 "match_type" : "exact",
5646 "type" : "simple",
5647 "max_size" : 1024,
5648 "with_counters" : false,
5649 "support_timeout" : false,
5650 "direct_meters" : null,
5651 "action_ids" : [57],
5652 "actions" : ["act_11"],
Daniele Moro01ca2ab2019-06-25 11:48:48 -07005653 "base_default_next" : "node_50",
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07005654 "next_tables" : {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07005655 "act_11" : "node_50"
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07005656 },
5657 "default_entry" : {
5658 "action_id" : 57,
5659 "action_const" : true,
5660 "action_data" : [],
5661 "action_entry_const" : true
5662 }
5663 },
5664 {
5665 "name" : "tbl_act_12",
5666 "id" : 28,
5667 "source_info" : {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07005668 "filename" : "include/control/next.p4",
5669 "line" : 308,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07005670 "column" : 12,
Daniele Moro01ca2ab2019-06-25 11:48:48 -07005671 "source_fragment" : "mark_to_drop(standard_metadata)"
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07005672 },
5673 "key" : [],
5674 "match_type" : "exact",
5675 "type" : "simple",
5676 "max_size" : 1024,
5677 "with_counters" : false,
5678 "support_timeout" : false,
5679 "direct_meters" : null,
5680 "action_ids" : [58],
5681 "actions" : ["act_12"],
5682 "base_default_next" : "node_52",
5683 "next_tables" : {
5684 "act_12" : "node_52"
5685 },
5686 "default_entry" : {
5687 "action_id" : 58,
5688 "action_const" : true,
5689 "action_data" : [],
5690 "action_entry_const" : true
5691 }
5692 },
5693 {
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07005694 "name" : "tbl_egress_next_pop_mpls_if_present",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07005695 "id" : 29,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07005696 "source_info" : {
5697 "filename" : "include/control/next.p4",
5698 "line" : 312,
5699 "column" : 36,
5700 "source_fragment" : "pop_mpls_if_present()"
5701 },
5702 "key" : [],
5703 "match_type" : "exact",
5704 "type" : "simple",
5705 "max_size" : 1024,
5706 "with_counters" : false,
5707 "support_timeout" : false,
5708 "direct_meters" : null,
5709 "action_ids" : [52],
5710 "actions" : ["FabricEgress.egress_next.pop_mpls_if_present"],
5711 "base_default_next" : "FabricEgress.egress_next.egress_vlan",
5712 "next_tables" : {
5713 "FabricEgress.egress_next.pop_mpls_if_present" : "FabricEgress.egress_next.egress_vlan"
5714 },
5715 "default_entry" : {
5716 "action_id" : 52,
5717 "action_const" : true,
5718 "action_data" : [],
5719 "action_entry_const" : true
5720 }
5721 },
5722 {
5723 "name" : "tbl_egress_next_set_mpls",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07005724 "id" : 30,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07005725 "source_info" : {
5726 "filename" : "include/control/next.p4",
5727 "line" : 314,
5728 "column" : 12,
5729 "source_fragment" : "set_mpls()"
5730 },
5731 "key" : [],
5732 "match_type" : "exact",
5733 "type" : "simple",
5734 "max_size" : 1024,
5735 "with_counters" : false,
5736 "support_timeout" : false,
5737 "direct_meters" : null,
5738 "action_ids" : [53],
5739 "actions" : ["FabricEgress.egress_next.set_mpls"],
5740 "base_default_next" : "FabricEgress.egress_next.egress_vlan",
5741 "next_tables" : {
5742 "FabricEgress.egress_next.set_mpls" : "FabricEgress.egress_next.egress_vlan"
5743 },
5744 "default_entry" : {
5745 "action_id" : 53,
5746 "action_const" : true,
5747 "action_data" : [],
5748 "action_entry_const" : true
5749 }
5750 },
5751 {
5752 "name" : "FabricEgress.egress_next.egress_vlan",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07005753 "id" : 31,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07005754 "source_info" : {
5755 "filename" : "include/control/next.p4",
5756 "line" : 291,
5757 "column" : 10,
5758 "source_fragment" : "egress_vlan"
5759 },
5760 "key" : [
5761 {
5762 "match_type" : "exact",
5763 "name" : "vlan_id",
5764 "target" : ["scalars", "fabric_metadata_t._vlan_id2"],
5765 "mask" : null
5766 },
5767 {
5768 "match_type" : "exact",
5769 "name" : "eg_port",
5770 "target" : ["standard_metadata", "egress_port"],
5771 "mask" : null
5772 }
5773 ],
5774 "match_type" : "exact",
5775 "type" : "simple",
5776 "max_size" : 1024,
5777 "with_counters" : true,
5778 "support_timeout" : false,
5779 "direct_meters" : null,
5780 "action_ids" : [55, 50],
5781 "actions" : ["FabricEgress.egress_next.pop_vlan", "nop"],
5782 "base_default_next" : null,
5783 "next_tables" : {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07005784 "__HIT__" : "tbl_act_13",
5785 "__MISS__" : "tbl_act_14"
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07005786 },
5787 "default_entry" : {
5788 "action_id" : 50,
5789 "action_const" : true,
5790 "action_data" : [],
5791 "action_entry_const" : true
5792 }
5793 },
5794 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07005795 "name" : "tbl_act_13",
5796 "id" : 32,
5797 "key" : [],
5798 "match_type" : "exact",
5799 "type" : "simple",
5800 "max_size" : 1024,
5801 "with_counters" : false,
5802 "support_timeout" : false,
5803 "direct_meters" : null,
5804 "action_ids" : [59],
5805 "actions" : ["act_13"],
5806 "base_default_next" : "node_59",
5807 "next_tables" : {
5808 "act_13" : "node_59"
5809 },
5810 "default_entry" : {
5811 "action_id" : 59,
5812 "action_const" : true,
5813 "action_data" : [],
5814 "action_entry_const" : true
5815 }
5816 },
5817 {
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07005818 "name" : "tbl_act_14",
5819 "id" : 33,
5820 "key" : [],
5821 "match_type" : "exact",
5822 "type" : "simple",
5823 "max_size" : 1024,
5824 "with_counters" : false,
5825 "support_timeout" : false,
5826 "direct_meters" : null,
5827 "action_ids" : [60],
5828 "actions" : ["act_14"],
Daniele Moro01ca2ab2019-06-25 11:48:48 -07005829 "base_default_next" : "node_59",
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07005830 "next_tables" : {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07005831 "act_14" : "node_59"
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07005832 },
5833 "default_entry" : {
5834 "action_id" : 60,
5835 "action_const" : true,
5836 "action_data" : [],
5837 "action_entry_const" : true
5838 }
5839 },
5840 {
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07005841 "name" : "tbl_egress_next_push_vlan",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07005842 "id" : 34,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07005843 "source_info" : {
5844 "filename" : "include/control/next.p4",
5845 "line" : 320,
5846 "column" : 16,
5847 "source_fragment" : "push_vlan()"
5848 },
5849 "key" : [],
5850 "match_type" : "exact",
5851 "type" : "simple",
5852 "max_size" : 1024,
5853 "with_counters" : false,
5854 "support_timeout" : false,
5855 "direct_meters" : null,
5856 "action_ids" : [54],
5857 "actions" : ["FabricEgress.egress_next.push_vlan"],
Daniele Moro01ca2ab2019-06-25 11:48:48 -07005858 "base_default_next" : "node_62",
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07005859 "next_tables" : {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07005860 "FabricEgress.egress_next.push_vlan" : "node_62"
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07005861 },
5862 "default_entry" : {
5863 "action_id" : 54,
5864 "action_const" : true,
5865 "action_data" : [],
5866 "action_entry_const" : true
5867 }
5868 },
5869 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07005870 "name" : "tbl_act_15",
5871 "id" : 35,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07005872 "source_info" : {
5873 "filename" : "include/control/next.p4",
5874 "line" : 326,
5875 "column" : 25,
5876 "source_fragment" : "="
5877 },
5878 "key" : [],
5879 "match_type" : "exact",
5880 "type" : "simple",
5881 "max_size" : 1024,
5882 "with_counters" : false,
5883 "support_timeout" : false,
5884 "direct_meters" : null,
Daniele Moro01ca2ab2019-06-25 11:48:48 -07005885 "action_ids" : [62],
5886 "actions" : ["act_16"],
5887 "base_default_next" : "node_64",
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07005888 "next_tables" : {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07005889 "act_16" : "node_64"
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07005890 },
5891 "default_entry" : {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07005892 "action_id" : 62,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07005893 "action_const" : true,
5894 "action_data" : [],
5895 "action_entry_const" : true
5896 }
5897 },
5898 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07005899 "name" : "tbl_act_16",
5900 "id" : 36,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07005901 "source_info" : {
5902 "filename" : "include/control/next.p4",
5903 "line" : 327,
5904 "column" : 35,
5905 "source_fragment" : "mark_to_drop(standard_metadata)"
5906 },
5907 "key" : [],
5908 "match_type" : "exact",
5909 "type" : "simple",
5910 "max_size" : 1024,
5911 "with_counters" : false,
5912 "support_timeout" : false,
5913 "direct_meters" : null,
Daniele Moro01ca2ab2019-06-25 11:48:48 -07005914 "action_ids" : [61],
5915 "actions" : ["act_15"],
5916 "base_default_next" : "node_70",
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07005917 "next_tables" : {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07005918 "act_15" : "node_70"
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07005919 },
5920 "default_entry" : {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07005921 "action_id" : 61,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07005922 "action_const" : true,
5923 "action_data" : [],
5924 "action_entry_const" : true
5925 }
5926 },
5927 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07005928 "name" : "tbl_act_17",
5929 "id" : 37,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07005930 "source_info" : {
5931 "filename" : "include/control/next.p4",
5932 "line" : 330,
5933 "column" : 29,
5934 "source_fragment" : "="
5935 },
5936 "key" : [],
5937 "match_type" : "exact",
5938 "type" : "simple",
5939 "max_size" : 1024,
5940 "with_counters" : false,
5941 "support_timeout" : false,
5942 "direct_meters" : null,
Daniele Moro01ca2ab2019-06-25 11:48:48 -07005943 "action_ids" : [64],
5944 "actions" : ["act_18"],
5945 "base_default_next" : "node_68",
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07005946 "next_tables" : {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07005947 "act_18" : "node_68"
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07005948 },
5949 "default_entry" : {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07005950 "action_id" : 64,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07005951 "action_const" : true,
5952 "action_data" : [],
5953 "action_entry_const" : true
5954 }
5955 },
5956 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07005957 "name" : "tbl_act_18",
5958 "id" : 38,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07005959 "source_info" : {
5960 "filename" : "include/control/next.p4",
5961 "line" : 331,
5962 "column" : 39,
5963 "source_fragment" : "mark_to_drop(standard_metadata)"
5964 },
5965 "key" : [],
5966 "match_type" : "exact",
5967 "type" : "simple",
5968 "max_size" : 1024,
5969 "with_counters" : false,
5970 "support_timeout" : false,
5971 "direct_meters" : null,
Daniele Moro01ca2ab2019-06-25 11:48:48 -07005972 "action_ids" : [63],
5973 "actions" : ["act_17"],
5974 "base_default_next" : "node_70",
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07005975 "next_tables" : {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07005976 "act_17" : "node_70"
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07005977 },
5978 "default_entry" : {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07005979 "action_id" : 63,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07005980 "action_const" : true,
5981 "action_data" : [],
5982 "action_entry_const" : true
5983 }
5984 },
5985 {
5986 "name" : "FabricEgress.bng_egress.downstream.t_session_encap",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07005987 "id" : 39,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07005988 "source_info" : {
5989 "filename" : "include/bng.p4",
Carmelo Cascone7d54994b2019-06-25 18:20:02 -07005990 "line" : 336,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07005991 "column" : 10,
5992 "source_fragment" : "t_session_encap"
5993 },
5994 "key" : [
5995 {
5996 "match_type" : "exact",
5997 "name" : "line_id",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07005998 "target" : ["scalars", "fabric_metadata_t._bng_line_id17"],
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07005999 "mask" : null
6000 }
6001 ],
6002 "match_type" : "exact",
6003 "type" : "simple",
6004 "max_size" : 8192,
6005 "with_counters" : false,
6006 "support_timeout" : false,
6007 "direct_meters" : null,
6008 "action_ids" : [49, 51],
6009 "actions" : ["nop", "FabricEgress.bng_egress.downstream.encap_v4"],
6010 "base_default_next" : null,
6011 "next_tables" : {
6012 "nop" : null,
6013 "FabricEgress.bng_egress.downstream.encap_v4" : null
6014 },
6015 "default_entry" : {
6016 "action_id" : 49,
6017 "action_const" : true,
6018 "action_data" : [],
6019 "action_entry_const" : true
6020 }
6021 }
6022 ],
6023 "action_profiles" : [],
6024 "conditionals" : [
6025 {
6026 "name" : "node_46",
6027 "id" : 16,
6028 "source_info" : {
6029 "filename" : "include/control/packetio.p4",
6030 "line" : 39,
6031 "column" : 12,
6032 "source_fragment" : "fabric_metadata.is_controller_packet_out == true"
6033 },
6034 "expression" : {
6035 "type" : "expression",
6036 "value" : {
6037 "op" : "==",
6038 "left" : {
6039 "type" : "expression",
6040 "value" : {
6041 "op" : "d2b",
6042 "left" : null,
6043 "right" : {
6044 "type" : "field",
6045 "value" : ["scalars", "fabric_metadata_t._is_controller_packet_out12"]
6046 }
6047 }
6048 },
6049 "right" : {
6050 "type" : "bool",
6051 "value" : true
6052 }
6053 }
6054 },
6055 "true_next" : "tbl_act_10",
6056 "false_next" : "node_48"
6057 },
6058 {
6059 "name" : "node_48",
6060 "id" : 17,
6061 "source_info" : {
6062 "filename" : "include/control/packetio.p4",
6063 "line" : 43,
6064 "column" : 12,
6065 "source_fragment" : "standard_metadata.egress_port == 255"
6066 },
6067 "expression" : {
6068 "type" : "expression",
6069 "value" : {
6070 "op" : "==",
6071 "left" : {
6072 "type" : "field",
6073 "value" : ["standard_metadata", "egress_port"]
6074 },
6075 "right" : {
6076 "type" : "hexstr",
6077 "value" : "0x00ff"
6078 }
6079 }
6080 },
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07006081 "true_next" : "tbl_act_11",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006082 "false_next" : "node_50"
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07006083 },
6084 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006085 "name" : "node_50",
6086 "id" : 18,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07006087 "source_info" : {
6088 "filename" : "include/control/next.p4",
6089 "line" : 306,
6090 "column" : 12,
6091 "source_fragment" : "fabric_metadata.is_multicast == true ..."
6092 },
6093 "expression" : {
6094 "type" : "expression",
6095 "value" : {
6096 "op" : "and",
6097 "left" : {
6098 "type" : "expression",
6099 "value" : {
6100 "op" : "==",
6101 "left" : {
6102 "type" : "expression",
6103 "value" : {
6104 "op" : "d2b",
6105 "left" : null,
6106 "right" : {
6107 "type" : "field",
6108 "value" : ["scalars", "fabric_metadata_t._is_multicast11"]
6109 }
6110 }
6111 },
6112 "right" : {
6113 "type" : "bool",
6114 "value" : true
6115 }
6116 }
6117 },
6118 "right" : {
6119 "type" : "expression",
6120 "value" : {
6121 "op" : "==",
6122 "left" : {
6123 "type" : "field",
6124 "value" : ["standard_metadata", "ingress_port"]
6125 },
6126 "right" : {
6127 "type" : "field",
6128 "value" : ["standard_metadata", "egress_port"]
6129 }
6130 }
6131 }
6132 }
6133 },
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006134 "true_next" : "tbl_act_12",
6135 "false_next" : "node_52"
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07006136 },
6137 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006138 "name" : "node_52",
6139 "id" : 19,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07006140 "source_info" : {
6141 "filename" : "include/control/next.p4",
6142 "line" : 311,
6143 "column" : 12,
6144 "source_fragment" : "fabric_metadata.mpls_label == 0"
6145 },
6146 "expression" : {
6147 "type" : "expression",
6148 "value" : {
6149 "op" : "==",
6150 "left" : {
6151 "type" : "field",
6152 "value" : ["scalars", "fabric_metadata_t._mpls_label5"]
6153 },
6154 "right" : {
6155 "type" : "hexstr",
6156 "value" : "0x000000"
6157 }
6158 }
6159 },
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006160 "true_next" : "node_53",
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07006161 "false_next" : "tbl_egress_next_set_mpls"
6162 },
6163 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006164 "name" : "node_53",
6165 "id" : 20,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07006166 "source_info" : {
6167 "filename" : "include/control/next.p4",
6168 "line" : 312,
6169 "column" : 16,
6170 "source_fragment" : "hdr.mpls.isValid()"
6171 },
6172 "expression" : {
6173 "type" : "expression",
6174 "value" : {
6175 "op" : "d2b",
6176 "left" : null,
6177 "right" : {
6178 "type" : "field",
6179 "value" : ["mpls", "$valid$"]
6180 }
6181 }
6182 },
6183 "true_next" : "tbl_egress_next_pop_mpls_if_present",
6184 "false_next" : "FabricEgress.egress_next.egress_vlan"
6185 },
6186 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006187 "name" : "node_59",
6188 "id" : 21,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07006189 "source_info" : {
6190 "filename" : "include/control/next.p4",
6191 "line" : 317,
6192 "column" : 12,
6193 "source_fragment" : "!egress_vlan.apply().hit"
6194 },
6195 "expression" : {
6196 "type" : "expression",
6197 "value" : {
6198 "op" : "not",
6199 "left" : null,
6200 "right" : {
6201 "type" : "expression",
6202 "value" : {
6203 "op" : "d2b",
6204 "left" : null,
6205 "right" : {
6206 "type" : "field",
6207 "value" : ["scalars", "egress_next_tmp"]
6208 }
6209 }
6210 }
6211 }
6212 },
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006213 "true_next" : "node_60",
6214 "false_next" : "node_62"
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07006215 },
6216 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006217 "name" : "node_60",
6218 "id" : 22,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07006219 "source_info" : {
6220 "filename" : "include/control/next.p4",
6221 "line" : 319,
6222 "column" : 16,
6223 "source_fragment" : "fabric_metadata.vlan_id != DEFAULT_VLAN_ID"
6224 },
6225 "expression" : {
6226 "type" : "expression",
6227 "value" : {
6228 "op" : "!=",
6229 "left" : {
6230 "type" : "field",
6231 "value" : ["scalars", "fabric_metadata_t._vlan_id2"]
6232 },
6233 "right" : {
6234 "type" : "hexstr",
6235 "value" : "0x0ffe"
6236 }
6237 }
6238 },
6239 "true_next" : "tbl_egress_next_push_vlan",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006240 "false_next" : "node_62"
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07006241 },
6242 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006243 "name" : "node_62",
6244 "id" : 23,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07006245 "source_info" : {
6246 "filename" : "include/control/next.p4",
6247 "line" : 325,
6248 "column" : 12,
6249 "source_fragment" : "hdr.mpls.isValid()"
6250 },
6251 "expression" : {
6252 "type" : "expression",
6253 "value" : {
6254 "op" : "d2b",
6255 "left" : null,
6256 "right" : {
6257 "type" : "field",
6258 "value" : ["mpls", "$valid$"]
6259 }
6260 }
6261 },
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006262 "true_next" : "tbl_act_15",
6263 "false_next" : "node_66"
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07006264 },
6265 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006266 "name" : "node_64",
6267 "id" : 24,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07006268 "source_info" : {
6269 "filename" : "include/control/next.p4",
6270 "line" : 327,
6271 "column" : 16,
6272 "source_fragment" : "hdr.mpls.ttl == 0"
6273 },
6274 "expression" : {
6275 "type" : "expression",
6276 "value" : {
6277 "op" : "==",
6278 "left" : {
6279 "type" : "field",
6280 "value" : ["mpls", "ttl"]
6281 },
6282 "right" : {
6283 "type" : "hexstr",
6284 "value" : "0x00"
6285 }
6286 }
6287 },
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006288 "true_next" : "tbl_act_16",
6289 "false_next" : "node_70"
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07006290 },
6291 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006292 "name" : "node_66",
6293 "id" : 25,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07006294 "source_info" : {
6295 "filename" : "include/control/next.p4",
6296 "line" : 329,
6297 "column" : 15,
6298 "source_fragment" : "hdr.ipv4.isValid()"
6299 },
6300 "expression" : {
6301 "type" : "expression",
6302 "value" : {
6303 "op" : "d2b",
6304 "left" : null,
6305 "right" : {
6306 "type" : "field",
6307 "value" : ["ipv4", "$valid$"]
6308 }
6309 }
6310 },
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006311 "true_next" : "tbl_act_17",
6312 "false_next" : "node_70"
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07006313 },
6314 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006315 "name" : "node_68",
6316 "id" : 26,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07006317 "source_info" : {
6318 "filename" : "include/control/next.p4",
6319 "line" : 331,
6320 "column" : 20,
6321 "source_fragment" : "hdr.ipv4.ttl == 0"
6322 },
6323 "expression" : {
6324 "type" : "expression",
6325 "value" : {
6326 "op" : "==",
6327 "left" : {
6328 "type" : "field",
6329 "value" : ["ipv4", "ttl"]
6330 },
6331 "right" : {
6332 "type" : "hexstr",
6333 "value" : "0x00"
6334 }
6335 }
6336 },
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006337 "true_next" : "tbl_act_18",
6338 "false_next" : "node_70"
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07006339 },
6340 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006341 "name" : "node_70",
6342 "id" : 27,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07006343 "source_info" : {
6344 "filename" : "include/bng.p4",
Carmelo Cascone7d54994b2019-06-25 18:20:02 -07006345 "line" : 385,
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07006346 "column" : 12,
6347 "source_fragment" : "fmeta.bng.type == BNG_TYPE_DOWNSTREAM"
6348 },
6349 "expression" : {
6350 "type" : "expression",
6351 "value" : {
6352 "op" : "==",
6353 "left" : {
6354 "type" : "field",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07006355 "value" : ["scalars", "fabric_metadata_t._bng_type16"]
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07006356 },
6357 "right" : {
6358 "type" : "hexstr",
6359 "value" : "0x02"
6360 }
6361 }
6362 },
6363 "false_next" : null,
6364 "true_next" : "FabricEgress.bng_egress.downstream.t_session_encap"
6365 }
6366 ]
6367 }
6368 ],
6369 "checksums" : [
6370 {
6371 "name" : "cksum",
6372 "id" : 0,
6373 "source_info" : {
6374 "filename" : "include/checksum.p4",
6375 "line" : 28,
6376 "column" : 8,
6377 "source_fragment" : "update_checksum(hdr.ipv4.isValid(), ..."
6378 },
6379 "target" : ["ipv4", "hdr_checksum"],
6380 "type" : "generic",
6381 "calculation" : "calc",
6382 "verify" : false,
6383 "update" : true,
6384 "if_cond" : {
6385 "type" : "expression",
6386 "value" : {
6387 "op" : "d2b",
6388 "left" : null,
6389 "right" : {
6390 "type" : "field",
6391 "value" : ["ipv4", "$valid$"]
6392 }
6393 }
6394 }
6395 },
6396 {
6397 "name" : "cksum_0",
6398 "id" : 1,
6399 "source_info" : {
6400 "filename" : "include/checksum.p4",
6401 "line" : 57,
6402 "column" : 8,
6403 "source_fragment" : "verify_checksum(hdr.ipv4.isValid(), ..."
6404 },
6405 "target" : ["ipv4", "hdr_checksum"],
6406 "type" : "generic",
6407 "calculation" : "calc_0",
6408 "verify" : true,
6409 "update" : false,
6410 "if_cond" : {
6411 "type" : "expression",
6412 "value" : {
6413 "op" : "d2b",
6414 "left" : null,
6415 "right" : {
6416 "type" : "field",
6417 "value" : ["ipv4", "$valid$"]
6418 }
6419 }
6420 }
6421 }
6422 ],
6423 "force_arith" : [],
6424 "extern_instances" : [],
6425 "field_aliases" : [
6426 [
6427 "queueing_metadata.enq_timestamp",
6428 ["standard_metadata", "enq_timestamp"]
6429 ],
6430 [
6431 "queueing_metadata.enq_qdepth",
6432 ["standard_metadata", "enq_qdepth"]
6433 ],
6434 [
6435 "queueing_metadata.deq_timedelta",
6436 ["standard_metadata", "deq_timedelta"]
6437 ],
6438 [
6439 "queueing_metadata.deq_qdepth",
6440 ["standard_metadata", "deq_qdepth"]
6441 ],
6442 [
6443 "intrinsic_metadata.ingress_global_timestamp",
6444 ["standard_metadata", "ingress_global_timestamp"]
6445 ],
6446 [
6447 "intrinsic_metadata.egress_global_timestamp",
6448 ["standard_metadata", "egress_global_timestamp"]
6449 ],
6450 [
6451 "intrinsic_metadata.lf_field_list",
6452 ["standard_metadata", "lf_field_list"]
6453 ],
6454 [
6455 "intrinsic_metadata.mcast_grp",
6456 ["standard_metadata", "mcast_grp"]
6457 ],
6458 [
6459 "intrinsic_metadata.resubmit_flag",
6460 ["standard_metadata", "resubmit_flag"]
6461 ],
6462 [
6463 "intrinsic_metadata.egress_rid",
6464 ["standard_metadata", "egress_rid"]
6465 ],
6466 [
6467 "intrinsic_metadata.recirculate_flag",
6468 ["standard_metadata", "recirculate_flag"]
6469 ],
6470 [
6471 "intrinsic_metadata.priority",
6472 ["standard_metadata", "priority"]
6473 ]
6474 ],
6475 "program" : "fabric.p4",
6476 "__meta__" : {
6477 "version" : [2, 18],
6478 "compiler" : "https://github.com/p4lang/p4c"
6479 }
6480}