blob: 2e38cf598e7eac86fb2c7892e040609345dcebbb [file] [log] [blame]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001{
2 "program" : "fabric.p4",
3 "__meta__" : {
4 "version" : [2, 7],
5 "compiler" : "https://github.com/p4lang/p4c"
6 },
7 "header_types" : [
8 {
9 "name" : "scalars_0",
10 "id" : 0,
11 "fields" : [
12 ["tmp", 4, false],
13 ["tmp_0", 32, false],
14 ["tmp_1", 32, false],
15 ["spgw_ingress_tmp_2", 1, false],
16 ["spgw_ingress_tmp_3", 1, false],
17 ["spgw_ingress_tmp_4", 1, false],
18 ["next_tmp_0", 1, false],
19 ["spgw_ingress_hasReturned_0", 1, false],
20 ["fabric_metadata_t.fwd_type", 3, false],
21 ["fabric_metadata_t.next_id", 32, false],
22 ["fabric_metadata_t.pop_vlan_at_egress", 1, false],
23 ["fabric_metadata_t.ip_proto", 8, false],
24 ["fabric_metadata_t.l4_src_port", 16, false],
25 ["fabric_metadata_t.l4_dst_port", 16, false],
26 ["fabric_metadata_t.original_ether_type", 16, false],
27 ["_padding_1", 3, false]
28 ]
29 },
30 {
31 "name" : "ethernet_t",
32 "id" : 1,
33 "fields" : [
34 ["dst_addr", 48, false],
35 ["src_addr", 48, false],
36 ["ether_type", 16, false]
37 ]
38 },
39 {
40 "name" : "vlan_tag_t",
41 "id" : 2,
42 "fields" : [
43 ["pri", 3, false],
44 ["cfi", 1, false],
45 ["vlan_id", 12, false],
46 ["ether_type", 16, false]
47 ]
48 },
49 {
50 "name" : "mpls_t",
51 "id" : 3,
52 "fields" : [
53 ["label", 20, false],
54 ["tc", 3, false],
55 ["bos", 1, false],
56 ["ttl", 8, false]
57 ]
58 },
59 {
60 "name" : "ipv4_t",
61 "id" : 4,
62 "fields" : [
63 ["version", 4, false],
64 ["ihl", 4, false],
65 ["diffserv", 8, false],
66 ["total_len", 16, false],
67 ["identification", 16, false],
68 ["flags", 3, false],
69 ["frag_offset", 13, false],
70 ["ttl", 8, false],
71 ["protocol", 8, false],
72 ["hdr_checksum", 16, false],
73 ["src_addr", 32, false],
74 ["dst_addr", 32, false]
75 ]
76 },
77 {
78 "name" : "udp_t",
79 "id" : 5,
80 "fields" : [
81 ["src_port", 16, false],
82 ["dst_port", 16, false],
83 ["len", 16, false],
84 ["checksum", 16, false]
85 ]
86 },
87 {
88 "name" : "gtpu_t",
89 "id" : 6,
90 "fields" : [
91 ["version", 3, false],
92 ["pt", 1, false],
93 ["spare", 1, false],
94 ["ex_flag", 1, false],
95 ["seq_flag", 1, false],
96 ["npdu_flag", 1, false],
97 ["msgtype", 8, false],
98 ["msglen", 16, false],
99 ["teid", 32, false]
100 ]
101 },
102 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800103 "name" : "arp_t",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -0800104 "id" : 7,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800105 "fields" : [
106 ["hw_type", 16, false],
107 ["proto_type", 16, false],
108 ["hw_addr_len", 8, false],
109 ["proto_addr_len", 8, false],
110 ["opcode", 16, false]
111 ]
112 },
113 {
114 "name" : "tcp_t",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -0800115 "id" : 8,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800116 "fields" : [
117 ["src_port", 16, false],
118 ["dst_port", 16, false],
119 ["seq_no", 32, false],
120 ["ack_no", 32, false],
121 ["data_offset", 4, false],
122 ["res", 3, false],
123 ["ecn", 3, false],
124 ["ctrl", 6, false],
125 ["window", 16, false],
126 ["checksum", 16, false],
127 ["urgent_ptr", 16, false]
128 ]
129 },
130 {
131 "name" : "icmp_t",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -0800132 "id" : 9,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800133 "fields" : [
134 ["icmp_type", 8, false],
135 ["icmp_code", 8, false],
136 ["checksum", 16, false],
137 ["identifier", 16, false],
138 ["sequence_number", 16, false],
139 ["timestamp", 64, false]
140 ]
141 },
142 {
143 "name" : "packet_out_header_t",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -0800144 "id" : 10,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800145 "fields" : [
146 ["egress_port", 9, false],
147 ["_pad", 7, false]
148 ]
149 },
150 {
151 "name" : "packet_in_header_t",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -0800152 "id" : 11,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800153 "fields" : [
154 ["ingress_port", 9, false],
155 ["_pad", 7, false]
156 ]
157 },
158 {
159 "name" : "spgw_meta_t",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -0800160 "id" : 12,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800161 "fields" : [
162 ["do_spgw", 1, 0],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800163 ["direction", 1, false],
Carmelo Casconeb757dbc2018-01-25 17:53:17 -0800164 ["teid", 32, false],
165 ["s1u_enb_addr", 32, false],
166 ["s1u_sgw_addr", 32, false],
167 ["_padding", 6, false]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800168 ]
169 },
170 {
171 "name" : "standard_metadata",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -0800172 "id" : 13,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800173 "fields" : [
174 ["ingress_port", 9, false],
175 ["egress_spec", 9, false],
176 ["egress_port", 9, false],
177 ["clone_spec", 32, false],
178 ["instance_type", 32, false],
179 ["drop", 1, false],
180 ["recirculate_port", 16, false],
181 ["packet_length", 32, false],
182 ["enq_timestamp", 32, false],
183 ["enq_qdepth", 19, false],
184 ["deq_timedelta", 32, false],
185 ["deq_qdepth", 19, false],
186 ["ingress_global_timestamp", 48, false],
187 ["lf_field_list", 32, false],
188 ["mcast_grp", 16, false],
189 ["resubmit_flag", 1, false],
190 ["egress_rid", 16, false],
191 ["checksum_error", 1, false],
192 ["_padding_0", 4, false]
193 ]
194 }
195 ],
196 "headers" : [
197 {
198 "name" : "scalars",
199 "id" : 0,
200 "header_type" : "scalars_0",
201 "metadata" : true,
202 "pi_omit" : true
203 },
204 {
205 "name" : "standard_metadata",
206 "id" : 1,
207 "header_type" : "standard_metadata",
208 "metadata" : true,
209 "pi_omit" : true
210 },
211 {
212 "name" : "ethernet",
213 "id" : 2,
214 "header_type" : "ethernet_t",
215 "metadata" : false,
216 "pi_omit" : true
217 },
218 {
219 "name" : "vlan_tag",
220 "id" : 3,
221 "header_type" : "vlan_tag_t",
222 "metadata" : false,
223 "pi_omit" : true
224 },
225 {
226 "name" : "mpls",
227 "id" : 4,
228 "header_type" : "mpls_t",
229 "metadata" : false,
230 "pi_omit" : true
231 },
232 {
233 "name" : "gtpu_ipv4",
234 "id" : 5,
235 "header_type" : "ipv4_t",
236 "metadata" : false,
237 "pi_omit" : true
238 },
239 {
240 "name" : "gtpu_udp",
241 "id" : 6,
242 "header_type" : "udp_t",
243 "metadata" : false,
244 "pi_omit" : true
245 },
246 {
247 "name" : "gtpu",
248 "id" : 7,
249 "header_type" : "gtpu_t",
250 "metadata" : false,
251 "pi_omit" : true
252 },
253 {
254 "name" : "ipv4",
255 "id" : 8,
256 "header_type" : "ipv4_t",
257 "metadata" : false,
258 "pi_omit" : true
259 },
260 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800261 "name" : "arp",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -0800262 "id" : 9,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800263 "header_type" : "arp_t",
264 "metadata" : false,
265 "pi_omit" : true
266 },
267 {
268 "name" : "tcp",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -0800269 "id" : 10,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800270 "header_type" : "tcp_t",
271 "metadata" : false,
272 "pi_omit" : true
273 },
274 {
275 "name" : "udp",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -0800276 "id" : 11,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800277 "header_type" : "udp_t",
278 "metadata" : false,
279 "pi_omit" : true
280 },
281 {
282 "name" : "icmp",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -0800283 "id" : 12,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800284 "header_type" : "icmp_t",
285 "metadata" : false,
286 "pi_omit" : true
287 },
288 {
289 "name" : "packet_out",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -0800290 "id" : 13,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800291 "header_type" : "packet_out_header_t",
292 "metadata" : false,
293 "pi_omit" : true
294 },
295 {
296 "name" : "packet_in",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -0800297 "id" : 14,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800298 "header_type" : "packet_in_header_t",
299 "metadata" : false,
300 "pi_omit" : true
301 },
302 {
303 "name" : "spgw",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -0800304 "id" : 15,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800305 "header_type" : "spgw_meta_t",
306 "metadata" : true,
307 "pi_omit" : true
308 }
309 ],
310 "header_stacks" : [],
311 "header_union_types" : [],
312 "header_unions" : [],
313 "header_union_stacks" : [],
314 "field_lists" : [],
315 "errors" : [
316 ["NoError", 1],
317 ["PacketTooShort", 2],
318 ["NoMatch", 3],
319 ["StackOutOfBounds", 4],
320 ["HeaderTooShort", 5],
321 ["ParserTimeout", 6]
322 ],
323 "enums" : [],
324 "parsers" : [
325 {
326 "name" : "parser",
327 "id" : 0,
328 "init_state" : "start",
329 "parse_states" : [
330 {
331 "name" : "start",
332 "id" : 0,
333 "parser_ops" : [],
334 "transitions" : [
335 {
336 "value" : "0x00ff",
337 "mask" : null,
338 "next_state" : "parse_packet_out"
339 },
340 {
341 "value" : "default",
342 "mask" : null,
343 "next_state" : "parse_ethernet"
344 }
345 ],
346 "transition_key" : [
347 {
348 "type" : "field",
349 "value" : ["standard_metadata", "ingress_port"]
350 }
351 ]
352 },
353 {
354 "name" : "parse_packet_out",
355 "id" : 1,
356 "parser_ops" : [
357 {
358 "parameters" : [
359 {
360 "type" : "regular",
361 "value" : "packet_out"
362 }
363 ],
364 "op" : "extract"
365 }
366 ],
367 "transitions" : [
368 {
369 "value" : "default",
370 "mask" : null,
371 "next_state" : "parse_ethernet"
372 }
373 ],
374 "transition_key" : []
375 },
376 {
377 "name" : "parse_ethernet",
378 "id" : 2,
379 "parser_ops" : [
380 {
381 "parameters" : [
382 {
383 "type" : "regular",
384 "value" : "ethernet"
385 }
386 ],
387 "op" : "extract"
388 },
389 {
390 "parameters" : [
391 {
392 "type" : "field",
393 "value" : ["scalars", "fabric_metadata_t.original_ether_type"]
394 },
395 {
396 "type" : "field",
397 "value" : ["ethernet", "ether_type"]
398 }
399 ],
400 "op" : "set"
401 }
402 ],
403 "transitions" : [
404 {
405 "value" : "0x8100",
406 "mask" : null,
407 "next_state" : "parse_vlan_tag"
408 },
409 {
410 "value" : "0x8847",
411 "mask" : null,
412 "next_state" : "parse_mpls"
413 },
414 {
415 "value" : "0x0806",
416 "mask" : null,
417 "next_state" : "parse_arp"
418 },
419 {
420 "value" : "0x0800",
421 "mask" : null,
422 "next_state" : "parse_ipv4"
423 },
424 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800425 "value" : "default",
426 "mask" : null,
427 "next_state" : null
428 }
429 ],
430 "transition_key" : [
431 {
432 "type" : "field",
433 "value" : ["ethernet", "ether_type"]
434 }
435 ]
436 },
437 {
438 "name" : "parse_vlan_tag",
439 "id" : 3,
440 "parser_ops" : [
441 {
442 "parameters" : [
443 {
444 "type" : "regular",
445 "value" : "vlan_tag"
446 }
447 ],
448 "op" : "extract"
449 }
450 ],
451 "transitions" : [
452 {
453 "value" : "0x0806",
454 "mask" : null,
455 "next_state" : "parse_arp"
456 },
457 {
458 "value" : "0x0800",
459 "mask" : null,
460 "next_state" : "parse_ipv4"
461 },
462 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800463 "value" : "0x8847",
464 "mask" : null,
465 "next_state" : "parse_mpls"
466 },
467 {
468 "value" : "default",
469 "mask" : null,
470 "next_state" : null
471 }
472 ],
473 "transition_key" : [
474 {
475 "type" : "field",
476 "value" : ["vlan_tag", "ether_type"]
477 }
478 ]
479 },
480 {
481 "name" : "parse_mpls",
482 "id" : 4,
483 "parser_ops" : [
484 {
485 "parameters" : [
486 {
487 "type" : "regular",
488 "value" : "mpls"
489 }
490 ],
491 "op" : "extract"
492 },
493 {
494 "parameters" : [
495 {
496 "type" : "field",
497 "value" : ["scalars", "tmp"]
498 },
499 {
500 "type" : "lookahead",
501 "value" : [0, 4]
502 }
503 ],
504 "op" : "set"
505 }
506 ],
507 "transitions" : [
508 {
509 "value" : "0x04",
510 "mask" : null,
511 "next_state" : "parse_ipv4"
512 },
513 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800514 "value" : "default",
515 "mask" : null,
516 "next_state" : "parse_ethernet"
517 }
518 ],
519 "transition_key" : [
520 {
521 "type" : "field",
522 "value" : ["scalars", "tmp"]
523 }
524 ]
525 },
526 {
527 "name" : "parse_ipv4",
528 "id" : 5,
529 "parser_ops" : [
530 {
531 "parameters" : [
532 {
533 "type" : "regular",
534 "value" : "ipv4"
535 }
536 ],
537 "op" : "extract"
538 },
539 {
540 "parameters" : [
541 {
542 "type" : "field",
543 "value" : ["scalars", "fabric_metadata_t.ip_proto"]
544 },
545 {
546 "type" : "field",
547 "value" : ["ipv4", "protocol"]
548 }
549 ],
550 "op" : "set"
551 }
552 ],
553 "transitions" : [
554 {
555 "value" : "0x06",
556 "mask" : null,
557 "next_state" : "parse_tcp"
558 },
559 {
560 "value" : "0x11",
561 "mask" : null,
562 "next_state" : "parse_udp"
563 },
564 {
565 "value" : "0x01",
566 "mask" : null,
567 "next_state" : "parse_icmp"
568 },
569 {
570 "value" : "default",
571 "mask" : null,
572 "next_state" : null
573 }
574 ],
575 "transition_key" : [
576 {
577 "type" : "field",
578 "value" : ["ipv4", "protocol"]
579 }
580 ]
581 },
582 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800583 "name" : "parse_arp",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -0800584 "id" : 6,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800585 "parser_ops" : [
586 {
587 "parameters" : [
588 {
589 "type" : "regular",
590 "value" : "arp"
591 }
592 ],
593 "op" : "extract"
594 }
595 ],
596 "transitions" : [
597 {
598 "value" : "default",
599 "mask" : null,
600 "next_state" : null
601 }
602 ],
603 "transition_key" : []
604 },
605 {
606 "name" : "parse_tcp",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -0800607 "id" : 7,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800608 "parser_ops" : [
609 {
610 "parameters" : [
611 {
612 "type" : "regular",
613 "value" : "tcp"
614 }
615 ],
616 "op" : "extract"
617 },
618 {
619 "parameters" : [
620 {
621 "type" : "field",
622 "value" : ["scalars", "fabric_metadata_t.l4_src_port"]
623 },
624 {
625 "type" : "field",
626 "value" : ["tcp", "src_port"]
627 }
628 ],
629 "op" : "set"
630 },
631 {
632 "parameters" : [
633 {
634 "type" : "field",
635 "value" : ["scalars", "fabric_metadata_t.l4_dst_port"]
636 },
637 {
638 "type" : "field",
639 "value" : ["tcp", "dst_port"]
640 }
641 ],
642 "op" : "set"
643 }
644 ],
645 "transitions" : [
646 {
647 "value" : "default",
648 "mask" : null,
649 "next_state" : null
650 }
651 ],
652 "transition_key" : []
653 },
654 {
655 "name" : "parse_udp",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -0800656 "id" : 8,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800657 "parser_ops" : [
658 {
659 "parameters" : [
660 {
661 "type" : "regular",
662 "value" : "udp"
663 }
664 ],
665 "op" : "extract"
666 },
667 {
668 "parameters" : [
669 {
670 "type" : "field",
671 "value" : ["scalars", "fabric_metadata_t.l4_src_port"]
672 },
673 {
674 "type" : "field",
675 "value" : ["udp", "src_port"]
676 }
677 ],
678 "op" : "set"
679 },
680 {
681 "parameters" : [
682 {
683 "type" : "field",
684 "value" : ["scalars", "fabric_metadata_t.l4_dst_port"]
685 },
686 {
687 "type" : "field",
688 "value" : ["udp", "dst_port"]
689 }
690 ],
691 "op" : "set"
692 }
693 ],
694 "transitions" : [
695 {
696 "value" : "0x0868",
697 "mask" : null,
698 "next_state" : "parse_gtpu"
699 },
700 {
701 "value" : "default",
702 "mask" : null,
703 "next_state" : null
704 }
705 ],
706 "transition_key" : [
707 {
708 "type" : "field",
709 "value" : ["udp", "dst_port"]
710 }
711 ]
712 },
713 {
714 "name" : "parse_icmp",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -0800715 "id" : 9,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800716 "parser_ops" : [
717 {
718 "parameters" : [
719 {
720 "type" : "regular",
721 "value" : "icmp"
722 }
723 ],
724 "op" : "extract"
725 }
726 ],
727 "transitions" : [
728 {
729 "value" : "default",
730 "mask" : null,
731 "next_state" : null
732 }
733 ],
734 "transition_key" : []
735 },
736 {
737 "name" : "parse_gtpu",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -0800738 "id" : 10,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800739 "parser_ops" : [
740 {
741 "parameters" : [
742 {
743 "type" : "regular",
744 "value" : "gtpu"
745 }
746 ],
747 "op" : "extract"
748 },
749 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800750 "parameters" : [
751 {
752 "type" : "regular",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -0800753 "value" : "gtpu_ipv4"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800754 }
755 ],
756 "op" : "extract"
757 }
758 ],
759 "transitions" : [
760 {
761 "value" : "0x06",
762 "mask" : null,
763 "next_state" : "parse_tcp"
764 },
765 {
766 "value" : "0x11",
767 "mask" : null,
768 "next_state" : "parse_udp_inner"
769 },
770 {
771 "value" : "0x01",
772 "mask" : null,
773 "next_state" : "parse_icmp"
774 },
775 {
776 "value" : "default",
777 "mask" : null,
778 "next_state" : null
779 }
780 ],
781 "transition_key" : [
782 {
783 "type" : "field",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -0800784 "value" : ["gtpu_ipv4", "protocol"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800785 }
786 ]
787 },
788 {
789 "name" : "parse_udp_inner",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -0800790 "id" : 11,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800791 "parser_ops" : [
792 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800793 "parameters" : [
794 {
795 "type" : "regular",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -0800796 "value" : "gtpu_udp"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800797 }
798 ],
799 "op" : "extract"
800 },
801 {
802 "parameters" : [
803 {
804 "type" : "field",
805 "value" : ["scalars", "fabric_metadata_t.l4_src_port"]
806 },
807 {
808 "type" : "field",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -0800809 "value" : ["gtpu_udp", "src_port"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800810 }
811 ],
812 "op" : "set"
813 },
814 {
815 "parameters" : [
816 {
817 "type" : "field",
818 "value" : ["scalars", "fabric_metadata_t.l4_dst_port"]
819 },
820 {
821 "type" : "field",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -0800822 "value" : ["gtpu_udp", "dst_port"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800823 }
824 ],
825 "op" : "set"
826 }
827 ],
828 "transitions" : [
829 {
830 "value" : "default",
831 "mask" : null,
832 "next_state" : null
833 }
834 ],
835 "transition_key" : []
836 }
837 ]
838 }
839 ],
840 "deparsers" : [
841 {
842 "name" : "deparser",
843 "id" : 0,
844 "source_info" : {
845 "filename" : "include/parser.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -0800846 "line" : 164,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800847 "column" : 8,
848 "source_fragment" : "FabricDeparser"
849 },
Carmelo Casconeb757dbc2018-01-25 17:53:17 -0800850 "order" : ["packet_in", "ethernet", "vlan_tag", "mpls", "arp", "gtpu_ipv4", "gtpu_udp", "gtpu", "ipv4", "tcp", "udp", "icmp"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800851 }
852 ],
853 "meter_arrays" : [],
854 "counter_arrays" : [
855 {
856 "name" : "spgw_ingress.ue_counter",
857 "id" : 0,
858 "is_direct" : true,
859 "binding" : "spgw_ingress.ue_cdr_table"
860 },
861 {
862 "name" : "filtering.ingress_port_vlan_counter",
863 "id" : 1,
864 "is_direct" : true,
865 "binding" : "filtering.ingress_port_vlan"
866 },
867 {
868 "name" : "filtering.fwd_classifier_counter",
869 "id" : 2,
870 "is_direct" : true,
871 "binding" : "filtering.fwd_classifier"
872 },
873 {
874 "name" : "forwarding.bridging_counter",
875 "id" : 3,
876 "is_direct" : true,
877 "binding" : "forwarding.bridging"
878 },
879 {
880 "name" : "forwarding.mpls_counter",
881 "id" : 4,
882 "is_direct" : true,
883 "binding" : "forwarding.mpls"
884 },
885 {
886 "name" : "forwarding.unicast_v4_counter",
887 "id" : 5,
888 "is_direct" : true,
889 "binding" : "forwarding.unicast_v4"
890 },
891 {
892 "name" : "forwarding.multicast_v4_counter",
893 "id" : 6,
894 "is_direct" : true,
895 "binding" : "forwarding.multicast_v4"
896 },
897 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800898 "name" : "forwarding.acl_counter",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -0800899 "id" : 7,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800900 "is_direct" : true,
901 "binding" : "forwarding.acl"
902 },
903 {
904 "name" : "next.simple_counter",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -0800905 "id" : 8,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800906 "is_direct" : true,
907 "binding" : "next.simple"
908 },
909 {
910 "name" : "next.hashed_counter",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -0800911 "id" : 9,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800912 "is_direct" : true,
913 "binding" : "next.hashed"
914 },
915 {
916 "name" : "next.broadcast_counter",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -0800917 "id" : 10,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800918 "is_direct" : true,
919 "binding" : "next.broadcast"
920 },
921 {
922 "name" : "port_counters_control.egress_port_counter",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -0800923 "id" : 11,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800924 "source_info" : {
925 "filename" : "include/control/port_counter.p4",
926 "line" : 23,
927 "column" : 38,
928 "source_fragment" : "egress_port_counter"
929 },
930 "size" : 511,
931 "is_direct" : false
932 },
933 {
934 "name" : "port_counters_control.ingress_port_counter",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -0800935 "id" : 12,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800936 "source_info" : {
937 "filename" : "include/control/port_counter.p4",
938 "line" : 24,
939 "column" : 38,
940 "source_fragment" : "ingress_port_counter"
941 },
942 "size" : 511,
943 "is_direct" : false
944 }
945 ],
946 "register_arrays" : [],
947 "calculations" : [
948 {
949 "name" : "calc",
950 "id" : 0,
951 "source_info" : {
952 "filename" : "include/checksum.p4",
Carmelo Cascone14cde402018-01-25 01:57:18 -0800953 "line" : 56,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800954 "column" : 8,
955 "source_fragment" : "verify_checksum(hdr.ipv4.isValid(), ..."
956 },
957 "algo" : "csum16",
958 "input" : [
959 {
960 "type" : "field",
961 "value" : ["ipv4", "version"]
962 },
963 {
964 "type" : "field",
965 "value" : ["ipv4", "ihl"]
966 },
967 {
968 "type" : "field",
969 "value" : ["ipv4", "diffserv"]
970 },
971 {
972 "type" : "field",
973 "value" : ["ipv4", "total_len"]
974 },
975 {
976 "type" : "field",
977 "value" : ["ipv4", "identification"]
978 },
979 {
980 "type" : "field",
981 "value" : ["ipv4", "flags"]
982 },
983 {
984 "type" : "field",
985 "value" : ["ipv4", "frag_offset"]
986 },
987 {
988 "type" : "field",
989 "value" : ["ipv4", "ttl"]
990 },
991 {
992 "type" : "field",
993 "value" : ["ipv4", "protocol"]
994 },
995 {
996 "type" : "field",
997 "value" : ["ipv4", "src_addr"]
998 },
999 {
1000 "type" : "field",
1001 "value" : ["ipv4", "dst_addr"]
1002 }
1003 ]
1004 },
1005 {
1006 "name" : "calc_0",
1007 "id" : 1,
1008 "source_info" : {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001009 "filename" : "include/checksum.p4",
1010 "line" : 28,
1011 "column" : 8,
1012 "source_fragment" : "update_checksum(hdr.ipv4.isValid(), ..."
1013 },
1014 "algo" : "csum16",
1015 "input" : [
1016 {
1017 "type" : "field",
1018 "value" : ["ipv4", "version"]
1019 },
1020 {
1021 "type" : "field",
1022 "value" : ["ipv4", "ihl"]
1023 },
1024 {
1025 "type" : "field",
1026 "value" : ["ipv4", "diffserv"]
1027 },
1028 {
1029 "type" : "field",
1030 "value" : ["ipv4", "total_len"]
1031 },
1032 {
1033 "type" : "field",
1034 "value" : ["ipv4", "identification"]
1035 },
1036 {
1037 "type" : "field",
1038 "value" : ["ipv4", "flags"]
1039 },
1040 {
1041 "type" : "field",
1042 "value" : ["ipv4", "frag_offset"]
1043 },
1044 {
1045 "type" : "field",
1046 "value" : ["ipv4", "ttl"]
1047 },
1048 {
1049 "type" : "field",
1050 "value" : ["ipv4", "protocol"]
1051 },
1052 {
1053 "type" : "field",
1054 "value" : ["ipv4", "src_addr"]
1055 },
1056 {
1057 "type" : "field",
1058 "value" : ["ipv4", "dst_addr"]
1059 }
1060 ]
1061 },
1062 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001063 "name" : "calc_1",
1064 "id" : 2,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001065 "source_info" : {
1066 "filename" : "include/spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001067 "line" : 292,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001068 "column" : 8,
1069 "source_fragment" : "update_checksum(gtpu_ipv4.isValid(), ..."
1070 },
1071 "algo" : "csum16",
1072 "input" : [
1073 {
1074 "type" : "field",
1075 "value" : ["gtpu_ipv4", "version"]
1076 },
1077 {
1078 "type" : "field",
1079 "value" : ["gtpu_ipv4", "ihl"]
1080 },
1081 {
1082 "type" : "field",
1083 "value" : ["gtpu_ipv4", "diffserv"]
1084 },
1085 {
1086 "type" : "field",
1087 "value" : ["gtpu_ipv4", "total_len"]
1088 },
1089 {
1090 "type" : "field",
1091 "value" : ["gtpu_ipv4", "identification"]
1092 },
1093 {
1094 "type" : "field",
1095 "value" : ["gtpu_ipv4", "flags"]
1096 },
1097 {
1098 "type" : "field",
1099 "value" : ["gtpu_ipv4", "frag_offset"]
1100 },
1101 {
1102 "type" : "field",
1103 "value" : ["gtpu_ipv4", "ttl"]
1104 },
1105 {
1106 "type" : "field",
1107 "value" : ["gtpu_ipv4", "protocol"]
1108 },
1109 {
1110 "type" : "field",
1111 "value" : ["gtpu_ipv4", "src_addr"]
1112 },
1113 {
1114 "type" : "field",
1115 "value" : ["gtpu_ipv4", "dst_addr"]
1116 }
1117 ]
Carmelo Cascone14cde402018-01-25 01:57:18 -08001118 },
1119 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001120 "name" : "calc_2",
1121 "id" : 3,
Carmelo Cascone14cde402018-01-25 01:57:18 -08001122 "source_info" : {
1123 "filename" : "include/spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001124 "line" : 311,
Carmelo Cascone14cde402018-01-25 01:57:18 -08001125 "column" : 8,
1126 "source_fragment" : "update_checksum_with_payload(gtpu_udp.isValid(), ..."
1127 },
1128 "algo" : "csum16",
1129 "input" : [
1130 {
1131 "type" : "field",
1132 "value" : ["gtpu_ipv4", "src_addr"]
1133 },
1134 {
1135 "type" : "field",
1136 "value" : ["gtpu_ipv4", "dst_addr"]
1137 },
1138 {
1139 "type" : "hexstr",
1140 "value" : "0x00",
1141 "bitwidth" : 8
1142 },
1143 {
1144 "type" : "field",
1145 "value" : ["gtpu_ipv4", "protocol"]
1146 },
1147 {
1148 "type" : "field",
1149 "value" : ["gtpu_udp", "len"]
1150 },
1151 {
1152 "type" : "field",
1153 "value" : ["gtpu_udp", "src_port"]
1154 },
1155 {
1156 "type" : "field",
1157 "value" : ["gtpu_udp", "dst_port"]
1158 },
1159 {
1160 "type" : "field",
1161 "value" : ["gtpu_udp", "len"]
1162 },
1163 {
1164 "type" : "header",
1165 "value" : "gtpu"
1166 },
1167 {
1168 "type" : "header",
1169 "value" : "ipv4"
1170 },
1171 {
1172 "type" : "header",
1173 "value" : "udp"
1174 },
1175 {
1176 "type" : "payload",
1177 "value" : null
1178 }
1179 ]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001180 }
1181 ],
1182 "learn_lists" : [],
1183 "actions" : [
1184 {
1185 "name" : "NoAction",
1186 "id" : 0,
1187 "runtime_data" : [],
1188 "primitives" : []
1189 },
1190 {
1191 "name" : "NoAction",
1192 "id" : 1,
1193 "runtime_data" : [],
1194 "primitives" : []
1195 },
1196 {
1197 "name" : "NoAction",
1198 "id" : 2,
1199 "runtime_data" : [],
1200 "primitives" : []
1201 },
1202 {
1203 "name" : "NoAction",
1204 "id" : 3,
1205 "runtime_data" : [],
1206 "primitives" : []
1207 },
1208 {
1209 "name" : "NoAction",
1210 "id" : 4,
1211 "runtime_data" : [],
1212 "primitives" : []
1213 },
1214 {
1215 "name" : "NoAction",
1216 "id" : 5,
1217 "runtime_data" : [],
1218 "primitives" : []
1219 },
1220 {
1221 "name" : "NoAction",
1222 "id" : 6,
1223 "runtime_data" : [],
1224 "primitives" : []
1225 },
1226 {
1227 "name" : "NoAction",
1228 "id" : 7,
1229 "runtime_data" : [],
1230 "primitives" : []
1231 },
1232 {
1233 "name" : "NoAction",
1234 "id" : 8,
1235 "runtime_data" : [],
1236 "primitives" : []
1237 },
1238 {
1239 "name" : "NoAction",
1240 "id" : 9,
1241 "runtime_data" : [],
1242 "primitives" : []
1243 },
1244 {
1245 "name" : "NoAction",
1246 "id" : 10,
1247 "runtime_data" : [],
1248 "primitives" : []
1249 },
1250 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001251 "name" : "nop",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001252 "id" : 11,
1253 "runtime_data" : [],
1254 "primitives" : []
1255 },
1256 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001257 "name" : "nop",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001258 "id" : 12,
1259 "runtime_data" : [],
1260 "primitives" : []
1261 },
1262 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001263 "name" : "spgw_ingress.drop_now",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001264 "id" : 13,
1265 "runtime_data" : [],
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001266 "primitives" : [
1267 {
1268 "op" : "drop",
1269 "parameters" : [],
1270 "source_info" : {
1271 "filename" : "include/spgw.p4",
1272 "line" : 33,
1273 "column" : 8,
1274 "source_fragment" : "mark_to_drop()"
1275 }
1276 },
1277 {
1278 "op" : "exit",
1279 "parameters" : [],
1280 "source_info" : {
1281 "filename" : "include/spgw.p4",
1282 "line" : 34,
1283 "column" : 8,
1284 "source_fragment" : "exit"
1285 }
1286 }
1287 ]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001288 },
1289 {
1290 "name" : "spgw_ingress.gtpu_decap",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001291 "id" : 14,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001292 "runtime_data" : [],
1293 "primitives" : [
1294 {
1295 "op" : "remove_header",
1296 "parameters" : [
1297 {
1298 "type" : "header",
1299 "value" : "gtpu_ipv4"
1300 }
1301 ],
1302 "source_info" : {
1303 "filename" : "include/spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001304 "line" : 38,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001305 "column" : 8,
1306 "source_fragment" : "gtpu_ipv4.setInvalid()"
1307 }
1308 },
1309 {
1310 "op" : "remove_header",
1311 "parameters" : [
1312 {
1313 "type" : "header",
1314 "value" : "gtpu_udp"
1315 }
1316 ],
1317 "source_info" : {
1318 "filename" : "include/spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001319 "line" : 39,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001320 "column" : 8,
1321 "source_fragment" : "gtpu_udp.setInvalid()"
1322 }
1323 },
1324 {
1325 "op" : "remove_header",
1326 "parameters" : [
1327 {
1328 "type" : "header",
1329 "value" : "gtpu"
1330 }
1331 ],
1332 "source_info" : {
1333 "filename" : "include/spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001334 "line" : 40,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001335 "column" : 8,
1336 "source_fragment" : "gtpu.setInvalid()"
1337 }
1338 }
1339 ]
1340 },
1341 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001342 "name" : "spgw_ingress.set_dl_sess_info",
1343 "id" : 15,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001344 "runtime_data" : [
1345 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001346 "name" : "teid",
1347 "bitwidth" : 32
1348 },
1349 {
1350 "name" : "s1u_enb_addr",
1351 "bitwidth" : 32
1352 },
1353 {
1354 "name" : "s1u_sgw_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001355 "bitwidth" : 32
1356 }
1357 ],
1358 "primitives" : [
1359 {
1360 "op" : "assign",
1361 "parameters" : [
1362 {
1363 "type" : "field",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001364 "value" : ["spgw", "teid"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001365 },
1366 {
1367 "type" : "runtime_data",
1368 "value" : 0
1369 }
1370 ],
1371 "source_info" : {
1372 "filename" : "include/spgw.p4",
1373 "line" : 46,
1374 "column" : 8,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001375 "source_fragment" : "spgw_meta.teid = teid"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001376 }
1377 },
1378 {
1379 "op" : "assign",
1380 "parameters" : [
1381 {
1382 "type" : "field",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001383 "value" : ["spgw", "s1u_enb_addr"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001384 },
1385 {
1386 "type" : "runtime_data",
1387 "value" : 1
1388 }
1389 ],
1390 "source_info" : {
1391 "filename" : "include/spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001392 "line" : 47,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001393 "column" : 8,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001394 "source_fragment" : "spgw_meta.s1u_enb_addr = s1u_enb_addr"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001395 }
1396 },
1397 {
1398 "op" : "assign",
1399 "parameters" : [
1400 {
1401 "type" : "field",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001402 "value" : ["spgw", "s1u_sgw_addr"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001403 },
1404 {
1405 "type" : "runtime_data",
1406 "value" : 2
1407 }
1408 ],
1409 "source_info" : {
1410 "filename" : "include/spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001411 "line" : 48,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001412 "column" : 8,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001413 "source_fragment" : "spgw_meta.s1u_sgw_addr = s1u_sgw_addr"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001414 }
1415 }
1416 ]
1417 },
1418 {
1419 "name" : "spgw_ingress.update_ue_cdr",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001420 "id" : 16,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001421 "runtime_data" : [],
1422 "primitives" : []
1423 },
1424 {
1425 "name" : "filtering.drop",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001426 "id" : 17,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001427 "runtime_data" : [],
1428 "primitives" : [
1429 {
1430 "op" : "drop",
1431 "parameters" : [],
1432 "source_info" : {
1433 "filename" : "include/control/filtering.p4",
1434 "line" : 31,
1435 "column" : 8,
1436 "source_fragment" : "mark_to_drop()"
1437 }
1438 }
1439 ]
1440 },
1441 {
1442 "name" : "filtering.set_vlan",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001443 "id" : 18,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001444 "runtime_data" : [
1445 {
1446 "name" : "new_vlan_id",
1447 "bitwidth" : 12
1448 }
1449 ],
1450 "primitives" : [
1451 {
1452 "op" : "assign",
1453 "parameters" : [
1454 {
1455 "type" : "field",
1456 "value" : ["vlan_tag", "vlan_id"]
1457 },
1458 {
1459 "type" : "runtime_data",
1460 "value" : 0
1461 }
1462 ],
1463 "source_info" : {
1464 "filename" : "include/control/filtering.p4",
1465 "line" : 35,
1466 "column" : 8,
1467 "source_fragment" : "hdr.vlan_tag.vlan_id = new_vlan_id"
1468 }
1469 }
1470 ]
1471 },
1472 {
1473 "name" : "filtering.push_internal_vlan",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001474 "id" : 19,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001475 "runtime_data" : [
1476 {
1477 "name" : "new_vlan_id",
1478 "bitwidth" : 12
1479 }
1480 ],
1481 "primitives" : [
1482 {
1483 "op" : "add_header",
1484 "parameters" : [
1485 {
1486 "type" : "header",
1487 "value" : "vlan_tag"
1488 }
1489 ],
1490 "source_info" : {
1491 "filename" : "include/control/filtering.p4",
1492 "line" : 41,
1493 "column" : 8,
1494 "source_fragment" : "hdr.vlan_tag.setValid()"
1495 }
1496 },
1497 {
1498 "op" : "assign",
1499 "parameters" : [
1500 {
1501 "type" : "field",
1502 "value" : ["vlan_tag", "cfi"]
1503 },
1504 {
1505 "type" : "hexstr",
1506 "value" : "0x00"
1507 }
1508 ],
1509 "source_info" : {
1510 "filename" : "include/control/filtering.p4",
1511 "line" : 42,
1512 "column" : 8,
1513 "source_fragment" : "hdr.vlan_tag.cfi = 0"
1514 }
1515 },
1516 {
1517 "op" : "assign",
1518 "parameters" : [
1519 {
1520 "type" : "field",
1521 "value" : ["vlan_tag", "pri"]
1522 },
1523 {
1524 "type" : "hexstr",
1525 "value" : "0x00"
1526 }
1527 ],
1528 "source_info" : {
1529 "filename" : "include/control/filtering.p4",
1530 "line" : 43,
1531 "column" : 8,
1532 "source_fragment" : "hdr.vlan_tag.pri = 0"
1533 }
1534 },
1535 {
1536 "op" : "assign",
1537 "parameters" : [
1538 {
1539 "type" : "field",
1540 "value" : ["vlan_tag", "ether_type"]
1541 },
1542 {
1543 "type" : "field",
1544 "value" : ["ethernet", "ether_type"]
1545 }
1546 ],
1547 "source_info" : {
1548 "filename" : "include/control/filtering.p4",
1549 "line" : 44,
1550 "column" : 8,
1551 "source_fragment" : "hdr.vlan_tag.ether_type = hdr.ethernet.ether_type"
1552 }
1553 },
1554 {
1555 "op" : "assign",
1556 "parameters" : [
1557 {
1558 "type" : "field",
1559 "value" : ["ethernet", "ether_type"]
1560 },
1561 {
1562 "type" : "hexstr",
1563 "value" : "0x8100"
1564 }
1565 ],
1566 "source_info" : {
1567 "filename" : "include/control/../define.p4",
1568 "line" : 32,
1569 "column" : 31,
1570 "source_fragment" : "0x8100; ..."
1571 }
1572 },
1573 {
1574 "op" : "assign",
1575 "parameters" : [
1576 {
1577 "type" : "field",
1578 "value" : ["vlan_tag", "vlan_id"]
1579 },
1580 {
1581 "type" : "runtime_data",
1582 "value" : 0
1583 }
1584 ],
1585 "source_info" : {
1586 "filename" : "include/control/filtering.p4",
1587 "line" : 35,
1588 "column" : 8,
1589 "source_fragment" : "hdr.vlan_tag.vlan_id = new_vlan_id; ..."
1590 }
1591 },
1592 {
1593 "op" : "assign",
1594 "parameters" : [
1595 {
1596 "type" : "field",
1597 "value" : ["scalars", "fabric_metadata_t.pop_vlan_at_egress"]
1598 },
1599 {
1600 "type" : "expression",
1601 "value" : {
1602 "type" : "expression",
1603 "value" : {
1604 "op" : "b2d",
1605 "left" : null,
1606 "right" : {
1607 "type" : "bool",
1608 "value" : true
1609 }
1610 }
1611 }
1612 }
1613 ],
1614 "source_info" : {
1615 "filename" : "include/control/filtering.p4",
1616 "line" : 49,
1617 "column" : 8,
1618 "source_fragment" : "fabric_metadata.pop_vlan_at_egress = true"
1619 }
1620 }
1621 ]
1622 },
1623 {
1624 "name" : "filtering.set_forwarding_type",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001625 "id" : 20,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001626 "runtime_data" : [
1627 {
1628 "name" : "fwd_type",
1629 "bitwidth" : 3
1630 }
1631 ],
1632 "primitives" : [
1633 {
1634 "op" : "assign",
1635 "parameters" : [
1636 {
1637 "type" : "field",
1638 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
1639 },
1640 {
1641 "type" : "runtime_data",
1642 "value" : 0
1643 }
1644 ],
1645 "source_info" : {
1646 "filename" : "include/control/filtering.p4",
1647 "line" : 53,
1648 "column" : 8,
1649 "source_fragment" : "fabric_metadata.fwd_type = fwd_type"
1650 }
1651 }
1652 ]
1653 },
1654 {
1655 "name" : "forwarding.drop",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001656 "id" : 21,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001657 "runtime_data" : [],
1658 "primitives" : [
1659 {
1660 "op" : "drop",
1661 "parameters" : [],
1662 "source_info" : {
1663 "filename" : "include/control/forwarding.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001664 "line" : 37,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001665 "column" : 8,
1666 "source_fragment" : "mark_to_drop()"
1667 }
1668 }
1669 ]
1670 },
1671 {
1672 "name" : "forwarding.set_next_id",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001673 "id" : 22,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001674 "runtime_data" : [
1675 {
1676 "name" : "next_id",
1677 "bitwidth" : 32
1678 }
1679 ],
1680 "primitives" : [
1681 {
1682 "op" : "assign",
1683 "parameters" : [
1684 {
1685 "type" : "field",
1686 "value" : ["scalars", "fabric_metadata_t.next_id"]
1687 },
1688 {
1689 "type" : "runtime_data",
1690 "value" : 0
1691 }
1692 ],
1693 "source_info" : {
1694 "filename" : "include/control/forwarding.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001695 "line" : 41,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001696 "column" : 8,
1697 "source_fragment" : "fabric_metadata.next_id = next_id"
1698 }
1699 }
1700 ]
1701 },
1702 {
1703 "name" : "forwarding.set_next_id",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001704 "id" : 23,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001705 "runtime_data" : [
1706 {
1707 "name" : "next_id",
1708 "bitwidth" : 32
1709 }
1710 ],
1711 "primitives" : [
1712 {
1713 "op" : "assign",
1714 "parameters" : [
1715 {
1716 "type" : "field",
1717 "value" : ["scalars", "fabric_metadata_t.next_id"]
1718 },
1719 {
1720 "type" : "runtime_data",
1721 "value" : 0
1722 }
1723 ],
1724 "source_info" : {
1725 "filename" : "include/control/forwarding.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001726 "line" : 41,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001727 "column" : 8,
1728 "source_fragment" : "fabric_metadata.next_id = next_id"
1729 }
1730 }
1731 ]
1732 },
1733 {
1734 "name" : "forwarding.set_next_id",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001735 "id" : 24,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001736 "runtime_data" : [
1737 {
1738 "name" : "next_id",
1739 "bitwidth" : 32
1740 }
1741 ],
1742 "primitives" : [
1743 {
1744 "op" : "assign",
1745 "parameters" : [
1746 {
1747 "type" : "field",
1748 "value" : ["scalars", "fabric_metadata_t.next_id"]
1749 },
1750 {
1751 "type" : "runtime_data",
1752 "value" : 0
1753 }
1754 ],
1755 "source_info" : {
1756 "filename" : "include/control/forwarding.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001757 "line" : 41,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001758 "column" : 8,
1759 "source_fragment" : "fabric_metadata.next_id = next_id"
1760 }
1761 }
1762 ]
1763 },
1764 {
1765 "name" : "forwarding.set_next_id",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001766 "id" : 25,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001767 "runtime_data" : [
1768 {
1769 "name" : "next_id",
1770 "bitwidth" : 32
1771 }
1772 ],
1773 "primitives" : [
1774 {
1775 "op" : "assign",
1776 "parameters" : [
1777 {
1778 "type" : "field",
1779 "value" : ["scalars", "fabric_metadata_t.next_id"]
1780 },
1781 {
1782 "type" : "runtime_data",
1783 "value" : 0
1784 }
1785 ],
1786 "source_info" : {
1787 "filename" : "include/control/forwarding.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001788 "line" : 41,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001789 "column" : 8,
1790 "source_fragment" : "fabric_metadata.next_id = next_id"
1791 }
1792 }
1793 ]
1794 },
1795 {
1796 "name" : "forwarding.pop_mpls_and_next",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001797 "id" : 26,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001798 "runtime_data" : [
1799 {
1800 "name" : "next_id",
1801 "bitwidth" : 32
1802 }
1803 ],
1804 "primitives" : [
1805 {
1806 "op" : "remove_header",
1807 "parameters" : [
1808 {
1809 "type" : "header",
1810 "value" : "mpls"
1811 }
1812 ],
1813 "source_info" : {
1814 "filename" : "include/control/forwarding.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001815 "line" : 45,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001816 "column" : 8,
1817 "source_fragment" : "hdr.mpls.setInvalid()"
1818 }
1819 },
1820 {
1821 "op" : "assign",
1822 "parameters" : [
1823 {
1824 "type" : "field",
1825 "value" : ["scalars", "fabric_metadata_t.next_id"]
1826 },
1827 {
1828 "type" : "runtime_data",
1829 "value" : 0
1830 }
1831 ],
1832 "source_info" : {
1833 "filename" : "include/control/forwarding.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001834 "line" : 46,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001835 "column" : 8,
1836 "source_fragment" : "fabric_metadata.next_id = next_id"
1837 }
1838 }
1839 ]
1840 },
1841 {
1842 "name" : "forwarding.duplicate_to_controller",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001843 "id" : 27,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001844 "runtime_data" : [],
1845 "primitives" : [
1846 {
1847 "op" : "assign",
1848 "parameters" : [
1849 {
1850 "type" : "field",
1851 "value" : ["standard_metadata", "egress_spec"]
1852 },
1853 {
1854 "type" : "hexstr",
1855 "value" : "0x00ff"
1856 }
1857 ],
1858 "source_info" : {
Carmelo Casconeb531b682018-01-30 17:55:56 -08001859 "filename" : "include/control/forwarding.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001860 "line" : 50,
Carmelo Casconeb531b682018-01-30 17:55:56 -08001861 "column" : 8,
1862 "source_fragment" : "standard_metadata.egress_spec = 255"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001863 }
1864 }
1865 ]
1866 },
1867 {
1868 "name" : "next.output",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001869 "id" : 28,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001870 "runtime_data" : [
1871 {
1872 "name" : "port_num",
1873 "bitwidth" : 9
1874 }
1875 ],
1876 "primitives" : [
1877 {
1878 "op" : "assign",
1879 "parameters" : [
1880 {
1881 "type" : "field",
1882 "value" : ["standard_metadata", "egress_spec"]
1883 },
1884 {
1885 "type" : "runtime_data",
1886 "value" : 0
1887 }
1888 ],
1889 "source_info" : {
1890 "filename" : "include/control/next.p4",
1891 "line" : 33,
1892 "column" : 8,
1893 "source_fragment" : "standard_metadata.egress_spec = port_num"
1894 }
1895 }
1896 ]
1897 },
1898 {
1899 "name" : "next.set_vlan_output",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001900 "id" : 29,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001901 "runtime_data" : [
1902 {
1903 "name" : "new_vlan_id",
1904 "bitwidth" : 12
1905 },
1906 {
1907 "name" : "port_num",
1908 "bitwidth" : 9
1909 }
1910 ],
1911 "primitives" : [
1912 {
1913 "op" : "assign",
1914 "parameters" : [
1915 {
1916 "type" : "field",
1917 "value" : ["vlan_tag", "vlan_id"]
1918 },
1919 {
1920 "type" : "runtime_data",
1921 "value" : 0
1922 }
1923 ],
1924 "source_info" : {
1925 "filename" : "include/control/next.p4",
1926 "line" : 37,
1927 "column" : 8,
1928 "source_fragment" : "hdr.vlan_tag.vlan_id = new_vlan_id"
1929 }
1930 },
1931 {
1932 "op" : "assign",
1933 "parameters" : [
1934 {
1935 "type" : "field",
1936 "value" : ["scalars", "fabric_metadata_t.pop_vlan_at_egress"]
1937 },
1938 {
1939 "type" : "expression",
1940 "value" : {
1941 "type" : "expression",
1942 "value" : {
1943 "op" : "b2d",
1944 "left" : null,
1945 "right" : {
1946 "type" : "bool",
1947 "value" : false
1948 }
1949 }
1950 }
1951 }
1952 ],
1953 "source_info" : {
1954 "filename" : "include/control/next.p4",
1955 "line" : 40,
1956 "column" : 8,
1957 "source_fragment" : "fabric_metadata.pop_vlan_at_egress = false"
1958 }
1959 },
1960 {
1961 "op" : "assign",
1962 "parameters" : [
1963 {
1964 "type" : "field",
1965 "value" : ["standard_metadata", "egress_spec"]
1966 },
1967 {
1968 "type" : "runtime_data",
1969 "value" : 1
1970 }
1971 ],
1972 "source_info" : {
1973 "filename" : "include/control/next.p4",
1974 "line" : 33,
1975 "column" : 8,
1976 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
1977 }
1978 }
1979 ]
1980 },
1981 {
1982 "name" : "next.l3_routing",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001983 "id" : 30,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001984 "runtime_data" : [
1985 {
1986 "name" : "port_num",
1987 "bitwidth" : 9
1988 },
1989 {
1990 "name" : "smac",
1991 "bitwidth" : 48
1992 },
1993 {
1994 "name" : "dmac",
1995 "bitwidth" : 48
1996 }
1997 ],
1998 "primitives" : [
1999 {
2000 "op" : "assign",
2001 "parameters" : [
2002 {
2003 "type" : "field",
2004 "value" : ["ethernet", "src_addr"]
2005 },
2006 {
2007 "type" : "runtime_data",
2008 "value" : 1
2009 }
2010 ],
2011 "source_info" : {
2012 "filename" : "include/control/next.p4",
2013 "line" : 45,
2014 "column" : 8,
2015 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2016 }
2017 },
2018 {
2019 "op" : "assign",
2020 "parameters" : [
2021 {
2022 "type" : "field",
2023 "value" : ["ethernet", "dst_addr"]
2024 },
2025 {
2026 "type" : "runtime_data",
2027 "value" : 2
2028 }
2029 ],
2030 "source_info" : {
2031 "filename" : "include/control/next.p4",
2032 "line" : 49,
2033 "column" : 8,
2034 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2035 }
2036 },
2037 {
2038 "op" : "assign",
2039 "parameters" : [
2040 {
2041 "type" : "field",
2042 "value" : ["standard_metadata", "egress_spec"]
2043 },
2044 {
2045 "type" : "runtime_data",
2046 "value" : 0
2047 }
2048 ],
2049 "source_info" : {
2050 "filename" : "include/control/next.p4",
2051 "line" : 33,
2052 "column" : 8,
2053 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2054 }
2055 }
2056 ]
2057 },
2058 {
2059 "name" : "next.l3_routing",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08002060 "id" : 31,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002061 "runtime_data" : [
2062 {
2063 "name" : "port_num",
2064 "bitwidth" : 9
2065 },
2066 {
2067 "name" : "smac",
2068 "bitwidth" : 48
2069 },
2070 {
2071 "name" : "dmac",
2072 "bitwidth" : 48
2073 }
2074 ],
2075 "primitives" : [
2076 {
2077 "op" : "assign",
2078 "parameters" : [
2079 {
2080 "type" : "field",
2081 "value" : ["ethernet", "src_addr"]
2082 },
2083 {
2084 "type" : "runtime_data",
2085 "value" : 1
2086 }
2087 ],
2088 "source_info" : {
2089 "filename" : "include/control/next.p4",
2090 "line" : 45,
2091 "column" : 8,
2092 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2093 }
2094 },
2095 {
2096 "op" : "assign",
2097 "parameters" : [
2098 {
2099 "type" : "field",
2100 "value" : ["ethernet", "dst_addr"]
2101 },
2102 {
2103 "type" : "runtime_data",
2104 "value" : 2
2105 }
2106 ],
2107 "source_info" : {
2108 "filename" : "include/control/next.p4",
2109 "line" : 49,
2110 "column" : 8,
2111 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2112 }
2113 },
2114 {
2115 "op" : "assign",
2116 "parameters" : [
2117 {
2118 "type" : "field",
2119 "value" : ["standard_metadata", "egress_spec"]
2120 },
2121 {
2122 "type" : "runtime_data",
2123 "value" : 0
2124 }
2125 ],
2126 "source_info" : {
2127 "filename" : "include/control/next.p4",
2128 "line" : 33,
2129 "column" : 8,
2130 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2131 }
2132 }
2133 ]
2134 },
2135 {
2136 "name" : "next.set_mcast_group",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08002137 "id" : 32,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002138 "runtime_data" : [
2139 {
2140 "name" : "gid",
2141 "bitwidth" : 16
2142 },
2143 {
2144 "name" : "smac",
2145 "bitwidth" : 48
2146 }
2147 ],
2148 "primitives" : [
2149 {
2150 "op" : "assign",
2151 "parameters" : [
2152 {
2153 "type" : "field",
2154 "value" : ["standard_metadata", "mcast_grp"]
2155 },
2156 {
2157 "type" : "runtime_data",
2158 "value" : 0
2159 }
2160 ],
2161 "source_info" : {
2162 "filename" : "include/control/next.p4",
2163 "line" : 59,
2164 "column" : 8,
2165 "source_fragment" : "standard_metadata.mcast_grp = gid"
2166 }
2167 },
2168 {
2169 "op" : "assign",
2170 "parameters" : [
2171 {
2172 "type" : "field",
2173 "value" : ["ethernet", "src_addr"]
2174 },
2175 {
2176 "type" : "runtime_data",
2177 "value" : 1
2178 }
2179 ],
2180 "source_info" : {
2181 "filename" : "include/control/next.p4",
2182 "line" : 45,
2183 "column" : 8,
2184 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2185 }
2186 }
2187 ]
2188 },
2189 {
2190 "name" : "next.mpls_routing_v4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08002191 "id" : 33,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002192 "runtime_data" : [
2193 {
2194 "name" : "port_num",
2195 "bitwidth" : 9
2196 },
2197 {
2198 "name" : "smac",
2199 "bitwidth" : 48
2200 },
2201 {
2202 "name" : "dmac",
2203 "bitwidth" : 48
2204 },
2205 {
2206 "name" : "label",
2207 "bitwidth" : 20
2208 }
2209 ],
2210 "primitives" : [
2211 {
2212 "op" : "assign",
2213 "parameters" : [
2214 {
2215 "type" : "field",
2216 "value" : ["ethernet", "src_addr"]
2217 },
2218 {
2219 "type" : "runtime_data",
2220 "value" : 1
2221 }
2222 ],
2223 "source_info" : {
2224 "filename" : "include/control/next.p4",
2225 "line" : 45,
2226 "column" : 8,
2227 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2228 }
2229 },
2230 {
2231 "op" : "assign",
2232 "parameters" : [
2233 {
2234 "type" : "field",
2235 "value" : ["ethernet", "dst_addr"]
2236 },
2237 {
2238 "type" : "runtime_data",
2239 "value" : 2
2240 }
2241 ],
2242 "source_info" : {
2243 "filename" : "include/control/next.p4",
2244 "line" : 49,
2245 "column" : 8,
2246 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2247 }
2248 },
2249 {
2250 "op" : "assign",
2251 "parameters" : [
2252 {
2253 "type" : "field",
2254 "value" : ["standard_metadata", "egress_spec"]
2255 },
2256 {
2257 "type" : "runtime_data",
2258 "value" : 0
2259 }
2260 ],
2261 "source_info" : {
2262 "filename" : "include/control/next.p4",
2263 "line" : 33,
2264 "column" : 8,
2265 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2266 }
2267 },
2268 {
2269 "op" : "add_header",
2270 "parameters" : [
2271 {
2272 "type" : "header",
2273 "value" : "mpls"
2274 }
2275 ],
2276 "source_info" : {
2277 "filename" : "include/control/next.p4",
2278 "line" : 65,
2279 "column" : 8,
2280 "source_fragment" : "hdr.mpls.setValid()"
2281 }
2282 },
2283 {
2284 "op" : "assign",
2285 "parameters" : [
2286 {
2287 "type" : "field",
2288 "value" : ["vlan_tag", "ether_type"]
2289 },
2290 {
2291 "type" : "hexstr",
2292 "value" : "0x8847"
2293 }
2294 ],
2295 "source_info" : {
2296 "filename" : "include/control/../define.p4",
2297 "line" : 33,
2298 "column" : 31,
2299 "source_fragment" : "0x8847; ..."
2300 }
2301 },
2302 {
2303 "op" : "assign",
2304 "parameters" : [
2305 {
2306 "type" : "field",
2307 "value" : ["mpls", "label"]
2308 },
2309 {
2310 "type" : "runtime_data",
2311 "value" : 3
2312 }
2313 ],
2314 "source_info" : {
2315 "filename" : "include/control/next.p4",
2316 "line" : 67,
2317 "column" : 8,
2318 "source_fragment" : "hdr.mpls.label = label; ..."
2319 }
2320 },
2321 {
2322 "op" : "assign",
2323 "parameters" : [
2324 {
2325 "type" : "field",
2326 "value" : ["mpls", "tc"]
2327 },
2328 {
2329 "type" : "hexstr",
2330 "value" : "0x00"
2331 }
2332 ],
2333 "source_info" : {
2334 "filename" : "include/control/next.p4",
2335 "line" : 68,
2336 "column" : 8,
2337 "source_fragment" : "hdr.mpls.tc = tc; ..."
2338 }
2339 },
2340 {
2341 "op" : "assign",
2342 "parameters" : [
2343 {
2344 "type" : "field",
2345 "value" : ["mpls", "bos"]
2346 },
2347 {
2348 "type" : "hexstr",
2349 "value" : "0x01"
2350 }
2351 ],
2352 "source_info" : {
2353 "filename" : "include/control/next.p4",
2354 "line" : 69,
2355 "column" : 8,
2356 "source_fragment" : "hdr.mpls.bos = 1w1"
2357 }
2358 },
2359 {
2360 "op" : "assign",
2361 "parameters" : [
2362 {
2363 "type" : "field",
2364 "value" : ["mpls", "ttl"]
2365 },
2366 {
2367 "type" : "hexstr",
2368 "value" : "0x40"
2369 }
2370 ],
2371 "source_info" : {
2372 "filename" : "include/control/../define.p4",
2373 "line" : 60,
2374 "column" : 32,
2375 "source_fragment" : "64; ..."
2376 }
2377 }
2378 ]
2379 },
2380 {
2381 "name" : "next.mpls_routing_v4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08002382 "id" : 34,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002383 "runtime_data" : [
2384 {
2385 "name" : "port_num",
2386 "bitwidth" : 9
2387 },
2388 {
2389 "name" : "smac",
2390 "bitwidth" : 48
2391 },
2392 {
2393 "name" : "dmac",
2394 "bitwidth" : 48
2395 },
2396 {
2397 "name" : "label",
2398 "bitwidth" : 20
2399 }
2400 ],
2401 "primitives" : [
2402 {
2403 "op" : "assign",
2404 "parameters" : [
2405 {
2406 "type" : "field",
2407 "value" : ["ethernet", "src_addr"]
2408 },
2409 {
2410 "type" : "runtime_data",
2411 "value" : 1
2412 }
2413 ],
2414 "source_info" : {
2415 "filename" : "include/control/next.p4",
2416 "line" : 45,
2417 "column" : 8,
2418 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2419 }
2420 },
2421 {
2422 "op" : "assign",
2423 "parameters" : [
2424 {
2425 "type" : "field",
2426 "value" : ["ethernet", "dst_addr"]
2427 },
2428 {
2429 "type" : "runtime_data",
2430 "value" : 2
2431 }
2432 ],
2433 "source_info" : {
2434 "filename" : "include/control/next.p4",
2435 "line" : 49,
2436 "column" : 8,
2437 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2438 }
2439 },
2440 {
2441 "op" : "assign",
2442 "parameters" : [
2443 {
2444 "type" : "field",
2445 "value" : ["standard_metadata", "egress_spec"]
2446 },
2447 {
2448 "type" : "runtime_data",
2449 "value" : 0
2450 }
2451 ],
2452 "source_info" : {
2453 "filename" : "include/control/next.p4",
2454 "line" : 33,
2455 "column" : 8,
2456 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2457 }
2458 },
2459 {
2460 "op" : "add_header",
2461 "parameters" : [
2462 {
2463 "type" : "header",
2464 "value" : "mpls"
2465 }
2466 ],
2467 "source_info" : {
2468 "filename" : "include/control/next.p4",
2469 "line" : 65,
2470 "column" : 8,
2471 "source_fragment" : "hdr.mpls.setValid()"
2472 }
2473 },
2474 {
2475 "op" : "assign",
2476 "parameters" : [
2477 {
2478 "type" : "field",
2479 "value" : ["vlan_tag", "ether_type"]
2480 },
2481 {
2482 "type" : "hexstr",
2483 "value" : "0x8847"
2484 }
2485 ],
2486 "source_info" : {
2487 "filename" : "include/control/../define.p4",
2488 "line" : 33,
2489 "column" : 31,
2490 "source_fragment" : "0x8847; ..."
2491 }
2492 },
2493 {
2494 "op" : "assign",
2495 "parameters" : [
2496 {
2497 "type" : "field",
2498 "value" : ["mpls", "label"]
2499 },
2500 {
2501 "type" : "runtime_data",
2502 "value" : 3
2503 }
2504 ],
2505 "source_info" : {
2506 "filename" : "include/control/next.p4",
2507 "line" : 67,
2508 "column" : 8,
2509 "source_fragment" : "hdr.mpls.label = label; ..."
2510 }
2511 },
2512 {
2513 "op" : "assign",
2514 "parameters" : [
2515 {
2516 "type" : "field",
2517 "value" : ["mpls", "tc"]
2518 },
2519 {
2520 "type" : "hexstr",
2521 "value" : "0x00"
2522 }
2523 ],
2524 "source_info" : {
2525 "filename" : "include/control/next.p4",
2526 "line" : 68,
2527 "column" : 8,
2528 "source_fragment" : "hdr.mpls.tc = tc; ..."
2529 }
2530 },
2531 {
2532 "op" : "assign",
2533 "parameters" : [
2534 {
2535 "type" : "field",
2536 "value" : ["mpls", "bos"]
2537 },
2538 {
2539 "type" : "hexstr",
2540 "value" : "0x01"
2541 }
2542 ],
2543 "source_info" : {
2544 "filename" : "include/control/next.p4",
2545 "line" : 69,
2546 "column" : 8,
2547 "source_fragment" : "hdr.mpls.bos = 1w1"
2548 }
2549 },
2550 {
2551 "op" : "assign",
2552 "parameters" : [
2553 {
2554 "type" : "field",
2555 "value" : ["mpls", "ttl"]
2556 },
2557 {
2558 "type" : "hexstr",
2559 "value" : "0x40"
2560 }
2561 ],
2562 "source_info" : {
2563 "filename" : "include/control/../define.p4",
2564 "line" : 60,
2565 "column" : 32,
2566 "source_fragment" : "64; ..."
2567 }
2568 }
2569 ]
2570 },
2571 {
2572 "name" : "next.mpls_routing_v6",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08002573 "id" : 35,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002574 "runtime_data" : [
2575 {
2576 "name" : "port_num",
2577 "bitwidth" : 9
2578 },
2579 {
2580 "name" : "smac",
2581 "bitwidth" : 48
2582 },
2583 {
2584 "name" : "dmac",
2585 "bitwidth" : 48
2586 },
2587 {
2588 "name" : "label",
2589 "bitwidth" : 20
2590 }
2591 ],
2592 "primitives" : [
2593 {
2594 "op" : "assign",
2595 "parameters" : [
2596 {
2597 "type" : "field",
2598 "value" : ["ethernet", "src_addr"]
2599 },
2600 {
2601 "type" : "runtime_data",
2602 "value" : 1
2603 }
2604 ],
2605 "source_info" : {
2606 "filename" : "include/control/next.p4",
2607 "line" : 45,
2608 "column" : 8,
2609 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2610 }
2611 },
2612 {
2613 "op" : "assign",
2614 "parameters" : [
2615 {
2616 "type" : "field",
2617 "value" : ["ethernet", "dst_addr"]
2618 },
2619 {
2620 "type" : "runtime_data",
2621 "value" : 2
2622 }
2623 ],
2624 "source_info" : {
2625 "filename" : "include/control/next.p4",
2626 "line" : 49,
2627 "column" : 8,
2628 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2629 }
2630 },
2631 {
2632 "op" : "assign",
2633 "parameters" : [
2634 {
2635 "type" : "field",
2636 "value" : ["standard_metadata", "egress_spec"]
2637 },
2638 {
2639 "type" : "runtime_data",
2640 "value" : 0
2641 }
2642 ],
2643 "source_info" : {
2644 "filename" : "include/control/next.p4",
2645 "line" : 33,
2646 "column" : 8,
2647 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2648 }
2649 },
2650 {
2651 "op" : "add_header",
2652 "parameters" : [
2653 {
2654 "type" : "header",
2655 "value" : "mpls"
2656 }
2657 ],
2658 "source_info" : {
2659 "filename" : "include/control/next.p4",
2660 "line" : 65,
2661 "column" : 8,
2662 "source_fragment" : "hdr.mpls.setValid()"
2663 }
2664 },
2665 {
2666 "op" : "assign",
2667 "parameters" : [
2668 {
2669 "type" : "field",
2670 "value" : ["vlan_tag", "ether_type"]
2671 },
2672 {
2673 "type" : "hexstr",
2674 "value" : "0x8847"
2675 }
2676 ],
2677 "source_info" : {
2678 "filename" : "include/control/../define.p4",
2679 "line" : 33,
2680 "column" : 31,
2681 "source_fragment" : "0x8847; ..."
2682 }
2683 },
2684 {
2685 "op" : "assign",
2686 "parameters" : [
2687 {
2688 "type" : "field",
2689 "value" : ["mpls", "label"]
2690 },
2691 {
2692 "type" : "runtime_data",
2693 "value" : 3
2694 }
2695 ],
2696 "source_info" : {
2697 "filename" : "include/control/next.p4",
2698 "line" : 67,
2699 "column" : 8,
2700 "source_fragment" : "hdr.mpls.label = label; ..."
2701 }
2702 },
2703 {
2704 "op" : "assign",
2705 "parameters" : [
2706 {
2707 "type" : "field",
2708 "value" : ["mpls", "tc"]
2709 },
2710 {
2711 "type" : "hexstr",
2712 "value" : "0x00"
2713 }
2714 ],
2715 "source_info" : {
2716 "filename" : "include/control/next.p4",
2717 "line" : 68,
2718 "column" : 8,
2719 "source_fragment" : "hdr.mpls.tc = tc; ..."
2720 }
2721 },
2722 {
2723 "op" : "assign",
2724 "parameters" : [
2725 {
2726 "type" : "field",
2727 "value" : ["mpls", "bos"]
2728 },
2729 {
2730 "type" : "hexstr",
2731 "value" : "0x01"
2732 }
2733 ],
2734 "source_info" : {
2735 "filename" : "include/control/next.p4",
2736 "line" : 69,
2737 "column" : 8,
2738 "source_fragment" : "hdr.mpls.bos = 1w1"
2739 }
2740 },
2741 {
2742 "op" : "assign",
2743 "parameters" : [
2744 {
2745 "type" : "field",
2746 "value" : ["mpls", "ttl"]
2747 },
2748 {
2749 "type" : "hexstr",
2750 "value" : "0x40"
2751 }
2752 ],
2753 "source_info" : {
2754 "filename" : "include/control/../define.p4",
2755 "line" : 60,
2756 "column" : 32,
2757 "source_fragment" : "64; ..."
2758 }
2759 }
2760 ]
2761 },
2762 {
2763 "name" : "act",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08002764 "id" : 36,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002765 "runtime_data" : [],
2766 "primitives" : [
2767 {
2768 "op" : "assign",
2769 "parameters" : [
2770 {
2771 "type" : "field",
2772 "value" : ["standard_metadata", "egress_spec"]
2773 },
2774 {
2775 "type" : "field",
2776 "value" : ["packet_out", "egress_port"]
2777 }
2778 ],
2779 "source_info" : {
2780 "filename" : "include/control/packetio.p4",
2781 "line" : 26,
2782 "column" : 12,
2783 "source_fragment" : "standard_metadata.egress_spec = hdr.packet_out.egress_port"
2784 }
2785 },
2786 {
2787 "op" : "remove_header",
2788 "parameters" : [
2789 {
2790 "type" : "header",
2791 "value" : "packet_out"
2792 }
2793 ],
2794 "source_info" : {
2795 "filename" : "include/control/packetio.p4",
2796 "line" : 27,
2797 "column" : 12,
2798 "source_fragment" : "hdr.packet_out.setInvalid()"
2799 }
2800 }
2801 ]
2802 },
2803 {
2804 "name" : "act_0",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08002805 "id" : 37,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002806 "runtime_data" : [],
2807 "primitives" : [
2808 {
2809 "op" : "assign",
2810 "parameters" : [
2811 {
2812 "type" : "field",
2813 "value" : ["scalars", "spgw_ingress_tmp_2"]
2814 },
2815 {
2816 "type" : "expression",
2817 "value" : {
2818 "type" : "expression",
2819 "value" : {
2820 "op" : "b2d",
2821 "left" : null,
2822 "right" : {
2823 "type" : "bool",
2824 "value" : true
2825 }
2826 }
2827 }
2828 }
2829 ]
2830 }
2831 ]
2832 },
2833 {
2834 "name" : "act_1",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08002835 "id" : 38,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002836 "runtime_data" : [],
2837 "primitives" : [
2838 {
2839 "op" : "assign",
2840 "parameters" : [
2841 {
2842 "type" : "field",
2843 "value" : ["scalars", "spgw_ingress_tmp_2"]
2844 },
2845 {
2846 "type" : "expression",
2847 "value" : {
2848 "type" : "expression",
2849 "value" : {
2850 "op" : "b2d",
2851 "left" : null,
2852 "right" : {
2853 "type" : "bool",
2854 "value" : false
2855 }
2856 }
2857 }
2858 }
2859 ]
2860 }
2861 ]
2862 },
2863 {
2864 "name" : "act_2",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08002865 "id" : 39,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002866 "runtime_data" : [],
2867 "primitives" : [
2868 {
2869 "op" : "assign",
2870 "parameters" : [
2871 {
2872 "type" : "field",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08002873 "value" : ["spgw", "s1u_enb_addr"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002874 },
2875 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08002876 "type" : "field",
2877 "value" : ["ipv4", "src_addr"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002878 }
2879 ],
2880 "source_info" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08002881 "filename" : "include/spgw.p4",
2882 "line" : 152,
2883 "column" : 12,
2884 "source_fragment" : "spgw_meta.s1u_enb_addr = ipv4.src_addr"
2885 }
2886 },
2887 {
2888 "op" : "assign",
2889 "parameters" : [
2890 {
2891 "type" : "field",
2892 "value" : ["spgw", "s1u_sgw_addr"]
2893 },
2894 {
2895 "type" : "field",
2896 "value" : ["ipv4", "dst_addr"]
2897 }
2898 ],
2899 "source_info" : {
2900 "filename" : "include/spgw.p4",
2901 "line" : 153,
2902 "column" : 12,
2903 "source_fragment" : "spgw_meta.s1u_sgw_addr = ipv4.dst_addr"
2904 }
2905 },
2906 {
2907 "op" : "assign_header",
2908 "parameters" : [
2909 {
2910 "type" : "header",
2911 "value" : "ipv4"
2912 },
2913 {
2914 "type" : "header",
2915 "value" : "gtpu_ipv4"
2916 }
2917 ],
2918 "source_info" : {
2919 "filename" : "include/spgw.p4",
2920 "line" : 154,
2921 "column" : 17,
2922 "source_fragment" : "= gtpu_ipv4; ..."
2923 }
2924 },
2925 {
2926 "op" : "assign_header",
2927 "parameters" : [
2928 {
2929 "type" : "header",
2930 "value" : "udp"
2931 },
2932 {
2933 "type" : "header",
2934 "value" : "gtpu_udp"
2935 }
2936 ],
2937 "source_info" : {
2938 "filename" : "include/spgw.p4",
2939 "line" : 155,
2940 "column" : 16,
2941 "source_fragment" : "= gtpu_udp; ..."
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002942 }
2943 }
2944 ]
2945 },
2946 {
2947 "name" : "act_3",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08002948 "id" : 40,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002949 "runtime_data" : [],
2950 "primitives" : [
2951 {
2952 "op" : "assign",
2953 "parameters" : [
2954 {
2955 "type" : "field",
2956 "value" : ["spgw", "do_spgw"]
2957 },
2958 {
2959 "type" : "expression",
2960 "value" : {
2961 "type" : "expression",
2962 "value" : {
2963 "op" : "b2d",
2964 "left" : null,
2965 "right" : {
2966 "type" : "bool",
2967 "value" : true
2968 }
2969 }
2970 }
2971 }
2972 ],
2973 "source_info" : {
2974 "filename" : "include/spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08002975 "line" : 159,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002976 "column" : 16,
2977 "source_fragment" : "spgw_meta.do_spgw = true"
2978 }
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08002979 },
2980 {
2981 "op" : "assign",
2982 "parameters" : [
2983 {
2984 "type" : "field",
2985 "value" : ["spgw", "direction"]
2986 },
2987 {
2988 "type" : "hexstr",
2989 "value" : "0x00"
2990 }
2991 ],
2992 "source_info" : {
2993 "filename" : "include/control/../define.p4",
2994 "line" : 81,
2995 "column" : 31,
2996 "source_fragment" : "1w0; ..."
2997 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002998 }
2999 ]
3000 },
3001 {
3002 "name" : "act_4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003003 "id" : 41,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003004 "runtime_data" : [],
3005 "primitives" : [
3006 {
3007 "op" : "assign",
3008 "parameters" : [
3009 {
3010 "type" : "field",
3011 "value" : ["scalars", "spgw_ingress_tmp_3"]
3012 },
3013 {
3014 "type" : "expression",
3015 "value" : {
3016 "type" : "expression",
3017 "value" : {
3018 "op" : "b2d",
3019 "left" : null,
3020 "right" : {
3021 "type" : "bool",
3022 "value" : true
3023 }
3024 }
3025 }
3026 }
3027 ]
3028 }
3029 ]
3030 },
3031 {
3032 "name" : "act_5",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003033 "id" : 42,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003034 "runtime_data" : [],
3035 "primitives" : [
3036 {
3037 "op" : "assign",
3038 "parameters" : [
3039 {
3040 "type" : "field",
3041 "value" : ["scalars", "spgw_ingress_tmp_3"]
3042 },
3043 {
3044 "type" : "expression",
3045 "value" : {
3046 "type" : "expression",
3047 "value" : {
3048 "op" : "b2d",
3049 "left" : null,
3050 "right" : {
3051 "type" : "bool",
3052 "value" : false
3053 }
3054 }
3055 }
3056 }
3057 ]
3058 }
3059 ]
3060 },
3061 {
3062 "name" : "act_6",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003063 "id" : 43,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003064 "runtime_data" : [],
3065 "primitives" : [
3066 {
3067 "op" : "assign",
3068 "parameters" : [
3069 {
3070 "type" : "field",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003071 "value" : ["spgw", "do_spgw"]
3072 },
3073 {
3074 "type" : "expression",
3075 "value" : {
3076 "type" : "expression",
3077 "value" : {
3078 "op" : "b2d",
3079 "left" : null,
3080 "right" : {
3081 "type" : "bool",
3082 "value" : true
3083 }
3084 }
3085 }
3086 }
3087 ],
3088 "source_info" : {
3089 "filename" : "include/spgw.p4",
3090 "line" : 163,
3091 "column" : 12,
3092 "source_fragment" : "spgw_meta.do_spgw = true"
3093 }
3094 },
3095 {
3096 "op" : "assign",
3097 "parameters" : [
3098 {
3099 "type" : "field",
Carmelo Cascone14cde402018-01-25 01:57:18 -08003100 "value" : ["spgw", "direction"]
3101 },
3102 {
3103 "type" : "hexstr",
3104 "value" : "0x01"
3105 }
3106 ],
3107 "source_info" : {
3108 "filename" : "include/control/../define.p4",
3109 "line" : 82,
3110 "column" : 33,
3111 "source_fragment" : "1w1; ..."
3112 }
3113 }
3114 ]
3115 },
3116 {
3117 "name" : "act_7",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003118 "id" : 44,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003119 "runtime_data" : [],
3120 "primitives" : [
3121 {
3122 "op" : "assign",
3123 "parameters" : [
3124 {
3125 "type" : "field",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003126 "value" : ["scalars", "spgw_ingress_hasReturned_0"]
3127 },
3128 {
3129 "type" : "expression",
3130 "value" : {
3131 "type" : "expression",
3132 "value" : {
3133 "op" : "b2d",
3134 "left" : null,
3135 "right" : {
3136 "type" : "bool",
3137 "value" : false
3138 }
3139 }
3140 }
3141 }
3142 ]
3143 },
3144 {
3145 "op" : "assign",
3146 "parameters" : [
3147 {
3148 "type" : "field",
3149 "value" : ["spgw", "do_spgw"]
3150 },
3151 {
3152 "type" : "expression",
3153 "value" : {
3154 "type" : "expression",
3155 "value" : {
3156 "op" : "b2d",
3157 "left" : null,
3158 "right" : {
3159 "type" : "bool",
3160 "value" : false
3161 }
3162 }
3163 }
3164 }
3165 ],
3166 "source_info" : {
3167 "filename" : "include/spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003168 "line" : 146,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003169 "column" : 8,
3170 "source_fragment" : "spgw_meta.do_spgw = false"
3171 }
3172 }
3173 ]
3174 },
3175 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003176 "name" : "act_8",
3177 "id" : 45,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003178 "runtime_data" : [],
3179 "primitives" : [
3180 {
3181 "op" : "assign",
3182 "parameters" : [
3183 {
3184 "type" : "field",
3185 "value" : ["scalars", "spgw_ingress_hasReturned_0"]
3186 },
3187 {
3188 "type" : "expression",
3189 "value" : {
3190 "type" : "expression",
3191 "value" : {
3192 "op" : "b2d",
3193 "left" : null,
3194 "right" : {
3195 "type" : "bool",
3196 "value" : true
3197 }
3198 }
3199 }
3200 }
3201 ],
3202 "source_info" : {
3203 "filename" : "include/spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003204 "line" : 169,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003205 "column" : 12,
3206 "source_fragment" : "return"
3207 }
3208 }
3209 ]
3210 },
3211 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003212 "name" : "act_9",
3213 "id" : 46,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003214 "runtime_data" : [],
3215 "primitives" : [
3216 {
3217 "op" : "assign",
3218 "parameters" : [
3219 {
3220 "type" : "field",
3221 "value" : ["scalars", "spgw_ingress_tmp_4"]
3222 },
3223 {
3224 "type" : "expression",
3225 "value" : {
3226 "type" : "expression",
3227 "value" : {
3228 "op" : "b2d",
3229 "left" : null,
3230 "right" : {
3231 "type" : "bool",
3232 "value" : true
3233 }
3234 }
3235 }
3236 }
3237 ]
3238 }
3239 ]
3240 },
3241 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003242 "name" : "act_10",
3243 "id" : 47,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003244 "runtime_data" : [],
3245 "primitives" : [
3246 {
3247 "op" : "assign",
3248 "parameters" : [
3249 {
3250 "type" : "field",
3251 "value" : ["scalars", "spgw_ingress_tmp_4"]
3252 },
3253 {
3254 "type" : "expression",
3255 "value" : {
3256 "type" : "expression",
3257 "value" : {
3258 "op" : "b2d",
3259 "left" : null,
3260 "right" : {
3261 "type" : "bool",
3262 "value" : false
3263 }
3264 }
3265 }
3266 }
3267 ]
3268 }
3269 ]
3270 },
3271 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003272 "name" : "act_11",
3273 "id" : 48,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003274 "runtime_data" : [],
3275 "primitives" : [
3276 {
3277 "op" : "assign",
3278 "parameters" : [
3279 {
3280 "type" : "field",
3281 "value" : ["vlan_tag", "ether_type"]
3282 },
3283 {
3284 "type" : "hexstr",
3285 "value" : "0x0800"
3286 }
3287 ],
3288 "source_info" : {
3289 "filename" : "include/control/../define.p4",
3290 "line" : 35,
3291 "column" : 31,
3292 "source_fragment" : "0x0800; ..."
3293 }
3294 },
3295 {
3296 "op" : "assign",
3297 "parameters" : [
3298 {
3299 "type" : "field",
3300 "value" : ["scalars", "fabric_metadata_t.original_ether_type"]
3301 },
3302 {
3303 "type" : "hexstr",
3304 "value" : "0x0800"
3305 }
3306 ],
3307 "source_info" : {
3308 "filename" : "include/control/../define.p4",
3309 "line" : 35,
3310 "column" : 31,
3311 "source_fragment" : "0x0800; ..."
3312 }
3313 }
3314 ]
3315 },
3316 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003317 "name" : "act_12",
3318 "id" : 49,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003319 "runtime_data" : [],
3320 "primitives" : [
3321 {
3322 "op" : "assign",
3323 "parameters" : [
3324 {
3325 "type" : "field",
3326 "value" : ["scalars", "next_tmp_0"]
3327 },
3328 {
3329 "type" : "expression",
3330 "value" : {
3331 "type" : "expression",
3332 "value" : {
3333 "op" : "b2d",
3334 "left" : null,
3335 "right" : {
3336 "type" : "bool",
3337 "value" : true
3338 }
3339 }
3340 }
3341 }
3342 ]
3343 }
3344 ]
3345 },
3346 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003347 "name" : "act_13",
3348 "id" : 50,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003349 "runtime_data" : [],
3350 "primitives" : [
3351 {
3352 "op" : "assign",
3353 "parameters" : [
3354 {
3355 "type" : "field",
3356 "value" : ["scalars", "next_tmp_0"]
3357 },
3358 {
3359 "type" : "expression",
3360 "value" : {
3361 "type" : "expression",
3362 "value" : {
3363 "op" : "b2d",
3364 "left" : null,
3365 "right" : {
3366 "type" : "bool",
3367 "value" : false
3368 }
3369 }
3370 }
3371 }
3372 ]
3373 }
3374 ]
3375 },
3376 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003377 "name" : "act_14",
3378 "id" : 51,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003379 "runtime_data" : [],
3380 "primitives" : [
3381 {
3382 "op" : "assign",
3383 "parameters" : [
3384 {
3385 "type" : "field",
3386 "value" : ["ipv4", "ttl"]
3387 },
3388 {
3389 "type" : "expression",
3390 "value" : {
3391 "type" : "expression",
3392 "value" : {
3393 "op" : "&",
3394 "left" : {
3395 "type" : "expression",
3396 "value" : {
3397 "op" : "+",
3398 "left" : {
3399 "type" : "field",
3400 "value" : ["ipv4", "ttl"]
3401 },
3402 "right" : {
3403 "type" : "hexstr",
3404 "value" : "0xff"
3405 }
3406 }
3407 },
3408 "right" : {
3409 "type" : "hexstr",
3410 "value" : "0xff"
3411 }
3412 }
3413 }
3414 }
3415 ],
3416 "source_info" : {
3417 "filename" : "include/control/next.p4",
3418 "line" : 140,
3419 "column" : 20,
3420 "source_fragment" : "hdr.ipv4.ttl = hdr.ipv4.ttl - 1"
3421 }
3422 }
3423 ]
3424 },
3425 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003426 "name" : "act_15",
3427 "id" : 52,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003428 "runtime_data" : [],
3429 "primitives" : [
3430 {
3431 "op" : "assign",
3432 "parameters" : [
3433 {
3434 "type" : "field",
3435 "value" : ["scalars", "tmp_0"]
3436 },
3437 {
3438 "type" : "expression",
3439 "value" : {
3440 "type" : "expression",
3441 "value" : {
3442 "op" : "&",
3443 "left" : {
3444 "type" : "field",
3445 "value" : ["standard_metadata", "egress_spec"]
3446 },
3447 "right" : {
3448 "type" : "hexstr",
3449 "value" : "0xffffffff"
3450 }
3451 }
3452 }
3453 }
3454 ]
3455 },
3456 {
3457 "op" : "count",
3458 "parameters" : [
3459 {
3460 "type" : "counter_array",
3461 "value" : "port_counters_control.egress_port_counter"
3462 },
3463 {
3464 "type" : "field",
3465 "value" : ["scalars", "tmp_0"]
3466 }
3467 ],
3468 "source_info" : {
3469 "filename" : "include/control/port_counter.p4",
3470 "line" : 28,
3471 "column" : 12,
3472 "source_fragment" : "egress_port_counter.count((bit<32>)standard_metadata.egress_spec)"
3473 }
3474 }
3475 ]
3476 },
3477 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003478 "name" : "act_16",
3479 "id" : 53,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003480 "runtime_data" : [],
3481 "primitives" : [
3482 {
3483 "op" : "assign",
3484 "parameters" : [
3485 {
3486 "type" : "field",
3487 "value" : ["scalars", "tmp_1"]
3488 },
3489 {
3490 "type" : "expression",
3491 "value" : {
3492 "type" : "expression",
3493 "value" : {
3494 "op" : "&",
3495 "left" : {
3496 "type" : "field",
3497 "value" : ["standard_metadata", "ingress_port"]
3498 },
3499 "right" : {
3500 "type" : "hexstr",
3501 "value" : "0xffffffff"
3502 }
3503 }
3504 }
3505 }
3506 ]
3507 },
3508 {
3509 "op" : "count",
3510 "parameters" : [
3511 {
3512 "type" : "counter_array",
3513 "value" : "port_counters_control.ingress_port_counter"
3514 },
3515 {
3516 "type" : "field",
3517 "value" : ["scalars", "tmp_1"]
3518 }
3519 ],
3520 "source_info" : {
3521 "filename" : "include/control/port_counter.p4",
3522 "line" : 31,
3523 "column" : 12,
3524 "source_fragment" : "ingress_port_counter.count((bit<32>)standard_metadata.ingress_port)"
3525 }
3526 }
3527 ]
3528 },
3529 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003530 "name" : "act_17",
3531 "id" : 54,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003532 "runtime_data" : [],
3533 "primitives" : [
3534 {
3535 "op" : "assign",
3536 "parameters" : [
3537 {
3538 "type" : "field",
3539 "value" : ["ethernet", "ether_type"]
3540 },
3541 {
3542 "type" : "field",
3543 "value" : ["vlan_tag", "ether_type"]
3544 }
3545 ],
3546 "source_info" : {
3547 "filename" : "include/control/next.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003548 "line" : 162,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003549 "column" : 12,
3550 "source_fragment" : "hdr.ethernet.ether_type = hdr.vlan_tag.ether_type"
3551 }
3552 },
3553 {
3554 "op" : "remove_header",
3555 "parameters" : [
3556 {
3557 "type" : "header",
3558 "value" : "vlan_tag"
3559 }
3560 ],
3561 "source_info" : {
3562 "filename" : "include/control/next.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003563 "line" : 163,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003564 "column" : 12,
3565 "source_fragment" : "hdr.vlan_tag.setInvalid()"
3566 }
3567 }
3568 ]
3569 },
3570 {
3571 "name" : "spgw_egress.gtpu_encap",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003572 "id" : 55,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003573 "runtime_data" : [],
3574 "primitives" : [
3575 {
3576 "op" : "add_header",
3577 "parameters" : [
3578 {
3579 "type" : "header",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003580 "value" : "gtpu_ipv4"
3581 }
3582 ],
3583 "source_info" : {
3584 "filename" : "include/spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003585 "line" : 210,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003586 "column" : 8,
3587 "source_fragment" : "gtpu_ipv4.setValid()"
3588 }
3589 },
3590 {
3591 "op" : "assign",
3592 "parameters" : [
3593 {
3594 "type" : "field",
3595 "value" : ["gtpu_ipv4", "version"]
3596 },
3597 {
3598 "type" : "hexstr",
3599 "value" : "0x04"
3600 }
3601 ],
3602 "source_info" : {
3603 "filename" : "include/control/../define.p4",
3604 "line" : 39,
3605 "column" : 28,
3606 "source_fragment" : "4; ..."
3607 }
3608 },
3609 {
3610 "op" : "assign",
3611 "parameters" : [
3612 {
3613 "type" : "field",
3614 "value" : ["gtpu_ipv4", "ihl"]
3615 },
3616 {
3617 "type" : "hexstr",
3618 "value" : "0x05"
3619 }
3620 ],
3621 "source_info" : {
3622 "filename" : "include/control/../define.p4",
3623 "line" : 47,
3624 "column" : 28,
3625 "source_fragment" : "5; ..."
3626 }
3627 },
3628 {
3629 "op" : "assign",
3630 "parameters" : [
3631 {
3632 "type" : "field",
3633 "value" : ["gtpu_ipv4", "diffserv"]
3634 },
3635 {
3636 "type" : "hexstr",
3637 "value" : "0x00"
3638 }
3639 ],
3640 "source_info" : {
3641 "filename" : "include/spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003642 "line" : 213,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003643 "column" : 8,
3644 "source_fragment" : "gtpu_ipv4.diffserv = 0"
3645 }
3646 },
3647 {
3648 "op" : "assign",
3649 "parameters" : [
3650 {
3651 "type" : "field",
3652 "value" : ["gtpu_ipv4", "total_len"]
3653 },
3654 {
3655 "type" : "expression",
3656 "value" : {
3657 "type" : "expression",
3658 "value" : {
3659 "op" : "&",
3660 "left" : {
3661 "type" : "expression",
3662 "value" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003663 "op" : "+",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003664 "left" : {
3665 "type" : "expression",
3666 "value" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003667 "op" : "&",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003668 "left" : {
3669 "type" : "expression",
3670 "value" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003671 "op" : "+",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003672 "left" : {
3673 "type" : "expression",
3674 "value" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003675 "op" : "&",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003676 "left" : {
3677 "type" : "expression",
3678 "value" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003679 "op" : "+",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003680 "left" : {
3681 "type" : "expression",
3682 "value" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003683 "op" : "&",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003684 "left" : {
Carmelo Cascone14cde402018-01-25 01:57:18 -08003685 "type" : "expression",
3686 "value" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003687 "op" : "+",
Carmelo Cascone14cde402018-01-25 01:57:18 -08003688 "left" : {
3689 "type" : "expression",
3690 "value" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003691 "op" : "&",
Carmelo Cascone14cde402018-01-25 01:57:18 -08003692 "left" : {
3693 "type" : "field",
3694 "value" : ["standard_metadata", "packet_length"]
3695 },
3696 "right" : {
3697 "type" : "hexstr",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003698 "value" : "0xffff"
Carmelo Cascone14cde402018-01-25 01:57:18 -08003699 }
3700 }
3701 },
3702 "right" : {
3703 "type" : "hexstr",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003704 "value" : "0xfff2"
Carmelo Cascone14cde402018-01-25 01:57:18 -08003705 }
3706 }
3707 },
3708 "right" : {
3709 "type" : "hexstr",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003710 "value" : "0xffff"
Carmelo Cascone14cde402018-01-25 01:57:18 -08003711 }
3712 }
3713 },
3714 "right" : {
3715 "type" : "hexstr",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003716 "value" : "0x0014"
Carmelo Cascone14cde402018-01-25 01:57:18 -08003717 }
3718 }
3719 },
3720 "right" : {
3721 "type" : "hexstr",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003722 "value" : "0xffff"
Carmelo Cascone14cde402018-01-25 01:57:18 -08003723 }
3724 }
3725 },
3726 "right" : {
3727 "type" : "hexstr",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003728 "value" : "0x0008"
Carmelo Cascone14cde402018-01-25 01:57:18 -08003729 }
3730 }
3731 },
3732 "right" : {
3733 "type" : "hexstr",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003734 "value" : "0xffff"
Carmelo Cascone14cde402018-01-25 01:57:18 -08003735 }
3736 }
3737 },
3738 "right" : {
3739 "type" : "hexstr",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003740 "value" : "0x0008"
Carmelo Cascone14cde402018-01-25 01:57:18 -08003741 }
3742 }
3743 },
3744 "right" : {
3745 "type" : "hexstr",
3746 "value" : "0xffff"
3747 }
3748 }
3749 }
3750 }
3751 ],
3752 "source_info" : {
3753 "filename" : "include/spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003754 "line" : 214,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003755 "column" : 8,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003756 "source_fragment" : "gtpu_ipv4.total_len = ((bit<16>)std_meta.packet_length ..."
Carmelo Cascone14cde402018-01-25 01:57:18 -08003757 }
3758 },
3759 {
3760 "op" : "assign",
3761 "parameters" : [
3762 {
3763 "type" : "field",
3764 "value" : ["gtpu_ipv4", "identification"]
3765 },
3766 {
3767 "type" : "hexstr",
3768 "value" : "0x1513"
3769 }
3770 ],
3771 "source_info" : {
3772 "filename" : "include/spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003773 "line" : 216,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003774 "column" : 8,
3775 "source_fragment" : "gtpu_ipv4.identification = 0x1513"
3776 }
3777 },
3778 {
3779 "op" : "assign",
3780 "parameters" : [
3781 {
3782 "type" : "field",
3783 "value" : ["gtpu_ipv4", "flags"]
3784 },
3785 {
3786 "type" : "hexstr",
3787 "value" : "0x00"
3788 }
3789 ],
3790 "source_info" : {
3791 "filename" : "include/spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003792 "line" : 217,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003793 "column" : 8,
3794 "source_fragment" : "gtpu_ipv4.flags = 0"
3795 }
3796 },
3797 {
3798 "op" : "assign",
3799 "parameters" : [
3800 {
3801 "type" : "field",
3802 "value" : ["gtpu_ipv4", "frag_offset"]
3803 },
3804 {
3805 "type" : "hexstr",
3806 "value" : "0x0000"
3807 }
3808 ],
3809 "source_info" : {
3810 "filename" : "include/spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003811 "line" : 218,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003812 "column" : 8,
3813 "source_fragment" : "gtpu_ipv4.frag_offset = 0"
3814 }
3815 },
3816 {
3817 "op" : "assign",
3818 "parameters" : [
3819 {
3820 "type" : "field",
3821 "value" : ["gtpu_ipv4", "ttl"]
3822 },
3823 {
3824 "type" : "hexstr",
3825 "value" : "0x40"
3826 }
3827 ],
3828 "source_info" : {
3829 "filename" : "include/control/../define.p4",
3830 "line" : 71,
3831 "column" : 32,
3832 "source_fragment" : "64; ..."
3833 }
3834 },
3835 {
3836 "op" : "assign",
3837 "parameters" : [
3838 {
3839 "type" : "field",
3840 "value" : ["gtpu_ipv4", "protocol"]
3841 },
3842 {
3843 "type" : "hexstr",
3844 "value" : "0x11"
3845 }
3846 ],
3847 "source_info" : {
3848 "filename" : "include/control/../define.p4",
3849 "line" : 44,
3850 "column" : 25,
3851 "source_fragment" : "17; ..."
3852 }
3853 },
3854 {
3855 "op" : "assign",
3856 "parameters" : [
3857 {
3858 "type" : "field",
3859 "value" : ["gtpu_ipv4", "dst_addr"]
3860 },
3861 {
3862 "type" : "field",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003863 "value" : ["spgw", "s1u_enb_addr"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08003864 }
3865 ],
3866 "source_info" : {
3867 "filename" : "include/spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003868 "line" : 221,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003869 "column" : 8,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003870 "source_fragment" : "gtpu_ipv4.dst_addr = spgw_meta.s1u_enb_addr"
Carmelo Cascone14cde402018-01-25 01:57:18 -08003871 }
3872 },
3873 {
3874 "op" : "assign",
3875 "parameters" : [
3876 {
3877 "type" : "field",
3878 "value" : ["gtpu_ipv4", "src_addr"]
3879 },
3880 {
3881 "type" : "field",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003882 "value" : ["spgw", "s1u_sgw_addr"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08003883 }
3884 ],
3885 "source_info" : {
3886 "filename" : "include/spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003887 "line" : 222,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003888 "column" : 8,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003889 "source_fragment" : "gtpu_ipv4.src_addr = spgw_meta.s1u_sgw_addr"
Carmelo Cascone14cde402018-01-25 01:57:18 -08003890 }
3891 },
3892 {
3893 "op" : "assign",
3894 "parameters" : [
3895 {
3896 "type" : "field",
3897 "value" : ["gtpu_ipv4", "hdr_checksum"]
3898 },
3899 {
3900 "type" : "hexstr",
3901 "value" : "0x0000"
3902 }
3903 ],
3904 "source_info" : {
3905 "filename" : "include/spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003906 "line" : 223,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003907 "column" : 8,
3908 "source_fragment" : "gtpu_ipv4.hdr_checksum = 0"
3909 }
3910 },
3911 {
3912 "op" : "add_header",
3913 "parameters" : [
3914 {
3915 "type" : "header",
3916 "value" : "gtpu_udp"
3917 }
3918 ],
3919 "source_info" : {
3920 "filename" : "include/spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003921 "line" : 225,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003922 "column" : 8,
3923 "source_fragment" : "gtpu_udp.setValid()"
3924 }
3925 },
3926 {
3927 "op" : "assign",
3928 "parameters" : [
3929 {
3930 "type" : "field",
3931 "value" : ["gtpu_udp", "src_port"]
3932 },
3933 {
3934 "type" : "hexstr",
3935 "value" : "0x0868"
3936 }
3937 ],
3938 "source_info" : {
3939 "filename" : "include/spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003940 "line" : 226,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003941 "column" : 8,
3942 "source_fragment" : "gtpu_udp.src_port = 2152"
3943 }
3944 },
3945 {
3946 "op" : "assign",
3947 "parameters" : [
3948 {
3949 "type" : "field",
3950 "value" : ["gtpu_udp", "dst_port"]
3951 },
3952 {
3953 "type" : "hexstr",
3954 "value" : "0x0868"
3955 }
3956 ],
3957 "source_info" : {
3958 "filename" : "include/spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003959 "line" : 227,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003960 "column" : 8,
3961 "source_fragment" : "gtpu_udp.dst_port = 2152"
3962 }
3963 },
3964 {
3965 "op" : "assign",
3966 "parameters" : [
3967 {
3968 "type" : "field",
3969 "value" : ["gtpu_udp", "len"]
3970 },
3971 {
3972 "type" : "expression",
3973 "value" : {
3974 "type" : "expression",
3975 "value" : {
3976 "op" : "&",
3977 "left" : {
3978 "type" : "expression",
3979 "value" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003980 "op" : "+",
Carmelo Cascone14cde402018-01-25 01:57:18 -08003981 "left" : {
3982 "type" : "expression",
3983 "value" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003984 "op" : "&",
Carmelo Cascone14cde402018-01-25 01:57:18 -08003985 "left" : {
3986 "type" : "expression",
3987 "value" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003988 "op" : "+",
Carmelo Cascone14cde402018-01-25 01:57:18 -08003989 "left" : {
3990 "type" : "expression",
3991 "value" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003992 "op" : "&",
Carmelo Cascone14cde402018-01-25 01:57:18 -08003993 "left" : {
3994 "type" : "expression",
3995 "value" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003996 "op" : "+",
Carmelo Cascone14cde402018-01-25 01:57:18 -08003997 "left" : {
3998 "type" : "expression",
3999 "value" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004000 "op" : "&",
Carmelo Cascone14cde402018-01-25 01:57:18 -08004001 "left" : {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004002 "type" : "field",
4003 "value" : ["standard_metadata", "packet_length"]
4004 },
4005 "right" : {
4006 "type" : "hexstr",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004007 "value" : "0xffff"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004008 }
4009 }
4010 },
4011 "right" : {
4012 "type" : "hexstr",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004013 "value" : "0xfff2"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004014 }
4015 }
4016 },
4017 "right" : {
4018 "type" : "hexstr",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004019 "value" : "0xffff"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004020 }
4021 }
4022 },
4023 "right" : {
4024 "type" : "hexstr",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004025 "value" : "0x0008"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004026 }
4027 }
4028 },
4029 "right" : {
4030 "type" : "hexstr",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004031 "value" : "0xffff"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004032 }
4033 }
4034 },
4035 "right" : {
4036 "type" : "hexstr",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004037 "value" : "0x0008"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004038 }
4039 }
4040 },
4041 "right" : {
4042 "type" : "hexstr",
4043 "value" : "0xffff"
4044 }
4045 }
4046 }
4047 }
4048 ],
4049 "source_info" : {
4050 "filename" : "include/spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004051 "line" : 228,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004052 "column" : 8,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004053 "source_fragment" : "gtpu_udp.len = ((bit<16>)std_meta.packet_length ..."
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004054 }
4055 },
4056 {
4057 "op" : "assign",
4058 "parameters" : [
4059 {
4060 "type" : "field",
4061 "value" : ["gtpu_udp", "checksum"]
4062 },
4063 {
4064 "type" : "hexstr",
4065 "value" : "0x0000"
4066 }
4067 ],
4068 "source_info" : {
4069 "filename" : "include/spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004070 "line" : 230,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004071 "column" : 8,
4072 "source_fragment" : "gtpu_udp.checksum = 0"
4073 }
Carmelo Cascone14cde402018-01-25 01:57:18 -08004074 },
4075 {
4076 "op" : "add_header",
4077 "parameters" : [
4078 {
4079 "type" : "header",
4080 "value" : "gtpu"
4081 }
4082 ],
4083 "source_info" : {
4084 "filename" : "include/spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004085 "line" : 232,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004086 "column" : 8,
4087 "source_fragment" : "gtpu.setValid()"
4088 }
4089 },
4090 {
4091 "op" : "assign",
4092 "parameters" : [
4093 {
4094 "type" : "field",
4095 "value" : ["gtpu", "version"]
4096 },
4097 {
4098 "type" : "hexstr",
4099 "value" : "0x01"
4100 }
4101 ],
4102 "source_info" : {
4103 "filename" : "include/spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004104 "line" : 233,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004105 "column" : 8,
4106 "source_fragment" : "gtpu.version = 0x01"
4107 }
4108 },
4109 {
4110 "op" : "assign",
4111 "parameters" : [
4112 {
4113 "type" : "field",
4114 "value" : ["gtpu", "pt"]
4115 },
4116 {
4117 "type" : "hexstr",
4118 "value" : "0x01"
4119 }
4120 ],
4121 "source_info" : {
4122 "filename" : "include/spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004123 "line" : 234,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004124 "column" : 8,
4125 "source_fragment" : "gtpu.pt = 0x01"
4126 }
4127 },
4128 {
4129 "op" : "assign",
4130 "parameters" : [
4131 {
4132 "type" : "field",
4133 "value" : ["gtpu", "spare"]
4134 },
4135 {
4136 "type" : "hexstr",
4137 "value" : "0x00"
4138 }
4139 ],
4140 "source_info" : {
4141 "filename" : "include/spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004142 "line" : 235,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004143 "column" : 8,
4144 "source_fragment" : "gtpu.spare = 0"
4145 }
4146 },
4147 {
4148 "op" : "assign",
4149 "parameters" : [
4150 {
4151 "type" : "field",
4152 "value" : ["gtpu", "ex_flag"]
4153 },
4154 {
4155 "type" : "hexstr",
4156 "value" : "0x00"
4157 }
4158 ],
4159 "source_info" : {
4160 "filename" : "include/spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004161 "line" : 236,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004162 "column" : 8,
4163 "source_fragment" : "gtpu.ex_flag = 0"
4164 }
4165 },
4166 {
4167 "op" : "assign",
4168 "parameters" : [
4169 {
4170 "type" : "field",
4171 "value" : ["gtpu", "seq_flag"]
4172 },
4173 {
4174 "type" : "hexstr",
4175 "value" : "0x00"
4176 }
4177 ],
4178 "source_info" : {
4179 "filename" : "include/spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004180 "line" : 237,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004181 "column" : 8,
4182 "source_fragment" : "gtpu.seq_flag = 0"
4183 }
4184 },
4185 {
4186 "op" : "assign",
4187 "parameters" : [
4188 {
4189 "type" : "field",
4190 "value" : ["gtpu", "npdu_flag"]
4191 },
4192 {
4193 "type" : "hexstr",
4194 "value" : "0x00"
4195 }
4196 ],
4197 "source_info" : {
4198 "filename" : "include/spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004199 "line" : 238,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004200 "column" : 8,
4201 "source_fragment" : "gtpu.npdu_flag = 0"
4202 }
4203 },
4204 {
4205 "op" : "assign",
4206 "parameters" : [
4207 {
4208 "type" : "field",
4209 "value" : ["gtpu", "msgtype"]
4210 },
4211 {
4212 "type" : "hexstr",
4213 "value" : "0xff"
4214 }
4215 ],
4216 "source_info" : {
4217 "filename" : "include/spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004218 "line" : 239,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004219 "column" : 8,
4220 "source_fragment" : "gtpu.msgtype = 0xff"
4221 }
4222 },
4223 {
4224 "op" : "assign",
4225 "parameters" : [
4226 {
4227 "type" : "field",
4228 "value" : ["gtpu", "msglen"]
4229 },
4230 {
4231 "type" : "expression",
4232 "value" : {
4233 "type" : "expression",
4234 "value" : {
4235 "op" : "&",
4236 "left" : {
4237 "type" : "expression",
4238 "value" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004239 "op" : "+",
Carmelo Cascone14cde402018-01-25 01:57:18 -08004240 "left" : {
4241 "type" : "expression",
4242 "value" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004243 "op" : "&",
Carmelo Cascone14cde402018-01-25 01:57:18 -08004244 "left" : {
4245 "type" : "field",
4246 "value" : ["standard_metadata", "packet_length"]
4247 },
4248 "right" : {
4249 "type" : "hexstr",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004250 "value" : "0xffff"
Carmelo Cascone14cde402018-01-25 01:57:18 -08004251 }
4252 }
4253 },
4254 "right" : {
4255 "type" : "hexstr",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004256 "value" : "0xfff2"
Carmelo Cascone14cde402018-01-25 01:57:18 -08004257 }
4258 }
4259 },
4260 "right" : {
4261 "type" : "hexstr",
4262 "value" : "0xffff"
4263 }
4264 }
4265 }
4266 }
4267 ],
4268 "source_info" : {
4269 "filename" : "include/spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004270 "line" : 240,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004271 "column" : 8,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004272 "source_fragment" : "gtpu.msglen = ((bit<16>)std_meta.packet_length - 14"
Carmelo Cascone14cde402018-01-25 01:57:18 -08004273 }
4274 },
4275 {
4276 "op" : "assign",
4277 "parameters" : [
4278 {
4279 "type" : "field",
4280 "value" : ["gtpu", "teid"]
4281 },
4282 {
4283 "type" : "field",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004284 "value" : ["spgw", "teid"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08004285 }
4286 ],
4287 "source_info" : {
4288 "filename" : "include/spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004289 "line" : 241,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004290 "column" : 8,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004291 "source_fragment" : "gtpu.teid = spgw_meta.teid"
Carmelo Cascone14cde402018-01-25 01:57:18 -08004292 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004293 }
4294 ]
4295 },
4296 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004297 "name" : "act_18",
4298 "id" : 56,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004299 "runtime_data" : [],
4300 "primitives" : [
4301 {
4302 "op" : "add_header",
4303 "parameters" : [
4304 {
4305 "type" : "header",
4306 "value" : "packet_in"
4307 }
4308 ],
4309 "source_info" : {
4310 "filename" : "include/control/packetio.p4",
4311 "line" : 39,
4312 "column" : 12,
4313 "source_fragment" : "hdr.packet_in.setValid()"
4314 }
4315 },
4316 {
4317 "op" : "assign",
4318 "parameters" : [
4319 {
4320 "type" : "field",
4321 "value" : ["packet_in", "ingress_port"]
4322 },
4323 {
4324 "type" : "field",
4325 "value" : ["standard_metadata", "ingress_port"]
4326 }
4327 ],
4328 "source_info" : {
4329 "filename" : "include/control/packetio.p4",
4330 "line" : 40,
4331 "column" : 12,
4332 "source_fragment" : "hdr.packet_in.ingress_port = standard_metadata.ingress_port"
4333 }
4334 }
4335 ]
4336 },
4337 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004338 "name" : "act_19",
4339 "id" : 57,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004340 "runtime_data" : [],
4341 "primitives" : [
4342 {
4343 "op" : "remove_header",
4344 "parameters" : [
4345 {
4346 "type" : "header",
4347 "value" : "gtpu_ipv4"
4348 }
4349 ],
4350 "source_info" : {
4351 "filename" : "fabric.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004352 "line" : 69,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004353 "column" : 26,
4354 "source_fragment" : "hdr.gtpu_ipv4"
4355 }
4356 },
4357 {
4358 "op" : "remove_header",
4359 "parameters" : [
4360 {
4361 "type" : "header",
4362 "value" : "gtpu_udp"
4363 }
4364 ],
4365 "source_info" : {
4366 "filename" : "fabric.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004367 "line" : 69,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004368 "column" : 41,
4369 "source_fragment" : "hdr.gtpu_udp"
4370 }
4371 },
4372 {
4373 "op" : "remove_header",
4374 "parameters" : [
4375 {
4376 "type" : "header",
4377 "value" : "gtpu"
4378 }
4379 ],
4380 "source_info" : {
4381 "filename" : "fabric.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004382 "line" : 69,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004383 "column" : 55,
4384 "source_fragment" : "hdr.gtpu"
4385 }
4386 }
4387 ]
4388 }
4389 ],
4390 "pipelines" : [
4391 {
4392 "name" : "ingress",
4393 "id" : 0,
4394 "source_info" : {
4395 "filename" : "fabric.p4",
4396 "line" : 33,
4397 "column" : 8,
4398 "source_fragment" : "FabricIngress"
4399 },
4400 "init_table" : "node_2",
4401 "tables" : [
4402 {
4403 "name" : "tbl_act",
4404 "id" : 0,
4405 "key" : [],
4406 "match_type" : "exact",
4407 "type" : "simple",
4408 "max_size" : 1024,
4409 "with_counters" : false,
4410 "support_timeout" : false,
4411 "direct_meters" : null,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004412 "action_ids" : [36],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004413 "actions" : ["act"],
4414 "base_default_next" : null,
4415 "next_tables" : {
4416 "act" : null
4417 },
4418 "default_entry" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004419 "action_id" : 36,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004420 "action_const" : true,
4421 "action_data" : [],
4422 "action_entry_const" : true
4423 }
4424 },
4425 {
4426 "name" : "tbl_act_0",
4427 "id" : 1,
4428 "key" : [],
4429 "match_type" : "exact",
4430 "type" : "simple",
4431 "max_size" : 1024,
4432 "with_counters" : false,
4433 "support_timeout" : false,
4434 "direct_meters" : null,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004435 "action_ids" : [44],
4436 "actions" : ["act_7"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004437 "base_default_next" : "node_5",
4438 "next_tables" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004439 "act_7" : "node_5"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004440 },
4441 "default_entry" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004442 "action_id" : 44,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004443 "action_const" : true,
4444 "action_data" : [],
4445 "action_entry_const" : true
4446 }
4447 },
4448 {
4449 "name" : "tbl_act_1",
4450 "id" : 2,
4451 "key" : [],
4452 "match_type" : "exact",
4453 "type" : "simple",
4454 "max_size" : 1024,
4455 "with_counters" : false,
4456 "support_timeout" : false,
4457 "direct_meters" : null,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004458 "action_ids" : [39],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004459 "actions" : ["act_2"],
4460 "base_default_next" : "spgw_ingress.s1u_filter_table",
4461 "next_tables" : {
4462 "act_2" : "spgw_ingress.s1u_filter_table"
4463 },
4464 "default_entry" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004465 "action_id" : 39,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004466 "action_const" : true,
4467 "action_data" : [],
4468 "action_entry_const" : true
4469 }
4470 },
4471 {
4472 "name" : "spgw_ingress.s1u_filter_table",
4473 "id" : 3,
4474 "source_info" : {
4475 "filename" : "include/spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004476 "line" : 65,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004477 "column" : 10,
4478 "source_fragment" : "s1u_filter_table"
4479 },
4480 "key" : [
4481 {
4482 "match_type" : "exact",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004483 "target" : ["spgw", "s1u_sgw_addr"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004484 "mask" : null
4485 }
4486 ],
4487 "match_type" : "exact",
4488 "type" : "simple",
4489 "max_size" : 1024,
4490 "with_counters" : false,
4491 "support_timeout" : false,
4492 "direct_meters" : null,
4493 "action_ids" : [1],
4494 "actions" : ["NoAction"],
4495 "base_default_next" : null,
4496 "next_tables" : {
4497 "__HIT__" : "tbl_act_2",
4498 "__MISS__" : "tbl_act_3"
4499 },
4500 "default_entry" : {
4501 "action_id" : 1,
4502 "action_const" : false,
4503 "action_data" : [],
4504 "action_entry_const" : false
4505 }
4506 },
4507 {
4508 "name" : "tbl_act_2",
4509 "id" : 4,
4510 "key" : [],
4511 "match_type" : "exact",
4512 "type" : "simple",
4513 "max_size" : 1024,
4514 "with_counters" : false,
4515 "support_timeout" : false,
4516 "direct_meters" : null,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004517 "action_ids" : [37],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004518 "actions" : ["act_0"],
4519 "base_default_next" : "node_10",
4520 "next_tables" : {
4521 "act_0" : "node_10"
4522 },
4523 "default_entry" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004524 "action_id" : 37,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004525 "action_const" : true,
4526 "action_data" : [],
4527 "action_entry_const" : true
4528 }
4529 },
4530 {
4531 "name" : "tbl_act_3",
4532 "id" : 5,
4533 "key" : [],
4534 "match_type" : "exact",
4535 "type" : "simple",
4536 "max_size" : 1024,
4537 "with_counters" : false,
4538 "support_timeout" : false,
4539 "direct_meters" : null,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004540 "action_ids" : [38],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004541 "actions" : ["act_1"],
4542 "base_default_next" : "node_10",
4543 "next_tables" : {
4544 "act_1" : "node_10"
4545 },
4546 "default_entry" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004547 "action_id" : 38,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004548 "action_const" : true,
4549 "action_data" : [],
4550 "action_entry_const" : true
4551 }
4552 },
4553 {
4554 "name" : "tbl_act_4",
4555 "id" : 6,
4556 "key" : [],
4557 "match_type" : "exact",
4558 "type" : "simple",
4559 "max_size" : 1024,
4560 "with_counters" : false,
4561 "support_timeout" : false,
4562 "direct_meters" : null,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004563 "action_ids" : [40],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004564 "actions" : ["act_3"],
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004565 "base_default_next" : "node_17",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004566 "next_tables" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004567 "act_3" : "node_17"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004568 },
4569 "default_entry" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004570 "action_id" : 40,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004571 "action_const" : true,
4572 "action_data" : [],
4573 "action_entry_const" : true
4574 }
4575 },
4576 {
4577 "name" : "spgw_ingress.ue_filter_table",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004578 "id" : 7,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004579 "source_info" : {
4580 "filename" : "include/spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004581 "line" : 55,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004582 "column" : 10,
4583 "source_fragment" : "ue_filter_table"
4584 },
4585 "key" : [
4586 {
4587 "match_type" : "lpm",
4588 "target" : ["ipv4", "dst_addr"],
4589 "mask" : null
4590 }
4591 ],
4592 "match_type" : "lpm",
4593 "type" : "simple",
4594 "max_size" : 1024,
4595 "with_counters" : false,
4596 "support_timeout" : false,
4597 "direct_meters" : null,
4598 "action_ids" : [0],
4599 "actions" : ["NoAction"],
4600 "base_default_next" : null,
4601 "next_tables" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004602 "__HIT__" : "tbl_act_5",
4603 "__MISS__" : "tbl_act_6"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004604 },
4605 "default_entry" : {
4606 "action_id" : 0,
4607 "action_const" : false,
4608 "action_data" : [],
4609 "action_entry_const" : false
4610 }
4611 },
4612 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004613 "name" : "tbl_act_5",
4614 "id" : 8,
4615 "key" : [],
4616 "match_type" : "exact",
4617 "type" : "simple",
4618 "max_size" : 1024,
4619 "with_counters" : false,
4620 "support_timeout" : false,
4621 "direct_meters" : null,
4622 "action_ids" : [41],
4623 "actions" : ["act_4"],
4624 "base_default_next" : "node_15",
4625 "next_tables" : {
4626 "act_4" : "node_15"
4627 },
4628 "default_entry" : {
4629 "action_id" : 41,
4630 "action_const" : true,
4631 "action_data" : [],
4632 "action_entry_const" : true
4633 }
4634 },
4635 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004636 "name" : "tbl_act_6",
4637 "id" : 9,
4638 "key" : [],
4639 "match_type" : "exact",
4640 "type" : "simple",
4641 "max_size" : 1024,
4642 "with_counters" : false,
4643 "support_timeout" : false,
4644 "direct_meters" : null,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004645 "action_ids" : [42],
4646 "actions" : ["act_5"],
4647 "base_default_next" : "node_15",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004648 "next_tables" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004649 "act_5" : "node_15"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004650 },
4651 "default_entry" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004652 "action_id" : 42,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004653 "action_const" : true,
4654 "action_data" : [],
4655 "action_entry_const" : true
4656 }
4657 },
4658 {
4659 "name" : "tbl_act_7",
4660 "id" : 10,
4661 "key" : [],
4662 "match_type" : "exact",
4663 "type" : "simple",
4664 "max_size" : 1024,
4665 "with_counters" : false,
4666 "support_timeout" : false,
4667 "direct_meters" : null,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004668 "action_ids" : [43],
4669 "actions" : ["act_6"],
4670 "base_default_next" : "node_17",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004671 "next_tables" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004672 "act_6" : "node_17"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004673 },
4674 "default_entry" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004675 "action_id" : 43,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004676 "action_const" : true,
4677 "action_data" : [],
4678 "action_entry_const" : true
4679 }
4680 },
4681 {
4682 "name" : "tbl_act_8",
4683 "id" : 11,
4684 "key" : [],
4685 "match_type" : "exact",
4686 "type" : "simple",
4687 "max_size" : 1024,
4688 "with_counters" : false,
4689 "support_timeout" : false,
4690 "direct_meters" : null,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004691 "action_ids" : [45],
4692 "actions" : ["act_8"],
4693 "base_default_next" : "node_19",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004694 "next_tables" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004695 "act_8" : "node_19"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004696 },
4697 "default_entry" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004698 "action_id" : 45,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004699 "action_const" : true,
4700 "action_data" : [],
4701 "action_entry_const" : true
4702 }
4703 },
4704 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004705 "name" : "tbl_spgw_ingress_gtpu_decap",
Carmelo Cascone14cde402018-01-25 01:57:18 -08004706 "id" : 12,
4707 "key" : [],
4708 "match_type" : "exact",
4709 "type" : "simple",
4710 "max_size" : 1024,
4711 "with_counters" : false,
4712 "support_timeout" : false,
4713 "direct_meters" : null,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004714 "action_ids" : [14],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004715 "actions" : ["spgw_ingress.gtpu_decap"],
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004716 "base_default_next" : "node_22",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004717 "next_tables" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004718 "spgw_ingress.gtpu_decap" : "node_22"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004719 },
4720 "default_entry" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004721 "action_id" : 14,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004722 "action_const" : true,
4723 "action_data" : [],
4724 "action_entry_const" : true
4725 }
4726 },
4727 {
4728 "name" : "spgw_ingress.dl_sess_lookup",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004729 "id" : 13,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004730 "source_info" : {
4731 "filename" : "include/spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004732 "line" : 124,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004733 "column" : 10,
4734 "source_fragment" : "dl_sess_lookup"
4735 },
4736 "key" : [
4737 {
4738 "match_type" : "exact",
4739 "target" : ["ipv4", "dst_addr"],
4740 "mask" : null
4741 }
4742 ],
4743 "match_type" : "exact",
4744 "type" : "simple",
4745 "max_size" : 1024,
4746 "with_counters" : false,
4747 "support_timeout" : false,
4748 "direct_meters" : null,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004749 "action_ids" : [15, 2],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004750 "actions" : ["spgw_ingress.set_dl_sess_info", "NoAction"],
4751 "base_default_next" : null,
4752 "next_tables" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004753 "__HIT__" : "tbl_act_9",
4754 "__MISS__" : "tbl_act_10"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004755 },
4756 "default_entry" : {
4757 "action_id" : 2,
4758 "action_const" : false,
4759 "action_data" : [],
4760 "action_entry_const" : false
4761 }
4762 },
4763 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004764 "name" : "tbl_act_9",
4765 "id" : 14,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004766 "key" : [],
4767 "match_type" : "exact",
4768 "type" : "simple",
4769 "max_size" : 1024,
4770 "with_counters" : false,
4771 "support_timeout" : false,
4772 "direct_meters" : null,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004773 "action_ids" : [46],
4774 "actions" : ["act_9"],
4775 "base_default_next" : "node_26",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004776 "next_tables" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004777 "act_9" : "node_26"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004778 },
4779 "default_entry" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004780 "action_id" : 46,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004781 "action_const" : true,
4782 "action_data" : [],
4783 "action_entry_const" : true
4784 }
4785 },
4786 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004787 "name" : "tbl_act_10",
4788 "id" : 15,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004789 "key" : [],
4790 "match_type" : "exact",
4791 "type" : "simple",
4792 "max_size" : 1024,
4793 "with_counters" : false,
4794 "support_timeout" : false,
4795 "direct_meters" : null,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004796 "action_ids" : [47],
4797 "actions" : ["act_10"],
4798 "base_default_next" : "node_26",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004799 "next_tables" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004800 "act_10" : "node_26"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004801 },
4802 "default_entry" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004803 "action_id" : 47,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004804 "action_const" : true,
4805 "action_data" : [],
4806 "action_entry_const" : true
4807 }
4808 },
4809 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004810 "name" : "tbl_spgw_ingress_drop_now",
4811 "id" : 16,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004812 "key" : [],
4813 "match_type" : "exact",
4814 "type" : "simple",
4815 "max_size" : 1024,
4816 "with_counters" : false,
4817 "support_timeout" : false,
4818 "direct_meters" : null,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004819 "action_ids" : [13],
4820 "actions" : ["spgw_ingress.drop_now"],
4821 "base_default_next" : "spgw_ingress.ue_cdr_table",
Carmelo Cascone14cde402018-01-25 01:57:18 -08004822 "next_tables" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004823 "spgw_ingress.drop_now" : "spgw_ingress.ue_cdr_table"
Carmelo Cascone14cde402018-01-25 01:57:18 -08004824 },
4825 "default_entry" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004826 "action_id" : 13,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004827 "action_const" : true,
4828 "action_data" : [],
4829 "action_entry_const" : true
4830 }
4831 },
4832 {
4833 "name" : "spgw_ingress.ue_cdr_table",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004834 "id" : 17,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004835 "source_info" : {
4836 "filename" : "include/spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004837 "line" : 134,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004838 "column" : 10,
4839 "source_fragment" : "ue_cdr_table"
4840 },
4841 "key" : [
4842 {
4843 "match_type" : "exact",
4844 "target" : ["ipv4", "dst_addr"],
4845 "mask" : null
4846 }
4847 ],
4848 "match_type" : "exact",
4849 "type" : "simple",
4850 "max_size" : 1024,
4851 "with_counters" : true,
4852 "support_timeout" : false,
4853 "direct_meters" : null,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004854 "action_ids" : [16, 3],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004855 "actions" : ["spgw_ingress.update_ue_cdr", "NoAction"],
4856 "base_default_next" : "filtering.ingress_port_vlan",
4857 "next_tables" : {
4858 "spgw_ingress.update_ue_cdr" : "filtering.ingress_port_vlan",
4859 "NoAction" : "filtering.ingress_port_vlan"
4860 },
4861 "default_entry" : {
4862 "action_id" : 3,
4863 "action_const" : false,
4864 "action_data" : [],
4865 "action_entry_const" : false
4866 }
4867 },
4868 {
4869 "name" : "filtering.ingress_port_vlan",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004870 "id" : 18,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004871 "source_info" : {
4872 "filename" : "include/control/filtering.p4",
4873 "line" : 57,
4874 "column" : 10,
4875 "source_fragment" : "ingress_port_vlan"
4876 },
4877 "key" : [
4878 {
4879 "match_type" : "exact",
4880 "target" : ["standard_metadata", "ingress_port"],
4881 "mask" : null
4882 },
4883 {
4884 "match_type" : "exact",
4885 "target" : ["vlan_tag", "$valid$"],
4886 "mask" : null
4887 },
4888 {
4889 "match_type" : "ternary",
4890 "target" : ["vlan_tag", "vlan_id"],
4891 "mask" : null
4892 }
4893 ],
4894 "match_type" : "ternary",
4895 "type" : "simple",
4896 "max_size" : 1024,
4897 "with_counters" : true,
4898 "support_timeout" : false,
4899 "direct_meters" : null,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004900 "action_ids" : [19, 18, 11, 17],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004901 "actions" : ["filtering.push_internal_vlan", "filtering.set_vlan", "nop", "filtering.drop"],
4902 "base_default_next" : "filtering.fwd_classifier",
4903 "next_tables" : {
4904 "filtering.push_internal_vlan" : "filtering.fwd_classifier",
4905 "filtering.set_vlan" : "filtering.fwd_classifier",
4906 "nop" : "filtering.fwd_classifier",
4907 "filtering.drop" : "filtering.fwd_classifier"
4908 },
4909 "default_entry" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004910 "action_id" : 11,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004911 "action_const" : true,
4912 "action_data" : [],
4913 "action_entry_const" : true
4914 }
4915 },
4916 {
4917 "name" : "filtering.fwd_classifier",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004918 "id" : 19,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004919 "source_info" : {
4920 "filename" : "include/control/filtering.p4",
4921 "line" : 76,
4922 "column" : 10,
4923 "source_fragment" : "fwd_classifier"
4924 },
4925 "key" : [
4926 {
4927 "match_type" : "exact",
4928 "target" : ["standard_metadata", "ingress_port"],
4929 "mask" : null
4930 },
4931 {
4932 "match_type" : "exact",
4933 "target" : ["ethernet", "dst_addr"],
4934 "mask" : null
4935 },
4936 {
4937 "match_type" : "exact",
4938 "target" : ["scalars", "fabric_metadata_t.original_ether_type"],
4939 "mask" : null
4940 }
4941 ],
4942 "match_type" : "exact",
4943 "type" : "simple",
4944 "max_size" : 1024,
4945 "with_counters" : true,
4946 "support_timeout" : false,
4947 "direct_meters" : null,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004948 "action_ids" : [20],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004949 "actions" : ["filtering.set_forwarding_type"],
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004950 "base_default_next" : "node_31",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004951 "next_tables" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004952 "filtering.set_forwarding_type" : "node_31"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004953 },
4954 "default_entry" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004955 "action_id" : 20,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004956 "action_const" : true,
4957 "action_data" : ["0x0"],
4958 "action_entry_const" : true
4959 }
4960 },
4961 {
4962 "name" : "forwarding.bridging",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004963 "id" : 20,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004964 "source_info" : {
4965 "filename" : "include/control/forwarding.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004966 "line" : 53,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004967 "column" : 10,
4968 "source_fragment" : "bridging"
4969 },
4970 "key" : [
4971 {
4972 "match_type" : "exact",
4973 "target" : ["vlan_tag", "vlan_id"],
4974 "mask" : null
4975 },
4976 {
4977 "match_type" : "ternary",
4978 "target" : ["ethernet", "dst_addr"],
4979 "mask" : null
4980 }
4981 ],
4982 "match_type" : "ternary",
4983 "type" : "simple",
4984 "max_size" : 1024,
4985 "with_counters" : true,
4986 "support_timeout" : false,
4987 "direct_meters" : null,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004988 "action_ids" : [22, 4],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004989 "actions" : ["forwarding.set_next_id", "NoAction"],
4990 "base_default_next" : "forwarding.acl",
4991 "next_tables" : {
4992 "forwarding.set_next_id" : "forwarding.acl",
4993 "NoAction" : "forwarding.acl"
4994 },
4995 "default_entry" : {
4996 "action_id" : 4,
4997 "action_const" : false,
4998 "action_data" : [],
4999 "action_entry_const" : false
5000 }
5001 },
5002 {
5003 "name" : "forwarding.mpls",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005004 "id" : 21,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005005 "source_info" : {
5006 "filename" : "include/control/forwarding.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005007 "line" : 65,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005008 "column" : 10,
5009 "source_fragment" : "mpls"
5010 },
5011 "key" : [
5012 {
5013 "match_type" : "exact",
5014 "target" : ["mpls", "label"],
5015 "mask" : null
5016 }
5017 ],
5018 "match_type" : "exact",
5019 "type" : "simple",
5020 "max_size" : 1024,
5021 "with_counters" : true,
5022 "support_timeout" : false,
5023 "direct_meters" : null,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005024 "action_ids" : [26, 5],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005025 "actions" : ["forwarding.pop_mpls_and_next", "NoAction"],
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005026 "base_default_next" : "tbl_act_11",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005027 "next_tables" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005028 "forwarding.pop_mpls_and_next" : "tbl_act_11",
5029 "NoAction" : "tbl_act_11"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005030 },
5031 "default_entry" : {
5032 "action_id" : 5,
5033 "action_const" : false,
5034 "action_data" : [],
5035 "action_entry_const" : false
5036 }
5037 },
5038 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005039 "name" : "tbl_act_11",
5040 "id" : 22,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005041 "key" : [],
5042 "match_type" : "exact",
5043 "type" : "simple",
5044 "max_size" : 1024,
5045 "with_counters" : false,
5046 "support_timeout" : false,
5047 "direct_meters" : null,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005048 "action_ids" : [48],
5049 "actions" : ["act_11"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005050 "base_default_next" : "forwarding.acl",
5051 "next_tables" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005052 "act_11" : "forwarding.acl"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005053 },
5054 "default_entry" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005055 "action_id" : 48,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005056 "action_const" : true,
5057 "action_data" : [],
5058 "action_entry_const" : true
5059 }
5060 },
5061 {
5062 "name" : "forwarding.unicast_v4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005063 "id" : 23,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005064 "source_info" : {
5065 "filename" : "include/control/forwarding.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005066 "line" : 76,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005067 "column" : 10,
5068 "source_fragment" : "unicast_v4"
5069 },
5070 "key" : [
5071 {
5072 "match_type" : "lpm",
5073 "target" : ["ipv4", "dst_addr"],
5074 "mask" : null
5075 }
5076 ],
5077 "match_type" : "lpm",
5078 "type" : "simple",
5079 "max_size" : 1024,
5080 "with_counters" : true,
5081 "support_timeout" : false,
5082 "direct_meters" : null,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005083 "action_ids" : [23, 6],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005084 "actions" : ["forwarding.set_next_id", "NoAction"],
5085 "base_default_next" : "forwarding.acl",
5086 "next_tables" : {
5087 "forwarding.set_next_id" : "forwarding.acl",
5088 "NoAction" : "forwarding.acl"
5089 },
5090 "default_entry" : {
5091 "action_id" : 6,
5092 "action_const" : false,
5093 "action_data" : [],
5094 "action_entry_const" : false
5095 }
5096 },
5097 {
5098 "name" : "forwarding.multicast_v4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005099 "id" : 24,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005100 "source_info" : {
5101 "filename" : "include/control/forwarding.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005102 "line" : 87,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005103 "column" : 10,
5104 "source_fragment" : "multicast_v4"
5105 },
5106 "key" : [
5107 {
5108 "match_type" : "exact",
5109 "target" : ["vlan_tag", "vlan_id"],
5110 "mask" : null
5111 },
5112 {
5113 "match_type" : "lpm",
5114 "target" : ["ipv4", "dst_addr"],
5115 "mask" : null
5116 }
5117 ],
5118 "match_type" : "lpm",
5119 "type" : "simple",
5120 "max_size" : 1024,
5121 "with_counters" : true,
5122 "support_timeout" : false,
5123 "direct_meters" : null,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005124 "action_ids" : [24, 7],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005125 "actions" : ["forwarding.set_next_id", "NoAction"],
5126 "base_default_next" : "forwarding.acl",
5127 "next_tables" : {
5128 "forwarding.set_next_id" : "forwarding.acl",
5129 "NoAction" : "forwarding.acl"
5130 },
5131 "default_entry" : {
5132 "action_id" : 7,
5133 "action_const" : false,
5134 "action_data" : [],
5135 "action_entry_const" : false
5136 }
5137 },
5138 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005139 "name" : "forwarding.acl",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005140 "id" : 25,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005141 "source_info" : {
5142 "filename" : "include/control/forwarding.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005143 "line" : 127,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005144 "column" : 10,
5145 "source_fragment" : "acl"
5146 },
5147 "key" : [
5148 {
5149 "match_type" : "ternary",
5150 "target" : ["standard_metadata", "ingress_port"],
5151 "mask" : null
5152 },
5153 {
5154 "match_type" : "ternary",
5155 "target" : ["scalars", "fabric_metadata_t.ip_proto"],
5156 "mask" : null
5157 },
5158 {
5159 "match_type" : "ternary",
5160 "target" : ["scalars", "fabric_metadata_t.l4_src_port"],
5161 "mask" : null
5162 },
5163 {
5164 "match_type" : "ternary",
5165 "target" : ["scalars", "fabric_metadata_t.l4_dst_port"],
5166 "mask" : null
5167 },
5168 {
5169 "match_type" : "ternary",
5170 "target" : ["scalars", "fabric_metadata_t.original_ether_type"],
5171 "mask" : null
5172 },
5173 {
5174 "match_type" : "ternary",
5175 "target" : ["ethernet", "dst_addr"],
5176 "mask" : null
5177 },
5178 {
5179 "match_type" : "ternary",
5180 "target" : ["ethernet", "src_addr"],
5181 "mask" : null
5182 },
5183 {
5184 "match_type" : "ternary",
5185 "target" : ["vlan_tag", "vlan_id"],
5186 "mask" : null
5187 },
5188 {
5189 "match_type" : "ternary",
5190 "target" : ["ipv4", "src_addr"],
5191 "mask" : null
5192 },
5193 {
5194 "match_type" : "ternary",
5195 "target" : ["ipv4", "dst_addr"],
5196 "mask" : null
5197 },
5198 {
5199 "match_type" : "ternary",
5200 "target" : ["icmp", "icmp_type"],
5201 "mask" : null
5202 },
5203 {
5204 "match_type" : "ternary",
5205 "target" : ["icmp", "icmp_code"],
5206 "mask" : null
5207 }
5208 ],
5209 "match_type" : "ternary",
5210 "type" : "simple",
5211 "max_size" : 256,
5212 "with_counters" : true,
5213 "support_timeout" : false,
5214 "direct_meters" : null,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005215 "action_ids" : [25, 27, 21, 12],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005216 "actions" : ["forwarding.set_next_id", "forwarding.duplicate_to_controller", "forwarding.drop", "nop"],
5217 "base_default_next" : "next.simple",
5218 "next_tables" : {
5219 "forwarding.set_next_id" : "next.simple",
5220 "forwarding.duplicate_to_controller" : "next.simple",
5221 "forwarding.drop" : "next.simple",
5222 "nop" : "next.simple"
5223 },
5224 "default_entry" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005225 "action_id" : 12,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005226 "action_const" : true,
5227 "action_data" : [],
5228 "action_entry_const" : true
5229 }
5230 },
5231 {
5232 "name" : "next.simple",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005233 "id" : 26,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005234 "source_info" : {
5235 "filename" : "include/control/next.p4",
5236 "line" : 89,
5237 "column" : 10,
5238 "source_fragment" : "simple"
5239 },
5240 "key" : [
5241 {
5242 "match_type" : "exact",
5243 "target" : ["scalars", "fabric_metadata_t.next_id"],
5244 "mask" : null
5245 }
5246 ],
5247 "match_type" : "exact",
5248 "type" : "simple",
5249 "max_size" : 1024,
5250 "with_counters" : true,
5251 "support_timeout" : false,
5252 "direct_meters" : null,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005253 "action_ids" : [28, 29, 30, 33, 8],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005254 "actions" : ["next.output", "next.set_vlan_output", "next.l3_routing", "next.mpls_routing_v4", "NoAction"],
5255 "base_default_next" : null,
5256 "next_tables" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005257 "__HIT__" : "tbl_act_12",
5258 "__MISS__" : "tbl_act_13"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005259 },
5260 "default_entry" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005261 "action_id" : 8,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005262 "action_const" : false,
5263 "action_data" : [],
5264 "action_entry_const" : false
5265 }
5266 },
5267 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005268 "name" : "tbl_act_12",
5269 "id" : 27,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005270 "key" : [],
5271 "match_type" : "exact",
5272 "type" : "simple",
5273 "max_size" : 1024,
5274 "with_counters" : false,
5275 "support_timeout" : false,
5276 "direct_meters" : null,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005277 "action_ids" : [49],
5278 "actions" : ["act_12"],
5279 "base_default_next" : "node_44",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005280 "next_tables" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005281 "act_12" : "node_44"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005282 },
5283 "default_entry" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005284 "action_id" : 49,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005285 "action_const" : true,
5286 "action_data" : [],
5287 "action_entry_const" : true
5288 }
5289 },
5290 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005291 "name" : "tbl_act_13",
5292 "id" : 28,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005293 "key" : [],
5294 "match_type" : "exact",
5295 "type" : "simple",
5296 "max_size" : 1024,
5297 "with_counters" : false,
5298 "support_timeout" : false,
5299 "direct_meters" : null,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005300 "action_ids" : [50],
5301 "actions" : ["act_13"],
5302 "base_default_next" : "node_44",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005303 "next_tables" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005304 "act_13" : "node_44"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005305 },
5306 "default_entry" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005307 "action_id" : 50,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005308 "action_const" : true,
5309 "action_data" : [],
5310 "action_entry_const" : true
5311 }
5312 },
5313 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005314 "name" : "tbl_act_14",
5315 "id" : 29,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005316 "key" : [],
5317 "match_type" : "exact",
5318 "type" : "simple",
5319 "max_size" : 1024,
5320 "with_counters" : false,
5321 "support_timeout" : false,
5322 "direct_meters" : null,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005323 "action_ids" : [51],
5324 "actions" : ["act_14"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005325 "base_default_next" : "next.hashed",
5326 "next_tables" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005327 "act_14" : "next.hashed"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005328 },
5329 "default_entry" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005330 "action_id" : 51,
Carmelo Cascone14cde402018-01-25 01:57:18 -08005331 "action_const" : true,
5332 "action_data" : [],
5333 "action_entry_const" : true
5334 }
5335 },
5336 {
5337 "name" : "next.hashed",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005338 "id" : 30,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005339 "source_info" : {
5340 "filename" : "include/control/next.p4",
5341 "line" : 103,
5342 "column" : 10,
5343 "source_fragment" : "hashed"
5344 },
5345 "key" : [
5346 {
5347 "match_type" : "exact",
5348 "target" : ["scalars", "fabric_metadata_t.next_id"],
5349 "mask" : null
5350 }
5351 ],
5352 "match_type" : "exact",
5353 "type" : "indirect_ws",
5354 "action_profile" : "next.ecmp_selector",
5355 "max_size" : 1024,
5356 "with_counters" : true,
5357 "support_timeout" : false,
5358 "direct_meters" : null,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005359 "action_ids" : [31, 34, 35, 9],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005360 "actions" : ["next.l3_routing", "next.mpls_routing_v4", "next.mpls_routing_v6", "NoAction"],
5361 "base_default_next" : "next.broadcast",
5362 "next_tables" : {
5363 "next.l3_routing" : "next.broadcast",
5364 "next.mpls_routing_v4" : "next.broadcast",
5365 "next.mpls_routing_v6" : "next.broadcast",
5366 "NoAction" : "next.broadcast"
5367 }
5368 },
5369 {
5370 "name" : "next.broadcast",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005371 "id" : 31,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005372 "source_info" : {
5373 "filename" : "include/control/next.p4",
5374 "line" : 126,
5375 "column" : 10,
5376 "source_fragment" : "broadcast"
5377 },
5378 "key" : [
5379 {
5380 "match_type" : "exact",
5381 "target" : ["scalars", "fabric_metadata_t.next_id"],
5382 "mask" : null
5383 }
5384 ],
5385 "match_type" : "exact",
5386 "type" : "simple",
5387 "max_size" : 1024,
5388 "with_counters" : true,
5389 "support_timeout" : false,
5390 "direct_meters" : null,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005391 "action_ids" : [32, 10],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005392 "actions" : ["next.set_mcast_group", "NoAction"],
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005393 "base_default_next" : "node_50",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005394 "next_tables" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005395 "next.set_mcast_group" : "node_50",
5396 "NoAction" : "node_50"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005397 },
5398 "default_entry" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005399 "action_id" : 10,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005400 "action_const" : false,
5401 "action_data" : [],
5402 "action_entry_const" : false
5403 }
5404 },
5405 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005406 "name" : "tbl_act_15",
5407 "id" : 32,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005408 "key" : [],
5409 "match_type" : "exact",
5410 "type" : "simple",
5411 "max_size" : 1024,
5412 "with_counters" : false,
5413 "support_timeout" : false,
5414 "direct_meters" : null,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005415 "action_ids" : [52],
5416 "actions" : ["act_15"],
5417 "base_default_next" : "node_52",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005418 "next_tables" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005419 "act_15" : "node_52"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005420 },
5421 "default_entry" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005422 "action_id" : 52,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005423 "action_const" : true,
5424 "action_data" : [],
5425 "action_entry_const" : true
5426 }
5427 },
5428 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005429 "name" : "tbl_act_16",
5430 "id" : 33,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005431 "key" : [],
5432 "match_type" : "exact",
5433 "type" : "simple",
5434 "max_size" : 1024,
5435 "with_counters" : false,
5436 "support_timeout" : false,
5437 "direct_meters" : null,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005438 "action_ids" : [53],
5439 "actions" : ["act_16"],
5440 "base_default_next" : "node_54",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005441 "next_tables" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005442 "act_16" : "node_54"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005443 },
5444 "default_entry" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005445 "action_id" : 53,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005446 "action_const" : true,
5447 "action_data" : [],
5448 "action_entry_const" : true
5449 }
Carmelo Cascone14cde402018-01-25 01:57:18 -08005450 },
5451 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005452 "name" : "tbl_act_17",
5453 "id" : 34,
Carmelo Cascone14cde402018-01-25 01:57:18 -08005454 "key" : [],
5455 "match_type" : "exact",
5456 "type" : "simple",
5457 "max_size" : 1024,
5458 "with_counters" : false,
5459 "support_timeout" : false,
5460 "direct_meters" : null,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005461 "action_ids" : [54],
5462 "actions" : ["act_17"],
Carmelo Cascone14cde402018-01-25 01:57:18 -08005463 "base_default_next" : null,
5464 "next_tables" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005465 "act_17" : null
Carmelo Cascone14cde402018-01-25 01:57:18 -08005466 },
5467 "default_entry" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005468 "action_id" : 54,
Carmelo Cascone14cde402018-01-25 01:57:18 -08005469 "action_const" : true,
5470 "action_data" : [],
5471 "action_entry_const" : true
5472 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005473 }
5474 ],
5475 "action_profiles" : [
5476 {
5477 "name" : "next.ecmp_selector",
5478 "id" : 0,
5479 "max_size" : 64,
5480 "selector" : {
5481 "algo" : "crc16",
5482 "input" : [
5483 {
5484 "type" : "field",
5485 "value" : ["ethernet", "dst_addr"]
5486 },
5487 {
5488 "type" : "field",
5489 "value" : ["ethernet", "src_addr"]
5490 },
5491 {
5492 "type" : "field",
5493 "value" : ["scalars", "fabric_metadata_t.ip_proto"]
5494 },
5495 {
5496 "type" : "field",
5497 "value" : ["scalars", "fabric_metadata_t.l4_src_port"]
5498 },
5499 {
5500 "type" : "field",
5501 "value" : ["scalars", "fabric_metadata_t.l4_dst_port"]
5502 }
5503 ]
5504 }
5505 }
5506 ],
5507 "conditionals" : [
5508 {
5509 "name" : "node_2",
5510 "id" : 0,
5511 "source_info" : {
5512 "filename" : "include/control/packetio.p4",
5513 "line" : 25,
5514 "column" : 12,
5515 "source_fragment" : "hdr.packet_out.isValid()"
5516 },
5517 "expression" : {
5518 "type" : "expression",
5519 "value" : {
5520 "op" : "d2b",
5521 "left" : null,
5522 "right" : {
5523 "type" : "field",
5524 "value" : ["packet_out", "$valid$"]
5525 }
5526 }
5527 },
5528 "true_next" : "tbl_act",
5529 "false_next" : "tbl_act_0"
5530 },
5531 {
5532 "name" : "node_5",
5533 "id" : 1,
5534 "source_info" : {
5535 "filename" : "include/spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005536 "line" : 147,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005537 "column" : 12,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005538 "source_fragment" : "gtpu.isValid()"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005539 },
5540 "expression" : {
5541 "type" : "expression",
5542 "value" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005543 "op" : "d2b",
5544 "left" : null,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005545 "right" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005546 "type" : "field",
5547 "value" : ["gtpu", "$valid$"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005548 }
5549 }
5550 },
5551 "true_next" : "tbl_act_1",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005552 "false_next" : "spgw_ingress.ue_filter_table"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005553 },
5554 {
5555 "name" : "node_10",
5556 "id" : 2,
5557 "expression" : {
5558 "type" : "expression",
5559 "value" : {
5560 "op" : "d2b",
5561 "left" : null,
5562 "right" : {
5563 "type" : "field",
5564 "value" : ["scalars", "spgw_ingress_tmp_2"]
5565 }
5566 }
5567 },
5568 "true_next" : "tbl_act_4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005569 "false_next" : "node_17"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005570 },
5571 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005572 "name" : "node_15",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005573 "id" : 3,
5574 "expression" : {
5575 "type" : "expression",
5576 "value" : {
5577 "op" : "d2b",
5578 "left" : null,
5579 "right" : {
5580 "type" : "field",
5581 "value" : ["scalars", "spgw_ingress_tmp_3"]
5582 }
5583 }
5584 },
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005585 "true_next" : "tbl_act_7",
5586 "false_next" : "node_17"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005587 },
5588 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005589 "name" : "node_17",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005590 "id" : 4,
5591 "source_info" : {
5592 "filename" : "include/spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005593 "line" : 167,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005594 "column" : 12,
5595 "source_fragment" : "!spgw_meta.do_spgw"
5596 },
5597 "expression" : {
5598 "type" : "expression",
5599 "value" : {
5600 "op" : "not",
5601 "left" : null,
5602 "right" : {
5603 "type" : "expression",
5604 "value" : {
5605 "op" : "d2b",
5606 "left" : null,
5607 "right" : {
5608 "type" : "field",
5609 "value" : ["spgw", "do_spgw"]
5610 }
5611 }
5612 }
5613 }
5614 },
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005615 "true_next" : "tbl_act_8",
5616 "false_next" : "node_19"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005617 },
5618 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005619 "name" : "node_19",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005620 "id" : 5,
5621 "expression" : {
5622 "type" : "expression",
5623 "value" : {
5624 "op" : "not",
5625 "left" : null,
5626 "right" : {
5627 "type" : "expression",
5628 "value" : {
5629 "op" : "d2b",
5630 "left" : null,
5631 "right" : {
5632 "type" : "field",
5633 "value" : ["scalars", "spgw_ingress_hasReturned_0"]
5634 }
5635 }
5636 }
5637 }
5638 },
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005639 "true_next" : "node_20",
5640 "false_next" : "filtering.ingress_port_vlan"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005641 },
5642 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005643 "name" : "node_20",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005644 "id" : 6,
5645 "source_info" : {
5646 "filename" : "include/spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005647 "line" : 172,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005648 "column" : 12,
5649 "source_fragment" : "spgw_meta.direction == DIR_UPLINK"
5650 },
5651 "expression" : {
5652 "type" : "expression",
5653 "value" : {
5654 "op" : "==",
5655 "left" : {
5656 "type" : "field",
5657 "value" : ["spgw", "direction"]
5658 },
5659 "right" : {
5660 "type" : "hexstr",
5661 "value" : "0x00"
5662 }
5663 }
5664 },
5665 "true_next" : "tbl_spgw_ingress_gtpu_decap",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005666 "false_next" : "node_22"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005667 },
5668 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005669 "name" : "node_22",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005670 "id" : 7,
5671 "source_info" : {
5672 "filename" : "include/spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005673 "line" : 189,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005674 "column" : 12,
5675 "source_fragment" : "spgw_meta.direction == DIR_DOWNLINK"
5676 },
5677 "expression" : {
5678 "type" : "expression",
5679 "value" : {
5680 "op" : "==",
5681 "left" : {
5682 "type" : "field",
5683 "value" : ["spgw", "direction"]
5684 },
5685 "right" : {
5686 "type" : "hexstr",
5687 "value" : "0x01"
5688 }
5689 }
5690 },
5691 "true_next" : "spgw_ingress.dl_sess_lookup",
5692 "false_next" : "filtering.ingress_port_vlan"
5693 },
5694 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005695 "name" : "node_26",
5696 "id" : 8,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005697 "source_info" : {
5698 "filename" : "include/spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005699 "line" : 190,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005700 "column" : 16,
5701 "source_fragment" : "!dl_sess_lookup.apply().hit"
5702 },
5703 "expression" : {
5704 "type" : "expression",
5705 "value" : {
5706 "op" : "not",
5707 "left" : null,
5708 "right" : {
5709 "type" : "expression",
5710 "value" : {
5711 "op" : "d2b",
5712 "left" : null,
5713 "right" : {
5714 "type" : "field",
5715 "value" : ["scalars", "spgw_ingress_tmp_4"]
5716 }
5717 }
5718 }
5719 }
5720 },
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005721 "true_next" : "tbl_spgw_ingress_drop_now",
5722 "false_next" : "spgw_ingress.ue_cdr_table"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005723 },
5724 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005725 "name" : "node_31",
5726 "id" : 9,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005727 "source_info" : {
5728 "filename" : "include/control/forwarding.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005729 "line" : 157,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005730 "column" : 11,
5731 "source_fragment" : "fabric_metadata.fwd_type == FWD_BRIDGING"
5732 },
5733 "expression" : {
5734 "type" : "expression",
5735 "value" : {
5736 "op" : "==",
5737 "left" : {
5738 "type" : "field",
5739 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
5740 },
5741 "right" : {
5742 "type" : "hexstr",
5743 "value" : "0x00"
5744 }
5745 }
5746 },
5747 "true_next" : "forwarding.bridging",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005748 "false_next" : "node_33"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005749 },
5750 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005751 "name" : "node_33",
5752 "id" : 10,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005753 "source_info" : {
5754 "filename" : "include/control/forwarding.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005755 "line" : 158,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005756 "column" : 17,
5757 "source_fragment" : "fabric_metadata.fwd_type == FWD_MPLS"
5758 },
5759 "expression" : {
5760 "type" : "expression",
5761 "value" : {
5762 "op" : "==",
5763 "left" : {
5764 "type" : "field",
5765 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
5766 },
5767 "right" : {
5768 "type" : "hexstr",
5769 "value" : "0x01"
5770 }
5771 }
5772 },
5773 "true_next" : "forwarding.mpls",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005774 "false_next" : "node_36"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005775 },
5776 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005777 "name" : "node_36",
5778 "id" : 11,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005779 "source_info" : {
5780 "filename" : "include/control/forwarding.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005781 "line" : 165,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005782 "column" : 17,
5783 "source_fragment" : "fabric_metadata.fwd_type == FWD_IPV4_UNICAST"
5784 },
5785 "expression" : {
5786 "type" : "expression",
5787 "value" : {
5788 "op" : "==",
5789 "left" : {
5790 "type" : "field",
5791 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
5792 },
5793 "right" : {
5794 "type" : "hexstr",
5795 "value" : "0x02"
5796 }
5797 }
5798 },
5799 "true_next" : "forwarding.unicast_v4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005800 "false_next" : "node_38"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005801 },
5802 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005803 "name" : "node_38",
5804 "id" : 12,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005805 "source_info" : {
5806 "filename" : "include/control/forwarding.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005807 "line" : 166,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005808 "column" : 17,
5809 "source_fragment" : "fabric_metadata.fwd_type == FWD_IPV4_MULTICAST"
5810 },
5811 "expression" : {
5812 "type" : "expression",
5813 "value" : {
5814 "op" : "==",
5815 "left" : {
5816 "type" : "field",
5817 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
5818 },
5819 "right" : {
5820 "type" : "hexstr",
5821 "value" : "0x03"
5822 }
5823 }
5824 },
5825 "true_next" : "forwarding.multicast_v4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005826 "false_next" : "forwarding.acl"
5827 },
5828 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005829 "name" : "node_44",
5830 "id" : 13,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005831 "expression" : {
5832 "type" : "expression",
5833 "value" : {
5834 "op" : "d2b",
5835 "left" : null,
5836 "right" : {
5837 "type" : "field",
5838 "value" : ["scalars", "next_tmp_0"]
5839 }
5840 }
5841 },
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005842 "true_next" : "node_45",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005843 "false_next" : "next.hashed"
5844 },
5845 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005846 "name" : "node_45",
5847 "id" : 14,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005848 "source_info" : {
5849 "filename" : "include/control/next.p4",
5850 "line" : 138,
5851 "column" : 16,
5852 "source_fragment" : "!hdr.mpls.isValid()"
5853 },
5854 "expression" : {
5855 "type" : "expression",
5856 "value" : {
5857 "op" : "not",
5858 "left" : null,
5859 "right" : {
5860 "type" : "expression",
5861 "value" : {
5862 "op" : "d2b",
5863 "left" : null,
5864 "right" : {
5865 "type" : "field",
5866 "value" : ["mpls", "$valid$"]
5867 }
5868 }
5869 }
5870 }
5871 },
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005872 "true_next" : "node_46",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005873 "false_next" : "next.hashed"
5874 },
5875 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005876 "name" : "node_46",
5877 "id" : 15,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005878 "source_info" : {
5879 "filename" : "include/control/next.p4",
5880 "line" : 139,
5881 "column" : 19,
5882 "source_fragment" : "hdr.ipv4.isValid()"
5883 },
5884 "expression" : {
5885 "type" : "expression",
5886 "value" : {
5887 "op" : "d2b",
5888 "left" : null,
5889 "right" : {
5890 "type" : "field",
5891 "value" : ["ipv4", "$valid$"]
5892 }
5893 }
5894 },
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005895 "true_next" : "tbl_act_14",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005896 "false_next" : "next.hashed"
5897 },
5898 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005899 "name" : "node_50",
5900 "id" : 16,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005901 "source_info" : {
5902 "filename" : "include/control/port_counter.p4",
5903 "line" : 27,
5904 "column" : 12,
5905 "source_fragment" : "standard_metadata.egress_spec < 511"
5906 },
5907 "expression" : {
5908 "type" : "expression",
5909 "value" : {
5910 "op" : "<",
5911 "left" : {
5912 "type" : "field",
5913 "value" : ["standard_metadata", "egress_spec"]
5914 },
5915 "right" : {
5916 "type" : "hexstr",
5917 "value" : "0x01ff"
5918 }
5919 }
5920 },
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005921 "true_next" : "tbl_act_15",
5922 "false_next" : "node_52"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005923 },
5924 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005925 "name" : "node_52",
5926 "id" : 17,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005927 "source_info" : {
5928 "filename" : "include/control/port_counter.p4",
5929 "line" : 30,
5930 "column" : 12,
5931 "source_fragment" : "standard_metadata.ingress_port < 511"
5932 },
5933 "expression" : {
5934 "type" : "expression",
5935 "value" : {
5936 "op" : "<",
5937 "left" : {
5938 "type" : "field",
5939 "value" : ["standard_metadata", "ingress_port"]
5940 },
5941 "right" : {
5942 "type" : "hexstr",
5943 "value" : "0x01ff"
5944 }
5945 }
5946 },
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005947 "true_next" : "tbl_act_16",
5948 "false_next" : "node_54"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005949 },
5950 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005951 "name" : "node_54",
5952 "id" : 18,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005953 "source_info" : {
5954 "filename" : "include/control/next.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005955 "line" : 161,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005956 "column" : 12,
5957 "source_fragment" : "fabric_metadata.pop_vlan_at_egress"
5958 },
5959 "expression" : {
5960 "type" : "expression",
5961 "value" : {
5962 "op" : "d2b",
5963 "left" : null,
5964 "right" : {
5965 "type" : "field",
5966 "value" : ["scalars", "fabric_metadata_t.pop_vlan_at_egress"]
5967 }
5968 }
5969 },
5970 "false_next" : null,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005971 "true_next" : "tbl_act_17"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005972 }
5973 ]
5974 },
5975 {
5976 "name" : "egress",
5977 "id" : 1,
5978 "source_info" : {
5979 "filename" : "fabric.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005980 "line" : 62,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005981 "column" : 8,
5982 "source_fragment" : "FabricEgress"
5983 },
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005984 "init_table" : "node_58",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005985 "tables" : [
5986 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005987 "name" : "tbl_act_18",
5988 "id" : 35,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005989 "key" : [],
5990 "match_type" : "exact",
5991 "type" : "simple",
5992 "max_size" : 1024,
5993 "with_counters" : false,
5994 "support_timeout" : false,
5995 "direct_meters" : null,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005996 "action_ids" : [56],
5997 "actions" : ["act_18"],
5998 "base_default_next" : "tbl_act_19",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005999 "next_tables" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006000 "act_18" : "tbl_act_19"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006001 },
6002 "default_entry" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006003 "action_id" : 56,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006004 "action_const" : true,
6005 "action_data" : [],
6006 "action_entry_const" : true
6007 }
6008 },
6009 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006010 "name" : "tbl_act_19",
6011 "id" : 36,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006012 "key" : [],
6013 "match_type" : "exact",
6014 "type" : "simple",
6015 "max_size" : 1024,
6016 "with_counters" : false,
6017 "support_timeout" : false,
6018 "direct_meters" : null,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006019 "action_ids" : [57],
6020 "actions" : ["act_19"],
6021 "base_default_next" : "node_61",
Carmelo Cascone14cde402018-01-25 01:57:18 -08006022 "next_tables" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006023 "act_19" : "node_61"
Carmelo Cascone14cde402018-01-25 01:57:18 -08006024 },
6025 "default_entry" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006026 "action_id" : 57,
Carmelo Cascone14cde402018-01-25 01:57:18 -08006027 "action_const" : true,
6028 "action_data" : [],
6029 "action_entry_const" : true
6030 }
6031 },
6032 {
6033 "name" : "tbl_spgw_egress_gtpu_encap",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006034 "id" : 37,
Carmelo Cascone14cde402018-01-25 01:57:18 -08006035 "key" : [],
6036 "match_type" : "exact",
6037 "type" : "simple",
6038 "max_size" : 1024,
6039 "with_counters" : false,
6040 "support_timeout" : false,
6041 "direct_meters" : null,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006042 "action_ids" : [55],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006043 "actions" : ["spgw_egress.gtpu_encap"],
6044 "base_default_next" : null,
6045 "next_tables" : {
6046 "spgw_egress.gtpu_encap" : null
6047 },
6048 "default_entry" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006049 "action_id" : 55,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006050 "action_const" : true,
6051 "action_data" : [],
6052 "action_entry_const" : true
6053 }
6054 }
6055 ],
6056 "action_profiles" : [],
6057 "conditionals" : [
6058 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006059 "name" : "node_58",
6060 "id" : 19,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006061 "source_info" : {
6062 "filename" : "include/control/packetio.p4",
6063 "line" : 38,
6064 "column" : 12,
Carmelo Casconeb531b682018-01-30 17:55:56 -08006065 "source_fragment" : "standard_metadata.egress_port == 255"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006066 },
6067 "expression" : {
6068 "type" : "expression",
6069 "value" : {
6070 "op" : "==",
6071 "left" : {
6072 "type" : "field",
6073 "value" : ["standard_metadata", "egress_port"]
6074 },
6075 "right" : {
6076 "type" : "hexstr",
6077 "value" : "0x00ff"
6078 }
6079 }
6080 },
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006081 "true_next" : "tbl_act_18",
6082 "false_next" : "tbl_act_19"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006083 },
6084 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006085 "name" : "node_61",
6086 "id" : 20,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006087 "source_info" : {
6088 "filename" : "include/spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006089 "line" : 245,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006090 "column" : 12,
6091 "source_fragment" : "spgw_meta.do_spgw && spgw_meta.direction == DIR_DOWNLINK"
6092 },
6093 "expression" : {
6094 "type" : "expression",
6095 "value" : {
6096 "op" : "and",
6097 "left" : {
6098 "type" : "expression",
6099 "value" : {
6100 "op" : "d2b",
6101 "left" : null,
6102 "right" : {
6103 "type" : "field",
6104 "value" : ["spgw", "do_spgw"]
6105 }
6106 }
6107 },
6108 "right" : {
6109 "type" : "expression",
6110 "value" : {
6111 "op" : "==",
6112 "left" : {
6113 "type" : "field",
6114 "value" : ["spgw", "direction"]
6115 },
6116 "right" : {
6117 "type" : "hexstr",
6118 "value" : "0x01"
6119 }
6120 }
6121 }
6122 }
6123 },
6124 "false_next" : null,
6125 "true_next" : "tbl_spgw_egress_gtpu_encap"
6126 }
6127 ]
6128 }
6129 ],
6130 "checksums" : [
6131 {
6132 "name" : "cksum",
6133 "id" : 0,
6134 "target" : ["ipv4", "hdr_checksum"],
6135 "type" : "generic",
6136 "calculation" : "calc",
6137 "if_cond" : {
6138 "type" : "expression",
6139 "value" : {
6140 "op" : "d2b",
6141 "left" : null,
6142 "right" : {
6143 "type" : "field",
6144 "value" : ["ipv4", "$valid$"]
6145 }
6146 }
6147 }
6148 },
6149 {
6150 "name" : "cksum_0",
6151 "id" : 1,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006152 "target" : ["ipv4", "hdr_checksum"],
6153 "type" : "generic",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006154 "calculation" : "calc_0",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006155 "if_cond" : {
6156 "type" : "expression",
6157 "value" : {
6158 "op" : "d2b",
6159 "left" : null,
6160 "right" : {
6161 "type" : "field",
6162 "value" : ["ipv4", "$valid$"]
6163 }
6164 }
6165 }
6166 },
6167 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006168 "name" : "cksum_1",
6169 "id" : 2,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006170 "target" : ["gtpu_ipv4", "hdr_checksum"],
6171 "type" : "generic",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006172 "calculation" : "calc_1",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006173 "if_cond" : {
6174 "type" : "expression",
6175 "value" : {
6176 "op" : "d2b",
6177 "left" : null,
6178 "right" : {
6179 "type" : "field",
6180 "value" : ["gtpu_ipv4", "$valid$"]
6181 }
6182 }
6183 }
Carmelo Cascone14cde402018-01-25 01:57:18 -08006184 },
6185 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006186 "name" : "cksum_2",
6187 "id" : 3,
Carmelo Cascone14cde402018-01-25 01:57:18 -08006188 "target" : ["gtpu_udp", "checksum"],
6189 "type" : "generic",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006190 "calculation" : "calc_2",
Carmelo Cascone14cde402018-01-25 01:57:18 -08006191 "if_cond" : {
6192 "type" : "expression",
6193 "value" : {
6194 "op" : "d2b",
6195 "left" : null,
6196 "right" : {
6197 "type" : "field",
6198 "value" : ["gtpu_udp", "$valid$"]
6199 }
6200 }
6201 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006202 }
6203 ],
6204 "force_arith" : [],
6205 "extern_instances" : [],
6206 "field_aliases" : [
6207 [
6208 "queueing_metadata.enq_timestamp",
6209 ["standard_metadata", "enq_timestamp"]
6210 ],
6211 [
6212 "queueing_metadata.enq_qdepth",
6213 ["standard_metadata", "enq_qdepth"]
6214 ],
6215 [
6216 "queueing_metadata.deq_timedelta",
6217 ["standard_metadata", "deq_timedelta"]
6218 ],
6219 [
6220 "queueing_metadata.deq_qdepth",
6221 ["standard_metadata", "deq_qdepth"]
6222 ],
6223 [
6224 "intrinsic_metadata.ingress_global_timestamp",
6225 ["standard_metadata", "ingress_global_timestamp"]
6226 ],
6227 [
6228 "intrinsic_metadata.lf_field_list",
6229 ["standard_metadata", "lf_field_list"]
6230 ],
6231 [
6232 "intrinsic_metadata.mcast_grp",
6233 ["standard_metadata", "mcast_grp"]
6234 ],
6235 [
6236 "intrinsic_metadata.resubmit_flag",
6237 ["standard_metadata", "resubmit_flag"]
6238 ],
6239 [
6240 "intrinsic_metadata.egress_rid",
6241 ["standard_metadata", "egress_rid"]
6242 ]
6243 ]
6244}