blob: 8a09ac2b7c4a55eb39152bb7f4541ad63ae7adcb [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" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200866 "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" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200946 "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" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200958 "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
965 }
966 ],
967 "register_arrays" : [],
968 "calculations" : [
969 {
970 "name" : "calc",
971 "id" : 0,
972 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200973 "filename" : "include/checksum.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800974 "line" : 28,
975 "column" : 8,
976 "source_fragment" : "update_checksum(hdr.ipv4.isValid(), ..."
977 },
978 "algo" : "csum16",
979 "input" : [
980 {
981 "type" : "field",
982 "value" : ["ipv4", "version"]
983 },
984 {
985 "type" : "field",
986 "value" : ["ipv4", "ihl"]
987 },
988 {
989 "type" : "field",
990 "value" : ["ipv4", "diffserv"]
991 },
992 {
993 "type" : "field",
994 "value" : ["ipv4", "total_len"]
995 },
996 {
997 "type" : "field",
998 "value" : ["ipv4", "identification"]
999 },
1000 {
1001 "type" : "field",
1002 "value" : ["ipv4", "flags"]
1003 },
1004 {
1005 "type" : "field",
1006 "value" : ["ipv4", "frag_offset"]
1007 },
1008 {
1009 "type" : "field",
1010 "value" : ["ipv4", "ttl"]
1011 },
1012 {
1013 "type" : "field",
1014 "value" : ["ipv4", "protocol"]
1015 },
1016 {
1017 "type" : "field",
1018 "value" : ["ipv4", "src_addr"]
1019 },
1020 {
1021 "type" : "field",
1022 "value" : ["ipv4", "dst_addr"]
1023 }
1024 ]
1025 },
1026 {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001027 "name" : "calc_0",
1028 "id" : 1,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001029 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001030 "filename" : "include/spgw.p4",
Yi Tseng27b9bc02018-04-12 14:52:40 +08001031 "line" : 296,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001032 "column" : 8,
1033 "source_fragment" : "update_checksum(gtpu_ipv4.isValid(), ..."
1034 },
1035 "algo" : "csum16",
1036 "input" : [
1037 {
1038 "type" : "field",
1039 "value" : ["gtpu_ipv4", "version"]
1040 },
1041 {
1042 "type" : "field",
1043 "value" : ["gtpu_ipv4", "ihl"]
1044 },
1045 {
1046 "type" : "field",
1047 "value" : ["gtpu_ipv4", "diffserv"]
1048 },
1049 {
1050 "type" : "field",
1051 "value" : ["gtpu_ipv4", "total_len"]
1052 },
1053 {
1054 "type" : "field",
1055 "value" : ["gtpu_ipv4", "identification"]
1056 },
1057 {
1058 "type" : "field",
1059 "value" : ["gtpu_ipv4", "flags"]
1060 },
1061 {
1062 "type" : "field",
1063 "value" : ["gtpu_ipv4", "frag_offset"]
1064 },
1065 {
1066 "type" : "field",
1067 "value" : ["gtpu_ipv4", "ttl"]
1068 },
1069 {
1070 "type" : "field",
1071 "value" : ["gtpu_ipv4", "protocol"]
1072 },
1073 {
1074 "type" : "field",
1075 "value" : ["gtpu_ipv4", "src_addr"]
1076 },
1077 {
1078 "type" : "field",
1079 "value" : ["gtpu_ipv4", "dst_addr"]
1080 }
1081 ]
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001082 },
1083 {
1084 "name" : "calc_1",
1085 "id" : 2,
1086 "source_info" : {
1087 "filename" : "include/checksum.p4",
1088 "line" : 56,
1089 "column" : 8,
1090 "source_fragment" : "verify_checksum(hdr.ipv4.isValid(), ..."
1091 },
1092 "algo" : "csum16",
1093 "input" : [
1094 {
1095 "type" : "field",
1096 "value" : ["ipv4", "version"]
1097 },
1098 {
1099 "type" : "field",
1100 "value" : ["ipv4", "ihl"]
1101 },
1102 {
1103 "type" : "field",
1104 "value" : ["ipv4", "diffserv"]
1105 },
1106 {
1107 "type" : "field",
1108 "value" : ["ipv4", "total_len"]
1109 },
1110 {
1111 "type" : "field",
1112 "value" : ["ipv4", "identification"]
1113 },
1114 {
1115 "type" : "field",
1116 "value" : ["ipv4", "flags"]
1117 },
1118 {
1119 "type" : "field",
1120 "value" : ["ipv4", "frag_offset"]
1121 },
1122 {
1123 "type" : "field",
1124 "value" : ["ipv4", "ttl"]
1125 },
1126 {
1127 "type" : "field",
1128 "value" : ["ipv4", "protocol"]
1129 },
1130 {
1131 "type" : "field",
1132 "value" : ["ipv4", "src_addr"]
1133 },
1134 {
1135 "type" : "field",
1136 "value" : ["ipv4", "dst_addr"]
1137 }
1138 ]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001139 }
1140 ],
1141 "learn_lists" : [],
1142 "actions" : [
1143 {
1144 "name" : "NoAction",
1145 "id" : 0,
1146 "runtime_data" : [],
1147 "primitives" : []
1148 },
1149 {
1150 "name" : "NoAction",
1151 "id" : 1,
1152 "runtime_data" : [],
1153 "primitives" : []
1154 },
1155 {
1156 "name" : "NoAction",
1157 "id" : 2,
1158 "runtime_data" : [],
1159 "primitives" : []
1160 },
1161 {
1162 "name" : "NoAction",
1163 "id" : 3,
1164 "runtime_data" : [],
1165 "primitives" : []
1166 },
1167 {
1168 "name" : "NoAction",
1169 "id" : 4,
1170 "runtime_data" : [],
1171 "primitives" : []
1172 },
1173 {
1174 "name" : "NoAction",
1175 "id" : 5,
1176 "runtime_data" : [],
1177 "primitives" : []
1178 },
1179 {
1180 "name" : "NoAction",
1181 "id" : 6,
1182 "runtime_data" : [],
1183 "primitives" : []
1184 },
1185 {
1186 "name" : "NoAction",
1187 "id" : 7,
1188 "runtime_data" : [],
1189 "primitives" : []
1190 },
1191 {
1192 "name" : "NoAction",
1193 "id" : 8,
1194 "runtime_data" : [],
1195 "primitives" : []
1196 },
1197 {
Esin Karaman971fb7f2017-12-28 13:44:52 +00001198 "name" : "NoAction",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001199 "id" : 9,
1200 "runtime_data" : [],
1201 "primitives" : []
1202 },
1203 {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001204 "name" : "nop",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001205 "id" : 10,
1206 "runtime_data" : [],
1207 "primitives" : []
1208 },
1209 {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001210 "name" : "nop",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001211 "id" : 11,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001212 "runtime_data" : [],
Yi Tseng27b9bc02018-04-12 14:52:40 +08001213 "primitives" : []
1214 },
1215 {
Esin Karaman971fb7f2017-12-28 13:44:52 +00001216 "name" : "nop",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001217 "id" : 12,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001218 "runtime_data" : [],
Esin Karaman971fb7f2017-12-28 13:44:52 +00001219 "primitives" : []
1220 },
1221 {
1222 "name" : "FabricIngress.spgw_ingress.drop_now",
1223 "id" : 13,
1224 "runtime_data" : [],
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001225 "primitives" : [
1226 {
1227 "op" : "drop",
1228 "parameters" : [],
1229 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001230 "filename" : "include/spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001231 "line" : 33,
1232 "column" : 8,
1233 "source_fragment" : "mark_to_drop()"
1234 }
1235 },
1236 {
1237 "op" : "exit",
1238 "parameters" : [],
1239 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001240 "filename" : "include/spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001241 "line" : 34,
1242 "column" : 8,
1243 "source_fragment" : "exit"
1244 }
1245 }
1246 ]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001247 },
1248 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001249 "name" : "FabricIngress.spgw_ingress.gtpu_decap",
Esin Karaman971fb7f2017-12-28 13:44:52 +00001250 "id" : 14,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001251 "runtime_data" : [],
1252 "primitives" : [
1253 {
1254 "op" : "remove_header",
1255 "parameters" : [
1256 {
1257 "type" : "header",
1258 "value" : "gtpu_ipv4"
1259 }
1260 ],
1261 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001262 "filename" : "include/spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001263 "line" : 38,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001264 "column" : 8,
1265 "source_fragment" : "gtpu_ipv4.setInvalid()"
1266 }
1267 },
1268 {
1269 "op" : "remove_header",
1270 "parameters" : [
1271 {
1272 "type" : "header",
1273 "value" : "gtpu_udp"
1274 }
1275 ],
1276 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001277 "filename" : "include/spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001278 "line" : 39,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001279 "column" : 8,
1280 "source_fragment" : "gtpu_udp.setInvalid()"
1281 }
1282 },
1283 {
1284 "op" : "remove_header",
1285 "parameters" : [
1286 {
1287 "type" : "header",
1288 "value" : "gtpu"
1289 }
1290 ],
1291 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001292 "filename" : "include/spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001293 "line" : 40,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001294 "column" : 8,
1295 "source_fragment" : "gtpu.setInvalid()"
1296 }
1297 }
1298 ]
1299 },
1300 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001301 "name" : "FabricIngress.spgw_ingress.set_dl_sess_info",
Esin Karaman971fb7f2017-12-28 13:44:52 +00001302 "id" : 15,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001303 "runtime_data" : [
1304 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001305 "name" : "teid",
1306 "bitwidth" : 32
1307 },
1308 {
1309 "name" : "s1u_enb_addr",
1310 "bitwidth" : 32
1311 },
1312 {
1313 "name" : "s1u_sgw_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001314 "bitwidth" : 32
1315 }
1316 ],
1317 "primitives" : [
1318 {
1319 "op" : "assign",
1320 "parameters" : [
1321 {
1322 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08001323 "value" : ["userMetadata.spgw", "teid"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001324 },
1325 {
1326 "type" : "runtime_data",
1327 "value" : 0
1328 }
1329 ],
1330 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001331 "filename" : "include/spgw.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001332 "line" : 46,
1333 "column" : 8,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001334 "source_fragment" : "spgw_meta.teid = teid"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001335 }
1336 },
1337 {
1338 "op" : "assign",
1339 "parameters" : [
1340 {
1341 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08001342 "value" : ["userMetadata.spgw", "s1u_enb_addr"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001343 },
1344 {
1345 "type" : "runtime_data",
1346 "value" : 1
1347 }
1348 ],
1349 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001350 "filename" : "include/spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001351 "line" : 47,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001352 "column" : 8,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001353 "source_fragment" : "spgw_meta.s1u_enb_addr = s1u_enb_addr"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001354 }
1355 },
1356 {
1357 "op" : "assign",
1358 "parameters" : [
1359 {
1360 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08001361 "value" : ["userMetadata.spgw", "s1u_sgw_addr"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001362 },
1363 {
1364 "type" : "runtime_data",
1365 "value" : 2
1366 }
1367 ],
1368 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001369 "filename" : "include/spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001370 "line" : 48,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001371 "column" : 8,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001372 "source_fragment" : "spgw_meta.s1u_sgw_addr = s1u_sgw_addr"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001373 }
1374 }
1375 ]
1376 },
1377 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001378 "name" : "FabricIngress.spgw_ingress.update_ue_cdr",
Esin Karaman971fb7f2017-12-28 13:44:52 +00001379 "id" : 16,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001380 "runtime_data" : [],
1381 "primitives" : []
1382 },
1383 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001384 "name" : "FabricIngress.filtering.drop",
Esin Karaman971fb7f2017-12-28 13:44:52 +00001385 "id" : 17,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001386 "runtime_data" : [],
1387 "primitives" : [
1388 {
1389 "op" : "drop",
1390 "parameters" : [],
1391 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001392 "filename" : "include/control/filtering.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001393 "line" : 31,
1394 "column" : 8,
1395 "source_fragment" : "mark_to_drop()"
1396 }
1397 }
1398 ]
1399 },
1400 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001401 "name" : "FabricIngress.filtering.set_vlan",
Esin Karaman971fb7f2017-12-28 13:44:52 +00001402 "id" : 18,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001403 "runtime_data" : [
1404 {
1405 "name" : "new_vlan_id",
1406 "bitwidth" : 12
1407 }
1408 ],
1409 "primitives" : [
1410 {
1411 "op" : "assign",
1412 "parameters" : [
1413 {
1414 "type" : "field",
1415 "value" : ["vlan_tag", "vlan_id"]
1416 },
1417 {
1418 "type" : "runtime_data",
1419 "value" : 0
1420 }
1421 ],
1422 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001423 "filename" : "include/control/filtering.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001424 "line" : 35,
1425 "column" : 8,
1426 "source_fragment" : "hdr.vlan_tag.vlan_id = new_vlan_id"
1427 }
1428 }
1429 ]
1430 },
1431 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001432 "name" : "FabricIngress.filtering.push_internal_vlan",
Esin Karaman971fb7f2017-12-28 13:44:52 +00001433 "id" : 19,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001434 "runtime_data" : [
1435 {
1436 "name" : "new_vlan_id",
1437 "bitwidth" : 12
1438 }
1439 ],
1440 "primitives" : [
1441 {
1442 "op" : "add_header",
1443 "parameters" : [
1444 {
1445 "type" : "header",
1446 "value" : "vlan_tag"
1447 }
1448 ],
1449 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001450 "filename" : "include/control/filtering.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001451 "line" : 41,
1452 "column" : 8,
1453 "source_fragment" : "hdr.vlan_tag.setValid()"
1454 }
1455 },
1456 {
1457 "op" : "assign",
1458 "parameters" : [
1459 {
1460 "type" : "field",
1461 "value" : ["vlan_tag", "cfi"]
1462 },
1463 {
1464 "type" : "hexstr",
1465 "value" : "0x00"
1466 }
1467 ],
1468 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001469 "filename" : "include/control/filtering.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001470 "line" : 42,
1471 "column" : 8,
1472 "source_fragment" : "hdr.vlan_tag.cfi = 0"
1473 }
1474 },
1475 {
1476 "op" : "assign",
1477 "parameters" : [
1478 {
1479 "type" : "field",
1480 "value" : ["vlan_tag", "pri"]
1481 },
1482 {
1483 "type" : "hexstr",
1484 "value" : "0x00"
1485 }
1486 ],
1487 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001488 "filename" : "include/control/filtering.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001489 "line" : 43,
1490 "column" : 8,
1491 "source_fragment" : "hdr.vlan_tag.pri = 0"
1492 }
1493 },
1494 {
1495 "op" : "assign",
1496 "parameters" : [
1497 {
1498 "type" : "field",
1499 "value" : ["vlan_tag", "ether_type"]
1500 },
1501 {
1502 "type" : "field",
1503 "value" : ["ethernet", "ether_type"]
1504 }
1505 ],
1506 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001507 "filename" : "include/control/filtering.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001508 "line" : 44,
1509 "column" : 8,
1510 "source_fragment" : "hdr.vlan_tag.ether_type = hdr.ethernet.ether_type"
1511 }
1512 },
1513 {
1514 "op" : "assign",
1515 "parameters" : [
1516 {
1517 "type" : "field",
1518 "value" : ["ethernet", "ether_type"]
1519 },
1520 {
1521 "type" : "hexstr",
1522 "value" : "0x8100"
1523 }
1524 ],
1525 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001526 "filename" : "include/control/../define.p4",
Carmelo Cascone228092b2018-06-15 20:41:10 +02001527 "line" : 66,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001528 "column" : 31,
1529 "source_fragment" : "0x8100; ..."
1530 }
1531 },
1532 {
1533 "op" : "assign",
1534 "parameters" : [
1535 {
1536 "type" : "field",
1537 "value" : ["vlan_tag", "vlan_id"]
1538 },
1539 {
1540 "type" : "runtime_data",
1541 "value" : 0
1542 }
1543 ],
1544 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001545 "filename" : "include/control/filtering.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001546 "line" : 35,
1547 "column" : 8,
1548 "source_fragment" : "hdr.vlan_tag.vlan_id = new_vlan_id; ..."
1549 }
1550 },
1551 {
1552 "op" : "assign",
1553 "parameters" : [
1554 {
1555 "type" : "field",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001556 "value" : ["scalars", "fabric_metadata_t.pop_vlan_when_packet_in"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001557 },
1558 {
1559 "type" : "expression",
1560 "value" : {
1561 "type" : "expression",
1562 "value" : {
1563 "op" : "b2d",
1564 "left" : null,
1565 "right" : {
1566 "type" : "bool",
1567 "value" : true
1568 }
1569 }
1570 }
1571 }
1572 ],
1573 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001574 "filename" : "include/control/filtering.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001575 "line" : 49,
1576 "column" : 8,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001577 "source_fragment" : "fabric_metadata.pop_vlan_when_packet_in = true"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001578 }
1579 }
1580 ]
1581 },
1582 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001583 "name" : "FabricIngress.filtering.set_forwarding_type",
Esin Karaman971fb7f2017-12-28 13:44:52 +00001584 "id" : 20,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001585 "runtime_data" : [
1586 {
1587 "name" : "fwd_type",
1588 "bitwidth" : 3
1589 }
1590 ],
1591 "primitives" : [
1592 {
1593 "op" : "assign",
1594 "parameters" : [
1595 {
1596 "type" : "field",
1597 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
1598 },
1599 {
1600 "type" : "runtime_data",
1601 "value" : 0
1602 }
1603 ],
1604 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001605 "filename" : "include/control/filtering.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001606 "line" : 53,
1607 "column" : 8,
1608 "source_fragment" : "fabric_metadata.fwd_type = fwd_type"
1609 }
1610 }
1611 ]
1612 },
1613 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001614 "name" : "FabricIngress.forwarding.drop",
Esin Karaman971fb7f2017-12-28 13:44:52 +00001615 "id" : 21,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001616 "runtime_data" : [],
1617 "primitives" : [
1618 {
1619 "op" : "drop",
1620 "parameters" : [],
1621 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001622 "filename" : "include/control/forwarding.p4",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001623 "line" : 36,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001624 "column" : 8,
1625 "source_fragment" : "mark_to_drop()"
1626 }
1627 }
1628 ]
1629 },
1630 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001631 "name" : "FabricIngress.forwarding.set_next_id",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001632 "id" : 22,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001633 "runtime_data" : [
1634 {
1635 "name" : "next_id",
1636 "bitwidth" : 32
1637 }
1638 ],
1639 "primitives" : [
1640 {
1641 "op" : "assign",
1642 "parameters" : [
1643 {
1644 "type" : "field",
1645 "value" : ["scalars", "fabric_metadata_t.next_id"]
1646 },
1647 {
1648 "type" : "runtime_data",
1649 "value" : 0
1650 }
1651 ],
1652 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001653 "filename" : "include/control/forwarding.p4",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001654 "line" : 40,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001655 "column" : 8,
1656 "source_fragment" : "fabric_metadata.next_id = next_id"
1657 }
1658 }
1659 ]
1660 },
1661 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001662 "name" : "FabricIngress.forwarding.set_next_id",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001663 "id" : 23,
Yi Tseng27b9bc02018-04-12 14:52:40 +08001664 "runtime_data" : [
1665 {
1666 "name" : "next_id",
1667 "bitwidth" : 32
1668 }
1669 ],
1670 "primitives" : [
1671 {
1672 "op" : "assign",
1673 "parameters" : [
1674 {
1675 "type" : "field",
1676 "value" : ["scalars", "fabric_metadata_t.next_id"]
1677 },
1678 {
1679 "type" : "runtime_data",
1680 "value" : 0
1681 }
1682 ],
1683 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001684 "filename" : "include/control/forwarding.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001685 "line" : 40,
1686 "column" : 8,
1687 "source_fragment" : "fabric_metadata.next_id = next_id"
1688 }
1689 }
1690 ]
1691 },
1692 {
Esin Karaman971fb7f2017-12-28 13:44:52 +00001693 "name" : "FabricIngress.forwarding.set_next_id",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001694 "id" : 24,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001695 "runtime_data" : [
1696 {
1697 "name" : "next_id",
1698 "bitwidth" : 32
1699 }
1700 ],
1701 "primitives" : [
1702 {
Esin Karaman971fb7f2017-12-28 13:44:52 +00001703 "op" : "assign",
1704 "parameters" : [
1705 {
1706 "type" : "field",
1707 "value" : ["scalars", "fabric_metadata_t.next_id"]
1708 },
1709 {
1710 "type" : "runtime_data",
1711 "value" : 0
1712 }
1713 ],
1714 "source_info" : {
1715 "filename" : "include/control/forwarding.p4",
1716 "line" : 40,
1717 "column" : 8,
1718 "source_fragment" : "fabric_metadata.next_id = next_id"
1719 }
1720 }
1721 ]
1722 },
1723 {
1724 "name" : "FabricIngress.forwarding.pop_mpls_and_next",
1725 "id" : 25,
1726 "runtime_data" : [
1727 {
1728 "name" : "next_id",
1729 "bitwidth" : 32
1730 }
1731 ],
1732 "primitives" : [
1733 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001734 "op" : "remove_header",
1735 "parameters" : [
1736 {
1737 "type" : "header",
1738 "value" : "mpls"
1739 }
1740 ],
1741 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001742 "filename" : "include/control/forwarding.p4",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001743 "line" : 44,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001744 "column" : 8,
1745 "source_fragment" : "hdr.mpls.setInvalid()"
1746 }
1747 },
1748 {
1749 "op" : "assign",
1750 "parameters" : [
1751 {
1752 "type" : "field",
1753 "value" : ["scalars", "fabric_metadata_t.next_id"]
1754 },
1755 {
1756 "type" : "runtime_data",
1757 "value" : 0
1758 }
1759 ],
1760 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001761 "filename" : "include/control/forwarding.p4",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001762 "line" : 45,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001763 "column" : 8,
1764 "source_fragment" : "fabric_metadata.next_id = next_id"
1765 }
1766 }
1767 ]
1768 },
1769 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001770 "name" : "FabricIngress.forwarding.duplicate_to_controller",
Esin Karaman971fb7f2017-12-28 13:44:52 +00001771 "id" : 26,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001772 "runtime_data" : [],
1773 "primitives" : [
1774 {
1775 "op" : "assign",
1776 "parameters" : [
1777 {
1778 "type" : "field",
1779 "value" : ["standard_metadata", "egress_spec"]
1780 },
1781 {
1782 "type" : "hexstr",
1783 "value" : "0x00ff"
1784 }
1785 ],
1786 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001787 "filename" : "include/control/forwarding.p4",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001788 "line" : 49,
Carmelo Casconeb531b682018-01-30 17:55:56 -08001789 "column" : 8,
1790 "source_fragment" : "standard_metadata.egress_spec = 255"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001791 }
1792 }
1793 ]
1794 },
1795 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001796 "name" : "FabricIngress.next.output",
Esin Karaman971fb7f2017-12-28 13:44:52 +00001797 "id" : 27,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001798 "runtime_data" : [
1799 {
1800 "name" : "port_num",
1801 "bitwidth" : 9
1802 }
1803 ],
1804 "primitives" : [
1805 {
1806 "op" : "assign",
1807 "parameters" : [
1808 {
1809 "type" : "field",
1810 "value" : ["standard_metadata", "egress_spec"]
1811 },
1812 {
1813 "type" : "runtime_data",
1814 "value" : 0
1815 }
1816 ],
1817 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001818 "filename" : "include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001819 "line" : 33,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001820 "column" : 8,
1821 "source_fragment" : "standard_metadata.egress_spec = port_num"
1822 }
1823 }
1824 ]
1825 },
1826 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001827 "name" : "FabricIngress.next.set_vlan",
Esin Karaman971fb7f2017-12-28 13:44:52 +00001828 "id" : 28,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001829 "runtime_data" : [
1830 {
1831 "name" : "new_vlan_id",
1832 "bitwidth" : 12
1833 }
1834 ],
1835 "primitives" : [
1836 {
1837 "op" : "assign",
1838 "parameters" : [
1839 {
1840 "type" : "field",
1841 "value" : ["vlan_tag", "vlan_id"]
1842 },
1843 {
1844 "type" : "runtime_data",
1845 "value" : 0
1846 }
1847 ],
1848 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001849 "filename" : "include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001850 "line" : 37,
1851 "column" : 8,
1852 "source_fragment" : "hdr.vlan_tag.vlan_id = new_vlan_id"
1853 }
1854 }
1855 ]
1856 },
1857 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001858 "name" : "FabricIngress.next.set_vlan_output",
Esin Karaman971fb7f2017-12-28 13:44:52 +00001859 "id" : 29,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001860 "runtime_data" : [
1861 {
1862 "name" : "new_vlan_id",
1863 "bitwidth" : 12
1864 },
1865 {
1866 "name" : "port_num",
1867 "bitwidth" : 9
1868 }
1869 ],
1870 "primitives" : [
1871 {
1872 "op" : "assign",
1873 "parameters" : [
1874 {
1875 "type" : "field",
1876 "value" : ["vlan_tag", "vlan_id"]
1877 },
1878 {
1879 "type" : "runtime_data",
1880 "value" : 0
1881 }
1882 ],
1883 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001884 "filename" : "include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001885 "line" : 46,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001886 "column" : 8,
1887 "source_fragment" : "hdr.vlan_tag.vlan_id = new_vlan_id"
1888 }
1889 },
1890 {
1891 "op" : "assign",
1892 "parameters" : [
1893 {
1894 "type" : "field",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001895 "value" : ["standard_metadata", "egress_spec"]
1896 },
1897 {
1898 "type" : "runtime_data",
1899 "value" : 1
1900 }
1901 ],
1902 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001903 "filename" : "include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001904 "line" : 33,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001905 "column" : 8,
1906 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
1907 }
1908 }
1909 ]
1910 },
1911 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001912 "name" : "FabricIngress.next.l3_routing",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001913 "id" : 30,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001914 "runtime_data" : [
1915 {
1916 "name" : "port_num",
1917 "bitwidth" : 9
1918 },
1919 {
1920 "name" : "smac",
1921 "bitwidth" : 48
1922 },
1923 {
1924 "name" : "dmac",
1925 "bitwidth" : 48
1926 }
1927 ],
1928 "primitives" : [
1929 {
1930 "op" : "assign",
1931 "parameters" : [
1932 {
1933 "type" : "field",
1934 "value" : ["ethernet", "src_addr"]
1935 },
1936 {
1937 "type" : "runtime_data",
1938 "value" : 1
1939 }
1940 ],
1941 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001942 "filename" : "include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001943 "line" : 51,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001944 "column" : 8,
1945 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
1946 }
1947 },
1948 {
1949 "op" : "assign",
1950 "parameters" : [
1951 {
1952 "type" : "field",
1953 "value" : ["ethernet", "dst_addr"]
1954 },
1955 {
1956 "type" : "runtime_data",
1957 "value" : 2
1958 }
1959 ],
1960 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001961 "filename" : "include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001962 "line" : 55,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001963 "column" : 8,
1964 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
1965 }
1966 },
1967 {
1968 "op" : "assign",
1969 "parameters" : [
1970 {
1971 "type" : "field",
1972 "value" : ["standard_metadata", "egress_spec"]
1973 },
1974 {
1975 "type" : "runtime_data",
1976 "value" : 0
1977 }
1978 ],
1979 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001980 "filename" : "include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001981 "line" : 33,
1982 "column" : 8,
1983 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
1984 }
1985 }
1986 ]
1987 },
1988 {
Esin Karaman971fb7f2017-12-28 13:44:52 +00001989 "name" : "FabricIngress.next.l3_routing",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001990 "id" : 31,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001991 "runtime_data" : [
1992 {
1993 "name" : "port_num",
1994 "bitwidth" : 9
1995 },
1996 {
1997 "name" : "smac",
1998 "bitwidth" : 48
1999 },
2000 {
2001 "name" : "dmac",
2002 "bitwidth" : 48
Esin Karaman971fb7f2017-12-28 13:44:52 +00002003 }
2004 ],
2005 "primitives" : [
2006 {
2007 "op" : "assign",
2008 "parameters" : [
2009 {
2010 "type" : "field",
2011 "value" : ["ethernet", "src_addr"]
2012 },
2013 {
2014 "type" : "runtime_data",
2015 "value" : 1
2016 }
2017 ],
2018 "source_info" : {
2019 "filename" : "include/control/next.p4",
2020 "line" : 51,
2021 "column" : 8,
2022 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2023 }
2024 },
2025 {
2026 "op" : "assign",
2027 "parameters" : [
2028 {
2029 "type" : "field",
2030 "value" : ["ethernet", "dst_addr"]
2031 },
2032 {
2033 "type" : "runtime_data",
2034 "value" : 2
2035 }
2036 ],
2037 "source_info" : {
2038 "filename" : "include/control/next.p4",
2039 "line" : 55,
2040 "column" : 8,
2041 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2042 }
2043 },
2044 {
2045 "op" : "assign",
2046 "parameters" : [
2047 {
2048 "type" : "field",
2049 "value" : ["standard_metadata", "egress_spec"]
2050 },
2051 {
2052 "type" : "runtime_data",
2053 "value" : 0
2054 }
2055 ],
2056 "source_info" : {
2057 "filename" : "include/control/next.p4",
2058 "line" : 33,
2059 "column" : 8,
2060 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2061 }
2062 }
2063 ]
2064 },
2065 {
2066 "name" : "FabricIngress.next.l3_routing_vlan",
2067 "id" : 32,
2068 "runtime_data" : [
2069 {
2070 "name" : "port_num",
2071 "bitwidth" : 9
2072 },
2073 {
2074 "name" : "smac",
2075 "bitwidth" : 48
2076 },
2077 {
2078 "name" : "dmac",
2079 "bitwidth" : 48
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002080 },
2081 {
2082 "name" : "new_vlan_id",
2083 "bitwidth" : 12
2084 }
2085 ],
2086 "primitives" : [
2087 {
2088 "op" : "assign",
2089 "parameters" : [
2090 {
2091 "type" : "field",
2092 "value" : ["ethernet", "src_addr"]
2093 },
2094 {
2095 "type" : "runtime_data",
2096 "value" : 1
2097 }
2098 ],
2099 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02002100 "filename" : "include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002101 "line" : 51,
2102 "column" : 8,
2103 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2104 }
2105 },
2106 {
2107 "op" : "assign",
2108 "parameters" : [
2109 {
2110 "type" : "field",
2111 "value" : ["ethernet", "dst_addr"]
2112 },
2113 {
2114 "type" : "runtime_data",
2115 "value" : 2
2116 }
2117 ],
2118 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02002119 "filename" : "include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002120 "line" : 55,
2121 "column" : 8,
2122 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2123 }
2124 },
2125 {
2126 "op" : "assign",
2127 "parameters" : [
2128 {
2129 "type" : "field",
2130 "value" : ["vlan_tag", "vlan_id"]
2131 },
2132 {
2133 "type" : "runtime_data",
2134 "value" : 3
2135 }
2136 ],
2137 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02002138 "filename" : "include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002139 "line" : 46,
2140 "column" : 8,
2141 "source_fragment" : "hdr.vlan_tag.vlan_id = new_vlan_id; ..."
2142 }
2143 },
2144 {
2145 "op" : "assign",
2146 "parameters" : [
2147 {
2148 "type" : "field",
2149 "value" : ["standard_metadata", "egress_spec"]
2150 },
2151 {
2152 "type" : "runtime_data",
2153 "value" : 0
2154 }
2155 ],
2156 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02002157 "filename" : "include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002158 "line" : 33,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002159 "column" : 8,
2160 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2161 }
2162 }
2163 ]
2164 },
2165 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002166 "name" : "FabricIngress.next.mpls_routing_v4",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02002167 "id" : 33,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002168 "runtime_data" : [
2169 {
2170 "name" : "port_num",
2171 "bitwidth" : 9
2172 },
2173 {
2174 "name" : "smac",
2175 "bitwidth" : 48
2176 },
2177 {
2178 "name" : "dmac",
2179 "bitwidth" : 48
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002180 },
2181 {
2182 "name" : "label",
2183 "bitwidth" : 20
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002184 }
2185 ],
2186 "primitives" : [
2187 {
2188 "op" : "assign",
2189 "parameters" : [
2190 {
2191 "type" : "field",
2192 "value" : ["ethernet", "src_addr"]
2193 },
2194 {
2195 "type" : "runtime_data",
2196 "value" : 1
2197 }
2198 ],
2199 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02002200 "filename" : "include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002201 "line" : 51,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002202 "column" : 8,
2203 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2204 }
2205 },
2206 {
2207 "op" : "assign",
2208 "parameters" : [
2209 {
2210 "type" : "field",
2211 "value" : ["ethernet", "dst_addr"]
2212 },
2213 {
2214 "type" : "runtime_data",
2215 "value" : 2
2216 }
2217 ],
2218 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02002219 "filename" : "include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002220 "line" : 55,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002221 "column" : 8,
2222 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2223 }
2224 },
2225 {
2226 "op" : "assign",
2227 "parameters" : [
2228 {
2229 "type" : "field",
2230 "value" : ["standard_metadata", "egress_spec"]
2231 },
2232 {
2233 "type" : "runtime_data",
2234 "value" : 0
2235 }
2236 ],
2237 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02002238 "filename" : "include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002239 "line" : 33,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002240 "column" : 8,
2241 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2242 }
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002243 },
2244 {
2245 "op" : "add_header",
2246 "parameters" : [
2247 {
2248 "type" : "header",
2249 "value" : "mpls"
2250 }
2251 ],
2252 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02002253 "filename" : "include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002254 "line" : 72,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002255 "column" : 8,
2256 "source_fragment" : "hdr.mpls.setValid()"
2257 }
2258 },
2259 {
2260 "op" : "assign",
2261 "parameters" : [
2262 {
2263 "type" : "field",
2264 "value" : ["vlan_tag", "ether_type"]
2265 },
2266 {
2267 "type" : "hexstr",
2268 "value" : "0x8847"
2269 }
2270 ],
2271 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02002272 "filename" : "include/control/../define.p4",
Carmelo Cascone228092b2018-06-15 20:41:10 +02002273 "line" : 67,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002274 "column" : 31,
2275 "source_fragment" : "0x8847; ..."
2276 }
2277 },
2278 {
2279 "op" : "assign",
2280 "parameters" : [
2281 {
2282 "type" : "field",
2283 "value" : ["mpls", "label"]
2284 },
2285 {
2286 "type" : "runtime_data",
2287 "value" : 3
2288 }
2289 ],
2290 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02002291 "filename" : "include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002292 "line" : 74,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002293 "column" : 8,
2294 "source_fragment" : "hdr.mpls.label = label; ..."
2295 }
2296 },
2297 {
2298 "op" : "assign",
2299 "parameters" : [
2300 {
2301 "type" : "field",
2302 "value" : ["mpls", "tc"]
2303 },
2304 {
2305 "type" : "hexstr",
2306 "value" : "0x00"
2307 }
2308 ],
2309 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02002310 "filename" : "include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002311 "line" : 75,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002312 "column" : 8,
2313 "source_fragment" : "hdr.mpls.tc = tc; ..."
2314 }
2315 },
2316 {
2317 "op" : "assign",
2318 "parameters" : [
2319 {
2320 "type" : "field",
2321 "value" : ["mpls", "bos"]
2322 },
2323 {
2324 "type" : "hexstr",
2325 "value" : "0x01"
2326 }
2327 ],
2328 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02002329 "filename" : "include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002330 "line" : 76,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002331 "column" : 8,
2332 "source_fragment" : "hdr.mpls.bos = 1w1"
2333 }
2334 },
2335 {
2336 "op" : "assign",
2337 "parameters" : [
2338 {
2339 "type" : "field",
2340 "value" : ["mpls", "ttl"]
2341 },
2342 {
2343 "type" : "hexstr",
2344 "value" : "0x40"
2345 }
2346 ],
2347 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02002348 "filename" : "include/control/../define.p4",
Carmelo Cascone228092b2018-06-15 20:41:10 +02002349 "line" : 87,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002350 "column" : 32,
2351 "source_fragment" : "64; ..."
2352 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002353 }
2354 ]
2355 },
2356 {
Esin Karaman971fb7f2017-12-28 13:44:52 +00002357 "name" : "FabricIngress.next.mpls_routing_v4",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02002358 "id" : 34,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002359 "runtime_data" : [
2360 {
2361 "name" : "port_num",
2362 "bitwidth" : 9
2363 },
2364 {
2365 "name" : "smac",
2366 "bitwidth" : 48
2367 },
2368 {
2369 "name" : "dmac",
2370 "bitwidth" : 48
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002371 },
2372 {
2373 "name" : "label",
2374 "bitwidth" : 20
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002375 }
2376 ],
2377 "primitives" : [
2378 {
2379 "op" : "assign",
2380 "parameters" : [
2381 {
2382 "type" : "field",
2383 "value" : ["ethernet", "src_addr"]
2384 },
2385 {
2386 "type" : "runtime_data",
2387 "value" : 1
2388 }
2389 ],
2390 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02002391 "filename" : "include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002392 "line" : 51,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002393 "column" : 8,
2394 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2395 }
2396 },
2397 {
2398 "op" : "assign",
2399 "parameters" : [
2400 {
2401 "type" : "field",
2402 "value" : ["ethernet", "dst_addr"]
2403 },
2404 {
2405 "type" : "runtime_data",
2406 "value" : 2
2407 }
2408 ],
2409 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02002410 "filename" : "include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002411 "line" : 55,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002412 "column" : 8,
2413 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2414 }
2415 },
2416 {
2417 "op" : "assign",
2418 "parameters" : [
2419 {
2420 "type" : "field",
2421 "value" : ["standard_metadata", "egress_spec"]
2422 },
2423 {
2424 "type" : "runtime_data",
2425 "value" : 0
2426 }
2427 ],
2428 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02002429 "filename" : "include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002430 "line" : 33,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002431 "column" : 8,
2432 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2433 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002434 },
2435 {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002436 "op" : "add_header",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002437 "parameters" : [
2438 {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002439 "type" : "header",
2440 "value" : "mpls"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002441 }
2442 ],
2443 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02002444 "filename" : "include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002445 "line" : 72,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002446 "column" : 8,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002447 "source_fragment" : "hdr.mpls.setValid()"
2448 }
2449 },
2450 {
2451 "op" : "assign",
2452 "parameters" : [
2453 {
2454 "type" : "field",
2455 "value" : ["vlan_tag", "ether_type"]
2456 },
2457 {
2458 "type" : "hexstr",
2459 "value" : "0x8847"
2460 }
2461 ],
2462 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02002463 "filename" : "include/control/../define.p4",
Carmelo Cascone228092b2018-06-15 20:41:10 +02002464 "line" : 67,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002465 "column" : 31,
2466 "source_fragment" : "0x8847; ..."
2467 }
2468 },
2469 {
2470 "op" : "assign",
2471 "parameters" : [
2472 {
2473 "type" : "field",
2474 "value" : ["mpls", "label"]
2475 },
2476 {
2477 "type" : "runtime_data",
2478 "value" : 3
2479 }
2480 ],
2481 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02002482 "filename" : "include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002483 "line" : 74,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002484 "column" : 8,
2485 "source_fragment" : "hdr.mpls.label = label; ..."
2486 }
2487 },
2488 {
2489 "op" : "assign",
2490 "parameters" : [
2491 {
2492 "type" : "field",
2493 "value" : ["mpls", "tc"]
2494 },
2495 {
2496 "type" : "hexstr",
2497 "value" : "0x00"
2498 }
2499 ],
2500 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02002501 "filename" : "include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002502 "line" : 75,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002503 "column" : 8,
2504 "source_fragment" : "hdr.mpls.tc = tc; ..."
2505 }
2506 },
2507 {
2508 "op" : "assign",
2509 "parameters" : [
2510 {
2511 "type" : "field",
2512 "value" : ["mpls", "bos"]
2513 },
2514 {
2515 "type" : "hexstr",
2516 "value" : "0x01"
2517 }
2518 ],
2519 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02002520 "filename" : "include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002521 "line" : 76,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002522 "column" : 8,
2523 "source_fragment" : "hdr.mpls.bos = 1w1"
2524 }
2525 },
2526 {
2527 "op" : "assign",
2528 "parameters" : [
2529 {
2530 "type" : "field",
2531 "value" : ["mpls", "ttl"]
2532 },
2533 {
2534 "type" : "hexstr",
2535 "value" : "0x40"
2536 }
2537 ],
2538 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02002539 "filename" : "include/control/../define.p4",
Carmelo Cascone228092b2018-06-15 20:41:10 +02002540 "line" : 87,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002541 "column" : 32,
2542 "source_fragment" : "64; ..."
2543 }
2544 }
2545 ]
2546 },
2547 {
Esin Karaman971fb7f2017-12-28 13:44:52 +00002548 "name" : "FabricIngress.next.mpls_routing_v6",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02002549 "id" : 35,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002550 "runtime_data" : [
2551 {
2552 "name" : "port_num",
2553 "bitwidth" : 9
2554 },
2555 {
2556 "name" : "smac",
2557 "bitwidth" : 48
2558 },
2559 {
2560 "name" : "dmac",
2561 "bitwidth" : 48
2562 },
2563 {
2564 "name" : "label",
2565 "bitwidth" : 20
2566 }
2567 ],
2568 "primitives" : [
2569 {
2570 "op" : "assign",
2571 "parameters" : [
2572 {
2573 "type" : "field",
2574 "value" : ["ethernet", "src_addr"]
2575 },
2576 {
2577 "type" : "runtime_data",
2578 "value" : 1
2579 }
2580 ],
2581 "source_info" : {
2582 "filename" : "include/control/next.p4",
2583 "line" : 51,
2584 "column" : 8,
2585 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2586 }
2587 },
2588 {
2589 "op" : "assign",
2590 "parameters" : [
2591 {
2592 "type" : "field",
2593 "value" : ["ethernet", "dst_addr"]
2594 },
2595 {
2596 "type" : "runtime_data",
2597 "value" : 2
2598 }
2599 ],
2600 "source_info" : {
2601 "filename" : "include/control/next.p4",
2602 "line" : 55,
2603 "column" : 8,
2604 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2605 }
2606 },
2607 {
2608 "op" : "assign",
2609 "parameters" : [
2610 {
2611 "type" : "field",
2612 "value" : ["standard_metadata", "egress_spec"]
2613 },
2614 {
2615 "type" : "runtime_data",
2616 "value" : 0
2617 }
2618 ],
2619 "source_info" : {
2620 "filename" : "include/control/next.p4",
2621 "line" : 33,
2622 "column" : 8,
2623 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2624 }
2625 },
2626 {
2627 "op" : "add_header",
2628 "parameters" : [
2629 {
2630 "type" : "header",
2631 "value" : "mpls"
2632 }
2633 ],
2634 "source_info" : {
2635 "filename" : "include/control/next.p4",
2636 "line" : 72,
2637 "column" : 8,
2638 "source_fragment" : "hdr.mpls.setValid()"
2639 }
2640 },
2641 {
2642 "op" : "assign",
2643 "parameters" : [
2644 {
2645 "type" : "field",
2646 "value" : ["vlan_tag", "ether_type"]
2647 },
2648 {
2649 "type" : "hexstr",
2650 "value" : "0x8847"
2651 }
2652 ],
2653 "source_info" : {
2654 "filename" : "include/control/../define.p4",
2655 "line" : 67,
2656 "column" : 31,
2657 "source_fragment" : "0x8847; ..."
2658 }
2659 },
2660 {
2661 "op" : "assign",
2662 "parameters" : [
2663 {
2664 "type" : "field",
2665 "value" : ["mpls", "label"]
2666 },
2667 {
2668 "type" : "runtime_data",
2669 "value" : 3
2670 }
2671 ],
2672 "source_info" : {
2673 "filename" : "include/control/next.p4",
2674 "line" : 74,
2675 "column" : 8,
2676 "source_fragment" : "hdr.mpls.label = label; ..."
2677 }
2678 },
2679 {
2680 "op" : "assign",
2681 "parameters" : [
2682 {
2683 "type" : "field",
2684 "value" : ["mpls", "tc"]
2685 },
2686 {
2687 "type" : "hexstr",
2688 "value" : "0x00"
2689 }
2690 ],
2691 "source_info" : {
2692 "filename" : "include/control/next.p4",
2693 "line" : 75,
2694 "column" : 8,
2695 "source_fragment" : "hdr.mpls.tc = tc; ..."
2696 }
2697 },
2698 {
2699 "op" : "assign",
2700 "parameters" : [
2701 {
2702 "type" : "field",
2703 "value" : ["mpls", "bos"]
2704 },
2705 {
2706 "type" : "hexstr",
2707 "value" : "0x01"
2708 }
2709 ],
2710 "source_info" : {
2711 "filename" : "include/control/next.p4",
2712 "line" : 76,
2713 "column" : 8,
2714 "source_fragment" : "hdr.mpls.bos = 1w1"
2715 }
2716 },
2717 {
2718 "op" : "assign",
2719 "parameters" : [
2720 {
2721 "type" : "field",
2722 "value" : ["mpls", "ttl"]
2723 },
2724 {
2725 "type" : "hexstr",
2726 "value" : "0x40"
2727 }
2728 ],
2729 "source_info" : {
2730 "filename" : "include/control/../define.p4",
2731 "line" : 87,
2732 "column" : 32,
2733 "source_fragment" : "64; ..."
2734 }
2735 }
2736 ]
2737 },
2738 {
2739 "name" : "FabricIngress.next.set_mcast_group",
2740 "id" : 36,
2741 "runtime_data" : [
2742 {
2743 "name" : "gid",
2744 "bitwidth" : 16
2745 }
2746 ],
2747 "primitives" : [
2748 {
2749 "op" : "assign",
2750 "parameters" : [
2751 {
2752 "type" : "field",
2753 "value" : ["standard_metadata", "mcast_grp"]
2754 },
2755 {
2756 "type" : "runtime_data",
2757 "value" : 0
2758 }
2759 ],
2760 "source_info" : {
2761 "filename" : "include/control/next.p4",
2762 "line" : 148,
2763 "column" : 8,
2764 "source_fragment" : "standard_metadata.mcast_grp = gid"
2765 }
2766 }
2767 ]
2768 },
2769 {
2770 "name" : "act",
2771 "id" : 37,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002772 "runtime_data" : [],
2773 "primitives" : [
2774 {
2775 "op" : "assign",
2776 "parameters" : [
2777 {
2778 "type" : "field",
2779 "value" : ["standard_metadata", "egress_spec"]
2780 },
2781 {
2782 "type" : "field",
2783 "value" : ["packet_out", "egress_port"]
2784 }
2785 ],
2786 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02002787 "filename" : "include/control/packetio.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002788 "line" : 26,
2789 "column" : 12,
2790 "source_fragment" : "standard_metadata.egress_spec = hdr.packet_out.egress_port"
2791 }
2792 },
2793 {
2794 "op" : "remove_header",
2795 "parameters" : [
2796 {
2797 "type" : "header",
2798 "value" : "packet_out"
2799 }
2800 ],
2801 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02002802 "filename" : "include/control/packetio.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002803 "line" : 27,
2804 "column" : 12,
2805 "source_fragment" : "hdr.packet_out.setInvalid()"
2806 }
2807 }
2808 ]
2809 },
2810 {
2811 "name" : "act_0",
Esin Karaman971fb7f2017-12-28 13:44:52 +00002812 "id" : 38,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002813 "runtime_data" : [],
2814 "primitives" : [
2815 {
2816 "op" : "assign",
2817 "parameters" : [
2818 {
2819 "type" : "field",
2820 "value" : ["scalars", "spgw_ingress_tmp_2"]
2821 },
2822 {
2823 "type" : "expression",
2824 "value" : {
2825 "type" : "expression",
2826 "value" : {
2827 "op" : "b2d",
2828 "left" : null,
2829 "right" : {
2830 "type" : "bool",
2831 "value" : true
2832 }
2833 }
2834 }
2835 }
2836 ]
2837 }
2838 ]
2839 },
2840 {
2841 "name" : "act_1",
Esin Karaman971fb7f2017-12-28 13:44:52 +00002842 "id" : 39,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002843 "runtime_data" : [],
2844 "primitives" : [
2845 {
2846 "op" : "assign",
2847 "parameters" : [
2848 {
2849 "type" : "field",
2850 "value" : ["scalars", "spgw_ingress_tmp_2"]
2851 },
2852 {
2853 "type" : "expression",
2854 "value" : {
2855 "type" : "expression",
2856 "value" : {
2857 "op" : "b2d",
2858 "left" : null,
2859 "right" : {
2860 "type" : "bool",
2861 "value" : false
2862 }
2863 }
2864 }
2865 }
2866 ]
2867 }
2868 ]
2869 },
2870 {
2871 "name" : "act_2",
Esin Karaman971fb7f2017-12-28 13:44:52 +00002872 "id" : 40,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002873 "runtime_data" : [],
2874 "primitives" : [
2875 {
2876 "op" : "assign",
2877 "parameters" : [
2878 {
2879 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08002880 "value" : ["userMetadata.spgw", "s1u_enb_addr"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002881 },
2882 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08002883 "type" : "field",
2884 "value" : ["ipv4", "src_addr"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002885 }
2886 ],
2887 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02002888 "filename" : "include/spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08002889 "line" : 152,
2890 "column" : 12,
2891 "source_fragment" : "spgw_meta.s1u_enb_addr = ipv4.src_addr"
2892 }
2893 },
2894 {
2895 "op" : "assign",
2896 "parameters" : [
2897 {
2898 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08002899 "value" : ["userMetadata.spgw", "s1u_sgw_addr"]
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08002900 },
2901 {
2902 "type" : "field",
2903 "value" : ["ipv4", "dst_addr"]
2904 }
2905 ],
2906 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02002907 "filename" : "include/spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08002908 "line" : 153,
2909 "column" : 12,
2910 "source_fragment" : "spgw_meta.s1u_sgw_addr = ipv4.dst_addr"
2911 }
2912 },
2913 {
2914 "op" : "assign_header",
2915 "parameters" : [
2916 {
2917 "type" : "header",
2918 "value" : "ipv4"
2919 },
2920 {
2921 "type" : "header",
2922 "value" : "gtpu_ipv4"
2923 }
2924 ],
2925 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02002926 "filename" : "include/spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08002927 "line" : 154,
2928 "column" : 17,
2929 "source_fragment" : "= gtpu_ipv4; ..."
2930 }
2931 },
2932 {
2933 "op" : "assign_header",
2934 "parameters" : [
2935 {
2936 "type" : "header",
2937 "value" : "udp"
2938 },
2939 {
2940 "type" : "header",
2941 "value" : "gtpu_udp"
2942 }
2943 ],
2944 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02002945 "filename" : "include/spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08002946 "line" : 155,
2947 "column" : 16,
2948 "source_fragment" : "= gtpu_udp; ..."
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002949 }
2950 }
2951 ]
2952 },
2953 {
2954 "name" : "act_3",
Esin Karaman971fb7f2017-12-28 13:44:52 +00002955 "id" : 41,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002956 "runtime_data" : [],
2957 "primitives" : [
2958 {
2959 "op" : "assign",
2960 "parameters" : [
2961 {
2962 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08002963 "value" : ["userMetadata.spgw", "do_spgw"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002964 },
2965 {
2966 "type" : "expression",
2967 "value" : {
2968 "type" : "expression",
2969 "value" : {
2970 "op" : "b2d",
2971 "left" : null,
2972 "right" : {
2973 "type" : "bool",
2974 "value" : true
2975 }
2976 }
2977 }
2978 }
2979 ],
2980 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02002981 "filename" : "include/spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08002982 "line" : 159,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002983 "column" : 16,
2984 "source_fragment" : "spgw_meta.do_spgw = true"
2985 }
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08002986 },
2987 {
2988 "op" : "assign",
2989 "parameters" : [
2990 {
2991 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08002992 "value" : ["userMetadata.spgw", "direction"]
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08002993 },
2994 {
2995 "type" : "hexstr",
2996 "value" : "0x00"
2997 }
2998 ],
2999 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003000 "filename" : "include/control/../define.p4",
Carmelo Cascone228092b2018-06-15 20:41:10 +02003001 "line" : 98,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003002 "column" : 31,
3003 "source_fragment" : "1w0; ..."
3004 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003005 }
3006 ]
3007 },
3008 {
3009 "name" : "act_4",
Esin Karaman971fb7f2017-12-28 13:44:52 +00003010 "id" : 42,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003011 "runtime_data" : [],
3012 "primitives" : [
3013 {
3014 "op" : "assign",
3015 "parameters" : [
3016 {
3017 "type" : "field",
3018 "value" : ["scalars", "spgw_ingress_tmp_3"]
3019 },
3020 {
3021 "type" : "expression",
3022 "value" : {
3023 "type" : "expression",
3024 "value" : {
3025 "op" : "b2d",
3026 "left" : null,
3027 "right" : {
3028 "type" : "bool",
3029 "value" : true
3030 }
3031 }
3032 }
3033 }
3034 ]
3035 }
3036 ]
3037 },
3038 {
3039 "name" : "act_5",
Esin Karaman971fb7f2017-12-28 13:44:52 +00003040 "id" : 43,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003041 "runtime_data" : [],
3042 "primitives" : [
3043 {
3044 "op" : "assign",
3045 "parameters" : [
3046 {
3047 "type" : "field",
3048 "value" : ["scalars", "spgw_ingress_tmp_3"]
3049 },
3050 {
3051 "type" : "expression",
3052 "value" : {
3053 "type" : "expression",
3054 "value" : {
3055 "op" : "b2d",
3056 "left" : null,
3057 "right" : {
3058 "type" : "bool",
3059 "value" : false
3060 }
3061 }
3062 }
3063 }
3064 ]
3065 }
3066 ]
3067 },
3068 {
3069 "name" : "act_6",
Esin Karaman971fb7f2017-12-28 13:44:52 +00003070 "id" : 44,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003071 "runtime_data" : [],
3072 "primitives" : [
3073 {
3074 "op" : "assign",
3075 "parameters" : [
3076 {
3077 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003078 "value" : ["userMetadata.spgw", "do_spgw"]
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003079 },
3080 {
3081 "type" : "expression",
3082 "value" : {
3083 "type" : "expression",
3084 "value" : {
3085 "op" : "b2d",
3086 "left" : null,
3087 "right" : {
3088 "type" : "bool",
3089 "value" : true
3090 }
3091 }
3092 }
3093 }
3094 ],
3095 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003096 "filename" : "include/spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003097 "line" : 163,
3098 "column" : 12,
3099 "source_fragment" : "spgw_meta.do_spgw = true"
3100 }
3101 },
3102 {
3103 "op" : "assign",
3104 "parameters" : [
3105 {
3106 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003107 "value" : ["userMetadata.spgw", "direction"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08003108 },
3109 {
3110 "type" : "hexstr",
3111 "value" : "0x01"
3112 }
3113 ],
3114 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003115 "filename" : "include/control/../define.p4",
Carmelo Cascone228092b2018-06-15 20:41:10 +02003116 "line" : 99,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003117 "column" : 33,
3118 "source_fragment" : "1w1; ..."
3119 }
3120 }
3121 ]
3122 },
3123 {
3124 "name" : "act_7",
Esin Karaman971fb7f2017-12-28 13:44:52 +00003125 "id" : 45,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003126 "runtime_data" : [],
3127 "primitives" : [
3128 {
3129 "op" : "assign",
3130 "parameters" : [
3131 {
3132 "type" : "field",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003133 "value" : ["scalars", "spgw_ingress_hasReturned_0"]
3134 },
3135 {
3136 "type" : "expression",
3137 "value" : {
3138 "type" : "expression",
3139 "value" : {
3140 "op" : "b2d",
3141 "left" : null,
3142 "right" : {
3143 "type" : "bool",
3144 "value" : false
3145 }
3146 }
3147 }
3148 }
3149 ]
3150 },
3151 {
3152 "op" : "assign",
3153 "parameters" : [
3154 {
3155 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003156 "value" : ["userMetadata.spgw", "do_spgw"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003157 },
3158 {
3159 "type" : "expression",
3160 "value" : {
3161 "type" : "expression",
3162 "value" : {
3163 "op" : "b2d",
3164 "left" : null,
3165 "right" : {
3166 "type" : "bool",
Esin Karaman971fb7f2017-12-28 13:44:52 +00003167 "value" : false
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003168 }
3169 }
3170 }
3171 }
3172 ],
3173 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003174 "filename" : "include/spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003175 "line" : 146,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003176 "column" : 8,
Esin Karaman971fb7f2017-12-28 13:44:52 +00003177 "source_fragment" : "spgw_meta.do_spgw = false"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003178 }
3179 }
3180 ]
3181 },
3182 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003183 "name" : "act_8",
Esin Karaman971fb7f2017-12-28 13:44:52 +00003184 "id" : 46,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003185 "runtime_data" : [],
3186 "primitives" : [
3187 {
3188 "op" : "assign",
3189 "parameters" : [
3190 {
3191 "type" : "field",
3192 "value" : ["scalars", "spgw_ingress_hasReturned_0"]
3193 },
3194 {
3195 "type" : "expression",
3196 "value" : {
3197 "type" : "expression",
3198 "value" : {
3199 "op" : "b2d",
3200 "left" : null,
3201 "right" : {
3202 "type" : "bool",
3203 "value" : true
3204 }
3205 }
3206 }
3207 }
3208 ],
3209 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003210 "filename" : "include/spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003211 "line" : 169,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003212 "column" : 12,
3213 "source_fragment" : "return"
3214 }
3215 }
3216 ]
3217 },
3218 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003219 "name" : "act_9",
Esin Karaman971fb7f2017-12-28 13:44:52 +00003220 "id" : 47,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003221 "runtime_data" : [],
3222 "primitives" : [
3223 {
3224 "op" : "assign",
3225 "parameters" : [
3226 {
3227 "type" : "field",
3228 "value" : ["scalars", "spgw_ingress_tmp_4"]
3229 },
3230 {
3231 "type" : "expression",
3232 "value" : {
3233 "type" : "expression",
3234 "value" : {
3235 "op" : "b2d",
3236 "left" : null,
3237 "right" : {
3238 "type" : "bool",
3239 "value" : true
3240 }
3241 }
3242 }
3243 }
3244 ]
3245 }
3246 ]
3247 },
3248 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003249 "name" : "act_10",
Esin Karaman971fb7f2017-12-28 13:44:52 +00003250 "id" : 48,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003251 "runtime_data" : [],
3252 "primitives" : [
3253 {
3254 "op" : "assign",
3255 "parameters" : [
3256 {
3257 "type" : "field",
3258 "value" : ["scalars", "spgw_ingress_tmp_4"]
3259 },
3260 {
3261 "type" : "expression",
3262 "value" : {
3263 "type" : "expression",
3264 "value" : {
3265 "op" : "b2d",
3266 "left" : null,
3267 "right" : {
3268 "type" : "bool",
3269 "value" : false
3270 }
3271 }
3272 }
3273 }
3274 ]
3275 }
3276 ]
3277 },
3278 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003279 "name" : "act_11",
Esin Karaman971fb7f2017-12-28 13:44:52 +00003280 "id" : 49,
Yi Tseng27b9bc02018-04-12 14:52:40 +08003281 "runtime_data" : [],
3282 "primitives" : [
3283 {
3284 "op" : "assign",
3285 "parameters" : [
3286 {
3287 "type" : "field",
3288 "value" : ["userMetadata.spgw", "ipv4_len"]
3289 },
3290 {
3291 "type" : "field",
3292 "value" : ["ipv4", "total_len"]
3293 }
3294 ],
3295 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003296 "filename" : "include/spgw.p4",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003297 "line" : 199,
3298 "column" : 8,
3299 "source_fragment" : "spgw_meta.ipv4_len = ipv4.total_len"
3300 }
3301 }
3302 ]
3303 },
3304 {
3305 "name" : "act_12",
Esin Karaman971fb7f2017-12-28 13:44:52 +00003306 "id" : 50,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003307 "runtime_data" : [],
3308 "primitives" : [
3309 {
3310 "op" : "assign",
3311 "parameters" : [
3312 {
3313 "type" : "field",
3314 "value" : ["vlan_tag", "ether_type"]
3315 },
3316 {
3317 "type" : "hexstr",
3318 "value" : "0x0800"
3319 }
3320 ],
3321 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003322 "filename" : "include/control/../define.p4",
Carmelo Cascone228092b2018-06-15 20:41:10 +02003323 "line" : 69,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003324 "column" : 31,
3325 "source_fragment" : "0x0800; ..."
3326 }
3327 },
3328 {
3329 "op" : "assign",
3330 "parameters" : [
3331 {
3332 "type" : "field",
3333 "value" : ["scalars", "fabric_metadata_t.original_ether_type"]
3334 },
3335 {
3336 "type" : "hexstr",
3337 "value" : "0x0800"
3338 }
3339 ],
3340 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003341 "filename" : "include/control/../define.p4",
Carmelo Cascone228092b2018-06-15 20:41:10 +02003342 "line" : 69,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003343 "column" : 31,
3344 "source_fragment" : "0x0800; ..."
3345 }
3346 }
3347 ]
3348 },
3349 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003350 "name" : "act_13",
Esin Karaman971fb7f2017-12-28 13:44:52 +00003351 "id" : 51,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003352 "runtime_data" : [],
3353 "primitives" : [
3354 {
3355 "op" : "assign",
3356 "parameters" : [
3357 {
3358 "type" : "field",
3359 "value" : ["scalars", "next_tmp_0"]
3360 },
3361 {
3362 "type" : "expression",
3363 "value" : {
3364 "type" : "expression",
3365 "value" : {
3366 "op" : "b2d",
3367 "left" : null,
3368 "right" : {
3369 "type" : "bool",
3370 "value" : true
3371 }
3372 }
3373 }
3374 }
3375 ]
3376 }
3377 ]
3378 },
3379 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003380 "name" : "act_14",
Esin Karaman971fb7f2017-12-28 13:44:52 +00003381 "id" : 52,
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", "next_tmp_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" : false
3401 }
3402 }
3403 }
3404 }
3405 ]
3406 }
3407 ]
3408 },
3409 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003410 "name" : "act_15",
Esin Karaman971fb7f2017-12-28 13:44:52 +00003411 "id" : 53,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003412 "runtime_data" : [],
3413 "primitives" : [
3414 {
3415 "op" : "assign",
3416 "parameters" : [
3417 {
3418 "type" : "field",
3419 "value" : ["ipv4", "ttl"]
3420 },
3421 {
3422 "type" : "expression",
3423 "value" : {
3424 "type" : "expression",
3425 "value" : {
3426 "op" : "&",
3427 "left" : {
3428 "type" : "expression",
3429 "value" : {
3430 "op" : "+",
3431 "left" : {
3432 "type" : "field",
3433 "value" : ["ipv4", "ttl"]
3434 },
3435 "right" : {
3436 "type" : "hexstr",
3437 "value" : "0xff"
3438 }
3439 }
3440 },
3441 "right" : {
3442 "type" : "hexstr",
3443 "value" : "0xff"
3444 }
3445 }
3446 }
3447 }
3448 ],
3449 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003450 "filename" : "include/control/next.p4",
Esin Karaman971fb7f2017-12-28 13:44:52 +00003451 "line" : 168,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003452 "column" : 20,
3453 "source_fragment" : "hdr.ipv4.ttl = hdr.ipv4.ttl - 1"
3454 }
3455 }
3456 ]
3457 },
3458 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003459 "name" : "act_16",
Esin Karaman971fb7f2017-12-28 13:44:52 +00003460 "id" : 54,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003461 "runtime_data" : [],
3462 "primitives" : [
3463 {
3464 "op" : "assign",
3465 "parameters" : [
3466 {
3467 "type" : "field",
3468 "value" : ["scalars", "tmp_0"]
3469 },
3470 {
3471 "type" : "expression",
3472 "value" : {
3473 "type" : "expression",
3474 "value" : {
3475 "op" : "&",
3476 "left" : {
3477 "type" : "field",
3478 "value" : ["standard_metadata", "egress_spec"]
3479 },
3480 "right" : {
3481 "type" : "hexstr",
3482 "value" : "0xffffffff"
3483 }
3484 }
3485 }
3486 }
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003487 ],
3488 "source_info" : {
3489 "filename" : "include/control/port_counter.p4",
3490 "line" : 28,
3491 "column" : 38,
3492 "source_fragment" : "(bit<32>)standard_metadata.egress_spec"
3493 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003494 },
3495 {
3496 "op" : "count",
3497 "parameters" : [
3498 {
3499 "type" : "counter_array",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003500 "value" : "FabricIngress.port_counters_control.egress_port_counter"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003501 },
3502 {
3503 "type" : "field",
3504 "value" : ["scalars", "tmp_0"]
3505 }
3506 ],
3507 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003508 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003509 "line" : 28,
3510 "column" : 12,
3511 "source_fragment" : "egress_port_counter.count((bit<32>)standard_metadata.egress_spec)"
3512 }
3513 }
3514 ]
3515 },
3516 {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003517 "name" : "act_17",
Esin Karaman971fb7f2017-12-28 13:44:52 +00003518 "id" : 55,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003519 "runtime_data" : [],
3520 "primitives" : [
3521 {
3522 "op" : "assign",
3523 "parameters" : [
3524 {
3525 "type" : "field",
3526 "value" : ["scalars", "tmp_1"]
3527 },
3528 {
3529 "type" : "expression",
3530 "value" : {
3531 "type" : "expression",
3532 "value" : {
3533 "op" : "&",
3534 "left" : {
3535 "type" : "field",
3536 "value" : ["standard_metadata", "ingress_port"]
3537 },
3538 "right" : {
3539 "type" : "hexstr",
3540 "value" : "0xffffffff"
3541 }
3542 }
3543 }
3544 }
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003545 ],
3546 "source_info" : {
3547 "filename" : "include/control/port_counter.p4",
3548 "line" : 31,
3549 "column" : 39,
3550 "source_fragment" : "(bit<32>)standard_metadata.ingress_port"
3551 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003552 },
3553 {
3554 "op" : "count",
3555 "parameters" : [
3556 {
3557 "type" : "counter_array",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003558 "value" : "FabricIngress.port_counters_control.ingress_port_counter"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003559 },
3560 {
3561 "type" : "field",
3562 "value" : ["scalars", "tmp_1"]
3563 }
3564 ],
3565 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003566 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003567 "line" : 31,
3568 "column" : 12,
3569 "source_fragment" : "ingress_port_counter.count((bit<32>)standard_metadata.ingress_port)"
3570 }
3571 }
3572 ]
3573 },
3574 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003575 "name" : "nop",
Esin Karaman971fb7f2017-12-28 13:44:52 +00003576 "id" : 56,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003577 "runtime_data" : [],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003578 "primitives" : []
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003579 },
3580 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003581 "name" : "FabricEgress.spgw_egress.gtpu_encap",
Esin Karaman971fb7f2017-12-28 13:44:52 +00003582 "id" : 57,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003583 "runtime_data" : [],
3584 "primitives" : [
3585 {
3586 "op" : "add_header",
3587 "parameters" : [
3588 {
3589 "type" : "header",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003590 "value" : "gtpu_ipv4"
3591 }
3592 ],
3593 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003594 "filename" : "include/spgw.p4",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003595 "line" : 214,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003596 "column" : 8,
3597 "source_fragment" : "gtpu_ipv4.setValid()"
3598 }
3599 },
3600 {
3601 "op" : "assign",
3602 "parameters" : [
3603 {
3604 "type" : "field",
3605 "value" : ["gtpu_ipv4", "version"]
3606 },
3607 {
3608 "type" : "hexstr",
3609 "value" : "0x04"
3610 }
3611 ],
3612 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003613 "filename" : "include/spgw.p4",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003614 "line" : 215,
Yi Tseng3d3956d2018-01-31 17:28:05 -08003615 "column" : 8,
3616 "source_fragment" : "gtpu_ipv4.version = 4"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003617 }
3618 },
3619 {
3620 "op" : "assign",
3621 "parameters" : [
3622 {
3623 "type" : "field",
3624 "value" : ["gtpu_ipv4", "ihl"]
3625 },
3626 {
3627 "type" : "hexstr",
3628 "value" : "0x05"
3629 }
3630 ],
3631 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003632 "filename" : "include/control/../define.p4",
Carmelo Cascone228092b2018-06-15 20:41:10 +02003633 "line" : 78,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003634 "column" : 28,
3635 "source_fragment" : "5; ..."
3636 }
3637 },
3638 {
3639 "op" : "assign",
3640 "parameters" : [
3641 {
3642 "type" : "field",
3643 "value" : ["gtpu_ipv4", "diffserv"]
3644 },
3645 {
3646 "type" : "hexstr",
3647 "value" : "0x00"
3648 }
3649 ],
3650 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003651 "filename" : "include/spgw.p4",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003652 "line" : 217,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003653 "column" : 8,
3654 "source_fragment" : "gtpu_ipv4.diffserv = 0"
3655 }
3656 },
3657 {
3658 "op" : "assign",
3659 "parameters" : [
3660 {
3661 "type" : "field",
3662 "value" : ["gtpu_ipv4", "total_len"]
3663 },
3664 {
3665 "type" : "expression",
3666 "value" : {
3667 "type" : "expression",
3668 "value" : {
3669 "op" : "&",
3670 "left" : {
3671 "type" : "expression",
3672 "value" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003673 "op" : "+",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003674 "left" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08003675 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003676 "value" : ["userMetadata.spgw", "ipv4_len"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08003677 },
3678 "right" : {
3679 "type" : "hexstr",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08003680 "value" : "0x0024"
Carmelo Cascone14cde402018-01-25 01:57:18 -08003681 }
3682 }
3683 },
3684 "right" : {
3685 "type" : "hexstr",
3686 "value" : "0xffff"
3687 }
3688 }
3689 }
3690 }
3691 ],
3692 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003693 "filename" : "include/spgw.p4",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003694 "line" : 218,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003695 "column" : 8,
Yi Tseng27b9bc02018-04-12 14:52:40 +08003696 "source_fragment" : "gtpu_ipv4.total_len = spgw_meta.ipv4_len ..."
Carmelo Cascone14cde402018-01-25 01:57:18 -08003697 }
3698 },
3699 {
3700 "op" : "assign",
3701 "parameters" : [
3702 {
3703 "type" : "field",
3704 "value" : ["gtpu_ipv4", "identification"]
3705 },
3706 {
3707 "type" : "hexstr",
3708 "value" : "0x1513"
3709 }
3710 ],
3711 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003712 "filename" : "include/spgw.p4",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003713 "line" : 220,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003714 "column" : 8,
3715 "source_fragment" : "gtpu_ipv4.identification = 0x1513"
3716 }
3717 },
3718 {
3719 "op" : "assign",
3720 "parameters" : [
3721 {
3722 "type" : "field",
3723 "value" : ["gtpu_ipv4", "flags"]
3724 },
3725 {
3726 "type" : "hexstr",
3727 "value" : "0x00"
3728 }
3729 ],
3730 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003731 "filename" : "include/spgw.p4",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003732 "line" : 221,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003733 "column" : 8,
3734 "source_fragment" : "gtpu_ipv4.flags = 0"
3735 }
3736 },
3737 {
3738 "op" : "assign",
3739 "parameters" : [
3740 {
3741 "type" : "field",
3742 "value" : ["gtpu_ipv4", "frag_offset"]
3743 },
3744 {
3745 "type" : "hexstr",
3746 "value" : "0x0000"
3747 }
3748 ],
3749 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003750 "filename" : "include/spgw.p4",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003751 "line" : 222,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003752 "column" : 8,
3753 "source_fragment" : "gtpu_ipv4.frag_offset = 0"
3754 }
3755 },
3756 {
3757 "op" : "assign",
3758 "parameters" : [
3759 {
3760 "type" : "field",
3761 "value" : ["gtpu_ipv4", "ttl"]
3762 },
3763 {
3764 "type" : "hexstr",
3765 "value" : "0x40"
3766 }
3767 ],
3768 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003769 "filename" : "include/control/../define.p4",
Carmelo Cascone228092b2018-06-15 20:41:10 +02003770 "line" : 88,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003771 "column" : 32,
3772 "source_fragment" : "64; ..."
3773 }
3774 },
3775 {
3776 "op" : "assign",
3777 "parameters" : [
3778 {
3779 "type" : "field",
3780 "value" : ["gtpu_ipv4", "protocol"]
3781 },
3782 {
3783 "type" : "hexstr",
3784 "value" : "0x11"
3785 }
3786 ],
3787 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003788 "filename" : "include/control/../define.p4",
Carmelo Cascone228092b2018-06-15 20:41:10 +02003789 "line" : 75,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003790 "column" : 25,
3791 "source_fragment" : "17; ..."
3792 }
3793 },
3794 {
3795 "op" : "assign",
3796 "parameters" : [
3797 {
3798 "type" : "field",
3799 "value" : ["gtpu_ipv4", "dst_addr"]
3800 },
3801 {
3802 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003803 "value" : ["userMetadata.spgw", "s1u_enb_addr"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08003804 }
3805 ],
3806 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003807 "filename" : "include/spgw.p4",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003808 "line" : 225,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003809 "column" : 8,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003810 "source_fragment" : "gtpu_ipv4.dst_addr = spgw_meta.s1u_enb_addr"
Carmelo Cascone14cde402018-01-25 01:57:18 -08003811 }
3812 },
3813 {
3814 "op" : "assign",
3815 "parameters" : [
3816 {
3817 "type" : "field",
3818 "value" : ["gtpu_ipv4", "src_addr"]
3819 },
3820 {
3821 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003822 "value" : ["userMetadata.spgw", "s1u_sgw_addr"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08003823 }
3824 ],
3825 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003826 "filename" : "include/spgw.p4",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003827 "line" : 226,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003828 "column" : 8,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003829 "source_fragment" : "gtpu_ipv4.src_addr = spgw_meta.s1u_sgw_addr"
Carmelo Cascone14cde402018-01-25 01:57:18 -08003830 }
3831 },
3832 {
3833 "op" : "assign",
3834 "parameters" : [
3835 {
3836 "type" : "field",
3837 "value" : ["gtpu_ipv4", "hdr_checksum"]
3838 },
3839 {
3840 "type" : "hexstr",
3841 "value" : "0x0000"
3842 }
3843 ],
3844 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003845 "filename" : "include/spgw.p4",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003846 "line" : 227,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003847 "column" : 8,
3848 "source_fragment" : "gtpu_ipv4.hdr_checksum = 0"
3849 }
3850 },
3851 {
3852 "op" : "add_header",
3853 "parameters" : [
3854 {
3855 "type" : "header",
3856 "value" : "gtpu_udp"
3857 }
3858 ],
3859 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003860 "filename" : "include/spgw.p4",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003861 "line" : 229,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003862 "column" : 8,
3863 "source_fragment" : "gtpu_udp.setValid()"
3864 }
3865 },
3866 {
3867 "op" : "assign",
3868 "parameters" : [
3869 {
3870 "type" : "field",
3871 "value" : ["gtpu_udp", "src_port"]
3872 },
3873 {
3874 "type" : "hexstr",
3875 "value" : "0x0868"
3876 }
3877 ],
3878 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003879 "filename" : "include/spgw.p4",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003880 "line" : 230,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003881 "column" : 8,
3882 "source_fragment" : "gtpu_udp.src_port = 2152"
3883 }
3884 },
3885 {
3886 "op" : "assign",
3887 "parameters" : [
3888 {
3889 "type" : "field",
3890 "value" : ["gtpu_udp", "dst_port"]
3891 },
3892 {
3893 "type" : "hexstr",
3894 "value" : "0x0868"
3895 }
3896 ],
3897 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003898 "filename" : "include/spgw.p4",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003899 "line" : 231,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003900 "column" : 8,
3901 "source_fragment" : "gtpu_udp.dst_port = 2152"
3902 }
3903 },
3904 {
3905 "op" : "assign",
3906 "parameters" : [
3907 {
3908 "type" : "field",
3909 "value" : ["gtpu_udp", "len"]
3910 },
3911 {
3912 "type" : "expression",
3913 "value" : {
3914 "type" : "expression",
3915 "value" : {
3916 "op" : "&",
3917 "left" : {
3918 "type" : "expression",
3919 "value" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003920 "op" : "+",
Carmelo Cascone14cde402018-01-25 01:57:18 -08003921 "left" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08003922 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003923 "value" : ["userMetadata.spgw", "ipv4_len"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003924 },
3925 "right" : {
3926 "type" : "hexstr",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08003927 "value" : "0x0010"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003928 }
3929 }
3930 },
3931 "right" : {
3932 "type" : "hexstr",
3933 "value" : "0xffff"
3934 }
3935 }
3936 }
3937 }
3938 ],
3939 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003940 "filename" : "include/spgw.p4",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003941 "line" : 232,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003942 "column" : 8,
Yi Tseng27b9bc02018-04-12 14:52:40 +08003943 "source_fragment" : "gtpu_udp.len = spgw_meta.ipv4_len ..."
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003944 }
3945 },
3946 {
3947 "op" : "assign",
3948 "parameters" : [
3949 {
3950 "type" : "field",
3951 "value" : ["gtpu_udp", "checksum"]
3952 },
3953 {
3954 "type" : "hexstr",
3955 "value" : "0x0000"
3956 }
3957 ],
3958 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003959 "filename" : "include/spgw.p4",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003960 "line" : 234,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003961 "column" : 8,
3962 "source_fragment" : "gtpu_udp.checksum = 0"
3963 }
Carmelo Cascone14cde402018-01-25 01:57:18 -08003964 },
3965 {
3966 "op" : "add_header",
3967 "parameters" : [
3968 {
3969 "type" : "header",
3970 "value" : "gtpu"
3971 }
3972 ],
3973 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003974 "filename" : "include/spgw.p4",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003975 "line" : 236,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003976 "column" : 8,
3977 "source_fragment" : "gtpu.setValid()"
3978 }
3979 },
3980 {
3981 "op" : "assign",
3982 "parameters" : [
3983 {
3984 "type" : "field",
3985 "value" : ["gtpu", "version"]
3986 },
3987 {
3988 "type" : "hexstr",
3989 "value" : "0x01"
3990 }
3991 ],
3992 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003993 "filename" : "include/spgw.p4",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003994 "line" : 237,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003995 "column" : 8,
3996 "source_fragment" : "gtpu.version = 0x01"
3997 }
3998 },
3999 {
4000 "op" : "assign",
4001 "parameters" : [
4002 {
4003 "type" : "field",
4004 "value" : ["gtpu", "pt"]
4005 },
4006 {
4007 "type" : "hexstr",
4008 "value" : "0x01"
4009 }
4010 ],
4011 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02004012 "filename" : "include/spgw.p4",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004013 "line" : 238,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004014 "column" : 8,
4015 "source_fragment" : "gtpu.pt = 0x01"
4016 }
4017 },
4018 {
4019 "op" : "assign",
4020 "parameters" : [
4021 {
4022 "type" : "field",
4023 "value" : ["gtpu", "spare"]
4024 },
4025 {
4026 "type" : "hexstr",
4027 "value" : "0x00"
4028 }
4029 ],
4030 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02004031 "filename" : "include/spgw.p4",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004032 "line" : 239,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004033 "column" : 8,
4034 "source_fragment" : "gtpu.spare = 0"
4035 }
4036 },
4037 {
4038 "op" : "assign",
4039 "parameters" : [
4040 {
4041 "type" : "field",
4042 "value" : ["gtpu", "ex_flag"]
4043 },
4044 {
4045 "type" : "hexstr",
4046 "value" : "0x00"
4047 }
4048 ],
4049 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02004050 "filename" : "include/spgw.p4",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004051 "line" : 240,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004052 "column" : 8,
4053 "source_fragment" : "gtpu.ex_flag = 0"
4054 }
4055 },
4056 {
4057 "op" : "assign",
4058 "parameters" : [
4059 {
4060 "type" : "field",
4061 "value" : ["gtpu", "seq_flag"]
4062 },
4063 {
4064 "type" : "hexstr",
4065 "value" : "0x00"
4066 }
4067 ],
4068 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02004069 "filename" : "include/spgw.p4",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004070 "line" : 241,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004071 "column" : 8,
4072 "source_fragment" : "gtpu.seq_flag = 0"
4073 }
4074 },
4075 {
4076 "op" : "assign",
4077 "parameters" : [
4078 {
4079 "type" : "field",
4080 "value" : ["gtpu", "npdu_flag"]
4081 },
4082 {
4083 "type" : "hexstr",
4084 "value" : "0x00"
4085 }
4086 ],
4087 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02004088 "filename" : "include/spgw.p4",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004089 "line" : 242,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004090 "column" : 8,
4091 "source_fragment" : "gtpu.npdu_flag = 0"
4092 }
4093 },
4094 {
4095 "op" : "assign",
4096 "parameters" : [
4097 {
4098 "type" : "field",
4099 "value" : ["gtpu", "msgtype"]
4100 },
4101 {
4102 "type" : "hexstr",
4103 "value" : "0xff"
4104 }
4105 ],
4106 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02004107 "filename" : "include/spgw.p4",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004108 "line" : 243,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004109 "column" : 8,
4110 "source_fragment" : "gtpu.msgtype = 0xff"
4111 }
4112 },
4113 {
4114 "op" : "assign",
4115 "parameters" : [
4116 {
4117 "type" : "field",
4118 "value" : ["gtpu", "msglen"]
4119 },
4120 {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004121 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004122 "value" : ["userMetadata.spgw", "ipv4_len"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08004123 }
4124 ],
4125 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02004126 "filename" : "include/spgw.p4",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004127 "line" : 244,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004128 "column" : 8,
Yi Tseng27b9bc02018-04-12 14:52:40 +08004129 "source_fragment" : "gtpu.msglen = spgw_meta.ipv4_len"
Carmelo Cascone14cde402018-01-25 01:57:18 -08004130 }
4131 },
4132 {
4133 "op" : "assign",
4134 "parameters" : [
4135 {
4136 "type" : "field",
4137 "value" : ["gtpu", "teid"]
4138 },
4139 {
4140 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004141 "value" : ["userMetadata.spgw", "teid"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08004142 }
4143 ],
4144 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02004145 "filename" : "include/spgw.p4",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004146 "line" : 245,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004147 "column" : 8,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004148 "source_fragment" : "gtpu.teid = spgw_meta.teid"
Carmelo Cascone14cde402018-01-25 01:57:18 -08004149 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004150 }
4151 ]
4152 },
4153 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004154 "name" : "FabricEgress.pkt_io_egress.pop_vlan",
Esin Karaman971fb7f2017-12-28 13:44:52 +00004155 "id" : 58,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004156 "runtime_data" : [],
4157 "primitives" : [
4158 {
4159 "op" : "assign",
4160 "parameters" : [
4161 {
4162 "type" : "field",
4163 "value" : ["ethernet", "ether_type"]
4164 },
4165 {
4166 "type" : "field",
4167 "value" : ["vlan_tag", "ether_type"]
4168 }
4169 ],
4170 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02004171 "filename" : "include/control/packetio.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004172 "line" : 38,
4173 "column" : 8,
4174 "source_fragment" : "hdr.ethernet.ether_type = hdr.vlan_tag.ether_type"
4175 }
4176 },
4177 {
4178 "op" : "remove_header",
4179 "parameters" : [
4180 {
4181 "type" : "header",
4182 "value" : "vlan_tag"
4183 }
4184 ],
4185 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02004186 "filename" : "include/control/packetio.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004187 "line" : 39,
4188 "column" : 8,
4189 "source_fragment" : "hdr.vlan_tag.setInvalid()"
4190 }
4191 }
4192 ]
4193 },
4194 {
4195 "name" : "FabricEgress.egress_next.pop_vlan",
Esin Karaman971fb7f2017-12-28 13:44:52 +00004196 "id" : 59,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004197 "runtime_data" : [],
4198 "primitives" : [
4199 {
4200 "op" : "assign",
4201 "parameters" : [
4202 {
4203 "type" : "field",
4204 "value" : ["ethernet", "ether_type"]
4205 },
4206 {
4207 "type" : "field",
4208 "value" : ["vlan_tag", "ether_type"]
4209 }
4210 ],
4211 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02004212 "filename" : "include/control/next.p4",
Esin Karaman971fb7f2017-12-28 13:44:52 +00004213 "line" : 188,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004214 "column" : 8,
4215 "source_fragment" : "hdr.ethernet.ether_type = hdr.vlan_tag.ether_type"
4216 }
4217 },
4218 {
4219 "op" : "remove_header",
4220 "parameters" : [
4221 {
4222 "type" : "header",
4223 "value" : "vlan_tag"
4224 }
4225 ],
4226 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02004227 "filename" : "include/control/next.p4",
Esin Karaman971fb7f2017-12-28 13:44:52 +00004228 "line" : 189,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004229 "column" : 8,
4230 "source_fragment" : "hdr.vlan_tag.setInvalid()"
4231 }
4232 }
4233 ]
4234 },
4235 {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02004236 "name" : "act_18",
Esin Karaman971fb7f2017-12-28 13:44:52 +00004237 "id" : 60,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004238 "runtime_data" : [],
4239 "primitives" : [
4240 {
4241 "op" : "add_header",
4242 "parameters" : [
4243 {
4244 "type" : "header",
4245 "value" : "packet_in"
4246 }
4247 ],
4248 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02004249 "filename" : "include/control/packetio.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004250 "line" : 46,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004251 "column" : 12,
4252 "source_fragment" : "hdr.packet_in.setValid()"
4253 }
4254 },
4255 {
4256 "op" : "assign",
4257 "parameters" : [
4258 {
4259 "type" : "field",
4260 "value" : ["packet_in", "ingress_port"]
4261 },
4262 {
4263 "type" : "field",
4264 "value" : ["standard_metadata", "ingress_port"]
4265 }
4266 ],
4267 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02004268 "filename" : "include/control/packetio.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004269 "line" : 47,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004270 "column" : 12,
4271 "source_fragment" : "hdr.packet_in.ingress_port = standard_metadata.ingress_port"
4272 }
4273 }
4274 ]
4275 },
4276 {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02004277 "name" : "act_19",
Esin Karaman971fb7f2017-12-28 13:44:52 +00004278 "id" : 61,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004279 "runtime_data" : [],
4280 "primitives" : [
4281 {
4282 "op" : "remove_header",
4283 "parameters" : [
4284 {
4285 "type" : "header",
4286 "value" : "gtpu_ipv4"
4287 }
4288 ],
4289 "source_info" : {
4290 "filename" : "fabric.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004291 "line" : 71,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004292 "column" : 36,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004293 "source_fragment" : "hdr.gtpu_ipv4"
4294 }
4295 },
4296 {
4297 "op" : "remove_header",
4298 "parameters" : [
4299 {
4300 "type" : "header",
4301 "value" : "gtpu_udp"
4302 }
4303 ],
4304 "source_info" : {
4305 "filename" : "fabric.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004306 "line" : 71,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004307 "column" : 51,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004308 "source_fragment" : "hdr.gtpu_udp"
4309 }
4310 },
4311 {
4312 "op" : "remove_header",
4313 "parameters" : [
4314 {
4315 "type" : "header",
4316 "value" : "gtpu"
4317 }
4318 ],
4319 "source_info" : {
4320 "filename" : "fabric.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004321 "line" : 71,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004322 "column" : 65,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004323 "source_fragment" : "hdr.gtpu"
4324 }
4325 }
4326 ]
4327 }
4328 ],
4329 "pipelines" : [
4330 {
4331 "name" : "ingress",
4332 "id" : 0,
4333 "source_info" : {
4334 "filename" : "fabric.p4",
4335 "line" : 33,
4336 "column" : 8,
4337 "source_fragment" : "FabricIngress"
4338 },
4339 "init_table" : "node_2",
4340 "tables" : [
4341 {
4342 "name" : "tbl_act",
4343 "id" : 0,
4344 "key" : [],
4345 "match_type" : "exact",
4346 "type" : "simple",
4347 "max_size" : 1024,
4348 "with_counters" : false,
4349 "support_timeout" : false,
4350 "direct_meters" : null,
Esin Karaman971fb7f2017-12-28 13:44:52 +00004351 "action_ids" : [37],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004352 "actions" : ["act"],
4353 "base_default_next" : null,
4354 "next_tables" : {
4355 "act" : null
4356 },
4357 "default_entry" : {
Esin Karaman971fb7f2017-12-28 13:44:52 +00004358 "action_id" : 37,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004359 "action_const" : true,
4360 "action_data" : [],
4361 "action_entry_const" : true
4362 }
4363 },
4364 {
4365 "name" : "tbl_act_0",
4366 "id" : 1,
4367 "key" : [],
4368 "match_type" : "exact",
4369 "type" : "simple",
4370 "max_size" : 1024,
4371 "with_counters" : false,
4372 "support_timeout" : false,
4373 "direct_meters" : null,
Esin Karaman971fb7f2017-12-28 13:44:52 +00004374 "action_ids" : [45],
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004375 "actions" : ["act_7"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004376 "base_default_next" : "node_5",
4377 "next_tables" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004378 "act_7" : "node_5"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004379 },
4380 "default_entry" : {
Esin Karaman971fb7f2017-12-28 13:44:52 +00004381 "action_id" : 45,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004382 "action_const" : true,
4383 "action_data" : [],
4384 "action_entry_const" : true
4385 }
4386 },
4387 {
4388 "name" : "tbl_act_1",
4389 "id" : 2,
4390 "key" : [],
4391 "match_type" : "exact",
4392 "type" : "simple",
4393 "max_size" : 1024,
4394 "with_counters" : false,
4395 "support_timeout" : false,
4396 "direct_meters" : null,
Esin Karaman971fb7f2017-12-28 13:44:52 +00004397 "action_ids" : [40],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004398 "actions" : ["act_2"],
Yi Tseng27b9bc02018-04-12 14:52:40 +08004399 "base_default_next" : "FabricIngress.spgw_ingress.s1u_filter_table",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004400 "next_tables" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004401 "act_2" : "FabricIngress.spgw_ingress.s1u_filter_table"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004402 },
4403 "default_entry" : {
Esin Karaman971fb7f2017-12-28 13:44:52 +00004404 "action_id" : 40,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004405 "action_const" : true,
4406 "action_data" : [],
4407 "action_entry_const" : true
4408 }
4409 },
4410 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004411 "name" : "FabricIngress.spgw_ingress.s1u_filter_table",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004412 "id" : 3,
4413 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02004414 "filename" : "include/spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004415 "line" : 65,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004416 "column" : 10,
4417 "source_fragment" : "s1u_filter_table"
4418 },
4419 "key" : [
4420 {
4421 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004422 "name" : "spgw_meta.s1u_sgw_addr",
4423 "target" : ["userMetadata.spgw", "s1u_sgw_addr"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004424 "mask" : null
4425 }
4426 ],
4427 "match_type" : "exact",
4428 "type" : "simple",
4429 "max_size" : 1024,
4430 "with_counters" : false,
4431 "support_timeout" : false,
4432 "direct_meters" : null,
4433 "action_ids" : [1],
4434 "actions" : ["NoAction"],
4435 "base_default_next" : null,
4436 "next_tables" : {
4437 "__HIT__" : "tbl_act_2",
4438 "__MISS__" : "tbl_act_3"
4439 },
4440 "default_entry" : {
4441 "action_id" : 1,
4442 "action_const" : false,
4443 "action_data" : [],
4444 "action_entry_const" : false
4445 }
4446 },
4447 {
4448 "name" : "tbl_act_2",
4449 "id" : 4,
4450 "key" : [],
4451 "match_type" : "exact",
4452 "type" : "simple",
4453 "max_size" : 1024,
4454 "with_counters" : false,
4455 "support_timeout" : false,
4456 "direct_meters" : null,
Esin Karaman971fb7f2017-12-28 13:44:52 +00004457 "action_ids" : [38],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004458 "actions" : ["act_0"],
4459 "base_default_next" : "node_10",
4460 "next_tables" : {
4461 "act_0" : "node_10"
4462 },
4463 "default_entry" : {
Esin Karaman971fb7f2017-12-28 13:44:52 +00004464 "action_id" : 38,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004465 "action_const" : true,
4466 "action_data" : [],
4467 "action_entry_const" : true
4468 }
4469 },
4470 {
4471 "name" : "tbl_act_3",
4472 "id" : 5,
4473 "key" : [],
4474 "match_type" : "exact",
4475 "type" : "simple",
4476 "max_size" : 1024,
4477 "with_counters" : false,
4478 "support_timeout" : false,
4479 "direct_meters" : null,
Esin Karaman971fb7f2017-12-28 13:44:52 +00004480 "action_ids" : [39],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004481 "actions" : ["act_1"],
4482 "base_default_next" : "node_10",
4483 "next_tables" : {
4484 "act_1" : "node_10"
4485 },
4486 "default_entry" : {
Esin Karaman971fb7f2017-12-28 13:44:52 +00004487 "action_id" : 39,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004488 "action_const" : true,
4489 "action_data" : [],
4490 "action_entry_const" : true
4491 }
4492 },
4493 {
4494 "name" : "tbl_act_4",
4495 "id" : 6,
4496 "key" : [],
4497 "match_type" : "exact",
4498 "type" : "simple",
4499 "max_size" : 1024,
4500 "with_counters" : false,
4501 "support_timeout" : false,
4502 "direct_meters" : null,
Esin Karaman971fb7f2017-12-28 13:44:52 +00004503 "action_ids" : [41],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004504 "actions" : ["act_3"],
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004505 "base_default_next" : "node_17",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004506 "next_tables" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004507 "act_3" : "node_17"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004508 },
4509 "default_entry" : {
Esin Karaman971fb7f2017-12-28 13:44:52 +00004510 "action_id" : 41,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004511 "action_const" : true,
4512 "action_data" : [],
4513 "action_entry_const" : true
4514 }
4515 },
4516 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004517 "name" : "FabricIngress.spgw_ingress.ue_filter_table",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004518 "id" : 7,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004519 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02004520 "filename" : "include/spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004521 "line" : 55,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004522 "column" : 10,
4523 "source_fragment" : "ue_filter_table"
4524 },
4525 "key" : [
4526 {
4527 "match_type" : "lpm",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004528 "name" : "ipv4.dst_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004529 "target" : ["ipv4", "dst_addr"],
4530 "mask" : null
4531 }
4532 ],
4533 "match_type" : "lpm",
4534 "type" : "simple",
4535 "max_size" : 1024,
4536 "with_counters" : false,
4537 "support_timeout" : false,
4538 "direct_meters" : null,
4539 "action_ids" : [0],
4540 "actions" : ["NoAction"],
4541 "base_default_next" : null,
4542 "next_tables" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004543 "__HIT__" : "tbl_act_5",
4544 "__MISS__" : "tbl_act_6"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004545 },
4546 "default_entry" : {
4547 "action_id" : 0,
4548 "action_const" : false,
4549 "action_data" : [],
4550 "action_entry_const" : false
4551 }
4552 },
4553 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004554 "name" : "tbl_act_5",
4555 "id" : 8,
4556 "key" : [],
4557 "match_type" : "exact",
4558 "type" : "simple",
4559 "max_size" : 1024,
4560 "with_counters" : false,
4561 "support_timeout" : false,
4562 "direct_meters" : null,
Esin Karaman971fb7f2017-12-28 13:44:52 +00004563 "action_ids" : [42],
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004564 "actions" : ["act_4"],
4565 "base_default_next" : "node_15",
4566 "next_tables" : {
4567 "act_4" : "node_15"
4568 },
4569 "default_entry" : {
Esin Karaman971fb7f2017-12-28 13:44:52 +00004570 "action_id" : 42,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004571 "action_const" : true,
4572 "action_data" : [],
4573 "action_entry_const" : true
4574 }
4575 },
4576 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004577 "name" : "tbl_act_6",
4578 "id" : 9,
4579 "key" : [],
4580 "match_type" : "exact",
4581 "type" : "simple",
4582 "max_size" : 1024,
4583 "with_counters" : false,
4584 "support_timeout" : false,
4585 "direct_meters" : null,
Esin Karaman971fb7f2017-12-28 13:44:52 +00004586 "action_ids" : [43],
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004587 "actions" : ["act_5"],
4588 "base_default_next" : "node_15",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004589 "next_tables" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004590 "act_5" : "node_15"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004591 },
4592 "default_entry" : {
Esin Karaman971fb7f2017-12-28 13:44:52 +00004593 "action_id" : 43,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004594 "action_const" : true,
4595 "action_data" : [],
4596 "action_entry_const" : true
4597 }
4598 },
4599 {
4600 "name" : "tbl_act_7",
4601 "id" : 10,
4602 "key" : [],
4603 "match_type" : "exact",
4604 "type" : "simple",
4605 "max_size" : 1024,
4606 "with_counters" : false,
4607 "support_timeout" : false,
4608 "direct_meters" : null,
Esin Karaman971fb7f2017-12-28 13:44:52 +00004609 "action_ids" : [44],
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004610 "actions" : ["act_6"],
4611 "base_default_next" : "node_17",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004612 "next_tables" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004613 "act_6" : "node_17"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004614 },
4615 "default_entry" : {
Esin Karaman971fb7f2017-12-28 13:44:52 +00004616 "action_id" : 44,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004617 "action_const" : true,
4618 "action_data" : [],
4619 "action_entry_const" : true
4620 }
4621 },
4622 {
4623 "name" : "tbl_act_8",
4624 "id" : 11,
4625 "key" : [],
4626 "match_type" : "exact",
4627 "type" : "simple",
4628 "max_size" : 1024,
4629 "with_counters" : false,
4630 "support_timeout" : false,
4631 "direct_meters" : null,
Esin Karaman971fb7f2017-12-28 13:44:52 +00004632 "action_ids" : [46],
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004633 "actions" : ["act_8"],
4634 "base_default_next" : "node_19",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004635 "next_tables" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004636 "act_8" : "node_19"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004637 },
4638 "default_entry" : {
Esin Karaman971fb7f2017-12-28 13:44:52 +00004639 "action_id" : 46,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004640 "action_const" : true,
4641 "action_data" : [],
4642 "action_entry_const" : true
4643 }
4644 },
4645 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004646 "name" : "tbl_spgw_ingress_gtpu_decap",
Carmelo Cascone14cde402018-01-25 01:57:18 -08004647 "id" : 12,
4648 "key" : [],
4649 "match_type" : "exact",
4650 "type" : "simple",
4651 "max_size" : 1024,
4652 "with_counters" : false,
4653 "support_timeout" : false,
4654 "direct_meters" : null,
Esin Karaman971fb7f2017-12-28 13:44:52 +00004655 "action_ids" : [14],
Yi Tseng27b9bc02018-04-12 14:52:40 +08004656 "actions" : ["FabricIngress.spgw_ingress.gtpu_decap"],
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004657 "base_default_next" : "node_22",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004658 "next_tables" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004659 "FabricIngress.spgw_ingress.gtpu_decap" : "node_22"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004660 },
4661 "default_entry" : {
Esin Karaman971fb7f2017-12-28 13:44:52 +00004662 "action_id" : 14,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004663 "action_const" : true,
4664 "action_data" : [],
4665 "action_entry_const" : true
4666 }
4667 },
4668 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004669 "name" : "FabricIngress.spgw_ingress.dl_sess_lookup",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004670 "id" : 13,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004671 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02004672 "filename" : "include/spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004673 "line" : 124,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004674 "column" : 10,
4675 "source_fragment" : "dl_sess_lookup"
4676 },
4677 "key" : [
4678 {
4679 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004680 "name" : "ipv4.dst_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004681 "target" : ["ipv4", "dst_addr"],
4682 "mask" : null
4683 }
4684 ],
4685 "match_type" : "exact",
4686 "type" : "simple",
4687 "max_size" : 1024,
4688 "with_counters" : false,
4689 "support_timeout" : false,
4690 "direct_meters" : null,
Esin Karaman971fb7f2017-12-28 13:44:52 +00004691 "action_ids" : [15, 2],
Yi Tseng27b9bc02018-04-12 14:52:40 +08004692 "actions" : ["FabricIngress.spgw_ingress.set_dl_sess_info", "NoAction"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004693 "base_default_next" : null,
4694 "next_tables" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004695 "__HIT__" : "tbl_act_9",
4696 "__MISS__" : "tbl_act_10"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004697 },
4698 "default_entry" : {
4699 "action_id" : 2,
4700 "action_const" : false,
4701 "action_data" : [],
4702 "action_entry_const" : false
4703 }
4704 },
4705 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004706 "name" : "tbl_act_9",
4707 "id" : 14,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004708 "key" : [],
4709 "match_type" : "exact",
4710 "type" : "simple",
4711 "max_size" : 1024,
4712 "with_counters" : false,
4713 "support_timeout" : false,
4714 "direct_meters" : null,
Esin Karaman971fb7f2017-12-28 13:44:52 +00004715 "action_ids" : [47],
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004716 "actions" : ["act_9"],
4717 "base_default_next" : "node_26",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004718 "next_tables" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004719 "act_9" : "node_26"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004720 },
4721 "default_entry" : {
Esin Karaman971fb7f2017-12-28 13:44:52 +00004722 "action_id" : 47,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004723 "action_const" : true,
4724 "action_data" : [],
4725 "action_entry_const" : true
4726 }
4727 },
4728 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004729 "name" : "tbl_act_10",
4730 "id" : 15,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004731 "key" : [],
4732 "match_type" : "exact",
4733 "type" : "simple",
4734 "max_size" : 1024,
4735 "with_counters" : false,
4736 "support_timeout" : false,
4737 "direct_meters" : null,
Esin Karaman971fb7f2017-12-28 13:44:52 +00004738 "action_ids" : [48],
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004739 "actions" : ["act_10"],
4740 "base_default_next" : "node_26",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004741 "next_tables" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004742 "act_10" : "node_26"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004743 },
4744 "default_entry" : {
Esin Karaman971fb7f2017-12-28 13:44:52 +00004745 "action_id" : 48,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004746 "action_const" : true,
4747 "action_data" : [],
4748 "action_entry_const" : true
4749 }
4750 },
4751 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004752 "name" : "tbl_spgw_ingress_drop_now",
4753 "id" : 16,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004754 "key" : [],
4755 "match_type" : "exact",
4756 "type" : "simple",
4757 "max_size" : 1024,
4758 "with_counters" : false,
4759 "support_timeout" : false,
4760 "direct_meters" : null,
Esin Karaman971fb7f2017-12-28 13:44:52 +00004761 "action_ids" : [13],
Yi Tseng27b9bc02018-04-12 14:52:40 +08004762 "actions" : ["FabricIngress.spgw_ingress.drop_now"],
4763 "base_default_next" : "FabricIngress.spgw_ingress.ue_cdr_table",
Carmelo Cascone14cde402018-01-25 01:57:18 -08004764 "next_tables" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004765 "FabricIngress.spgw_ingress.drop_now" : "FabricIngress.spgw_ingress.ue_cdr_table"
Carmelo Cascone14cde402018-01-25 01:57:18 -08004766 },
4767 "default_entry" : {
Esin Karaman971fb7f2017-12-28 13:44:52 +00004768 "action_id" : 13,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004769 "action_const" : true,
4770 "action_data" : [],
4771 "action_entry_const" : true
4772 }
4773 },
4774 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004775 "name" : "FabricIngress.spgw_ingress.ue_cdr_table",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004776 "id" : 17,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004777 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02004778 "filename" : "include/spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004779 "line" : 134,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004780 "column" : 10,
4781 "source_fragment" : "ue_cdr_table"
4782 },
4783 "key" : [
4784 {
4785 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004786 "name" : "ipv4.dst_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004787 "target" : ["ipv4", "dst_addr"],
4788 "mask" : null
4789 }
4790 ],
4791 "match_type" : "exact",
4792 "type" : "simple",
4793 "max_size" : 1024,
4794 "with_counters" : true,
4795 "support_timeout" : false,
4796 "direct_meters" : null,
Esin Karaman971fb7f2017-12-28 13:44:52 +00004797 "action_ids" : [16, 3],
Yi Tseng27b9bc02018-04-12 14:52:40 +08004798 "actions" : ["FabricIngress.spgw_ingress.update_ue_cdr", "NoAction"],
4799 "base_default_next" : "tbl_act_11",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004800 "next_tables" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004801 "FabricIngress.spgw_ingress.update_ue_cdr" : "tbl_act_11",
4802 "NoAction" : "tbl_act_11"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004803 },
4804 "default_entry" : {
4805 "action_id" : 3,
4806 "action_const" : false,
4807 "action_data" : [],
4808 "action_entry_const" : false
4809 }
4810 },
4811 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004812 "name" : "tbl_act_11",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004813 "id" : 18,
Yi Tseng27b9bc02018-04-12 14:52:40 +08004814 "key" : [],
4815 "match_type" : "exact",
4816 "type" : "simple",
4817 "max_size" : 1024,
4818 "with_counters" : false,
4819 "support_timeout" : false,
4820 "direct_meters" : null,
Esin Karaman971fb7f2017-12-28 13:44:52 +00004821 "action_ids" : [49],
Yi Tseng27b9bc02018-04-12 14:52:40 +08004822 "actions" : ["act_11"],
4823 "base_default_next" : "FabricIngress.filtering.ingress_port_vlan",
4824 "next_tables" : {
4825 "act_11" : "FabricIngress.filtering.ingress_port_vlan"
4826 },
4827 "default_entry" : {
Esin Karaman971fb7f2017-12-28 13:44:52 +00004828 "action_id" : 49,
Yi Tseng27b9bc02018-04-12 14:52:40 +08004829 "action_const" : true,
4830 "action_data" : [],
4831 "action_entry_const" : true
4832 }
4833 },
4834 {
4835 "name" : "FabricIngress.filtering.ingress_port_vlan",
4836 "id" : 19,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004837 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02004838 "filename" : "include/control/filtering.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004839 "line" : 57,
4840 "column" : 10,
4841 "source_fragment" : "ingress_port_vlan"
4842 },
4843 "key" : [
4844 {
4845 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004846 "name" : "standard_metadata.ingress_port",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004847 "target" : ["standard_metadata", "ingress_port"],
4848 "mask" : null
4849 },
4850 {
4851 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004852 "name" : "hdr.vlan_tag.is_valid",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004853 "target" : ["vlan_tag", "$valid$"],
4854 "mask" : null
4855 },
4856 {
4857 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004858 "name" : "hdr.vlan_tag.vlan_id",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004859 "target" : ["vlan_tag", "vlan_id"],
4860 "mask" : null
4861 }
4862 ],
4863 "match_type" : "ternary",
4864 "type" : "simple",
4865 "max_size" : 1024,
4866 "with_counters" : true,
4867 "support_timeout" : false,
4868 "direct_meters" : null,
Esin Karaman971fb7f2017-12-28 13:44:52 +00004869 "action_ids" : [19, 18, 10, 17],
Yi Tseng27b9bc02018-04-12 14:52:40 +08004870 "actions" : ["FabricIngress.filtering.push_internal_vlan", "FabricIngress.filtering.set_vlan", "nop", "FabricIngress.filtering.drop"],
4871 "base_default_next" : "FabricIngress.filtering.fwd_classifier",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004872 "next_tables" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004873 "FabricIngress.filtering.push_internal_vlan" : "FabricIngress.filtering.fwd_classifier",
4874 "FabricIngress.filtering.set_vlan" : "FabricIngress.filtering.fwd_classifier",
4875 "nop" : "FabricIngress.filtering.fwd_classifier",
4876 "FabricIngress.filtering.drop" : "FabricIngress.filtering.fwd_classifier"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004877 },
4878 "default_entry" : {
Esin Karaman971fb7f2017-12-28 13:44:52 +00004879 "action_id" : 10,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004880 "action_const" : true,
4881 "action_data" : [],
4882 "action_entry_const" : true
4883 }
4884 },
4885 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004886 "name" : "FabricIngress.filtering.fwd_classifier",
4887 "id" : 20,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004888 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02004889 "filename" : "include/control/filtering.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004890 "line" : 76,
4891 "column" : 10,
4892 "source_fragment" : "fwd_classifier"
4893 },
4894 "key" : [
4895 {
4896 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004897 "name" : "standard_metadata.ingress_port",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004898 "target" : ["standard_metadata", "ingress_port"],
4899 "mask" : null
4900 },
4901 {
4902 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004903 "name" : "hdr.ethernet.dst_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004904 "target" : ["ethernet", "dst_addr"],
4905 "mask" : null
4906 },
4907 {
4908 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004909 "name" : "fabric_metadata.original_ether_type",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004910 "target" : ["scalars", "fabric_metadata_t.original_ether_type"],
4911 "mask" : null
4912 }
4913 ],
4914 "match_type" : "exact",
4915 "type" : "simple",
4916 "max_size" : 1024,
4917 "with_counters" : true,
4918 "support_timeout" : false,
4919 "direct_meters" : null,
Esin Karaman971fb7f2017-12-28 13:44:52 +00004920 "action_ids" : [20],
Yi Tseng27b9bc02018-04-12 14:52:40 +08004921 "actions" : ["FabricIngress.filtering.set_forwarding_type"],
4922 "base_default_next" : "node_32",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004923 "next_tables" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004924 "FabricIngress.filtering.set_forwarding_type" : "node_32"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004925 },
4926 "default_entry" : {
Esin Karaman971fb7f2017-12-28 13:44:52 +00004927 "action_id" : 20,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004928 "action_const" : true,
4929 "action_data" : ["0x0"],
4930 "action_entry_const" : true
4931 }
4932 },
4933 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004934 "name" : "FabricIngress.forwarding.bridging",
4935 "id" : 21,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004936 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02004937 "filename" : "include/control/forwarding.p4",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004938 "line" : 52,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004939 "column" : 10,
4940 "source_fragment" : "bridging"
4941 },
4942 "key" : [
4943 {
4944 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004945 "name" : "hdr.vlan_tag.vlan_id",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004946 "target" : ["vlan_tag", "vlan_id"],
4947 "mask" : null
4948 },
4949 {
4950 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004951 "name" : "hdr.ethernet.dst_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004952 "target" : ["ethernet", "dst_addr"],
4953 "mask" : null
4954 }
4955 ],
4956 "match_type" : "ternary",
4957 "type" : "simple",
4958 "max_size" : 1024,
4959 "with_counters" : true,
4960 "support_timeout" : false,
4961 "direct_meters" : null,
Esin Karaman971fb7f2017-12-28 13:44:52 +00004962 "action_ids" : [22, 4],
Yi Tseng27b9bc02018-04-12 14:52:40 +08004963 "actions" : ["FabricIngress.forwarding.set_next_id", "NoAction"],
4964 "base_default_next" : "FabricIngress.forwarding.acl",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004965 "next_tables" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004966 "FabricIngress.forwarding.set_next_id" : "FabricIngress.forwarding.acl",
4967 "NoAction" : "FabricIngress.forwarding.acl"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004968 },
4969 "default_entry" : {
4970 "action_id" : 4,
4971 "action_const" : false,
4972 "action_data" : [],
4973 "action_entry_const" : false
4974 }
4975 },
4976 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004977 "name" : "FabricIngress.forwarding.mpls",
4978 "id" : 22,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004979 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02004980 "filename" : "include/control/forwarding.p4",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004981 "line" : 64,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004982 "column" : 10,
4983 "source_fragment" : "mpls"
4984 },
4985 "key" : [
4986 {
4987 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004988 "name" : "hdr.mpls.label",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004989 "target" : ["mpls", "label"],
4990 "mask" : null
4991 }
4992 ],
4993 "match_type" : "exact",
4994 "type" : "simple",
4995 "max_size" : 1024,
4996 "with_counters" : true,
4997 "support_timeout" : false,
4998 "direct_meters" : null,
Esin Karaman971fb7f2017-12-28 13:44:52 +00004999 "action_ids" : [25, 5],
Yi Tseng27b9bc02018-04-12 14:52:40 +08005000 "actions" : ["FabricIngress.forwarding.pop_mpls_and_next", "NoAction"],
5001 "base_default_next" : "tbl_act_12",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005002 "next_tables" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005003 "FabricIngress.forwarding.pop_mpls_and_next" : "tbl_act_12",
5004 "NoAction" : "tbl_act_12"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005005 },
5006 "default_entry" : {
5007 "action_id" : 5,
5008 "action_const" : false,
5009 "action_data" : [],
5010 "action_entry_const" : false
5011 }
5012 },
5013 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005014 "name" : "tbl_act_12",
5015 "id" : 23,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005016 "key" : [],
5017 "match_type" : "exact",
5018 "type" : "simple",
5019 "max_size" : 1024,
5020 "with_counters" : false,
5021 "support_timeout" : false,
5022 "direct_meters" : null,
Esin Karaman971fb7f2017-12-28 13:44:52 +00005023 "action_ids" : [50],
Yi Tseng27b9bc02018-04-12 14:52:40 +08005024 "actions" : ["act_12"],
5025 "base_default_next" : "FabricIngress.forwarding.acl",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005026 "next_tables" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005027 "act_12" : "FabricIngress.forwarding.acl"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005028 },
5029 "default_entry" : {
Esin Karaman971fb7f2017-12-28 13:44:52 +00005030 "action_id" : 50,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005031 "action_const" : true,
5032 "action_data" : [],
5033 "action_entry_const" : true
5034 }
5035 },
5036 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005037 "name" : "FabricIngress.forwarding.unicast_v4",
5038 "id" : 24,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005039 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005040 "filename" : "include/control/forwarding.p4",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08005041 "line" : 75,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005042 "column" : 10,
5043 "source_fragment" : "unicast_v4"
5044 },
5045 "key" : [
5046 {
5047 "match_type" : "lpm",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005048 "name" : "hdr.ipv4.dst_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005049 "target" : ["ipv4", "dst_addr"],
5050 "mask" : null
5051 }
5052 ],
5053 "match_type" : "lpm",
5054 "type" : "simple",
5055 "max_size" : 1024,
5056 "with_counters" : true,
5057 "support_timeout" : false,
5058 "direct_meters" : null,
Esin Karaman971fb7f2017-12-28 13:44:52 +00005059 "action_ids" : [23, 6],
Yi Tseng27b9bc02018-04-12 14:52:40 +08005060 "actions" : ["FabricIngress.forwarding.set_next_id", "NoAction"],
5061 "base_default_next" : "FabricIngress.forwarding.acl",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005062 "next_tables" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005063 "FabricIngress.forwarding.set_next_id" : "FabricIngress.forwarding.acl",
5064 "NoAction" : "FabricIngress.forwarding.acl"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005065 },
5066 "default_entry" : {
5067 "action_id" : 6,
5068 "action_const" : false,
5069 "action_data" : [],
5070 "action_entry_const" : false
5071 }
5072 },
5073 {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005074 "name" : "FabricIngress.forwarding.acl",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005075 "id" : 25,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005076 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005077 "filename" : "include/control/forwarding.p4",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08005078 "line" : 133,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005079 "column" : 10,
5080 "source_fragment" : "acl"
5081 },
5082 "key" : [
5083 {
5084 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005085 "name" : "standard_metadata.ingress_port",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005086 "target" : ["standard_metadata", "ingress_port"],
5087 "mask" : null
5088 },
5089 {
5090 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005091 "name" : "fabric_metadata.ip_proto",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005092 "target" : ["scalars", "fabric_metadata_t.ip_proto"],
5093 "mask" : null
5094 },
5095 {
5096 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005097 "name" : "fabric_metadata.l4_src_port",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005098 "target" : ["scalars", "fabric_metadata_t.l4_src_port"],
5099 "mask" : null
5100 },
5101 {
5102 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005103 "name" : "fabric_metadata.l4_dst_port",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005104 "target" : ["scalars", "fabric_metadata_t.l4_dst_port"],
5105 "mask" : null
5106 },
5107 {
5108 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005109 "name" : "fabric_metadata.original_ether_type",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005110 "target" : ["scalars", "fabric_metadata_t.original_ether_type"],
5111 "mask" : null
5112 },
5113 {
5114 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005115 "name" : "hdr.ethernet.dst_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005116 "target" : ["ethernet", "dst_addr"],
5117 "mask" : null
5118 },
5119 {
5120 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005121 "name" : "hdr.ethernet.src_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005122 "target" : ["ethernet", "src_addr"],
5123 "mask" : null
5124 },
5125 {
5126 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005127 "name" : "hdr.vlan_tag.vlan_id",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005128 "target" : ["vlan_tag", "vlan_id"],
5129 "mask" : null
5130 },
5131 {
5132 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005133 "name" : "hdr.ipv4.src_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005134 "target" : ["ipv4", "src_addr"],
5135 "mask" : null
5136 },
5137 {
5138 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005139 "name" : "hdr.ipv4.dst_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005140 "target" : ["ipv4", "dst_addr"],
5141 "mask" : null
5142 },
5143 {
5144 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005145 "name" : "hdr.icmp.icmp_type",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005146 "target" : ["icmp", "icmp_type"],
5147 "mask" : null
5148 },
5149 {
5150 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005151 "name" : "hdr.icmp.icmp_code",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005152 "target" : ["icmp", "icmp_code"],
5153 "mask" : null
5154 }
5155 ],
5156 "match_type" : "ternary",
5157 "type" : "simple",
5158 "max_size" : 256,
5159 "with_counters" : true,
5160 "support_timeout" : false,
5161 "direct_meters" : null,
Esin Karaman971fb7f2017-12-28 13:44:52 +00005162 "action_ids" : [24, 26, 21, 11],
Yi Tseng27b9bc02018-04-12 14:52:40 +08005163 "actions" : ["FabricIngress.forwarding.set_next_id", "FabricIngress.forwarding.duplicate_to_controller", "FabricIngress.forwarding.drop", "nop"],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005164 "base_default_next" : "FabricIngress.next.vlan_meta",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005165 "next_tables" : {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005166 "FabricIngress.forwarding.set_next_id" : "FabricIngress.next.vlan_meta",
5167 "FabricIngress.forwarding.duplicate_to_controller" : "FabricIngress.next.vlan_meta",
5168 "FabricIngress.forwarding.drop" : "FabricIngress.next.vlan_meta",
5169 "nop" : "FabricIngress.next.vlan_meta"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005170 },
5171 "default_entry" : {
Esin Karaman971fb7f2017-12-28 13:44:52 +00005172 "action_id" : 11,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005173 "action_const" : true,
5174 "action_data" : [],
5175 "action_entry_const" : true
5176 }
5177 },
5178 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005179 "name" : "FabricIngress.next.vlan_meta",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005180 "id" : 26,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005181 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005182 "filename" : "include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005183 "line" : 96,
5184 "column" : 10,
5185 "source_fragment" : "vlan_meta"
5186 },
5187 "key" : [
5188 {
5189 "match_type" : "exact",
5190 "name" : "fabric_metadata.next_id",
5191 "target" : ["scalars", "fabric_metadata_t.next_id"],
5192 "mask" : null
5193 }
5194 ],
5195 "match_type" : "exact",
5196 "type" : "simple",
5197 "max_size" : 1024,
5198 "with_counters" : true,
5199 "support_timeout" : false,
5200 "direct_meters" : null,
Esin Karaman971fb7f2017-12-28 13:44:52 +00005201 "action_ids" : [28, 12],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005202 "actions" : ["FabricIngress.next.set_vlan", "nop"],
5203 "base_default_next" : "FabricIngress.next.simple",
5204 "next_tables" : {
5205 "FabricIngress.next.set_vlan" : "FabricIngress.next.simple",
5206 "nop" : "FabricIngress.next.simple"
5207 },
5208 "default_entry" : {
Esin Karaman971fb7f2017-12-28 13:44:52 +00005209 "action_id" : 12,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005210 "action_const" : false,
5211 "action_data" : [],
5212 "action_entry_const" : false
5213 }
5214 },
5215 {
5216 "name" : "FabricIngress.next.simple",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005217 "id" : 27,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005218 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005219 "filename" : "include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005220 "line" : 109,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005221 "column" : 10,
5222 "source_fragment" : "simple"
5223 },
5224 "key" : [
5225 {
5226 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005227 "name" : "fabric_metadata.next_id",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005228 "target" : ["scalars", "fabric_metadata_t.next_id"],
5229 "mask" : null
5230 }
5231 ],
5232 "match_type" : "exact",
5233 "type" : "simple",
5234 "max_size" : 1024,
5235 "with_counters" : true,
5236 "support_timeout" : false,
5237 "direct_meters" : null,
Esin Karaman971fb7f2017-12-28 13:44:52 +00005238 "action_ids" : [27, 29, 30, 33, 32, 7],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005239 "actions" : ["FabricIngress.next.output", "FabricIngress.next.set_vlan_output", "FabricIngress.next.l3_routing", "FabricIngress.next.mpls_routing_v4", "FabricIngress.next.l3_routing_vlan", "NoAction"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005240 "base_default_next" : null,
5241 "next_tables" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005242 "__HIT__" : "tbl_act_13",
5243 "__MISS__" : "tbl_act_14"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005244 },
5245 "default_entry" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005246 "action_id" : 7,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005247 "action_const" : false,
5248 "action_data" : [],
5249 "action_entry_const" : false
5250 }
5251 },
5252 {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08005253 "name" : "tbl_act_13",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005254 "id" : 28,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08005255 "key" : [],
5256 "match_type" : "exact",
5257 "type" : "simple",
5258 "max_size" : 1024,
5259 "with_counters" : false,
5260 "support_timeout" : false,
5261 "direct_meters" : null,
Esin Karaman971fb7f2017-12-28 13:44:52 +00005262 "action_ids" : [51],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005263 "actions" : ["act_13"],
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005264 "base_default_next" : "node_44",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005265 "next_tables" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005266 "act_13" : "node_44"
Yi Tseng27b9bc02018-04-12 14:52:40 +08005267 },
5268 "default_entry" : {
Esin Karaman971fb7f2017-12-28 13:44:52 +00005269 "action_id" : 51,
Yi Tseng27b9bc02018-04-12 14:52:40 +08005270 "action_const" : true,
5271 "action_data" : [],
5272 "action_entry_const" : true
5273 }
5274 },
5275 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005276 "name" : "tbl_act_14",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005277 "id" : 29,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005278 "key" : [],
5279 "match_type" : "exact",
5280 "type" : "simple",
5281 "max_size" : 1024,
5282 "with_counters" : false,
5283 "support_timeout" : false,
5284 "direct_meters" : null,
Esin Karaman971fb7f2017-12-28 13:44:52 +00005285 "action_ids" : [52],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005286 "actions" : ["act_14"],
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005287 "base_default_next" : "node_44",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005288 "next_tables" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005289 "act_14" : "node_44"
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005290 },
5291 "default_entry" : {
Esin Karaman971fb7f2017-12-28 13:44:52 +00005292 "action_id" : 52,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005293 "action_const" : true,
5294 "action_data" : [],
5295 "action_entry_const" : true
5296 }
5297 },
5298 {
5299 "name" : "tbl_act_15",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005300 "id" : 30,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005301 "key" : [],
5302 "match_type" : "exact",
5303 "type" : "simple",
5304 "max_size" : 1024,
5305 "with_counters" : false,
5306 "support_timeout" : false,
5307 "direct_meters" : null,
Esin Karaman971fb7f2017-12-28 13:44:52 +00005308 "action_ids" : [53],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005309 "actions" : ["act_15"],
5310 "base_default_next" : "FabricIngress.next.hashed",
5311 "next_tables" : {
5312 "act_15" : "FabricIngress.next.hashed"
5313 },
5314 "default_entry" : {
Esin Karaman971fb7f2017-12-28 13:44:52 +00005315 "action_id" : 53,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005316 "action_const" : true,
5317 "action_data" : [],
5318 "action_entry_const" : true
5319 }
5320 },
5321 {
5322 "name" : "FabricIngress.next.hashed",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005323 "id" : 31,
Yi Tseng27b9bc02018-04-12 14:52:40 +08005324 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005325 "filename" : "include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005326 "line" : 124,
Yi Tseng27b9bc02018-04-12 14:52:40 +08005327 "column" : 10,
5328 "source_fragment" : "hashed"
5329 },
5330 "key" : [
5331 {
5332 "match_type" : "exact",
5333 "name" : "fabric_metadata.next_id",
5334 "target" : ["scalars", "fabric_metadata_t.next_id"],
5335 "mask" : null
5336 }
5337 ],
5338 "match_type" : "exact",
5339 "type" : "indirect_ws",
5340 "action_profile" : "FabricIngress.next.ecmp_selector",
5341 "max_size" : 1024,
5342 "with_counters" : true,
5343 "support_timeout" : false,
5344 "direct_meters" : null,
Esin Karaman971fb7f2017-12-28 13:44:52 +00005345 "action_ids" : [31, 34, 35, 8],
Yi Tseng27b9bc02018-04-12 14:52:40 +08005346 "actions" : ["FabricIngress.next.l3_routing", "FabricIngress.next.mpls_routing_v4", "FabricIngress.next.mpls_routing_v6", "NoAction"],
Esin Karaman971fb7f2017-12-28 13:44:52 +00005347 "base_default_next" : "FabricIngress.next.multicast",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005348 "next_tables" : {
Esin Karaman971fb7f2017-12-28 13:44:52 +00005349 "FabricIngress.next.l3_routing" : "FabricIngress.next.multicast",
5350 "FabricIngress.next.mpls_routing_v4" : "FabricIngress.next.multicast",
5351 "FabricIngress.next.mpls_routing_v6" : "FabricIngress.next.multicast",
5352 "NoAction" : "FabricIngress.next.multicast"
5353 }
5354 },
5355 {
5356 "name" : "FabricIngress.next.multicast",
5357 "id" : 32,
5358 "source_info" : {
5359 "filename" : "include/control/next.p4",
5360 "line" : 153,
5361 "column" : 10,
5362 "source_fragment" : "multicast"
5363 },
5364 "key" : [
5365 {
5366 "match_type" : "exact",
5367 "name" : "fabric_metadata.next_id",
5368 "target" : ["scalars", "fabric_metadata_t.next_id"],
5369 "mask" : null
5370 }
5371 ],
5372 "match_type" : "exact",
5373 "type" : "simple",
5374 "max_size" : 1024,
5375 "with_counters" : true,
5376 "support_timeout" : false,
5377 "direct_meters" : null,
5378 "action_ids" : [36, 9],
5379 "actions" : ["FabricIngress.next.set_mcast_group", "NoAction"],
5380 "base_default_next" : "node_50",
5381 "next_tables" : {
5382 "FabricIngress.next.set_mcast_group" : "node_50",
5383 "NoAction" : "node_50"
5384 },
5385 "default_entry" : {
5386 "action_id" : 9,
5387 "action_const" : false,
5388 "action_data" : [],
5389 "action_entry_const" : false
Yi Tseng27b9bc02018-04-12 14:52:40 +08005390 }
5391 },
5392 {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005393 "name" : "tbl_act_16",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005394 "id" : 33,
Yi Tseng27b9bc02018-04-12 14:52:40 +08005395 "key" : [],
5396 "match_type" : "exact",
5397 "type" : "simple",
5398 "max_size" : 1024,
5399 "with_counters" : false,
5400 "support_timeout" : false,
5401 "direct_meters" : null,
Esin Karaman971fb7f2017-12-28 13:44:52 +00005402 "action_ids" : [54],
5403 "actions" : ["act_16"],
5404 "base_default_next" : "node_52",
5405 "next_tables" : {
5406 "act_16" : "node_52"
5407 },
5408 "default_entry" : {
5409 "action_id" : 54,
5410 "action_const" : true,
5411 "action_data" : [],
5412 "action_entry_const" : true
5413 }
5414 },
5415 {
5416 "name" : "tbl_act_17",
5417 "id" : 34,
5418 "key" : [],
5419 "match_type" : "exact",
5420 "type" : "simple",
5421 "max_size" : 1024,
5422 "with_counters" : false,
5423 "support_timeout" : false,
5424 "direct_meters" : null,
5425 "action_ids" : [55],
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005426 "actions" : ["act_17"],
Yi Tseng27b9bc02018-04-12 14:52:40 +08005427 "base_default_next" : null,
5428 "next_tables" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005429 "act_17" : null
Yi Tseng27b9bc02018-04-12 14:52:40 +08005430 },
5431 "default_entry" : {
Esin Karaman971fb7f2017-12-28 13:44:52 +00005432 "action_id" : 55,
Carmelo Cascone14cde402018-01-25 01:57:18 -08005433 "action_const" : true,
5434 "action_data" : [],
5435 "action_entry_const" : true
5436 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005437 }
5438 ],
5439 "action_profiles" : [
5440 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005441 "name" : "FabricIngress.next.ecmp_selector",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005442 "id" : 0,
5443 "max_size" : 64,
5444 "selector" : {
5445 "algo" : "crc16",
5446 "input" : [
5447 {
5448 "type" : "field",
Yi Tseng3d3956d2018-01-31 17:28:05 -08005449 "value" : ["ipv4", "dst_addr"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005450 },
5451 {
5452 "type" : "field",
Yi Tseng3d3956d2018-01-31 17:28:05 -08005453 "value" : ["ipv4", "src_addr"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005454 },
5455 {
5456 "type" : "field",
5457 "value" : ["scalars", "fabric_metadata_t.ip_proto"]
5458 },
5459 {
5460 "type" : "field",
5461 "value" : ["scalars", "fabric_metadata_t.l4_src_port"]
5462 },
5463 {
5464 "type" : "field",
5465 "value" : ["scalars", "fabric_metadata_t.l4_dst_port"]
5466 }
5467 ]
5468 }
5469 }
5470 ],
5471 "conditionals" : [
5472 {
5473 "name" : "node_2",
5474 "id" : 0,
5475 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005476 "filename" : "include/control/packetio.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005477 "line" : 25,
5478 "column" : 12,
5479 "source_fragment" : "hdr.packet_out.isValid()"
5480 },
5481 "expression" : {
5482 "type" : "expression",
5483 "value" : {
5484 "op" : "d2b",
5485 "left" : null,
5486 "right" : {
5487 "type" : "field",
5488 "value" : ["packet_out", "$valid$"]
5489 }
5490 }
5491 },
5492 "true_next" : "tbl_act",
5493 "false_next" : "tbl_act_0"
5494 },
5495 {
5496 "name" : "node_5",
5497 "id" : 1,
5498 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005499 "filename" : "include/spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005500 "line" : 147,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005501 "column" : 12,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005502 "source_fragment" : "gtpu.isValid()"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005503 },
5504 "expression" : {
5505 "type" : "expression",
5506 "value" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005507 "op" : "d2b",
5508 "left" : null,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005509 "right" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005510 "type" : "field",
5511 "value" : ["gtpu", "$valid$"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005512 }
5513 }
5514 },
5515 "true_next" : "tbl_act_1",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005516 "false_next" : "FabricIngress.spgw_ingress.ue_filter_table"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005517 },
5518 {
5519 "name" : "node_10",
5520 "id" : 2,
5521 "expression" : {
5522 "type" : "expression",
5523 "value" : {
5524 "op" : "d2b",
5525 "left" : null,
5526 "right" : {
5527 "type" : "field",
5528 "value" : ["scalars", "spgw_ingress_tmp_2"]
5529 }
5530 }
5531 },
5532 "true_next" : "tbl_act_4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005533 "false_next" : "node_17"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005534 },
5535 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005536 "name" : "node_15",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005537 "id" : 3,
5538 "expression" : {
5539 "type" : "expression",
5540 "value" : {
5541 "op" : "d2b",
5542 "left" : null,
5543 "right" : {
5544 "type" : "field",
5545 "value" : ["scalars", "spgw_ingress_tmp_3"]
5546 }
5547 }
5548 },
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005549 "true_next" : "tbl_act_7",
5550 "false_next" : "node_17"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005551 },
5552 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005553 "name" : "node_17",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005554 "id" : 4,
5555 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005556 "filename" : "include/spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005557 "line" : 167,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005558 "column" : 12,
Esin Karaman971fb7f2017-12-28 13:44:52 +00005559 "source_fragment" : "spgw_meta.do_spgw == false"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005560 },
5561 "expression" : {
5562 "type" : "expression",
5563 "value" : {
Carmelo Cascone228092b2018-06-15 20:41:10 +02005564 "op" : "==",
5565 "left" : {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005566 "type" : "expression",
5567 "value" : {
5568 "op" : "d2b",
5569 "left" : null,
5570 "right" : {
5571 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005572 "value" : ["userMetadata.spgw", "do_spgw"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005573 }
5574 }
Carmelo Cascone228092b2018-06-15 20:41:10 +02005575 },
5576 "right" : {
5577 "type" : "bool",
Esin Karaman971fb7f2017-12-28 13:44:52 +00005578 "value" : false
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005579 }
5580 }
5581 },
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005582 "true_next" : "tbl_act_8",
5583 "false_next" : "node_19"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005584 },
5585 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005586 "name" : "node_19",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005587 "id" : 5,
5588 "expression" : {
5589 "type" : "expression",
5590 "value" : {
5591 "op" : "not",
5592 "left" : null,
5593 "right" : {
5594 "type" : "expression",
5595 "value" : {
5596 "op" : "d2b",
5597 "left" : null,
5598 "right" : {
5599 "type" : "field",
5600 "value" : ["scalars", "spgw_ingress_hasReturned_0"]
5601 }
5602 }
5603 }
5604 }
5605 },
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005606 "true_next" : "node_20",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005607 "false_next" : "FabricIngress.filtering.ingress_port_vlan"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005608 },
5609 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005610 "name" : "node_20",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005611 "id" : 6,
5612 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005613 "filename" : "include/spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005614 "line" : 172,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005615 "column" : 12,
5616 "source_fragment" : "spgw_meta.direction == DIR_UPLINK"
5617 },
5618 "expression" : {
5619 "type" : "expression",
5620 "value" : {
5621 "op" : "==",
5622 "left" : {
5623 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005624 "value" : ["userMetadata.spgw", "direction"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005625 },
5626 "right" : {
5627 "type" : "hexstr",
5628 "value" : "0x00"
5629 }
5630 }
5631 },
5632 "true_next" : "tbl_spgw_ingress_gtpu_decap",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005633 "false_next" : "node_22"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005634 },
5635 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005636 "name" : "node_22",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005637 "id" : 7,
5638 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005639 "filename" : "include/spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005640 "line" : 189,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005641 "column" : 12,
5642 "source_fragment" : "spgw_meta.direction == DIR_DOWNLINK"
5643 },
5644 "expression" : {
5645 "type" : "expression",
5646 "value" : {
5647 "op" : "==",
5648 "left" : {
5649 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005650 "value" : ["userMetadata.spgw", "direction"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005651 },
5652 "right" : {
5653 "type" : "hexstr",
5654 "value" : "0x01"
5655 }
5656 }
5657 },
Yi Tseng27b9bc02018-04-12 14:52:40 +08005658 "true_next" : "FabricIngress.spgw_ingress.dl_sess_lookup",
5659 "false_next" : "tbl_act_11"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005660 },
5661 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005662 "name" : "node_26",
5663 "id" : 8,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005664 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005665 "filename" : "include/spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005666 "line" : 190,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005667 "column" : 16,
5668 "source_fragment" : "!dl_sess_lookup.apply().hit"
5669 },
5670 "expression" : {
5671 "type" : "expression",
5672 "value" : {
5673 "op" : "not",
5674 "left" : null,
5675 "right" : {
5676 "type" : "expression",
5677 "value" : {
5678 "op" : "d2b",
5679 "left" : null,
5680 "right" : {
5681 "type" : "field",
5682 "value" : ["scalars", "spgw_ingress_tmp_4"]
5683 }
5684 }
5685 }
5686 }
5687 },
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005688 "true_next" : "tbl_spgw_ingress_drop_now",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005689 "false_next" : "FabricIngress.spgw_ingress.ue_cdr_table"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005690 },
5691 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005692 "name" : "node_32",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005693 "id" : 9,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005694 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005695 "filename" : "include/control/forwarding.p4",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08005696 "line" : 163,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005697 "column" : 11,
5698 "source_fragment" : "fabric_metadata.fwd_type == FWD_BRIDGING"
5699 },
5700 "expression" : {
5701 "type" : "expression",
5702 "value" : {
5703 "op" : "==",
5704 "left" : {
5705 "type" : "field",
5706 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
5707 },
5708 "right" : {
5709 "type" : "hexstr",
5710 "value" : "0x00"
5711 }
5712 }
5713 },
Yi Tseng27b9bc02018-04-12 14:52:40 +08005714 "true_next" : "FabricIngress.forwarding.bridging",
5715 "false_next" : "node_34"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005716 },
5717 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005718 "name" : "node_34",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005719 "id" : 10,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005720 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005721 "filename" : "include/control/forwarding.p4",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08005722 "line" : 164,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005723 "column" : 17,
5724 "source_fragment" : "fabric_metadata.fwd_type == FWD_MPLS"
5725 },
5726 "expression" : {
5727 "type" : "expression",
5728 "value" : {
5729 "op" : "==",
5730 "left" : {
5731 "type" : "field",
5732 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
5733 },
5734 "right" : {
5735 "type" : "hexstr",
5736 "value" : "0x01"
5737 }
5738 }
5739 },
Yi Tseng27b9bc02018-04-12 14:52:40 +08005740 "true_next" : "FabricIngress.forwarding.mpls",
5741 "false_next" : "node_37"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005742 },
5743 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005744 "name" : "node_37",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005745 "id" : 11,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005746 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005747 "filename" : "include/control/forwarding.p4",
5748 "line" : 179,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005749 "column" : 17,
5750 "source_fragment" : "fabric_metadata.fwd_type == FWD_IPV4_UNICAST"
5751 },
5752 "expression" : {
5753 "type" : "expression",
5754 "value" : {
5755 "op" : "==",
5756 "left" : {
5757 "type" : "field",
5758 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
5759 },
5760 "right" : {
5761 "type" : "hexstr",
5762 "value" : "0x02"
5763 }
5764 }
5765 },
Yi Tseng27b9bc02018-04-12 14:52:40 +08005766 "true_next" : "FabricIngress.forwarding.unicast_v4",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005767 "false_next" : "FabricIngress.forwarding.acl"
5768 },
5769 {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005770 "name" : "node_44",
5771 "id" : 12,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005772 "expression" : {
5773 "type" : "expression",
5774 "value" : {
5775 "op" : "d2b",
5776 "left" : null,
5777 "right" : {
5778 "type" : "field",
5779 "value" : ["scalars", "next_tmp_0"]
5780 }
5781 }
5782 },
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005783 "true_next" : "node_45",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005784 "false_next" : "FabricIngress.next.hashed"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005785 },
5786 {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005787 "name" : "node_45",
5788 "id" : 13,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005789 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005790 "filename" : "include/control/next.p4",
Esin Karaman971fb7f2017-12-28 13:44:52 +00005791 "line" : 166,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005792 "column" : 16,
5793 "source_fragment" : "!hdr.mpls.isValid()"
5794 },
5795 "expression" : {
5796 "type" : "expression",
5797 "value" : {
5798 "op" : "not",
5799 "left" : null,
5800 "right" : {
5801 "type" : "expression",
5802 "value" : {
5803 "op" : "d2b",
5804 "left" : null,
5805 "right" : {
5806 "type" : "field",
5807 "value" : ["mpls", "$valid$"]
5808 }
5809 }
5810 }
5811 }
5812 },
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005813 "true_next" : "node_46",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005814 "false_next" : "FabricIngress.next.hashed"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005815 },
5816 {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005817 "name" : "node_46",
5818 "id" : 14,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005819 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005820 "filename" : "include/control/next.p4",
Esin Karaman971fb7f2017-12-28 13:44:52 +00005821 "line" : 167,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005822 "column" : 19,
5823 "source_fragment" : "hdr.ipv4.isValid()"
5824 },
5825 "expression" : {
5826 "type" : "expression",
5827 "value" : {
5828 "op" : "d2b",
5829 "left" : null,
5830 "right" : {
5831 "type" : "field",
5832 "value" : ["ipv4", "$valid$"]
5833 }
5834 }
5835 },
Yi Tseng27b9bc02018-04-12 14:52:40 +08005836 "true_next" : "tbl_act_15",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005837 "false_next" : "FabricIngress.next.hashed"
5838 },
5839 {
Esin Karaman971fb7f2017-12-28 13:44:52 +00005840 "name" : "node_50",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005841 "id" : 15,
Yi Tseng27b9bc02018-04-12 14:52:40 +08005842 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005843 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005844 "line" : 27,
5845 "column" : 12,
5846 "source_fragment" : "standard_metadata.egress_spec < 511"
5847 },
5848 "expression" : {
5849 "type" : "expression",
5850 "value" : {
5851 "op" : "<",
5852 "left" : {
5853 "type" : "field",
5854 "value" : ["standard_metadata", "egress_spec"]
5855 },
5856 "right" : {
5857 "type" : "hexstr",
5858 "value" : "0x01ff"
5859 }
5860 }
5861 },
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005862 "true_next" : "tbl_act_16",
Esin Karaman971fb7f2017-12-28 13:44:52 +00005863 "false_next" : "node_52"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005864 },
5865 {
Esin Karaman971fb7f2017-12-28 13:44:52 +00005866 "name" : "node_52",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005867 "id" : 16,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005868 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005869 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005870 "line" : 30,
5871 "column" : 12,
5872 "source_fragment" : "standard_metadata.ingress_port < 511"
5873 },
5874 "expression" : {
5875 "type" : "expression",
5876 "value" : {
5877 "op" : "<",
5878 "left" : {
5879 "type" : "field",
5880 "value" : ["standard_metadata", "ingress_port"]
5881 },
5882 "right" : {
5883 "type" : "hexstr",
5884 "value" : "0x01ff"
5885 }
5886 }
5887 },
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005888 "false_next" : null,
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005889 "true_next" : "tbl_act_17"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005890 }
5891 ]
5892 },
5893 {
5894 "name" : "egress",
5895 "id" : 1,
5896 "source_info" : {
5897 "filename" : "fabric.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005898 "line" : 61,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005899 "column" : 8,
5900 "source_fragment" : "FabricEgress"
5901 },
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005902 "init_table" : "FabricEgress.egress_next.egress_vlan",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005903 "tables" : [
5904 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005905 "name" : "FabricEgress.egress_next.egress_vlan",
Esin Karaman971fb7f2017-12-28 13:44:52 +00005906 "id" : 35,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005907 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005908 "filename" : "include/control/next.p4",
Esin Karaman971fb7f2017-12-28 13:44:52 +00005909 "line" : 192,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005910 "column" : 10,
5911 "source_fragment" : "egress_vlan"
5912 },
5913 "key" : [
5914 {
5915 "match_type" : "exact",
5916 "name" : "hdr.vlan_tag.vlan_id",
5917 "target" : ["vlan_tag", "vlan_id"],
5918 "mask" : null
5919 },
5920 {
5921 "match_type" : "exact",
5922 "name" : "standard_metadata.egress_port",
5923 "target" : ["standard_metadata", "egress_port"],
5924 "mask" : null
5925 }
5926 ],
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08005927 "match_type" : "exact",
5928 "type" : "simple",
5929 "max_size" : 1024,
5930 "with_counters" : false,
5931 "support_timeout" : false,
5932 "direct_meters" : null,
Esin Karaman971fb7f2017-12-28 13:44:52 +00005933 "action_ids" : [59, 56],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005934 "actions" : ["FabricEgress.egress_next.pop_vlan", "nop"],
Esin Karaman971fb7f2017-12-28 13:44:52 +00005935 "base_default_next" : "node_57",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08005936 "next_tables" : {
Esin Karaman971fb7f2017-12-28 13:44:52 +00005937 "FabricEgress.egress_next.pop_vlan" : "node_57",
5938 "nop" : "node_57"
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08005939 },
5940 "default_entry" : {
Esin Karaman971fb7f2017-12-28 13:44:52 +00005941 "action_id" : 56,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005942 "action_const" : false,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08005943 "action_data" : [],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005944 "action_entry_const" : false
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08005945 }
5946 },
5947 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005948 "name" : "tbl_pkt_io_egress_pop_vlan",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005949 "id" : 36,
5950 "key" : [],
5951 "match_type" : "exact",
5952 "type" : "simple",
5953 "max_size" : 1024,
5954 "with_counters" : false,
5955 "support_timeout" : false,
5956 "direct_meters" : null,
5957 "action_ids" : [58],
Esin Karaman971fb7f2017-12-28 13:44:52 +00005958 "actions" : ["FabricEgress.pkt_io_egress.pop_vlan"],
5959 "base_default_next" : "tbl_act_18",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005960 "next_tables" : {
Esin Karaman971fb7f2017-12-28 13:44:52 +00005961 "FabricEgress.pkt_io_egress.pop_vlan" : "tbl_act_18"
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005962 },
5963 "default_entry" : {
5964 "action_id" : 58,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08005965 "action_const" : true,
5966 "action_data" : [],
5967 "action_entry_const" : true
5968 }
5969 },
5970 {
Esin Karaman971fb7f2017-12-28 13:44:52 +00005971 "name" : "tbl_act_18",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005972 "id" : 37,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005973 "key" : [],
5974 "match_type" : "exact",
5975 "type" : "simple",
5976 "max_size" : 1024,
5977 "with_counters" : false,
5978 "support_timeout" : false,
5979 "direct_meters" : null,
Esin Karaman971fb7f2017-12-28 13:44:52 +00005980 "action_ids" : [60],
5981 "actions" : ["act_18"],
5982 "base_default_next" : "tbl_act_19",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005983 "next_tables" : {
Esin Karaman971fb7f2017-12-28 13:44:52 +00005984 "act_18" : "tbl_act_19"
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005985 },
5986 "default_entry" : {
Esin Karaman971fb7f2017-12-28 13:44:52 +00005987 "action_id" : 60,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005988 "action_const" : true,
5989 "action_data" : [],
5990 "action_entry_const" : true
5991 }
5992 },
5993 {
Esin Karaman971fb7f2017-12-28 13:44:52 +00005994 "name" : "tbl_act_19",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005995 "id" : 38,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005996 "key" : [],
5997 "match_type" : "exact",
5998 "type" : "simple",
5999 "max_size" : 1024,
6000 "with_counters" : false,
6001 "support_timeout" : false,
6002 "direct_meters" : null,
Esin Karaman971fb7f2017-12-28 13:44:52 +00006003 "action_ids" : [61],
6004 "actions" : ["act_19"],
6005 "base_default_next" : "node_62",
6006 "next_tables" : {
6007 "act_19" : "node_62"
6008 },
6009 "default_entry" : {
6010 "action_id" : 61,
6011 "action_const" : true,
6012 "action_data" : [],
6013 "action_entry_const" : true
6014 }
6015 },
6016 {
6017 "name" : "tbl_spgw_egress_gtpu_encap",
6018 "id" : 39,
6019 "key" : [],
6020 "match_type" : "exact",
6021 "type" : "simple",
6022 "max_size" : 1024,
6023 "with_counters" : false,
6024 "support_timeout" : false,
6025 "direct_meters" : null,
6026 "action_ids" : [57],
Yi Tseng27b9bc02018-04-12 14:52:40 +08006027 "actions" : ["FabricEgress.spgw_egress.gtpu_encap"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006028 "base_default_next" : null,
6029 "next_tables" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08006030 "FabricEgress.spgw_egress.gtpu_encap" : null
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006031 },
6032 "default_entry" : {
Esin Karaman971fb7f2017-12-28 13:44:52 +00006033 "action_id" : 57,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006034 "action_const" : true,
6035 "action_data" : [],
6036 "action_entry_const" : true
6037 }
6038 }
6039 ],
6040 "action_profiles" : [],
6041 "conditionals" : [
6042 {
Esin Karaman971fb7f2017-12-28 13:44:52 +00006043 "name" : "node_57",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02006044 "id" : 17,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006045 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02006046 "filename" : "include/control/packetio.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006047 "line" : 42,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006048 "column" : 12,
Carmelo Casconeb531b682018-01-30 17:55:56 -08006049 "source_fragment" : "standard_metadata.egress_port == 255"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006050 },
6051 "expression" : {
6052 "type" : "expression",
6053 "value" : {
6054 "op" : "==",
6055 "left" : {
6056 "type" : "field",
6057 "value" : ["standard_metadata", "egress_port"]
6058 },
6059 "right" : {
6060 "type" : "hexstr",
6061 "value" : "0x00ff"
6062 }
6063 }
6064 },
Esin Karaman971fb7f2017-12-28 13:44:52 +00006065 "true_next" : "node_58",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02006066 "false_next" : "tbl_act_19"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006067 },
6068 {
Esin Karaman971fb7f2017-12-28 13:44:52 +00006069 "name" : "node_58",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02006070 "id" : 18,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006071 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02006072 "filename" : "include/control/packetio.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006073 "line" : 43,
6074 "column" : 16,
Carmelo Cascone228092b2018-06-15 20:41:10 +02006075 "source_fragment" : "hdr.vlan_tag.isValid() && fabric_metadata.pop_vlan_when_packet_in == true"
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006076 },
6077 "expression" : {
6078 "type" : "expression",
6079 "value" : {
6080 "op" : "and",
6081 "left" : {
6082 "type" : "expression",
6083 "value" : {
6084 "op" : "d2b",
6085 "left" : null,
6086 "right" : {
6087 "type" : "field",
6088 "value" : ["vlan_tag", "$valid$"]
6089 }
6090 }
6091 },
6092 "right" : {
6093 "type" : "expression",
6094 "value" : {
Carmelo Cascone228092b2018-06-15 20:41:10 +02006095 "op" : "==",
6096 "left" : {
6097 "type" : "expression",
6098 "value" : {
6099 "op" : "d2b",
6100 "left" : null,
6101 "right" : {
6102 "type" : "field",
6103 "value" : ["scalars", "fabric_metadata_t.pop_vlan_when_packet_in"]
6104 }
6105 }
6106 },
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006107 "right" : {
Carmelo Cascone228092b2018-06-15 20:41:10 +02006108 "type" : "bool",
6109 "value" : true
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006110 }
6111 }
6112 }
6113 }
6114 },
6115 "true_next" : "tbl_pkt_io_egress_pop_vlan",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02006116 "false_next" : "tbl_act_18"
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006117 },
6118 {
Esin Karaman971fb7f2017-12-28 13:44:52 +00006119 "name" : "node_62",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02006120 "id" : 19,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006121 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02006122 "filename" : "include/spgw.p4",
Yi Tseng27b9bc02018-04-12 14:52:40 +08006123 "line" : 249,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006124 "column" : 12,
Carmelo Cascone228092b2018-06-15 20:41:10 +02006125 "source_fragment" : "spgw_meta.do_spgw == true && spgw_meta.direction == DIR_DOWNLINK"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006126 },
6127 "expression" : {
6128 "type" : "expression",
6129 "value" : {
6130 "op" : "and",
6131 "left" : {
6132 "type" : "expression",
6133 "value" : {
Carmelo Cascone228092b2018-06-15 20:41:10 +02006134 "op" : "==",
6135 "left" : {
6136 "type" : "expression",
6137 "value" : {
6138 "op" : "d2b",
6139 "left" : null,
6140 "right" : {
6141 "type" : "field",
6142 "value" : ["userMetadata.spgw", "do_spgw"]
6143 }
6144 }
6145 },
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006146 "right" : {
Carmelo Cascone228092b2018-06-15 20:41:10 +02006147 "type" : "bool",
6148 "value" : true
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006149 }
6150 }
6151 },
6152 "right" : {
6153 "type" : "expression",
6154 "value" : {
6155 "op" : "==",
6156 "left" : {
6157 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08006158 "value" : ["userMetadata.spgw", "direction"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006159 },
6160 "right" : {
6161 "type" : "hexstr",
6162 "value" : "0x01"
6163 }
6164 }
6165 }
6166 }
6167 },
6168 "false_next" : null,
6169 "true_next" : "tbl_spgw_egress_gtpu_encap"
6170 }
6171 ]
6172 }
6173 ],
6174 "checksums" : [
6175 {
6176 "name" : "cksum",
6177 "id" : 0,
6178 "target" : ["ipv4", "hdr_checksum"],
6179 "type" : "generic",
6180 "calculation" : "calc",
6181 "if_cond" : {
6182 "type" : "expression",
6183 "value" : {
6184 "op" : "d2b",
6185 "left" : null,
6186 "right" : {
6187 "type" : "field",
6188 "value" : ["ipv4", "$valid$"]
6189 }
6190 }
6191 }
6192 },
6193 {
6194 "name" : "cksum_0",
6195 "id" : 1,
Carmelo Cascone6af4e172018-06-15 16:01:30 +02006196 "target" : ["gtpu_ipv4", "hdr_checksum"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006197 "type" : "generic",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006198 "calculation" : "calc_0",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006199 "if_cond" : {
6200 "type" : "expression",
6201 "value" : {
6202 "op" : "d2b",
6203 "left" : null,
6204 "right" : {
6205 "type" : "field",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02006206 "value" : ["gtpu_ipv4", "$valid$"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006207 }
6208 }
6209 }
6210 },
6211 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006212 "name" : "cksum_1",
6213 "id" : 2,
Carmelo Cascone6af4e172018-06-15 16:01:30 +02006214 "target" : ["ipv4", "hdr_checksum"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006215 "type" : "generic",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006216 "calculation" : "calc_1",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006217 "if_cond" : {
6218 "type" : "expression",
6219 "value" : {
6220 "op" : "d2b",
6221 "left" : null,
6222 "right" : {
6223 "type" : "field",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02006224 "value" : ["ipv4", "$valid$"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006225 }
6226 }
6227 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006228 }
6229 ],
6230 "force_arith" : [],
6231 "extern_instances" : [],
6232 "field_aliases" : [
6233 [
6234 "queueing_metadata.enq_timestamp",
6235 ["standard_metadata", "enq_timestamp"]
6236 ],
6237 [
6238 "queueing_metadata.enq_qdepth",
6239 ["standard_metadata", "enq_qdepth"]
6240 ],
6241 [
6242 "queueing_metadata.deq_timedelta",
6243 ["standard_metadata", "deq_timedelta"]
6244 ],
6245 [
6246 "queueing_metadata.deq_qdepth",
6247 ["standard_metadata", "deq_qdepth"]
6248 ],
6249 [
6250 "intrinsic_metadata.ingress_global_timestamp",
6251 ["standard_metadata", "ingress_global_timestamp"]
6252 ],
6253 [
Yi Tseng27b9bc02018-04-12 14:52:40 +08006254 "intrinsic_metadata.egress_global_timestamp",
6255 ["standard_metadata", "egress_global_timestamp"]
6256 ],
6257 [
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006258 "intrinsic_metadata.lf_field_list",
6259 ["standard_metadata", "lf_field_list"]
6260 ],
6261 [
6262 "intrinsic_metadata.mcast_grp",
6263 ["standard_metadata", "mcast_grp"]
6264 ],
6265 [
6266 "intrinsic_metadata.resubmit_flag",
6267 ["standard_metadata", "resubmit_flag"]
6268 ],
6269 [
6270 "intrinsic_metadata.egress_rid",
6271 ["standard_metadata", "egress_rid"]
Yi Tseng27b9bc02018-04-12 14:52:40 +08006272 ],
6273 [
6274 "intrinsic_metadata.recirculate_flag",
6275 ["standard_metadata", "recirculate_flag"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006276 ]
Carmelo Cascone6af4e172018-06-15 16:01:30 +02006277 ],
6278 "program" : "fabric.p4",
6279 "__meta__" : {
6280 "version" : [2, 18],
6281 "compiler" : "https://github.com/p4lang/p4c"
6282 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006283}