blob: 56c04b4e52761d637ef5d2c439829109023b32f0 [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 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800103 "name" : "ipv6_t",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -0800104 "id" : 7,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800105 "fields" : [
Yi Tseng27b9bc02018-04-12 14:52:40 +0800106 ["version", 4, false],
107 ["traffic_class", 8, false],
108 ["flow_label", 20, false],
109 ["payload_len", 16, false],
110 ["next_hdr", 8, false],
111 ["hop_limit", 8, false],
112 ["src_addr", 128, false],
113 ["dst_addr", 128, false]
114 ]
115 },
116 {
117 "name" : "arp_t",
118 "id" : 8,
119 "fields" : [
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800120 ["hw_type", 16, false],
121 ["proto_type", 16, false],
122 ["hw_addr_len", 8, false],
123 ["proto_addr_len", 8, false],
124 ["opcode", 16, false]
125 ]
126 },
127 {
128 "name" : "tcp_t",
Yi Tseng27b9bc02018-04-12 14:52:40 +0800129 "id" : 9,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800130 "fields" : [
131 ["src_port", 16, false],
132 ["dst_port", 16, false],
133 ["seq_no", 32, false],
134 ["ack_no", 32, false],
135 ["data_offset", 4, false],
136 ["res", 3, false],
137 ["ecn", 3, false],
138 ["ctrl", 6, false],
139 ["window", 16, false],
140 ["checksum", 16, false],
141 ["urgent_ptr", 16, false]
142 ]
143 },
144 {
145 "name" : "icmp_t",
Yi Tseng27b9bc02018-04-12 14:52:40 +0800146 "id" : 10,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800147 "fields" : [
148 ["icmp_type", 8, false],
149 ["icmp_code", 8, false],
150 ["checksum", 16, false],
151 ["identifier", 16, false],
152 ["sequence_number", 16, false],
153 ["timestamp", 64, false]
154 ]
155 },
156 {
157 "name" : "packet_out_header_t",
Yi Tseng27b9bc02018-04-12 14:52:40 +0800158 "id" : 11,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800159 "fields" : [
160 ["egress_port", 9, false],
161 ["_pad", 7, false]
162 ]
163 },
164 {
165 "name" : "packet_in_header_t",
Yi Tseng27b9bc02018-04-12 14:52:40 +0800166 "id" : 12,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800167 "fields" : [
168 ["ingress_port", 9, false],
169 ["_pad", 7, false]
170 ]
171 },
172 {
173 "name" : "spgw_meta_t",
Yi Tseng27b9bc02018-04-12 14:52:40 +0800174 "id" : 13,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800175 "fields" : [
176 ["do_spgw", 1, 0],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800177 ["direction", 1, false],
Yi Tseng27b9bc02018-04-12 14:52:40 +0800178 ["ipv4_len", 16, false],
Carmelo Casconeb757dbc2018-01-25 17:53:17 -0800179 ["teid", 32, false],
180 ["s1u_enb_addr", 32, false],
181 ["s1u_sgw_addr", 32, false],
182 ["_padding", 6, false]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800183 ]
184 },
185 {
186 "name" : "standard_metadata",
Yi Tseng27b9bc02018-04-12 14:52:40 +0800187 "id" : 14,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800188 "fields" : [
189 ["ingress_port", 9, false],
190 ["egress_spec", 9, false],
191 ["egress_port", 9, false],
192 ["clone_spec", 32, false],
193 ["instance_type", 32, false],
194 ["drop", 1, false],
195 ["recirculate_port", 16, false],
196 ["packet_length", 32, false],
197 ["enq_timestamp", 32, false],
198 ["enq_qdepth", 19, false],
199 ["deq_timedelta", 32, false],
200 ["deq_qdepth", 19, false],
201 ["ingress_global_timestamp", 48, false],
Yi Tseng27b9bc02018-04-12 14:52:40 +0800202 ["egress_global_timestamp", 48, false],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800203 ["lf_field_list", 32, false],
204 ["mcast_grp", 16, false],
Yi Tseng27b9bc02018-04-12 14:52:40 +0800205 ["resubmit_flag", 32, false],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800206 ["egress_rid", 16, false],
207 ["checksum_error", 1, false],
Yi Tseng27b9bc02018-04-12 14:52:40 +0800208 ["recirculate_flag", 32, false],
209 ["_padding_0", 5, false]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800210 ]
211 }
212 ],
213 "headers" : [
214 {
215 "name" : "scalars",
216 "id" : 0,
217 "header_type" : "scalars_0",
218 "metadata" : true,
219 "pi_omit" : true
220 },
221 {
222 "name" : "standard_metadata",
223 "id" : 1,
224 "header_type" : "standard_metadata",
225 "metadata" : true,
226 "pi_omit" : true
227 },
228 {
229 "name" : "ethernet",
230 "id" : 2,
231 "header_type" : "ethernet_t",
232 "metadata" : false,
233 "pi_omit" : true
234 },
235 {
236 "name" : "vlan_tag",
237 "id" : 3,
238 "header_type" : "vlan_tag_t",
239 "metadata" : false,
240 "pi_omit" : true
241 },
242 {
243 "name" : "mpls",
244 "id" : 4,
245 "header_type" : "mpls_t",
246 "metadata" : false,
247 "pi_omit" : true
248 },
249 {
250 "name" : "gtpu_ipv4",
251 "id" : 5,
252 "header_type" : "ipv4_t",
253 "metadata" : false,
254 "pi_omit" : true
255 },
256 {
257 "name" : "gtpu_udp",
258 "id" : 6,
259 "header_type" : "udp_t",
260 "metadata" : false,
261 "pi_omit" : true
262 },
263 {
264 "name" : "gtpu",
265 "id" : 7,
266 "header_type" : "gtpu_t",
267 "metadata" : false,
268 "pi_omit" : true
269 },
270 {
271 "name" : "ipv4",
272 "id" : 8,
273 "header_type" : "ipv4_t",
274 "metadata" : false,
275 "pi_omit" : true
276 },
277 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800278 "name" : "ipv6",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -0800279 "id" : 9,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800280 "header_type" : "ipv6_t",
281 "metadata" : false,
282 "pi_omit" : true
283 },
284 {
285 "name" : "arp",
286 "id" : 10,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800287 "header_type" : "arp_t",
288 "metadata" : false,
289 "pi_omit" : true
290 },
291 {
292 "name" : "tcp",
Yi Tseng27b9bc02018-04-12 14:52:40 +0800293 "id" : 11,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800294 "header_type" : "tcp_t",
295 "metadata" : false,
296 "pi_omit" : true
297 },
298 {
299 "name" : "udp",
Yi Tseng27b9bc02018-04-12 14:52:40 +0800300 "id" : 12,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800301 "header_type" : "udp_t",
302 "metadata" : false,
303 "pi_omit" : true
304 },
305 {
306 "name" : "icmp",
Yi Tseng27b9bc02018-04-12 14:52:40 +0800307 "id" : 13,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800308 "header_type" : "icmp_t",
309 "metadata" : false,
310 "pi_omit" : true
311 },
312 {
313 "name" : "packet_out",
Yi Tseng27b9bc02018-04-12 14:52:40 +0800314 "id" : 14,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800315 "header_type" : "packet_out_header_t",
316 "metadata" : false,
317 "pi_omit" : true
318 },
319 {
320 "name" : "packet_in",
Yi Tseng27b9bc02018-04-12 14:52:40 +0800321 "id" : 15,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800322 "header_type" : "packet_in_header_t",
323 "metadata" : false,
324 "pi_omit" : true
325 },
326 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800327 "name" : "userMetadata.spgw",
328 "id" : 16,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800329 "header_type" : "spgw_meta_t",
330 "metadata" : true,
331 "pi_omit" : true
332 }
333 ],
334 "header_stacks" : [],
335 "header_union_types" : [],
336 "header_unions" : [],
337 "header_union_stacks" : [],
338 "field_lists" : [],
339 "errors" : [
Yi Tseng27b9bc02018-04-12 14:52:40 +0800340 ["NoError", 0],
341 ["PacketTooShort", 1],
342 ["NoMatch", 2],
343 ["StackOutOfBounds", 3],
344 ["HeaderTooShort", 4],
345 ["ParserTimeout", 5]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800346 ],
347 "enums" : [],
348 "parsers" : [
349 {
350 "name" : "parser",
351 "id" : 0,
352 "init_state" : "start",
353 "parse_states" : [
354 {
355 "name" : "start",
356 "id" : 0,
357 "parser_ops" : [],
358 "transitions" : [
359 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800360 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800361 "value" : "0x00ff",
362 "mask" : null,
363 "next_state" : "parse_packet_out"
364 },
365 {
366 "value" : "default",
367 "mask" : null,
368 "next_state" : "parse_ethernet"
369 }
370 ],
371 "transition_key" : [
372 {
373 "type" : "field",
374 "value" : ["standard_metadata", "ingress_port"]
375 }
376 ]
377 },
378 {
379 "name" : "parse_packet_out",
380 "id" : 1,
381 "parser_ops" : [
382 {
383 "parameters" : [
384 {
385 "type" : "regular",
386 "value" : "packet_out"
387 }
388 ],
389 "op" : "extract"
390 }
391 ],
392 "transitions" : [
393 {
394 "value" : "default",
395 "mask" : null,
396 "next_state" : "parse_ethernet"
397 }
398 ],
399 "transition_key" : []
400 },
401 {
402 "name" : "parse_ethernet",
403 "id" : 2,
404 "parser_ops" : [
405 {
406 "parameters" : [
407 {
408 "type" : "regular",
409 "value" : "ethernet"
410 }
411 ],
412 "op" : "extract"
413 },
414 {
415 "parameters" : [
416 {
417 "type" : "field",
418 "value" : ["scalars", "fabric_metadata_t.original_ether_type"]
419 },
420 {
421 "type" : "field",
422 "value" : ["ethernet", "ether_type"]
423 }
424 ],
425 "op" : "set"
426 }
427 ],
428 "transitions" : [
429 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800430 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800431 "value" : "0x8100",
432 "mask" : null,
433 "next_state" : "parse_vlan_tag"
434 },
435 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800436 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800437 "value" : "0x8847",
438 "mask" : null,
439 "next_state" : "parse_mpls"
440 },
441 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800442 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800443 "value" : "0x0806",
444 "mask" : null,
445 "next_state" : "parse_arp"
446 },
447 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800448 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800449 "value" : "0x0800",
450 "mask" : null,
451 "next_state" : "parse_ipv4"
452 },
453 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800454 "type" : "hexstr",
455 "value" : "0x86dd",
456 "mask" : null,
457 "next_state" : "parse_ipv6"
458 },
459 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800460 "value" : "default",
461 "mask" : null,
462 "next_state" : null
463 }
464 ],
465 "transition_key" : [
466 {
467 "type" : "field",
468 "value" : ["ethernet", "ether_type"]
469 }
470 ]
471 },
472 {
473 "name" : "parse_vlan_tag",
474 "id" : 3,
475 "parser_ops" : [
476 {
477 "parameters" : [
478 {
479 "type" : "regular",
480 "value" : "vlan_tag"
481 }
482 ],
483 "op" : "extract"
484 }
485 ],
486 "transitions" : [
487 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800488 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800489 "value" : "0x0806",
490 "mask" : null,
491 "next_state" : "parse_arp"
492 },
493 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800494 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800495 "value" : "0x0800",
496 "mask" : null,
497 "next_state" : "parse_ipv4"
498 },
499 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800500 "type" : "hexstr",
501 "value" : "0x86dd",
502 "mask" : null,
503 "next_state" : "parse_ipv6"
504 },
505 {
506 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800507 "value" : "0x8847",
508 "mask" : null,
509 "next_state" : "parse_mpls"
510 },
511 {
512 "value" : "default",
513 "mask" : null,
514 "next_state" : null
515 }
516 ],
517 "transition_key" : [
518 {
519 "type" : "field",
520 "value" : ["vlan_tag", "ether_type"]
521 }
522 ]
523 },
524 {
525 "name" : "parse_mpls",
526 "id" : 4,
527 "parser_ops" : [
528 {
529 "parameters" : [
530 {
531 "type" : "regular",
532 "value" : "mpls"
533 }
534 ],
535 "op" : "extract"
536 },
537 {
538 "parameters" : [
539 {
540 "type" : "field",
541 "value" : ["scalars", "tmp"]
542 },
543 {
544 "type" : "lookahead",
545 "value" : [0, 4]
546 }
547 ],
548 "op" : "set"
549 }
550 ],
551 "transitions" : [
552 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800553 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800554 "value" : "0x04",
555 "mask" : null,
556 "next_state" : "parse_ipv4"
557 },
558 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800559 "type" : "hexstr",
560 "value" : "0x06",
561 "mask" : null,
562 "next_state" : "parse_ipv6"
563 },
564 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800565 "value" : "default",
566 "mask" : null,
567 "next_state" : "parse_ethernet"
568 }
569 ],
570 "transition_key" : [
571 {
572 "type" : "field",
573 "value" : ["scalars", "tmp"]
574 }
575 ]
576 },
577 {
578 "name" : "parse_ipv4",
579 "id" : 5,
580 "parser_ops" : [
581 {
582 "parameters" : [
583 {
584 "type" : "regular",
585 "value" : "ipv4"
586 }
587 ],
588 "op" : "extract"
589 },
590 {
591 "parameters" : [
592 {
593 "type" : "field",
594 "value" : ["scalars", "fabric_metadata_t.ip_proto"]
595 },
596 {
597 "type" : "field",
598 "value" : ["ipv4", "protocol"]
599 }
600 ],
601 "op" : "set"
602 }
603 ],
604 "transitions" : [
605 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800606 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800607 "value" : "0x06",
608 "mask" : null,
609 "next_state" : "parse_tcp"
610 },
611 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800612 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800613 "value" : "0x11",
614 "mask" : null,
615 "next_state" : "parse_udp"
616 },
617 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800618 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800619 "value" : "0x01",
620 "mask" : null,
621 "next_state" : "parse_icmp"
622 },
623 {
624 "value" : "default",
625 "mask" : null,
626 "next_state" : null
627 }
628 ],
629 "transition_key" : [
630 {
631 "type" : "field",
632 "value" : ["ipv4", "protocol"]
633 }
634 ]
635 },
636 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800637 "name" : "parse_ipv6",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -0800638 "id" : 6,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800639 "parser_ops" : [
640 {
641 "parameters" : [
642 {
643 "type" : "regular",
Yi Tseng27b9bc02018-04-12 14:52:40 +0800644 "value" : "ipv6"
645 }
646 ],
647 "op" : "extract"
648 },
649 {
650 "parameters" : [
651 {
652 "type" : "field",
653 "value" : ["scalars", "fabric_metadata_t.ip_proto"]
654 },
655 {
656 "type" : "field",
657 "value" : ["ipv6", "next_hdr"]
658 }
659 ],
660 "op" : "set"
661 }
662 ],
663 "transitions" : [
664 {
665 "type" : "hexstr",
666 "value" : "0x06",
667 "mask" : null,
668 "next_state" : "parse_tcp"
669 },
670 {
671 "type" : "hexstr",
672 "value" : "0x11",
673 "mask" : null,
674 "next_state" : "parse_udp"
675 },
676 {
677 "type" : "hexstr",
678 "value" : "0x3a",
679 "mask" : null,
680 "next_state" : "parse_icmp"
681 },
682 {
683 "value" : "default",
684 "mask" : null,
685 "next_state" : null
686 }
687 ],
688 "transition_key" : [
689 {
690 "type" : "field",
691 "value" : ["ipv6", "next_hdr"]
692 }
693 ]
694 },
695 {
696 "name" : "parse_arp",
697 "id" : 7,
698 "parser_ops" : [
699 {
700 "parameters" : [
701 {
702 "type" : "regular",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800703 "value" : "arp"
704 }
705 ],
706 "op" : "extract"
707 }
708 ],
709 "transitions" : [
710 {
711 "value" : "default",
712 "mask" : null,
713 "next_state" : null
714 }
715 ],
716 "transition_key" : []
717 },
718 {
719 "name" : "parse_tcp",
Yi Tseng27b9bc02018-04-12 14:52:40 +0800720 "id" : 8,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800721 "parser_ops" : [
722 {
723 "parameters" : [
724 {
725 "type" : "regular",
726 "value" : "tcp"
727 }
728 ],
729 "op" : "extract"
730 },
731 {
732 "parameters" : [
733 {
734 "type" : "field",
735 "value" : ["scalars", "fabric_metadata_t.l4_src_port"]
736 },
737 {
738 "type" : "field",
739 "value" : ["tcp", "src_port"]
740 }
741 ],
742 "op" : "set"
743 },
744 {
745 "parameters" : [
746 {
747 "type" : "field",
748 "value" : ["scalars", "fabric_metadata_t.l4_dst_port"]
749 },
750 {
751 "type" : "field",
752 "value" : ["tcp", "dst_port"]
753 }
754 ],
755 "op" : "set"
756 }
757 ],
758 "transitions" : [
759 {
760 "value" : "default",
761 "mask" : null,
762 "next_state" : null
763 }
764 ],
765 "transition_key" : []
766 },
767 {
768 "name" : "parse_udp",
Yi Tseng27b9bc02018-04-12 14:52:40 +0800769 "id" : 9,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800770 "parser_ops" : [
771 {
772 "parameters" : [
773 {
774 "type" : "regular",
775 "value" : "udp"
776 }
777 ],
778 "op" : "extract"
779 },
780 {
781 "parameters" : [
782 {
783 "type" : "field",
784 "value" : ["scalars", "fabric_metadata_t.l4_src_port"]
785 },
786 {
787 "type" : "field",
788 "value" : ["udp", "src_port"]
789 }
790 ],
791 "op" : "set"
792 },
793 {
794 "parameters" : [
795 {
796 "type" : "field",
797 "value" : ["scalars", "fabric_metadata_t.l4_dst_port"]
798 },
799 {
800 "type" : "field",
801 "value" : ["udp", "dst_port"]
802 }
803 ],
804 "op" : "set"
805 }
806 ],
807 "transitions" : [
808 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800809 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800810 "value" : "0x0868",
811 "mask" : null,
812 "next_state" : "parse_gtpu"
813 },
814 {
815 "value" : "default",
816 "mask" : null,
817 "next_state" : null
818 }
819 ],
820 "transition_key" : [
821 {
822 "type" : "field",
823 "value" : ["udp", "dst_port"]
824 }
825 ]
826 },
827 {
828 "name" : "parse_icmp",
Yi Tseng27b9bc02018-04-12 14:52:40 +0800829 "id" : 10,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800830 "parser_ops" : [
831 {
832 "parameters" : [
833 {
834 "type" : "regular",
835 "value" : "icmp"
836 }
837 ],
838 "op" : "extract"
839 }
840 ],
841 "transitions" : [
842 {
843 "value" : "default",
844 "mask" : null,
845 "next_state" : null
846 }
847 ],
848 "transition_key" : []
849 },
850 {
851 "name" : "parse_gtpu",
Yi Tseng27b9bc02018-04-12 14:52:40 +0800852 "id" : 11,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800853 "parser_ops" : [
854 {
855 "parameters" : [
856 {
857 "type" : "regular",
858 "value" : "gtpu"
859 }
860 ],
861 "op" : "extract"
862 },
863 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800864 "parameters" : [
865 {
866 "type" : "regular",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -0800867 "value" : "gtpu_ipv4"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800868 }
869 ],
870 "op" : "extract"
871 }
872 ],
873 "transitions" : [
874 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800875 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800876 "value" : "0x06",
877 "mask" : null,
878 "next_state" : "parse_tcp"
879 },
880 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800881 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800882 "value" : "0x11",
883 "mask" : null,
884 "next_state" : "parse_udp_inner"
885 },
886 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800887 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800888 "value" : "0x01",
889 "mask" : null,
890 "next_state" : "parse_icmp"
891 },
892 {
893 "value" : "default",
894 "mask" : null,
895 "next_state" : null
896 }
897 ],
898 "transition_key" : [
899 {
900 "type" : "field",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -0800901 "value" : ["gtpu_ipv4", "protocol"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800902 }
903 ]
904 },
905 {
906 "name" : "parse_udp_inner",
Yi Tseng27b9bc02018-04-12 14:52:40 +0800907 "id" : 12,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800908 "parser_ops" : [
909 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800910 "parameters" : [
911 {
912 "type" : "regular",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -0800913 "value" : "gtpu_udp"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800914 }
915 ],
916 "op" : "extract"
917 },
918 {
919 "parameters" : [
920 {
921 "type" : "field",
922 "value" : ["scalars", "fabric_metadata_t.l4_src_port"]
923 },
924 {
925 "type" : "field",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -0800926 "value" : ["gtpu_udp", "src_port"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800927 }
928 ],
929 "op" : "set"
930 },
931 {
932 "parameters" : [
933 {
934 "type" : "field",
935 "value" : ["scalars", "fabric_metadata_t.l4_dst_port"]
936 },
937 {
938 "type" : "field",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -0800939 "value" : ["gtpu_udp", "dst_port"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800940 }
941 ],
942 "op" : "set"
943 }
944 ],
945 "transitions" : [
946 {
947 "value" : "default",
948 "mask" : null,
949 "next_state" : null
950 }
951 ],
952 "transition_key" : []
953 }
954 ]
955 }
956 ],
Yi Tseng27b9bc02018-04-12 14:52:40 +0800957 "parse_vsets" : [],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800958 "deparsers" : [
959 {
960 "name" : "deparser",
961 "id" : 0,
962 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800963 "filename" : "./include/parser.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -0800964 "line" : 164,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800965 "column" : 8,
966 "source_fragment" : "FabricDeparser"
967 },
Yi Tseng27b9bc02018-04-12 14:52:40 +0800968 "order" : ["packet_in", "ethernet", "vlan_tag", "mpls", "arp", "gtpu_ipv4", "gtpu_udp", "gtpu", "ipv4", "ipv6", "tcp", "udp", "icmp"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800969 }
970 ],
971 "meter_arrays" : [],
972 "counter_arrays" : [
973 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800974 "name" : "FabricIngress.spgw_ingress.ue_counter",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800975 "id" : 0,
976 "is_direct" : true,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800977 "binding" : "FabricIngress.spgw_ingress.ue_cdr_table"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800978 },
979 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800980 "name" : "FabricIngress.filtering.ingress_port_vlan_counter",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800981 "id" : 1,
982 "is_direct" : true,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800983 "binding" : "FabricIngress.filtering.ingress_port_vlan"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800984 },
985 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800986 "name" : "FabricIngress.filtering.fwd_classifier_counter",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800987 "id" : 2,
988 "is_direct" : true,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800989 "binding" : "FabricIngress.filtering.fwd_classifier"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800990 },
991 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800992 "name" : "FabricIngress.forwarding.bridging_counter",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800993 "id" : 3,
994 "is_direct" : true,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800995 "binding" : "FabricIngress.forwarding.bridging"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800996 },
997 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800998 "name" : "FabricIngress.forwarding.mpls_counter",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800999 "id" : 4,
1000 "is_direct" : true,
Yi Tseng27b9bc02018-04-12 14:52:40 +08001001 "binding" : "FabricIngress.forwarding.mpls"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001002 },
1003 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001004 "name" : "FabricIngress.forwarding.unicast_v4_counter",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001005 "id" : 5,
1006 "is_direct" : true,
Yi Tseng27b9bc02018-04-12 14:52:40 +08001007 "binding" : "FabricIngress.forwarding.unicast_v4"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001008 },
1009 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001010 "name" : "FabricIngress.forwarding.acl_counter",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001011 "id" : 6,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001012 "is_direct" : true,
Yi Tseng27b9bc02018-04-12 14:52:40 +08001013 "binding" : "FabricIngress.forwarding.acl"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001014 },
1015 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001016 "name" : "FabricIngress.forwarding.multicast_v4_counter",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001017 "id" : 7,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001018 "is_direct" : true,
Yi Tseng27b9bc02018-04-12 14:52:40 +08001019 "binding" : "FabricIngress.forwarding.multicast_v4"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001020 },
1021 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001022 "name" : "FabricIngress.forwarding.unicast_v6_counter",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001023 "id" : 8,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001024 "is_direct" : true,
Yi Tseng27b9bc02018-04-12 14:52:40 +08001025 "binding" : "FabricIngress.forwarding.unicast_v6"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001026 },
1027 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001028 "name" : "FabricIngress.forwarding.multicast_v6_counter",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001029 "id" : 9,
Yi Tseng27b9bc02018-04-12 14:52:40 +08001030 "is_direct" : true,
1031 "binding" : "FabricIngress.forwarding.multicast_v6"
1032 },
1033 {
1034 "name" : "FabricIngress.next.simple_counter",
1035 "id" : 10,
1036 "is_direct" : true,
1037 "binding" : "FabricIngress.next.simple"
1038 },
1039 {
1040 "name" : "FabricIngress.next.hashed_counter",
1041 "id" : 11,
1042 "is_direct" : true,
1043 "binding" : "FabricIngress.next.hashed"
1044 },
1045 {
1046 "name" : "FabricIngress.next.multicast_counter",
1047 "id" : 12,
1048 "is_direct" : true,
1049 "binding" : "FabricIngress.next.multicast"
1050 },
1051 {
1052 "name" : "FabricIngress.port_counters_control.egress_port_counter",
1053 "id" : 13,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001054 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001055 "filename" : "./include/control/port_counter.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001056 "line" : 23,
Yi Tseng3d3956d2018-01-31 17:28:05 -08001057 "column" : 48,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001058 "source_fragment" : "egress_port_counter"
1059 },
1060 "size" : 511,
1061 "is_direct" : false
1062 },
1063 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001064 "name" : "FabricIngress.port_counters_control.ingress_port_counter",
1065 "id" : 14,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001066 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001067 "filename" : "./include/control/port_counter.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001068 "line" : 24,
Yi Tseng3d3956d2018-01-31 17:28:05 -08001069 "column" : 48,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001070 "source_fragment" : "ingress_port_counter"
1071 },
1072 "size" : 511,
1073 "is_direct" : false
1074 }
1075 ],
1076 "register_arrays" : [],
1077 "calculations" : [
1078 {
1079 "name" : "calc",
1080 "id" : 0,
1081 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001082 "filename" : "./include/checksum.p4",
Carmelo Cascone14cde402018-01-25 01:57:18 -08001083 "line" : 56,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001084 "column" : 8,
1085 "source_fragment" : "verify_checksum(hdr.ipv4.isValid(), ..."
1086 },
1087 "algo" : "csum16",
1088 "input" : [
1089 {
1090 "type" : "field",
1091 "value" : ["ipv4", "version"]
1092 },
1093 {
1094 "type" : "field",
1095 "value" : ["ipv4", "ihl"]
1096 },
1097 {
1098 "type" : "field",
1099 "value" : ["ipv4", "diffserv"]
1100 },
1101 {
1102 "type" : "field",
1103 "value" : ["ipv4", "total_len"]
1104 },
1105 {
1106 "type" : "field",
1107 "value" : ["ipv4", "identification"]
1108 },
1109 {
1110 "type" : "field",
1111 "value" : ["ipv4", "flags"]
1112 },
1113 {
1114 "type" : "field",
1115 "value" : ["ipv4", "frag_offset"]
1116 },
1117 {
1118 "type" : "field",
1119 "value" : ["ipv4", "ttl"]
1120 },
1121 {
1122 "type" : "field",
1123 "value" : ["ipv4", "protocol"]
1124 },
1125 {
1126 "type" : "field",
1127 "value" : ["ipv4", "src_addr"]
1128 },
1129 {
1130 "type" : "field",
1131 "value" : ["ipv4", "dst_addr"]
1132 }
1133 ]
1134 },
1135 {
1136 "name" : "calc_0",
1137 "id" : 1,
1138 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001139 "filename" : "./include/checksum.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001140 "line" : 28,
1141 "column" : 8,
1142 "source_fragment" : "update_checksum(hdr.ipv4.isValid(), ..."
1143 },
1144 "algo" : "csum16",
1145 "input" : [
1146 {
1147 "type" : "field",
1148 "value" : ["ipv4", "version"]
1149 },
1150 {
1151 "type" : "field",
1152 "value" : ["ipv4", "ihl"]
1153 },
1154 {
1155 "type" : "field",
1156 "value" : ["ipv4", "diffserv"]
1157 },
1158 {
1159 "type" : "field",
1160 "value" : ["ipv4", "total_len"]
1161 },
1162 {
1163 "type" : "field",
1164 "value" : ["ipv4", "identification"]
1165 },
1166 {
1167 "type" : "field",
1168 "value" : ["ipv4", "flags"]
1169 },
1170 {
1171 "type" : "field",
1172 "value" : ["ipv4", "frag_offset"]
1173 },
1174 {
1175 "type" : "field",
1176 "value" : ["ipv4", "ttl"]
1177 },
1178 {
1179 "type" : "field",
1180 "value" : ["ipv4", "protocol"]
1181 },
1182 {
1183 "type" : "field",
1184 "value" : ["ipv4", "src_addr"]
1185 },
1186 {
1187 "type" : "field",
1188 "value" : ["ipv4", "dst_addr"]
1189 }
1190 ]
1191 },
1192 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001193 "name" : "calc_1",
1194 "id" : 2,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001195 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001196 "filename" : "./include/control/../spgw.p4",
1197 "line" : 296,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001198 "column" : 8,
1199 "source_fragment" : "update_checksum(gtpu_ipv4.isValid(), ..."
1200 },
1201 "algo" : "csum16",
1202 "input" : [
1203 {
1204 "type" : "field",
1205 "value" : ["gtpu_ipv4", "version"]
1206 },
1207 {
1208 "type" : "field",
1209 "value" : ["gtpu_ipv4", "ihl"]
1210 },
1211 {
1212 "type" : "field",
1213 "value" : ["gtpu_ipv4", "diffserv"]
1214 },
1215 {
1216 "type" : "field",
1217 "value" : ["gtpu_ipv4", "total_len"]
1218 },
1219 {
1220 "type" : "field",
1221 "value" : ["gtpu_ipv4", "identification"]
1222 },
1223 {
1224 "type" : "field",
1225 "value" : ["gtpu_ipv4", "flags"]
1226 },
1227 {
1228 "type" : "field",
1229 "value" : ["gtpu_ipv4", "frag_offset"]
1230 },
1231 {
1232 "type" : "field",
1233 "value" : ["gtpu_ipv4", "ttl"]
1234 },
1235 {
1236 "type" : "field",
1237 "value" : ["gtpu_ipv4", "protocol"]
1238 },
1239 {
1240 "type" : "field",
1241 "value" : ["gtpu_ipv4", "src_addr"]
1242 },
1243 {
1244 "type" : "field",
1245 "value" : ["gtpu_ipv4", "dst_addr"]
1246 }
1247 ]
1248 }
1249 ],
1250 "learn_lists" : [],
1251 "actions" : [
1252 {
1253 "name" : "NoAction",
1254 "id" : 0,
1255 "runtime_data" : [],
1256 "primitives" : []
1257 },
1258 {
1259 "name" : "NoAction",
1260 "id" : 1,
1261 "runtime_data" : [],
1262 "primitives" : []
1263 },
1264 {
1265 "name" : "NoAction",
1266 "id" : 2,
1267 "runtime_data" : [],
1268 "primitives" : []
1269 },
1270 {
1271 "name" : "NoAction",
1272 "id" : 3,
1273 "runtime_data" : [],
1274 "primitives" : []
1275 },
1276 {
1277 "name" : "NoAction",
1278 "id" : 4,
1279 "runtime_data" : [],
1280 "primitives" : []
1281 },
1282 {
1283 "name" : "NoAction",
1284 "id" : 5,
1285 "runtime_data" : [],
1286 "primitives" : []
1287 },
1288 {
1289 "name" : "NoAction",
1290 "id" : 6,
1291 "runtime_data" : [],
1292 "primitives" : []
1293 },
1294 {
1295 "name" : "NoAction",
1296 "id" : 7,
1297 "runtime_data" : [],
1298 "primitives" : []
1299 },
1300 {
1301 "name" : "NoAction",
1302 "id" : 8,
1303 "runtime_data" : [],
1304 "primitives" : []
1305 },
1306 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001307 "name" : "NoAction",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001308 "id" : 9,
1309 "runtime_data" : [],
1310 "primitives" : []
1311 },
1312 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001313 "name" : "NoAction",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001314 "id" : 10,
1315 "runtime_data" : [],
1316 "primitives" : []
1317 },
1318 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001319 "name" : "NoAction",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001320 "id" : 11,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001321 "runtime_data" : [],
Yi Tseng27b9bc02018-04-12 14:52:40 +08001322 "primitives" : []
1323 },
1324 {
1325 "name" : "NoAction",
1326 "id" : 12,
1327 "runtime_data" : [],
1328 "primitives" : []
1329 },
1330 {
1331 "name" : "nop",
1332 "id" : 13,
1333 "runtime_data" : [],
1334 "primitives" : []
1335 },
1336 {
1337 "name" : "nop",
1338 "id" : 14,
1339 "runtime_data" : [],
1340 "primitives" : []
1341 },
1342 {
1343 "name" : "FabricIngress.spgw_ingress.drop_now",
1344 "id" : 15,
1345 "runtime_data" : [],
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001346 "primitives" : [
1347 {
1348 "op" : "drop",
1349 "parameters" : [],
1350 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001351 "filename" : "./include/control/../spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001352 "line" : 33,
1353 "column" : 8,
1354 "source_fragment" : "mark_to_drop()"
1355 }
1356 },
1357 {
1358 "op" : "exit",
1359 "parameters" : [],
1360 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001361 "filename" : "./include/control/../spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001362 "line" : 34,
1363 "column" : 8,
1364 "source_fragment" : "exit"
1365 }
1366 }
1367 ]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001368 },
1369 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001370 "name" : "FabricIngress.spgw_ingress.gtpu_decap",
1371 "id" : 16,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001372 "runtime_data" : [],
1373 "primitives" : [
1374 {
1375 "op" : "remove_header",
1376 "parameters" : [
1377 {
1378 "type" : "header",
1379 "value" : "gtpu_ipv4"
1380 }
1381 ],
1382 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001383 "filename" : "./include/control/../spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001384 "line" : 38,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001385 "column" : 8,
1386 "source_fragment" : "gtpu_ipv4.setInvalid()"
1387 }
1388 },
1389 {
1390 "op" : "remove_header",
1391 "parameters" : [
1392 {
1393 "type" : "header",
1394 "value" : "gtpu_udp"
1395 }
1396 ],
1397 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001398 "filename" : "./include/control/../spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001399 "line" : 39,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001400 "column" : 8,
1401 "source_fragment" : "gtpu_udp.setInvalid()"
1402 }
1403 },
1404 {
1405 "op" : "remove_header",
1406 "parameters" : [
1407 {
1408 "type" : "header",
1409 "value" : "gtpu"
1410 }
1411 ],
1412 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001413 "filename" : "./include/control/../spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001414 "line" : 40,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001415 "column" : 8,
1416 "source_fragment" : "gtpu.setInvalid()"
1417 }
1418 }
1419 ]
1420 },
1421 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001422 "name" : "FabricIngress.spgw_ingress.set_dl_sess_info",
1423 "id" : 17,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001424 "runtime_data" : [
1425 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001426 "name" : "teid",
1427 "bitwidth" : 32
1428 },
1429 {
1430 "name" : "s1u_enb_addr",
1431 "bitwidth" : 32
1432 },
1433 {
1434 "name" : "s1u_sgw_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001435 "bitwidth" : 32
1436 }
1437 ],
1438 "primitives" : [
1439 {
1440 "op" : "assign",
1441 "parameters" : [
1442 {
1443 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08001444 "value" : ["userMetadata.spgw", "teid"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001445 },
1446 {
1447 "type" : "runtime_data",
1448 "value" : 0
1449 }
1450 ],
1451 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001452 "filename" : "./include/control/../spgw.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001453 "line" : 46,
1454 "column" : 8,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001455 "source_fragment" : "spgw_meta.teid = teid"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001456 }
1457 },
1458 {
1459 "op" : "assign",
1460 "parameters" : [
1461 {
1462 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08001463 "value" : ["userMetadata.spgw", "s1u_enb_addr"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001464 },
1465 {
1466 "type" : "runtime_data",
1467 "value" : 1
1468 }
1469 ],
1470 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001471 "filename" : "./include/control/../spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001472 "line" : 47,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001473 "column" : 8,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001474 "source_fragment" : "spgw_meta.s1u_enb_addr = s1u_enb_addr"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001475 }
1476 },
1477 {
1478 "op" : "assign",
1479 "parameters" : [
1480 {
1481 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08001482 "value" : ["userMetadata.spgw", "s1u_sgw_addr"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001483 },
1484 {
1485 "type" : "runtime_data",
1486 "value" : 2
1487 }
1488 ],
1489 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001490 "filename" : "./include/control/../spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001491 "line" : 48,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001492 "column" : 8,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001493 "source_fragment" : "spgw_meta.s1u_sgw_addr = s1u_sgw_addr"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001494 }
1495 }
1496 ]
1497 },
1498 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001499 "name" : "FabricIngress.spgw_ingress.update_ue_cdr",
1500 "id" : 18,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001501 "runtime_data" : [],
1502 "primitives" : []
1503 },
1504 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001505 "name" : "FabricIngress.filtering.drop",
1506 "id" : 19,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001507 "runtime_data" : [],
1508 "primitives" : [
1509 {
1510 "op" : "drop",
1511 "parameters" : [],
1512 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001513 "filename" : "./include/control/filtering.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001514 "line" : 31,
1515 "column" : 8,
1516 "source_fragment" : "mark_to_drop()"
1517 }
1518 }
1519 ]
1520 },
1521 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001522 "name" : "FabricIngress.filtering.set_vlan",
1523 "id" : 20,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001524 "runtime_data" : [
1525 {
1526 "name" : "new_vlan_id",
1527 "bitwidth" : 12
1528 }
1529 ],
1530 "primitives" : [
1531 {
1532 "op" : "assign",
1533 "parameters" : [
1534 {
1535 "type" : "field",
1536 "value" : ["vlan_tag", "vlan_id"]
1537 },
1538 {
1539 "type" : "runtime_data",
1540 "value" : 0
1541 }
1542 ],
1543 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001544 "filename" : "./include/control/filtering.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001545 "line" : 35,
1546 "column" : 8,
1547 "source_fragment" : "hdr.vlan_tag.vlan_id = new_vlan_id"
1548 }
1549 }
1550 ]
1551 },
1552 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001553 "name" : "FabricIngress.filtering.push_internal_vlan",
1554 "id" : 21,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001555 "runtime_data" : [
1556 {
1557 "name" : "new_vlan_id",
1558 "bitwidth" : 12
1559 }
1560 ],
1561 "primitives" : [
1562 {
1563 "op" : "add_header",
1564 "parameters" : [
1565 {
1566 "type" : "header",
1567 "value" : "vlan_tag"
1568 }
1569 ],
1570 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001571 "filename" : "./include/control/filtering.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001572 "line" : 41,
1573 "column" : 8,
1574 "source_fragment" : "hdr.vlan_tag.setValid()"
1575 }
1576 },
1577 {
1578 "op" : "assign",
1579 "parameters" : [
1580 {
1581 "type" : "field",
1582 "value" : ["vlan_tag", "cfi"]
1583 },
1584 {
1585 "type" : "hexstr",
1586 "value" : "0x00"
1587 }
1588 ],
1589 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001590 "filename" : "./include/control/filtering.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001591 "line" : 42,
1592 "column" : 8,
1593 "source_fragment" : "hdr.vlan_tag.cfi = 0"
1594 }
1595 },
1596 {
1597 "op" : "assign",
1598 "parameters" : [
1599 {
1600 "type" : "field",
1601 "value" : ["vlan_tag", "pri"]
1602 },
1603 {
1604 "type" : "hexstr",
1605 "value" : "0x00"
1606 }
1607 ],
1608 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001609 "filename" : "./include/control/filtering.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001610 "line" : 43,
1611 "column" : 8,
1612 "source_fragment" : "hdr.vlan_tag.pri = 0"
1613 }
1614 },
1615 {
1616 "op" : "assign",
1617 "parameters" : [
1618 {
1619 "type" : "field",
1620 "value" : ["vlan_tag", "ether_type"]
1621 },
1622 {
1623 "type" : "field",
1624 "value" : ["ethernet", "ether_type"]
1625 }
1626 ],
1627 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001628 "filename" : "./include/control/filtering.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001629 "line" : 44,
1630 "column" : 8,
1631 "source_fragment" : "hdr.vlan_tag.ether_type = hdr.ethernet.ether_type"
1632 }
1633 },
1634 {
1635 "op" : "assign",
1636 "parameters" : [
1637 {
1638 "type" : "field",
1639 "value" : ["ethernet", "ether_type"]
1640 },
1641 {
1642 "type" : "hexstr",
1643 "value" : "0x8100"
1644 }
1645 ],
1646 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001647 "filename" : "./include/control/../define.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001648 "line" : 32,
1649 "column" : 31,
1650 "source_fragment" : "0x8100; ..."
1651 }
1652 },
1653 {
1654 "op" : "assign",
1655 "parameters" : [
1656 {
1657 "type" : "field",
1658 "value" : ["vlan_tag", "vlan_id"]
1659 },
1660 {
1661 "type" : "runtime_data",
1662 "value" : 0
1663 }
1664 ],
1665 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001666 "filename" : "./include/control/filtering.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001667 "line" : 35,
1668 "column" : 8,
1669 "source_fragment" : "hdr.vlan_tag.vlan_id = new_vlan_id; ..."
1670 }
1671 },
1672 {
1673 "op" : "assign",
1674 "parameters" : [
1675 {
1676 "type" : "field",
1677 "value" : ["scalars", "fabric_metadata_t.pop_vlan_at_egress"]
1678 },
1679 {
1680 "type" : "expression",
1681 "value" : {
1682 "type" : "expression",
1683 "value" : {
1684 "op" : "b2d",
1685 "left" : null,
1686 "right" : {
1687 "type" : "bool",
1688 "value" : true
1689 }
1690 }
1691 }
1692 }
1693 ],
1694 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001695 "filename" : "./include/control/filtering.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001696 "line" : 49,
1697 "column" : 8,
1698 "source_fragment" : "fabric_metadata.pop_vlan_at_egress = true"
1699 }
1700 }
1701 ]
1702 },
1703 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001704 "name" : "FabricIngress.filtering.set_forwarding_type",
1705 "id" : 22,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001706 "runtime_data" : [
1707 {
1708 "name" : "fwd_type",
1709 "bitwidth" : 3
1710 }
1711 ],
1712 "primitives" : [
1713 {
1714 "op" : "assign",
1715 "parameters" : [
1716 {
1717 "type" : "field",
1718 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
1719 },
1720 {
1721 "type" : "runtime_data",
1722 "value" : 0
1723 }
1724 ],
1725 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001726 "filename" : "./include/control/filtering.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001727 "line" : 53,
1728 "column" : 8,
1729 "source_fragment" : "fabric_metadata.fwd_type = fwd_type"
1730 }
1731 }
1732 ]
1733 },
1734 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001735 "name" : "FabricIngress.forwarding.drop",
1736 "id" : 23,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001737 "runtime_data" : [],
1738 "primitives" : [
1739 {
1740 "op" : "drop",
1741 "parameters" : [],
1742 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001743 "filename" : "./include/control/forwarding.p4",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001744 "line" : 36,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001745 "column" : 8,
1746 "source_fragment" : "mark_to_drop()"
1747 }
1748 }
1749 ]
1750 },
1751 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001752 "name" : "FabricIngress.forwarding.set_next_id",
1753 "id" : 24,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001754 "runtime_data" : [
1755 {
1756 "name" : "next_id",
1757 "bitwidth" : 32
1758 }
1759 ],
1760 "primitives" : [
1761 {
1762 "op" : "assign",
1763 "parameters" : [
1764 {
1765 "type" : "field",
1766 "value" : ["scalars", "fabric_metadata_t.next_id"]
1767 },
1768 {
1769 "type" : "runtime_data",
1770 "value" : 0
1771 }
1772 ],
1773 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001774 "filename" : "./include/control/forwarding.p4",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001775 "line" : 40,
1776 "column" : 8,
1777 "source_fragment" : "fabric_metadata.next_id = next_id"
1778 }
1779 }
1780 ]
1781 },
1782 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001783 "name" : "FabricIngress.forwarding.set_next_id",
1784 "id" : 25,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001785 "runtime_data" : [
1786 {
1787 "name" : "next_id",
1788 "bitwidth" : 32
1789 }
1790 ],
1791 "primitives" : [
1792 {
1793 "op" : "assign",
1794 "parameters" : [
1795 {
1796 "type" : "field",
1797 "value" : ["scalars", "fabric_metadata_t.next_id"]
1798 },
1799 {
1800 "type" : "runtime_data",
1801 "value" : 0
1802 }
1803 ],
1804 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001805 "filename" : "./include/control/forwarding.p4",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001806 "line" : 40,
1807 "column" : 8,
1808 "source_fragment" : "fabric_metadata.next_id = next_id"
1809 }
1810 }
1811 ]
1812 },
1813 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001814 "name" : "FabricIngress.forwarding.set_next_id",
1815 "id" : 26,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001816 "runtime_data" : [
1817 {
1818 "name" : "next_id",
1819 "bitwidth" : 32
1820 }
1821 ],
1822 "primitives" : [
1823 {
1824 "op" : "assign",
1825 "parameters" : [
1826 {
1827 "type" : "field",
1828 "value" : ["scalars", "fabric_metadata_t.next_id"]
1829 },
1830 {
1831 "type" : "runtime_data",
1832 "value" : 0
1833 }
1834 ],
1835 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001836 "filename" : "./include/control/forwarding.p4",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001837 "line" : 40,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001838 "column" : 8,
1839 "source_fragment" : "fabric_metadata.next_id = next_id"
1840 }
1841 }
1842 ]
1843 },
1844 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001845 "name" : "FabricIngress.forwarding.set_next_id",
1846 "id" : 27,
1847 "runtime_data" : [
1848 {
1849 "name" : "next_id",
1850 "bitwidth" : 32
1851 }
1852 ],
1853 "primitives" : [
1854 {
1855 "op" : "assign",
1856 "parameters" : [
1857 {
1858 "type" : "field",
1859 "value" : ["scalars", "fabric_metadata_t.next_id"]
1860 },
1861 {
1862 "type" : "runtime_data",
1863 "value" : 0
1864 }
1865 ],
1866 "source_info" : {
1867 "filename" : "./include/control/forwarding.p4",
1868 "line" : 40,
1869 "column" : 8,
1870 "source_fragment" : "fabric_metadata.next_id = next_id"
1871 }
1872 }
1873 ]
1874 },
1875 {
1876 "name" : "FabricIngress.forwarding.set_next_id",
1877 "id" : 28,
1878 "runtime_data" : [
1879 {
1880 "name" : "next_id",
1881 "bitwidth" : 32
1882 }
1883 ],
1884 "primitives" : [
1885 {
1886 "op" : "assign",
1887 "parameters" : [
1888 {
1889 "type" : "field",
1890 "value" : ["scalars", "fabric_metadata_t.next_id"]
1891 },
1892 {
1893 "type" : "runtime_data",
1894 "value" : 0
1895 }
1896 ],
1897 "source_info" : {
1898 "filename" : "./include/control/forwarding.p4",
1899 "line" : 40,
1900 "column" : 8,
1901 "source_fragment" : "fabric_metadata.next_id = next_id"
1902 }
1903 }
1904 ]
1905 },
1906 {
1907 "name" : "FabricIngress.forwarding.set_next_id",
1908 "id" : 29,
1909 "runtime_data" : [
1910 {
1911 "name" : "next_id",
1912 "bitwidth" : 32
1913 }
1914 ],
1915 "primitives" : [
1916 {
1917 "op" : "assign",
1918 "parameters" : [
1919 {
1920 "type" : "field",
1921 "value" : ["scalars", "fabric_metadata_t.next_id"]
1922 },
1923 {
1924 "type" : "runtime_data",
1925 "value" : 0
1926 }
1927 ],
1928 "source_info" : {
1929 "filename" : "./include/control/forwarding.p4",
1930 "line" : 40,
1931 "column" : 8,
1932 "source_fragment" : "fabric_metadata.next_id = next_id"
1933 }
1934 }
1935 ]
1936 },
1937 {
1938 "name" : "FabricIngress.forwarding.pop_mpls_and_next",
1939 "id" : 30,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001940 "runtime_data" : [
1941 {
1942 "name" : "next_id",
1943 "bitwidth" : 32
1944 }
1945 ],
1946 "primitives" : [
1947 {
1948 "op" : "remove_header",
1949 "parameters" : [
1950 {
1951 "type" : "header",
1952 "value" : "mpls"
1953 }
1954 ],
1955 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001956 "filename" : "./include/control/forwarding.p4",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001957 "line" : 44,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001958 "column" : 8,
1959 "source_fragment" : "hdr.mpls.setInvalid()"
1960 }
1961 },
1962 {
1963 "op" : "assign",
1964 "parameters" : [
1965 {
1966 "type" : "field",
1967 "value" : ["scalars", "fabric_metadata_t.next_id"]
1968 },
1969 {
1970 "type" : "runtime_data",
1971 "value" : 0
1972 }
1973 ],
1974 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001975 "filename" : "./include/control/forwarding.p4",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001976 "line" : 45,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001977 "column" : 8,
1978 "source_fragment" : "fabric_metadata.next_id = next_id"
1979 }
1980 }
1981 ]
1982 },
1983 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001984 "name" : "FabricIngress.forwarding.duplicate_to_controller",
1985 "id" : 31,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001986 "runtime_data" : [],
1987 "primitives" : [
1988 {
1989 "op" : "assign",
1990 "parameters" : [
1991 {
1992 "type" : "field",
1993 "value" : ["standard_metadata", "egress_spec"]
1994 },
1995 {
1996 "type" : "hexstr",
1997 "value" : "0x00ff"
1998 }
1999 ],
2000 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002001 "filename" : "./include/control/forwarding.p4",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002002 "line" : 49,
Carmelo Casconeb531b682018-01-30 17:55:56 -08002003 "column" : 8,
2004 "source_fragment" : "standard_metadata.egress_spec = 255"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002005 }
2006 }
2007 ]
2008 },
2009 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002010 "name" : "FabricIngress.next.output",
2011 "id" : 32,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002012 "runtime_data" : [
2013 {
2014 "name" : "port_num",
2015 "bitwidth" : 9
2016 }
2017 ],
2018 "primitives" : [
2019 {
2020 "op" : "assign",
2021 "parameters" : [
2022 {
2023 "type" : "field",
2024 "value" : ["standard_metadata", "egress_spec"]
2025 },
2026 {
2027 "type" : "runtime_data",
2028 "value" : 0
2029 }
2030 ],
2031 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002032 "filename" : "./include/control/next.p4",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002033 "line" : 32,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002034 "column" : 8,
2035 "source_fragment" : "standard_metadata.egress_spec = port_num"
2036 }
2037 }
2038 ]
2039 },
2040 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002041 "name" : "FabricIngress.next.set_vlan_output",
2042 "id" : 33,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002043 "runtime_data" : [
2044 {
2045 "name" : "new_vlan_id",
2046 "bitwidth" : 12
2047 },
2048 {
2049 "name" : "port_num",
2050 "bitwidth" : 9
2051 }
2052 ],
2053 "primitives" : [
2054 {
2055 "op" : "assign",
2056 "parameters" : [
2057 {
2058 "type" : "field",
2059 "value" : ["vlan_tag", "vlan_id"]
2060 },
2061 {
2062 "type" : "runtime_data",
2063 "value" : 0
2064 }
2065 ],
2066 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002067 "filename" : "./include/control/next.p4",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002068 "line" : 36,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002069 "column" : 8,
2070 "source_fragment" : "hdr.vlan_tag.vlan_id = new_vlan_id"
2071 }
2072 },
2073 {
2074 "op" : "assign",
2075 "parameters" : [
2076 {
2077 "type" : "field",
2078 "value" : ["scalars", "fabric_metadata_t.pop_vlan_at_egress"]
2079 },
2080 {
2081 "type" : "expression",
2082 "value" : {
2083 "type" : "expression",
2084 "value" : {
2085 "op" : "b2d",
2086 "left" : null,
2087 "right" : {
2088 "type" : "bool",
2089 "value" : false
2090 }
2091 }
2092 }
2093 }
2094 ],
2095 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002096 "filename" : "./include/control/next.p4",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002097 "line" : 39,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002098 "column" : 8,
2099 "source_fragment" : "fabric_metadata.pop_vlan_at_egress = false"
2100 }
2101 },
2102 {
2103 "op" : "assign",
2104 "parameters" : [
2105 {
2106 "type" : "field",
2107 "value" : ["standard_metadata", "egress_spec"]
2108 },
2109 {
2110 "type" : "runtime_data",
2111 "value" : 1
2112 }
2113 ],
2114 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002115 "filename" : "./include/control/next.p4",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002116 "line" : 32,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002117 "column" : 8,
2118 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2119 }
2120 }
2121 ]
2122 },
2123 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002124 "name" : "FabricIngress.next.l3_routing",
2125 "id" : 34,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002126 "runtime_data" : [
2127 {
2128 "name" : "port_num",
2129 "bitwidth" : 9
2130 },
2131 {
2132 "name" : "smac",
2133 "bitwidth" : 48
2134 },
2135 {
2136 "name" : "dmac",
2137 "bitwidth" : 48
2138 }
2139 ],
2140 "primitives" : [
2141 {
2142 "op" : "assign",
2143 "parameters" : [
2144 {
2145 "type" : "field",
2146 "value" : ["ethernet", "src_addr"]
2147 },
2148 {
2149 "type" : "runtime_data",
2150 "value" : 1
2151 }
2152 ],
2153 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002154 "filename" : "./include/control/next.p4",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002155 "line" : 44,
2156 "column" : 8,
2157 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2158 }
2159 },
2160 {
2161 "op" : "assign",
2162 "parameters" : [
2163 {
2164 "type" : "field",
2165 "value" : ["ethernet", "dst_addr"]
2166 },
2167 {
2168 "type" : "runtime_data",
2169 "value" : 2
2170 }
2171 ],
2172 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002173 "filename" : "./include/control/next.p4",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002174 "line" : 48,
2175 "column" : 8,
2176 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2177 }
2178 },
2179 {
2180 "op" : "assign",
2181 "parameters" : [
2182 {
2183 "type" : "field",
2184 "value" : ["standard_metadata", "egress_spec"]
2185 },
2186 {
2187 "type" : "runtime_data",
2188 "value" : 0
2189 }
2190 ],
2191 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002192 "filename" : "./include/control/next.p4",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002193 "line" : 32,
2194 "column" : 8,
2195 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2196 }
2197 }
2198 ]
2199 },
2200 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002201 "name" : "FabricIngress.next.l3_routing",
2202 "id" : 35,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002203 "runtime_data" : [
2204 {
2205 "name" : "port_num",
2206 "bitwidth" : 9
2207 },
2208 {
2209 "name" : "smac",
2210 "bitwidth" : 48
2211 },
2212 {
2213 "name" : "dmac",
2214 "bitwidth" : 48
2215 }
2216 ],
2217 "primitives" : [
2218 {
2219 "op" : "assign",
2220 "parameters" : [
2221 {
2222 "type" : "field",
2223 "value" : ["ethernet", "src_addr"]
2224 },
2225 {
2226 "type" : "runtime_data",
2227 "value" : 1
2228 }
2229 ],
2230 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002231 "filename" : "./include/control/next.p4",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002232 "line" : 44,
2233 "column" : 8,
2234 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2235 }
2236 },
2237 {
2238 "op" : "assign",
2239 "parameters" : [
2240 {
2241 "type" : "field",
2242 "value" : ["ethernet", "dst_addr"]
2243 },
2244 {
2245 "type" : "runtime_data",
2246 "value" : 2
2247 }
2248 ],
2249 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002250 "filename" : "./include/control/next.p4",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002251 "line" : 48,
2252 "column" : 8,
2253 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2254 }
2255 },
2256 {
2257 "op" : "assign",
2258 "parameters" : [
2259 {
2260 "type" : "field",
2261 "value" : ["standard_metadata", "egress_spec"]
2262 },
2263 {
2264 "type" : "runtime_data",
2265 "value" : 0
2266 }
2267 ],
2268 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002269 "filename" : "./include/control/next.p4",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002270 "line" : 32,
2271 "column" : 8,
2272 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2273 }
2274 }
2275 ]
2276 },
2277 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002278 "name" : "FabricIngress.next.mpls_routing_v4",
2279 "id" : 36,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002280 "runtime_data" : [
2281 {
2282 "name" : "port_num",
2283 "bitwidth" : 9
2284 },
2285 {
2286 "name" : "smac",
2287 "bitwidth" : 48
2288 },
2289 {
2290 "name" : "dmac",
2291 "bitwidth" : 48
2292 },
2293 {
2294 "name" : "label",
2295 "bitwidth" : 20
2296 }
2297 ],
2298 "primitives" : [
2299 {
2300 "op" : "assign",
2301 "parameters" : [
2302 {
2303 "type" : "field",
2304 "value" : ["ethernet", "src_addr"]
2305 },
2306 {
2307 "type" : "runtime_data",
2308 "value" : 1
2309 }
2310 ],
2311 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002312 "filename" : "./include/control/next.p4",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002313 "line" : 44,
2314 "column" : 8,
2315 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2316 }
2317 },
2318 {
2319 "op" : "assign",
2320 "parameters" : [
2321 {
2322 "type" : "field",
2323 "value" : ["ethernet", "dst_addr"]
2324 },
2325 {
2326 "type" : "runtime_data",
2327 "value" : 2
2328 }
2329 ],
2330 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002331 "filename" : "./include/control/next.p4",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002332 "line" : 48,
2333 "column" : 8,
2334 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2335 }
2336 },
2337 {
2338 "op" : "assign",
2339 "parameters" : [
2340 {
2341 "type" : "field",
2342 "value" : ["standard_metadata", "egress_spec"]
2343 },
2344 {
2345 "type" : "runtime_data",
2346 "value" : 0
2347 }
2348 ],
2349 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002350 "filename" : "./include/control/next.p4",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002351 "line" : 32,
2352 "column" : 8,
2353 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2354 }
2355 },
2356 {
2357 "op" : "add_header",
2358 "parameters" : [
2359 {
2360 "type" : "header",
2361 "value" : "mpls"
2362 }
2363 ],
2364 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002365 "filename" : "./include/control/next.p4",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002366 "line" : 59,
2367 "column" : 8,
2368 "source_fragment" : "hdr.mpls.setValid()"
2369 }
2370 },
2371 {
2372 "op" : "assign",
2373 "parameters" : [
2374 {
2375 "type" : "field",
2376 "value" : ["vlan_tag", "ether_type"]
2377 },
2378 {
2379 "type" : "hexstr",
2380 "value" : "0x8847"
2381 }
2382 ],
2383 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002384 "filename" : "./include/control/../define.p4",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002385 "line" : 33,
2386 "column" : 31,
2387 "source_fragment" : "0x8847; ..."
2388 }
2389 },
2390 {
2391 "op" : "assign",
2392 "parameters" : [
2393 {
2394 "type" : "field",
2395 "value" : ["mpls", "label"]
2396 },
2397 {
2398 "type" : "runtime_data",
2399 "value" : 3
2400 }
2401 ],
2402 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002403 "filename" : "./include/control/next.p4",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002404 "line" : 61,
2405 "column" : 8,
2406 "source_fragment" : "hdr.mpls.label = label; ..."
2407 }
2408 },
2409 {
2410 "op" : "assign",
2411 "parameters" : [
2412 {
2413 "type" : "field",
2414 "value" : ["mpls", "tc"]
2415 },
2416 {
2417 "type" : "hexstr",
2418 "value" : "0x00"
2419 }
2420 ],
2421 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002422 "filename" : "./include/control/next.p4",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002423 "line" : 62,
2424 "column" : 8,
2425 "source_fragment" : "hdr.mpls.tc = tc; ..."
2426 }
2427 },
2428 {
2429 "op" : "assign",
2430 "parameters" : [
2431 {
2432 "type" : "field",
2433 "value" : ["mpls", "bos"]
2434 },
2435 {
2436 "type" : "hexstr",
2437 "value" : "0x01"
2438 }
2439 ],
2440 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002441 "filename" : "./include/control/next.p4",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002442 "line" : 63,
2443 "column" : 8,
2444 "source_fragment" : "hdr.mpls.bos = 1w1"
2445 }
2446 },
2447 {
2448 "op" : "assign",
2449 "parameters" : [
2450 {
2451 "type" : "field",
2452 "value" : ["mpls", "ttl"]
2453 },
2454 {
2455 "type" : "hexstr",
2456 "value" : "0x40"
2457 }
2458 ],
2459 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002460 "filename" : "./include/control/../define.p4",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002461 "line" : 67,
2462 "column" : 32,
2463 "source_fragment" : "64; ..."
2464 }
2465 }
2466 ]
2467 },
2468 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002469 "name" : "FabricIngress.next.mpls_routing_v4",
2470 "id" : 37,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002471 "runtime_data" : [
2472 {
2473 "name" : "port_num",
2474 "bitwidth" : 9
2475 },
2476 {
2477 "name" : "smac",
2478 "bitwidth" : 48
2479 },
2480 {
2481 "name" : "dmac",
2482 "bitwidth" : 48
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002483 },
2484 {
2485 "name" : "label",
2486 "bitwidth" : 20
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002487 }
2488 ],
2489 "primitives" : [
2490 {
2491 "op" : "assign",
2492 "parameters" : [
2493 {
2494 "type" : "field",
2495 "value" : ["ethernet", "src_addr"]
2496 },
2497 {
2498 "type" : "runtime_data",
2499 "value" : 1
2500 }
2501 ],
2502 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002503 "filename" : "./include/control/next.p4",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002504 "line" : 44,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002505 "column" : 8,
2506 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2507 }
2508 },
2509 {
2510 "op" : "assign",
2511 "parameters" : [
2512 {
2513 "type" : "field",
2514 "value" : ["ethernet", "dst_addr"]
2515 },
2516 {
2517 "type" : "runtime_data",
2518 "value" : 2
2519 }
2520 ],
2521 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002522 "filename" : "./include/control/next.p4",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002523 "line" : 48,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002524 "column" : 8,
2525 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2526 }
2527 },
2528 {
2529 "op" : "assign",
2530 "parameters" : [
2531 {
2532 "type" : "field",
2533 "value" : ["standard_metadata", "egress_spec"]
2534 },
2535 {
2536 "type" : "runtime_data",
2537 "value" : 0
2538 }
2539 ],
2540 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002541 "filename" : "./include/control/next.p4",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002542 "line" : 32,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002543 "column" : 8,
2544 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2545 }
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002546 },
2547 {
2548 "op" : "add_header",
2549 "parameters" : [
2550 {
2551 "type" : "header",
2552 "value" : "mpls"
2553 }
2554 ],
2555 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002556 "filename" : "./include/control/next.p4",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002557 "line" : 59,
2558 "column" : 8,
2559 "source_fragment" : "hdr.mpls.setValid()"
2560 }
2561 },
2562 {
2563 "op" : "assign",
2564 "parameters" : [
2565 {
2566 "type" : "field",
2567 "value" : ["vlan_tag", "ether_type"]
2568 },
2569 {
2570 "type" : "hexstr",
2571 "value" : "0x8847"
2572 }
2573 ],
2574 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002575 "filename" : "./include/control/../define.p4",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002576 "line" : 33,
2577 "column" : 31,
2578 "source_fragment" : "0x8847; ..."
2579 }
2580 },
2581 {
2582 "op" : "assign",
2583 "parameters" : [
2584 {
2585 "type" : "field",
2586 "value" : ["mpls", "label"]
2587 },
2588 {
2589 "type" : "runtime_data",
2590 "value" : 3
2591 }
2592 ],
2593 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002594 "filename" : "./include/control/next.p4",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002595 "line" : 61,
2596 "column" : 8,
2597 "source_fragment" : "hdr.mpls.label = label; ..."
2598 }
2599 },
2600 {
2601 "op" : "assign",
2602 "parameters" : [
2603 {
2604 "type" : "field",
2605 "value" : ["mpls", "tc"]
2606 },
2607 {
2608 "type" : "hexstr",
2609 "value" : "0x00"
2610 }
2611 ],
2612 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002613 "filename" : "./include/control/next.p4",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002614 "line" : 62,
2615 "column" : 8,
2616 "source_fragment" : "hdr.mpls.tc = tc; ..."
2617 }
2618 },
2619 {
2620 "op" : "assign",
2621 "parameters" : [
2622 {
2623 "type" : "field",
2624 "value" : ["mpls", "bos"]
2625 },
2626 {
2627 "type" : "hexstr",
2628 "value" : "0x01"
2629 }
2630 ],
2631 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002632 "filename" : "./include/control/next.p4",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002633 "line" : 63,
2634 "column" : 8,
2635 "source_fragment" : "hdr.mpls.bos = 1w1"
2636 }
2637 },
2638 {
2639 "op" : "assign",
2640 "parameters" : [
2641 {
2642 "type" : "field",
2643 "value" : ["mpls", "ttl"]
2644 },
2645 {
2646 "type" : "hexstr",
2647 "value" : "0x40"
2648 }
2649 ],
2650 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002651 "filename" : "./include/control/../define.p4",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002652 "line" : 67,
2653 "column" : 32,
2654 "source_fragment" : "64; ..."
2655 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002656 }
2657 ]
2658 },
2659 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002660 "name" : "FabricIngress.next.mpls_routing_v6",
2661 "id" : 38,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002662 "runtime_data" : [
2663 {
2664 "name" : "port_num",
2665 "bitwidth" : 9
2666 },
2667 {
2668 "name" : "smac",
2669 "bitwidth" : 48
2670 },
2671 {
2672 "name" : "dmac",
2673 "bitwidth" : 48
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002674 },
2675 {
2676 "name" : "label",
2677 "bitwidth" : 20
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002678 }
2679 ],
2680 "primitives" : [
2681 {
2682 "op" : "assign",
2683 "parameters" : [
2684 {
2685 "type" : "field",
2686 "value" : ["ethernet", "src_addr"]
2687 },
2688 {
2689 "type" : "runtime_data",
2690 "value" : 1
2691 }
2692 ],
2693 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002694 "filename" : "./include/control/next.p4",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002695 "line" : 44,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002696 "column" : 8,
2697 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2698 }
2699 },
2700 {
2701 "op" : "assign",
2702 "parameters" : [
2703 {
2704 "type" : "field",
2705 "value" : ["ethernet", "dst_addr"]
2706 },
2707 {
2708 "type" : "runtime_data",
2709 "value" : 2
2710 }
2711 ],
2712 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002713 "filename" : "./include/control/next.p4",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002714 "line" : 48,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002715 "column" : 8,
2716 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2717 }
2718 },
2719 {
2720 "op" : "assign",
2721 "parameters" : [
2722 {
2723 "type" : "field",
2724 "value" : ["standard_metadata", "egress_spec"]
2725 },
2726 {
2727 "type" : "runtime_data",
2728 "value" : 0
2729 }
2730 ],
2731 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002732 "filename" : "./include/control/next.p4",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002733 "line" : 32,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002734 "column" : 8,
2735 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2736 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002737 },
2738 {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002739 "op" : "add_header",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002740 "parameters" : [
2741 {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002742 "type" : "header",
2743 "value" : "mpls"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002744 }
2745 ],
2746 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002747 "filename" : "./include/control/next.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002748 "line" : 59,
2749 "column" : 8,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002750 "source_fragment" : "hdr.mpls.setValid()"
2751 }
2752 },
2753 {
2754 "op" : "assign",
2755 "parameters" : [
2756 {
2757 "type" : "field",
2758 "value" : ["vlan_tag", "ether_type"]
2759 },
2760 {
2761 "type" : "hexstr",
2762 "value" : "0x8847"
2763 }
2764 ],
2765 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002766 "filename" : "./include/control/../define.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002767 "line" : 33,
2768 "column" : 31,
2769 "source_fragment" : "0x8847; ..."
2770 }
2771 },
2772 {
2773 "op" : "assign",
2774 "parameters" : [
2775 {
2776 "type" : "field",
2777 "value" : ["mpls", "label"]
2778 },
2779 {
2780 "type" : "runtime_data",
2781 "value" : 3
2782 }
2783 ],
2784 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002785 "filename" : "./include/control/next.p4",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002786 "line" : 61,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002787 "column" : 8,
2788 "source_fragment" : "hdr.mpls.label = label; ..."
2789 }
2790 },
2791 {
2792 "op" : "assign",
2793 "parameters" : [
2794 {
2795 "type" : "field",
2796 "value" : ["mpls", "tc"]
2797 },
2798 {
2799 "type" : "hexstr",
2800 "value" : "0x00"
2801 }
2802 ],
2803 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002804 "filename" : "./include/control/next.p4",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002805 "line" : 62,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002806 "column" : 8,
2807 "source_fragment" : "hdr.mpls.tc = tc; ..."
2808 }
2809 },
2810 {
2811 "op" : "assign",
2812 "parameters" : [
2813 {
2814 "type" : "field",
2815 "value" : ["mpls", "bos"]
2816 },
2817 {
2818 "type" : "hexstr",
2819 "value" : "0x01"
2820 }
2821 ],
2822 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002823 "filename" : "./include/control/next.p4",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002824 "line" : 63,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002825 "column" : 8,
2826 "source_fragment" : "hdr.mpls.bos = 1w1"
2827 }
2828 },
2829 {
2830 "op" : "assign",
2831 "parameters" : [
2832 {
2833 "type" : "field",
2834 "value" : ["mpls", "ttl"]
2835 },
2836 {
2837 "type" : "hexstr",
2838 "value" : "0x40"
2839 }
2840 ],
2841 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002842 "filename" : "./include/control/../define.p4",
Yi Tseng3d3956d2018-01-31 17:28:05 -08002843 "line" : 67,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002844 "column" : 32,
2845 "source_fragment" : "64; ..."
2846 }
2847 }
2848 ]
2849 },
2850 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002851 "name" : "FabricIngress.next.set_mcast_group",
2852 "id" : 39,
2853 "runtime_data" : [
2854 {
2855 "name" : "gid",
2856 "bitwidth" : 16
2857 },
2858 {
2859 "name" : "smac",
2860 "bitwidth" : 48
2861 }
2862 ],
2863 "primitives" : [
2864 {
2865 "op" : "assign",
2866 "parameters" : [
2867 {
2868 "type" : "field",
2869 "value" : ["standard_metadata", "mcast_grp"]
2870 },
2871 {
2872 "type" : "runtime_data",
2873 "value" : 0
2874 }
2875 ],
2876 "source_info" : {
2877 "filename" : "./include/control/next.p4",
2878 "line" : 122,
2879 "column" : 8,
2880 "source_fragment" : "standard_metadata.mcast_grp = gid"
2881 }
2882 },
2883 {
2884 "op" : "assign",
2885 "parameters" : [
2886 {
2887 "type" : "field",
2888 "value" : ["ethernet", "src_addr"]
2889 },
2890 {
2891 "type" : "runtime_data",
2892 "value" : 1
2893 }
2894 ],
2895 "source_info" : {
2896 "filename" : "./include/control/next.p4",
2897 "line" : 44,
2898 "column" : 8,
2899 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2900 }
2901 }
2902 ]
2903 },
2904 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002905 "name" : "act",
Yi Tseng27b9bc02018-04-12 14:52:40 +08002906 "id" : 40,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002907 "runtime_data" : [],
2908 "primitives" : [
2909 {
2910 "op" : "assign",
2911 "parameters" : [
2912 {
2913 "type" : "field",
2914 "value" : ["standard_metadata", "egress_spec"]
2915 },
2916 {
2917 "type" : "field",
2918 "value" : ["packet_out", "egress_port"]
2919 }
2920 ],
2921 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002922 "filename" : "./include/control/packetio.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002923 "line" : 26,
2924 "column" : 12,
2925 "source_fragment" : "standard_metadata.egress_spec = hdr.packet_out.egress_port"
2926 }
2927 },
2928 {
2929 "op" : "remove_header",
2930 "parameters" : [
2931 {
2932 "type" : "header",
2933 "value" : "packet_out"
2934 }
2935 ],
2936 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002937 "filename" : "./include/control/packetio.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002938 "line" : 27,
2939 "column" : 12,
2940 "source_fragment" : "hdr.packet_out.setInvalid()"
2941 }
2942 }
2943 ]
2944 },
2945 {
2946 "name" : "act_0",
Yi Tseng27b9bc02018-04-12 14:52:40 +08002947 "id" : 41,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002948 "runtime_data" : [],
2949 "primitives" : [
2950 {
2951 "op" : "assign",
2952 "parameters" : [
2953 {
2954 "type" : "field",
2955 "value" : ["scalars", "spgw_ingress_tmp_2"]
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" : true
2967 }
2968 }
2969 }
2970 }
2971 ]
2972 }
2973 ]
2974 },
2975 {
2976 "name" : "act_1",
Yi Tseng27b9bc02018-04-12 14:52:40 +08002977 "id" : 42,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002978 "runtime_data" : [],
2979 "primitives" : [
2980 {
2981 "op" : "assign",
2982 "parameters" : [
2983 {
2984 "type" : "field",
2985 "value" : ["scalars", "spgw_ingress_tmp_2"]
2986 },
2987 {
2988 "type" : "expression",
2989 "value" : {
2990 "type" : "expression",
2991 "value" : {
2992 "op" : "b2d",
2993 "left" : null,
2994 "right" : {
2995 "type" : "bool",
2996 "value" : false
2997 }
2998 }
2999 }
3000 }
3001 ]
3002 }
3003 ]
3004 },
3005 {
3006 "name" : "act_2",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003007 "id" : 43,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003008 "runtime_data" : [],
3009 "primitives" : [
3010 {
3011 "op" : "assign",
3012 "parameters" : [
3013 {
3014 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003015 "value" : ["userMetadata.spgw", "s1u_enb_addr"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003016 },
3017 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003018 "type" : "field",
3019 "value" : ["ipv4", "src_addr"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003020 }
3021 ],
3022 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003023 "filename" : "./include/control/../spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003024 "line" : 152,
3025 "column" : 12,
3026 "source_fragment" : "spgw_meta.s1u_enb_addr = ipv4.src_addr"
3027 }
3028 },
3029 {
3030 "op" : "assign",
3031 "parameters" : [
3032 {
3033 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003034 "value" : ["userMetadata.spgw", "s1u_sgw_addr"]
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003035 },
3036 {
3037 "type" : "field",
3038 "value" : ["ipv4", "dst_addr"]
3039 }
3040 ],
3041 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003042 "filename" : "./include/control/../spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003043 "line" : 153,
3044 "column" : 12,
3045 "source_fragment" : "spgw_meta.s1u_sgw_addr = ipv4.dst_addr"
3046 }
3047 },
3048 {
3049 "op" : "assign_header",
3050 "parameters" : [
3051 {
3052 "type" : "header",
3053 "value" : "ipv4"
3054 },
3055 {
3056 "type" : "header",
3057 "value" : "gtpu_ipv4"
3058 }
3059 ],
3060 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003061 "filename" : "./include/control/../spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003062 "line" : 154,
3063 "column" : 17,
3064 "source_fragment" : "= gtpu_ipv4; ..."
3065 }
3066 },
3067 {
3068 "op" : "assign_header",
3069 "parameters" : [
3070 {
3071 "type" : "header",
3072 "value" : "udp"
3073 },
3074 {
3075 "type" : "header",
3076 "value" : "gtpu_udp"
3077 }
3078 ],
3079 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003080 "filename" : "./include/control/../spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003081 "line" : 155,
3082 "column" : 16,
3083 "source_fragment" : "= gtpu_udp; ..."
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003084 }
3085 }
3086 ]
3087 },
3088 {
3089 "name" : "act_3",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003090 "id" : 44,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003091 "runtime_data" : [],
3092 "primitives" : [
3093 {
3094 "op" : "assign",
3095 "parameters" : [
3096 {
3097 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003098 "value" : ["userMetadata.spgw", "do_spgw"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003099 },
3100 {
3101 "type" : "expression",
3102 "value" : {
3103 "type" : "expression",
3104 "value" : {
3105 "op" : "b2d",
3106 "left" : null,
3107 "right" : {
3108 "type" : "bool",
3109 "value" : true
3110 }
3111 }
3112 }
3113 }
3114 ],
3115 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003116 "filename" : "./include/control/../spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003117 "line" : 159,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003118 "column" : 16,
3119 "source_fragment" : "spgw_meta.do_spgw = true"
3120 }
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003121 },
3122 {
3123 "op" : "assign",
3124 "parameters" : [
3125 {
3126 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003127 "value" : ["userMetadata.spgw", "direction"]
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003128 },
3129 {
3130 "type" : "hexstr",
3131 "value" : "0x00"
3132 }
3133 ],
3134 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003135 "filename" : "./include/control/../define.p4",
Yi Tseng3d3956d2018-01-31 17:28:05 -08003136 "line" : 88,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003137 "column" : 31,
3138 "source_fragment" : "1w0; ..."
3139 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003140 }
3141 ]
3142 },
3143 {
3144 "name" : "act_4",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003145 "id" : 45,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003146 "runtime_data" : [],
3147 "primitives" : [
3148 {
3149 "op" : "assign",
3150 "parameters" : [
3151 {
3152 "type" : "field",
3153 "value" : ["scalars", "spgw_ingress_tmp_3"]
3154 },
3155 {
3156 "type" : "expression",
3157 "value" : {
3158 "type" : "expression",
3159 "value" : {
3160 "op" : "b2d",
3161 "left" : null,
3162 "right" : {
3163 "type" : "bool",
3164 "value" : true
3165 }
3166 }
3167 }
3168 }
3169 ]
3170 }
3171 ]
3172 },
3173 {
3174 "name" : "act_5",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003175 "id" : 46,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003176 "runtime_data" : [],
3177 "primitives" : [
3178 {
3179 "op" : "assign",
3180 "parameters" : [
3181 {
3182 "type" : "field",
3183 "value" : ["scalars", "spgw_ingress_tmp_3"]
3184 },
3185 {
3186 "type" : "expression",
3187 "value" : {
3188 "type" : "expression",
3189 "value" : {
3190 "op" : "b2d",
3191 "left" : null,
3192 "right" : {
3193 "type" : "bool",
3194 "value" : false
3195 }
3196 }
3197 }
3198 }
3199 ]
3200 }
3201 ]
3202 },
3203 {
3204 "name" : "act_6",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003205 "id" : 47,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003206 "runtime_data" : [],
3207 "primitives" : [
3208 {
3209 "op" : "assign",
3210 "parameters" : [
3211 {
3212 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003213 "value" : ["userMetadata.spgw", "do_spgw"]
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003214 },
3215 {
3216 "type" : "expression",
3217 "value" : {
3218 "type" : "expression",
3219 "value" : {
3220 "op" : "b2d",
3221 "left" : null,
3222 "right" : {
3223 "type" : "bool",
3224 "value" : true
3225 }
3226 }
3227 }
3228 }
3229 ],
3230 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003231 "filename" : "./include/control/../spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003232 "line" : 163,
3233 "column" : 12,
3234 "source_fragment" : "spgw_meta.do_spgw = true"
3235 }
3236 },
3237 {
3238 "op" : "assign",
3239 "parameters" : [
3240 {
3241 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003242 "value" : ["userMetadata.spgw", "direction"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08003243 },
3244 {
3245 "type" : "hexstr",
3246 "value" : "0x01"
3247 }
3248 ],
3249 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003250 "filename" : "./include/control/../define.p4",
Yi Tseng3d3956d2018-01-31 17:28:05 -08003251 "line" : 89,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003252 "column" : 33,
3253 "source_fragment" : "1w1; ..."
3254 }
3255 }
3256 ]
3257 },
3258 {
3259 "name" : "act_7",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003260 "id" : 48,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003261 "runtime_data" : [],
3262 "primitives" : [
3263 {
3264 "op" : "assign",
3265 "parameters" : [
3266 {
3267 "type" : "field",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003268 "value" : ["scalars", "spgw_ingress_hasReturned_0"]
3269 },
3270 {
3271 "type" : "expression",
3272 "value" : {
3273 "type" : "expression",
3274 "value" : {
3275 "op" : "b2d",
3276 "left" : null,
3277 "right" : {
3278 "type" : "bool",
3279 "value" : false
3280 }
3281 }
3282 }
3283 }
3284 ]
3285 },
3286 {
3287 "op" : "assign",
3288 "parameters" : [
3289 {
3290 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003291 "value" : ["userMetadata.spgw", "do_spgw"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003292 },
3293 {
3294 "type" : "expression",
3295 "value" : {
3296 "type" : "expression",
3297 "value" : {
3298 "op" : "b2d",
3299 "left" : null,
3300 "right" : {
3301 "type" : "bool",
3302 "value" : false
3303 }
3304 }
3305 }
3306 }
3307 ],
3308 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003309 "filename" : "./include/control/../spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003310 "line" : 146,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003311 "column" : 8,
3312 "source_fragment" : "spgw_meta.do_spgw = false"
3313 }
3314 }
3315 ]
3316 },
3317 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003318 "name" : "act_8",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003319 "id" : 49,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003320 "runtime_data" : [],
3321 "primitives" : [
3322 {
3323 "op" : "assign",
3324 "parameters" : [
3325 {
3326 "type" : "field",
3327 "value" : ["scalars", "spgw_ingress_hasReturned_0"]
3328 },
3329 {
3330 "type" : "expression",
3331 "value" : {
3332 "type" : "expression",
3333 "value" : {
3334 "op" : "b2d",
3335 "left" : null,
3336 "right" : {
3337 "type" : "bool",
3338 "value" : true
3339 }
3340 }
3341 }
3342 }
3343 ],
3344 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003345 "filename" : "./include/control/../spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003346 "line" : 169,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003347 "column" : 12,
3348 "source_fragment" : "return"
3349 }
3350 }
3351 ]
3352 },
3353 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003354 "name" : "act_9",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003355 "id" : 50,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003356 "runtime_data" : [],
3357 "primitives" : [
3358 {
3359 "op" : "assign",
3360 "parameters" : [
3361 {
3362 "type" : "field",
3363 "value" : ["scalars", "spgw_ingress_tmp_4"]
3364 },
3365 {
3366 "type" : "expression",
3367 "value" : {
3368 "type" : "expression",
3369 "value" : {
3370 "op" : "b2d",
3371 "left" : null,
3372 "right" : {
3373 "type" : "bool",
3374 "value" : true
3375 }
3376 }
3377 }
3378 }
3379 ]
3380 }
3381 ]
3382 },
3383 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003384 "name" : "act_10",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003385 "id" : 51,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003386 "runtime_data" : [],
3387 "primitives" : [
3388 {
3389 "op" : "assign",
3390 "parameters" : [
3391 {
3392 "type" : "field",
3393 "value" : ["scalars", "spgw_ingress_tmp_4"]
3394 },
3395 {
3396 "type" : "expression",
3397 "value" : {
3398 "type" : "expression",
3399 "value" : {
3400 "op" : "b2d",
3401 "left" : null,
3402 "right" : {
3403 "type" : "bool",
3404 "value" : false
3405 }
3406 }
3407 }
3408 }
3409 ]
3410 }
3411 ]
3412 },
3413 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003414 "name" : "act_11",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003415 "id" : 52,
3416 "runtime_data" : [],
3417 "primitives" : [
3418 {
3419 "op" : "assign",
3420 "parameters" : [
3421 {
3422 "type" : "field",
3423 "value" : ["userMetadata.spgw", "ipv4_len"]
3424 },
3425 {
3426 "type" : "field",
3427 "value" : ["ipv4", "total_len"]
3428 }
3429 ],
3430 "source_info" : {
3431 "filename" : "./include/control/../spgw.p4",
3432 "line" : 199,
3433 "column" : 8,
3434 "source_fragment" : "spgw_meta.ipv4_len = ipv4.total_len"
3435 }
3436 }
3437 ]
3438 },
3439 {
3440 "name" : "act_12",
3441 "id" : 53,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003442 "runtime_data" : [],
3443 "primitives" : [
3444 {
3445 "op" : "assign",
3446 "parameters" : [
3447 {
3448 "type" : "field",
3449 "value" : ["vlan_tag", "ether_type"]
3450 },
3451 {
3452 "type" : "hexstr",
3453 "value" : "0x0800"
3454 }
3455 ],
3456 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003457 "filename" : "./include/control/../define.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003458 "line" : 35,
3459 "column" : 31,
3460 "source_fragment" : "0x0800; ..."
3461 }
3462 },
3463 {
3464 "op" : "assign",
3465 "parameters" : [
3466 {
3467 "type" : "field",
3468 "value" : ["scalars", "fabric_metadata_t.original_ether_type"]
3469 },
3470 {
3471 "type" : "hexstr",
3472 "value" : "0x0800"
3473 }
3474 ],
3475 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003476 "filename" : "./include/control/../define.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003477 "line" : 35,
3478 "column" : 31,
3479 "source_fragment" : "0x0800; ..."
3480 }
3481 }
3482 ]
3483 },
3484 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003485 "name" : "act_13",
3486 "id" : 54,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003487 "runtime_data" : [],
3488 "primitives" : [
3489 {
3490 "op" : "assign",
3491 "parameters" : [
3492 {
3493 "type" : "field",
3494 "value" : ["scalars", "next_tmp_0"]
3495 },
3496 {
3497 "type" : "expression",
3498 "value" : {
3499 "type" : "expression",
3500 "value" : {
3501 "op" : "b2d",
3502 "left" : null,
3503 "right" : {
3504 "type" : "bool",
3505 "value" : true
3506 }
3507 }
3508 }
3509 }
3510 ]
3511 }
3512 ]
3513 },
3514 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003515 "name" : "act_14",
3516 "id" : 55,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003517 "runtime_data" : [],
3518 "primitives" : [
3519 {
3520 "op" : "assign",
3521 "parameters" : [
3522 {
3523 "type" : "field",
3524 "value" : ["scalars", "next_tmp_0"]
3525 },
3526 {
3527 "type" : "expression",
3528 "value" : {
3529 "type" : "expression",
3530 "value" : {
3531 "op" : "b2d",
3532 "left" : null,
3533 "right" : {
3534 "type" : "bool",
3535 "value" : false
3536 }
3537 }
3538 }
3539 }
3540 ]
3541 }
3542 ]
3543 },
3544 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003545 "name" : "act_15",
3546 "id" : 56,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003547 "runtime_data" : [],
3548 "primitives" : [
3549 {
3550 "op" : "assign",
3551 "parameters" : [
3552 {
3553 "type" : "field",
3554 "value" : ["ipv4", "ttl"]
3555 },
3556 {
3557 "type" : "expression",
3558 "value" : {
3559 "type" : "expression",
3560 "value" : {
3561 "op" : "&",
3562 "left" : {
3563 "type" : "expression",
3564 "value" : {
3565 "op" : "+",
3566 "left" : {
3567 "type" : "field",
3568 "value" : ["ipv4", "ttl"]
3569 },
3570 "right" : {
3571 "type" : "hexstr",
3572 "value" : "0xff"
3573 }
3574 }
3575 },
3576 "right" : {
3577 "type" : "hexstr",
3578 "value" : "0xff"
3579 }
3580 }
3581 }
3582 }
3583 ],
3584 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003585 "filename" : "./include/control/next.p4",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08003586 "line" : 143,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003587 "column" : 20,
3588 "source_fragment" : "hdr.ipv4.ttl = hdr.ipv4.ttl - 1"
3589 }
3590 }
3591 ]
3592 },
3593 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003594 "name" : "act_16",
3595 "id" : 57,
3596 "runtime_data" : [],
3597 "primitives" : [
3598 {
3599 "op" : "assign",
3600 "parameters" : [
3601 {
3602 "type" : "field",
3603 "value" : ["ipv6", "hop_limit"]
3604 },
3605 {
3606 "type" : "expression",
3607 "value" : {
3608 "type" : "expression",
3609 "value" : {
3610 "op" : "&",
3611 "left" : {
3612 "type" : "expression",
3613 "value" : {
3614 "op" : "+",
3615 "left" : {
3616 "type" : "field",
3617 "value" : ["ipv6", "hop_limit"]
3618 },
3619 "right" : {
3620 "type" : "hexstr",
3621 "value" : "0xff"
3622 }
3623 }
3624 },
3625 "right" : {
3626 "type" : "hexstr",
3627 "value" : "0xff"
3628 }
3629 }
3630 }
3631 }
3632 ],
3633 "source_info" : {
3634 "filename" : "./include/control/next.p4",
3635 "line" : 147,
3636 "column" : 20,
3637 "source_fragment" : "hdr.ipv6.hop_limit = hdr.ipv6.hop_limit - 1"
3638 }
3639 }
3640 ]
3641 },
3642 {
3643 "name" : "act_17",
3644 "id" : 58,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003645 "runtime_data" : [],
3646 "primitives" : [
3647 {
3648 "op" : "assign",
3649 "parameters" : [
3650 {
3651 "type" : "field",
3652 "value" : ["scalars", "tmp_0"]
3653 },
3654 {
3655 "type" : "expression",
3656 "value" : {
3657 "type" : "expression",
3658 "value" : {
3659 "op" : "&",
3660 "left" : {
3661 "type" : "field",
3662 "value" : ["standard_metadata", "egress_spec"]
3663 },
3664 "right" : {
3665 "type" : "hexstr",
3666 "value" : "0xffffffff"
3667 }
3668 }
3669 }
3670 }
3671 ]
3672 },
3673 {
3674 "op" : "count",
3675 "parameters" : [
3676 {
3677 "type" : "counter_array",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003678 "value" : "FabricIngress.port_counters_control.egress_port_counter"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003679 },
3680 {
3681 "type" : "field",
3682 "value" : ["scalars", "tmp_0"]
3683 }
3684 ],
3685 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003686 "filename" : "./include/control/port_counter.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003687 "line" : 28,
3688 "column" : 12,
3689 "source_fragment" : "egress_port_counter.count((bit<32>)standard_metadata.egress_spec)"
3690 }
3691 }
3692 ]
3693 },
3694 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003695 "name" : "act_18",
3696 "id" : 59,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003697 "runtime_data" : [],
3698 "primitives" : [
3699 {
3700 "op" : "assign",
3701 "parameters" : [
3702 {
3703 "type" : "field",
3704 "value" : ["scalars", "tmp_1"]
3705 },
3706 {
3707 "type" : "expression",
3708 "value" : {
3709 "type" : "expression",
3710 "value" : {
3711 "op" : "&",
3712 "left" : {
3713 "type" : "field",
3714 "value" : ["standard_metadata", "ingress_port"]
3715 },
3716 "right" : {
3717 "type" : "hexstr",
3718 "value" : "0xffffffff"
3719 }
3720 }
3721 }
3722 }
3723 ]
3724 },
3725 {
3726 "op" : "count",
3727 "parameters" : [
3728 {
3729 "type" : "counter_array",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003730 "value" : "FabricIngress.port_counters_control.ingress_port_counter"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003731 },
3732 {
3733 "type" : "field",
3734 "value" : ["scalars", "tmp_1"]
3735 }
3736 ],
3737 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003738 "filename" : "./include/control/port_counter.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003739 "line" : 31,
3740 "column" : 12,
3741 "source_fragment" : "ingress_port_counter.count((bit<32>)standard_metadata.ingress_port)"
3742 }
3743 }
3744 ]
3745 },
3746 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003747 "name" : "act_19",
3748 "id" : 60,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003749 "runtime_data" : [],
3750 "primitives" : [
3751 {
3752 "op" : "assign",
3753 "parameters" : [
3754 {
3755 "type" : "field",
3756 "value" : ["ethernet", "ether_type"]
3757 },
3758 {
3759 "type" : "field",
3760 "value" : ["vlan_tag", "ether_type"]
3761 }
3762 ],
3763 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003764 "filename" : "./include/control/next.p4",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08003765 "line" : 167,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003766 "column" : 12,
3767 "source_fragment" : "hdr.ethernet.ether_type = hdr.vlan_tag.ether_type"
3768 }
3769 },
3770 {
3771 "op" : "remove_header",
3772 "parameters" : [
3773 {
3774 "type" : "header",
3775 "value" : "vlan_tag"
3776 }
3777 ],
3778 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003779 "filename" : "./include/control/next.p4",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08003780 "line" : 168,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003781 "column" : 12,
3782 "source_fragment" : "hdr.vlan_tag.setInvalid()"
3783 }
3784 }
3785 ]
3786 },
3787 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003788 "name" : "FabricEgress.spgw_egress.gtpu_encap",
3789 "id" : 61,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003790 "runtime_data" : [],
3791 "primitives" : [
3792 {
3793 "op" : "add_header",
3794 "parameters" : [
3795 {
3796 "type" : "header",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003797 "value" : "gtpu_ipv4"
3798 }
3799 ],
3800 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003801 "filename" : "./include/control/../spgw.p4",
3802 "line" : 214,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003803 "column" : 8,
3804 "source_fragment" : "gtpu_ipv4.setValid()"
3805 }
3806 },
3807 {
3808 "op" : "assign",
3809 "parameters" : [
3810 {
3811 "type" : "field",
3812 "value" : ["gtpu_ipv4", "version"]
3813 },
3814 {
3815 "type" : "hexstr",
3816 "value" : "0x04"
3817 }
3818 ],
3819 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003820 "filename" : "./include/control/../spgw.p4",
3821 "line" : 215,
Yi Tseng3d3956d2018-01-31 17:28:05 -08003822 "column" : 8,
3823 "source_fragment" : "gtpu_ipv4.version = 4"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003824 }
3825 },
3826 {
3827 "op" : "assign",
3828 "parameters" : [
3829 {
3830 "type" : "field",
3831 "value" : ["gtpu_ipv4", "ihl"]
3832 },
3833 {
3834 "type" : "hexstr",
3835 "value" : "0x05"
3836 }
3837 ],
3838 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003839 "filename" : "./include/control/../define.p4",
Yi Tseng3d3956d2018-01-31 17:28:05 -08003840 "line" : 54,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003841 "column" : 28,
3842 "source_fragment" : "5; ..."
3843 }
3844 },
3845 {
3846 "op" : "assign",
3847 "parameters" : [
3848 {
3849 "type" : "field",
3850 "value" : ["gtpu_ipv4", "diffserv"]
3851 },
3852 {
3853 "type" : "hexstr",
3854 "value" : "0x00"
3855 }
3856 ],
3857 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003858 "filename" : "./include/control/../spgw.p4",
3859 "line" : 217,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003860 "column" : 8,
3861 "source_fragment" : "gtpu_ipv4.diffserv = 0"
3862 }
3863 },
3864 {
3865 "op" : "assign",
3866 "parameters" : [
3867 {
3868 "type" : "field",
3869 "value" : ["gtpu_ipv4", "total_len"]
3870 },
3871 {
3872 "type" : "expression",
3873 "value" : {
3874 "type" : "expression",
3875 "value" : {
3876 "op" : "&",
3877 "left" : {
3878 "type" : "expression",
3879 "value" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003880 "op" : "+",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003881 "left" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08003882 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003883 "value" : ["userMetadata.spgw", "ipv4_len"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08003884 },
3885 "right" : {
3886 "type" : "hexstr",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08003887 "value" : "0x0024"
Carmelo Cascone14cde402018-01-25 01:57:18 -08003888 }
3889 }
3890 },
3891 "right" : {
3892 "type" : "hexstr",
3893 "value" : "0xffff"
3894 }
3895 }
3896 }
3897 }
3898 ],
3899 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003900 "filename" : "./include/control/../spgw.p4",
3901 "line" : 218,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003902 "column" : 8,
Yi Tseng27b9bc02018-04-12 14:52:40 +08003903 "source_fragment" : "gtpu_ipv4.total_len = spgw_meta.ipv4_len ..."
Carmelo Cascone14cde402018-01-25 01:57:18 -08003904 }
3905 },
3906 {
3907 "op" : "assign",
3908 "parameters" : [
3909 {
3910 "type" : "field",
3911 "value" : ["gtpu_ipv4", "identification"]
3912 },
3913 {
3914 "type" : "hexstr",
3915 "value" : "0x1513"
3916 }
3917 ],
3918 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003919 "filename" : "./include/control/../spgw.p4",
3920 "line" : 220,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003921 "column" : 8,
3922 "source_fragment" : "gtpu_ipv4.identification = 0x1513"
3923 }
3924 },
3925 {
3926 "op" : "assign",
3927 "parameters" : [
3928 {
3929 "type" : "field",
3930 "value" : ["gtpu_ipv4", "flags"]
3931 },
3932 {
3933 "type" : "hexstr",
3934 "value" : "0x00"
3935 }
3936 ],
3937 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003938 "filename" : "./include/control/../spgw.p4",
3939 "line" : 221,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003940 "column" : 8,
3941 "source_fragment" : "gtpu_ipv4.flags = 0"
3942 }
3943 },
3944 {
3945 "op" : "assign",
3946 "parameters" : [
3947 {
3948 "type" : "field",
3949 "value" : ["gtpu_ipv4", "frag_offset"]
3950 },
3951 {
3952 "type" : "hexstr",
3953 "value" : "0x0000"
3954 }
3955 ],
3956 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003957 "filename" : "./include/control/../spgw.p4",
3958 "line" : 222,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003959 "column" : 8,
3960 "source_fragment" : "gtpu_ipv4.frag_offset = 0"
3961 }
3962 },
3963 {
3964 "op" : "assign",
3965 "parameters" : [
3966 {
3967 "type" : "field",
3968 "value" : ["gtpu_ipv4", "ttl"]
3969 },
3970 {
3971 "type" : "hexstr",
3972 "value" : "0x40"
3973 }
3974 ],
3975 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003976 "filename" : "./include/control/../define.p4",
Yi Tseng3d3956d2018-01-31 17:28:05 -08003977 "line" : 78,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003978 "column" : 32,
3979 "source_fragment" : "64; ..."
3980 }
3981 },
3982 {
3983 "op" : "assign",
3984 "parameters" : [
3985 {
3986 "type" : "field",
3987 "value" : ["gtpu_ipv4", "protocol"]
3988 },
3989 {
3990 "type" : "hexstr",
3991 "value" : "0x11"
3992 }
3993 ],
3994 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003995 "filename" : "./include/control/../define.p4",
Yi Tseng3d3956d2018-01-31 17:28:05 -08003996 "line" : 51,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003997 "column" : 25,
3998 "source_fragment" : "17; ..."
3999 }
4000 },
4001 {
4002 "op" : "assign",
4003 "parameters" : [
4004 {
4005 "type" : "field",
4006 "value" : ["gtpu_ipv4", "dst_addr"]
4007 },
4008 {
4009 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004010 "value" : ["userMetadata.spgw", "s1u_enb_addr"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08004011 }
4012 ],
4013 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004014 "filename" : "./include/control/../spgw.p4",
4015 "line" : 225,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004016 "column" : 8,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004017 "source_fragment" : "gtpu_ipv4.dst_addr = spgw_meta.s1u_enb_addr"
Carmelo Cascone14cde402018-01-25 01:57:18 -08004018 }
4019 },
4020 {
4021 "op" : "assign",
4022 "parameters" : [
4023 {
4024 "type" : "field",
4025 "value" : ["gtpu_ipv4", "src_addr"]
4026 },
4027 {
4028 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004029 "value" : ["userMetadata.spgw", "s1u_sgw_addr"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08004030 }
4031 ],
4032 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004033 "filename" : "./include/control/../spgw.p4",
4034 "line" : 226,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004035 "column" : 8,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004036 "source_fragment" : "gtpu_ipv4.src_addr = spgw_meta.s1u_sgw_addr"
Carmelo Cascone14cde402018-01-25 01:57:18 -08004037 }
4038 },
4039 {
4040 "op" : "assign",
4041 "parameters" : [
4042 {
4043 "type" : "field",
4044 "value" : ["gtpu_ipv4", "hdr_checksum"]
4045 },
4046 {
4047 "type" : "hexstr",
4048 "value" : "0x0000"
4049 }
4050 ],
4051 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004052 "filename" : "./include/control/../spgw.p4",
4053 "line" : 227,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004054 "column" : 8,
4055 "source_fragment" : "gtpu_ipv4.hdr_checksum = 0"
4056 }
4057 },
4058 {
4059 "op" : "add_header",
4060 "parameters" : [
4061 {
4062 "type" : "header",
4063 "value" : "gtpu_udp"
4064 }
4065 ],
4066 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004067 "filename" : "./include/control/../spgw.p4",
4068 "line" : 229,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004069 "column" : 8,
4070 "source_fragment" : "gtpu_udp.setValid()"
4071 }
4072 },
4073 {
4074 "op" : "assign",
4075 "parameters" : [
4076 {
4077 "type" : "field",
4078 "value" : ["gtpu_udp", "src_port"]
4079 },
4080 {
4081 "type" : "hexstr",
4082 "value" : "0x0868"
4083 }
4084 ],
4085 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004086 "filename" : "./include/control/../spgw.p4",
4087 "line" : 230,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004088 "column" : 8,
4089 "source_fragment" : "gtpu_udp.src_port = 2152"
4090 }
4091 },
4092 {
4093 "op" : "assign",
4094 "parameters" : [
4095 {
4096 "type" : "field",
4097 "value" : ["gtpu_udp", "dst_port"]
4098 },
4099 {
4100 "type" : "hexstr",
4101 "value" : "0x0868"
4102 }
4103 ],
4104 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004105 "filename" : "./include/control/../spgw.p4",
4106 "line" : 231,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004107 "column" : 8,
4108 "source_fragment" : "gtpu_udp.dst_port = 2152"
4109 }
4110 },
4111 {
4112 "op" : "assign",
4113 "parameters" : [
4114 {
4115 "type" : "field",
4116 "value" : ["gtpu_udp", "len"]
4117 },
4118 {
4119 "type" : "expression",
4120 "value" : {
4121 "type" : "expression",
4122 "value" : {
4123 "op" : "&",
4124 "left" : {
4125 "type" : "expression",
4126 "value" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004127 "op" : "+",
Carmelo Cascone14cde402018-01-25 01:57:18 -08004128 "left" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004129 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004130 "value" : ["userMetadata.spgw", "ipv4_len"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004131 },
4132 "right" : {
4133 "type" : "hexstr",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004134 "value" : "0x0010"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004135 }
4136 }
4137 },
4138 "right" : {
4139 "type" : "hexstr",
4140 "value" : "0xffff"
4141 }
4142 }
4143 }
4144 }
4145 ],
4146 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004147 "filename" : "./include/control/../spgw.p4",
4148 "line" : 232,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004149 "column" : 8,
Yi Tseng27b9bc02018-04-12 14:52:40 +08004150 "source_fragment" : "gtpu_udp.len = spgw_meta.ipv4_len ..."
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004151 }
4152 },
4153 {
4154 "op" : "assign",
4155 "parameters" : [
4156 {
4157 "type" : "field",
4158 "value" : ["gtpu_udp", "checksum"]
4159 },
4160 {
4161 "type" : "hexstr",
4162 "value" : "0x0000"
4163 }
4164 ],
4165 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004166 "filename" : "./include/control/../spgw.p4",
4167 "line" : 234,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004168 "column" : 8,
4169 "source_fragment" : "gtpu_udp.checksum = 0"
4170 }
Carmelo Cascone14cde402018-01-25 01:57:18 -08004171 },
4172 {
4173 "op" : "add_header",
4174 "parameters" : [
4175 {
4176 "type" : "header",
4177 "value" : "gtpu"
4178 }
4179 ],
4180 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004181 "filename" : "./include/control/../spgw.p4",
4182 "line" : 236,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004183 "column" : 8,
4184 "source_fragment" : "gtpu.setValid()"
4185 }
4186 },
4187 {
4188 "op" : "assign",
4189 "parameters" : [
4190 {
4191 "type" : "field",
4192 "value" : ["gtpu", "version"]
4193 },
4194 {
4195 "type" : "hexstr",
4196 "value" : "0x01"
4197 }
4198 ],
4199 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004200 "filename" : "./include/control/../spgw.p4",
4201 "line" : 237,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004202 "column" : 8,
4203 "source_fragment" : "gtpu.version = 0x01"
4204 }
4205 },
4206 {
4207 "op" : "assign",
4208 "parameters" : [
4209 {
4210 "type" : "field",
4211 "value" : ["gtpu", "pt"]
4212 },
4213 {
4214 "type" : "hexstr",
4215 "value" : "0x01"
4216 }
4217 ],
4218 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004219 "filename" : "./include/control/../spgw.p4",
4220 "line" : 238,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004221 "column" : 8,
4222 "source_fragment" : "gtpu.pt = 0x01"
4223 }
4224 },
4225 {
4226 "op" : "assign",
4227 "parameters" : [
4228 {
4229 "type" : "field",
4230 "value" : ["gtpu", "spare"]
4231 },
4232 {
4233 "type" : "hexstr",
4234 "value" : "0x00"
4235 }
4236 ],
4237 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004238 "filename" : "./include/control/../spgw.p4",
4239 "line" : 239,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004240 "column" : 8,
4241 "source_fragment" : "gtpu.spare = 0"
4242 }
4243 },
4244 {
4245 "op" : "assign",
4246 "parameters" : [
4247 {
4248 "type" : "field",
4249 "value" : ["gtpu", "ex_flag"]
4250 },
4251 {
4252 "type" : "hexstr",
4253 "value" : "0x00"
4254 }
4255 ],
4256 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004257 "filename" : "./include/control/../spgw.p4",
4258 "line" : 240,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004259 "column" : 8,
4260 "source_fragment" : "gtpu.ex_flag = 0"
4261 }
4262 },
4263 {
4264 "op" : "assign",
4265 "parameters" : [
4266 {
4267 "type" : "field",
4268 "value" : ["gtpu", "seq_flag"]
4269 },
4270 {
4271 "type" : "hexstr",
4272 "value" : "0x00"
4273 }
4274 ],
4275 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004276 "filename" : "./include/control/../spgw.p4",
4277 "line" : 241,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004278 "column" : 8,
4279 "source_fragment" : "gtpu.seq_flag = 0"
4280 }
4281 },
4282 {
4283 "op" : "assign",
4284 "parameters" : [
4285 {
4286 "type" : "field",
4287 "value" : ["gtpu", "npdu_flag"]
4288 },
4289 {
4290 "type" : "hexstr",
4291 "value" : "0x00"
4292 }
4293 ],
4294 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004295 "filename" : "./include/control/../spgw.p4",
4296 "line" : 242,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004297 "column" : 8,
4298 "source_fragment" : "gtpu.npdu_flag = 0"
4299 }
4300 },
4301 {
4302 "op" : "assign",
4303 "parameters" : [
4304 {
4305 "type" : "field",
4306 "value" : ["gtpu", "msgtype"]
4307 },
4308 {
4309 "type" : "hexstr",
4310 "value" : "0xff"
4311 }
4312 ],
4313 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004314 "filename" : "./include/control/../spgw.p4",
4315 "line" : 243,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004316 "column" : 8,
4317 "source_fragment" : "gtpu.msgtype = 0xff"
4318 }
4319 },
4320 {
4321 "op" : "assign",
4322 "parameters" : [
4323 {
4324 "type" : "field",
4325 "value" : ["gtpu", "msglen"]
4326 },
4327 {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004328 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004329 "value" : ["userMetadata.spgw", "ipv4_len"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08004330 }
4331 ],
4332 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004333 "filename" : "./include/control/../spgw.p4",
4334 "line" : 244,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004335 "column" : 8,
Yi Tseng27b9bc02018-04-12 14:52:40 +08004336 "source_fragment" : "gtpu.msglen = spgw_meta.ipv4_len"
Carmelo Cascone14cde402018-01-25 01:57:18 -08004337 }
4338 },
4339 {
4340 "op" : "assign",
4341 "parameters" : [
4342 {
4343 "type" : "field",
4344 "value" : ["gtpu", "teid"]
4345 },
4346 {
4347 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004348 "value" : ["userMetadata.spgw", "teid"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08004349 }
4350 ],
4351 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004352 "filename" : "./include/control/../spgw.p4",
4353 "line" : 245,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004354 "column" : 8,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004355 "source_fragment" : "gtpu.teid = spgw_meta.teid"
Carmelo Cascone14cde402018-01-25 01:57:18 -08004356 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004357 }
4358 ]
4359 },
4360 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004361 "name" : "act_20",
4362 "id" : 62,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004363 "runtime_data" : [],
4364 "primitives" : [
4365 {
4366 "op" : "add_header",
4367 "parameters" : [
4368 {
4369 "type" : "header",
4370 "value" : "packet_in"
4371 }
4372 ],
4373 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004374 "filename" : "./include/control/packetio.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004375 "line" : 39,
4376 "column" : 12,
4377 "source_fragment" : "hdr.packet_in.setValid()"
4378 }
4379 },
4380 {
4381 "op" : "assign",
4382 "parameters" : [
4383 {
4384 "type" : "field",
4385 "value" : ["packet_in", "ingress_port"]
4386 },
4387 {
4388 "type" : "field",
4389 "value" : ["standard_metadata", "ingress_port"]
4390 }
4391 ],
4392 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004393 "filename" : "./include/control/packetio.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004394 "line" : 40,
4395 "column" : 12,
4396 "source_fragment" : "hdr.packet_in.ingress_port = standard_metadata.ingress_port"
4397 }
4398 }
4399 ]
4400 },
4401 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004402 "name" : "act_21",
4403 "id" : 63,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004404 "runtime_data" : [],
4405 "primitives" : [
4406 {
4407 "op" : "remove_header",
4408 "parameters" : [
4409 {
4410 "type" : "header",
4411 "value" : "gtpu_ipv4"
4412 }
4413 ],
4414 "source_info" : {
4415 "filename" : "fabric.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004416 "line" : 69,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004417 "column" : 36,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004418 "source_fragment" : "hdr.gtpu_ipv4"
4419 }
4420 },
4421 {
4422 "op" : "remove_header",
4423 "parameters" : [
4424 {
4425 "type" : "header",
4426 "value" : "gtpu_udp"
4427 }
4428 ],
4429 "source_info" : {
4430 "filename" : "fabric.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004431 "line" : 69,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004432 "column" : 51,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004433 "source_fragment" : "hdr.gtpu_udp"
4434 }
4435 },
4436 {
4437 "op" : "remove_header",
4438 "parameters" : [
4439 {
4440 "type" : "header",
4441 "value" : "gtpu"
4442 }
4443 ],
4444 "source_info" : {
4445 "filename" : "fabric.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004446 "line" : 69,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004447 "column" : 65,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004448 "source_fragment" : "hdr.gtpu"
4449 }
4450 }
4451 ]
4452 }
4453 ],
4454 "pipelines" : [
4455 {
4456 "name" : "ingress",
4457 "id" : 0,
4458 "source_info" : {
4459 "filename" : "fabric.p4",
4460 "line" : 33,
4461 "column" : 8,
4462 "source_fragment" : "FabricIngress"
4463 },
4464 "init_table" : "node_2",
4465 "tables" : [
4466 {
4467 "name" : "tbl_act",
4468 "id" : 0,
4469 "key" : [],
4470 "match_type" : "exact",
4471 "type" : "simple",
4472 "max_size" : 1024,
4473 "with_counters" : false,
4474 "support_timeout" : false,
4475 "direct_meters" : null,
Yi Tseng27b9bc02018-04-12 14:52:40 +08004476 "action_ids" : [40],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004477 "actions" : ["act"],
4478 "base_default_next" : null,
4479 "next_tables" : {
4480 "act" : null
4481 },
4482 "default_entry" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004483 "action_id" : 40,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004484 "action_const" : true,
4485 "action_data" : [],
4486 "action_entry_const" : true
4487 }
4488 },
4489 {
4490 "name" : "tbl_act_0",
4491 "id" : 1,
4492 "key" : [],
4493 "match_type" : "exact",
4494 "type" : "simple",
4495 "max_size" : 1024,
4496 "with_counters" : false,
4497 "support_timeout" : false,
4498 "direct_meters" : null,
Yi Tseng27b9bc02018-04-12 14:52:40 +08004499 "action_ids" : [48],
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004500 "actions" : ["act_7"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004501 "base_default_next" : "node_5",
4502 "next_tables" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004503 "act_7" : "node_5"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004504 },
4505 "default_entry" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004506 "action_id" : 48,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004507 "action_const" : true,
4508 "action_data" : [],
4509 "action_entry_const" : true
4510 }
4511 },
4512 {
4513 "name" : "tbl_act_1",
4514 "id" : 2,
4515 "key" : [],
4516 "match_type" : "exact",
4517 "type" : "simple",
4518 "max_size" : 1024,
4519 "with_counters" : false,
4520 "support_timeout" : false,
4521 "direct_meters" : null,
Yi Tseng27b9bc02018-04-12 14:52:40 +08004522 "action_ids" : [43],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004523 "actions" : ["act_2"],
Yi Tseng27b9bc02018-04-12 14:52:40 +08004524 "base_default_next" : "FabricIngress.spgw_ingress.s1u_filter_table",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004525 "next_tables" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004526 "act_2" : "FabricIngress.spgw_ingress.s1u_filter_table"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004527 },
4528 "default_entry" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004529 "action_id" : 43,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004530 "action_const" : true,
4531 "action_data" : [],
4532 "action_entry_const" : true
4533 }
4534 },
4535 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004536 "name" : "FabricIngress.spgw_ingress.s1u_filter_table",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004537 "id" : 3,
4538 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004539 "filename" : "./include/control/../spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004540 "line" : 65,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004541 "column" : 10,
4542 "source_fragment" : "s1u_filter_table"
4543 },
4544 "key" : [
4545 {
4546 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004547 "name" : "spgw_meta.s1u_sgw_addr",
4548 "target" : ["userMetadata.spgw", "s1u_sgw_addr"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004549 "mask" : null
4550 }
4551 ],
4552 "match_type" : "exact",
4553 "type" : "simple",
4554 "max_size" : 1024,
4555 "with_counters" : false,
4556 "support_timeout" : false,
4557 "direct_meters" : null,
4558 "action_ids" : [1],
4559 "actions" : ["NoAction"],
4560 "base_default_next" : null,
4561 "next_tables" : {
4562 "__HIT__" : "tbl_act_2",
4563 "__MISS__" : "tbl_act_3"
4564 },
4565 "default_entry" : {
4566 "action_id" : 1,
4567 "action_const" : false,
4568 "action_data" : [],
4569 "action_entry_const" : false
4570 }
4571 },
4572 {
4573 "name" : "tbl_act_2",
4574 "id" : 4,
4575 "key" : [],
4576 "match_type" : "exact",
4577 "type" : "simple",
4578 "max_size" : 1024,
4579 "with_counters" : false,
4580 "support_timeout" : false,
4581 "direct_meters" : null,
Yi Tseng27b9bc02018-04-12 14:52:40 +08004582 "action_ids" : [41],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004583 "actions" : ["act_0"],
4584 "base_default_next" : "node_10",
4585 "next_tables" : {
4586 "act_0" : "node_10"
4587 },
4588 "default_entry" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004589 "action_id" : 41,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004590 "action_const" : true,
4591 "action_data" : [],
4592 "action_entry_const" : true
4593 }
4594 },
4595 {
4596 "name" : "tbl_act_3",
4597 "id" : 5,
4598 "key" : [],
4599 "match_type" : "exact",
4600 "type" : "simple",
4601 "max_size" : 1024,
4602 "with_counters" : false,
4603 "support_timeout" : false,
4604 "direct_meters" : null,
Yi Tseng27b9bc02018-04-12 14:52:40 +08004605 "action_ids" : [42],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004606 "actions" : ["act_1"],
4607 "base_default_next" : "node_10",
4608 "next_tables" : {
4609 "act_1" : "node_10"
4610 },
4611 "default_entry" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004612 "action_id" : 42,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004613 "action_const" : true,
4614 "action_data" : [],
4615 "action_entry_const" : true
4616 }
4617 },
4618 {
4619 "name" : "tbl_act_4",
4620 "id" : 6,
4621 "key" : [],
4622 "match_type" : "exact",
4623 "type" : "simple",
4624 "max_size" : 1024,
4625 "with_counters" : false,
4626 "support_timeout" : false,
4627 "direct_meters" : null,
Yi Tseng27b9bc02018-04-12 14:52:40 +08004628 "action_ids" : [44],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004629 "actions" : ["act_3"],
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004630 "base_default_next" : "node_17",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004631 "next_tables" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004632 "act_3" : "node_17"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004633 },
4634 "default_entry" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004635 "action_id" : 44,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004636 "action_const" : true,
4637 "action_data" : [],
4638 "action_entry_const" : true
4639 }
4640 },
4641 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004642 "name" : "FabricIngress.spgw_ingress.ue_filter_table",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004643 "id" : 7,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004644 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004645 "filename" : "./include/control/../spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004646 "line" : 55,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004647 "column" : 10,
4648 "source_fragment" : "ue_filter_table"
4649 },
4650 "key" : [
4651 {
4652 "match_type" : "lpm",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004653 "name" : "ipv4.dst_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004654 "target" : ["ipv4", "dst_addr"],
4655 "mask" : null
4656 }
4657 ],
4658 "match_type" : "lpm",
4659 "type" : "simple",
4660 "max_size" : 1024,
4661 "with_counters" : false,
4662 "support_timeout" : false,
4663 "direct_meters" : null,
4664 "action_ids" : [0],
4665 "actions" : ["NoAction"],
4666 "base_default_next" : null,
4667 "next_tables" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004668 "__HIT__" : "tbl_act_5",
4669 "__MISS__" : "tbl_act_6"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004670 },
4671 "default_entry" : {
4672 "action_id" : 0,
4673 "action_const" : false,
4674 "action_data" : [],
4675 "action_entry_const" : false
4676 }
4677 },
4678 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004679 "name" : "tbl_act_5",
4680 "id" : 8,
4681 "key" : [],
4682 "match_type" : "exact",
4683 "type" : "simple",
4684 "max_size" : 1024,
4685 "with_counters" : false,
4686 "support_timeout" : false,
4687 "direct_meters" : null,
Yi Tseng27b9bc02018-04-12 14:52:40 +08004688 "action_ids" : [45],
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004689 "actions" : ["act_4"],
4690 "base_default_next" : "node_15",
4691 "next_tables" : {
4692 "act_4" : "node_15"
4693 },
4694 "default_entry" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004695 "action_id" : 45,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004696 "action_const" : true,
4697 "action_data" : [],
4698 "action_entry_const" : true
4699 }
4700 },
4701 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004702 "name" : "tbl_act_6",
4703 "id" : 9,
4704 "key" : [],
4705 "match_type" : "exact",
4706 "type" : "simple",
4707 "max_size" : 1024,
4708 "with_counters" : false,
4709 "support_timeout" : false,
4710 "direct_meters" : null,
Yi Tseng27b9bc02018-04-12 14:52:40 +08004711 "action_ids" : [46],
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004712 "actions" : ["act_5"],
4713 "base_default_next" : "node_15",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004714 "next_tables" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004715 "act_5" : "node_15"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004716 },
4717 "default_entry" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004718 "action_id" : 46,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004719 "action_const" : true,
4720 "action_data" : [],
4721 "action_entry_const" : true
4722 }
4723 },
4724 {
4725 "name" : "tbl_act_7",
4726 "id" : 10,
4727 "key" : [],
4728 "match_type" : "exact",
4729 "type" : "simple",
4730 "max_size" : 1024,
4731 "with_counters" : false,
4732 "support_timeout" : false,
4733 "direct_meters" : null,
Yi Tseng27b9bc02018-04-12 14:52:40 +08004734 "action_ids" : [47],
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004735 "actions" : ["act_6"],
4736 "base_default_next" : "node_17",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004737 "next_tables" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004738 "act_6" : "node_17"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004739 },
4740 "default_entry" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004741 "action_id" : 47,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004742 "action_const" : true,
4743 "action_data" : [],
4744 "action_entry_const" : true
4745 }
4746 },
4747 {
4748 "name" : "tbl_act_8",
4749 "id" : 11,
4750 "key" : [],
4751 "match_type" : "exact",
4752 "type" : "simple",
4753 "max_size" : 1024,
4754 "with_counters" : false,
4755 "support_timeout" : false,
4756 "direct_meters" : null,
Yi Tseng27b9bc02018-04-12 14:52:40 +08004757 "action_ids" : [49],
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004758 "actions" : ["act_8"],
4759 "base_default_next" : "node_19",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004760 "next_tables" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004761 "act_8" : "node_19"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004762 },
4763 "default_entry" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004764 "action_id" : 49,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004765 "action_const" : true,
4766 "action_data" : [],
4767 "action_entry_const" : true
4768 }
4769 },
4770 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004771 "name" : "tbl_spgw_ingress_gtpu_decap",
Carmelo Cascone14cde402018-01-25 01:57:18 -08004772 "id" : 12,
4773 "key" : [],
4774 "match_type" : "exact",
4775 "type" : "simple",
4776 "max_size" : 1024,
4777 "with_counters" : false,
4778 "support_timeout" : false,
4779 "direct_meters" : null,
Yi Tseng27b9bc02018-04-12 14:52:40 +08004780 "action_ids" : [16],
4781 "actions" : ["FabricIngress.spgw_ingress.gtpu_decap"],
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004782 "base_default_next" : "node_22",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004783 "next_tables" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004784 "FabricIngress.spgw_ingress.gtpu_decap" : "node_22"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004785 },
4786 "default_entry" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004787 "action_id" : 16,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004788 "action_const" : true,
4789 "action_data" : [],
4790 "action_entry_const" : true
4791 }
4792 },
4793 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004794 "name" : "FabricIngress.spgw_ingress.dl_sess_lookup",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004795 "id" : 13,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004796 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004797 "filename" : "./include/control/../spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004798 "line" : 124,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004799 "column" : 10,
4800 "source_fragment" : "dl_sess_lookup"
4801 },
4802 "key" : [
4803 {
4804 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004805 "name" : "ipv4.dst_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004806 "target" : ["ipv4", "dst_addr"],
4807 "mask" : null
4808 }
4809 ],
4810 "match_type" : "exact",
4811 "type" : "simple",
4812 "max_size" : 1024,
4813 "with_counters" : false,
4814 "support_timeout" : false,
4815 "direct_meters" : null,
Yi Tseng27b9bc02018-04-12 14:52:40 +08004816 "action_ids" : [17, 2],
4817 "actions" : ["FabricIngress.spgw_ingress.set_dl_sess_info", "NoAction"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004818 "base_default_next" : null,
4819 "next_tables" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004820 "__HIT__" : "tbl_act_9",
4821 "__MISS__" : "tbl_act_10"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004822 },
4823 "default_entry" : {
4824 "action_id" : 2,
4825 "action_const" : false,
4826 "action_data" : [],
4827 "action_entry_const" : false
4828 }
4829 },
4830 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004831 "name" : "tbl_act_9",
4832 "id" : 14,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004833 "key" : [],
4834 "match_type" : "exact",
4835 "type" : "simple",
4836 "max_size" : 1024,
4837 "with_counters" : false,
4838 "support_timeout" : false,
4839 "direct_meters" : null,
Yi Tseng27b9bc02018-04-12 14:52:40 +08004840 "action_ids" : [50],
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004841 "actions" : ["act_9"],
4842 "base_default_next" : "node_26",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004843 "next_tables" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004844 "act_9" : "node_26"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004845 },
4846 "default_entry" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004847 "action_id" : 50,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004848 "action_const" : true,
4849 "action_data" : [],
4850 "action_entry_const" : true
4851 }
4852 },
4853 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004854 "name" : "tbl_act_10",
4855 "id" : 15,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004856 "key" : [],
4857 "match_type" : "exact",
4858 "type" : "simple",
4859 "max_size" : 1024,
4860 "with_counters" : false,
4861 "support_timeout" : false,
4862 "direct_meters" : null,
Yi Tseng27b9bc02018-04-12 14:52:40 +08004863 "action_ids" : [51],
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004864 "actions" : ["act_10"],
4865 "base_default_next" : "node_26",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004866 "next_tables" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004867 "act_10" : "node_26"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004868 },
4869 "default_entry" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004870 "action_id" : 51,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004871 "action_const" : true,
4872 "action_data" : [],
4873 "action_entry_const" : true
4874 }
4875 },
4876 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004877 "name" : "tbl_spgw_ingress_drop_now",
4878 "id" : 16,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004879 "key" : [],
4880 "match_type" : "exact",
4881 "type" : "simple",
4882 "max_size" : 1024,
4883 "with_counters" : false,
4884 "support_timeout" : false,
4885 "direct_meters" : null,
Yi Tseng27b9bc02018-04-12 14:52:40 +08004886 "action_ids" : [15],
4887 "actions" : ["FabricIngress.spgw_ingress.drop_now"],
4888 "base_default_next" : "FabricIngress.spgw_ingress.ue_cdr_table",
Carmelo Cascone14cde402018-01-25 01:57:18 -08004889 "next_tables" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004890 "FabricIngress.spgw_ingress.drop_now" : "FabricIngress.spgw_ingress.ue_cdr_table"
Carmelo Cascone14cde402018-01-25 01:57:18 -08004891 },
4892 "default_entry" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004893 "action_id" : 15,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004894 "action_const" : true,
4895 "action_data" : [],
4896 "action_entry_const" : true
4897 }
4898 },
4899 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004900 "name" : "FabricIngress.spgw_ingress.ue_cdr_table",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004901 "id" : 17,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004902 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004903 "filename" : "./include/control/../spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004904 "line" : 134,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004905 "column" : 10,
4906 "source_fragment" : "ue_cdr_table"
4907 },
4908 "key" : [
4909 {
4910 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004911 "name" : "ipv4.dst_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004912 "target" : ["ipv4", "dst_addr"],
4913 "mask" : null
4914 }
4915 ],
4916 "match_type" : "exact",
4917 "type" : "simple",
4918 "max_size" : 1024,
4919 "with_counters" : true,
4920 "support_timeout" : false,
4921 "direct_meters" : null,
Yi Tseng27b9bc02018-04-12 14:52:40 +08004922 "action_ids" : [18, 3],
4923 "actions" : ["FabricIngress.spgw_ingress.update_ue_cdr", "NoAction"],
4924 "base_default_next" : "tbl_act_11",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004925 "next_tables" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004926 "FabricIngress.spgw_ingress.update_ue_cdr" : "tbl_act_11",
4927 "NoAction" : "tbl_act_11"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004928 },
4929 "default_entry" : {
4930 "action_id" : 3,
4931 "action_const" : false,
4932 "action_data" : [],
4933 "action_entry_const" : false
4934 }
4935 },
4936 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004937 "name" : "tbl_act_11",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004938 "id" : 18,
Yi Tseng27b9bc02018-04-12 14:52:40 +08004939 "key" : [],
4940 "match_type" : "exact",
4941 "type" : "simple",
4942 "max_size" : 1024,
4943 "with_counters" : false,
4944 "support_timeout" : false,
4945 "direct_meters" : null,
4946 "action_ids" : [52],
4947 "actions" : ["act_11"],
4948 "base_default_next" : "FabricIngress.filtering.ingress_port_vlan",
4949 "next_tables" : {
4950 "act_11" : "FabricIngress.filtering.ingress_port_vlan"
4951 },
4952 "default_entry" : {
4953 "action_id" : 52,
4954 "action_const" : true,
4955 "action_data" : [],
4956 "action_entry_const" : true
4957 }
4958 },
4959 {
4960 "name" : "FabricIngress.filtering.ingress_port_vlan",
4961 "id" : 19,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004962 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004963 "filename" : "./include/control/filtering.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004964 "line" : 57,
4965 "column" : 10,
4966 "source_fragment" : "ingress_port_vlan"
4967 },
4968 "key" : [
4969 {
4970 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004971 "name" : "standard_metadata.ingress_port",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004972 "target" : ["standard_metadata", "ingress_port"],
4973 "mask" : null
4974 },
4975 {
4976 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004977 "name" : "hdr.vlan_tag.is_valid",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004978 "target" : ["vlan_tag", "$valid$"],
4979 "mask" : null
4980 },
4981 {
4982 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004983 "name" : "hdr.vlan_tag.vlan_id",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004984 "target" : ["vlan_tag", "vlan_id"],
4985 "mask" : null
4986 }
4987 ],
4988 "match_type" : "ternary",
4989 "type" : "simple",
4990 "max_size" : 1024,
4991 "with_counters" : true,
4992 "support_timeout" : false,
4993 "direct_meters" : null,
Yi Tseng27b9bc02018-04-12 14:52:40 +08004994 "action_ids" : [21, 20, 13, 19],
4995 "actions" : ["FabricIngress.filtering.push_internal_vlan", "FabricIngress.filtering.set_vlan", "nop", "FabricIngress.filtering.drop"],
4996 "base_default_next" : "FabricIngress.filtering.fwd_classifier",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004997 "next_tables" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004998 "FabricIngress.filtering.push_internal_vlan" : "FabricIngress.filtering.fwd_classifier",
4999 "FabricIngress.filtering.set_vlan" : "FabricIngress.filtering.fwd_classifier",
5000 "nop" : "FabricIngress.filtering.fwd_classifier",
5001 "FabricIngress.filtering.drop" : "FabricIngress.filtering.fwd_classifier"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005002 },
5003 "default_entry" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005004 "action_id" : 13,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005005 "action_const" : true,
5006 "action_data" : [],
5007 "action_entry_const" : true
5008 }
5009 },
5010 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005011 "name" : "FabricIngress.filtering.fwd_classifier",
5012 "id" : 20,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005013 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005014 "filename" : "./include/control/filtering.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005015 "line" : 76,
5016 "column" : 10,
5017 "source_fragment" : "fwd_classifier"
5018 },
5019 "key" : [
5020 {
5021 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005022 "name" : "standard_metadata.ingress_port",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005023 "target" : ["standard_metadata", "ingress_port"],
5024 "mask" : null
5025 },
5026 {
5027 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005028 "name" : "hdr.ethernet.dst_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005029 "target" : ["ethernet", "dst_addr"],
5030 "mask" : null
5031 },
5032 {
5033 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005034 "name" : "fabric_metadata.original_ether_type",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005035 "target" : ["scalars", "fabric_metadata_t.original_ether_type"],
5036 "mask" : null
5037 }
5038 ],
5039 "match_type" : "exact",
5040 "type" : "simple",
5041 "max_size" : 1024,
5042 "with_counters" : true,
5043 "support_timeout" : false,
5044 "direct_meters" : null,
Yi Tseng27b9bc02018-04-12 14:52:40 +08005045 "action_ids" : [22],
5046 "actions" : ["FabricIngress.filtering.set_forwarding_type"],
5047 "base_default_next" : "node_32",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005048 "next_tables" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005049 "FabricIngress.filtering.set_forwarding_type" : "node_32"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005050 },
5051 "default_entry" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005052 "action_id" : 22,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005053 "action_const" : true,
5054 "action_data" : ["0x0"],
5055 "action_entry_const" : true
5056 }
5057 },
5058 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005059 "name" : "FabricIngress.forwarding.bridging",
5060 "id" : 21,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005061 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005062 "filename" : "./include/control/forwarding.p4",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08005063 "line" : 52,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005064 "column" : 10,
5065 "source_fragment" : "bridging"
5066 },
5067 "key" : [
5068 {
5069 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005070 "name" : "hdr.vlan_tag.vlan_id",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005071 "target" : ["vlan_tag", "vlan_id"],
5072 "mask" : null
5073 },
5074 {
5075 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005076 "name" : "hdr.ethernet.dst_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005077 "target" : ["ethernet", "dst_addr"],
5078 "mask" : null
5079 }
5080 ],
5081 "match_type" : "ternary",
5082 "type" : "simple",
5083 "max_size" : 1024,
5084 "with_counters" : true,
5085 "support_timeout" : false,
5086 "direct_meters" : null,
Yi Tseng27b9bc02018-04-12 14:52:40 +08005087 "action_ids" : [24, 4],
5088 "actions" : ["FabricIngress.forwarding.set_next_id", "NoAction"],
5089 "base_default_next" : "FabricIngress.forwarding.acl",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005090 "next_tables" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005091 "FabricIngress.forwarding.set_next_id" : "FabricIngress.forwarding.acl",
5092 "NoAction" : "FabricIngress.forwarding.acl"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005093 },
5094 "default_entry" : {
5095 "action_id" : 4,
5096 "action_const" : false,
5097 "action_data" : [],
5098 "action_entry_const" : false
5099 }
5100 },
5101 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005102 "name" : "FabricIngress.forwarding.mpls",
5103 "id" : 22,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005104 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005105 "filename" : "./include/control/forwarding.p4",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08005106 "line" : 64,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005107 "column" : 10,
5108 "source_fragment" : "mpls"
5109 },
5110 "key" : [
5111 {
5112 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005113 "name" : "hdr.mpls.label",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005114 "target" : ["mpls", "label"],
5115 "mask" : null
5116 }
5117 ],
5118 "match_type" : "exact",
5119 "type" : "simple",
5120 "max_size" : 1024,
5121 "with_counters" : true,
5122 "support_timeout" : false,
5123 "direct_meters" : null,
Yi Tseng27b9bc02018-04-12 14:52:40 +08005124 "action_ids" : [30, 5],
5125 "actions" : ["FabricIngress.forwarding.pop_mpls_and_next", "NoAction"],
5126 "base_default_next" : "tbl_act_12",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005127 "next_tables" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005128 "FabricIngress.forwarding.pop_mpls_and_next" : "tbl_act_12",
5129 "NoAction" : "tbl_act_12"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005130 },
5131 "default_entry" : {
5132 "action_id" : 5,
5133 "action_const" : false,
5134 "action_data" : [],
5135 "action_entry_const" : false
5136 }
5137 },
5138 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005139 "name" : "tbl_act_12",
5140 "id" : 23,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005141 "key" : [],
5142 "match_type" : "exact",
5143 "type" : "simple",
5144 "max_size" : 1024,
5145 "with_counters" : false,
5146 "support_timeout" : false,
5147 "direct_meters" : null,
Yi Tseng27b9bc02018-04-12 14:52:40 +08005148 "action_ids" : [53],
5149 "actions" : ["act_12"],
5150 "base_default_next" : "FabricIngress.forwarding.acl",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005151 "next_tables" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005152 "act_12" : "FabricIngress.forwarding.acl"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005153 },
5154 "default_entry" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005155 "action_id" : 53,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005156 "action_const" : true,
5157 "action_data" : [],
5158 "action_entry_const" : true
5159 }
5160 },
5161 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005162 "name" : "FabricIngress.forwarding.unicast_v4",
5163 "id" : 24,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005164 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005165 "filename" : "./include/control/forwarding.p4",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08005166 "line" : 75,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005167 "column" : 10,
5168 "source_fragment" : "unicast_v4"
5169 },
5170 "key" : [
5171 {
5172 "match_type" : "lpm",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005173 "name" : "hdr.ipv4.dst_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005174 "target" : ["ipv4", "dst_addr"],
5175 "mask" : null
5176 }
5177 ],
5178 "match_type" : "lpm",
5179 "type" : "simple",
5180 "max_size" : 1024,
5181 "with_counters" : true,
5182 "support_timeout" : false,
5183 "direct_meters" : null,
Yi Tseng27b9bc02018-04-12 14:52:40 +08005184 "action_ids" : [25, 6],
5185 "actions" : ["FabricIngress.forwarding.set_next_id", "NoAction"],
5186 "base_default_next" : "FabricIngress.forwarding.acl",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005187 "next_tables" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005188 "FabricIngress.forwarding.set_next_id" : "FabricIngress.forwarding.acl",
5189 "NoAction" : "FabricIngress.forwarding.acl"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005190 },
5191 "default_entry" : {
5192 "action_id" : 6,
5193 "action_const" : false,
5194 "action_data" : [],
5195 "action_entry_const" : false
5196 }
5197 },
5198 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005199 "name" : "FabricIngress.forwarding.multicast_v4",
5200 "id" : 25,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005201 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005202 "filename" : "./include/control/forwarding.p4",
5203 "line" : 89,
5204 "column" : 10,
5205 "source_fragment" : "multicast_v4"
5206 },
5207 "key" : [
5208 {
5209 "match_type" : "exact",
5210 "name" : "hdr.vlan_tag.vlan_id",
5211 "target" : ["vlan_tag", "vlan_id"],
5212 "mask" : null
5213 },
5214 {
5215 "match_type" : "lpm",
5216 "name" : "hdr.ipv4.dst_addr",
5217 "target" : ["ipv4", "dst_addr"],
5218 "mask" : null
5219 }
5220 ],
5221 "match_type" : "lpm",
5222 "type" : "simple",
5223 "max_size" : 1024,
5224 "with_counters" : true,
5225 "support_timeout" : false,
5226 "direct_meters" : null,
5227 "action_ids" : [26, 7],
5228 "actions" : ["FabricIngress.forwarding.set_next_id", "NoAction"],
5229 "base_default_next" : "FabricIngress.forwarding.acl",
5230 "next_tables" : {
5231 "FabricIngress.forwarding.set_next_id" : "FabricIngress.forwarding.acl",
5232 "NoAction" : "FabricIngress.forwarding.acl"
5233 },
5234 "default_entry" : {
5235 "action_id" : 7,
5236 "action_const" : false,
5237 "action_data" : [],
5238 "action_entry_const" : false
5239 }
5240 },
5241 {
5242 "name" : "FabricIngress.forwarding.unicast_v6",
5243 "id" : 26,
5244 "source_info" : {
5245 "filename" : "./include/control/forwarding.p4",
5246 "line" : 105,
5247 "column" : 10,
5248 "source_fragment" : "unicast_v6"
5249 },
5250 "key" : [
5251 {
5252 "match_type" : "lpm",
5253 "name" : "hdr.ipv6.dst_addr",
5254 "target" : ["ipv6", "dst_addr"],
5255 "mask" : null
5256 }
5257 ],
5258 "match_type" : "lpm",
5259 "type" : "simple",
5260 "max_size" : 1024,
5261 "with_counters" : true,
5262 "support_timeout" : false,
5263 "direct_meters" : null,
5264 "action_ids" : [27, 8],
5265 "actions" : ["FabricIngress.forwarding.set_next_id", "NoAction"],
5266 "base_default_next" : "FabricIngress.forwarding.acl",
5267 "next_tables" : {
5268 "FabricIngress.forwarding.set_next_id" : "FabricIngress.forwarding.acl",
5269 "NoAction" : "FabricIngress.forwarding.acl"
5270 },
5271 "default_entry" : {
5272 "action_id" : 8,
5273 "action_const" : false,
5274 "action_data" : [],
5275 "action_entry_const" : false
5276 }
5277 },
5278 {
5279 "name" : "FabricIngress.forwarding.multicast_v6",
5280 "id" : 27,
5281 "source_info" : {
5282 "filename" : "./include/control/forwarding.p4",
5283 "line" : 119,
5284 "column" : 10,
5285 "source_fragment" : "multicast_v6"
5286 },
5287 "key" : [
5288 {
5289 "match_type" : "exact",
5290 "name" : "hdr.vlan_tag.vlan_id",
5291 "target" : ["vlan_tag", "vlan_id"],
5292 "mask" : null
5293 },
5294 {
5295 "match_type" : "lpm",
5296 "name" : "hdr.ipv6.dst_addr",
5297 "target" : ["ipv6", "dst_addr"],
5298 "mask" : null
5299 }
5300 ],
5301 "match_type" : "lpm",
5302 "type" : "simple",
5303 "max_size" : 1024,
5304 "with_counters" : true,
5305 "support_timeout" : false,
5306 "direct_meters" : null,
5307 "action_ids" : [28, 9],
5308 "actions" : ["FabricIngress.forwarding.set_next_id", "NoAction"],
5309 "base_default_next" : "FabricIngress.forwarding.acl",
5310 "next_tables" : {
5311 "FabricIngress.forwarding.set_next_id" : "FabricIngress.forwarding.acl",
5312 "NoAction" : "FabricIngress.forwarding.acl"
5313 },
5314 "default_entry" : {
5315 "action_id" : 9,
5316 "action_const" : false,
5317 "action_data" : [],
5318 "action_entry_const" : false
5319 }
5320 },
5321 {
5322 "name" : "FabricIngress.forwarding.acl",
5323 "id" : 28,
5324 "source_info" : {
5325 "filename" : "./include/control/forwarding.p4",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08005326 "line" : 133,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005327 "column" : 10,
5328 "source_fragment" : "acl"
5329 },
5330 "key" : [
5331 {
5332 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005333 "name" : "standard_metadata.ingress_port",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005334 "target" : ["standard_metadata", "ingress_port"],
5335 "mask" : null
5336 },
5337 {
5338 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005339 "name" : "fabric_metadata.ip_proto",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005340 "target" : ["scalars", "fabric_metadata_t.ip_proto"],
5341 "mask" : null
5342 },
5343 {
5344 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005345 "name" : "fabric_metadata.l4_src_port",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005346 "target" : ["scalars", "fabric_metadata_t.l4_src_port"],
5347 "mask" : null
5348 },
5349 {
5350 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005351 "name" : "fabric_metadata.l4_dst_port",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005352 "target" : ["scalars", "fabric_metadata_t.l4_dst_port"],
5353 "mask" : null
5354 },
5355 {
5356 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005357 "name" : "fabric_metadata.original_ether_type",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005358 "target" : ["scalars", "fabric_metadata_t.original_ether_type"],
5359 "mask" : null
5360 },
5361 {
5362 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005363 "name" : "hdr.ethernet.dst_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005364 "target" : ["ethernet", "dst_addr"],
5365 "mask" : null
5366 },
5367 {
5368 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005369 "name" : "hdr.ethernet.src_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005370 "target" : ["ethernet", "src_addr"],
5371 "mask" : null
5372 },
5373 {
5374 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005375 "name" : "hdr.vlan_tag.vlan_id",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005376 "target" : ["vlan_tag", "vlan_id"],
5377 "mask" : null
5378 },
5379 {
5380 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005381 "name" : "hdr.ipv4.src_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005382 "target" : ["ipv4", "src_addr"],
5383 "mask" : null
5384 },
5385 {
5386 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005387 "name" : "hdr.ipv4.dst_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005388 "target" : ["ipv4", "dst_addr"],
5389 "mask" : null
5390 },
5391 {
5392 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005393 "name" : "hdr.icmp.icmp_type",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005394 "target" : ["icmp", "icmp_type"],
5395 "mask" : null
5396 },
5397 {
5398 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005399 "name" : "hdr.icmp.icmp_code",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005400 "target" : ["icmp", "icmp_code"],
5401 "mask" : null
5402 }
5403 ],
5404 "match_type" : "ternary",
5405 "type" : "simple",
5406 "max_size" : 256,
5407 "with_counters" : true,
5408 "support_timeout" : false,
5409 "direct_meters" : null,
Yi Tseng27b9bc02018-04-12 14:52:40 +08005410 "action_ids" : [29, 31, 23, 14],
5411 "actions" : ["FabricIngress.forwarding.set_next_id", "FabricIngress.forwarding.duplicate_to_controller", "FabricIngress.forwarding.drop", "nop"],
5412 "base_default_next" : "FabricIngress.next.simple",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005413 "next_tables" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005414 "FabricIngress.forwarding.set_next_id" : "FabricIngress.next.simple",
5415 "FabricIngress.forwarding.duplicate_to_controller" : "FabricIngress.next.simple",
5416 "FabricIngress.forwarding.drop" : "FabricIngress.next.simple",
5417 "nop" : "FabricIngress.next.simple"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005418 },
5419 "default_entry" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005420 "action_id" : 14,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005421 "action_const" : true,
5422 "action_data" : [],
5423 "action_entry_const" : true
5424 }
5425 },
5426 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005427 "name" : "FabricIngress.next.simple",
5428 "id" : 29,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005429 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005430 "filename" : "./include/control/next.p4",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08005431 "line" : 83,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005432 "column" : 10,
5433 "source_fragment" : "simple"
5434 },
5435 "key" : [
5436 {
5437 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005438 "name" : "fabric_metadata.next_id",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005439 "target" : ["scalars", "fabric_metadata_t.next_id"],
5440 "mask" : null
5441 }
5442 ],
5443 "match_type" : "exact",
5444 "type" : "simple",
5445 "max_size" : 1024,
5446 "with_counters" : true,
5447 "support_timeout" : false,
5448 "direct_meters" : null,
Yi Tseng27b9bc02018-04-12 14:52:40 +08005449 "action_ids" : [32, 33, 34, 36, 10],
5450 "actions" : ["FabricIngress.next.output", "FabricIngress.next.set_vlan_output", "FabricIngress.next.l3_routing", "FabricIngress.next.mpls_routing_v4", "NoAction"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005451 "base_default_next" : null,
5452 "next_tables" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005453 "__HIT__" : "tbl_act_13",
5454 "__MISS__" : "tbl_act_14"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005455 },
5456 "default_entry" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005457 "action_id" : 10,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005458 "action_const" : false,
5459 "action_data" : [],
5460 "action_entry_const" : false
5461 }
5462 },
5463 {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08005464 "name" : "tbl_act_13",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08005465 "id" : 30,
5466 "key" : [],
5467 "match_type" : "exact",
5468 "type" : "simple",
5469 "max_size" : 1024,
5470 "with_counters" : false,
5471 "support_timeout" : false,
5472 "direct_meters" : null,
Yi Tseng27b9bc02018-04-12 14:52:40 +08005473 "action_ids" : [54],
5474 "actions" : ["act_13"],
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08005475 "base_default_next" : "node_49",
5476 "next_tables" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005477 "act_13" : "node_49"
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08005478 },
5479 "default_entry" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005480 "action_id" : 54,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08005481 "action_const" : true,
5482 "action_data" : [],
5483 "action_entry_const" : true
5484 }
5485 },
5486 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005487 "name" : "tbl_act_14",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08005488 "id" : 31,
5489 "key" : [],
5490 "match_type" : "exact",
5491 "type" : "simple",
5492 "max_size" : 1024,
5493 "with_counters" : false,
5494 "support_timeout" : false,
5495 "direct_meters" : null,
Yi Tseng27b9bc02018-04-12 14:52:40 +08005496 "action_ids" : [55],
5497 "actions" : ["act_14"],
5498 "base_default_next" : "node_49",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08005499 "next_tables" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005500 "act_14" : "node_49"
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08005501 },
5502 "default_entry" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005503 "action_id" : 55,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08005504 "action_const" : true,
5505 "action_data" : [],
5506 "action_entry_const" : true
5507 }
5508 },
5509 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005510 "name" : "tbl_act_15",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005511 "id" : 32,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005512 "key" : [],
5513 "match_type" : "exact",
5514 "type" : "simple",
5515 "max_size" : 1024,
5516 "with_counters" : false,
5517 "support_timeout" : false,
5518 "direct_meters" : null,
Yi Tseng27b9bc02018-04-12 14:52:40 +08005519 "action_ids" : [56],
5520 "actions" : ["act_15"],
5521 "base_default_next" : "FabricIngress.next.hashed",
Carmelo Cascone14cde402018-01-25 01:57:18 -08005522 "next_tables" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005523 "act_15" : "FabricIngress.next.hashed"
Carmelo Cascone14cde402018-01-25 01:57:18 -08005524 },
5525 "default_entry" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005526 "action_id" : 56,
5527 "action_const" : true,
5528 "action_data" : [],
5529 "action_entry_const" : true
5530 }
5531 },
5532 {
5533 "name" : "tbl_act_16",
5534 "id" : 33,
5535 "key" : [],
5536 "match_type" : "exact",
5537 "type" : "simple",
5538 "max_size" : 1024,
5539 "with_counters" : false,
5540 "support_timeout" : false,
5541 "direct_meters" : null,
5542 "action_ids" : [57],
5543 "actions" : ["act_16"],
5544 "base_default_next" : "FabricIngress.next.hashed",
5545 "next_tables" : {
5546 "act_16" : "FabricIngress.next.hashed"
5547 },
5548 "default_entry" : {
5549 "action_id" : 57,
5550 "action_const" : true,
5551 "action_data" : [],
5552 "action_entry_const" : true
5553 }
5554 },
5555 {
5556 "name" : "FabricIngress.next.hashed",
5557 "id" : 34,
5558 "source_info" : {
5559 "filename" : "./include/control/next.p4",
5560 "line" : 97,
5561 "column" : 10,
5562 "source_fragment" : "hashed"
5563 },
5564 "key" : [
5565 {
5566 "match_type" : "exact",
5567 "name" : "fabric_metadata.next_id",
5568 "target" : ["scalars", "fabric_metadata_t.next_id"],
5569 "mask" : null
5570 }
5571 ],
5572 "match_type" : "exact",
5573 "type" : "indirect_ws",
5574 "action_profile" : "FabricIngress.next.ecmp_selector",
5575 "max_size" : 1024,
5576 "with_counters" : true,
5577 "support_timeout" : false,
5578 "direct_meters" : null,
5579 "action_ids" : [35, 37, 38, 11],
5580 "actions" : ["FabricIngress.next.l3_routing", "FabricIngress.next.mpls_routing_v4", "FabricIngress.next.mpls_routing_v6", "NoAction"],
5581 "base_default_next" : "FabricIngress.next.multicast",
5582 "next_tables" : {
5583 "FabricIngress.next.l3_routing" : "FabricIngress.next.multicast",
5584 "FabricIngress.next.mpls_routing_v4" : "FabricIngress.next.multicast",
5585 "FabricIngress.next.mpls_routing_v6" : "FabricIngress.next.multicast",
5586 "NoAction" : "FabricIngress.next.multicast"
5587 }
5588 },
5589 {
5590 "name" : "FabricIngress.next.multicast",
5591 "id" : 35,
5592 "source_info" : {
5593 "filename" : "./include/control/next.p4",
5594 "line" : 128,
5595 "column" : 10,
5596 "source_fragment" : "multicast"
5597 },
5598 "key" : [
5599 {
5600 "match_type" : "exact",
5601 "name" : "fabric_metadata.next_id",
5602 "target" : ["scalars", "fabric_metadata_t.next_id"],
5603 "mask" : null
5604 }
5605 ],
5606 "match_type" : "exact",
5607 "type" : "simple",
5608 "max_size" : 1024,
5609 "with_counters" : true,
5610 "support_timeout" : false,
5611 "direct_meters" : null,
5612 "action_ids" : [39, 12],
5613 "actions" : ["FabricIngress.next.set_mcast_group", "NoAction"],
5614 "base_default_next" : "node_57",
5615 "next_tables" : {
5616 "FabricIngress.next.set_mcast_group" : "node_57",
5617 "NoAction" : "node_57"
5618 },
5619 "default_entry" : {
5620 "action_id" : 12,
5621 "action_const" : false,
5622 "action_data" : [],
5623 "action_entry_const" : false
5624 }
5625 },
5626 {
5627 "name" : "tbl_act_17",
5628 "id" : 36,
5629 "key" : [],
5630 "match_type" : "exact",
5631 "type" : "simple",
5632 "max_size" : 1024,
5633 "with_counters" : false,
5634 "support_timeout" : false,
5635 "direct_meters" : null,
5636 "action_ids" : [58],
5637 "actions" : ["act_17"],
5638 "base_default_next" : "node_59",
5639 "next_tables" : {
5640 "act_17" : "node_59"
5641 },
5642 "default_entry" : {
5643 "action_id" : 58,
5644 "action_const" : true,
5645 "action_data" : [],
5646 "action_entry_const" : true
5647 }
5648 },
5649 {
5650 "name" : "tbl_act_18",
5651 "id" : 37,
5652 "key" : [],
5653 "match_type" : "exact",
5654 "type" : "simple",
5655 "max_size" : 1024,
5656 "with_counters" : false,
5657 "support_timeout" : false,
5658 "direct_meters" : null,
5659 "action_ids" : [59],
5660 "actions" : ["act_18"],
5661 "base_default_next" : "node_61",
5662 "next_tables" : {
5663 "act_18" : "node_61"
5664 },
5665 "default_entry" : {
5666 "action_id" : 59,
5667 "action_const" : true,
5668 "action_data" : [],
5669 "action_entry_const" : true
5670 }
5671 },
5672 {
5673 "name" : "tbl_act_19",
5674 "id" : 38,
5675 "key" : [],
5676 "match_type" : "exact",
5677 "type" : "simple",
5678 "max_size" : 1024,
5679 "with_counters" : false,
5680 "support_timeout" : false,
5681 "direct_meters" : null,
5682 "action_ids" : [60],
5683 "actions" : ["act_19"],
5684 "base_default_next" : null,
5685 "next_tables" : {
5686 "act_19" : null
5687 },
5688 "default_entry" : {
5689 "action_id" : 60,
Carmelo Cascone14cde402018-01-25 01:57:18 -08005690 "action_const" : true,
5691 "action_data" : [],
5692 "action_entry_const" : true
5693 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005694 }
5695 ],
5696 "action_profiles" : [
5697 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005698 "name" : "FabricIngress.next.ecmp_selector",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005699 "id" : 0,
5700 "max_size" : 64,
5701 "selector" : {
5702 "algo" : "crc16",
5703 "input" : [
5704 {
5705 "type" : "field",
Yi Tseng3d3956d2018-01-31 17:28:05 -08005706 "value" : ["ipv4", "dst_addr"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005707 },
5708 {
5709 "type" : "field",
Yi Tseng3d3956d2018-01-31 17:28:05 -08005710 "value" : ["ipv4", "src_addr"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005711 },
5712 {
5713 "type" : "field",
5714 "value" : ["scalars", "fabric_metadata_t.ip_proto"]
5715 },
5716 {
5717 "type" : "field",
5718 "value" : ["scalars", "fabric_metadata_t.l4_src_port"]
5719 },
5720 {
5721 "type" : "field",
5722 "value" : ["scalars", "fabric_metadata_t.l4_dst_port"]
5723 }
5724 ]
5725 }
5726 }
5727 ],
5728 "conditionals" : [
5729 {
5730 "name" : "node_2",
5731 "id" : 0,
5732 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005733 "filename" : "./include/control/packetio.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005734 "line" : 25,
5735 "column" : 12,
5736 "source_fragment" : "hdr.packet_out.isValid()"
5737 },
5738 "expression" : {
5739 "type" : "expression",
5740 "value" : {
5741 "op" : "d2b",
5742 "left" : null,
5743 "right" : {
5744 "type" : "field",
5745 "value" : ["packet_out", "$valid$"]
5746 }
5747 }
5748 },
5749 "true_next" : "tbl_act",
5750 "false_next" : "tbl_act_0"
5751 },
5752 {
5753 "name" : "node_5",
5754 "id" : 1,
5755 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005756 "filename" : "./include/control/../spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005757 "line" : 147,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005758 "column" : 12,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005759 "source_fragment" : "gtpu.isValid()"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005760 },
5761 "expression" : {
5762 "type" : "expression",
5763 "value" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005764 "op" : "d2b",
5765 "left" : null,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005766 "right" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005767 "type" : "field",
5768 "value" : ["gtpu", "$valid$"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005769 }
5770 }
5771 },
5772 "true_next" : "tbl_act_1",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005773 "false_next" : "FabricIngress.spgw_ingress.ue_filter_table"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005774 },
5775 {
5776 "name" : "node_10",
5777 "id" : 2,
5778 "expression" : {
5779 "type" : "expression",
5780 "value" : {
5781 "op" : "d2b",
5782 "left" : null,
5783 "right" : {
5784 "type" : "field",
5785 "value" : ["scalars", "spgw_ingress_tmp_2"]
5786 }
5787 }
5788 },
5789 "true_next" : "tbl_act_4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005790 "false_next" : "node_17"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005791 },
5792 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005793 "name" : "node_15",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005794 "id" : 3,
5795 "expression" : {
5796 "type" : "expression",
5797 "value" : {
5798 "op" : "d2b",
5799 "left" : null,
5800 "right" : {
5801 "type" : "field",
5802 "value" : ["scalars", "spgw_ingress_tmp_3"]
5803 }
5804 }
5805 },
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005806 "true_next" : "tbl_act_7",
5807 "false_next" : "node_17"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005808 },
5809 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005810 "name" : "node_17",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005811 "id" : 4,
5812 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005813 "filename" : "./include/control/../spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005814 "line" : 167,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005815 "column" : 12,
5816 "source_fragment" : "!spgw_meta.do_spgw"
5817 },
5818 "expression" : {
5819 "type" : "expression",
5820 "value" : {
5821 "op" : "not",
5822 "left" : null,
5823 "right" : {
5824 "type" : "expression",
5825 "value" : {
5826 "op" : "d2b",
5827 "left" : null,
5828 "right" : {
5829 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005830 "value" : ["userMetadata.spgw", "do_spgw"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005831 }
5832 }
5833 }
5834 }
5835 },
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005836 "true_next" : "tbl_act_8",
5837 "false_next" : "node_19"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005838 },
5839 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005840 "name" : "node_19",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005841 "id" : 5,
5842 "expression" : {
5843 "type" : "expression",
5844 "value" : {
5845 "op" : "not",
5846 "left" : null,
5847 "right" : {
5848 "type" : "expression",
5849 "value" : {
5850 "op" : "d2b",
5851 "left" : null,
5852 "right" : {
5853 "type" : "field",
5854 "value" : ["scalars", "spgw_ingress_hasReturned_0"]
5855 }
5856 }
5857 }
5858 }
5859 },
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005860 "true_next" : "node_20",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005861 "false_next" : "FabricIngress.filtering.ingress_port_vlan"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005862 },
5863 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005864 "name" : "node_20",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005865 "id" : 6,
5866 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005867 "filename" : "./include/control/../spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005868 "line" : 172,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005869 "column" : 12,
5870 "source_fragment" : "spgw_meta.direction == DIR_UPLINK"
5871 },
5872 "expression" : {
5873 "type" : "expression",
5874 "value" : {
5875 "op" : "==",
5876 "left" : {
5877 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005878 "value" : ["userMetadata.spgw", "direction"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005879 },
5880 "right" : {
5881 "type" : "hexstr",
5882 "value" : "0x00"
5883 }
5884 }
5885 },
5886 "true_next" : "tbl_spgw_ingress_gtpu_decap",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005887 "false_next" : "node_22"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005888 },
5889 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005890 "name" : "node_22",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005891 "id" : 7,
5892 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005893 "filename" : "./include/control/../spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005894 "line" : 189,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005895 "column" : 12,
5896 "source_fragment" : "spgw_meta.direction == DIR_DOWNLINK"
5897 },
5898 "expression" : {
5899 "type" : "expression",
5900 "value" : {
5901 "op" : "==",
5902 "left" : {
5903 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005904 "value" : ["userMetadata.spgw", "direction"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005905 },
5906 "right" : {
5907 "type" : "hexstr",
5908 "value" : "0x01"
5909 }
5910 }
5911 },
Yi Tseng27b9bc02018-04-12 14:52:40 +08005912 "true_next" : "FabricIngress.spgw_ingress.dl_sess_lookup",
5913 "false_next" : "tbl_act_11"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005914 },
5915 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005916 "name" : "node_26",
5917 "id" : 8,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005918 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005919 "filename" : "./include/control/../spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005920 "line" : 190,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005921 "column" : 16,
5922 "source_fragment" : "!dl_sess_lookup.apply().hit"
5923 },
5924 "expression" : {
5925 "type" : "expression",
5926 "value" : {
5927 "op" : "not",
5928 "left" : null,
5929 "right" : {
5930 "type" : "expression",
5931 "value" : {
5932 "op" : "d2b",
5933 "left" : null,
5934 "right" : {
5935 "type" : "field",
5936 "value" : ["scalars", "spgw_ingress_tmp_4"]
5937 }
5938 }
5939 }
5940 }
5941 },
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005942 "true_next" : "tbl_spgw_ingress_drop_now",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005943 "false_next" : "FabricIngress.spgw_ingress.ue_cdr_table"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005944 },
5945 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005946 "name" : "node_32",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005947 "id" : 9,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005948 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005949 "filename" : "./include/control/forwarding.p4",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08005950 "line" : 163,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005951 "column" : 11,
5952 "source_fragment" : "fabric_metadata.fwd_type == FWD_BRIDGING"
5953 },
5954 "expression" : {
5955 "type" : "expression",
5956 "value" : {
5957 "op" : "==",
5958 "left" : {
5959 "type" : "field",
5960 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
5961 },
5962 "right" : {
5963 "type" : "hexstr",
5964 "value" : "0x00"
5965 }
5966 }
5967 },
Yi Tseng27b9bc02018-04-12 14:52:40 +08005968 "true_next" : "FabricIngress.forwarding.bridging",
5969 "false_next" : "node_34"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005970 },
5971 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005972 "name" : "node_34",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005973 "id" : 10,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005974 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005975 "filename" : "./include/control/forwarding.p4",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08005976 "line" : 164,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005977 "column" : 17,
5978 "source_fragment" : "fabric_metadata.fwd_type == FWD_MPLS"
5979 },
5980 "expression" : {
5981 "type" : "expression",
5982 "value" : {
5983 "op" : "==",
5984 "left" : {
5985 "type" : "field",
5986 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
5987 },
5988 "right" : {
5989 "type" : "hexstr",
5990 "value" : "0x01"
5991 }
5992 }
5993 },
Yi Tseng27b9bc02018-04-12 14:52:40 +08005994 "true_next" : "FabricIngress.forwarding.mpls",
5995 "false_next" : "node_37"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005996 },
5997 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005998 "name" : "node_37",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005999 "id" : 11,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006000 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08006001 "filename" : "./include/control/forwarding.p4",
6002 "line" : 171,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006003 "column" : 17,
6004 "source_fragment" : "fabric_metadata.fwd_type == FWD_IPV4_UNICAST"
6005 },
6006 "expression" : {
6007 "type" : "expression",
6008 "value" : {
6009 "op" : "==",
6010 "left" : {
6011 "type" : "field",
6012 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
6013 },
6014 "right" : {
6015 "type" : "hexstr",
6016 "value" : "0x02"
6017 }
6018 }
6019 },
Yi Tseng27b9bc02018-04-12 14:52:40 +08006020 "true_next" : "FabricIngress.forwarding.unicast_v4",
6021 "false_next" : "node_39"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006022 },
6023 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08006024 "name" : "node_39",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08006025 "id" : 12,
Yi Tseng27b9bc02018-04-12 14:52:40 +08006026 "source_info" : {
6027 "filename" : "./include/control/forwarding.p4",
6028 "line" : 173,
6029 "column" : 17,
6030 "source_fragment" : "fabric_metadata.fwd_type == FWD_IPV4_MULTICAST"
6031 },
6032 "expression" : {
6033 "type" : "expression",
6034 "value" : {
6035 "op" : "==",
6036 "left" : {
6037 "type" : "field",
6038 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
6039 },
6040 "right" : {
6041 "type" : "hexstr",
6042 "value" : "0x03"
6043 }
6044 }
6045 },
6046 "true_next" : "FabricIngress.forwarding.multicast_v4",
6047 "false_next" : "node_41"
6048 },
6049 {
6050 "name" : "node_41",
6051 "id" : 13,
6052 "source_info" : {
6053 "filename" : "./include/control/forwarding.p4",
6054 "line" : 176,
6055 "column" : 17,
6056 "source_fragment" : "fabric_metadata.fwd_type == FWD_IPV6_UNICAST"
6057 },
6058 "expression" : {
6059 "type" : "expression",
6060 "value" : {
6061 "op" : "==",
6062 "left" : {
6063 "type" : "field",
6064 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
6065 },
6066 "right" : {
6067 "type" : "hexstr",
6068 "value" : "0x04"
6069 }
6070 }
6071 },
6072 "true_next" : "FabricIngress.forwarding.unicast_v6",
6073 "false_next" : "node_43"
6074 },
6075 {
6076 "name" : "node_43",
6077 "id" : 14,
6078 "source_info" : {
6079 "filename" : "./include/control/forwarding.p4",
6080 "line" : 178,
6081 "column" : 17,
6082 "source_fragment" : "fabric_metadata.fwd_type == FWD_IPV6_MULTICAST"
6083 },
6084 "expression" : {
6085 "type" : "expression",
6086 "value" : {
6087 "op" : "==",
6088 "left" : {
6089 "type" : "field",
6090 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
6091 },
6092 "right" : {
6093 "type" : "hexstr",
6094 "value" : "0x05"
6095 }
6096 }
6097 },
6098 "true_next" : "FabricIngress.forwarding.multicast_v6",
6099 "false_next" : "FabricIngress.forwarding.acl"
6100 },
6101 {
6102 "name" : "node_49",
6103 "id" : 15,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006104 "expression" : {
6105 "type" : "expression",
6106 "value" : {
6107 "op" : "d2b",
6108 "left" : null,
6109 "right" : {
6110 "type" : "field",
6111 "value" : ["scalars", "next_tmp_0"]
6112 }
6113 }
6114 },
Yi Tseng27b9bc02018-04-12 14:52:40 +08006115 "true_next" : "node_50",
6116 "false_next" : "FabricIngress.next.hashed"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006117 },
6118 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08006119 "name" : "node_50",
6120 "id" : 16,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006121 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08006122 "filename" : "./include/control/next.p4",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08006123 "line" : 141,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006124 "column" : 16,
6125 "source_fragment" : "!hdr.mpls.isValid()"
6126 },
6127 "expression" : {
6128 "type" : "expression",
6129 "value" : {
6130 "op" : "not",
6131 "left" : null,
6132 "right" : {
6133 "type" : "expression",
6134 "value" : {
6135 "op" : "d2b",
6136 "left" : null,
6137 "right" : {
6138 "type" : "field",
6139 "value" : ["mpls", "$valid$"]
6140 }
6141 }
6142 }
6143 }
6144 },
Yi Tseng27b9bc02018-04-12 14:52:40 +08006145 "true_next" : "node_51",
6146 "false_next" : "FabricIngress.next.hashed"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006147 },
6148 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08006149 "name" : "node_51",
6150 "id" : 17,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006151 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08006152 "filename" : "./include/control/next.p4",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08006153 "line" : 142,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006154 "column" : 19,
6155 "source_fragment" : "hdr.ipv4.isValid()"
6156 },
6157 "expression" : {
6158 "type" : "expression",
6159 "value" : {
6160 "op" : "d2b",
6161 "left" : null,
6162 "right" : {
6163 "type" : "field",
6164 "value" : ["ipv4", "$valid$"]
6165 }
6166 }
6167 },
Yi Tseng27b9bc02018-04-12 14:52:40 +08006168 "true_next" : "tbl_act_15",
6169 "false_next" : "node_53"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006170 },
6171 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08006172 "name" : "node_53",
6173 "id" : 18,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006174 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08006175 "filename" : "./include/control/next.p4",
6176 "line" : 146,
6177 "column" : 25,
6178 "source_fragment" : "hdr.ipv6.isValid()"
6179 },
6180 "expression" : {
6181 "type" : "expression",
6182 "value" : {
6183 "op" : "d2b",
6184 "left" : null,
6185 "right" : {
6186 "type" : "field",
6187 "value" : ["ipv6", "$valid$"]
6188 }
6189 }
6190 },
6191 "true_next" : "tbl_act_16",
6192 "false_next" : "FabricIngress.next.hashed"
6193 },
6194 {
6195 "name" : "node_57",
6196 "id" : 19,
6197 "source_info" : {
6198 "filename" : "./include/control/port_counter.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006199 "line" : 27,
6200 "column" : 12,
6201 "source_fragment" : "standard_metadata.egress_spec < 511"
6202 },
6203 "expression" : {
6204 "type" : "expression",
6205 "value" : {
6206 "op" : "<",
6207 "left" : {
6208 "type" : "field",
6209 "value" : ["standard_metadata", "egress_spec"]
6210 },
6211 "right" : {
6212 "type" : "hexstr",
6213 "value" : "0x01ff"
6214 }
6215 }
6216 },
Yi Tseng27b9bc02018-04-12 14:52:40 +08006217 "true_next" : "tbl_act_17",
6218 "false_next" : "node_59"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006219 },
6220 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08006221 "name" : "node_59",
6222 "id" : 20,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006223 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08006224 "filename" : "./include/control/port_counter.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006225 "line" : 30,
6226 "column" : 12,
6227 "source_fragment" : "standard_metadata.ingress_port < 511"
6228 },
6229 "expression" : {
6230 "type" : "expression",
6231 "value" : {
6232 "op" : "<",
6233 "left" : {
6234 "type" : "field",
6235 "value" : ["standard_metadata", "ingress_port"]
6236 },
6237 "right" : {
6238 "type" : "hexstr",
6239 "value" : "0x01ff"
6240 }
6241 }
6242 },
Yi Tseng27b9bc02018-04-12 14:52:40 +08006243 "true_next" : "tbl_act_18",
6244 "false_next" : "node_61"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006245 },
6246 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08006247 "name" : "node_61",
6248 "id" : 21,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006249 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08006250 "filename" : "./include/control/next.p4",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08006251 "line" : 166,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006252 "column" : 12,
6253 "source_fragment" : "fabric_metadata.pop_vlan_at_egress"
6254 },
6255 "expression" : {
6256 "type" : "expression",
6257 "value" : {
6258 "op" : "d2b",
6259 "left" : null,
6260 "right" : {
6261 "type" : "field",
6262 "value" : ["scalars", "fabric_metadata_t.pop_vlan_at_egress"]
6263 }
6264 }
6265 },
6266 "false_next" : null,
Yi Tseng27b9bc02018-04-12 14:52:40 +08006267 "true_next" : "tbl_act_19"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006268 }
6269 ]
6270 },
6271 {
6272 "name" : "egress",
6273 "id" : 1,
6274 "source_info" : {
6275 "filename" : "fabric.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006276 "line" : 62,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006277 "column" : 8,
6278 "source_fragment" : "FabricEgress"
6279 },
Yi Tseng27b9bc02018-04-12 14:52:40 +08006280 "init_table" : "node_65",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006281 "tables" : [
6282 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08006283 "name" : "tbl_act_20",
6284 "id" : 39,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08006285 "key" : [],
6286 "match_type" : "exact",
6287 "type" : "simple",
6288 "max_size" : 1024,
6289 "with_counters" : false,
6290 "support_timeout" : false,
6291 "direct_meters" : null,
Yi Tseng27b9bc02018-04-12 14:52:40 +08006292 "action_ids" : [62],
6293 "actions" : ["act_20"],
6294 "base_default_next" : "tbl_act_21",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08006295 "next_tables" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08006296 "act_20" : "tbl_act_21"
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08006297 },
6298 "default_entry" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08006299 "action_id" : 62,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08006300 "action_const" : true,
6301 "action_data" : [],
6302 "action_entry_const" : true
6303 }
6304 },
6305 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08006306 "name" : "tbl_act_21",
6307 "id" : 40,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08006308 "key" : [],
6309 "match_type" : "exact",
6310 "type" : "simple",
6311 "max_size" : 1024,
6312 "with_counters" : false,
6313 "support_timeout" : false,
6314 "direct_meters" : null,
Yi Tseng27b9bc02018-04-12 14:52:40 +08006315 "action_ids" : [63],
6316 "actions" : ["act_21"],
6317 "base_default_next" : "node_68",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08006318 "next_tables" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08006319 "act_21" : "node_68"
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08006320 },
6321 "default_entry" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08006322 "action_id" : 63,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08006323 "action_const" : true,
6324 "action_data" : [],
6325 "action_entry_const" : true
6326 }
6327 },
6328 {
6329 "name" : "tbl_spgw_egress_gtpu_encap",
Yi Tseng27b9bc02018-04-12 14:52:40 +08006330 "id" : 41,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006331 "key" : [],
6332 "match_type" : "exact",
6333 "type" : "simple",
6334 "max_size" : 1024,
6335 "with_counters" : false,
6336 "support_timeout" : false,
6337 "direct_meters" : null,
Yi Tseng27b9bc02018-04-12 14:52:40 +08006338 "action_ids" : [61],
6339 "actions" : ["FabricEgress.spgw_egress.gtpu_encap"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006340 "base_default_next" : null,
6341 "next_tables" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08006342 "FabricEgress.spgw_egress.gtpu_encap" : null
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006343 },
6344 "default_entry" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08006345 "action_id" : 61,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006346 "action_const" : true,
6347 "action_data" : [],
6348 "action_entry_const" : true
6349 }
6350 }
6351 ],
6352 "action_profiles" : [],
6353 "conditionals" : [
6354 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08006355 "name" : "node_65",
6356 "id" : 22,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006357 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08006358 "filename" : "./include/control/packetio.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006359 "line" : 38,
6360 "column" : 12,
Carmelo Casconeb531b682018-01-30 17:55:56 -08006361 "source_fragment" : "standard_metadata.egress_port == 255"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006362 },
6363 "expression" : {
6364 "type" : "expression",
6365 "value" : {
6366 "op" : "==",
6367 "left" : {
6368 "type" : "field",
6369 "value" : ["standard_metadata", "egress_port"]
6370 },
6371 "right" : {
6372 "type" : "hexstr",
6373 "value" : "0x00ff"
6374 }
6375 }
6376 },
Yi Tseng27b9bc02018-04-12 14:52:40 +08006377 "true_next" : "tbl_act_20",
6378 "false_next" : "tbl_act_21"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006379 },
6380 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08006381 "name" : "node_68",
6382 "id" : 23,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006383 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08006384 "filename" : "./include/control/../spgw.p4",
6385 "line" : 249,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006386 "column" : 12,
6387 "source_fragment" : "spgw_meta.do_spgw && spgw_meta.direction == DIR_DOWNLINK"
6388 },
6389 "expression" : {
6390 "type" : "expression",
6391 "value" : {
6392 "op" : "and",
6393 "left" : {
6394 "type" : "expression",
6395 "value" : {
6396 "op" : "d2b",
6397 "left" : null,
6398 "right" : {
6399 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08006400 "value" : ["userMetadata.spgw", "do_spgw"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006401 }
6402 }
6403 },
6404 "right" : {
6405 "type" : "expression",
6406 "value" : {
6407 "op" : "==",
6408 "left" : {
6409 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08006410 "value" : ["userMetadata.spgw", "direction"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006411 },
6412 "right" : {
6413 "type" : "hexstr",
6414 "value" : "0x01"
6415 }
6416 }
6417 }
6418 }
6419 },
6420 "false_next" : null,
6421 "true_next" : "tbl_spgw_egress_gtpu_encap"
6422 }
6423 ]
6424 }
6425 ],
6426 "checksums" : [
6427 {
6428 "name" : "cksum",
6429 "id" : 0,
6430 "target" : ["ipv4", "hdr_checksum"],
6431 "type" : "generic",
6432 "calculation" : "calc",
6433 "if_cond" : {
6434 "type" : "expression",
6435 "value" : {
6436 "op" : "d2b",
6437 "left" : null,
6438 "right" : {
6439 "type" : "field",
6440 "value" : ["ipv4", "$valid$"]
6441 }
6442 }
6443 }
6444 },
6445 {
6446 "name" : "cksum_0",
6447 "id" : 1,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006448 "target" : ["ipv4", "hdr_checksum"],
6449 "type" : "generic",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006450 "calculation" : "calc_0",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006451 "if_cond" : {
6452 "type" : "expression",
6453 "value" : {
6454 "op" : "d2b",
6455 "left" : null,
6456 "right" : {
6457 "type" : "field",
6458 "value" : ["ipv4", "$valid$"]
6459 }
6460 }
6461 }
6462 },
6463 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006464 "name" : "cksum_1",
6465 "id" : 2,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006466 "target" : ["gtpu_ipv4", "hdr_checksum"],
6467 "type" : "generic",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006468 "calculation" : "calc_1",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006469 "if_cond" : {
6470 "type" : "expression",
6471 "value" : {
6472 "op" : "d2b",
6473 "left" : null,
6474 "right" : {
6475 "type" : "field",
6476 "value" : ["gtpu_ipv4", "$valid$"]
6477 }
6478 }
6479 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006480 }
6481 ],
6482 "force_arith" : [],
6483 "extern_instances" : [],
6484 "field_aliases" : [
6485 [
6486 "queueing_metadata.enq_timestamp",
6487 ["standard_metadata", "enq_timestamp"]
6488 ],
6489 [
6490 "queueing_metadata.enq_qdepth",
6491 ["standard_metadata", "enq_qdepth"]
6492 ],
6493 [
6494 "queueing_metadata.deq_timedelta",
6495 ["standard_metadata", "deq_timedelta"]
6496 ],
6497 [
6498 "queueing_metadata.deq_qdepth",
6499 ["standard_metadata", "deq_qdepth"]
6500 ],
6501 [
6502 "intrinsic_metadata.ingress_global_timestamp",
6503 ["standard_metadata", "ingress_global_timestamp"]
6504 ],
6505 [
Yi Tseng27b9bc02018-04-12 14:52:40 +08006506 "intrinsic_metadata.egress_global_timestamp",
6507 ["standard_metadata", "egress_global_timestamp"]
6508 ],
6509 [
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006510 "intrinsic_metadata.lf_field_list",
6511 ["standard_metadata", "lf_field_list"]
6512 ],
6513 [
6514 "intrinsic_metadata.mcast_grp",
6515 ["standard_metadata", "mcast_grp"]
6516 ],
6517 [
6518 "intrinsic_metadata.resubmit_flag",
6519 ["standard_metadata", "resubmit_flag"]
6520 ],
6521 [
6522 "intrinsic_metadata.egress_rid",
6523 ["standard_metadata", "egress_rid"]
Yi Tseng27b9bc02018-04-12 14:52:40 +08006524 ],
6525 [
6526 "intrinsic_metadata.recirculate_flag",
6527 ["standard_metadata", "recirculate_flag"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006528 ]
6529 ]
6530}