blob: 6db1e8c74b0051788a12acc4dda836e00852db02 [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 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800937 "name" : "FabricIngress.port_counters_control.egress_port_counter",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200938 "id" : 10,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800939 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200940 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800941 "line" : 23,
Yi Tseng3d3956d2018-01-31 17:28:05 -0800942 "column" : 48,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800943 "source_fragment" : "egress_port_counter"
944 },
945 "size" : 511,
946 "is_direct" : false
947 },
948 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800949 "name" : "FabricIngress.port_counters_control.ingress_port_counter",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200950 "id" : 11,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800951 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200952 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800953 "line" : 24,
Yi Tseng3d3956d2018-01-31 17:28:05 -0800954 "column" : 48,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800955 "source_fragment" : "ingress_port_counter"
956 },
957 "size" : 511,
958 "is_direct" : false
959 }
960 ],
961 "register_arrays" : [],
962 "calculations" : [
963 {
964 "name" : "calc",
965 "id" : 0,
966 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200967 "filename" : "include/checksum.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800968 "line" : 28,
969 "column" : 8,
970 "source_fragment" : "update_checksum(hdr.ipv4.isValid(), ..."
971 },
972 "algo" : "csum16",
973 "input" : [
974 {
975 "type" : "field",
976 "value" : ["ipv4", "version"]
977 },
978 {
979 "type" : "field",
980 "value" : ["ipv4", "ihl"]
981 },
982 {
983 "type" : "field",
984 "value" : ["ipv4", "diffserv"]
985 },
986 {
987 "type" : "field",
988 "value" : ["ipv4", "total_len"]
989 },
990 {
991 "type" : "field",
992 "value" : ["ipv4", "identification"]
993 },
994 {
995 "type" : "field",
996 "value" : ["ipv4", "flags"]
997 },
998 {
999 "type" : "field",
1000 "value" : ["ipv4", "frag_offset"]
1001 },
1002 {
1003 "type" : "field",
1004 "value" : ["ipv4", "ttl"]
1005 },
1006 {
1007 "type" : "field",
1008 "value" : ["ipv4", "protocol"]
1009 },
1010 {
1011 "type" : "field",
1012 "value" : ["ipv4", "src_addr"]
1013 },
1014 {
1015 "type" : "field",
1016 "value" : ["ipv4", "dst_addr"]
1017 }
1018 ]
1019 },
1020 {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001021 "name" : "calc_0",
1022 "id" : 1,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001023 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001024 "filename" : "include/spgw.p4",
Yi Tseng27b9bc02018-04-12 14:52:40 +08001025 "line" : 296,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001026 "column" : 8,
1027 "source_fragment" : "update_checksum(gtpu_ipv4.isValid(), ..."
1028 },
1029 "algo" : "csum16",
1030 "input" : [
1031 {
1032 "type" : "field",
1033 "value" : ["gtpu_ipv4", "version"]
1034 },
1035 {
1036 "type" : "field",
1037 "value" : ["gtpu_ipv4", "ihl"]
1038 },
1039 {
1040 "type" : "field",
1041 "value" : ["gtpu_ipv4", "diffserv"]
1042 },
1043 {
1044 "type" : "field",
1045 "value" : ["gtpu_ipv4", "total_len"]
1046 },
1047 {
1048 "type" : "field",
1049 "value" : ["gtpu_ipv4", "identification"]
1050 },
1051 {
1052 "type" : "field",
1053 "value" : ["gtpu_ipv4", "flags"]
1054 },
1055 {
1056 "type" : "field",
1057 "value" : ["gtpu_ipv4", "frag_offset"]
1058 },
1059 {
1060 "type" : "field",
1061 "value" : ["gtpu_ipv4", "ttl"]
1062 },
1063 {
1064 "type" : "field",
1065 "value" : ["gtpu_ipv4", "protocol"]
1066 },
1067 {
1068 "type" : "field",
1069 "value" : ["gtpu_ipv4", "src_addr"]
1070 },
1071 {
1072 "type" : "field",
1073 "value" : ["gtpu_ipv4", "dst_addr"]
1074 }
1075 ]
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001076 },
1077 {
1078 "name" : "calc_1",
1079 "id" : 2,
1080 "source_info" : {
1081 "filename" : "include/checksum.p4",
1082 "line" : 56,
1083 "column" : 8,
1084 "source_fragment" : "verify_checksum(hdr.ipv4.isValid(), ..."
1085 },
1086 "algo" : "csum16",
1087 "input" : [
1088 {
1089 "type" : "field",
1090 "value" : ["ipv4", "version"]
1091 },
1092 {
1093 "type" : "field",
1094 "value" : ["ipv4", "ihl"]
1095 },
1096 {
1097 "type" : "field",
1098 "value" : ["ipv4", "diffserv"]
1099 },
1100 {
1101 "type" : "field",
1102 "value" : ["ipv4", "total_len"]
1103 },
1104 {
1105 "type" : "field",
1106 "value" : ["ipv4", "identification"]
1107 },
1108 {
1109 "type" : "field",
1110 "value" : ["ipv4", "flags"]
1111 },
1112 {
1113 "type" : "field",
1114 "value" : ["ipv4", "frag_offset"]
1115 },
1116 {
1117 "type" : "field",
1118 "value" : ["ipv4", "ttl"]
1119 },
1120 {
1121 "type" : "field",
1122 "value" : ["ipv4", "protocol"]
1123 },
1124 {
1125 "type" : "field",
1126 "value" : ["ipv4", "src_addr"]
1127 },
1128 {
1129 "type" : "field",
1130 "value" : ["ipv4", "dst_addr"]
1131 }
1132 ]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001133 }
1134 ],
1135 "learn_lists" : [],
1136 "actions" : [
1137 {
1138 "name" : "NoAction",
1139 "id" : 0,
1140 "runtime_data" : [],
1141 "primitives" : []
1142 },
1143 {
1144 "name" : "NoAction",
1145 "id" : 1,
1146 "runtime_data" : [],
1147 "primitives" : []
1148 },
1149 {
1150 "name" : "NoAction",
1151 "id" : 2,
1152 "runtime_data" : [],
1153 "primitives" : []
1154 },
1155 {
1156 "name" : "NoAction",
1157 "id" : 3,
1158 "runtime_data" : [],
1159 "primitives" : []
1160 },
1161 {
1162 "name" : "NoAction",
1163 "id" : 4,
1164 "runtime_data" : [],
1165 "primitives" : []
1166 },
1167 {
1168 "name" : "NoAction",
1169 "id" : 5,
1170 "runtime_data" : [],
1171 "primitives" : []
1172 },
1173 {
1174 "name" : "NoAction",
1175 "id" : 6,
1176 "runtime_data" : [],
1177 "primitives" : []
1178 },
1179 {
1180 "name" : "NoAction",
1181 "id" : 7,
1182 "runtime_data" : [],
1183 "primitives" : []
1184 },
1185 {
1186 "name" : "NoAction",
1187 "id" : 8,
1188 "runtime_data" : [],
1189 "primitives" : []
1190 },
1191 {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001192 "name" : "nop",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001193 "id" : 9,
1194 "runtime_data" : [],
1195 "primitives" : []
1196 },
1197 {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001198 "name" : "nop",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001199 "id" : 10,
1200 "runtime_data" : [],
1201 "primitives" : []
1202 },
1203 {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001204 "name" : "nop",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001205 "id" : 11,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001206 "runtime_data" : [],
Yi Tseng27b9bc02018-04-12 14:52:40 +08001207 "primitives" : []
1208 },
1209 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001210 "name" : "FabricIngress.spgw_ingress.drop_now",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001211 "id" : 12,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001212 "runtime_data" : [],
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001213 "primitives" : [
1214 {
1215 "op" : "drop",
1216 "parameters" : [],
1217 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001218 "filename" : "include/spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001219 "line" : 33,
1220 "column" : 8,
1221 "source_fragment" : "mark_to_drop()"
1222 }
1223 },
1224 {
1225 "op" : "exit",
1226 "parameters" : [],
1227 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001228 "filename" : "include/spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001229 "line" : 34,
1230 "column" : 8,
1231 "source_fragment" : "exit"
1232 }
1233 }
1234 ]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001235 },
1236 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001237 "name" : "FabricIngress.spgw_ingress.gtpu_decap",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001238 "id" : 13,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001239 "runtime_data" : [],
1240 "primitives" : [
1241 {
1242 "op" : "remove_header",
1243 "parameters" : [
1244 {
1245 "type" : "header",
1246 "value" : "gtpu_ipv4"
1247 }
1248 ],
1249 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001250 "filename" : "include/spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001251 "line" : 38,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001252 "column" : 8,
1253 "source_fragment" : "gtpu_ipv4.setInvalid()"
1254 }
1255 },
1256 {
1257 "op" : "remove_header",
1258 "parameters" : [
1259 {
1260 "type" : "header",
1261 "value" : "gtpu_udp"
1262 }
1263 ],
1264 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001265 "filename" : "include/spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001266 "line" : 39,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001267 "column" : 8,
1268 "source_fragment" : "gtpu_udp.setInvalid()"
1269 }
1270 },
1271 {
1272 "op" : "remove_header",
1273 "parameters" : [
1274 {
1275 "type" : "header",
1276 "value" : "gtpu"
1277 }
1278 ],
1279 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001280 "filename" : "include/spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001281 "line" : 40,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001282 "column" : 8,
1283 "source_fragment" : "gtpu.setInvalid()"
1284 }
1285 }
1286 ]
1287 },
1288 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001289 "name" : "FabricIngress.spgw_ingress.set_dl_sess_info",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001290 "id" : 14,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001291 "runtime_data" : [
1292 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001293 "name" : "teid",
1294 "bitwidth" : 32
1295 },
1296 {
1297 "name" : "s1u_enb_addr",
1298 "bitwidth" : 32
1299 },
1300 {
1301 "name" : "s1u_sgw_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001302 "bitwidth" : 32
1303 }
1304 ],
1305 "primitives" : [
1306 {
1307 "op" : "assign",
1308 "parameters" : [
1309 {
1310 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08001311 "value" : ["userMetadata.spgw", "teid"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001312 },
1313 {
1314 "type" : "runtime_data",
1315 "value" : 0
1316 }
1317 ],
1318 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001319 "filename" : "include/spgw.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001320 "line" : 46,
1321 "column" : 8,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001322 "source_fragment" : "spgw_meta.teid = teid"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001323 }
1324 },
1325 {
1326 "op" : "assign",
1327 "parameters" : [
1328 {
1329 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08001330 "value" : ["userMetadata.spgw", "s1u_enb_addr"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001331 },
1332 {
1333 "type" : "runtime_data",
1334 "value" : 1
1335 }
1336 ],
1337 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001338 "filename" : "include/spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001339 "line" : 47,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001340 "column" : 8,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001341 "source_fragment" : "spgw_meta.s1u_enb_addr = s1u_enb_addr"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001342 }
1343 },
1344 {
1345 "op" : "assign",
1346 "parameters" : [
1347 {
1348 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08001349 "value" : ["userMetadata.spgw", "s1u_sgw_addr"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001350 },
1351 {
1352 "type" : "runtime_data",
1353 "value" : 2
1354 }
1355 ],
1356 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001357 "filename" : "include/spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001358 "line" : 48,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001359 "column" : 8,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001360 "source_fragment" : "spgw_meta.s1u_sgw_addr = s1u_sgw_addr"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001361 }
1362 }
1363 ]
1364 },
1365 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001366 "name" : "FabricIngress.spgw_ingress.update_ue_cdr",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001367 "id" : 15,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001368 "runtime_data" : [],
1369 "primitives" : []
1370 },
1371 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001372 "name" : "FabricIngress.filtering.drop",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001373 "id" : 16,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001374 "runtime_data" : [],
1375 "primitives" : [
1376 {
1377 "op" : "drop",
1378 "parameters" : [],
1379 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001380 "filename" : "include/control/filtering.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001381 "line" : 31,
1382 "column" : 8,
1383 "source_fragment" : "mark_to_drop()"
1384 }
1385 }
1386 ]
1387 },
1388 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001389 "name" : "FabricIngress.filtering.set_vlan",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001390 "id" : 17,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001391 "runtime_data" : [
1392 {
1393 "name" : "new_vlan_id",
1394 "bitwidth" : 12
1395 }
1396 ],
1397 "primitives" : [
1398 {
1399 "op" : "assign",
1400 "parameters" : [
1401 {
1402 "type" : "field",
1403 "value" : ["vlan_tag", "vlan_id"]
1404 },
1405 {
1406 "type" : "runtime_data",
1407 "value" : 0
1408 }
1409 ],
1410 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001411 "filename" : "include/control/filtering.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001412 "line" : 35,
1413 "column" : 8,
1414 "source_fragment" : "hdr.vlan_tag.vlan_id = new_vlan_id"
1415 }
1416 }
1417 ]
1418 },
1419 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001420 "name" : "FabricIngress.filtering.push_internal_vlan",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001421 "id" : 18,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001422 "runtime_data" : [
1423 {
1424 "name" : "new_vlan_id",
1425 "bitwidth" : 12
1426 }
1427 ],
1428 "primitives" : [
1429 {
1430 "op" : "add_header",
1431 "parameters" : [
1432 {
1433 "type" : "header",
1434 "value" : "vlan_tag"
1435 }
1436 ],
1437 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001438 "filename" : "include/control/filtering.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001439 "line" : 41,
1440 "column" : 8,
1441 "source_fragment" : "hdr.vlan_tag.setValid()"
1442 }
1443 },
1444 {
1445 "op" : "assign",
1446 "parameters" : [
1447 {
1448 "type" : "field",
1449 "value" : ["vlan_tag", "cfi"]
1450 },
1451 {
1452 "type" : "hexstr",
1453 "value" : "0x00"
1454 }
1455 ],
1456 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001457 "filename" : "include/control/filtering.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001458 "line" : 42,
1459 "column" : 8,
1460 "source_fragment" : "hdr.vlan_tag.cfi = 0"
1461 }
1462 },
1463 {
1464 "op" : "assign",
1465 "parameters" : [
1466 {
1467 "type" : "field",
1468 "value" : ["vlan_tag", "pri"]
1469 },
1470 {
1471 "type" : "hexstr",
1472 "value" : "0x00"
1473 }
1474 ],
1475 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001476 "filename" : "include/control/filtering.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001477 "line" : 43,
1478 "column" : 8,
1479 "source_fragment" : "hdr.vlan_tag.pri = 0"
1480 }
1481 },
1482 {
1483 "op" : "assign",
1484 "parameters" : [
1485 {
1486 "type" : "field",
1487 "value" : ["vlan_tag", "ether_type"]
1488 },
1489 {
1490 "type" : "field",
1491 "value" : ["ethernet", "ether_type"]
1492 }
1493 ],
1494 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001495 "filename" : "include/control/filtering.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001496 "line" : 44,
1497 "column" : 8,
1498 "source_fragment" : "hdr.vlan_tag.ether_type = hdr.ethernet.ether_type"
1499 }
1500 },
1501 {
1502 "op" : "assign",
1503 "parameters" : [
1504 {
1505 "type" : "field",
1506 "value" : ["ethernet", "ether_type"]
1507 },
1508 {
1509 "type" : "hexstr",
1510 "value" : "0x8100"
1511 }
1512 ],
1513 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001514 "filename" : "include/control/../define.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001515 "line" : 32,
1516 "column" : 31,
1517 "source_fragment" : "0x8100; ..."
1518 }
1519 },
1520 {
1521 "op" : "assign",
1522 "parameters" : [
1523 {
1524 "type" : "field",
1525 "value" : ["vlan_tag", "vlan_id"]
1526 },
1527 {
1528 "type" : "runtime_data",
1529 "value" : 0
1530 }
1531 ],
1532 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001533 "filename" : "include/control/filtering.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001534 "line" : 35,
1535 "column" : 8,
1536 "source_fragment" : "hdr.vlan_tag.vlan_id = new_vlan_id; ..."
1537 }
1538 },
1539 {
1540 "op" : "assign",
1541 "parameters" : [
1542 {
1543 "type" : "field",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001544 "value" : ["scalars", "fabric_metadata_t.pop_vlan_when_packet_in"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001545 },
1546 {
1547 "type" : "expression",
1548 "value" : {
1549 "type" : "expression",
1550 "value" : {
1551 "op" : "b2d",
1552 "left" : null,
1553 "right" : {
1554 "type" : "bool",
1555 "value" : true
1556 }
1557 }
1558 }
1559 }
1560 ],
1561 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001562 "filename" : "include/control/filtering.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001563 "line" : 49,
1564 "column" : 8,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001565 "source_fragment" : "fabric_metadata.pop_vlan_when_packet_in = true"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001566 }
1567 }
1568 ]
1569 },
1570 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001571 "name" : "FabricIngress.filtering.set_forwarding_type",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001572 "id" : 19,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001573 "runtime_data" : [
1574 {
1575 "name" : "fwd_type",
1576 "bitwidth" : 3
1577 }
1578 ],
1579 "primitives" : [
1580 {
1581 "op" : "assign",
1582 "parameters" : [
1583 {
1584 "type" : "field",
1585 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
1586 },
1587 {
1588 "type" : "runtime_data",
1589 "value" : 0
1590 }
1591 ],
1592 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001593 "filename" : "include/control/filtering.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001594 "line" : 53,
1595 "column" : 8,
1596 "source_fragment" : "fabric_metadata.fwd_type = fwd_type"
1597 }
1598 }
1599 ]
1600 },
1601 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001602 "name" : "FabricIngress.forwarding.drop",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001603 "id" : 20,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001604 "runtime_data" : [],
1605 "primitives" : [
1606 {
1607 "op" : "drop",
1608 "parameters" : [],
1609 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001610 "filename" : "include/control/forwarding.p4",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001611 "line" : 36,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001612 "column" : 8,
1613 "source_fragment" : "mark_to_drop()"
1614 }
1615 }
1616 ]
1617 },
1618 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001619 "name" : "FabricIngress.forwarding.set_next_id",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001620 "id" : 21,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001621 "runtime_data" : [
1622 {
1623 "name" : "next_id",
1624 "bitwidth" : 32
1625 }
1626 ],
1627 "primitives" : [
1628 {
1629 "op" : "assign",
1630 "parameters" : [
1631 {
1632 "type" : "field",
1633 "value" : ["scalars", "fabric_metadata_t.next_id"]
1634 },
1635 {
1636 "type" : "runtime_data",
1637 "value" : 0
1638 }
1639 ],
1640 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001641 "filename" : "include/control/forwarding.p4",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001642 "line" : 40,
1643 "column" : 8,
1644 "source_fragment" : "fabric_metadata.next_id = next_id"
1645 }
1646 }
1647 ]
1648 },
1649 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001650 "name" : "FabricIngress.forwarding.set_next_id",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001651 "id" : 22,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001652 "runtime_data" : [
1653 {
1654 "name" : "next_id",
1655 "bitwidth" : 32
1656 }
1657 ],
1658 "primitives" : [
1659 {
1660 "op" : "assign",
1661 "parameters" : [
1662 {
1663 "type" : "field",
1664 "value" : ["scalars", "fabric_metadata_t.next_id"]
1665 },
1666 {
1667 "type" : "runtime_data",
1668 "value" : 0
1669 }
1670 ],
1671 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001672 "filename" : "include/control/forwarding.p4",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001673 "line" : 40,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001674 "column" : 8,
1675 "source_fragment" : "fabric_metadata.next_id = next_id"
1676 }
1677 }
1678 ]
1679 },
1680 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001681 "name" : "FabricIngress.forwarding.set_next_id",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001682 "id" : 23,
Yi Tseng27b9bc02018-04-12 14:52:40 +08001683 "runtime_data" : [
1684 {
1685 "name" : "next_id",
1686 "bitwidth" : 32
1687 }
1688 ],
1689 "primitives" : [
1690 {
1691 "op" : "assign",
1692 "parameters" : [
1693 {
1694 "type" : "field",
1695 "value" : ["scalars", "fabric_metadata_t.next_id"]
1696 },
1697 {
1698 "type" : "runtime_data",
1699 "value" : 0
1700 }
1701 ],
1702 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001703 "filename" : "include/control/forwarding.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001704 "line" : 40,
1705 "column" : 8,
1706 "source_fragment" : "fabric_metadata.next_id = next_id"
1707 }
1708 }
1709 ]
1710 },
1711 {
1712 "name" : "FabricIngress.forwarding.pop_mpls_and_next",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001713 "id" : 24,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001714 "runtime_data" : [
1715 {
1716 "name" : "next_id",
1717 "bitwidth" : 32
1718 }
1719 ],
1720 "primitives" : [
1721 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001722 "op" : "remove_header",
1723 "parameters" : [
1724 {
1725 "type" : "header",
1726 "value" : "mpls"
1727 }
1728 ],
1729 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001730 "filename" : "include/control/forwarding.p4",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001731 "line" : 44,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001732 "column" : 8,
1733 "source_fragment" : "hdr.mpls.setInvalid()"
1734 }
1735 },
1736 {
1737 "op" : "assign",
1738 "parameters" : [
1739 {
1740 "type" : "field",
1741 "value" : ["scalars", "fabric_metadata_t.next_id"]
1742 },
1743 {
1744 "type" : "runtime_data",
1745 "value" : 0
1746 }
1747 ],
1748 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001749 "filename" : "include/control/forwarding.p4",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001750 "line" : 45,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001751 "column" : 8,
1752 "source_fragment" : "fabric_metadata.next_id = next_id"
1753 }
1754 }
1755 ]
1756 },
1757 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001758 "name" : "FabricIngress.forwarding.duplicate_to_controller",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001759 "id" : 25,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001760 "runtime_data" : [],
1761 "primitives" : [
1762 {
1763 "op" : "assign",
1764 "parameters" : [
1765 {
1766 "type" : "field",
1767 "value" : ["standard_metadata", "egress_spec"]
1768 },
1769 {
1770 "type" : "hexstr",
1771 "value" : "0x00ff"
1772 }
1773 ],
1774 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001775 "filename" : "include/control/forwarding.p4",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001776 "line" : 49,
Carmelo Casconeb531b682018-01-30 17:55:56 -08001777 "column" : 8,
1778 "source_fragment" : "standard_metadata.egress_spec = 255"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001779 }
1780 }
1781 ]
1782 },
1783 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001784 "name" : "FabricIngress.next.output",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001785 "id" : 26,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001786 "runtime_data" : [
1787 {
1788 "name" : "port_num",
1789 "bitwidth" : 9
1790 }
1791 ],
1792 "primitives" : [
1793 {
1794 "op" : "assign",
1795 "parameters" : [
1796 {
1797 "type" : "field",
1798 "value" : ["standard_metadata", "egress_spec"]
1799 },
1800 {
1801 "type" : "runtime_data",
1802 "value" : 0
1803 }
1804 ],
1805 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001806 "filename" : "include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001807 "line" : 33,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001808 "column" : 8,
1809 "source_fragment" : "standard_metadata.egress_spec = port_num"
1810 }
1811 }
1812 ]
1813 },
1814 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001815 "name" : "FabricIngress.next.set_vlan",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001816 "id" : 27,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001817 "runtime_data" : [
1818 {
1819 "name" : "new_vlan_id",
1820 "bitwidth" : 12
1821 }
1822 ],
1823 "primitives" : [
1824 {
1825 "op" : "assign",
1826 "parameters" : [
1827 {
1828 "type" : "field",
1829 "value" : ["vlan_tag", "vlan_id"]
1830 },
1831 {
1832 "type" : "runtime_data",
1833 "value" : 0
1834 }
1835 ],
1836 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001837 "filename" : "include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001838 "line" : 37,
1839 "column" : 8,
1840 "source_fragment" : "hdr.vlan_tag.vlan_id = new_vlan_id"
1841 }
1842 }
1843 ]
1844 },
1845 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001846 "name" : "FabricIngress.next.set_vlan_output",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001847 "id" : 28,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001848 "runtime_data" : [
1849 {
1850 "name" : "new_vlan_id",
1851 "bitwidth" : 12
1852 },
1853 {
1854 "name" : "port_num",
1855 "bitwidth" : 9
1856 }
1857 ],
1858 "primitives" : [
1859 {
1860 "op" : "assign",
1861 "parameters" : [
1862 {
1863 "type" : "field",
1864 "value" : ["vlan_tag", "vlan_id"]
1865 },
1866 {
1867 "type" : "runtime_data",
1868 "value" : 0
1869 }
1870 ],
1871 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001872 "filename" : "include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001873 "line" : 46,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001874 "column" : 8,
1875 "source_fragment" : "hdr.vlan_tag.vlan_id = new_vlan_id"
1876 }
1877 },
1878 {
1879 "op" : "assign",
1880 "parameters" : [
1881 {
1882 "type" : "field",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001883 "value" : ["standard_metadata", "egress_spec"]
1884 },
1885 {
1886 "type" : "runtime_data",
1887 "value" : 1
1888 }
1889 ],
1890 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001891 "filename" : "include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001892 "line" : 33,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001893 "column" : 8,
1894 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
1895 }
1896 }
1897 ]
1898 },
1899 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001900 "name" : "FabricIngress.next.l3_routing",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001901 "id" : 29,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001902 "runtime_data" : [
1903 {
1904 "name" : "port_num",
1905 "bitwidth" : 9
1906 },
1907 {
1908 "name" : "smac",
1909 "bitwidth" : 48
1910 },
1911 {
1912 "name" : "dmac",
1913 "bitwidth" : 48
1914 }
1915 ],
1916 "primitives" : [
1917 {
1918 "op" : "assign",
1919 "parameters" : [
1920 {
1921 "type" : "field",
1922 "value" : ["ethernet", "src_addr"]
1923 },
1924 {
1925 "type" : "runtime_data",
1926 "value" : 1
1927 }
1928 ],
1929 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001930 "filename" : "include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001931 "line" : 51,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001932 "column" : 8,
1933 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
1934 }
1935 },
1936 {
1937 "op" : "assign",
1938 "parameters" : [
1939 {
1940 "type" : "field",
1941 "value" : ["ethernet", "dst_addr"]
1942 },
1943 {
1944 "type" : "runtime_data",
1945 "value" : 2
1946 }
1947 ],
1948 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001949 "filename" : "include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001950 "line" : 55,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001951 "column" : 8,
1952 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
1953 }
1954 },
1955 {
1956 "op" : "assign",
1957 "parameters" : [
1958 {
1959 "type" : "field",
1960 "value" : ["standard_metadata", "egress_spec"]
1961 },
1962 {
1963 "type" : "runtime_data",
1964 "value" : 0
1965 }
1966 ],
1967 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001968 "filename" : "include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001969 "line" : 33,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001970 "column" : 8,
1971 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
1972 }
1973 }
1974 ]
1975 },
1976 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001977 "name" : "FabricIngress.next.l3_routing",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001978 "id" : 30,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001979 "runtime_data" : [
1980 {
1981 "name" : "port_num",
1982 "bitwidth" : 9
1983 },
1984 {
1985 "name" : "smac",
1986 "bitwidth" : 48
1987 },
1988 {
1989 "name" : "dmac",
1990 "bitwidth" : 48
1991 }
1992 ],
1993 "primitives" : [
1994 {
1995 "op" : "assign",
1996 "parameters" : [
1997 {
1998 "type" : "field",
1999 "value" : ["ethernet", "src_addr"]
2000 },
2001 {
2002 "type" : "runtime_data",
2003 "value" : 1
2004 }
2005 ],
2006 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02002007 "filename" : "include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002008 "line" : 51,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002009 "column" : 8,
2010 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2011 }
2012 },
2013 {
2014 "op" : "assign",
2015 "parameters" : [
2016 {
2017 "type" : "field",
2018 "value" : ["ethernet", "dst_addr"]
2019 },
2020 {
2021 "type" : "runtime_data",
2022 "value" : 2
2023 }
2024 ],
2025 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02002026 "filename" : "include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002027 "line" : 55,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002028 "column" : 8,
2029 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2030 }
2031 },
2032 {
2033 "op" : "assign",
2034 "parameters" : [
2035 {
2036 "type" : "field",
2037 "value" : ["standard_metadata", "egress_spec"]
2038 },
2039 {
2040 "type" : "runtime_data",
2041 "value" : 0
2042 }
2043 ],
2044 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02002045 "filename" : "include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002046 "line" : 33,
2047 "column" : 8,
2048 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2049 }
2050 }
2051 ]
2052 },
2053 {
2054 "name" : "FabricIngress.next.l3_routing_vlan",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02002055 "id" : 31,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002056 "runtime_data" : [
2057 {
2058 "name" : "port_num",
2059 "bitwidth" : 9
2060 },
2061 {
2062 "name" : "smac",
2063 "bitwidth" : 48
2064 },
2065 {
2066 "name" : "dmac",
2067 "bitwidth" : 48
2068 },
2069 {
2070 "name" : "new_vlan_id",
2071 "bitwidth" : 12
2072 }
2073 ],
2074 "primitives" : [
2075 {
2076 "op" : "assign",
2077 "parameters" : [
2078 {
2079 "type" : "field",
2080 "value" : ["ethernet", "src_addr"]
2081 },
2082 {
2083 "type" : "runtime_data",
2084 "value" : 1
2085 }
2086 ],
2087 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02002088 "filename" : "include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002089 "line" : 51,
2090 "column" : 8,
2091 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2092 }
2093 },
2094 {
2095 "op" : "assign",
2096 "parameters" : [
2097 {
2098 "type" : "field",
2099 "value" : ["ethernet", "dst_addr"]
2100 },
2101 {
2102 "type" : "runtime_data",
2103 "value" : 2
2104 }
2105 ],
2106 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02002107 "filename" : "include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002108 "line" : 55,
2109 "column" : 8,
2110 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2111 }
2112 },
2113 {
2114 "op" : "assign",
2115 "parameters" : [
2116 {
2117 "type" : "field",
2118 "value" : ["vlan_tag", "vlan_id"]
2119 },
2120 {
2121 "type" : "runtime_data",
2122 "value" : 3
2123 }
2124 ],
2125 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02002126 "filename" : "include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002127 "line" : 46,
2128 "column" : 8,
2129 "source_fragment" : "hdr.vlan_tag.vlan_id = new_vlan_id; ..."
2130 }
2131 },
2132 {
2133 "op" : "assign",
2134 "parameters" : [
2135 {
2136 "type" : "field",
2137 "value" : ["standard_metadata", "egress_spec"]
2138 },
2139 {
2140 "type" : "runtime_data",
2141 "value" : 0
2142 }
2143 ],
2144 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02002145 "filename" : "include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002146 "line" : 33,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002147 "column" : 8,
2148 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2149 }
2150 }
2151 ]
2152 },
2153 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002154 "name" : "FabricIngress.next.mpls_routing_v4",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02002155 "id" : 32,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002156 "runtime_data" : [
2157 {
2158 "name" : "port_num",
2159 "bitwidth" : 9
2160 },
2161 {
2162 "name" : "smac",
2163 "bitwidth" : 48
2164 },
2165 {
2166 "name" : "dmac",
2167 "bitwidth" : 48
2168 },
2169 {
2170 "name" : "label",
2171 "bitwidth" : 20
2172 }
2173 ],
2174 "primitives" : [
2175 {
2176 "op" : "assign",
2177 "parameters" : [
2178 {
2179 "type" : "field",
2180 "value" : ["ethernet", "src_addr"]
2181 },
2182 {
2183 "type" : "runtime_data",
2184 "value" : 1
2185 }
2186 ],
2187 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02002188 "filename" : "include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002189 "line" : 51,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002190 "column" : 8,
2191 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2192 }
2193 },
2194 {
2195 "op" : "assign",
2196 "parameters" : [
2197 {
2198 "type" : "field",
2199 "value" : ["ethernet", "dst_addr"]
2200 },
2201 {
2202 "type" : "runtime_data",
2203 "value" : 2
2204 }
2205 ],
2206 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02002207 "filename" : "include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002208 "line" : 55,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002209 "column" : 8,
2210 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2211 }
2212 },
2213 {
2214 "op" : "assign",
2215 "parameters" : [
2216 {
2217 "type" : "field",
2218 "value" : ["standard_metadata", "egress_spec"]
2219 },
2220 {
2221 "type" : "runtime_data",
2222 "value" : 0
2223 }
2224 ],
2225 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02002226 "filename" : "include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002227 "line" : 33,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002228 "column" : 8,
2229 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2230 }
2231 },
2232 {
2233 "op" : "add_header",
2234 "parameters" : [
2235 {
2236 "type" : "header",
2237 "value" : "mpls"
2238 }
2239 ],
2240 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02002241 "filename" : "include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002242 "line" : 72,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002243 "column" : 8,
2244 "source_fragment" : "hdr.mpls.setValid()"
2245 }
2246 },
2247 {
2248 "op" : "assign",
2249 "parameters" : [
2250 {
2251 "type" : "field",
2252 "value" : ["vlan_tag", "ether_type"]
2253 },
2254 {
2255 "type" : "hexstr",
2256 "value" : "0x8847"
2257 }
2258 ],
2259 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02002260 "filename" : "include/control/../define.p4",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002261 "line" : 33,
2262 "column" : 31,
2263 "source_fragment" : "0x8847; ..."
2264 }
2265 },
2266 {
2267 "op" : "assign",
2268 "parameters" : [
2269 {
2270 "type" : "field",
2271 "value" : ["mpls", "label"]
2272 },
2273 {
2274 "type" : "runtime_data",
2275 "value" : 3
2276 }
2277 ],
2278 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02002279 "filename" : "include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002280 "line" : 74,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002281 "column" : 8,
2282 "source_fragment" : "hdr.mpls.label = label; ..."
2283 }
2284 },
2285 {
2286 "op" : "assign",
2287 "parameters" : [
2288 {
2289 "type" : "field",
2290 "value" : ["mpls", "tc"]
2291 },
2292 {
2293 "type" : "hexstr",
2294 "value" : "0x00"
2295 }
2296 ],
2297 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02002298 "filename" : "include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002299 "line" : 75,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002300 "column" : 8,
2301 "source_fragment" : "hdr.mpls.tc = tc; ..."
2302 }
2303 },
2304 {
2305 "op" : "assign",
2306 "parameters" : [
2307 {
2308 "type" : "field",
2309 "value" : ["mpls", "bos"]
2310 },
2311 {
2312 "type" : "hexstr",
2313 "value" : "0x01"
2314 }
2315 ],
2316 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02002317 "filename" : "include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002318 "line" : 76,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002319 "column" : 8,
2320 "source_fragment" : "hdr.mpls.bos = 1w1"
2321 }
2322 },
2323 {
2324 "op" : "assign",
2325 "parameters" : [
2326 {
2327 "type" : "field",
2328 "value" : ["mpls", "ttl"]
2329 },
2330 {
2331 "type" : "hexstr",
2332 "value" : "0x40"
2333 }
2334 ],
2335 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02002336 "filename" : "include/control/../define.p4",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002337 "line" : 67,
2338 "column" : 32,
2339 "source_fragment" : "64; ..."
2340 }
2341 }
2342 ]
2343 },
2344 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002345 "name" : "FabricIngress.next.mpls_routing_v4",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02002346 "id" : 33,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002347 "runtime_data" : [
2348 {
2349 "name" : "port_num",
2350 "bitwidth" : 9
2351 },
2352 {
2353 "name" : "smac",
2354 "bitwidth" : 48
2355 },
2356 {
2357 "name" : "dmac",
2358 "bitwidth" : 48
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002359 },
2360 {
2361 "name" : "label",
2362 "bitwidth" : 20
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002363 }
2364 ],
2365 "primitives" : [
2366 {
2367 "op" : "assign",
2368 "parameters" : [
2369 {
2370 "type" : "field",
2371 "value" : ["ethernet", "src_addr"]
2372 },
2373 {
2374 "type" : "runtime_data",
2375 "value" : 1
2376 }
2377 ],
2378 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02002379 "filename" : "include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002380 "line" : 51,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002381 "column" : 8,
2382 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2383 }
2384 },
2385 {
2386 "op" : "assign",
2387 "parameters" : [
2388 {
2389 "type" : "field",
2390 "value" : ["ethernet", "dst_addr"]
2391 },
2392 {
2393 "type" : "runtime_data",
2394 "value" : 2
2395 }
2396 ],
2397 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02002398 "filename" : "include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002399 "line" : 55,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002400 "column" : 8,
2401 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2402 }
2403 },
2404 {
2405 "op" : "assign",
2406 "parameters" : [
2407 {
2408 "type" : "field",
2409 "value" : ["standard_metadata", "egress_spec"]
2410 },
2411 {
2412 "type" : "runtime_data",
2413 "value" : 0
2414 }
2415 ],
2416 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02002417 "filename" : "include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002418 "line" : 33,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002419 "column" : 8,
2420 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2421 }
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002422 },
2423 {
2424 "op" : "add_header",
2425 "parameters" : [
2426 {
2427 "type" : "header",
2428 "value" : "mpls"
2429 }
2430 ],
2431 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02002432 "filename" : "include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002433 "line" : 72,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002434 "column" : 8,
2435 "source_fragment" : "hdr.mpls.setValid()"
2436 }
2437 },
2438 {
2439 "op" : "assign",
2440 "parameters" : [
2441 {
2442 "type" : "field",
2443 "value" : ["vlan_tag", "ether_type"]
2444 },
2445 {
2446 "type" : "hexstr",
2447 "value" : "0x8847"
2448 }
2449 ],
2450 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02002451 "filename" : "include/control/../define.p4",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002452 "line" : 33,
2453 "column" : 31,
2454 "source_fragment" : "0x8847; ..."
2455 }
2456 },
2457 {
2458 "op" : "assign",
2459 "parameters" : [
2460 {
2461 "type" : "field",
2462 "value" : ["mpls", "label"]
2463 },
2464 {
2465 "type" : "runtime_data",
2466 "value" : 3
2467 }
2468 ],
2469 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02002470 "filename" : "include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002471 "line" : 74,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002472 "column" : 8,
2473 "source_fragment" : "hdr.mpls.label = label; ..."
2474 }
2475 },
2476 {
2477 "op" : "assign",
2478 "parameters" : [
2479 {
2480 "type" : "field",
2481 "value" : ["mpls", "tc"]
2482 },
2483 {
2484 "type" : "hexstr",
2485 "value" : "0x00"
2486 }
2487 ],
2488 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02002489 "filename" : "include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002490 "line" : 75,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002491 "column" : 8,
2492 "source_fragment" : "hdr.mpls.tc = tc; ..."
2493 }
2494 },
2495 {
2496 "op" : "assign",
2497 "parameters" : [
2498 {
2499 "type" : "field",
2500 "value" : ["mpls", "bos"]
2501 },
2502 {
2503 "type" : "hexstr",
2504 "value" : "0x01"
2505 }
2506 ],
2507 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02002508 "filename" : "include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002509 "line" : 76,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002510 "column" : 8,
2511 "source_fragment" : "hdr.mpls.bos = 1w1"
2512 }
2513 },
2514 {
2515 "op" : "assign",
2516 "parameters" : [
2517 {
2518 "type" : "field",
2519 "value" : ["mpls", "ttl"]
2520 },
2521 {
2522 "type" : "hexstr",
2523 "value" : "0x40"
2524 }
2525 ],
2526 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02002527 "filename" : "include/control/../define.p4",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002528 "line" : 67,
2529 "column" : 32,
2530 "source_fragment" : "64; ..."
2531 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002532 }
2533 ]
2534 },
2535 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002536 "name" : "FabricIngress.next.mpls_routing_v6",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02002537 "id" : 34,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002538 "runtime_data" : [
2539 {
2540 "name" : "port_num",
2541 "bitwidth" : 9
2542 },
2543 {
2544 "name" : "smac",
2545 "bitwidth" : 48
2546 },
2547 {
2548 "name" : "dmac",
2549 "bitwidth" : 48
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002550 },
2551 {
2552 "name" : "label",
2553 "bitwidth" : 20
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002554 }
2555 ],
2556 "primitives" : [
2557 {
2558 "op" : "assign",
2559 "parameters" : [
2560 {
2561 "type" : "field",
2562 "value" : ["ethernet", "src_addr"]
2563 },
2564 {
2565 "type" : "runtime_data",
2566 "value" : 1
2567 }
2568 ],
2569 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02002570 "filename" : "include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002571 "line" : 51,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002572 "column" : 8,
2573 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2574 }
2575 },
2576 {
2577 "op" : "assign",
2578 "parameters" : [
2579 {
2580 "type" : "field",
2581 "value" : ["ethernet", "dst_addr"]
2582 },
2583 {
2584 "type" : "runtime_data",
2585 "value" : 2
2586 }
2587 ],
2588 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02002589 "filename" : "include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002590 "line" : 55,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002591 "column" : 8,
2592 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2593 }
2594 },
2595 {
2596 "op" : "assign",
2597 "parameters" : [
2598 {
2599 "type" : "field",
2600 "value" : ["standard_metadata", "egress_spec"]
2601 },
2602 {
2603 "type" : "runtime_data",
2604 "value" : 0
2605 }
2606 ],
2607 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02002608 "filename" : "include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002609 "line" : 33,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002610 "column" : 8,
2611 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2612 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002613 },
2614 {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002615 "op" : "add_header",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002616 "parameters" : [
2617 {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002618 "type" : "header",
2619 "value" : "mpls"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002620 }
2621 ],
2622 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02002623 "filename" : "include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002624 "line" : 72,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002625 "column" : 8,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002626 "source_fragment" : "hdr.mpls.setValid()"
2627 }
2628 },
2629 {
2630 "op" : "assign",
2631 "parameters" : [
2632 {
2633 "type" : "field",
2634 "value" : ["vlan_tag", "ether_type"]
2635 },
2636 {
2637 "type" : "hexstr",
2638 "value" : "0x8847"
2639 }
2640 ],
2641 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02002642 "filename" : "include/control/../define.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002643 "line" : 33,
2644 "column" : 31,
2645 "source_fragment" : "0x8847; ..."
2646 }
2647 },
2648 {
2649 "op" : "assign",
2650 "parameters" : [
2651 {
2652 "type" : "field",
2653 "value" : ["mpls", "label"]
2654 },
2655 {
2656 "type" : "runtime_data",
2657 "value" : 3
2658 }
2659 ],
2660 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02002661 "filename" : "include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002662 "line" : 74,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002663 "column" : 8,
2664 "source_fragment" : "hdr.mpls.label = label; ..."
2665 }
2666 },
2667 {
2668 "op" : "assign",
2669 "parameters" : [
2670 {
2671 "type" : "field",
2672 "value" : ["mpls", "tc"]
2673 },
2674 {
2675 "type" : "hexstr",
2676 "value" : "0x00"
2677 }
2678 ],
2679 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02002680 "filename" : "include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002681 "line" : 75,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002682 "column" : 8,
2683 "source_fragment" : "hdr.mpls.tc = tc; ..."
2684 }
2685 },
2686 {
2687 "op" : "assign",
2688 "parameters" : [
2689 {
2690 "type" : "field",
2691 "value" : ["mpls", "bos"]
2692 },
2693 {
2694 "type" : "hexstr",
2695 "value" : "0x01"
2696 }
2697 ],
2698 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02002699 "filename" : "include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002700 "line" : 76,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002701 "column" : 8,
2702 "source_fragment" : "hdr.mpls.bos = 1w1"
2703 }
2704 },
2705 {
2706 "op" : "assign",
2707 "parameters" : [
2708 {
2709 "type" : "field",
2710 "value" : ["mpls", "ttl"]
2711 },
2712 {
2713 "type" : "hexstr",
2714 "value" : "0x40"
2715 }
2716 ],
2717 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02002718 "filename" : "include/control/../define.p4",
Yi Tseng3d3956d2018-01-31 17:28:05 -08002719 "line" : 67,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002720 "column" : 32,
2721 "source_fragment" : "64; ..."
2722 }
2723 }
2724 ]
2725 },
2726 {
2727 "name" : "act",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02002728 "id" : 35,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002729 "runtime_data" : [],
2730 "primitives" : [
2731 {
2732 "op" : "assign",
2733 "parameters" : [
2734 {
2735 "type" : "field",
2736 "value" : ["standard_metadata", "egress_spec"]
2737 },
2738 {
2739 "type" : "field",
2740 "value" : ["packet_out", "egress_port"]
2741 }
2742 ],
2743 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02002744 "filename" : "include/control/packetio.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002745 "line" : 26,
2746 "column" : 12,
2747 "source_fragment" : "standard_metadata.egress_spec = hdr.packet_out.egress_port"
2748 }
2749 },
2750 {
2751 "op" : "remove_header",
2752 "parameters" : [
2753 {
2754 "type" : "header",
2755 "value" : "packet_out"
2756 }
2757 ],
2758 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02002759 "filename" : "include/control/packetio.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002760 "line" : 27,
2761 "column" : 12,
2762 "source_fragment" : "hdr.packet_out.setInvalid()"
2763 }
2764 }
2765 ]
2766 },
2767 {
2768 "name" : "act_0",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02002769 "id" : 36,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002770 "runtime_data" : [],
2771 "primitives" : [
2772 {
2773 "op" : "assign",
2774 "parameters" : [
2775 {
2776 "type" : "field",
2777 "value" : ["scalars", "spgw_ingress_tmp_2"]
2778 },
2779 {
2780 "type" : "expression",
2781 "value" : {
2782 "type" : "expression",
2783 "value" : {
2784 "op" : "b2d",
2785 "left" : null,
2786 "right" : {
2787 "type" : "bool",
2788 "value" : true
2789 }
2790 }
2791 }
2792 }
2793 ]
2794 }
2795 ]
2796 },
2797 {
2798 "name" : "act_1",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02002799 "id" : 37,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002800 "runtime_data" : [],
2801 "primitives" : [
2802 {
2803 "op" : "assign",
2804 "parameters" : [
2805 {
2806 "type" : "field",
2807 "value" : ["scalars", "spgw_ingress_tmp_2"]
2808 },
2809 {
2810 "type" : "expression",
2811 "value" : {
2812 "type" : "expression",
2813 "value" : {
2814 "op" : "b2d",
2815 "left" : null,
2816 "right" : {
2817 "type" : "bool",
2818 "value" : false
2819 }
2820 }
2821 }
2822 }
2823 ]
2824 }
2825 ]
2826 },
2827 {
2828 "name" : "act_2",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02002829 "id" : 38,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002830 "runtime_data" : [],
2831 "primitives" : [
2832 {
2833 "op" : "assign",
2834 "parameters" : [
2835 {
2836 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08002837 "value" : ["userMetadata.spgw", "s1u_enb_addr"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002838 },
2839 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08002840 "type" : "field",
2841 "value" : ["ipv4", "src_addr"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002842 }
2843 ],
2844 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02002845 "filename" : "include/spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08002846 "line" : 152,
2847 "column" : 12,
2848 "source_fragment" : "spgw_meta.s1u_enb_addr = ipv4.src_addr"
2849 }
2850 },
2851 {
2852 "op" : "assign",
2853 "parameters" : [
2854 {
2855 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08002856 "value" : ["userMetadata.spgw", "s1u_sgw_addr"]
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08002857 },
2858 {
2859 "type" : "field",
2860 "value" : ["ipv4", "dst_addr"]
2861 }
2862 ],
2863 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02002864 "filename" : "include/spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08002865 "line" : 153,
2866 "column" : 12,
2867 "source_fragment" : "spgw_meta.s1u_sgw_addr = ipv4.dst_addr"
2868 }
2869 },
2870 {
2871 "op" : "assign_header",
2872 "parameters" : [
2873 {
2874 "type" : "header",
2875 "value" : "ipv4"
2876 },
2877 {
2878 "type" : "header",
2879 "value" : "gtpu_ipv4"
2880 }
2881 ],
2882 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02002883 "filename" : "include/spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08002884 "line" : 154,
2885 "column" : 17,
2886 "source_fragment" : "= gtpu_ipv4; ..."
2887 }
2888 },
2889 {
2890 "op" : "assign_header",
2891 "parameters" : [
2892 {
2893 "type" : "header",
2894 "value" : "udp"
2895 },
2896 {
2897 "type" : "header",
2898 "value" : "gtpu_udp"
2899 }
2900 ],
2901 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02002902 "filename" : "include/spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08002903 "line" : 155,
2904 "column" : 16,
2905 "source_fragment" : "= gtpu_udp; ..."
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002906 }
2907 }
2908 ]
2909 },
2910 {
2911 "name" : "act_3",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02002912 "id" : 39,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002913 "runtime_data" : [],
2914 "primitives" : [
2915 {
2916 "op" : "assign",
2917 "parameters" : [
2918 {
2919 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08002920 "value" : ["userMetadata.spgw", "do_spgw"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002921 },
2922 {
2923 "type" : "expression",
2924 "value" : {
2925 "type" : "expression",
2926 "value" : {
2927 "op" : "b2d",
2928 "left" : null,
2929 "right" : {
2930 "type" : "bool",
2931 "value" : true
2932 }
2933 }
2934 }
2935 }
2936 ],
2937 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02002938 "filename" : "include/spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08002939 "line" : 159,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002940 "column" : 16,
2941 "source_fragment" : "spgw_meta.do_spgw = true"
2942 }
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08002943 },
2944 {
2945 "op" : "assign",
2946 "parameters" : [
2947 {
2948 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08002949 "value" : ["userMetadata.spgw", "direction"]
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08002950 },
2951 {
2952 "type" : "hexstr",
2953 "value" : "0x00"
2954 }
2955 ],
2956 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02002957 "filename" : "include/control/../define.p4",
Yi Tseng3d3956d2018-01-31 17:28:05 -08002958 "line" : 88,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08002959 "column" : 31,
2960 "source_fragment" : "1w0; ..."
2961 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002962 }
2963 ]
2964 },
2965 {
2966 "name" : "act_4",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02002967 "id" : 40,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002968 "runtime_data" : [],
2969 "primitives" : [
2970 {
2971 "op" : "assign",
2972 "parameters" : [
2973 {
2974 "type" : "field",
2975 "value" : ["scalars", "spgw_ingress_tmp_3"]
2976 },
2977 {
2978 "type" : "expression",
2979 "value" : {
2980 "type" : "expression",
2981 "value" : {
2982 "op" : "b2d",
2983 "left" : null,
2984 "right" : {
2985 "type" : "bool",
2986 "value" : true
2987 }
2988 }
2989 }
2990 }
2991 ]
2992 }
2993 ]
2994 },
2995 {
2996 "name" : "act_5",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02002997 "id" : 41,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002998 "runtime_data" : [],
2999 "primitives" : [
3000 {
3001 "op" : "assign",
3002 "parameters" : [
3003 {
3004 "type" : "field",
3005 "value" : ["scalars", "spgw_ingress_tmp_3"]
3006 },
3007 {
3008 "type" : "expression",
3009 "value" : {
3010 "type" : "expression",
3011 "value" : {
3012 "op" : "b2d",
3013 "left" : null,
3014 "right" : {
3015 "type" : "bool",
3016 "value" : false
3017 }
3018 }
3019 }
3020 }
3021 ]
3022 }
3023 ]
3024 },
3025 {
3026 "name" : "act_6",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003027 "id" : 42,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003028 "runtime_data" : [],
3029 "primitives" : [
3030 {
3031 "op" : "assign",
3032 "parameters" : [
3033 {
3034 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003035 "value" : ["userMetadata.spgw", "do_spgw"]
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003036 },
3037 {
3038 "type" : "expression",
3039 "value" : {
3040 "type" : "expression",
3041 "value" : {
3042 "op" : "b2d",
3043 "left" : null,
3044 "right" : {
3045 "type" : "bool",
3046 "value" : true
3047 }
3048 }
3049 }
3050 }
3051 ],
3052 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003053 "filename" : "include/spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003054 "line" : 163,
3055 "column" : 12,
3056 "source_fragment" : "spgw_meta.do_spgw = true"
3057 }
3058 },
3059 {
3060 "op" : "assign",
3061 "parameters" : [
3062 {
3063 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003064 "value" : ["userMetadata.spgw", "direction"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08003065 },
3066 {
3067 "type" : "hexstr",
3068 "value" : "0x01"
3069 }
3070 ],
3071 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003072 "filename" : "include/control/../define.p4",
Yi Tseng3d3956d2018-01-31 17:28:05 -08003073 "line" : 89,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003074 "column" : 33,
3075 "source_fragment" : "1w1; ..."
3076 }
3077 }
3078 ]
3079 },
3080 {
3081 "name" : "act_7",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003082 "id" : 43,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003083 "runtime_data" : [],
3084 "primitives" : [
3085 {
3086 "op" : "assign",
3087 "parameters" : [
3088 {
3089 "type" : "field",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003090 "value" : ["scalars", "spgw_ingress_hasReturned_0"]
3091 },
3092 {
3093 "type" : "expression",
3094 "value" : {
3095 "type" : "expression",
3096 "value" : {
3097 "op" : "b2d",
3098 "left" : null,
3099 "right" : {
3100 "type" : "bool",
3101 "value" : false
3102 }
3103 }
3104 }
3105 }
3106 ]
3107 },
3108 {
3109 "op" : "assign",
3110 "parameters" : [
3111 {
3112 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003113 "value" : ["userMetadata.spgw", "do_spgw"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003114 },
3115 {
3116 "type" : "expression",
3117 "value" : {
3118 "type" : "expression",
3119 "value" : {
3120 "op" : "b2d",
3121 "left" : null,
3122 "right" : {
3123 "type" : "bool",
3124 "value" : false
3125 }
3126 }
3127 }
3128 }
3129 ],
3130 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003131 "filename" : "include/spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003132 "line" : 146,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003133 "column" : 8,
3134 "source_fragment" : "spgw_meta.do_spgw = false"
3135 }
3136 }
3137 ]
3138 },
3139 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003140 "name" : "act_8",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003141 "id" : 44,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003142 "runtime_data" : [],
3143 "primitives" : [
3144 {
3145 "op" : "assign",
3146 "parameters" : [
3147 {
3148 "type" : "field",
3149 "value" : ["scalars", "spgw_ingress_hasReturned_0"]
3150 },
3151 {
3152 "type" : "expression",
3153 "value" : {
3154 "type" : "expression",
3155 "value" : {
3156 "op" : "b2d",
3157 "left" : null,
3158 "right" : {
3159 "type" : "bool",
3160 "value" : true
3161 }
3162 }
3163 }
3164 }
3165 ],
3166 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003167 "filename" : "include/spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003168 "line" : 169,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003169 "column" : 12,
3170 "source_fragment" : "return"
3171 }
3172 }
3173 ]
3174 },
3175 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003176 "name" : "act_9",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003177 "id" : 45,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003178 "runtime_data" : [],
3179 "primitives" : [
3180 {
3181 "op" : "assign",
3182 "parameters" : [
3183 {
3184 "type" : "field",
3185 "value" : ["scalars", "spgw_ingress_tmp_4"]
3186 },
3187 {
3188 "type" : "expression",
3189 "value" : {
3190 "type" : "expression",
3191 "value" : {
3192 "op" : "b2d",
3193 "left" : null,
3194 "right" : {
3195 "type" : "bool",
3196 "value" : true
3197 }
3198 }
3199 }
3200 }
3201 ]
3202 }
3203 ]
3204 },
3205 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003206 "name" : "act_10",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003207 "id" : 46,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003208 "runtime_data" : [],
3209 "primitives" : [
3210 {
3211 "op" : "assign",
3212 "parameters" : [
3213 {
3214 "type" : "field",
3215 "value" : ["scalars", "spgw_ingress_tmp_4"]
3216 },
3217 {
3218 "type" : "expression",
3219 "value" : {
3220 "type" : "expression",
3221 "value" : {
3222 "op" : "b2d",
3223 "left" : null,
3224 "right" : {
3225 "type" : "bool",
3226 "value" : false
3227 }
3228 }
3229 }
3230 }
3231 ]
3232 }
3233 ]
3234 },
3235 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003236 "name" : "act_11",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003237 "id" : 47,
Yi Tseng27b9bc02018-04-12 14:52:40 +08003238 "runtime_data" : [],
3239 "primitives" : [
3240 {
3241 "op" : "assign",
3242 "parameters" : [
3243 {
3244 "type" : "field",
3245 "value" : ["userMetadata.spgw", "ipv4_len"]
3246 },
3247 {
3248 "type" : "field",
3249 "value" : ["ipv4", "total_len"]
3250 }
3251 ],
3252 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003253 "filename" : "include/spgw.p4",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003254 "line" : 199,
3255 "column" : 8,
3256 "source_fragment" : "spgw_meta.ipv4_len = ipv4.total_len"
3257 }
3258 }
3259 ]
3260 },
3261 {
3262 "name" : "act_12",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003263 "id" : 48,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003264 "runtime_data" : [],
3265 "primitives" : [
3266 {
3267 "op" : "assign",
3268 "parameters" : [
3269 {
3270 "type" : "field",
3271 "value" : ["vlan_tag", "ether_type"]
3272 },
3273 {
3274 "type" : "hexstr",
3275 "value" : "0x0800"
3276 }
3277 ],
3278 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003279 "filename" : "include/control/../define.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003280 "line" : 35,
3281 "column" : 31,
3282 "source_fragment" : "0x0800; ..."
3283 }
3284 },
3285 {
3286 "op" : "assign",
3287 "parameters" : [
3288 {
3289 "type" : "field",
3290 "value" : ["scalars", "fabric_metadata_t.original_ether_type"]
3291 },
3292 {
3293 "type" : "hexstr",
3294 "value" : "0x0800"
3295 }
3296 ],
3297 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003298 "filename" : "include/control/../define.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003299 "line" : 35,
3300 "column" : 31,
3301 "source_fragment" : "0x0800; ..."
3302 }
3303 }
3304 ]
3305 },
3306 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003307 "name" : "act_13",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003308 "id" : 49,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003309 "runtime_data" : [],
3310 "primitives" : [
3311 {
3312 "op" : "assign",
3313 "parameters" : [
3314 {
3315 "type" : "field",
3316 "value" : ["scalars", "next_tmp_0"]
3317 },
3318 {
3319 "type" : "expression",
3320 "value" : {
3321 "type" : "expression",
3322 "value" : {
3323 "op" : "b2d",
3324 "left" : null,
3325 "right" : {
3326 "type" : "bool",
3327 "value" : true
3328 }
3329 }
3330 }
3331 }
3332 ]
3333 }
3334 ]
3335 },
3336 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003337 "name" : "act_14",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003338 "id" : 50,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003339 "runtime_data" : [],
3340 "primitives" : [
3341 {
3342 "op" : "assign",
3343 "parameters" : [
3344 {
3345 "type" : "field",
3346 "value" : ["scalars", "next_tmp_0"]
3347 },
3348 {
3349 "type" : "expression",
3350 "value" : {
3351 "type" : "expression",
3352 "value" : {
3353 "op" : "b2d",
3354 "left" : null,
3355 "right" : {
3356 "type" : "bool",
3357 "value" : false
3358 }
3359 }
3360 }
3361 }
3362 ]
3363 }
3364 ]
3365 },
3366 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003367 "name" : "act_15",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003368 "id" : 51,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003369 "runtime_data" : [],
3370 "primitives" : [
3371 {
3372 "op" : "assign",
3373 "parameters" : [
3374 {
3375 "type" : "field",
3376 "value" : ["ipv4", "ttl"]
3377 },
3378 {
3379 "type" : "expression",
3380 "value" : {
3381 "type" : "expression",
3382 "value" : {
3383 "op" : "&",
3384 "left" : {
3385 "type" : "expression",
3386 "value" : {
3387 "op" : "+",
3388 "left" : {
3389 "type" : "field",
3390 "value" : ["ipv4", "ttl"]
3391 },
3392 "right" : {
3393 "type" : "hexstr",
3394 "value" : "0xff"
3395 }
3396 }
3397 },
3398 "right" : {
3399 "type" : "hexstr",
3400 "value" : "0xff"
3401 }
3402 }
3403 }
3404 }
3405 ],
3406 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003407 "filename" : "include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003408 "line" : 171,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003409 "column" : 20,
3410 "source_fragment" : "hdr.ipv4.ttl = hdr.ipv4.ttl - 1"
3411 }
3412 }
3413 ]
3414 },
3415 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003416 "name" : "act_16",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003417 "id" : 52,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003418 "runtime_data" : [],
3419 "primitives" : [
3420 {
3421 "op" : "assign",
3422 "parameters" : [
3423 {
3424 "type" : "field",
3425 "value" : ["scalars", "tmp_0"]
3426 },
3427 {
3428 "type" : "expression",
3429 "value" : {
3430 "type" : "expression",
3431 "value" : {
3432 "op" : "&",
3433 "left" : {
3434 "type" : "field",
3435 "value" : ["standard_metadata", "egress_spec"]
3436 },
3437 "right" : {
3438 "type" : "hexstr",
3439 "value" : "0xffffffff"
3440 }
3441 }
3442 }
3443 }
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003444 ],
3445 "source_info" : {
3446 "filename" : "include/control/port_counter.p4",
3447 "line" : 28,
3448 "column" : 38,
3449 "source_fragment" : "(bit<32>)standard_metadata.egress_spec"
3450 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003451 },
3452 {
3453 "op" : "count",
3454 "parameters" : [
3455 {
3456 "type" : "counter_array",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003457 "value" : "FabricIngress.port_counters_control.egress_port_counter"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003458 },
3459 {
3460 "type" : "field",
3461 "value" : ["scalars", "tmp_0"]
3462 }
3463 ],
3464 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003465 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003466 "line" : 28,
3467 "column" : 12,
3468 "source_fragment" : "egress_port_counter.count((bit<32>)standard_metadata.egress_spec)"
3469 }
3470 }
3471 ]
3472 },
3473 {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003474 "name" : "act_17",
3475 "id" : 53,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003476 "runtime_data" : [],
3477 "primitives" : [
3478 {
3479 "op" : "assign",
3480 "parameters" : [
3481 {
3482 "type" : "field",
3483 "value" : ["scalars", "tmp_1"]
3484 },
3485 {
3486 "type" : "expression",
3487 "value" : {
3488 "type" : "expression",
3489 "value" : {
3490 "op" : "&",
3491 "left" : {
3492 "type" : "field",
3493 "value" : ["standard_metadata", "ingress_port"]
3494 },
3495 "right" : {
3496 "type" : "hexstr",
3497 "value" : "0xffffffff"
3498 }
3499 }
3500 }
3501 }
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003502 ],
3503 "source_info" : {
3504 "filename" : "include/control/port_counter.p4",
3505 "line" : 31,
3506 "column" : 39,
3507 "source_fragment" : "(bit<32>)standard_metadata.ingress_port"
3508 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003509 },
3510 {
3511 "op" : "count",
3512 "parameters" : [
3513 {
3514 "type" : "counter_array",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003515 "value" : "FabricIngress.port_counters_control.ingress_port_counter"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003516 },
3517 {
3518 "type" : "field",
3519 "value" : ["scalars", "tmp_1"]
3520 }
3521 ],
3522 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003523 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003524 "line" : 31,
3525 "column" : 12,
3526 "source_fragment" : "ingress_port_counter.count((bit<32>)standard_metadata.ingress_port)"
3527 }
3528 }
3529 ]
3530 },
3531 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003532 "name" : "nop",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003533 "id" : 54,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003534 "runtime_data" : [],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003535 "primitives" : []
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003536 },
3537 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003538 "name" : "FabricEgress.spgw_egress.gtpu_encap",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003539 "id" : 55,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003540 "runtime_data" : [],
3541 "primitives" : [
3542 {
3543 "op" : "add_header",
3544 "parameters" : [
3545 {
3546 "type" : "header",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003547 "value" : "gtpu_ipv4"
3548 }
3549 ],
3550 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003551 "filename" : "include/spgw.p4",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003552 "line" : 214,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003553 "column" : 8,
3554 "source_fragment" : "gtpu_ipv4.setValid()"
3555 }
3556 },
3557 {
3558 "op" : "assign",
3559 "parameters" : [
3560 {
3561 "type" : "field",
3562 "value" : ["gtpu_ipv4", "version"]
3563 },
3564 {
3565 "type" : "hexstr",
3566 "value" : "0x04"
3567 }
3568 ],
3569 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003570 "filename" : "include/spgw.p4",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003571 "line" : 215,
Yi Tseng3d3956d2018-01-31 17:28:05 -08003572 "column" : 8,
3573 "source_fragment" : "gtpu_ipv4.version = 4"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003574 }
3575 },
3576 {
3577 "op" : "assign",
3578 "parameters" : [
3579 {
3580 "type" : "field",
3581 "value" : ["gtpu_ipv4", "ihl"]
3582 },
3583 {
3584 "type" : "hexstr",
3585 "value" : "0x05"
3586 }
3587 ],
3588 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003589 "filename" : "include/control/../define.p4",
Yi Tseng3d3956d2018-01-31 17:28:05 -08003590 "line" : 54,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003591 "column" : 28,
3592 "source_fragment" : "5; ..."
3593 }
3594 },
3595 {
3596 "op" : "assign",
3597 "parameters" : [
3598 {
3599 "type" : "field",
3600 "value" : ["gtpu_ipv4", "diffserv"]
3601 },
3602 {
3603 "type" : "hexstr",
3604 "value" : "0x00"
3605 }
3606 ],
3607 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003608 "filename" : "include/spgw.p4",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003609 "line" : 217,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003610 "column" : 8,
3611 "source_fragment" : "gtpu_ipv4.diffserv = 0"
3612 }
3613 },
3614 {
3615 "op" : "assign",
3616 "parameters" : [
3617 {
3618 "type" : "field",
3619 "value" : ["gtpu_ipv4", "total_len"]
3620 },
3621 {
3622 "type" : "expression",
3623 "value" : {
3624 "type" : "expression",
3625 "value" : {
3626 "op" : "&",
3627 "left" : {
3628 "type" : "expression",
3629 "value" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003630 "op" : "+",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003631 "left" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08003632 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003633 "value" : ["userMetadata.spgw", "ipv4_len"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08003634 },
3635 "right" : {
3636 "type" : "hexstr",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08003637 "value" : "0x0024"
Carmelo Cascone14cde402018-01-25 01:57:18 -08003638 }
3639 }
3640 },
3641 "right" : {
3642 "type" : "hexstr",
3643 "value" : "0xffff"
3644 }
3645 }
3646 }
3647 }
3648 ],
3649 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003650 "filename" : "include/spgw.p4",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003651 "line" : 218,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003652 "column" : 8,
Yi Tseng27b9bc02018-04-12 14:52:40 +08003653 "source_fragment" : "gtpu_ipv4.total_len = spgw_meta.ipv4_len ..."
Carmelo Cascone14cde402018-01-25 01:57:18 -08003654 }
3655 },
3656 {
3657 "op" : "assign",
3658 "parameters" : [
3659 {
3660 "type" : "field",
3661 "value" : ["gtpu_ipv4", "identification"]
3662 },
3663 {
3664 "type" : "hexstr",
3665 "value" : "0x1513"
3666 }
3667 ],
3668 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003669 "filename" : "include/spgw.p4",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003670 "line" : 220,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003671 "column" : 8,
3672 "source_fragment" : "gtpu_ipv4.identification = 0x1513"
3673 }
3674 },
3675 {
3676 "op" : "assign",
3677 "parameters" : [
3678 {
3679 "type" : "field",
3680 "value" : ["gtpu_ipv4", "flags"]
3681 },
3682 {
3683 "type" : "hexstr",
3684 "value" : "0x00"
3685 }
3686 ],
3687 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003688 "filename" : "include/spgw.p4",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003689 "line" : 221,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003690 "column" : 8,
3691 "source_fragment" : "gtpu_ipv4.flags = 0"
3692 }
3693 },
3694 {
3695 "op" : "assign",
3696 "parameters" : [
3697 {
3698 "type" : "field",
3699 "value" : ["gtpu_ipv4", "frag_offset"]
3700 },
3701 {
3702 "type" : "hexstr",
3703 "value" : "0x0000"
3704 }
3705 ],
3706 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003707 "filename" : "include/spgw.p4",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003708 "line" : 222,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003709 "column" : 8,
3710 "source_fragment" : "gtpu_ipv4.frag_offset = 0"
3711 }
3712 },
3713 {
3714 "op" : "assign",
3715 "parameters" : [
3716 {
3717 "type" : "field",
3718 "value" : ["gtpu_ipv4", "ttl"]
3719 },
3720 {
3721 "type" : "hexstr",
3722 "value" : "0x40"
3723 }
3724 ],
3725 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003726 "filename" : "include/control/../define.p4",
Yi Tseng3d3956d2018-01-31 17:28:05 -08003727 "line" : 78,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003728 "column" : 32,
3729 "source_fragment" : "64; ..."
3730 }
3731 },
3732 {
3733 "op" : "assign",
3734 "parameters" : [
3735 {
3736 "type" : "field",
3737 "value" : ["gtpu_ipv4", "protocol"]
3738 },
3739 {
3740 "type" : "hexstr",
3741 "value" : "0x11"
3742 }
3743 ],
3744 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003745 "filename" : "include/control/../define.p4",
Yi Tseng3d3956d2018-01-31 17:28:05 -08003746 "line" : 51,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003747 "column" : 25,
3748 "source_fragment" : "17; ..."
3749 }
3750 },
3751 {
3752 "op" : "assign",
3753 "parameters" : [
3754 {
3755 "type" : "field",
3756 "value" : ["gtpu_ipv4", "dst_addr"]
3757 },
3758 {
3759 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003760 "value" : ["userMetadata.spgw", "s1u_enb_addr"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08003761 }
3762 ],
3763 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003764 "filename" : "include/spgw.p4",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003765 "line" : 225,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003766 "column" : 8,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003767 "source_fragment" : "gtpu_ipv4.dst_addr = spgw_meta.s1u_enb_addr"
Carmelo Cascone14cde402018-01-25 01:57:18 -08003768 }
3769 },
3770 {
3771 "op" : "assign",
3772 "parameters" : [
3773 {
3774 "type" : "field",
3775 "value" : ["gtpu_ipv4", "src_addr"]
3776 },
3777 {
3778 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003779 "value" : ["userMetadata.spgw", "s1u_sgw_addr"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08003780 }
3781 ],
3782 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003783 "filename" : "include/spgw.p4",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003784 "line" : 226,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003785 "column" : 8,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003786 "source_fragment" : "gtpu_ipv4.src_addr = spgw_meta.s1u_sgw_addr"
Carmelo Cascone14cde402018-01-25 01:57:18 -08003787 }
3788 },
3789 {
3790 "op" : "assign",
3791 "parameters" : [
3792 {
3793 "type" : "field",
3794 "value" : ["gtpu_ipv4", "hdr_checksum"]
3795 },
3796 {
3797 "type" : "hexstr",
3798 "value" : "0x0000"
3799 }
3800 ],
3801 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003802 "filename" : "include/spgw.p4",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003803 "line" : 227,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003804 "column" : 8,
3805 "source_fragment" : "gtpu_ipv4.hdr_checksum = 0"
3806 }
3807 },
3808 {
3809 "op" : "add_header",
3810 "parameters" : [
3811 {
3812 "type" : "header",
3813 "value" : "gtpu_udp"
3814 }
3815 ],
3816 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003817 "filename" : "include/spgw.p4",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003818 "line" : 229,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003819 "column" : 8,
3820 "source_fragment" : "gtpu_udp.setValid()"
3821 }
3822 },
3823 {
3824 "op" : "assign",
3825 "parameters" : [
3826 {
3827 "type" : "field",
3828 "value" : ["gtpu_udp", "src_port"]
3829 },
3830 {
3831 "type" : "hexstr",
3832 "value" : "0x0868"
3833 }
3834 ],
3835 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003836 "filename" : "include/spgw.p4",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003837 "line" : 230,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003838 "column" : 8,
3839 "source_fragment" : "gtpu_udp.src_port = 2152"
3840 }
3841 },
3842 {
3843 "op" : "assign",
3844 "parameters" : [
3845 {
3846 "type" : "field",
3847 "value" : ["gtpu_udp", "dst_port"]
3848 },
3849 {
3850 "type" : "hexstr",
3851 "value" : "0x0868"
3852 }
3853 ],
3854 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003855 "filename" : "include/spgw.p4",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003856 "line" : 231,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003857 "column" : 8,
3858 "source_fragment" : "gtpu_udp.dst_port = 2152"
3859 }
3860 },
3861 {
3862 "op" : "assign",
3863 "parameters" : [
3864 {
3865 "type" : "field",
3866 "value" : ["gtpu_udp", "len"]
3867 },
3868 {
3869 "type" : "expression",
3870 "value" : {
3871 "type" : "expression",
3872 "value" : {
3873 "op" : "&",
3874 "left" : {
3875 "type" : "expression",
3876 "value" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003877 "op" : "+",
Carmelo Cascone14cde402018-01-25 01:57:18 -08003878 "left" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08003879 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003880 "value" : ["userMetadata.spgw", "ipv4_len"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003881 },
3882 "right" : {
3883 "type" : "hexstr",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08003884 "value" : "0x0010"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003885 }
3886 }
3887 },
3888 "right" : {
3889 "type" : "hexstr",
3890 "value" : "0xffff"
3891 }
3892 }
3893 }
3894 }
3895 ],
3896 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003897 "filename" : "include/spgw.p4",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003898 "line" : 232,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003899 "column" : 8,
Yi Tseng27b9bc02018-04-12 14:52:40 +08003900 "source_fragment" : "gtpu_udp.len = spgw_meta.ipv4_len ..."
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003901 }
3902 },
3903 {
3904 "op" : "assign",
3905 "parameters" : [
3906 {
3907 "type" : "field",
3908 "value" : ["gtpu_udp", "checksum"]
3909 },
3910 {
3911 "type" : "hexstr",
3912 "value" : "0x0000"
3913 }
3914 ],
3915 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003916 "filename" : "include/spgw.p4",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003917 "line" : 234,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003918 "column" : 8,
3919 "source_fragment" : "gtpu_udp.checksum = 0"
3920 }
Carmelo Cascone14cde402018-01-25 01:57:18 -08003921 },
3922 {
3923 "op" : "add_header",
3924 "parameters" : [
3925 {
3926 "type" : "header",
3927 "value" : "gtpu"
3928 }
3929 ],
3930 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003931 "filename" : "include/spgw.p4",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003932 "line" : 236,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003933 "column" : 8,
3934 "source_fragment" : "gtpu.setValid()"
3935 }
3936 },
3937 {
3938 "op" : "assign",
3939 "parameters" : [
3940 {
3941 "type" : "field",
3942 "value" : ["gtpu", "version"]
3943 },
3944 {
3945 "type" : "hexstr",
3946 "value" : "0x01"
3947 }
3948 ],
3949 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003950 "filename" : "include/spgw.p4",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003951 "line" : 237,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003952 "column" : 8,
3953 "source_fragment" : "gtpu.version = 0x01"
3954 }
3955 },
3956 {
3957 "op" : "assign",
3958 "parameters" : [
3959 {
3960 "type" : "field",
3961 "value" : ["gtpu", "pt"]
3962 },
3963 {
3964 "type" : "hexstr",
3965 "value" : "0x01"
3966 }
3967 ],
3968 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003969 "filename" : "include/spgw.p4",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003970 "line" : 238,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003971 "column" : 8,
3972 "source_fragment" : "gtpu.pt = 0x01"
3973 }
3974 },
3975 {
3976 "op" : "assign",
3977 "parameters" : [
3978 {
3979 "type" : "field",
3980 "value" : ["gtpu", "spare"]
3981 },
3982 {
3983 "type" : "hexstr",
3984 "value" : "0x00"
3985 }
3986 ],
3987 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003988 "filename" : "include/spgw.p4",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003989 "line" : 239,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003990 "column" : 8,
3991 "source_fragment" : "gtpu.spare = 0"
3992 }
3993 },
3994 {
3995 "op" : "assign",
3996 "parameters" : [
3997 {
3998 "type" : "field",
3999 "value" : ["gtpu", "ex_flag"]
4000 },
4001 {
4002 "type" : "hexstr",
4003 "value" : "0x00"
4004 }
4005 ],
4006 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02004007 "filename" : "include/spgw.p4",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004008 "line" : 240,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004009 "column" : 8,
4010 "source_fragment" : "gtpu.ex_flag = 0"
4011 }
4012 },
4013 {
4014 "op" : "assign",
4015 "parameters" : [
4016 {
4017 "type" : "field",
4018 "value" : ["gtpu", "seq_flag"]
4019 },
4020 {
4021 "type" : "hexstr",
4022 "value" : "0x00"
4023 }
4024 ],
4025 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02004026 "filename" : "include/spgw.p4",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004027 "line" : 241,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004028 "column" : 8,
4029 "source_fragment" : "gtpu.seq_flag = 0"
4030 }
4031 },
4032 {
4033 "op" : "assign",
4034 "parameters" : [
4035 {
4036 "type" : "field",
4037 "value" : ["gtpu", "npdu_flag"]
4038 },
4039 {
4040 "type" : "hexstr",
4041 "value" : "0x00"
4042 }
4043 ],
4044 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02004045 "filename" : "include/spgw.p4",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004046 "line" : 242,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004047 "column" : 8,
4048 "source_fragment" : "gtpu.npdu_flag = 0"
4049 }
4050 },
4051 {
4052 "op" : "assign",
4053 "parameters" : [
4054 {
4055 "type" : "field",
4056 "value" : ["gtpu", "msgtype"]
4057 },
4058 {
4059 "type" : "hexstr",
4060 "value" : "0xff"
4061 }
4062 ],
4063 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02004064 "filename" : "include/spgw.p4",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004065 "line" : 243,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004066 "column" : 8,
4067 "source_fragment" : "gtpu.msgtype = 0xff"
4068 }
4069 },
4070 {
4071 "op" : "assign",
4072 "parameters" : [
4073 {
4074 "type" : "field",
4075 "value" : ["gtpu", "msglen"]
4076 },
4077 {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004078 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004079 "value" : ["userMetadata.spgw", "ipv4_len"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08004080 }
4081 ],
4082 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02004083 "filename" : "include/spgw.p4",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004084 "line" : 244,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004085 "column" : 8,
Yi Tseng27b9bc02018-04-12 14:52:40 +08004086 "source_fragment" : "gtpu.msglen = spgw_meta.ipv4_len"
Carmelo Cascone14cde402018-01-25 01:57:18 -08004087 }
4088 },
4089 {
4090 "op" : "assign",
4091 "parameters" : [
4092 {
4093 "type" : "field",
4094 "value" : ["gtpu", "teid"]
4095 },
4096 {
4097 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004098 "value" : ["userMetadata.spgw", "teid"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08004099 }
4100 ],
4101 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02004102 "filename" : "include/spgw.p4",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004103 "line" : 245,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004104 "column" : 8,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004105 "source_fragment" : "gtpu.teid = spgw_meta.teid"
Carmelo Cascone14cde402018-01-25 01:57:18 -08004106 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004107 }
4108 ]
4109 },
4110 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004111 "name" : "FabricEgress.pkt_io_egress.pop_vlan",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02004112 "id" : 56,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004113 "runtime_data" : [],
4114 "primitives" : [
4115 {
4116 "op" : "assign",
4117 "parameters" : [
4118 {
4119 "type" : "field",
4120 "value" : ["ethernet", "ether_type"]
4121 },
4122 {
4123 "type" : "field",
4124 "value" : ["vlan_tag", "ether_type"]
4125 }
4126 ],
4127 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02004128 "filename" : "include/control/packetio.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004129 "line" : 38,
4130 "column" : 8,
4131 "source_fragment" : "hdr.ethernet.ether_type = hdr.vlan_tag.ether_type"
4132 }
4133 },
4134 {
4135 "op" : "remove_header",
4136 "parameters" : [
4137 {
4138 "type" : "header",
4139 "value" : "vlan_tag"
4140 }
4141 ],
4142 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02004143 "filename" : "include/control/packetio.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004144 "line" : 39,
4145 "column" : 8,
4146 "source_fragment" : "hdr.vlan_tag.setInvalid()"
4147 }
4148 }
4149 ]
4150 },
4151 {
4152 "name" : "FabricEgress.egress_next.pop_vlan",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02004153 "id" : 57,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004154 "runtime_data" : [],
4155 "primitives" : [
4156 {
4157 "op" : "assign",
4158 "parameters" : [
4159 {
4160 "type" : "field",
4161 "value" : ["ethernet", "ether_type"]
4162 },
4163 {
4164 "type" : "field",
4165 "value" : ["vlan_tag", "ether_type"]
4166 }
4167 ],
4168 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02004169 "filename" : "include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004170 "line" : 193,
4171 "column" : 8,
4172 "source_fragment" : "hdr.ethernet.ether_type = hdr.vlan_tag.ether_type"
4173 }
4174 },
4175 {
4176 "op" : "remove_header",
4177 "parameters" : [
4178 {
4179 "type" : "header",
4180 "value" : "vlan_tag"
4181 }
4182 ],
4183 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02004184 "filename" : "include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004185 "line" : 194,
4186 "column" : 8,
4187 "source_fragment" : "hdr.vlan_tag.setInvalid()"
4188 }
4189 }
4190 ]
4191 },
4192 {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02004193 "name" : "act_18",
4194 "id" : 58,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004195 "runtime_data" : [],
4196 "primitives" : [
4197 {
4198 "op" : "add_header",
4199 "parameters" : [
4200 {
4201 "type" : "header",
4202 "value" : "packet_in"
4203 }
4204 ],
4205 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02004206 "filename" : "include/control/packetio.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004207 "line" : 46,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004208 "column" : 12,
4209 "source_fragment" : "hdr.packet_in.setValid()"
4210 }
4211 },
4212 {
4213 "op" : "assign",
4214 "parameters" : [
4215 {
4216 "type" : "field",
4217 "value" : ["packet_in", "ingress_port"]
4218 },
4219 {
4220 "type" : "field",
4221 "value" : ["standard_metadata", "ingress_port"]
4222 }
4223 ],
4224 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02004225 "filename" : "include/control/packetio.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004226 "line" : 47,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004227 "column" : 12,
4228 "source_fragment" : "hdr.packet_in.ingress_port = standard_metadata.ingress_port"
4229 }
4230 }
4231 ]
4232 },
4233 {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02004234 "name" : "act_19",
4235 "id" : 59,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004236 "runtime_data" : [],
4237 "primitives" : [
4238 {
4239 "op" : "remove_header",
4240 "parameters" : [
4241 {
4242 "type" : "header",
4243 "value" : "gtpu_ipv4"
4244 }
4245 ],
4246 "source_info" : {
4247 "filename" : "fabric.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004248 "line" : 71,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004249 "column" : 36,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004250 "source_fragment" : "hdr.gtpu_ipv4"
4251 }
4252 },
4253 {
4254 "op" : "remove_header",
4255 "parameters" : [
4256 {
4257 "type" : "header",
4258 "value" : "gtpu_udp"
4259 }
4260 ],
4261 "source_info" : {
4262 "filename" : "fabric.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004263 "line" : 71,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004264 "column" : 51,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004265 "source_fragment" : "hdr.gtpu_udp"
4266 }
4267 },
4268 {
4269 "op" : "remove_header",
4270 "parameters" : [
4271 {
4272 "type" : "header",
4273 "value" : "gtpu"
4274 }
4275 ],
4276 "source_info" : {
4277 "filename" : "fabric.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004278 "line" : 71,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004279 "column" : 65,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004280 "source_fragment" : "hdr.gtpu"
4281 }
4282 }
4283 ]
4284 }
4285 ],
4286 "pipelines" : [
4287 {
4288 "name" : "ingress",
4289 "id" : 0,
4290 "source_info" : {
4291 "filename" : "fabric.p4",
4292 "line" : 33,
4293 "column" : 8,
4294 "source_fragment" : "FabricIngress"
4295 },
4296 "init_table" : "node_2",
4297 "tables" : [
4298 {
4299 "name" : "tbl_act",
4300 "id" : 0,
4301 "key" : [],
4302 "match_type" : "exact",
4303 "type" : "simple",
4304 "max_size" : 1024,
4305 "with_counters" : false,
4306 "support_timeout" : false,
4307 "direct_meters" : null,
Carmelo Cascone6af4e172018-06-15 16:01:30 +02004308 "action_ids" : [35],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004309 "actions" : ["act"],
4310 "base_default_next" : null,
4311 "next_tables" : {
4312 "act" : null
4313 },
4314 "default_entry" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02004315 "action_id" : 35,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004316 "action_const" : true,
4317 "action_data" : [],
4318 "action_entry_const" : true
4319 }
4320 },
4321 {
4322 "name" : "tbl_act_0",
4323 "id" : 1,
4324 "key" : [],
4325 "match_type" : "exact",
4326 "type" : "simple",
4327 "max_size" : 1024,
4328 "with_counters" : false,
4329 "support_timeout" : false,
4330 "direct_meters" : null,
Carmelo Cascone6af4e172018-06-15 16:01:30 +02004331 "action_ids" : [43],
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004332 "actions" : ["act_7"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004333 "base_default_next" : "node_5",
4334 "next_tables" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004335 "act_7" : "node_5"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004336 },
4337 "default_entry" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02004338 "action_id" : 43,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004339 "action_const" : true,
4340 "action_data" : [],
4341 "action_entry_const" : true
4342 }
4343 },
4344 {
4345 "name" : "tbl_act_1",
4346 "id" : 2,
4347 "key" : [],
4348 "match_type" : "exact",
4349 "type" : "simple",
4350 "max_size" : 1024,
4351 "with_counters" : false,
4352 "support_timeout" : false,
4353 "direct_meters" : null,
Carmelo Cascone6af4e172018-06-15 16:01:30 +02004354 "action_ids" : [38],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004355 "actions" : ["act_2"],
Yi Tseng27b9bc02018-04-12 14:52:40 +08004356 "base_default_next" : "FabricIngress.spgw_ingress.s1u_filter_table",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004357 "next_tables" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004358 "act_2" : "FabricIngress.spgw_ingress.s1u_filter_table"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004359 },
4360 "default_entry" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02004361 "action_id" : 38,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004362 "action_const" : true,
4363 "action_data" : [],
4364 "action_entry_const" : true
4365 }
4366 },
4367 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004368 "name" : "FabricIngress.spgw_ingress.s1u_filter_table",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004369 "id" : 3,
4370 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02004371 "filename" : "include/spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004372 "line" : 65,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004373 "column" : 10,
4374 "source_fragment" : "s1u_filter_table"
4375 },
4376 "key" : [
4377 {
4378 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004379 "name" : "spgw_meta.s1u_sgw_addr",
4380 "target" : ["userMetadata.spgw", "s1u_sgw_addr"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004381 "mask" : null
4382 }
4383 ],
4384 "match_type" : "exact",
4385 "type" : "simple",
4386 "max_size" : 1024,
4387 "with_counters" : false,
4388 "support_timeout" : false,
4389 "direct_meters" : null,
4390 "action_ids" : [1],
4391 "actions" : ["NoAction"],
4392 "base_default_next" : null,
4393 "next_tables" : {
4394 "__HIT__" : "tbl_act_2",
4395 "__MISS__" : "tbl_act_3"
4396 },
4397 "default_entry" : {
4398 "action_id" : 1,
4399 "action_const" : false,
4400 "action_data" : [],
4401 "action_entry_const" : false
4402 }
4403 },
4404 {
4405 "name" : "tbl_act_2",
4406 "id" : 4,
4407 "key" : [],
4408 "match_type" : "exact",
4409 "type" : "simple",
4410 "max_size" : 1024,
4411 "with_counters" : false,
4412 "support_timeout" : false,
4413 "direct_meters" : null,
Carmelo Cascone6af4e172018-06-15 16:01:30 +02004414 "action_ids" : [36],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004415 "actions" : ["act_0"],
4416 "base_default_next" : "node_10",
4417 "next_tables" : {
4418 "act_0" : "node_10"
4419 },
4420 "default_entry" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02004421 "action_id" : 36,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004422 "action_const" : true,
4423 "action_data" : [],
4424 "action_entry_const" : true
4425 }
4426 },
4427 {
4428 "name" : "tbl_act_3",
4429 "id" : 5,
4430 "key" : [],
4431 "match_type" : "exact",
4432 "type" : "simple",
4433 "max_size" : 1024,
4434 "with_counters" : false,
4435 "support_timeout" : false,
4436 "direct_meters" : null,
Carmelo Cascone6af4e172018-06-15 16:01:30 +02004437 "action_ids" : [37],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004438 "actions" : ["act_1"],
4439 "base_default_next" : "node_10",
4440 "next_tables" : {
4441 "act_1" : "node_10"
4442 },
4443 "default_entry" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02004444 "action_id" : 37,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004445 "action_const" : true,
4446 "action_data" : [],
4447 "action_entry_const" : true
4448 }
4449 },
4450 {
4451 "name" : "tbl_act_4",
4452 "id" : 6,
4453 "key" : [],
4454 "match_type" : "exact",
4455 "type" : "simple",
4456 "max_size" : 1024,
4457 "with_counters" : false,
4458 "support_timeout" : false,
4459 "direct_meters" : null,
Carmelo Cascone6af4e172018-06-15 16:01:30 +02004460 "action_ids" : [39],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004461 "actions" : ["act_3"],
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004462 "base_default_next" : "node_17",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004463 "next_tables" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004464 "act_3" : "node_17"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004465 },
4466 "default_entry" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02004467 "action_id" : 39,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004468 "action_const" : true,
4469 "action_data" : [],
4470 "action_entry_const" : true
4471 }
4472 },
4473 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004474 "name" : "FabricIngress.spgw_ingress.ue_filter_table",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004475 "id" : 7,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004476 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02004477 "filename" : "include/spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004478 "line" : 55,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004479 "column" : 10,
4480 "source_fragment" : "ue_filter_table"
4481 },
4482 "key" : [
4483 {
4484 "match_type" : "lpm",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004485 "name" : "ipv4.dst_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004486 "target" : ["ipv4", "dst_addr"],
4487 "mask" : null
4488 }
4489 ],
4490 "match_type" : "lpm",
4491 "type" : "simple",
4492 "max_size" : 1024,
4493 "with_counters" : false,
4494 "support_timeout" : false,
4495 "direct_meters" : null,
4496 "action_ids" : [0],
4497 "actions" : ["NoAction"],
4498 "base_default_next" : null,
4499 "next_tables" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004500 "__HIT__" : "tbl_act_5",
4501 "__MISS__" : "tbl_act_6"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004502 },
4503 "default_entry" : {
4504 "action_id" : 0,
4505 "action_const" : false,
4506 "action_data" : [],
4507 "action_entry_const" : false
4508 }
4509 },
4510 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004511 "name" : "tbl_act_5",
4512 "id" : 8,
4513 "key" : [],
4514 "match_type" : "exact",
4515 "type" : "simple",
4516 "max_size" : 1024,
4517 "with_counters" : false,
4518 "support_timeout" : false,
4519 "direct_meters" : null,
Carmelo Cascone6af4e172018-06-15 16:01:30 +02004520 "action_ids" : [40],
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004521 "actions" : ["act_4"],
4522 "base_default_next" : "node_15",
4523 "next_tables" : {
4524 "act_4" : "node_15"
4525 },
4526 "default_entry" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02004527 "action_id" : 40,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004528 "action_const" : true,
4529 "action_data" : [],
4530 "action_entry_const" : true
4531 }
4532 },
4533 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004534 "name" : "tbl_act_6",
4535 "id" : 9,
4536 "key" : [],
4537 "match_type" : "exact",
4538 "type" : "simple",
4539 "max_size" : 1024,
4540 "with_counters" : false,
4541 "support_timeout" : false,
4542 "direct_meters" : null,
Carmelo Cascone6af4e172018-06-15 16:01:30 +02004543 "action_ids" : [41],
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004544 "actions" : ["act_5"],
4545 "base_default_next" : "node_15",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004546 "next_tables" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004547 "act_5" : "node_15"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004548 },
4549 "default_entry" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02004550 "action_id" : 41,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004551 "action_const" : true,
4552 "action_data" : [],
4553 "action_entry_const" : true
4554 }
4555 },
4556 {
4557 "name" : "tbl_act_7",
4558 "id" : 10,
4559 "key" : [],
4560 "match_type" : "exact",
4561 "type" : "simple",
4562 "max_size" : 1024,
4563 "with_counters" : false,
4564 "support_timeout" : false,
4565 "direct_meters" : null,
Carmelo Cascone6af4e172018-06-15 16:01:30 +02004566 "action_ids" : [42],
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004567 "actions" : ["act_6"],
4568 "base_default_next" : "node_17",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004569 "next_tables" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004570 "act_6" : "node_17"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004571 },
4572 "default_entry" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02004573 "action_id" : 42,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004574 "action_const" : true,
4575 "action_data" : [],
4576 "action_entry_const" : true
4577 }
4578 },
4579 {
4580 "name" : "tbl_act_8",
4581 "id" : 11,
4582 "key" : [],
4583 "match_type" : "exact",
4584 "type" : "simple",
4585 "max_size" : 1024,
4586 "with_counters" : false,
4587 "support_timeout" : false,
4588 "direct_meters" : null,
Carmelo Cascone6af4e172018-06-15 16:01:30 +02004589 "action_ids" : [44],
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004590 "actions" : ["act_8"],
4591 "base_default_next" : "node_19",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004592 "next_tables" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004593 "act_8" : "node_19"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004594 },
4595 "default_entry" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02004596 "action_id" : 44,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004597 "action_const" : true,
4598 "action_data" : [],
4599 "action_entry_const" : true
4600 }
4601 },
4602 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004603 "name" : "tbl_spgw_ingress_gtpu_decap",
Carmelo Cascone14cde402018-01-25 01:57:18 -08004604 "id" : 12,
4605 "key" : [],
4606 "match_type" : "exact",
4607 "type" : "simple",
4608 "max_size" : 1024,
4609 "with_counters" : false,
4610 "support_timeout" : false,
4611 "direct_meters" : null,
Carmelo Cascone6af4e172018-06-15 16:01:30 +02004612 "action_ids" : [13],
Yi Tseng27b9bc02018-04-12 14:52:40 +08004613 "actions" : ["FabricIngress.spgw_ingress.gtpu_decap"],
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004614 "base_default_next" : "node_22",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004615 "next_tables" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004616 "FabricIngress.spgw_ingress.gtpu_decap" : "node_22"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004617 },
4618 "default_entry" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02004619 "action_id" : 13,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004620 "action_const" : true,
4621 "action_data" : [],
4622 "action_entry_const" : true
4623 }
4624 },
4625 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004626 "name" : "FabricIngress.spgw_ingress.dl_sess_lookup",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004627 "id" : 13,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004628 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02004629 "filename" : "include/spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004630 "line" : 124,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004631 "column" : 10,
4632 "source_fragment" : "dl_sess_lookup"
4633 },
4634 "key" : [
4635 {
4636 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004637 "name" : "ipv4.dst_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004638 "target" : ["ipv4", "dst_addr"],
4639 "mask" : null
4640 }
4641 ],
4642 "match_type" : "exact",
4643 "type" : "simple",
4644 "max_size" : 1024,
4645 "with_counters" : false,
4646 "support_timeout" : false,
4647 "direct_meters" : null,
Carmelo Cascone6af4e172018-06-15 16:01:30 +02004648 "action_ids" : [14, 2],
Yi Tseng27b9bc02018-04-12 14:52:40 +08004649 "actions" : ["FabricIngress.spgw_ingress.set_dl_sess_info", "NoAction"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004650 "base_default_next" : null,
4651 "next_tables" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004652 "__HIT__" : "tbl_act_9",
4653 "__MISS__" : "tbl_act_10"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004654 },
4655 "default_entry" : {
4656 "action_id" : 2,
4657 "action_const" : false,
4658 "action_data" : [],
4659 "action_entry_const" : false
4660 }
4661 },
4662 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004663 "name" : "tbl_act_9",
4664 "id" : 14,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004665 "key" : [],
4666 "match_type" : "exact",
4667 "type" : "simple",
4668 "max_size" : 1024,
4669 "with_counters" : false,
4670 "support_timeout" : false,
4671 "direct_meters" : null,
Carmelo Cascone6af4e172018-06-15 16:01:30 +02004672 "action_ids" : [45],
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004673 "actions" : ["act_9"],
4674 "base_default_next" : "node_26",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004675 "next_tables" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004676 "act_9" : "node_26"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004677 },
4678 "default_entry" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02004679 "action_id" : 45,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004680 "action_const" : true,
4681 "action_data" : [],
4682 "action_entry_const" : true
4683 }
4684 },
4685 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004686 "name" : "tbl_act_10",
4687 "id" : 15,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004688 "key" : [],
4689 "match_type" : "exact",
4690 "type" : "simple",
4691 "max_size" : 1024,
4692 "with_counters" : false,
4693 "support_timeout" : false,
4694 "direct_meters" : null,
Carmelo Cascone6af4e172018-06-15 16:01:30 +02004695 "action_ids" : [46],
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004696 "actions" : ["act_10"],
4697 "base_default_next" : "node_26",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004698 "next_tables" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004699 "act_10" : "node_26"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004700 },
4701 "default_entry" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02004702 "action_id" : 46,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004703 "action_const" : true,
4704 "action_data" : [],
4705 "action_entry_const" : true
4706 }
4707 },
4708 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004709 "name" : "tbl_spgw_ingress_drop_now",
4710 "id" : 16,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004711 "key" : [],
4712 "match_type" : "exact",
4713 "type" : "simple",
4714 "max_size" : 1024,
4715 "with_counters" : false,
4716 "support_timeout" : false,
4717 "direct_meters" : null,
Carmelo Cascone6af4e172018-06-15 16:01:30 +02004718 "action_ids" : [12],
Yi Tseng27b9bc02018-04-12 14:52:40 +08004719 "actions" : ["FabricIngress.spgw_ingress.drop_now"],
4720 "base_default_next" : "FabricIngress.spgw_ingress.ue_cdr_table",
Carmelo Cascone14cde402018-01-25 01:57:18 -08004721 "next_tables" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004722 "FabricIngress.spgw_ingress.drop_now" : "FabricIngress.spgw_ingress.ue_cdr_table"
Carmelo Cascone14cde402018-01-25 01:57:18 -08004723 },
4724 "default_entry" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02004725 "action_id" : 12,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004726 "action_const" : true,
4727 "action_data" : [],
4728 "action_entry_const" : true
4729 }
4730 },
4731 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004732 "name" : "FabricIngress.spgw_ingress.ue_cdr_table",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004733 "id" : 17,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004734 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02004735 "filename" : "include/spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004736 "line" : 134,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004737 "column" : 10,
4738 "source_fragment" : "ue_cdr_table"
4739 },
4740 "key" : [
4741 {
4742 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004743 "name" : "ipv4.dst_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004744 "target" : ["ipv4", "dst_addr"],
4745 "mask" : null
4746 }
4747 ],
4748 "match_type" : "exact",
4749 "type" : "simple",
4750 "max_size" : 1024,
4751 "with_counters" : true,
4752 "support_timeout" : false,
4753 "direct_meters" : null,
Carmelo Cascone6af4e172018-06-15 16:01:30 +02004754 "action_ids" : [15, 3],
Yi Tseng27b9bc02018-04-12 14:52:40 +08004755 "actions" : ["FabricIngress.spgw_ingress.update_ue_cdr", "NoAction"],
4756 "base_default_next" : "tbl_act_11",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004757 "next_tables" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004758 "FabricIngress.spgw_ingress.update_ue_cdr" : "tbl_act_11",
4759 "NoAction" : "tbl_act_11"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004760 },
4761 "default_entry" : {
4762 "action_id" : 3,
4763 "action_const" : false,
4764 "action_data" : [],
4765 "action_entry_const" : false
4766 }
4767 },
4768 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004769 "name" : "tbl_act_11",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004770 "id" : 18,
Yi Tseng27b9bc02018-04-12 14:52:40 +08004771 "key" : [],
4772 "match_type" : "exact",
4773 "type" : "simple",
4774 "max_size" : 1024,
4775 "with_counters" : false,
4776 "support_timeout" : false,
4777 "direct_meters" : null,
Carmelo Cascone6af4e172018-06-15 16:01:30 +02004778 "action_ids" : [47],
Yi Tseng27b9bc02018-04-12 14:52:40 +08004779 "actions" : ["act_11"],
4780 "base_default_next" : "FabricIngress.filtering.ingress_port_vlan",
4781 "next_tables" : {
4782 "act_11" : "FabricIngress.filtering.ingress_port_vlan"
4783 },
4784 "default_entry" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02004785 "action_id" : 47,
Yi Tseng27b9bc02018-04-12 14:52:40 +08004786 "action_const" : true,
4787 "action_data" : [],
4788 "action_entry_const" : true
4789 }
4790 },
4791 {
4792 "name" : "FabricIngress.filtering.ingress_port_vlan",
4793 "id" : 19,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004794 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02004795 "filename" : "include/control/filtering.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004796 "line" : 57,
4797 "column" : 10,
4798 "source_fragment" : "ingress_port_vlan"
4799 },
4800 "key" : [
4801 {
4802 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004803 "name" : "standard_metadata.ingress_port",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004804 "target" : ["standard_metadata", "ingress_port"],
4805 "mask" : null
4806 },
4807 {
4808 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004809 "name" : "hdr.vlan_tag.is_valid",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004810 "target" : ["vlan_tag", "$valid$"],
4811 "mask" : null
4812 },
4813 {
4814 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004815 "name" : "hdr.vlan_tag.vlan_id",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004816 "target" : ["vlan_tag", "vlan_id"],
4817 "mask" : null
4818 }
4819 ],
4820 "match_type" : "ternary",
4821 "type" : "simple",
4822 "max_size" : 1024,
4823 "with_counters" : true,
4824 "support_timeout" : false,
4825 "direct_meters" : null,
Carmelo Cascone6af4e172018-06-15 16:01:30 +02004826 "action_ids" : [18, 17, 9, 16],
Yi Tseng27b9bc02018-04-12 14:52:40 +08004827 "actions" : ["FabricIngress.filtering.push_internal_vlan", "FabricIngress.filtering.set_vlan", "nop", "FabricIngress.filtering.drop"],
4828 "base_default_next" : "FabricIngress.filtering.fwd_classifier",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004829 "next_tables" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004830 "FabricIngress.filtering.push_internal_vlan" : "FabricIngress.filtering.fwd_classifier",
4831 "FabricIngress.filtering.set_vlan" : "FabricIngress.filtering.fwd_classifier",
4832 "nop" : "FabricIngress.filtering.fwd_classifier",
4833 "FabricIngress.filtering.drop" : "FabricIngress.filtering.fwd_classifier"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004834 },
4835 "default_entry" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02004836 "action_id" : 9,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004837 "action_const" : true,
4838 "action_data" : [],
4839 "action_entry_const" : true
4840 }
4841 },
4842 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004843 "name" : "FabricIngress.filtering.fwd_classifier",
4844 "id" : 20,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004845 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02004846 "filename" : "include/control/filtering.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004847 "line" : 76,
4848 "column" : 10,
4849 "source_fragment" : "fwd_classifier"
4850 },
4851 "key" : [
4852 {
4853 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004854 "name" : "standard_metadata.ingress_port",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004855 "target" : ["standard_metadata", "ingress_port"],
4856 "mask" : null
4857 },
4858 {
4859 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004860 "name" : "hdr.ethernet.dst_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004861 "target" : ["ethernet", "dst_addr"],
4862 "mask" : null
4863 },
4864 {
4865 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004866 "name" : "fabric_metadata.original_ether_type",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004867 "target" : ["scalars", "fabric_metadata_t.original_ether_type"],
4868 "mask" : null
4869 }
4870 ],
4871 "match_type" : "exact",
4872 "type" : "simple",
4873 "max_size" : 1024,
4874 "with_counters" : true,
4875 "support_timeout" : false,
4876 "direct_meters" : null,
Carmelo Cascone6af4e172018-06-15 16:01:30 +02004877 "action_ids" : [19],
Yi Tseng27b9bc02018-04-12 14:52:40 +08004878 "actions" : ["FabricIngress.filtering.set_forwarding_type"],
4879 "base_default_next" : "node_32",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004880 "next_tables" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004881 "FabricIngress.filtering.set_forwarding_type" : "node_32"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004882 },
4883 "default_entry" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02004884 "action_id" : 19,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004885 "action_const" : true,
4886 "action_data" : ["0x0"],
4887 "action_entry_const" : true
4888 }
4889 },
4890 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004891 "name" : "FabricIngress.forwarding.bridging",
4892 "id" : 21,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004893 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02004894 "filename" : "include/control/forwarding.p4",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004895 "line" : 52,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004896 "column" : 10,
4897 "source_fragment" : "bridging"
4898 },
4899 "key" : [
4900 {
4901 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004902 "name" : "hdr.vlan_tag.vlan_id",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004903 "target" : ["vlan_tag", "vlan_id"],
4904 "mask" : null
4905 },
4906 {
4907 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004908 "name" : "hdr.ethernet.dst_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004909 "target" : ["ethernet", "dst_addr"],
4910 "mask" : null
4911 }
4912 ],
4913 "match_type" : "ternary",
4914 "type" : "simple",
4915 "max_size" : 1024,
4916 "with_counters" : true,
4917 "support_timeout" : false,
4918 "direct_meters" : null,
Carmelo Cascone6af4e172018-06-15 16:01:30 +02004919 "action_ids" : [21, 4],
Yi Tseng27b9bc02018-04-12 14:52:40 +08004920 "actions" : ["FabricIngress.forwarding.set_next_id", "NoAction"],
4921 "base_default_next" : "FabricIngress.forwarding.acl",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004922 "next_tables" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004923 "FabricIngress.forwarding.set_next_id" : "FabricIngress.forwarding.acl",
4924 "NoAction" : "FabricIngress.forwarding.acl"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004925 },
4926 "default_entry" : {
4927 "action_id" : 4,
4928 "action_const" : false,
4929 "action_data" : [],
4930 "action_entry_const" : false
4931 }
4932 },
4933 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004934 "name" : "FabricIngress.forwarding.mpls",
4935 "id" : 22,
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" : 64,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004939 "column" : 10,
4940 "source_fragment" : "mpls"
4941 },
4942 "key" : [
4943 {
4944 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004945 "name" : "hdr.mpls.label",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004946 "target" : ["mpls", "label"],
4947 "mask" : null
4948 }
4949 ],
4950 "match_type" : "exact",
4951 "type" : "simple",
4952 "max_size" : 1024,
4953 "with_counters" : true,
4954 "support_timeout" : false,
4955 "direct_meters" : null,
Carmelo Cascone6af4e172018-06-15 16:01:30 +02004956 "action_ids" : [24, 5],
Yi Tseng27b9bc02018-04-12 14:52:40 +08004957 "actions" : ["FabricIngress.forwarding.pop_mpls_and_next", "NoAction"],
4958 "base_default_next" : "tbl_act_12",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004959 "next_tables" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004960 "FabricIngress.forwarding.pop_mpls_and_next" : "tbl_act_12",
4961 "NoAction" : "tbl_act_12"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004962 },
4963 "default_entry" : {
4964 "action_id" : 5,
4965 "action_const" : false,
4966 "action_data" : [],
4967 "action_entry_const" : false
4968 }
4969 },
4970 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004971 "name" : "tbl_act_12",
4972 "id" : 23,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004973 "key" : [],
4974 "match_type" : "exact",
4975 "type" : "simple",
4976 "max_size" : 1024,
4977 "with_counters" : false,
4978 "support_timeout" : false,
4979 "direct_meters" : null,
Carmelo Cascone6af4e172018-06-15 16:01:30 +02004980 "action_ids" : [48],
Yi Tseng27b9bc02018-04-12 14:52:40 +08004981 "actions" : ["act_12"],
4982 "base_default_next" : "FabricIngress.forwarding.acl",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004983 "next_tables" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004984 "act_12" : "FabricIngress.forwarding.acl"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004985 },
4986 "default_entry" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02004987 "action_id" : 48,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004988 "action_const" : true,
4989 "action_data" : [],
4990 "action_entry_const" : true
4991 }
4992 },
4993 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004994 "name" : "FabricIngress.forwarding.unicast_v4",
4995 "id" : 24,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004996 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02004997 "filename" : "include/control/forwarding.p4",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004998 "line" : 75,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004999 "column" : 10,
5000 "source_fragment" : "unicast_v4"
5001 },
5002 "key" : [
5003 {
5004 "match_type" : "lpm",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005005 "name" : "hdr.ipv4.dst_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005006 "target" : ["ipv4", "dst_addr"],
5007 "mask" : null
5008 }
5009 ],
5010 "match_type" : "lpm",
5011 "type" : "simple",
5012 "max_size" : 1024,
5013 "with_counters" : true,
5014 "support_timeout" : false,
5015 "direct_meters" : null,
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005016 "action_ids" : [22, 6],
Yi Tseng27b9bc02018-04-12 14:52:40 +08005017 "actions" : ["FabricIngress.forwarding.set_next_id", "NoAction"],
5018 "base_default_next" : "FabricIngress.forwarding.acl",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005019 "next_tables" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005020 "FabricIngress.forwarding.set_next_id" : "FabricIngress.forwarding.acl",
5021 "NoAction" : "FabricIngress.forwarding.acl"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005022 },
5023 "default_entry" : {
5024 "action_id" : 6,
5025 "action_const" : false,
5026 "action_data" : [],
5027 "action_entry_const" : false
5028 }
5029 },
5030 {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005031 "name" : "FabricIngress.forwarding.acl",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005032 "id" : 25,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005033 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005034 "filename" : "include/control/forwarding.p4",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08005035 "line" : 133,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005036 "column" : 10,
5037 "source_fragment" : "acl"
5038 },
5039 "key" : [
5040 {
5041 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005042 "name" : "standard_metadata.ingress_port",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005043 "target" : ["standard_metadata", "ingress_port"],
5044 "mask" : null
5045 },
5046 {
5047 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005048 "name" : "fabric_metadata.ip_proto",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005049 "target" : ["scalars", "fabric_metadata_t.ip_proto"],
5050 "mask" : null
5051 },
5052 {
5053 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005054 "name" : "fabric_metadata.l4_src_port",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005055 "target" : ["scalars", "fabric_metadata_t.l4_src_port"],
5056 "mask" : null
5057 },
5058 {
5059 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005060 "name" : "fabric_metadata.l4_dst_port",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005061 "target" : ["scalars", "fabric_metadata_t.l4_dst_port"],
5062 "mask" : null
5063 },
5064 {
5065 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005066 "name" : "fabric_metadata.original_ether_type",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005067 "target" : ["scalars", "fabric_metadata_t.original_ether_type"],
5068 "mask" : null
5069 },
5070 {
5071 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005072 "name" : "hdr.ethernet.dst_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005073 "target" : ["ethernet", "dst_addr"],
5074 "mask" : null
5075 },
5076 {
5077 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005078 "name" : "hdr.ethernet.src_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005079 "target" : ["ethernet", "src_addr"],
5080 "mask" : null
5081 },
5082 {
5083 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005084 "name" : "hdr.vlan_tag.vlan_id",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005085 "target" : ["vlan_tag", "vlan_id"],
5086 "mask" : null
5087 },
5088 {
5089 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005090 "name" : "hdr.ipv4.src_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005091 "target" : ["ipv4", "src_addr"],
5092 "mask" : null
5093 },
5094 {
5095 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005096 "name" : "hdr.ipv4.dst_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005097 "target" : ["ipv4", "dst_addr"],
5098 "mask" : null
5099 },
5100 {
5101 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005102 "name" : "hdr.icmp.icmp_type",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005103 "target" : ["icmp", "icmp_type"],
5104 "mask" : null
5105 },
5106 {
5107 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005108 "name" : "hdr.icmp.icmp_code",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005109 "target" : ["icmp", "icmp_code"],
5110 "mask" : null
5111 }
5112 ],
5113 "match_type" : "ternary",
5114 "type" : "simple",
5115 "max_size" : 256,
5116 "with_counters" : true,
5117 "support_timeout" : false,
5118 "direct_meters" : null,
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005119 "action_ids" : [23, 25, 20, 10],
Yi Tseng27b9bc02018-04-12 14:52:40 +08005120 "actions" : ["FabricIngress.forwarding.set_next_id", "FabricIngress.forwarding.duplicate_to_controller", "FabricIngress.forwarding.drop", "nop"],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005121 "base_default_next" : "FabricIngress.next.vlan_meta",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005122 "next_tables" : {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005123 "FabricIngress.forwarding.set_next_id" : "FabricIngress.next.vlan_meta",
5124 "FabricIngress.forwarding.duplicate_to_controller" : "FabricIngress.next.vlan_meta",
5125 "FabricIngress.forwarding.drop" : "FabricIngress.next.vlan_meta",
5126 "nop" : "FabricIngress.next.vlan_meta"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005127 },
5128 "default_entry" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005129 "action_id" : 10,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005130 "action_const" : true,
5131 "action_data" : [],
5132 "action_entry_const" : true
5133 }
5134 },
5135 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005136 "name" : "FabricIngress.next.vlan_meta",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005137 "id" : 26,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005138 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005139 "filename" : "include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005140 "line" : 96,
5141 "column" : 10,
5142 "source_fragment" : "vlan_meta"
5143 },
5144 "key" : [
5145 {
5146 "match_type" : "exact",
5147 "name" : "fabric_metadata.next_id",
5148 "target" : ["scalars", "fabric_metadata_t.next_id"],
5149 "mask" : null
5150 }
5151 ],
5152 "match_type" : "exact",
5153 "type" : "simple",
5154 "max_size" : 1024,
5155 "with_counters" : true,
5156 "support_timeout" : false,
5157 "direct_meters" : null,
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005158 "action_ids" : [27, 11],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005159 "actions" : ["FabricIngress.next.set_vlan", "nop"],
5160 "base_default_next" : "FabricIngress.next.simple",
5161 "next_tables" : {
5162 "FabricIngress.next.set_vlan" : "FabricIngress.next.simple",
5163 "nop" : "FabricIngress.next.simple"
5164 },
5165 "default_entry" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005166 "action_id" : 11,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005167 "action_const" : false,
5168 "action_data" : [],
5169 "action_entry_const" : false
5170 }
5171 },
5172 {
5173 "name" : "FabricIngress.next.simple",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005174 "id" : 27,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005175 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005176 "filename" : "include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005177 "line" : 109,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005178 "column" : 10,
5179 "source_fragment" : "simple"
5180 },
5181 "key" : [
5182 {
5183 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005184 "name" : "fabric_metadata.next_id",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005185 "target" : ["scalars", "fabric_metadata_t.next_id"],
5186 "mask" : null
5187 }
5188 ],
5189 "match_type" : "exact",
5190 "type" : "simple",
5191 "max_size" : 1024,
5192 "with_counters" : true,
5193 "support_timeout" : false,
5194 "direct_meters" : null,
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005195 "action_ids" : [26, 28, 29, 32, 31, 7],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005196 "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 -08005197 "base_default_next" : null,
5198 "next_tables" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005199 "__HIT__" : "tbl_act_13",
5200 "__MISS__" : "tbl_act_14"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005201 },
5202 "default_entry" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005203 "action_id" : 7,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005204 "action_const" : false,
5205 "action_data" : [],
5206 "action_entry_const" : false
5207 }
5208 },
5209 {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08005210 "name" : "tbl_act_13",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005211 "id" : 28,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08005212 "key" : [],
5213 "match_type" : "exact",
5214 "type" : "simple",
5215 "max_size" : 1024,
5216 "with_counters" : false,
5217 "support_timeout" : false,
5218 "direct_meters" : null,
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005219 "action_ids" : [49],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005220 "actions" : ["act_13"],
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005221 "base_default_next" : "node_44",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005222 "next_tables" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005223 "act_13" : "node_44"
Yi Tseng27b9bc02018-04-12 14:52:40 +08005224 },
5225 "default_entry" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005226 "action_id" : 49,
Yi Tseng27b9bc02018-04-12 14:52:40 +08005227 "action_const" : true,
5228 "action_data" : [],
5229 "action_entry_const" : true
5230 }
5231 },
5232 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005233 "name" : "tbl_act_14",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005234 "id" : 29,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005235 "key" : [],
5236 "match_type" : "exact",
5237 "type" : "simple",
5238 "max_size" : 1024,
5239 "with_counters" : false,
5240 "support_timeout" : false,
5241 "direct_meters" : null,
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005242 "action_ids" : [50],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005243 "actions" : ["act_14"],
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005244 "base_default_next" : "node_44",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005245 "next_tables" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005246 "act_14" : "node_44"
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005247 },
5248 "default_entry" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005249 "action_id" : 50,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005250 "action_const" : true,
5251 "action_data" : [],
5252 "action_entry_const" : true
5253 }
5254 },
5255 {
5256 "name" : "tbl_act_15",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005257 "id" : 30,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005258 "key" : [],
5259 "match_type" : "exact",
5260 "type" : "simple",
5261 "max_size" : 1024,
5262 "with_counters" : false,
5263 "support_timeout" : false,
5264 "direct_meters" : null,
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005265 "action_ids" : [51],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005266 "actions" : ["act_15"],
5267 "base_default_next" : "FabricIngress.next.hashed",
5268 "next_tables" : {
5269 "act_15" : "FabricIngress.next.hashed"
5270 },
5271 "default_entry" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005272 "action_id" : 51,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005273 "action_const" : true,
5274 "action_data" : [],
5275 "action_entry_const" : true
5276 }
5277 },
5278 {
5279 "name" : "FabricIngress.next.hashed",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005280 "id" : 31,
Yi Tseng27b9bc02018-04-12 14:52:40 +08005281 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005282 "filename" : "include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005283 "line" : 124,
Yi Tseng27b9bc02018-04-12 14:52:40 +08005284 "column" : 10,
5285 "source_fragment" : "hashed"
5286 },
5287 "key" : [
5288 {
5289 "match_type" : "exact",
5290 "name" : "fabric_metadata.next_id",
5291 "target" : ["scalars", "fabric_metadata_t.next_id"],
5292 "mask" : null
5293 }
5294 ],
5295 "match_type" : "exact",
5296 "type" : "indirect_ws",
5297 "action_profile" : "FabricIngress.next.ecmp_selector",
5298 "max_size" : 1024,
5299 "with_counters" : true,
5300 "support_timeout" : false,
5301 "direct_meters" : null,
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005302 "action_ids" : [30, 33, 34, 8],
Yi Tseng27b9bc02018-04-12 14:52:40 +08005303 "actions" : ["FabricIngress.next.l3_routing", "FabricIngress.next.mpls_routing_v4", "FabricIngress.next.mpls_routing_v6", "NoAction"],
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005304 "base_default_next" : "node_49",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005305 "next_tables" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005306 "FabricIngress.next.l3_routing" : "node_49",
5307 "FabricIngress.next.mpls_routing_v4" : "node_49",
5308 "FabricIngress.next.mpls_routing_v6" : "node_49",
5309 "NoAction" : "node_49"
Yi Tseng27b9bc02018-04-12 14:52:40 +08005310 }
5311 },
5312 {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005313 "name" : "tbl_act_16",
5314 "id" : 32,
Yi Tseng27b9bc02018-04-12 14:52:40 +08005315 "key" : [],
5316 "match_type" : "exact",
5317 "type" : "simple",
5318 "max_size" : 1024,
5319 "with_counters" : false,
5320 "support_timeout" : false,
5321 "direct_meters" : null,
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005322 "action_ids" : [52],
5323 "actions" : ["act_16"],
5324 "base_default_next" : "node_51",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005325 "next_tables" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005326 "act_16" : "node_51"
Yi Tseng27b9bc02018-04-12 14:52:40 +08005327 },
5328 "default_entry" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005329 "action_id" : 52,
Yi Tseng27b9bc02018-04-12 14:52:40 +08005330 "action_const" : true,
5331 "action_data" : [],
5332 "action_entry_const" : true
5333 }
5334 },
5335 {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005336 "name" : "tbl_act_17",
5337 "id" : 33,
Yi Tseng27b9bc02018-04-12 14:52:40 +08005338 "key" : [],
5339 "match_type" : "exact",
5340 "type" : "simple",
5341 "max_size" : 1024,
5342 "with_counters" : false,
5343 "support_timeout" : false,
5344 "direct_meters" : null,
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005345 "action_ids" : [53],
5346 "actions" : ["act_17"],
Yi Tseng27b9bc02018-04-12 14:52:40 +08005347 "base_default_next" : null,
5348 "next_tables" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005349 "act_17" : null
Yi Tseng27b9bc02018-04-12 14:52:40 +08005350 },
5351 "default_entry" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005352 "action_id" : 53,
Carmelo Cascone14cde402018-01-25 01:57:18 -08005353 "action_const" : true,
5354 "action_data" : [],
5355 "action_entry_const" : true
5356 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005357 }
5358 ],
5359 "action_profiles" : [
5360 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005361 "name" : "FabricIngress.next.ecmp_selector",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005362 "id" : 0,
5363 "max_size" : 64,
5364 "selector" : {
5365 "algo" : "crc16",
5366 "input" : [
5367 {
5368 "type" : "field",
Yi Tseng3d3956d2018-01-31 17:28:05 -08005369 "value" : ["ipv4", "dst_addr"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005370 },
5371 {
5372 "type" : "field",
Yi Tseng3d3956d2018-01-31 17:28:05 -08005373 "value" : ["ipv4", "src_addr"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005374 },
5375 {
5376 "type" : "field",
5377 "value" : ["scalars", "fabric_metadata_t.ip_proto"]
5378 },
5379 {
5380 "type" : "field",
5381 "value" : ["scalars", "fabric_metadata_t.l4_src_port"]
5382 },
5383 {
5384 "type" : "field",
5385 "value" : ["scalars", "fabric_metadata_t.l4_dst_port"]
5386 }
5387 ]
5388 }
5389 }
5390 ],
5391 "conditionals" : [
5392 {
5393 "name" : "node_2",
5394 "id" : 0,
5395 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005396 "filename" : "include/control/packetio.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005397 "line" : 25,
5398 "column" : 12,
5399 "source_fragment" : "hdr.packet_out.isValid()"
5400 },
5401 "expression" : {
5402 "type" : "expression",
5403 "value" : {
5404 "op" : "d2b",
5405 "left" : null,
5406 "right" : {
5407 "type" : "field",
5408 "value" : ["packet_out", "$valid$"]
5409 }
5410 }
5411 },
5412 "true_next" : "tbl_act",
5413 "false_next" : "tbl_act_0"
5414 },
5415 {
5416 "name" : "node_5",
5417 "id" : 1,
5418 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005419 "filename" : "include/spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005420 "line" : 147,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005421 "column" : 12,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005422 "source_fragment" : "gtpu.isValid()"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005423 },
5424 "expression" : {
5425 "type" : "expression",
5426 "value" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005427 "op" : "d2b",
5428 "left" : null,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005429 "right" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005430 "type" : "field",
5431 "value" : ["gtpu", "$valid$"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005432 }
5433 }
5434 },
5435 "true_next" : "tbl_act_1",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005436 "false_next" : "FabricIngress.spgw_ingress.ue_filter_table"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005437 },
5438 {
5439 "name" : "node_10",
5440 "id" : 2,
5441 "expression" : {
5442 "type" : "expression",
5443 "value" : {
5444 "op" : "d2b",
5445 "left" : null,
5446 "right" : {
5447 "type" : "field",
5448 "value" : ["scalars", "spgw_ingress_tmp_2"]
5449 }
5450 }
5451 },
5452 "true_next" : "tbl_act_4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005453 "false_next" : "node_17"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005454 },
5455 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005456 "name" : "node_15",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005457 "id" : 3,
5458 "expression" : {
5459 "type" : "expression",
5460 "value" : {
5461 "op" : "d2b",
5462 "left" : null,
5463 "right" : {
5464 "type" : "field",
5465 "value" : ["scalars", "spgw_ingress_tmp_3"]
5466 }
5467 }
5468 },
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005469 "true_next" : "tbl_act_7",
5470 "false_next" : "node_17"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005471 },
5472 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005473 "name" : "node_17",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005474 "id" : 4,
5475 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005476 "filename" : "include/spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005477 "line" : 167,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005478 "column" : 12,
5479 "source_fragment" : "!spgw_meta.do_spgw"
5480 },
5481 "expression" : {
5482 "type" : "expression",
5483 "value" : {
5484 "op" : "not",
5485 "left" : null,
5486 "right" : {
5487 "type" : "expression",
5488 "value" : {
5489 "op" : "d2b",
5490 "left" : null,
5491 "right" : {
5492 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005493 "value" : ["userMetadata.spgw", "do_spgw"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005494 }
5495 }
5496 }
5497 }
5498 },
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005499 "true_next" : "tbl_act_8",
5500 "false_next" : "node_19"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005501 },
5502 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005503 "name" : "node_19",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005504 "id" : 5,
5505 "expression" : {
5506 "type" : "expression",
5507 "value" : {
5508 "op" : "not",
5509 "left" : null,
5510 "right" : {
5511 "type" : "expression",
5512 "value" : {
5513 "op" : "d2b",
5514 "left" : null,
5515 "right" : {
5516 "type" : "field",
5517 "value" : ["scalars", "spgw_ingress_hasReturned_0"]
5518 }
5519 }
5520 }
5521 }
5522 },
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005523 "true_next" : "node_20",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005524 "false_next" : "FabricIngress.filtering.ingress_port_vlan"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005525 },
5526 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005527 "name" : "node_20",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005528 "id" : 6,
5529 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005530 "filename" : "include/spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005531 "line" : 172,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005532 "column" : 12,
5533 "source_fragment" : "spgw_meta.direction == DIR_UPLINK"
5534 },
5535 "expression" : {
5536 "type" : "expression",
5537 "value" : {
5538 "op" : "==",
5539 "left" : {
5540 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005541 "value" : ["userMetadata.spgw", "direction"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005542 },
5543 "right" : {
5544 "type" : "hexstr",
5545 "value" : "0x00"
5546 }
5547 }
5548 },
5549 "true_next" : "tbl_spgw_ingress_gtpu_decap",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005550 "false_next" : "node_22"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005551 },
5552 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005553 "name" : "node_22",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005554 "id" : 7,
5555 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005556 "filename" : "include/spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005557 "line" : 189,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005558 "column" : 12,
5559 "source_fragment" : "spgw_meta.direction == DIR_DOWNLINK"
5560 },
5561 "expression" : {
5562 "type" : "expression",
5563 "value" : {
5564 "op" : "==",
5565 "left" : {
5566 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005567 "value" : ["userMetadata.spgw", "direction"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005568 },
5569 "right" : {
5570 "type" : "hexstr",
5571 "value" : "0x01"
5572 }
5573 }
5574 },
Yi Tseng27b9bc02018-04-12 14:52:40 +08005575 "true_next" : "FabricIngress.spgw_ingress.dl_sess_lookup",
5576 "false_next" : "tbl_act_11"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005577 },
5578 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005579 "name" : "node_26",
5580 "id" : 8,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005581 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005582 "filename" : "include/spgw.p4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005583 "line" : 190,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005584 "column" : 16,
5585 "source_fragment" : "!dl_sess_lookup.apply().hit"
5586 },
5587 "expression" : {
5588 "type" : "expression",
5589 "value" : {
5590 "op" : "not",
5591 "left" : null,
5592 "right" : {
5593 "type" : "expression",
5594 "value" : {
5595 "op" : "d2b",
5596 "left" : null,
5597 "right" : {
5598 "type" : "field",
5599 "value" : ["scalars", "spgw_ingress_tmp_4"]
5600 }
5601 }
5602 }
5603 }
5604 },
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005605 "true_next" : "tbl_spgw_ingress_drop_now",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005606 "false_next" : "FabricIngress.spgw_ingress.ue_cdr_table"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005607 },
5608 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005609 "name" : "node_32",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005610 "id" : 9,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005611 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005612 "filename" : "include/control/forwarding.p4",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08005613 "line" : 163,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005614 "column" : 11,
5615 "source_fragment" : "fabric_metadata.fwd_type == FWD_BRIDGING"
5616 },
5617 "expression" : {
5618 "type" : "expression",
5619 "value" : {
5620 "op" : "==",
5621 "left" : {
5622 "type" : "field",
5623 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
5624 },
5625 "right" : {
5626 "type" : "hexstr",
5627 "value" : "0x00"
5628 }
5629 }
5630 },
Yi Tseng27b9bc02018-04-12 14:52:40 +08005631 "true_next" : "FabricIngress.forwarding.bridging",
5632 "false_next" : "node_34"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005633 },
5634 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005635 "name" : "node_34",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005636 "id" : 10,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005637 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005638 "filename" : "include/control/forwarding.p4",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08005639 "line" : 164,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005640 "column" : 17,
5641 "source_fragment" : "fabric_metadata.fwd_type == FWD_MPLS"
5642 },
5643 "expression" : {
5644 "type" : "expression",
5645 "value" : {
5646 "op" : "==",
5647 "left" : {
5648 "type" : "field",
5649 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
5650 },
5651 "right" : {
5652 "type" : "hexstr",
5653 "value" : "0x01"
5654 }
5655 }
5656 },
Yi Tseng27b9bc02018-04-12 14:52:40 +08005657 "true_next" : "FabricIngress.forwarding.mpls",
5658 "false_next" : "node_37"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005659 },
5660 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005661 "name" : "node_37",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005662 "id" : 11,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005663 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005664 "filename" : "include/control/forwarding.p4",
5665 "line" : 179,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005666 "column" : 17,
5667 "source_fragment" : "fabric_metadata.fwd_type == FWD_IPV4_UNICAST"
5668 },
5669 "expression" : {
5670 "type" : "expression",
5671 "value" : {
5672 "op" : "==",
5673 "left" : {
5674 "type" : "field",
5675 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
5676 },
5677 "right" : {
5678 "type" : "hexstr",
5679 "value" : "0x02"
5680 }
5681 }
5682 },
Yi Tseng27b9bc02018-04-12 14:52:40 +08005683 "true_next" : "FabricIngress.forwarding.unicast_v4",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005684 "false_next" : "FabricIngress.forwarding.acl"
5685 },
5686 {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005687 "name" : "node_44",
5688 "id" : 12,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005689 "expression" : {
5690 "type" : "expression",
5691 "value" : {
5692 "op" : "d2b",
5693 "left" : null,
5694 "right" : {
5695 "type" : "field",
5696 "value" : ["scalars", "next_tmp_0"]
5697 }
5698 }
5699 },
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005700 "true_next" : "node_45",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005701 "false_next" : "FabricIngress.next.hashed"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005702 },
5703 {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005704 "name" : "node_45",
5705 "id" : 13,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005706 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005707 "filename" : "include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005708 "line" : 169,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005709 "column" : 16,
5710 "source_fragment" : "!hdr.mpls.isValid()"
5711 },
5712 "expression" : {
5713 "type" : "expression",
5714 "value" : {
5715 "op" : "not",
5716 "left" : null,
5717 "right" : {
5718 "type" : "expression",
5719 "value" : {
5720 "op" : "d2b",
5721 "left" : null,
5722 "right" : {
5723 "type" : "field",
5724 "value" : ["mpls", "$valid$"]
5725 }
5726 }
5727 }
5728 }
5729 },
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005730 "true_next" : "node_46",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005731 "false_next" : "FabricIngress.next.hashed"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005732 },
5733 {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005734 "name" : "node_46",
5735 "id" : 14,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005736 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005737 "filename" : "include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005738 "line" : 170,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005739 "column" : 19,
5740 "source_fragment" : "hdr.ipv4.isValid()"
5741 },
5742 "expression" : {
5743 "type" : "expression",
5744 "value" : {
5745 "op" : "d2b",
5746 "left" : null,
5747 "right" : {
5748 "type" : "field",
5749 "value" : ["ipv4", "$valid$"]
5750 }
5751 }
5752 },
Yi Tseng27b9bc02018-04-12 14:52:40 +08005753 "true_next" : "tbl_act_15",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005754 "false_next" : "FabricIngress.next.hashed"
5755 },
5756 {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005757 "name" : "node_49",
5758 "id" : 15,
Yi Tseng27b9bc02018-04-12 14:52:40 +08005759 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005760 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005761 "line" : 27,
5762 "column" : 12,
5763 "source_fragment" : "standard_metadata.egress_spec < 511"
5764 },
5765 "expression" : {
5766 "type" : "expression",
5767 "value" : {
5768 "op" : "<",
5769 "left" : {
5770 "type" : "field",
5771 "value" : ["standard_metadata", "egress_spec"]
5772 },
5773 "right" : {
5774 "type" : "hexstr",
5775 "value" : "0x01ff"
5776 }
5777 }
5778 },
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005779 "true_next" : "tbl_act_16",
5780 "false_next" : "node_51"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005781 },
5782 {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005783 "name" : "node_51",
5784 "id" : 16,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005785 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005786 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005787 "line" : 30,
5788 "column" : 12,
5789 "source_fragment" : "standard_metadata.ingress_port < 511"
5790 },
5791 "expression" : {
5792 "type" : "expression",
5793 "value" : {
5794 "op" : "<",
5795 "left" : {
5796 "type" : "field",
5797 "value" : ["standard_metadata", "ingress_port"]
5798 },
5799 "right" : {
5800 "type" : "hexstr",
5801 "value" : "0x01ff"
5802 }
5803 }
5804 },
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005805 "false_next" : null,
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005806 "true_next" : "tbl_act_17"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005807 }
5808 ]
5809 },
5810 {
5811 "name" : "egress",
5812 "id" : 1,
5813 "source_info" : {
5814 "filename" : "fabric.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005815 "line" : 61,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005816 "column" : 8,
5817 "source_fragment" : "FabricEgress"
5818 },
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005819 "init_table" : "FabricEgress.egress_next.egress_vlan",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005820 "tables" : [
5821 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005822 "name" : "FabricEgress.egress_next.egress_vlan",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005823 "id" : 34,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005824 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005825 "filename" : "include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005826 "line" : 197,
5827 "column" : 10,
5828 "source_fragment" : "egress_vlan"
5829 },
5830 "key" : [
5831 {
5832 "match_type" : "exact",
5833 "name" : "hdr.vlan_tag.vlan_id",
5834 "target" : ["vlan_tag", "vlan_id"],
5835 "mask" : null
5836 },
5837 {
5838 "match_type" : "exact",
5839 "name" : "standard_metadata.egress_port",
5840 "target" : ["standard_metadata", "egress_port"],
5841 "mask" : null
5842 }
5843 ],
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08005844 "match_type" : "exact",
5845 "type" : "simple",
5846 "max_size" : 1024,
5847 "with_counters" : false,
5848 "support_timeout" : false,
5849 "direct_meters" : null,
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005850 "action_ids" : [57, 54],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005851 "actions" : ["FabricEgress.egress_next.pop_vlan", "nop"],
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005852 "base_default_next" : "node_56",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08005853 "next_tables" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005854 "FabricEgress.egress_next.pop_vlan" : "node_56",
5855 "nop" : "node_56"
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08005856 },
5857 "default_entry" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005858 "action_id" : 54,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005859 "action_const" : false,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08005860 "action_data" : [],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005861 "action_entry_const" : false
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08005862 }
5863 },
5864 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005865 "name" : "tbl_pkt_io_egress_pop_vlan",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005866 "id" : 35,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08005867 "key" : [],
5868 "match_type" : "exact",
5869 "type" : "simple",
5870 "max_size" : 1024,
5871 "with_counters" : false,
5872 "support_timeout" : false,
5873 "direct_meters" : null,
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005874 "action_ids" : [56],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005875 "actions" : ["FabricEgress.pkt_io_egress.pop_vlan"],
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005876 "base_default_next" : "tbl_act_18",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08005877 "next_tables" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005878 "FabricEgress.pkt_io_egress.pop_vlan" : "tbl_act_18"
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08005879 },
5880 "default_entry" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005881 "action_id" : 56,
5882 "action_const" : true,
5883 "action_data" : [],
5884 "action_entry_const" : true
5885 }
5886 },
5887 {
5888 "name" : "tbl_act_18",
5889 "id" : 36,
5890 "key" : [],
5891 "match_type" : "exact",
5892 "type" : "simple",
5893 "max_size" : 1024,
5894 "with_counters" : false,
5895 "support_timeout" : false,
5896 "direct_meters" : null,
5897 "action_ids" : [58],
5898 "actions" : ["act_18"],
5899 "base_default_next" : "tbl_act_19",
5900 "next_tables" : {
5901 "act_18" : "tbl_act_19"
5902 },
5903 "default_entry" : {
5904 "action_id" : 58,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08005905 "action_const" : true,
5906 "action_data" : [],
5907 "action_entry_const" : true
5908 }
5909 },
5910 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005911 "name" : "tbl_act_19",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005912 "id" : 37,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005913 "key" : [],
5914 "match_type" : "exact",
5915 "type" : "simple",
5916 "max_size" : 1024,
5917 "with_counters" : false,
5918 "support_timeout" : false,
5919 "direct_meters" : null,
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005920 "action_ids" : [59],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005921 "actions" : ["act_19"],
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005922 "base_default_next" : "node_61",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005923 "next_tables" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005924 "act_19" : "node_61"
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005925 },
5926 "default_entry" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005927 "action_id" : 59,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005928 "action_const" : true,
5929 "action_data" : [],
5930 "action_entry_const" : true
5931 }
5932 },
5933 {
5934 "name" : "tbl_spgw_egress_gtpu_encap",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005935 "id" : 38,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005936 "key" : [],
5937 "match_type" : "exact",
5938 "type" : "simple",
5939 "max_size" : 1024,
5940 "with_counters" : false,
5941 "support_timeout" : false,
5942 "direct_meters" : null,
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005943 "action_ids" : [55],
Yi Tseng27b9bc02018-04-12 14:52:40 +08005944 "actions" : ["FabricEgress.spgw_egress.gtpu_encap"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005945 "base_default_next" : null,
5946 "next_tables" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005947 "FabricEgress.spgw_egress.gtpu_encap" : null
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005948 },
5949 "default_entry" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005950 "action_id" : 55,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005951 "action_const" : true,
5952 "action_data" : [],
5953 "action_entry_const" : true
5954 }
5955 }
5956 ],
5957 "action_profiles" : [],
5958 "conditionals" : [
5959 {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005960 "name" : "node_56",
5961 "id" : 17,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005962 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005963 "filename" : "include/control/packetio.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005964 "line" : 42,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005965 "column" : 12,
Carmelo Casconeb531b682018-01-30 17:55:56 -08005966 "source_fragment" : "standard_metadata.egress_port == 255"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005967 },
5968 "expression" : {
5969 "type" : "expression",
5970 "value" : {
5971 "op" : "==",
5972 "left" : {
5973 "type" : "field",
5974 "value" : ["standard_metadata", "egress_port"]
5975 },
5976 "right" : {
5977 "type" : "hexstr",
5978 "value" : "0x00ff"
5979 }
5980 }
5981 },
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005982 "true_next" : "node_57",
5983 "false_next" : "tbl_act_19"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005984 },
5985 {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005986 "name" : "node_57",
5987 "id" : 18,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005988 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005989 "filename" : "include/control/packetio.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005990 "line" : 43,
5991 "column" : 16,
5992 "source_fragment" : "hdr.vlan_tag.isValid() && fabric_metadata.pop_vlan_when_packet_in"
5993 },
5994 "expression" : {
5995 "type" : "expression",
5996 "value" : {
5997 "op" : "and",
5998 "left" : {
5999 "type" : "expression",
6000 "value" : {
6001 "op" : "d2b",
6002 "left" : null,
6003 "right" : {
6004 "type" : "field",
6005 "value" : ["vlan_tag", "$valid$"]
6006 }
6007 }
6008 },
6009 "right" : {
6010 "type" : "expression",
6011 "value" : {
6012 "op" : "d2b",
6013 "left" : null,
6014 "right" : {
6015 "type" : "field",
6016 "value" : ["scalars", "fabric_metadata_t.pop_vlan_when_packet_in"]
6017 }
6018 }
6019 }
6020 }
6021 },
6022 "true_next" : "tbl_pkt_io_egress_pop_vlan",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02006023 "false_next" : "tbl_act_18"
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006024 },
6025 {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02006026 "name" : "node_61",
6027 "id" : 19,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006028 "source_info" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02006029 "filename" : "include/spgw.p4",
Yi Tseng27b9bc02018-04-12 14:52:40 +08006030 "line" : 249,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006031 "column" : 12,
6032 "source_fragment" : "spgw_meta.do_spgw && spgw_meta.direction == DIR_DOWNLINK"
6033 },
6034 "expression" : {
6035 "type" : "expression",
6036 "value" : {
6037 "op" : "and",
6038 "left" : {
6039 "type" : "expression",
6040 "value" : {
6041 "op" : "d2b",
6042 "left" : null,
6043 "right" : {
6044 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08006045 "value" : ["userMetadata.spgw", "do_spgw"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006046 }
6047 }
6048 },
6049 "right" : {
6050 "type" : "expression",
6051 "value" : {
6052 "op" : "==",
6053 "left" : {
6054 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08006055 "value" : ["userMetadata.spgw", "direction"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006056 },
6057 "right" : {
6058 "type" : "hexstr",
6059 "value" : "0x01"
6060 }
6061 }
6062 }
6063 }
6064 },
6065 "false_next" : null,
6066 "true_next" : "tbl_spgw_egress_gtpu_encap"
6067 }
6068 ]
6069 }
6070 ],
6071 "checksums" : [
6072 {
6073 "name" : "cksum",
6074 "id" : 0,
6075 "target" : ["ipv4", "hdr_checksum"],
6076 "type" : "generic",
6077 "calculation" : "calc",
6078 "if_cond" : {
6079 "type" : "expression",
6080 "value" : {
6081 "op" : "d2b",
6082 "left" : null,
6083 "right" : {
6084 "type" : "field",
6085 "value" : ["ipv4", "$valid$"]
6086 }
6087 }
6088 }
6089 },
6090 {
6091 "name" : "cksum_0",
6092 "id" : 1,
Carmelo Cascone6af4e172018-06-15 16:01:30 +02006093 "target" : ["gtpu_ipv4", "hdr_checksum"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006094 "type" : "generic",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006095 "calculation" : "calc_0",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006096 "if_cond" : {
6097 "type" : "expression",
6098 "value" : {
6099 "op" : "d2b",
6100 "left" : null,
6101 "right" : {
6102 "type" : "field",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02006103 "value" : ["gtpu_ipv4", "$valid$"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006104 }
6105 }
6106 }
6107 },
6108 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006109 "name" : "cksum_1",
6110 "id" : 2,
Carmelo Cascone6af4e172018-06-15 16:01:30 +02006111 "target" : ["ipv4", "hdr_checksum"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006112 "type" : "generic",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006113 "calculation" : "calc_1",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006114 "if_cond" : {
6115 "type" : "expression",
6116 "value" : {
6117 "op" : "d2b",
6118 "left" : null,
6119 "right" : {
6120 "type" : "field",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02006121 "value" : ["ipv4", "$valid$"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006122 }
6123 }
6124 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006125 }
6126 ],
6127 "force_arith" : [],
6128 "extern_instances" : [],
6129 "field_aliases" : [
6130 [
6131 "queueing_metadata.enq_timestamp",
6132 ["standard_metadata", "enq_timestamp"]
6133 ],
6134 [
6135 "queueing_metadata.enq_qdepth",
6136 ["standard_metadata", "enq_qdepth"]
6137 ],
6138 [
6139 "queueing_metadata.deq_timedelta",
6140 ["standard_metadata", "deq_timedelta"]
6141 ],
6142 [
6143 "queueing_metadata.deq_qdepth",
6144 ["standard_metadata", "deq_qdepth"]
6145 ],
6146 [
6147 "intrinsic_metadata.ingress_global_timestamp",
6148 ["standard_metadata", "ingress_global_timestamp"]
6149 ],
6150 [
Yi Tseng27b9bc02018-04-12 14:52:40 +08006151 "intrinsic_metadata.egress_global_timestamp",
6152 ["standard_metadata", "egress_global_timestamp"]
6153 ],
6154 [
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006155 "intrinsic_metadata.lf_field_list",
6156 ["standard_metadata", "lf_field_list"]
6157 ],
6158 [
6159 "intrinsic_metadata.mcast_grp",
6160 ["standard_metadata", "mcast_grp"]
6161 ],
6162 [
6163 "intrinsic_metadata.resubmit_flag",
6164 ["standard_metadata", "resubmit_flag"]
6165 ],
6166 [
6167 "intrinsic_metadata.egress_rid",
6168 ["standard_metadata", "egress_rid"]
Yi Tseng27b9bc02018-04-12 14:52:40 +08006169 ],
6170 [
6171 "intrinsic_metadata.recirculate_flag",
6172 ["standard_metadata", "recirculate_flag"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006173 ]
Carmelo Cascone6af4e172018-06-15 16:01:30 +02006174 ],
6175 "program" : "fabric.p4",
6176 "__meta__" : {
6177 "version" : [2, 18],
6178 "compiler" : "https://github.com/p4lang/p4c"
6179 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006180}