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