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