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