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