blob: 7213a202bd6cc315b7f5f0a488537a9437d0a30f [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",
Carmelo Cascone14cde402018-01-25 01:57:18 -08001098 "line" : 56,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001099 "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",
Carmelo Cascone14cde402018-01-25 01:57:18 -08001155 "line" : 242,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001156 "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",
Carmelo Cascone14cde402018-01-25 01:57:18 -08001269 "line" : 272,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001270 "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 ]
Carmelo Cascone14cde402018-01-25 01:57:18 -08001320 },
1321 {
1322 "name" : "calc_3",
1323 "id" : 4,
1324 "source_info" : {
1325 "filename" : "include/spgw.p4",
1326 "line" : 291,
1327 "column" : 8,
1328 "source_fragment" : "update_checksum_with_payload(gtpu_udp.isValid(), ..."
1329 },
1330 "algo" : "csum16",
1331 "input" : [
1332 {
1333 "type" : "field",
1334 "value" : ["gtpu_ipv4", "src_addr"]
1335 },
1336 {
1337 "type" : "field",
1338 "value" : ["gtpu_ipv4", "dst_addr"]
1339 },
1340 {
1341 "type" : "hexstr",
1342 "value" : "0x00",
1343 "bitwidth" : 8
1344 },
1345 {
1346 "type" : "field",
1347 "value" : ["gtpu_ipv4", "protocol"]
1348 },
1349 {
1350 "type" : "field",
1351 "value" : ["gtpu_udp", "len"]
1352 },
1353 {
1354 "type" : "field",
1355 "value" : ["gtpu_udp", "src_port"]
1356 },
1357 {
1358 "type" : "field",
1359 "value" : ["gtpu_udp", "dst_port"]
1360 },
1361 {
1362 "type" : "field",
1363 "value" : ["gtpu_udp", "len"]
1364 },
1365 {
1366 "type" : "header",
1367 "value" : "gtpu"
1368 },
1369 {
1370 "type" : "header",
1371 "value" : "ipv4"
1372 },
1373 {
1374 "type" : "header",
1375 "value" : "udp"
1376 },
1377 {
1378 "type" : "payload",
1379 "value" : null
1380 }
1381 ]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001382 }
1383 ],
1384 "learn_lists" : [],
1385 "actions" : [
1386 {
1387 "name" : "NoAction",
1388 "id" : 0,
1389 "runtime_data" : [],
1390 "primitives" : []
1391 },
1392 {
1393 "name" : "NoAction",
1394 "id" : 1,
1395 "runtime_data" : [],
1396 "primitives" : []
1397 },
1398 {
1399 "name" : "NoAction",
1400 "id" : 2,
1401 "runtime_data" : [],
1402 "primitives" : []
1403 },
1404 {
1405 "name" : "NoAction",
1406 "id" : 3,
1407 "runtime_data" : [],
1408 "primitives" : []
1409 },
1410 {
1411 "name" : "NoAction",
1412 "id" : 4,
1413 "runtime_data" : [],
1414 "primitives" : []
1415 },
1416 {
1417 "name" : "NoAction",
1418 "id" : 5,
1419 "runtime_data" : [],
1420 "primitives" : []
1421 },
1422 {
1423 "name" : "NoAction",
1424 "id" : 6,
1425 "runtime_data" : [],
1426 "primitives" : []
1427 },
1428 {
1429 "name" : "NoAction",
1430 "id" : 7,
1431 "runtime_data" : [],
1432 "primitives" : []
1433 },
1434 {
1435 "name" : "NoAction",
1436 "id" : 8,
1437 "runtime_data" : [],
1438 "primitives" : []
1439 },
1440 {
1441 "name" : "NoAction",
1442 "id" : 9,
1443 "runtime_data" : [],
1444 "primitives" : []
1445 },
1446 {
1447 "name" : "NoAction",
1448 "id" : 10,
1449 "runtime_data" : [],
1450 "primitives" : []
1451 },
1452 {
1453 "name" : "NoAction",
1454 "id" : 11,
1455 "runtime_data" : [],
1456 "primitives" : []
1457 },
1458 {
1459 "name" : "NoAction",
1460 "id" : 12,
1461 "runtime_data" : [],
1462 "primitives" : []
1463 },
1464 {
1465 "name" : "nop",
1466 "id" : 13,
1467 "runtime_data" : [],
1468 "primitives" : []
1469 },
1470 {
1471 "name" : "nop",
1472 "id" : 14,
1473 "runtime_data" : [],
1474 "primitives" : []
1475 },
1476 {
1477 "name" : "spgw_ingress.gtpu_decap",
1478 "id" : 15,
1479 "runtime_data" : [],
1480 "primitives" : [
1481 {
1482 "op" : "remove_header",
1483 "parameters" : [
1484 {
1485 "type" : "header",
1486 "value" : "gtpu_ipv4"
1487 }
1488 ],
1489 "source_info" : {
1490 "filename" : "include/spgw.p4",
1491 "line" : 32,
1492 "column" : 8,
1493 "source_fragment" : "gtpu_ipv4.setInvalid()"
1494 }
1495 },
1496 {
1497 "op" : "remove_header",
1498 "parameters" : [
1499 {
1500 "type" : "header",
1501 "value" : "gtpu_udp"
1502 }
1503 ],
1504 "source_info" : {
1505 "filename" : "include/spgw.p4",
1506 "line" : 33,
1507 "column" : 8,
1508 "source_fragment" : "gtpu_udp.setInvalid()"
1509 }
1510 },
1511 {
1512 "op" : "remove_header",
1513 "parameters" : [
1514 {
1515 "type" : "header",
1516 "value" : "gtpu"
1517 }
1518 ],
1519 "source_info" : {
1520 "filename" : "include/spgw.p4",
1521 "line" : 34,
1522 "column" : 8,
1523 "source_fragment" : "gtpu.setInvalid()"
1524 }
1525 }
1526 ]
1527 },
1528 {
1529 "name" : "spgw_ingress.set_sdf_rule_id",
1530 "id" : 16,
1531 "runtime_data" : [
1532 {
1533 "name" : "id",
1534 "bitwidth" : 32
1535 }
1536 ],
1537 "primitives" : [
1538 {
1539 "op" : "assign",
1540 "parameters" : [
1541 {
1542 "type" : "field",
1543 "value" : ["spgw", "sdf_rule_id"]
1544 },
1545 {
1546 "type" : "runtime_data",
1547 "value" : 0
1548 }
1549 ],
1550 "source_info" : {
1551 "filename" : "include/spgw.p4",
1552 "line" : 38,
1553 "column" : 8,
1554 "source_fragment" : "spgw_meta.sdf_rule_id = id"
1555 }
1556 }
1557 ]
1558 },
1559 {
1560 "name" : "spgw_ingress.set_pcc_rule_id",
1561 "id" : 17,
1562 "runtime_data" : [
1563 {
1564 "name" : "id",
1565 "bitwidth" : 32
1566 }
1567 ],
1568 "primitives" : [
1569 {
1570 "op" : "assign",
1571 "parameters" : [
1572 {
1573 "type" : "field",
1574 "value" : ["spgw", "pcc_rule_id"]
1575 },
1576 {
1577 "type" : "runtime_data",
1578 "value" : 0
1579 }
1580 ],
1581 "source_info" : {
1582 "filename" : "include/spgw.p4",
1583 "line" : 42,
1584 "column" : 8,
1585 "source_fragment" : "spgw_meta.pcc_rule_id = id"
1586 }
1587 }
1588 ]
1589 },
1590 {
1591 "name" : "spgw_ingress.set_pcc_info",
1592 "id" : 18,
1593 "runtime_data" : [
1594 {
1595 "name" : "gate_status",
1596 "bitwidth" : 1
1597 }
1598 ],
1599 "primitives" : [
1600 {
1601 "op" : "assign",
1602 "parameters" : [
1603 {
1604 "type" : "field",
1605 "value" : ["spgw", "pcc_gate_status"]
1606 },
1607 {
1608 "type" : "runtime_data",
1609 "value" : 0
1610 }
1611 ],
1612 "source_info" : {
1613 "filename" : "include/spgw.p4",
1614 "line" : 46,
1615 "column" : 8,
1616 "source_fragment" : "spgw_meta.pcc_gate_status = gate_status"
1617 }
1618 }
1619 ]
1620 },
1621 {
1622 "name" : "spgw_ingress.set_dl_sess_info",
1623 "id" : 19,
1624 "runtime_data" : [
1625 {
1626 "name" : "dl_sess_teid",
1627 "bitwidth" : 32
1628 },
1629 {
1630 "name" : "dl_sess_enb_addr",
1631 "bitwidth" : 32
1632 },
1633 {
1634 "name" : "dl_sess_s1u_addr",
1635 "bitwidth" : 32
1636 }
1637 ],
1638 "primitives" : [
1639 {
1640 "op" : "assign",
1641 "parameters" : [
1642 {
1643 "type" : "field",
1644 "value" : ["spgw", "dl_sess_teid"]
1645 },
1646 {
1647 "type" : "runtime_data",
1648 "value" : 0
1649 }
1650 ],
1651 "source_info" : {
1652 "filename" : "include/spgw.p4",
1653 "line" : 52,
1654 "column" : 8,
1655 "source_fragment" : "spgw_meta.dl_sess_teid = dl_sess_teid"
1656 }
1657 },
1658 {
1659 "op" : "assign",
1660 "parameters" : [
1661 {
1662 "type" : "field",
1663 "value" : ["spgw", "dl_sess_enb_addr"]
1664 },
1665 {
1666 "type" : "runtime_data",
1667 "value" : 1
1668 }
1669 ],
1670 "source_info" : {
1671 "filename" : "include/spgw.p4",
1672 "line" : 53,
1673 "column" : 8,
1674 "source_fragment" : "spgw_meta.dl_sess_enb_addr = dl_sess_enb_addr"
1675 }
1676 },
1677 {
1678 "op" : "assign",
1679 "parameters" : [
1680 {
1681 "type" : "field",
1682 "value" : ["spgw", "dl_sess_s1u_addr"]
1683 },
1684 {
1685 "type" : "runtime_data",
1686 "value" : 2
1687 }
1688 ],
1689 "source_info" : {
1690 "filename" : "include/spgw.p4",
1691 "line" : 54,
1692 "column" : 8,
1693 "source_fragment" : "spgw_meta.dl_sess_s1u_addr = dl_sess_s1u_addr"
1694 }
1695 }
1696 ]
1697 },
1698 {
1699 "name" : "spgw_ingress.update_ue_cdr",
1700 "id" : 20,
1701 "runtime_data" : [],
1702 "primitives" : []
1703 },
1704 {
1705 "name" : "filtering.drop",
1706 "id" : 21,
1707 "runtime_data" : [],
1708 "primitives" : [
1709 {
1710 "op" : "drop",
1711 "parameters" : [],
1712 "source_info" : {
1713 "filename" : "include/control/filtering.p4",
1714 "line" : 31,
1715 "column" : 8,
1716 "source_fragment" : "mark_to_drop()"
1717 }
1718 }
1719 ]
1720 },
1721 {
1722 "name" : "filtering.set_vlan",
1723 "id" : 22,
1724 "runtime_data" : [
1725 {
1726 "name" : "new_vlan_id",
1727 "bitwidth" : 12
1728 }
1729 ],
1730 "primitives" : [
1731 {
1732 "op" : "assign",
1733 "parameters" : [
1734 {
1735 "type" : "field",
1736 "value" : ["vlan_tag", "vlan_id"]
1737 },
1738 {
1739 "type" : "runtime_data",
1740 "value" : 0
1741 }
1742 ],
1743 "source_info" : {
1744 "filename" : "include/control/filtering.p4",
1745 "line" : 35,
1746 "column" : 8,
1747 "source_fragment" : "hdr.vlan_tag.vlan_id = new_vlan_id"
1748 }
1749 }
1750 ]
1751 },
1752 {
1753 "name" : "filtering.push_internal_vlan",
1754 "id" : 23,
1755 "runtime_data" : [
1756 {
1757 "name" : "new_vlan_id",
1758 "bitwidth" : 12
1759 }
1760 ],
1761 "primitives" : [
1762 {
1763 "op" : "add_header",
1764 "parameters" : [
1765 {
1766 "type" : "header",
1767 "value" : "vlan_tag"
1768 }
1769 ],
1770 "source_info" : {
1771 "filename" : "include/control/filtering.p4",
1772 "line" : 41,
1773 "column" : 8,
1774 "source_fragment" : "hdr.vlan_tag.setValid()"
1775 }
1776 },
1777 {
1778 "op" : "assign",
1779 "parameters" : [
1780 {
1781 "type" : "field",
1782 "value" : ["vlan_tag", "cfi"]
1783 },
1784 {
1785 "type" : "hexstr",
1786 "value" : "0x00"
1787 }
1788 ],
1789 "source_info" : {
1790 "filename" : "include/control/filtering.p4",
1791 "line" : 42,
1792 "column" : 8,
1793 "source_fragment" : "hdr.vlan_tag.cfi = 0"
1794 }
1795 },
1796 {
1797 "op" : "assign",
1798 "parameters" : [
1799 {
1800 "type" : "field",
1801 "value" : ["vlan_tag", "pri"]
1802 },
1803 {
1804 "type" : "hexstr",
1805 "value" : "0x00"
1806 }
1807 ],
1808 "source_info" : {
1809 "filename" : "include/control/filtering.p4",
1810 "line" : 43,
1811 "column" : 8,
1812 "source_fragment" : "hdr.vlan_tag.pri = 0"
1813 }
1814 },
1815 {
1816 "op" : "assign",
1817 "parameters" : [
1818 {
1819 "type" : "field",
1820 "value" : ["vlan_tag", "ether_type"]
1821 },
1822 {
1823 "type" : "field",
1824 "value" : ["ethernet", "ether_type"]
1825 }
1826 ],
1827 "source_info" : {
1828 "filename" : "include/control/filtering.p4",
1829 "line" : 44,
1830 "column" : 8,
1831 "source_fragment" : "hdr.vlan_tag.ether_type = hdr.ethernet.ether_type"
1832 }
1833 },
1834 {
1835 "op" : "assign",
1836 "parameters" : [
1837 {
1838 "type" : "field",
1839 "value" : ["ethernet", "ether_type"]
1840 },
1841 {
1842 "type" : "hexstr",
1843 "value" : "0x8100"
1844 }
1845 ],
1846 "source_info" : {
1847 "filename" : "include/control/../define.p4",
1848 "line" : 32,
1849 "column" : 31,
1850 "source_fragment" : "0x8100; ..."
1851 }
1852 },
1853 {
1854 "op" : "assign",
1855 "parameters" : [
1856 {
1857 "type" : "field",
1858 "value" : ["vlan_tag", "vlan_id"]
1859 },
1860 {
1861 "type" : "runtime_data",
1862 "value" : 0
1863 }
1864 ],
1865 "source_info" : {
1866 "filename" : "include/control/filtering.p4",
1867 "line" : 35,
1868 "column" : 8,
1869 "source_fragment" : "hdr.vlan_tag.vlan_id = new_vlan_id; ..."
1870 }
1871 },
1872 {
1873 "op" : "assign",
1874 "parameters" : [
1875 {
1876 "type" : "field",
1877 "value" : ["scalars", "fabric_metadata_t.pop_vlan_at_egress"]
1878 },
1879 {
1880 "type" : "expression",
1881 "value" : {
1882 "type" : "expression",
1883 "value" : {
1884 "op" : "b2d",
1885 "left" : null,
1886 "right" : {
1887 "type" : "bool",
1888 "value" : true
1889 }
1890 }
1891 }
1892 }
1893 ],
1894 "source_info" : {
1895 "filename" : "include/control/filtering.p4",
1896 "line" : 49,
1897 "column" : 8,
1898 "source_fragment" : "fabric_metadata.pop_vlan_at_egress = true"
1899 }
1900 }
1901 ]
1902 },
1903 {
1904 "name" : "filtering.set_forwarding_type",
1905 "id" : 24,
1906 "runtime_data" : [
1907 {
1908 "name" : "fwd_type",
1909 "bitwidth" : 3
1910 }
1911 ],
1912 "primitives" : [
1913 {
1914 "op" : "assign",
1915 "parameters" : [
1916 {
1917 "type" : "field",
1918 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
1919 },
1920 {
1921 "type" : "runtime_data",
1922 "value" : 0
1923 }
1924 ],
1925 "source_info" : {
1926 "filename" : "include/control/filtering.p4",
1927 "line" : 53,
1928 "column" : 8,
1929 "source_fragment" : "fabric_metadata.fwd_type = fwd_type"
1930 }
1931 }
1932 ]
1933 },
1934 {
1935 "name" : "forwarding.drop",
1936 "id" : 25,
1937 "runtime_data" : [],
1938 "primitives" : [
1939 {
1940 "op" : "drop",
1941 "parameters" : [],
1942 "source_info" : {
1943 "filename" : "include/control/forwarding.p4",
1944 "line" : 39,
1945 "column" : 8,
1946 "source_fragment" : "mark_to_drop()"
1947 }
1948 }
1949 ]
1950 },
1951 {
1952 "name" : "forwarding.set_next_id",
1953 "id" : 26,
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" : 27,
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" : 28,
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" : 29,
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.set_next_id",
2077 "id" : 30,
2078 "runtime_data" : [
2079 {
2080 "name" : "next_id",
2081 "bitwidth" : 32
2082 }
2083 ],
2084 "primitives" : [
2085 {
2086 "op" : "assign",
2087 "parameters" : [
2088 {
2089 "type" : "field",
2090 "value" : ["scalars", "fabric_metadata_t.next_id"]
2091 },
2092 {
2093 "type" : "runtime_data",
2094 "value" : 0
2095 }
2096 ],
2097 "source_info" : {
2098 "filename" : "include/control/forwarding.p4",
2099 "line" : 43,
2100 "column" : 8,
2101 "source_fragment" : "fabric_metadata.next_id = next_id"
2102 }
2103 }
2104 ]
2105 },
2106 {
2107 "name" : "forwarding.set_next_id",
2108 "id" : 31,
2109 "runtime_data" : [
2110 {
2111 "name" : "next_id",
2112 "bitwidth" : 32
2113 }
2114 ],
2115 "primitives" : [
2116 {
2117 "op" : "assign",
2118 "parameters" : [
2119 {
2120 "type" : "field",
2121 "value" : ["scalars", "fabric_metadata_t.next_id"]
2122 },
2123 {
2124 "type" : "runtime_data",
2125 "value" : 0
2126 }
2127 ],
2128 "source_info" : {
2129 "filename" : "include/control/forwarding.p4",
2130 "line" : 43,
2131 "column" : 8,
2132 "source_fragment" : "fabric_metadata.next_id = next_id"
2133 }
2134 }
2135 ]
2136 },
2137 {
2138 "name" : "forwarding.pop_mpls_and_next",
2139 "id" : 32,
2140 "runtime_data" : [
2141 {
2142 "name" : "next_id",
2143 "bitwidth" : 32
2144 }
2145 ],
2146 "primitives" : [
2147 {
2148 "op" : "remove_header",
2149 "parameters" : [
2150 {
2151 "type" : "header",
2152 "value" : "mpls"
2153 }
2154 ],
2155 "source_info" : {
2156 "filename" : "include/control/forwarding.p4",
2157 "line" : 47,
2158 "column" : 8,
2159 "source_fragment" : "hdr.mpls.setInvalid()"
2160 }
2161 },
2162 {
2163 "op" : "assign",
2164 "parameters" : [
2165 {
2166 "type" : "field",
2167 "value" : ["scalars", "fabric_metadata_t.next_id"]
2168 },
2169 {
2170 "type" : "runtime_data",
2171 "value" : 0
2172 }
2173 ],
2174 "source_info" : {
2175 "filename" : "include/control/forwarding.p4",
2176 "line" : 48,
2177 "column" : 8,
2178 "source_fragment" : "fabric_metadata.next_id = next_id"
2179 }
2180 }
2181 ]
2182 },
2183 {
2184 "name" : "forwarding.duplicate_to_controller",
2185 "id" : 33,
2186 "runtime_data" : [],
2187 "primitives" : [
2188 {
2189 "op" : "assign",
2190 "parameters" : [
2191 {
2192 "type" : "field",
2193 "value" : ["standard_metadata", "egress_spec"]
2194 },
2195 {
2196 "type" : "hexstr",
2197 "value" : "0x00ff"
2198 }
2199 ],
2200 "source_info" : {
2201 "filename" : "include/control/../define.p4",
2202 "line" : 50,
2203 "column" : 28,
2204 "source_fragment" : "255; ..."
2205 }
2206 }
2207 ]
2208 },
2209 {
2210 "name" : "next.output",
2211 "id" : 34,
2212 "runtime_data" : [
2213 {
2214 "name" : "port_num",
2215 "bitwidth" : 9
2216 }
2217 ],
2218 "primitives" : [
2219 {
2220 "op" : "assign",
2221 "parameters" : [
2222 {
2223 "type" : "field",
2224 "value" : ["standard_metadata", "egress_spec"]
2225 },
2226 {
2227 "type" : "runtime_data",
2228 "value" : 0
2229 }
2230 ],
2231 "source_info" : {
2232 "filename" : "include/control/next.p4",
2233 "line" : 33,
2234 "column" : 8,
2235 "source_fragment" : "standard_metadata.egress_spec = port_num"
2236 }
2237 }
2238 ]
2239 },
2240 {
2241 "name" : "next.set_vlan_output",
2242 "id" : 35,
2243 "runtime_data" : [
2244 {
2245 "name" : "new_vlan_id",
2246 "bitwidth" : 12
2247 },
2248 {
2249 "name" : "port_num",
2250 "bitwidth" : 9
2251 }
2252 ],
2253 "primitives" : [
2254 {
2255 "op" : "assign",
2256 "parameters" : [
2257 {
2258 "type" : "field",
2259 "value" : ["vlan_tag", "vlan_id"]
2260 },
2261 {
2262 "type" : "runtime_data",
2263 "value" : 0
2264 }
2265 ],
2266 "source_info" : {
2267 "filename" : "include/control/next.p4",
2268 "line" : 37,
2269 "column" : 8,
2270 "source_fragment" : "hdr.vlan_tag.vlan_id = new_vlan_id"
2271 }
2272 },
2273 {
2274 "op" : "assign",
2275 "parameters" : [
2276 {
2277 "type" : "field",
2278 "value" : ["scalars", "fabric_metadata_t.pop_vlan_at_egress"]
2279 },
2280 {
2281 "type" : "expression",
2282 "value" : {
2283 "type" : "expression",
2284 "value" : {
2285 "op" : "b2d",
2286 "left" : null,
2287 "right" : {
2288 "type" : "bool",
2289 "value" : false
2290 }
2291 }
2292 }
2293 }
2294 ],
2295 "source_info" : {
2296 "filename" : "include/control/next.p4",
2297 "line" : 40,
2298 "column" : 8,
2299 "source_fragment" : "fabric_metadata.pop_vlan_at_egress = false"
2300 }
2301 },
2302 {
2303 "op" : "assign",
2304 "parameters" : [
2305 {
2306 "type" : "field",
2307 "value" : ["standard_metadata", "egress_spec"]
2308 },
2309 {
2310 "type" : "runtime_data",
2311 "value" : 1
2312 }
2313 ],
2314 "source_info" : {
2315 "filename" : "include/control/next.p4",
2316 "line" : 33,
2317 "column" : 8,
2318 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2319 }
2320 }
2321 ]
2322 },
2323 {
2324 "name" : "next.l3_routing",
2325 "id" : 36,
2326 "runtime_data" : [
2327 {
2328 "name" : "port_num",
2329 "bitwidth" : 9
2330 },
2331 {
2332 "name" : "smac",
2333 "bitwidth" : 48
2334 },
2335 {
2336 "name" : "dmac",
2337 "bitwidth" : 48
2338 }
2339 ],
2340 "primitives" : [
2341 {
2342 "op" : "assign",
2343 "parameters" : [
2344 {
2345 "type" : "field",
2346 "value" : ["ethernet", "src_addr"]
2347 },
2348 {
2349 "type" : "runtime_data",
2350 "value" : 1
2351 }
2352 ],
2353 "source_info" : {
2354 "filename" : "include/control/next.p4",
2355 "line" : 45,
2356 "column" : 8,
2357 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2358 }
2359 },
2360 {
2361 "op" : "assign",
2362 "parameters" : [
2363 {
2364 "type" : "field",
2365 "value" : ["ethernet", "dst_addr"]
2366 },
2367 {
2368 "type" : "runtime_data",
2369 "value" : 2
2370 }
2371 ],
2372 "source_info" : {
2373 "filename" : "include/control/next.p4",
2374 "line" : 49,
2375 "column" : 8,
2376 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2377 }
2378 },
2379 {
2380 "op" : "assign",
2381 "parameters" : [
2382 {
2383 "type" : "field",
2384 "value" : ["standard_metadata", "egress_spec"]
2385 },
2386 {
2387 "type" : "runtime_data",
2388 "value" : 0
2389 }
2390 ],
2391 "source_info" : {
2392 "filename" : "include/control/next.p4",
2393 "line" : 33,
2394 "column" : 8,
2395 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2396 }
2397 }
2398 ]
2399 },
2400 {
2401 "name" : "next.l3_routing",
2402 "id" : 37,
2403 "runtime_data" : [
2404 {
2405 "name" : "port_num",
2406 "bitwidth" : 9
2407 },
2408 {
2409 "name" : "smac",
2410 "bitwidth" : 48
2411 },
2412 {
2413 "name" : "dmac",
2414 "bitwidth" : 48
2415 }
2416 ],
2417 "primitives" : [
2418 {
2419 "op" : "assign",
2420 "parameters" : [
2421 {
2422 "type" : "field",
2423 "value" : ["ethernet", "src_addr"]
2424 },
2425 {
2426 "type" : "runtime_data",
2427 "value" : 1
2428 }
2429 ],
2430 "source_info" : {
2431 "filename" : "include/control/next.p4",
2432 "line" : 45,
2433 "column" : 8,
2434 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2435 }
2436 },
2437 {
2438 "op" : "assign",
2439 "parameters" : [
2440 {
2441 "type" : "field",
2442 "value" : ["ethernet", "dst_addr"]
2443 },
2444 {
2445 "type" : "runtime_data",
2446 "value" : 2
2447 }
2448 ],
2449 "source_info" : {
2450 "filename" : "include/control/next.p4",
2451 "line" : 49,
2452 "column" : 8,
2453 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2454 }
2455 },
2456 {
2457 "op" : "assign",
2458 "parameters" : [
2459 {
2460 "type" : "field",
2461 "value" : ["standard_metadata", "egress_spec"]
2462 },
2463 {
2464 "type" : "runtime_data",
2465 "value" : 0
2466 }
2467 ],
2468 "source_info" : {
2469 "filename" : "include/control/next.p4",
2470 "line" : 33,
2471 "column" : 8,
2472 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2473 }
2474 }
2475 ]
2476 },
2477 {
2478 "name" : "next.set_mcast_group",
2479 "id" : 38,
2480 "runtime_data" : [
2481 {
2482 "name" : "gid",
2483 "bitwidth" : 16
2484 },
2485 {
2486 "name" : "smac",
2487 "bitwidth" : 48
2488 }
2489 ],
2490 "primitives" : [
2491 {
2492 "op" : "assign",
2493 "parameters" : [
2494 {
2495 "type" : "field",
2496 "value" : ["standard_metadata", "mcast_grp"]
2497 },
2498 {
2499 "type" : "runtime_data",
2500 "value" : 0
2501 }
2502 ],
2503 "source_info" : {
2504 "filename" : "include/control/next.p4",
2505 "line" : 59,
2506 "column" : 8,
2507 "source_fragment" : "standard_metadata.mcast_grp = gid"
2508 }
2509 },
2510 {
2511 "op" : "assign",
2512 "parameters" : [
2513 {
2514 "type" : "field",
2515 "value" : ["ethernet", "src_addr"]
2516 },
2517 {
2518 "type" : "runtime_data",
2519 "value" : 1
2520 }
2521 ],
2522 "source_info" : {
2523 "filename" : "include/control/next.p4",
2524 "line" : 45,
2525 "column" : 8,
2526 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2527 }
2528 }
2529 ]
2530 },
2531 {
2532 "name" : "next.mpls_routing_v4",
2533 "id" : 39,
2534 "runtime_data" : [
2535 {
2536 "name" : "port_num",
2537 "bitwidth" : 9
2538 },
2539 {
2540 "name" : "smac",
2541 "bitwidth" : 48
2542 },
2543 {
2544 "name" : "dmac",
2545 "bitwidth" : 48
2546 },
2547 {
2548 "name" : "label",
2549 "bitwidth" : 20
2550 }
2551 ],
2552 "primitives" : [
2553 {
2554 "op" : "assign",
2555 "parameters" : [
2556 {
2557 "type" : "field",
2558 "value" : ["ethernet", "src_addr"]
2559 },
2560 {
2561 "type" : "runtime_data",
2562 "value" : 1
2563 }
2564 ],
2565 "source_info" : {
2566 "filename" : "include/control/next.p4",
2567 "line" : 45,
2568 "column" : 8,
2569 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2570 }
2571 },
2572 {
2573 "op" : "assign",
2574 "parameters" : [
2575 {
2576 "type" : "field",
2577 "value" : ["ethernet", "dst_addr"]
2578 },
2579 {
2580 "type" : "runtime_data",
2581 "value" : 2
2582 }
2583 ],
2584 "source_info" : {
2585 "filename" : "include/control/next.p4",
2586 "line" : 49,
2587 "column" : 8,
2588 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2589 }
2590 },
2591 {
2592 "op" : "assign",
2593 "parameters" : [
2594 {
2595 "type" : "field",
2596 "value" : ["standard_metadata", "egress_spec"]
2597 },
2598 {
2599 "type" : "runtime_data",
2600 "value" : 0
2601 }
2602 ],
2603 "source_info" : {
2604 "filename" : "include/control/next.p4",
2605 "line" : 33,
2606 "column" : 8,
2607 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2608 }
2609 },
2610 {
2611 "op" : "add_header",
2612 "parameters" : [
2613 {
2614 "type" : "header",
2615 "value" : "mpls"
2616 }
2617 ],
2618 "source_info" : {
2619 "filename" : "include/control/next.p4",
2620 "line" : 65,
2621 "column" : 8,
2622 "source_fragment" : "hdr.mpls.setValid()"
2623 }
2624 },
2625 {
2626 "op" : "assign",
2627 "parameters" : [
2628 {
2629 "type" : "field",
2630 "value" : ["vlan_tag", "ether_type"]
2631 },
2632 {
2633 "type" : "hexstr",
2634 "value" : "0x8847"
2635 }
2636 ],
2637 "source_info" : {
2638 "filename" : "include/control/../define.p4",
2639 "line" : 33,
2640 "column" : 31,
2641 "source_fragment" : "0x8847; ..."
2642 }
2643 },
2644 {
2645 "op" : "assign",
2646 "parameters" : [
2647 {
2648 "type" : "field",
2649 "value" : ["mpls", "label"]
2650 },
2651 {
2652 "type" : "runtime_data",
2653 "value" : 3
2654 }
2655 ],
2656 "source_info" : {
2657 "filename" : "include/control/next.p4",
2658 "line" : 67,
2659 "column" : 8,
2660 "source_fragment" : "hdr.mpls.label = label; ..."
2661 }
2662 },
2663 {
2664 "op" : "assign",
2665 "parameters" : [
2666 {
2667 "type" : "field",
2668 "value" : ["mpls", "tc"]
2669 },
2670 {
2671 "type" : "hexstr",
2672 "value" : "0x00"
2673 }
2674 ],
2675 "source_info" : {
2676 "filename" : "include/control/next.p4",
2677 "line" : 68,
2678 "column" : 8,
2679 "source_fragment" : "hdr.mpls.tc = tc; ..."
2680 }
2681 },
2682 {
2683 "op" : "assign",
2684 "parameters" : [
2685 {
2686 "type" : "field",
2687 "value" : ["mpls", "bos"]
2688 },
2689 {
2690 "type" : "hexstr",
2691 "value" : "0x01"
2692 }
2693 ],
2694 "source_info" : {
2695 "filename" : "include/control/next.p4",
2696 "line" : 69,
2697 "column" : 8,
2698 "source_fragment" : "hdr.mpls.bos = 1w1"
2699 }
2700 },
2701 {
2702 "op" : "assign",
2703 "parameters" : [
2704 {
2705 "type" : "field",
2706 "value" : ["mpls", "ttl"]
2707 },
2708 {
2709 "type" : "hexstr",
2710 "value" : "0x40"
2711 }
2712 ],
2713 "source_info" : {
2714 "filename" : "include/control/../define.p4",
2715 "line" : 60,
2716 "column" : 32,
2717 "source_fragment" : "64; ..."
2718 }
2719 }
2720 ]
2721 },
2722 {
2723 "name" : "next.mpls_routing_v4",
2724 "id" : 40,
2725 "runtime_data" : [
2726 {
2727 "name" : "port_num",
2728 "bitwidth" : 9
2729 },
2730 {
2731 "name" : "smac",
2732 "bitwidth" : 48
2733 },
2734 {
2735 "name" : "dmac",
2736 "bitwidth" : 48
2737 },
2738 {
2739 "name" : "label",
2740 "bitwidth" : 20
2741 }
2742 ],
2743 "primitives" : [
2744 {
2745 "op" : "assign",
2746 "parameters" : [
2747 {
2748 "type" : "field",
2749 "value" : ["ethernet", "src_addr"]
2750 },
2751 {
2752 "type" : "runtime_data",
2753 "value" : 1
2754 }
2755 ],
2756 "source_info" : {
2757 "filename" : "include/control/next.p4",
2758 "line" : 45,
2759 "column" : 8,
2760 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2761 }
2762 },
2763 {
2764 "op" : "assign",
2765 "parameters" : [
2766 {
2767 "type" : "field",
2768 "value" : ["ethernet", "dst_addr"]
2769 },
2770 {
2771 "type" : "runtime_data",
2772 "value" : 2
2773 }
2774 ],
2775 "source_info" : {
2776 "filename" : "include/control/next.p4",
2777 "line" : 49,
2778 "column" : 8,
2779 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2780 }
2781 },
2782 {
2783 "op" : "assign",
2784 "parameters" : [
2785 {
2786 "type" : "field",
2787 "value" : ["standard_metadata", "egress_spec"]
2788 },
2789 {
2790 "type" : "runtime_data",
2791 "value" : 0
2792 }
2793 ],
2794 "source_info" : {
2795 "filename" : "include/control/next.p4",
2796 "line" : 33,
2797 "column" : 8,
2798 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2799 }
2800 },
2801 {
2802 "op" : "add_header",
2803 "parameters" : [
2804 {
2805 "type" : "header",
2806 "value" : "mpls"
2807 }
2808 ],
2809 "source_info" : {
2810 "filename" : "include/control/next.p4",
2811 "line" : 65,
2812 "column" : 8,
2813 "source_fragment" : "hdr.mpls.setValid()"
2814 }
2815 },
2816 {
2817 "op" : "assign",
2818 "parameters" : [
2819 {
2820 "type" : "field",
2821 "value" : ["vlan_tag", "ether_type"]
2822 },
2823 {
2824 "type" : "hexstr",
2825 "value" : "0x8847"
2826 }
2827 ],
2828 "source_info" : {
2829 "filename" : "include/control/../define.p4",
2830 "line" : 33,
2831 "column" : 31,
2832 "source_fragment" : "0x8847; ..."
2833 }
2834 },
2835 {
2836 "op" : "assign",
2837 "parameters" : [
2838 {
2839 "type" : "field",
2840 "value" : ["mpls", "label"]
2841 },
2842 {
2843 "type" : "runtime_data",
2844 "value" : 3
2845 }
2846 ],
2847 "source_info" : {
2848 "filename" : "include/control/next.p4",
2849 "line" : 67,
2850 "column" : 8,
2851 "source_fragment" : "hdr.mpls.label = label; ..."
2852 }
2853 },
2854 {
2855 "op" : "assign",
2856 "parameters" : [
2857 {
2858 "type" : "field",
2859 "value" : ["mpls", "tc"]
2860 },
2861 {
2862 "type" : "hexstr",
2863 "value" : "0x00"
2864 }
2865 ],
2866 "source_info" : {
2867 "filename" : "include/control/next.p4",
2868 "line" : 68,
2869 "column" : 8,
2870 "source_fragment" : "hdr.mpls.tc = tc; ..."
2871 }
2872 },
2873 {
2874 "op" : "assign",
2875 "parameters" : [
2876 {
2877 "type" : "field",
2878 "value" : ["mpls", "bos"]
2879 },
2880 {
2881 "type" : "hexstr",
2882 "value" : "0x01"
2883 }
2884 ],
2885 "source_info" : {
2886 "filename" : "include/control/next.p4",
2887 "line" : 69,
2888 "column" : 8,
2889 "source_fragment" : "hdr.mpls.bos = 1w1"
2890 }
2891 },
2892 {
2893 "op" : "assign",
2894 "parameters" : [
2895 {
2896 "type" : "field",
2897 "value" : ["mpls", "ttl"]
2898 },
2899 {
2900 "type" : "hexstr",
2901 "value" : "0x40"
2902 }
2903 ],
2904 "source_info" : {
2905 "filename" : "include/control/../define.p4",
2906 "line" : 60,
2907 "column" : 32,
2908 "source_fragment" : "64; ..."
2909 }
2910 }
2911 ]
2912 },
2913 {
2914 "name" : "next.mpls_routing_v6",
2915 "id" : 41,
2916 "runtime_data" : [
2917 {
2918 "name" : "port_num",
2919 "bitwidth" : 9
2920 },
2921 {
2922 "name" : "smac",
2923 "bitwidth" : 48
2924 },
2925 {
2926 "name" : "dmac",
2927 "bitwidth" : 48
2928 },
2929 {
2930 "name" : "label",
2931 "bitwidth" : 20
2932 }
2933 ],
2934 "primitives" : [
2935 {
2936 "op" : "assign",
2937 "parameters" : [
2938 {
2939 "type" : "field",
2940 "value" : ["ethernet", "src_addr"]
2941 },
2942 {
2943 "type" : "runtime_data",
2944 "value" : 1
2945 }
2946 ],
2947 "source_info" : {
2948 "filename" : "include/control/next.p4",
2949 "line" : 45,
2950 "column" : 8,
2951 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2952 }
2953 },
2954 {
2955 "op" : "assign",
2956 "parameters" : [
2957 {
2958 "type" : "field",
2959 "value" : ["ethernet", "dst_addr"]
2960 },
2961 {
2962 "type" : "runtime_data",
2963 "value" : 2
2964 }
2965 ],
2966 "source_info" : {
2967 "filename" : "include/control/next.p4",
2968 "line" : 49,
2969 "column" : 8,
2970 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2971 }
2972 },
2973 {
2974 "op" : "assign",
2975 "parameters" : [
2976 {
2977 "type" : "field",
2978 "value" : ["standard_metadata", "egress_spec"]
2979 },
2980 {
2981 "type" : "runtime_data",
2982 "value" : 0
2983 }
2984 ],
2985 "source_info" : {
2986 "filename" : "include/control/next.p4",
2987 "line" : 33,
2988 "column" : 8,
2989 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2990 }
2991 },
2992 {
2993 "op" : "add_header",
2994 "parameters" : [
2995 {
2996 "type" : "header",
2997 "value" : "mpls"
2998 }
2999 ],
3000 "source_info" : {
3001 "filename" : "include/control/next.p4",
3002 "line" : 65,
3003 "column" : 8,
3004 "source_fragment" : "hdr.mpls.setValid()"
3005 }
3006 },
3007 {
3008 "op" : "assign",
3009 "parameters" : [
3010 {
3011 "type" : "field",
3012 "value" : ["vlan_tag", "ether_type"]
3013 },
3014 {
3015 "type" : "hexstr",
3016 "value" : "0x8847"
3017 }
3018 ],
3019 "source_info" : {
3020 "filename" : "include/control/../define.p4",
3021 "line" : 33,
3022 "column" : 31,
3023 "source_fragment" : "0x8847; ..."
3024 }
3025 },
3026 {
3027 "op" : "assign",
3028 "parameters" : [
3029 {
3030 "type" : "field",
3031 "value" : ["mpls", "label"]
3032 },
3033 {
3034 "type" : "runtime_data",
3035 "value" : 3
3036 }
3037 ],
3038 "source_info" : {
3039 "filename" : "include/control/next.p4",
3040 "line" : 67,
3041 "column" : 8,
3042 "source_fragment" : "hdr.mpls.label = label; ..."
3043 }
3044 },
3045 {
3046 "op" : "assign",
3047 "parameters" : [
3048 {
3049 "type" : "field",
3050 "value" : ["mpls", "tc"]
3051 },
3052 {
3053 "type" : "hexstr",
3054 "value" : "0x00"
3055 }
3056 ],
3057 "source_info" : {
3058 "filename" : "include/control/next.p4",
3059 "line" : 68,
3060 "column" : 8,
3061 "source_fragment" : "hdr.mpls.tc = tc; ..."
3062 }
3063 },
3064 {
3065 "op" : "assign",
3066 "parameters" : [
3067 {
3068 "type" : "field",
3069 "value" : ["mpls", "bos"]
3070 },
3071 {
3072 "type" : "hexstr",
3073 "value" : "0x01"
3074 }
3075 ],
3076 "source_info" : {
3077 "filename" : "include/control/next.p4",
3078 "line" : 69,
3079 "column" : 8,
3080 "source_fragment" : "hdr.mpls.bos = 1w1"
3081 }
3082 },
3083 {
3084 "op" : "assign",
3085 "parameters" : [
3086 {
3087 "type" : "field",
3088 "value" : ["mpls", "ttl"]
3089 },
3090 {
3091 "type" : "hexstr",
3092 "value" : "0x40"
3093 }
3094 ],
3095 "source_info" : {
3096 "filename" : "include/control/../define.p4",
3097 "line" : 60,
3098 "column" : 32,
3099 "source_fragment" : "64; ..."
3100 }
3101 }
3102 ]
3103 },
3104 {
3105 "name" : "act",
3106 "id" : 42,
3107 "runtime_data" : [],
3108 "primitives" : [
3109 {
3110 "op" : "assign",
3111 "parameters" : [
3112 {
3113 "type" : "field",
3114 "value" : ["standard_metadata", "egress_spec"]
3115 },
3116 {
3117 "type" : "field",
3118 "value" : ["packet_out", "egress_port"]
3119 }
3120 ],
3121 "source_info" : {
3122 "filename" : "include/control/packetio.p4",
3123 "line" : 26,
3124 "column" : 12,
3125 "source_fragment" : "standard_metadata.egress_spec = hdr.packet_out.egress_port"
3126 }
3127 },
3128 {
3129 "op" : "remove_header",
3130 "parameters" : [
3131 {
3132 "type" : "header",
3133 "value" : "packet_out"
3134 }
3135 ],
3136 "source_info" : {
3137 "filename" : "include/control/packetio.p4",
3138 "line" : 27,
3139 "column" : 12,
3140 "source_fragment" : "hdr.packet_out.setInvalid()"
3141 }
3142 }
3143 ]
3144 },
3145 {
3146 "name" : "act_0",
3147 "id" : 43,
3148 "runtime_data" : [],
3149 "primitives" : [
3150 {
3151 "op" : "assign",
3152 "parameters" : [
3153 {
3154 "type" : "field",
3155 "value" : ["scalars", "spgw_ingress_tmp_2"]
3156 },
3157 {
3158 "type" : "expression",
3159 "value" : {
3160 "type" : "expression",
3161 "value" : {
3162 "op" : "b2d",
3163 "left" : null,
3164 "right" : {
3165 "type" : "bool",
3166 "value" : true
3167 }
3168 }
3169 }
3170 }
3171 ]
3172 }
3173 ]
3174 },
3175 {
3176 "name" : "act_1",
3177 "id" : 44,
3178 "runtime_data" : [],
3179 "primitives" : [
3180 {
3181 "op" : "assign",
3182 "parameters" : [
3183 {
3184 "type" : "field",
3185 "value" : ["scalars", "spgw_ingress_tmp_2"]
3186 },
3187 {
3188 "type" : "expression",
3189 "value" : {
3190 "type" : "expression",
3191 "value" : {
3192 "op" : "b2d",
3193 "left" : null,
3194 "right" : {
3195 "type" : "bool",
3196 "value" : false
3197 }
3198 }
3199 }
3200 }
3201 ]
3202 }
3203 ]
3204 },
3205 {
3206 "name" : "act_2",
3207 "id" : 45,
3208 "runtime_data" : [],
3209 "primitives" : [
3210 {
3211 "op" : "assign",
3212 "parameters" : [
3213 {
3214 "type" : "field",
3215 "value" : ["spgw", "direction"]
3216 },
3217 {
3218 "type" : "hexstr",
3219 "value" : "0x00"
3220 }
3221 ],
3222 "source_info" : {
3223 "filename" : "include/control/../define.p4",
Carmelo Cascone14cde402018-01-25 01:57:18 -08003224 "line" : 81,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003225 "column" : 31,
3226 "source_fragment" : "1w0; ..."
3227 }
3228 }
3229 ]
3230 },
3231 {
3232 "name" : "act_3",
3233 "id" : 46,
3234 "runtime_data" : [],
3235 "primitives" : [
3236 {
3237 "op" : "assign",
3238 "parameters" : [
3239 {
3240 "type" : "field",
3241 "value" : ["spgw", "do_spgw"]
3242 },
3243 {
3244 "type" : "expression",
3245 "value" : {
3246 "type" : "expression",
3247 "value" : {
3248 "op" : "b2d",
3249 "left" : null,
3250 "right" : {
3251 "type" : "bool",
3252 "value" : true
3253 }
3254 }
3255 }
3256 }
3257 ],
3258 "source_info" : {
3259 "filename" : "include/spgw.p4",
3260 "line" : 144,
3261 "column" : 16,
3262 "source_fragment" : "spgw_meta.do_spgw = true"
3263 }
3264 }
3265 ]
3266 },
3267 {
3268 "name" : "act_4",
3269 "id" : 47,
3270 "runtime_data" : [],
3271 "primitives" : [
3272 {
3273 "op" : "assign",
3274 "parameters" : [
3275 {
3276 "type" : "field",
3277 "value" : ["scalars", "spgw_ingress_tmp_3"]
3278 },
3279 {
3280 "type" : "expression",
3281 "value" : {
3282 "type" : "expression",
3283 "value" : {
3284 "op" : "b2d",
3285 "left" : null,
3286 "right" : {
3287 "type" : "bool",
3288 "value" : true
3289 }
3290 }
3291 }
3292 }
3293 ]
3294 }
3295 ]
3296 },
3297 {
3298 "name" : "act_5",
3299 "id" : 48,
3300 "runtime_data" : [],
3301 "primitives" : [
3302 {
3303 "op" : "assign",
3304 "parameters" : [
3305 {
3306 "type" : "field",
3307 "value" : ["scalars", "spgw_ingress_tmp_3"]
3308 },
3309 {
3310 "type" : "expression",
3311 "value" : {
3312 "type" : "expression",
3313 "value" : {
3314 "op" : "b2d",
3315 "left" : null,
3316 "right" : {
3317 "type" : "bool",
3318 "value" : false
3319 }
3320 }
3321 }
3322 }
3323 ]
3324 }
3325 ]
3326 },
3327 {
3328 "name" : "act_6",
3329 "id" : 49,
3330 "runtime_data" : [],
3331 "primitives" : [
3332 {
3333 "op" : "assign",
3334 "parameters" : [
3335 {
3336 "type" : "field",
Carmelo Cascone14cde402018-01-25 01:57:18 -08003337 "value" : ["spgw", "direction"]
3338 },
3339 {
3340 "type" : "hexstr",
3341 "value" : "0x01"
3342 }
3343 ],
3344 "source_info" : {
3345 "filename" : "include/control/../define.p4",
3346 "line" : 82,
3347 "column" : 33,
3348 "source_fragment" : "1w1; ..."
3349 }
3350 }
3351 ]
3352 },
3353 {
3354 "name" : "act_7",
3355 "id" : 50,
3356 "runtime_data" : [],
3357 "primitives" : [
3358 {
3359 "op" : "assign",
3360 "parameters" : [
3361 {
3362 "type" : "field",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003363 "value" : ["spgw", "do_spgw"]
3364 },
3365 {
3366 "type" : "expression",
3367 "value" : {
3368 "type" : "expression",
3369 "value" : {
3370 "op" : "b2d",
3371 "left" : null,
3372 "right" : {
3373 "type" : "bool",
3374 "value" : true
3375 }
3376 }
3377 }
3378 }
3379 ],
3380 "source_info" : {
3381 "filename" : "include/spgw.p4",
Carmelo Cascone14cde402018-01-25 01:57:18 -08003382 "line" : 149,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003383 "column" : 16,
3384 "source_fragment" : "spgw_meta.do_spgw = true"
3385 }
3386 }
3387 ]
3388 },
3389 {
Carmelo Cascone14cde402018-01-25 01:57:18 -08003390 "name" : "act_8",
3391 "id" : 51,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003392 "runtime_data" : [],
3393 "primitives" : [
3394 {
3395 "op" : "assign",
3396 "parameters" : [
3397 {
3398 "type" : "field",
3399 "value" : ["spgw", "l4_src_port"]
3400 },
3401 {
3402 "type" : "field",
3403 "value" : ["scalars", "fabric_metadata_t.l4_src_port"]
3404 }
3405 ],
3406 "source_info" : {
3407 "filename" : "fabric.p4",
3408 "line" : 47,
3409 "column" : 8,
3410 "source_fragment" : "fabric_metadata.spgw.l4_src_port = fabric_metadata.l4_src_port"
3411 }
3412 },
3413 {
3414 "op" : "assign",
3415 "parameters" : [
3416 {
3417 "type" : "field",
3418 "value" : ["spgw", "l4_dst_port"]
3419 },
3420 {
3421 "type" : "field",
3422 "value" : ["scalars", "fabric_metadata_t.l4_dst_port"]
3423 }
3424 ],
3425 "source_info" : {
3426 "filename" : "fabric.p4",
3427 "line" : 48,
3428 "column" : 8,
3429 "source_fragment" : "fabric_metadata.spgw.l4_dst_port = fabric_metadata.l4_dst_port"
3430 }
3431 },
3432 {
3433 "op" : "assign",
3434 "parameters" : [
3435 {
3436 "type" : "field",
3437 "value" : ["scalars", "spgw_ingress_hasReturned_0"]
3438 },
3439 {
3440 "type" : "expression",
3441 "value" : {
3442 "type" : "expression",
3443 "value" : {
3444 "op" : "b2d",
3445 "left" : null,
3446 "right" : {
3447 "type" : "bool",
3448 "value" : false
3449 }
3450 }
3451 }
3452 }
3453 ]
3454 },
3455 {
3456 "op" : "assign",
3457 "parameters" : [
3458 {
3459 "type" : "field",
3460 "value" : ["spgw", "do_spgw"]
3461 },
3462 {
3463 "type" : "expression",
3464 "value" : {
3465 "type" : "expression",
3466 "value" : {
3467 "op" : "b2d",
3468 "left" : null,
3469 "right" : {
3470 "type" : "bool",
3471 "value" : false
3472 }
3473 }
3474 }
3475 }
3476 ],
3477 "source_info" : {
3478 "filename" : "include/spgw.p4",
3479 "line" : 140,
3480 "column" : 8,
3481 "source_fragment" : "spgw_meta.do_spgw = false"
3482 }
3483 }
3484 ]
3485 },
3486 {
Carmelo Cascone14cde402018-01-25 01:57:18 -08003487 "name" : "act_9",
3488 "id" : 52,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003489 "runtime_data" : [],
3490 "primitives" : [
3491 {
3492 "op" : "assign",
3493 "parameters" : [
3494 {
3495 "type" : "field",
3496 "value" : ["scalars", "spgw_ingress_hasReturned_0"]
3497 },
3498 {
3499 "type" : "expression",
3500 "value" : {
3501 "type" : "expression",
3502 "value" : {
3503 "op" : "b2d",
3504 "left" : null,
3505 "right" : {
3506 "type" : "bool",
3507 "value" : true
3508 }
3509 }
3510 }
3511 }
3512 ],
3513 "source_info" : {
3514 "filename" : "include/spgw.p4",
Carmelo Cascone14cde402018-01-25 01:57:18 -08003515 "line" : 155,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003516 "column" : 12,
3517 "source_fragment" : "return"
3518 }
3519 }
3520 ]
3521 },
3522 {
Carmelo Cascone14cde402018-01-25 01:57:18 -08003523 "name" : "act_10",
3524 "id" : 53,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003525 "runtime_data" : [],
3526 "primitives" : [
3527 {
3528 "op" : "drop",
3529 "parameters" : [],
3530 "source_info" : {
3531 "filename" : "include/spgw.p4",
Carmelo Cascone14cde402018-01-25 01:57:18 -08003532 "line" : 170,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003533 "column" : 12,
3534 "source_fragment" : "mark_to_drop()"
3535 }
3536 }
3537 ]
3538 },
3539 {
Carmelo Cascone14cde402018-01-25 01:57:18 -08003540 "name" : "act_11",
3541 "id" : 54,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003542 "runtime_data" : [],
3543 "primitives" : [
3544 {
3545 "op" : "assign",
3546 "parameters" : [
3547 {
3548 "type" : "field",
3549 "value" : ["scalars", "spgw_ingress_tmp_4"]
3550 },
3551 {
3552 "type" : "expression",
3553 "value" : {
3554 "type" : "expression",
3555 "value" : {
3556 "op" : "b2d",
3557 "left" : null,
3558 "right" : {
3559 "type" : "bool",
3560 "value" : true
3561 }
3562 }
3563 }
3564 }
3565 ]
3566 }
3567 ]
3568 },
3569 {
Carmelo Cascone14cde402018-01-25 01:57:18 -08003570 "name" : "act_12",
3571 "id" : 55,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003572 "runtime_data" : [],
3573 "primitives" : [
3574 {
3575 "op" : "assign",
3576 "parameters" : [
3577 {
3578 "type" : "field",
3579 "value" : ["scalars", "spgw_ingress_tmp_4"]
3580 },
3581 {
3582 "type" : "expression",
3583 "value" : {
3584 "type" : "expression",
3585 "value" : {
3586 "op" : "b2d",
3587 "left" : null,
3588 "right" : {
3589 "type" : "bool",
3590 "value" : false
3591 }
3592 }
3593 }
3594 }
3595 ]
3596 }
3597 ]
3598 },
3599 {
Carmelo Cascone14cde402018-01-25 01:57:18 -08003600 "name" : "act_13",
3601 "id" : 56,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003602 "runtime_data" : [],
3603 "primitives" : [
3604 {
3605 "op" : "drop",
3606 "parameters" : [],
3607 "source_info" : {
3608 "filename" : "include/spgw.p4",
Carmelo Cascone14cde402018-01-25 01:57:18 -08003609 "line" : 178,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003610 "column" : 16,
3611 "source_fragment" : "mark_to_drop()"
3612 }
3613 }
3614 ]
3615 },
3616 {
Carmelo Cascone14cde402018-01-25 01:57:18 -08003617 "name" : "act_14",
3618 "id" : 57,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003619 "runtime_data" : [],
3620 "primitives" : [
3621 {
3622 "op" : "assign",
3623 "parameters" : [
3624 {
3625 "type" : "field",
3626 "value" : ["vlan_tag", "ether_type"]
3627 },
3628 {
3629 "type" : "hexstr",
3630 "value" : "0x0800"
3631 }
3632 ],
3633 "source_info" : {
3634 "filename" : "include/control/../define.p4",
3635 "line" : 35,
3636 "column" : 31,
3637 "source_fragment" : "0x0800; ..."
3638 }
3639 },
3640 {
3641 "op" : "assign",
3642 "parameters" : [
3643 {
3644 "type" : "field",
3645 "value" : ["scalars", "fabric_metadata_t.original_ether_type"]
3646 },
3647 {
3648 "type" : "hexstr",
3649 "value" : "0x0800"
3650 }
3651 ],
3652 "source_info" : {
3653 "filename" : "include/control/../define.p4",
3654 "line" : 35,
3655 "column" : 31,
3656 "source_fragment" : "0x0800; ..."
3657 }
3658 }
3659 ]
3660 },
3661 {
Carmelo Cascone14cde402018-01-25 01:57:18 -08003662 "name" : "act_15",
3663 "id" : 58,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003664 "runtime_data" : [],
3665 "primitives" : [
3666 {
3667 "op" : "assign",
3668 "parameters" : [
3669 {
3670 "type" : "field",
3671 "value" : ["scalars", "next_tmp_0"]
3672 },
3673 {
3674 "type" : "expression",
3675 "value" : {
3676 "type" : "expression",
3677 "value" : {
3678 "op" : "b2d",
3679 "left" : null,
3680 "right" : {
3681 "type" : "bool",
3682 "value" : true
3683 }
3684 }
3685 }
3686 }
3687 ]
3688 }
3689 ]
3690 },
3691 {
Carmelo Cascone14cde402018-01-25 01:57:18 -08003692 "name" : "act_16",
3693 "id" : 59,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003694 "runtime_data" : [],
3695 "primitives" : [
3696 {
3697 "op" : "assign",
3698 "parameters" : [
3699 {
3700 "type" : "field",
3701 "value" : ["scalars", "next_tmp_0"]
3702 },
3703 {
3704 "type" : "expression",
3705 "value" : {
3706 "type" : "expression",
3707 "value" : {
3708 "op" : "b2d",
3709 "left" : null,
3710 "right" : {
3711 "type" : "bool",
3712 "value" : false
3713 }
3714 }
3715 }
3716 }
3717 ]
3718 }
3719 ]
3720 },
3721 {
Carmelo Cascone14cde402018-01-25 01:57:18 -08003722 "name" : "act_17",
3723 "id" : 60,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003724 "runtime_data" : [],
3725 "primitives" : [
3726 {
3727 "op" : "assign",
3728 "parameters" : [
3729 {
3730 "type" : "field",
3731 "value" : ["ipv4", "ttl"]
3732 },
3733 {
3734 "type" : "expression",
3735 "value" : {
3736 "type" : "expression",
3737 "value" : {
3738 "op" : "&",
3739 "left" : {
3740 "type" : "expression",
3741 "value" : {
3742 "op" : "+",
3743 "left" : {
3744 "type" : "field",
3745 "value" : ["ipv4", "ttl"]
3746 },
3747 "right" : {
3748 "type" : "hexstr",
3749 "value" : "0xff"
3750 }
3751 }
3752 },
3753 "right" : {
3754 "type" : "hexstr",
3755 "value" : "0xff"
3756 }
3757 }
3758 }
3759 }
3760 ],
3761 "source_info" : {
3762 "filename" : "include/control/next.p4",
3763 "line" : 140,
3764 "column" : 20,
3765 "source_fragment" : "hdr.ipv4.ttl = hdr.ipv4.ttl - 1"
3766 }
3767 }
3768 ]
3769 },
3770 {
Carmelo Cascone14cde402018-01-25 01:57:18 -08003771 "name" : "act_18",
3772 "id" : 61,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003773 "runtime_data" : [],
3774 "primitives" : [
3775 {
3776 "op" : "assign",
3777 "parameters" : [
3778 {
3779 "type" : "field",
3780 "value" : ["ipv6", "hop_limit"]
3781 },
3782 {
3783 "type" : "expression",
3784 "value" : {
3785 "type" : "expression",
3786 "value" : {
3787 "op" : "&",
3788 "left" : {
3789 "type" : "expression",
3790 "value" : {
3791 "op" : "+",
3792 "left" : {
3793 "type" : "field",
3794 "value" : ["ipv6", "hop_limit"]
3795 },
3796 "right" : {
3797 "type" : "hexstr",
3798 "value" : "0xff"
3799 }
3800 }
3801 },
3802 "right" : {
3803 "type" : "hexstr",
3804 "value" : "0xff"
3805 }
3806 }
3807 }
3808 }
3809 ],
3810 "source_info" : {
3811 "filename" : "include/control/next.p4",
3812 "line" : 143,
3813 "column" : 20,
3814 "source_fragment" : "hdr.ipv6.hop_limit = hdr.ipv6.hop_limit - 1"
3815 }
3816 }
3817 ]
3818 },
3819 {
Carmelo Cascone14cde402018-01-25 01:57:18 -08003820 "name" : "act_19",
3821 "id" : 62,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003822 "runtime_data" : [],
3823 "primitives" : [
3824 {
3825 "op" : "assign",
3826 "parameters" : [
3827 {
3828 "type" : "field",
3829 "value" : ["scalars", "tmp_0"]
3830 },
3831 {
3832 "type" : "expression",
3833 "value" : {
3834 "type" : "expression",
3835 "value" : {
3836 "op" : "&",
3837 "left" : {
3838 "type" : "field",
3839 "value" : ["standard_metadata", "egress_spec"]
3840 },
3841 "right" : {
3842 "type" : "hexstr",
3843 "value" : "0xffffffff"
3844 }
3845 }
3846 }
3847 }
3848 ]
3849 },
3850 {
3851 "op" : "count",
3852 "parameters" : [
3853 {
3854 "type" : "counter_array",
3855 "value" : "port_counters_control.egress_port_counter"
3856 },
3857 {
3858 "type" : "field",
3859 "value" : ["scalars", "tmp_0"]
3860 }
3861 ],
3862 "source_info" : {
3863 "filename" : "include/control/port_counter.p4",
3864 "line" : 28,
3865 "column" : 12,
3866 "source_fragment" : "egress_port_counter.count((bit<32>)standard_metadata.egress_spec)"
3867 }
3868 }
3869 ]
3870 },
3871 {
Carmelo Cascone14cde402018-01-25 01:57:18 -08003872 "name" : "act_20",
3873 "id" : 63,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003874 "runtime_data" : [],
3875 "primitives" : [
3876 {
3877 "op" : "assign",
3878 "parameters" : [
3879 {
3880 "type" : "field",
3881 "value" : ["scalars", "tmp_1"]
3882 },
3883 {
3884 "type" : "expression",
3885 "value" : {
3886 "type" : "expression",
3887 "value" : {
3888 "op" : "&",
3889 "left" : {
3890 "type" : "field",
3891 "value" : ["standard_metadata", "ingress_port"]
3892 },
3893 "right" : {
3894 "type" : "hexstr",
3895 "value" : "0xffffffff"
3896 }
3897 }
3898 }
3899 }
3900 ]
3901 },
3902 {
3903 "op" : "count",
3904 "parameters" : [
3905 {
3906 "type" : "counter_array",
3907 "value" : "port_counters_control.ingress_port_counter"
3908 },
3909 {
3910 "type" : "field",
3911 "value" : ["scalars", "tmp_1"]
3912 }
3913 ],
3914 "source_info" : {
3915 "filename" : "include/control/port_counter.p4",
3916 "line" : 31,
3917 "column" : 12,
3918 "source_fragment" : "ingress_port_counter.count((bit<32>)standard_metadata.ingress_port)"
3919 }
3920 }
3921 ]
3922 },
3923 {
Carmelo Cascone14cde402018-01-25 01:57:18 -08003924 "name" : "act_21",
3925 "id" : 64,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003926 "runtime_data" : [],
3927 "primitives" : [
3928 {
3929 "op" : "assign",
3930 "parameters" : [
3931 {
3932 "type" : "field",
3933 "value" : ["ethernet", "ether_type"]
3934 },
3935 {
3936 "type" : "field",
3937 "value" : ["vlan_tag", "ether_type"]
3938 }
3939 ],
3940 "source_info" : {
3941 "filename" : "include/control/next.p4",
3942 "line" : 160,
3943 "column" : 12,
3944 "source_fragment" : "hdr.ethernet.ether_type = hdr.vlan_tag.ether_type"
3945 }
3946 },
3947 {
3948 "op" : "remove_header",
3949 "parameters" : [
3950 {
3951 "type" : "header",
3952 "value" : "vlan_tag"
3953 }
3954 ],
3955 "source_info" : {
3956 "filename" : "include/control/next.p4",
3957 "line" : 161,
3958 "column" : 12,
3959 "source_fragment" : "hdr.vlan_tag.setInvalid()"
3960 }
3961 }
3962 ]
3963 },
3964 {
3965 "name" : "spgw_egress.gtpu_encap",
Carmelo Cascone14cde402018-01-25 01:57:18 -08003966 "id" : 65,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003967 "runtime_data" : [],
3968 "primitives" : [
3969 {
3970 "op" : "add_header",
3971 "parameters" : [
3972 {
3973 "type" : "header",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003974 "value" : "gtpu_ipv4"
3975 }
3976 ],
3977 "source_info" : {
3978 "filename" : "include/spgw.p4",
Carmelo Cascone14cde402018-01-25 01:57:18 -08003979 "line" : 196,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003980 "column" : 8,
3981 "source_fragment" : "gtpu_ipv4.setValid()"
3982 }
3983 },
3984 {
3985 "op" : "assign",
3986 "parameters" : [
3987 {
3988 "type" : "field",
3989 "value" : ["gtpu_ipv4", "version"]
3990 },
3991 {
3992 "type" : "hexstr",
3993 "value" : "0x04"
3994 }
3995 ],
3996 "source_info" : {
3997 "filename" : "include/control/../define.p4",
3998 "line" : 39,
3999 "column" : 28,
4000 "source_fragment" : "4; ..."
4001 }
4002 },
4003 {
4004 "op" : "assign",
4005 "parameters" : [
4006 {
4007 "type" : "field",
4008 "value" : ["gtpu_ipv4", "ihl"]
4009 },
4010 {
4011 "type" : "hexstr",
4012 "value" : "0x05"
4013 }
4014 ],
4015 "source_info" : {
4016 "filename" : "include/control/../define.p4",
4017 "line" : 47,
4018 "column" : 28,
4019 "source_fragment" : "5; ..."
4020 }
4021 },
4022 {
4023 "op" : "assign",
4024 "parameters" : [
4025 {
4026 "type" : "field",
4027 "value" : ["gtpu_ipv4", "diffserv"]
4028 },
4029 {
4030 "type" : "hexstr",
4031 "value" : "0x00"
4032 }
4033 ],
4034 "source_info" : {
4035 "filename" : "include/spgw.p4",
Carmelo Cascone14cde402018-01-25 01:57:18 -08004036 "line" : 199,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004037 "column" : 8,
4038 "source_fragment" : "gtpu_ipv4.diffserv = 0"
4039 }
4040 },
4041 {
4042 "op" : "assign",
4043 "parameters" : [
4044 {
4045 "type" : "field",
4046 "value" : ["gtpu_ipv4", "total_len"]
4047 },
4048 {
4049 "type" : "expression",
4050 "value" : {
4051 "type" : "expression",
4052 "value" : {
4053 "op" : "&",
4054 "left" : {
4055 "type" : "expression",
4056 "value" : {
4057 "op" : "&",
4058 "left" : {
4059 "type" : "expression",
4060 "value" : {
4061 "op" : "+",
4062 "left" : {
4063 "type" : "expression",
4064 "value" : {
4065 "op" : "&",
4066 "left" : {
4067 "type" : "expression",
4068 "value" : {
4069 "op" : "+",
4070 "left" : {
4071 "type" : "expression",
4072 "value" : {
4073 "op" : "&",
4074 "left" : {
4075 "type" : "expression",
4076 "value" : {
4077 "op" : "+",
4078 "left" : {
Carmelo Cascone14cde402018-01-25 01:57:18 -08004079 "type" : "expression",
4080 "value" : {
4081 "op" : "&",
4082 "left" : {
4083 "type" : "expression",
4084 "value" : {
4085 "op" : "+",
4086 "left" : {
4087 "type" : "field",
4088 "value" : ["standard_metadata", "packet_length"]
4089 },
4090 "right" : {
4091 "type" : "hexstr",
4092 "value" : "0xfffffff2"
4093 }
4094 }
4095 },
4096 "right" : {
4097 "type" : "hexstr",
4098 "value" : "0xffffffff"
4099 }
4100 }
4101 },
4102 "right" : {
4103 "type" : "hexstr",
4104 "value" : "0x00000014"
4105 }
4106 }
4107 },
4108 "right" : {
4109 "type" : "hexstr",
4110 "value" : "0xffffffff"
4111 }
4112 }
4113 },
4114 "right" : {
4115 "type" : "hexstr",
4116 "value" : "0x00000008"
4117 }
4118 }
4119 },
4120 "right" : {
4121 "type" : "hexstr",
4122 "value" : "0xffffffff"
4123 }
4124 }
4125 },
4126 "right" : {
4127 "type" : "hexstr",
4128 "value" : "0x00000008"
4129 }
4130 }
4131 },
4132 "right" : {
4133 "type" : "hexstr",
4134 "value" : "0xffffffff"
4135 }
4136 }
4137 },
4138 "right" : {
4139 "type" : "hexstr",
4140 "value" : "0xffff"
4141 }
4142 }
4143 }
4144 }
4145 ],
4146 "source_info" : {
4147 "filename" : "include/spgw.p4",
4148 "line" : 200,
4149 "column" : 8,
4150 "source_fragment" : "gtpu_ipv4.total_len = (bit<16>) (std_meta.packet_length ..."
4151 }
4152 },
4153 {
4154 "op" : "assign",
4155 "parameters" : [
4156 {
4157 "type" : "field",
4158 "value" : ["gtpu_ipv4", "identification"]
4159 },
4160 {
4161 "type" : "hexstr",
4162 "value" : "0x1513"
4163 }
4164 ],
4165 "source_info" : {
4166 "filename" : "include/spgw.p4",
4167 "line" : 202,
4168 "column" : 8,
4169 "source_fragment" : "gtpu_ipv4.identification = 0x1513"
4170 }
4171 },
4172 {
4173 "op" : "assign",
4174 "parameters" : [
4175 {
4176 "type" : "field",
4177 "value" : ["gtpu_ipv4", "flags"]
4178 },
4179 {
4180 "type" : "hexstr",
4181 "value" : "0x00"
4182 }
4183 ],
4184 "source_info" : {
4185 "filename" : "include/spgw.p4",
4186 "line" : 203,
4187 "column" : 8,
4188 "source_fragment" : "gtpu_ipv4.flags = 0"
4189 }
4190 },
4191 {
4192 "op" : "assign",
4193 "parameters" : [
4194 {
4195 "type" : "field",
4196 "value" : ["gtpu_ipv4", "frag_offset"]
4197 },
4198 {
4199 "type" : "hexstr",
4200 "value" : "0x0000"
4201 }
4202 ],
4203 "source_info" : {
4204 "filename" : "include/spgw.p4",
4205 "line" : 204,
4206 "column" : 8,
4207 "source_fragment" : "gtpu_ipv4.frag_offset = 0"
4208 }
4209 },
4210 {
4211 "op" : "assign",
4212 "parameters" : [
4213 {
4214 "type" : "field",
4215 "value" : ["gtpu_ipv4", "ttl"]
4216 },
4217 {
4218 "type" : "hexstr",
4219 "value" : "0x40"
4220 }
4221 ],
4222 "source_info" : {
4223 "filename" : "include/control/../define.p4",
4224 "line" : 71,
4225 "column" : 32,
4226 "source_fragment" : "64; ..."
4227 }
4228 },
4229 {
4230 "op" : "assign",
4231 "parameters" : [
4232 {
4233 "type" : "field",
4234 "value" : ["gtpu_ipv4", "protocol"]
4235 },
4236 {
4237 "type" : "hexstr",
4238 "value" : "0x11"
4239 }
4240 ],
4241 "source_info" : {
4242 "filename" : "include/control/../define.p4",
4243 "line" : 44,
4244 "column" : 25,
4245 "source_fragment" : "17; ..."
4246 }
4247 },
4248 {
4249 "op" : "assign",
4250 "parameters" : [
4251 {
4252 "type" : "field",
4253 "value" : ["gtpu_ipv4", "dst_addr"]
4254 },
4255 {
4256 "type" : "field",
4257 "value" : ["spgw", "dl_sess_enb_addr"]
4258 }
4259 ],
4260 "source_info" : {
4261 "filename" : "include/spgw.p4",
4262 "line" : 207,
4263 "column" : 8,
4264 "source_fragment" : "gtpu_ipv4.dst_addr = spgw_meta.dl_sess_enb_addr"
4265 }
4266 },
4267 {
4268 "op" : "assign",
4269 "parameters" : [
4270 {
4271 "type" : "field",
4272 "value" : ["gtpu_ipv4", "src_addr"]
4273 },
4274 {
4275 "type" : "field",
4276 "value" : ["spgw", "dl_sess_s1u_addr"]
4277 }
4278 ],
4279 "source_info" : {
4280 "filename" : "include/spgw.p4",
4281 "line" : 208,
4282 "column" : 8,
4283 "source_fragment" : "gtpu_ipv4.src_addr = spgw_meta.dl_sess_s1u_addr"
4284 }
4285 },
4286 {
4287 "op" : "assign",
4288 "parameters" : [
4289 {
4290 "type" : "field",
4291 "value" : ["gtpu_ipv4", "hdr_checksum"]
4292 },
4293 {
4294 "type" : "hexstr",
4295 "value" : "0x0000"
4296 }
4297 ],
4298 "source_info" : {
4299 "filename" : "include/spgw.p4",
4300 "line" : 209,
4301 "column" : 8,
4302 "source_fragment" : "gtpu_ipv4.hdr_checksum = 0"
4303 }
4304 },
4305 {
4306 "op" : "add_header",
4307 "parameters" : [
4308 {
4309 "type" : "header",
4310 "value" : "gtpu_udp"
4311 }
4312 ],
4313 "source_info" : {
4314 "filename" : "include/spgw.p4",
4315 "line" : 211,
4316 "column" : 8,
4317 "source_fragment" : "gtpu_udp.setValid()"
4318 }
4319 },
4320 {
4321 "op" : "assign",
4322 "parameters" : [
4323 {
4324 "type" : "field",
4325 "value" : ["gtpu_udp", "src_port"]
4326 },
4327 {
4328 "type" : "hexstr",
4329 "value" : "0x0868"
4330 }
4331 ],
4332 "source_info" : {
4333 "filename" : "include/spgw.p4",
4334 "line" : 212,
4335 "column" : 8,
4336 "source_fragment" : "gtpu_udp.src_port = 2152"
4337 }
4338 },
4339 {
4340 "op" : "assign",
4341 "parameters" : [
4342 {
4343 "type" : "field",
4344 "value" : ["gtpu_udp", "dst_port"]
4345 },
4346 {
4347 "type" : "hexstr",
4348 "value" : "0x0868"
4349 }
4350 ],
4351 "source_info" : {
4352 "filename" : "include/spgw.p4",
4353 "line" : 213,
4354 "column" : 8,
4355 "source_fragment" : "gtpu_udp.dst_port = 2152"
4356 }
4357 },
4358 {
4359 "op" : "assign",
4360 "parameters" : [
4361 {
4362 "type" : "field",
4363 "value" : ["gtpu_udp", "len"]
4364 },
4365 {
4366 "type" : "expression",
4367 "value" : {
4368 "type" : "expression",
4369 "value" : {
4370 "op" : "&",
4371 "left" : {
4372 "type" : "expression",
4373 "value" : {
4374 "op" : "&",
4375 "left" : {
4376 "type" : "expression",
4377 "value" : {
4378 "op" : "+",
4379 "left" : {
4380 "type" : "expression",
4381 "value" : {
4382 "op" : "&",
4383 "left" : {
4384 "type" : "expression",
4385 "value" : {
4386 "op" : "+",
4387 "left" : {
4388 "type" : "expression",
4389 "value" : {
4390 "op" : "&",
4391 "left" : {
4392 "type" : "expression",
4393 "value" : {
4394 "op" : "+",
4395 "left" : {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004396 "type" : "field",
4397 "value" : ["standard_metadata", "packet_length"]
4398 },
4399 "right" : {
4400 "type" : "hexstr",
4401 "value" : "0xfffffff2"
4402 }
4403 }
4404 },
4405 "right" : {
4406 "type" : "hexstr",
4407 "value" : "0xffffffff"
4408 }
4409 }
4410 },
4411 "right" : {
4412 "type" : "hexstr",
Carmelo Cascone14cde402018-01-25 01:57:18 -08004413 "value" : "0x00000008"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004414 }
4415 }
4416 },
4417 "right" : {
4418 "type" : "hexstr",
4419 "value" : "0xffffffff"
4420 }
4421 }
4422 },
4423 "right" : {
4424 "type" : "hexstr",
4425 "value" : "0x00000008"
4426 }
4427 }
4428 },
4429 "right" : {
4430 "type" : "hexstr",
4431 "value" : "0xffffffff"
4432 }
4433 }
4434 },
4435 "right" : {
4436 "type" : "hexstr",
4437 "value" : "0xffff"
4438 }
4439 }
4440 }
4441 }
4442 ],
4443 "source_info" : {
4444 "filename" : "include/spgw.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004445 "line" : 214,
4446 "column" : 8,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004447 "source_fragment" : "gtpu_udp.len = (bit<16>) (std_meta.packet_length ..."
4448 }
4449 },
4450 {
4451 "op" : "assign",
4452 "parameters" : [
4453 {
4454 "type" : "field",
4455 "value" : ["gtpu_udp", "checksum"]
4456 },
4457 {
4458 "type" : "hexstr",
4459 "value" : "0x0000"
4460 }
4461 ],
4462 "source_info" : {
4463 "filename" : "include/spgw.p4",
Carmelo Cascone14cde402018-01-25 01:57:18 -08004464 "line" : 216,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004465 "column" : 8,
4466 "source_fragment" : "gtpu_udp.checksum = 0"
4467 }
Carmelo Cascone14cde402018-01-25 01:57:18 -08004468 },
4469 {
4470 "op" : "add_header",
4471 "parameters" : [
4472 {
4473 "type" : "header",
4474 "value" : "gtpu"
4475 }
4476 ],
4477 "source_info" : {
4478 "filename" : "include/spgw.p4",
4479 "line" : 218,
4480 "column" : 8,
4481 "source_fragment" : "gtpu.setValid()"
4482 }
4483 },
4484 {
4485 "op" : "assign",
4486 "parameters" : [
4487 {
4488 "type" : "field",
4489 "value" : ["gtpu", "version"]
4490 },
4491 {
4492 "type" : "hexstr",
4493 "value" : "0x01"
4494 }
4495 ],
4496 "source_info" : {
4497 "filename" : "include/spgw.p4",
4498 "line" : 219,
4499 "column" : 8,
4500 "source_fragment" : "gtpu.version = 0x01"
4501 }
4502 },
4503 {
4504 "op" : "assign",
4505 "parameters" : [
4506 {
4507 "type" : "field",
4508 "value" : ["gtpu", "pt"]
4509 },
4510 {
4511 "type" : "hexstr",
4512 "value" : "0x01"
4513 }
4514 ],
4515 "source_info" : {
4516 "filename" : "include/spgw.p4",
4517 "line" : 220,
4518 "column" : 8,
4519 "source_fragment" : "gtpu.pt = 0x01"
4520 }
4521 },
4522 {
4523 "op" : "assign",
4524 "parameters" : [
4525 {
4526 "type" : "field",
4527 "value" : ["gtpu", "spare"]
4528 },
4529 {
4530 "type" : "hexstr",
4531 "value" : "0x00"
4532 }
4533 ],
4534 "source_info" : {
4535 "filename" : "include/spgw.p4",
4536 "line" : 221,
4537 "column" : 8,
4538 "source_fragment" : "gtpu.spare = 0"
4539 }
4540 },
4541 {
4542 "op" : "assign",
4543 "parameters" : [
4544 {
4545 "type" : "field",
4546 "value" : ["gtpu", "ex_flag"]
4547 },
4548 {
4549 "type" : "hexstr",
4550 "value" : "0x00"
4551 }
4552 ],
4553 "source_info" : {
4554 "filename" : "include/spgw.p4",
4555 "line" : 222,
4556 "column" : 8,
4557 "source_fragment" : "gtpu.ex_flag = 0"
4558 }
4559 },
4560 {
4561 "op" : "assign",
4562 "parameters" : [
4563 {
4564 "type" : "field",
4565 "value" : ["gtpu", "seq_flag"]
4566 },
4567 {
4568 "type" : "hexstr",
4569 "value" : "0x00"
4570 }
4571 ],
4572 "source_info" : {
4573 "filename" : "include/spgw.p4",
4574 "line" : 223,
4575 "column" : 8,
4576 "source_fragment" : "gtpu.seq_flag = 0"
4577 }
4578 },
4579 {
4580 "op" : "assign",
4581 "parameters" : [
4582 {
4583 "type" : "field",
4584 "value" : ["gtpu", "npdu_flag"]
4585 },
4586 {
4587 "type" : "hexstr",
4588 "value" : "0x00"
4589 }
4590 ],
4591 "source_info" : {
4592 "filename" : "include/spgw.p4",
4593 "line" : 224,
4594 "column" : 8,
4595 "source_fragment" : "gtpu.npdu_flag = 0"
4596 }
4597 },
4598 {
4599 "op" : "assign",
4600 "parameters" : [
4601 {
4602 "type" : "field",
4603 "value" : ["gtpu", "msgtype"]
4604 },
4605 {
4606 "type" : "hexstr",
4607 "value" : "0xff"
4608 }
4609 ],
4610 "source_info" : {
4611 "filename" : "include/spgw.p4",
4612 "line" : 225,
4613 "column" : 8,
4614 "source_fragment" : "gtpu.msgtype = 0xff"
4615 }
4616 },
4617 {
4618 "op" : "assign",
4619 "parameters" : [
4620 {
4621 "type" : "field",
4622 "value" : ["gtpu", "msglen"]
4623 },
4624 {
4625 "type" : "expression",
4626 "value" : {
4627 "type" : "expression",
4628 "value" : {
4629 "op" : "&",
4630 "left" : {
4631 "type" : "expression",
4632 "value" : {
4633 "op" : "&",
4634 "left" : {
4635 "type" : "expression",
4636 "value" : {
4637 "op" : "+",
4638 "left" : {
4639 "type" : "field",
4640 "value" : ["standard_metadata", "packet_length"]
4641 },
4642 "right" : {
4643 "type" : "hexstr",
4644 "value" : "0xfffffff2"
4645 }
4646 }
4647 },
4648 "right" : {
4649 "type" : "hexstr",
4650 "value" : "0xffffffff"
4651 }
4652 }
4653 },
4654 "right" : {
4655 "type" : "hexstr",
4656 "value" : "0xffff"
4657 }
4658 }
4659 }
4660 }
4661 ],
4662 "source_info" : {
4663 "filename" : "include/spgw.p4",
4664 "line" : 226,
4665 "column" : 8,
4666 "source_fragment" : "gtpu.msglen = (bit<16>) (std_meta.packet_length - 14)"
4667 }
4668 },
4669 {
4670 "op" : "assign",
4671 "parameters" : [
4672 {
4673 "type" : "field",
4674 "value" : ["gtpu", "teid"]
4675 },
4676 {
4677 "type" : "field",
4678 "value" : ["spgw", "dl_sess_teid"]
4679 }
4680 ],
4681 "source_info" : {
4682 "filename" : "include/spgw.p4",
4683 "line" : 227,
4684 "column" : 8,
4685 "source_fragment" : "gtpu.teid = spgw_meta.dl_sess_teid"
4686 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004687 }
4688 ]
4689 },
4690 {
Carmelo Cascone14cde402018-01-25 01:57:18 -08004691 "name" : "act_22",
4692 "id" : 66,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004693 "runtime_data" : [],
4694 "primitives" : [
4695 {
4696 "op" : "add_header",
4697 "parameters" : [
4698 {
4699 "type" : "header",
4700 "value" : "packet_in"
4701 }
4702 ],
4703 "source_info" : {
4704 "filename" : "include/control/packetio.p4",
4705 "line" : 39,
4706 "column" : 12,
4707 "source_fragment" : "hdr.packet_in.setValid()"
4708 }
4709 },
4710 {
4711 "op" : "assign",
4712 "parameters" : [
4713 {
4714 "type" : "field",
4715 "value" : ["packet_in", "ingress_port"]
4716 },
4717 {
4718 "type" : "field",
4719 "value" : ["standard_metadata", "ingress_port"]
4720 }
4721 ],
4722 "source_info" : {
4723 "filename" : "include/control/packetio.p4",
4724 "line" : 40,
4725 "column" : 12,
4726 "source_fragment" : "hdr.packet_in.ingress_port = standard_metadata.ingress_port"
4727 }
4728 }
4729 ]
4730 },
4731 {
Carmelo Cascone14cde402018-01-25 01:57:18 -08004732 "name" : "act_23",
4733 "id" : 67,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004734 "runtime_data" : [],
4735 "primitives" : [
4736 {
4737 "op" : "remove_header",
4738 "parameters" : [
4739 {
4740 "type" : "header",
4741 "value" : "gtpu_ipv4"
4742 }
4743 ],
4744 "source_info" : {
4745 "filename" : "fabric.p4",
4746 "line" : 67,
4747 "column" : 26,
4748 "source_fragment" : "hdr.gtpu_ipv4"
4749 }
4750 },
4751 {
4752 "op" : "remove_header",
4753 "parameters" : [
4754 {
4755 "type" : "header",
4756 "value" : "gtpu_udp"
4757 }
4758 ],
4759 "source_info" : {
4760 "filename" : "fabric.p4",
4761 "line" : 67,
4762 "column" : 41,
4763 "source_fragment" : "hdr.gtpu_udp"
4764 }
4765 },
4766 {
4767 "op" : "remove_header",
4768 "parameters" : [
4769 {
4770 "type" : "header",
4771 "value" : "gtpu"
4772 }
4773 ],
4774 "source_info" : {
4775 "filename" : "fabric.p4",
4776 "line" : 67,
4777 "column" : 55,
4778 "source_fragment" : "hdr.gtpu"
4779 }
4780 }
4781 ]
4782 }
4783 ],
4784 "pipelines" : [
4785 {
4786 "name" : "ingress",
4787 "id" : 0,
4788 "source_info" : {
4789 "filename" : "fabric.p4",
4790 "line" : 33,
4791 "column" : 8,
4792 "source_fragment" : "FabricIngress"
4793 },
4794 "init_table" : "node_2",
4795 "tables" : [
4796 {
4797 "name" : "tbl_act",
4798 "id" : 0,
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" : [42],
4807 "actions" : ["act"],
4808 "base_default_next" : null,
4809 "next_tables" : {
4810 "act" : null
4811 },
4812 "default_entry" : {
4813 "action_id" : 42,
4814 "action_const" : true,
4815 "action_data" : [],
4816 "action_entry_const" : true
4817 }
4818 },
4819 {
4820 "name" : "tbl_act_0",
4821 "id" : 1,
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,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004829 "action_ids" : [51],
4830 "actions" : ["act_8"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004831 "base_default_next" : "node_5",
4832 "next_tables" : {
Carmelo Cascone14cde402018-01-25 01:57:18 -08004833 "act_8" : "node_5"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004834 },
4835 "default_entry" : {
Carmelo Cascone14cde402018-01-25 01:57:18 -08004836 "action_id" : 51,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004837 "action_const" : true,
4838 "action_data" : [],
4839 "action_entry_const" : true
4840 }
4841 },
4842 {
4843 "name" : "tbl_act_1",
4844 "id" : 2,
4845 "key" : [],
4846 "match_type" : "exact",
4847 "type" : "simple",
4848 "max_size" : 1024,
4849 "with_counters" : false,
4850 "support_timeout" : false,
4851 "direct_meters" : null,
4852 "action_ids" : [45],
4853 "actions" : ["act_2"],
4854 "base_default_next" : "spgw_ingress.s1u_filter_table",
4855 "next_tables" : {
4856 "act_2" : "spgw_ingress.s1u_filter_table"
4857 },
4858 "default_entry" : {
4859 "action_id" : 45,
4860 "action_const" : true,
4861 "action_data" : [],
4862 "action_entry_const" : true
4863 }
4864 },
4865 {
4866 "name" : "spgw_ingress.s1u_filter_table",
4867 "id" : 3,
4868 "source_info" : {
4869 "filename" : "include/spgw.p4",
4870 "line" : 71,
4871 "column" : 10,
4872 "source_fragment" : "s1u_filter_table"
4873 },
4874 "key" : [
4875 {
4876 "match_type" : "exact",
4877 "target" : ["gtpu_ipv4", "dst_addr"],
4878 "mask" : null
4879 }
4880 ],
4881 "match_type" : "exact",
4882 "type" : "simple",
4883 "max_size" : 1024,
4884 "with_counters" : false,
4885 "support_timeout" : false,
4886 "direct_meters" : null,
4887 "action_ids" : [1],
4888 "actions" : ["NoAction"],
4889 "base_default_next" : null,
4890 "next_tables" : {
4891 "__HIT__" : "tbl_act_2",
4892 "__MISS__" : "tbl_act_3"
4893 },
4894 "default_entry" : {
4895 "action_id" : 1,
4896 "action_const" : false,
4897 "action_data" : [],
4898 "action_entry_const" : false
4899 }
4900 },
4901 {
4902 "name" : "tbl_act_2",
4903 "id" : 4,
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" : [43],
4912 "actions" : ["act_0"],
4913 "base_default_next" : "node_10",
4914 "next_tables" : {
4915 "act_0" : "node_10"
4916 },
4917 "default_entry" : {
4918 "action_id" : 43,
4919 "action_const" : true,
4920 "action_data" : [],
4921 "action_entry_const" : true
4922 }
4923 },
4924 {
4925 "name" : "tbl_act_3",
4926 "id" : 5,
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" : [44],
4935 "actions" : ["act_1"],
4936 "base_default_next" : "node_10",
4937 "next_tables" : {
4938 "act_1" : "node_10"
4939 },
4940 "default_entry" : {
4941 "action_id" : 44,
4942 "action_const" : true,
4943 "action_data" : [],
4944 "action_entry_const" : true
4945 }
4946 },
4947 {
4948 "name" : "tbl_act_4",
4949 "id" : 6,
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" : [46],
4958 "actions" : ["act_3"],
Carmelo Cascone14cde402018-01-25 01:57:18 -08004959 "base_default_next" : "node_18",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004960 "next_tables" : {
Carmelo Cascone14cde402018-01-25 01:57:18 -08004961 "act_3" : "node_18"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004962 },
4963 "default_entry" : {
4964 "action_id" : 46,
4965 "action_const" : true,
4966 "action_data" : [],
4967 "action_entry_const" : true
4968 }
4969 },
4970 {
Carmelo Cascone14cde402018-01-25 01:57:18 -08004971 "name" : "tbl_act_5",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004972 "id" : 7,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004973 "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" : [49],
4981 "actions" : ["act_6"],
4982 "base_default_next" : "spgw_ingress.ue_filter_table",
4983 "next_tables" : {
4984 "act_6" : "spgw_ingress.ue_filter_table"
4985 },
4986 "default_entry" : {
4987 "action_id" : 49,
4988 "action_const" : true,
4989 "action_data" : [],
4990 "action_entry_const" : true
4991 }
4992 },
4993 {
4994 "name" : "spgw_ingress.ue_filter_table",
4995 "id" : 8,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004996 "source_info" : {
4997 "filename" : "include/spgw.p4",
4998 "line" : 61,
4999 "column" : 10,
5000 "source_fragment" : "ue_filter_table"
5001 },
5002 "key" : [
5003 {
5004 "match_type" : "lpm",
5005 "target" : ["ipv4", "dst_addr"],
5006 "mask" : null
5007 }
5008 ],
5009 "match_type" : "lpm",
5010 "type" : "simple",
5011 "max_size" : 1024,
5012 "with_counters" : false,
5013 "support_timeout" : false,
5014 "direct_meters" : null,
5015 "action_ids" : [0],
5016 "actions" : ["NoAction"],
5017 "base_default_next" : null,
5018 "next_tables" : {
Carmelo Cascone14cde402018-01-25 01:57:18 -08005019 "__HIT__" : "tbl_act_6",
5020 "__MISS__" : "tbl_act_7"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005021 },
5022 "default_entry" : {
5023 "action_id" : 0,
5024 "action_const" : false,
5025 "action_data" : [],
5026 "action_entry_const" : false
5027 }
5028 },
5029 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005030 "name" : "tbl_act_6",
5031 "id" : 9,
5032 "key" : [],
5033 "match_type" : "exact",
5034 "type" : "simple",
5035 "max_size" : 1024,
5036 "with_counters" : false,
5037 "support_timeout" : false,
5038 "direct_meters" : null,
Carmelo Cascone14cde402018-01-25 01:57:18 -08005039 "action_ids" : [47],
5040 "actions" : ["act_4"],
5041 "base_default_next" : "node_16",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005042 "next_tables" : {
Carmelo Cascone14cde402018-01-25 01:57:18 -08005043 "act_4" : "node_16"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005044 },
5045 "default_entry" : {
Carmelo Cascone14cde402018-01-25 01:57:18 -08005046 "action_id" : 47,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005047 "action_const" : true,
5048 "action_data" : [],
5049 "action_entry_const" : true
5050 }
5051 },
5052 {
5053 "name" : "tbl_act_7",
5054 "id" : 10,
5055 "key" : [],
5056 "match_type" : "exact",
5057 "type" : "simple",
5058 "max_size" : 1024,
5059 "with_counters" : false,
5060 "support_timeout" : false,
5061 "direct_meters" : null,
Carmelo Cascone14cde402018-01-25 01:57:18 -08005062 "action_ids" : [48],
5063 "actions" : ["act_5"],
5064 "base_default_next" : "node_16",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005065 "next_tables" : {
Carmelo Cascone14cde402018-01-25 01:57:18 -08005066 "act_5" : "node_16"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005067 },
5068 "default_entry" : {
Carmelo Cascone14cde402018-01-25 01:57:18 -08005069 "action_id" : 48,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005070 "action_const" : true,
5071 "action_data" : [],
5072 "action_entry_const" : true
5073 }
5074 },
5075 {
5076 "name" : "tbl_act_8",
5077 "id" : 11,
5078 "key" : [],
5079 "match_type" : "exact",
5080 "type" : "simple",
5081 "max_size" : 1024,
5082 "with_counters" : false,
5083 "support_timeout" : false,
5084 "direct_meters" : null,
Carmelo Cascone14cde402018-01-25 01:57:18 -08005085 "action_ids" : [50],
5086 "actions" : ["act_7"],
5087 "base_default_next" : "node_18",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005088 "next_tables" : {
Carmelo Cascone14cde402018-01-25 01:57:18 -08005089 "act_7" : "node_18"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005090 },
5091 "default_entry" : {
Carmelo Cascone14cde402018-01-25 01:57:18 -08005092 "action_id" : 50,
5093 "action_const" : true,
5094 "action_data" : [],
5095 "action_entry_const" : true
5096 }
5097 },
5098 {
5099 "name" : "tbl_act_9",
5100 "id" : 12,
5101 "key" : [],
5102 "match_type" : "exact",
5103 "type" : "simple",
5104 "max_size" : 1024,
5105 "with_counters" : false,
5106 "support_timeout" : false,
5107 "direct_meters" : null,
5108 "action_ids" : [52],
5109 "actions" : ["act_9"],
5110 "base_default_next" : "node_20",
5111 "next_tables" : {
5112 "act_9" : "node_20"
5113 },
5114 "default_entry" : {
5115 "action_id" : 52,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005116 "action_const" : true,
5117 "action_data" : [],
5118 "action_entry_const" : true
5119 }
5120 },
5121 {
5122 "name" : "tbl_spgw_ingress_gtpu_decap",
Carmelo Cascone14cde402018-01-25 01:57:18 -08005123 "id" : 13,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005124 "key" : [],
5125 "match_type" : "exact",
5126 "type" : "simple",
5127 "max_size" : 1024,
5128 "with_counters" : false,
5129 "support_timeout" : false,
5130 "direct_meters" : null,
5131 "action_ids" : [15],
5132 "actions" : ["spgw_ingress.gtpu_decap"],
5133 "base_default_next" : "spgw_ingress.sdf_rule_lookup",
5134 "next_tables" : {
5135 "spgw_ingress.gtpu_decap" : "spgw_ingress.sdf_rule_lookup"
5136 },
5137 "default_entry" : {
5138 "action_id" : 15,
5139 "action_const" : true,
5140 "action_data" : [],
5141 "action_entry_const" : true
5142 }
5143 },
5144 {
5145 "name" : "spgw_ingress.sdf_rule_lookup",
Carmelo Cascone14cde402018-01-25 01:57:18 -08005146 "id" : 14,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005147 "source_info" : {
5148 "filename" : "include/spgw.p4",
5149 "line" : 81,
5150 "column" : 10,
5151 "source_fragment" : "sdf_rule_lookup"
5152 },
5153 "key" : [
5154 {
5155 "match_type" : "exact",
5156 "target" : ["spgw", "direction"],
5157 "mask" : null
5158 },
5159 {
5160 "match_type" : "ternary",
5161 "target" : ["ipv4", "src_addr"],
5162 "mask" : null
5163 },
5164 {
5165 "match_type" : "ternary",
5166 "target" : ["ipv4", "dst_addr"],
5167 "mask" : null
5168 },
5169 {
5170 "match_type" : "ternary",
5171 "target" : ["ipv4", "protocol"],
5172 "mask" : null
5173 },
5174 {
5175 "match_type" : "ternary",
5176 "target" : ["spgw", "l4_src_port"],
5177 "mask" : null
5178 },
5179 {
5180 "match_type" : "ternary",
5181 "target" : ["spgw", "l4_dst_port"],
5182 "mask" : null
5183 }
5184 ],
5185 "match_type" : "ternary",
5186 "type" : "simple",
5187 "max_size" : 1024,
5188 "with_counters" : false,
5189 "support_timeout" : false,
5190 "direct_meters" : null,
5191 "action_ids" : [16],
5192 "actions" : ["spgw_ingress.set_sdf_rule_id"],
5193 "base_default_next" : "spgw_ingress.pcc_rule_lookup",
5194 "next_tables" : {
5195 "spgw_ingress.set_sdf_rule_id" : "spgw_ingress.pcc_rule_lookup"
5196 },
5197 "default_entry" : {
5198 "action_id" : 16,
5199 "action_const" : true,
5200 "action_data" : ["0x0"],
5201 "action_entry_const" : true
5202 }
5203 },
5204 {
5205 "name" : "spgw_ingress.pcc_rule_lookup",
Carmelo Cascone14cde402018-01-25 01:57:18 -08005206 "id" : 15,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005207 "source_info" : {
5208 "filename" : "include/spgw.p4",
5209 "line" : 96,
5210 "column" : 10,
5211 "source_fragment" : "pcc_rule_lookup"
5212 },
5213 "key" : [
5214 {
5215 "match_type" : "exact",
5216 "target" : ["spgw", "sdf_rule_id"],
5217 "mask" : null
5218 }
5219 ],
5220 "match_type" : "exact",
5221 "type" : "simple",
5222 "max_size" : 1024,
5223 "with_counters" : false,
5224 "support_timeout" : false,
5225 "direct_meters" : null,
5226 "action_ids" : [17],
5227 "actions" : ["spgw_ingress.set_pcc_rule_id"],
5228 "base_default_next" : "spgw_ingress.pcc_info_lookup",
5229 "next_tables" : {
5230 "spgw_ingress.set_pcc_rule_id" : "spgw_ingress.pcc_info_lookup"
5231 },
5232 "default_entry" : {
5233 "action_id" : 17,
5234 "action_const" : true,
5235 "action_data" : ["0x0"],
5236 "action_entry_const" : true
5237 }
5238 },
5239 {
5240 "name" : "spgw_ingress.pcc_info_lookup",
Carmelo Cascone14cde402018-01-25 01:57:18 -08005241 "id" : 16,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005242 "source_info" : {
5243 "filename" : "include/spgw.p4",
5244 "line" : 106,
5245 "column" : 10,
5246 "source_fragment" : "pcc_info_lookup"
5247 },
5248 "key" : [
5249 {
5250 "match_type" : "exact",
5251 "target" : ["spgw", "pcc_rule_id"],
5252 "mask" : null
5253 }
5254 ],
5255 "match_type" : "exact",
5256 "type" : "simple",
5257 "max_size" : 1024,
5258 "with_counters" : false,
5259 "support_timeout" : false,
5260 "direct_meters" : null,
5261 "action_ids" : [18],
5262 "actions" : ["spgw_ingress.set_pcc_info"],
Carmelo Cascone14cde402018-01-25 01:57:18 -08005263 "base_default_next" : "node_26",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005264 "next_tables" : {
Carmelo Cascone14cde402018-01-25 01:57:18 -08005265 "spgw_ingress.set_pcc_info" : "node_26"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005266 },
5267 "default_entry" : {
5268 "action_id" : 18,
5269 "action_const" : true,
5270 "action_data" : ["0x0"],
5271 "action_entry_const" : true
5272 }
5273 },
5274 {
Carmelo Cascone14cde402018-01-25 01:57:18 -08005275 "name" : "tbl_act_10",
5276 "id" : 17,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005277 "key" : [],
5278 "match_type" : "exact",
5279 "type" : "simple",
5280 "max_size" : 1024,
5281 "with_counters" : false,
5282 "support_timeout" : false,
5283 "direct_meters" : null,
Carmelo Cascone14cde402018-01-25 01:57:18 -08005284 "action_ids" : [53],
5285 "actions" : ["act_10"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005286 "base_default_next" : null,
5287 "next_tables" : {
Carmelo Cascone14cde402018-01-25 01:57:18 -08005288 "act_10" : null
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005289 },
5290 "default_entry" : {
Carmelo Cascone14cde402018-01-25 01:57:18 -08005291 "action_id" : 53,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005292 "action_const" : true,
5293 "action_data" : [],
5294 "action_entry_const" : true
5295 }
5296 },
5297 {
5298 "name" : "spgw_ingress.dl_sess_lookup",
Carmelo Cascone14cde402018-01-25 01:57:18 -08005299 "id" : 18,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005300 "source_info" : {
5301 "filename" : "include/spgw.p4",
5302 "line" : 116,
5303 "column" : 10,
5304 "source_fragment" : "dl_sess_lookup"
5305 },
5306 "key" : [
5307 {
5308 "match_type" : "exact",
5309 "target" : ["ipv4", "dst_addr"],
5310 "mask" : null
5311 }
5312 ],
5313 "match_type" : "exact",
5314 "type" : "simple",
5315 "max_size" : 1024,
5316 "with_counters" : false,
5317 "support_timeout" : false,
5318 "direct_meters" : null,
5319 "action_ids" : [19, 2],
5320 "actions" : ["spgw_ingress.set_dl_sess_info", "NoAction"],
5321 "base_default_next" : null,
5322 "next_tables" : {
Carmelo Cascone14cde402018-01-25 01:57:18 -08005323 "__HIT__" : "tbl_act_11",
5324 "__MISS__" : "tbl_act_12"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005325 },
5326 "default_entry" : {
5327 "action_id" : 2,
5328 "action_const" : false,
5329 "action_data" : [],
5330 "action_entry_const" : false
5331 }
5332 },
5333 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005334 "name" : "tbl_act_11",
5335 "id" : 19,
5336 "key" : [],
5337 "match_type" : "exact",
5338 "type" : "simple",
5339 "max_size" : 1024,
5340 "with_counters" : false,
5341 "support_timeout" : false,
5342 "direct_meters" : null,
5343 "action_ids" : [54],
5344 "actions" : ["act_11"],
Carmelo Cascone14cde402018-01-25 01:57:18 -08005345 "base_default_next" : "node_33",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005346 "next_tables" : {
Carmelo Cascone14cde402018-01-25 01:57:18 -08005347 "act_11" : "node_33"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005348 },
5349 "default_entry" : {
5350 "action_id" : 54,
5351 "action_const" : true,
5352 "action_data" : [],
5353 "action_entry_const" : true
5354 }
5355 },
5356 {
5357 "name" : "tbl_act_12",
5358 "id" : 20,
5359 "key" : [],
5360 "match_type" : "exact",
5361 "type" : "simple",
5362 "max_size" : 1024,
5363 "with_counters" : false,
5364 "support_timeout" : false,
5365 "direct_meters" : null,
5366 "action_ids" : [55],
5367 "actions" : ["act_12"],
Carmelo Cascone14cde402018-01-25 01:57:18 -08005368 "base_default_next" : "node_33",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005369 "next_tables" : {
Carmelo Cascone14cde402018-01-25 01:57:18 -08005370 "act_12" : "node_33"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005371 },
5372 "default_entry" : {
5373 "action_id" : 55,
5374 "action_const" : true,
5375 "action_data" : [],
5376 "action_entry_const" : true
5377 }
5378 },
5379 {
Carmelo Cascone14cde402018-01-25 01:57:18 -08005380 "name" : "tbl_act_13",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005381 "id" : 21,
Carmelo Cascone14cde402018-01-25 01:57:18 -08005382 "key" : [],
5383 "match_type" : "exact",
5384 "type" : "simple",
5385 "max_size" : 1024,
5386 "with_counters" : false,
5387 "support_timeout" : false,
5388 "direct_meters" : null,
5389 "action_ids" : [56],
5390 "actions" : ["act_13"],
5391 "base_default_next" : null,
5392 "next_tables" : {
5393 "act_13" : null
5394 },
5395 "default_entry" : {
5396 "action_id" : 56,
5397 "action_const" : true,
5398 "action_data" : [],
5399 "action_entry_const" : true
5400 }
5401 },
5402 {
5403 "name" : "spgw_ingress.ue_cdr_table",
5404 "id" : 22,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005405 "source_info" : {
5406 "filename" : "include/spgw.p4",
5407 "line" : 126,
5408 "column" : 10,
5409 "source_fragment" : "ue_cdr_table"
5410 },
5411 "key" : [
5412 {
5413 "match_type" : "exact",
5414 "target" : ["ipv4", "dst_addr"],
5415 "mask" : null
5416 }
5417 ],
5418 "match_type" : "exact",
5419 "type" : "simple",
5420 "max_size" : 1024,
5421 "with_counters" : true,
5422 "support_timeout" : false,
5423 "direct_meters" : null,
5424 "action_ids" : [20, 3],
5425 "actions" : ["spgw_ingress.update_ue_cdr", "NoAction"],
5426 "base_default_next" : "filtering.ingress_port_vlan",
5427 "next_tables" : {
5428 "spgw_ingress.update_ue_cdr" : "filtering.ingress_port_vlan",
5429 "NoAction" : "filtering.ingress_port_vlan"
5430 },
5431 "default_entry" : {
5432 "action_id" : 3,
5433 "action_const" : false,
5434 "action_data" : [],
5435 "action_entry_const" : false
5436 }
5437 },
5438 {
5439 "name" : "filtering.ingress_port_vlan",
Carmelo Cascone14cde402018-01-25 01:57:18 -08005440 "id" : 23,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005441 "source_info" : {
5442 "filename" : "include/control/filtering.p4",
5443 "line" : 57,
5444 "column" : 10,
5445 "source_fragment" : "ingress_port_vlan"
5446 },
5447 "key" : [
5448 {
5449 "match_type" : "exact",
5450 "target" : ["standard_metadata", "ingress_port"],
5451 "mask" : null
5452 },
5453 {
5454 "match_type" : "exact",
5455 "target" : ["vlan_tag", "$valid$"],
5456 "mask" : null
5457 },
5458 {
5459 "match_type" : "ternary",
5460 "target" : ["vlan_tag", "vlan_id"],
5461 "mask" : null
5462 }
5463 ],
5464 "match_type" : "ternary",
5465 "type" : "simple",
5466 "max_size" : 1024,
5467 "with_counters" : true,
5468 "support_timeout" : false,
5469 "direct_meters" : null,
5470 "action_ids" : [23, 22, 13, 21],
5471 "actions" : ["filtering.push_internal_vlan", "filtering.set_vlan", "nop", "filtering.drop"],
5472 "base_default_next" : "filtering.fwd_classifier",
5473 "next_tables" : {
5474 "filtering.push_internal_vlan" : "filtering.fwd_classifier",
5475 "filtering.set_vlan" : "filtering.fwd_classifier",
5476 "nop" : "filtering.fwd_classifier",
5477 "filtering.drop" : "filtering.fwd_classifier"
5478 },
5479 "default_entry" : {
5480 "action_id" : 13,
5481 "action_const" : true,
5482 "action_data" : [],
5483 "action_entry_const" : true
5484 }
5485 },
5486 {
5487 "name" : "filtering.fwd_classifier",
Carmelo Cascone14cde402018-01-25 01:57:18 -08005488 "id" : 24,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005489 "source_info" : {
5490 "filename" : "include/control/filtering.p4",
5491 "line" : 76,
5492 "column" : 10,
5493 "source_fragment" : "fwd_classifier"
5494 },
5495 "key" : [
5496 {
5497 "match_type" : "exact",
5498 "target" : ["standard_metadata", "ingress_port"],
5499 "mask" : null
5500 },
5501 {
5502 "match_type" : "exact",
5503 "target" : ["ethernet", "dst_addr"],
5504 "mask" : null
5505 },
5506 {
5507 "match_type" : "exact",
5508 "target" : ["scalars", "fabric_metadata_t.original_ether_type"],
5509 "mask" : null
5510 }
5511 ],
5512 "match_type" : "exact",
5513 "type" : "simple",
5514 "max_size" : 1024,
5515 "with_counters" : true,
5516 "support_timeout" : false,
5517 "direct_meters" : null,
5518 "action_ids" : [24],
5519 "actions" : ["filtering.set_forwarding_type"],
Carmelo Cascone14cde402018-01-25 01:57:18 -08005520 "base_default_next" : "node_39",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005521 "next_tables" : {
Carmelo Cascone14cde402018-01-25 01:57:18 -08005522 "filtering.set_forwarding_type" : "node_39"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005523 },
5524 "default_entry" : {
5525 "action_id" : 24,
5526 "action_const" : true,
5527 "action_data" : ["0x0"],
5528 "action_entry_const" : true
5529 }
5530 },
5531 {
5532 "name" : "forwarding.bridging",
Carmelo Cascone14cde402018-01-25 01:57:18 -08005533 "id" : 25,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005534 "source_info" : {
5535 "filename" : "include/control/forwarding.p4",
5536 "line" : 55,
5537 "column" : 10,
5538 "source_fragment" : "bridging"
5539 },
5540 "key" : [
5541 {
5542 "match_type" : "exact",
5543 "target" : ["vlan_tag", "vlan_id"],
5544 "mask" : null
5545 },
5546 {
5547 "match_type" : "ternary",
5548 "target" : ["ethernet", "dst_addr"],
5549 "mask" : null
5550 }
5551 ],
5552 "match_type" : "ternary",
5553 "type" : "simple",
5554 "max_size" : 1024,
5555 "with_counters" : true,
5556 "support_timeout" : false,
5557 "direct_meters" : null,
5558 "action_ids" : [26, 4],
5559 "actions" : ["forwarding.set_next_id", "NoAction"],
5560 "base_default_next" : "forwarding.acl",
5561 "next_tables" : {
5562 "forwarding.set_next_id" : "forwarding.acl",
5563 "NoAction" : "forwarding.acl"
5564 },
5565 "default_entry" : {
5566 "action_id" : 4,
5567 "action_const" : false,
5568 "action_data" : [],
5569 "action_entry_const" : false
5570 }
5571 },
5572 {
5573 "name" : "forwarding.mpls",
Carmelo Cascone14cde402018-01-25 01:57:18 -08005574 "id" : 26,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005575 "source_info" : {
5576 "filename" : "include/control/forwarding.p4",
5577 "line" : 67,
5578 "column" : 10,
5579 "source_fragment" : "mpls"
5580 },
5581 "key" : [
5582 {
5583 "match_type" : "exact",
5584 "target" : ["mpls", "label"],
5585 "mask" : null
5586 }
5587 ],
5588 "match_type" : "exact",
5589 "type" : "simple",
5590 "max_size" : 1024,
5591 "with_counters" : true,
5592 "support_timeout" : false,
5593 "direct_meters" : null,
5594 "action_ids" : [32, 5],
5595 "actions" : ["forwarding.pop_mpls_and_next", "NoAction"],
Carmelo Cascone14cde402018-01-25 01:57:18 -08005596 "base_default_next" : "tbl_act_14",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005597 "next_tables" : {
Carmelo Cascone14cde402018-01-25 01:57:18 -08005598 "forwarding.pop_mpls_and_next" : "tbl_act_14",
5599 "NoAction" : "tbl_act_14"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005600 },
5601 "default_entry" : {
5602 "action_id" : 5,
5603 "action_const" : false,
5604 "action_data" : [],
5605 "action_entry_const" : false
5606 }
5607 },
5608 {
Carmelo Cascone14cde402018-01-25 01:57:18 -08005609 "name" : "tbl_act_14",
5610 "id" : 27,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005611 "key" : [],
5612 "match_type" : "exact",
5613 "type" : "simple",
5614 "max_size" : 1024,
5615 "with_counters" : false,
5616 "support_timeout" : false,
5617 "direct_meters" : null,
Carmelo Cascone14cde402018-01-25 01:57:18 -08005618 "action_ids" : [57],
5619 "actions" : ["act_14"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005620 "base_default_next" : "forwarding.acl",
5621 "next_tables" : {
Carmelo Cascone14cde402018-01-25 01:57:18 -08005622 "act_14" : "forwarding.acl"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005623 },
5624 "default_entry" : {
Carmelo Cascone14cde402018-01-25 01:57:18 -08005625 "action_id" : 57,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005626 "action_const" : true,
5627 "action_data" : [],
5628 "action_entry_const" : true
5629 }
5630 },
5631 {
5632 "name" : "forwarding.unicast_v4",
Carmelo Cascone14cde402018-01-25 01:57:18 -08005633 "id" : 28,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005634 "source_info" : {
5635 "filename" : "include/control/forwarding.p4",
5636 "line" : 78,
5637 "column" : 10,
5638 "source_fragment" : "unicast_v4"
5639 },
5640 "key" : [
5641 {
5642 "match_type" : "lpm",
5643 "target" : ["ipv4", "dst_addr"],
5644 "mask" : null
5645 }
5646 ],
5647 "match_type" : "lpm",
5648 "type" : "simple",
5649 "max_size" : 1024,
5650 "with_counters" : true,
5651 "support_timeout" : false,
5652 "direct_meters" : null,
5653 "action_ids" : [27, 6],
5654 "actions" : ["forwarding.set_next_id", "NoAction"],
5655 "base_default_next" : "forwarding.acl",
5656 "next_tables" : {
5657 "forwarding.set_next_id" : "forwarding.acl",
5658 "NoAction" : "forwarding.acl"
5659 },
5660 "default_entry" : {
5661 "action_id" : 6,
5662 "action_const" : false,
5663 "action_data" : [],
5664 "action_entry_const" : false
5665 }
5666 },
5667 {
5668 "name" : "forwarding.multicast_v4",
Carmelo Cascone14cde402018-01-25 01:57:18 -08005669 "id" : 29,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005670 "source_info" : {
5671 "filename" : "include/control/forwarding.p4",
5672 "line" : 89,
5673 "column" : 10,
5674 "source_fragment" : "multicast_v4"
5675 },
5676 "key" : [
5677 {
5678 "match_type" : "exact",
5679 "target" : ["vlan_tag", "vlan_id"],
5680 "mask" : null
5681 },
5682 {
5683 "match_type" : "lpm",
5684 "target" : ["ipv4", "dst_addr"],
5685 "mask" : null
5686 }
5687 ],
5688 "match_type" : "lpm",
5689 "type" : "simple",
5690 "max_size" : 1024,
5691 "with_counters" : true,
5692 "support_timeout" : false,
5693 "direct_meters" : null,
5694 "action_ids" : [28, 7],
5695 "actions" : ["forwarding.set_next_id", "NoAction"],
5696 "base_default_next" : "forwarding.acl",
5697 "next_tables" : {
5698 "forwarding.set_next_id" : "forwarding.acl",
5699 "NoAction" : "forwarding.acl"
5700 },
5701 "default_entry" : {
5702 "action_id" : 7,
5703 "action_const" : false,
5704 "action_data" : [],
5705 "action_entry_const" : false
5706 }
5707 },
5708 {
5709 "name" : "forwarding.unicast_v6",
Carmelo Cascone14cde402018-01-25 01:57:18 -08005710 "id" : 30,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005711 "source_info" : {
5712 "filename" : "include/control/forwarding.p4",
5713 "line" : 101,
5714 "column" : 10,
5715 "source_fragment" : "unicast_v6"
5716 },
5717 "key" : [
5718 {
5719 "match_type" : "lpm",
5720 "target" : ["ipv6", "dst_addr"],
5721 "mask" : null
5722 }
5723 ],
5724 "match_type" : "lpm",
5725 "type" : "simple",
5726 "max_size" : 1024,
5727 "with_counters" : true,
5728 "support_timeout" : false,
5729 "direct_meters" : null,
5730 "action_ids" : [29, 8],
5731 "actions" : ["forwarding.set_next_id", "NoAction"],
5732 "base_default_next" : "forwarding.acl",
5733 "next_tables" : {
5734 "forwarding.set_next_id" : "forwarding.acl",
5735 "NoAction" : "forwarding.acl"
5736 },
5737 "default_entry" : {
5738 "action_id" : 8,
5739 "action_const" : false,
5740 "action_data" : [],
5741 "action_entry_const" : false
5742 }
5743 },
5744 {
5745 "name" : "forwarding.multicast_v6",
Carmelo Cascone14cde402018-01-25 01:57:18 -08005746 "id" : 31,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005747 "source_info" : {
5748 "filename" : "include/control/forwarding.p4",
5749 "line" : 112,
5750 "column" : 10,
5751 "source_fragment" : "multicast_v6"
5752 },
5753 "key" : [
5754 {
5755 "match_type" : "exact",
5756 "target" : ["vlan_tag", "vlan_id"],
5757 "mask" : null
5758 },
5759 {
5760 "match_type" : "lpm",
5761 "target" : ["ipv6", "dst_addr"],
5762 "mask" : null
5763 }
5764 ],
5765 "match_type" : "lpm",
5766 "type" : "simple",
5767 "max_size" : 1024,
5768 "with_counters" : true,
5769 "support_timeout" : false,
5770 "direct_meters" : null,
5771 "action_ids" : [30, 9],
5772 "actions" : ["forwarding.set_next_id", "NoAction"],
5773 "base_default_next" : "forwarding.acl",
5774 "next_tables" : {
5775 "forwarding.set_next_id" : "forwarding.acl",
5776 "NoAction" : "forwarding.acl"
5777 },
5778 "default_entry" : {
5779 "action_id" : 9,
5780 "action_const" : false,
5781 "action_data" : [],
5782 "action_entry_const" : false
5783 }
5784 },
5785 {
5786 "name" : "forwarding.acl",
Carmelo Cascone14cde402018-01-25 01:57:18 -08005787 "id" : 32,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005788 "source_info" : {
5789 "filename" : "include/control/forwarding.p4",
5790 "line" : 124,
5791 "column" : 10,
5792 "source_fragment" : "acl"
5793 },
5794 "key" : [
5795 {
5796 "match_type" : "ternary",
5797 "target" : ["standard_metadata", "ingress_port"],
5798 "mask" : null
5799 },
5800 {
5801 "match_type" : "ternary",
5802 "target" : ["scalars", "fabric_metadata_t.ip_proto"],
5803 "mask" : null
5804 },
5805 {
5806 "match_type" : "ternary",
5807 "target" : ["scalars", "fabric_metadata_t.l4_src_port"],
5808 "mask" : null
5809 },
5810 {
5811 "match_type" : "ternary",
5812 "target" : ["scalars", "fabric_metadata_t.l4_dst_port"],
5813 "mask" : null
5814 },
5815 {
5816 "match_type" : "ternary",
5817 "target" : ["scalars", "fabric_metadata_t.original_ether_type"],
5818 "mask" : null
5819 },
5820 {
5821 "match_type" : "ternary",
5822 "target" : ["ethernet", "dst_addr"],
5823 "mask" : null
5824 },
5825 {
5826 "match_type" : "ternary",
5827 "target" : ["ethernet", "src_addr"],
5828 "mask" : null
5829 },
5830 {
5831 "match_type" : "ternary",
5832 "target" : ["vlan_tag", "vlan_id"],
5833 "mask" : null
5834 },
5835 {
5836 "match_type" : "ternary",
5837 "target" : ["ipv4", "src_addr"],
5838 "mask" : null
5839 },
5840 {
5841 "match_type" : "ternary",
5842 "target" : ["ipv4", "dst_addr"],
5843 "mask" : null
5844 },
5845 {
5846 "match_type" : "ternary",
5847 "target" : ["icmp", "icmp_type"],
5848 "mask" : null
5849 },
5850 {
5851 "match_type" : "ternary",
5852 "target" : ["icmp", "icmp_code"],
5853 "mask" : null
5854 }
5855 ],
5856 "match_type" : "ternary",
5857 "type" : "simple",
5858 "max_size" : 256,
5859 "with_counters" : true,
5860 "support_timeout" : false,
5861 "direct_meters" : null,
5862 "action_ids" : [31, 33, 25, 14],
5863 "actions" : ["forwarding.set_next_id", "forwarding.duplicate_to_controller", "forwarding.drop", "nop"],
5864 "base_default_next" : "next.simple",
5865 "next_tables" : {
5866 "forwarding.set_next_id" : "next.simple",
5867 "forwarding.duplicate_to_controller" : "next.simple",
5868 "forwarding.drop" : "next.simple",
5869 "nop" : "next.simple"
5870 },
5871 "default_entry" : {
5872 "action_id" : 14,
5873 "action_const" : true,
5874 "action_data" : [],
5875 "action_entry_const" : true
5876 }
5877 },
5878 {
5879 "name" : "next.simple",
Carmelo Cascone14cde402018-01-25 01:57:18 -08005880 "id" : 33,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005881 "source_info" : {
5882 "filename" : "include/control/next.p4",
5883 "line" : 89,
5884 "column" : 10,
5885 "source_fragment" : "simple"
5886 },
5887 "key" : [
5888 {
5889 "match_type" : "exact",
5890 "target" : ["scalars", "fabric_metadata_t.next_id"],
5891 "mask" : null
5892 }
5893 ],
5894 "match_type" : "exact",
5895 "type" : "simple",
5896 "max_size" : 1024,
5897 "with_counters" : true,
5898 "support_timeout" : false,
5899 "direct_meters" : null,
5900 "action_ids" : [34, 35, 36, 39, 10],
5901 "actions" : ["next.output", "next.set_vlan_output", "next.l3_routing", "next.mpls_routing_v4", "NoAction"],
5902 "base_default_next" : null,
5903 "next_tables" : {
Carmelo Cascone14cde402018-01-25 01:57:18 -08005904 "__HIT__" : "tbl_act_15",
5905 "__MISS__" : "tbl_act_16"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005906 },
5907 "default_entry" : {
5908 "action_id" : 10,
5909 "action_const" : false,
5910 "action_data" : [],
5911 "action_entry_const" : false
5912 }
5913 },
5914 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005915 "name" : "tbl_act_15",
5916 "id" : 34,
5917 "key" : [],
5918 "match_type" : "exact",
5919 "type" : "simple",
5920 "max_size" : 1024,
5921 "with_counters" : false,
5922 "support_timeout" : false,
5923 "direct_meters" : null,
5924 "action_ids" : [58],
5925 "actions" : ["act_15"],
Carmelo Cascone14cde402018-01-25 01:57:18 -08005926 "base_default_next" : "node_56",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005927 "next_tables" : {
Carmelo Cascone14cde402018-01-25 01:57:18 -08005928 "act_15" : "node_56"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005929 },
5930 "default_entry" : {
5931 "action_id" : 58,
5932 "action_const" : true,
5933 "action_data" : [],
5934 "action_entry_const" : true
5935 }
5936 },
5937 {
5938 "name" : "tbl_act_16",
5939 "id" : 35,
5940 "key" : [],
5941 "match_type" : "exact",
5942 "type" : "simple",
5943 "max_size" : 1024,
5944 "with_counters" : false,
5945 "support_timeout" : false,
5946 "direct_meters" : null,
5947 "action_ids" : [59],
5948 "actions" : ["act_16"],
Carmelo Cascone14cde402018-01-25 01:57:18 -08005949 "base_default_next" : "node_56",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005950 "next_tables" : {
Carmelo Cascone14cde402018-01-25 01:57:18 -08005951 "act_16" : "node_56"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005952 },
5953 "default_entry" : {
5954 "action_id" : 59,
5955 "action_const" : true,
5956 "action_data" : [],
5957 "action_entry_const" : true
5958 }
5959 },
5960 {
5961 "name" : "tbl_act_17",
5962 "id" : 36,
5963 "key" : [],
5964 "match_type" : "exact",
5965 "type" : "simple",
5966 "max_size" : 1024,
5967 "with_counters" : false,
5968 "support_timeout" : false,
5969 "direct_meters" : null,
5970 "action_ids" : [60],
5971 "actions" : ["act_17"],
5972 "base_default_next" : "next.hashed",
5973 "next_tables" : {
5974 "act_17" : "next.hashed"
5975 },
5976 "default_entry" : {
5977 "action_id" : 60,
5978 "action_const" : true,
5979 "action_data" : [],
5980 "action_entry_const" : true
5981 }
5982 },
5983 {
Carmelo Cascone14cde402018-01-25 01:57:18 -08005984 "name" : "tbl_act_18",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005985 "id" : 37,
Carmelo Cascone14cde402018-01-25 01:57:18 -08005986 "key" : [],
5987 "match_type" : "exact",
5988 "type" : "simple",
5989 "max_size" : 1024,
5990 "with_counters" : false,
5991 "support_timeout" : false,
5992 "direct_meters" : null,
5993 "action_ids" : [61],
5994 "actions" : ["act_18"],
5995 "base_default_next" : "next.hashed",
5996 "next_tables" : {
5997 "act_18" : "next.hashed"
5998 },
5999 "default_entry" : {
6000 "action_id" : 61,
6001 "action_const" : true,
6002 "action_data" : [],
6003 "action_entry_const" : true
6004 }
6005 },
6006 {
6007 "name" : "next.hashed",
6008 "id" : 38,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006009 "source_info" : {
6010 "filename" : "include/control/next.p4",
6011 "line" : 103,
6012 "column" : 10,
6013 "source_fragment" : "hashed"
6014 },
6015 "key" : [
6016 {
6017 "match_type" : "exact",
6018 "target" : ["scalars", "fabric_metadata_t.next_id"],
6019 "mask" : null
6020 }
6021 ],
6022 "match_type" : "exact",
6023 "type" : "indirect_ws",
6024 "action_profile" : "next.ecmp_selector",
6025 "max_size" : 1024,
6026 "with_counters" : true,
6027 "support_timeout" : false,
6028 "direct_meters" : null,
6029 "action_ids" : [37, 40, 41, 11],
6030 "actions" : ["next.l3_routing", "next.mpls_routing_v4", "next.mpls_routing_v6", "NoAction"],
6031 "base_default_next" : "next.broadcast",
6032 "next_tables" : {
6033 "next.l3_routing" : "next.broadcast",
6034 "next.mpls_routing_v4" : "next.broadcast",
6035 "next.mpls_routing_v6" : "next.broadcast",
6036 "NoAction" : "next.broadcast"
6037 }
6038 },
6039 {
6040 "name" : "next.broadcast",
Carmelo Cascone14cde402018-01-25 01:57:18 -08006041 "id" : 39,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006042 "source_info" : {
6043 "filename" : "include/control/next.p4",
6044 "line" : 126,
6045 "column" : 10,
6046 "source_fragment" : "broadcast"
6047 },
6048 "key" : [
6049 {
6050 "match_type" : "exact",
6051 "target" : ["scalars", "fabric_metadata_t.next_id"],
6052 "mask" : null
6053 }
6054 ],
6055 "match_type" : "exact",
6056 "type" : "simple",
6057 "max_size" : 1024,
6058 "with_counters" : true,
6059 "support_timeout" : false,
6060 "direct_meters" : null,
6061 "action_ids" : [38, 12],
6062 "actions" : ["next.set_mcast_group", "NoAction"],
Carmelo Cascone14cde402018-01-25 01:57:18 -08006063 "base_default_next" : "node_64",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006064 "next_tables" : {
Carmelo Cascone14cde402018-01-25 01:57:18 -08006065 "next.set_mcast_group" : "node_64",
6066 "NoAction" : "node_64"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006067 },
6068 "default_entry" : {
6069 "action_id" : 12,
6070 "action_const" : false,
6071 "action_data" : [],
6072 "action_entry_const" : false
6073 }
6074 },
6075 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006076 "name" : "tbl_act_19",
6077 "id" : 40,
6078 "key" : [],
6079 "match_type" : "exact",
6080 "type" : "simple",
6081 "max_size" : 1024,
6082 "with_counters" : false,
6083 "support_timeout" : false,
6084 "direct_meters" : null,
6085 "action_ids" : [62],
6086 "actions" : ["act_19"],
Carmelo Cascone14cde402018-01-25 01:57:18 -08006087 "base_default_next" : "node_66",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006088 "next_tables" : {
Carmelo Cascone14cde402018-01-25 01:57:18 -08006089 "act_19" : "node_66"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006090 },
6091 "default_entry" : {
6092 "action_id" : 62,
6093 "action_const" : true,
6094 "action_data" : [],
6095 "action_entry_const" : true
6096 }
6097 },
6098 {
6099 "name" : "tbl_act_20",
6100 "id" : 41,
6101 "key" : [],
6102 "match_type" : "exact",
6103 "type" : "simple",
6104 "max_size" : 1024,
6105 "with_counters" : false,
6106 "support_timeout" : false,
6107 "direct_meters" : null,
6108 "action_ids" : [63],
6109 "actions" : ["act_20"],
Carmelo Cascone14cde402018-01-25 01:57:18 -08006110 "base_default_next" : "node_68",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006111 "next_tables" : {
Carmelo Cascone14cde402018-01-25 01:57:18 -08006112 "act_20" : "node_68"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006113 },
6114 "default_entry" : {
6115 "action_id" : 63,
6116 "action_const" : true,
6117 "action_data" : [],
6118 "action_entry_const" : true
6119 }
Carmelo Cascone14cde402018-01-25 01:57:18 -08006120 },
6121 {
6122 "name" : "tbl_act_21",
6123 "id" : 42,
6124 "key" : [],
6125 "match_type" : "exact",
6126 "type" : "simple",
6127 "max_size" : 1024,
6128 "with_counters" : false,
6129 "support_timeout" : false,
6130 "direct_meters" : null,
6131 "action_ids" : [64],
6132 "actions" : ["act_21"],
6133 "base_default_next" : null,
6134 "next_tables" : {
6135 "act_21" : null
6136 },
6137 "default_entry" : {
6138 "action_id" : 64,
6139 "action_const" : true,
6140 "action_data" : [],
6141 "action_entry_const" : true
6142 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006143 }
6144 ],
6145 "action_profiles" : [
6146 {
6147 "name" : "next.ecmp_selector",
6148 "id" : 0,
6149 "max_size" : 64,
6150 "selector" : {
6151 "algo" : "crc16",
6152 "input" : [
6153 {
6154 "type" : "field",
6155 "value" : ["ethernet", "dst_addr"]
6156 },
6157 {
6158 "type" : "field",
6159 "value" : ["ethernet", "src_addr"]
6160 },
6161 {
6162 "type" : "field",
6163 "value" : ["scalars", "fabric_metadata_t.ip_proto"]
6164 },
6165 {
6166 "type" : "field",
6167 "value" : ["scalars", "fabric_metadata_t.l4_src_port"]
6168 },
6169 {
6170 "type" : "field",
6171 "value" : ["scalars", "fabric_metadata_t.l4_dst_port"]
6172 }
6173 ]
6174 }
6175 }
6176 ],
6177 "conditionals" : [
6178 {
6179 "name" : "node_2",
6180 "id" : 0,
6181 "source_info" : {
6182 "filename" : "include/control/packetio.p4",
6183 "line" : 25,
6184 "column" : 12,
6185 "source_fragment" : "hdr.packet_out.isValid()"
6186 },
6187 "expression" : {
6188 "type" : "expression",
6189 "value" : {
6190 "op" : "d2b",
6191 "left" : null,
6192 "right" : {
6193 "type" : "field",
6194 "value" : ["packet_out", "$valid$"]
6195 }
6196 }
6197 },
6198 "true_next" : "tbl_act",
6199 "false_next" : "tbl_act_0"
6200 },
6201 {
6202 "name" : "node_5",
6203 "id" : 1,
6204 "source_info" : {
6205 "filename" : "include/spgw.p4",
6206 "line" : 141,
6207 "column" : 12,
6208 "source_fragment" : "gtpu.isValid() && gtpu.msgtype == 0xff"
6209 },
6210 "expression" : {
6211 "type" : "expression",
6212 "value" : {
6213 "op" : "and",
6214 "left" : {
6215 "type" : "expression",
6216 "value" : {
6217 "op" : "d2b",
6218 "left" : null,
6219 "right" : {
6220 "type" : "field",
6221 "value" : ["gtpu", "$valid$"]
6222 }
6223 }
6224 },
6225 "right" : {
6226 "type" : "expression",
6227 "value" : {
6228 "op" : "==",
6229 "left" : {
6230 "type" : "field",
6231 "value" : ["gtpu", "msgtype"]
6232 },
6233 "right" : {
6234 "type" : "hexstr",
6235 "value" : "0xff"
6236 }
6237 }
6238 }
6239 }
6240 },
6241 "true_next" : "tbl_act_1",
Carmelo Cascone14cde402018-01-25 01:57:18 -08006242 "false_next" : "tbl_act_5"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006243 },
6244 {
6245 "name" : "node_10",
6246 "id" : 2,
6247 "expression" : {
6248 "type" : "expression",
6249 "value" : {
6250 "op" : "d2b",
6251 "left" : null,
6252 "right" : {
6253 "type" : "field",
6254 "value" : ["scalars", "spgw_ingress_tmp_2"]
6255 }
6256 }
6257 },
6258 "true_next" : "tbl_act_4",
Carmelo Cascone14cde402018-01-25 01:57:18 -08006259 "false_next" : "node_18"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006260 },
6261 {
Carmelo Cascone14cde402018-01-25 01:57:18 -08006262 "name" : "node_16",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006263 "id" : 3,
6264 "expression" : {
6265 "type" : "expression",
6266 "value" : {
6267 "op" : "d2b",
6268 "left" : null,
6269 "right" : {
6270 "type" : "field",
6271 "value" : ["scalars", "spgw_ingress_tmp_3"]
6272 }
6273 }
6274 },
Carmelo Cascone14cde402018-01-25 01:57:18 -08006275 "true_next" : "tbl_act_8",
6276 "false_next" : "node_18"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006277 },
6278 {
Carmelo Cascone14cde402018-01-25 01:57:18 -08006279 "name" : "node_18",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006280 "id" : 4,
6281 "source_info" : {
6282 "filename" : "include/spgw.p4",
Carmelo Cascone14cde402018-01-25 01:57:18 -08006283 "line" : 153,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006284 "column" : 12,
6285 "source_fragment" : "!spgw_meta.do_spgw"
6286 },
6287 "expression" : {
6288 "type" : "expression",
6289 "value" : {
6290 "op" : "not",
6291 "left" : null,
6292 "right" : {
6293 "type" : "expression",
6294 "value" : {
6295 "op" : "d2b",
6296 "left" : null,
6297 "right" : {
6298 "type" : "field",
6299 "value" : ["spgw", "do_spgw"]
6300 }
6301 }
6302 }
6303 }
6304 },
Carmelo Cascone14cde402018-01-25 01:57:18 -08006305 "true_next" : "tbl_act_9",
6306 "false_next" : "node_20"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006307 },
6308 {
Carmelo Cascone14cde402018-01-25 01:57:18 -08006309 "name" : "node_20",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006310 "id" : 5,
6311 "expression" : {
6312 "type" : "expression",
6313 "value" : {
6314 "op" : "not",
6315 "left" : null,
6316 "right" : {
6317 "type" : "expression",
6318 "value" : {
6319 "op" : "d2b",
6320 "left" : null,
6321 "right" : {
6322 "type" : "field",
6323 "value" : ["scalars", "spgw_ingress_hasReturned_0"]
6324 }
6325 }
6326 }
6327 }
6328 },
Carmelo Cascone14cde402018-01-25 01:57:18 -08006329 "true_next" : "node_21",
6330 "false_next" : "node_28"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006331 },
6332 {
Carmelo Cascone14cde402018-01-25 01:57:18 -08006333 "name" : "node_21",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006334 "id" : 6,
6335 "source_info" : {
6336 "filename" : "include/spgw.p4",
Carmelo Cascone14cde402018-01-25 01:57:18 -08006337 "line" : 158,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006338 "column" : 12,
6339 "source_fragment" : "spgw_meta.direction == DIR_UPLINK"
6340 },
6341 "expression" : {
6342 "type" : "expression",
6343 "value" : {
6344 "op" : "==",
6345 "left" : {
6346 "type" : "field",
6347 "value" : ["spgw", "direction"]
6348 },
6349 "right" : {
6350 "type" : "hexstr",
6351 "value" : "0x00"
6352 }
6353 }
6354 },
6355 "true_next" : "tbl_spgw_ingress_gtpu_decap",
6356 "false_next" : "spgw_ingress.sdf_rule_lookup"
6357 },
6358 {
Carmelo Cascone14cde402018-01-25 01:57:18 -08006359 "name" : "node_26",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006360 "id" : 7,
6361 "source_info" : {
6362 "filename" : "include/spgw.p4",
Carmelo Cascone14cde402018-01-25 01:57:18 -08006363 "line" : 169,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006364 "column" : 12,
6365 "source_fragment" : "spgw_meta.pcc_gate_status == PCC_GATE_CLOSED"
6366 },
6367 "expression" : {
6368 "type" : "expression",
6369 "value" : {
6370 "op" : "==",
6371 "left" : {
6372 "type" : "field",
6373 "value" : ["spgw", "pcc_gate_status"]
6374 },
6375 "right" : {
6376 "type" : "hexstr",
6377 "value" : "0x01"
6378 }
6379 }
6380 },
Carmelo Cascone14cde402018-01-25 01:57:18 -08006381 "true_next" : "tbl_act_10",
6382 "false_next" : "node_28"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006383 },
6384 {
Carmelo Cascone14cde402018-01-25 01:57:18 -08006385 "name" : "node_28",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006386 "id" : 8,
6387 "expression" : {
6388 "type" : "expression",
6389 "value" : {
6390 "op" : "not",
6391 "left" : null,
6392 "right" : {
6393 "type" : "expression",
6394 "value" : {
6395 "op" : "d2b",
6396 "left" : null,
6397 "right" : {
6398 "type" : "field",
6399 "value" : ["scalars", "spgw_ingress_hasReturned_0"]
6400 }
6401 }
6402 }
6403 }
6404 },
Carmelo Cascone14cde402018-01-25 01:57:18 -08006405 "true_next" : "node_29",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006406 "false_next" : "filtering.ingress_port_vlan"
6407 },
6408 {
Carmelo Cascone14cde402018-01-25 01:57:18 -08006409 "name" : "node_29",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006410 "id" : 9,
6411 "source_info" : {
6412 "filename" : "include/spgw.p4",
Carmelo Cascone14cde402018-01-25 01:57:18 -08006413 "line" : 174,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006414 "column" : 12,
6415 "source_fragment" : "spgw_meta.direction == DIR_DOWNLINK"
6416 },
6417 "expression" : {
6418 "type" : "expression",
6419 "value" : {
6420 "op" : "==",
6421 "left" : {
6422 "type" : "field",
6423 "value" : ["spgw", "direction"]
6424 },
6425 "right" : {
6426 "type" : "hexstr",
6427 "value" : "0x01"
6428 }
6429 }
6430 },
6431 "true_next" : "spgw_ingress.dl_sess_lookup",
6432 "false_next" : "filtering.ingress_port_vlan"
6433 },
6434 {
Carmelo Cascone14cde402018-01-25 01:57:18 -08006435 "name" : "node_33",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006436 "id" : 10,
6437 "source_info" : {
6438 "filename" : "include/spgw.p4",
Carmelo Cascone14cde402018-01-25 01:57:18 -08006439 "line" : 175,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006440 "column" : 16,
6441 "source_fragment" : "!dl_sess_lookup.apply().hit"
6442 },
6443 "expression" : {
6444 "type" : "expression",
6445 "value" : {
6446 "op" : "not",
6447 "left" : null,
6448 "right" : {
6449 "type" : "expression",
6450 "value" : {
6451 "op" : "d2b",
6452 "left" : null,
6453 "right" : {
6454 "type" : "field",
6455 "value" : ["scalars", "spgw_ingress_tmp_4"]
6456 }
6457 }
6458 }
6459 }
6460 },
Carmelo Cascone14cde402018-01-25 01:57:18 -08006461 "true_next" : "tbl_act_13",
6462 "false_next" : "node_35"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006463 },
6464 {
Carmelo Cascone14cde402018-01-25 01:57:18 -08006465 "name" : "node_35",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006466 "id" : 11,
6467 "expression" : {
6468 "type" : "expression",
6469 "value" : {
6470 "op" : "not",
6471 "left" : null,
6472 "right" : {
6473 "type" : "expression",
6474 "value" : {
6475 "op" : "d2b",
6476 "left" : null,
6477 "right" : {
6478 "type" : "field",
6479 "value" : ["scalars", "spgw_ingress_hasReturned_0"]
6480 }
6481 }
6482 }
6483 }
6484 },
6485 "true_next" : "spgw_ingress.ue_cdr_table",
6486 "false_next" : "filtering.ingress_port_vlan"
6487 },
6488 {
Carmelo Cascone14cde402018-01-25 01:57:18 -08006489 "name" : "node_39",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006490 "id" : 12,
6491 "source_info" : {
6492 "filename" : "include/control/forwarding.p4",
6493 "line" : 154,
6494 "column" : 11,
6495 "source_fragment" : "fabric_metadata.fwd_type == FWD_BRIDGING"
6496 },
6497 "expression" : {
6498 "type" : "expression",
6499 "value" : {
6500 "op" : "==",
6501 "left" : {
6502 "type" : "field",
6503 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
6504 },
6505 "right" : {
6506 "type" : "hexstr",
6507 "value" : "0x00"
6508 }
6509 }
6510 },
6511 "true_next" : "forwarding.bridging",
Carmelo Cascone14cde402018-01-25 01:57:18 -08006512 "false_next" : "node_41"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006513 },
6514 {
Carmelo Cascone14cde402018-01-25 01:57:18 -08006515 "name" : "node_41",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006516 "id" : 13,
6517 "source_info" : {
6518 "filename" : "include/control/forwarding.p4",
6519 "line" : 155,
6520 "column" : 17,
6521 "source_fragment" : "fabric_metadata.fwd_type == FWD_MPLS"
6522 },
6523 "expression" : {
6524 "type" : "expression",
6525 "value" : {
6526 "op" : "==",
6527 "left" : {
6528 "type" : "field",
6529 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
6530 },
6531 "right" : {
6532 "type" : "hexstr",
6533 "value" : "0x01"
6534 }
6535 }
6536 },
6537 "true_next" : "forwarding.mpls",
Carmelo Cascone14cde402018-01-25 01:57:18 -08006538 "false_next" : "node_44"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006539 },
6540 {
Carmelo Cascone14cde402018-01-25 01:57:18 -08006541 "name" : "node_44",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006542 "id" : 14,
6543 "source_info" : {
6544 "filename" : "include/control/forwarding.p4",
6545 "line" : 162,
6546 "column" : 17,
6547 "source_fragment" : "fabric_metadata.fwd_type == FWD_IPV4_UNICAST"
6548 },
6549 "expression" : {
6550 "type" : "expression",
6551 "value" : {
6552 "op" : "==",
6553 "left" : {
6554 "type" : "field",
6555 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
6556 },
6557 "right" : {
6558 "type" : "hexstr",
6559 "value" : "0x02"
6560 }
6561 }
6562 },
6563 "true_next" : "forwarding.unicast_v4",
Carmelo Cascone14cde402018-01-25 01:57:18 -08006564 "false_next" : "node_46"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006565 },
6566 {
Carmelo Cascone14cde402018-01-25 01:57:18 -08006567 "name" : "node_46",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006568 "id" : 15,
6569 "source_info" : {
6570 "filename" : "include/control/forwarding.p4",
6571 "line" : 163,
6572 "column" : 17,
6573 "source_fragment" : "fabric_metadata.fwd_type == FWD_IPV4_MULTICAST"
6574 },
6575 "expression" : {
6576 "type" : "expression",
6577 "value" : {
6578 "op" : "==",
6579 "left" : {
6580 "type" : "field",
6581 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
6582 },
6583 "right" : {
6584 "type" : "hexstr",
6585 "value" : "0x03"
6586 }
6587 }
6588 },
6589 "true_next" : "forwarding.multicast_v4",
Carmelo Cascone14cde402018-01-25 01:57:18 -08006590 "false_next" : "node_48"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006591 },
6592 {
Carmelo Cascone14cde402018-01-25 01:57:18 -08006593 "name" : "node_48",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006594 "id" : 16,
6595 "source_info" : {
6596 "filename" : "include/control/forwarding.p4",
6597 "line" : 164,
6598 "column" : 17,
6599 "source_fragment" : "fabric_metadata.fwd_type == FWD_IPV6_UNICAST"
6600 },
6601 "expression" : {
6602 "type" : "expression",
6603 "value" : {
6604 "op" : "==",
6605 "left" : {
6606 "type" : "field",
6607 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
6608 },
6609 "right" : {
6610 "type" : "hexstr",
6611 "value" : "0x04"
6612 }
6613 }
6614 },
6615 "true_next" : "forwarding.unicast_v6",
Carmelo Cascone14cde402018-01-25 01:57:18 -08006616 "false_next" : "node_50"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006617 },
6618 {
Carmelo Cascone14cde402018-01-25 01:57:18 -08006619 "name" : "node_50",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006620 "id" : 17,
6621 "source_info" : {
6622 "filename" : "include/control/forwarding.p4",
6623 "line" : 165,
6624 "column" : 17,
6625 "source_fragment" : "fabric_metadata.fwd_type == FWD_IPV6_MULTICAST"
6626 },
6627 "expression" : {
6628 "type" : "expression",
6629 "value" : {
6630 "op" : "==",
6631 "left" : {
6632 "type" : "field",
6633 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
6634 },
6635 "right" : {
6636 "type" : "hexstr",
6637 "value" : "0x05"
6638 }
6639 }
6640 },
6641 "true_next" : "forwarding.multicast_v6",
6642 "false_next" : "forwarding.acl"
6643 },
6644 {
Carmelo Cascone14cde402018-01-25 01:57:18 -08006645 "name" : "node_56",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006646 "id" : 18,
6647 "expression" : {
6648 "type" : "expression",
6649 "value" : {
6650 "op" : "d2b",
6651 "left" : null,
6652 "right" : {
6653 "type" : "field",
6654 "value" : ["scalars", "next_tmp_0"]
6655 }
6656 }
6657 },
Carmelo Cascone14cde402018-01-25 01:57:18 -08006658 "true_next" : "node_57",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006659 "false_next" : "next.hashed"
6660 },
6661 {
Carmelo Cascone14cde402018-01-25 01:57:18 -08006662 "name" : "node_57",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006663 "id" : 19,
6664 "source_info" : {
6665 "filename" : "include/control/next.p4",
6666 "line" : 138,
6667 "column" : 16,
6668 "source_fragment" : "!hdr.mpls.isValid()"
6669 },
6670 "expression" : {
6671 "type" : "expression",
6672 "value" : {
6673 "op" : "not",
6674 "left" : null,
6675 "right" : {
6676 "type" : "expression",
6677 "value" : {
6678 "op" : "d2b",
6679 "left" : null,
6680 "right" : {
6681 "type" : "field",
6682 "value" : ["mpls", "$valid$"]
6683 }
6684 }
6685 }
6686 }
6687 },
Carmelo Cascone14cde402018-01-25 01:57:18 -08006688 "true_next" : "node_58",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006689 "false_next" : "next.hashed"
6690 },
6691 {
Carmelo Cascone14cde402018-01-25 01:57:18 -08006692 "name" : "node_58",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006693 "id" : 20,
6694 "source_info" : {
6695 "filename" : "include/control/next.p4",
6696 "line" : 139,
6697 "column" : 19,
6698 "source_fragment" : "hdr.ipv4.isValid()"
6699 },
6700 "expression" : {
6701 "type" : "expression",
6702 "value" : {
6703 "op" : "d2b",
6704 "left" : null,
6705 "right" : {
6706 "type" : "field",
6707 "value" : ["ipv4", "$valid$"]
6708 }
6709 }
6710 },
Carmelo Cascone14cde402018-01-25 01:57:18 -08006711 "true_next" : "tbl_act_17",
6712 "false_next" : "node_60"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006713 },
6714 {
Carmelo Cascone14cde402018-01-25 01:57:18 -08006715 "name" : "node_60",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006716 "id" : 21,
6717 "source_info" : {
6718 "filename" : "include/control/next.p4",
6719 "line" : 142,
6720 "column" : 25,
6721 "source_fragment" : "hdr.ipv6.isValid()"
6722 },
6723 "expression" : {
6724 "type" : "expression",
6725 "value" : {
6726 "op" : "d2b",
6727 "left" : null,
6728 "right" : {
6729 "type" : "field",
6730 "value" : ["ipv6", "$valid$"]
6731 }
6732 }
6733 },
Carmelo Cascone14cde402018-01-25 01:57:18 -08006734 "true_next" : "tbl_act_18",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006735 "false_next" : "next.hashed"
6736 },
6737 {
Carmelo Cascone14cde402018-01-25 01:57:18 -08006738 "name" : "node_64",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006739 "id" : 22,
6740 "source_info" : {
6741 "filename" : "include/control/port_counter.p4",
6742 "line" : 27,
6743 "column" : 12,
6744 "source_fragment" : "standard_metadata.egress_spec < 511"
6745 },
6746 "expression" : {
6747 "type" : "expression",
6748 "value" : {
6749 "op" : "<",
6750 "left" : {
6751 "type" : "field",
6752 "value" : ["standard_metadata", "egress_spec"]
6753 },
6754 "right" : {
6755 "type" : "hexstr",
6756 "value" : "0x01ff"
6757 }
6758 }
6759 },
Carmelo Cascone14cde402018-01-25 01:57:18 -08006760 "true_next" : "tbl_act_19",
6761 "false_next" : "node_66"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006762 },
6763 {
Carmelo Cascone14cde402018-01-25 01:57:18 -08006764 "name" : "node_66",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006765 "id" : 23,
6766 "source_info" : {
6767 "filename" : "include/control/port_counter.p4",
6768 "line" : 30,
6769 "column" : 12,
6770 "source_fragment" : "standard_metadata.ingress_port < 511"
6771 },
6772 "expression" : {
6773 "type" : "expression",
6774 "value" : {
6775 "op" : "<",
6776 "left" : {
6777 "type" : "field",
6778 "value" : ["standard_metadata", "ingress_port"]
6779 },
6780 "right" : {
6781 "type" : "hexstr",
6782 "value" : "0x01ff"
6783 }
6784 }
6785 },
Carmelo Cascone14cde402018-01-25 01:57:18 -08006786 "true_next" : "tbl_act_20",
6787 "false_next" : "node_68"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006788 },
6789 {
Carmelo Cascone14cde402018-01-25 01:57:18 -08006790 "name" : "node_68",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006791 "id" : 24,
6792 "source_info" : {
6793 "filename" : "include/control/next.p4",
6794 "line" : 159,
6795 "column" : 12,
6796 "source_fragment" : "fabric_metadata.pop_vlan_at_egress"
6797 },
6798 "expression" : {
6799 "type" : "expression",
6800 "value" : {
6801 "op" : "d2b",
6802 "left" : null,
6803 "right" : {
6804 "type" : "field",
6805 "value" : ["scalars", "fabric_metadata_t.pop_vlan_at_egress"]
6806 }
6807 }
6808 },
6809 "false_next" : null,
Carmelo Cascone14cde402018-01-25 01:57:18 -08006810 "true_next" : "tbl_act_21"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006811 }
6812 ]
6813 },
6814 {
6815 "name" : "egress",
6816 "id" : 1,
6817 "source_info" : {
6818 "filename" : "fabric.p4",
6819 "line" : 60,
6820 "column" : 8,
6821 "source_fragment" : "FabricEgress"
6822 },
Carmelo Cascone14cde402018-01-25 01:57:18 -08006823 "init_table" : "node_72",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006824 "tables" : [
6825 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006826 "name" : "tbl_act_22",
6827 "id" : 43,
6828 "key" : [],
6829 "match_type" : "exact",
6830 "type" : "simple",
6831 "max_size" : 1024,
6832 "with_counters" : false,
6833 "support_timeout" : false,
6834 "direct_meters" : null,
6835 "action_ids" : [66],
6836 "actions" : ["act_22"],
Carmelo Cascone14cde402018-01-25 01:57:18 -08006837 "base_default_next" : "tbl_act_23",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006838 "next_tables" : {
Carmelo Cascone14cde402018-01-25 01:57:18 -08006839 "act_22" : "tbl_act_23"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006840 },
6841 "default_entry" : {
6842 "action_id" : 66,
6843 "action_const" : true,
6844 "action_data" : [],
6845 "action_entry_const" : true
6846 }
6847 },
6848 {
Carmelo Cascone14cde402018-01-25 01:57:18 -08006849 "name" : "tbl_act_23",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006850 "id" : 44,
6851 "key" : [],
6852 "match_type" : "exact",
6853 "type" : "simple",
6854 "max_size" : 1024,
6855 "with_counters" : false,
6856 "support_timeout" : false,
6857 "direct_meters" : null,
Carmelo Cascone14cde402018-01-25 01:57:18 -08006858 "action_ids" : [67],
6859 "actions" : ["act_23"],
6860 "base_default_next" : "node_75",
6861 "next_tables" : {
6862 "act_23" : "node_75"
6863 },
6864 "default_entry" : {
6865 "action_id" : 67,
6866 "action_const" : true,
6867 "action_data" : [],
6868 "action_entry_const" : true
6869 }
6870 },
6871 {
6872 "name" : "tbl_spgw_egress_gtpu_encap",
6873 "id" : 45,
6874 "key" : [],
6875 "match_type" : "exact",
6876 "type" : "simple",
6877 "max_size" : 1024,
6878 "with_counters" : false,
6879 "support_timeout" : false,
6880 "direct_meters" : null,
6881 "action_ids" : [65],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006882 "actions" : ["spgw_egress.gtpu_encap"],
6883 "base_default_next" : null,
6884 "next_tables" : {
6885 "spgw_egress.gtpu_encap" : null
6886 },
6887 "default_entry" : {
Carmelo Cascone14cde402018-01-25 01:57:18 -08006888 "action_id" : 65,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006889 "action_const" : true,
6890 "action_data" : [],
6891 "action_entry_const" : true
6892 }
6893 }
6894 ],
6895 "action_profiles" : [],
6896 "conditionals" : [
6897 {
Carmelo Cascone14cde402018-01-25 01:57:18 -08006898 "name" : "node_72",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006899 "id" : 25,
6900 "source_info" : {
6901 "filename" : "include/control/packetio.p4",
6902 "line" : 38,
6903 "column" : 12,
6904 "source_fragment" : "standard_metadata.egress_port == CPU_PORT"
6905 },
6906 "expression" : {
6907 "type" : "expression",
6908 "value" : {
6909 "op" : "==",
6910 "left" : {
6911 "type" : "field",
6912 "value" : ["standard_metadata", "egress_port"]
6913 },
6914 "right" : {
6915 "type" : "hexstr",
6916 "value" : "0x00ff"
6917 }
6918 }
6919 },
Carmelo Cascone14cde402018-01-25 01:57:18 -08006920 "true_next" : "tbl_act_22",
6921 "false_next" : "tbl_act_23"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006922 },
6923 {
Carmelo Cascone14cde402018-01-25 01:57:18 -08006924 "name" : "node_75",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006925 "id" : 26,
6926 "source_info" : {
6927 "filename" : "include/spgw.p4",
6928 "line" : 231,
6929 "column" : 12,
6930 "source_fragment" : "spgw_meta.do_spgw && spgw_meta.direction == DIR_DOWNLINK"
6931 },
6932 "expression" : {
6933 "type" : "expression",
6934 "value" : {
6935 "op" : "and",
6936 "left" : {
6937 "type" : "expression",
6938 "value" : {
6939 "op" : "d2b",
6940 "left" : null,
6941 "right" : {
6942 "type" : "field",
6943 "value" : ["spgw", "do_spgw"]
6944 }
6945 }
6946 },
6947 "right" : {
6948 "type" : "expression",
6949 "value" : {
6950 "op" : "==",
6951 "left" : {
6952 "type" : "field",
6953 "value" : ["spgw", "direction"]
6954 },
6955 "right" : {
6956 "type" : "hexstr",
6957 "value" : "0x01"
6958 }
6959 }
6960 }
6961 }
6962 },
6963 "false_next" : null,
6964 "true_next" : "tbl_spgw_egress_gtpu_encap"
6965 }
6966 ]
6967 }
6968 ],
6969 "checksums" : [
6970 {
6971 "name" : "cksum",
6972 "id" : 0,
6973 "target" : ["ipv4", "hdr_checksum"],
6974 "type" : "generic",
6975 "calculation" : "calc",
6976 "if_cond" : {
6977 "type" : "expression",
6978 "value" : {
6979 "op" : "d2b",
6980 "left" : null,
6981 "right" : {
6982 "type" : "field",
6983 "value" : ["ipv4", "$valid$"]
6984 }
6985 }
6986 }
6987 },
6988 {
6989 "name" : "cksum_0",
6990 "id" : 1,
6991 "target" : ["gtpu_ipv4", "hdr_checksum"],
6992 "type" : "generic",
6993 "calculation" : "calc_0",
6994 "if_cond" : {
6995 "type" : "expression",
6996 "value" : {
6997 "op" : "d2b",
6998 "left" : null,
6999 "right" : {
7000 "type" : "field",
7001 "value" : ["gtpu_ipv4", "$valid$"]
7002 }
7003 }
7004 }
7005 },
7006 {
7007 "name" : "cksum_1",
7008 "id" : 2,
7009 "target" : ["ipv4", "hdr_checksum"],
7010 "type" : "generic",
7011 "calculation" : "calc_1",
7012 "if_cond" : {
7013 "type" : "expression",
7014 "value" : {
7015 "op" : "d2b",
7016 "left" : null,
7017 "right" : {
7018 "type" : "field",
7019 "value" : ["ipv4", "$valid$"]
7020 }
7021 }
7022 }
7023 },
7024 {
7025 "name" : "cksum_2",
7026 "id" : 3,
7027 "target" : ["gtpu_ipv4", "hdr_checksum"],
7028 "type" : "generic",
7029 "calculation" : "calc_2",
7030 "if_cond" : {
7031 "type" : "expression",
7032 "value" : {
7033 "op" : "d2b",
7034 "left" : null,
7035 "right" : {
7036 "type" : "field",
7037 "value" : ["gtpu_ipv4", "$valid$"]
7038 }
7039 }
7040 }
Carmelo Cascone14cde402018-01-25 01:57:18 -08007041 },
7042 {
7043 "name" : "cksum_3",
7044 "id" : 4,
7045 "target" : ["gtpu_udp", "checksum"],
7046 "type" : "generic",
7047 "calculation" : "calc_3",
7048 "if_cond" : {
7049 "type" : "expression",
7050 "value" : {
7051 "op" : "d2b",
7052 "left" : null,
7053 "right" : {
7054 "type" : "field",
7055 "value" : ["gtpu_udp", "$valid$"]
7056 }
7057 }
7058 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007059 }
7060 ],
7061 "force_arith" : [],
7062 "extern_instances" : [],
7063 "field_aliases" : [
7064 [
7065 "queueing_metadata.enq_timestamp",
7066 ["standard_metadata", "enq_timestamp"]
7067 ],
7068 [
7069 "queueing_metadata.enq_qdepth",
7070 ["standard_metadata", "enq_qdepth"]
7071 ],
7072 [
7073 "queueing_metadata.deq_timedelta",
7074 ["standard_metadata", "deq_timedelta"]
7075 ],
7076 [
7077 "queueing_metadata.deq_qdepth",
7078 ["standard_metadata", "deq_qdepth"]
7079 ],
7080 [
7081 "intrinsic_metadata.ingress_global_timestamp",
7082 ["standard_metadata", "ingress_global_timestamp"]
7083 ],
7084 [
7085 "intrinsic_metadata.lf_field_list",
7086 ["standard_metadata", "lf_field_list"]
7087 ],
7088 [
7089 "intrinsic_metadata.mcast_grp",
7090 ["standard_metadata", "mcast_grp"]
7091 ],
7092 [
7093 "intrinsic_metadata.resubmit_flag",
7094 ["standard_metadata", "resubmit_flag"]
7095 ],
7096 [
7097 "intrinsic_metadata.egress_rid",
7098 ["standard_metadata", "egress_rid"]
7099 ]
7100 ]
7101}