blob: 10deed04781fe6d8bc5a98ed56d10efed4050aaf [file] [log] [blame]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001{
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002 "header_types" : [
3 {
4 "name" : "scalars_0",
5 "id" : 0,
6 "fields" : [
7 ["tmp", 4, false],
8 ["tmp_0", 32, false],
9 ["tmp_1", 32, false],
10 ["spgw_ingress_tmp_2", 1, false],
11 ["spgw_ingress_tmp_3", 1, false],
12 ["spgw_ingress_tmp_4", 1, false],
13 ["next_tmp_0", 1, false],
14 ["spgw_ingress_hasReturned_0", 1, false],
15 ["fabric_metadata_t.fwd_type", 3, false],
16 ["fabric_metadata_t.next_id", 32, false],
Yi Tseng20f9e7b2018-05-24 23:27:39 +080017 ["fabric_metadata_t.pop_vlan_when_packet_in", 1, false],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -080018 ["fabric_metadata_t.ip_proto", 8, false],
19 ["fabric_metadata_t.l4_src_port", 16, false],
20 ["fabric_metadata_t.l4_dst_port", 16, false],
21 ["fabric_metadata_t.original_ether_type", 16, false],
22 ["_padding_1", 3, false]
23 ]
24 },
25 {
Carmelo Cascone6af4e172018-06-15 16:01:30 +020026 "name" : "standard_metadata",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -080027 "id" : 1,
28 "fields" : [
Carmelo Cascone6af4e172018-06-15 16:01:30 +020029 ["ingress_port", 9, false],
30 ["egress_spec", 9, false],
31 ["egress_port", 9, false],
32 ["clone_spec", 32, false],
33 ["instance_type", 32, false],
34 ["drop", 1, false],
35 ["recirculate_port", 16, false],
36 ["packet_length", 32, false],
37 ["enq_timestamp", 32, false],
38 ["enq_qdepth", 19, false],
39 ["deq_timedelta", 32, false],
40 ["deq_qdepth", 19, false],
41 ["ingress_global_timestamp", 48, false],
42 ["egress_global_timestamp", 48, false],
43 ["lf_field_list", 32, false],
44 ["mcast_grp", 16, false],
45 ["resubmit_flag", 32, false],
46 ["egress_rid", 16, false],
47 ["checksum_error", 1, false],
48 ["recirculate_flag", 32, false],
49 ["_padding", 5, false]
50 ]
51 },
52 {
53 "name" : "ethernet_t",
54 "id" : 2,
55 "fields" : [
Carmelo Casconeb81f4be2018-01-16 23:24:01 -080056 ["dst_addr", 48, false],
57 ["src_addr", 48, false],
58 ["ether_type", 16, false]
59 ]
60 },
61 {
62 "name" : "vlan_tag_t",
Carmelo Cascone6af4e172018-06-15 16:01:30 +020063 "id" : 3,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -080064 "fields" : [
65 ["pri", 3, false],
66 ["cfi", 1, false],
67 ["vlan_id", 12, false],
68 ["ether_type", 16, false]
69 ]
70 },
71 {
72 "name" : "mpls_t",
Carmelo Cascone6af4e172018-06-15 16:01:30 +020073 "id" : 4,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -080074 "fields" : [
75 ["label", 20, false],
76 ["tc", 3, false],
77 ["bos", 1, false],
78 ["ttl", 8, false]
79 ]
80 },
81 {
82 "name" : "ipv4_t",
Carmelo Cascone6af4e172018-06-15 16:01:30 +020083 "id" : 5,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -080084 "fields" : [
85 ["version", 4, false],
86 ["ihl", 4, false],
87 ["diffserv", 8, false],
88 ["total_len", 16, false],
89 ["identification", 16, false],
90 ["flags", 3, false],
91 ["frag_offset", 13, false],
92 ["ttl", 8, false],
93 ["protocol", 8, false],
94 ["hdr_checksum", 16, false],
95 ["src_addr", 32, false],
96 ["dst_addr", 32, false]
97 ]
98 },
99 {
100 "name" : "udp_t",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200101 "id" : 6,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800102 "fields" : [
103 ["src_port", 16, false],
104 ["dst_port", 16, false],
105 ["len", 16, false],
106 ["checksum", 16, false]
107 ]
108 },
109 {
110 "name" : "gtpu_t",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200111 "id" : 7,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800112 "fields" : [
113 ["version", 3, false],
114 ["pt", 1, false],
115 ["spare", 1, false],
116 ["ex_flag", 1, false],
117 ["seq_flag", 1, false],
118 ["npdu_flag", 1, false],
119 ["msgtype", 8, false],
120 ["msglen", 16, false],
121 ["teid", 32, false]
122 ]
123 },
124 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800125 "name" : "arp_t",
126 "id" : 8,
127 "fields" : [
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800128 ["hw_type", 16, false],
129 ["proto_type", 16, false],
130 ["hw_addr_len", 8, false],
131 ["proto_addr_len", 8, false],
132 ["opcode", 16, false]
133 ]
134 },
135 {
136 "name" : "tcp_t",
Yi Tseng27b9bc02018-04-12 14:52:40 +0800137 "id" : 9,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800138 "fields" : [
139 ["src_port", 16, false],
140 ["dst_port", 16, false],
141 ["seq_no", 32, false],
142 ["ack_no", 32, false],
143 ["data_offset", 4, false],
144 ["res", 3, false],
145 ["ecn", 3, false],
146 ["ctrl", 6, false],
147 ["window", 16, false],
148 ["checksum", 16, false],
149 ["urgent_ptr", 16, false]
150 ]
151 },
152 {
153 "name" : "icmp_t",
Yi Tseng27b9bc02018-04-12 14:52:40 +0800154 "id" : 10,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800155 "fields" : [
156 ["icmp_type", 8, false],
157 ["icmp_code", 8, false],
158 ["checksum", 16, false],
159 ["identifier", 16, false],
160 ["sequence_number", 16, false],
161 ["timestamp", 64, false]
162 ]
163 },
164 {
165 "name" : "packet_out_header_t",
Yi Tseng27b9bc02018-04-12 14:52:40 +0800166 "id" : 11,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800167 "fields" : [
168 ["egress_port", 9, false],
169 ["_pad", 7, false]
170 ]
171 },
172 {
173 "name" : "packet_in_header_t",
Yi Tseng27b9bc02018-04-12 14:52:40 +0800174 "id" : 12,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800175 "fields" : [
176 ["ingress_port", 9, false],
177 ["_pad", 7, false]
178 ]
179 },
180 {
181 "name" : "spgw_meta_t",
Yi Tseng27b9bc02018-04-12 14:52:40 +0800182 "id" : 13,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800183 "fields" : [
184 ["do_spgw", 1, 0],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800185 ["direction", 1, false],
Yi Tseng27b9bc02018-04-12 14:52:40 +0800186 ["ipv4_len", 16, false],
Carmelo Casconeb757dbc2018-01-25 17:53:17 -0800187 ["teid", 32, false],
188 ["s1u_enb_addr", 32, false],
189 ["s1u_sgw_addr", 32, false],
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200190 ["_padding_0", 6, false]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800191 ]
192 }
193 ],
194 "headers" : [
195 {
196 "name" : "scalars",
197 "id" : 0,
198 "header_type" : "scalars_0",
199 "metadata" : true,
200 "pi_omit" : true
201 },
202 {
203 "name" : "standard_metadata",
204 "id" : 1,
205 "header_type" : "standard_metadata",
206 "metadata" : true,
207 "pi_omit" : true
208 },
209 {
210 "name" : "ethernet",
211 "id" : 2,
212 "header_type" : "ethernet_t",
213 "metadata" : false,
214 "pi_omit" : true
215 },
216 {
217 "name" : "vlan_tag",
218 "id" : 3,
219 "header_type" : "vlan_tag_t",
220 "metadata" : false,
221 "pi_omit" : true
222 },
223 {
224 "name" : "mpls",
225 "id" : 4,
226 "header_type" : "mpls_t",
227 "metadata" : false,
228 "pi_omit" : true
229 },
230 {
231 "name" : "gtpu_ipv4",
232 "id" : 5,
233 "header_type" : "ipv4_t",
234 "metadata" : false,
235 "pi_omit" : true
236 },
237 {
238 "name" : "gtpu_udp",
239 "id" : 6,
240 "header_type" : "udp_t",
241 "metadata" : false,
242 "pi_omit" : true
243 },
244 {
245 "name" : "gtpu",
246 "id" : 7,
247 "header_type" : "gtpu_t",
248 "metadata" : false,
249 "pi_omit" : true
250 },
251 {
252 "name" : "ipv4",
253 "id" : 8,
254 "header_type" : "ipv4_t",
255 "metadata" : false,
256 "pi_omit" : true
257 },
258 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800259 "name" : "arp",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200260 "id" : 9,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800261 "header_type" : "arp_t",
262 "metadata" : false,
263 "pi_omit" : true
264 },
265 {
266 "name" : "tcp",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200267 "id" : 10,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800268 "header_type" : "tcp_t",
269 "metadata" : false,
270 "pi_omit" : true
271 },
272 {
273 "name" : "udp",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200274 "id" : 11,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800275 "header_type" : "udp_t",
276 "metadata" : false,
277 "pi_omit" : true
278 },
279 {
280 "name" : "icmp",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200281 "id" : 12,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800282 "header_type" : "icmp_t",
283 "metadata" : false,
284 "pi_omit" : true
285 },
286 {
287 "name" : "packet_out",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200288 "id" : 13,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800289 "header_type" : "packet_out_header_t",
290 "metadata" : false,
291 "pi_omit" : true
292 },
293 {
294 "name" : "packet_in",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200295 "id" : 14,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800296 "header_type" : "packet_in_header_t",
297 "metadata" : false,
298 "pi_omit" : true
299 },
300 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800301 "name" : "userMetadata.spgw",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200302 "id" : 15,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800303 "header_type" : "spgw_meta_t",
304 "metadata" : true,
305 "pi_omit" : true
306 }
307 ],
308 "header_stacks" : [],
309 "header_union_types" : [],
310 "header_unions" : [],
311 "header_union_stacks" : [],
312 "field_lists" : [],
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200313 "errors" : [],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800314 "enums" : [],
315 "parsers" : [
316 {
317 "name" : "parser",
318 "id" : 0,
319 "init_state" : "start",
320 "parse_states" : [
321 {
322 "name" : "start",
323 "id" : 0,
324 "parser_ops" : [],
325 "transitions" : [
326 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800327 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800328 "value" : "0x00ff",
329 "mask" : null,
330 "next_state" : "parse_packet_out"
331 },
332 {
333 "value" : "default",
334 "mask" : null,
335 "next_state" : "parse_ethernet"
336 }
337 ],
338 "transition_key" : [
339 {
340 "type" : "field",
341 "value" : ["standard_metadata", "ingress_port"]
342 }
343 ]
344 },
345 {
346 "name" : "parse_packet_out",
347 "id" : 1,
348 "parser_ops" : [
349 {
350 "parameters" : [
351 {
352 "type" : "regular",
353 "value" : "packet_out"
354 }
355 ],
356 "op" : "extract"
357 }
358 ],
359 "transitions" : [
360 {
361 "value" : "default",
362 "mask" : null,
363 "next_state" : "parse_ethernet"
364 }
365 ],
366 "transition_key" : []
367 },
368 {
369 "name" : "parse_ethernet",
370 "id" : 2,
371 "parser_ops" : [
372 {
373 "parameters" : [
374 {
375 "type" : "regular",
376 "value" : "ethernet"
377 }
378 ],
379 "op" : "extract"
380 },
381 {
382 "parameters" : [
383 {
384 "type" : "field",
385 "value" : ["scalars", "fabric_metadata_t.original_ether_type"]
386 },
387 {
388 "type" : "field",
389 "value" : ["ethernet", "ether_type"]
390 }
391 ],
392 "op" : "set"
393 }
394 ],
395 "transitions" : [
396 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800397 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800398 "value" : "0x8100",
399 "mask" : null,
400 "next_state" : "parse_vlan_tag"
401 },
402 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800403 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800404 "value" : "0x8847",
405 "mask" : null,
406 "next_state" : "parse_mpls"
407 },
408 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800409 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800410 "value" : "0x0806",
411 "mask" : null,
412 "next_state" : "parse_arp"
413 },
414 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800415 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800416 "value" : "0x0800",
417 "mask" : null,
418 "next_state" : "parse_ipv4"
419 },
420 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800421 "value" : "default",
422 "mask" : null,
423 "next_state" : null
424 }
425 ],
426 "transition_key" : [
427 {
428 "type" : "field",
429 "value" : ["ethernet", "ether_type"]
430 }
431 ]
432 },
433 {
434 "name" : "parse_vlan_tag",
435 "id" : 3,
436 "parser_ops" : [
437 {
438 "parameters" : [
439 {
440 "type" : "regular",
441 "value" : "vlan_tag"
442 }
443 ],
444 "op" : "extract"
Yi Tseng20f9e7b2018-05-24 23:27:39 +0800445 },
446 {
447 "parameters" : [
448 {
449 "type" : "field",
450 "value" : ["scalars", "fabric_metadata_t.original_ether_type"]
451 },
452 {
453 "type" : "field",
454 "value" : ["vlan_tag", "ether_type"]
455 }
456 ],
457 "op" : "set"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800458 }
459 ],
460 "transitions" : [
461 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800462 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800463 "value" : "0x0806",
464 "mask" : null,
465 "next_state" : "parse_arp"
466 },
467 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800468 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800469 "value" : "0x0800",
470 "mask" : null,
471 "next_state" : "parse_ipv4"
472 },
473 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800474 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800475 "value" : "0x8847",
476 "mask" : null,
477 "next_state" : "parse_mpls"
478 },
479 {
480 "value" : "default",
481 "mask" : null,
482 "next_state" : null
483 }
484 ],
485 "transition_key" : [
486 {
487 "type" : "field",
488 "value" : ["vlan_tag", "ether_type"]
489 }
490 ]
491 },
492 {
493 "name" : "parse_mpls",
494 "id" : 4,
495 "parser_ops" : [
496 {
497 "parameters" : [
498 {
499 "type" : "regular",
500 "value" : "mpls"
501 }
502 ],
503 "op" : "extract"
504 },
505 {
506 "parameters" : [
507 {
508 "type" : "field",
509 "value" : ["scalars", "tmp"]
510 },
511 {
512 "type" : "lookahead",
513 "value" : [0, 4]
514 }
515 ],
516 "op" : "set"
517 }
518 ],
519 "transitions" : [
520 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800521 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800522 "value" : "0x04",
523 "mask" : null,
524 "next_state" : "parse_ipv4"
525 },
526 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800527 "value" : "default",
528 "mask" : null,
529 "next_state" : "parse_ethernet"
530 }
531 ],
532 "transition_key" : [
533 {
534 "type" : "field",
535 "value" : ["scalars", "tmp"]
536 }
537 ]
538 },
539 {
540 "name" : "parse_ipv4",
541 "id" : 5,
542 "parser_ops" : [
543 {
544 "parameters" : [
545 {
546 "type" : "regular",
547 "value" : "ipv4"
548 }
549 ],
550 "op" : "extract"
551 },
552 {
553 "parameters" : [
554 {
555 "type" : "field",
556 "value" : ["scalars", "fabric_metadata_t.ip_proto"]
557 },
558 {
559 "type" : "field",
560 "value" : ["ipv4", "protocol"]
561 }
562 ],
563 "op" : "set"
564 }
565 ],
566 "transitions" : [
567 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800568 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800569 "value" : "0x06",
570 "mask" : null,
571 "next_state" : "parse_tcp"
572 },
573 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800574 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800575 "value" : "0x11",
576 "mask" : null,
577 "next_state" : "parse_udp"
578 },
579 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800580 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800581 "value" : "0x01",
582 "mask" : null,
583 "next_state" : "parse_icmp"
584 },
585 {
586 "value" : "default",
587 "mask" : null,
588 "next_state" : null
589 }
590 ],
591 "transition_key" : [
592 {
593 "type" : "field",
594 "value" : ["ipv4", "protocol"]
595 }
596 ]
597 },
598 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800599 "name" : "parse_arp",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200600 "id" : 6,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800601 "parser_ops" : [
602 {
603 "parameters" : [
604 {
605 "type" : "regular",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800606 "value" : "arp"
607 }
608 ],
609 "op" : "extract"
610 }
611 ],
612 "transitions" : [
613 {
614 "value" : "default",
615 "mask" : null,
616 "next_state" : null
617 }
618 ],
619 "transition_key" : []
620 },
621 {
622 "name" : "parse_tcp",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200623 "id" : 7,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800624 "parser_ops" : [
625 {
626 "parameters" : [
627 {
628 "type" : "regular",
629 "value" : "tcp"
630 }
631 ],
632 "op" : "extract"
633 },
634 {
635 "parameters" : [
636 {
637 "type" : "field",
638 "value" : ["scalars", "fabric_metadata_t.l4_src_port"]
639 },
640 {
641 "type" : "field",
642 "value" : ["tcp", "src_port"]
643 }
644 ],
645 "op" : "set"
646 },
647 {
648 "parameters" : [
649 {
650 "type" : "field",
651 "value" : ["scalars", "fabric_metadata_t.l4_dst_port"]
652 },
653 {
654 "type" : "field",
655 "value" : ["tcp", "dst_port"]
656 }
657 ],
658 "op" : "set"
659 }
660 ],
661 "transitions" : [
662 {
663 "value" : "default",
664 "mask" : null,
665 "next_state" : null
666 }
667 ],
668 "transition_key" : []
669 },
670 {
671 "name" : "parse_udp",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200672 "id" : 8,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800673 "parser_ops" : [
674 {
675 "parameters" : [
676 {
677 "type" : "regular",
678 "value" : "udp"
679 }
680 ],
681 "op" : "extract"
682 },
683 {
684 "parameters" : [
685 {
686 "type" : "field",
687 "value" : ["scalars", "fabric_metadata_t.l4_src_port"]
688 },
689 {
690 "type" : "field",
691 "value" : ["udp", "src_port"]
692 }
693 ],
694 "op" : "set"
695 },
696 {
697 "parameters" : [
698 {
699 "type" : "field",
700 "value" : ["scalars", "fabric_metadata_t.l4_dst_port"]
701 },
702 {
703 "type" : "field",
704 "value" : ["udp", "dst_port"]
705 }
706 ],
707 "op" : "set"
708 }
709 ],
710 "transitions" : [
711 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800712 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800713 "value" : "0x0868",
714 "mask" : null,
715 "next_state" : "parse_gtpu"
716 },
717 {
718 "value" : "default",
719 "mask" : null,
720 "next_state" : null
721 }
722 ],
723 "transition_key" : [
724 {
725 "type" : "field",
726 "value" : ["udp", "dst_port"]
727 }
728 ]
729 },
730 {
731 "name" : "parse_icmp",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200732 "id" : 9,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800733 "parser_ops" : [
734 {
735 "parameters" : [
736 {
737 "type" : "regular",
738 "value" : "icmp"
739 }
740 ],
741 "op" : "extract"
742 }
743 ],
744 "transitions" : [
745 {
746 "value" : "default",
747 "mask" : null,
748 "next_state" : null
749 }
750 ],
751 "transition_key" : []
752 },
753 {
754 "name" : "parse_gtpu",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200755 "id" : 10,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800756 "parser_ops" : [
757 {
758 "parameters" : [
759 {
760 "type" : "regular",
761 "value" : "gtpu"
762 }
763 ],
764 "op" : "extract"
765 },
766 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800767 "parameters" : [
768 {
769 "type" : "regular",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -0800770 "value" : "gtpu_ipv4"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800771 }
772 ],
773 "op" : "extract"
774 }
775 ],
776 "transitions" : [
777 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800778 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800779 "value" : "0x06",
780 "mask" : null,
781 "next_state" : "parse_tcp"
782 },
783 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800784 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800785 "value" : "0x11",
786 "mask" : null,
787 "next_state" : "parse_udp_inner"
788 },
789 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800790 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800791 "value" : "0x01",
792 "mask" : null,
793 "next_state" : "parse_icmp"
794 },
795 {
796 "value" : "default",
797 "mask" : null,
798 "next_state" : null
799 }
800 ],
801 "transition_key" : [
802 {
803 "type" : "field",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -0800804 "value" : ["gtpu_ipv4", "protocol"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800805 }
806 ]
807 },
808 {
809 "name" : "parse_udp_inner",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200810 "id" : 11,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800811 "parser_ops" : [
812 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800813 "parameters" : [
814 {
815 "type" : "regular",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -0800816 "value" : "gtpu_udp"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800817 }
818 ],
819 "op" : "extract"
820 },
821 {
822 "parameters" : [
823 {
824 "type" : "field",
825 "value" : ["scalars", "fabric_metadata_t.l4_src_port"]
826 },
827 {
828 "type" : "field",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -0800829 "value" : ["gtpu_udp", "src_port"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800830 }
831 ],
832 "op" : "set"
833 },
834 {
835 "parameters" : [
836 {
837 "type" : "field",
838 "value" : ["scalars", "fabric_metadata_t.l4_dst_port"]
839 },
840 {
841 "type" : "field",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -0800842 "value" : ["gtpu_udp", "dst_port"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800843 }
844 ],
845 "op" : "set"
846 }
847 ],
848 "transitions" : [
849 {
850 "value" : "default",
851 "mask" : null,
852 "next_state" : null
853 }
854 ],
855 "transition_key" : []
856 }
857 ]
858 }
859 ],
Yi Tseng27b9bc02018-04-12 14:52:40 +0800860 "parse_vsets" : [],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800861 "deparsers" : [
862 {
863 "name" : "deparser",
864 "id" : 0,
865 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +0800866 "filename" : "./include/parser.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +0800867 "line" : 165,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800868 "column" : 8,
869 "source_fragment" : "FabricDeparser"
870 },
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200871 "order" : ["packet_in", "ethernet", "vlan_tag", "mpls", "arp", "gtpu_ipv4", "gtpu_udp", "gtpu", "ipv4", "tcp", "udp", "icmp"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800872 }
873 ],
874 "meter_arrays" : [],
875 "counter_arrays" : [
876 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800877 "name" : "FabricIngress.spgw_ingress.ue_counter",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800878 "id" : 0,
879 "is_direct" : true,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800880 "binding" : "FabricIngress.spgw_ingress.ue_cdr_table"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800881 },
882 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800883 "name" : "FabricIngress.filtering.ingress_port_vlan_counter",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800884 "id" : 1,
885 "is_direct" : true,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800886 "binding" : "FabricIngress.filtering.ingress_port_vlan"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800887 },
888 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800889 "name" : "FabricIngress.filtering.fwd_classifier_counter",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800890 "id" : 2,
891 "is_direct" : true,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800892 "binding" : "FabricIngress.filtering.fwd_classifier"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800893 },
894 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800895 "name" : "FabricIngress.forwarding.bridging_counter",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800896 "id" : 3,
897 "is_direct" : true,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800898 "binding" : "FabricIngress.forwarding.bridging"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800899 },
900 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800901 "name" : "FabricIngress.forwarding.mpls_counter",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800902 "id" : 4,
903 "is_direct" : true,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800904 "binding" : "FabricIngress.forwarding.mpls"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800905 },
906 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800907 "name" : "FabricIngress.forwarding.unicast_v4_counter",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800908 "id" : 5,
909 "is_direct" : true,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800910 "binding" : "FabricIngress.forwarding.unicast_v4"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800911 },
912 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800913 "name" : "FabricIngress.forwarding.acl_counter",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -0800914 "id" : 6,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800915 "is_direct" : true,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800916 "binding" : "FabricIngress.forwarding.acl"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800917 },
918 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +0800919 "name" : "FabricIngress.next.vlan_meta_counter",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200920 "id" : 7,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800921 "is_direct" : true,
Yi Tseng20f9e7b2018-05-24 23:27:39 +0800922 "binding" : "FabricIngress.next.vlan_meta"
923 },
924 {
925 "name" : "FabricIngress.next.simple_counter",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200926 "id" : 8,
Yi Tseng20f9e7b2018-05-24 23:27:39 +0800927 "is_direct" : true,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800928 "binding" : "FabricIngress.next.simple"
929 },
930 {
931 "name" : "FabricIngress.next.hashed_counter",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200932 "id" : 9,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800933 "is_direct" : true,
934 "binding" : "FabricIngress.next.hashed"
935 },
936 {
Esin Karaman971fb7f2017-12-28 13:44:52 +0000937 "name" : "FabricIngress.next.multicast_counter",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200938 "id" : 10,
Esin Karaman971fb7f2017-12-28 13:44:52 +0000939 "is_direct" : true,
940 "binding" : "FabricIngress.next.multicast"
941 },
942 {
943 "name" : "FabricIngress.port_counters_control.egress_port_counter",
944 "id" : 11,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800945 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +0800946 "filename" : "./include/control/port_counter.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800947 "line" : 23,
Yi Tseng3d3956d2018-01-31 17:28:05 -0800948 "column" : 48,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800949 "source_fragment" : "egress_port_counter"
950 },
951 "size" : 511,
952 "is_direct" : false
953 },
954 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800955 "name" : "FabricIngress.port_counters_control.ingress_port_counter",
Esin Karaman971fb7f2017-12-28 13:44:52 +0000956 "id" : 12,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800957 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +0800958 "filename" : "./include/control/port_counter.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800959 "line" : 24,
Yi Tseng3d3956d2018-01-31 17:28:05 -0800960 "column" : 48,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800961 "source_fragment" : "ingress_port_counter"
962 },
963 "size" : 511,
964 "is_direct" : false
Yi Tseng47eac892018-07-11 02:17:04 +0800965 },
966 {
967 "name" : "FabricEgress.egress_next.egress_vlan_counter",
968 "id" : 13,
969 "is_direct" : true,
970 "binding" : "FabricEgress.egress_next.egress_vlan"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800971 }
972 ],
973 "register_arrays" : [],
974 "calculations" : [
975 {
976 "name" : "calc",
977 "id" : 0,
978 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +0800979 "filename" : "./include/checksum.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800980 "line" : 28,
981 "column" : 8,
982 "source_fragment" : "update_checksum(hdr.ipv4.isValid(), ..."
983 },
984 "algo" : "csum16",
985 "input" : [
986 {
987 "type" : "field",
988 "value" : ["ipv4", "version"]
989 },
990 {
991 "type" : "field",
992 "value" : ["ipv4", "ihl"]
993 },
994 {
995 "type" : "field",
996 "value" : ["ipv4", "diffserv"]
997 },
998 {
999 "type" : "field",
1000 "value" : ["ipv4", "total_len"]
1001 },
1002 {
1003 "type" : "field",
1004 "value" : ["ipv4", "identification"]
1005 },
1006 {
1007 "type" : "field",
1008 "value" : ["ipv4", "flags"]
1009 },
1010 {
1011 "type" : "field",
1012 "value" : ["ipv4", "frag_offset"]
1013 },
1014 {
1015 "type" : "field",
1016 "value" : ["ipv4", "ttl"]
1017 },
1018 {
1019 "type" : "field",
1020 "value" : ["ipv4", "protocol"]
1021 },
1022 {
1023 "type" : "field",
1024 "value" : ["ipv4", "src_addr"]
1025 },
1026 {
1027 "type" : "field",
1028 "value" : ["ipv4", "dst_addr"]
1029 }
1030 ]
1031 },
1032 {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001033 "name" : "calc_0",
1034 "id" : 1,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001035 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08001036 "filename" : "./include/control/../spgw.p4",
Yi Tseng27b9bc02018-04-12 14:52:40 +08001037 "line" : 296,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001038 "column" : 8,
1039 "source_fragment" : "update_checksum(gtpu_ipv4.isValid(), ..."
1040 },
1041 "algo" : "csum16",
1042 "input" : [
1043 {
1044 "type" : "field",
1045 "value" : ["gtpu_ipv4", "version"]
1046 },
1047 {
1048 "type" : "field",
1049 "value" : ["gtpu_ipv4", "ihl"]
1050 },
1051 {
1052 "type" : "field",
1053 "value" : ["gtpu_ipv4", "diffserv"]
1054 },
1055 {
1056 "type" : "field",
1057 "value" : ["gtpu_ipv4", "total_len"]
1058 },
1059 {
1060 "type" : "field",
1061 "value" : ["gtpu_ipv4", "identification"]
1062 },
1063 {
1064 "type" : "field",
1065 "value" : ["gtpu_ipv4", "flags"]
1066 },
1067 {
1068 "type" : "field",
1069 "value" : ["gtpu_ipv4", "frag_offset"]
1070 },
1071 {
1072 "type" : "field",
1073 "value" : ["gtpu_ipv4", "ttl"]
1074 },
1075 {
1076 "type" : "field",
1077 "value" : ["gtpu_ipv4", "protocol"]
1078 },
1079 {
1080 "type" : "field",
1081 "value" : ["gtpu_ipv4", "src_addr"]
1082 },
1083 {
1084 "type" : "field",
1085 "value" : ["gtpu_ipv4", "dst_addr"]
1086 }
1087 ]
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001088 },
1089 {
1090 "name" : "calc_1",
1091 "id" : 2,
1092 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08001093 "filename" : "./include/checksum.p4",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001094 "line" : 56,
1095 "column" : 8,
1096 "source_fragment" : "verify_checksum(hdr.ipv4.isValid(), ..."
1097 },
1098 "algo" : "csum16",
1099 "input" : [
1100 {
1101 "type" : "field",
1102 "value" : ["ipv4", "version"]
1103 },
1104 {
1105 "type" : "field",
1106 "value" : ["ipv4", "ihl"]
1107 },
1108 {
1109 "type" : "field",
1110 "value" : ["ipv4", "diffserv"]
1111 },
1112 {
1113 "type" : "field",
1114 "value" : ["ipv4", "total_len"]
1115 },
1116 {
1117 "type" : "field",
1118 "value" : ["ipv4", "identification"]
1119 },
1120 {
1121 "type" : "field",
1122 "value" : ["ipv4", "flags"]
1123 },
1124 {
1125 "type" : "field",
1126 "value" : ["ipv4", "frag_offset"]
1127 },
1128 {
1129 "type" : "field",
1130 "value" : ["ipv4", "ttl"]
1131 },
1132 {
1133 "type" : "field",
1134 "value" : ["ipv4", "protocol"]
1135 },
1136 {
1137 "type" : "field",
1138 "value" : ["ipv4", "src_addr"]
1139 },
1140 {
1141 "type" : "field",
1142 "value" : ["ipv4", "dst_addr"]
1143 }
1144 ]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001145 }
1146 ],
1147 "learn_lists" : [],
1148 "actions" : [
1149 {
1150 "name" : "NoAction",
1151 "id" : 0,
1152 "runtime_data" : [],
1153 "primitives" : []
1154 },
1155 {
1156 "name" : "NoAction",
1157 "id" : 1,
1158 "runtime_data" : [],
1159 "primitives" : []
1160 },
1161 {
1162 "name" : "NoAction",
1163 "id" : 2,
1164 "runtime_data" : [],
1165 "primitives" : []
1166 },
1167 {
1168 "name" : "NoAction",
1169 "id" : 3,
1170 "runtime_data" : [],
1171 "primitives" : []
1172 },
1173 {
1174 "name" : "NoAction",
1175 "id" : 4,
1176 "runtime_data" : [],
1177 "primitives" : []
1178 },
1179 {
1180 "name" : "NoAction",
1181 "id" : 5,
1182 "runtime_data" : [],
1183 "primitives" : []
1184 },
1185 {
1186 "name" : "NoAction",
1187 "id" : 6,
1188 "runtime_data" : [],
1189 "primitives" : []
1190 },
1191 {
1192 "name" : "NoAction",
1193 "id" : 7,
1194 "runtime_data" : [],
1195 "primitives" : []
1196 },
1197 {
1198 "name" : "NoAction",
1199 "id" : 8,
1200 "runtime_data" : [],
1201 "primitives" : []
1202 },
1203 {
Esin Karaman971fb7f2017-12-28 13:44:52 +00001204 "name" : "NoAction",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001205 "id" : 9,
1206 "runtime_data" : [],
1207 "primitives" : []
1208 },
1209 {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001210 "name" : "nop",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001211 "id" : 10,
1212 "runtime_data" : [],
1213 "primitives" : []
1214 },
1215 {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001216 "name" : "nop",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001217 "id" : 11,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001218 "runtime_data" : [],
Yi Tseng27b9bc02018-04-12 14:52:40 +08001219 "primitives" : []
1220 },
1221 {
Esin Karaman971fb7f2017-12-28 13:44:52 +00001222 "name" : "nop",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001223 "id" : 12,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001224 "runtime_data" : [],
Esin Karaman971fb7f2017-12-28 13:44:52 +00001225 "primitives" : []
1226 },
1227 {
1228 "name" : "FabricIngress.spgw_ingress.drop_now",
1229 "id" : 13,
1230 "runtime_data" : [],
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001231 "primitives" : [
1232 {
1233 "op" : "drop",
1234 "parameters" : [],
1235 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08001236 "filename" : "./include/control/../spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001237 "line" : 33,
1238 "column" : 8,
1239 "source_fragment" : "mark_to_drop()"
1240 }
1241 },
1242 {
1243 "op" : "exit",
1244 "parameters" : [],
1245 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08001246 "filename" : "./include/control/../spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001247 "line" : 34,
1248 "column" : 8,
1249 "source_fragment" : "exit"
1250 }
1251 }
1252 ]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001253 },
1254 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001255 "name" : "FabricIngress.spgw_ingress.gtpu_decap",
Esin Karaman971fb7f2017-12-28 13:44:52 +00001256 "id" : 14,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001257 "runtime_data" : [],
1258 "primitives" : [
1259 {
1260 "op" : "remove_header",
1261 "parameters" : [
1262 {
1263 "type" : "header",
1264 "value" : "gtpu_ipv4"
1265 }
1266 ],
1267 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08001268 "filename" : "./include/control/../spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001269 "line" : 38,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001270 "column" : 8,
1271 "source_fragment" : "gtpu_ipv4.setInvalid()"
1272 }
1273 },
1274 {
1275 "op" : "remove_header",
1276 "parameters" : [
1277 {
1278 "type" : "header",
1279 "value" : "gtpu_udp"
1280 }
1281 ],
1282 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08001283 "filename" : "./include/control/../spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001284 "line" : 39,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001285 "column" : 8,
1286 "source_fragment" : "gtpu_udp.setInvalid()"
1287 }
1288 },
1289 {
1290 "op" : "remove_header",
1291 "parameters" : [
1292 {
1293 "type" : "header",
1294 "value" : "gtpu"
1295 }
1296 ],
1297 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08001298 "filename" : "./include/control/../spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001299 "line" : 40,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001300 "column" : 8,
1301 "source_fragment" : "gtpu.setInvalid()"
1302 }
1303 }
1304 ]
1305 },
1306 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001307 "name" : "FabricIngress.spgw_ingress.set_dl_sess_info",
Esin Karaman971fb7f2017-12-28 13:44:52 +00001308 "id" : 15,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001309 "runtime_data" : [
1310 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001311 "name" : "teid",
1312 "bitwidth" : 32
1313 },
1314 {
1315 "name" : "s1u_enb_addr",
1316 "bitwidth" : 32
1317 },
1318 {
1319 "name" : "s1u_sgw_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001320 "bitwidth" : 32
1321 }
1322 ],
1323 "primitives" : [
1324 {
1325 "op" : "assign",
1326 "parameters" : [
1327 {
1328 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08001329 "value" : ["userMetadata.spgw", "teid"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001330 },
1331 {
1332 "type" : "runtime_data",
1333 "value" : 0
1334 }
1335 ],
1336 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08001337 "filename" : "./include/control/../spgw.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001338 "line" : 46,
1339 "column" : 8,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001340 "source_fragment" : "spgw_meta.teid = teid"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001341 }
1342 },
1343 {
1344 "op" : "assign",
1345 "parameters" : [
1346 {
1347 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08001348 "value" : ["userMetadata.spgw", "s1u_enb_addr"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001349 },
1350 {
1351 "type" : "runtime_data",
1352 "value" : 1
1353 }
1354 ],
1355 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08001356 "filename" : "./include/control/../spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001357 "line" : 47,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001358 "column" : 8,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001359 "source_fragment" : "spgw_meta.s1u_enb_addr = s1u_enb_addr"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001360 }
1361 },
1362 {
1363 "op" : "assign",
1364 "parameters" : [
1365 {
1366 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08001367 "value" : ["userMetadata.spgw", "s1u_sgw_addr"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001368 },
1369 {
1370 "type" : "runtime_data",
1371 "value" : 2
1372 }
1373 ],
1374 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08001375 "filename" : "./include/control/../spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001376 "line" : 48,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001377 "column" : 8,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001378 "source_fragment" : "spgw_meta.s1u_sgw_addr = s1u_sgw_addr"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001379 }
1380 }
1381 ]
1382 },
1383 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001384 "name" : "FabricIngress.spgw_ingress.update_ue_cdr",
Esin Karaman971fb7f2017-12-28 13:44:52 +00001385 "id" : 16,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001386 "runtime_data" : [],
1387 "primitives" : []
1388 },
1389 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001390 "name" : "FabricIngress.filtering.drop",
Esin Karaman971fb7f2017-12-28 13:44:52 +00001391 "id" : 17,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001392 "runtime_data" : [],
1393 "primitives" : [
1394 {
1395 "op" : "drop",
1396 "parameters" : [],
1397 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08001398 "filename" : "./include/control/filtering.p4",
1399 "line" : 37,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001400 "column" : 8,
1401 "source_fragment" : "mark_to_drop()"
1402 }
1403 }
1404 ]
1405 },
1406 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001407 "name" : "FabricIngress.filtering.set_vlan",
Esin Karaman971fb7f2017-12-28 13:44:52 +00001408 "id" : 18,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001409 "runtime_data" : [
1410 {
1411 "name" : "new_vlan_id",
1412 "bitwidth" : 12
1413 }
1414 ],
1415 "primitives" : [
1416 {
1417 "op" : "assign",
1418 "parameters" : [
1419 {
1420 "type" : "field",
1421 "value" : ["vlan_tag", "vlan_id"]
1422 },
1423 {
1424 "type" : "runtime_data",
1425 "value" : 0
1426 }
1427 ],
1428 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08001429 "filename" : "./include/control/filtering.p4",
1430 "line" : 42,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001431 "column" : 8,
1432 "source_fragment" : "hdr.vlan_tag.vlan_id = new_vlan_id"
1433 }
1434 }
1435 ]
1436 },
1437 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001438 "name" : "FabricIngress.filtering.push_internal_vlan",
Esin Karaman971fb7f2017-12-28 13:44:52 +00001439 "id" : 19,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001440 "runtime_data" : [
1441 {
1442 "name" : "new_vlan_id",
1443 "bitwidth" : 12
1444 }
1445 ],
1446 "primitives" : [
1447 {
1448 "op" : "add_header",
1449 "parameters" : [
1450 {
1451 "type" : "header",
1452 "value" : "vlan_tag"
1453 }
1454 ],
1455 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08001456 "filename" : "./include/control/filtering.p4",
1457 "line" : 49,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001458 "column" : 8,
1459 "source_fragment" : "hdr.vlan_tag.setValid()"
1460 }
1461 },
1462 {
1463 "op" : "assign",
1464 "parameters" : [
1465 {
1466 "type" : "field",
1467 "value" : ["vlan_tag", "cfi"]
1468 },
1469 {
1470 "type" : "hexstr",
1471 "value" : "0x00"
1472 }
1473 ],
1474 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08001475 "filename" : "./include/control/filtering.p4",
1476 "line" : 50,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001477 "column" : 8,
1478 "source_fragment" : "hdr.vlan_tag.cfi = 0"
1479 }
1480 },
1481 {
1482 "op" : "assign",
1483 "parameters" : [
1484 {
1485 "type" : "field",
1486 "value" : ["vlan_tag", "pri"]
1487 },
1488 {
1489 "type" : "hexstr",
1490 "value" : "0x00"
1491 }
1492 ],
1493 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08001494 "filename" : "./include/control/filtering.p4",
1495 "line" : 51,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001496 "column" : 8,
1497 "source_fragment" : "hdr.vlan_tag.pri = 0"
1498 }
1499 },
1500 {
1501 "op" : "assign",
1502 "parameters" : [
1503 {
1504 "type" : "field",
1505 "value" : ["vlan_tag", "ether_type"]
1506 },
1507 {
1508 "type" : "field",
1509 "value" : ["ethernet", "ether_type"]
1510 }
1511 ],
1512 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08001513 "filename" : "./include/control/filtering.p4",
1514 "line" : 52,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001515 "column" : 8,
1516 "source_fragment" : "hdr.vlan_tag.ether_type = hdr.ethernet.ether_type"
1517 }
1518 },
1519 {
1520 "op" : "assign",
1521 "parameters" : [
1522 {
1523 "type" : "field",
1524 "value" : ["ethernet", "ether_type"]
1525 },
1526 {
1527 "type" : "hexstr",
1528 "value" : "0x8100"
1529 }
1530 ],
1531 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08001532 "filename" : "./include/control/../define.p4",
Carmelo Cascone228092b2018-06-15 20:41:10 +02001533 "line" : 66,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001534 "column" : 31,
1535 "source_fragment" : "0x8100; ..."
1536 }
1537 },
1538 {
1539 "op" : "assign",
1540 "parameters" : [
1541 {
1542 "type" : "field",
1543 "value" : ["vlan_tag", "vlan_id"]
1544 },
1545 {
1546 "type" : "runtime_data",
1547 "value" : 0
1548 }
1549 ],
1550 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08001551 "filename" : "./include/control/filtering.p4",
1552 "line" : 54,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001553 "column" : 8,
Yi Tseng47eac892018-07-11 02:17:04 +08001554 "source_fragment" : "hdr.vlan_tag.vlan_id = new_vlan_id"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001555 }
1556 },
1557 {
1558 "op" : "assign",
1559 "parameters" : [
1560 {
1561 "type" : "field",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001562 "value" : ["scalars", "fabric_metadata_t.pop_vlan_when_packet_in"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001563 },
1564 {
1565 "type" : "expression",
1566 "value" : {
1567 "type" : "expression",
1568 "value" : {
1569 "op" : "b2d",
1570 "left" : null,
1571 "right" : {
1572 "type" : "bool",
1573 "value" : true
1574 }
1575 }
1576 }
1577 }
1578 ],
1579 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08001580 "filename" : "./include/control/filtering.p4",
1581 "line" : 57,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001582 "column" : 8,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001583 "source_fragment" : "fabric_metadata.pop_vlan_when_packet_in = true"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001584 }
1585 }
1586 ]
1587 },
1588 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001589 "name" : "FabricIngress.filtering.set_forwarding_type",
Esin Karaman971fb7f2017-12-28 13:44:52 +00001590 "id" : 20,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001591 "runtime_data" : [
1592 {
1593 "name" : "fwd_type",
1594 "bitwidth" : 3
1595 }
1596 ],
1597 "primitives" : [
1598 {
1599 "op" : "assign",
1600 "parameters" : [
1601 {
1602 "type" : "field",
1603 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
1604 },
1605 {
1606 "type" : "runtime_data",
1607 "value" : 0
1608 }
1609 ],
1610 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08001611 "filename" : "./include/control/filtering.p4",
1612 "line" : 94,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001613 "column" : 8,
1614 "source_fragment" : "fabric_metadata.fwd_type = fwd_type"
1615 }
1616 }
1617 ]
1618 },
1619 {
Yi Tseng47eac892018-07-11 02:17:04 +08001620 "name" : "FabricIngress.forwarding.set_next_id_bridging",
Esin Karaman971fb7f2017-12-28 13:44:52 +00001621 "id" : 21,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001622 "runtime_data" : [
1623 {
1624 "name" : "next_id",
1625 "bitwidth" : 32
1626 }
1627 ],
1628 "primitives" : [
1629 {
1630 "op" : "assign",
1631 "parameters" : [
1632 {
1633 "type" : "field",
1634 "value" : ["scalars", "fabric_metadata_t.next_id"]
1635 },
1636 {
1637 "type" : "runtime_data",
1638 "value" : 0
1639 }
1640 ],
1641 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08001642 "filename" : "./include/control/forwarding.p4",
1643 "line" : 37,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001644 "column" : 8,
1645 "source_fragment" : "fabric_metadata.next_id = next_id"
1646 }
1647 }
1648 ]
1649 },
1650 {
Yi Tseng47eac892018-07-11 02:17:04 +08001651 "name" : "FabricIngress.forwarding.pop_mpls_and_next",
1652 "id" : 22,
1653 "runtime_data" : [
1654 {
1655 "name" : "next_id",
1656 "bitwidth" : 32
1657 }
1658 ],
1659 "primitives" : [
1660 {
1661 "op" : "remove_header",
1662 "parameters" : [
1663 {
1664 "type" : "header",
1665 "value" : "mpls"
1666 }
1667 ],
1668 "source_info" : {
1669 "filename" : "./include/control/forwarding.p4",
1670 "line" : 60,
1671 "column" : 8,
1672 "source_fragment" : "hdr.mpls.setInvalid()"
1673 }
1674 },
1675 {
1676 "op" : "assign",
1677 "parameters" : [
1678 {
1679 "type" : "field",
1680 "value" : ["scalars", "fabric_metadata_t.next_id"]
1681 },
1682 {
1683 "type" : "runtime_data",
1684 "value" : 0
1685 }
1686 ],
1687 "source_info" : {
1688 "filename" : "./include/control/forwarding.p4",
1689 "line" : 61,
1690 "column" : 8,
1691 "source_fragment" : "fabric_metadata.next_id = next_id"
1692 }
1693 }
1694 ]
1695 },
1696 {
1697 "name" : "FabricIngress.forwarding.set_next_id_unicast_v4",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001698 "id" : 23,
Yi Tseng27b9bc02018-04-12 14:52:40 +08001699 "runtime_data" : [
1700 {
1701 "name" : "next_id",
1702 "bitwidth" : 32
1703 }
1704 ],
1705 "primitives" : [
1706 {
1707 "op" : "assign",
1708 "parameters" : [
1709 {
1710 "type" : "field",
1711 "value" : ["scalars", "fabric_metadata_t.next_id"]
1712 },
1713 {
1714 "type" : "runtime_data",
1715 "value" : 0
1716 }
1717 ],
1718 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08001719 "filename" : "./include/control/forwarding.p4",
1720 "line" : 83,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001721 "column" : 8,
1722 "source_fragment" : "fabric_metadata.next_id = next_id"
1723 }
1724 }
1725 ]
1726 },
1727 {
Yi Tseng47eac892018-07-11 02:17:04 +08001728 "name" : "FabricIngress.forwarding.set_next_id_acl",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001729 "id" : 24,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001730 "runtime_data" : [
1731 {
1732 "name" : "next_id",
1733 "bitwidth" : 32
1734 }
1735 ],
1736 "primitives" : [
1737 {
Esin Karaman971fb7f2017-12-28 13:44:52 +00001738 "op" : "assign",
1739 "parameters" : [
1740 {
1741 "type" : "field",
1742 "value" : ["scalars", "fabric_metadata_t.next_id"]
1743 },
1744 {
1745 "type" : "runtime_data",
1746 "value" : 0
1747 }
1748 ],
1749 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08001750 "filename" : "./include/control/forwarding.p4",
1751 "line" : 105,
Esin Karaman971fb7f2017-12-28 13:44:52 +00001752 "column" : 8,
1753 "source_fragment" : "fabric_metadata.next_id = next_id"
1754 }
1755 }
1756 ]
1757 },
1758 {
Yi Tseng47eac892018-07-11 02:17:04 +08001759 "name" : "FabricIngress.forwarding.send_to_controller",
Esin Karaman971fb7f2017-12-28 13:44:52 +00001760 "id" : 25,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001761 "runtime_data" : [],
1762 "primitives" : [
1763 {
1764 "op" : "assign",
1765 "parameters" : [
1766 {
1767 "type" : "field",
1768 "value" : ["standard_metadata", "egress_spec"]
1769 },
1770 {
1771 "type" : "hexstr",
1772 "value" : "0x00ff"
1773 }
1774 ],
1775 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08001776 "filename" : "./include/control/forwarding.p4",
1777 "line" : 110,
Carmelo Casconeb531b682018-01-30 17:55:56 -08001778 "column" : 8,
1779 "source_fragment" : "standard_metadata.egress_spec = 255"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001780 }
1781 }
1782 ]
1783 },
1784 {
Yi Tseng47eac892018-07-11 02:17:04 +08001785 "name" : "FabricIngress.forwarding.drop",
1786 "id" : 26,
1787 "runtime_data" : [],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001788 "primitives" : [
1789 {
Yi Tseng47eac892018-07-11 02:17:04 +08001790 "op" : "drop",
1791 "parameters" : [],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001792 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08001793 "filename" : "./include/control/forwarding.p4",
1794 "line" : 115,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001795 "column" : 8,
Yi Tseng47eac892018-07-11 02:17:04 +08001796 "source_fragment" : "mark_to_drop()"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001797 }
1798 }
1799 ]
1800 },
1801 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001802 "name" : "FabricIngress.next.set_vlan",
Yi Tseng47eac892018-07-11 02:17:04 +08001803 "id" : 27,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001804 "runtime_data" : [
1805 {
1806 "name" : "new_vlan_id",
1807 "bitwidth" : 12
1808 }
1809 ],
1810 "primitives" : [
1811 {
1812 "op" : "assign",
1813 "parameters" : [
1814 {
1815 "type" : "field",
1816 "value" : ["vlan_tag", "vlan_id"]
1817 },
1818 {
1819 "type" : "runtime_data",
1820 "value" : 0
1821 }
1822 ],
1823 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08001824 "filename" : "./include/control/next.p4",
1825 "line" : 61,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001826 "column" : 8,
1827 "source_fragment" : "hdr.vlan_tag.vlan_id = new_vlan_id"
1828 }
1829 }
1830 ]
1831 },
1832 {
Yi Tseng47eac892018-07-11 02:17:04 +08001833 "name" : "FabricIngress.next.output_simple",
1834 "id" : 28,
1835 "runtime_data" : [
1836 {
1837 "name" : "port_num",
1838 "bitwidth" : 9
1839 }
1840 ],
1841 "primitives" : [
1842 {
1843 "op" : "assign",
1844 "parameters" : [
1845 {
1846 "type" : "field",
1847 "value" : ["standard_metadata", "egress_spec"]
1848 },
1849 {
1850 "type" : "runtime_data",
1851 "value" : 0
1852 }
1853 ],
1854 "source_info" : {
1855 "filename" : "./include/control/next.p4",
1856 "line" : 85,
1857 "column" : 8,
1858 "source_fragment" : "standard_metadata.egress_spec = port_num"
1859 }
1860 }
1861 ]
1862 },
1863 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001864 "name" : "FabricIngress.next.set_vlan_output",
Esin Karaman971fb7f2017-12-28 13:44:52 +00001865 "id" : 29,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001866 "runtime_data" : [
1867 {
1868 "name" : "new_vlan_id",
1869 "bitwidth" : 12
1870 },
1871 {
1872 "name" : "port_num",
1873 "bitwidth" : 9
1874 }
1875 ],
1876 "primitives" : [
1877 {
1878 "op" : "assign",
1879 "parameters" : [
1880 {
1881 "type" : "field",
1882 "value" : ["vlan_tag", "vlan_id"]
1883 },
1884 {
1885 "type" : "runtime_data",
1886 "value" : 0
1887 }
1888 ],
1889 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08001890 "filename" : "./include/control/next.p4",
1891 "line" : 90,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001892 "column" : 8,
1893 "source_fragment" : "hdr.vlan_tag.vlan_id = new_vlan_id"
1894 }
1895 },
1896 {
1897 "op" : "assign",
1898 "parameters" : [
1899 {
1900 "type" : "field",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001901 "value" : ["standard_metadata", "egress_spec"]
1902 },
1903 {
1904 "type" : "runtime_data",
1905 "value" : 1
1906 }
1907 ],
1908 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08001909 "filename" : "./include/control/next.p4",
1910 "line" : 85,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001911 "column" : 8,
1912 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
1913 }
1914 }
1915 ]
1916 },
1917 {
Yi Tseng47eac892018-07-11 02:17:04 +08001918 "name" : "FabricIngress.next.l3_routing_simple",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001919 "id" : 30,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001920 "runtime_data" : [
1921 {
1922 "name" : "port_num",
1923 "bitwidth" : 9
1924 },
1925 {
1926 "name" : "smac",
1927 "bitwidth" : 48
1928 },
1929 {
1930 "name" : "dmac",
1931 "bitwidth" : 48
1932 }
1933 ],
1934 "primitives" : [
1935 {
1936 "op" : "assign",
1937 "parameters" : [
1938 {
1939 "type" : "field",
1940 "value" : ["ethernet", "src_addr"]
1941 },
1942 {
1943 "type" : "runtime_data",
1944 "value" : 1
1945 }
1946 ],
1947 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08001948 "filename" : "./include/control/next.p4",
1949 "line" : 37,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001950 "column" : 8,
1951 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
1952 }
1953 },
1954 {
1955 "op" : "assign",
1956 "parameters" : [
1957 {
1958 "type" : "field",
1959 "value" : ["ethernet", "dst_addr"]
1960 },
1961 {
1962 "type" : "runtime_data",
1963 "value" : 2
1964 }
1965 ],
1966 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08001967 "filename" : "./include/control/next.p4",
1968 "line" : 41,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001969 "column" : 8,
1970 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
1971 }
1972 },
1973 {
1974 "op" : "assign",
1975 "parameters" : [
1976 {
1977 "type" : "field",
1978 "value" : ["standard_metadata", "egress_spec"]
1979 },
1980 {
1981 "type" : "runtime_data",
1982 "value" : 0
1983 }
1984 ],
1985 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08001986 "filename" : "./include/control/next.p4",
1987 "line" : 85,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001988 "column" : 8,
1989 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
1990 }
1991 }
1992 ]
1993 },
1994 {
Yi Tseng47eac892018-07-11 02:17:04 +08001995 "name" : "FabricIngress.next.mpls_routing_v4_simple",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001996 "id" : 31,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001997 "runtime_data" : [
1998 {
1999 "name" : "port_num",
2000 "bitwidth" : 9
2001 },
2002 {
2003 "name" : "smac",
2004 "bitwidth" : 48
2005 },
2006 {
2007 "name" : "dmac",
2008 "bitwidth" : 48
Yi Tseng47eac892018-07-11 02:17:04 +08002009 },
2010 {
2011 "name" : "label",
2012 "bitwidth" : 20
Esin Karaman971fb7f2017-12-28 13:44:52 +00002013 }
2014 ],
2015 "primitives" : [
2016 {
2017 "op" : "assign",
2018 "parameters" : [
2019 {
2020 "type" : "field",
2021 "value" : ["ethernet", "src_addr"]
2022 },
2023 {
2024 "type" : "runtime_data",
2025 "value" : 1
2026 }
2027 ],
2028 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08002029 "filename" : "./include/control/next.p4",
2030 "line" : 37,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002031 "column" : 8,
2032 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2033 }
2034 },
2035 {
2036 "op" : "assign",
2037 "parameters" : [
2038 {
2039 "type" : "field",
2040 "value" : ["ethernet", "dst_addr"]
2041 },
2042 {
2043 "type" : "runtime_data",
2044 "value" : 2
2045 }
2046 ],
2047 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08002048 "filename" : "./include/control/next.p4",
2049 "line" : 41,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002050 "column" : 8,
2051 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2052 }
2053 },
2054 {
2055 "op" : "assign",
2056 "parameters" : [
2057 {
2058 "type" : "field",
2059 "value" : ["standard_metadata", "egress_spec"]
2060 },
2061 {
2062 "type" : "runtime_data",
2063 "value" : 0
2064 }
2065 ],
2066 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08002067 "filename" : "./include/control/next.p4",
2068 "line" : 85,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002069 "column" : 8,
2070 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2071 }
Yi Tseng47eac892018-07-11 02:17:04 +08002072 },
2073 {
2074 "op" : "add_header",
2075 "parameters" : [
2076 {
2077 "type" : "header",
2078 "value" : "mpls"
2079 }
2080 ],
2081 "source_info" : {
2082 "filename" : "./include/control/next.p4",
2083 "line" : 46,
2084 "column" : 8,
2085 "source_fragment" : "hdr.mpls.setValid()"
2086 }
2087 },
2088 {
2089 "op" : "assign",
2090 "parameters" : [
2091 {
2092 "type" : "field",
2093 "value" : ["vlan_tag", "ether_type"]
2094 },
2095 {
2096 "type" : "hexstr",
2097 "value" : "0x8847"
2098 }
2099 ],
2100 "source_info" : {
2101 "filename" : "./include/control/../define.p4",
2102 "line" : 67,
2103 "column" : 31,
2104 "source_fragment" : "0x8847; ..."
2105 }
2106 },
2107 {
2108 "op" : "assign",
2109 "parameters" : [
2110 {
2111 "type" : "field",
2112 "value" : ["mpls", "label"]
2113 },
2114 {
2115 "type" : "runtime_data",
2116 "value" : 3
2117 }
2118 ],
2119 "source_info" : {
2120 "filename" : "./include/control/next.p4",
2121 "line" : 48,
2122 "column" : 8,
2123 "source_fragment" : "hdr.mpls.label = label; ..."
2124 }
2125 },
2126 {
2127 "op" : "assign",
2128 "parameters" : [
2129 {
2130 "type" : "field",
2131 "value" : ["mpls", "tc"]
2132 },
2133 {
2134 "type" : "hexstr",
2135 "value" : "0x00"
2136 }
2137 ],
2138 "source_info" : {
2139 "filename" : "./include/control/next.p4",
2140 "line" : 49,
2141 "column" : 8,
2142 "source_fragment" : "hdr.mpls.tc = tc; ..."
2143 }
2144 },
2145 {
2146 "op" : "assign",
2147 "parameters" : [
2148 {
2149 "type" : "field",
2150 "value" : ["mpls", "bos"]
2151 },
2152 {
2153 "type" : "hexstr",
2154 "value" : "0x01"
2155 }
2156 ],
2157 "source_info" : {
2158 "filename" : "./include/control/next.p4",
2159 "line" : 50,
2160 "column" : 8,
2161 "source_fragment" : "hdr.mpls.bos = 1w1"
2162 }
2163 },
2164 {
2165 "op" : "assign",
2166 "parameters" : [
2167 {
2168 "type" : "field",
2169 "value" : ["mpls", "ttl"]
2170 },
2171 {
2172 "type" : "hexstr",
2173 "value" : "0x40"
2174 }
2175 ],
2176 "source_info" : {
2177 "filename" : "./include/control/../define.p4",
2178 "line" : 87,
2179 "column" : 32,
2180 "source_fragment" : "64; ..."
2181 }
2182 }
2183 ]
2184 },
2185 {
2186 "name" : "FabricIngress.next.mpls_routing_v6_simple",
2187 "id" : 32,
2188 "runtime_data" : [
2189 {
2190 "name" : "port_num",
2191 "bitwidth" : 9
2192 },
2193 {
2194 "name" : "smac",
2195 "bitwidth" : 48
2196 },
2197 {
2198 "name" : "dmac",
2199 "bitwidth" : 48
2200 },
2201 {
2202 "name" : "label",
2203 "bitwidth" : 20
2204 }
2205 ],
2206 "primitives" : [
2207 {
2208 "op" : "assign",
2209 "parameters" : [
2210 {
2211 "type" : "field",
2212 "value" : ["ethernet", "src_addr"]
2213 },
2214 {
2215 "type" : "runtime_data",
2216 "value" : 1
2217 }
2218 ],
2219 "source_info" : {
2220 "filename" : "./include/control/next.p4",
2221 "line" : 37,
2222 "column" : 8,
2223 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2224 }
2225 },
2226 {
2227 "op" : "assign",
2228 "parameters" : [
2229 {
2230 "type" : "field",
2231 "value" : ["ethernet", "dst_addr"]
2232 },
2233 {
2234 "type" : "runtime_data",
2235 "value" : 2
2236 }
2237 ],
2238 "source_info" : {
2239 "filename" : "./include/control/next.p4",
2240 "line" : 41,
2241 "column" : 8,
2242 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2243 }
2244 },
2245 {
2246 "op" : "assign",
2247 "parameters" : [
2248 {
2249 "type" : "field",
2250 "value" : ["standard_metadata", "egress_spec"]
2251 },
2252 {
2253 "type" : "runtime_data",
2254 "value" : 0
2255 }
2256 ],
2257 "source_info" : {
2258 "filename" : "./include/control/next.p4",
2259 "line" : 85,
2260 "column" : 8,
2261 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2262 }
2263 },
2264 {
2265 "op" : "add_header",
2266 "parameters" : [
2267 {
2268 "type" : "header",
2269 "value" : "mpls"
2270 }
2271 ],
2272 "source_info" : {
2273 "filename" : "./include/control/next.p4",
2274 "line" : 46,
2275 "column" : 8,
2276 "source_fragment" : "hdr.mpls.setValid()"
2277 }
2278 },
2279 {
2280 "op" : "assign",
2281 "parameters" : [
2282 {
2283 "type" : "field",
2284 "value" : ["vlan_tag", "ether_type"]
2285 },
2286 {
2287 "type" : "hexstr",
2288 "value" : "0x8847"
2289 }
2290 ],
2291 "source_info" : {
2292 "filename" : "./include/control/../define.p4",
2293 "line" : 67,
2294 "column" : 31,
2295 "source_fragment" : "0x8847; ..."
2296 }
2297 },
2298 {
2299 "op" : "assign",
2300 "parameters" : [
2301 {
2302 "type" : "field",
2303 "value" : ["mpls", "label"]
2304 },
2305 {
2306 "type" : "runtime_data",
2307 "value" : 3
2308 }
2309 ],
2310 "source_info" : {
2311 "filename" : "./include/control/next.p4",
2312 "line" : 48,
2313 "column" : 8,
2314 "source_fragment" : "hdr.mpls.label = label; ..."
2315 }
2316 },
2317 {
2318 "op" : "assign",
2319 "parameters" : [
2320 {
2321 "type" : "field",
2322 "value" : ["mpls", "tc"]
2323 },
2324 {
2325 "type" : "hexstr",
2326 "value" : "0x00"
2327 }
2328 ],
2329 "source_info" : {
2330 "filename" : "./include/control/next.p4",
2331 "line" : 49,
2332 "column" : 8,
2333 "source_fragment" : "hdr.mpls.tc = tc; ..."
2334 }
2335 },
2336 {
2337 "op" : "assign",
2338 "parameters" : [
2339 {
2340 "type" : "field",
2341 "value" : ["mpls", "bos"]
2342 },
2343 {
2344 "type" : "hexstr",
2345 "value" : "0x01"
2346 }
2347 ],
2348 "source_info" : {
2349 "filename" : "./include/control/next.p4",
2350 "line" : 50,
2351 "column" : 8,
2352 "source_fragment" : "hdr.mpls.bos = 1w1"
2353 }
2354 },
2355 {
2356 "op" : "assign",
2357 "parameters" : [
2358 {
2359 "type" : "field",
2360 "value" : ["mpls", "ttl"]
2361 },
2362 {
2363 "type" : "hexstr",
2364 "value" : "0x40"
2365 }
2366 ],
2367 "source_info" : {
2368 "filename" : "./include/control/../define.p4",
2369 "line" : 87,
2370 "column" : 32,
2371 "source_fragment" : "64; ..."
2372 }
Esin Karaman971fb7f2017-12-28 13:44:52 +00002373 }
2374 ]
2375 },
2376 {
2377 "name" : "FabricIngress.next.l3_routing_vlan",
Yi Tseng47eac892018-07-11 02:17:04 +08002378 "id" : 33,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002379 "runtime_data" : [
2380 {
2381 "name" : "port_num",
2382 "bitwidth" : 9
2383 },
2384 {
2385 "name" : "smac",
2386 "bitwidth" : 48
2387 },
2388 {
2389 "name" : "dmac",
2390 "bitwidth" : 48
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002391 },
2392 {
2393 "name" : "new_vlan_id",
2394 "bitwidth" : 12
2395 }
2396 ],
2397 "primitives" : [
2398 {
2399 "op" : "assign",
2400 "parameters" : [
2401 {
2402 "type" : "field",
2403 "value" : ["ethernet", "src_addr"]
2404 },
2405 {
2406 "type" : "runtime_data",
2407 "value" : 1
2408 }
2409 ],
2410 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08002411 "filename" : "./include/control/next.p4",
2412 "line" : 37,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002413 "column" : 8,
2414 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2415 }
2416 },
2417 {
2418 "op" : "assign",
2419 "parameters" : [
2420 {
2421 "type" : "field",
2422 "value" : ["ethernet", "dst_addr"]
2423 },
2424 {
2425 "type" : "runtime_data",
2426 "value" : 2
2427 }
2428 ],
2429 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08002430 "filename" : "./include/control/next.p4",
2431 "line" : 41,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002432 "column" : 8,
2433 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2434 }
2435 },
2436 {
2437 "op" : "assign",
2438 "parameters" : [
2439 {
2440 "type" : "field",
2441 "value" : ["vlan_tag", "vlan_id"]
2442 },
2443 {
2444 "type" : "runtime_data",
2445 "value" : 3
2446 }
2447 ],
2448 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08002449 "filename" : "./include/control/next.p4",
2450 "line" : 90,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002451 "column" : 8,
2452 "source_fragment" : "hdr.vlan_tag.vlan_id = new_vlan_id; ..."
2453 }
2454 },
2455 {
2456 "op" : "assign",
2457 "parameters" : [
2458 {
2459 "type" : "field",
2460 "value" : ["standard_metadata", "egress_spec"]
2461 },
2462 {
2463 "type" : "runtime_data",
2464 "value" : 0
2465 }
2466 ],
2467 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08002468 "filename" : "./include/control/next.p4",
2469 "line" : 85,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002470 "column" : 8,
2471 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2472 }
2473 }
2474 ]
2475 },
2476 {
Yi Tseng47eac892018-07-11 02:17:04 +08002477 "name" : "FabricIngress.next.l3_routing_hashed",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02002478 "id" : 34,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002479 "runtime_data" : [
2480 {
2481 "name" : "port_num",
2482 "bitwidth" : 9
2483 },
2484 {
2485 "name" : "smac",
2486 "bitwidth" : 48
2487 },
2488 {
2489 "name" : "dmac",
2490 "bitwidth" : 48
2491 }
2492 ],
2493 "primitives" : [
2494 {
2495 "op" : "assign",
2496 "parameters" : [
2497 {
2498 "type" : "field",
2499 "value" : ["ethernet", "src_addr"]
2500 },
2501 {
2502 "type" : "runtime_data",
2503 "value" : 1
2504 }
2505 ],
2506 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08002507 "filename" : "./include/control/next.p4",
2508 "line" : 37,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002509 "column" : 8,
2510 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2511 }
2512 },
2513 {
2514 "op" : "assign",
2515 "parameters" : [
2516 {
2517 "type" : "field",
2518 "value" : ["ethernet", "dst_addr"]
2519 },
2520 {
2521 "type" : "runtime_data",
2522 "value" : 2
2523 }
2524 ],
2525 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08002526 "filename" : "./include/control/next.p4",
2527 "line" : 41,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002528 "column" : 8,
2529 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2530 }
2531 },
2532 {
2533 "op" : "assign",
2534 "parameters" : [
2535 {
2536 "type" : "field",
2537 "value" : ["standard_metadata", "egress_spec"]
2538 },
2539 {
2540 "type" : "runtime_data",
2541 "value" : 0
2542 }
2543 ],
2544 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08002545 "filename" : "./include/control/next.p4",
2546 "line" : 149,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002547 "column" : 8,
2548 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2549 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002550 }
2551 ]
2552 },
2553 {
Yi Tseng47eac892018-07-11 02:17:04 +08002554 "name" : "FabricIngress.next.mpls_routing_v4_hashed",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02002555 "id" : 35,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002556 "runtime_data" : [
2557 {
2558 "name" : "port_num",
2559 "bitwidth" : 9
2560 },
2561 {
2562 "name" : "smac",
2563 "bitwidth" : 48
2564 },
2565 {
2566 "name" : "dmac",
2567 "bitwidth" : 48
2568 },
2569 {
2570 "name" : "label",
2571 "bitwidth" : 20
2572 }
2573 ],
2574 "primitives" : [
2575 {
2576 "op" : "assign",
2577 "parameters" : [
2578 {
2579 "type" : "field",
2580 "value" : ["ethernet", "src_addr"]
2581 },
2582 {
2583 "type" : "runtime_data",
2584 "value" : 1
2585 }
2586 ],
2587 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08002588 "filename" : "./include/control/next.p4",
2589 "line" : 37,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002590 "column" : 8,
2591 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2592 }
2593 },
2594 {
2595 "op" : "assign",
2596 "parameters" : [
2597 {
2598 "type" : "field",
2599 "value" : ["ethernet", "dst_addr"]
2600 },
2601 {
2602 "type" : "runtime_data",
2603 "value" : 2
2604 }
2605 ],
2606 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08002607 "filename" : "./include/control/next.p4",
2608 "line" : 41,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002609 "column" : 8,
2610 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2611 }
2612 },
2613 {
2614 "op" : "assign",
2615 "parameters" : [
2616 {
2617 "type" : "field",
2618 "value" : ["standard_metadata", "egress_spec"]
2619 },
2620 {
2621 "type" : "runtime_data",
2622 "value" : 0
2623 }
2624 ],
2625 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08002626 "filename" : "./include/control/next.p4",
2627 "line" : 149,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002628 "column" : 8,
2629 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2630 }
2631 },
2632 {
2633 "op" : "add_header",
2634 "parameters" : [
2635 {
2636 "type" : "header",
2637 "value" : "mpls"
2638 }
2639 ],
2640 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08002641 "filename" : "./include/control/next.p4",
2642 "line" : 46,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002643 "column" : 8,
2644 "source_fragment" : "hdr.mpls.setValid()"
2645 }
2646 },
2647 {
2648 "op" : "assign",
2649 "parameters" : [
2650 {
2651 "type" : "field",
2652 "value" : ["vlan_tag", "ether_type"]
2653 },
2654 {
2655 "type" : "hexstr",
2656 "value" : "0x8847"
2657 }
2658 ],
2659 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08002660 "filename" : "./include/control/../define.p4",
Esin Karaman971fb7f2017-12-28 13:44:52 +00002661 "line" : 67,
2662 "column" : 31,
2663 "source_fragment" : "0x8847; ..."
2664 }
2665 },
2666 {
2667 "op" : "assign",
2668 "parameters" : [
2669 {
2670 "type" : "field",
2671 "value" : ["mpls", "label"]
2672 },
2673 {
2674 "type" : "runtime_data",
2675 "value" : 3
2676 }
2677 ],
2678 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08002679 "filename" : "./include/control/next.p4",
2680 "line" : 48,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002681 "column" : 8,
2682 "source_fragment" : "hdr.mpls.label = label; ..."
2683 }
2684 },
2685 {
2686 "op" : "assign",
2687 "parameters" : [
2688 {
2689 "type" : "field",
2690 "value" : ["mpls", "tc"]
2691 },
2692 {
2693 "type" : "hexstr",
2694 "value" : "0x00"
2695 }
2696 ],
2697 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08002698 "filename" : "./include/control/next.p4",
2699 "line" : 49,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002700 "column" : 8,
2701 "source_fragment" : "hdr.mpls.tc = tc; ..."
2702 }
2703 },
2704 {
2705 "op" : "assign",
2706 "parameters" : [
2707 {
2708 "type" : "field",
2709 "value" : ["mpls", "bos"]
2710 },
2711 {
2712 "type" : "hexstr",
2713 "value" : "0x01"
2714 }
2715 ],
2716 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08002717 "filename" : "./include/control/next.p4",
2718 "line" : 50,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002719 "column" : 8,
2720 "source_fragment" : "hdr.mpls.bos = 1w1"
2721 }
2722 },
2723 {
2724 "op" : "assign",
2725 "parameters" : [
2726 {
2727 "type" : "field",
2728 "value" : ["mpls", "ttl"]
2729 },
2730 {
2731 "type" : "hexstr",
2732 "value" : "0x40"
2733 }
2734 ],
2735 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08002736 "filename" : "./include/control/../define.p4",
2737 "line" : 87,
2738 "column" : 32,
2739 "source_fragment" : "64; ..."
2740 }
2741 }
2742 ]
2743 },
2744 {
2745 "name" : "FabricIngress.next.mpls_routing_v6_hashed",
2746 "id" : 36,
2747 "runtime_data" : [
2748 {
2749 "name" : "port_num",
2750 "bitwidth" : 9
2751 },
2752 {
2753 "name" : "smac",
2754 "bitwidth" : 48
2755 },
2756 {
2757 "name" : "dmac",
2758 "bitwidth" : 48
2759 },
2760 {
2761 "name" : "label",
2762 "bitwidth" : 20
2763 }
2764 ],
2765 "primitives" : [
2766 {
2767 "op" : "assign",
2768 "parameters" : [
2769 {
2770 "type" : "field",
2771 "value" : ["ethernet", "src_addr"]
2772 },
2773 {
2774 "type" : "runtime_data",
2775 "value" : 1
2776 }
2777 ],
2778 "source_info" : {
2779 "filename" : "./include/control/next.p4",
2780 "line" : 37,
2781 "column" : 8,
2782 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2783 }
2784 },
2785 {
2786 "op" : "assign",
2787 "parameters" : [
2788 {
2789 "type" : "field",
2790 "value" : ["ethernet", "dst_addr"]
2791 },
2792 {
2793 "type" : "runtime_data",
2794 "value" : 2
2795 }
2796 ],
2797 "source_info" : {
2798 "filename" : "./include/control/next.p4",
2799 "line" : 41,
2800 "column" : 8,
2801 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2802 }
2803 },
2804 {
2805 "op" : "assign",
2806 "parameters" : [
2807 {
2808 "type" : "field",
2809 "value" : ["standard_metadata", "egress_spec"]
2810 },
2811 {
2812 "type" : "runtime_data",
2813 "value" : 0
2814 }
2815 ],
2816 "source_info" : {
2817 "filename" : "./include/control/next.p4",
2818 "line" : 149,
2819 "column" : 8,
2820 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2821 }
2822 },
2823 {
2824 "op" : "add_header",
2825 "parameters" : [
2826 {
2827 "type" : "header",
2828 "value" : "mpls"
2829 }
2830 ],
2831 "source_info" : {
2832 "filename" : "./include/control/next.p4",
2833 "line" : 46,
2834 "column" : 8,
2835 "source_fragment" : "hdr.mpls.setValid()"
2836 }
2837 },
2838 {
2839 "op" : "assign",
2840 "parameters" : [
2841 {
2842 "type" : "field",
2843 "value" : ["vlan_tag", "ether_type"]
2844 },
2845 {
2846 "type" : "hexstr",
2847 "value" : "0x8847"
2848 }
2849 ],
2850 "source_info" : {
2851 "filename" : "./include/control/../define.p4",
2852 "line" : 67,
2853 "column" : 31,
2854 "source_fragment" : "0x8847; ..."
2855 }
2856 },
2857 {
2858 "op" : "assign",
2859 "parameters" : [
2860 {
2861 "type" : "field",
2862 "value" : ["mpls", "label"]
2863 },
2864 {
2865 "type" : "runtime_data",
2866 "value" : 3
2867 }
2868 ],
2869 "source_info" : {
2870 "filename" : "./include/control/next.p4",
2871 "line" : 48,
2872 "column" : 8,
2873 "source_fragment" : "hdr.mpls.label = label; ..."
2874 }
2875 },
2876 {
2877 "op" : "assign",
2878 "parameters" : [
2879 {
2880 "type" : "field",
2881 "value" : ["mpls", "tc"]
2882 },
2883 {
2884 "type" : "hexstr",
2885 "value" : "0x00"
2886 }
2887 ],
2888 "source_info" : {
2889 "filename" : "./include/control/next.p4",
2890 "line" : 49,
2891 "column" : 8,
2892 "source_fragment" : "hdr.mpls.tc = tc; ..."
2893 }
2894 },
2895 {
2896 "op" : "assign",
2897 "parameters" : [
2898 {
2899 "type" : "field",
2900 "value" : ["mpls", "bos"]
2901 },
2902 {
2903 "type" : "hexstr",
2904 "value" : "0x01"
2905 }
2906 ],
2907 "source_info" : {
2908 "filename" : "./include/control/next.p4",
2909 "line" : 50,
2910 "column" : 8,
2911 "source_fragment" : "hdr.mpls.bos = 1w1"
2912 }
2913 },
2914 {
2915 "op" : "assign",
2916 "parameters" : [
2917 {
2918 "type" : "field",
2919 "value" : ["mpls", "ttl"]
2920 },
2921 {
2922 "type" : "hexstr",
2923 "value" : "0x40"
2924 }
2925 ],
2926 "source_info" : {
2927 "filename" : "./include/control/../define.p4",
Esin Karaman971fb7f2017-12-28 13:44:52 +00002928 "line" : 87,
2929 "column" : 32,
2930 "source_fragment" : "64; ..."
2931 }
2932 }
2933 ]
2934 },
2935 {
2936 "name" : "FabricIngress.next.set_mcast_group",
Yi Tseng47eac892018-07-11 02:17:04 +08002937 "id" : 37,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002938 "runtime_data" : [
2939 {
2940 "name" : "gid",
2941 "bitwidth" : 16
2942 }
2943 ],
2944 "primitives" : [
2945 {
2946 "op" : "assign",
2947 "parameters" : [
2948 {
2949 "type" : "field",
2950 "value" : ["standard_metadata", "mcast_grp"]
2951 },
2952 {
2953 "type" : "runtime_data",
2954 "value" : 0
2955 }
2956 ],
2957 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08002958 "filename" : "./include/control/next.p4",
2959 "line" : 202,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002960 "column" : 8,
2961 "source_fragment" : "standard_metadata.mcast_grp = gid"
2962 }
2963 }
2964 ]
2965 },
2966 {
2967 "name" : "act",
Yi Tseng47eac892018-07-11 02:17:04 +08002968 "id" : 38,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002969 "runtime_data" : [],
2970 "primitives" : [
2971 {
2972 "op" : "assign",
2973 "parameters" : [
2974 {
2975 "type" : "field",
2976 "value" : ["standard_metadata", "egress_spec"]
2977 },
2978 {
2979 "type" : "field",
2980 "value" : ["packet_out", "egress_port"]
2981 }
2982 ],
2983 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08002984 "filename" : "./include/control/packetio.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002985 "line" : 26,
2986 "column" : 12,
2987 "source_fragment" : "standard_metadata.egress_spec = hdr.packet_out.egress_port"
2988 }
2989 },
2990 {
2991 "op" : "remove_header",
2992 "parameters" : [
2993 {
2994 "type" : "header",
2995 "value" : "packet_out"
2996 }
2997 ],
2998 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08002999 "filename" : "./include/control/packetio.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003000 "line" : 27,
3001 "column" : 12,
3002 "source_fragment" : "hdr.packet_out.setInvalid()"
3003 }
3004 }
3005 ]
3006 },
3007 {
3008 "name" : "act_0",
Yi Tseng47eac892018-07-11 02:17:04 +08003009 "id" : 39,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003010 "runtime_data" : [],
3011 "primitives" : [
3012 {
3013 "op" : "assign",
3014 "parameters" : [
3015 {
3016 "type" : "field",
3017 "value" : ["scalars", "spgw_ingress_tmp_2"]
3018 },
3019 {
3020 "type" : "expression",
3021 "value" : {
3022 "type" : "expression",
3023 "value" : {
3024 "op" : "b2d",
3025 "left" : null,
3026 "right" : {
3027 "type" : "bool",
3028 "value" : true
3029 }
3030 }
3031 }
3032 }
3033 ]
3034 }
3035 ]
3036 },
3037 {
3038 "name" : "act_1",
Yi Tseng47eac892018-07-11 02:17:04 +08003039 "id" : 40,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003040 "runtime_data" : [],
3041 "primitives" : [
3042 {
3043 "op" : "assign",
3044 "parameters" : [
3045 {
3046 "type" : "field",
3047 "value" : ["scalars", "spgw_ingress_tmp_2"]
3048 },
3049 {
3050 "type" : "expression",
3051 "value" : {
3052 "type" : "expression",
3053 "value" : {
3054 "op" : "b2d",
3055 "left" : null,
3056 "right" : {
3057 "type" : "bool",
3058 "value" : false
3059 }
3060 }
3061 }
3062 }
3063 ]
3064 }
3065 ]
3066 },
3067 {
3068 "name" : "act_2",
Yi Tseng47eac892018-07-11 02:17:04 +08003069 "id" : 41,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003070 "runtime_data" : [],
3071 "primitives" : [
3072 {
3073 "op" : "assign",
3074 "parameters" : [
3075 {
3076 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003077 "value" : ["userMetadata.spgw", "s1u_enb_addr"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003078 },
3079 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003080 "type" : "field",
3081 "value" : ["ipv4", "src_addr"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003082 }
3083 ],
3084 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08003085 "filename" : "./include/control/../spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003086 "line" : 152,
3087 "column" : 12,
3088 "source_fragment" : "spgw_meta.s1u_enb_addr = ipv4.src_addr"
3089 }
3090 },
3091 {
3092 "op" : "assign",
3093 "parameters" : [
3094 {
3095 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003096 "value" : ["userMetadata.spgw", "s1u_sgw_addr"]
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003097 },
3098 {
3099 "type" : "field",
3100 "value" : ["ipv4", "dst_addr"]
3101 }
3102 ],
3103 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08003104 "filename" : "./include/control/../spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003105 "line" : 153,
3106 "column" : 12,
3107 "source_fragment" : "spgw_meta.s1u_sgw_addr = ipv4.dst_addr"
3108 }
3109 },
3110 {
3111 "op" : "assign_header",
3112 "parameters" : [
3113 {
3114 "type" : "header",
3115 "value" : "ipv4"
3116 },
3117 {
3118 "type" : "header",
3119 "value" : "gtpu_ipv4"
3120 }
3121 ],
3122 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08003123 "filename" : "./include/control/../spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003124 "line" : 154,
3125 "column" : 17,
3126 "source_fragment" : "= gtpu_ipv4; ..."
3127 }
3128 },
3129 {
3130 "op" : "assign_header",
3131 "parameters" : [
3132 {
3133 "type" : "header",
3134 "value" : "udp"
3135 },
3136 {
3137 "type" : "header",
3138 "value" : "gtpu_udp"
3139 }
3140 ],
3141 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08003142 "filename" : "./include/control/../spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003143 "line" : 155,
3144 "column" : 16,
3145 "source_fragment" : "= gtpu_udp; ..."
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003146 }
3147 }
3148 ]
3149 },
3150 {
3151 "name" : "act_3",
Yi Tseng47eac892018-07-11 02:17:04 +08003152 "id" : 42,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003153 "runtime_data" : [],
3154 "primitives" : [
3155 {
3156 "op" : "assign",
3157 "parameters" : [
3158 {
3159 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003160 "value" : ["userMetadata.spgw", "do_spgw"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003161 },
3162 {
3163 "type" : "expression",
3164 "value" : {
3165 "type" : "expression",
3166 "value" : {
3167 "op" : "b2d",
3168 "left" : null,
3169 "right" : {
3170 "type" : "bool",
3171 "value" : true
3172 }
3173 }
3174 }
3175 }
3176 ],
3177 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08003178 "filename" : "./include/control/../spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003179 "line" : 159,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003180 "column" : 16,
3181 "source_fragment" : "spgw_meta.do_spgw = true"
3182 }
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003183 },
3184 {
3185 "op" : "assign",
3186 "parameters" : [
3187 {
3188 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003189 "value" : ["userMetadata.spgw", "direction"]
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003190 },
3191 {
3192 "type" : "hexstr",
3193 "value" : "0x00"
3194 }
3195 ],
3196 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08003197 "filename" : "./include/control/../define.p4",
Carmelo Cascone228092b2018-06-15 20:41:10 +02003198 "line" : 98,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003199 "column" : 31,
3200 "source_fragment" : "1w0; ..."
3201 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003202 }
3203 ]
3204 },
3205 {
3206 "name" : "act_4",
Yi Tseng47eac892018-07-11 02:17:04 +08003207 "id" : 43,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003208 "runtime_data" : [],
3209 "primitives" : [
3210 {
3211 "op" : "assign",
3212 "parameters" : [
3213 {
3214 "type" : "field",
3215 "value" : ["scalars", "spgw_ingress_tmp_3"]
3216 },
3217 {
3218 "type" : "expression",
3219 "value" : {
3220 "type" : "expression",
3221 "value" : {
3222 "op" : "b2d",
3223 "left" : null,
3224 "right" : {
3225 "type" : "bool",
3226 "value" : true
3227 }
3228 }
3229 }
3230 }
3231 ]
3232 }
3233 ]
3234 },
3235 {
3236 "name" : "act_5",
Yi Tseng47eac892018-07-11 02:17:04 +08003237 "id" : 44,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003238 "runtime_data" : [],
3239 "primitives" : [
3240 {
3241 "op" : "assign",
3242 "parameters" : [
3243 {
3244 "type" : "field",
3245 "value" : ["scalars", "spgw_ingress_tmp_3"]
3246 },
3247 {
3248 "type" : "expression",
3249 "value" : {
3250 "type" : "expression",
3251 "value" : {
3252 "op" : "b2d",
3253 "left" : null,
3254 "right" : {
3255 "type" : "bool",
3256 "value" : false
3257 }
3258 }
3259 }
3260 }
3261 ]
3262 }
3263 ]
3264 },
3265 {
3266 "name" : "act_6",
Yi Tseng47eac892018-07-11 02:17:04 +08003267 "id" : 45,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003268 "runtime_data" : [],
3269 "primitives" : [
3270 {
3271 "op" : "assign",
3272 "parameters" : [
3273 {
3274 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003275 "value" : ["userMetadata.spgw", "do_spgw"]
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003276 },
3277 {
3278 "type" : "expression",
3279 "value" : {
3280 "type" : "expression",
3281 "value" : {
3282 "op" : "b2d",
3283 "left" : null,
3284 "right" : {
3285 "type" : "bool",
3286 "value" : true
3287 }
3288 }
3289 }
3290 }
3291 ],
3292 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08003293 "filename" : "./include/control/../spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003294 "line" : 163,
3295 "column" : 12,
3296 "source_fragment" : "spgw_meta.do_spgw = true"
3297 }
3298 },
3299 {
3300 "op" : "assign",
3301 "parameters" : [
3302 {
3303 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003304 "value" : ["userMetadata.spgw", "direction"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08003305 },
3306 {
3307 "type" : "hexstr",
3308 "value" : "0x01"
3309 }
3310 ],
3311 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08003312 "filename" : "./include/control/../define.p4",
Carmelo Cascone228092b2018-06-15 20:41:10 +02003313 "line" : 99,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003314 "column" : 33,
3315 "source_fragment" : "1w1; ..."
3316 }
3317 }
3318 ]
3319 },
3320 {
3321 "name" : "act_7",
Yi Tseng47eac892018-07-11 02:17:04 +08003322 "id" : 46,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003323 "runtime_data" : [],
3324 "primitives" : [
3325 {
3326 "op" : "assign",
3327 "parameters" : [
3328 {
3329 "type" : "field",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003330 "value" : ["scalars", "spgw_ingress_hasReturned_0"]
3331 },
3332 {
3333 "type" : "expression",
3334 "value" : {
3335 "type" : "expression",
3336 "value" : {
3337 "op" : "b2d",
3338 "left" : null,
3339 "right" : {
3340 "type" : "bool",
3341 "value" : false
3342 }
3343 }
3344 }
3345 }
3346 ]
3347 },
3348 {
3349 "op" : "assign",
3350 "parameters" : [
3351 {
3352 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003353 "value" : ["userMetadata.spgw", "do_spgw"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003354 },
3355 {
3356 "type" : "expression",
3357 "value" : {
3358 "type" : "expression",
3359 "value" : {
3360 "op" : "b2d",
3361 "left" : null,
3362 "right" : {
3363 "type" : "bool",
Esin Karaman971fb7f2017-12-28 13:44:52 +00003364 "value" : false
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003365 }
3366 }
3367 }
3368 }
3369 ],
3370 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08003371 "filename" : "./include/control/../spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003372 "line" : 146,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003373 "column" : 8,
Esin Karaman971fb7f2017-12-28 13:44:52 +00003374 "source_fragment" : "spgw_meta.do_spgw = false"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003375 }
3376 }
3377 ]
3378 },
3379 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003380 "name" : "act_8",
Yi Tseng47eac892018-07-11 02:17:04 +08003381 "id" : 47,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003382 "runtime_data" : [],
3383 "primitives" : [
3384 {
3385 "op" : "assign",
3386 "parameters" : [
3387 {
3388 "type" : "field",
3389 "value" : ["scalars", "spgw_ingress_hasReturned_0"]
3390 },
3391 {
3392 "type" : "expression",
3393 "value" : {
3394 "type" : "expression",
3395 "value" : {
3396 "op" : "b2d",
3397 "left" : null,
3398 "right" : {
3399 "type" : "bool",
3400 "value" : true
3401 }
3402 }
3403 }
3404 }
3405 ],
3406 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08003407 "filename" : "./include/control/../spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003408 "line" : 169,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003409 "column" : 12,
3410 "source_fragment" : "return"
3411 }
3412 }
3413 ]
3414 },
3415 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003416 "name" : "act_9",
Yi Tseng47eac892018-07-11 02:17:04 +08003417 "id" : 48,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003418 "runtime_data" : [],
3419 "primitives" : [
3420 {
3421 "op" : "assign",
3422 "parameters" : [
3423 {
3424 "type" : "field",
3425 "value" : ["scalars", "spgw_ingress_tmp_4"]
3426 },
3427 {
3428 "type" : "expression",
3429 "value" : {
3430 "type" : "expression",
3431 "value" : {
3432 "op" : "b2d",
3433 "left" : null,
3434 "right" : {
3435 "type" : "bool",
3436 "value" : true
3437 }
3438 }
3439 }
3440 }
3441 ]
3442 }
3443 ]
3444 },
3445 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003446 "name" : "act_10",
Yi Tseng47eac892018-07-11 02:17:04 +08003447 "id" : 49,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003448 "runtime_data" : [],
3449 "primitives" : [
3450 {
3451 "op" : "assign",
3452 "parameters" : [
3453 {
3454 "type" : "field",
3455 "value" : ["scalars", "spgw_ingress_tmp_4"]
3456 },
3457 {
3458 "type" : "expression",
3459 "value" : {
3460 "type" : "expression",
3461 "value" : {
3462 "op" : "b2d",
3463 "left" : null,
3464 "right" : {
3465 "type" : "bool",
3466 "value" : false
3467 }
3468 }
3469 }
3470 }
3471 ]
3472 }
3473 ]
3474 },
3475 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003476 "name" : "act_11",
Yi Tseng47eac892018-07-11 02:17:04 +08003477 "id" : 50,
Yi Tseng27b9bc02018-04-12 14:52:40 +08003478 "runtime_data" : [],
3479 "primitives" : [
3480 {
3481 "op" : "assign",
3482 "parameters" : [
3483 {
3484 "type" : "field",
3485 "value" : ["userMetadata.spgw", "ipv4_len"]
3486 },
3487 {
3488 "type" : "field",
3489 "value" : ["ipv4", "total_len"]
3490 }
3491 ],
3492 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08003493 "filename" : "./include/control/../spgw.p4",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003494 "line" : 199,
3495 "column" : 8,
3496 "source_fragment" : "spgw_meta.ipv4_len = ipv4.total_len"
3497 }
3498 }
3499 ]
3500 },
3501 {
3502 "name" : "act_12",
Yi Tseng47eac892018-07-11 02:17:04 +08003503 "id" : 51,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003504 "runtime_data" : [],
3505 "primitives" : [
3506 {
3507 "op" : "assign",
3508 "parameters" : [
3509 {
3510 "type" : "field",
3511 "value" : ["vlan_tag", "ether_type"]
3512 },
3513 {
3514 "type" : "hexstr",
3515 "value" : "0x0800"
3516 }
3517 ],
3518 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08003519 "filename" : "./include/control/../define.p4",
Carmelo Cascone228092b2018-06-15 20:41:10 +02003520 "line" : 69,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003521 "column" : 31,
3522 "source_fragment" : "0x0800; ..."
3523 }
3524 },
3525 {
3526 "op" : "assign",
3527 "parameters" : [
3528 {
3529 "type" : "field",
3530 "value" : ["scalars", "fabric_metadata_t.original_ether_type"]
3531 },
3532 {
3533 "type" : "hexstr",
3534 "value" : "0x0800"
3535 }
3536 ],
3537 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08003538 "filename" : "./include/control/../define.p4",
Carmelo Cascone228092b2018-06-15 20:41:10 +02003539 "line" : 69,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003540 "column" : 31,
3541 "source_fragment" : "0x0800; ..."
3542 }
3543 }
3544 ]
3545 },
3546 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003547 "name" : "act_13",
Yi Tseng47eac892018-07-11 02:17:04 +08003548 "id" : 52,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003549 "runtime_data" : [],
3550 "primitives" : [
3551 {
3552 "op" : "assign",
3553 "parameters" : [
3554 {
3555 "type" : "field",
3556 "value" : ["scalars", "next_tmp_0"]
3557 },
3558 {
3559 "type" : "expression",
3560 "value" : {
3561 "type" : "expression",
3562 "value" : {
3563 "op" : "b2d",
3564 "left" : null,
3565 "right" : {
3566 "type" : "bool",
3567 "value" : true
3568 }
3569 }
3570 }
3571 }
3572 ]
3573 }
3574 ]
3575 },
3576 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003577 "name" : "act_14",
Yi Tseng47eac892018-07-11 02:17:04 +08003578 "id" : 53,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003579 "runtime_data" : [],
3580 "primitives" : [
3581 {
3582 "op" : "assign",
3583 "parameters" : [
3584 {
3585 "type" : "field",
3586 "value" : ["scalars", "next_tmp_0"]
3587 },
3588 {
3589 "type" : "expression",
3590 "value" : {
3591 "type" : "expression",
3592 "value" : {
3593 "op" : "b2d",
3594 "left" : null,
3595 "right" : {
3596 "type" : "bool",
3597 "value" : false
3598 }
3599 }
3600 }
3601 }
3602 ]
3603 }
3604 ]
3605 },
3606 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003607 "name" : "act_15",
Yi Tseng47eac892018-07-11 02:17:04 +08003608 "id" : 54,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003609 "runtime_data" : [],
3610 "primitives" : [
3611 {
3612 "op" : "assign",
3613 "parameters" : [
3614 {
3615 "type" : "field",
3616 "value" : ["ipv4", "ttl"]
3617 },
3618 {
3619 "type" : "expression",
3620 "value" : {
3621 "type" : "expression",
3622 "value" : {
3623 "op" : "&",
3624 "left" : {
3625 "type" : "expression",
3626 "value" : {
3627 "op" : "+",
3628 "left" : {
3629 "type" : "field",
3630 "value" : ["ipv4", "ttl"]
3631 },
3632 "right" : {
3633 "type" : "hexstr",
3634 "value" : "0xff"
3635 }
3636 }
3637 },
3638 "right" : {
3639 "type" : "hexstr",
3640 "value" : "0xff"
3641 }
3642 }
3643 }
3644 }
3645 ],
3646 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08003647 "filename" : "./include/control/next.p4",
3648 "line" : 221,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003649 "column" : 20,
3650 "source_fragment" : "hdr.ipv4.ttl = hdr.ipv4.ttl - 1"
3651 }
3652 }
3653 ]
3654 },
3655 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003656 "name" : "act_16",
Yi Tseng47eac892018-07-11 02:17:04 +08003657 "id" : 55,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003658 "runtime_data" : [],
3659 "primitives" : [
3660 {
3661 "op" : "assign",
3662 "parameters" : [
3663 {
3664 "type" : "field",
3665 "value" : ["scalars", "tmp_0"]
3666 },
3667 {
3668 "type" : "expression",
3669 "value" : {
3670 "type" : "expression",
3671 "value" : {
3672 "op" : "&",
3673 "left" : {
3674 "type" : "field",
3675 "value" : ["standard_metadata", "egress_spec"]
3676 },
3677 "right" : {
3678 "type" : "hexstr",
3679 "value" : "0xffffffff"
3680 }
3681 }
3682 }
3683 }
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003684 ],
3685 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08003686 "filename" : "./include/control/port_counter.p4",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003687 "line" : 28,
3688 "column" : 38,
3689 "source_fragment" : "(bit<32>)standard_metadata.egress_spec"
3690 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003691 },
3692 {
3693 "op" : "count",
3694 "parameters" : [
3695 {
3696 "type" : "counter_array",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003697 "value" : "FabricIngress.port_counters_control.egress_port_counter"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003698 },
3699 {
3700 "type" : "field",
3701 "value" : ["scalars", "tmp_0"]
3702 }
3703 ],
3704 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08003705 "filename" : "./include/control/port_counter.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003706 "line" : 28,
3707 "column" : 12,
3708 "source_fragment" : "egress_port_counter.count((bit<32>)standard_metadata.egress_spec)"
3709 }
3710 }
3711 ]
3712 },
3713 {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003714 "name" : "act_17",
Yi Tseng47eac892018-07-11 02:17:04 +08003715 "id" : 56,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003716 "runtime_data" : [],
3717 "primitives" : [
3718 {
3719 "op" : "assign",
3720 "parameters" : [
3721 {
3722 "type" : "field",
3723 "value" : ["scalars", "tmp_1"]
3724 },
3725 {
3726 "type" : "expression",
3727 "value" : {
3728 "type" : "expression",
3729 "value" : {
3730 "op" : "&",
3731 "left" : {
3732 "type" : "field",
3733 "value" : ["standard_metadata", "ingress_port"]
3734 },
3735 "right" : {
3736 "type" : "hexstr",
3737 "value" : "0xffffffff"
3738 }
3739 }
3740 }
3741 }
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003742 ],
3743 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08003744 "filename" : "./include/control/port_counter.p4",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003745 "line" : 31,
3746 "column" : 39,
3747 "source_fragment" : "(bit<32>)standard_metadata.ingress_port"
3748 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003749 },
3750 {
3751 "op" : "count",
3752 "parameters" : [
3753 {
3754 "type" : "counter_array",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003755 "value" : "FabricIngress.port_counters_control.ingress_port_counter"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003756 },
3757 {
3758 "type" : "field",
3759 "value" : ["scalars", "tmp_1"]
3760 }
3761 ],
3762 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08003763 "filename" : "./include/control/port_counter.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003764 "line" : 31,
3765 "column" : 12,
3766 "source_fragment" : "ingress_port_counter.count((bit<32>)standard_metadata.ingress_port)"
3767 }
3768 }
3769 ]
3770 },
3771 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003772 "name" : "nop",
Yi Tseng47eac892018-07-11 02:17:04 +08003773 "id" : 57,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003774 "runtime_data" : [],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003775 "primitives" : []
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003776 },
3777 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003778 "name" : "FabricEgress.spgw_egress.gtpu_encap",
Yi Tseng47eac892018-07-11 02:17:04 +08003779 "id" : 58,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003780 "runtime_data" : [],
3781 "primitives" : [
3782 {
3783 "op" : "add_header",
3784 "parameters" : [
3785 {
3786 "type" : "header",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003787 "value" : "gtpu_ipv4"
3788 }
3789 ],
3790 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08003791 "filename" : "./include/control/../spgw.p4",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003792 "line" : 214,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003793 "column" : 8,
3794 "source_fragment" : "gtpu_ipv4.setValid()"
3795 }
3796 },
3797 {
3798 "op" : "assign",
3799 "parameters" : [
3800 {
3801 "type" : "field",
3802 "value" : ["gtpu_ipv4", "version"]
3803 },
3804 {
3805 "type" : "hexstr",
3806 "value" : "0x04"
3807 }
3808 ],
3809 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08003810 "filename" : "./include/control/../spgw.p4",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003811 "line" : 215,
Yi Tseng3d3956d2018-01-31 17:28:05 -08003812 "column" : 8,
3813 "source_fragment" : "gtpu_ipv4.version = 4"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003814 }
3815 },
3816 {
3817 "op" : "assign",
3818 "parameters" : [
3819 {
3820 "type" : "field",
3821 "value" : ["gtpu_ipv4", "ihl"]
3822 },
3823 {
3824 "type" : "hexstr",
3825 "value" : "0x05"
3826 }
3827 ],
3828 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08003829 "filename" : "./include/control/../define.p4",
Carmelo Cascone228092b2018-06-15 20:41:10 +02003830 "line" : 78,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003831 "column" : 28,
3832 "source_fragment" : "5; ..."
3833 }
3834 },
3835 {
3836 "op" : "assign",
3837 "parameters" : [
3838 {
3839 "type" : "field",
3840 "value" : ["gtpu_ipv4", "diffserv"]
3841 },
3842 {
3843 "type" : "hexstr",
3844 "value" : "0x00"
3845 }
3846 ],
3847 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08003848 "filename" : "./include/control/../spgw.p4",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003849 "line" : 217,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003850 "column" : 8,
3851 "source_fragment" : "gtpu_ipv4.diffserv = 0"
3852 }
3853 },
3854 {
3855 "op" : "assign",
3856 "parameters" : [
3857 {
3858 "type" : "field",
3859 "value" : ["gtpu_ipv4", "total_len"]
3860 },
3861 {
3862 "type" : "expression",
3863 "value" : {
3864 "type" : "expression",
3865 "value" : {
3866 "op" : "&",
3867 "left" : {
3868 "type" : "expression",
3869 "value" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003870 "op" : "+",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003871 "left" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08003872 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003873 "value" : ["userMetadata.spgw", "ipv4_len"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08003874 },
3875 "right" : {
3876 "type" : "hexstr",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08003877 "value" : "0x0024"
Carmelo Cascone14cde402018-01-25 01:57:18 -08003878 }
3879 }
3880 },
3881 "right" : {
3882 "type" : "hexstr",
3883 "value" : "0xffff"
3884 }
3885 }
3886 }
3887 }
3888 ],
3889 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08003890 "filename" : "./include/control/../spgw.p4",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003891 "line" : 218,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003892 "column" : 8,
Yi Tseng27b9bc02018-04-12 14:52:40 +08003893 "source_fragment" : "gtpu_ipv4.total_len = spgw_meta.ipv4_len ..."
Carmelo Cascone14cde402018-01-25 01:57:18 -08003894 }
3895 },
3896 {
3897 "op" : "assign",
3898 "parameters" : [
3899 {
3900 "type" : "field",
3901 "value" : ["gtpu_ipv4", "identification"]
3902 },
3903 {
3904 "type" : "hexstr",
3905 "value" : "0x1513"
3906 }
3907 ],
3908 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08003909 "filename" : "./include/control/../spgw.p4",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003910 "line" : 220,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003911 "column" : 8,
3912 "source_fragment" : "gtpu_ipv4.identification = 0x1513"
3913 }
3914 },
3915 {
3916 "op" : "assign",
3917 "parameters" : [
3918 {
3919 "type" : "field",
3920 "value" : ["gtpu_ipv4", "flags"]
3921 },
3922 {
3923 "type" : "hexstr",
3924 "value" : "0x00"
3925 }
3926 ],
3927 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08003928 "filename" : "./include/control/../spgw.p4",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003929 "line" : 221,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003930 "column" : 8,
3931 "source_fragment" : "gtpu_ipv4.flags = 0"
3932 }
3933 },
3934 {
3935 "op" : "assign",
3936 "parameters" : [
3937 {
3938 "type" : "field",
3939 "value" : ["gtpu_ipv4", "frag_offset"]
3940 },
3941 {
3942 "type" : "hexstr",
3943 "value" : "0x0000"
3944 }
3945 ],
3946 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08003947 "filename" : "./include/control/../spgw.p4",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003948 "line" : 222,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003949 "column" : 8,
3950 "source_fragment" : "gtpu_ipv4.frag_offset = 0"
3951 }
3952 },
3953 {
3954 "op" : "assign",
3955 "parameters" : [
3956 {
3957 "type" : "field",
3958 "value" : ["gtpu_ipv4", "ttl"]
3959 },
3960 {
3961 "type" : "hexstr",
3962 "value" : "0x40"
3963 }
3964 ],
3965 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08003966 "filename" : "./include/control/../define.p4",
Carmelo Cascone228092b2018-06-15 20:41:10 +02003967 "line" : 88,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003968 "column" : 32,
3969 "source_fragment" : "64; ..."
3970 }
3971 },
3972 {
3973 "op" : "assign",
3974 "parameters" : [
3975 {
3976 "type" : "field",
3977 "value" : ["gtpu_ipv4", "protocol"]
3978 },
3979 {
3980 "type" : "hexstr",
3981 "value" : "0x11"
3982 }
3983 ],
3984 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08003985 "filename" : "./include/control/../define.p4",
Carmelo Cascone228092b2018-06-15 20:41:10 +02003986 "line" : 75,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003987 "column" : 25,
3988 "source_fragment" : "17; ..."
3989 }
3990 },
3991 {
3992 "op" : "assign",
3993 "parameters" : [
3994 {
3995 "type" : "field",
3996 "value" : ["gtpu_ipv4", "dst_addr"]
3997 },
3998 {
3999 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004000 "value" : ["userMetadata.spgw", "s1u_enb_addr"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08004001 }
4002 ],
4003 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08004004 "filename" : "./include/control/../spgw.p4",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004005 "line" : 225,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004006 "column" : 8,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004007 "source_fragment" : "gtpu_ipv4.dst_addr = spgw_meta.s1u_enb_addr"
Carmelo Cascone14cde402018-01-25 01:57:18 -08004008 }
4009 },
4010 {
4011 "op" : "assign",
4012 "parameters" : [
4013 {
4014 "type" : "field",
4015 "value" : ["gtpu_ipv4", "src_addr"]
4016 },
4017 {
4018 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004019 "value" : ["userMetadata.spgw", "s1u_sgw_addr"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08004020 }
4021 ],
4022 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08004023 "filename" : "./include/control/../spgw.p4",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004024 "line" : 226,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004025 "column" : 8,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004026 "source_fragment" : "gtpu_ipv4.src_addr = spgw_meta.s1u_sgw_addr"
Carmelo Cascone14cde402018-01-25 01:57:18 -08004027 }
4028 },
4029 {
4030 "op" : "assign",
4031 "parameters" : [
4032 {
4033 "type" : "field",
4034 "value" : ["gtpu_ipv4", "hdr_checksum"]
4035 },
4036 {
4037 "type" : "hexstr",
4038 "value" : "0x0000"
4039 }
4040 ],
4041 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08004042 "filename" : "./include/control/../spgw.p4",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004043 "line" : 227,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004044 "column" : 8,
4045 "source_fragment" : "gtpu_ipv4.hdr_checksum = 0"
4046 }
4047 },
4048 {
4049 "op" : "add_header",
4050 "parameters" : [
4051 {
4052 "type" : "header",
4053 "value" : "gtpu_udp"
4054 }
4055 ],
4056 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08004057 "filename" : "./include/control/../spgw.p4",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004058 "line" : 229,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004059 "column" : 8,
4060 "source_fragment" : "gtpu_udp.setValid()"
4061 }
4062 },
4063 {
4064 "op" : "assign",
4065 "parameters" : [
4066 {
4067 "type" : "field",
4068 "value" : ["gtpu_udp", "src_port"]
4069 },
4070 {
4071 "type" : "hexstr",
4072 "value" : "0x0868"
4073 }
4074 ],
4075 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08004076 "filename" : "./include/control/../spgw.p4",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004077 "line" : 230,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004078 "column" : 8,
4079 "source_fragment" : "gtpu_udp.src_port = 2152"
4080 }
4081 },
4082 {
4083 "op" : "assign",
4084 "parameters" : [
4085 {
4086 "type" : "field",
4087 "value" : ["gtpu_udp", "dst_port"]
4088 },
4089 {
4090 "type" : "hexstr",
4091 "value" : "0x0868"
4092 }
4093 ],
4094 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08004095 "filename" : "./include/control/../spgw.p4",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004096 "line" : 231,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004097 "column" : 8,
4098 "source_fragment" : "gtpu_udp.dst_port = 2152"
4099 }
4100 },
4101 {
4102 "op" : "assign",
4103 "parameters" : [
4104 {
4105 "type" : "field",
4106 "value" : ["gtpu_udp", "len"]
4107 },
4108 {
4109 "type" : "expression",
4110 "value" : {
4111 "type" : "expression",
4112 "value" : {
4113 "op" : "&",
4114 "left" : {
4115 "type" : "expression",
4116 "value" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004117 "op" : "+",
Carmelo Cascone14cde402018-01-25 01:57:18 -08004118 "left" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004119 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004120 "value" : ["userMetadata.spgw", "ipv4_len"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004121 },
4122 "right" : {
4123 "type" : "hexstr",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004124 "value" : "0x0010"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004125 }
4126 }
4127 },
4128 "right" : {
4129 "type" : "hexstr",
4130 "value" : "0xffff"
4131 }
4132 }
4133 }
4134 }
4135 ],
4136 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08004137 "filename" : "./include/control/../spgw.p4",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004138 "line" : 232,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004139 "column" : 8,
Yi Tseng27b9bc02018-04-12 14:52:40 +08004140 "source_fragment" : "gtpu_udp.len = spgw_meta.ipv4_len ..."
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004141 }
4142 },
4143 {
4144 "op" : "assign",
4145 "parameters" : [
4146 {
4147 "type" : "field",
4148 "value" : ["gtpu_udp", "checksum"]
4149 },
4150 {
4151 "type" : "hexstr",
4152 "value" : "0x0000"
4153 }
4154 ],
4155 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08004156 "filename" : "./include/control/../spgw.p4",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004157 "line" : 234,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004158 "column" : 8,
4159 "source_fragment" : "gtpu_udp.checksum = 0"
4160 }
Carmelo Cascone14cde402018-01-25 01:57:18 -08004161 },
4162 {
4163 "op" : "add_header",
4164 "parameters" : [
4165 {
4166 "type" : "header",
4167 "value" : "gtpu"
4168 }
4169 ],
4170 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08004171 "filename" : "./include/control/../spgw.p4",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004172 "line" : 236,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004173 "column" : 8,
4174 "source_fragment" : "gtpu.setValid()"
4175 }
4176 },
4177 {
4178 "op" : "assign",
4179 "parameters" : [
4180 {
4181 "type" : "field",
4182 "value" : ["gtpu", "version"]
4183 },
4184 {
4185 "type" : "hexstr",
4186 "value" : "0x01"
4187 }
4188 ],
4189 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08004190 "filename" : "./include/control/../spgw.p4",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004191 "line" : 237,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004192 "column" : 8,
4193 "source_fragment" : "gtpu.version = 0x01"
4194 }
4195 },
4196 {
4197 "op" : "assign",
4198 "parameters" : [
4199 {
4200 "type" : "field",
4201 "value" : ["gtpu", "pt"]
4202 },
4203 {
4204 "type" : "hexstr",
4205 "value" : "0x01"
4206 }
4207 ],
4208 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08004209 "filename" : "./include/control/../spgw.p4",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004210 "line" : 238,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004211 "column" : 8,
4212 "source_fragment" : "gtpu.pt = 0x01"
4213 }
4214 },
4215 {
4216 "op" : "assign",
4217 "parameters" : [
4218 {
4219 "type" : "field",
4220 "value" : ["gtpu", "spare"]
4221 },
4222 {
4223 "type" : "hexstr",
4224 "value" : "0x00"
4225 }
4226 ],
4227 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08004228 "filename" : "./include/control/../spgw.p4",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004229 "line" : 239,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004230 "column" : 8,
4231 "source_fragment" : "gtpu.spare = 0"
4232 }
4233 },
4234 {
4235 "op" : "assign",
4236 "parameters" : [
4237 {
4238 "type" : "field",
4239 "value" : ["gtpu", "ex_flag"]
4240 },
4241 {
4242 "type" : "hexstr",
4243 "value" : "0x00"
4244 }
4245 ],
4246 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08004247 "filename" : "./include/control/../spgw.p4",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004248 "line" : 240,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004249 "column" : 8,
4250 "source_fragment" : "gtpu.ex_flag = 0"
4251 }
4252 },
4253 {
4254 "op" : "assign",
4255 "parameters" : [
4256 {
4257 "type" : "field",
4258 "value" : ["gtpu", "seq_flag"]
4259 },
4260 {
4261 "type" : "hexstr",
4262 "value" : "0x00"
4263 }
4264 ],
4265 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08004266 "filename" : "./include/control/../spgw.p4",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004267 "line" : 241,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004268 "column" : 8,
4269 "source_fragment" : "gtpu.seq_flag = 0"
4270 }
4271 },
4272 {
4273 "op" : "assign",
4274 "parameters" : [
4275 {
4276 "type" : "field",
4277 "value" : ["gtpu", "npdu_flag"]
4278 },
4279 {
4280 "type" : "hexstr",
4281 "value" : "0x00"
4282 }
4283 ],
4284 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08004285 "filename" : "./include/control/../spgw.p4",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004286 "line" : 242,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004287 "column" : 8,
4288 "source_fragment" : "gtpu.npdu_flag = 0"
4289 }
4290 },
4291 {
4292 "op" : "assign",
4293 "parameters" : [
4294 {
4295 "type" : "field",
4296 "value" : ["gtpu", "msgtype"]
4297 },
4298 {
4299 "type" : "hexstr",
4300 "value" : "0xff"
4301 }
4302 ],
4303 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08004304 "filename" : "./include/control/../spgw.p4",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004305 "line" : 243,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004306 "column" : 8,
4307 "source_fragment" : "gtpu.msgtype = 0xff"
4308 }
4309 },
4310 {
4311 "op" : "assign",
4312 "parameters" : [
4313 {
4314 "type" : "field",
4315 "value" : ["gtpu", "msglen"]
4316 },
4317 {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004318 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004319 "value" : ["userMetadata.spgw", "ipv4_len"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08004320 }
4321 ],
4322 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08004323 "filename" : "./include/control/../spgw.p4",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004324 "line" : 244,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004325 "column" : 8,
Yi Tseng27b9bc02018-04-12 14:52:40 +08004326 "source_fragment" : "gtpu.msglen = spgw_meta.ipv4_len"
Carmelo Cascone14cde402018-01-25 01:57:18 -08004327 }
4328 },
4329 {
4330 "op" : "assign",
4331 "parameters" : [
4332 {
4333 "type" : "field",
4334 "value" : ["gtpu", "teid"]
4335 },
4336 {
4337 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004338 "value" : ["userMetadata.spgw", "teid"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08004339 }
4340 ],
4341 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08004342 "filename" : "./include/control/../spgw.p4",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004343 "line" : 245,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004344 "column" : 8,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004345 "source_fragment" : "gtpu.teid = spgw_meta.teid"
Carmelo Cascone14cde402018-01-25 01:57:18 -08004346 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004347 }
4348 ]
4349 },
4350 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004351 "name" : "FabricEgress.pkt_io_egress.pop_vlan",
Esin Karaman971fb7f2017-12-28 13:44:52 +00004352 "id" : 59,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004353 "runtime_data" : [],
4354 "primitives" : [
4355 {
4356 "op" : "assign",
4357 "parameters" : [
4358 {
4359 "type" : "field",
4360 "value" : ["ethernet", "ether_type"]
4361 },
4362 {
4363 "type" : "field",
4364 "value" : ["vlan_tag", "ether_type"]
4365 }
4366 ],
4367 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08004368 "filename" : "./include/control/packetio.p4",
4369 "line" : 38,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004370 "column" : 8,
4371 "source_fragment" : "hdr.ethernet.ether_type = hdr.vlan_tag.ether_type"
4372 }
4373 },
4374 {
4375 "op" : "remove_header",
4376 "parameters" : [
4377 {
4378 "type" : "header",
4379 "value" : "vlan_tag"
4380 }
4381 ],
4382 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08004383 "filename" : "./include/control/packetio.p4",
4384 "line" : 39,
4385 "column" : 8,
4386 "source_fragment" : "hdr.vlan_tag.setInvalid()"
4387 }
4388 }
4389 ]
4390 },
4391 {
4392 "name" : "FabricEgress.egress_next.pop_vlan",
4393 "id" : 60,
4394 "runtime_data" : [],
4395 "primitives" : [
4396 {
4397 "op" : "assign",
4398 "parameters" : [
4399 {
4400 "type" : "field",
4401 "value" : ["ethernet", "ether_type"]
4402 },
4403 {
4404 "type" : "field",
4405 "value" : ["vlan_tag", "ether_type"]
4406 }
4407 ],
4408 "source_info" : {
4409 "filename" : "./include/control/next.p4",
4410 "line" : 247,
4411 "column" : 8,
4412 "source_fragment" : "hdr.ethernet.ether_type = hdr.vlan_tag.ether_type"
4413 }
4414 },
4415 {
4416 "op" : "remove_header",
4417 "parameters" : [
4418 {
4419 "type" : "header",
4420 "value" : "vlan_tag"
4421 }
4422 ],
4423 "source_info" : {
4424 "filename" : "./include/control/next.p4",
4425 "line" : 248,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004426 "column" : 8,
4427 "source_fragment" : "hdr.vlan_tag.setInvalid()"
4428 }
4429 }
4430 ]
4431 },
4432 {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02004433 "name" : "act_18",
Yi Tseng47eac892018-07-11 02:17:04 +08004434 "id" : 61,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004435 "runtime_data" : [],
4436 "primitives" : [
4437 {
4438 "op" : "add_header",
4439 "parameters" : [
4440 {
4441 "type" : "header",
4442 "value" : "packet_in"
4443 }
4444 ],
4445 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08004446 "filename" : "./include/control/packetio.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004447 "line" : 46,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004448 "column" : 12,
4449 "source_fragment" : "hdr.packet_in.setValid()"
4450 }
4451 },
4452 {
4453 "op" : "assign",
4454 "parameters" : [
4455 {
4456 "type" : "field",
4457 "value" : ["packet_in", "ingress_port"]
4458 },
4459 {
4460 "type" : "field",
4461 "value" : ["standard_metadata", "ingress_port"]
4462 }
4463 ],
4464 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08004465 "filename" : "./include/control/packetio.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004466 "line" : 47,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004467 "column" : 12,
4468 "source_fragment" : "hdr.packet_in.ingress_port = standard_metadata.ingress_port"
4469 }
4470 }
4471 ]
4472 },
4473 {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02004474 "name" : "act_19",
Yi Tseng47eac892018-07-11 02:17:04 +08004475 "id" : 62,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004476 "runtime_data" : [],
4477 "primitives" : [
4478 {
4479 "op" : "remove_header",
4480 "parameters" : [
4481 {
4482 "type" : "header",
4483 "value" : "gtpu_ipv4"
4484 }
4485 ],
4486 "source_info" : {
4487 "filename" : "fabric.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004488 "line" : 71,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004489 "column" : 36,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004490 "source_fragment" : "hdr.gtpu_ipv4"
4491 }
4492 },
4493 {
4494 "op" : "remove_header",
4495 "parameters" : [
4496 {
4497 "type" : "header",
4498 "value" : "gtpu_udp"
4499 }
4500 ],
4501 "source_info" : {
4502 "filename" : "fabric.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004503 "line" : 71,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004504 "column" : 51,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004505 "source_fragment" : "hdr.gtpu_udp"
4506 }
4507 },
4508 {
4509 "op" : "remove_header",
4510 "parameters" : [
4511 {
4512 "type" : "header",
4513 "value" : "gtpu"
4514 }
4515 ],
4516 "source_info" : {
4517 "filename" : "fabric.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004518 "line" : 71,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004519 "column" : 65,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004520 "source_fragment" : "hdr.gtpu"
4521 }
4522 }
4523 ]
4524 }
4525 ],
4526 "pipelines" : [
4527 {
4528 "name" : "ingress",
4529 "id" : 0,
4530 "source_info" : {
4531 "filename" : "fabric.p4",
4532 "line" : 33,
4533 "column" : 8,
4534 "source_fragment" : "FabricIngress"
4535 },
4536 "init_table" : "node_2",
4537 "tables" : [
4538 {
4539 "name" : "tbl_act",
4540 "id" : 0,
4541 "key" : [],
4542 "match_type" : "exact",
4543 "type" : "simple",
4544 "max_size" : 1024,
4545 "with_counters" : false,
4546 "support_timeout" : false,
4547 "direct_meters" : null,
Yi Tseng47eac892018-07-11 02:17:04 +08004548 "action_ids" : [38],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004549 "actions" : ["act"],
4550 "base_default_next" : null,
4551 "next_tables" : {
4552 "act" : null
4553 },
4554 "default_entry" : {
Yi Tseng47eac892018-07-11 02:17:04 +08004555 "action_id" : 38,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004556 "action_const" : true,
4557 "action_data" : [],
4558 "action_entry_const" : true
4559 }
4560 },
4561 {
4562 "name" : "tbl_act_0",
4563 "id" : 1,
4564 "key" : [],
4565 "match_type" : "exact",
4566 "type" : "simple",
4567 "max_size" : 1024,
4568 "with_counters" : false,
4569 "support_timeout" : false,
4570 "direct_meters" : null,
Yi Tseng47eac892018-07-11 02:17:04 +08004571 "action_ids" : [46],
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004572 "actions" : ["act_7"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004573 "base_default_next" : "node_5",
4574 "next_tables" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004575 "act_7" : "node_5"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004576 },
4577 "default_entry" : {
Yi Tseng47eac892018-07-11 02:17:04 +08004578 "action_id" : 46,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004579 "action_const" : true,
4580 "action_data" : [],
4581 "action_entry_const" : true
4582 }
4583 },
4584 {
4585 "name" : "tbl_act_1",
4586 "id" : 2,
4587 "key" : [],
4588 "match_type" : "exact",
4589 "type" : "simple",
4590 "max_size" : 1024,
4591 "with_counters" : false,
4592 "support_timeout" : false,
4593 "direct_meters" : null,
Yi Tseng47eac892018-07-11 02:17:04 +08004594 "action_ids" : [41],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004595 "actions" : ["act_2"],
Yi Tseng27b9bc02018-04-12 14:52:40 +08004596 "base_default_next" : "FabricIngress.spgw_ingress.s1u_filter_table",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004597 "next_tables" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004598 "act_2" : "FabricIngress.spgw_ingress.s1u_filter_table"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004599 },
4600 "default_entry" : {
Yi Tseng47eac892018-07-11 02:17:04 +08004601 "action_id" : 41,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004602 "action_const" : true,
4603 "action_data" : [],
4604 "action_entry_const" : true
4605 }
4606 },
4607 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004608 "name" : "FabricIngress.spgw_ingress.s1u_filter_table",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004609 "id" : 3,
4610 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08004611 "filename" : "./include/control/../spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004612 "line" : 65,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004613 "column" : 10,
4614 "source_fragment" : "s1u_filter_table"
4615 },
4616 "key" : [
4617 {
4618 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004619 "name" : "spgw_meta.s1u_sgw_addr",
4620 "target" : ["userMetadata.spgw", "s1u_sgw_addr"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004621 "mask" : null
4622 }
4623 ],
4624 "match_type" : "exact",
4625 "type" : "simple",
4626 "max_size" : 1024,
4627 "with_counters" : false,
4628 "support_timeout" : false,
4629 "direct_meters" : null,
4630 "action_ids" : [1],
4631 "actions" : ["NoAction"],
4632 "base_default_next" : null,
4633 "next_tables" : {
4634 "__HIT__" : "tbl_act_2",
4635 "__MISS__" : "tbl_act_3"
4636 },
4637 "default_entry" : {
4638 "action_id" : 1,
4639 "action_const" : false,
4640 "action_data" : [],
4641 "action_entry_const" : false
4642 }
4643 },
4644 {
4645 "name" : "tbl_act_2",
4646 "id" : 4,
4647 "key" : [],
4648 "match_type" : "exact",
4649 "type" : "simple",
4650 "max_size" : 1024,
4651 "with_counters" : false,
4652 "support_timeout" : false,
4653 "direct_meters" : null,
Yi Tseng47eac892018-07-11 02:17:04 +08004654 "action_ids" : [39],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004655 "actions" : ["act_0"],
4656 "base_default_next" : "node_10",
4657 "next_tables" : {
4658 "act_0" : "node_10"
4659 },
4660 "default_entry" : {
Yi Tseng47eac892018-07-11 02:17:04 +08004661 "action_id" : 39,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004662 "action_const" : true,
4663 "action_data" : [],
4664 "action_entry_const" : true
4665 }
4666 },
4667 {
4668 "name" : "tbl_act_3",
4669 "id" : 5,
4670 "key" : [],
4671 "match_type" : "exact",
4672 "type" : "simple",
4673 "max_size" : 1024,
4674 "with_counters" : false,
4675 "support_timeout" : false,
4676 "direct_meters" : null,
Yi Tseng47eac892018-07-11 02:17:04 +08004677 "action_ids" : [40],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004678 "actions" : ["act_1"],
4679 "base_default_next" : "node_10",
4680 "next_tables" : {
4681 "act_1" : "node_10"
4682 },
4683 "default_entry" : {
Yi Tseng47eac892018-07-11 02:17:04 +08004684 "action_id" : 40,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004685 "action_const" : true,
4686 "action_data" : [],
4687 "action_entry_const" : true
4688 }
4689 },
4690 {
4691 "name" : "tbl_act_4",
4692 "id" : 6,
4693 "key" : [],
4694 "match_type" : "exact",
4695 "type" : "simple",
4696 "max_size" : 1024,
4697 "with_counters" : false,
4698 "support_timeout" : false,
4699 "direct_meters" : null,
Yi Tseng47eac892018-07-11 02:17:04 +08004700 "action_ids" : [42],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004701 "actions" : ["act_3"],
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004702 "base_default_next" : "node_17",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004703 "next_tables" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004704 "act_3" : "node_17"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004705 },
4706 "default_entry" : {
Yi Tseng47eac892018-07-11 02:17:04 +08004707 "action_id" : 42,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004708 "action_const" : true,
4709 "action_data" : [],
4710 "action_entry_const" : true
4711 }
4712 },
4713 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004714 "name" : "FabricIngress.spgw_ingress.ue_filter_table",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004715 "id" : 7,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004716 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08004717 "filename" : "./include/control/../spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004718 "line" : 55,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004719 "column" : 10,
4720 "source_fragment" : "ue_filter_table"
4721 },
4722 "key" : [
4723 {
4724 "match_type" : "lpm",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004725 "name" : "ipv4.dst_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004726 "target" : ["ipv4", "dst_addr"],
4727 "mask" : null
4728 }
4729 ],
4730 "match_type" : "lpm",
4731 "type" : "simple",
4732 "max_size" : 1024,
4733 "with_counters" : false,
4734 "support_timeout" : false,
4735 "direct_meters" : null,
4736 "action_ids" : [0],
4737 "actions" : ["NoAction"],
4738 "base_default_next" : null,
4739 "next_tables" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004740 "__HIT__" : "tbl_act_5",
4741 "__MISS__" : "tbl_act_6"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004742 },
4743 "default_entry" : {
4744 "action_id" : 0,
4745 "action_const" : false,
4746 "action_data" : [],
4747 "action_entry_const" : false
4748 }
4749 },
4750 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004751 "name" : "tbl_act_5",
4752 "id" : 8,
4753 "key" : [],
4754 "match_type" : "exact",
4755 "type" : "simple",
4756 "max_size" : 1024,
4757 "with_counters" : false,
4758 "support_timeout" : false,
4759 "direct_meters" : null,
Yi Tseng47eac892018-07-11 02:17:04 +08004760 "action_ids" : [43],
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004761 "actions" : ["act_4"],
4762 "base_default_next" : "node_15",
4763 "next_tables" : {
4764 "act_4" : "node_15"
4765 },
4766 "default_entry" : {
Yi Tseng47eac892018-07-11 02:17:04 +08004767 "action_id" : 43,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004768 "action_const" : true,
4769 "action_data" : [],
4770 "action_entry_const" : true
4771 }
4772 },
4773 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004774 "name" : "tbl_act_6",
4775 "id" : 9,
4776 "key" : [],
4777 "match_type" : "exact",
4778 "type" : "simple",
4779 "max_size" : 1024,
4780 "with_counters" : false,
4781 "support_timeout" : false,
4782 "direct_meters" : null,
Yi Tseng47eac892018-07-11 02:17:04 +08004783 "action_ids" : [44],
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004784 "actions" : ["act_5"],
4785 "base_default_next" : "node_15",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004786 "next_tables" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004787 "act_5" : "node_15"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004788 },
4789 "default_entry" : {
Yi Tseng47eac892018-07-11 02:17:04 +08004790 "action_id" : 44,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004791 "action_const" : true,
4792 "action_data" : [],
4793 "action_entry_const" : true
4794 }
4795 },
4796 {
4797 "name" : "tbl_act_7",
4798 "id" : 10,
4799 "key" : [],
4800 "match_type" : "exact",
4801 "type" : "simple",
4802 "max_size" : 1024,
4803 "with_counters" : false,
4804 "support_timeout" : false,
4805 "direct_meters" : null,
Yi Tseng47eac892018-07-11 02:17:04 +08004806 "action_ids" : [45],
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004807 "actions" : ["act_6"],
4808 "base_default_next" : "node_17",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004809 "next_tables" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004810 "act_6" : "node_17"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004811 },
4812 "default_entry" : {
Yi Tseng47eac892018-07-11 02:17:04 +08004813 "action_id" : 45,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004814 "action_const" : true,
4815 "action_data" : [],
4816 "action_entry_const" : true
4817 }
4818 },
4819 {
4820 "name" : "tbl_act_8",
4821 "id" : 11,
4822 "key" : [],
4823 "match_type" : "exact",
4824 "type" : "simple",
4825 "max_size" : 1024,
4826 "with_counters" : false,
4827 "support_timeout" : false,
4828 "direct_meters" : null,
Yi Tseng47eac892018-07-11 02:17:04 +08004829 "action_ids" : [47],
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004830 "actions" : ["act_8"],
4831 "base_default_next" : "node_19",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004832 "next_tables" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004833 "act_8" : "node_19"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004834 },
4835 "default_entry" : {
Yi Tseng47eac892018-07-11 02:17:04 +08004836 "action_id" : 47,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004837 "action_const" : true,
4838 "action_data" : [],
4839 "action_entry_const" : true
4840 }
4841 },
4842 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004843 "name" : "tbl_spgw_ingress_gtpu_decap",
Carmelo Cascone14cde402018-01-25 01:57:18 -08004844 "id" : 12,
4845 "key" : [],
4846 "match_type" : "exact",
4847 "type" : "simple",
4848 "max_size" : 1024,
4849 "with_counters" : false,
4850 "support_timeout" : false,
4851 "direct_meters" : null,
Esin Karaman971fb7f2017-12-28 13:44:52 +00004852 "action_ids" : [14],
Yi Tseng27b9bc02018-04-12 14:52:40 +08004853 "actions" : ["FabricIngress.spgw_ingress.gtpu_decap"],
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004854 "base_default_next" : "node_22",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004855 "next_tables" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004856 "FabricIngress.spgw_ingress.gtpu_decap" : "node_22"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004857 },
4858 "default_entry" : {
Esin Karaman971fb7f2017-12-28 13:44:52 +00004859 "action_id" : 14,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004860 "action_const" : true,
4861 "action_data" : [],
4862 "action_entry_const" : true
4863 }
4864 },
4865 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004866 "name" : "FabricIngress.spgw_ingress.dl_sess_lookup",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004867 "id" : 13,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004868 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08004869 "filename" : "./include/control/../spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004870 "line" : 124,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004871 "column" : 10,
4872 "source_fragment" : "dl_sess_lookup"
4873 },
4874 "key" : [
4875 {
4876 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004877 "name" : "ipv4.dst_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004878 "target" : ["ipv4", "dst_addr"],
4879 "mask" : null
4880 }
4881 ],
4882 "match_type" : "exact",
4883 "type" : "simple",
4884 "max_size" : 1024,
4885 "with_counters" : false,
4886 "support_timeout" : false,
4887 "direct_meters" : null,
Esin Karaman971fb7f2017-12-28 13:44:52 +00004888 "action_ids" : [15, 2],
Yi Tseng27b9bc02018-04-12 14:52:40 +08004889 "actions" : ["FabricIngress.spgw_ingress.set_dl_sess_info", "NoAction"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004890 "base_default_next" : null,
4891 "next_tables" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004892 "__HIT__" : "tbl_act_9",
4893 "__MISS__" : "tbl_act_10"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004894 },
4895 "default_entry" : {
4896 "action_id" : 2,
4897 "action_const" : false,
4898 "action_data" : [],
4899 "action_entry_const" : false
4900 }
4901 },
4902 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004903 "name" : "tbl_act_9",
4904 "id" : 14,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004905 "key" : [],
4906 "match_type" : "exact",
4907 "type" : "simple",
4908 "max_size" : 1024,
4909 "with_counters" : false,
4910 "support_timeout" : false,
4911 "direct_meters" : null,
Yi Tseng47eac892018-07-11 02:17:04 +08004912 "action_ids" : [48],
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004913 "actions" : ["act_9"],
4914 "base_default_next" : "node_26",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004915 "next_tables" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004916 "act_9" : "node_26"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004917 },
4918 "default_entry" : {
Yi Tseng47eac892018-07-11 02:17:04 +08004919 "action_id" : 48,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004920 "action_const" : true,
4921 "action_data" : [],
4922 "action_entry_const" : true
4923 }
4924 },
4925 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004926 "name" : "tbl_act_10",
4927 "id" : 15,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004928 "key" : [],
4929 "match_type" : "exact",
4930 "type" : "simple",
4931 "max_size" : 1024,
4932 "with_counters" : false,
4933 "support_timeout" : false,
4934 "direct_meters" : null,
Yi Tseng47eac892018-07-11 02:17:04 +08004935 "action_ids" : [49],
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004936 "actions" : ["act_10"],
4937 "base_default_next" : "node_26",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004938 "next_tables" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004939 "act_10" : "node_26"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004940 },
4941 "default_entry" : {
Yi Tseng47eac892018-07-11 02:17:04 +08004942 "action_id" : 49,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004943 "action_const" : true,
4944 "action_data" : [],
4945 "action_entry_const" : true
4946 }
4947 },
4948 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004949 "name" : "tbl_spgw_ingress_drop_now",
4950 "id" : 16,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004951 "key" : [],
4952 "match_type" : "exact",
4953 "type" : "simple",
4954 "max_size" : 1024,
4955 "with_counters" : false,
4956 "support_timeout" : false,
4957 "direct_meters" : null,
Esin Karaman971fb7f2017-12-28 13:44:52 +00004958 "action_ids" : [13],
Yi Tseng27b9bc02018-04-12 14:52:40 +08004959 "actions" : ["FabricIngress.spgw_ingress.drop_now"],
4960 "base_default_next" : "FabricIngress.spgw_ingress.ue_cdr_table",
Carmelo Cascone14cde402018-01-25 01:57:18 -08004961 "next_tables" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004962 "FabricIngress.spgw_ingress.drop_now" : "FabricIngress.spgw_ingress.ue_cdr_table"
Carmelo Cascone14cde402018-01-25 01:57:18 -08004963 },
4964 "default_entry" : {
Esin Karaman971fb7f2017-12-28 13:44:52 +00004965 "action_id" : 13,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004966 "action_const" : true,
4967 "action_data" : [],
4968 "action_entry_const" : true
4969 }
4970 },
4971 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004972 "name" : "FabricIngress.spgw_ingress.ue_cdr_table",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004973 "id" : 17,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004974 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08004975 "filename" : "./include/control/../spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004976 "line" : 134,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004977 "column" : 10,
4978 "source_fragment" : "ue_cdr_table"
4979 },
4980 "key" : [
4981 {
4982 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004983 "name" : "ipv4.dst_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004984 "target" : ["ipv4", "dst_addr"],
4985 "mask" : null
4986 }
4987 ],
4988 "match_type" : "exact",
4989 "type" : "simple",
4990 "max_size" : 1024,
4991 "with_counters" : true,
4992 "support_timeout" : false,
4993 "direct_meters" : null,
Esin Karaman971fb7f2017-12-28 13:44:52 +00004994 "action_ids" : [16, 3],
Yi Tseng27b9bc02018-04-12 14:52:40 +08004995 "actions" : ["FabricIngress.spgw_ingress.update_ue_cdr", "NoAction"],
4996 "base_default_next" : "tbl_act_11",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004997 "next_tables" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004998 "FabricIngress.spgw_ingress.update_ue_cdr" : "tbl_act_11",
4999 "NoAction" : "tbl_act_11"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005000 },
5001 "default_entry" : {
5002 "action_id" : 3,
5003 "action_const" : false,
5004 "action_data" : [],
5005 "action_entry_const" : false
5006 }
5007 },
5008 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005009 "name" : "tbl_act_11",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005010 "id" : 18,
Yi Tseng27b9bc02018-04-12 14:52:40 +08005011 "key" : [],
5012 "match_type" : "exact",
5013 "type" : "simple",
5014 "max_size" : 1024,
5015 "with_counters" : false,
5016 "support_timeout" : false,
5017 "direct_meters" : null,
Yi Tseng47eac892018-07-11 02:17:04 +08005018 "action_ids" : [50],
Yi Tseng27b9bc02018-04-12 14:52:40 +08005019 "actions" : ["act_11"],
5020 "base_default_next" : "FabricIngress.filtering.ingress_port_vlan",
5021 "next_tables" : {
5022 "act_11" : "FabricIngress.filtering.ingress_port_vlan"
5023 },
5024 "default_entry" : {
Yi Tseng47eac892018-07-11 02:17:04 +08005025 "action_id" : 50,
Yi Tseng27b9bc02018-04-12 14:52:40 +08005026 "action_const" : true,
5027 "action_data" : [],
5028 "action_entry_const" : true
5029 }
5030 },
5031 {
5032 "name" : "FabricIngress.filtering.ingress_port_vlan",
5033 "id" : 19,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005034 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08005035 "filename" : "./include/control/filtering.p4",
5036 "line" : 61,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005037 "column" : 10,
5038 "source_fragment" : "ingress_port_vlan"
5039 },
5040 "key" : [
5041 {
5042 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005043 "name" : "standard_metadata.ingress_port",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005044 "target" : ["standard_metadata", "ingress_port"],
5045 "mask" : null
5046 },
5047 {
5048 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005049 "name" : "hdr.vlan_tag.is_valid",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005050 "target" : ["vlan_tag", "$valid$"],
5051 "mask" : null
5052 },
5053 {
5054 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005055 "name" : "hdr.vlan_tag.vlan_id",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005056 "target" : ["vlan_tag", "vlan_id"],
5057 "mask" : null
5058 }
5059 ],
5060 "match_type" : "ternary",
5061 "type" : "simple",
5062 "max_size" : 1024,
5063 "with_counters" : true,
5064 "support_timeout" : false,
5065 "direct_meters" : null,
Esin Karaman971fb7f2017-12-28 13:44:52 +00005066 "action_ids" : [19, 18, 10, 17],
Yi Tseng27b9bc02018-04-12 14:52:40 +08005067 "actions" : ["FabricIngress.filtering.push_internal_vlan", "FabricIngress.filtering.set_vlan", "nop", "FabricIngress.filtering.drop"],
5068 "base_default_next" : "FabricIngress.filtering.fwd_classifier",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005069 "next_tables" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005070 "FabricIngress.filtering.push_internal_vlan" : "FabricIngress.filtering.fwd_classifier",
5071 "FabricIngress.filtering.set_vlan" : "FabricIngress.filtering.fwd_classifier",
5072 "nop" : "FabricIngress.filtering.fwd_classifier",
5073 "FabricIngress.filtering.drop" : "FabricIngress.filtering.fwd_classifier"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005074 },
5075 "default_entry" : {
Esin Karaman971fb7f2017-12-28 13:44:52 +00005076 "action_id" : 10,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005077 "action_const" : true,
5078 "action_data" : [],
5079 "action_entry_const" : true
5080 }
5081 },
5082 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005083 "name" : "FabricIngress.filtering.fwd_classifier",
5084 "id" : 20,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005085 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08005086 "filename" : "./include/control/filtering.p4",
5087 "line" : 98,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005088 "column" : 10,
5089 "source_fragment" : "fwd_classifier"
5090 },
5091 "key" : [
5092 {
5093 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005094 "name" : "standard_metadata.ingress_port",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005095 "target" : ["standard_metadata", "ingress_port"],
5096 "mask" : null
5097 },
5098 {
5099 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005100 "name" : "hdr.ethernet.dst_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005101 "target" : ["ethernet", "dst_addr"],
5102 "mask" : null
5103 },
5104 {
5105 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005106 "name" : "fabric_metadata.original_ether_type",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005107 "target" : ["scalars", "fabric_metadata_t.original_ether_type"],
5108 "mask" : null
5109 }
5110 ],
5111 "match_type" : "exact",
5112 "type" : "simple",
5113 "max_size" : 1024,
5114 "with_counters" : true,
5115 "support_timeout" : false,
5116 "direct_meters" : null,
Esin Karaman971fb7f2017-12-28 13:44:52 +00005117 "action_ids" : [20],
Yi Tseng27b9bc02018-04-12 14:52:40 +08005118 "actions" : ["FabricIngress.filtering.set_forwarding_type"],
5119 "base_default_next" : "node_32",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005120 "next_tables" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005121 "FabricIngress.filtering.set_forwarding_type" : "node_32"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005122 },
5123 "default_entry" : {
Esin Karaman971fb7f2017-12-28 13:44:52 +00005124 "action_id" : 20,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005125 "action_const" : true,
5126 "action_data" : ["0x0"],
5127 "action_entry_const" : true
5128 }
5129 },
5130 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005131 "name" : "FabricIngress.forwarding.bridging",
5132 "id" : 21,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005133 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08005134 "filename" : "./include/control/forwarding.p4",
5135 "line" : 41,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005136 "column" : 10,
5137 "source_fragment" : "bridging"
5138 },
5139 "key" : [
5140 {
5141 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005142 "name" : "hdr.vlan_tag.vlan_id",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005143 "target" : ["vlan_tag", "vlan_id"],
5144 "mask" : null
5145 },
5146 {
5147 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005148 "name" : "hdr.ethernet.dst_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005149 "target" : ["ethernet", "dst_addr"],
5150 "mask" : null
5151 }
5152 ],
5153 "match_type" : "ternary",
5154 "type" : "simple",
5155 "max_size" : 1024,
5156 "with_counters" : true,
5157 "support_timeout" : false,
5158 "direct_meters" : null,
Yi Tseng47eac892018-07-11 02:17:04 +08005159 "action_ids" : [21, 4],
5160 "actions" : ["FabricIngress.forwarding.set_next_id_bridging", "NoAction"],
Yi Tseng27b9bc02018-04-12 14:52:40 +08005161 "base_default_next" : "FabricIngress.forwarding.acl",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005162 "next_tables" : {
Yi Tseng47eac892018-07-11 02:17:04 +08005163 "FabricIngress.forwarding.set_next_id_bridging" : "FabricIngress.forwarding.acl",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005164 "NoAction" : "FabricIngress.forwarding.acl"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005165 },
5166 "default_entry" : {
5167 "action_id" : 4,
5168 "action_const" : false,
5169 "action_data" : [],
5170 "action_entry_const" : false
5171 }
5172 },
5173 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005174 "name" : "FabricIngress.forwarding.mpls",
5175 "id" : 22,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005176 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08005177 "filename" : "./include/control/forwarding.p4",
5178 "line" : 65,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005179 "column" : 10,
5180 "source_fragment" : "mpls"
5181 },
5182 "key" : [
5183 {
5184 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005185 "name" : "hdr.mpls.label",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005186 "target" : ["mpls", "label"],
5187 "mask" : null
5188 }
5189 ],
5190 "match_type" : "exact",
5191 "type" : "simple",
5192 "max_size" : 1024,
5193 "with_counters" : true,
5194 "support_timeout" : false,
5195 "direct_meters" : null,
Yi Tseng47eac892018-07-11 02:17:04 +08005196 "action_ids" : [22, 5],
Yi Tseng27b9bc02018-04-12 14:52:40 +08005197 "actions" : ["FabricIngress.forwarding.pop_mpls_and_next", "NoAction"],
5198 "base_default_next" : "tbl_act_12",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005199 "next_tables" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005200 "FabricIngress.forwarding.pop_mpls_and_next" : "tbl_act_12",
5201 "NoAction" : "tbl_act_12"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005202 },
5203 "default_entry" : {
5204 "action_id" : 5,
5205 "action_const" : false,
5206 "action_data" : [],
5207 "action_entry_const" : false
5208 }
5209 },
5210 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005211 "name" : "tbl_act_12",
5212 "id" : 23,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005213 "key" : [],
5214 "match_type" : "exact",
5215 "type" : "simple",
5216 "max_size" : 1024,
5217 "with_counters" : false,
5218 "support_timeout" : false,
5219 "direct_meters" : null,
Yi Tseng47eac892018-07-11 02:17:04 +08005220 "action_ids" : [51],
Yi Tseng27b9bc02018-04-12 14:52:40 +08005221 "actions" : ["act_12"],
5222 "base_default_next" : "FabricIngress.forwarding.acl",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005223 "next_tables" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005224 "act_12" : "FabricIngress.forwarding.acl"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005225 },
5226 "default_entry" : {
Yi Tseng47eac892018-07-11 02:17:04 +08005227 "action_id" : 51,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005228 "action_const" : true,
5229 "action_data" : [],
5230 "action_entry_const" : true
5231 }
5232 },
5233 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005234 "name" : "FabricIngress.forwarding.unicast_v4",
5235 "id" : 24,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005236 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08005237 "filename" : "./include/control/forwarding.p4",
5238 "line" : 87,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005239 "column" : 10,
5240 "source_fragment" : "unicast_v4"
5241 },
5242 "key" : [
5243 {
5244 "match_type" : "lpm",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005245 "name" : "hdr.ipv4.dst_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005246 "target" : ["ipv4", "dst_addr"],
5247 "mask" : null
5248 }
5249 ],
5250 "match_type" : "lpm",
5251 "type" : "simple",
5252 "max_size" : 1024,
5253 "with_counters" : true,
5254 "support_timeout" : false,
5255 "direct_meters" : null,
Esin Karaman971fb7f2017-12-28 13:44:52 +00005256 "action_ids" : [23, 6],
Yi Tseng47eac892018-07-11 02:17:04 +08005257 "actions" : ["FabricIngress.forwarding.set_next_id_unicast_v4", "NoAction"],
Yi Tseng27b9bc02018-04-12 14:52:40 +08005258 "base_default_next" : "FabricIngress.forwarding.acl",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005259 "next_tables" : {
Yi Tseng47eac892018-07-11 02:17:04 +08005260 "FabricIngress.forwarding.set_next_id_unicast_v4" : "FabricIngress.forwarding.acl",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005261 "NoAction" : "FabricIngress.forwarding.acl"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005262 },
5263 "default_entry" : {
5264 "action_id" : 6,
5265 "action_const" : false,
5266 "action_data" : [],
5267 "action_entry_const" : false
5268 }
5269 },
5270 {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005271 "name" : "FabricIngress.forwarding.acl",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005272 "id" : 25,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005273 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08005274 "filename" : "./include/control/forwarding.p4",
5275 "line" : 119,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005276 "column" : 10,
5277 "source_fragment" : "acl"
5278 },
5279 "key" : [
5280 {
5281 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005282 "name" : "standard_metadata.ingress_port",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005283 "target" : ["standard_metadata", "ingress_port"],
5284 "mask" : null
5285 },
5286 {
5287 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005288 "name" : "fabric_metadata.ip_proto",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005289 "target" : ["scalars", "fabric_metadata_t.ip_proto"],
5290 "mask" : null
5291 },
5292 {
5293 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005294 "name" : "fabric_metadata.l4_src_port",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005295 "target" : ["scalars", "fabric_metadata_t.l4_src_port"],
5296 "mask" : null
5297 },
5298 {
5299 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005300 "name" : "fabric_metadata.l4_dst_port",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005301 "target" : ["scalars", "fabric_metadata_t.l4_dst_port"],
5302 "mask" : null
5303 },
5304 {
5305 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005306 "name" : "fabric_metadata.original_ether_type",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005307 "target" : ["scalars", "fabric_metadata_t.original_ether_type"],
5308 "mask" : null
5309 },
5310 {
5311 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005312 "name" : "hdr.ethernet.dst_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005313 "target" : ["ethernet", "dst_addr"],
5314 "mask" : null
5315 },
5316 {
5317 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005318 "name" : "hdr.ethernet.src_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005319 "target" : ["ethernet", "src_addr"],
5320 "mask" : null
5321 },
5322 {
5323 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005324 "name" : "hdr.vlan_tag.vlan_id",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005325 "target" : ["vlan_tag", "vlan_id"],
5326 "mask" : null
5327 },
5328 {
5329 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005330 "name" : "hdr.ipv4.src_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005331 "target" : ["ipv4", "src_addr"],
5332 "mask" : null
5333 },
5334 {
5335 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005336 "name" : "hdr.ipv4.dst_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005337 "target" : ["ipv4", "dst_addr"],
5338 "mask" : null
5339 },
5340 {
5341 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005342 "name" : "hdr.icmp.icmp_type",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005343 "target" : ["icmp", "icmp_type"],
5344 "mask" : null
5345 },
5346 {
5347 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005348 "name" : "hdr.icmp.icmp_code",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005349 "target" : ["icmp", "icmp_code"],
5350 "mask" : null
5351 }
5352 ],
5353 "match_type" : "ternary",
5354 "type" : "simple",
5355 "max_size" : 256,
5356 "with_counters" : true,
5357 "support_timeout" : false,
5358 "direct_meters" : null,
Yi Tseng47eac892018-07-11 02:17:04 +08005359 "action_ids" : [24, 25, 26, 11],
5360 "actions" : ["FabricIngress.forwarding.set_next_id_acl", "FabricIngress.forwarding.send_to_controller", "FabricIngress.forwarding.drop", "nop"],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005361 "base_default_next" : "FabricIngress.next.vlan_meta",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005362 "next_tables" : {
Yi Tseng47eac892018-07-11 02:17:04 +08005363 "FabricIngress.forwarding.set_next_id_acl" : "FabricIngress.next.vlan_meta",
5364 "FabricIngress.forwarding.send_to_controller" : "FabricIngress.next.vlan_meta",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005365 "FabricIngress.forwarding.drop" : "FabricIngress.next.vlan_meta",
5366 "nop" : "FabricIngress.next.vlan_meta"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005367 },
5368 "default_entry" : {
Esin Karaman971fb7f2017-12-28 13:44:52 +00005369 "action_id" : 11,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005370 "action_const" : true,
5371 "action_data" : [],
5372 "action_entry_const" : true
5373 }
5374 },
5375 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005376 "name" : "FabricIngress.next.vlan_meta",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005377 "id" : 26,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005378 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08005379 "filename" : "./include/control/next.p4",
5380 "line" : 65,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005381 "column" : 10,
5382 "source_fragment" : "vlan_meta"
5383 },
5384 "key" : [
5385 {
5386 "match_type" : "exact",
5387 "name" : "fabric_metadata.next_id",
5388 "target" : ["scalars", "fabric_metadata_t.next_id"],
5389 "mask" : null
5390 }
5391 ],
5392 "match_type" : "exact",
5393 "type" : "simple",
5394 "max_size" : 1024,
5395 "with_counters" : true,
5396 "support_timeout" : false,
5397 "direct_meters" : null,
Yi Tseng47eac892018-07-11 02:17:04 +08005398 "action_ids" : [27, 12],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005399 "actions" : ["FabricIngress.next.set_vlan", "nop"],
5400 "base_default_next" : "FabricIngress.next.simple",
5401 "next_tables" : {
5402 "FabricIngress.next.set_vlan" : "FabricIngress.next.simple",
5403 "nop" : "FabricIngress.next.simple"
5404 },
5405 "default_entry" : {
Esin Karaman971fb7f2017-12-28 13:44:52 +00005406 "action_id" : 12,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005407 "action_const" : false,
5408 "action_data" : [],
5409 "action_entry_const" : false
5410 }
5411 },
5412 {
5413 "name" : "FabricIngress.next.simple",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005414 "id" : 27,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005415 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08005416 "filename" : "./include/control/next.p4",
5417 "line" : 122,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005418 "column" : 10,
5419 "source_fragment" : "simple"
5420 },
5421 "key" : [
5422 {
5423 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005424 "name" : "fabric_metadata.next_id",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005425 "target" : ["scalars", "fabric_metadata_t.next_id"],
5426 "mask" : null
5427 }
5428 ],
5429 "match_type" : "exact",
5430 "type" : "simple",
5431 "max_size" : 1024,
5432 "with_counters" : true,
5433 "support_timeout" : false,
5434 "direct_meters" : null,
Yi Tseng47eac892018-07-11 02:17:04 +08005435 "action_ids" : [28, 29, 30, 31, 32, 33, 7],
5436 "actions" : ["FabricIngress.next.output_simple", "FabricIngress.next.set_vlan_output", "FabricIngress.next.l3_routing_simple", "FabricIngress.next.mpls_routing_v4_simple", "FabricIngress.next.mpls_routing_v6_simple", "FabricIngress.next.l3_routing_vlan", "NoAction"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005437 "base_default_next" : null,
5438 "next_tables" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005439 "__HIT__" : "tbl_act_13",
5440 "__MISS__" : "tbl_act_14"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005441 },
5442 "default_entry" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005443 "action_id" : 7,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005444 "action_const" : false,
5445 "action_data" : [],
5446 "action_entry_const" : false
5447 }
5448 },
5449 {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08005450 "name" : "tbl_act_13",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005451 "id" : 28,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08005452 "key" : [],
5453 "match_type" : "exact",
5454 "type" : "simple",
5455 "max_size" : 1024,
5456 "with_counters" : false,
5457 "support_timeout" : false,
5458 "direct_meters" : null,
Yi Tseng47eac892018-07-11 02:17:04 +08005459 "action_ids" : [52],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005460 "actions" : ["act_13"],
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005461 "base_default_next" : "node_44",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005462 "next_tables" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005463 "act_13" : "node_44"
Yi Tseng27b9bc02018-04-12 14:52:40 +08005464 },
5465 "default_entry" : {
Yi Tseng47eac892018-07-11 02:17:04 +08005466 "action_id" : 52,
Yi Tseng27b9bc02018-04-12 14:52:40 +08005467 "action_const" : true,
5468 "action_data" : [],
5469 "action_entry_const" : true
5470 }
5471 },
5472 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005473 "name" : "tbl_act_14",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005474 "id" : 29,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005475 "key" : [],
5476 "match_type" : "exact",
5477 "type" : "simple",
5478 "max_size" : 1024,
5479 "with_counters" : false,
5480 "support_timeout" : false,
5481 "direct_meters" : null,
Yi Tseng47eac892018-07-11 02:17:04 +08005482 "action_ids" : [53],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005483 "actions" : ["act_14"],
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005484 "base_default_next" : "node_44",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005485 "next_tables" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005486 "act_14" : "node_44"
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005487 },
5488 "default_entry" : {
Yi Tseng47eac892018-07-11 02:17:04 +08005489 "action_id" : 53,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005490 "action_const" : true,
5491 "action_data" : [],
5492 "action_entry_const" : true
5493 }
5494 },
5495 {
5496 "name" : "tbl_act_15",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005497 "id" : 30,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005498 "key" : [],
5499 "match_type" : "exact",
5500 "type" : "simple",
5501 "max_size" : 1024,
5502 "with_counters" : false,
5503 "support_timeout" : false,
5504 "direct_meters" : null,
Yi Tseng47eac892018-07-11 02:17:04 +08005505 "action_ids" : [54],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005506 "actions" : ["act_15"],
5507 "base_default_next" : "FabricIngress.next.hashed",
5508 "next_tables" : {
5509 "act_15" : "FabricIngress.next.hashed"
5510 },
5511 "default_entry" : {
Yi Tseng47eac892018-07-11 02:17:04 +08005512 "action_id" : 54,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005513 "action_const" : true,
5514 "action_data" : [],
5515 "action_entry_const" : true
5516 }
5517 },
5518 {
5519 "name" : "FabricIngress.next.hashed",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005520 "id" : 31,
Yi Tseng27b9bc02018-04-12 14:52:40 +08005521 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08005522 "filename" : "./include/control/next.p4",
5523 "line" : 175,
Yi Tseng27b9bc02018-04-12 14:52:40 +08005524 "column" : 10,
5525 "source_fragment" : "hashed"
5526 },
5527 "key" : [
5528 {
5529 "match_type" : "exact",
5530 "name" : "fabric_metadata.next_id",
5531 "target" : ["scalars", "fabric_metadata_t.next_id"],
5532 "mask" : null
5533 }
5534 ],
5535 "match_type" : "exact",
5536 "type" : "indirect_ws",
5537 "action_profile" : "FabricIngress.next.ecmp_selector",
5538 "max_size" : 1024,
5539 "with_counters" : true,
5540 "support_timeout" : false,
5541 "direct_meters" : null,
Yi Tseng47eac892018-07-11 02:17:04 +08005542 "action_ids" : [34, 35, 36, 8],
5543 "actions" : ["FabricIngress.next.l3_routing_hashed", "FabricIngress.next.mpls_routing_v4_hashed", "FabricIngress.next.mpls_routing_v6_hashed", "NoAction"],
Esin Karaman971fb7f2017-12-28 13:44:52 +00005544 "base_default_next" : "FabricIngress.next.multicast",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005545 "next_tables" : {
Yi Tseng47eac892018-07-11 02:17:04 +08005546 "FabricIngress.next.l3_routing_hashed" : "FabricIngress.next.multicast",
5547 "FabricIngress.next.mpls_routing_v4_hashed" : "FabricIngress.next.multicast",
5548 "FabricIngress.next.mpls_routing_v6_hashed" : "FabricIngress.next.multicast",
Esin Karaman971fb7f2017-12-28 13:44:52 +00005549 "NoAction" : "FabricIngress.next.multicast"
5550 }
5551 },
5552 {
5553 "name" : "FabricIngress.next.multicast",
5554 "id" : 32,
5555 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08005556 "filename" : "./include/control/next.p4",
5557 "line" : 206,
Esin Karaman971fb7f2017-12-28 13:44:52 +00005558 "column" : 10,
5559 "source_fragment" : "multicast"
5560 },
5561 "key" : [
5562 {
5563 "match_type" : "exact",
5564 "name" : "fabric_metadata.next_id",
5565 "target" : ["scalars", "fabric_metadata_t.next_id"],
5566 "mask" : null
5567 }
5568 ],
5569 "match_type" : "exact",
5570 "type" : "simple",
5571 "max_size" : 1024,
5572 "with_counters" : true,
5573 "support_timeout" : false,
5574 "direct_meters" : null,
Yi Tseng47eac892018-07-11 02:17:04 +08005575 "action_ids" : [37, 9],
Esin Karaman971fb7f2017-12-28 13:44:52 +00005576 "actions" : ["FabricIngress.next.set_mcast_group", "NoAction"],
5577 "base_default_next" : "node_50",
5578 "next_tables" : {
5579 "FabricIngress.next.set_mcast_group" : "node_50",
5580 "NoAction" : "node_50"
5581 },
5582 "default_entry" : {
5583 "action_id" : 9,
5584 "action_const" : false,
5585 "action_data" : [],
5586 "action_entry_const" : false
Yi Tseng27b9bc02018-04-12 14:52:40 +08005587 }
5588 },
5589 {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005590 "name" : "tbl_act_16",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005591 "id" : 33,
Yi Tseng27b9bc02018-04-12 14:52:40 +08005592 "key" : [],
5593 "match_type" : "exact",
5594 "type" : "simple",
5595 "max_size" : 1024,
5596 "with_counters" : false,
5597 "support_timeout" : false,
5598 "direct_meters" : null,
Yi Tseng47eac892018-07-11 02:17:04 +08005599 "action_ids" : [55],
Esin Karaman971fb7f2017-12-28 13:44:52 +00005600 "actions" : ["act_16"],
5601 "base_default_next" : "node_52",
5602 "next_tables" : {
5603 "act_16" : "node_52"
5604 },
5605 "default_entry" : {
Yi Tseng47eac892018-07-11 02:17:04 +08005606 "action_id" : 55,
Esin Karaman971fb7f2017-12-28 13:44:52 +00005607 "action_const" : true,
5608 "action_data" : [],
5609 "action_entry_const" : true
5610 }
5611 },
5612 {
5613 "name" : "tbl_act_17",
5614 "id" : 34,
5615 "key" : [],
5616 "match_type" : "exact",
5617 "type" : "simple",
5618 "max_size" : 1024,
5619 "with_counters" : false,
5620 "support_timeout" : false,
5621 "direct_meters" : null,
Yi Tseng47eac892018-07-11 02:17:04 +08005622 "action_ids" : [56],
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005623 "actions" : ["act_17"],
Yi Tseng27b9bc02018-04-12 14:52:40 +08005624 "base_default_next" : null,
5625 "next_tables" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005626 "act_17" : null
Yi Tseng27b9bc02018-04-12 14:52:40 +08005627 },
5628 "default_entry" : {
Yi Tseng47eac892018-07-11 02:17:04 +08005629 "action_id" : 56,
Carmelo Cascone14cde402018-01-25 01:57:18 -08005630 "action_const" : true,
5631 "action_data" : [],
5632 "action_entry_const" : true
5633 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005634 }
5635 ],
5636 "action_profiles" : [
5637 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005638 "name" : "FabricIngress.next.ecmp_selector",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005639 "id" : 0,
5640 "max_size" : 64,
5641 "selector" : {
5642 "algo" : "crc16",
5643 "input" : [
5644 {
5645 "type" : "field",
Yi Tseng3d3956d2018-01-31 17:28:05 -08005646 "value" : ["ipv4", "dst_addr"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005647 },
5648 {
5649 "type" : "field",
Yi Tseng3d3956d2018-01-31 17:28:05 -08005650 "value" : ["ipv4", "src_addr"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005651 },
5652 {
5653 "type" : "field",
5654 "value" : ["scalars", "fabric_metadata_t.ip_proto"]
5655 },
5656 {
5657 "type" : "field",
5658 "value" : ["scalars", "fabric_metadata_t.l4_src_port"]
5659 },
5660 {
5661 "type" : "field",
5662 "value" : ["scalars", "fabric_metadata_t.l4_dst_port"]
5663 }
5664 ]
5665 }
5666 }
5667 ],
5668 "conditionals" : [
5669 {
5670 "name" : "node_2",
5671 "id" : 0,
5672 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08005673 "filename" : "./include/control/packetio.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005674 "line" : 25,
5675 "column" : 12,
5676 "source_fragment" : "hdr.packet_out.isValid()"
5677 },
5678 "expression" : {
5679 "type" : "expression",
5680 "value" : {
5681 "op" : "d2b",
5682 "left" : null,
5683 "right" : {
5684 "type" : "field",
5685 "value" : ["packet_out", "$valid$"]
5686 }
5687 }
5688 },
5689 "true_next" : "tbl_act",
5690 "false_next" : "tbl_act_0"
5691 },
5692 {
5693 "name" : "node_5",
5694 "id" : 1,
5695 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08005696 "filename" : "./include/control/../spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005697 "line" : 147,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005698 "column" : 12,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005699 "source_fragment" : "gtpu.isValid()"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005700 },
5701 "expression" : {
5702 "type" : "expression",
5703 "value" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005704 "op" : "d2b",
5705 "left" : null,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005706 "right" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005707 "type" : "field",
5708 "value" : ["gtpu", "$valid$"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005709 }
5710 }
5711 },
5712 "true_next" : "tbl_act_1",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005713 "false_next" : "FabricIngress.spgw_ingress.ue_filter_table"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005714 },
5715 {
5716 "name" : "node_10",
5717 "id" : 2,
5718 "expression" : {
5719 "type" : "expression",
5720 "value" : {
5721 "op" : "d2b",
5722 "left" : null,
5723 "right" : {
5724 "type" : "field",
5725 "value" : ["scalars", "spgw_ingress_tmp_2"]
5726 }
5727 }
5728 },
5729 "true_next" : "tbl_act_4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005730 "false_next" : "node_17"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005731 },
5732 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005733 "name" : "node_15",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005734 "id" : 3,
5735 "expression" : {
5736 "type" : "expression",
5737 "value" : {
5738 "op" : "d2b",
5739 "left" : null,
5740 "right" : {
5741 "type" : "field",
5742 "value" : ["scalars", "spgw_ingress_tmp_3"]
5743 }
5744 }
5745 },
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005746 "true_next" : "tbl_act_7",
5747 "false_next" : "node_17"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005748 },
5749 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005750 "name" : "node_17",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005751 "id" : 4,
5752 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08005753 "filename" : "./include/control/../spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005754 "line" : 167,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005755 "column" : 12,
Esin Karaman971fb7f2017-12-28 13:44:52 +00005756 "source_fragment" : "spgw_meta.do_spgw == false"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005757 },
5758 "expression" : {
5759 "type" : "expression",
5760 "value" : {
Carmelo Cascone228092b2018-06-15 20:41:10 +02005761 "op" : "==",
5762 "left" : {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005763 "type" : "expression",
5764 "value" : {
5765 "op" : "d2b",
5766 "left" : null,
5767 "right" : {
5768 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005769 "value" : ["userMetadata.spgw", "do_spgw"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005770 }
5771 }
Carmelo Cascone228092b2018-06-15 20:41:10 +02005772 },
5773 "right" : {
5774 "type" : "bool",
Esin Karaman971fb7f2017-12-28 13:44:52 +00005775 "value" : false
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005776 }
5777 }
5778 },
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005779 "true_next" : "tbl_act_8",
5780 "false_next" : "node_19"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005781 },
5782 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005783 "name" : "node_19",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005784 "id" : 5,
5785 "expression" : {
5786 "type" : "expression",
5787 "value" : {
5788 "op" : "not",
5789 "left" : null,
5790 "right" : {
5791 "type" : "expression",
5792 "value" : {
5793 "op" : "d2b",
5794 "left" : null,
5795 "right" : {
5796 "type" : "field",
5797 "value" : ["scalars", "spgw_ingress_hasReturned_0"]
5798 }
5799 }
5800 }
5801 }
5802 },
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005803 "true_next" : "node_20",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005804 "false_next" : "FabricIngress.filtering.ingress_port_vlan"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005805 },
5806 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005807 "name" : "node_20",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005808 "id" : 6,
5809 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08005810 "filename" : "./include/control/../spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005811 "line" : 172,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005812 "column" : 12,
5813 "source_fragment" : "spgw_meta.direction == DIR_UPLINK"
5814 },
5815 "expression" : {
5816 "type" : "expression",
5817 "value" : {
5818 "op" : "==",
5819 "left" : {
5820 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005821 "value" : ["userMetadata.spgw", "direction"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005822 },
5823 "right" : {
5824 "type" : "hexstr",
5825 "value" : "0x00"
5826 }
5827 }
5828 },
5829 "true_next" : "tbl_spgw_ingress_gtpu_decap",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005830 "false_next" : "node_22"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005831 },
5832 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005833 "name" : "node_22",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005834 "id" : 7,
5835 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08005836 "filename" : "./include/control/../spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005837 "line" : 189,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005838 "column" : 12,
5839 "source_fragment" : "spgw_meta.direction == DIR_DOWNLINK"
5840 },
5841 "expression" : {
5842 "type" : "expression",
5843 "value" : {
5844 "op" : "==",
5845 "left" : {
5846 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005847 "value" : ["userMetadata.spgw", "direction"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005848 },
5849 "right" : {
5850 "type" : "hexstr",
5851 "value" : "0x01"
5852 }
5853 }
5854 },
Yi Tseng27b9bc02018-04-12 14:52:40 +08005855 "true_next" : "FabricIngress.spgw_ingress.dl_sess_lookup",
5856 "false_next" : "tbl_act_11"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005857 },
5858 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005859 "name" : "node_26",
5860 "id" : 8,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005861 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08005862 "filename" : "./include/control/../spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005863 "line" : 190,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005864 "column" : 16,
5865 "source_fragment" : "!dl_sess_lookup.apply().hit"
5866 },
5867 "expression" : {
5868 "type" : "expression",
5869 "value" : {
5870 "op" : "not",
5871 "left" : null,
5872 "right" : {
5873 "type" : "expression",
5874 "value" : {
5875 "op" : "d2b",
5876 "left" : null,
5877 "right" : {
5878 "type" : "field",
5879 "value" : ["scalars", "spgw_ingress_tmp_4"]
5880 }
5881 }
5882 }
5883 }
5884 },
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005885 "true_next" : "tbl_spgw_ingress_drop_now",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005886 "false_next" : "FabricIngress.spgw_ingress.ue_cdr_table"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005887 },
5888 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005889 "name" : "node_32",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005890 "id" : 9,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005891 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08005892 "filename" : "./include/control/forwarding.p4",
5893 "line" : 222,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005894 "column" : 11,
5895 "source_fragment" : "fabric_metadata.fwd_type == FWD_BRIDGING"
5896 },
5897 "expression" : {
5898 "type" : "expression",
5899 "value" : {
5900 "op" : "==",
5901 "left" : {
5902 "type" : "field",
5903 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
5904 },
5905 "right" : {
5906 "type" : "hexstr",
5907 "value" : "0x00"
5908 }
5909 }
5910 },
Yi Tseng27b9bc02018-04-12 14:52:40 +08005911 "true_next" : "FabricIngress.forwarding.bridging",
5912 "false_next" : "node_34"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005913 },
5914 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005915 "name" : "node_34",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005916 "id" : 10,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005917 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08005918 "filename" : "./include/control/forwarding.p4",
5919 "line" : 223,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005920 "column" : 17,
5921 "source_fragment" : "fabric_metadata.fwd_type == FWD_MPLS"
5922 },
5923 "expression" : {
5924 "type" : "expression",
5925 "value" : {
5926 "op" : "==",
5927 "left" : {
5928 "type" : "field",
5929 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
5930 },
5931 "right" : {
5932 "type" : "hexstr",
5933 "value" : "0x01"
5934 }
5935 }
5936 },
Yi Tseng27b9bc02018-04-12 14:52:40 +08005937 "true_next" : "FabricIngress.forwarding.mpls",
5938 "false_next" : "node_37"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005939 },
5940 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005941 "name" : "node_37",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005942 "id" : 11,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005943 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08005944 "filename" : "./include/control/forwarding.p4",
5945 "line" : 238,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005946 "column" : 17,
5947 "source_fragment" : "fabric_metadata.fwd_type == FWD_IPV4_UNICAST"
5948 },
5949 "expression" : {
5950 "type" : "expression",
5951 "value" : {
5952 "op" : "==",
5953 "left" : {
5954 "type" : "field",
5955 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
5956 },
5957 "right" : {
5958 "type" : "hexstr",
5959 "value" : "0x02"
5960 }
5961 }
5962 },
Yi Tseng27b9bc02018-04-12 14:52:40 +08005963 "true_next" : "FabricIngress.forwarding.unicast_v4",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005964 "false_next" : "FabricIngress.forwarding.acl"
5965 },
5966 {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005967 "name" : "node_44",
5968 "id" : 12,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005969 "expression" : {
5970 "type" : "expression",
5971 "value" : {
5972 "op" : "d2b",
5973 "left" : null,
5974 "right" : {
5975 "type" : "field",
5976 "value" : ["scalars", "next_tmp_0"]
5977 }
5978 }
5979 },
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005980 "true_next" : "node_45",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005981 "false_next" : "FabricIngress.next.hashed"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005982 },
5983 {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005984 "name" : "node_45",
5985 "id" : 13,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005986 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08005987 "filename" : "./include/control/next.p4",
5988 "line" : 219,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005989 "column" : 16,
5990 "source_fragment" : "!hdr.mpls.isValid()"
5991 },
5992 "expression" : {
5993 "type" : "expression",
5994 "value" : {
5995 "op" : "not",
5996 "left" : null,
5997 "right" : {
5998 "type" : "expression",
5999 "value" : {
6000 "op" : "d2b",
6001 "left" : null,
6002 "right" : {
6003 "type" : "field",
6004 "value" : ["mpls", "$valid$"]
6005 }
6006 }
6007 }
6008 }
6009 },
Carmelo Cascone6af4e172018-06-15 16:01:30 +02006010 "true_next" : "node_46",
Yi Tseng27b9bc02018-04-12 14:52:40 +08006011 "false_next" : "FabricIngress.next.hashed"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006012 },
6013 {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02006014 "name" : "node_46",
6015 "id" : 14,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006016 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08006017 "filename" : "./include/control/next.p4",
6018 "line" : 220,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006019 "column" : 19,
6020 "source_fragment" : "hdr.ipv4.isValid()"
6021 },
6022 "expression" : {
6023 "type" : "expression",
6024 "value" : {
6025 "op" : "d2b",
6026 "left" : null,
6027 "right" : {
6028 "type" : "field",
6029 "value" : ["ipv4", "$valid$"]
6030 }
6031 }
6032 },
Yi Tseng27b9bc02018-04-12 14:52:40 +08006033 "true_next" : "tbl_act_15",
Yi Tseng27b9bc02018-04-12 14:52:40 +08006034 "false_next" : "FabricIngress.next.hashed"
6035 },
6036 {
Esin Karaman971fb7f2017-12-28 13:44:52 +00006037 "name" : "node_50",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02006038 "id" : 15,
Yi Tseng27b9bc02018-04-12 14:52:40 +08006039 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08006040 "filename" : "./include/control/port_counter.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006041 "line" : 27,
6042 "column" : 12,
6043 "source_fragment" : "standard_metadata.egress_spec < 511"
6044 },
6045 "expression" : {
6046 "type" : "expression",
6047 "value" : {
6048 "op" : "<",
6049 "left" : {
6050 "type" : "field",
6051 "value" : ["standard_metadata", "egress_spec"]
6052 },
6053 "right" : {
6054 "type" : "hexstr",
6055 "value" : "0x01ff"
6056 }
6057 }
6058 },
Carmelo Cascone6af4e172018-06-15 16:01:30 +02006059 "true_next" : "tbl_act_16",
Esin Karaman971fb7f2017-12-28 13:44:52 +00006060 "false_next" : "node_52"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006061 },
6062 {
Esin Karaman971fb7f2017-12-28 13:44:52 +00006063 "name" : "node_52",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02006064 "id" : 16,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006065 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08006066 "filename" : "./include/control/port_counter.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006067 "line" : 30,
6068 "column" : 12,
6069 "source_fragment" : "standard_metadata.ingress_port < 511"
6070 },
6071 "expression" : {
6072 "type" : "expression",
6073 "value" : {
6074 "op" : "<",
6075 "left" : {
6076 "type" : "field",
6077 "value" : ["standard_metadata", "ingress_port"]
6078 },
6079 "right" : {
6080 "type" : "hexstr",
6081 "value" : "0x01ff"
6082 }
6083 }
6084 },
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006085 "false_next" : null,
Carmelo Cascone6af4e172018-06-15 16:01:30 +02006086 "true_next" : "tbl_act_17"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006087 }
6088 ]
6089 },
6090 {
6091 "name" : "egress",
6092 "id" : 1,
6093 "source_info" : {
6094 "filename" : "fabric.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006095 "line" : 61,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006096 "column" : 8,
6097 "source_fragment" : "FabricEgress"
6098 },
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006099 "init_table" : "FabricEgress.egress_next.egress_vlan",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006100 "tables" : [
6101 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006102 "name" : "FabricEgress.egress_next.egress_vlan",
Esin Karaman971fb7f2017-12-28 13:44:52 +00006103 "id" : 35,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006104 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08006105 "filename" : "./include/control/next.p4",
6106 "line" : 252,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006107 "column" : 10,
6108 "source_fragment" : "egress_vlan"
6109 },
6110 "key" : [
6111 {
6112 "match_type" : "exact",
6113 "name" : "hdr.vlan_tag.vlan_id",
6114 "target" : ["vlan_tag", "vlan_id"],
6115 "mask" : null
6116 },
6117 {
6118 "match_type" : "exact",
6119 "name" : "standard_metadata.egress_port",
6120 "target" : ["standard_metadata", "egress_port"],
6121 "mask" : null
6122 }
6123 ],
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08006124 "match_type" : "exact",
6125 "type" : "simple",
6126 "max_size" : 1024,
Yi Tseng47eac892018-07-11 02:17:04 +08006127 "with_counters" : true,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08006128 "support_timeout" : false,
6129 "direct_meters" : null,
Yi Tseng47eac892018-07-11 02:17:04 +08006130 "action_ids" : [60, 57],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006131 "actions" : ["FabricEgress.egress_next.pop_vlan", "nop"],
Esin Karaman971fb7f2017-12-28 13:44:52 +00006132 "base_default_next" : "node_57",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08006133 "next_tables" : {
Esin Karaman971fb7f2017-12-28 13:44:52 +00006134 "FabricEgress.egress_next.pop_vlan" : "node_57",
6135 "nop" : "node_57"
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08006136 },
6137 "default_entry" : {
Yi Tseng47eac892018-07-11 02:17:04 +08006138 "action_id" : 57,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006139 "action_const" : false,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08006140 "action_data" : [],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006141 "action_entry_const" : false
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08006142 }
6143 },
6144 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006145 "name" : "tbl_pkt_io_egress_pop_vlan",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02006146 "id" : 36,
6147 "key" : [],
6148 "match_type" : "exact",
6149 "type" : "simple",
6150 "max_size" : 1024,
6151 "with_counters" : false,
6152 "support_timeout" : false,
6153 "direct_meters" : null,
Yi Tseng47eac892018-07-11 02:17:04 +08006154 "action_ids" : [59],
Esin Karaman971fb7f2017-12-28 13:44:52 +00006155 "actions" : ["FabricEgress.pkt_io_egress.pop_vlan"],
6156 "base_default_next" : "tbl_act_18",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02006157 "next_tables" : {
Esin Karaman971fb7f2017-12-28 13:44:52 +00006158 "FabricEgress.pkt_io_egress.pop_vlan" : "tbl_act_18"
Carmelo Cascone6af4e172018-06-15 16:01:30 +02006159 },
6160 "default_entry" : {
Yi Tseng47eac892018-07-11 02:17:04 +08006161 "action_id" : 59,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08006162 "action_const" : true,
6163 "action_data" : [],
6164 "action_entry_const" : true
6165 }
6166 },
6167 {
Esin Karaman971fb7f2017-12-28 13:44:52 +00006168 "name" : "tbl_act_18",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02006169 "id" : 37,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006170 "key" : [],
6171 "match_type" : "exact",
6172 "type" : "simple",
6173 "max_size" : 1024,
6174 "with_counters" : false,
6175 "support_timeout" : false,
6176 "direct_meters" : null,
Yi Tseng47eac892018-07-11 02:17:04 +08006177 "action_ids" : [61],
Esin Karaman971fb7f2017-12-28 13:44:52 +00006178 "actions" : ["act_18"],
6179 "base_default_next" : "tbl_act_19",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006180 "next_tables" : {
Esin Karaman971fb7f2017-12-28 13:44:52 +00006181 "act_18" : "tbl_act_19"
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006182 },
6183 "default_entry" : {
Yi Tseng47eac892018-07-11 02:17:04 +08006184 "action_id" : 61,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006185 "action_const" : true,
6186 "action_data" : [],
6187 "action_entry_const" : true
6188 }
6189 },
6190 {
Esin Karaman971fb7f2017-12-28 13:44:52 +00006191 "name" : "tbl_act_19",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02006192 "id" : 38,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006193 "key" : [],
6194 "match_type" : "exact",
6195 "type" : "simple",
6196 "max_size" : 1024,
6197 "with_counters" : false,
6198 "support_timeout" : false,
6199 "direct_meters" : null,
Yi Tseng47eac892018-07-11 02:17:04 +08006200 "action_ids" : [62],
Esin Karaman971fb7f2017-12-28 13:44:52 +00006201 "actions" : ["act_19"],
6202 "base_default_next" : "node_62",
6203 "next_tables" : {
6204 "act_19" : "node_62"
6205 },
6206 "default_entry" : {
Yi Tseng47eac892018-07-11 02:17:04 +08006207 "action_id" : 62,
Esin Karaman971fb7f2017-12-28 13:44:52 +00006208 "action_const" : true,
6209 "action_data" : [],
6210 "action_entry_const" : true
6211 }
6212 },
6213 {
6214 "name" : "tbl_spgw_egress_gtpu_encap",
6215 "id" : 39,
6216 "key" : [],
6217 "match_type" : "exact",
6218 "type" : "simple",
6219 "max_size" : 1024,
6220 "with_counters" : false,
6221 "support_timeout" : false,
6222 "direct_meters" : null,
Yi Tseng47eac892018-07-11 02:17:04 +08006223 "action_ids" : [58],
Yi Tseng27b9bc02018-04-12 14:52:40 +08006224 "actions" : ["FabricEgress.spgw_egress.gtpu_encap"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006225 "base_default_next" : null,
6226 "next_tables" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08006227 "FabricEgress.spgw_egress.gtpu_encap" : null
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006228 },
6229 "default_entry" : {
Yi Tseng47eac892018-07-11 02:17:04 +08006230 "action_id" : 58,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006231 "action_const" : true,
6232 "action_data" : [],
6233 "action_entry_const" : true
6234 }
6235 }
6236 ],
6237 "action_profiles" : [],
6238 "conditionals" : [
6239 {
Esin Karaman971fb7f2017-12-28 13:44:52 +00006240 "name" : "node_57",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02006241 "id" : 17,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006242 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08006243 "filename" : "./include/control/packetio.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006244 "line" : 42,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006245 "column" : 12,
Carmelo Casconeb531b682018-01-30 17:55:56 -08006246 "source_fragment" : "standard_metadata.egress_port == 255"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006247 },
6248 "expression" : {
6249 "type" : "expression",
6250 "value" : {
6251 "op" : "==",
6252 "left" : {
6253 "type" : "field",
6254 "value" : ["standard_metadata", "egress_port"]
6255 },
6256 "right" : {
6257 "type" : "hexstr",
6258 "value" : "0x00ff"
6259 }
6260 }
6261 },
Esin Karaman971fb7f2017-12-28 13:44:52 +00006262 "true_next" : "node_58",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02006263 "false_next" : "tbl_act_19"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006264 },
6265 {
Esin Karaman971fb7f2017-12-28 13:44:52 +00006266 "name" : "node_58",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02006267 "id" : 18,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006268 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08006269 "filename" : "./include/control/packetio.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006270 "line" : 43,
6271 "column" : 16,
Carmelo Cascone228092b2018-06-15 20:41:10 +02006272 "source_fragment" : "hdr.vlan_tag.isValid() && fabric_metadata.pop_vlan_when_packet_in == true"
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006273 },
6274 "expression" : {
6275 "type" : "expression",
6276 "value" : {
6277 "op" : "and",
6278 "left" : {
6279 "type" : "expression",
6280 "value" : {
6281 "op" : "d2b",
6282 "left" : null,
6283 "right" : {
6284 "type" : "field",
6285 "value" : ["vlan_tag", "$valid$"]
6286 }
6287 }
6288 },
6289 "right" : {
6290 "type" : "expression",
6291 "value" : {
Carmelo Cascone228092b2018-06-15 20:41:10 +02006292 "op" : "==",
6293 "left" : {
6294 "type" : "expression",
6295 "value" : {
6296 "op" : "d2b",
6297 "left" : null,
6298 "right" : {
6299 "type" : "field",
6300 "value" : ["scalars", "fabric_metadata_t.pop_vlan_when_packet_in"]
6301 }
6302 }
6303 },
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006304 "right" : {
Carmelo Cascone228092b2018-06-15 20:41:10 +02006305 "type" : "bool",
6306 "value" : true
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006307 }
6308 }
6309 }
6310 }
6311 },
6312 "true_next" : "tbl_pkt_io_egress_pop_vlan",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02006313 "false_next" : "tbl_act_18"
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006314 },
6315 {
Esin Karaman971fb7f2017-12-28 13:44:52 +00006316 "name" : "node_62",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02006317 "id" : 19,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006318 "source_info" : {
Yi Tseng47eac892018-07-11 02:17:04 +08006319 "filename" : "./include/control/../spgw.p4",
Yi Tseng27b9bc02018-04-12 14:52:40 +08006320 "line" : 249,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006321 "column" : 12,
Carmelo Cascone228092b2018-06-15 20:41:10 +02006322 "source_fragment" : "spgw_meta.do_spgw == true && spgw_meta.direction == DIR_DOWNLINK"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006323 },
6324 "expression" : {
6325 "type" : "expression",
6326 "value" : {
6327 "op" : "and",
6328 "left" : {
6329 "type" : "expression",
6330 "value" : {
Carmelo Cascone228092b2018-06-15 20:41:10 +02006331 "op" : "==",
6332 "left" : {
6333 "type" : "expression",
6334 "value" : {
6335 "op" : "d2b",
6336 "left" : null,
6337 "right" : {
6338 "type" : "field",
6339 "value" : ["userMetadata.spgw", "do_spgw"]
6340 }
6341 }
6342 },
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006343 "right" : {
Carmelo Cascone228092b2018-06-15 20:41:10 +02006344 "type" : "bool",
6345 "value" : true
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006346 }
6347 }
6348 },
6349 "right" : {
6350 "type" : "expression",
6351 "value" : {
6352 "op" : "==",
6353 "left" : {
6354 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08006355 "value" : ["userMetadata.spgw", "direction"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006356 },
6357 "right" : {
6358 "type" : "hexstr",
6359 "value" : "0x01"
6360 }
6361 }
6362 }
6363 }
6364 },
6365 "false_next" : null,
6366 "true_next" : "tbl_spgw_egress_gtpu_encap"
6367 }
6368 ]
6369 }
6370 ],
6371 "checksums" : [
6372 {
6373 "name" : "cksum",
6374 "id" : 0,
6375 "target" : ["ipv4", "hdr_checksum"],
6376 "type" : "generic",
6377 "calculation" : "calc",
6378 "if_cond" : {
6379 "type" : "expression",
6380 "value" : {
6381 "op" : "d2b",
6382 "left" : null,
6383 "right" : {
6384 "type" : "field",
6385 "value" : ["ipv4", "$valid$"]
6386 }
6387 }
6388 }
6389 },
6390 {
6391 "name" : "cksum_0",
6392 "id" : 1,
Carmelo Cascone6af4e172018-06-15 16:01:30 +02006393 "target" : ["gtpu_ipv4", "hdr_checksum"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006394 "type" : "generic",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006395 "calculation" : "calc_0",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006396 "if_cond" : {
6397 "type" : "expression",
6398 "value" : {
6399 "op" : "d2b",
6400 "left" : null,
6401 "right" : {
6402 "type" : "field",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02006403 "value" : ["gtpu_ipv4", "$valid$"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006404 }
6405 }
6406 }
6407 },
6408 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006409 "name" : "cksum_1",
6410 "id" : 2,
Carmelo Cascone6af4e172018-06-15 16:01:30 +02006411 "target" : ["ipv4", "hdr_checksum"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006412 "type" : "generic",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006413 "calculation" : "calc_1",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006414 "if_cond" : {
6415 "type" : "expression",
6416 "value" : {
6417 "op" : "d2b",
6418 "left" : null,
6419 "right" : {
6420 "type" : "field",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02006421 "value" : ["ipv4", "$valid$"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006422 }
6423 }
6424 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006425 }
6426 ],
6427 "force_arith" : [],
6428 "extern_instances" : [],
6429 "field_aliases" : [
6430 [
6431 "queueing_metadata.enq_timestamp",
6432 ["standard_metadata", "enq_timestamp"]
6433 ],
6434 [
6435 "queueing_metadata.enq_qdepth",
6436 ["standard_metadata", "enq_qdepth"]
6437 ],
6438 [
6439 "queueing_metadata.deq_timedelta",
6440 ["standard_metadata", "deq_timedelta"]
6441 ],
6442 [
6443 "queueing_metadata.deq_qdepth",
6444 ["standard_metadata", "deq_qdepth"]
6445 ],
6446 [
6447 "intrinsic_metadata.ingress_global_timestamp",
6448 ["standard_metadata", "ingress_global_timestamp"]
6449 ],
6450 [
Yi Tseng27b9bc02018-04-12 14:52:40 +08006451 "intrinsic_metadata.egress_global_timestamp",
6452 ["standard_metadata", "egress_global_timestamp"]
6453 ],
6454 [
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006455 "intrinsic_metadata.lf_field_list",
6456 ["standard_metadata", "lf_field_list"]
6457 ],
6458 [
6459 "intrinsic_metadata.mcast_grp",
6460 ["standard_metadata", "mcast_grp"]
6461 ],
6462 [
6463 "intrinsic_metadata.resubmit_flag",
6464 ["standard_metadata", "resubmit_flag"]
6465 ],
6466 [
6467 "intrinsic_metadata.egress_rid",
6468 ["standard_metadata", "egress_rid"]
Yi Tseng27b9bc02018-04-12 14:52:40 +08006469 ],
6470 [
6471 "intrinsic_metadata.recirculate_flag",
6472 ["standard_metadata", "recirculate_flag"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006473 ]
Carmelo Cascone6af4e172018-06-15 16:01:30 +02006474 ],
6475 "program" : "fabric.p4",
6476 "__meta__" : {
6477 "version" : [2, 18],
6478 "compiler" : "https://github.com/p4lang/p4c"
6479 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006480}