blob: 6a023a55eda055a2f7b3d46c0419996aa0dd97c2 [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" : [
Carmelo Cascone5bdffe72018-02-04 14:53:54 -0800316 ["NoError", 1],
317 ["PacketTooShort", 2],
318 ["NoMatch", 3],
319 ["StackOutOfBounds", 4],
320 ["HeaderTooShort", 5],
321 ["ParserTimeout", 6]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800322 ],
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" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -0800845 "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 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800892 "name" : "forwarding.acl_counter",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -0800893 "id" : 6,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800894 "is_direct" : true,
895 "binding" : "forwarding.acl"
896 },
897 {
898 "name" : "next.simple_counter",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -0800899 "id" : 7,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800900 "is_direct" : true,
901 "binding" : "next.simple"
902 },
903 {
904 "name" : "next.hashed_counter",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -0800905 "id" : 8,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800906 "is_direct" : true,
907 "binding" : "next.hashed"
908 },
909 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800910 "name" : "port_counters_control.egress_port_counter",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -0800911 "id" : 9,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800912 "source_info" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -0800913 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800914 "line" : 23,
Yi Tseng3d3956d2018-01-31 17:28:05 -0800915 "column" : 48,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800916 "source_fragment" : "egress_port_counter"
917 },
918 "size" : 511,
919 "is_direct" : false
920 },
921 {
922 "name" : "port_counters_control.ingress_port_counter",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -0800923 "id" : 10,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800924 "source_info" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -0800925 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800926 "line" : 24,
Yi Tseng3d3956d2018-01-31 17:28:05 -0800927 "column" : 48,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800928 "source_fragment" : "ingress_port_counter"
929 },
930 "size" : 511,
931 "is_direct" : false
932 }
933 ],
934 "register_arrays" : [],
935 "calculations" : [
936 {
937 "name" : "calc",
938 "id" : 0,
939 "source_info" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -0800940 "filename" : "include/checksum.p4",
Carmelo Cascone14cde402018-01-25 01:57:18 -0800941 "line" : 56,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800942 "column" : 8,
943 "source_fragment" : "verify_checksum(hdr.ipv4.isValid(), ..."
944 },
945 "algo" : "csum16",
946 "input" : [
947 {
948 "type" : "field",
949 "value" : ["ipv4", "version"]
950 },
951 {
952 "type" : "field",
953 "value" : ["ipv4", "ihl"]
954 },
955 {
956 "type" : "field",
957 "value" : ["ipv4", "diffserv"]
958 },
959 {
960 "type" : "field",
961 "value" : ["ipv4", "total_len"]
962 },
963 {
964 "type" : "field",
965 "value" : ["ipv4", "identification"]
966 },
967 {
968 "type" : "field",
969 "value" : ["ipv4", "flags"]
970 },
971 {
972 "type" : "field",
973 "value" : ["ipv4", "frag_offset"]
974 },
975 {
976 "type" : "field",
977 "value" : ["ipv4", "ttl"]
978 },
979 {
980 "type" : "field",
981 "value" : ["ipv4", "protocol"]
982 },
983 {
984 "type" : "field",
985 "value" : ["ipv4", "src_addr"]
986 },
987 {
988 "type" : "field",
989 "value" : ["ipv4", "dst_addr"]
990 }
991 ]
992 },
993 {
994 "name" : "calc_0",
995 "id" : 1,
996 "source_info" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -0800997 "filename" : "include/checksum.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800998 "line" : 28,
999 "column" : 8,
1000 "source_fragment" : "update_checksum(hdr.ipv4.isValid(), ..."
1001 },
1002 "algo" : "csum16",
1003 "input" : [
1004 {
1005 "type" : "field",
1006 "value" : ["ipv4", "version"]
1007 },
1008 {
1009 "type" : "field",
1010 "value" : ["ipv4", "ihl"]
1011 },
1012 {
1013 "type" : "field",
1014 "value" : ["ipv4", "diffserv"]
1015 },
1016 {
1017 "type" : "field",
1018 "value" : ["ipv4", "total_len"]
1019 },
1020 {
1021 "type" : "field",
1022 "value" : ["ipv4", "identification"]
1023 },
1024 {
1025 "type" : "field",
1026 "value" : ["ipv4", "flags"]
1027 },
1028 {
1029 "type" : "field",
1030 "value" : ["ipv4", "frag_offset"]
1031 },
1032 {
1033 "type" : "field",
1034 "value" : ["ipv4", "ttl"]
1035 },
1036 {
1037 "type" : "field",
1038 "value" : ["ipv4", "protocol"]
1039 },
1040 {
1041 "type" : "field",
1042 "value" : ["ipv4", "src_addr"]
1043 },
1044 {
1045 "type" : "field",
1046 "value" : ["ipv4", "dst_addr"]
1047 }
1048 ]
1049 },
1050 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001051 "name" : "calc_1",
1052 "id" : 2,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001053 "source_info" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001054 "filename" : "include/spgw.p4",
1055 "line" : 293,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001056 "column" : 8,
1057 "source_fragment" : "update_checksum(gtpu_ipv4.isValid(), ..."
1058 },
1059 "algo" : "csum16",
1060 "input" : [
1061 {
1062 "type" : "field",
1063 "value" : ["gtpu_ipv4", "version"]
1064 },
1065 {
1066 "type" : "field",
1067 "value" : ["gtpu_ipv4", "ihl"]
1068 },
1069 {
1070 "type" : "field",
1071 "value" : ["gtpu_ipv4", "diffserv"]
1072 },
1073 {
1074 "type" : "field",
1075 "value" : ["gtpu_ipv4", "total_len"]
1076 },
1077 {
1078 "type" : "field",
1079 "value" : ["gtpu_ipv4", "identification"]
1080 },
1081 {
1082 "type" : "field",
1083 "value" : ["gtpu_ipv4", "flags"]
1084 },
1085 {
1086 "type" : "field",
1087 "value" : ["gtpu_ipv4", "frag_offset"]
1088 },
1089 {
1090 "type" : "field",
1091 "value" : ["gtpu_ipv4", "ttl"]
1092 },
1093 {
1094 "type" : "field",
1095 "value" : ["gtpu_ipv4", "protocol"]
1096 },
1097 {
1098 "type" : "field",
1099 "value" : ["gtpu_ipv4", "src_addr"]
1100 },
1101 {
1102 "type" : "field",
1103 "value" : ["gtpu_ipv4", "dst_addr"]
1104 }
1105 ]
1106 }
1107 ],
1108 "learn_lists" : [],
1109 "actions" : [
1110 {
1111 "name" : "NoAction",
1112 "id" : 0,
1113 "runtime_data" : [],
1114 "primitives" : []
1115 },
1116 {
1117 "name" : "NoAction",
1118 "id" : 1,
1119 "runtime_data" : [],
1120 "primitives" : []
1121 },
1122 {
1123 "name" : "NoAction",
1124 "id" : 2,
1125 "runtime_data" : [],
1126 "primitives" : []
1127 },
1128 {
1129 "name" : "NoAction",
1130 "id" : 3,
1131 "runtime_data" : [],
1132 "primitives" : []
1133 },
1134 {
1135 "name" : "NoAction",
1136 "id" : 4,
1137 "runtime_data" : [],
1138 "primitives" : []
1139 },
1140 {
1141 "name" : "NoAction",
1142 "id" : 5,
1143 "runtime_data" : [],
1144 "primitives" : []
1145 },
1146 {
1147 "name" : "NoAction",
1148 "id" : 6,
1149 "runtime_data" : [],
1150 "primitives" : []
1151 },
1152 {
1153 "name" : "NoAction",
1154 "id" : 7,
1155 "runtime_data" : [],
1156 "primitives" : []
1157 },
1158 {
1159 "name" : "NoAction",
1160 "id" : 8,
1161 "runtime_data" : [],
1162 "primitives" : []
1163 },
1164 {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001165 "name" : "nop",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001166 "id" : 9,
1167 "runtime_data" : [],
1168 "primitives" : []
1169 },
1170 {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001171 "name" : "nop",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001172 "id" : 10,
1173 "runtime_data" : [],
1174 "primitives" : []
1175 },
1176 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001177 "name" : "spgw_ingress.drop_now",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001178 "id" : 11,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001179 "runtime_data" : [],
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001180 "primitives" : [
1181 {
1182 "op" : "drop",
1183 "parameters" : [],
1184 "source_info" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001185 "filename" : "include/spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001186 "line" : 33,
1187 "column" : 8,
1188 "source_fragment" : "mark_to_drop()"
1189 }
1190 },
1191 {
1192 "op" : "exit",
1193 "parameters" : [],
1194 "source_info" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001195 "filename" : "include/spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001196 "line" : 34,
1197 "column" : 8,
1198 "source_fragment" : "exit"
1199 }
1200 }
1201 ]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001202 },
1203 {
1204 "name" : "spgw_ingress.gtpu_decap",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001205 "id" : 12,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001206 "runtime_data" : [],
1207 "primitives" : [
1208 {
1209 "op" : "remove_header",
1210 "parameters" : [
1211 {
1212 "type" : "header",
1213 "value" : "gtpu_ipv4"
1214 }
1215 ],
1216 "source_info" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001217 "filename" : "include/spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001218 "line" : 38,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001219 "column" : 8,
1220 "source_fragment" : "gtpu_ipv4.setInvalid()"
1221 }
1222 },
1223 {
1224 "op" : "remove_header",
1225 "parameters" : [
1226 {
1227 "type" : "header",
1228 "value" : "gtpu_udp"
1229 }
1230 ],
1231 "source_info" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001232 "filename" : "include/spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001233 "line" : 39,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001234 "column" : 8,
1235 "source_fragment" : "gtpu_udp.setInvalid()"
1236 }
1237 },
1238 {
1239 "op" : "remove_header",
1240 "parameters" : [
1241 {
1242 "type" : "header",
1243 "value" : "gtpu"
1244 }
1245 ],
1246 "source_info" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001247 "filename" : "include/spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001248 "line" : 40,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001249 "column" : 8,
1250 "source_fragment" : "gtpu.setInvalid()"
1251 }
1252 }
1253 ]
1254 },
1255 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001256 "name" : "spgw_ingress.set_dl_sess_info",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001257 "id" : 13,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001258 "runtime_data" : [
1259 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001260 "name" : "teid",
1261 "bitwidth" : 32
1262 },
1263 {
1264 "name" : "s1u_enb_addr",
1265 "bitwidth" : 32
1266 },
1267 {
1268 "name" : "s1u_sgw_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001269 "bitwidth" : 32
1270 }
1271 ],
1272 "primitives" : [
1273 {
1274 "op" : "assign",
1275 "parameters" : [
1276 {
1277 "type" : "field",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001278 "value" : ["spgw", "teid"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001279 },
1280 {
1281 "type" : "runtime_data",
1282 "value" : 0
1283 }
1284 ],
1285 "source_info" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001286 "filename" : "include/spgw.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001287 "line" : 46,
1288 "column" : 8,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001289 "source_fragment" : "spgw_meta.teid = teid"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001290 }
1291 },
1292 {
1293 "op" : "assign",
1294 "parameters" : [
1295 {
1296 "type" : "field",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001297 "value" : ["spgw", "s1u_enb_addr"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001298 },
1299 {
1300 "type" : "runtime_data",
1301 "value" : 1
1302 }
1303 ],
1304 "source_info" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001305 "filename" : "include/spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001306 "line" : 47,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001307 "column" : 8,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001308 "source_fragment" : "spgw_meta.s1u_enb_addr = s1u_enb_addr"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001309 }
1310 },
1311 {
1312 "op" : "assign",
1313 "parameters" : [
1314 {
1315 "type" : "field",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001316 "value" : ["spgw", "s1u_sgw_addr"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001317 },
1318 {
1319 "type" : "runtime_data",
1320 "value" : 2
1321 }
1322 ],
1323 "source_info" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001324 "filename" : "include/spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001325 "line" : 48,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001326 "column" : 8,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001327 "source_fragment" : "spgw_meta.s1u_sgw_addr = s1u_sgw_addr"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001328 }
1329 }
1330 ]
1331 },
1332 {
1333 "name" : "spgw_ingress.update_ue_cdr",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001334 "id" : 14,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001335 "runtime_data" : [],
1336 "primitives" : []
1337 },
1338 {
1339 "name" : "filtering.drop",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001340 "id" : 15,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001341 "runtime_data" : [],
1342 "primitives" : [
1343 {
1344 "op" : "drop",
1345 "parameters" : [],
1346 "source_info" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001347 "filename" : "include/control/filtering.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001348 "line" : 31,
1349 "column" : 8,
1350 "source_fragment" : "mark_to_drop()"
1351 }
1352 }
1353 ]
1354 },
1355 {
1356 "name" : "filtering.set_vlan",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001357 "id" : 16,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001358 "runtime_data" : [
1359 {
1360 "name" : "new_vlan_id",
1361 "bitwidth" : 12
1362 }
1363 ],
1364 "primitives" : [
1365 {
1366 "op" : "assign",
1367 "parameters" : [
1368 {
1369 "type" : "field",
1370 "value" : ["vlan_tag", "vlan_id"]
1371 },
1372 {
1373 "type" : "runtime_data",
1374 "value" : 0
1375 }
1376 ],
1377 "source_info" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001378 "filename" : "include/control/filtering.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001379 "line" : 35,
1380 "column" : 8,
1381 "source_fragment" : "hdr.vlan_tag.vlan_id = new_vlan_id"
1382 }
1383 }
1384 ]
1385 },
1386 {
1387 "name" : "filtering.push_internal_vlan",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001388 "id" : 17,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001389 "runtime_data" : [
1390 {
1391 "name" : "new_vlan_id",
1392 "bitwidth" : 12
1393 }
1394 ],
1395 "primitives" : [
1396 {
1397 "op" : "add_header",
1398 "parameters" : [
1399 {
1400 "type" : "header",
1401 "value" : "vlan_tag"
1402 }
1403 ],
1404 "source_info" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001405 "filename" : "include/control/filtering.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001406 "line" : 41,
1407 "column" : 8,
1408 "source_fragment" : "hdr.vlan_tag.setValid()"
1409 }
1410 },
1411 {
1412 "op" : "assign",
1413 "parameters" : [
1414 {
1415 "type" : "field",
1416 "value" : ["vlan_tag", "cfi"]
1417 },
1418 {
1419 "type" : "hexstr",
1420 "value" : "0x00"
1421 }
1422 ],
1423 "source_info" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001424 "filename" : "include/control/filtering.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001425 "line" : 42,
1426 "column" : 8,
1427 "source_fragment" : "hdr.vlan_tag.cfi = 0"
1428 }
1429 },
1430 {
1431 "op" : "assign",
1432 "parameters" : [
1433 {
1434 "type" : "field",
1435 "value" : ["vlan_tag", "pri"]
1436 },
1437 {
1438 "type" : "hexstr",
1439 "value" : "0x00"
1440 }
1441 ],
1442 "source_info" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001443 "filename" : "include/control/filtering.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001444 "line" : 43,
1445 "column" : 8,
1446 "source_fragment" : "hdr.vlan_tag.pri = 0"
1447 }
1448 },
1449 {
1450 "op" : "assign",
1451 "parameters" : [
1452 {
1453 "type" : "field",
1454 "value" : ["vlan_tag", "ether_type"]
1455 },
1456 {
1457 "type" : "field",
1458 "value" : ["ethernet", "ether_type"]
1459 }
1460 ],
1461 "source_info" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001462 "filename" : "include/control/filtering.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001463 "line" : 44,
1464 "column" : 8,
1465 "source_fragment" : "hdr.vlan_tag.ether_type = hdr.ethernet.ether_type"
1466 }
1467 },
1468 {
1469 "op" : "assign",
1470 "parameters" : [
1471 {
1472 "type" : "field",
1473 "value" : ["ethernet", "ether_type"]
1474 },
1475 {
1476 "type" : "hexstr",
1477 "value" : "0x8100"
1478 }
1479 ],
1480 "source_info" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001481 "filename" : "include/control/../define.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001482 "line" : 32,
1483 "column" : 31,
1484 "source_fragment" : "0x8100; ..."
1485 }
1486 },
1487 {
1488 "op" : "assign",
1489 "parameters" : [
1490 {
1491 "type" : "field",
1492 "value" : ["vlan_tag", "vlan_id"]
1493 },
1494 {
1495 "type" : "runtime_data",
1496 "value" : 0
1497 }
1498 ],
1499 "source_info" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001500 "filename" : "include/control/filtering.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001501 "line" : 35,
1502 "column" : 8,
1503 "source_fragment" : "hdr.vlan_tag.vlan_id = new_vlan_id; ..."
1504 }
1505 },
1506 {
1507 "op" : "assign",
1508 "parameters" : [
1509 {
1510 "type" : "field",
1511 "value" : ["scalars", "fabric_metadata_t.pop_vlan_at_egress"]
1512 },
1513 {
1514 "type" : "expression",
1515 "value" : {
1516 "type" : "expression",
1517 "value" : {
1518 "op" : "b2d",
1519 "left" : null,
1520 "right" : {
1521 "type" : "bool",
1522 "value" : true
1523 }
1524 }
1525 }
1526 }
1527 ],
1528 "source_info" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001529 "filename" : "include/control/filtering.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001530 "line" : 49,
1531 "column" : 8,
1532 "source_fragment" : "fabric_metadata.pop_vlan_at_egress = true"
1533 }
1534 }
1535 ]
1536 },
1537 {
1538 "name" : "filtering.set_forwarding_type",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001539 "id" : 18,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001540 "runtime_data" : [
1541 {
1542 "name" : "fwd_type",
1543 "bitwidth" : 3
1544 }
1545 ],
1546 "primitives" : [
1547 {
1548 "op" : "assign",
1549 "parameters" : [
1550 {
1551 "type" : "field",
1552 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
1553 },
1554 {
1555 "type" : "runtime_data",
1556 "value" : 0
1557 }
1558 ],
1559 "source_info" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001560 "filename" : "include/control/filtering.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001561 "line" : 53,
1562 "column" : 8,
1563 "source_fragment" : "fabric_metadata.fwd_type = fwd_type"
1564 }
1565 }
1566 ]
1567 },
1568 {
1569 "name" : "forwarding.drop",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001570 "id" : 19,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001571 "runtime_data" : [],
1572 "primitives" : [
1573 {
1574 "op" : "drop",
1575 "parameters" : [],
1576 "source_info" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001577 "filename" : "include/control/forwarding.p4",
1578 "line" : 36,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001579 "column" : 8,
1580 "source_fragment" : "mark_to_drop()"
1581 }
1582 }
1583 ]
1584 },
1585 {
1586 "name" : "forwarding.set_next_id",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001587 "id" : 20,
1588 "runtime_data" : [
1589 {
1590 "name" : "next_id",
1591 "bitwidth" : 32
1592 }
1593 ],
1594 "primitives" : [
1595 {
1596 "op" : "assign",
1597 "parameters" : [
1598 {
1599 "type" : "field",
1600 "value" : ["scalars", "fabric_metadata_t.next_id"]
1601 },
1602 {
1603 "type" : "runtime_data",
1604 "value" : 0
1605 }
1606 ],
1607 "source_info" : {
1608 "filename" : "include/control/forwarding.p4",
1609 "line" : 40,
1610 "column" : 8,
1611 "source_fragment" : "fabric_metadata.next_id = next_id"
1612 }
1613 }
1614 ]
1615 },
1616 {
1617 "name" : "forwarding.set_next_id",
1618 "id" : 21,
1619 "runtime_data" : [
1620 {
1621 "name" : "next_id",
1622 "bitwidth" : 32
1623 }
1624 ],
1625 "primitives" : [
1626 {
1627 "op" : "assign",
1628 "parameters" : [
1629 {
1630 "type" : "field",
1631 "value" : ["scalars", "fabric_metadata_t.next_id"]
1632 },
1633 {
1634 "type" : "runtime_data",
1635 "value" : 0
1636 }
1637 ],
1638 "source_info" : {
1639 "filename" : "include/control/forwarding.p4",
1640 "line" : 40,
1641 "column" : 8,
1642 "source_fragment" : "fabric_metadata.next_id = next_id"
1643 }
1644 }
1645 ]
1646 },
1647 {
1648 "name" : "forwarding.set_next_id",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001649 "id" : 22,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001650 "runtime_data" : [
1651 {
1652 "name" : "next_id",
1653 "bitwidth" : 32
1654 }
1655 ],
1656 "primitives" : [
1657 {
1658 "op" : "assign",
1659 "parameters" : [
1660 {
1661 "type" : "field",
1662 "value" : ["scalars", "fabric_metadata_t.next_id"]
1663 },
1664 {
1665 "type" : "runtime_data",
1666 "value" : 0
1667 }
1668 ],
1669 "source_info" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001670 "filename" : "include/control/forwarding.p4",
1671 "line" : 40,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001672 "column" : 8,
1673 "source_fragment" : "fabric_metadata.next_id = next_id"
1674 }
1675 }
1676 ]
1677 },
1678 {
1679 "name" : "forwarding.pop_mpls_and_next",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001680 "id" : 23,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001681 "runtime_data" : [
1682 {
1683 "name" : "next_id",
1684 "bitwidth" : 32
1685 }
1686 ],
1687 "primitives" : [
1688 {
1689 "op" : "remove_header",
1690 "parameters" : [
1691 {
1692 "type" : "header",
1693 "value" : "mpls"
1694 }
1695 ],
1696 "source_info" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001697 "filename" : "include/control/forwarding.p4",
1698 "line" : 44,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001699 "column" : 8,
1700 "source_fragment" : "hdr.mpls.setInvalid()"
1701 }
1702 },
1703 {
1704 "op" : "assign",
1705 "parameters" : [
1706 {
1707 "type" : "field",
1708 "value" : ["scalars", "fabric_metadata_t.next_id"]
1709 },
1710 {
1711 "type" : "runtime_data",
1712 "value" : 0
1713 }
1714 ],
1715 "source_info" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001716 "filename" : "include/control/forwarding.p4",
1717 "line" : 45,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001718 "column" : 8,
1719 "source_fragment" : "fabric_metadata.next_id = next_id"
1720 }
1721 }
1722 ]
1723 },
1724 {
1725 "name" : "forwarding.duplicate_to_controller",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001726 "id" : 24,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001727 "runtime_data" : [],
1728 "primitives" : [
1729 {
1730 "op" : "assign",
1731 "parameters" : [
1732 {
1733 "type" : "field",
1734 "value" : ["standard_metadata", "egress_spec"]
1735 },
1736 {
1737 "type" : "hexstr",
1738 "value" : "0x00ff"
1739 }
1740 ],
1741 "source_info" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001742 "filename" : "include/control/forwarding.p4",
1743 "line" : 49,
Carmelo Casconeb531b682018-01-30 17:55:56 -08001744 "column" : 8,
1745 "source_fragment" : "standard_metadata.egress_spec = 255"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001746 }
1747 }
1748 ]
1749 },
1750 {
1751 "name" : "next.output",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001752 "id" : 25,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001753 "runtime_data" : [
1754 {
1755 "name" : "port_num",
1756 "bitwidth" : 9
1757 }
1758 ],
1759 "primitives" : [
1760 {
1761 "op" : "assign",
1762 "parameters" : [
1763 {
1764 "type" : "field",
1765 "value" : ["standard_metadata", "egress_spec"]
1766 },
1767 {
1768 "type" : "runtime_data",
1769 "value" : 0
1770 }
1771 ],
1772 "source_info" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001773 "filename" : "include/control/next.p4",
1774 "line" : 32,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001775 "column" : 8,
1776 "source_fragment" : "standard_metadata.egress_spec = port_num"
1777 }
1778 }
1779 ]
1780 },
1781 {
1782 "name" : "next.set_vlan_output",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001783 "id" : 26,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001784 "runtime_data" : [
1785 {
1786 "name" : "new_vlan_id",
1787 "bitwidth" : 12
1788 },
1789 {
1790 "name" : "port_num",
1791 "bitwidth" : 9
1792 }
1793 ],
1794 "primitives" : [
1795 {
1796 "op" : "assign",
1797 "parameters" : [
1798 {
1799 "type" : "field",
1800 "value" : ["vlan_tag", "vlan_id"]
1801 },
1802 {
1803 "type" : "runtime_data",
1804 "value" : 0
1805 }
1806 ],
1807 "source_info" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001808 "filename" : "include/control/next.p4",
1809 "line" : 36,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001810 "column" : 8,
1811 "source_fragment" : "hdr.vlan_tag.vlan_id = new_vlan_id"
1812 }
1813 },
1814 {
1815 "op" : "assign",
1816 "parameters" : [
1817 {
1818 "type" : "field",
1819 "value" : ["scalars", "fabric_metadata_t.pop_vlan_at_egress"]
1820 },
1821 {
1822 "type" : "expression",
1823 "value" : {
1824 "type" : "expression",
1825 "value" : {
1826 "op" : "b2d",
1827 "left" : null,
1828 "right" : {
1829 "type" : "bool",
1830 "value" : false
1831 }
1832 }
1833 }
1834 }
1835 ],
1836 "source_info" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001837 "filename" : "include/control/next.p4",
1838 "line" : 39,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001839 "column" : 8,
1840 "source_fragment" : "fabric_metadata.pop_vlan_at_egress = false"
1841 }
1842 },
1843 {
1844 "op" : "assign",
1845 "parameters" : [
1846 {
1847 "type" : "field",
1848 "value" : ["standard_metadata", "egress_spec"]
1849 },
1850 {
1851 "type" : "runtime_data",
1852 "value" : 1
1853 }
1854 ],
1855 "source_info" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001856 "filename" : "include/control/next.p4",
1857 "line" : 32,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001858 "column" : 8,
1859 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
1860 }
1861 }
1862 ]
1863 },
1864 {
1865 "name" : "next.l3_routing",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001866 "id" : 27,
1867 "runtime_data" : [
1868 {
1869 "name" : "port_num",
1870 "bitwidth" : 9
1871 },
1872 {
1873 "name" : "smac",
1874 "bitwidth" : 48
1875 },
1876 {
1877 "name" : "dmac",
1878 "bitwidth" : 48
1879 }
1880 ],
1881 "primitives" : [
1882 {
1883 "op" : "assign",
1884 "parameters" : [
1885 {
1886 "type" : "field",
1887 "value" : ["ethernet", "src_addr"]
1888 },
1889 {
1890 "type" : "runtime_data",
1891 "value" : 1
1892 }
1893 ],
1894 "source_info" : {
1895 "filename" : "include/control/next.p4",
1896 "line" : 44,
1897 "column" : 8,
1898 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
1899 }
1900 },
1901 {
1902 "op" : "assign",
1903 "parameters" : [
1904 {
1905 "type" : "field",
1906 "value" : ["ethernet", "dst_addr"]
1907 },
1908 {
1909 "type" : "runtime_data",
1910 "value" : 2
1911 }
1912 ],
1913 "source_info" : {
1914 "filename" : "include/control/next.p4",
1915 "line" : 48,
1916 "column" : 8,
1917 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
1918 }
1919 },
1920 {
1921 "op" : "assign",
1922 "parameters" : [
1923 {
1924 "type" : "field",
1925 "value" : ["standard_metadata", "egress_spec"]
1926 },
1927 {
1928 "type" : "runtime_data",
1929 "value" : 0
1930 }
1931 ],
1932 "source_info" : {
1933 "filename" : "include/control/next.p4",
1934 "line" : 32,
1935 "column" : 8,
1936 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
1937 }
1938 }
1939 ]
1940 },
1941 {
1942 "name" : "next.l3_routing",
1943 "id" : 28,
1944 "runtime_data" : [
1945 {
1946 "name" : "port_num",
1947 "bitwidth" : 9
1948 },
1949 {
1950 "name" : "smac",
1951 "bitwidth" : 48
1952 },
1953 {
1954 "name" : "dmac",
1955 "bitwidth" : 48
1956 }
1957 ],
1958 "primitives" : [
1959 {
1960 "op" : "assign",
1961 "parameters" : [
1962 {
1963 "type" : "field",
1964 "value" : ["ethernet", "src_addr"]
1965 },
1966 {
1967 "type" : "runtime_data",
1968 "value" : 1
1969 }
1970 ],
1971 "source_info" : {
1972 "filename" : "include/control/next.p4",
1973 "line" : 44,
1974 "column" : 8,
1975 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
1976 }
1977 },
1978 {
1979 "op" : "assign",
1980 "parameters" : [
1981 {
1982 "type" : "field",
1983 "value" : ["ethernet", "dst_addr"]
1984 },
1985 {
1986 "type" : "runtime_data",
1987 "value" : 2
1988 }
1989 ],
1990 "source_info" : {
1991 "filename" : "include/control/next.p4",
1992 "line" : 48,
1993 "column" : 8,
1994 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
1995 }
1996 },
1997 {
1998 "op" : "assign",
1999 "parameters" : [
2000 {
2001 "type" : "field",
2002 "value" : ["standard_metadata", "egress_spec"]
2003 },
2004 {
2005 "type" : "runtime_data",
2006 "value" : 0
2007 }
2008 ],
2009 "source_info" : {
2010 "filename" : "include/control/next.p4",
2011 "line" : 32,
2012 "column" : 8,
2013 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2014 }
2015 }
2016 ]
2017 },
2018 {
2019 "name" : "next.mpls_routing_v4",
2020 "id" : 29,
2021 "runtime_data" : [
2022 {
2023 "name" : "port_num",
2024 "bitwidth" : 9
2025 },
2026 {
2027 "name" : "smac",
2028 "bitwidth" : 48
2029 },
2030 {
2031 "name" : "dmac",
2032 "bitwidth" : 48
2033 },
2034 {
2035 "name" : "label",
2036 "bitwidth" : 20
2037 }
2038 ],
2039 "primitives" : [
2040 {
2041 "op" : "assign",
2042 "parameters" : [
2043 {
2044 "type" : "field",
2045 "value" : ["ethernet", "src_addr"]
2046 },
2047 {
2048 "type" : "runtime_data",
2049 "value" : 1
2050 }
2051 ],
2052 "source_info" : {
2053 "filename" : "include/control/next.p4",
2054 "line" : 44,
2055 "column" : 8,
2056 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2057 }
2058 },
2059 {
2060 "op" : "assign",
2061 "parameters" : [
2062 {
2063 "type" : "field",
2064 "value" : ["ethernet", "dst_addr"]
2065 },
2066 {
2067 "type" : "runtime_data",
2068 "value" : 2
2069 }
2070 ],
2071 "source_info" : {
2072 "filename" : "include/control/next.p4",
2073 "line" : 48,
2074 "column" : 8,
2075 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2076 }
2077 },
2078 {
2079 "op" : "assign",
2080 "parameters" : [
2081 {
2082 "type" : "field",
2083 "value" : ["standard_metadata", "egress_spec"]
2084 },
2085 {
2086 "type" : "runtime_data",
2087 "value" : 0
2088 }
2089 ],
2090 "source_info" : {
2091 "filename" : "include/control/next.p4",
2092 "line" : 32,
2093 "column" : 8,
2094 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2095 }
2096 },
2097 {
2098 "op" : "add_header",
2099 "parameters" : [
2100 {
2101 "type" : "header",
2102 "value" : "mpls"
2103 }
2104 ],
2105 "source_info" : {
2106 "filename" : "include/control/next.p4",
2107 "line" : 59,
2108 "column" : 8,
2109 "source_fragment" : "hdr.mpls.setValid()"
2110 }
2111 },
2112 {
2113 "op" : "assign",
2114 "parameters" : [
2115 {
2116 "type" : "field",
2117 "value" : ["vlan_tag", "ether_type"]
2118 },
2119 {
2120 "type" : "hexstr",
2121 "value" : "0x8847"
2122 }
2123 ],
2124 "source_info" : {
2125 "filename" : "include/control/../define.p4",
2126 "line" : 33,
2127 "column" : 31,
2128 "source_fragment" : "0x8847; ..."
2129 }
2130 },
2131 {
2132 "op" : "assign",
2133 "parameters" : [
2134 {
2135 "type" : "field",
2136 "value" : ["mpls", "label"]
2137 },
2138 {
2139 "type" : "runtime_data",
2140 "value" : 3
2141 }
2142 ],
2143 "source_info" : {
2144 "filename" : "include/control/next.p4",
2145 "line" : 61,
2146 "column" : 8,
2147 "source_fragment" : "hdr.mpls.label = label; ..."
2148 }
2149 },
2150 {
2151 "op" : "assign",
2152 "parameters" : [
2153 {
2154 "type" : "field",
2155 "value" : ["mpls", "tc"]
2156 },
2157 {
2158 "type" : "hexstr",
2159 "value" : "0x00"
2160 }
2161 ],
2162 "source_info" : {
2163 "filename" : "include/control/next.p4",
2164 "line" : 62,
2165 "column" : 8,
2166 "source_fragment" : "hdr.mpls.tc = tc; ..."
2167 }
2168 },
2169 {
2170 "op" : "assign",
2171 "parameters" : [
2172 {
2173 "type" : "field",
2174 "value" : ["mpls", "bos"]
2175 },
2176 {
2177 "type" : "hexstr",
2178 "value" : "0x01"
2179 }
2180 ],
2181 "source_info" : {
2182 "filename" : "include/control/next.p4",
2183 "line" : 63,
2184 "column" : 8,
2185 "source_fragment" : "hdr.mpls.bos = 1w1"
2186 }
2187 },
2188 {
2189 "op" : "assign",
2190 "parameters" : [
2191 {
2192 "type" : "field",
2193 "value" : ["mpls", "ttl"]
2194 },
2195 {
2196 "type" : "hexstr",
2197 "value" : "0x40"
2198 }
2199 ],
2200 "source_info" : {
2201 "filename" : "include/control/../define.p4",
2202 "line" : 67,
2203 "column" : 32,
2204 "source_fragment" : "64; ..."
2205 }
2206 }
2207 ]
2208 },
2209 {
2210 "name" : "next.mpls_routing_v4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08002211 "id" : 30,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002212 "runtime_data" : [
2213 {
2214 "name" : "port_num",
2215 "bitwidth" : 9
2216 },
2217 {
2218 "name" : "smac",
2219 "bitwidth" : 48
2220 },
2221 {
2222 "name" : "dmac",
2223 "bitwidth" : 48
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002224 },
2225 {
2226 "name" : "label",
2227 "bitwidth" : 20
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002228 }
2229 ],
2230 "primitives" : [
2231 {
2232 "op" : "assign",
2233 "parameters" : [
2234 {
2235 "type" : "field",
2236 "value" : ["ethernet", "src_addr"]
2237 },
2238 {
2239 "type" : "runtime_data",
2240 "value" : 1
2241 }
2242 ],
2243 "source_info" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002244 "filename" : "include/control/next.p4",
2245 "line" : 44,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002246 "column" : 8,
2247 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2248 }
2249 },
2250 {
2251 "op" : "assign",
2252 "parameters" : [
2253 {
2254 "type" : "field",
2255 "value" : ["ethernet", "dst_addr"]
2256 },
2257 {
2258 "type" : "runtime_data",
2259 "value" : 2
2260 }
2261 ],
2262 "source_info" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002263 "filename" : "include/control/next.p4",
2264 "line" : 48,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002265 "column" : 8,
2266 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2267 }
2268 },
2269 {
2270 "op" : "assign",
2271 "parameters" : [
2272 {
2273 "type" : "field",
2274 "value" : ["standard_metadata", "egress_spec"]
2275 },
2276 {
2277 "type" : "runtime_data",
2278 "value" : 0
2279 }
2280 ],
2281 "source_info" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002282 "filename" : "include/control/next.p4",
2283 "line" : 32,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002284 "column" : 8,
2285 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2286 }
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002287 },
2288 {
2289 "op" : "add_header",
2290 "parameters" : [
2291 {
2292 "type" : "header",
2293 "value" : "mpls"
2294 }
2295 ],
2296 "source_info" : {
2297 "filename" : "include/control/next.p4",
2298 "line" : 59,
2299 "column" : 8,
2300 "source_fragment" : "hdr.mpls.setValid()"
2301 }
2302 },
2303 {
2304 "op" : "assign",
2305 "parameters" : [
2306 {
2307 "type" : "field",
2308 "value" : ["vlan_tag", "ether_type"]
2309 },
2310 {
2311 "type" : "hexstr",
2312 "value" : "0x8847"
2313 }
2314 ],
2315 "source_info" : {
2316 "filename" : "include/control/../define.p4",
2317 "line" : 33,
2318 "column" : 31,
2319 "source_fragment" : "0x8847; ..."
2320 }
2321 },
2322 {
2323 "op" : "assign",
2324 "parameters" : [
2325 {
2326 "type" : "field",
2327 "value" : ["mpls", "label"]
2328 },
2329 {
2330 "type" : "runtime_data",
2331 "value" : 3
2332 }
2333 ],
2334 "source_info" : {
2335 "filename" : "include/control/next.p4",
2336 "line" : 61,
2337 "column" : 8,
2338 "source_fragment" : "hdr.mpls.label = label; ..."
2339 }
2340 },
2341 {
2342 "op" : "assign",
2343 "parameters" : [
2344 {
2345 "type" : "field",
2346 "value" : ["mpls", "tc"]
2347 },
2348 {
2349 "type" : "hexstr",
2350 "value" : "0x00"
2351 }
2352 ],
2353 "source_info" : {
2354 "filename" : "include/control/next.p4",
2355 "line" : 62,
2356 "column" : 8,
2357 "source_fragment" : "hdr.mpls.tc = tc; ..."
2358 }
2359 },
2360 {
2361 "op" : "assign",
2362 "parameters" : [
2363 {
2364 "type" : "field",
2365 "value" : ["mpls", "bos"]
2366 },
2367 {
2368 "type" : "hexstr",
2369 "value" : "0x01"
2370 }
2371 ],
2372 "source_info" : {
2373 "filename" : "include/control/next.p4",
2374 "line" : 63,
2375 "column" : 8,
2376 "source_fragment" : "hdr.mpls.bos = 1w1"
2377 }
2378 },
2379 {
2380 "op" : "assign",
2381 "parameters" : [
2382 {
2383 "type" : "field",
2384 "value" : ["mpls", "ttl"]
2385 },
2386 {
2387 "type" : "hexstr",
2388 "value" : "0x40"
2389 }
2390 ],
2391 "source_info" : {
2392 "filename" : "include/control/../define.p4",
2393 "line" : 67,
2394 "column" : 32,
2395 "source_fragment" : "64; ..."
2396 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002397 }
2398 ]
2399 },
2400 {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002401 "name" : "next.mpls_routing_v6",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08002402 "id" : 31,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002403 "runtime_data" : [
2404 {
2405 "name" : "port_num",
2406 "bitwidth" : 9
2407 },
2408 {
2409 "name" : "smac",
2410 "bitwidth" : 48
2411 },
2412 {
2413 "name" : "dmac",
2414 "bitwidth" : 48
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002415 },
2416 {
2417 "name" : "label",
2418 "bitwidth" : 20
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002419 }
2420 ],
2421 "primitives" : [
2422 {
2423 "op" : "assign",
2424 "parameters" : [
2425 {
2426 "type" : "field",
2427 "value" : ["ethernet", "src_addr"]
2428 },
2429 {
2430 "type" : "runtime_data",
2431 "value" : 1
2432 }
2433 ],
2434 "source_info" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002435 "filename" : "include/control/next.p4",
2436 "line" : 44,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002437 "column" : 8,
2438 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2439 }
2440 },
2441 {
2442 "op" : "assign",
2443 "parameters" : [
2444 {
2445 "type" : "field",
2446 "value" : ["ethernet", "dst_addr"]
2447 },
2448 {
2449 "type" : "runtime_data",
2450 "value" : 2
2451 }
2452 ],
2453 "source_info" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002454 "filename" : "include/control/next.p4",
2455 "line" : 48,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002456 "column" : 8,
2457 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2458 }
2459 },
2460 {
2461 "op" : "assign",
2462 "parameters" : [
2463 {
2464 "type" : "field",
2465 "value" : ["standard_metadata", "egress_spec"]
2466 },
2467 {
2468 "type" : "runtime_data",
2469 "value" : 0
2470 }
2471 ],
2472 "source_info" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002473 "filename" : "include/control/next.p4",
2474 "line" : 32,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002475 "column" : 8,
2476 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2477 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002478 },
2479 {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002480 "op" : "add_header",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002481 "parameters" : [
2482 {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002483 "type" : "header",
2484 "value" : "mpls"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002485 }
2486 ],
2487 "source_info" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002488 "filename" : "include/control/next.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002489 "line" : 59,
2490 "column" : 8,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002491 "source_fragment" : "hdr.mpls.setValid()"
2492 }
2493 },
2494 {
2495 "op" : "assign",
2496 "parameters" : [
2497 {
2498 "type" : "field",
2499 "value" : ["vlan_tag", "ether_type"]
2500 },
2501 {
2502 "type" : "hexstr",
2503 "value" : "0x8847"
2504 }
2505 ],
2506 "source_info" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002507 "filename" : "include/control/../define.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002508 "line" : 33,
2509 "column" : 31,
2510 "source_fragment" : "0x8847; ..."
2511 }
2512 },
2513 {
2514 "op" : "assign",
2515 "parameters" : [
2516 {
2517 "type" : "field",
2518 "value" : ["mpls", "label"]
2519 },
2520 {
2521 "type" : "runtime_data",
2522 "value" : 3
2523 }
2524 ],
2525 "source_info" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002526 "filename" : "include/control/next.p4",
2527 "line" : 61,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002528 "column" : 8,
2529 "source_fragment" : "hdr.mpls.label = label; ..."
2530 }
2531 },
2532 {
2533 "op" : "assign",
2534 "parameters" : [
2535 {
2536 "type" : "field",
2537 "value" : ["mpls", "tc"]
2538 },
2539 {
2540 "type" : "hexstr",
2541 "value" : "0x00"
2542 }
2543 ],
2544 "source_info" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002545 "filename" : "include/control/next.p4",
2546 "line" : 62,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002547 "column" : 8,
2548 "source_fragment" : "hdr.mpls.tc = tc; ..."
2549 }
2550 },
2551 {
2552 "op" : "assign",
2553 "parameters" : [
2554 {
2555 "type" : "field",
2556 "value" : ["mpls", "bos"]
2557 },
2558 {
2559 "type" : "hexstr",
2560 "value" : "0x01"
2561 }
2562 ],
2563 "source_info" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002564 "filename" : "include/control/next.p4",
2565 "line" : 63,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002566 "column" : 8,
2567 "source_fragment" : "hdr.mpls.bos = 1w1"
2568 }
2569 },
2570 {
2571 "op" : "assign",
2572 "parameters" : [
2573 {
2574 "type" : "field",
2575 "value" : ["mpls", "ttl"]
2576 },
2577 {
2578 "type" : "hexstr",
2579 "value" : "0x40"
2580 }
2581 ],
2582 "source_info" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002583 "filename" : "include/control/../define.p4",
Yi Tseng3d3956d2018-01-31 17:28:05 -08002584 "line" : 67,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002585 "column" : 32,
2586 "source_fragment" : "64; ..."
2587 }
2588 }
2589 ]
2590 },
2591 {
2592 "name" : "act",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002593 "id" : 32,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002594 "runtime_data" : [],
2595 "primitives" : [
2596 {
2597 "op" : "assign",
2598 "parameters" : [
2599 {
2600 "type" : "field",
2601 "value" : ["standard_metadata", "egress_spec"]
2602 },
2603 {
2604 "type" : "field",
2605 "value" : ["packet_out", "egress_port"]
2606 }
2607 ],
2608 "source_info" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002609 "filename" : "include/control/packetio.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002610 "line" : 26,
2611 "column" : 12,
2612 "source_fragment" : "standard_metadata.egress_spec = hdr.packet_out.egress_port"
2613 }
2614 },
2615 {
2616 "op" : "remove_header",
2617 "parameters" : [
2618 {
2619 "type" : "header",
2620 "value" : "packet_out"
2621 }
2622 ],
2623 "source_info" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002624 "filename" : "include/control/packetio.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002625 "line" : 27,
2626 "column" : 12,
2627 "source_fragment" : "hdr.packet_out.setInvalid()"
2628 }
2629 }
2630 ]
2631 },
2632 {
2633 "name" : "act_0",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002634 "id" : 33,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002635 "runtime_data" : [],
2636 "primitives" : [
2637 {
2638 "op" : "assign",
2639 "parameters" : [
2640 {
2641 "type" : "field",
2642 "value" : ["scalars", "spgw_ingress_tmp_2"]
2643 },
2644 {
2645 "type" : "expression",
2646 "value" : {
2647 "type" : "expression",
2648 "value" : {
2649 "op" : "b2d",
2650 "left" : null,
2651 "right" : {
2652 "type" : "bool",
2653 "value" : true
2654 }
2655 }
2656 }
2657 }
2658 ]
2659 }
2660 ]
2661 },
2662 {
2663 "name" : "act_1",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002664 "id" : 34,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002665 "runtime_data" : [],
2666 "primitives" : [
2667 {
2668 "op" : "assign",
2669 "parameters" : [
2670 {
2671 "type" : "field",
2672 "value" : ["scalars", "spgw_ingress_tmp_2"]
2673 },
2674 {
2675 "type" : "expression",
2676 "value" : {
2677 "type" : "expression",
2678 "value" : {
2679 "op" : "b2d",
2680 "left" : null,
2681 "right" : {
2682 "type" : "bool",
2683 "value" : false
2684 }
2685 }
2686 }
2687 }
2688 ]
2689 }
2690 ]
2691 },
2692 {
2693 "name" : "act_2",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002694 "id" : 35,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002695 "runtime_data" : [],
2696 "primitives" : [
2697 {
2698 "op" : "assign",
2699 "parameters" : [
2700 {
2701 "type" : "field",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08002702 "value" : ["spgw", "s1u_enb_addr"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002703 },
2704 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08002705 "type" : "field",
2706 "value" : ["ipv4", "src_addr"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002707 }
2708 ],
2709 "source_info" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002710 "filename" : "include/spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08002711 "line" : 152,
2712 "column" : 12,
2713 "source_fragment" : "spgw_meta.s1u_enb_addr = ipv4.src_addr"
2714 }
2715 },
2716 {
2717 "op" : "assign",
2718 "parameters" : [
2719 {
2720 "type" : "field",
2721 "value" : ["spgw", "s1u_sgw_addr"]
2722 },
2723 {
2724 "type" : "field",
2725 "value" : ["ipv4", "dst_addr"]
2726 }
2727 ],
2728 "source_info" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002729 "filename" : "include/spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08002730 "line" : 153,
2731 "column" : 12,
2732 "source_fragment" : "spgw_meta.s1u_sgw_addr = ipv4.dst_addr"
2733 }
2734 },
2735 {
2736 "op" : "assign_header",
2737 "parameters" : [
2738 {
2739 "type" : "header",
2740 "value" : "ipv4"
2741 },
2742 {
2743 "type" : "header",
2744 "value" : "gtpu_ipv4"
2745 }
2746 ],
2747 "source_info" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002748 "filename" : "include/spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08002749 "line" : 154,
2750 "column" : 17,
2751 "source_fragment" : "= gtpu_ipv4; ..."
2752 }
2753 },
2754 {
2755 "op" : "assign_header",
2756 "parameters" : [
2757 {
2758 "type" : "header",
2759 "value" : "udp"
2760 },
2761 {
2762 "type" : "header",
2763 "value" : "gtpu_udp"
2764 }
2765 ],
2766 "source_info" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002767 "filename" : "include/spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08002768 "line" : 155,
2769 "column" : 16,
2770 "source_fragment" : "= gtpu_udp; ..."
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002771 }
2772 }
2773 ]
2774 },
2775 {
2776 "name" : "act_3",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002777 "id" : 36,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002778 "runtime_data" : [],
2779 "primitives" : [
2780 {
2781 "op" : "assign",
2782 "parameters" : [
2783 {
2784 "type" : "field",
2785 "value" : ["spgw", "do_spgw"]
2786 },
2787 {
2788 "type" : "expression",
2789 "value" : {
2790 "type" : "expression",
2791 "value" : {
2792 "op" : "b2d",
2793 "left" : null,
2794 "right" : {
2795 "type" : "bool",
2796 "value" : true
2797 }
2798 }
2799 }
2800 }
2801 ],
2802 "source_info" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002803 "filename" : "include/spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08002804 "line" : 159,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002805 "column" : 16,
2806 "source_fragment" : "spgw_meta.do_spgw = true"
2807 }
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08002808 },
2809 {
2810 "op" : "assign",
2811 "parameters" : [
2812 {
2813 "type" : "field",
2814 "value" : ["spgw", "direction"]
2815 },
2816 {
2817 "type" : "hexstr",
2818 "value" : "0x00"
2819 }
2820 ],
2821 "source_info" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002822 "filename" : "include/control/../define.p4",
Yi Tseng3d3956d2018-01-31 17:28:05 -08002823 "line" : 88,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08002824 "column" : 31,
2825 "source_fragment" : "1w0; ..."
2826 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002827 }
2828 ]
2829 },
2830 {
2831 "name" : "act_4",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002832 "id" : 37,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002833 "runtime_data" : [],
2834 "primitives" : [
2835 {
2836 "op" : "assign",
2837 "parameters" : [
2838 {
2839 "type" : "field",
2840 "value" : ["scalars", "spgw_ingress_tmp_3"]
2841 },
2842 {
2843 "type" : "expression",
2844 "value" : {
2845 "type" : "expression",
2846 "value" : {
2847 "op" : "b2d",
2848 "left" : null,
2849 "right" : {
2850 "type" : "bool",
2851 "value" : true
2852 }
2853 }
2854 }
2855 }
2856 ]
2857 }
2858 ]
2859 },
2860 {
2861 "name" : "act_5",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002862 "id" : 38,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002863 "runtime_data" : [],
2864 "primitives" : [
2865 {
2866 "op" : "assign",
2867 "parameters" : [
2868 {
2869 "type" : "field",
2870 "value" : ["scalars", "spgw_ingress_tmp_3"]
2871 },
2872 {
2873 "type" : "expression",
2874 "value" : {
2875 "type" : "expression",
2876 "value" : {
2877 "op" : "b2d",
2878 "left" : null,
2879 "right" : {
2880 "type" : "bool",
2881 "value" : false
2882 }
2883 }
2884 }
2885 }
2886 ]
2887 }
2888 ]
2889 },
2890 {
2891 "name" : "act_6",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002892 "id" : 39,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002893 "runtime_data" : [],
2894 "primitives" : [
2895 {
2896 "op" : "assign",
2897 "parameters" : [
2898 {
2899 "type" : "field",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08002900 "value" : ["spgw", "do_spgw"]
2901 },
2902 {
2903 "type" : "expression",
2904 "value" : {
2905 "type" : "expression",
2906 "value" : {
2907 "op" : "b2d",
2908 "left" : null,
2909 "right" : {
2910 "type" : "bool",
2911 "value" : true
2912 }
2913 }
2914 }
2915 }
2916 ],
2917 "source_info" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002918 "filename" : "include/spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08002919 "line" : 163,
2920 "column" : 12,
2921 "source_fragment" : "spgw_meta.do_spgw = true"
2922 }
2923 },
2924 {
2925 "op" : "assign",
2926 "parameters" : [
2927 {
2928 "type" : "field",
Carmelo Cascone14cde402018-01-25 01:57:18 -08002929 "value" : ["spgw", "direction"]
2930 },
2931 {
2932 "type" : "hexstr",
2933 "value" : "0x01"
2934 }
2935 ],
2936 "source_info" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002937 "filename" : "include/control/../define.p4",
Yi Tseng3d3956d2018-01-31 17:28:05 -08002938 "line" : 89,
Carmelo Cascone14cde402018-01-25 01:57:18 -08002939 "column" : 33,
2940 "source_fragment" : "1w1; ..."
2941 }
2942 }
2943 ]
2944 },
2945 {
2946 "name" : "act_7",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002947 "id" : 40,
Carmelo Cascone14cde402018-01-25 01:57:18 -08002948 "runtime_data" : [],
2949 "primitives" : [
2950 {
2951 "op" : "assign",
2952 "parameters" : [
2953 {
2954 "type" : "field",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002955 "value" : ["scalars", "spgw_ingress_hasReturned_0"]
2956 },
2957 {
2958 "type" : "expression",
2959 "value" : {
2960 "type" : "expression",
2961 "value" : {
2962 "op" : "b2d",
2963 "left" : null,
2964 "right" : {
2965 "type" : "bool",
2966 "value" : false
2967 }
2968 }
2969 }
2970 }
2971 ]
2972 },
2973 {
2974 "op" : "assign",
2975 "parameters" : [
2976 {
2977 "type" : "field",
2978 "value" : ["spgw", "do_spgw"]
2979 },
2980 {
2981 "type" : "expression",
2982 "value" : {
2983 "type" : "expression",
2984 "value" : {
2985 "op" : "b2d",
2986 "left" : null,
2987 "right" : {
2988 "type" : "bool",
2989 "value" : false
2990 }
2991 }
2992 }
2993 }
2994 ],
2995 "source_info" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002996 "filename" : "include/spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08002997 "line" : 146,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002998 "column" : 8,
2999 "source_fragment" : "spgw_meta.do_spgw = false"
3000 }
3001 }
3002 ]
3003 },
3004 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003005 "name" : "act_8",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08003006 "id" : 41,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003007 "runtime_data" : [],
3008 "primitives" : [
3009 {
3010 "op" : "assign",
3011 "parameters" : [
3012 {
3013 "type" : "field",
3014 "value" : ["scalars", "spgw_ingress_hasReturned_0"]
3015 },
3016 {
3017 "type" : "expression",
3018 "value" : {
3019 "type" : "expression",
3020 "value" : {
3021 "op" : "b2d",
3022 "left" : null,
3023 "right" : {
3024 "type" : "bool",
3025 "value" : true
3026 }
3027 }
3028 }
3029 }
3030 ],
3031 "source_info" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08003032 "filename" : "include/spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003033 "line" : 169,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003034 "column" : 12,
3035 "source_fragment" : "return"
3036 }
3037 }
3038 ]
3039 },
3040 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003041 "name" : "act_9",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08003042 "id" : 42,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003043 "runtime_data" : [],
3044 "primitives" : [
3045 {
3046 "op" : "assign",
3047 "parameters" : [
3048 {
3049 "type" : "field",
3050 "value" : ["scalars", "spgw_ingress_tmp_4"]
3051 },
3052 {
3053 "type" : "expression",
3054 "value" : {
3055 "type" : "expression",
3056 "value" : {
3057 "op" : "b2d",
3058 "left" : null,
3059 "right" : {
3060 "type" : "bool",
3061 "value" : true
3062 }
3063 }
3064 }
3065 }
3066 ]
3067 }
3068 ]
3069 },
3070 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003071 "name" : "act_10",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08003072 "id" : 43,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003073 "runtime_data" : [],
3074 "primitives" : [
3075 {
3076 "op" : "assign",
3077 "parameters" : [
3078 {
3079 "type" : "field",
3080 "value" : ["scalars", "spgw_ingress_tmp_4"]
3081 },
3082 {
3083 "type" : "expression",
3084 "value" : {
3085 "type" : "expression",
3086 "value" : {
3087 "op" : "b2d",
3088 "left" : null,
3089 "right" : {
3090 "type" : "bool",
3091 "value" : false
3092 }
3093 }
3094 }
3095 }
3096 ]
3097 }
3098 ]
3099 },
3100 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003101 "name" : "act_11",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08003102 "id" : 44,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003103 "runtime_data" : [],
3104 "primitives" : [
3105 {
3106 "op" : "assign",
3107 "parameters" : [
3108 {
3109 "type" : "field",
3110 "value" : ["vlan_tag", "ether_type"]
3111 },
3112 {
3113 "type" : "hexstr",
3114 "value" : "0x0800"
3115 }
3116 ],
3117 "source_info" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08003118 "filename" : "include/control/../define.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003119 "line" : 35,
3120 "column" : 31,
3121 "source_fragment" : "0x0800; ..."
3122 }
3123 },
3124 {
3125 "op" : "assign",
3126 "parameters" : [
3127 {
3128 "type" : "field",
3129 "value" : ["scalars", "fabric_metadata_t.original_ether_type"]
3130 },
3131 {
3132 "type" : "hexstr",
3133 "value" : "0x0800"
3134 }
3135 ],
3136 "source_info" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08003137 "filename" : "include/control/../define.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003138 "line" : 35,
3139 "column" : 31,
3140 "source_fragment" : "0x0800; ..."
3141 }
3142 }
3143 ]
3144 },
3145 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003146 "name" : "act_12",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08003147 "id" : 45,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003148 "runtime_data" : [],
3149 "primitives" : [
3150 {
3151 "op" : "assign",
3152 "parameters" : [
3153 {
3154 "type" : "field",
3155 "value" : ["scalars", "next_tmp_0"]
3156 },
3157 {
3158 "type" : "expression",
3159 "value" : {
3160 "type" : "expression",
3161 "value" : {
3162 "op" : "b2d",
3163 "left" : null,
3164 "right" : {
3165 "type" : "bool",
3166 "value" : true
3167 }
3168 }
3169 }
3170 }
3171 ]
3172 }
3173 ]
3174 },
3175 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003176 "name" : "act_13",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08003177 "id" : 46,
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", "next_tmp_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" : false
3197 }
3198 }
3199 }
3200 }
3201 ]
3202 }
3203 ]
3204 },
3205 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003206 "name" : "act_14",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08003207 "id" : 47,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003208 "runtime_data" : [],
3209 "primitives" : [
3210 {
3211 "op" : "assign",
3212 "parameters" : [
3213 {
3214 "type" : "field",
3215 "value" : ["ipv4", "ttl"]
3216 },
3217 {
3218 "type" : "expression",
3219 "value" : {
3220 "type" : "expression",
3221 "value" : {
3222 "op" : "&",
3223 "left" : {
3224 "type" : "expression",
3225 "value" : {
3226 "op" : "+",
3227 "left" : {
3228 "type" : "field",
3229 "value" : ["ipv4", "ttl"]
3230 },
3231 "right" : {
3232 "type" : "hexstr",
3233 "value" : "0xff"
3234 }
3235 }
3236 },
3237 "right" : {
3238 "type" : "hexstr",
3239 "value" : "0xff"
3240 }
3241 }
3242 }
3243 }
3244 ],
3245 "source_info" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08003246 "filename" : "include/control/next.p4",
3247 "line" : 143,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003248 "column" : 20,
3249 "source_fragment" : "hdr.ipv4.ttl = hdr.ipv4.ttl - 1"
3250 }
3251 }
3252 ]
3253 },
3254 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003255 "name" : "act_15",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08003256 "id" : 48,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003257 "runtime_data" : [],
3258 "primitives" : [
3259 {
3260 "op" : "assign",
3261 "parameters" : [
3262 {
3263 "type" : "field",
3264 "value" : ["scalars", "tmp_0"]
3265 },
3266 {
3267 "type" : "expression",
3268 "value" : {
3269 "type" : "expression",
3270 "value" : {
3271 "op" : "&",
3272 "left" : {
3273 "type" : "field",
3274 "value" : ["standard_metadata", "egress_spec"]
3275 },
3276 "right" : {
3277 "type" : "hexstr",
3278 "value" : "0xffffffff"
3279 }
3280 }
3281 }
3282 }
3283 ]
3284 },
3285 {
3286 "op" : "count",
3287 "parameters" : [
3288 {
3289 "type" : "counter_array",
3290 "value" : "port_counters_control.egress_port_counter"
3291 },
3292 {
3293 "type" : "field",
3294 "value" : ["scalars", "tmp_0"]
3295 }
3296 ],
3297 "source_info" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08003298 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003299 "line" : 28,
3300 "column" : 12,
3301 "source_fragment" : "egress_port_counter.count((bit<32>)standard_metadata.egress_spec)"
3302 }
3303 }
3304 ]
3305 },
3306 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003307 "name" : "act_16",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08003308 "id" : 49,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003309 "runtime_data" : [],
3310 "primitives" : [
3311 {
3312 "op" : "assign",
3313 "parameters" : [
3314 {
3315 "type" : "field",
3316 "value" : ["scalars", "tmp_1"]
3317 },
3318 {
3319 "type" : "expression",
3320 "value" : {
3321 "type" : "expression",
3322 "value" : {
3323 "op" : "&",
3324 "left" : {
3325 "type" : "field",
3326 "value" : ["standard_metadata", "ingress_port"]
3327 },
3328 "right" : {
3329 "type" : "hexstr",
3330 "value" : "0xffffffff"
3331 }
3332 }
3333 }
3334 }
3335 ]
3336 },
3337 {
3338 "op" : "count",
3339 "parameters" : [
3340 {
3341 "type" : "counter_array",
3342 "value" : "port_counters_control.ingress_port_counter"
3343 },
3344 {
3345 "type" : "field",
3346 "value" : ["scalars", "tmp_1"]
3347 }
3348 ],
3349 "source_info" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08003350 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003351 "line" : 31,
3352 "column" : 12,
3353 "source_fragment" : "ingress_port_counter.count((bit<32>)standard_metadata.ingress_port)"
3354 }
3355 }
3356 ]
3357 },
3358 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003359 "name" : "act_17",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08003360 "id" : 50,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003361 "runtime_data" : [],
3362 "primitives" : [
3363 {
3364 "op" : "assign",
3365 "parameters" : [
3366 {
3367 "type" : "field",
3368 "value" : ["ethernet", "ether_type"]
3369 },
3370 {
3371 "type" : "field",
3372 "value" : ["vlan_tag", "ether_type"]
3373 }
3374 ],
3375 "source_info" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08003376 "filename" : "include/control/next.p4",
3377 "line" : 167,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003378 "column" : 12,
3379 "source_fragment" : "hdr.ethernet.ether_type = hdr.vlan_tag.ether_type"
3380 }
3381 },
3382 {
3383 "op" : "remove_header",
3384 "parameters" : [
3385 {
3386 "type" : "header",
3387 "value" : "vlan_tag"
3388 }
3389 ],
3390 "source_info" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08003391 "filename" : "include/control/next.p4",
3392 "line" : 168,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003393 "column" : 12,
3394 "source_fragment" : "hdr.vlan_tag.setInvalid()"
3395 }
3396 }
3397 ]
3398 },
3399 {
3400 "name" : "spgw_egress.gtpu_encap",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08003401 "id" : 51,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003402 "runtime_data" : [],
3403 "primitives" : [
3404 {
3405 "op" : "add_header",
3406 "parameters" : [
3407 {
3408 "type" : "header",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003409 "value" : "gtpu_ipv4"
3410 }
3411 ],
3412 "source_info" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08003413 "filename" : "include/spgw.p4",
3414 "line" : 211,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003415 "column" : 8,
3416 "source_fragment" : "gtpu_ipv4.setValid()"
3417 }
3418 },
3419 {
3420 "op" : "assign",
3421 "parameters" : [
3422 {
3423 "type" : "field",
3424 "value" : ["gtpu_ipv4", "version"]
3425 },
3426 {
3427 "type" : "hexstr",
3428 "value" : "0x04"
3429 }
3430 ],
3431 "source_info" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08003432 "filename" : "include/spgw.p4",
3433 "line" : 212,
Yi Tseng3d3956d2018-01-31 17:28:05 -08003434 "column" : 8,
3435 "source_fragment" : "gtpu_ipv4.version = 4"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003436 }
3437 },
3438 {
3439 "op" : "assign",
3440 "parameters" : [
3441 {
3442 "type" : "field",
3443 "value" : ["gtpu_ipv4", "ihl"]
3444 },
3445 {
3446 "type" : "hexstr",
3447 "value" : "0x05"
3448 }
3449 ],
3450 "source_info" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08003451 "filename" : "include/control/../define.p4",
Yi Tseng3d3956d2018-01-31 17:28:05 -08003452 "line" : 54,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003453 "column" : 28,
3454 "source_fragment" : "5; ..."
3455 }
3456 },
3457 {
3458 "op" : "assign",
3459 "parameters" : [
3460 {
3461 "type" : "field",
3462 "value" : ["gtpu_ipv4", "diffserv"]
3463 },
3464 {
3465 "type" : "hexstr",
3466 "value" : "0x00"
3467 }
3468 ],
3469 "source_info" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08003470 "filename" : "include/spgw.p4",
3471 "line" : 214,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003472 "column" : 8,
3473 "source_fragment" : "gtpu_ipv4.diffserv = 0"
3474 }
3475 },
3476 {
3477 "op" : "assign",
3478 "parameters" : [
3479 {
3480 "type" : "field",
3481 "value" : ["gtpu_ipv4", "total_len"]
3482 },
3483 {
3484 "type" : "expression",
3485 "value" : {
3486 "type" : "expression",
3487 "value" : {
3488 "op" : "&",
3489 "left" : {
3490 "type" : "expression",
3491 "value" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003492 "op" : "+",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003493 "left" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08003494 "type" : "field",
3495 "value" : ["ipv4", "total_len"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08003496 },
3497 "right" : {
3498 "type" : "hexstr",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08003499 "value" : "0x0024"
Carmelo Cascone14cde402018-01-25 01:57:18 -08003500 }
3501 }
3502 },
3503 "right" : {
3504 "type" : "hexstr",
3505 "value" : "0xffff"
3506 }
3507 }
3508 }
3509 }
3510 ],
3511 "source_info" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08003512 "filename" : "include/spgw.p4",
3513 "line" : 215,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003514 "column" : 8,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08003515 "source_fragment" : "gtpu_ipv4.total_len = ipv4.total_len ..."
Carmelo Cascone14cde402018-01-25 01:57:18 -08003516 }
3517 },
3518 {
3519 "op" : "assign",
3520 "parameters" : [
3521 {
3522 "type" : "field",
3523 "value" : ["gtpu_ipv4", "identification"]
3524 },
3525 {
3526 "type" : "hexstr",
3527 "value" : "0x1513"
3528 }
3529 ],
3530 "source_info" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08003531 "filename" : "include/spgw.p4",
3532 "line" : 217,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003533 "column" : 8,
3534 "source_fragment" : "gtpu_ipv4.identification = 0x1513"
3535 }
3536 },
3537 {
3538 "op" : "assign",
3539 "parameters" : [
3540 {
3541 "type" : "field",
3542 "value" : ["gtpu_ipv4", "flags"]
3543 },
3544 {
3545 "type" : "hexstr",
3546 "value" : "0x00"
3547 }
3548 ],
3549 "source_info" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08003550 "filename" : "include/spgw.p4",
3551 "line" : 218,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003552 "column" : 8,
3553 "source_fragment" : "gtpu_ipv4.flags = 0"
3554 }
3555 },
3556 {
3557 "op" : "assign",
3558 "parameters" : [
3559 {
3560 "type" : "field",
3561 "value" : ["gtpu_ipv4", "frag_offset"]
3562 },
3563 {
3564 "type" : "hexstr",
3565 "value" : "0x0000"
3566 }
3567 ],
3568 "source_info" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08003569 "filename" : "include/spgw.p4",
3570 "line" : 219,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003571 "column" : 8,
3572 "source_fragment" : "gtpu_ipv4.frag_offset = 0"
3573 }
3574 },
3575 {
3576 "op" : "assign",
3577 "parameters" : [
3578 {
3579 "type" : "field",
3580 "value" : ["gtpu_ipv4", "ttl"]
3581 },
3582 {
3583 "type" : "hexstr",
3584 "value" : "0x40"
3585 }
3586 ],
3587 "source_info" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08003588 "filename" : "include/control/../define.p4",
Yi Tseng3d3956d2018-01-31 17:28:05 -08003589 "line" : 78,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003590 "column" : 32,
3591 "source_fragment" : "64; ..."
3592 }
3593 },
3594 {
3595 "op" : "assign",
3596 "parameters" : [
3597 {
3598 "type" : "field",
3599 "value" : ["gtpu_ipv4", "protocol"]
3600 },
3601 {
3602 "type" : "hexstr",
3603 "value" : "0x11"
3604 }
3605 ],
3606 "source_info" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08003607 "filename" : "include/control/../define.p4",
Yi Tseng3d3956d2018-01-31 17:28:05 -08003608 "line" : 51,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003609 "column" : 25,
3610 "source_fragment" : "17; ..."
3611 }
3612 },
3613 {
3614 "op" : "assign",
3615 "parameters" : [
3616 {
3617 "type" : "field",
3618 "value" : ["gtpu_ipv4", "dst_addr"]
3619 },
3620 {
3621 "type" : "field",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003622 "value" : ["spgw", "s1u_enb_addr"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08003623 }
3624 ],
3625 "source_info" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08003626 "filename" : "include/spgw.p4",
3627 "line" : 222,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003628 "column" : 8,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003629 "source_fragment" : "gtpu_ipv4.dst_addr = spgw_meta.s1u_enb_addr"
Carmelo Cascone14cde402018-01-25 01:57:18 -08003630 }
3631 },
3632 {
3633 "op" : "assign",
3634 "parameters" : [
3635 {
3636 "type" : "field",
3637 "value" : ["gtpu_ipv4", "src_addr"]
3638 },
3639 {
3640 "type" : "field",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003641 "value" : ["spgw", "s1u_sgw_addr"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08003642 }
3643 ],
3644 "source_info" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08003645 "filename" : "include/spgw.p4",
3646 "line" : 223,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003647 "column" : 8,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003648 "source_fragment" : "gtpu_ipv4.src_addr = spgw_meta.s1u_sgw_addr"
Carmelo Cascone14cde402018-01-25 01:57:18 -08003649 }
3650 },
3651 {
3652 "op" : "assign",
3653 "parameters" : [
3654 {
3655 "type" : "field",
3656 "value" : ["gtpu_ipv4", "hdr_checksum"]
3657 },
3658 {
3659 "type" : "hexstr",
3660 "value" : "0x0000"
3661 }
3662 ],
3663 "source_info" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08003664 "filename" : "include/spgw.p4",
3665 "line" : 224,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003666 "column" : 8,
3667 "source_fragment" : "gtpu_ipv4.hdr_checksum = 0"
3668 }
3669 },
3670 {
3671 "op" : "add_header",
3672 "parameters" : [
3673 {
3674 "type" : "header",
3675 "value" : "gtpu_udp"
3676 }
3677 ],
3678 "source_info" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08003679 "filename" : "include/spgw.p4",
3680 "line" : 226,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003681 "column" : 8,
3682 "source_fragment" : "gtpu_udp.setValid()"
3683 }
3684 },
3685 {
3686 "op" : "assign",
3687 "parameters" : [
3688 {
3689 "type" : "field",
3690 "value" : ["gtpu_udp", "src_port"]
3691 },
3692 {
3693 "type" : "hexstr",
3694 "value" : "0x0868"
3695 }
3696 ],
3697 "source_info" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08003698 "filename" : "include/spgw.p4",
3699 "line" : 227,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003700 "column" : 8,
3701 "source_fragment" : "gtpu_udp.src_port = 2152"
3702 }
3703 },
3704 {
3705 "op" : "assign",
3706 "parameters" : [
3707 {
3708 "type" : "field",
3709 "value" : ["gtpu_udp", "dst_port"]
3710 },
3711 {
3712 "type" : "hexstr",
3713 "value" : "0x0868"
3714 }
3715 ],
3716 "source_info" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08003717 "filename" : "include/spgw.p4",
3718 "line" : 228,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003719 "column" : 8,
3720 "source_fragment" : "gtpu_udp.dst_port = 2152"
3721 }
3722 },
3723 {
3724 "op" : "assign",
3725 "parameters" : [
3726 {
3727 "type" : "field",
3728 "value" : ["gtpu_udp", "len"]
3729 },
3730 {
3731 "type" : "expression",
3732 "value" : {
3733 "type" : "expression",
3734 "value" : {
3735 "op" : "&",
3736 "left" : {
3737 "type" : "expression",
3738 "value" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003739 "op" : "+",
Carmelo Cascone14cde402018-01-25 01:57:18 -08003740 "left" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08003741 "type" : "field",
3742 "value" : ["ipv4", "total_len"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003743 },
3744 "right" : {
3745 "type" : "hexstr",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08003746 "value" : "0x0010"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003747 }
3748 }
3749 },
3750 "right" : {
3751 "type" : "hexstr",
3752 "value" : "0xffff"
3753 }
3754 }
3755 }
3756 }
3757 ],
3758 "source_info" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08003759 "filename" : "include/spgw.p4",
3760 "line" : 229,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003761 "column" : 8,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08003762 "source_fragment" : "gtpu_udp.len = ipv4.total_len ..."
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003763 }
3764 },
3765 {
3766 "op" : "assign",
3767 "parameters" : [
3768 {
3769 "type" : "field",
3770 "value" : ["gtpu_udp", "checksum"]
3771 },
3772 {
3773 "type" : "hexstr",
3774 "value" : "0x0000"
3775 }
3776 ],
3777 "source_info" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08003778 "filename" : "include/spgw.p4",
3779 "line" : 231,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003780 "column" : 8,
3781 "source_fragment" : "gtpu_udp.checksum = 0"
3782 }
Carmelo Cascone14cde402018-01-25 01:57:18 -08003783 },
3784 {
3785 "op" : "add_header",
3786 "parameters" : [
3787 {
3788 "type" : "header",
3789 "value" : "gtpu"
3790 }
3791 ],
3792 "source_info" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08003793 "filename" : "include/spgw.p4",
3794 "line" : 233,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003795 "column" : 8,
3796 "source_fragment" : "gtpu.setValid()"
3797 }
3798 },
3799 {
3800 "op" : "assign",
3801 "parameters" : [
3802 {
3803 "type" : "field",
3804 "value" : ["gtpu", "version"]
3805 },
3806 {
3807 "type" : "hexstr",
3808 "value" : "0x01"
3809 }
3810 ],
3811 "source_info" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08003812 "filename" : "include/spgw.p4",
3813 "line" : 234,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003814 "column" : 8,
3815 "source_fragment" : "gtpu.version = 0x01"
3816 }
3817 },
3818 {
3819 "op" : "assign",
3820 "parameters" : [
3821 {
3822 "type" : "field",
3823 "value" : ["gtpu", "pt"]
3824 },
3825 {
3826 "type" : "hexstr",
3827 "value" : "0x01"
3828 }
3829 ],
3830 "source_info" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08003831 "filename" : "include/spgw.p4",
3832 "line" : 235,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003833 "column" : 8,
3834 "source_fragment" : "gtpu.pt = 0x01"
3835 }
3836 },
3837 {
3838 "op" : "assign",
3839 "parameters" : [
3840 {
3841 "type" : "field",
3842 "value" : ["gtpu", "spare"]
3843 },
3844 {
3845 "type" : "hexstr",
3846 "value" : "0x00"
3847 }
3848 ],
3849 "source_info" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08003850 "filename" : "include/spgw.p4",
3851 "line" : 236,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003852 "column" : 8,
3853 "source_fragment" : "gtpu.spare = 0"
3854 }
3855 },
3856 {
3857 "op" : "assign",
3858 "parameters" : [
3859 {
3860 "type" : "field",
3861 "value" : ["gtpu", "ex_flag"]
3862 },
3863 {
3864 "type" : "hexstr",
3865 "value" : "0x00"
3866 }
3867 ],
3868 "source_info" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08003869 "filename" : "include/spgw.p4",
3870 "line" : 237,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003871 "column" : 8,
3872 "source_fragment" : "gtpu.ex_flag = 0"
3873 }
3874 },
3875 {
3876 "op" : "assign",
3877 "parameters" : [
3878 {
3879 "type" : "field",
3880 "value" : ["gtpu", "seq_flag"]
3881 },
3882 {
3883 "type" : "hexstr",
3884 "value" : "0x00"
3885 }
3886 ],
3887 "source_info" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08003888 "filename" : "include/spgw.p4",
3889 "line" : 238,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003890 "column" : 8,
3891 "source_fragment" : "gtpu.seq_flag = 0"
3892 }
3893 },
3894 {
3895 "op" : "assign",
3896 "parameters" : [
3897 {
3898 "type" : "field",
3899 "value" : ["gtpu", "npdu_flag"]
3900 },
3901 {
3902 "type" : "hexstr",
3903 "value" : "0x00"
3904 }
3905 ],
3906 "source_info" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08003907 "filename" : "include/spgw.p4",
3908 "line" : 239,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003909 "column" : 8,
3910 "source_fragment" : "gtpu.npdu_flag = 0"
3911 }
3912 },
3913 {
3914 "op" : "assign",
3915 "parameters" : [
3916 {
3917 "type" : "field",
3918 "value" : ["gtpu", "msgtype"]
3919 },
3920 {
3921 "type" : "hexstr",
3922 "value" : "0xff"
3923 }
3924 ],
3925 "source_info" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08003926 "filename" : "include/spgw.p4",
3927 "line" : 240,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003928 "column" : 8,
3929 "source_fragment" : "gtpu.msgtype = 0xff"
3930 }
3931 },
3932 {
3933 "op" : "assign",
3934 "parameters" : [
3935 {
3936 "type" : "field",
3937 "value" : ["gtpu", "msglen"]
3938 },
3939 {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08003940 "type" : "field",
3941 "value" : ["ipv4", "total_len"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08003942 }
3943 ],
3944 "source_info" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08003945 "filename" : "include/spgw.p4",
3946 "line" : 241,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003947 "column" : 8,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08003948 "source_fragment" : "gtpu.msglen = ipv4.total_len"
Carmelo Cascone14cde402018-01-25 01:57:18 -08003949 }
3950 },
3951 {
3952 "op" : "assign",
3953 "parameters" : [
3954 {
3955 "type" : "field",
3956 "value" : ["gtpu", "teid"]
3957 },
3958 {
3959 "type" : "field",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003960 "value" : ["spgw", "teid"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08003961 }
3962 ],
3963 "source_info" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08003964 "filename" : "include/spgw.p4",
3965 "line" : 242,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003966 "column" : 8,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003967 "source_fragment" : "gtpu.teid = spgw_meta.teid"
Carmelo Cascone14cde402018-01-25 01:57:18 -08003968 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003969 }
3970 ]
3971 },
3972 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003973 "name" : "act_18",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08003974 "id" : 52,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003975 "runtime_data" : [],
3976 "primitives" : [
3977 {
3978 "op" : "add_header",
3979 "parameters" : [
3980 {
3981 "type" : "header",
3982 "value" : "packet_in"
3983 }
3984 ],
3985 "source_info" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08003986 "filename" : "include/control/packetio.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003987 "line" : 39,
3988 "column" : 12,
3989 "source_fragment" : "hdr.packet_in.setValid()"
3990 }
3991 },
3992 {
3993 "op" : "assign",
3994 "parameters" : [
3995 {
3996 "type" : "field",
3997 "value" : ["packet_in", "ingress_port"]
3998 },
3999 {
4000 "type" : "field",
4001 "value" : ["standard_metadata", "ingress_port"]
4002 }
4003 ],
4004 "source_info" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004005 "filename" : "include/control/packetio.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004006 "line" : 40,
4007 "column" : 12,
4008 "source_fragment" : "hdr.packet_in.ingress_port = standard_metadata.ingress_port"
4009 }
4010 }
4011 ]
4012 },
4013 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004014 "name" : "act_19",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004015 "id" : 53,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004016 "runtime_data" : [],
4017 "primitives" : [
4018 {
4019 "op" : "remove_header",
4020 "parameters" : [
4021 {
4022 "type" : "header",
4023 "value" : "gtpu_ipv4"
4024 }
4025 ],
4026 "source_info" : {
4027 "filename" : "fabric.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004028 "line" : 69,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004029 "column" : 36,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004030 "source_fragment" : "hdr.gtpu_ipv4"
4031 }
4032 },
4033 {
4034 "op" : "remove_header",
4035 "parameters" : [
4036 {
4037 "type" : "header",
4038 "value" : "gtpu_udp"
4039 }
4040 ],
4041 "source_info" : {
4042 "filename" : "fabric.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004043 "line" : 69,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004044 "column" : 51,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004045 "source_fragment" : "hdr.gtpu_udp"
4046 }
4047 },
4048 {
4049 "op" : "remove_header",
4050 "parameters" : [
4051 {
4052 "type" : "header",
4053 "value" : "gtpu"
4054 }
4055 ],
4056 "source_info" : {
4057 "filename" : "fabric.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004058 "line" : 69,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004059 "column" : 65,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004060 "source_fragment" : "hdr.gtpu"
4061 }
4062 }
4063 ]
4064 }
4065 ],
4066 "pipelines" : [
4067 {
4068 "name" : "ingress",
4069 "id" : 0,
4070 "source_info" : {
4071 "filename" : "fabric.p4",
4072 "line" : 33,
4073 "column" : 8,
4074 "source_fragment" : "FabricIngress"
4075 },
4076 "init_table" : "node_2",
4077 "tables" : [
4078 {
4079 "name" : "tbl_act",
4080 "id" : 0,
4081 "key" : [],
4082 "match_type" : "exact",
4083 "type" : "simple",
4084 "max_size" : 1024,
4085 "with_counters" : false,
4086 "support_timeout" : false,
4087 "direct_meters" : null,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004088 "action_ids" : [32],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004089 "actions" : ["act"],
4090 "base_default_next" : null,
4091 "next_tables" : {
4092 "act" : null
4093 },
4094 "default_entry" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004095 "action_id" : 32,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004096 "action_const" : true,
4097 "action_data" : [],
4098 "action_entry_const" : true
4099 }
4100 },
4101 {
4102 "name" : "tbl_act_0",
4103 "id" : 1,
4104 "key" : [],
4105 "match_type" : "exact",
4106 "type" : "simple",
4107 "max_size" : 1024,
4108 "with_counters" : false,
4109 "support_timeout" : false,
4110 "direct_meters" : null,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004111 "action_ids" : [40],
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004112 "actions" : ["act_7"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004113 "base_default_next" : "node_5",
4114 "next_tables" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004115 "act_7" : "node_5"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004116 },
4117 "default_entry" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004118 "action_id" : 40,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004119 "action_const" : true,
4120 "action_data" : [],
4121 "action_entry_const" : true
4122 }
4123 },
4124 {
4125 "name" : "tbl_act_1",
4126 "id" : 2,
4127 "key" : [],
4128 "match_type" : "exact",
4129 "type" : "simple",
4130 "max_size" : 1024,
4131 "with_counters" : false,
4132 "support_timeout" : false,
4133 "direct_meters" : null,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004134 "action_ids" : [35],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004135 "actions" : ["act_2"],
4136 "base_default_next" : "spgw_ingress.s1u_filter_table",
4137 "next_tables" : {
4138 "act_2" : "spgw_ingress.s1u_filter_table"
4139 },
4140 "default_entry" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004141 "action_id" : 35,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004142 "action_const" : true,
4143 "action_data" : [],
4144 "action_entry_const" : true
4145 }
4146 },
4147 {
4148 "name" : "spgw_ingress.s1u_filter_table",
4149 "id" : 3,
4150 "source_info" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004151 "filename" : "include/spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004152 "line" : 65,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004153 "column" : 10,
4154 "source_fragment" : "s1u_filter_table"
4155 },
4156 "key" : [
4157 {
4158 "match_type" : "exact",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004159 "target" : ["spgw", "s1u_sgw_addr"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004160 "mask" : null
4161 }
4162 ],
4163 "match_type" : "exact",
4164 "type" : "simple",
4165 "max_size" : 1024,
4166 "with_counters" : false,
4167 "support_timeout" : false,
4168 "direct_meters" : null,
4169 "action_ids" : [1],
4170 "actions" : ["NoAction"],
4171 "base_default_next" : null,
4172 "next_tables" : {
4173 "__HIT__" : "tbl_act_2",
4174 "__MISS__" : "tbl_act_3"
4175 },
4176 "default_entry" : {
4177 "action_id" : 1,
4178 "action_const" : false,
4179 "action_data" : [],
4180 "action_entry_const" : false
4181 }
4182 },
4183 {
4184 "name" : "tbl_act_2",
4185 "id" : 4,
4186 "key" : [],
4187 "match_type" : "exact",
4188 "type" : "simple",
4189 "max_size" : 1024,
4190 "with_counters" : false,
4191 "support_timeout" : false,
4192 "direct_meters" : null,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004193 "action_ids" : [33],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004194 "actions" : ["act_0"],
4195 "base_default_next" : "node_10",
4196 "next_tables" : {
4197 "act_0" : "node_10"
4198 },
4199 "default_entry" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004200 "action_id" : 33,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004201 "action_const" : true,
4202 "action_data" : [],
4203 "action_entry_const" : true
4204 }
4205 },
4206 {
4207 "name" : "tbl_act_3",
4208 "id" : 5,
4209 "key" : [],
4210 "match_type" : "exact",
4211 "type" : "simple",
4212 "max_size" : 1024,
4213 "with_counters" : false,
4214 "support_timeout" : false,
4215 "direct_meters" : null,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004216 "action_ids" : [34],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004217 "actions" : ["act_1"],
4218 "base_default_next" : "node_10",
4219 "next_tables" : {
4220 "act_1" : "node_10"
4221 },
4222 "default_entry" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004223 "action_id" : 34,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004224 "action_const" : true,
4225 "action_data" : [],
4226 "action_entry_const" : true
4227 }
4228 },
4229 {
4230 "name" : "tbl_act_4",
4231 "id" : 6,
4232 "key" : [],
4233 "match_type" : "exact",
4234 "type" : "simple",
4235 "max_size" : 1024,
4236 "with_counters" : false,
4237 "support_timeout" : false,
4238 "direct_meters" : null,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004239 "action_ids" : [36],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004240 "actions" : ["act_3"],
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004241 "base_default_next" : "node_17",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004242 "next_tables" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004243 "act_3" : "node_17"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004244 },
4245 "default_entry" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004246 "action_id" : 36,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004247 "action_const" : true,
4248 "action_data" : [],
4249 "action_entry_const" : true
4250 }
4251 },
4252 {
4253 "name" : "spgw_ingress.ue_filter_table",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004254 "id" : 7,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004255 "source_info" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004256 "filename" : "include/spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004257 "line" : 55,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004258 "column" : 10,
4259 "source_fragment" : "ue_filter_table"
4260 },
4261 "key" : [
4262 {
4263 "match_type" : "lpm",
4264 "target" : ["ipv4", "dst_addr"],
4265 "mask" : null
4266 }
4267 ],
4268 "match_type" : "lpm",
4269 "type" : "simple",
4270 "max_size" : 1024,
4271 "with_counters" : false,
4272 "support_timeout" : false,
4273 "direct_meters" : null,
4274 "action_ids" : [0],
4275 "actions" : ["NoAction"],
4276 "base_default_next" : null,
4277 "next_tables" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004278 "__HIT__" : "tbl_act_5",
4279 "__MISS__" : "tbl_act_6"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004280 },
4281 "default_entry" : {
4282 "action_id" : 0,
4283 "action_const" : false,
4284 "action_data" : [],
4285 "action_entry_const" : false
4286 }
4287 },
4288 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004289 "name" : "tbl_act_5",
4290 "id" : 8,
4291 "key" : [],
4292 "match_type" : "exact",
4293 "type" : "simple",
4294 "max_size" : 1024,
4295 "with_counters" : false,
4296 "support_timeout" : false,
4297 "direct_meters" : null,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004298 "action_ids" : [37],
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004299 "actions" : ["act_4"],
4300 "base_default_next" : "node_15",
4301 "next_tables" : {
4302 "act_4" : "node_15"
4303 },
4304 "default_entry" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004305 "action_id" : 37,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004306 "action_const" : true,
4307 "action_data" : [],
4308 "action_entry_const" : true
4309 }
4310 },
4311 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004312 "name" : "tbl_act_6",
4313 "id" : 9,
4314 "key" : [],
4315 "match_type" : "exact",
4316 "type" : "simple",
4317 "max_size" : 1024,
4318 "with_counters" : false,
4319 "support_timeout" : false,
4320 "direct_meters" : null,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004321 "action_ids" : [38],
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004322 "actions" : ["act_5"],
4323 "base_default_next" : "node_15",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004324 "next_tables" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004325 "act_5" : "node_15"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004326 },
4327 "default_entry" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004328 "action_id" : 38,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004329 "action_const" : true,
4330 "action_data" : [],
4331 "action_entry_const" : true
4332 }
4333 },
4334 {
4335 "name" : "tbl_act_7",
4336 "id" : 10,
4337 "key" : [],
4338 "match_type" : "exact",
4339 "type" : "simple",
4340 "max_size" : 1024,
4341 "with_counters" : false,
4342 "support_timeout" : false,
4343 "direct_meters" : null,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004344 "action_ids" : [39],
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004345 "actions" : ["act_6"],
4346 "base_default_next" : "node_17",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004347 "next_tables" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004348 "act_6" : "node_17"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004349 },
4350 "default_entry" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004351 "action_id" : 39,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004352 "action_const" : true,
4353 "action_data" : [],
4354 "action_entry_const" : true
4355 }
4356 },
4357 {
4358 "name" : "tbl_act_8",
4359 "id" : 11,
4360 "key" : [],
4361 "match_type" : "exact",
4362 "type" : "simple",
4363 "max_size" : 1024,
4364 "with_counters" : false,
4365 "support_timeout" : false,
4366 "direct_meters" : null,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004367 "action_ids" : [41],
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004368 "actions" : ["act_8"],
4369 "base_default_next" : "node_19",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004370 "next_tables" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004371 "act_8" : "node_19"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004372 },
4373 "default_entry" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004374 "action_id" : 41,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004375 "action_const" : true,
4376 "action_data" : [],
4377 "action_entry_const" : true
4378 }
4379 },
4380 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004381 "name" : "tbl_spgw_ingress_gtpu_decap",
Carmelo Cascone14cde402018-01-25 01:57:18 -08004382 "id" : 12,
4383 "key" : [],
4384 "match_type" : "exact",
4385 "type" : "simple",
4386 "max_size" : 1024,
4387 "with_counters" : false,
4388 "support_timeout" : false,
4389 "direct_meters" : null,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004390 "action_ids" : [12],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004391 "actions" : ["spgw_ingress.gtpu_decap"],
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004392 "base_default_next" : "node_22",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004393 "next_tables" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004394 "spgw_ingress.gtpu_decap" : "node_22"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004395 },
4396 "default_entry" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004397 "action_id" : 12,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004398 "action_const" : true,
4399 "action_data" : [],
4400 "action_entry_const" : true
4401 }
4402 },
4403 {
4404 "name" : "spgw_ingress.dl_sess_lookup",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004405 "id" : 13,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004406 "source_info" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004407 "filename" : "include/spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004408 "line" : 124,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004409 "column" : 10,
4410 "source_fragment" : "dl_sess_lookup"
4411 },
4412 "key" : [
4413 {
4414 "match_type" : "exact",
4415 "target" : ["ipv4", "dst_addr"],
4416 "mask" : null
4417 }
4418 ],
4419 "match_type" : "exact",
4420 "type" : "simple",
4421 "max_size" : 1024,
4422 "with_counters" : false,
4423 "support_timeout" : false,
4424 "direct_meters" : null,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004425 "action_ids" : [13, 2],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004426 "actions" : ["spgw_ingress.set_dl_sess_info", "NoAction"],
4427 "base_default_next" : null,
4428 "next_tables" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004429 "__HIT__" : "tbl_act_9",
4430 "__MISS__" : "tbl_act_10"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004431 },
4432 "default_entry" : {
4433 "action_id" : 2,
4434 "action_const" : false,
4435 "action_data" : [],
4436 "action_entry_const" : false
4437 }
4438 },
4439 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004440 "name" : "tbl_act_9",
4441 "id" : 14,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004442 "key" : [],
4443 "match_type" : "exact",
4444 "type" : "simple",
4445 "max_size" : 1024,
4446 "with_counters" : false,
4447 "support_timeout" : false,
4448 "direct_meters" : null,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004449 "action_ids" : [42],
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004450 "actions" : ["act_9"],
4451 "base_default_next" : "node_26",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004452 "next_tables" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004453 "act_9" : "node_26"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004454 },
4455 "default_entry" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004456 "action_id" : 42,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004457 "action_const" : true,
4458 "action_data" : [],
4459 "action_entry_const" : true
4460 }
4461 },
4462 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004463 "name" : "tbl_act_10",
4464 "id" : 15,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004465 "key" : [],
4466 "match_type" : "exact",
4467 "type" : "simple",
4468 "max_size" : 1024,
4469 "with_counters" : false,
4470 "support_timeout" : false,
4471 "direct_meters" : null,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004472 "action_ids" : [43],
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004473 "actions" : ["act_10"],
4474 "base_default_next" : "node_26",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004475 "next_tables" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004476 "act_10" : "node_26"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004477 },
4478 "default_entry" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004479 "action_id" : 43,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004480 "action_const" : true,
4481 "action_data" : [],
4482 "action_entry_const" : true
4483 }
4484 },
4485 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004486 "name" : "tbl_spgw_ingress_drop_now",
4487 "id" : 16,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004488 "key" : [],
4489 "match_type" : "exact",
4490 "type" : "simple",
4491 "max_size" : 1024,
4492 "with_counters" : false,
4493 "support_timeout" : false,
4494 "direct_meters" : null,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004495 "action_ids" : [11],
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004496 "actions" : ["spgw_ingress.drop_now"],
4497 "base_default_next" : "spgw_ingress.ue_cdr_table",
Carmelo Cascone14cde402018-01-25 01:57:18 -08004498 "next_tables" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004499 "spgw_ingress.drop_now" : "spgw_ingress.ue_cdr_table"
Carmelo Cascone14cde402018-01-25 01:57:18 -08004500 },
4501 "default_entry" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004502 "action_id" : 11,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004503 "action_const" : true,
4504 "action_data" : [],
4505 "action_entry_const" : true
4506 }
4507 },
4508 {
4509 "name" : "spgw_ingress.ue_cdr_table",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004510 "id" : 17,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004511 "source_info" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004512 "filename" : "include/spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004513 "line" : 134,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004514 "column" : 10,
4515 "source_fragment" : "ue_cdr_table"
4516 },
4517 "key" : [
4518 {
4519 "match_type" : "exact",
4520 "target" : ["ipv4", "dst_addr"],
4521 "mask" : null
4522 }
4523 ],
4524 "match_type" : "exact",
4525 "type" : "simple",
4526 "max_size" : 1024,
4527 "with_counters" : true,
4528 "support_timeout" : false,
4529 "direct_meters" : null,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004530 "action_ids" : [14, 3],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004531 "actions" : ["spgw_ingress.update_ue_cdr", "NoAction"],
4532 "base_default_next" : "filtering.ingress_port_vlan",
4533 "next_tables" : {
4534 "spgw_ingress.update_ue_cdr" : "filtering.ingress_port_vlan",
4535 "NoAction" : "filtering.ingress_port_vlan"
4536 },
4537 "default_entry" : {
4538 "action_id" : 3,
4539 "action_const" : false,
4540 "action_data" : [],
4541 "action_entry_const" : false
4542 }
4543 },
4544 {
4545 "name" : "filtering.ingress_port_vlan",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004546 "id" : 18,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004547 "source_info" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004548 "filename" : "include/control/filtering.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004549 "line" : 57,
4550 "column" : 10,
4551 "source_fragment" : "ingress_port_vlan"
4552 },
4553 "key" : [
4554 {
4555 "match_type" : "exact",
4556 "target" : ["standard_metadata", "ingress_port"],
4557 "mask" : null
4558 },
4559 {
4560 "match_type" : "exact",
4561 "target" : ["vlan_tag", "$valid$"],
4562 "mask" : null
4563 },
4564 {
4565 "match_type" : "ternary",
4566 "target" : ["vlan_tag", "vlan_id"],
4567 "mask" : null
4568 }
4569 ],
4570 "match_type" : "ternary",
4571 "type" : "simple",
4572 "max_size" : 1024,
4573 "with_counters" : true,
4574 "support_timeout" : false,
4575 "direct_meters" : null,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004576 "action_ids" : [17, 16, 9, 15],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004577 "actions" : ["filtering.push_internal_vlan", "filtering.set_vlan", "nop", "filtering.drop"],
4578 "base_default_next" : "filtering.fwd_classifier",
4579 "next_tables" : {
4580 "filtering.push_internal_vlan" : "filtering.fwd_classifier",
4581 "filtering.set_vlan" : "filtering.fwd_classifier",
4582 "nop" : "filtering.fwd_classifier",
4583 "filtering.drop" : "filtering.fwd_classifier"
4584 },
4585 "default_entry" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004586 "action_id" : 9,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004587 "action_const" : true,
4588 "action_data" : [],
4589 "action_entry_const" : true
4590 }
4591 },
4592 {
4593 "name" : "filtering.fwd_classifier",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004594 "id" : 19,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004595 "source_info" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004596 "filename" : "include/control/filtering.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004597 "line" : 76,
4598 "column" : 10,
4599 "source_fragment" : "fwd_classifier"
4600 },
4601 "key" : [
4602 {
4603 "match_type" : "exact",
4604 "target" : ["standard_metadata", "ingress_port"],
4605 "mask" : null
4606 },
4607 {
4608 "match_type" : "exact",
4609 "target" : ["ethernet", "dst_addr"],
4610 "mask" : null
4611 },
4612 {
4613 "match_type" : "exact",
4614 "target" : ["scalars", "fabric_metadata_t.original_ether_type"],
4615 "mask" : null
4616 }
4617 ],
4618 "match_type" : "exact",
4619 "type" : "simple",
4620 "max_size" : 1024,
4621 "with_counters" : true,
4622 "support_timeout" : false,
4623 "direct_meters" : null,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004624 "action_ids" : [18],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004625 "actions" : ["filtering.set_forwarding_type"],
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004626 "base_default_next" : "node_31",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004627 "next_tables" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004628 "filtering.set_forwarding_type" : "node_31"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004629 },
4630 "default_entry" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004631 "action_id" : 18,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004632 "action_const" : true,
4633 "action_data" : ["0x0"],
4634 "action_entry_const" : true
4635 }
4636 },
4637 {
4638 "name" : "forwarding.bridging",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004639 "id" : 20,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004640 "source_info" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004641 "filename" : "include/control/forwarding.p4",
4642 "line" : 52,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004643 "column" : 10,
4644 "source_fragment" : "bridging"
4645 },
4646 "key" : [
4647 {
4648 "match_type" : "exact",
4649 "target" : ["vlan_tag", "vlan_id"],
4650 "mask" : null
4651 },
4652 {
4653 "match_type" : "ternary",
4654 "target" : ["ethernet", "dst_addr"],
4655 "mask" : null
4656 }
4657 ],
4658 "match_type" : "ternary",
4659 "type" : "simple",
4660 "max_size" : 1024,
4661 "with_counters" : true,
4662 "support_timeout" : false,
4663 "direct_meters" : null,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004664 "action_ids" : [20, 4],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004665 "actions" : ["forwarding.set_next_id", "NoAction"],
4666 "base_default_next" : "forwarding.acl",
4667 "next_tables" : {
4668 "forwarding.set_next_id" : "forwarding.acl",
4669 "NoAction" : "forwarding.acl"
4670 },
4671 "default_entry" : {
4672 "action_id" : 4,
4673 "action_const" : false,
4674 "action_data" : [],
4675 "action_entry_const" : false
4676 }
4677 },
4678 {
4679 "name" : "forwarding.mpls",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004680 "id" : 21,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004681 "source_info" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004682 "filename" : "include/control/forwarding.p4",
4683 "line" : 64,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004684 "column" : 10,
4685 "source_fragment" : "mpls"
4686 },
4687 "key" : [
4688 {
4689 "match_type" : "exact",
4690 "target" : ["mpls", "label"],
4691 "mask" : null
4692 }
4693 ],
4694 "match_type" : "exact",
4695 "type" : "simple",
4696 "max_size" : 1024,
4697 "with_counters" : true,
4698 "support_timeout" : false,
4699 "direct_meters" : null,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004700 "action_ids" : [23, 5],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004701 "actions" : ["forwarding.pop_mpls_and_next", "NoAction"],
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004702 "base_default_next" : "tbl_act_11",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004703 "next_tables" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004704 "forwarding.pop_mpls_and_next" : "tbl_act_11",
4705 "NoAction" : "tbl_act_11"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004706 },
4707 "default_entry" : {
4708 "action_id" : 5,
4709 "action_const" : false,
4710 "action_data" : [],
4711 "action_entry_const" : false
4712 }
4713 },
4714 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004715 "name" : "tbl_act_11",
4716 "id" : 22,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004717 "key" : [],
4718 "match_type" : "exact",
4719 "type" : "simple",
4720 "max_size" : 1024,
4721 "with_counters" : false,
4722 "support_timeout" : false,
4723 "direct_meters" : null,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004724 "action_ids" : [44],
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004725 "actions" : ["act_11"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004726 "base_default_next" : "forwarding.acl",
4727 "next_tables" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004728 "act_11" : "forwarding.acl"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004729 },
4730 "default_entry" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004731 "action_id" : 44,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004732 "action_const" : true,
4733 "action_data" : [],
4734 "action_entry_const" : true
4735 }
4736 },
4737 {
4738 "name" : "forwarding.unicast_v4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004739 "id" : 23,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004740 "source_info" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004741 "filename" : "include/control/forwarding.p4",
4742 "line" : 75,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004743 "column" : 10,
4744 "source_fragment" : "unicast_v4"
4745 },
4746 "key" : [
4747 {
4748 "match_type" : "lpm",
4749 "target" : ["ipv4", "dst_addr"],
4750 "mask" : null
4751 }
4752 ],
4753 "match_type" : "lpm",
4754 "type" : "simple",
4755 "max_size" : 1024,
4756 "with_counters" : true,
4757 "support_timeout" : false,
4758 "direct_meters" : null,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004759 "action_ids" : [21, 6],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004760 "actions" : ["forwarding.set_next_id", "NoAction"],
4761 "base_default_next" : "forwarding.acl",
4762 "next_tables" : {
4763 "forwarding.set_next_id" : "forwarding.acl",
4764 "NoAction" : "forwarding.acl"
4765 },
4766 "default_entry" : {
4767 "action_id" : 6,
4768 "action_const" : false,
4769 "action_data" : [],
4770 "action_entry_const" : false
4771 }
4772 },
4773 {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004774 "name" : "forwarding.acl",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004775 "id" : 24,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004776 "source_info" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004777 "filename" : "include/control/forwarding.p4",
4778 "line" : 133,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004779 "column" : 10,
4780 "source_fragment" : "acl"
4781 },
4782 "key" : [
4783 {
4784 "match_type" : "ternary",
4785 "target" : ["standard_metadata", "ingress_port"],
4786 "mask" : null
4787 },
4788 {
4789 "match_type" : "ternary",
4790 "target" : ["scalars", "fabric_metadata_t.ip_proto"],
4791 "mask" : null
4792 },
4793 {
4794 "match_type" : "ternary",
4795 "target" : ["scalars", "fabric_metadata_t.l4_src_port"],
4796 "mask" : null
4797 },
4798 {
4799 "match_type" : "ternary",
4800 "target" : ["scalars", "fabric_metadata_t.l4_dst_port"],
4801 "mask" : null
4802 },
4803 {
4804 "match_type" : "ternary",
4805 "target" : ["scalars", "fabric_metadata_t.original_ether_type"],
4806 "mask" : null
4807 },
4808 {
4809 "match_type" : "ternary",
4810 "target" : ["ethernet", "dst_addr"],
4811 "mask" : null
4812 },
4813 {
4814 "match_type" : "ternary",
4815 "target" : ["ethernet", "src_addr"],
4816 "mask" : null
4817 },
4818 {
4819 "match_type" : "ternary",
4820 "target" : ["vlan_tag", "vlan_id"],
4821 "mask" : null
4822 },
4823 {
4824 "match_type" : "ternary",
4825 "target" : ["ipv4", "src_addr"],
4826 "mask" : null
4827 },
4828 {
4829 "match_type" : "ternary",
4830 "target" : ["ipv4", "dst_addr"],
4831 "mask" : null
4832 },
4833 {
4834 "match_type" : "ternary",
4835 "target" : ["icmp", "icmp_type"],
4836 "mask" : null
4837 },
4838 {
4839 "match_type" : "ternary",
4840 "target" : ["icmp", "icmp_code"],
4841 "mask" : null
4842 }
4843 ],
4844 "match_type" : "ternary",
4845 "type" : "simple",
4846 "max_size" : 256,
4847 "with_counters" : true,
4848 "support_timeout" : false,
4849 "direct_meters" : null,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004850 "action_ids" : [22, 24, 19, 10],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004851 "actions" : ["forwarding.set_next_id", "forwarding.duplicate_to_controller", "forwarding.drop", "nop"],
4852 "base_default_next" : "next.simple",
4853 "next_tables" : {
4854 "forwarding.set_next_id" : "next.simple",
4855 "forwarding.duplicate_to_controller" : "next.simple",
4856 "forwarding.drop" : "next.simple",
4857 "nop" : "next.simple"
4858 },
4859 "default_entry" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004860 "action_id" : 10,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004861 "action_const" : true,
4862 "action_data" : [],
4863 "action_entry_const" : true
4864 }
4865 },
4866 {
4867 "name" : "next.simple",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004868 "id" : 25,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004869 "source_info" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004870 "filename" : "include/control/next.p4",
4871 "line" : 83,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004872 "column" : 10,
4873 "source_fragment" : "simple"
4874 },
4875 "key" : [
4876 {
4877 "match_type" : "exact",
4878 "target" : ["scalars", "fabric_metadata_t.next_id"],
4879 "mask" : null
4880 }
4881 ],
4882 "match_type" : "exact",
4883 "type" : "simple",
4884 "max_size" : 1024,
4885 "with_counters" : true,
4886 "support_timeout" : false,
4887 "direct_meters" : null,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004888 "action_ids" : [25, 26, 27, 29, 7],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004889 "actions" : ["next.output", "next.set_vlan_output", "next.l3_routing", "next.mpls_routing_v4", "NoAction"],
4890 "base_default_next" : null,
4891 "next_tables" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004892 "__HIT__" : "tbl_act_12",
4893 "__MISS__" : "tbl_act_13"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004894 },
4895 "default_entry" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004896 "action_id" : 7,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004897 "action_const" : false,
4898 "action_data" : [],
4899 "action_entry_const" : false
4900 }
4901 },
4902 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004903 "name" : "tbl_act_12",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004904 "id" : 26,
4905 "key" : [],
4906 "match_type" : "exact",
4907 "type" : "simple",
4908 "max_size" : 1024,
4909 "with_counters" : false,
4910 "support_timeout" : false,
4911 "direct_meters" : null,
4912 "action_ids" : [45],
4913 "actions" : ["act_12"],
4914 "base_default_next" : "node_42",
4915 "next_tables" : {
4916 "act_12" : "node_42"
4917 },
4918 "default_entry" : {
4919 "action_id" : 45,
4920 "action_const" : true,
4921 "action_data" : [],
4922 "action_entry_const" : true
4923 }
4924 },
4925 {
4926 "name" : "tbl_act_13",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004927 "id" : 27,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004928 "key" : [],
4929 "match_type" : "exact",
4930 "type" : "simple",
4931 "max_size" : 1024,
4932 "with_counters" : false,
4933 "support_timeout" : false,
4934 "direct_meters" : null,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004935 "action_ids" : [46],
4936 "actions" : ["act_13"],
4937 "base_default_next" : "node_42",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004938 "next_tables" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004939 "act_13" : "node_42"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004940 },
4941 "default_entry" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004942 "action_id" : 46,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004943 "action_const" : true,
4944 "action_data" : [],
4945 "action_entry_const" : true
4946 }
4947 },
4948 {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004949 "name" : "tbl_act_14",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004950 "id" : 28,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004951 "key" : [],
4952 "match_type" : "exact",
4953 "type" : "simple",
4954 "max_size" : 1024,
4955 "with_counters" : false,
4956 "support_timeout" : false,
4957 "direct_meters" : null,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004958 "action_ids" : [47],
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004959 "actions" : ["act_14"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004960 "base_default_next" : "next.hashed",
4961 "next_tables" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004962 "act_14" : "next.hashed"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004963 },
4964 "default_entry" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004965 "action_id" : 47,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004966 "action_const" : true,
4967 "action_data" : [],
4968 "action_entry_const" : true
4969 }
4970 },
4971 {
4972 "name" : "next.hashed",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004973 "id" : 29,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004974 "source_info" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004975 "filename" : "include/control/next.p4",
4976 "line" : 97,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004977 "column" : 10,
4978 "source_fragment" : "hashed"
4979 },
4980 "key" : [
4981 {
4982 "match_type" : "exact",
4983 "target" : ["scalars", "fabric_metadata_t.next_id"],
4984 "mask" : null
4985 }
4986 ],
4987 "match_type" : "exact",
4988 "type" : "indirect_ws",
4989 "action_profile" : "next.ecmp_selector",
4990 "max_size" : 1024,
4991 "with_counters" : true,
4992 "support_timeout" : false,
4993 "direct_meters" : null,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004994 "action_ids" : [28, 30, 31, 8],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004995 "actions" : ["next.l3_routing", "next.mpls_routing_v4", "next.mpls_routing_v6", "NoAction"],
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004996 "base_default_next" : "node_47",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004997 "next_tables" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004998 "next.l3_routing" : "node_47",
4999 "next.mpls_routing_v4" : "node_47",
5000 "next.mpls_routing_v6" : "node_47",
5001 "NoAction" : "node_47"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005002 }
5003 },
5004 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005005 "name" : "tbl_act_15",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08005006 "id" : 30,
5007 "key" : [],
5008 "match_type" : "exact",
5009 "type" : "simple",
5010 "max_size" : 1024,
5011 "with_counters" : false,
5012 "support_timeout" : false,
5013 "direct_meters" : null,
5014 "action_ids" : [48],
5015 "actions" : ["act_15"],
5016 "base_default_next" : "node_49",
5017 "next_tables" : {
5018 "act_15" : "node_49"
5019 },
5020 "default_entry" : {
5021 "action_id" : 48,
5022 "action_const" : true,
5023 "action_data" : [],
5024 "action_entry_const" : true
5025 }
5026 },
5027 {
5028 "name" : "tbl_act_16",
5029 "id" : 31,
5030 "key" : [],
5031 "match_type" : "exact",
5032 "type" : "simple",
5033 "max_size" : 1024,
5034 "with_counters" : false,
5035 "support_timeout" : false,
5036 "direct_meters" : null,
5037 "action_ids" : [49],
5038 "actions" : ["act_16"],
5039 "base_default_next" : "node_51",
5040 "next_tables" : {
5041 "act_16" : "node_51"
5042 },
5043 "default_entry" : {
5044 "action_id" : 49,
5045 "action_const" : true,
5046 "action_data" : [],
5047 "action_entry_const" : true
5048 }
5049 },
5050 {
5051 "name" : "tbl_act_17",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005052 "id" : 32,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005053 "key" : [],
5054 "match_type" : "exact",
5055 "type" : "simple",
5056 "max_size" : 1024,
5057 "with_counters" : false,
5058 "support_timeout" : false,
5059 "direct_meters" : null,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08005060 "action_ids" : [50],
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005061 "actions" : ["act_17"],
Carmelo Cascone14cde402018-01-25 01:57:18 -08005062 "base_default_next" : null,
5063 "next_tables" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005064 "act_17" : null
Carmelo Cascone14cde402018-01-25 01:57:18 -08005065 },
5066 "default_entry" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08005067 "action_id" : 50,
Carmelo Cascone14cde402018-01-25 01:57:18 -08005068 "action_const" : true,
5069 "action_data" : [],
5070 "action_entry_const" : true
5071 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005072 }
5073 ],
5074 "action_profiles" : [
5075 {
5076 "name" : "next.ecmp_selector",
5077 "id" : 0,
5078 "max_size" : 64,
5079 "selector" : {
5080 "algo" : "crc16",
5081 "input" : [
5082 {
5083 "type" : "field",
Yi Tseng3d3956d2018-01-31 17:28:05 -08005084 "value" : ["ipv4", "dst_addr"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005085 },
5086 {
5087 "type" : "field",
Yi Tseng3d3956d2018-01-31 17:28:05 -08005088 "value" : ["ipv4", "src_addr"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005089 },
5090 {
5091 "type" : "field",
5092 "value" : ["scalars", "fabric_metadata_t.ip_proto"]
5093 },
5094 {
5095 "type" : "field",
5096 "value" : ["scalars", "fabric_metadata_t.l4_src_port"]
5097 },
5098 {
5099 "type" : "field",
5100 "value" : ["scalars", "fabric_metadata_t.l4_dst_port"]
5101 }
5102 ]
5103 }
5104 }
5105 ],
5106 "conditionals" : [
5107 {
5108 "name" : "node_2",
5109 "id" : 0,
5110 "source_info" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08005111 "filename" : "include/control/packetio.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005112 "line" : 25,
5113 "column" : 12,
5114 "source_fragment" : "hdr.packet_out.isValid()"
5115 },
5116 "expression" : {
5117 "type" : "expression",
5118 "value" : {
5119 "op" : "d2b",
5120 "left" : null,
5121 "right" : {
5122 "type" : "field",
5123 "value" : ["packet_out", "$valid$"]
5124 }
5125 }
5126 },
5127 "true_next" : "tbl_act",
5128 "false_next" : "tbl_act_0"
5129 },
5130 {
5131 "name" : "node_5",
5132 "id" : 1,
5133 "source_info" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08005134 "filename" : "include/spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005135 "line" : 147,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005136 "column" : 12,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005137 "source_fragment" : "gtpu.isValid()"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005138 },
5139 "expression" : {
5140 "type" : "expression",
5141 "value" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005142 "op" : "d2b",
5143 "left" : null,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005144 "right" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005145 "type" : "field",
5146 "value" : ["gtpu", "$valid$"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005147 }
5148 }
5149 },
5150 "true_next" : "tbl_act_1",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005151 "false_next" : "spgw_ingress.ue_filter_table"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005152 },
5153 {
5154 "name" : "node_10",
5155 "id" : 2,
5156 "expression" : {
5157 "type" : "expression",
5158 "value" : {
5159 "op" : "d2b",
5160 "left" : null,
5161 "right" : {
5162 "type" : "field",
5163 "value" : ["scalars", "spgw_ingress_tmp_2"]
5164 }
5165 }
5166 },
5167 "true_next" : "tbl_act_4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005168 "false_next" : "node_17"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005169 },
5170 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005171 "name" : "node_15",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005172 "id" : 3,
5173 "expression" : {
5174 "type" : "expression",
5175 "value" : {
5176 "op" : "d2b",
5177 "left" : null,
5178 "right" : {
5179 "type" : "field",
5180 "value" : ["scalars", "spgw_ingress_tmp_3"]
5181 }
5182 }
5183 },
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005184 "true_next" : "tbl_act_7",
5185 "false_next" : "node_17"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005186 },
5187 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005188 "name" : "node_17",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005189 "id" : 4,
5190 "source_info" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08005191 "filename" : "include/spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005192 "line" : 167,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005193 "column" : 12,
5194 "source_fragment" : "!spgw_meta.do_spgw"
5195 },
5196 "expression" : {
5197 "type" : "expression",
5198 "value" : {
5199 "op" : "not",
5200 "left" : null,
5201 "right" : {
5202 "type" : "expression",
5203 "value" : {
5204 "op" : "d2b",
5205 "left" : null,
5206 "right" : {
5207 "type" : "field",
5208 "value" : ["spgw", "do_spgw"]
5209 }
5210 }
5211 }
5212 }
5213 },
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005214 "true_next" : "tbl_act_8",
5215 "false_next" : "node_19"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005216 },
5217 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005218 "name" : "node_19",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005219 "id" : 5,
5220 "expression" : {
5221 "type" : "expression",
5222 "value" : {
5223 "op" : "not",
5224 "left" : null,
5225 "right" : {
5226 "type" : "expression",
5227 "value" : {
5228 "op" : "d2b",
5229 "left" : null,
5230 "right" : {
5231 "type" : "field",
5232 "value" : ["scalars", "spgw_ingress_hasReturned_0"]
5233 }
5234 }
5235 }
5236 }
5237 },
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005238 "true_next" : "node_20",
5239 "false_next" : "filtering.ingress_port_vlan"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005240 },
5241 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005242 "name" : "node_20",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005243 "id" : 6,
5244 "source_info" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08005245 "filename" : "include/spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005246 "line" : 172,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005247 "column" : 12,
5248 "source_fragment" : "spgw_meta.direction == DIR_UPLINK"
5249 },
5250 "expression" : {
5251 "type" : "expression",
5252 "value" : {
5253 "op" : "==",
5254 "left" : {
5255 "type" : "field",
5256 "value" : ["spgw", "direction"]
5257 },
5258 "right" : {
5259 "type" : "hexstr",
5260 "value" : "0x00"
5261 }
5262 }
5263 },
5264 "true_next" : "tbl_spgw_ingress_gtpu_decap",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005265 "false_next" : "node_22"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005266 },
5267 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005268 "name" : "node_22",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005269 "id" : 7,
5270 "source_info" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08005271 "filename" : "include/spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005272 "line" : 189,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005273 "column" : 12,
5274 "source_fragment" : "spgw_meta.direction == DIR_DOWNLINK"
5275 },
5276 "expression" : {
5277 "type" : "expression",
5278 "value" : {
5279 "op" : "==",
5280 "left" : {
5281 "type" : "field",
5282 "value" : ["spgw", "direction"]
5283 },
5284 "right" : {
5285 "type" : "hexstr",
5286 "value" : "0x01"
5287 }
5288 }
5289 },
5290 "true_next" : "spgw_ingress.dl_sess_lookup",
5291 "false_next" : "filtering.ingress_port_vlan"
5292 },
5293 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005294 "name" : "node_26",
5295 "id" : 8,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005296 "source_info" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08005297 "filename" : "include/spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005298 "line" : 190,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005299 "column" : 16,
5300 "source_fragment" : "!dl_sess_lookup.apply().hit"
5301 },
5302 "expression" : {
5303 "type" : "expression",
5304 "value" : {
5305 "op" : "not",
5306 "left" : null,
5307 "right" : {
5308 "type" : "expression",
5309 "value" : {
5310 "op" : "d2b",
5311 "left" : null,
5312 "right" : {
5313 "type" : "field",
5314 "value" : ["scalars", "spgw_ingress_tmp_4"]
5315 }
5316 }
5317 }
5318 }
5319 },
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005320 "true_next" : "tbl_spgw_ingress_drop_now",
5321 "false_next" : "spgw_ingress.ue_cdr_table"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005322 },
5323 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005324 "name" : "node_31",
5325 "id" : 9,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005326 "source_info" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08005327 "filename" : "include/control/forwarding.p4",
5328 "line" : 163,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005329 "column" : 11,
5330 "source_fragment" : "fabric_metadata.fwd_type == FWD_BRIDGING"
5331 },
5332 "expression" : {
5333 "type" : "expression",
5334 "value" : {
5335 "op" : "==",
5336 "left" : {
5337 "type" : "field",
5338 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
5339 },
5340 "right" : {
5341 "type" : "hexstr",
5342 "value" : "0x00"
5343 }
5344 }
5345 },
5346 "true_next" : "forwarding.bridging",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005347 "false_next" : "node_33"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005348 },
5349 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005350 "name" : "node_33",
5351 "id" : 10,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005352 "source_info" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08005353 "filename" : "include/control/forwarding.p4",
5354 "line" : 164,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005355 "column" : 17,
5356 "source_fragment" : "fabric_metadata.fwd_type == FWD_MPLS"
5357 },
5358 "expression" : {
5359 "type" : "expression",
5360 "value" : {
5361 "op" : "==",
5362 "left" : {
5363 "type" : "field",
5364 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
5365 },
5366 "right" : {
5367 "type" : "hexstr",
5368 "value" : "0x01"
5369 }
5370 }
5371 },
5372 "true_next" : "forwarding.mpls",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005373 "false_next" : "node_36"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005374 },
5375 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005376 "name" : "node_36",
5377 "id" : 11,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005378 "source_info" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08005379 "filename" : "include/control/forwarding.p4",
5380 "line" : 179,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005381 "column" : 17,
5382 "source_fragment" : "fabric_metadata.fwd_type == FWD_IPV4_UNICAST"
5383 },
5384 "expression" : {
5385 "type" : "expression",
5386 "value" : {
5387 "op" : "==",
5388 "left" : {
5389 "type" : "field",
5390 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
5391 },
5392 "right" : {
5393 "type" : "hexstr",
5394 "value" : "0x02"
5395 }
5396 }
5397 },
5398 "true_next" : "forwarding.unicast_v4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005399 "false_next" : "forwarding.acl"
5400 },
5401 {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08005402 "name" : "node_42",
5403 "id" : 12,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005404 "expression" : {
5405 "type" : "expression",
5406 "value" : {
5407 "op" : "d2b",
5408 "left" : null,
5409 "right" : {
5410 "type" : "field",
5411 "value" : ["scalars", "next_tmp_0"]
5412 }
5413 }
5414 },
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08005415 "true_next" : "node_43",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005416 "false_next" : "next.hashed"
5417 },
5418 {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08005419 "name" : "node_43",
5420 "id" : 13,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005421 "source_info" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08005422 "filename" : "include/control/next.p4",
5423 "line" : 141,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005424 "column" : 16,
5425 "source_fragment" : "!hdr.mpls.isValid()"
5426 },
5427 "expression" : {
5428 "type" : "expression",
5429 "value" : {
5430 "op" : "not",
5431 "left" : null,
5432 "right" : {
5433 "type" : "expression",
5434 "value" : {
5435 "op" : "d2b",
5436 "left" : null,
5437 "right" : {
5438 "type" : "field",
5439 "value" : ["mpls", "$valid$"]
5440 }
5441 }
5442 }
5443 }
5444 },
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08005445 "true_next" : "node_44",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005446 "false_next" : "next.hashed"
5447 },
5448 {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08005449 "name" : "node_44",
5450 "id" : 14,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005451 "source_info" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08005452 "filename" : "include/control/next.p4",
5453 "line" : 142,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005454 "column" : 19,
5455 "source_fragment" : "hdr.ipv4.isValid()"
5456 },
5457 "expression" : {
5458 "type" : "expression",
5459 "value" : {
5460 "op" : "d2b",
5461 "left" : null,
5462 "right" : {
5463 "type" : "field",
5464 "value" : ["ipv4", "$valid$"]
5465 }
5466 }
5467 },
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005468 "true_next" : "tbl_act_14",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005469 "false_next" : "next.hashed"
5470 },
5471 {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08005472 "name" : "node_47",
5473 "id" : 15,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005474 "source_info" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08005475 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005476 "line" : 27,
5477 "column" : 12,
5478 "source_fragment" : "standard_metadata.egress_spec < 511"
5479 },
5480 "expression" : {
5481 "type" : "expression",
5482 "value" : {
5483 "op" : "<",
5484 "left" : {
5485 "type" : "field",
5486 "value" : ["standard_metadata", "egress_spec"]
5487 },
5488 "right" : {
5489 "type" : "hexstr",
5490 "value" : "0x01ff"
5491 }
5492 }
5493 },
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005494 "true_next" : "tbl_act_15",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08005495 "false_next" : "node_49"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005496 },
5497 {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08005498 "name" : "node_49",
5499 "id" : 16,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005500 "source_info" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08005501 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005502 "line" : 30,
5503 "column" : 12,
5504 "source_fragment" : "standard_metadata.ingress_port < 511"
5505 },
5506 "expression" : {
5507 "type" : "expression",
5508 "value" : {
5509 "op" : "<",
5510 "left" : {
5511 "type" : "field",
5512 "value" : ["standard_metadata", "ingress_port"]
5513 },
5514 "right" : {
5515 "type" : "hexstr",
5516 "value" : "0x01ff"
5517 }
5518 }
5519 },
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005520 "true_next" : "tbl_act_16",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08005521 "false_next" : "node_51"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005522 },
5523 {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08005524 "name" : "node_51",
5525 "id" : 17,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005526 "source_info" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08005527 "filename" : "include/control/next.p4",
5528 "line" : 166,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005529 "column" : 12,
5530 "source_fragment" : "fabric_metadata.pop_vlan_at_egress"
5531 },
5532 "expression" : {
5533 "type" : "expression",
5534 "value" : {
5535 "op" : "d2b",
5536 "left" : null,
5537 "right" : {
5538 "type" : "field",
5539 "value" : ["scalars", "fabric_metadata_t.pop_vlan_at_egress"]
5540 }
5541 }
5542 },
5543 "false_next" : null,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005544 "true_next" : "tbl_act_17"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005545 }
5546 ]
5547 },
5548 {
5549 "name" : "egress",
5550 "id" : 1,
5551 "source_info" : {
5552 "filename" : "fabric.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005553 "line" : 62,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005554 "column" : 8,
5555 "source_fragment" : "FabricEgress"
5556 },
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08005557 "init_table" : "node_55",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005558 "tables" : [
5559 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005560 "name" : "tbl_act_18",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08005561 "id" : 33,
5562 "key" : [],
5563 "match_type" : "exact",
5564 "type" : "simple",
5565 "max_size" : 1024,
5566 "with_counters" : false,
5567 "support_timeout" : false,
5568 "direct_meters" : null,
5569 "action_ids" : [52],
5570 "actions" : ["act_18"],
5571 "base_default_next" : "tbl_act_19",
5572 "next_tables" : {
5573 "act_18" : "tbl_act_19"
5574 },
5575 "default_entry" : {
5576 "action_id" : 52,
5577 "action_const" : true,
5578 "action_data" : [],
5579 "action_entry_const" : true
5580 }
5581 },
5582 {
5583 "name" : "tbl_act_19",
5584 "id" : 34,
5585 "key" : [],
5586 "match_type" : "exact",
5587 "type" : "simple",
5588 "max_size" : 1024,
5589 "with_counters" : false,
5590 "support_timeout" : false,
5591 "direct_meters" : null,
5592 "action_ids" : [53],
5593 "actions" : ["act_19"],
5594 "base_default_next" : "node_58",
5595 "next_tables" : {
5596 "act_19" : "node_58"
5597 },
5598 "default_entry" : {
5599 "action_id" : 53,
5600 "action_const" : true,
5601 "action_data" : [],
5602 "action_entry_const" : true
5603 }
5604 },
5605 {
5606 "name" : "tbl_spgw_egress_gtpu_encap",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005607 "id" : 35,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005608 "key" : [],
5609 "match_type" : "exact",
5610 "type" : "simple",
5611 "max_size" : 1024,
5612 "with_counters" : false,
5613 "support_timeout" : false,
5614 "direct_meters" : null,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08005615 "action_ids" : [51],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005616 "actions" : ["spgw_egress.gtpu_encap"],
5617 "base_default_next" : null,
5618 "next_tables" : {
5619 "spgw_egress.gtpu_encap" : null
5620 },
5621 "default_entry" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08005622 "action_id" : 51,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005623 "action_const" : true,
5624 "action_data" : [],
5625 "action_entry_const" : true
5626 }
5627 }
5628 ],
5629 "action_profiles" : [],
5630 "conditionals" : [
5631 {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08005632 "name" : "node_55",
5633 "id" : 18,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005634 "source_info" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08005635 "filename" : "include/control/packetio.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005636 "line" : 38,
5637 "column" : 12,
Carmelo Casconeb531b682018-01-30 17:55:56 -08005638 "source_fragment" : "standard_metadata.egress_port == 255"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005639 },
5640 "expression" : {
5641 "type" : "expression",
5642 "value" : {
5643 "op" : "==",
5644 "left" : {
5645 "type" : "field",
5646 "value" : ["standard_metadata", "egress_port"]
5647 },
5648 "right" : {
5649 "type" : "hexstr",
5650 "value" : "0x00ff"
5651 }
5652 }
5653 },
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005654 "true_next" : "tbl_act_18",
5655 "false_next" : "tbl_act_19"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005656 },
5657 {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08005658 "name" : "node_58",
5659 "id" : 19,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005660 "source_info" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08005661 "filename" : "include/spgw.p4",
5662 "line" : 246,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005663 "column" : 12,
5664 "source_fragment" : "spgw_meta.do_spgw && spgw_meta.direction == DIR_DOWNLINK"
5665 },
5666 "expression" : {
5667 "type" : "expression",
5668 "value" : {
5669 "op" : "and",
5670 "left" : {
5671 "type" : "expression",
5672 "value" : {
5673 "op" : "d2b",
5674 "left" : null,
5675 "right" : {
5676 "type" : "field",
5677 "value" : ["spgw", "do_spgw"]
5678 }
5679 }
5680 },
5681 "right" : {
5682 "type" : "expression",
5683 "value" : {
5684 "op" : "==",
5685 "left" : {
5686 "type" : "field",
5687 "value" : ["spgw", "direction"]
5688 },
5689 "right" : {
5690 "type" : "hexstr",
5691 "value" : "0x01"
5692 }
5693 }
5694 }
5695 }
5696 },
5697 "false_next" : null,
5698 "true_next" : "tbl_spgw_egress_gtpu_encap"
5699 }
5700 ]
5701 }
5702 ],
5703 "checksums" : [
5704 {
5705 "name" : "cksum",
5706 "id" : 0,
5707 "target" : ["ipv4", "hdr_checksum"],
5708 "type" : "generic",
5709 "calculation" : "calc",
5710 "if_cond" : {
5711 "type" : "expression",
5712 "value" : {
5713 "op" : "d2b",
5714 "left" : null,
5715 "right" : {
5716 "type" : "field",
5717 "value" : ["ipv4", "$valid$"]
5718 }
5719 }
5720 }
5721 },
5722 {
5723 "name" : "cksum_0",
5724 "id" : 1,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005725 "target" : ["ipv4", "hdr_checksum"],
5726 "type" : "generic",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005727 "calculation" : "calc_0",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005728 "if_cond" : {
5729 "type" : "expression",
5730 "value" : {
5731 "op" : "d2b",
5732 "left" : null,
5733 "right" : {
5734 "type" : "field",
5735 "value" : ["ipv4", "$valid$"]
5736 }
5737 }
5738 }
5739 },
5740 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005741 "name" : "cksum_1",
5742 "id" : 2,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005743 "target" : ["gtpu_ipv4", "hdr_checksum"],
5744 "type" : "generic",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005745 "calculation" : "calc_1",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005746 "if_cond" : {
5747 "type" : "expression",
5748 "value" : {
5749 "op" : "d2b",
5750 "left" : null,
5751 "right" : {
5752 "type" : "field",
5753 "value" : ["gtpu_ipv4", "$valid$"]
5754 }
5755 }
5756 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005757 }
5758 ],
5759 "force_arith" : [],
5760 "extern_instances" : [],
5761 "field_aliases" : [
5762 [
5763 "queueing_metadata.enq_timestamp",
5764 ["standard_metadata", "enq_timestamp"]
5765 ],
5766 [
5767 "queueing_metadata.enq_qdepth",
5768 ["standard_metadata", "enq_qdepth"]
5769 ],
5770 [
5771 "queueing_metadata.deq_timedelta",
5772 ["standard_metadata", "deq_timedelta"]
5773 ],
5774 [
5775 "queueing_metadata.deq_qdepth",
5776 ["standard_metadata", "deq_qdepth"]
5777 ],
5778 [
5779 "intrinsic_metadata.ingress_global_timestamp",
5780 ["standard_metadata", "ingress_global_timestamp"]
5781 ],
5782 [
5783 "intrinsic_metadata.lf_field_list",
5784 ["standard_metadata", "lf_field_list"]
5785 ],
5786 [
5787 "intrinsic_metadata.mcast_grp",
5788 ["standard_metadata", "mcast_grp"]
5789 ],
5790 [
5791 "intrinsic_metadata.resubmit_flag",
5792 ["standard_metadata", "resubmit_flag"]
5793 ],
5794 [
5795 "intrinsic_metadata.egress_rid",
5796 ["standard_metadata", "egress_rid"]
5797 ]
5798 ]
5799}