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