blob: efab709ecbe82b3c7b6fb1b5e7711c83fc29310e [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],
Yi Tseng20f9e7b2018-05-24 23:27:39 +080022 ["fabric_metadata_t.pop_vlan_when_packet_in", 1, false],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -080023 ["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"
Yi Tseng20f9e7b2018-05-24 23:27:39 +0800484 },
485 {
486 "parameters" : [
487 {
488 "type" : "field",
489 "value" : ["scalars", "fabric_metadata_t.original_ether_type"]
490 },
491 {
492 "type" : "field",
493 "value" : ["vlan_tag", "ether_type"]
494 }
495 ],
496 "op" : "set"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800497 }
498 ],
499 "transitions" : [
500 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800501 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800502 "value" : "0x0806",
503 "mask" : null,
504 "next_state" : "parse_arp"
505 },
506 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800507 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800508 "value" : "0x0800",
509 "mask" : null,
510 "next_state" : "parse_ipv4"
511 },
512 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800513 "type" : "hexstr",
514 "value" : "0x86dd",
515 "mask" : null,
516 "next_state" : "parse_ipv6"
517 },
518 {
519 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800520 "value" : "0x8847",
521 "mask" : null,
522 "next_state" : "parse_mpls"
523 },
524 {
525 "value" : "default",
526 "mask" : null,
527 "next_state" : null
528 }
529 ],
530 "transition_key" : [
531 {
532 "type" : "field",
533 "value" : ["vlan_tag", "ether_type"]
534 }
535 ]
536 },
537 {
538 "name" : "parse_mpls",
539 "id" : 4,
540 "parser_ops" : [
541 {
542 "parameters" : [
543 {
544 "type" : "regular",
545 "value" : "mpls"
546 }
547 ],
548 "op" : "extract"
549 },
550 {
551 "parameters" : [
552 {
553 "type" : "field",
554 "value" : ["scalars", "tmp"]
555 },
556 {
557 "type" : "lookahead",
558 "value" : [0, 4]
559 }
560 ],
561 "op" : "set"
562 }
563 ],
564 "transitions" : [
565 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800566 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800567 "value" : "0x04",
568 "mask" : null,
569 "next_state" : "parse_ipv4"
570 },
571 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800572 "type" : "hexstr",
573 "value" : "0x06",
574 "mask" : null,
575 "next_state" : "parse_ipv6"
576 },
577 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800578 "value" : "default",
579 "mask" : null,
580 "next_state" : "parse_ethernet"
581 }
582 ],
583 "transition_key" : [
584 {
585 "type" : "field",
586 "value" : ["scalars", "tmp"]
587 }
588 ]
589 },
590 {
591 "name" : "parse_ipv4",
592 "id" : 5,
593 "parser_ops" : [
594 {
595 "parameters" : [
596 {
597 "type" : "regular",
598 "value" : "ipv4"
599 }
600 ],
601 "op" : "extract"
602 },
603 {
604 "parameters" : [
605 {
606 "type" : "field",
607 "value" : ["scalars", "fabric_metadata_t.ip_proto"]
608 },
609 {
610 "type" : "field",
611 "value" : ["ipv4", "protocol"]
612 }
613 ],
614 "op" : "set"
615 }
616 ],
617 "transitions" : [
618 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800619 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800620 "value" : "0x06",
621 "mask" : null,
622 "next_state" : "parse_tcp"
623 },
624 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800625 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800626 "value" : "0x11",
627 "mask" : null,
628 "next_state" : "parse_udp"
629 },
630 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800631 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800632 "value" : "0x01",
633 "mask" : null,
634 "next_state" : "parse_icmp"
635 },
636 {
637 "value" : "default",
638 "mask" : null,
639 "next_state" : null
640 }
641 ],
642 "transition_key" : [
643 {
644 "type" : "field",
645 "value" : ["ipv4", "protocol"]
646 }
647 ]
648 },
649 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800650 "name" : "parse_ipv6",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -0800651 "id" : 6,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800652 "parser_ops" : [
653 {
654 "parameters" : [
655 {
656 "type" : "regular",
Yi Tseng27b9bc02018-04-12 14:52:40 +0800657 "value" : "ipv6"
658 }
659 ],
660 "op" : "extract"
661 },
662 {
663 "parameters" : [
664 {
665 "type" : "field",
666 "value" : ["scalars", "fabric_metadata_t.ip_proto"]
667 },
668 {
669 "type" : "field",
670 "value" : ["ipv6", "next_hdr"]
671 }
672 ],
673 "op" : "set"
674 }
675 ],
676 "transitions" : [
677 {
678 "type" : "hexstr",
679 "value" : "0x06",
680 "mask" : null,
681 "next_state" : "parse_tcp"
682 },
683 {
684 "type" : "hexstr",
685 "value" : "0x11",
686 "mask" : null,
687 "next_state" : "parse_udp"
688 },
689 {
690 "type" : "hexstr",
691 "value" : "0x3a",
692 "mask" : null,
693 "next_state" : "parse_icmp"
694 },
695 {
696 "value" : "default",
697 "mask" : null,
698 "next_state" : null
699 }
700 ],
701 "transition_key" : [
702 {
703 "type" : "field",
704 "value" : ["ipv6", "next_hdr"]
705 }
706 ]
707 },
708 {
709 "name" : "parse_arp",
710 "id" : 7,
711 "parser_ops" : [
712 {
713 "parameters" : [
714 {
715 "type" : "regular",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800716 "value" : "arp"
717 }
718 ],
719 "op" : "extract"
720 }
721 ],
722 "transitions" : [
723 {
724 "value" : "default",
725 "mask" : null,
726 "next_state" : null
727 }
728 ],
729 "transition_key" : []
730 },
731 {
732 "name" : "parse_tcp",
Yi Tseng27b9bc02018-04-12 14:52:40 +0800733 "id" : 8,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800734 "parser_ops" : [
735 {
736 "parameters" : [
737 {
738 "type" : "regular",
739 "value" : "tcp"
740 }
741 ],
742 "op" : "extract"
743 },
744 {
745 "parameters" : [
746 {
747 "type" : "field",
748 "value" : ["scalars", "fabric_metadata_t.l4_src_port"]
749 },
750 {
751 "type" : "field",
752 "value" : ["tcp", "src_port"]
753 }
754 ],
755 "op" : "set"
756 },
757 {
758 "parameters" : [
759 {
760 "type" : "field",
761 "value" : ["scalars", "fabric_metadata_t.l4_dst_port"]
762 },
763 {
764 "type" : "field",
765 "value" : ["tcp", "dst_port"]
766 }
767 ],
768 "op" : "set"
769 }
770 ],
771 "transitions" : [
772 {
773 "value" : "default",
774 "mask" : null,
775 "next_state" : null
776 }
777 ],
778 "transition_key" : []
779 },
780 {
781 "name" : "parse_udp",
Yi Tseng27b9bc02018-04-12 14:52:40 +0800782 "id" : 9,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800783 "parser_ops" : [
784 {
785 "parameters" : [
786 {
787 "type" : "regular",
788 "value" : "udp"
789 }
790 ],
791 "op" : "extract"
792 },
793 {
794 "parameters" : [
795 {
796 "type" : "field",
797 "value" : ["scalars", "fabric_metadata_t.l4_src_port"]
798 },
799 {
800 "type" : "field",
801 "value" : ["udp", "src_port"]
802 }
803 ],
804 "op" : "set"
805 },
806 {
807 "parameters" : [
808 {
809 "type" : "field",
810 "value" : ["scalars", "fabric_metadata_t.l4_dst_port"]
811 },
812 {
813 "type" : "field",
814 "value" : ["udp", "dst_port"]
815 }
816 ],
817 "op" : "set"
818 }
819 ],
820 "transitions" : [
821 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800822 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800823 "value" : "0x0868",
824 "mask" : null,
825 "next_state" : "parse_gtpu"
826 },
827 {
828 "value" : "default",
829 "mask" : null,
830 "next_state" : null
831 }
832 ],
833 "transition_key" : [
834 {
835 "type" : "field",
836 "value" : ["udp", "dst_port"]
837 }
838 ]
839 },
840 {
841 "name" : "parse_icmp",
Yi Tseng27b9bc02018-04-12 14:52:40 +0800842 "id" : 10,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800843 "parser_ops" : [
844 {
845 "parameters" : [
846 {
847 "type" : "regular",
848 "value" : "icmp"
849 }
850 ],
851 "op" : "extract"
852 }
853 ],
854 "transitions" : [
855 {
856 "value" : "default",
857 "mask" : null,
858 "next_state" : null
859 }
860 ],
861 "transition_key" : []
862 },
863 {
864 "name" : "parse_gtpu",
Yi Tseng27b9bc02018-04-12 14:52:40 +0800865 "id" : 11,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800866 "parser_ops" : [
867 {
868 "parameters" : [
869 {
870 "type" : "regular",
871 "value" : "gtpu"
872 }
873 ],
874 "op" : "extract"
875 },
876 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800877 "parameters" : [
878 {
879 "type" : "regular",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -0800880 "value" : "gtpu_ipv4"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800881 }
882 ],
883 "op" : "extract"
884 }
885 ],
886 "transitions" : [
887 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800888 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800889 "value" : "0x06",
890 "mask" : null,
891 "next_state" : "parse_tcp"
892 },
893 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800894 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800895 "value" : "0x11",
896 "mask" : null,
897 "next_state" : "parse_udp_inner"
898 },
899 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800900 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800901 "value" : "0x01",
902 "mask" : null,
903 "next_state" : "parse_icmp"
904 },
905 {
906 "value" : "default",
907 "mask" : null,
908 "next_state" : null
909 }
910 ],
911 "transition_key" : [
912 {
913 "type" : "field",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -0800914 "value" : ["gtpu_ipv4", "protocol"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800915 }
916 ]
917 },
918 {
919 "name" : "parse_udp_inner",
Yi Tseng27b9bc02018-04-12 14:52:40 +0800920 "id" : 12,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800921 "parser_ops" : [
922 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800923 "parameters" : [
924 {
925 "type" : "regular",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -0800926 "value" : "gtpu_udp"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800927 }
928 ],
929 "op" : "extract"
930 },
931 {
932 "parameters" : [
933 {
934 "type" : "field",
935 "value" : ["scalars", "fabric_metadata_t.l4_src_port"]
936 },
937 {
938 "type" : "field",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -0800939 "value" : ["gtpu_udp", "src_port"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800940 }
941 ],
942 "op" : "set"
943 },
944 {
945 "parameters" : [
946 {
947 "type" : "field",
948 "value" : ["scalars", "fabric_metadata_t.l4_dst_port"]
949 },
950 {
951 "type" : "field",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -0800952 "value" : ["gtpu_udp", "dst_port"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800953 }
954 ],
955 "op" : "set"
956 }
957 ],
958 "transitions" : [
959 {
960 "value" : "default",
961 "mask" : null,
962 "next_state" : null
963 }
964 ],
965 "transition_key" : []
966 }
967 ]
968 }
969 ],
Yi Tseng27b9bc02018-04-12 14:52:40 +0800970 "parse_vsets" : [],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800971 "deparsers" : [
972 {
973 "name" : "deparser",
974 "id" : 0,
975 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800976 "filename" : "./include/parser.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +0800977 "line" : 165,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800978 "column" : 8,
979 "source_fragment" : "FabricDeparser"
980 },
Yi Tseng27b9bc02018-04-12 14:52:40 +0800981 "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 -0800982 }
983 ],
984 "meter_arrays" : [],
985 "counter_arrays" : [
986 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800987 "name" : "FabricIngress.spgw_ingress.ue_counter",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800988 "id" : 0,
989 "is_direct" : true,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800990 "binding" : "FabricIngress.spgw_ingress.ue_cdr_table"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800991 },
992 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800993 "name" : "FabricIngress.filtering.ingress_port_vlan_counter",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800994 "id" : 1,
995 "is_direct" : true,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800996 "binding" : "FabricIngress.filtering.ingress_port_vlan"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800997 },
998 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800999 "name" : "FabricIngress.filtering.fwd_classifier_counter",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001000 "id" : 2,
1001 "is_direct" : true,
Yi Tseng27b9bc02018-04-12 14:52:40 +08001002 "binding" : "FabricIngress.filtering.fwd_classifier"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001003 },
1004 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001005 "name" : "FabricIngress.forwarding.bridging_counter",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001006 "id" : 3,
1007 "is_direct" : true,
Yi Tseng27b9bc02018-04-12 14:52:40 +08001008 "binding" : "FabricIngress.forwarding.bridging"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001009 },
1010 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001011 "name" : "FabricIngress.forwarding.mpls_counter",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001012 "id" : 4,
1013 "is_direct" : true,
Yi Tseng27b9bc02018-04-12 14:52:40 +08001014 "binding" : "FabricIngress.forwarding.mpls"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001015 },
1016 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001017 "name" : "FabricIngress.forwarding.unicast_v4_counter",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001018 "id" : 5,
1019 "is_direct" : true,
Yi Tseng27b9bc02018-04-12 14:52:40 +08001020 "binding" : "FabricIngress.forwarding.unicast_v4"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001021 },
1022 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001023 "name" : "FabricIngress.forwarding.acl_counter",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001024 "id" : 6,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001025 "is_direct" : true,
Yi Tseng27b9bc02018-04-12 14:52:40 +08001026 "binding" : "FabricIngress.forwarding.acl"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001027 },
1028 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001029 "name" : "FabricIngress.forwarding.multicast_v4_counter",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001030 "id" : 7,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001031 "is_direct" : true,
Yi Tseng27b9bc02018-04-12 14:52:40 +08001032 "binding" : "FabricIngress.forwarding.multicast_v4"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001033 },
1034 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001035 "name" : "FabricIngress.forwarding.unicast_v6_counter",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001036 "id" : 8,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001037 "is_direct" : true,
Yi Tseng27b9bc02018-04-12 14:52:40 +08001038 "binding" : "FabricIngress.forwarding.unicast_v6"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001039 },
1040 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001041 "name" : "FabricIngress.forwarding.multicast_v6_counter",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001042 "id" : 9,
Yi Tseng27b9bc02018-04-12 14:52:40 +08001043 "is_direct" : true,
1044 "binding" : "FabricIngress.forwarding.multicast_v6"
1045 },
1046 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001047 "name" : "FabricIngress.next.vlan_meta_counter",
Yi Tseng27b9bc02018-04-12 14:52:40 +08001048 "id" : 10,
1049 "is_direct" : true,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001050 "binding" : "FabricIngress.next.vlan_meta"
1051 },
1052 {
1053 "name" : "FabricIngress.next.simple_counter",
1054 "id" : 11,
1055 "is_direct" : true,
Yi Tseng27b9bc02018-04-12 14:52:40 +08001056 "binding" : "FabricIngress.next.simple"
1057 },
1058 {
1059 "name" : "FabricIngress.next.hashed_counter",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001060 "id" : 12,
Yi Tseng27b9bc02018-04-12 14:52:40 +08001061 "is_direct" : true,
1062 "binding" : "FabricIngress.next.hashed"
1063 },
1064 {
1065 "name" : "FabricIngress.next.multicast_counter",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001066 "id" : 13,
Yi Tseng27b9bc02018-04-12 14:52:40 +08001067 "is_direct" : true,
1068 "binding" : "FabricIngress.next.multicast"
1069 },
1070 {
1071 "name" : "FabricIngress.port_counters_control.egress_port_counter",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001072 "id" : 14,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001073 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001074 "filename" : "./include/control/port_counter.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001075 "line" : 23,
Yi Tseng3d3956d2018-01-31 17:28:05 -08001076 "column" : 48,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001077 "source_fragment" : "egress_port_counter"
1078 },
1079 "size" : 511,
1080 "is_direct" : false
1081 },
1082 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001083 "name" : "FabricIngress.port_counters_control.ingress_port_counter",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001084 "id" : 15,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001085 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001086 "filename" : "./include/control/port_counter.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001087 "line" : 24,
Yi Tseng3d3956d2018-01-31 17:28:05 -08001088 "column" : 48,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001089 "source_fragment" : "ingress_port_counter"
1090 },
1091 "size" : 511,
1092 "is_direct" : false
1093 }
1094 ],
1095 "register_arrays" : [],
1096 "calculations" : [
1097 {
1098 "name" : "calc",
1099 "id" : 0,
1100 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001101 "filename" : "./include/checksum.p4",
Carmelo Cascone14cde402018-01-25 01:57:18 -08001102 "line" : 56,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001103 "column" : 8,
1104 "source_fragment" : "verify_checksum(hdr.ipv4.isValid(), ..."
1105 },
1106 "algo" : "csum16",
1107 "input" : [
1108 {
1109 "type" : "field",
1110 "value" : ["ipv4", "version"]
1111 },
1112 {
1113 "type" : "field",
1114 "value" : ["ipv4", "ihl"]
1115 },
1116 {
1117 "type" : "field",
1118 "value" : ["ipv4", "diffserv"]
1119 },
1120 {
1121 "type" : "field",
1122 "value" : ["ipv4", "total_len"]
1123 },
1124 {
1125 "type" : "field",
1126 "value" : ["ipv4", "identification"]
1127 },
1128 {
1129 "type" : "field",
1130 "value" : ["ipv4", "flags"]
1131 },
1132 {
1133 "type" : "field",
1134 "value" : ["ipv4", "frag_offset"]
1135 },
1136 {
1137 "type" : "field",
1138 "value" : ["ipv4", "ttl"]
1139 },
1140 {
1141 "type" : "field",
1142 "value" : ["ipv4", "protocol"]
1143 },
1144 {
1145 "type" : "field",
1146 "value" : ["ipv4", "src_addr"]
1147 },
1148 {
1149 "type" : "field",
1150 "value" : ["ipv4", "dst_addr"]
1151 }
1152 ]
1153 },
1154 {
1155 "name" : "calc_0",
1156 "id" : 1,
1157 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001158 "filename" : "./include/checksum.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001159 "line" : 28,
1160 "column" : 8,
1161 "source_fragment" : "update_checksum(hdr.ipv4.isValid(), ..."
1162 },
1163 "algo" : "csum16",
1164 "input" : [
1165 {
1166 "type" : "field",
1167 "value" : ["ipv4", "version"]
1168 },
1169 {
1170 "type" : "field",
1171 "value" : ["ipv4", "ihl"]
1172 },
1173 {
1174 "type" : "field",
1175 "value" : ["ipv4", "diffserv"]
1176 },
1177 {
1178 "type" : "field",
1179 "value" : ["ipv4", "total_len"]
1180 },
1181 {
1182 "type" : "field",
1183 "value" : ["ipv4", "identification"]
1184 },
1185 {
1186 "type" : "field",
1187 "value" : ["ipv4", "flags"]
1188 },
1189 {
1190 "type" : "field",
1191 "value" : ["ipv4", "frag_offset"]
1192 },
1193 {
1194 "type" : "field",
1195 "value" : ["ipv4", "ttl"]
1196 },
1197 {
1198 "type" : "field",
1199 "value" : ["ipv4", "protocol"]
1200 },
1201 {
1202 "type" : "field",
1203 "value" : ["ipv4", "src_addr"]
1204 },
1205 {
1206 "type" : "field",
1207 "value" : ["ipv4", "dst_addr"]
1208 }
1209 ]
1210 },
1211 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001212 "name" : "calc_1",
1213 "id" : 2,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001214 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001215 "filename" : "./include/control/../spgw.p4",
1216 "line" : 296,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001217 "column" : 8,
1218 "source_fragment" : "update_checksum(gtpu_ipv4.isValid(), ..."
1219 },
1220 "algo" : "csum16",
1221 "input" : [
1222 {
1223 "type" : "field",
1224 "value" : ["gtpu_ipv4", "version"]
1225 },
1226 {
1227 "type" : "field",
1228 "value" : ["gtpu_ipv4", "ihl"]
1229 },
1230 {
1231 "type" : "field",
1232 "value" : ["gtpu_ipv4", "diffserv"]
1233 },
1234 {
1235 "type" : "field",
1236 "value" : ["gtpu_ipv4", "total_len"]
1237 },
1238 {
1239 "type" : "field",
1240 "value" : ["gtpu_ipv4", "identification"]
1241 },
1242 {
1243 "type" : "field",
1244 "value" : ["gtpu_ipv4", "flags"]
1245 },
1246 {
1247 "type" : "field",
1248 "value" : ["gtpu_ipv4", "frag_offset"]
1249 },
1250 {
1251 "type" : "field",
1252 "value" : ["gtpu_ipv4", "ttl"]
1253 },
1254 {
1255 "type" : "field",
1256 "value" : ["gtpu_ipv4", "protocol"]
1257 },
1258 {
1259 "type" : "field",
1260 "value" : ["gtpu_ipv4", "src_addr"]
1261 },
1262 {
1263 "type" : "field",
1264 "value" : ["gtpu_ipv4", "dst_addr"]
1265 }
1266 ]
1267 }
1268 ],
1269 "learn_lists" : [],
1270 "actions" : [
1271 {
1272 "name" : "NoAction",
1273 "id" : 0,
1274 "runtime_data" : [],
1275 "primitives" : []
1276 },
1277 {
1278 "name" : "NoAction",
1279 "id" : 1,
1280 "runtime_data" : [],
1281 "primitives" : []
1282 },
1283 {
1284 "name" : "NoAction",
1285 "id" : 2,
1286 "runtime_data" : [],
1287 "primitives" : []
1288 },
1289 {
1290 "name" : "NoAction",
1291 "id" : 3,
1292 "runtime_data" : [],
1293 "primitives" : []
1294 },
1295 {
1296 "name" : "NoAction",
1297 "id" : 4,
1298 "runtime_data" : [],
1299 "primitives" : []
1300 },
1301 {
1302 "name" : "NoAction",
1303 "id" : 5,
1304 "runtime_data" : [],
1305 "primitives" : []
1306 },
1307 {
1308 "name" : "NoAction",
1309 "id" : 6,
1310 "runtime_data" : [],
1311 "primitives" : []
1312 },
1313 {
1314 "name" : "NoAction",
1315 "id" : 7,
1316 "runtime_data" : [],
1317 "primitives" : []
1318 },
1319 {
1320 "name" : "NoAction",
1321 "id" : 8,
1322 "runtime_data" : [],
1323 "primitives" : []
1324 },
1325 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001326 "name" : "NoAction",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001327 "id" : 9,
1328 "runtime_data" : [],
1329 "primitives" : []
1330 },
1331 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001332 "name" : "NoAction",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001333 "id" : 10,
1334 "runtime_data" : [],
1335 "primitives" : []
1336 },
1337 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001338 "name" : "NoAction",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001339 "id" : 11,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001340 "runtime_data" : [],
Yi Tseng27b9bc02018-04-12 14:52:40 +08001341 "primitives" : []
1342 },
1343 {
1344 "name" : "NoAction",
1345 "id" : 12,
1346 "runtime_data" : [],
1347 "primitives" : []
1348 },
1349 {
1350 "name" : "nop",
1351 "id" : 13,
1352 "runtime_data" : [],
1353 "primitives" : []
1354 },
1355 {
1356 "name" : "nop",
1357 "id" : 14,
1358 "runtime_data" : [],
1359 "primitives" : []
1360 },
1361 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001362 "name" : "nop",
Yi Tseng27b9bc02018-04-12 14:52:40 +08001363 "id" : 15,
1364 "runtime_data" : [],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001365 "primitives" : []
1366 },
1367 {
1368 "name" : "FabricIngress.spgw_ingress.drop_now",
1369 "id" : 16,
1370 "runtime_data" : [],
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001371 "primitives" : [
1372 {
1373 "op" : "drop",
1374 "parameters" : [],
1375 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001376 "filename" : "./include/control/../spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001377 "line" : 33,
1378 "column" : 8,
1379 "source_fragment" : "mark_to_drop()"
1380 }
1381 },
1382 {
1383 "op" : "exit",
1384 "parameters" : [],
1385 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001386 "filename" : "./include/control/../spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001387 "line" : 34,
1388 "column" : 8,
1389 "source_fragment" : "exit"
1390 }
1391 }
1392 ]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001393 },
1394 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001395 "name" : "FabricIngress.spgw_ingress.gtpu_decap",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001396 "id" : 17,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001397 "runtime_data" : [],
1398 "primitives" : [
1399 {
1400 "op" : "remove_header",
1401 "parameters" : [
1402 {
1403 "type" : "header",
1404 "value" : "gtpu_ipv4"
1405 }
1406 ],
1407 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001408 "filename" : "./include/control/../spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001409 "line" : 38,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001410 "column" : 8,
1411 "source_fragment" : "gtpu_ipv4.setInvalid()"
1412 }
1413 },
1414 {
1415 "op" : "remove_header",
1416 "parameters" : [
1417 {
1418 "type" : "header",
1419 "value" : "gtpu_udp"
1420 }
1421 ],
1422 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001423 "filename" : "./include/control/../spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001424 "line" : 39,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001425 "column" : 8,
1426 "source_fragment" : "gtpu_udp.setInvalid()"
1427 }
1428 },
1429 {
1430 "op" : "remove_header",
1431 "parameters" : [
1432 {
1433 "type" : "header",
1434 "value" : "gtpu"
1435 }
1436 ],
1437 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001438 "filename" : "./include/control/../spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001439 "line" : 40,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001440 "column" : 8,
1441 "source_fragment" : "gtpu.setInvalid()"
1442 }
1443 }
1444 ]
1445 },
1446 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001447 "name" : "FabricIngress.spgw_ingress.set_dl_sess_info",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001448 "id" : 18,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001449 "runtime_data" : [
1450 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001451 "name" : "teid",
1452 "bitwidth" : 32
1453 },
1454 {
1455 "name" : "s1u_enb_addr",
1456 "bitwidth" : 32
1457 },
1458 {
1459 "name" : "s1u_sgw_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001460 "bitwidth" : 32
1461 }
1462 ],
1463 "primitives" : [
1464 {
1465 "op" : "assign",
1466 "parameters" : [
1467 {
1468 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08001469 "value" : ["userMetadata.spgw", "teid"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001470 },
1471 {
1472 "type" : "runtime_data",
1473 "value" : 0
1474 }
1475 ],
1476 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001477 "filename" : "./include/control/../spgw.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001478 "line" : 46,
1479 "column" : 8,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001480 "source_fragment" : "spgw_meta.teid = teid"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001481 }
1482 },
1483 {
1484 "op" : "assign",
1485 "parameters" : [
1486 {
1487 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08001488 "value" : ["userMetadata.spgw", "s1u_enb_addr"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001489 },
1490 {
1491 "type" : "runtime_data",
1492 "value" : 1
1493 }
1494 ],
1495 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001496 "filename" : "./include/control/../spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001497 "line" : 47,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001498 "column" : 8,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001499 "source_fragment" : "spgw_meta.s1u_enb_addr = s1u_enb_addr"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001500 }
1501 },
1502 {
1503 "op" : "assign",
1504 "parameters" : [
1505 {
1506 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08001507 "value" : ["userMetadata.spgw", "s1u_sgw_addr"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001508 },
1509 {
1510 "type" : "runtime_data",
1511 "value" : 2
1512 }
1513 ],
1514 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001515 "filename" : "./include/control/../spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001516 "line" : 48,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001517 "column" : 8,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001518 "source_fragment" : "spgw_meta.s1u_sgw_addr = s1u_sgw_addr"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001519 }
1520 }
1521 ]
1522 },
1523 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001524 "name" : "FabricIngress.spgw_ingress.update_ue_cdr",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001525 "id" : 19,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001526 "runtime_data" : [],
1527 "primitives" : []
1528 },
1529 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001530 "name" : "FabricIngress.filtering.drop",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001531 "id" : 20,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001532 "runtime_data" : [],
1533 "primitives" : [
1534 {
1535 "op" : "drop",
1536 "parameters" : [],
1537 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001538 "filename" : "./include/control/filtering.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001539 "line" : 31,
1540 "column" : 8,
1541 "source_fragment" : "mark_to_drop()"
1542 }
1543 }
1544 ]
1545 },
1546 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001547 "name" : "FabricIngress.filtering.set_vlan",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001548 "id" : 21,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001549 "runtime_data" : [
1550 {
1551 "name" : "new_vlan_id",
1552 "bitwidth" : 12
1553 }
1554 ],
1555 "primitives" : [
1556 {
1557 "op" : "assign",
1558 "parameters" : [
1559 {
1560 "type" : "field",
1561 "value" : ["vlan_tag", "vlan_id"]
1562 },
1563 {
1564 "type" : "runtime_data",
1565 "value" : 0
1566 }
1567 ],
1568 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001569 "filename" : "./include/control/filtering.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001570 "line" : 35,
1571 "column" : 8,
1572 "source_fragment" : "hdr.vlan_tag.vlan_id = new_vlan_id"
1573 }
1574 }
1575 ]
1576 },
1577 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001578 "name" : "FabricIngress.filtering.push_internal_vlan",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001579 "id" : 22,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001580 "runtime_data" : [
1581 {
1582 "name" : "new_vlan_id",
1583 "bitwidth" : 12
1584 }
1585 ],
1586 "primitives" : [
1587 {
1588 "op" : "add_header",
1589 "parameters" : [
1590 {
1591 "type" : "header",
1592 "value" : "vlan_tag"
1593 }
1594 ],
1595 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001596 "filename" : "./include/control/filtering.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001597 "line" : 41,
1598 "column" : 8,
1599 "source_fragment" : "hdr.vlan_tag.setValid()"
1600 }
1601 },
1602 {
1603 "op" : "assign",
1604 "parameters" : [
1605 {
1606 "type" : "field",
1607 "value" : ["vlan_tag", "cfi"]
1608 },
1609 {
1610 "type" : "hexstr",
1611 "value" : "0x00"
1612 }
1613 ],
1614 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001615 "filename" : "./include/control/filtering.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001616 "line" : 42,
1617 "column" : 8,
1618 "source_fragment" : "hdr.vlan_tag.cfi = 0"
1619 }
1620 },
1621 {
1622 "op" : "assign",
1623 "parameters" : [
1624 {
1625 "type" : "field",
1626 "value" : ["vlan_tag", "pri"]
1627 },
1628 {
1629 "type" : "hexstr",
1630 "value" : "0x00"
1631 }
1632 ],
1633 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001634 "filename" : "./include/control/filtering.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001635 "line" : 43,
1636 "column" : 8,
1637 "source_fragment" : "hdr.vlan_tag.pri = 0"
1638 }
1639 },
1640 {
1641 "op" : "assign",
1642 "parameters" : [
1643 {
1644 "type" : "field",
1645 "value" : ["vlan_tag", "ether_type"]
1646 },
1647 {
1648 "type" : "field",
1649 "value" : ["ethernet", "ether_type"]
1650 }
1651 ],
1652 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001653 "filename" : "./include/control/filtering.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001654 "line" : 44,
1655 "column" : 8,
1656 "source_fragment" : "hdr.vlan_tag.ether_type = hdr.ethernet.ether_type"
1657 }
1658 },
1659 {
1660 "op" : "assign",
1661 "parameters" : [
1662 {
1663 "type" : "field",
1664 "value" : ["ethernet", "ether_type"]
1665 },
1666 {
1667 "type" : "hexstr",
1668 "value" : "0x8100"
1669 }
1670 ],
1671 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001672 "filename" : "./include/control/../define.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001673 "line" : 32,
1674 "column" : 31,
1675 "source_fragment" : "0x8100; ..."
1676 }
1677 },
1678 {
1679 "op" : "assign",
1680 "parameters" : [
1681 {
1682 "type" : "field",
1683 "value" : ["vlan_tag", "vlan_id"]
1684 },
1685 {
1686 "type" : "runtime_data",
1687 "value" : 0
1688 }
1689 ],
1690 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001691 "filename" : "./include/control/filtering.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001692 "line" : 35,
1693 "column" : 8,
1694 "source_fragment" : "hdr.vlan_tag.vlan_id = new_vlan_id; ..."
1695 }
1696 },
1697 {
1698 "op" : "assign",
1699 "parameters" : [
1700 {
1701 "type" : "field",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001702 "value" : ["scalars", "fabric_metadata_t.pop_vlan_when_packet_in"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001703 },
1704 {
1705 "type" : "expression",
1706 "value" : {
1707 "type" : "expression",
1708 "value" : {
1709 "op" : "b2d",
1710 "left" : null,
1711 "right" : {
1712 "type" : "bool",
1713 "value" : true
1714 }
1715 }
1716 }
1717 }
1718 ],
1719 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001720 "filename" : "./include/control/filtering.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001721 "line" : 49,
1722 "column" : 8,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001723 "source_fragment" : "fabric_metadata.pop_vlan_when_packet_in = true"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001724 }
1725 }
1726 ]
1727 },
1728 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001729 "name" : "FabricIngress.filtering.set_forwarding_type",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001730 "id" : 23,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001731 "runtime_data" : [
1732 {
1733 "name" : "fwd_type",
1734 "bitwidth" : 3
1735 }
1736 ],
1737 "primitives" : [
1738 {
1739 "op" : "assign",
1740 "parameters" : [
1741 {
1742 "type" : "field",
1743 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
1744 },
1745 {
1746 "type" : "runtime_data",
1747 "value" : 0
1748 }
1749 ],
1750 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001751 "filename" : "./include/control/filtering.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001752 "line" : 53,
1753 "column" : 8,
1754 "source_fragment" : "fabric_metadata.fwd_type = fwd_type"
1755 }
1756 }
1757 ]
1758 },
1759 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001760 "name" : "FabricIngress.forwarding.drop",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001761 "id" : 24,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001762 "runtime_data" : [],
1763 "primitives" : [
1764 {
1765 "op" : "drop",
1766 "parameters" : [],
1767 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001768 "filename" : "./include/control/forwarding.p4",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001769 "line" : 36,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001770 "column" : 8,
1771 "source_fragment" : "mark_to_drop()"
1772 }
1773 }
1774 ]
1775 },
1776 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001777 "name" : "FabricIngress.forwarding.set_next_id",
Yi Tseng27b9bc02018-04-12 14:52:40 +08001778 "id" : 25,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001779 "runtime_data" : [
1780 {
1781 "name" : "next_id",
1782 "bitwidth" : 32
1783 }
1784 ],
1785 "primitives" : [
1786 {
1787 "op" : "assign",
1788 "parameters" : [
1789 {
1790 "type" : "field",
1791 "value" : ["scalars", "fabric_metadata_t.next_id"]
1792 },
1793 {
1794 "type" : "runtime_data",
1795 "value" : 0
1796 }
1797 ],
1798 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001799 "filename" : "./include/control/forwarding.p4",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001800 "line" : 40,
1801 "column" : 8,
1802 "source_fragment" : "fabric_metadata.next_id = next_id"
1803 }
1804 }
1805 ]
1806 },
1807 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001808 "name" : "FabricIngress.forwarding.set_next_id",
1809 "id" : 26,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001810 "runtime_data" : [
1811 {
1812 "name" : "next_id",
1813 "bitwidth" : 32
1814 }
1815 ],
1816 "primitives" : [
1817 {
1818 "op" : "assign",
1819 "parameters" : [
1820 {
1821 "type" : "field",
1822 "value" : ["scalars", "fabric_metadata_t.next_id"]
1823 },
1824 {
1825 "type" : "runtime_data",
1826 "value" : 0
1827 }
1828 ],
1829 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001830 "filename" : "./include/control/forwarding.p4",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001831 "line" : 40,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001832 "column" : 8,
1833 "source_fragment" : "fabric_metadata.next_id = next_id"
1834 }
1835 }
1836 ]
1837 },
1838 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001839 "name" : "FabricIngress.forwarding.set_next_id",
1840 "id" : 27,
1841 "runtime_data" : [
1842 {
1843 "name" : "next_id",
1844 "bitwidth" : 32
1845 }
1846 ],
1847 "primitives" : [
1848 {
1849 "op" : "assign",
1850 "parameters" : [
1851 {
1852 "type" : "field",
1853 "value" : ["scalars", "fabric_metadata_t.next_id"]
1854 },
1855 {
1856 "type" : "runtime_data",
1857 "value" : 0
1858 }
1859 ],
1860 "source_info" : {
1861 "filename" : "./include/control/forwarding.p4",
1862 "line" : 40,
1863 "column" : 8,
1864 "source_fragment" : "fabric_metadata.next_id = next_id"
1865 }
1866 }
1867 ]
1868 },
1869 {
1870 "name" : "FabricIngress.forwarding.set_next_id",
1871 "id" : 28,
1872 "runtime_data" : [
1873 {
1874 "name" : "next_id",
1875 "bitwidth" : 32
1876 }
1877 ],
1878 "primitives" : [
1879 {
1880 "op" : "assign",
1881 "parameters" : [
1882 {
1883 "type" : "field",
1884 "value" : ["scalars", "fabric_metadata_t.next_id"]
1885 },
1886 {
1887 "type" : "runtime_data",
1888 "value" : 0
1889 }
1890 ],
1891 "source_info" : {
1892 "filename" : "./include/control/forwarding.p4",
1893 "line" : 40,
1894 "column" : 8,
1895 "source_fragment" : "fabric_metadata.next_id = next_id"
1896 }
1897 }
1898 ]
1899 },
1900 {
1901 "name" : "FabricIngress.forwarding.set_next_id",
1902 "id" : 29,
1903 "runtime_data" : [
1904 {
1905 "name" : "next_id",
1906 "bitwidth" : 32
1907 }
1908 ],
1909 "primitives" : [
1910 {
1911 "op" : "assign",
1912 "parameters" : [
1913 {
1914 "type" : "field",
1915 "value" : ["scalars", "fabric_metadata_t.next_id"]
1916 },
1917 {
1918 "type" : "runtime_data",
1919 "value" : 0
1920 }
1921 ],
1922 "source_info" : {
1923 "filename" : "./include/control/forwarding.p4",
1924 "line" : 40,
1925 "column" : 8,
1926 "source_fragment" : "fabric_metadata.next_id = next_id"
1927 }
1928 }
1929 ]
1930 },
1931 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001932 "name" : "FabricIngress.forwarding.set_next_id",
Yi Tseng27b9bc02018-04-12 14:52:40 +08001933 "id" : 30,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001934 "runtime_data" : [
1935 {
1936 "name" : "next_id",
1937 "bitwidth" : 32
1938 }
1939 ],
1940 "primitives" : [
1941 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001942 "op" : "assign",
1943 "parameters" : [
1944 {
1945 "type" : "field",
1946 "value" : ["scalars", "fabric_metadata_t.next_id"]
1947 },
1948 {
1949 "type" : "runtime_data",
1950 "value" : 0
1951 }
1952 ],
1953 "source_info" : {
1954 "filename" : "./include/control/forwarding.p4",
1955 "line" : 40,
1956 "column" : 8,
1957 "source_fragment" : "fabric_metadata.next_id = next_id"
1958 }
1959 }
1960 ]
1961 },
1962 {
1963 "name" : "FabricIngress.forwarding.pop_mpls_and_next",
1964 "id" : 31,
1965 "runtime_data" : [
1966 {
1967 "name" : "next_id",
1968 "bitwidth" : 32
1969 }
1970 ],
1971 "primitives" : [
1972 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001973 "op" : "remove_header",
1974 "parameters" : [
1975 {
1976 "type" : "header",
1977 "value" : "mpls"
1978 }
1979 ],
1980 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001981 "filename" : "./include/control/forwarding.p4",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001982 "line" : 44,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001983 "column" : 8,
1984 "source_fragment" : "hdr.mpls.setInvalid()"
1985 }
1986 },
1987 {
1988 "op" : "assign",
1989 "parameters" : [
1990 {
1991 "type" : "field",
1992 "value" : ["scalars", "fabric_metadata_t.next_id"]
1993 },
1994 {
1995 "type" : "runtime_data",
1996 "value" : 0
1997 }
1998 ],
1999 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002000 "filename" : "./include/control/forwarding.p4",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002001 "line" : 45,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002002 "column" : 8,
2003 "source_fragment" : "fabric_metadata.next_id = next_id"
2004 }
2005 }
2006 ]
2007 },
2008 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002009 "name" : "FabricIngress.forwarding.duplicate_to_controller",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002010 "id" : 32,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002011 "runtime_data" : [],
2012 "primitives" : [
2013 {
2014 "op" : "assign",
2015 "parameters" : [
2016 {
2017 "type" : "field",
2018 "value" : ["standard_metadata", "egress_spec"]
2019 },
2020 {
2021 "type" : "hexstr",
2022 "value" : "0x00ff"
2023 }
2024 ],
2025 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002026 "filename" : "./include/control/forwarding.p4",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002027 "line" : 49,
Carmelo Casconeb531b682018-01-30 17:55:56 -08002028 "column" : 8,
2029 "source_fragment" : "standard_metadata.egress_spec = 255"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002030 }
2031 }
2032 ]
2033 },
2034 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002035 "name" : "FabricIngress.next.output",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002036 "id" : 33,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002037 "runtime_data" : [
2038 {
2039 "name" : "port_num",
2040 "bitwidth" : 9
2041 }
2042 ],
2043 "primitives" : [
2044 {
2045 "op" : "assign",
2046 "parameters" : [
2047 {
2048 "type" : "field",
2049 "value" : ["standard_metadata", "egress_spec"]
2050 },
2051 {
2052 "type" : "runtime_data",
2053 "value" : 0
2054 }
2055 ],
2056 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002057 "filename" : "./include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002058 "line" : 33,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002059 "column" : 8,
2060 "source_fragment" : "standard_metadata.egress_spec = port_num"
2061 }
2062 }
2063 ]
2064 },
2065 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002066 "name" : "FabricIngress.next.set_vlan",
2067 "id" : 34,
2068 "runtime_data" : [
2069 {
2070 "name" : "new_vlan_id",
2071 "bitwidth" : 12
2072 }
2073 ],
2074 "primitives" : [
2075 {
2076 "op" : "assign",
2077 "parameters" : [
2078 {
2079 "type" : "field",
2080 "value" : ["vlan_tag", "vlan_id"]
2081 },
2082 {
2083 "type" : "runtime_data",
2084 "value" : 0
2085 }
2086 ],
2087 "source_info" : {
2088 "filename" : "./include/control/next.p4",
2089 "line" : 37,
2090 "column" : 8,
2091 "source_fragment" : "hdr.vlan_tag.vlan_id = new_vlan_id"
2092 }
2093 }
2094 ]
2095 },
2096 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002097 "name" : "FabricIngress.next.set_vlan_output",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002098 "id" : 35,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002099 "runtime_data" : [
2100 {
2101 "name" : "new_vlan_id",
2102 "bitwidth" : 12
2103 },
2104 {
2105 "name" : "port_num",
2106 "bitwidth" : 9
2107 }
2108 ],
2109 "primitives" : [
2110 {
2111 "op" : "assign",
2112 "parameters" : [
2113 {
2114 "type" : "field",
2115 "value" : ["vlan_tag", "vlan_id"]
2116 },
2117 {
2118 "type" : "runtime_data",
2119 "value" : 0
2120 }
2121 ],
2122 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002123 "filename" : "./include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002124 "line" : 46,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002125 "column" : 8,
2126 "source_fragment" : "hdr.vlan_tag.vlan_id = new_vlan_id"
2127 }
2128 },
2129 {
2130 "op" : "assign",
2131 "parameters" : [
2132 {
2133 "type" : "field",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002134 "value" : ["standard_metadata", "egress_spec"]
2135 },
2136 {
2137 "type" : "runtime_data",
2138 "value" : 1
2139 }
2140 ],
2141 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002142 "filename" : "./include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002143 "line" : 33,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002144 "column" : 8,
2145 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2146 }
2147 }
2148 ]
2149 },
2150 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002151 "name" : "FabricIngress.next.l3_routing",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002152 "id" : 36,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002153 "runtime_data" : [
2154 {
2155 "name" : "port_num",
2156 "bitwidth" : 9
2157 },
2158 {
2159 "name" : "smac",
2160 "bitwidth" : 48
2161 },
2162 {
2163 "name" : "dmac",
2164 "bitwidth" : 48
2165 }
2166 ],
2167 "primitives" : [
2168 {
2169 "op" : "assign",
2170 "parameters" : [
2171 {
2172 "type" : "field",
2173 "value" : ["ethernet", "src_addr"]
2174 },
2175 {
2176 "type" : "runtime_data",
2177 "value" : 1
2178 }
2179 ],
2180 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002181 "filename" : "./include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002182 "line" : 51,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002183 "column" : 8,
2184 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2185 }
2186 },
2187 {
2188 "op" : "assign",
2189 "parameters" : [
2190 {
2191 "type" : "field",
2192 "value" : ["ethernet", "dst_addr"]
2193 },
2194 {
2195 "type" : "runtime_data",
2196 "value" : 2
2197 }
2198 ],
2199 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002200 "filename" : "./include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002201 "line" : 55,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002202 "column" : 8,
2203 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2204 }
2205 },
2206 {
2207 "op" : "assign",
2208 "parameters" : [
2209 {
2210 "type" : "field",
2211 "value" : ["standard_metadata", "egress_spec"]
2212 },
2213 {
2214 "type" : "runtime_data",
2215 "value" : 0
2216 }
2217 ],
2218 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002219 "filename" : "./include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002220 "line" : 33,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002221 "column" : 8,
2222 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2223 }
2224 }
2225 ]
2226 },
2227 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002228 "name" : "FabricIngress.next.l3_routing",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002229 "id" : 37,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002230 "runtime_data" : [
2231 {
2232 "name" : "port_num",
2233 "bitwidth" : 9
2234 },
2235 {
2236 "name" : "smac",
2237 "bitwidth" : 48
2238 },
2239 {
2240 "name" : "dmac",
2241 "bitwidth" : 48
2242 }
2243 ],
2244 "primitives" : [
2245 {
2246 "op" : "assign",
2247 "parameters" : [
2248 {
2249 "type" : "field",
2250 "value" : ["ethernet", "src_addr"]
2251 },
2252 {
2253 "type" : "runtime_data",
2254 "value" : 1
2255 }
2256 ],
2257 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002258 "filename" : "./include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002259 "line" : 51,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002260 "column" : 8,
2261 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2262 }
2263 },
2264 {
2265 "op" : "assign",
2266 "parameters" : [
2267 {
2268 "type" : "field",
2269 "value" : ["ethernet", "dst_addr"]
2270 },
2271 {
2272 "type" : "runtime_data",
2273 "value" : 2
2274 }
2275 ],
2276 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002277 "filename" : "./include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002278 "line" : 55,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002279 "column" : 8,
2280 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2281 }
2282 },
2283 {
2284 "op" : "assign",
2285 "parameters" : [
2286 {
2287 "type" : "field",
2288 "value" : ["standard_metadata", "egress_spec"]
2289 },
2290 {
2291 "type" : "runtime_data",
2292 "value" : 0
2293 }
2294 ],
2295 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002296 "filename" : "./include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002297 "line" : 33,
2298 "column" : 8,
2299 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2300 }
2301 }
2302 ]
2303 },
2304 {
2305 "name" : "FabricIngress.next.l3_routing_vlan",
2306 "id" : 38,
2307 "runtime_data" : [
2308 {
2309 "name" : "port_num",
2310 "bitwidth" : 9
2311 },
2312 {
2313 "name" : "smac",
2314 "bitwidth" : 48
2315 },
2316 {
2317 "name" : "dmac",
2318 "bitwidth" : 48
2319 },
2320 {
2321 "name" : "new_vlan_id",
2322 "bitwidth" : 12
2323 }
2324 ],
2325 "primitives" : [
2326 {
2327 "op" : "assign",
2328 "parameters" : [
2329 {
2330 "type" : "field",
2331 "value" : ["ethernet", "src_addr"]
2332 },
2333 {
2334 "type" : "runtime_data",
2335 "value" : 1
2336 }
2337 ],
2338 "source_info" : {
2339 "filename" : "./include/control/next.p4",
2340 "line" : 51,
2341 "column" : 8,
2342 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2343 }
2344 },
2345 {
2346 "op" : "assign",
2347 "parameters" : [
2348 {
2349 "type" : "field",
2350 "value" : ["ethernet", "dst_addr"]
2351 },
2352 {
2353 "type" : "runtime_data",
2354 "value" : 2
2355 }
2356 ],
2357 "source_info" : {
2358 "filename" : "./include/control/next.p4",
2359 "line" : 55,
2360 "column" : 8,
2361 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2362 }
2363 },
2364 {
2365 "op" : "assign",
2366 "parameters" : [
2367 {
2368 "type" : "field",
2369 "value" : ["vlan_tag", "vlan_id"]
2370 },
2371 {
2372 "type" : "runtime_data",
2373 "value" : 3
2374 }
2375 ],
2376 "source_info" : {
2377 "filename" : "./include/control/next.p4",
2378 "line" : 46,
2379 "column" : 8,
2380 "source_fragment" : "hdr.vlan_tag.vlan_id = new_vlan_id; ..."
2381 }
2382 },
2383 {
2384 "op" : "assign",
2385 "parameters" : [
2386 {
2387 "type" : "field",
2388 "value" : ["standard_metadata", "egress_spec"]
2389 },
2390 {
2391 "type" : "runtime_data",
2392 "value" : 0
2393 }
2394 ],
2395 "source_info" : {
2396 "filename" : "./include/control/next.p4",
2397 "line" : 33,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002398 "column" : 8,
2399 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2400 }
2401 }
2402 ]
2403 },
2404 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002405 "name" : "FabricIngress.next.mpls_routing_v4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002406 "id" : 39,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002407 "runtime_data" : [
2408 {
2409 "name" : "port_num",
2410 "bitwidth" : 9
2411 },
2412 {
2413 "name" : "smac",
2414 "bitwidth" : 48
2415 },
2416 {
2417 "name" : "dmac",
2418 "bitwidth" : 48
2419 },
2420 {
2421 "name" : "label",
2422 "bitwidth" : 20
2423 }
2424 ],
2425 "primitives" : [
2426 {
2427 "op" : "assign",
2428 "parameters" : [
2429 {
2430 "type" : "field",
2431 "value" : ["ethernet", "src_addr"]
2432 },
2433 {
2434 "type" : "runtime_data",
2435 "value" : 1
2436 }
2437 ],
2438 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002439 "filename" : "./include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002440 "line" : 51,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002441 "column" : 8,
2442 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2443 }
2444 },
2445 {
2446 "op" : "assign",
2447 "parameters" : [
2448 {
2449 "type" : "field",
2450 "value" : ["ethernet", "dst_addr"]
2451 },
2452 {
2453 "type" : "runtime_data",
2454 "value" : 2
2455 }
2456 ],
2457 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002458 "filename" : "./include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002459 "line" : 55,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002460 "column" : 8,
2461 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2462 }
2463 },
2464 {
2465 "op" : "assign",
2466 "parameters" : [
2467 {
2468 "type" : "field",
2469 "value" : ["standard_metadata", "egress_spec"]
2470 },
2471 {
2472 "type" : "runtime_data",
2473 "value" : 0
2474 }
2475 ],
2476 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002477 "filename" : "./include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002478 "line" : 33,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002479 "column" : 8,
2480 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2481 }
2482 },
2483 {
2484 "op" : "add_header",
2485 "parameters" : [
2486 {
2487 "type" : "header",
2488 "value" : "mpls"
2489 }
2490 ],
2491 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002492 "filename" : "./include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002493 "line" : 72,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002494 "column" : 8,
2495 "source_fragment" : "hdr.mpls.setValid()"
2496 }
2497 },
2498 {
2499 "op" : "assign",
2500 "parameters" : [
2501 {
2502 "type" : "field",
2503 "value" : ["vlan_tag", "ether_type"]
2504 },
2505 {
2506 "type" : "hexstr",
2507 "value" : "0x8847"
2508 }
2509 ],
2510 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002511 "filename" : "./include/control/../define.p4",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002512 "line" : 33,
2513 "column" : 31,
2514 "source_fragment" : "0x8847; ..."
2515 }
2516 },
2517 {
2518 "op" : "assign",
2519 "parameters" : [
2520 {
2521 "type" : "field",
2522 "value" : ["mpls", "label"]
2523 },
2524 {
2525 "type" : "runtime_data",
2526 "value" : 3
2527 }
2528 ],
2529 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002530 "filename" : "./include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002531 "line" : 74,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002532 "column" : 8,
2533 "source_fragment" : "hdr.mpls.label = label; ..."
2534 }
2535 },
2536 {
2537 "op" : "assign",
2538 "parameters" : [
2539 {
2540 "type" : "field",
2541 "value" : ["mpls", "tc"]
2542 },
2543 {
2544 "type" : "hexstr",
2545 "value" : "0x00"
2546 }
2547 ],
2548 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002549 "filename" : "./include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002550 "line" : 75,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002551 "column" : 8,
2552 "source_fragment" : "hdr.mpls.tc = tc; ..."
2553 }
2554 },
2555 {
2556 "op" : "assign",
2557 "parameters" : [
2558 {
2559 "type" : "field",
2560 "value" : ["mpls", "bos"]
2561 },
2562 {
2563 "type" : "hexstr",
2564 "value" : "0x01"
2565 }
2566 ],
2567 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002568 "filename" : "./include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002569 "line" : 76,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002570 "column" : 8,
2571 "source_fragment" : "hdr.mpls.bos = 1w1"
2572 }
2573 },
2574 {
2575 "op" : "assign",
2576 "parameters" : [
2577 {
2578 "type" : "field",
2579 "value" : ["mpls", "ttl"]
2580 },
2581 {
2582 "type" : "hexstr",
2583 "value" : "0x40"
2584 }
2585 ],
2586 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002587 "filename" : "./include/control/../define.p4",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002588 "line" : 67,
2589 "column" : 32,
2590 "source_fragment" : "64; ..."
2591 }
2592 }
2593 ]
2594 },
2595 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002596 "name" : "FabricIngress.next.mpls_routing_v4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002597 "id" : 40,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002598 "runtime_data" : [
2599 {
2600 "name" : "port_num",
2601 "bitwidth" : 9
2602 },
2603 {
2604 "name" : "smac",
2605 "bitwidth" : 48
2606 },
2607 {
2608 "name" : "dmac",
2609 "bitwidth" : 48
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002610 },
2611 {
2612 "name" : "label",
2613 "bitwidth" : 20
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002614 }
2615 ],
2616 "primitives" : [
2617 {
2618 "op" : "assign",
2619 "parameters" : [
2620 {
2621 "type" : "field",
2622 "value" : ["ethernet", "src_addr"]
2623 },
2624 {
2625 "type" : "runtime_data",
2626 "value" : 1
2627 }
2628 ],
2629 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002630 "filename" : "./include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002631 "line" : 51,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002632 "column" : 8,
2633 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2634 }
2635 },
2636 {
2637 "op" : "assign",
2638 "parameters" : [
2639 {
2640 "type" : "field",
2641 "value" : ["ethernet", "dst_addr"]
2642 },
2643 {
2644 "type" : "runtime_data",
2645 "value" : 2
2646 }
2647 ],
2648 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002649 "filename" : "./include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002650 "line" : 55,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002651 "column" : 8,
2652 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2653 }
2654 },
2655 {
2656 "op" : "assign",
2657 "parameters" : [
2658 {
2659 "type" : "field",
2660 "value" : ["standard_metadata", "egress_spec"]
2661 },
2662 {
2663 "type" : "runtime_data",
2664 "value" : 0
2665 }
2666 ],
2667 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002668 "filename" : "./include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002669 "line" : 33,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002670 "column" : 8,
2671 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2672 }
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002673 },
2674 {
2675 "op" : "add_header",
2676 "parameters" : [
2677 {
2678 "type" : "header",
2679 "value" : "mpls"
2680 }
2681 ],
2682 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002683 "filename" : "./include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002684 "line" : 72,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002685 "column" : 8,
2686 "source_fragment" : "hdr.mpls.setValid()"
2687 }
2688 },
2689 {
2690 "op" : "assign",
2691 "parameters" : [
2692 {
2693 "type" : "field",
2694 "value" : ["vlan_tag", "ether_type"]
2695 },
2696 {
2697 "type" : "hexstr",
2698 "value" : "0x8847"
2699 }
2700 ],
2701 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002702 "filename" : "./include/control/../define.p4",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002703 "line" : 33,
2704 "column" : 31,
2705 "source_fragment" : "0x8847; ..."
2706 }
2707 },
2708 {
2709 "op" : "assign",
2710 "parameters" : [
2711 {
2712 "type" : "field",
2713 "value" : ["mpls", "label"]
2714 },
2715 {
2716 "type" : "runtime_data",
2717 "value" : 3
2718 }
2719 ],
2720 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002721 "filename" : "./include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002722 "line" : 74,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002723 "column" : 8,
2724 "source_fragment" : "hdr.mpls.label = label; ..."
2725 }
2726 },
2727 {
2728 "op" : "assign",
2729 "parameters" : [
2730 {
2731 "type" : "field",
2732 "value" : ["mpls", "tc"]
2733 },
2734 {
2735 "type" : "hexstr",
2736 "value" : "0x00"
2737 }
2738 ],
2739 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002740 "filename" : "./include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002741 "line" : 75,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002742 "column" : 8,
2743 "source_fragment" : "hdr.mpls.tc = tc; ..."
2744 }
2745 },
2746 {
2747 "op" : "assign",
2748 "parameters" : [
2749 {
2750 "type" : "field",
2751 "value" : ["mpls", "bos"]
2752 },
2753 {
2754 "type" : "hexstr",
2755 "value" : "0x01"
2756 }
2757 ],
2758 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002759 "filename" : "./include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002760 "line" : 76,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002761 "column" : 8,
2762 "source_fragment" : "hdr.mpls.bos = 1w1"
2763 }
2764 },
2765 {
2766 "op" : "assign",
2767 "parameters" : [
2768 {
2769 "type" : "field",
2770 "value" : ["mpls", "ttl"]
2771 },
2772 {
2773 "type" : "hexstr",
2774 "value" : "0x40"
2775 }
2776 ],
2777 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002778 "filename" : "./include/control/../define.p4",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002779 "line" : 67,
2780 "column" : 32,
2781 "source_fragment" : "64; ..."
2782 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002783 }
2784 ]
2785 },
2786 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002787 "name" : "FabricIngress.next.mpls_routing_v6",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002788 "id" : 41,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002789 "runtime_data" : [
2790 {
2791 "name" : "port_num",
2792 "bitwidth" : 9
2793 },
2794 {
2795 "name" : "smac",
2796 "bitwidth" : 48
2797 },
2798 {
2799 "name" : "dmac",
2800 "bitwidth" : 48
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002801 },
2802 {
2803 "name" : "label",
2804 "bitwidth" : 20
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002805 }
2806 ],
2807 "primitives" : [
2808 {
2809 "op" : "assign",
2810 "parameters" : [
2811 {
2812 "type" : "field",
2813 "value" : ["ethernet", "src_addr"]
2814 },
2815 {
2816 "type" : "runtime_data",
2817 "value" : 1
2818 }
2819 ],
2820 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002821 "filename" : "./include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002822 "line" : 51,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002823 "column" : 8,
2824 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2825 }
2826 },
2827 {
2828 "op" : "assign",
2829 "parameters" : [
2830 {
2831 "type" : "field",
2832 "value" : ["ethernet", "dst_addr"]
2833 },
2834 {
2835 "type" : "runtime_data",
2836 "value" : 2
2837 }
2838 ],
2839 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002840 "filename" : "./include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002841 "line" : 55,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002842 "column" : 8,
2843 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2844 }
2845 },
2846 {
2847 "op" : "assign",
2848 "parameters" : [
2849 {
2850 "type" : "field",
2851 "value" : ["standard_metadata", "egress_spec"]
2852 },
2853 {
2854 "type" : "runtime_data",
2855 "value" : 0
2856 }
2857 ],
2858 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002859 "filename" : "./include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002860 "line" : 33,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002861 "column" : 8,
2862 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2863 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002864 },
2865 {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002866 "op" : "add_header",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002867 "parameters" : [
2868 {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002869 "type" : "header",
2870 "value" : "mpls"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002871 }
2872 ],
2873 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002874 "filename" : "./include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002875 "line" : 72,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002876 "column" : 8,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002877 "source_fragment" : "hdr.mpls.setValid()"
2878 }
2879 },
2880 {
2881 "op" : "assign",
2882 "parameters" : [
2883 {
2884 "type" : "field",
2885 "value" : ["vlan_tag", "ether_type"]
2886 },
2887 {
2888 "type" : "hexstr",
2889 "value" : "0x8847"
2890 }
2891 ],
2892 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002893 "filename" : "./include/control/../define.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002894 "line" : 33,
2895 "column" : 31,
2896 "source_fragment" : "0x8847; ..."
2897 }
2898 },
2899 {
2900 "op" : "assign",
2901 "parameters" : [
2902 {
2903 "type" : "field",
2904 "value" : ["mpls", "label"]
2905 },
2906 {
2907 "type" : "runtime_data",
2908 "value" : 3
2909 }
2910 ],
2911 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002912 "filename" : "./include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002913 "line" : 74,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002914 "column" : 8,
2915 "source_fragment" : "hdr.mpls.label = label; ..."
2916 }
2917 },
2918 {
2919 "op" : "assign",
2920 "parameters" : [
2921 {
2922 "type" : "field",
2923 "value" : ["mpls", "tc"]
2924 },
2925 {
2926 "type" : "hexstr",
2927 "value" : "0x00"
2928 }
2929 ],
2930 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002931 "filename" : "./include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002932 "line" : 75,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002933 "column" : 8,
2934 "source_fragment" : "hdr.mpls.tc = tc; ..."
2935 }
2936 },
2937 {
2938 "op" : "assign",
2939 "parameters" : [
2940 {
2941 "type" : "field",
2942 "value" : ["mpls", "bos"]
2943 },
2944 {
2945 "type" : "hexstr",
2946 "value" : "0x01"
2947 }
2948 ],
2949 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002950 "filename" : "./include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002951 "line" : 76,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002952 "column" : 8,
2953 "source_fragment" : "hdr.mpls.bos = 1w1"
2954 }
2955 },
2956 {
2957 "op" : "assign",
2958 "parameters" : [
2959 {
2960 "type" : "field",
2961 "value" : ["mpls", "ttl"]
2962 },
2963 {
2964 "type" : "hexstr",
2965 "value" : "0x40"
2966 }
2967 ],
2968 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002969 "filename" : "./include/control/../define.p4",
Yi Tseng3d3956d2018-01-31 17:28:05 -08002970 "line" : 67,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002971 "column" : 32,
2972 "source_fragment" : "64; ..."
2973 }
2974 }
2975 ]
2976 },
2977 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002978 "name" : "FabricIngress.next.set_mcast_group",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002979 "id" : 42,
Yi Tseng27b9bc02018-04-12 14:52:40 +08002980 "runtime_data" : [
2981 {
2982 "name" : "gid",
2983 "bitwidth" : 16
2984 },
2985 {
2986 "name" : "smac",
2987 "bitwidth" : 48
2988 }
2989 ],
2990 "primitives" : [
2991 {
2992 "op" : "assign",
2993 "parameters" : [
2994 {
2995 "type" : "field",
2996 "value" : ["standard_metadata", "mcast_grp"]
2997 },
2998 {
2999 "type" : "runtime_data",
3000 "value" : 0
3001 }
3002 ],
3003 "source_info" : {
3004 "filename" : "./include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003005 "line" : 149,
Yi Tseng27b9bc02018-04-12 14:52:40 +08003006 "column" : 8,
3007 "source_fragment" : "standard_metadata.mcast_grp = gid"
3008 }
3009 },
3010 {
3011 "op" : "assign",
3012 "parameters" : [
3013 {
3014 "type" : "field",
3015 "value" : ["ethernet", "src_addr"]
3016 },
3017 {
3018 "type" : "runtime_data",
3019 "value" : 1
3020 }
3021 ],
3022 "source_info" : {
3023 "filename" : "./include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003024 "line" : 51,
Yi Tseng27b9bc02018-04-12 14:52:40 +08003025 "column" : 8,
3026 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
3027 }
3028 }
3029 ]
3030 },
3031 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003032 "name" : "act",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003033 "id" : 43,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003034 "runtime_data" : [],
3035 "primitives" : [
3036 {
3037 "op" : "assign",
3038 "parameters" : [
3039 {
3040 "type" : "field",
3041 "value" : ["standard_metadata", "egress_spec"]
3042 },
3043 {
3044 "type" : "field",
3045 "value" : ["packet_out", "egress_port"]
3046 }
3047 ],
3048 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003049 "filename" : "./include/control/packetio.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003050 "line" : 26,
3051 "column" : 12,
3052 "source_fragment" : "standard_metadata.egress_spec = hdr.packet_out.egress_port"
3053 }
3054 },
3055 {
3056 "op" : "remove_header",
3057 "parameters" : [
3058 {
3059 "type" : "header",
3060 "value" : "packet_out"
3061 }
3062 ],
3063 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003064 "filename" : "./include/control/packetio.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003065 "line" : 27,
3066 "column" : 12,
3067 "source_fragment" : "hdr.packet_out.setInvalid()"
3068 }
3069 }
3070 ]
3071 },
3072 {
3073 "name" : "act_0",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003074 "id" : 44,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003075 "runtime_data" : [],
3076 "primitives" : [
3077 {
3078 "op" : "assign",
3079 "parameters" : [
3080 {
3081 "type" : "field",
3082 "value" : ["scalars", "spgw_ingress_tmp_2"]
3083 },
3084 {
3085 "type" : "expression",
3086 "value" : {
3087 "type" : "expression",
3088 "value" : {
3089 "op" : "b2d",
3090 "left" : null,
3091 "right" : {
3092 "type" : "bool",
3093 "value" : true
3094 }
3095 }
3096 }
3097 }
3098 ]
3099 }
3100 ]
3101 },
3102 {
3103 "name" : "act_1",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003104 "id" : 45,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003105 "runtime_data" : [],
3106 "primitives" : [
3107 {
3108 "op" : "assign",
3109 "parameters" : [
3110 {
3111 "type" : "field",
3112 "value" : ["scalars", "spgw_ingress_tmp_2"]
3113 },
3114 {
3115 "type" : "expression",
3116 "value" : {
3117 "type" : "expression",
3118 "value" : {
3119 "op" : "b2d",
3120 "left" : null,
3121 "right" : {
3122 "type" : "bool",
3123 "value" : false
3124 }
3125 }
3126 }
3127 }
3128 ]
3129 }
3130 ]
3131 },
3132 {
3133 "name" : "act_2",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003134 "id" : 46,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003135 "runtime_data" : [],
3136 "primitives" : [
3137 {
3138 "op" : "assign",
3139 "parameters" : [
3140 {
3141 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003142 "value" : ["userMetadata.spgw", "s1u_enb_addr"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003143 },
3144 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003145 "type" : "field",
3146 "value" : ["ipv4", "src_addr"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003147 }
3148 ],
3149 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003150 "filename" : "./include/control/../spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003151 "line" : 152,
3152 "column" : 12,
3153 "source_fragment" : "spgw_meta.s1u_enb_addr = ipv4.src_addr"
3154 }
3155 },
3156 {
3157 "op" : "assign",
3158 "parameters" : [
3159 {
3160 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003161 "value" : ["userMetadata.spgw", "s1u_sgw_addr"]
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003162 },
3163 {
3164 "type" : "field",
3165 "value" : ["ipv4", "dst_addr"]
3166 }
3167 ],
3168 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003169 "filename" : "./include/control/../spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003170 "line" : 153,
3171 "column" : 12,
3172 "source_fragment" : "spgw_meta.s1u_sgw_addr = ipv4.dst_addr"
3173 }
3174 },
3175 {
3176 "op" : "assign_header",
3177 "parameters" : [
3178 {
3179 "type" : "header",
3180 "value" : "ipv4"
3181 },
3182 {
3183 "type" : "header",
3184 "value" : "gtpu_ipv4"
3185 }
3186 ],
3187 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003188 "filename" : "./include/control/../spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003189 "line" : 154,
3190 "column" : 17,
3191 "source_fragment" : "= gtpu_ipv4; ..."
3192 }
3193 },
3194 {
3195 "op" : "assign_header",
3196 "parameters" : [
3197 {
3198 "type" : "header",
3199 "value" : "udp"
3200 },
3201 {
3202 "type" : "header",
3203 "value" : "gtpu_udp"
3204 }
3205 ],
3206 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003207 "filename" : "./include/control/../spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003208 "line" : 155,
3209 "column" : 16,
3210 "source_fragment" : "= gtpu_udp; ..."
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003211 }
3212 }
3213 ]
3214 },
3215 {
3216 "name" : "act_3",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003217 "id" : 47,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003218 "runtime_data" : [],
3219 "primitives" : [
3220 {
3221 "op" : "assign",
3222 "parameters" : [
3223 {
3224 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003225 "value" : ["userMetadata.spgw", "do_spgw"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003226 },
3227 {
3228 "type" : "expression",
3229 "value" : {
3230 "type" : "expression",
3231 "value" : {
3232 "op" : "b2d",
3233 "left" : null,
3234 "right" : {
3235 "type" : "bool",
3236 "value" : true
3237 }
3238 }
3239 }
3240 }
3241 ],
3242 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003243 "filename" : "./include/control/../spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003244 "line" : 159,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003245 "column" : 16,
3246 "source_fragment" : "spgw_meta.do_spgw = true"
3247 }
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003248 },
3249 {
3250 "op" : "assign",
3251 "parameters" : [
3252 {
3253 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003254 "value" : ["userMetadata.spgw", "direction"]
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003255 },
3256 {
3257 "type" : "hexstr",
3258 "value" : "0x00"
3259 }
3260 ],
3261 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003262 "filename" : "./include/control/../define.p4",
Yi Tseng3d3956d2018-01-31 17:28:05 -08003263 "line" : 88,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003264 "column" : 31,
3265 "source_fragment" : "1w0; ..."
3266 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003267 }
3268 ]
3269 },
3270 {
3271 "name" : "act_4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003272 "id" : 48,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003273 "runtime_data" : [],
3274 "primitives" : [
3275 {
3276 "op" : "assign",
3277 "parameters" : [
3278 {
3279 "type" : "field",
3280 "value" : ["scalars", "spgw_ingress_tmp_3"]
3281 },
3282 {
3283 "type" : "expression",
3284 "value" : {
3285 "type" : "expression",
3286 "value" : {
3287 "op" : "b2d",
3288 "left" : null,
3289 "right" : {
3290 "type" : "bool",
3291 "value" : true
3292 }
3293 }
3294 }
3295 }
3296 ]
3297 }
3298 ]
3299 },
3300 {
3301 "name" : "act_5",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003302 "id" : 49,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003303 "runtime_data" : [],
3304 "primitives" : [
3305 {
3306 "op" : "assign",
3307 "parameters" : [
3308 {
3309 "type" : "field",
3310 "value" : ["scalars", "spgw_ingress_tmp_3"]
3311 },
3312 {
3313 "type" : "expression",
3314 "value" : {
3315 "type" : "expression",
3316 "value" : {
3317 "op" : "b2d",
3318 "left" : null,
3319 "right" : {
3320 "type" : "bool",
3321 "value" : false
3322 }
3323 }
3324 }
3325 }
3326 ]
3327 }
3328 ]
3329 },
3330 {
3331 "name" : "act_6",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003332 "id" : 50,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003333 "runtime_data" : [],
3334 "primitives" : [
3335 {
3336 "op" : "assign",
3337 "parameters" : [
3338 {
3339 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003340 "value" : ["userMetadata.spgw", "do_spgw"]
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003341 },
3342 {
3343 "type" : "expression",
3344 "value" : {
3345 "type" : "expression",
3346 "value" : {
3347 "op" : "b2d",
3348 "left" : null,
3349 "right" : {
3350 "type" : "bool",
3351 "value" : true
3352 }
3353 }
3354 }
3355 }
3356 ],
3357 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003358 "filename" : "./include/control/../spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003359 "line" : 163,
3360 "column" : 12,
3361 "source_fragment" : "spgw_meta.do_spgw = true"
3362 }
3363 },
3364 {
3365 "op" : "assign",
3366 "parameters" : [
3367 {
3368 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003369 "value" : ["userMetadata.spgw", "direction"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08003370 },
3371 {
3372 "type" : "hexstr",
3373 "value" : "0x01"
3374 }
3375 ],
3376 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003377 "filename" : "./include/control/../define.p4",
Yi Tseng3d3956d2018-01-31 17:28:05 -08003378 "line" : 89,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003379 "column" : 33,
3380 "source_fragment" : "1w1; ..."
3381 }
3382 }
3383 ]
3384 },
3385 {
3386 "name" : "act_7",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003387 "id" : 51,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003388 "runtime_data" : [],
3389 "primitives" : [
3390 {
3391 "op" : "assign",
3392 "parameters" : [
3393 {
3394 "type" : "field",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003395 "value" : ["scalars", "spgw_ingress_hasReturned_0"]
3396 },
3397 {
3398 "type" : "expression",
3399 "value" : {
3400 "type" : "expression",
3401 "value" : {
3402 "op" : "b2d",
3403 "left" : null,
3404 "right" : {
3405 "type" : "bool",
3406 "value" : false
3407 }
3408 }
3409 }
3410 }
3411 ]
3412 },
3413 {
3414 "op" : "assign",
3415 "parameters" : [
3416 {
3417 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003418 "value" : ["userMetadata.spgw", "do_spgw"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003419 },
3420 {
3421 "type" : "expression",
3422 "value" : {
3423 "type" : "expression",
3424 "value" : {
3425 "op" : "b2d",
3426 "left" : null,
3427 "right" : {
3428 "type" : "bool",
3429 "value" : false
3430 }
3431 }
3432 }
3433 }
3434 ],
3435 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003436 "filename" : "./include/control/../spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003437 "line" : 146,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003438 "column" : 8,
3439 "source_fragment" : "spgw_meta.do_spgw = false"
3440 }
3441 }
3442 ]
3443 },
3444 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003445 "name" : "act_8",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003446 "id" : 52,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003447 "runtime_data" : [],
3448 "primitives" : [
3449 {
3450 "op" : "assign",
3451 "parameters" : [
3452 {
3453 "type" : "field",
3454 "value" : ["scalars", "spgw_ingress_hasReturned_0"]
3455 },
3456 {
3457 "type" : "expression",
3458 "value" : {
3459 "type" : "expression",
3460 "value" : {
3461 "op" : "b2d",
3462 "left" : null,
3463 "right" : {
3464 "type" : "bool",
3465 "value" : true
3466 }
3467 }
3468 }
3469 }
3470 ],
3471 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003472 "filename" : "./include/control/../spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003473 "line" : 169,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003474 "column" : 12,
3475 "source_fragment" : "return"
3476 }
3477 }
3478 ]
3479 },
3480 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003481 "name" : "act_9",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003482 "id" : 53,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003483 "runtime_data" : [],
3484 "primitives" : [
3485 {
3486 "op" : "assign",
3487 "parameters" : [
3488 {
3489 "type" : "field",
3490 "value" : ["scalars", "spgw_ingress_tmp_4"]
3491 },
3492 {
3493 "type" : "expression",
3494 "value" : {
3495 "type" : "expression",
3496 "value" : {
3497 "op" : "b2d",
3498 "left" : null,
3499 "right" : {
3500 "type" : "bool",
3501 "value" : true
3502 }
3503 }
3504 }
3505 }
3506 ]
3507 }
3508 ]
3509 },
3510 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003511 "name" : "act_10",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003512 "id" : 54,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003513 "runtime_data" : [],
3514 "primitives" : [
3515 {
3516 "op" : "assign",
3517 "parameters" : [
3518 {
3519 "type" : "field",
3520 "value" : ["scalars", "spgw_ingress_tmp_4"]
3521 },
3522 {
3523 "type" : "expression",
3524 "value" : {
3525 "type" : "expression",
3526 "value" : {
3527 "op" : "b2d",
3528 "left" : null,
3529 "right" : {
3530 "type" : "bool",
3531 "value" : false
3532 }
3533 }
3534 }
3535 }
3536 ]
3537 }
3538 ]
3539 },
3540 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003541 "name" : "act_11",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003542 "id" : 55,
Yi Tseng27b9bc02018-04-12 14:52:40 +08003543 "runtime_data" : [],
3544 "primitives" : [
3545 {
3546 "op" : "assign",
3547 "parameters" : [
3548 {
3549 "type" : "field",
3550 "value" : ["userMetadata.spgw", "ipv4_len"]
3551 },
3552 {
3553 "type" : "field",
3554 "value" : ["ipv4", "total_len"]
3555 }
3556 ],
3557 "source_info" : {
3558 "filename" : "./include/control/../spgw.p4",
3559 "line" : 199,
3560 "column" : 8,
3561 "source_fragment" : "spgw_meta.ipv4_len = ipv4.total_len"
3562 }
3563 }
3564 ]
3565 },
3566 {
3567 "name" : "act_12",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003568 "id" : 56,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003569 "runtime_data" : [],
3570 "primitives" : [
3571 {
3572 "op" : "assign",
3573 "parameters" : [
3574 {
3575 "type" : "field",
3576 "value" : ["vlan_tag", "ether_type"]
3577 },
3578 {
3579 "type" : "hexstr",
3580 "value" : "0x0800"
3581 }
3582 ],
3583 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003584 "filename" : "./include/control/../define.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003585 "line" : 35,
3586 "column" : 31,
3587 "source_fragment" : "0x0800; ..."
3588 }
3589 },
3590 {
3591 "op" : "assign",
3592 "parameters" : [
3593 {
3594 "type" : "field",
3595 "value" : ["scalars", "fabric_metadata_t.original_ether_type"]
3596 },
3597 {
3598 "type" : "hexstr",
3599 "value" : "0x0800"
3600 }
3601 ],
3602 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003603 "filename" : "./include/control/../define.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003604 "line" : 35,
3605 "column" : 31,
3606 "source_fragment" : "0x0800; ..."
3607 }
3608 }
3609 ]
3610 },
3611 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003612 "name" : "act_13",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003613 "id" : 57,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003614 "runtime_data" : [],
3615 "primitives" : [
3616 {
3617 "op" : "assign",
3618 "parameters" : [
3619 {
3620 "type" : "field",
3621 "value" : ["scalars", "next_tmp_0"]
3622 },
3623 {
3624 "type" : "expression",
3625 "value" : {
3626 "type" : "expression",
3627 "value" : {
3628 "op" : "b2d",
3629 "left" : null,
3630 "right" : {
3631 "type" : "bool",
3632 "value" : true
3633 }
3634 }
3635 }
3636 }
3637 ]
3638 }
3639 ]
3640 },
3641 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003642 "name" : "act_14",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003643 "id" : 58,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003644 "runtime_data" : [],
3645 "primitives" : [
3646 {
3647 "op" : "assign",
3648 "parameters" : [
3649 {
3650 "type" : "field",
3651 "value" : ["scalars", "next_tmp_0"]
3652 },
3653 {
3654 "type" : "expression",
3655 "value" : {
3656 "type" : "expression",
3657 "value" : {
3658 "op" : "b2d",
3659 "left" : null,
3660 "right" : {
3661 "type" : "bool",
3662 "value" : false
3663 }
3664 }
3665 }
3666 }
3667 ]
3668 }
3669 ]
3670 },
3671 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003672 "name" : "act_15",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003673 "id" : 59,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003674 "runtime_data" : [],
3675 "primitives" : [
3676 {
3677 "op" : "assign",
3678 "parameters" : [
3679 {
3680 "type" : "field",
3681 "value" : ["ipv4", "ttl"]
3682 },
3683 {
3684 "type" : "expression",
3685 "value" : {
3686 "type" : "expression",
3687 "value" : {
3688 "op" : "&",
3689 "left" : {
3690 "type" : "expression",
3691 "value" : {
3692 "op" : "+",
3693 "left" : {
3694 "type" : "field",
3695 "value" : ["ipv4", "ttl"]
3696 },
3697 "right" : {
3698 "type" : "hexstr",
3699 "value" : "0xff"
3700 }
3701 }
3702 },
3703 "right" : {
3704 "type" : "hexstr",
3705 "value" : "0xff"
3706 }
3707 }
3708 }
3709 }
3710 ],
3711 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003712 "filename" : "./include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003713 "line" : 171,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003714 "column" : 20,
3715 "source_fragment" : "hdr.ipv4.ttl = hdr.ipv4.ttl - 1"
3716 }
3717 }
3718 ]
3719 },
3720 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003721 "name" : "act_16",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003722 "id" : 60,
Yi Tseng27b9bc02018-04-12 14:52:40 +08003723 "runtime_data" : [],
3724 "primitives" : [
3725 {
3726 "op" : "assign",
3727 "parameters" : [
3728 {
3729 "type" : "field",
3730 "value" : ["ipv6", "hop_limit"]
3731 },
3732 {
3733 "type" : "expression",
3734 "value" : {
3735 "type" : "expression",
3736 "value" : {
3737 "op" : "&",
3738 "left" : {
3739 "type" : "expression",
3740 "value" : {
3741 "op" : "+",
3742 "left" : {
3743 "type" : "field",
3744 "value" : ["ipv6", "hop_limit"]
3745 },
3746 "right" : {
3747 "type" : "hexstr",
3748 "value" : "0xff"
3749 }
3750 }
3751 },
3752 "right" : {
3753 "type" : "hexstr",
3754 "value" : "0xff"
3755 }
3756 }
3757 }
3758 }
3759 ],
3760 "source_info" : {
3761 "filename" : "./include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003762 "line" : 175,
Yi Tseng27b9bc02018-04-12 14:52:40 +08003763 "column" : 20,
3764 "source_fragment" : "hdr.ipv6.hop_limit = hdr.ipv6.hop_limit - 1"
3765 }
3766 }
3767 ]
3768 },
3769 {
3770 "name" : "act_17",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003771 "id" : 61,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003772 "runtime_data" : [],
3773 "primitives" : [
3774 {
3775 "op" : "assign",
3776 "parameters" : [
3777 {
3778 "type" : "field",
3779 "value" : ["scalars", "tmp_0"]
3780 },
3781 {
3782 "type" : "expression",
3783 "value" : {
3784 "type" : "expression",
3785 "value" : {
3786 "op" : "&",
3787 "left" : {
3788 "type" : "field",
3789 "value" : ["standard_metadata", "egress_spec"]
3790 },
3791 "right" : {
3792 "type" : "hexstr",
3793 "value" : "0xffffffff"
3794 }
3795 }
3796 }
3797 }
3798 ]
3799 },
3800 {
3801 "op" : "count",
3802 "parameters" : [
3803 {
3804 "type" : "counter_array",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003805 "value" : "FabricIngress.port_counters_control.egress_port_counter"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003806 },
3807 {
3808 "type" : "field",
3809 "value" : ["scalars", "tmp_0"]
3810 }
3811 ],
3812 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003813 "filename" : "./include/control/port_counter.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003814 "line" : 28,
3815 "column" : 12,
3816 "source_fragment" : "egress_port_counter.count((bit<32>)standard_metadata.egress_spec)"
3817 }
3818 }
3819 ]
3820 },
3821 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003822 "name" : "act_18",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003823 "id" : 62,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003824 "runtime_data" : [],
3825 "primitives" : [
3826 {
3827 "op" : "assign",
3828 "parameters" : [
3829 {
3830 "type" : "field",
3831 "value" : ["scalars", "tmp_1"]
3832 },
3833 {
3834 "type" : "expression",
3835 "value" : {
3836 "type" : "expression",
3837 "value" : {
3838 "op" : "&",
3839 "left" : {
3840 "type" : "field",
3841 "value" : ["standard_metadata", "ingress_port"]
3842 },
3843 "right" : {
3844 "type" : "hexstr",
3845 "value" : "0xffffffff"
3846 }
3847 }
3848 }
3849 }
3850 ]
3851 },
3852 {
3853 "op" : "count",
3854 "parameters" : [
3855 {
3856 "type" : "counter_array",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003857 "value" : "FabricIngress.port_counters_control.ingress_port_counter"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003858 },
3859 {
3860 "type" : "field",
3861 "value" : ["scalars", "tmp_1"]
3862 }
3863 ],
3864 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003865 "filename" : "./include/control/port_counter.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003866 "line" : 31,
3867 "column" : 12,
3868 "source_fragment" : "ingress_port_counter.count((bit<32>)standard_metadata.ingress_port)"
3869 }
3870 }
3871 ]
3872 },
3873 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003874 "name" : "nop",
3875 "id" : 63,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003876 "runtime_data" : [],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003877 "primitives" : []
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003878 },
3879 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003880 "name" : "FabricEgress.spgw_egress.gtpu_encap",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003881 "id" : 64,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003882 "runtime_data" : [],
3883 "primitives" : [
3884 {
3885 "op" : "add_header",
3886 "parameters" : [
3887 {
3888 "type" : "header",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003889 "value" : "gtpu_ipv4"
3890 }
3891 ],
3892 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003893 "filename" : "./include/control/../spgw.p4",
3894 "line" : 214,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003895 "column" : 8,
3896 "source_fragment" : "gtpu_ipv4.setValid()"
3897 }
3898 },
3899 {
3900 "op" : "assign",
3901 "parameters" : [
3902 {
3903 "type" : "field",
3904 "value" : ["gtpu_ipv4", "version"]
3905 },
3906 {
3907 "type" : "hexstr",
3908 "value" : "0x04"
3909 }
3910 ],
3911 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003912 "filename" : "./include/control/../spgw.p4",
3913 "line" : 215,
Yi Tseng3d3956d2018-01-31 17:28:05 -08003914 "column" : 8,
3915 "source_fragment" : "gtpu_ipv4.version = 4"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003916 }
3917 },
3918 {
3919 "op" : "assign",
3920 "parameters" : [
3921 {
3922 "type" : "field",
3923 "value" : ["gtpu_ipv4", "ihl"]
3924 },
3925 {
3926 "type" : "hexstr",
3927 "value" : "0x05"
3928 }
3929 ],
3930 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003931 "filename" : "./include/control/../define.p4",
Yi Tseng3d3956d2018-01-31 17:28:05 -08003932 "line" : 54,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003933 "column" : 28,
3934 "source_fragment" : "5; ..."
3935 }
3936 },
3937 {
3938 "op" : "assign",
3939 "parameters" : [
3940 {
3941 "type" : "field",
3942 "value" : ["gtpu_ipv4", "diffserv"]
3943 },
3944 {
3945 "type" : "hexstr",
3946 "value" : "0x00"
3947 }
3948 ],
3949 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003950 "filename" : "./include/control/../spgw.p4",
3951 "line" : 217,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003952 "column" : 8,
3953 "source_fragment" : "gtpu_ipv4.diffserv = 0"
3954 }
3955 },
3956 {
3957 "op" : "assign",
3958 "parameters" : [
3959 {
3960 "type" : "field",
3961 "value" : ["gtpu_ipv4", "total_len"]
3962 },
3963 {
3964 "type" : "expression",
3965 "value" : {
3966 "type" : "expression",
3967 "value" : {
3968 "op" : "&",
3969 "left" : {
3970 "type" : "expression",
3971 "value" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003972 "op" : "+",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003973 "left" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08003974 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003975 "value" : ["userMetadata.spgw", "ipv4_len"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08003976 },
3977 "right" : {
3978 "type" : "hexstr",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08003979 "value" : "0x0024"
Carmelo Cascone14cde402018-01-25 01:57:18 -08003980 }
3981 }
3982 },
3983 "right" : {
3984 "type" : "hexstr",
3985 "value" : "0xffff"
3986 }
3987 }
3988 }
3989 }
3990 ],
3991 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003992 "filename" : "./include/control/../spgw.p4",
3993 "line" : 218,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003994 "column" : 8,
Yi Tseng27b9bc02018-04-12 14:52:40 +08003995 "source_fragment" : "gtpu_ipv4.total_len = spgw_meta.ipv4_len ..."
Carmelo Cascone14cde402018-01-25 01:57:18 -08003996 }
3997 },
3998 {
3999 "op" : "assign",
4000 "parameters" : [
4001 {
4002 "type" : "field",
4003 "value" : ["gtpu_ipv4", "identification"]
4004 },
4005 {
4006 "type" : "hexstr",
4007 "value" : "0x1513"
4008 }
4009 ],
4010 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004011 "filename" : "./include/control/../spgw.p4",
4012 "line" : 220,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004013 "column" : 8,
4014 "source_fragment" : "gtpu_ipv4.identification = 0x1513"
4015 }
4016 },
4017 {
4018 "op" : "assign",
4019 "parameters" : [
4020 {
4021 "type" : "field",
4022 "value" : ["gtpu_ipv4", "flags"]
4023 },
4024 {
4025 "type" : "hexstr",
4026 "value" : "0x00"
4027 }
4028 ],
4029 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004030 "filename" : "./include/control/../spgw.p4",
4031 "line" : 221,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004032 "column" : 8,
4033 "source_fragment" : "gtpu_ipv4.flags = 0"
4034 }
4035 },
4036 {
4037 "op" : "assign",
4038 "parameters" : [
4039 {
4040 "type" : "field",
4041 "value" : ["gtpu_ipv4", "frag_offset"]
4042 },
4043 {
4044 "type" : "hexstr",
4045 "value" : "0x0000"
4046 }
4047 ],
4048 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004049 "filename" : "./include/control/../spgw.p4",
4050 "line" : 222,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004051 "column" : 8,
4052 "source_fragment" : "gtpu_ipv4.frag_offset = 0"
4053 }
4054 },
4055 {
4056 "op" : "assign",
4057 "parameters" : [
4058 {
4059 "type" : "field",
4060 "value" : ["gtpu_ipv4", "ttl"]
4061 },
4062 {
4063 "type" : "hexstr",
4064 "value" : "0x40"
4065 }
4066 ],
4067 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004068 "filename" : "./include/control/../define.p4",
Yi Tseng3d3956d2018-01-31 17:28:05 -08004069 "line" : 78,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004070 "column" : 32,
4071 "source_fragment" : "64; ..."
4072 }
4073 },
4074 {
4075 "op" : "assign",
4076 "parameters" : [
4077 {
4078 "type" : "field",
4079 "value" : ["gtpu_ipv4", "protocol"]
4080 },
4081 {
4082 "type" : "hexstr",
4083 "value" : "0x11"
4084 }
4085 ],
4086 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004087 "filename" : "./include/control/../define.p4",
Yi Tseng3d3956d2018-01-31 17:28:05 -08004088 "line" : 51,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004089 "column" : 25,
4090 "source_fragment" : "17; ..."
4091 }
4092 },
4093 {
4094 "op" : "assign",
4095 "parameters" : [
4096 {
4097 "type" : "field",
4098 "value" : ["gtpu_ipv4", "dst_addr"]
4099 },
4100 {
4101 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004102 "value" : ["userMetadata.spgw", "s1u_enb_addr"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08004103 }
4104 ],
4105 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004106 "filename" : "./include/control/../spgw.p4",
4107 "line" : 225,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004108 "column" : 8,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004109 "source_fragment" : "gtpu_ipv4.dst_addr = spgw_meta.s1u_enb_addr"
Carmelo Cascone14cde402018-01-25 01:57:18 -08004110 }
4111 },
4112 {
4113 "op" : "assign",
4114 "parameters" : [
4115 {
4116 "type" : "field",
4117 "value" : ["gtpu_ipv4", "src_addr"]
4118 },
4119 {
4120 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004121 "value" : ["userMetadata.spgw", "s1u_sgw_addr"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08004122 }
4123 ],
4124 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004125 "filename" : "./include/control/../spgw.p4",
4126 "line" : 226,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004127 "column" : 8,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004128 "source_fragment" : "gtpu_ipv4.src_addr = spgw_meta.s1u_sgw_addr"
Carmelo Cascone14cde402018-01-25 01:57:18 -08004129 }
4130 },
4131 {
4132 "op" : "assign",
4133 "parameters" : [
4134 {
4135 "type" : "field",
4136 "value" : ["gtpu_ipv4", "hdr_checksum"]
4137 },
4138 {
4139 "type" : "hexstr",
4140 "value" : "0x0000"
4141 }
4142 ],
4143 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004144 "filename" : "./include/control/../spgw.p4",
4145 "line" : 227,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004146 "column" : 8,
4147 "source_fragment" : "gtpu_ipv4.hdr_checksum = 0"
4148 }
4149 },
4150 {
4151 "op" : "add_header",
4152 "parameters" : [
4153 {
4154 "type" : "header",
4155 "value" : "gtpu_udp"
4156 }
4157 ],
4158 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004159 "filename" : "./include/control/../spgw.p4",
4160 "line" : 229,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004161 "column" : 8,
4162 "source_fragment" : "gtpu_udp.setValid()"
4163 }
4164 },
4165 {
4166 "op" : "assign",
4167 "parameters" : [
4168 {
4169 "type" : "field",
4170 "value" : ["gtpu_udp", "src_port"]
4171 },
4172 {
4173 "type" : "hexstr",
4174 "value" : "0x0868"
4175 }
4176 ],
4177 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004178 "filename" : "./include/control/../spgw.p4",
4179 "line" : 230,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004180 "column" : 8,
4181 "source_fragment" : "gtpu_udp.src_port = 2152"
4182 }
4183 },
4184 {
4185 "op" : "assign",
4186 "parameters" : [
4187 {
4188 "type" : "field",
4189 "value" : ["gtpu_udp", "dst_port"]
4190 },
4191 {
4192 "type" : "hexstr",
4193 "value" : "0x0868"
4194 }
4195 ],
4196 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004197 "filename" : "./include/control/../spgw.p4",
4198 "line" : 231,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004199 "column" : 8,
4200 "source_fragment" : "gtpu_udp.dst_port = 2152"
4201 }
4202 },
4203 {
4204 "op" : "assign",
4205 "parameters" : [
4206 {
4207 "type" : "field",
4208 "value" : ["gtpu_udp", "len"]
4209 },
4210 {
4211 "type" : "expression",
4212 "value" : {
4213 "type" : "expression",
4214 "value" : {
4215 "op" : "&",
4216 "left" : {
4217 "type" : "expression",
4218 "value" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004219 "op" : "+",
Carmelo Cascone14cde402018-01-25 01:57:18 -08004220 "left" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004221 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004222 "value" : ["userMetadata.spgw", "ipv4_len"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004223 },
4224 "right" : {
4225 "type" : "hexstr",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004226 "value" : "0x0010"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004227 }
4228 }
4229 },
4230 "right" : {
4231 "type" : "hexstr",
4232 "value" : "0xffff"
4233 }
4234 }
4235 }
4236 }
4237 ],
4238 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004239 "filename" : "./include/control/../spgw.p4",
4240 "line" : 232,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004241 "column" : 8,
Yi Tseng27b9bc02018-04-12 14:52:40 +08004242 "source_fragment" : "gtpu_udp.len = spgw_meta.ipv4_len ..."
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004243 }
4244 },
4245 {
4246 "op" : "assign",
4247 "parameters" : [
4248 {
4249 "type" : "field",
4250 "value" : ["gtpu_udp", "checksum"]
4251 },
4252 {
4253 "type" : "hexstr",
4254 "value" : "0x0000"
4255 }
4256 ],
4257 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004258 "filename" : "./include/control/../spgw.p4",
4259 "line" : 234,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004260 "column" : 8,
4261 "source_fragment" : "gtpu_udp.checksum = 0"
4262 }
Carmelo Cascone14cde402018-01-25 01:57:18 -08004263 },
4264 {
4265 "op" : "add_header",
4266 "parameters" : [
4267 {
4268 "type" : "header",
4269 "value" : "gtpu"
4270 }
4271 ],
4272 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004273 "filename" : "./include/control/../spgw.p4",
4274 "line" : 236,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004275 "column" : 8,
4276 "source_fragment" : "gtpu.setValid()"
4277 }
4278 },
4279 {
4280 "op" : "assign",
4281 "parameters" : [
4282 {
4283 "type" : "field",
4284 "value" : ["gtpu", "version"]
4285 },
4286 {
4287 "type" : "hexstr",
4288 "value" : "0x01"
4289 }
4290 ],
4291 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004292 "filename" : "./include/control/../spgw.p4",
4293 "line" : 237,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004294 "column" : 8,
4295 "source_fragment" : "gtpu.version = 0x01"
4296 }
4297 },
4298 {
4299 "op" : "assign",
4300 "parameters" : [
4301 {
4302 "type" : "field",
4303 "value" : ["gtpu", "pt"]
4304 },
4305 {
4306 "type" : "hexstr",
4307 "value" : "0x01"
4308 }
4309 ],
4310 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004311 "filename" : "./include/control/../spgw.p4",
4312 "line" : 238,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004313 "column" : 8,
4314 "source_fragment" : "gtpu.pt = 0x01"
4315 }
4316 },
4317 {
4318 "op" : "assign",
4319 "parameters" : [
4320 {
4321 "type" : "field",
4322 "value" : ["gtpu", "spare"]
4323 },
4324 {
4325 "type" : "hexstr",
4326 "value" : "0x00"
4327 }
4328 ],
4329 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004330 "filename" : "./include/control/../spgw.p4",
4331 "line" : 239,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004332 "column" : 8,
4333 "source_fragment" : "gtpu.spare = 0"
4334 }
4335 },
4336 {
4337 "op" : "assign",
4338 "parameters" : [
4339 {
4340 "type" : "field",
4341 "value" : ["gtpu", "ex_flag"]
4342 },
4343 {
4344 "type" : "hexstr",
4345 "value" : "0x00"
4346 }
4347 ],
4348 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004349 "filename" : "./include/control/../spgw.p4",
4350 "line" : 240,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004351 "column" : 8,
4352 "source_fragment" : "gtpu.ex_flag = 0"
4353 }
4354 },
4355 {
4356 "op" : "assign",
4357 "parameters" : [
4358 {
4359 "type" : "field",
4360 "value" : ["gtpu", "seq_flag"]
4361 },
4362 {
4363 "type" : "hexstr",
4364 "value" : "0x00"
4365 }
4366 ],
4367 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004368 "filename" : "./include/control/../spgw.p4",
4369 "line" : 241,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004370 "column" : 8,
4371 "source_fragment" : "gtpu.seq_flag = 0"
4372 }
4373 },
4374 {
4375 "op" : "assign",
4376 "parameters" : [
4377 {
4378 "type" : "field",
4379 "value" : ["gtpu", "npdu_flag"]
4380 },
4381 {
4382 "type" : "hexstr",
4383 "value" : "0x00"
4384 }
4385 ],
4386 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004387 "filename" : "./include/control/../spgw.p4",
4388 "line" : 242,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004389 "column" : 8,
4390 "source_fragment" : "gtpu.npdu_flag = 0"
4391 }
4392 },
4393 {
4394 "op" : "assign",
4395 "parameters" : [
4396 {
4397 "type" : "field",
4398 "value" : ["gtpu", "msgtype"]
4399 },
4400 {
4401 "type" : "hexstr",
4402 "value" : "0xff"
4403 }
4404 ],
4405 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004406 "filename" : "./include/control/../spgw.p4",
4407 "line" : 243,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004408 "column" : 8,
4409 "source_fragment" : "gtpu.msgtype = 0xff"
4410 }
4411 },
4412 {
4413 "op" : "assign",
4414 "parameters" : [
4415 {
4416 "type" : "field",
4417 "value" : ["gtpu", "msglen"]
4418 },
4419 {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004420 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004421 "value" : ["userMetadata.spgw", "ipv4_len"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08004422 }
4423 ],
4424 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004425 "filename" : "./include/control/../spgw.p4",
4426 "line" : 244,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004427 "column" : 8,
Yi Tseng27b9bc02018-04-12 14:52:40 +08004428 "source_fragment" : "gtpu.msglen = spgw_meta.ipv4_len"
Carmelo Cascone14cde402018-01-25 01:57:18 -08004429 }
4430 },
4431 {
4432 "op" : "assign",
4433 "parameters" : [
4434 {
4435 "type" : "field",
4436 "value" : ["gtpu", "teid"]
4437 },
4438 {
4439 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004440 "value" : ["userMetadata.spgw", "teid"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08004441 }
4442 ],
4443 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004444 "filename" : "./include/control/../spgw.p4",
4445 "line" : 245,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004446 "column" : 8,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004447 "source_fragment" : "gtpu.teid = spgw_meta.teid"
Carmelo Cascone14cde402018-01-25 01:57:18 -08004448 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004449 }
4450 ]
4451 },
4452 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004453 "name" : "FabricEgress.pkt_io_egress.pop_vlan",
4454 "id" : 65,
4455 "runtime_data" : [],
4456 "primitives" : [
4457 {
4458 "op" : "assign",
4459 "parameters" : [
4460 {
4461 "type" : "field",
4462 "value" : ["ethernet", "ether_type"]
4463 },
4464 {
4465 "type" : "field",
4466 "value" : ["vlan_tag", "ether_type"]
4467 }
4468 ],
4469 "source_info" : {
4470 "filename" : "./include/control/packetio.p4",
4471 "line" : 38,
4472 "column" : 8,
4473 "source_fragment" : "hdr.ethernet.ether_type = hdr.vlan_tag.ether_type"
4474 }
4475 },
4476 {
4477 "op" : "remove_header",
4478 "parameters" : [
4479 {
4480 "type" : "header",
4481 "value" : "vlan_tag"
4482 }
4483 ],
4484 "source_info" : {
4485 "filename" : "./include/control/packetio.p4",
4486 "line" : 39,
4487 "column" : 8,
4488 "source_fragment" : "hdr.vlan_tag.setInvalid()"
4489 }
4490 }
4491 ]
4492 },
4493 {
4494 "name" : "FabricEgress.egress_next.pop_vlan",
4495 "id" : 66,
4496 "runtime_data" : [],
4497 "primitives" : [
4498 {
4499 "op" : "assign",
4500 "parameters" : [
4501 {
4502 "type" : "field",
4503 "value" : ["ethernet", "ether_type"]
4504 },
4505 {
4506 "type" : "field",
4507 "value" : ["vlan_tag", "ether_type"]
4508 }
4509 ],
4510 "source_info" : {
4511 "filename" : "./include/control/next.p4",
4512 "line" : 193,
4513 "column" : 8,
4514 "source_fragment" : "hdr.ethernet.ether_type = hdr.vlan_tag.ether_type"
4515 }
4516 },
4517 {
4518 "op" : "remove_header",
4519 "parameters" : [
4520 {
4521 "type" : "header",
4522 "value" : "vlan_tag"
4523 }
4524 ],
4525 "source_info" : {
4526 "filename" : "./include/control/next.p4",
4527 "line" : 194,
4528 "column" : 8,
4529 "source_fragment" : "hdr.vlan_tag.setInvalid()"
4530 }
4531 }
4532 ]
4533 },
4534 {
4535 "name" : "act_19",
4536 "id" : 67,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004537 "runtime_data" : [],
4538 "primitives" : [
4539 {
4540 "op" : "add_header",
4541 "parameters" : [
4542 {
4543 "type" : "header",
4544 "value" : "packet_in"
4545 }
4546 ],
4547 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004548 "filename" : "./include/control/packetio.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004549 "line" : 46,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004550 "column" : 12,
4551 "source_fragment" : "hdr.packet_in.setValid()"
4552 }
4553 },
4554 {
4555 "op" : "assign",
4556 "parameters" : [
4557 {
4558 "type" : "field",
4559 "value" : ["packet_in", "ingress_port"]
4560 },
4561 {
4562 "type" : "field",
4563 "value" : ["standard_metadata", "ingress_port"]
4564 }
4565 ],
4566 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004567 "filename" : "./include/control/packetio.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004568 "line" : 47,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004569 "column" : 12,
4570 "source_fragment" : "hdr.packet_in.ingress_port = standard_metadata.ingress_port"
4571 }
4572 }
4573 ]
4574 },
4575 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004576 "name" : "act_20",
4577 "id" : 68,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004578 "runtime_data" : [],
4579 "primitives" : [
4580 {
4581 "op" : "remove_header",
4582 "parameters" : [
4583 {
4584 "type" : "header",
4585 "value" : "gtpu_ipv4"
4586 }
4587 ],
4588 "source_info" : {
4589 "filename" : "fabric.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004590 "line" : 71,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004591 "column" : 36,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004592 "source_fragment" : "hdr.gtpu_ipv4"
4593 }
4594 },
4595 {
4596 "op" : "remove_header",
4597 "parameters" : [
4598 {
4599 "type" : "header",
4600 "value" : "gtpu_udp"
4601 }
4602 ],
4603 "source_info" : {
4604 "filename" : "fabric.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004605 "line" : 71,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004606 "column" : 51,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004607 "source_fragment" : "hdr.gtpu_udp"
4608 }
4609 },
4610 {
4611 "op" : "remove_header",
4612 "parameters" : [
4613 {
4614 "type" : "header",
4615 "value" : "gtpu"
4616 }
4617 ],
4618 "source_info" : {
4619 "filename" : "fabric.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004620 "line" : 71,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004621 "column" : 65,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004622 "source_fragment" : "hdr.gtpu"
4623 }
4624 }
4625 ]
4626 }
4627 ],
4628 "pipelines" : [
4629 {
4630 "name" : "ingress",
4631 "id" : 0,
4632 "source_info" : {
4633 "filename" : "fabric.p4",
4634 "line" : 33,
4635 "column" : 8,
4636 "source_fragment" : "FabricIngress"
4637 },
4638 "init_table" : "node_2",
4639 "tables" : [
4640 {
4641 "name" : "tbl_act",
4642 "id" : 0,
4643 "key" : [],
4644 "match_type" : "exact",
4645 "type" : "simple",
4646 "max_size" : 1024,
4647 "with_counters" : false,
4648 "support_timeout" : false,
4649 "direct_meters" : null,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004650 "action_ids" : [43],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004651 "actions" : ["act"],
4652 "base_default_next" : null,
4653 "next_tables" : {
4654 "act" : null
4655 },
4656 "default_entry" : {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004657 "action_id" : 43,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004658 "action_const" : true,
4659 "action_data" : [],
4660 "action_entry_const" : true
4661 }
4662 },
4663 {
4664 "name" : "tbl_act_0",
4665 "id" : 1,
4666 "key" : [],
4667 "match_type" : "exact",
4668 "type" : "simple",
4669 "max_size" : 1024,
4670 "with_counters" : false,
4671 "support_timeout" : false,
4672 "direct_meters" : null,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004673 "action_ids" : [51],
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004674 "actions" : ["act_7"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004675 "base_default_next" : "node_5",
4676 "next_tables" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004677 "act_7" : "node_5"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004678 },
4679 "default_entry" : {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004680 "action_id" : 51,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004681 "action_const" : true,
4682 "action_data" : [],
4683 "action_entry_const" : true
4684 }
4685 },
4686 {
4687 "name" : "tbl_act_1",
4688 "id" : 2,
4689 "key" : [],
4690 "match_type" : "exact",
4691 "type" : "simple",
4692 "max_size" : 1024,
4693 "with_counters" : false,
4694 "support_timeout" : false,
4695 "direct_meters" : null,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004696 "action_ids" : [46],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004697 "actions" : ["act_2"],
Yi Tseng27b9bc02018-04-12 14:52:40 +08004698 "base_default_next" : "FabricIngress.spgw_ingress.s1u_filter_table",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004699 "next_tables" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004700 "act_2" : "FabricIngress.spgw_ingress.s1u_filter_table"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004701 },
4702 "default_entry" : {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004703 "action_id" : 46,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004704 "action_const" : true,
4705 "action_data" : [],
4706 "action_entry_const" : true
4707 }
4708 },
4709 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004710 "name" : "FabricIngress.spgw_ingress.s1u_filter_table",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004711 "id" : 3,
4712 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004713 "filename" : "./include/control/../spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004714 "line" : 65,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004715 "column" : 10,
4716 "source_fragment" : "s1u_filter_table"
4717 },
4718 "key" : [
4719 {
4720 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004721 "name" : "spgw_meta.s1u_sgw_addr",
4722 "target" : ["userMetadata.spgw", "s1u_sgw_addr"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004723 "mask" : null
4724 }
4725 ],
4726 "match_type" : "exact",
4727 "type" : "simple",
4728 "max_size" : 1024,
4729 "with_counters" : false,
4730 "support_timeout" : false,
4731 "direct_meters" : null,
4732 "action_ids" : [1],
4733 "actions" : ["NoAction"],
4734 "base_default_next" : null,
4735 "next_tables" : {
4736 "__HIT__" : "tbl_act_2",
4737 "__MISS__" : "tbl_act_3"
4738 },
4739 "default_entry" : {
4740 "action_id" : 1,
4741 "action_const" : false,
4742 "action_data" : [],
4743 "action_entry_const" : false
4744 }
4745 },
4746 {
4747 "name" : "tbl_act_2",
4748 "id" : 4,
4749 "key" : [],
4750 "match_type" : "exact",
4751 "type" : "simple",
4752 "max_size" : 1024,
4753 "with_counters" : false,
4754 "support_timeout" : false,
4755 "direct_meters" : null,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004756 "action_ids" : [44],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004757 "actions" : ["act_0"],
4758 "base_default_next" : "node_10",
4759 "next_tables" : {
4760 "act_0" : "node_10"
4761 },
4762 "default_entry" : {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004763 "action_id" : 44,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004764 "action_const" : true,
4765 "action_data" : [],
4766 "action_entry_const" : true
4767 }
4768 },
4769 {
4770 "name" : "tbl_act_3",
4771 "id" : 5,
4772 "key" : [],
4773 "match_type" : "exact",
4774 "type" : "simple",
4775 "max_size" : 1024,
4776 "with_counters" : false,
4777 "support_timeout" : false,
4778 "direct_meters" : null,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004779 "action_ids" : [45],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004780 "actions" : ["act_1"],
4781 "base_default_next" : "node_10",
4782 "next_tables" : {
4783 "act_1" : "node_10"
4784 },
4785 "default_entry" : {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004786 "action_id" : 45,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004787 "action_const" : true,
4788 "action_data" : [],
4789 "action_entry_const" : true
4790 }
4791 },
4792 {
4793 "name" : "tbl_act_4",
4794 "id" : 6,
4795 "key" : [],
4796 "match_type" : "exact",
4797 "type" : "simple",
4798 "max_size" : 1024,
4799 "with_counters" : false,
4800 "support_timeout" : false,
4801 "direct_meters" : null,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004802 "action_ids" : [47],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004803 "actions" : ["act_3"],
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004804 "base_default_next" : "node_17",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004805 "next_tables" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004806 "act_3" : "node_17"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004807 },
4808 "default_entry" : {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004809 "action_id" : 47,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004810 "action_const" : true,
4811 "action_data" : [],
4812 "action_entry_const" : true
4813 }
4814 },
4815 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004816 "name" : "FabricIngress.spgw_ingress.ue_filter_table",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004817 "id" : 7,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004818 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004819 "filename" : "./include/control/../spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004820 "line" : 55,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004821 "column" : 10,
4822 "source_fragment" : "ue_filter_table"
4823 },
4824 "key" : [
4825 {
4826 "match_type" : "lpm",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004827 "name" : "ipv4.dst_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004828 "target" : ["ipv4", "dst_addr"],
4829 "mask" : null
4830 }
4831 ],
4832 "match_type" : "lpm",
4833 "type" : "simple",
4834 "max_size" : 1024,
4835 "with_counters" : false,
4836 "support_timeout" : false,
4837 "direct_meters" : null,
4838 "action_ids" : [0],
4839 "actions" : ["NoAction"],
4840 "base_default_next" : null,
4841 "next_tables" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004842 "__HIT__" : "tbl_act_5",
4843 "__MISS__" : "tbl_act_6"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004844 },
4845 "default_entry" : {
4846 "action_id" : 0,
4847 "action_const" : false,
4848 "action_data" : [],
4849 "action_entry_const" : false
4850 }
4851 },
4852 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004853 "name" : "tbl_act_5",
4854 "id" : 8,
4855 "key" : [],
4856 "match_type" : "exact",
4857 "type" : "simple",
4858 "max_size" : 1024,
4859 "with_counters" : false,
4860 "support_timeout" : false,
4861 "direct_meters" : null,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004862 "action_ids" : [48],
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004863 "actions" : ["act_4"],
4864 "base_default_next" : "node_15",
4865 "next_tables" : {
4866 "act_4" : "node_15"
4867 },
4868 "default_entry" : {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004869 "action_id" : 48,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004870 "action_const" : true,
4871 "action_data" : [],
4872 "action_entry_const" : true
4873 }
4874 },
4875 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004876 "name" : "tbl_act_6",
4877 "id" : 9,
4878 "key" : [],
4879 "match_type" : "exact",
4880 "type" : "simple",
4881 "max_size" : 1024,
4882 "with_counters" : false,
4883 "support_timeout" : false,
4884 "direct_meters" : null,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004885 "action_ids" : [49],
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004886 "actions" : ["act_5"],
4887 "base_default_next" : "node_15",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004888 "next_tables" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004889 "act_5" : "node_15"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004890 },
4891 "default_entry" : {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004892 "action_id" : 49,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004893 "action_const" : true,
4894 "action_data" : [],
4895 "action_entry_const" : true
4896 }
4897 },
4898 {
4899 "name" : "tbl_act_7",
4900 "id" : 10,
4901 "key" : [],
4902 "match_type" : "exact",
4903 "type" : "simple",
4904 "max_size" : 1024,
4905 "with_counters" : false,
4906 "support_timeout" : false,
4907 "direct_meters" : null,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004908 "action_ids" : [50],
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004909 "actions" : ["act_6"],
4910 "base_default_next" : "node_17",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004911 "next_tables" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004912 "act_6" : "node_17"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004913 },
4914 "default_entry" : {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004915 "action_id" : 50,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004916 "action_const" : true,
4917 "action_data" : [],
4918 "action_entry_const" : true
4919 }
4920 },
4921 {
4922 "name" : "tbl_act_8",
4923 "id" : 11,
4924 "key" : [],
4925 "match_type" : "exact",
4926 "type" : "simple",
4927 "max_size" : 1024,
4928 "with_counters" : false,
4929 "support_timeout" : false,
4930 "direct_meters" : null,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004931 "action_ids" : [52],
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004932 "actions" : ["act_8"],
4933 "base_default_next" : "node_19",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004934 "next_tables" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004935 "act_8" : "node_19"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004936 },
4937 "default_entry" : {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004938 "action_id" : 52,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004939 "action_const" : true,
4940 "action_data" : [],
4941 "action_entry_const" : true
4942 }
4943 },
4944 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004945 "name" : "tbl_spgw_ingress_gtpu_decap",
Carmelo Cascone14cde402018-01-25 01:57:18 -08004946 "id" : 12,
4947 "key" : [],
4948 "match_type" : "exact",
4949 "type" : "simple",
4950 "max_size" : 1024,
4951 "with_counters" : false,
4952 "support_timeout" : false,
4953 "direct_meters" : null,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004954 "action_ids" : [17],
Yi Tseng27b9bc02018-04-12 14:52:40 +08004955 "actions" : ["FabricIngress.spgw_ingress.gtpu_decap"],
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004956 "base_default_next" : "node_22",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004957 "next_tables" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004958 "FabricIngress.spgw_ingress.gtpu_decap" : "node_22"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004959 },
4960 "default_entry" : {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004961 "action_id" : 17,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004962 "action_const" : true,
4963 "action_data" : [],
4964 "action_entry_const" : true
4965 }
4966 },
4967 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004968 "name" : "FabricIngress.spgw_ingress.dl_sess_lookup",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004969 "id" : 13,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004970 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004971 "filename" : "./include/control/../spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004972 "line" : 124,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004973 "column" : 10,
4974 "source_fragment" : "dl_sess_lookup"
4975 },
4976 "key" : [
4977 {
4978 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004979 "name" : "ipv4.dst_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004980 "target" : ["ipv4", "dst_addr"],
4981 "mask" : null
4982 }
4983 ],
4984 "match_type" : "exact",
4985 "type" : "simple",
4986 "max_size" : 1024,
4987 "with_counters" : false,
4988 "support_timeout" : false,
4989 "direct_meters" : null,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004990 "action_ids" : [18, 2],
Yi Tseng27b9bc02018-04-12 14:52:40 +08004991 "actions" : ["FabricIngress.spgw_ingress.set_dl_sess_info", "NoAction"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004992 "base_default_next" : null,
4993 "next_tables" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004994 "__HIT__" : "tbl_act_9",
4995 "__MISS__" : "tbl_act_10"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004996 },
4997 "default_entry" : {
4998 "action_id" : 2,
4999 "action_const" : false,
5000 "action_data" : [],
5001 "action_entry_const" : false
5002 }
5003 },
5004 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005005 "name" : "tbl_act_9",
5006 "id" : 14,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005007 "key" : [],
5008 "match_type" : "exact",
5009 "type" : "simple",
5010 "max_size" : 1024,
5011 "with_counters" : false,
5012 "support_timeout" : false,
5013 "direct_meters" : null,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005014 "action_ids" : [53],
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005015 "actions" : ["act_9"],
5016 "base_default_next" : "node_26",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005017 "next_tables" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005018 "act_9" : "node_26"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005019 },
5020 "default_entry" : {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005021 "action_id" : 53,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005022 "action_const" : true,
5023 "action_data" : [],
5024 "action_entry_const" : true
5025 }
5026 },
5027 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005028 "name" : "tbl_act_10",
5029 "id" : 15,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005030 "key" : [],
5031 "match_type" : "exact",
5032 "type" : "simple",
5033 "max_size" : 1024,
5034 "with_counters" : false,
5035 "support_timeout" : false,
5036 "direct_meters" : null,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005037 "action_ids" : [54],
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005038 "actions" : ["act_10"],
5039 "base_default_next" : "node_26",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005040 "next_tables" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005041 "act_10" : "node_26"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005042 },
5043 "default_entry" : {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005044 "action_id" : 54,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005045 "action_const" : true,
5046 "action_data" : [],
5047 "action_entry_const" : true
5048 }
5049 },
5050 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005051 "name" : "tbl_spgw_ingress_drop_now",
5052 "id" : 16,
Carmelo Cascone14cde402018-01-25 01:57:18 -08005053 "key" : [],
5054 "match_type" : "exact",
5055 "type" : "simple",
5056 "max_size" : 1024,
5057 "with_counters" : false,
5058 "support_timeout" : false,
5059 "direct_meters" : null,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005060 "action_ids" : [16],
Yi Tseng27b9bc02018-04-12 14:52:40 +08005061 "actions" : ["FabricIngress.spgw_ingress.drop_now"],
5062 "base_default_next" : "FabricIngress.spgw_ingress.ue_cdr_table",
Carmelo Cascone14cde402018-01-25 01:57:18 -08005063 "next_tables" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005064 "FabricIngress.spgw_ingress.drop_now" : "FabricIngress.spgw_ingress.ue_cdr_table"
Carmelo Cascone14cde402018-01-25 01:57:18 -08005065 },
5066 "default_entry" : {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005067 "action_id" : 16,
Carmelo Cascone14cde402018-01-25 01:57:18 -08005068 "action_const" : true,
5069 "action_data" : [],
5070 "action_entry_const" : true
5071 }
5072 },
5073 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005074 "name" : "FabricIngress.spgw_ingress.ue_cdr_table",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005075 "id" : 17,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005076 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005077 "filename" : "./include/control/../spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005078 "line" : 134,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005079 "column" : 10,
5080 "source_fragment" : "ue_cdr_table"
5081 },
5082 "key" : [
5083 {
5084 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005085 "name" : "ipv4.dst_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005086 "target" : ["ipv4", "dst_addr"],
5087 "mask" : null
5088 }
5089 ],
5090 "match_type" : "exact",
5091 "type" : "simple",
5092 "max_size" : 1024,
5093 "with_counters" : true,
5094 "support_timeout" : false,
5095 "direct_meters" : null,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005096 "action_ids" : [19, 3],
Yi Tseng27b9bc02018-04-12 14:52:40 +08005097 "actions" : ["FabricIngress.spgw_ingress.update_ue_cdr", "NoAction"],
5098 "base_default_next" : "tbl_act_11",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005099 "next_tables" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005100 "FabricIngress.spgw_ingress.update_ue_cdr" : "tbl_act_11",
5101 "NoAction" : "tbl_act_11"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005102 },
5103 "default_entry" : {
5104 "action_id" : 3,
5105 "action_const" : false,
5106 "action_data" : [],
5107 "action_entry_const" : false
5108 }
5109 },
5110 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005111 "name" : "tbl_act_11",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005112 "id" : 18,
Yi Tseng27b9bc02018-04-12 14:52:40 +08005113 "key" : [],
5114 "match_type" : "exact",
5115 "type" : "simple",
5116 "max_size" : 1024,
5117 "with_counters" : false,
5118 "support_timeout" : false,
5119 "direct_meters" : null,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005120 "action_ids" : [55],
Yi Tseng27b9bc02018-04-12 14:52:40 +08005121 "actions" : ["act_11"],
5122 "base_default_next" : "FabricIngress.filtering.ingress_port_vlan",
5123 "next_tables" : {
5124 "act_11" : "FabricIngress.filtering.ingress_port_vlan"
5125 },
5126 "default_entry" : {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005127 "action_id" : 55,
Yi Tseng27b9bc02018-04-12 14:52:40 +08005128 "action_const" : true,
5129 "action_data" : [],
5130 "action_entry_const" : true
5131 }
5132 },
5133 {
5134 "name" : "FabricIngress.filtering.ingress_port_vlan",
5135 "id" : 19,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005136 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005137 "filename" : "./include/control/filtering.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005138 "line" : 57,
5139 "column" : 10,
5140 "source_fragment" : "ingress_port_vlan"
5141 },
5142 "key" : [
5143 {
5144 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005145 "name" : "standard_metadata.ingress_port",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005146 "target" : ["standard_metadata", "ingress_port"],
5147 "mask" : null
5148 },
5149 {
5150 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005151 "name" : "hdr.vlan_tag.is_valid",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005152 "target" : ["vlan_tag", "$valid$"],
5153 "mask" : null
5154 },
5155 {
5156 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005157 "name" : "hdr.vlan_tag.vlan_id",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005158 "target" : ["vlan_tag", "vlan_id"],
5159 "mask" : null
5160 }
5161 ],
5162 "match_type" : "ternary",
5163 "type" : "simple",
5164 "max_size" : 1024,
5165 "with_counters" : true,
5166 "support_timeout" : false,
5167 "direct_meters" : null,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005168 "action_ids" : [22, 21, 13, 20],
Yi Tseng27b9bc02018-04-12 14:52:40 +08005169 "actions" : ["FabricIngress.filtering.push_internal_vlan", "FabricIngress.filtering.set_vlan", "nop", "FabricIngress.filtering.drop"],
5170 "base_default_next" : "FabricIngress.filtering.fwd_classifier",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005171 "next_tables" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005172 "FabricIngress.filtering.push_internal_vlan" : "FabricIngress.filtering.fwd_classifier",
5173 "FabricIngress.filtering.set_vlan" : "FabricIngress.filtering.fwd_classifier",
5174 "nop" : "FabricIngress.filtering.fwd_classifier",
5175 "FabricIngress.filtering.drop" : "FabricIngress.filtering.fwd_classifier"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005176 },
5177 "default_entry" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005178 "action_id" : 13,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005179 "action_const" : true,
5180 "action_data" : [],
5181 "action_entry_const" : true
5182 }
5183 },
5184 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005185 "name" : "FabricIngress.filtering.fwd_classifier",
5186 "id" : 20,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005187 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005188 "filename" : "./include/control/filtering.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005189 "line" : 76,
5190 "column" : 10,
5191 "source_fragment" : "fwd_classifier"
5192 },
5193 "key" : [
5194 {
5195 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005196 "name" : "standard_metadata.ingress_port",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005197 "target" : ["standard_metadata", "ingress_port"],
5198 "mask" : null
5199 },
5200 {
5201 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005202 "name" : "hdr.ethernet.dst_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005203 "target" : ["ethernet", "dst_addr"],
5204 "mask" : null
5205 },
5206 {
5207 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005208 "name" : "fabric_metadata.original_ether_type",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005209 "target" : ["scalars", "fabric_metadata_t.original_ether_type"],
5210 "mask" : null
5211 }
5212 ],
5213 "match_type" : "exact",
5214 "type" : "simple",
5215 "max_size" : 1024,
5216 "with_counters" : true,
5217 "support_timeout" : false,
5218 "direct_meters" : null,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005219 "action_ids" : [23],
Yi Tseng27b9bc02018-04-12 14:52:40 +08005220 "actions" : ["FabricIngress.filtering.set_forwarding_type"],
5221 "base_default_next" : "node_32",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005222 "next_tables" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005223 "FabricIngress.filtering.set_forwarding_type" : "node_32"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005224 },
5225 "default_entry" : {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005226 "action_id" : 23,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005227 "action_const" : true,
5228 "action_data" : ["0x0"],
5229 "action_entry_const" : true
5230 }
5231 },
5232 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005233 "name" : "FabricIngress.forwarding.bridging",
5234 "id" : 21,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005235 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005236 "filename" : "./include/control/forwarding.p4",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08005237 "line" : 52,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005238 "column" : 10,
5239 "source_fragment" : "bridging"
5240 },
5241 "key" : [
5242 {
5243 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005244 "name" : "hdr.vlan_tag.vlan_id",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005245 "target" : ["vlan_tag", "vlan_id"],
5246 "mask" : null
5247 },
5248 {
5249 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005250 "name" : "hdr.ethernet.dst_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005251 "target" : ["ethernet", "dst_addr"],
5252 "mask" : null
5253 }
5254 ],
5255 "match_type" : "ternary",
5256 "type" : "simple",
5257 "max_size" : 1024,
5258 "with_counters" : true,
5259 "support_timeout" : false,
5260 "direct_meters" : null,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005261 "action_ids" : [25, 4],
Yi Tseng27b9bc02018-04-12 14:52:40 +08005262 "actions" : ["FabricIngress.forwarding.set_next_id", "NoAction"],
5263 "base_default_next" : "FabricIngress.forwarding.acl",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005264 "next_tables" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005265 "FabricIngress.forwarding.set_next_id" : "FabricIngress.forwarding.acl",
5266 "NoAction" : "FabricIngress.forwarding.acl"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005267 },
5268 "default_entry" : {
5269 "action_id" : 4,
5270 "action_const" : false,
5271 "action_data" : [],
5272 "action_entry_const" : false
5273 }
5274 },
5275 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005276 "name" : "FabricIngress.forwarding.mpls",
5277 "id" : 22,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005278 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005279 "filename" : "./include/control/forwarding.p4",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08005280 "line" : 64,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005281 "column" : 10,
5282 "source_fragment" : "mpls"
5283 },
5284 "key" : [
5285 {
5286 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005287 "name" : "hdr.mpls.label",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005288 "target" : ["mpls", "label"],
5289 "mask" : null
5290 }
5291 ],
5292 "match_type" : "exact",
5293 "type" : "simple",
5294 "max_size" : 1024,
5295 "with_counters" : true,
5296 "support_timeout" : false,
5297 "direct_meters" : null,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005298 "action_ids" : [31, 5],
Yi Tseng27b9bc02018-04-12 14:52:40 +08005299 "actions" : ["FabricIngress.forwarding.pop_mpls_and_next", "NoAction"],
5300 "base_default_next" : "tbl_act_12",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005301 "next_tables" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005302 "FabricIngress.forwarding.pop_mpls_and_next" : "tbl_act_12",
5303 "NoAction" : "tbl_act_12"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005304 },
5305 "default_entry" : {
5306 "action_id" : 5,
5307 "action_const" : false,
5308 "action_data" : [],
5309 "action_entry_const" : false
5310 }
5311 },
5312 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005313 "name" : "tbl_act_12",
5314 "id" : 23,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005315 "key" : [],
5316 "match_type" : "exact",
5317 "type" : "simple",
5318 "max_size" : 1024,
5319 "with_counters" : false,
5320 "support_timeout" : false,
5321 "direct_meters" : null,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005322 "action_ids" : [56],
Yi Tseng27b9bc02018-04-12 14:52:40 +08005323 "actions" : ["act_12"],
5324 "base_default_next" : "FabricIngress.forwarding.acl",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005325 "next_tables" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005326 "act_12" : "FabricIngress.forwarding.acl"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005327 },
5328 "default_entry" : {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005329 "action_id" : 56,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005330 "action_const" : true,
5331 "action_data" : [],
5332 "action_entry_const" : true
5333 }
5334 },
5335 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005336 "name" : "FabricIngress.forwarding.unicast_v4",
5337 "id" : 24,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005338 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005339 "filename" : "./include/control/forwarding.p4",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08005340 "line" : 75,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005341 "column" : 10,
5342 "source_fragment" : "unicast_v4"
5343 },
5344 "key" : [
5345 {
5346 "match_type" : "lpm",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005347 "name" : "hdr.ipv4.dst_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005348 "target" : ["ipv4", "dst_addr"],
5349 "mask" : null
5350 }
5351 ],
5352 "match_type" : "lpm",
5353 "type" : "simple",
5354 "max_size" : 1024,
5355 "with_counters" : true,
5356 "support_timeout" : false,
5357 "direct_meters" : null,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005358 "action_ids" : [26, 6],
Yi Tseng27b9bc02018-04-12 14:52:40 +08005359 "actions" : ["FabricIngress.forwarding.set_next_id", "NoAction"],
5360 "base_default_next" : "FabricIngress.forwarding.acl",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005361 "next_tables" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005362 "FabricIngress.forwarding.set_next_id" : "FabricIngress.forwarding.acl",
5363 "NoAction" : "FabricIngress.forwarding.acl"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005364 },
5365 "default_entry" : {
5366 "action_id" : 6,
5367 "action_const" : false,
5368 "action_data" : [],
5369 "action_entry_const" : false
5370 }
5371 },
5372 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005373 "name" : "FabricIngress.forwarding.multicast_v4",
5374 "id" : 25,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005375 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005376 "filename" : "./include/control/forwarding.p4",
5377 "line" : 89,
5378 "column" : 10,
5379 "source_fragment" : "multicast_v4"
5380 },
5381 "key" : [
5382 {
5383 "match_type" : "exact",
5384 "name" : "hdr.vlan_tag.vlan_id",
5385 "target" : ["vlan_tag", "vlan_id"],
5386 "mask" : null
5387 },
5388 {
5389 "match_type" : "lpm",
5390 "name" : "hdr.ipv4.dst_addr",
5391 "target" : ["ipv4", "dst_addr"],
5392 "mask" : null
5393 }
5394 ],
5395 "match_type" : "lpm",
5396 "type" : "simple",
5397 "max_size" : 1024,
5398 "with_counters" : true,
5399 "support_timeout" : false,
5400 "direct_meters" : null,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005401 "action_ids" : [27, 7],
Yi Tseng27b9bc02018-04-12 14:52:40 +08005402 "actions" : ["FabricIngress.forwarding.set_next_id", "NoAction"],
5403 "base_default_next" : "FabricIngress.forwarding.acl",
5404 "next_tables" : {
5405 "FabricIngress.forwarding.set_next_id" : "FabricIngress.forwarding.acl",
5406 "NoAction" : "FabricIngress.forwarding.acl"
5407 },
5408 "default_entry" : {
5409 "action_id" : 7,
5410 "action_const" : false,
5411 "action_data" : [],
5412 "action_entry_const" : false
5413 }
5414 },
5415 {
5416 "name" : "FabricIngress.forwarding.unicast_v6",
5417 "id" : 26,
5418 "source_info" : {
5419 "filename" : "./include/control/forwarding.p4",
5420 "line" : 105,
5421 "column" : 10,
5422 "source_fragment" : "unicast_v6"
5423 },
5424 "key" : [
5425 {
5426 "match_type" : "lpm",
5427 "name" : "hdr.ipv6.dst_addr",
5428 "target" : ["ipv6", "dst_addr"],
5429 "mask" : null
5430 }
5431 ],
5432 "match_type" : "lpm",
5433 "type" : "simple",
5434 "max_size" : 1024,
5435 "with_counters" : true,
5436 "support_timeout" : false,
5437 "direct_meters" : null,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005438 "action_ids" : [28, 8],
Yi Tseng27b9bc02018-04-12 14:52:40 +08005439 "actions" : ["FabricIngress.forwarding.set_next_id", "NoAction"],
5440 "base_default_next" : "FabricIngress.forwarding.acl",
5441 "next_tables" : {
5442 "FabricIngress.forwarding.set_next_id" : "FabricIngress.forwarding.acl",
5443 "NoAction" : "FabricIngress.forwarding.acl"
5444 },
5445 "default_entry" : {
5446 "action_id" : 8,
5447 "action_const" : false,
5448 "action_data" : [],
5449 "action_entry_const" : false
5450 }
5451 },
5452 {
5453 "name" : "FabricIngress.forwarding.multicast_v6",
5454 "id" : 27,
5455 "source_info" : {
5456 "filename" : "./include/control/forwarding.p4",
5457 "line" : 119,
5458 "column" : 10,
5459 "source_fragment" : "multicast_v6"
5460 },
5461 "key" : [
5462 {
5463 "match_type" : "exact",
5464 "name" : "hdr.vlan_tag.vlan_id",
5465 "target" : ["vlan_tag", "vlan_id"],
5466 "mask" : null
5467 },
5468 {
5469 "match_type" : "lpm",
5470 "name" : "hdr.ipv6.dst_addr",
5471 "target" : ["ipv6", "dst_addr"],
5472 "mask" : null
5473 }
5474 ],
5475 "match_type" : "lpm",
5476 "type" : "simple",
5477 "max_size" : 1024,
5478 "with_counters" : true,
5479 "support_timeout" : false,
5480 "direct_meters" : null,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005481 "action_ids" : [29, 9],
Yi Tseng27b9bc02018-04-12 14:52:40 +08005482 "actions" : ["FabricIngress.forwarding.set_next_id", "NoAction"],
5483 "base_default_next" : "FabricIngress.forwarding.acl",
5484 "next_tables" : {
5485 "FabricIngress.forwarding.set_next_id" : "FabricIngress.forwarding.acl",
5486 "NoAction" : "FabricIngress.forwarding.acl"
5487 },
5488 "default_entry" : {
5489 "action_id" : 9,
5490 "action_const" : false,
5491 "action_data" : [],
5492 "action_entry_const" : false
5493 }
5494 },
5495 {
5496 "name" : "FabricIngress.forwarding.acl",
5497 "id" : 28,
5498 "source_info" : {
5499 "filename" : "./include/control/forwarding.p4",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08005500 "line" : 133,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005501 "column" : 10,
5502 "source_fragment" : "acl"
5503 },
5504 "key" : [
5505 {
5506 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005507 "name" : "standard_metadata.ingress_port",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005508 "target" : ["standard_metadata", "ingress_port"],
5509 "mask" : null
5510 },
5511 {
5512 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005513 "name" : "fabric_metadata.ip_proto",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005514 "target" : ["scalars", "fabric_metadata_t.ip_proto"],
5515 "mask" : null
5516 },
5517 {
5518 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005519 "name" : "fabric_metadata.l4_src_port",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005520 "target" : ["scalars", "fabric_metadata_t.l4_src_port"],
5521 "mask" : null
5522 },
5523 {
5524 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005525 "name" : "fabric_metadata.l4_dst_port",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005526 "target" : ["scalars", "fabric_metadata_t.l4_dst_port"],
5527 "mask" : null
5528 },
5529 {
5530 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005531 "name" : "fabric_metadata.original_ether_type",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005532 "target" : ["scalars", "fabric_metadata_t.original_ether_type"],
5533 "mask" : null
5534 },
5535 {
5536 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005537 "name" : "hdr.ethernet.dst_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005538 "target" : ["ethernet", "dst_addr"],
5539 "mask" : null
5540 },
5541 {
5542 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005543 "name" : "hdr.ethernet.src_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005544 "target" : ["ethernet", "src_addr"],
5545 "mask" : null
5546 },
5547 {
5548 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005549 "name" : "hdr.vlan_tag.vlan_id",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005550 "target" : ["vlan_tag", "vlan_id"],
5551 "mask" : null
5552 },
5553 {
5554 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005555 "name" : "hdr.ipv4.src_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005556 "target" : ["ipv4", "src_addr"],
5557 "mask" : null
5558 },
5559 {
5560 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005561 "name" : "hdr.ipv4.dst_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005562 "target" : ["ipv4", "dst_addr"],
5563 "mask" : null
5564 },
5565 {
5566 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005567 "name" : "hdr.icmp.icmp_type",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005568 "target" : ["icmp", "icmp_type"],
5569 "mask" : null
5570 },
5571 {
5572 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005573 "name" : "hdr.icmp.icmp_code",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005574 "target" : ["icmp", "icmp_code"],
5575 "mask" : null
5576 }
5577 ],
5578 "match_type" : "ternary",
5579 "type" : "simple",
5580 "max_size" : 256,
5581 "with_counters" : true,
5582 "support_timeout" : false,
5583 "direct_meters" : null,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005584 "action_ids" : [30, 32, 24, 14],
Yi Tseng27b9bc02018-04-12 14:52:40 +08005585 "actions" : ["FabricIngress.forwarding.set_next_id", "FabricIngress.forwarding.duplicate_to_controller", "FabricIngress.forwarding.drop", "nop"],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005586 "base_default_next" : "FabricIngress.next.vlan_meta",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005587 "next_tables" : {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005588 "FabricIngress.forwarding.set_next_id" : "FabricIngress.next.vlan_meta",
5589 "FabricIngress.forwarding.duplicate_to_controller" : "FabricIngress.next.vlan_meta",
5590 "FabricIngress.forwarding.drop" : "FabricIngress.next.vlan_meta",
5591 "nop" : "FabricIngress.next.vlan_meta"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005592 },
5593 "default_entry" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005594 "action_id" : 14,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005595 "action_const" : true,
5596 "action_data" : [],
5597 "action_entry_const" : true
5598 }
5599 },
5600 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005601 "name" : "FabricIngress.next.vlan_meta",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005602 "id" : 29,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005603 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005604 "filename" : "./include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005605 "line" : 96,
5606 "column" : 10,
5607 "source_fragment" : "vlan_meta"
5608 },
5609 "key" : [
5610 {
5611 "match_type" : "exact",
5612 "name" : "fabric_metadata.next_id",
5613 "target" : ["scalars", "fabric_metadata_t.next_id"],
5614 "mask" : null
5615 }
5616 ],
5617 "match_type" : "exact",
5618 "type" : "simple",
5619 "max_size" : 1024,
5620 "with_counters" : true,
5621 "support_timeout" : false,
5622 "direct_meters" : null,
5623 "action_ids" : [34, 15],
5624 "actions" : ["FabricIngress.next.set_vlan", "nop"],
5625 "base_default_next" : "FabricIngress.next.simple",
5626 "next_tables" : {
5627 "FabricIngress.next.set_vlan" : "FabricIngress.next.simple",
5628 "nop" : "FabricIngress.next.simple"
5629 },
5630 "default_entry" : {
5631 "action_id" : 15,
5632 "action_const" : false,
5633 "action_data" : [],
5634 "action_entry_const" : false
5635 }
5636 },
5637 {
5638 "name" : "FabricIngress.next.simple",
5639 "id" : 30,
5640 "source_info" : {
5641 "filename" : "./include/control/next.p4",
5642 "line" : 109,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005643 "column" : 10,
5644 "source_fragment" : "simple"
5645 },
5646 "key" : [
5647 {
5648 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005649 "name" : "fabric_metadata.next_id",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005650 "target" : ["scalars", "fabric_metadata_t.next_id"],
5651 "mask" : null
5652 }
5653 ],
5654 "match_type" : "exact",
5655 "type" : "simple",
5656 "max_size" : 1024,
5657 "with_counters" : true,
5658 "support_timeout" : false,
5659 "direct_meters" : null,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005660 "action_ids" : [33, 35, 36, 39, 38, 10],
5661 "actions" : ["FabricIngress.next.output", "FabricIngress.next.set_vlan_output", "FabricIngress.next.l3_routing", "FabricIngress.next.mpls_routing_v4", "FabricIngress.next.l3_routing_vlan", "NoAction"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005662 "base_default_next" : null,
5663 "next_tables" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005664 "__HIT__" : "tbl_act_13",
5665 "__MISS__" : "tbl_act_14"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005666 },
5667 "default_entry" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005668 "action_id" : 10,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005669 "action_const" : false,
5670 "action_data" : [],
5671 "action_entry_const" : false
5672 }
5673 },
5674 {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08005675 "name" : "tbl_act_13",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08005676 "id" : 31,
5677 "key" : [],
5678 "match_type" : "exact",
5679 "type" : "simple",
5680 "max_size" : 1024,
5681 "with_counters" : false,
5682 "support_timeout" : false,
5683 "direct_meters" : null,
Yi Tseng27b9bc02018-04-12 14:52:40 +08005684 "action_ids" : [57],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005685 "actions" : ["act_13"],
5686 "base_default_next" : "node_50",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005687 "next_tables" : {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005688 "act_13" : "node_50"
Yi Tseng27b9bc02018-04-12 14:52:40 +08005689 },
5690 "default_entry" : {
5691 "action_id" : 57,
5692 "action_const" : true,
5693 "action_data" : [],
5694 "action_entry_const" : true
5695 }
5696 },
5697 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005698 "name" : "tbl_act_14",
5699 "id" : 32,
5700 "key" : [],
5701 "match_type" : "exact",
5702 "type" : "simple",
5703 "max_size" : 1024,
5704 "with_counters" : false,
5705 "support_timeout" : false,
5706 "direct_meters" : null,
5707 "action_ids" : [58],
5708 "actions" : ["act_14"],
5709 "base_default_next" : "node_50",
5710 "next_tables" : {
5711 "act_14" : "node_50"
5712 },
5713 "default_entry" : {
5714 "action_id" : 58,
5715 "action_const" : true,
5716 "action_data" : [],
5717 "action_entry_const" : true
5718 }
5719 },
5720 {
5721 "name" : "tbl_act_15",
5722 "id" : 33,
5723 "key" : [],
5724 "match_type" : "exact",
5725 "type" : "simple",
5726 "max_size" : 1024,
5727 "with_counters" : false,
5728 "support_timeout" : false,
5729 "direct_meters" : null,
5730 "action_ids" : [59],
5731 "actions" : ["act_15"],
5732 "base_default_next" : "FabricIngress.next.hashed",
5733 "next_tables" : {
5734 "act_15" : "FabricIngress.next.hashed"
5735 },
5736 "default_entry" : {
5737 "action_id" : 59,
5738 "action_const" : true,
5739 "action_data" : [],
5740 "action_entry_const" : true
5741 }
5742 },
5743 {
5744 "name" : "tbl_act_16",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005745 "id" : 34,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005746 "key" : [],
5747 "match_type" : "exact",
5748 "type" : "simple",
5749 "max_size" : 1024,
5750 "with_counters" : false,
5751 "support_timeout" : false,
5752 "direct_meters" : null,
5753 "action_ids" : [60],
5754 "actions" : ["act_16"],
5755 "base_default_next" : "FabricIngress.next.hashed",
5756 "next_tables" : {
5757 "act_16" : "FabricIngress.next.hashed"
5758 },
5759 "default_entry" : {
5760 "action_id" : 60,
5761 "action_const" : true,
5762 "action_data" : [],
5763 "action_entry_const" : true
5764 }
5765 },
5766 {
5767 "name" : "FabricIngress.next.hashed",
5768 "id" : 35,
Yi Tseng27b9bc02018-04-12 14:52:40 +08005769 "source_info" : {
5770 "filename" : "./include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005771 "line" : 124,
Yi Tseng27b9bc02018-04-12 14:52:40 +08005772 "column" : 10,
5773 "source_fragment" : "hashed"
5774 },
5775 "key" : [
5776 {
5777 "match_type" : "exact",
5778 "name" : "fabric_metadata.next_id",
5779 "target" : ["scalars", "fabric_metadata_t.next_id"],
5780 "mask" : null
5781 }
5782 ],
5783 "match_type" : "exact",
5784 "type" : "indirect_ws",
5785 "action_profile" : "FabricIngress.next.ecmp_selector",
5786 "max_size" : 1024,
5787 "with_counters" : true,
5788 "support_timeout" : false,
5789 "direct_meters" : null,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005790 "action_ids" : [37, 40, 41, 11],
Yi Tseng27b9bc02018-04-12 14:52:40 +08005791 "actions" : ["FabricIngress.next.l3_routing", "FabricIngress.next.mpls_routing_v4", "FabricIngress.next.mpls_routing_v6", "NoAction"],
5792 "base_default_next" : "FabricIngress.next.multicast",
5793 "next_tables" : {
5794 "FabricIngress.next.l3_routing" : "FabricIngress.next.multicast",
5795 "FabricIngress.next.mpls_routing_v4" : "FabricIngress.next.multicast",
5796 "FabricIngress.next.mpls_routing_v6" : "FabricIngress.next.multicast",
5797 "NoAction" : "FabricIngress.next.multicast"
5798 }
5799 },
5800 {
5801 "name" : "FabricIngress.next.multicast",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005802 "id" : 36,
Yi Tseng27b9bc02018-04-12 14:52:40 +08005803 "source_info" : {
5804 "filename" : "./include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005805 "line" : 155,
Yi Tseng27b9bc02018-04-12 14:52:40 +08005806 "column" : 10,
5807 "source_fragment" : "multicast"
5808 },
5809 "key" : [
5810 {
5811 "match_type" : "exact",
5812 "name" : "fabric_metadata.next_id",
5813 "target" : ["scalars", "fabric_metadata_t.next_id"],
5814 "mask" : null
5815 }
5816 ],
5817 "match_type" : "exact",
5818 "type" : "simple",
5819 "max_size" : 1024,
5820 "with_counters" : true,
5821 "support_timeout" : false,
5822 "direct_meters" : null,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005823 "action_ids" : [42, 12],
Yi Tseng27b9bc02018-04-12 14:52:40 +08005824 "actions" : ["FabricIngress.next.set_mcast_group", "NoAction"],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005825 "base_default_next" : "node_58",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005826 "next_tables" : {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005827 "FabricIngress.next.set_mcast_group" : "node_58",
5828 "NoAction" : "node_58"
Yi Tseng27b9bc02018-04-12 14:52:40 +08005829 },
5830 "default_entry" : {
5831 "action_id" : 12,
5832 "action_const" : false,
5833 "action_data" : [],
5834 "action_entry_const" : false
5835 }
5836 },
5837 {
5838 "name" : "tbl_act_17",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005839 "id" : 37,
5840 "key" : [],
5841 "match_type" : "exact",
5842 "type" : "simple",
5843 "max_size" : 1024,
5844 "with_counters" : false,
5845 "support_timeout" : false,
5846 "direct_meters" : null,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005847 "action_ids" : [61],
5848 "actions" : ["act_17"],
5849 "base_default_next" : "node_60",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005850 "next_tables" : {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005851 "act_17" : "node_60"
Yi Tseng27b9bc02018-04-12 14:52:40 +08005852 },
5853 "default_entry" : {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005854 "action_id" : 61,
Yi Tseng27b9bc02018-04-12 14:52:40 +08005855 "action_const" : true,
5856 "action_data" : [],
5857 "action_entry_const" : true
5858 }
5859 },
5860 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005861 "name" : "tbl_act_18",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005862 "id" : 38,
5863 "key" : [],
5864 "match_type" : "exact",
5865 "type" : "simple",
5866 "max_size" : 1024,
5867 "with_counters" : false,
5868 "support_timeout" : false,
5869 "direct_meters" : null,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005870 "action_ids" : [62],
5871 "actions" : ["act_18"],
Yi Tseng27b9bc02018-04-12 14:52:40 +08005872 "base_default_next" : null,
5873 "next_tables" : {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005874 "act_18" : null
Yi Tseng27b9bc02018-04-12 14:52:40 +08005875 },
5876 "default_entry" : {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005877 "action_id" : 62,
Carmelo Cascone14cde402018-01-25 01:57:18 -08005878 "action_const" : true,
5879 "action_data" : [],
5880 "action_entry_const" : true
5881 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005882 }
5883 ],
5884 "action_profiles" : [
5885 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005886 "name" : "FabricIngress.next.ecmp_selector",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005887 "id" : 0,
5888 "max_size" : 64,
5889 "selector" : {
5890 "algo" : "crc16",
5891 "input" : [
5892 {
5893 "type" : "field",
Yi Tseng3d3956d2018-01-31 17:28:05 -08005894 "value" : ["ipv4", "dst_addr"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005895 },
5896 {
5897 "type" : "field",
Yi Tseng3d3956d2018-01-31 17:28:05 -08005898 "value" : ["ipv4", "src_addr"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005899 },
5900 {
5901 "type" : "field",
5902 "value" : ["scalars", "fabric_metadata_t.ip_proto"]
5903 },
5904 {
5905 "type" : "field",
5906 "value" : ["scalars", "fabric_metadata_t.l4_src_port"]
5907 },
5908 {
5909 "type" : "field",
5910 "value" : ["scalars", "fabric_metadata_t.l4_dst_port"]
5911 }
5912 ]
5913 }
5914 }
5915 ],
5916 "conditionals" : [
5917 {
5918 "name" : "node_2",
5919 "id" : 0,
5920 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005921 "filename" : "./include/control/packetio.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005922 "line" : 25,
5923 "column" : 12,
5924 "source_fragment" : "hdr.packet_out.isValid()"
5925 },
5926 "expression" : {
5927 "type" : "expression",
5928 "value" : {
5929 "op" : "d2b",
5930 "left" : null,
5931 "right" : {
5932 "type" : "field",
5933 "value" : ["packet_out", "$valid$"]
5934 }
5935 }
5936 },
5937 "true_next" : "tbl_act",
5938 "false_next" : "tbl_act_0"
5939 },
5940 {
5941 "name" : "node_5",
5942 "id" : 1,
5943 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005944 "filename" : "./include/control/../spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005945 "line" : 147,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005946 "column" : 12,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005947 "source_fragment" : "gtpu.isValid()"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005948 },
5949 "expression" : {
5950 "type" : "expression",
5951 "value" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005952 "op" : "d2b",
5953 "left" : null,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005954 "right" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005955 "type" : "field",
5956 "value" : ["gtpu", "$valid$"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005957 }
5958 }
5959 },
5960 "true_next" : "tbl_act_1",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005961 "false_next" : "FabricIngress.spgw_ingress.ue_filter_table"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005962 },
5963 {
5964 "name" : "node_10",
5965 "id" : 2,
5966 "expression" : {
5967 "type" : "expression",
5968 "value" : {
5969 "op" : "d2b",
5970 "left" : null,
5971 "right" : {
5972 "type" : "field",
5973 "value" : ["scalars", "spgw_ingress_tmp_2"]
5974 }
5975 }
5976 },
5977 "true_next" : "tbl_act_4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005978 "false_next" : "node_17"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005979 },
5980 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005981 "name" : "node_15",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005982 "id" : 3,
5983 "expression" : {
5984 "type" : "expression",
5985 "value" : {
5986 "op" : "d2b",
5987 "left" : null,
5988 "right" : {
5989 "type" : "field",
5990 "value" : ["scalars", "spgw_ingress_tmp_3"]
5991 }
5992 }
5993 },
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005994 "true_next" : "tbl_act_7",
5995 "false_next" : "node_17"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005996 },
5997 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005998 "name" : "node_17",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005999 "id" : 4,
6000 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08006001 "filename" : "./include/control/../spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006002 "line" : 167,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006003 "column" : 12,
6004 "source_fragment" : "!spgw_meta.do_spgw"
6005 },
6006 "expression" : {
6007 "type" : "expression",
6008 "value" : {
6009 "op" : "not",
6010 "left" : null,
6011 "right" : {
6012 "type" : "expression",
6013 "value" : {
6014 "op" : "d2b",
6015 "left" : null,
6016 "right" : {
6017 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08006018 "value" : ["userMetadata.spgw", "do_spgw"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006019 }
6020 }
6021 }
6022 }
6023 },
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006024 "true_next" : "tbl_act_8",
6025 "false_next" : "node_19"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006026 },
6027 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006028 "name" : "node_19",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006029 "id" : 5,
6030 "expression" : {
6031 "type" : "expression",
6032 "value" : {
6033 "op" : "not",
6034 "left" : null,
6035 "right" : {
6036 "type" : "expression",
6037 "value" : {
6038 "op" : "d2b",
6039 "left" : null,
6040 "right" : {
6041 "type" : "field",
6042 "value" : ["scalars", "spgw_ingress_hasReturned_0"]
6043 }
6044 }
6045 }
6046 }
6047 },
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006048 "true_next" : "node_20",
Yi Tseng27b9bc02018-04-12 14:52:40 +08006049 "false_next" : "FabricIngress.filtering.ingress_port_vlan"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006050 },
6051 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006052 "name" : "node_20",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006053 "id" : 6,
6054 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08006055 "filename" : "./include/control/../spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006056 "line" : 172,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006057 "column" : 12,
6058 "source_fragment" : "spgw_meta.direction == DIR_UPLINK"
6059 },
6060 "expression" : {
6061 "type" : "expression",
6062 "value" : {
6063 "op" : "==",
6064 "left" : {
6065 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08006066 "value" : ["userMetadata.spgw", "direction"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006067 },
6068 "right" : {
6069 "type" : "hexstr",
6070 "value" : "0x00"
6071 }
6072 }
6073 },
6074 "true_next" : "tbl_spgw_ingress_gtpu_decap",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006075 "false_next" : "node_22"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006076 },
6077 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006078 "name" : "node_22",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006079 "id" : 7,
6080 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08006081 "filename" : "./include/control/../spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006082 "line" : 189,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006083 "column" : 12,
6084 "source_fragment" : "spgw_meta.direction == DIR_DOWNLINK"
6085 },
6086 "expression" : {
6087 "type" : "expression",
6088 "value" : {
6089 "op" : "==",
6090 "left" : {
6091 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08006092 "value" : ["userMetadata.spgw", "direction"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006093 },
6094 "right" : {
6095 "type" : "hexstr",
6096 "value" : "0x01"
6097 }
6098 }
6099 },
Yi Tseng27b9bc02018-04-12 14:52:40 +08006100 "true_next" : "FabricIngress.spgw_ingress.dl_sess_lookup",
6101 "false_next" : "tbl_act_11"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006102 },
6103 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006104 "name" : "node_26",
6105 "id" : 8,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006106 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08006107 "filename" : "./include/control/../spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006108 "line" : 190,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006109 "column" : 16,
6110 "source_fragment" : "!dl_sess_lookup.apply().hit"
6111 },
6112 "expression" : {
6113 "type" : "expression",
6114 "value" : {
6115 "op" : "not",
6116 "left" : null,
6117 "right" : {
6118 "type" : "expression",
6119 "value" : {
6120 "op" : "d2b",
6121 "left" : null,
6122 "right" : {
6123 "type" : "field",
6124 "value" : ["scalars", "spgw_ingress_tmp_4"]
6125 }
6126 }
6127 }
6128 }
6129 },
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006130 "true_next" : "tbl_spgw_ingress_drop_now",
Yi Tseng27b9bc02018-04-12 14:52:40 +08006131 "false_next" : "FabricIngress.spgw_ingress.ue_cdr_table"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006132 },
6133 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08006134 "name" : "node_32",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006135 "id" : 9,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006136 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08006137 "filename" : "./include/control/forwarding.p4",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08006138 "line" : 163,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006139 "column" : 11,
6140 "source_fragment" : "fabric_metadata.fwd_type == FWD_BRIDGING"
6141 },
6142 "expression" : {
6143 "type" : "expression",
6144 "value" : {
6145 "op" : "==",
6146 "left" : {
6147 "type" : "field",
6148 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
6149 },
6150 "right" : {
6151 "type" : "hexstr",
6152 "value" : "0x00"
6153 }
6154 }
6155 },
Yi Tseng27b9bc02018-04-12 14:52:40 +08006156 "true_next" : "FabricIngress.forwarding.bridging",
6157 "false_next" : "node_34"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006158 },
6159 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08006160 "name" : "node_34",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006161 "id" : 10,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006162 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08006163 "filename" : "./include/control/forwarding.p4",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08006164 "line" : 164,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006165 "column" : 17,
6166 "source_fragment" : "fabric_metadata.fwd_type == FWD_MPLS"
6167 },
6168 "expression" : {
6169 "type" : "expression",
6170 "value" : {
6171 "op" : "==",
6172 "left" : {
6173 "type" : "field",
6174 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
6175 },
6176 "right" : {
6177 "type" : "hexstr",
6178 "value" : "0x01"
6179 }
6180 }
6181 },
Yi Tseng27b9bc02018-04-12 14:52:40 +08006182 "true_next" : "FabricIngress.forwarding.mpls",
6183 "false_next" : "node_37"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006184 },
6185 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08006186 "name" : "node_37",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006187 "id" : 11,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006188 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08006189 "filename" : "./include/control/forwarding.p4",
6190 "line" : 171,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006191 "column" : 17,
6192 "source_fragment" : "fabric_metadata.fwd_type == FWD_IPV4_UNICAST"
6193 },
6194 "expression" : {
6195 "type" : "expression",
6196 "value" : {
6197 "op" : "==",
6198 "left" : {
6199 "type" : "field",
6200 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
6201 },
6202 "right" : {
6203 "type" : "hexstr",
6204 "value" : "0x02"
6205 }
6206 }
6207 },
Yi Tseng27b9bc02018-04-12 14:52:40 +08006208 "true_next" : "FabricIngress.forwarding.unicast_v4",
6209 "false_next" : "node_39"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006210 },
6211 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08006212 "name" : "node_39",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08006213 "id" : 12,
Yi Tseng27b9bc02018-04-12 14:52:40 +08006214 "source_info" : {
6215 "filename" : "./include/control/forwarding.p4",
6216 "line" : 173,
6217 "column" : 17,
6218 "source_fragment" : "fabric_metadata.fwd_type == FWD_IPV4_MULTICAST"
6219 },
6220 "expression" : {
6221 "type" : "expression",
6222 "value" : {
6223 "op" : "==",
6224 "left" : {
6225 "type" : "field",
6226 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
6227 },
6228 "right" : {
6229 "type" : "hexstr",
6230 "value" : "0x03"
6231 }
6232 }
6233 },
6234 "true_next" : "FabricIngress.forwarding.multicast_v4",
6235 "false_next" : "node_41"
6236 },
6237 {
6238 "name" : "node_41",
6239 "id" : 13,
6240 "source_info" : {
6241 "filename" : "./include/control/forwarding.p4",
6242 "line" : 176,
6243 "column" : 17,
6244 "source_fragment" : "fabric_metadata.fwd_type == FWD_IPV6_UNICAST"
6245 },
6246 "expression" : {
6247 "type" : "expression",
6248 "value" : {
6249 "op" : "==",
6250 "left" : {
6251 "type" : "field",
6252 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
6253 },
6254 "right" : {
6255 "type" : "hexstr",
6256 "value" : "0x04"
6257 }
6258 }
6259 },
6260 "true_next" : "FabricIngress.forwarding.unicast_v6",
6261 "false_next" : "node_43"
6262 },
6263 {
6264 "name" : "node_43",
6265 "id" : 14,
6266 "source_info" : {
6267 "filename" : "./include/control/forwarding.p4",
6268 "line" : 178,
6269 "column" : 17,
6270 "source_fragment" : "fabric_metadata.fwd_type == FWD_IPV6_MULTICAST"
6271 },
6272 "expression" : {
6273 "type" : "expression",
6274 "value" : {
6275 "op" : "==",
6276 "left" : {
6277 "type" : "field",
6278 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
6279 },
6280 "right" : {
6281 "type" : "hexstr",
6282 "value" : "0x05"
6283 }
6284 }
6285 },
6286 "true_next" : "FabricIngress.forwarding.multicast_v6",
6287 "false_next" : "FabricIngress.forwarding.acl"
6288 },
6289 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006290 "name" : "node_50",
Yi Tseng27b9bc02018-04-12 14:52:40 +08006291 "id" : 15,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006292 "expression" : {
6293 "type" : "expression",
6294 "value" : {
6295 "op" : "d2b",
6296 "left" : null,
6297 "right" : {
6298 "type" : "field",
6299 "value" : ["scalars", "next_tmp_0"]
6300 }
6301 }
6302 },
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006303 "true_next" : "node_51",
Yi Tseng27b9bc02018-04-12 14:52:40 +08006304 "false_next" : "FabricIngress.next.hashed"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006305 },
6306 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006307 "name" : "node_51",
Yi Tseng27b9bc02018-04-12 14:52:40 +08006308 "id" : 16,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006309 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08006310 "filename" : "./include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006311 "line" : 169,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006312 "column" : 16,
6313 "source_fragment" : "!hdr.mpls.isValid()"
6314 },
6315 "expression" : {
6316 "type" : "expression",
6317 "value" : {
6318 "op" : "not",
6319 "left" : null,
6320 "right" : {
6321 "type" : "expression",
6322 "value" : {
6323 "op" : "d2b",
6324 "left" : null,
6325 "right" : {
6326 "type" : "field",
6327 "value" : ["mpls", "$valid$"]
6328 }
6329 }
6330 }
6331 }
6332 },
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006333 "true_next" : "node_52",
Yi Tseng27b9bc02018-04-12 14:52:40 +08006334 "false_next" : "FabricIngress.next.hashed"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006335 },
6336 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006337 "name" : "node_52",
Yi Tseng27b9bc02018-04-12 14:52:40 +08006338 "id" : 17,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006339 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08006340 "filename" : "./include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006341 "line" : 170,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006342 "column" : 19,
6343 "source_fragment" : "hdr.ipv4.isValid()"
6344 },
6345 "expression" : {
6346 "type" : "expression",
6347 "value" : {
6348 "op" : "d2b",
6349 "left" : null,
6350 "right" : {
6351 "type" : "field",
6352 "value" : ["ipv4", "$valid$"]
6353 }
6354 }
6355 },
Yi Tseng27b9bc02018-04-12 14:52:40 +08006356 "true_next" : "tbl_act_15",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006357 "false_next" : "node_54"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006358 },
6359 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006360 "name" : "node_54",
Yi Tseng27b9bc02018-04-12 14:52:40 +08006361 "id" : 18,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006362 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08006363 "filename" : "./include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006364 "line" : 174,
Yi Tseng27b9bc02018-04-12 14:52:40 +08006365 "column" : 25,
6366 "source_fragment" : "hdr.ipv6.isValid()"
6367 },
6368 "expression" : {
6369 "type" : "expression",
6370 "value" : {
6371 "op" : "d2b",
6372 "left" : null,
6373 "right" : {
6374 "type" : "field",
6375 "value" : ["ipv6", "$valid$"]
6376 }
6377 }
6378 },
6379 "true_next" : "tbl_act_16",
6380 "false_next" : "FabricIngress.next.hashed"
6381 },
6382 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006383 "name" : "node_58",
Yi Tseng27b9bc02018-04-12 14:52:40 +08006384 "id" : 19,
6385 "source_info" : {
6386 "filename" : "./include/control/port_counter.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006387 "line" : 27,
6388 "column" : 12,
6389 "source_fragment" : "standard_metadata.egress_spec < 511"
6390 },
6391 "expression" : {
6392 "type" : "expression",
6393 "value" : {
6394 "op" : "<",
6395 "left" : {
6396 "type" : "field",
6397 "value" : ["standard_metadata", "egress_spec"]
6398 },
6399 "right" : {
6400 "type" : "hexstr",
6401 "value" : "0x01ff"
6402 }
6403 }
6404 },
Yi Tseng27b9bc02018-04-12 14:52:40 +08006405 "true_next" : "tbl_act_17",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006406 "false_next" : "node_60"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006407 },
6408 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006409 "name" : "node_60",
Yi Tseng27b9bc02018-04-12 14:52:40 +08006410 "id" : 20,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006411 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08006412 "filename" : "./include/control/port_counter.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006413 "line" : 30,
6414 "column" : 12,
6415 "source_fragment" : "standard_metadata.ingress_port < 511"
6416 },
6417 "expression" : {
6418 "type" : "expression",
6419 "value" : {
6420 "op" : "<",
6421 "left" : {
6422 "type" : "field",
6423 "value" : ["standard_metadata", "ingress_port"]
6424 },
6425 "right" : {
6426 "type" : "hexstr",
6427 "value" : "0x01ff"
6428 }
6429 }
6430 },
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006431 "false_next" : null,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006432 "true_next" : "tbl_act_18"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006433 }
6434 ]
6435 },
6436 {
6437 "name" : "egress",
6438 "id" : 1,
6439 "source_info" : {
6440 "filename" : "fabric.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006441 "line" : 61,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006442 "column" : 8,
6443 "source_fragment" : "FabricEgress"
6444 },
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006445 "init_table" : "FabricEgress.egress_next.egress_vlan",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006446 "tables" : [
6447 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006448 "name" : "FabricEgress.egress_next.egress_vlan",
Yi Tseng27b9bc02018-04-12 14:52:40 +08006449 "id" : 39,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006450 "source_info" : {
6451 "filename" : "./include/control/next.p4",
6452 "line" : 197,
6453 "column" : 10,
6454 "source_fragment" : "egress_vlan"
6455 },
6456 "key" : [
6457 {
6458 "match_type" : "exact",
6459 "name" : "hdr.vlan_tag.vlan_id",
6460 "target" : ["vlan_tag", "vlan_id"],
6461 "mask" : null
6462 },
6463 {
6464 "match_type" : "exact",
6465 "name" : "standard_metadata.egress_port",
6466 "target" : ["standard_metadata", "egress_port"],
6467 "mask" : null
6468 }
6469 ],
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08006470 "match_type" : "exact",
6471 "type" : "simple",
6472 "max_size" : 1024,
6473 "with_counters" : false,
6474 "support_timeout" : false,
6475 "direct_meters" : null,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006476 "action_ids" : [66, 63],
6477 "actions" : ["FabricEgress.egress_next.pop_vlan", "nop"],
6478 "base_default_next" : "node_65",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08006479 "next_tables" : {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006480 "FabricEgress.egress_next.pop_vlan" : "node_65",
6481 "nop" : "node_65"
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08006482 },
6483 "default_entry" : {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006484 "action_id" : 63,
6485 "action_const" : false,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08006486 "action_data" : [],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006487 "action_entry_const" : false
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08006488 }
6489 },
6490 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006491 "name" : "tbl_pkt_io_egress_pop_vlan",
Yi Tseng27b9bc02018-04-12 14:52:40 +08006492 "id" : 40,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08006493 "key" : [],
6494 "match_type" : "exact",
6495 "type" : "simple",
6496 "max_size" : 1024,
6497 "with_counters" : false,
6498 "support_timeout" : false,
6499 "direct_meters" : null,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006500 "action_ids" : [65],
6501 "actions" : ["FabricEgress.pkt_io_egress.pop_vlan"],
6502 "base_default_next" : "tbl_act_19",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08006503 "next_tables" : {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006504 "FabricEgress.pkt_io_egress.pop_vlan" : "tbl_act_19"
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08006505 },
6506 "default_entry" : {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006507 "action_id" : 65,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08006508 "action_const" : true,
6509 "action_data" : [],
6510 "action_entry_const" : true
6511 }
6512 },
6513 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006514 "name" : "tbl_act_19",
Yi Tseng27b9bc02018-04-12 14:52:40 +08006515 "id" : 41,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006516 "key" : [],
6517 "match_type" : "exact",
6518 "type" : "simple",
6519 "max_size" : 1024,
6520 "with_counters" : false,
6521 "support_timeout" : false,
6522 "direct_meters" : null,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006523 "action_ids" : [67],
6524 "actions" : ["act_19"],
6525 "base_default_next" : "tbl_act_20",
6526 "next_tables" : {
6527 "act_19" : "tbl_act_20"
6528 },
6529 "default_entry" : {
6530 "action_id" : 67,
6531 "action_const" : true,
6532 "action_data" : [],
6533 "action_entry_const" : true
6534 }
6535 },
6536 {
6537 "name" : "tbl_act_20",
6538 "id" : 42,
6539 "key" : [],
6540 "match_type" : "exact",
6541 "type" : "simple",
6542 "max_size" : 1024,
6543 "with_counters" : false,
6544 "support_timeout" : false,
6545 "direct_meters" : null,
6546 "action_ids" : [68],
6547 "actions" : ["act_20"],
6548 "base_default_next" : "node_70",
6549 "next_tables" : {
6550 "act_20" : "node_70"
6551 },
6552 "default_entry" : {
6553 "action_id" : 68,
6554 "action_const" : true,
6555 "action_data" : [],
6556 "action_entry_const" : true
6557 }
6558 },
6559 {
6560 "name" : "tbl_spgw_egress_gtpu_encap",
6561 "id" : 43,
6562 "key" : [],
6563 "match_type" : "exact",
6564 "type" : "simple",
6565 "max_size" : 1024,
6566 "with_counters" : false,
6567 "support_timeout" : false,
6568 "direct_meters" : null,
6569 "action_ids" : [64],
Yi Tseng27b9bc02018-04-12 14:52:40 +08006570 "actions" : ["FabricEgress.spgw_egress.gtpu_encap"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006571 "base_default_next" : null,
6572 "next_tables" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08006573 "FabricEgress.spgw_egress.gtpu_encap" : null
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006574 },
6575 "default_entry" : {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006576 "action_id" : 64,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006577 "action_const" : true,
6578 "action_data" : [],
6579 "action_entry_const" : true
6580 }
6581 }
6582 ],
6583 "action_profiles" : [],
6584 "conditionals" : [
6585 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08006586 "name" : "node_65",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006587 "id" : 21,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006588 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08006589 "filename" : "./include/control/packetio.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006590 "line" : 42,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006591 "column" : 12,
Carmelo Casconeb531b682018-01-30 17:55:56 -08006592 "source_fragment" : "standard_metadata.egress_port == 255"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006593 },
6594 "expression" : {
6595 "type" : "expression",
6596 "value" : {
6597 "op" : "==",
6598 "left" : {
6599 "type" : "field",
6600 "value" : ["standard_metadata", "egress_port"]
6601 },
6602 "right" : {
6603 "type" : "hexstr",
6604 "value" : "0x00ff"
6605 }
6606 }
6607 },
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006608 "true_next" : "node_66",
6609 "false_next" : "tbl_act_20"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006610 },
6611 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006612 "name" : "node_66",
6613 "id" : 22,
6614 "source_info" : {
6615 "filename" : "./include/control/packetio.p4",
6616 "line" : 43,
6617 "column" : 16,
6618 "source_fragment" : "hdr.vlan_tag.isValid() && fabric_metadata.pop_vlan_when_packet_in"
6619 },
6620 "expression" : {
6621 "type" : "expression",
6622 "value" : {
6623 "op" : "and",
6624 "left" : {
6625 "type" : "expression",
6626 "value" : {
6627 "op" : "d2b",
6628 "left" : null,
6629 "right" : {
6630 "type" : "field",
6631 "value" : ["vlan_tag", "$valid$"]
6632 }
6633 }
6634 },
6635 "right" : {
6636 "type" : "expression",
6637 "value" : {
6638 "op" : "d2b",
6639 "left" : null,
6640 "right" : {
6641 "type" : "field",
6642 "value" : ["scalars", "fabric_metadata_t.pop_vlan_when_packet_in"]
6643 }
6644 }
6645 }
6646 }
6647 },
6648 "true_next" : "tbl_pkt_io_egress_pop_vlan",
6649 "false_next" : "tbl_act_19"
6650 },
6651 {
6652 "name" : "node_70",
Yi Tseng27b9bc02018-04-12 14:52:40 +08006653 "id" : 23,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006654 "source_info" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08006655 "filename" : "./include/control/../spgw.p4",
6656 "line" : 249,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006657 "column" : 12,
6658 "source_fragment" : "spgw_meta.do_spgw && spgw_meta.direction == DIR_DOWNLINK"
6659 },
6660 "expression" : {
6661 "type" : "expression",
6662 "value" : {
6663 "op" : "and",
6664 "left" : {
6665 "type" : "expression",
6666 "value" : {
6667 "op" : "d2b",
6668 "left" : null,
6669 "right" : {
6670 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08006671 "value" : ["userMetadata.spgw", "do_spgw"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006672 }
6673 }
6674 },
6675 "right" : {
6676 "type" : "expression",
6677 "value" : {
6678 "op" : "==",
6679 "left" : {
6680 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08006681 "value" : ["userMetadata.spgw", "direction"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006682 },
6683 "right" : {
6684 "type" : "hexstr",
6685 "value" : "0x01"
6686 }
6687 }
6688 }
6689 }
6690 },
6691 "false_next" : null,
6692 "true_next" : "tbl_spgw_egress_gtpu_encap"
6693 }
6694 ]
6695 }
6696 ],
6697 "checksums" : [
6698 {
6699 "name" : "cksum",
6700 "id" : 0,
6701 "target" : ["ipv4", "hdr_checksum"],
6702 "type" : "generic",
6703 "calculation" : "calc",
6704 "if_cond" : {
6705 "type" : "expression",
6706 "value" : {
6707 "op" : "d2b",
6708 "left" : null,
6709 "right" : {
6710 "type" : "field",
6711 "value" : ["ipv4", "$valid$"]
6712 }
6713 }
6714 }
6715 },
6716 {
6717 "name" : "cksum_0",
6718 "id" : 1,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006719 "target" : ["ipv4", "hdr_checksum"],
6720 "type" : "generic",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006721 "calculation" : "calc_0",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006722 "if_cond" : {
6723 "type" : "expression",
6724 "value" : {
6725 "op" : "d2b",
6726 "left" : null,
6727 "right" : {
6728 "type" : "field",
6729 "value" : ["ipv4", "$valid$"]
6730 }
6731 }
6732 }
6733 },
6734 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006735 "name" : "cksum_1",
6736 "id" : 2,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006737 "target" : ["gtpu_ipv4", "hdr_checksum"],
6738 "type" : "generic",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006739 "calculation" : "calc_1",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006740 "if_cond" : {
6741 "type" : "expression",
6742 "value" : {
6743 "op" : "d2b",
6744 "left" : null,
6745 "right" : {
6746 "type" : "field",
6747 "value" : ["gtpu_ipv4", "$valid$"]
6748 }
6749 }
6750 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006751 }
6752 ],
6753 "force_arith" : [],
6754 "extern_instances" : [],
6755 "field_aliases" : [
6756 [
6757 "queueing_metadata.enq_timestamp",
6758 ["standard_metadata", "enq_timestamp"]
6759 ],
6760 [
6761 "queueing_metadata.enq_qdepth",
6762 ["standard_metadata", "enq_qdepth"]
6763 ],
6764 [
6765 "queueing_metadata.deq_timedelta",
6766 ["standard_metadata", "deq_timedelta"]
6767 ],
6768 [
6769 "queueing_metadata.deq_qdepth",
6770 ["standard_metadata", "deq_qdepth"]
6771 ],
6772 [
6773 "intrinsic_metadata.ingress_global_timestamp",
6774 ["standard_metadata", "ingress_global_timestamp"]
6775 ],
6776 [
Yi Tseng27b9bc02018-04-12 14:52:40 +08006777 "intrinsic_metadata.egress_global_timestamp",
6778 ["standard_metadata", "egress_global_timestamp"]
6779 ],
6780 [
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006781 "intrinsic_metadata.lf_field_list",
6782 ["standard_metadata", "lf_field_list"]
6783 ],
6784 [
6785 "intrinsic_metadata.mcast_grp",
6786 ["standard_metadata", "mcast_grp"]
6787 ],
6788 [
6789 "intrinsic_metadata.resubmit_flag",
6790 ["standard_metadata", "resubmit_flag"]
6791 ],
6792 [
6793 "intrinsic_metadata.egress_rid",
6794 ["standard_metadata", "egress_rid"]
Yi Tseng27b9bc02018-04-12 14:52:40 +08006795 ],
6796 [
6797 "intrinsic_metadata.recirculate_flag",
6798 ["standard_metadata", "recirculate_flag"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006799 ]
6800 ]
6801}