blob: f0f4ba3749c4d92227cf86ce5361cc06668c928c [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],
Carmelo Casconea5400af2018-07-17 22:11:54 +020013 ["next_tmp_2", 1, false],
14 ["next_tmp_3", 1, false],
15 ["next_tmp_4", 1, false],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -080016 ["spgw_ingress_hasReturned_0", 1, false],
Carmelo Casconea5400af2018-07-17 22:11:54 +020017 ["next_hasReturned_0", 1, false],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -080018 ["fabric_metadata_t.fwd_type", 3, false],
19 ["fabric_metadata_t.next_id", 32, false],
Yi Tseng20f9e7b2018-05-24 23:27:39 +080020 ["fabric_metadata_t.pop_vlan_when_packet_in", 1, false],
Carmelo Cascone1e8843f2018-07-19 19:01:12 +020021 ["fabric_metadata_t.is_multicast", 1, false],
22 ["fabric_metadata_t.clone_to_cpu", 1, false],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -080023 ["fabric_metadata_t.ip_proto", 8, false],
24 ["fabric_metadata_t.l4_src_port", 16, false],
25 ["fabric_metadata_t.l4_dst_port", 16, false],
Carmelo Cascone1e8843f2018-07-19 19:01:12 +020026 ["_padding_1", 6, false]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -080027 ]
28 },
29 {
Carmelo Cascone6af4e172018-06-15 16:01:30 +020030 "name" : "standard_metadata",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -080031 "id" : 1,
32 "fields" : [
Carmelo Cascone6af4e172018-06-15 16:01:30 +020033 ["ingress_port", 9, false],
34 ["egress_spec", 9, false],
35 ["egress_port", 9, false],
36 ["clone_spec", 32, false],
37 ["instance_type", 32, false],
38 ["drop", 1, false],
39 ["recirculate_port", 16, false],
40 ["packet_length", 32, false],
41 ["enq_timestamp", 32, false],
42 ["enq_qdepth", 19, false],
43 ["deq_timedelta", 32, false],
44 ["deq_qdepth", 19, false],
45 ["ingress_global_timestamp", 48, false],
46 ["egress_global_timestamp", 48, false],
47 ["lf_field_list", 32, false],
48 ["mcast_grp", 16, false],
49 ["resubmit_flag", 32, false],
50 ["egress_rid", 16, false],
51 ["checksum_error", 1, false],
52 ["recirculate_flag", 32, false],
53 ["_padding", 5, false]
54 ]
55 },
56 {
57 "name" : "ethernet_t",
58 "id" : 2,
59 "fields" : [
Carmelo Casconeb81f4be2018-01-16 23:24:01 -080060 ["dst_addr", 48, false],
61 ["src_addr", 48, false],
62 ["ether_type", 16, false]
63 ]
64 },
65 {
66 "name" : "vlan_tag_t",
Carmelo Cascone6af4e172018-06-15 16:01:30 +020067 "id" : 3,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -080068 "fields" : [
69 ["pri", 3, false],
70 ["cfi", 1, false],
71 ["vlan_id", 12, false],
72 ["ether_type", 16, false]
73 ]
74 },
75 {
76 "name" : "mpls_t",
Carmelo Cascone6af4e172018-06-15 16:01:30 +020077 "id" : 4,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -080078 "fields" : [
79 ["label", 20, false],
80 ["tc", 3, false],
81 ["bos", 1, false],
82 ["ttl", 8, false]
83 ]
84 },
85 {
86 "name" : "ipv4_t",
Carmelo Cascone6af4e172018-06-15 16:01:30 +020087 "id" : 5,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -080088 "fields" : [
89 ["version", 4, false],
90 ["ihl", 4, false],
91 ["diffserv", 8, false],
92 ["total_len", 16, false],
93 ["identification", 16, false],
94 ["flags", 3, false],
95 ["frag_offset", 13, false],
96 ["ttl", 8, false],
97 ["protocol", 8, false],
98 ["hdr_checksum", 16, false],
99 ["src_addr", 32, false],
100 ["dst_addr", 32, false]
101 ]
102 },
103 {
104 "name" : "udp_t",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200105 "id" : 6,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800106 "fields" : [
107 ["src_port", 16, false],
108 ["dst_port", 16, false],
109 ["len", 16, false],
110 ["checksum", 16, false]
111 ]
112 },
113 {
114 "name" : "gtpu_t",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200115 "id" : 7,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800116 "fields" : [
117 ["version", 3, false],
118 ["pt", 1, false],
119 ["spare", 1, false],
120 ["ex_flag", 1, false],
121 ["seq_flag", 1, false],
122 ["npdu_flag", 1, false],
123 ["msgtype", 8, false],
124 ["msglen", 16, false],
125 ["teid", 32, false]
126 ]
127 },
128 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800129 "name" : "arp_t",
130 "id" : 8,
131 "fields" : [
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800132 ["hw_type", 16, false],
133 ["proto_type", 16, false],
134 ["hw_addr_len", 8, false],
135 ["proto_addr_len", 8, false],
136 ["opcode", 16, false]
137 ]
138 },
139 {
140 "name" : "tcp_t",
Yi Tseng27b9bc02018-04-12 14:52:40 +0800141 "id" : 9,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800142 "fields" : [
143 ["src_port", 16, false],
144 ["dst_port", 16, false],
145 ["seq_no", 32, false],
146 ["ack_no", 32, false],
147 ["data_offset", 4, false],
148 ["res", 3, false],
149 ["ecn", 3, false],
150 ["ctrl", 6, false],
151 ["window", 16, false],
152 ["checksum", 16, false],
153 ["urgent_ptr", 16, false]
154 ]
155 },
156 {
157 "name" : "icmp_t",
Yi Tseng27b9bc02018-04-12 14:52:40 +0800158 "id" : 10,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800159 "fields" : [
160 ["icmp_type", 8, false],
161 ["icmp_code", 8, false],
162 ["checksum", 16, false],
163 ["identifier", 16, false],
164 ["sequence_number", 16, false],
165 ["timestamp", 64, false]
166 ]
167 },
168 {
169 "name" : "packet_out_header_t",
Yi Tseng27b9bc02018-04-12 14:52:40 +0800170 "id" : 11,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800171 "fields" : [
172 ["egress_port", 9, false],
173 ["_pad", 7, false]
174 ]
175 },
176 {
177 "name" : "packet_in_header_t",
Yi Tseng27b9bc02018-04-12 14:52:40 +0800178 "id" : 12,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800179 "fields" : [
180 ["ingress_port", 9, false],
181 ["_pad", 7, false]
182 ]
183 },
184 {
185 "name" : "spgw_meta_t",
Yi Tseng27b9bc02018-04-12 14:52:40 +0800186 "id" : 13,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800187 "fields" : [
188 ["do_spgw", 1, 0],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800189 ["direction", 1, false],
Yi Tseng27b9bc02018-04-12 14:52:40 +0800190 ["ipv4_len", 16, false],
Carmelo Casconeb757dbc2018-01-25 17:53:17 -0800191 ["teid", 32, false],
192 ["s1u_enb_addr", 32, false],
193 ["s1u_sgw_addr", 32, false],
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200194 ["_padding_0", 6, false]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800195 ]
196 }
197 ],
198 "headers" : [
199 {
200 "name" : "scalars",
201 "id" : 0,
202 "header_type" : "scalars_0",
203 "metadata" : true,
204 "pi_omit" : true
205 },
206 {
207 "name" : "standard_metadata",
208 "id" : 1,
209 "header_type" : "standard_metadata",
210 "metadata" : true,
211 "pi_omit" : true
212 },
213 {
214 "name" : "ethernet",
215 "id" : 2,
216 "header_type" : "ethernet_t",
217 "metadata" : false,
218 "pi_omit" : true
219 },
220 {
221 "name" : "vlan_tag",
222 "id" : 3,
223 "header_type" : "vlan_tag_t",
224 "metadata" : false,
225 "pi_omit" : true
226 },
227 {
228 "name" : "mpls",
229 "id" : 4,
230 "header_type" : "mpls_t",
231 "metadata" : false,
232 "pi_omit" : true
233 },
234 {
235 "name" : "gtpu_ipv4",
236 "id" : 5,
237 "header_type" : "ipv4_t",
238 "metadata" : false,
239 "pi_omit" : true
240 },
241 {
242 "name" : "gtpu_udp",
243 "id" : 6,
244 "header_type" : "udp_t",
245 "metadata" : false,
246 "pi_omit" : true
247 },
248 {
249 "name" : "gtpu",
250 "id" : 7,
251 "header_type" : "gtpu_t",
252 "metadata" : false,
253 "pi_omit" : true
254 },
255 {
256 "name" : "ipv4",
257 "id" : 8,
258 "header_type" : "ipv4_t",
259 "metadata" : false,
260 "pi_omit" : true
261 },
262 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800263 "name" : "arp",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200264 "id" : 9,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800265 "header_type" : "arp_t",
266 "metadata" : false,
267 "pi_omit" : true
268 },
269 {
270 "name" : "tcp",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200271 "id" : 10,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800272 "header_type" : "tcp_t",
273 "metadata" : false,
274 "pi_omit" : true
275 },
276 {
277 "name" : "udp",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200278 "id" : 11,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800279 "header_type" : "udp_t",
280 "metadata" : false,
281 "pi_omit" : true
282 },
283 {
284 "name" : "icmp",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200285 "id" : 12,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800286 "header_type" : "icmp_t",
287 "metadata" : false,
288 "pi_omit" : true
289 },
290 {
291 "name" : "packet_out",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200292 "id" : 13,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800293 "header_type" : "packet_out_header_t",
294 "metadata" : false,
295 "pi_omit" : true
296 },
297 {
298 "name" : "packet_in",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200299 "id" : 14,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800300 "header_type" : "packet_in_header_t",
301 "metadata" : false,
302 "pi_omit" : true
303 },
304 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800305 "name" : "userMetadata.spgw",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200306 "id" : 15,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800307 "header_type" : "spgw_meta_t",
308 "metadata" : true,
309 "pi_omit" : true
310 }
311 ],
312 "header_stacks" : [],
313 "header_union_types" : [],
314 "header_unions" : [],
315 "header_union_stacks" : [],
316 "field_lists" : [],
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200317 "errors" : [],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800318 "enums" : [],
319 "parsers" : [
320 {
321 "name" : "parser",
322 "id" : 0,
323 "init_state" : "start",
324 "parse_states" : [
325 {
326 "name" : "start",
327 "id" : 0,
328 "parser_ops" : [],
329 "transitions" : [
330 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800331 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800332 "value" : "0x00ff",
333 "mask" : null,
334 "next_state" : "parse_packet_out"
335 },
336 {
337 "value" : "default",
338 "mask" : null,
339 "next_state" : "parse_ethernet"
340 }
341 ],
342 "transition_key" : [
343 {
344 "type" : "field",
345 "value" : ["standard_metadata", "ingress_port"]
346 }
347 ]
348 },
349 {
350 "name" : "parse_packet_out",
351 "id" : 1,
352 "parser_ops" : [
353 {
354 "parameters" : [
355 {
356 "type" : "regular",
357 "value" : "packet_out"
358 }
359 ],
360 "op" : "extract"
361 }
362 ],
363 "transitions" : [
364 {
365 "value" : "default",
366 "mask" : null,
367 "next_state" : "parse_ethernet"
368 }
369 ],
370 "transition_key" : []
371 },
372 {
373 "name" : "parse_ethernet",
374 "id" : 2,
375 "parser_ops" : [
376 {
377 "parameters" : [
378 {
379 "type" : "regular",
380 "value" : "ethernet"
381 }
382 ],
383 "op" : "extract"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800384 }
385 ],
386 "transitions" : [
387 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800388 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800389 "value" : "0x8100",
390 "mask" : null,
391 "next_state" : "parse_vlan_tag"
392 },
393 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800394 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800395 "value" : "0x8847",
396 "mask" : null,
397 "next_state" : "parse_mpls"
398 },
399 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800400 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800401 "value" : "0x0806",
402 "mask" : null,
403 "next_state" : "parse_arp"
404 },
405 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800406 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800407 "value" : "0x0800",
408 "mask" : null,
409 "next_state" : "parse_ipv4"
410 },
411 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800412 "value" : "default",
413 "mask" : null,
414 "next_state" : null
415 }
416 ],
417 "transition_key" : [
418 {
419 "type" : "field",
420 "value" : ["ethernet", "ether_type"]
421 }
422 ]
423 },
424 {
425 "name" : "parse_vlan_tag",
426 "id" : 3,
427 "parser_ops" : [
428 {
429 "parameters" : [
430 {
431 "type" : "regular",
432 "value" : "vlan_tag"
433 }
434 ],
435 "op" : "extract"
436 }
437 ],
438 "transitions" : [
439 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800440 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800441 "value" : "0x0806",
442 "mask" : null,
443 "next_state" : "parse_arp"
444 },
445 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800446 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800447 "value" : "0x0800",
448 "mask" : null,
449 "next_state" : "parse_ipv4"
450 },
451 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800452 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800453 "value" : "0x8847",
454 "mask" : null,
455 "next_state" : "parse_mpls"
456 },
457 {
458 "value" : "default",
459 "mask" : null,
460 "next_state" : null
461 }
462 ],
463 "transition_key" : [
464 {
465 "type" : "field",
466 "value" : ["vlan_tag", "ether_type"]
467 }
468 ]
469 },
470 {
471 "name" : "parse_mpls",
472 "id" : 4,
473 "parser_ops" : [
474 {
475 "parameters" : [
476 {
477 "type" : "regular",
478 "value" : "mpls"
479 }
480 ],
481 "op" : "extract"
482 },
483 {
484 "parameters" : [
485 {
486 "type" : "field",
487 "value" : ["scalars", "tmp"]
488 },
489 {
490 "type" : "lookahead",
491 "value" : [0, 4]
492 }
493 ],
494 "op" : "set"
495 }
496 ],
497 "transitions" : [
498 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800499 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800500 "value" : "0x04",
501 "mask" : null,
502 "next_state" : "parse_ipv4"
503 },
504 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800505 "value" : "default",
506 "mask" : null,
507 "next_state" : "parse_ethernet"
508 }
509 ],
510 "transition_key" : [
511 {
512 "type" : "field",
513 "value" : ["scalars", "tmp"]
514 }
515 ]
516 },
517 {
518 "name" : "parse_ipv4",
519 "id" : 5,
520 "parser_ops" : [
521 {
522 "parameters" : [
523 {
524 "type" : "regular",
525 "value" : "ipv4"
526 }
527 ],
528 "op" : "extract"
529 },
530 {
531 "parameters" : [
532 {
533 "type" : "field",
534 "value" : ["scalars", "fabric_metadata_t.ip_proto"]
535 },
536 {
537 "type" : "field",
538 "value" : ["ipv4", "protocol"]
539 }
540 ],
541 "op" : "set"
542 }
543 ],
544 "transitions" : [
545 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800546 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800547 "value" : "0x06",
548 "mask" : null,
549 "next_state" : "parse_tcp"
550 },
551 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800552 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800553 "value" : "0x11",
554 "mask" : null,
555 "next_state" : "parse_udp"
556 },
557 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800558 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800559 "value" : "0x01",
560 "mask" : null,
561 "next_state" : "parse_icmp"
562 },
563 {
564 "value" : "default",
565 "mask" : null,
566 "next_state" : null
567 }
568 ],
569 "transition_key" : [
570 {
571 "type" : "field",
572 "value" : ["ipv4", "protocol"]
573 }
574 ]
575 },
576 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800577 "name" : "parse_arp",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200578 "id" : 6,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800579 "parser_ops" : [
580 {
581 "parameters" : [
582 {
583 "type" : "regular",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800584 "value" : "arp"
585 }
586 ],
587 "op" : "extract"
588 }
589 ],
590 "transitions" : [
591 {
592 "value" : "default",
593 "mask" : null,
594 "next_state" : null
595 }
596 ],
597 "transition_key" : []
598 },
599 {
600 "name" : "parse_tcp",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200601 "id" : 7,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800602 "parser_ops" : [
603 {
604 "parameters" : [
605 {
606 "type" : "regular",
607 "value" : "tcp"
608 }
609 ],
610 "op" : "extract"
611 },
612 {
613 "parameters" : [
614 {
615 "type" : "field",
616 "value" : ["scalars", "fabric_metadata_t.l4_src_port"]
617 },
618 {
619 "type" : "field",
620 "value" : ["tcp", "src_port"]
621 }
622 ],
623 "op" : "set"
624 },
625 {
626 "parameters" : [
627 {
628 "type" : "field",
629 "value" : ["scalars", "fabric_metadata_t.l4_dst_port"]
630 },
631 {
632 "type" : "field",
633 "value" : ["tcp", "dst_port"]
634 }
635 ],
636 "op" : "set"
637 }
638 ],
639 "transitions" : [
640 {
641 "value" : "default",
642 "mask" : null,
643 "next_state" : null
644 }
645 ],
646 "transition_key" : []
647 },
648 {
649 "name" : "parse_udp",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200650 "id" : 8,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800651 "parser_ops" : [
652 {
653 "parameters" : [
654 {
655 "type" : "regular",
656 "value" : "udp"
657 }
658 ],
659 "op" : "extract"
660 },
661 {
662 "parameters" : [
663 {
664 "type" : "field",
665 "value" : ["scalars", "fabric_metadata_t.l4_src_port"]
666 },
667 {
668 "type" : "field",
669 "value" : ["udp", "src_port"]
670 }
671 ],
672 "op" : "set"
673 },
674 {
675 "parameters" : [
676 {
677 "type" : "field",
678 "value" : ["scalars", "fabric_metadata_t.l4_dst_port"]
679 },
680 {
681 "type" : "field",
682 "value" : ["udp", "dst_port"]
683 }
684 ],
685 "op" : "set"
686 }
687 ],
688 "transitions" : [
689 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800690 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800691 "value" : "0x0868",
692 "mask" : null,
693 "next_state" : "parse_gtpu"
694 },
695 {
696 "value" : "default",
697 "mask" : null,
698 "next_state" : null
699 }
700 ],
701 "transition_key" : [
702 {
703 "type" : "field",
704 "value" : ["udp", "dst_port"]
705 }
706 ]
707 },
708 {
709 "name" : "parse_icmp",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200710 "id" : 9,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800711 "parser_ops" : [
712 {
713 "parameters" : [
714 {
715 "type" : "regular",
716 "value" : "icmp"
717 }
718 ],
719 "op" : "extract"
720 }
721 ],
722 "transitions" : [
723 {
724 "value" : "default",
725 "mask" : null,
726 "next_state" : null
727 }
728 ],
729 "transition_key" : []
730 },
731 {
732 "name" : "parse_gtpu",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200733 "id" : 10,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800734 "parser_ops" : [
735 {
736 "parameters" : [
737 {
738 "type" : "regular",
739 "value" : "gtpu"
740 }
741 ],
742 "op" : "extract"
743 },
744 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800745 "parameters" : [
746 {
747 "type" : "regular",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -0800748 "value" : "gtpu_ipv4"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800749 }
750 ],
751 "op" : "extract"
752 }
753 ],
754 "transitions" : [
755 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800756 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800757 "value" : "0x06",
758 "mask" : null,
759 "next_state" : "parse_tcp"
760 },
761 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800762 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800763 "value" : "0x11",
764 "mask" : null,
765 "next_state" : "parse_udp_inner"
766 },
767 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800768 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800769 "value" : "0x01",
770 "mask" : null,
771 "next_state" : "parse_icmp"
772 },
773 {
774 "value" : "default",
775 "mask" : null,
776 "next_state" : null
777 }
778 ],
779 "transition_key" : [
780 {
781 "type" : "field",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -0800782 "value" : ["gtpu_ipv4", "protocol"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800783 }
784 ]
785 },
786 {
787 "name" : "parse_udp_inner",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200788 "id" : 11,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800789 "parser_ops" : [
790 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800791 "parameters" : [
792 {
793 "type" : "regular",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -0800794 "value" : "gtpu_udp"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800795 }
796 ],
797 "op" : "extract"
798 },
799 {
800 "parameters" : [
801 {
802 "type" : "field",
803 "value" : ["scalars", "fabric_metadata_t.l4_src_port"]
804 },
805 {
806 "type" : "field",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -0800807 "value" : ["gtpu_udp", "src_port"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800808 }
809 ],
810 "op" : "set"
811 },
812 {
813 "parameters" : [
814 {
815 "type" : "field",
816 "value" : ["scalars", "fabric_metadata_t.l4_dst_port"]
817 },
818 {
819 "type" : "field",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -0800820 "value" : ["gtpu_udp", "dst_port"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800821 }
822 ],
823 "op" : "set"
824 }
825 ],
826 "transitions" : [
827 {
828 "value" : "default",
829 "mask" : null,
830 "next_state" : null
831 }
832 ],
833 "transition_key" : []
834 }
835 ]
836 }
837 ],
Yi Tseng27b9bc02018-04-12 14:52:40 +0800838 "parse_vsets" : [],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800839 "deparsers" : [
840 {
841 "name" : "deparser",
842 "id" : 0,
843 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +0200844 "filename" : "include/parser.p4",
Yi Tseng8235a1a2018-07-24 20:57:28 +0800845 "line" : 163,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800846 "column" : 8,
847 "source_fragment" : "FabricDeparser"
848 },
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200849 "order" : ["packet_in", "ethernet", "vlan_tag", "mpls", "arp", "gtpu_ipv4", "gtpu_udp", "gtpu", "ipv4", "tcp", "udp", "icmp"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800850 }
851 ],
852 "meter_arrays" : [],
853 "counter_arrays" : [
854 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800855 "name" : "FabricIngress.spgw_ingress.ue_counter",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800856 "id" : 0,
857 "is_direct" : true,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800858 "binding" : "FabricIngress.spgw_ingress.ue_cdr_table"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800859 },
860 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800861 "name" : "FabricIngress.filtering.ingress_port_vlan_counter",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800862 "id" : 1,
863 "is_direct" : true,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800864 "binding" : "FabricIngress.filtering.ingress_port_vlan"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800865 },
866 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800867 "name" : "FabricIngress.filtering.fwd_classifier_counter",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800868 "id" : 2,
869 "is_direct" : true,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800870 "binding" : "FabricIngress.filtering.fwd_classifier"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800871 },
872 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800873 "name" : "FabricIngress.forwarding.bridging_counter",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800874 "id" : 3,
875 "is_direct" : true,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800876 "binding" : "FabricIngress.forwarding.bridging"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800877 },
878 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800879 "name" : "FabricIngress.forwarding.mpls_counter",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800880 "id" : 4,
881 "is_direct" : true,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800882 "binding" : "FabricIngress.forwarding.mpls"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800883 },
884 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800885 "name" : "FabricIngress.forwarding.unicast_v4_counter",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800886 "id" : 5,
887 "is_direct" : true,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800888 "binding" : "FabricIngress.forwarding.unicast_v4"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800889 },
890 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800891 "name" : "FabricIngress.forwarding.acl_counter",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -0800892 "id" : 6,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800893 "is_direct" : true,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800894 "binding" : "FabricIngress.forwarding.acl"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800895 },
896 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +0800897 "name" : "FabricIngress.next.vlan_meta_counter",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200898 "id" : 7,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800899 "is_direct" : true,
Yi Tseng20f9e7b2018-05-24 23:27:39 +0800900 "binding" : "FabricIngress.next.vlan_meta"
901 },
902 {
903 "name" : "FabricIngress.next.simple_counter",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200904 "id" : 8,
Yi Tseng20f9e7b2018-05-24 23:27:39 +0800905 "is_direct" : true,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800906 "binding" : "FabricIngress.next.simple"
907 },
908 {
909 "name" : "FabricIngress.next.hashed_counter",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200910 "id" : 9,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800911 "is_direct" : true,
912 "binding" : "FabricIngress.next.hashed"
913 },
914 {
Esin Karaman971fb7f2017-12-28 13:44:52 +0000915 "name" : "FabricIngress.next.multicast_counter",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200916 "id" : 10,
Esin Karaman971fb7f2017-12-28 13:44:52 +0000917 "is_direct" : true,
918 "binding" : "FabricIngress.next.multicast"
919 },
920 {
921 "name" : "FabricIngress.port_counters_control.egress_port_counter",
922 "id" : 11,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800923 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +0200924 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800925 "line" : 23,
Yi Tseng3d3956d2018-01-31 17:28:05 -0800926 "column" : 48,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800927 "source_fragment" : "egress_port_counter"
928 },
929 "size" : 511,
930 "is_direct" : false
931 },
932 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800933 "name" : "FabricIngress.port_counters_control.ingress_port_counter",
Esin Karaman971fb7f2017-12-28 13:44:52 +0000934 "id" : 12,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800935 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +0200936 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800937 "line" : 24,
Yi Tseng3d3956d2018-01-31 17:28:05 -0800938 "column" : 48,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800939 "source_fragment" : "ingress_port_counter"
940 },
941 "size" : 511,
942 "is_direct" : false
Yi Tseng47eac892018-07-11 02:17:04 +0800943 },
944 {
945 "name" : "FabricEgress.egress_next.egress_vlan_counter",
946 "id" : 13,
947 "is_direct" : true,
948 "binding" : "FabricEgress.egress_next.egress_vlan"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800949 }
950 ],
951 "register_arrays" : [],
952 "calculations" : [
953 {
954 "name" : "calc",
955 "id" : 0,
956 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +0200957 "filename" : "include/checksum.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800958 "line" : 28,
959 "column" : 8,
960 "source_fragment" : "update_checksum(hdr.ipv4.isValid(), ..."
961 },
962 "algo" : "csum16",
963 "input" : [
964 {
965 "type" : "field",
966 "value" : ["ipv4", "version"]
967 },
968 {
969 "type" : "field",
970 "value" : ["ipv4", "ihl"]
971 },
972 {
973 "type" : "field",
974 "value" : ["ipv4", "diffserv"]
975 },
976 {
977 "type" : "field",
978 "value" : ["ipv4", "total_len"]
979 },
980 {
981 "type" : "field",
982 "value" : ["ipv4", "identification"]
983 },
984 {
985 "type" : "field",
986 "value" : ["ipv4", "flags"]
987 },
988 {
989 "type" : "field",
990 "value" : ["ipv4", "frag_offset"]
991 },
992 {
993 "type" : "field",
994 "value" : ["ipv4", "ttl"]
995 },
996 {
997 "type" : "field",
998 "value" : ["ipv4", "protocol"]
999 },
1000 {
1001 "type" : "field",
1002 "value" : ["ipv4", "src_addr"]
1003 },
1004 {
1005 "type" : "field",
1006 "value" : ["ipv4", "dst_addr"]
1007 }
1008 ]
1009 },
1010 {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001011 "name" : "calc_0",
1012 "id" : 1,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001013 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001014 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02001015 "line" : 291,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001016 "column" : 8,
1017 "source_fragment" : "update_checksum(gtpu_ipv4.isValid(), ..."
1018 },
1019 "algo" : "csum16",
1020 "input" : [
1021 {
1022 "type" : "field",
1023 "value" : ["gtpu_ipv4", "version"]
1024 },
1025 {
1026 "type" : "field",
1027 "value" : ["gtpu_ipv4", "ihl"]
1028 },
1029 {
1030 "type" : "field",
1031 "value" : ["gtpu_ipv4", "diffserv"]
1032 },
1033 {
1034 "type" : "field",
1035 "value" : ["gtpu_ipv4", "total_len"]
1036 },
1037 {
1038 "type" : "field",
1039 "value" : ["gtpu_ipv4", "identification"]
1040 },
1041 {
1042 "type" : "field",
1043 "value" : ["gtpu_ipv4", "flags"]
1044 },
1045 {
1046 "type" : "field",
1047 "value" : ["gtpu_ipv4", "frag_offset"]
1048 },
1049 {
1050 "type" : "field",
1051 "value" : ["gtpu_ipv4", "ttl"]
1052 },
1053 {
1054 "type" : "field",
1055 "value" : ["gtpu_ipv4", "protocol"]
1056 },
1057 {
1058 "type" : "field",
1059 "value" : ["gtpu_ipv4", "src_addr"]
1060 },
1061 {
1062 "type" : "field",
1063 "value" : ["gtpu_ipv4", "dst_addr"]
1064 }
1065 ]
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001066 },
1067 {
1068 "name" : "calc_1",
1069 "id" : 2,
1070 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001071 "filename" : "include/checksum.p4",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001072 "line" : 56,
1073 "column" : 8,
1074 "source_fragment" : "verify_checksum(hdr.ipv4.isValid(), ..."
1075 },
1076 "algo" : "csum16",
1077 "input" : [
1078 {
1079 "type" : "field",
1080 "value" : ["ipv4", "version"]
1081 },
1082 {
1083 "type" : "field",
1084 "value" : ["ipv4", "ihl"]
1085 },
1086 {
1087 "type" : "field",
1088 "value" : ["ipv4", "diffserv"]
1089 },
1090 {
1091 "type" : "field",
1092 "value" : ["ipv4", "total_len"]
1093 },
1094 {
1095 "type" : "field",
1096 "value" : ["ipv4", "identification"]
1097 },
1098 {
1099 "type" : "field",
1100 "value" : ["ipv4", "flags"]
1101 },
1102 {
1103 "type" : "field",
1104 "value" : ["ipv4", "frag_offset"]
1105 },
1106 {
1107 "type" : "field",
1108 "value" : ["ipv4", "ttl"]
1109 },
1110 {
1111 "type" : "field",
1112 "value" : ["ipv4", "protocol"]
1113 },
1114 {
1115 "type" : "field",
1116 "value" : ["ipv4", "src_addr"]
1117 },
1118 {
1119 "type" : "field",
1120 "value" : ["ipv4", "dst_addr"]
1121 }
1122 ]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001123 }
1124 ],
1125 "learn_lists" : [],
1126 "actions" : [
1127 {
1128 "name" : "NoAction",
1129 "id" : 0,
1130 "runtime_data" : [],
1131 "primitives" : []
1132 },
1133 {
1134 "name" : "NoAction",
1135 "id" : 1,
1136 "runtime_data" : [],
1137 "primitives" : []
1138 },
1139 {
1140 "name" : "NoAction",
1141 "id" : 2,
1142 "runtime_data" : [],
1143 "primitives" : []
1144 },
1145 {
1146 "name" : "NoAction",
1147 "id" : 3,
1148 "runtime_data" : [],
1149 "primitives" : []
1150 },
1151 {
1152 "name" : "NoAction",
1153 "id" : 4,
1154 "runtime_data" : [],
1155 "primitives" : []
1156 },
1157 {
1158 "name" : "NoAction",
1159 "id" : 5,
1160 "runtime_data" : [],
1161 "primitives" : []
1162 },
1163 {
1164 "name" : "NoAction",
1165 "id" : 6,
1166 "runtime_data" : [],
1167 "primitives" : []
1168 },
1169 {
1170 "name" : "NoAction",
1171 "id" : 7,
1172 "runtime_data" : [],
1173 "primitives" : []
1174 },
1175 {
1176 "name" : "NoAction",
1177 "id" : 8,
1178 "runtime_data" : [],
1179 "primitives" : []
1180 },
1181 {
Esin Karaman971fb7f2017-12-28 13:44:52 +00001182 "name" : "NoAction",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001183 "id" : 9,
1184 "runtime_data" : [],
1185 "primitives" : []
1186 },
1187 {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001188 "name" : "nop",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001189 "id" : 10,
1190 "runtime_data" : [],
1191 "primitives" : []
1192 },
1193 {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001194 "name" : "nop",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001195 "id" : 11,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001196 "runtime_data" : [],
Yi Tseng27b9bc02018-04-12 14:52:40 +08001197 "primitives" : []
1198 },
1199 {
Esin Karaman971fb7f2017-12-28 13:44:52 +00001200 "name" : "nop",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001201 "id" : 12,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001202 "runtime_data" : [],
Esin Karaman971fb7f2017-12-28 13:44:52 +00001203 "primitives" : []
1204 },
1205 {
Carmelo Casconea5400af2018-07-17 22:11:54 +02001206 "name" : "drop_now",
Esin Karaman971fb7f2017-12-28 13:44:52 +00001207 "id" : 13,
1208 "runtime_data" : [],
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001209 "primitives" : [
1210 {
1211 "op" : "drop",
1212 "parameters" : [],
1213 "source_info" : {
Carmelo Casconea5400af2018-07-17 22:11:54 +02001214 "filename" : "include/control/../action.p4",
1215 "line" : 24,
1216 "column" : 4,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001217 "source_fragment" : "mark_to_drop()"
1218 }
1219 },
1220 {
1221 "op" : "exit",
1222 "parameters" : [],
1223 "source_info" : {
Carmelo Casconea5400af2018-07-17 22:11:54 +02001224 "filename" : "include/control/../action.p4",
1225 "line" : 25,
1226 "column" : 4,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001227 "source_fragment" : "exit"
1228 }
1229 }
1230 ]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001231 },
1232 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001233 "name" : "FabricIngress.spgw_ingress.gtpu_decap",
Esin Karaman971fb7f2017-12-28 13:44:52 +00001234 "id" : 14,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001235 "runtime_data" : [],
1236 "primitives" : [
1237 {
1238 "op" : "remove_header",
1239 "parameters" : [
1240 {
1241 "type" : "header",
1242 "value" : "gtpu_ipv4"
1243 }
1244 ],
1245 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001246 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02001247 "line" : 33,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001248 "column" : 8,
1249 "source_fragment" : "gtpu_ipv4.setInvalid()"
1250 }
1251 },
1252 {
1253 "op" : "remove_header",
1254 "parameters" : [
1255 {
1256 "type" : "header",
1257 "value" : "gtpu_udp"
1258 }
1259 ],
1260 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001261 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02001262 "line" : 34,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001263 "column" : 8,
1264 "source_fragment" : "gtpu_udp.setInvalid()"
1265 }
1266 },
1267 {
1268 "op" : "remove_header",
1269 "parameters" : [
1270 {
1271 "type" : "header",
1272 "value" : "gtpu"
1273 }
1274 ],
1275 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001276 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02001277 "line" : 35,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001278 "column" : 8,
1279 "source_fragment" : "gtpu.setInvalid()"
1280 }
1281 }
1282 ]
1283 },
1284 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001285 "name" : "FabricIngress.spgw_ingress.set_dl_sess_info",
Esin Karaman971fb7f2017-12-28 13:44:52 +00001286 "id" : 15,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001287 "runtime_data" : [
1288 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001289 "name" : "teid",
1290 "bitwidth" : 32
1291 },
1292 {
1293 "name" : "s1u_enb_addr",
1294 "bitwidth" : 32
1295 },
1296 {
1297 "name" : "s1u_sgw_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001298 "bitwidth" : 32
1299 }
1300 ],
1301 "primitives" : [
1302 {
1303 "op" : "assign",
1304 "parameters" : [
1305 {
1306 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08001307 "value" : ["userMetadata.spgw", "teid"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001308 },
1309 {
1310 "type" : "runtime_data",
1311 "value" : 0
1312 }
1313 ],
1314 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001315 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02001316 "line" : 41,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001317 "column" : 8,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001318 "source_fragment" : "spgw_meta.teid = teid"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001319 }
1320 },
1321 {
1322 "op" : "assign",
1323 "parameters" : [
1324 {
1325 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08001326 "value" : ["userMetadata.spgw", "s1u_enb_addr"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001327 },
1328 {
1329 "type" : "runtime_data",
1330 "value" : 1
1331 }
1332 ],
1333 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001334 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02001335 "line" : 42,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001336 "column" : 8,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001337 "source_fragment" : "spgw_meta.s1u_enb_addr = s1u_enb_addr"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001338 }
1339 },
1340 {
1341 "op" : "assign",
1342 "parameters" : [
1343 {
1344 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08001345 "value" : ["userMetadata.spgw", "s1u_sgw_addr"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001346 },
1347 {
1348 "type" : "runtime_data",
1349 "value" : 2
1350 }
1351 ],
1352 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001353 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02001354 "line" : 43,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001355 "column" : 8,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001356 "source_fragment" : "spgw_meta.s1u_sgw_addr = s1u_sgw_addr"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001357 }
1358 }
1359 ]
1360 },
1361 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001362 "name" : "FabricIngress.spgw_ingress.update_ue_cdr",
Esin Karaman971fb7f2017-12-28 13:44:52 +00001363 "id" : 16,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001364 "runtime_data" : [],
1365 "primitives" : []
1366 },
1367 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001368 "name" : "FabricIngress.filtering.drop",
Esin Karaman971fb7f2017-12-28 13:44:52 +00001369 "id" : 17,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001370 "runtime_data" : [],
1371 "primitives" : [
1372 {
1373 "op" : "drop",
1374 "parameters" : [],
1375 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001376 "filename" : "include/control/filtering.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001377 "line" : 37,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001378 "column" : 8,
1379 "source_fragment" : "mark_to_drop()"
1380 }
1381 }
1382 ]
1383 },
1384 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001385 "name" : "FabricIngress.filtering.set_vlan",
Esin Karaman971fb7f2017-12-28 13:44:52 +00001386 "id" : 18,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001387 "runtime_data" : [
1388 {
1389 "name" : "new_vlan_id",
1390 "bitwidth" : 12
1391 }
1392 ],
1393 "primitives" : [
1394 {
1395 "op" : "assign",
1396 "parameters" : [
1397 {
1398 "type" : "field",
1399 "value" : ["vlan_tag", "vlan_id"]
1400 },
1401 {
1402 "type" : "runtime_data",
1403 "value" : 0
1404 }
1405 ],
1406 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001407 "filename" : "include/control/filtering.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001408 "line" : 42,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001409 "column" : 8,
1410 "source_fragment" : "hdr.vlan_tag.vlan_id = new_vlan_id"
1411 }
1412 }
1413 ]
1414 },
1415 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001416 "name" : "FabricIngress.filtering.push_internal_vlan",
Esin Karaman971fb7f2017-12-28 13:44:52 +00001417 "id" : 19,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001418 "runtime_data" : [
1419 {
1420 "name" : "new_vlan_id",
1421 "bitwidth" : 12
1422 }
1423 ],
1424 "primitives" : [
1425 {
1426 "op" : "add_header",
1427 "parameters" : [
1428 {
1429 "type" : "header",
1430 "value" : "vlan_tag"
1431 }
1432 ],
1433 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001434 "filename" : "include/control/filtering.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001435 "line" : 49,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001436 "column" : 8,
1437 "source_fragment" : "hdr.vlan_tag.setValid()"
1438 }
1439 },
1440 {
1441 "op" : "assign",
1442 "parameters" : [
1443 {
1444 "type" : "field",
1445 "value" : ["vlan_tag", "cfi"]
1446 },
1447 {
1448 "type" : "hexstr",
1449 "value" : "0x00"
1450 }
1451 ],
1452 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001453 "filename" : "include/control/filtering.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001454 "line" : 50,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001455 "column" : 8,
1456 "source_fragment" : "hdr.vlan_tag.cfi = 0"
1457 }
1458 },
1459 {
1460 "op" : "assign",
1461 "parameters" : [
1462 {
1463 "type" : "field",
1464 "value" : ["vlan_tag", "pri"]
1465 },
1466 {
1467 "type" : "hexstr",
1468 "value" : "0x00"
1469 }
1470 ],
1471 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001472 "filename" : "include/control/filtering.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001473 "line" : 51,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001474 "column" : 8,
1475 "source_fragment" : "hdr.vlan_tag.pri = 0"
1476 }
1477 },
1478 {
1479 "op" : "assign",
1480 "parameters" : [
1481 {
1482 "type" : "field",
1483 "value" : ["vlan_tag", "ether_type"]
1484 },
1485 {
1486 "type" : "field",
1487 "value" : ["ethernet", "ether_type"]
1488 }
1489 ],
1490 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001491 "filename" : "include/control/filtering.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001492 "line" : 52,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001493 "column" : 8,
1494 "source_fragment" : "hdr.vlan_tag.ether_type = hdr.ethernet.ether_type"
1495 }
1496 },
1497 {
1498 "op" : "assign",
1499 "parameters" : [
1500 {
1501 "type" : "field",
1502 "value" : ["ethernet", "ether_type"]
1503 },
1504 {
1505 "type" : "hexstr",
1506 "value" : "0x8100"
1507 }
1508 ],
1509 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001510 "filename" : "include/control/../define.p4",
Carmelo Cascone228092b2018-06-15 20:41:10 +02001511 "line" : 66,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001512 "column" : 31,
1513 "source_fragment" : "0x8100; ..."
1514 }
1515 },
1516 {
1517 "op" : "assign",
1518 "parameters" : [
1519 {
1520 "type" : "field",
1521 "value" : ["vlan_tag", "vlan_id"]
1522 },
1523 {
1524 "type" : "runtime_data",
1525 "value" : 0
1526 }
1527 ],
1528 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001529 "filename" : "include/control/filtering.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001530 "line" : 54,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001531 "column" : 8,
Yi Tseng47eac892018-07-11 02:17:04 +08001532 "source_fragment" : "hdr.vlan_tag.vlan_id = new_vlan_id"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001533 }
1534 },
1535 {
1536 "op" : "assign",
1537 "parameters" : [
1538 {
1539 "type" : "field",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001540 "value" : ["scalars", "fabric_metadata_t.pop_vlan_when_packet_in"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001541 },
1542 {
1543 "type" : "expression",
1544 "value" : {
1545 "type" : "expression",
1546 "value" : {
1547 "op" : "b2d",
1548 "left" : null,
1549 "right" : {
1550 "type" : "bool",
1551 "value" : true
1552 }
1553 }
1554 }
1555 }
1556 ],
1557 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001558 "filename" : "include/control/filtering.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001559 "line" : 57,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001560 "column" : 8,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001561 "source_fragment" : "fabric_metadata.pop_vlan_when_packet_in = true"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001562 }
1563 }
1564 ]
1565 },
1566 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001567 "name" : "FabricIngress.filtering.set_forwarding_type",
Esin Karaman971fb7f2017-12-28 13:44:52 +00001568 "id" : 20,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001569 "runtime_data" : [
1570 {
1571 "name" : "fwd_type",
1572 "bitwidth" : 3
1573 }
1574 ],
1575 "primitives" : [
1576 {
1577 "op" : "assign",
1578 "parameters" : [
1579 {
1580 "type" : "field",
1581 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
1582 },
1583 {
1584 "type" : "runtime_data",
1585 "value" : 0
1586 }
1587 ],
1588 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001589 "filename" : "include/control/filtering.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001590 "line" : 94,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001591 "column" : 8,
1592 "source_fragment" : "fabric_metadata.fwd_type = fwd_type"
1593 }
1594 }
1595 ]
1596 },
1597 {
Yi Tseng47eac892018-07-11 02:17:04 +08001598 "name" : "FabricIngress.forwarding.set_next_id_bridging",
Esin Karaman971fb7f2017-12-28 13:44:52 +00001599 "id" : 21,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001600 "runtime_data" : [
1601 {
1602 "name" : "next_id",
1603 "bitwidth" : 32
1604 }
1605 ],
1606 "primitives" : [
1607 {
1608 "op" : "assign",
1609 "parameters" : [
1610 {
1611 "type" : "field",
1612 "value" : ["scalars", "fabric_metadata_t.next_id"]
1613 },
1614 {
1615 "type" : "runtime_data",
1616 "value" : 0
1617 }
1618 ],
1619 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001620 "filename" : "include/control/forwarding.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001621 "line" : 37,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001622 "column" : 8,
1623 "source_fragment" : "fabric_metadata.next_id = next_id"
1624 }
1625 }
1626 ]
1627 },
1628 {
Yi Tseng47eac892018-07-11 02:17:04 +08001629 "name" : "FabricIngress.forwarding.pop_mpls_and_next",
1630 "id" : 22,
1631 "runtime_data" : [
1632 {
1633 "name" : "next_id",
1634 "bitwidth" : 32
1635 }
1636 ],
1637 "primitives" : [
1638 {
1639 "op" : "remove_header",
1640 "parameters" : [
1641 {
1642 "type" : "header",
1643 "value" : "mpls"
1644 }
1645 ],
1646 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001647 "filename" : "include/control/forwarding.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001648 "line" : 60,
1649 "column" : 8,
1650 "source_fragment" : "hdr.mpls.setInvalid()"
1651 }
1652 },
1653 {
1654 "op" : "assign",
1655 "parameters" : [
1656 {
1657 "type" : "field",
1658 "value" : ["scalars", "fabric_metadata_t.next_id"]
1659 },
1660 {
1661 "type" : "runtime_data",
1662 "value" : 0
1663 }
1664 ],
1665 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001666 "filename" : "include/control/forwarding.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001667 "line" : 61,
1668 "column" : 8,
1669 "source_fragment" : "fabric_metadata.next_id = next_id"
1670 }
1671 }
1672 ]
1673 },
1674 {
1675 "name" : "FabricIngress.forwarding.set_next_id_unicast_v4",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001676 "id" : 23,
Yi Tseng27b9bc02018-04-12 14:52:40 +08001677 "runtime_data" : [
1678 {
1679 "name" : "next_id",
1680 "bitwidth" : 32
1681 }
1682 ],
1683 "primitives" : [
1684 {
1685 "op" : "assign",
1686 "parameters" : [
1687 {
1688 "type" : "field",
1689 "value" : ["scalars", "fabric_metadata_t.next_id"]
1690 },
1691 {
1692 "type" : "runtime_data",
1693 "value" : 0
1694 }
1695 ],
1696 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001697 "filename" : "include/control/forwarding.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001698 "line" : 83,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001699 "column" : 8,
1700 "source_fragment" : "fabric_metadata.next_id = next_id"
1701 }
1702 }
1703 ]
1704 },
1705 {
Yi Tseng47eac892018-07-11 02:17:04 +08001706 "name" : "FabricIngress.forwarding.set_next_id_acl",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001707 "id" : 24,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001708 "runtime_data" : [
1709 {
1710 "name" : "next_id",
1711 "bitwidth" : 32
1712 }
1713 ],
1714 "primitives" : [
1715 {
Esin Karaman971fb7f2017-12-28 13:44:52 +00001716 "op" : "assign",
1717 "parameters" : [
1718 {
1719 "type" : "field",
1720 "value" : ["scalars", "fabric_metadata_t.next_id"]
1721 },
1722 {
1723 "type" : "runtime_data",
1724 "value" : 0
1725 }
1726 ],
1727 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001728 "filename" : "include/control/forwarding.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001729 "line" : 105,
Esin Karaman971fb7f2017-12-28 13:44:52 +00001730 "column" : 8,
1731 "source_fragment" : "fabric_metadata.next_id = next_id"
1732 }
1733 }
1734 ]
1735 },
1736 {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001737 "name" : "FabricIngress.forwarding.punt_to_cpu",
Esin Karaman971fb7f2017-12-28 13:44:52 +00001738 "id" : 25,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001739 "runtime_data" : [],
1740 "primitives" : [
1741 {
1742 "op" : "assign",
1743 "parameters" : [
1744 {
1745 "type" : "field",
1746 "value" : ["standard_metadata", "egress_spec"]
1747 },
1748 {
1749 "type" : "hexstr",
1750 "value" : "0x00ff"
1751 }
1752 ],
1753 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001754 "filename" : "include/control/forwarding.p4",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001755 "line" : 111,
Carmelo Casconeb531b682018-01-30 17:55:56 -08001756 "column" : 8,
1757 "source_fragment" : "standard_metadata.egress_spec = 255"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001758 }
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001759 },
1760 {
1761 "op" : "exit",
1762 "parameters" : [],
1763 "source_info" : {
1764 "filename" : "include/control/forwarding.p4",
1765 "line" : 113,
1766 "column" : 8,
1767 "source_fragment" : "exit"
1768 }
1769 }
1770 ]
1771 },
1772 {
1773 "name" : "FabricIngress.forwarding.clone_to_cpu",
1774 "id" : 26,
1775 "runtime_data" : [],
1776 "primitives" : [
1777 {
1778 "op" : "assign",
1779 "parameters" : [
1780 {
1781 "type" : "field",
1782 "value" : ["scalars", "fabric_metadata_t.clone_to_cpu"]
1783 },
1784 {
1785 "type" : "expression",
1786 "value" : {
1787 "type" : "expression",
1788 "value" : {
1789 "op" : "b2d",
1790 "left" : null,
1791 "right" : {
1792 "type" : "bool",
1793 "value" : true
1794 }
1795 }
1796 }
1797 }
1798 ],
1799 "source_info" : {
1800 "filename" : "include/control/forwarding.p4",
1801 "line" : 118,
1802 "column" : 8,
1803 "source_fragment" : "fabric_metadata.clone_to_cpu = true"
1804 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001805 }
1806 ]
1807 },
1808 {
Yi Tseng47eac892018-07-11 02:17:04 +08001809 "name" : "FabricIngress.forwarding.drop",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001810 "id" : 27,
Yi Tseng47eac892018-07-11 02:17:04 +08001811 "runtime_data" : [],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001812 "primitives" : [
1813 {
Yi Tseng47eac892018-07-11 02:17:04 +08001814 "op" : "drop",
1815 "parameters" : [],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001816 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001817 "filename" : "include/control/forwarding.p4",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001818 "line" : 123,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001819 "column" : 8,
Yi Tseng47eac892018-07-11 02:17:04 +08001820 "source_fragment" : "mark_to_drop()"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001821 }
1822 }
1823 ]
1824 },
1825 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001826 "name" : "FabricIngress.next.set_vlan",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001827 "id" : 28,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001828 "runtime_data" : [
1829 {
1830 "name" : "new_vlan_id",
1831 "bitwidth" : 12
1832 }
1833 ],
1834 "primitives" : [
1835 {
1836 "op" : "assign",
1837 "parameters" : [
1838 {
1839 "type" : "field",
1840 "value" : ["vlan_tag", "vlan_id"]
1841 },
1842 {
1843 "type" : "runtime_data",
1844 "value" : 0
1845 }
1846 ],
1847 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001848 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001849 "line" : 61,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001850 "column" : 8,
1851 "source_fragment" : "hdr.vlan_tag.vlan_id = new_vlan_id"
1852 }
1853 }
1854 ]
1855 },
1856 {
Yi Tseng47eac892018-07-11 02:17:04 +08001857 "name" : "FabricIngress.next.output_simple",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001858 "id" : 29,
Yi Tseng47eac892018-07-11 02:17:04 +08001859 "runtime_data" : [
1860 {
1861 "name" : "port_num",
1862 "bitwidth" : 9
1863 }
1864 ],
1865 "primitives" : [
1866 {
1867 "op" : "assign",
1868 "parameters" : [
1869 {
1870 "type" : "field",
1871 "value" : ["standard_metadata", "egress_spec"]
1872 },
1873 {
1874 "type" : "runtime_data",
1875 "value" : 0
1876 }
1877 ],
1878 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001879 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001880 "line" : 85,
1881 "column" : 8,
1882 "source_fragment" : "standard_metadata.egress_spec = port_num"
1883 }
1884 }
1885 ]
1886 },
1887 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001888 "name" : "FabricIngress.next.set_vlan_output",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001889 "id" : 30,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001890 "runtime_data" : [
1891 {
1892 "name" : "new_vlan_id",
1893 "bitwidth" : 12
1894 },
1895 {
1896 "name" : "port_num",
1897 "bitwidth" : 9
1898 }
1899 ],
1900 "primitives" : [
1901 {
1902 "op" : "assign",
1903 "parameters" : [
1904 {
1905 "type" : "field",
1906 "value" : ["vlan_tag", "vlan_id"]
1907 },
1908 {
1909 "type" : "runtime_data",
1910 "value" : 0
1911 }
1912 ],
1913 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001914 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001915 "line" : 90,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001916 "column" : 8,
1917 "source_fragment" : "hdr.vlan_tag.vlan_id = new_vlan_id"
1918 }
1919 },
1920 {
1921 "op" : "assign",
1922 "parameters" : [
1923 {
1924 "type" : "field",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001925 "value" : ["standard_metadata", "egress_spec"]
1926 },
1927 {
1928 "type" : "runtime_data",
1929 "value" : 1
1930 }
1931 ],
1932 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001933 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001934 "line" : 85,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001935 "column" : 8,
1936 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
1937 }
1938 }
1939 ]
1940 },
1941 {
Yi Tseng47eac892018-07-11 02:17:04 +08001942 "name" : "FabricIngress.next.l3_routing_simple",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001943 "id" : 31,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001944 "runtime_data" : [
1945 {
1946 "name" : "port_num",
1947 "bitwidth" : 9
1948 },
1949 {
1950 "name" : "smac",
1951 "bitwidth" : 48
1952 },
1953 {
1954 "name" : "dmac",
1955 "bitwidth" : 48
1956 }
1957 ],
1958 "primitives" : [
1959 {
1960 "op" : "assign",
1961 "parameters" : [
1962 {
1963 "type" : "field",
1964 "value" : ["ethernet", "src_addr"]
1965 },
1966 {
1967 "type" : "runtime_data",
1968 "value" : 1
1969 }
1970 ],
1971 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001972 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001973 "line" : 37,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001974 "column" : 8,
1975 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
1976 }
1977 },
1978 {
1979 "op" : "assign",
1980 "parameters" : [
1981 {
1982 "type" : "field",
1983 "value" : ["ethernet", "dst_addr"]
1984 },
1985 {
1986 "type" : "runtime_data",
1987 "value" : 2
1988 }
1989 ],
1990 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001991 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001992 "line" : 41,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001993 "column" : 8,
1994 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
1995 }
1996 },
1997 {
1998 "op" : "assign",
1999 "parameters" : [
2000 {
2001 "type" : "field",
2002 "value" : ["standard_metadata", "egress_spec"]
2003 },
2004 {
2005 "type" : "runtime_data",
2006 "value" : 0
2007 }
2008 ],
2009 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002010 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002011 "line" : 85,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002012 "column" : 8,
2013 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2014 }
2015 }
2016 ]
2017 },
2018 {
Yi Tseng47eac892018-07-11 02:17:04 +08002019 "name" : "FabricIngress.next.mpls_routing_v4_simple",
Yi Tseng47eac892018-07-11 02:17:04 +08002020 "id" : 32,
2021 "runtime_data" : [
2022 {
2023 "name" : "port_num",
2024 "bitwidth" : 9
2025 },
2026 {
2027 "name" : "smac",
2028 "bitwidth" : 48
2029 },
2030 {
2031 "name" : "dmac",
2032 "bitwidth" : 48
2033 },
2034 {
2035 "name" : "label",
2036 "bitwidth" : 20
2037 }
2038 ],
2039 "primitives" : [
2040 {
2041 "op" : "assign",
2042 "parameters" : [
2043 {
2044 "type" : "field",
2045 "value" : ["ethernet", "src_addr"]
2046 },
2047 {
2048 "type" : "runtime_data",
2049 "value" : 1
2050 }
2051 ],
2052 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002053 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002054 "line" : 37,
2055 "column" : 8,
2056 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2057 }
2058 },
2059 {
2060 "op" : "assign",
2061 "parameters" : [
2062 {
2063 "type" : "field",
2064 "value" : ["ethernet", "dst_addr"]
2065 },
2066 {
2067 "type" : "runtime_data",
2068 "value" : 2
2069 }
2070 ],
2071 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002072 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002073 "line" : 41,
2074 "column" : 8,
2075 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2076 }
2077 },
2078 {
2079 "op" : "assign",
2080 "parameters" : [
2081 {
2082 "type" : "field",
2083 "value" : ["standard_metadata", "egress_spec"]
2084 },
2085 {
2086 "type" : "runtime_data",
2087 "value" : 0
2088 }
2089 ],
2090 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002091 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002092 "line" : 85,
2093 "column" : 8,
2094 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2095 }
2096 },
2097 {
2098 "op" : "add_header",
2099 "parameters" : [
2100 {
2101 "type" : "header",
2102 "value" : "mpls"
2103 }
2104 ],
2105 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002106 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002107 "line" : 46,
2108 "column" : 8,
2109 "source_fragment" : "hdr.mpls.setValid()"
2110 }
2111 },
2112 {
2113 "op" : "assign",
2114 "parameters" : [
2115 {
2116 "type" : "field",
2117 "value" : ["vlan_tag", "ether_type"]
2118 },
2119 {
2120 "type" : "hexstr",
2121 "value" : "0x8847"
2122 }
2123 ],
2124 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002125 "filename" : "include/control/../define.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002126 "line" : 67,
2127 "column" : 31,
2128 "source_fragment" : "0x8847; ..."
2129 }
2130 },
2131 {
2132 "op" : "assign",
2133 "parameters" : [
2134 {
2135 "type" : "field",
2136 "value" : ["mpls", "label"]
2137 },
2138 {
2139 "type" : "runtime_data",
2140 "value" : 3
2141 }
2142 ],
2143 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002144 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002145 "line" : 48,
2146 "column" : 8,
2147 "source_fragment" : "hdr.mpls.label = label; ..."
2148 }
2149 },
2150 {
2151 "op" : "assign",
2152 "parameters" : [
2153 {
2154 "type" : "field",
2155 "value" : ["mpls", "tc"]
2156 },
2157 {
2158 "type" : "hexstr",
2159 "value" : "0x00"
2160 }
2161 ],
2162 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002163 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002164 "line" : 49,
2165 "column" : 8,
2166 "source_fragment" : "hdr.mpls.tc = tc; ..."
2167 }
2168 },
2169 {
2170 "op" : "assign",
2171 "parameters" : [
2172 {
2173 "type" : "field",
2174 "value" : ["mpls", "bos"]
2175 },
2176 {
2177 "type" : "hexstr",
2178 "value" : "0x01"
2179 }
2180 ],
2181 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002182 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002183 "line" : 50,
2184 "column" : 8,
2185 "source_fragment" : "hdr.mpls.bos = 1w1"
2186 }
2187 },
2188 {
2189 "op" : "assign",
2190 "parameters" : [
2191 {
2192 "type" : "field",
2193 "value" : ["mpls", "ttl"]
2194 },
2195 {
2196 "type" : "hexstr",
2197 "value" : "0x40"
2198 }
2199 ],
2200 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002201 "filename" : "include/control/../define.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002202 "line" : 87,
2203 "column" : 32,
2204 "source_fragment" : "64; ..."
2205 }
Esin Karaman971fb7f2017-12-28 13:44:52 +00002206 }
2207 ]
2208 },
2209 {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002210 "name" : "FabricIngress.next.mpls_routing_v6_simple",
Yi Tseng47eac892018-07-11 02:17:04 +08002211 "id" : 33,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002212 "runtime_data" : [
2213 {
2214 "name" : "port_num",
2215 "bitwidth" : 9
2216 },
2217 {
2218 "name" : "smac",
2219 "bitwidth" : 48
2220 },
2221 {
2222 "name" : "dmac",
2223 "bitwidth" : 48
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002224 },
2225 {
Esin Karaman971fb7f2017-12-28 13:44:52 +00002226 "name" : "label",
2227 "bitwidth" : 20
2228 }
2229 ],
2230 "primitives" : [
2231 {
2232 "op" : "assign",
2233 "parameters" : [
2234 {
2235 "type" : "field",
2236 "value" : ["ethernet", "src_addr"]
2237 },
2238 {
2239 "type" : "runtime_data",
2240 "value" : 1
2241 }
2242 ],
2243 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002244 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002245 "line" : 37,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002246 "column" : 8,
2247 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2248 }
2249 },
2250 {
2251 "op" : "assign",
2252 "parameters" : [
2253 {
2254 "type" : "field",
2255 "value" : ["ethernet", "dst_addr"]
2256 },
2257 {
2258 "type" : "runtime_data",
2259 "value" : 2
2260 }
2261 ],
2262 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002263 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002264 "line" : 41,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002265 "column" : 8,
2266 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2267 }
2268 },
2269 {
2270 "op" : "assign",
2271 "parameters" : [
2272 {
2273 "type" : "field",
2274 "value" : ["standard_metadata", "egress_spec"]
2275 },
2276 {
2277 "type" : "runtime_data",
2278 "value" : 0
2279 }
2280 ],
2281 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002282 "filename" : "include/control/next.p4",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002283 "line" : 85,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002284 "column" : 8,
2285 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2286 }
2287 },
2288 {
2289 "op" : "add_header",
2290 "parameters" : [
2291 {
2292 "type" : "header",
2293 "value" : "mpls"
2294 }
2295 ],
2296 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002297 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002298 "line" : 46,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002299 "column" : 8,
2300 "source_fragment" : "hdr.mpls.setValid()"
2301 }
2302 },
2303 {
2304 "op" : "assign",
2305 "parameters" : [
2306 {
2307 "type" : "field",
2308 "value" : ["vlan_tag", "ether_type"]
2309 },
2310 {
2311 "type" : "hexstr",
2312 "value" : "0x8847"
2313 }
2314 ],
2315 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002316 "filename" : "include/control/../define.p4",
Esin Karaman971fb7f2017-12-28 13:44:52 +00002317 "line" : 67,
2318 "column" : 31,
2319 "source_fragment" : "0x8847; ..."
2320 }
2321 },
2322 {
2323 "op" : "assign",
2324 "parameters" : [
2325 {
2326 "type" : "field",
2327 "value" : ["mpls", "label"]
2328 },
2329 {
2330 "type" : "runtime_data",
2331 "value" : 3
2332 }
2333 ],
2334 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002335 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002336 "line" : 48,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002337 "column" : 8,
2338 "source_fragment" : "hdr.mpls.label = label; ..."
2339 }
2340 },
2341 {
2342 "op" : "assign",
2343 "parameters" : [
2344 {
2345 "type" : "field",
2346 "value" : ["mpls", "tc"]
2347 },
2348 {
2349 "type" : "hexstr",
2350 "value" : "0x00"
2351 }
2352 ],
2353 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002354 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002355 "line" : 49,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002356 "column" : 8,
2357 "source_fragment" : "hdr.mpls.tc = tc; ..."
2358 }
2359 },
2360 {
2361 "op" : "assign",
2362 "parameters" : [
2363 {
2364 "type" : "field",
2365 "value" : ["mpls", "bos"]
2366 },
2367 {
2368 "type" : "hexstr",
2369 "value" : "0x01"
2370 }
2371 ],
2372 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002373 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002374 "line" : 50,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002375 "column" : 8,
2376 "source_fragment" : "hdr.mpls.bos = 1w1"
2377 }
2378 },
2379 {
2380 "op" : "assign",
2381 "parameters" : [
2382 {
2383 "type" : "field",
2384 "value" : ["mpls", "ttl"]
2385 },
2386 {
2387 "type" : "hexstr",
2388 "value" : "0x40"
2389 }
2390 ],
2391 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002392 "filename" : "include/control/../define.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002393 "line" : 87,
2394 "column" : 32,
2395 "source_fragment" : "64; ..."
2396 }
2397 }
2398 ]
2399 },
2400 {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002401 "name" : "FabricIngress.next.l3_routing_vlan",
2402 "id" : 34,
2403 "runtime_data" : [
2404 {
2405 "name" : "port_num",
2406 "bitwidth" : 9
2407 },
2408 {
2409 "name" : "smac",
2410 "bitwidth" : 48
2411 },
2412 {
2413 "name" : "dmac",
2414 "bitwidth" : 48
2415 },
2416 {
2417 "name" : "new_vlan_id",
2418 "bitwidth" : 12
2419 }
2420 ],
2421 "primitives" : [
2422 {
2423 "op" : "assign",
2424 "parameters" : [
2425 {
2426 "type" : "field",
2427 "value" : ["ethernet", "src_addr"]
2428 },
2429 {
2430 "type" : "runtime_data",
2431 "value" : 1
2432 }
2433 ],
2434 "source_info" : {
2435 "filename" : "include/control/next.p4",
2436 "line" : 37,
2437 "column" : 8,
2438 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2439 }
2440 },
2441 {
2442 "op" : "assign",
2443 "parameters" : [
2444 {
2445 "type" : "field",
2446 "value" : ["ethernet", "dst_addr"]
2447 },
2448 {
2449 "type" : "runtime_data",
2450 "value" : 2
2451 }
2452 ],
2453 "source_info" : {
2454 "filename" : "include/control/next.p4",
2455 "line" : 41,
2456 "column" : 8,
2457 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2458 }
2459 },
2460 {
2461 "op" : "assign",
2462 "parameters" : [
2463 {
2464 "type" : "field",
2465 "value" : ["vlan_tag", "vlan_id"]
2466 },
2467 {
2468 "type" : "runtime_data",
2469 "value" : 3
2470 }
2471 ],
2472 "source_info" : {
2473 "filename" : "include/control/next.p4",
2474 "line" : 90,
2475 "column" : 8,
2476 "source_fragment" : "hdr.vlan_tag.vlan_id = new_vlan_id; ..."
2477 }
2478 },
2479 {
2480 "op" : "assign",
2481 "parameters" : [
2482 {
2483 "type" : "field",
2484 "value" : ["standard_metadata", "egress_spec"]
2485 },
2486 {
2487 "type" : "runtime_data",
2488 "value" : 0
2489 }
2490 ],
2491 "source_info" : {
2492 "filename" : "include/control/next.p4",
2493 "line" : 85,
2494 "column" : 8,
2495 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2496 }
2497 }
2498 ]
2499 },
2500 {
2501 "name" : "FabricIngress.next.l3_routing_hashed",
2502 "id" : 35,
2503 "runtime_data" : [
2504 {
2505 "name" : "port_num",
2506 "bitwidth" : 9
2507 },
2508 {
2509 "name" : "smac",
2510 "bitwidth" : 48
2511 },
2512 {
2513 "name" : "dmac",
2514 "bitwidth" : 48
2515 }
2516 ],
2517 "primitives" : [
2518 {
2519 "op" : "assign",
2520 "parameters" : [
2521 {
2522 "type" : "field",
2523 "value" : ["ethernet", "src_addr"]
2524 },
2525 {
2526 "type" : "runtime_data",
2527 "value" : 1
2528 }
2529 ],
2530 "source_info" : {
2531 "filename" : "include/control/next.p4",
2532 "line" : 37,
2533 "column" : 8,
2534 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2535 }
2536 },
2537 {
2538 "op" : "assign",
2539 "parameters" : [
2540 {
2541 "type" : "field",
2542 "value" : ["ethernet", "dst_addr"]
2543 },
2544 {
2545 "type" : "runtime_data",
2546 "value" : 2
2547 }
2548 ],
2549 "source_info" : {
2550 "filename" : "include/control/next.p4",
2551 "line" : 41,
2552 "column" : 8,
2553 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2554 }
2555 },
2556 {
2557 "op" : "assign",
2558 "parameters" : [
2559 {
2560 "type" : "field",
2561 "value" : ["standard_metadata", "egress_spec"]
2562 },
2563 {
2564 "type" : "runtime_data",
2565 "value" : 0
2566 }
2567 ],
2568 "source_info" : {
2569 "filename" : "include/control/next.p4",
2570 "line" : 149,
2571 "column" : 8,
2572 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2573 }
2574 }
2575 ]
2576 },
2577 {
2578 "name" : "FabricIngress.next.mpls_routing_v4_hashed",
Yi Tseng47eac892018-07-11 02:17:04 +08002579 "id" : 36,
2580 "runtime_data" : [
2581 {
2582 "name" : "port_num",
2583 "bitwidth" : 9
2584 },
2585 {
2586 "name" : "smac",
2587 "bitwidth" : 48
2588 },
2589 {
2590 "name" : "dmac",
2591 "bitwidth" : 48
2592 },
2593 {
2594 "name" : "label",
2595 "bitwidth" : 20
2596 }
2597 ],
2598 "primitives" : [
2599 {
2600 "op" : "assign",
2601 "parameters" : [
2602 {
2603 "type" : "field",
2604 "value" : ["ethernet", "src_addr"]
2605 },
2606 {
2607 "type" : "runtime_data",
2608 "value" : 1
2609 }
2610 ],
2611 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002612 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002613 "line" : 37,
2614 "column" : 8,
2615 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2616 }
2617 },
2618 {
2619 "op" : "assign",
2620 "parameters" : [
2621 {
2622 "type" : "field",
2623 "value" : ["ethernet", "dst_addr"]
2624 },
2625 {
2626 "type" : "runtime_data",
2627 "value" : 2
2628 }
2629 ],
2630 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002631 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002632 "line" : 41,
2633 "column" : 8,
2634 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2635 }
2636 },
2637 {
2638 "op" : "assign",
2639 "parameters" : [
2640 {
2641 "type" : "field",
2642 "value" : ["standard_metadata", "egress_spec"]
2643 },
2644 {
2645 "type" : "runtime_data",
2646 "value" : 0
2647 }
2648 ],
2649 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002650 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002651 "line" : 149,
2652 "column" : 8,
2653 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2654 }
2655 },
2656 {
2657 "op" : "add_header",
2658 "parameters" : [
2659 {
2660 "type" : "header",
2661 "value" : "mpls"
2662 }
2663 ],
2664 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002665 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002666 "line" : 46,
2667 "column" : 8,
2668 "source_fragment" : "hdr.mpls.setValid()"
2669 }
2670 },
2671 {
2672 "op" : "assign",
2673 "parameters" : [
2674 {
2675 "type" : "field",
2676 "value" : ["vlan_tag", "ether_type"]
2677 },
2678 {
2679 "type" : "hexstr",
2680 "value" : "0x8847"
2681 }
2682 ],
2683 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002684 "filename" : "include/control/../define.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002685 "line" : 67,
2686 "column" : 31,
2687 "source_fragment" : "0x8847; ..."
2688 }
2689 },
2690 {
2691 "op" : "assign",
2692 "parameters" : [
2693 {
2694 "type" : "field",
2695 "value" : ["mpls", "label"]
2696 },
2697 {
2698 "type" : "runtime_data",
2699 "value" : 3
2700 }
2701 ],
2702 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002703 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002704 "line" : 48,
2705 "column" : 8,
2706 "source_fragment" : "hdr.mpls.label = label; ..."
2707 }
2708 },
2709 {
2710 "op" : "assign",
2711 "parameters" : [
2712 {
2713 "type" : "field",
2714 "value" : ["mpls", "tc"]
2715 },
2716 {
2717 "type" : "hexstr",
2718 "value" : "0x00"
2719 }
2720 ],
2721 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002722 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002723 "line" : 49,
2724 "column" : 8,
2725 "source_fragment" : "hdr.mpls.tc = tc; ..."
2726 }
2727 },
2728 {
2729 "op" : "assign",
2730 "parameters" : [
2731 {
2732 "type" : "field",
2733 "value" : ["mpls", "bos"]
2734 },
2735 {
2736 "type" : "hexstr",
2737 "value" : "0x01"
2738 }
2739 ],
2740 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002741 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002742 "line" : 50,
2743 "column" : 8,
2744 "source_fragment" : "hdr.mpls.bos = 1w1"
2745 }
2746 },
2747 {
2748 "op" : "assign",
2749 "parameters" : [
2750 {
2751 "type" : "field",
2752 "value" : ["mpls", "ttl"]
2753 },
2754 {
2755 "type" : "hexstr",
2756 "value" : "0x40"
2757 }
2758 ],
2759 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002760 "filename" : "include/control/../define.p4",
Esin Karaman971fb7f2017-12-28 13:44:52 +00002761 "line" : 87,
2762 "column" : 32,
2763 "source_fragment" : "64; ..."
2764 }
2765 }
2766 ]
2767 },
2768 {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002769 "name" : "FabricIngress.next.mpls_routing_v6_hashed",
Yi Tseng47eac892018-07-11 02:17:04 +08002770 "id" : 37,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002771 "runtime_data" : [
2772 {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002773 "name" : "port_num",
2774 "bitwidth" : 9
2775 },
2776 {
2777 "name" : "smac",
2778 "bitwidth" : 48
2779 },
2780 {
2781 "name" : "dmac",
2782 "bitwidth" : 48
2783 },
2784 {
2785 "name" : "label",
2786 "bitwidth" : 20
2787 }
2788 ],
2789 "primitives" : [
2790 {
2791 "op" : "assign",
2792 "parameters" : [
2793 {
2794 "type" : "field",
2795 "value" : ["ethernet", "src_addr"]
2796 },
2797 {
2798 "type" : "runtime_data",
2799 "value" : 1
2800 }
2801 ],
2802 "source_info" : {
2803 "filename" : "include/control/next.p4",
2804 "line" : 37,
2805 "column" : 8,
2806 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2807 }
2808 },
2809 {
2810 "op" : "assign",
2811 "parameters" : [
2812 {
2813 "type" : "field",
2814 "value" : ["ethernet", "dst_addr"]
2815 },
2816 {
2817 "type" : "runtime_data",
2818 "value" : 2
2819 }
2820 ],
2821 "source_info" : {
2822 "filename" : "include/control/next.p4",
2823 "line" : 41,
2824 "column" : 8,
2825 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2826 }
2827 },
2828 {
2829 "op" : "assign",
2830 "parameters" : [
2831 {
2832 "type" : "field",
2833 "value" : ["standard_metadata", "egress_spec"]
2834 },
2835 {
2836 "type" : "runtime_data",
2837 "value" : 0
2838 }
2839 ],
2840 "source_info" : {
2841 "filename" : "include/control/next.p4",
2842 "line" : 149,
2843 "column" : 8,
2844 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2845 }
2846 },
2847 {
2848 "op" : "add_header",
2849 "parameters" : [
2850 {
2851 "type" : "header",
2852 "value" : "mpls"
2853 }
2854 ],
2855 "source_info" : {
2856 "filename" : "include/control/next.p4",
2857 "line" : 46,
2858 "column" : 8,
2859 "source_fragment" : "hdr.mpls.setValid()"
2860 }
2861 },
2862 {
2863 "op" : "assign",
2864 "parameters" : [
2865 {
2866 "type" : "field",
2867 "value" : ["vlan_tag", "ether_type"]
2868 },
2869 {
2870 "type" : "hexstr",
2871 "value" : "0x8847"
2872 }
2873 ],
2874 "source_info" : {
2875 "filename" : "include/control/../define.p4",
2876 "line" : 67,
2877 "column" : 31,
2878 "source_fragment" : "0x8847; ..."
2879 }
2880 },
2881 {
2882 "op" : "assign",
2883 "parameters" : [
2884 {
2885 "type" : "field",
2886 "value" : ["mpls", "label"]
2887 },
2888 {
2889 "type" : "runtime_data",
2890 "value" : 3
2891 }
2892 ],
2893 "source_info" : {
2894 "filename" : "include/control/next.p4",
2895 "line" : 48,
2896 "column" : 8,
2897 "source_fragment" : "hdr.mpls.label = label; ..."
2898 }
2899 },
2900 {
2901 "op" : "assign",
2902 "parameters" : [
2903 {
2904 "type" : "field",
2905 "value" : ["mpls", "tc"]
2906 },
2907 {
2908 "type" : "hexstr",
2909 "value" : "0x00"
2910 }
2911 ],
2912 "source_info" : {
2913 "filename" : "include/control/next.p4",
2914 "line" : 49,
2915 "column" : 8,
2916 "source_fragment" : "hdr.mpls.tc = tc; ..."
2917 }
2918 },
2919 {
2920 "op" : "assign",
2921 "parameters" : [
2922 {
2923 "type" : "field",
2924 "value" : ["mpls", "bos"]
2925 },
2926 {
2927 "type" : "hexstr",
2928 "value" : "0x01"
2929 }
2930 ],
2931 "source_info" : {
2932 "filename" : "include/control/next.p4",
2933 "line" : 50,
2934 "column" : 8,
2935 "source_fragment" : "hdr.mpls.bos = 1w1"
2936 }
2937 },
2938 {
2939 "op" : "assign",
2940 "parameters" : [
2941 {
2942 "type" : "field",
2943 "value" : ["mpls", "ttl"]
2944 },
2945 {
2946 "type" : "hexstr",
2947 "value" : "0x40"
2948 }
2949 ],
2950 "source_info" : {
2951 "filename" : "include/control/../define.p4",
2952 "line" : 87,
2953 "column" : 32,
2954 "source_fragment" : "64; ..."
2955 }
2956 }
2957 ]
2958 },
2959 {
2960 "name" : "FabricIngress.next.set_mcast_group",
2961 "id" : 38,
2962 "runtime_data" : [
2963 {
Esin Karaman971fb7f2017-12-28 13:44:52 +00002964 "name" : "gid",
2965 "bitwidth" : 16
2966 }
2967 ],
2968 "primitives" : [
2969 {
2970 "op" : "assign",
2971 "parameters" : [
2972 {
2973 "type" : "field",
2974 "value" : ["standard_metadata", "mcast_grp"]
2975 },
2976 {
2977 "type" : "runtime_data",
2978 "value" : 0
2979 }
2980 ],
2981 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002982 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002983 "line" : 202,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002984 "column" : 8,
2985 "source_fragment" : "standard_metadata.mcast_grp = gid"
2986 }
Carmelo Casconea5400af2018-07-17 22:11:54 +02002987 },
2988 {
2989 "op" : "assign",
2990 "parameters" : [
2991 {
2992 "type" : "field",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002993 "value" : ["scalars", "fabric_metadata_t.is_multicast"]
Carmelo Casconea5400af2018-07-17 22:11:54 +02002994 },
2995 {
2996 "type" : "expression",
2997 "value" : {
2998 "type" : "expression",
2999 "value" : {
3000 "op" : "b2d",
3001 "left" : null,
3002 "right" : {
3003 "type" : "bool",
3004 "value" : true
3005 }
3006 }
3007 }
3008 }
3009 ],
3010 "source_info" : {
3011 "filename" : "include/control/next.p4",
3012 "line" : 203,
3013 "column" : 8,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003014 "source_fragment" : "fabric_metadata.is_multicast = true"
Carmelo Casconea5400af2018-07-17 22:11:54 +02003015 }
Esin Karaman971fb7f2017-12-28 13:44:52 +00003016 }
3017 ]
3018 },
3019 {
3020 "name" : "act",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003021 "id" : 39,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003022 "runtime_data" : [],
3023 "primitives" : [
3024 {
3025 "op" : "assign",
3026 "parameters" : [
3027 {
3028 "type" : "field",
3029 "value" : ["standard_metadata", "egress_spec"]
3030 },
3031 {
3032 "type" : "field",
3033 "value" : ["packet_out", "egress_port"]
3034 }
3035 ],
3036 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003037 "filename" : "include/control/packetio.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003038 "line" : 26,
3039 "column" : 12,
3040 "source_fragment" : "standard_metadata.egress_spec = hdr.packet_out.egress_port"
3041 }
3042 },
3043 {
3044 "op" : "remove_header",
3045 "parameters" : [
3046 {
3047 "type" : "header",
3048 "value" : "packet_out"
3049 }
3050 ],
3051 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003052 "filename" : "include/control/packetio.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003053 "line" : 27,
3054 "column" : 12,
3055 "source_fragment" : "hdr.packet_out.setInvalid()"
3056 }
3057 }
3058 ]
3059 },
3060 {
3061 "name" : "act_0",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003062 "id" : 40,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003063 "runtime_data" : [],
3064 "primitives" : [
3065 {
3066 "op" : "assign",
3067 "parameters" : [
3068 {
3069 "type" : "field",
3070 "value" : ["scalars", "spgw_ingress_tmp_2"]
3071 },
3072 {
3073 "type" : "expression",
3074 "value" : {
3075 "type" : "expression",
3076 "value" : {
3077 "op" : "b2d",
3078 "left" : null,
3079 "right" : {
3080 "type" : "bool",
3081 "value" : true
3082 }
3083 }
3084 }
3085 }
3086 ]
3087 }
3088 ]
3089 },
3090 {
3091 "name" : "act_1",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003092 "id" : 41,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003093 "runtime_data" : [],
3094 "primitives" : [
3095 {
3096 "op" : "assign",
3097 "parameters" : [
3098 {
3099 "type" : "field",
3100 "value" : ["scalars", "spgw_ingress_tmp_2"]
3101 },
3102 {
3103 "type" : "expression",
3104 "value" : {
3105 "type" : "expression",
3106 "value" : {
3107 "op" : "b2d",
3108 "left" : null,
3109 "right" : {
3110 "type" : "bool",
3111 "value" : false
3112 }
3113 }
3114 }
3115 }
3116 ]
3117 }
3118 ]
3119 },
3120 {
3121 "name" : "act_2",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003122 "id" : 42,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003123 "runtime_data" : [],
3124 "primitives" : [
3125 {
3126 "op" : "assign",
3127 "parameters" : [
3128 {
3129 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003130 "value" : ["userMetadata.spgw", "s1u_enb_addr"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003131 },
3132 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003133 "type" : "field",
3134 "value" : ["ipv4", "src_addr"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003135 }
3136 ],
3137 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003138 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02003139 "line" : 147,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003140 "column" : 12,
3141 "source_fragment" : "spgw_meta.s1u_enb_addr = ipv4.src_addr"
3142 }
3143 },
3144 {
3145 "op" : "assign",
3146 "parameters" : [
3147 {
3148 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003149 "value" : ["userMetadata.spgw", "s1u_sgw_addr"]
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003150 },
3151 {
3152 "type" : "field",
3153 "value" : ["ipv4", "dst_addr"]
3154 }
3155 ],
3156 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003157 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02003158 "line" : 148,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003159 "column" : 12,
3160 "source_fragment" : "spgw_meta.s1u_sgw_addr = ipv4.dst_addr"
3161 }
3162 },
3163 {
3164 "op" : "assign_header",
3165 "parameters" : [
3166 {
3167 "type" : "header",
3168 "value" : "ipv4"
3169 },
3170 {
3171 "type" : "header",
3172 "value" : "gtpu_ipv4"
3173 }
3174 ],
3175 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003176 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02003177 "line" : 149,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003178 "column" : 17,
3179 "source_fragment" : "= gtpu_ipv4; ..."
3180 }
3181 },
3182 {
3183 "op" : "assign_header",
3184 "parameters" : [
3185 {
3186 "type" : "header",
3187 "value" : "udp"
3188 },
3189 {
3190 "type" : "header",
3191 "value" : "gtpu_udp"
3192 }
3193 ],
3194 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003195 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02003196 "line" : 150,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003197 "column" : 16,
3198 "source_fragment" : "= gtpu_udp; ..."
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003199 }
3200 }
3201 ]
3202 },
3203 {
3204 "name" : "act_3",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003205 "id" : 43,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003206 "runtime_data" : [],
3207 "primitives" : [
3208 {
3209 "op" : "assign",
3210 "parameters" : [
3211 {
3212 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003213 "value" : ["userMetadata.spgw", "do_spgw"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003214 },
3215 {
3216 "type" : "expression",
3217 "value" : {
3218 "type" : "expression",
3219 "value" : {
3220 "op" : "b2d",
3221 "left" : null,
3222 "right" : {
3223 "type" : "bool",
3224 "value" : true
3225 }
3226 }
3227 }
3228 }
3229 ],
3230 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003231 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02003232 "line" : 154,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003233 "column" : 16,
3234 "source_fragment" : "spgw_meta.do_spgw = true"
3235 }
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003236 },
3237 {
3238 "op" : "assign",
3239 "parameters" : [
3240 {
3241 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003242 "value" : ["userMetadata.spgw", "direction"]
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003243 },
3244 {
3245 "type" : "hexstr",
3246 "value" : "0x00"
3247 }
3248 ],
3249 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003250 "filename" : "include/control/../define.p4",
Carmelo Cascone228092b2018-06-15 20:41:10 +02003251 "line" : 98,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003252 "column" : 31,
3253 "source_fragment" : "1w0; ..."
3254 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003255 }
3256 ]
3257 },
3258 {
3259 "name" : "act_4",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003260 "id" : 44,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003261 "runtime_data" : [],
3262 "primitives" : [
3263 {
3264 "op" : "assign",
3265 "parameters" : [
3266 {
3267 "type" : "field",
3268 "value" : ["scalars", "spgw_ingress_tmp_3"]
3269 },
3270 {
3271 "type" : "expression",
3272 "value" : {
3273 "type" : "expression",
3274 "value" : {
3275 "op" : "b2d",
3276 "left" : null,
3277 "right" : {
3278 "type" : "bool",
3279 "value" : true
3280 }
3281 }
3282 }
3283 }
3284 ]
3285 }
3286 ]
3287 },
3288 {
3289 "name" : "act_5",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003290 "id" : 45,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003291 "runtime_data" : [],
3292 "primitives" : [
3293 {
3294 "op" : "assign",
3295 "parameters" : [
3296 {
3297 "type" : "field",
3298 "value" : ["scalars", "spgw_ingress_tmp_3"]
3299 },
3300 {
3301 "type" : "expression",
3302 "value" : {
3303 "type" : "expression",
3304 "value" : {
3305 "op" : "b2d",
3306 "left" : null,
3307 "right" : {
3308 "type" : "bool",
3309 "value" : false
3310 }
3311 }
3312 }
3313 }
3314 ]
3315 }
3316 ]
3317 },
3318 {
3319 "name" : "act_6",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003320 "id" : 46,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003321 "runtime_data" : [],
3322 "primitives" : [
3323 {
3324 "op" : "assign",
3325 "parameters" : [
3326 {
3327 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003328 "value" : ["userMetadata.spgw", "do_spgw"]
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003329 },
3330 {
3331 "type" : "expression",
3332 "value" : {
3333 "type" : "expression",
3334 "value" : {
3335 "op" : "b2d",
3336 "left" : null,
3337 "right" : {
3338 "type" : "bool",
3339 "value" : true
3340 }
3341 }
3342 }
3343 }
3344 ],
3345 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003346 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02003347 "line" : 158,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003348 "column" : 12,
3349 "source_fragment" : "spgw_meta.do_spgw = true"
3350 }
3351 },
3352 {
3353 "op" : "assign",
3354 "parameters" : [
3355 {
3356 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003357 "value" : ["userMetadata.spgw", "direction"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08003358 },
3359 {
3360 "type" : "hexstr",
3361 "value" : "0x01"
3362 }
3363 ],
3364 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003365 "filename" : "include/control/../define.p4",
Carmelo Cascone228092b2018-06-15 20:41:10 +02003366 "line" : 99,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003367 "column" : 33,
3368 "source_fragment" : "1w1; ..."
3369 }
3370 }
3371 ]
3372 },
3373 {
3374 "name" : "act_7",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003375 "id" : 47,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003376 "runtime_data" : [],
3377 "primitives" : [
3378 {
3379 "op" : "assign",
3380 "parameters" : [
3381 {
3382 "type" : "field",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003383 "value" : ["scalars", "spgw_ingress_hasReturned_0"]
3384 },
3385 {
3386 "type" : "expression",
3387 "value" : {
3388 "type" : "expression",
3389 "value" : {
3390 "op" : "b2d",
3391 "left" : null,
3392 "right" : {
3393 "type" : "bool",
3394 "value" : false
3395 }
3396 }
3397 }
3398 }
3399 ]
3400 },
3401 {
3402 "op" : "assign",
3403 "parameters" : [
3404 {
3405 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003406 "value" : ["userMetadata.spgw", "do_spgw"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003407 },
3408 {
3409 "type" : "expression",
3410 "value" : {
3411 "type" : "expression",
3412 "value" : {
3413 "op" : "b2d",
3414 "left" : null,
3415 "right" : {
3416 "type" : "bool",
Esin Karaman971fb7f2017-12-28 13:44:52 +00003417 "value" : false
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003418 }
3419 }
3420 }
3421 }
3422 ],
3423 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003424 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02003425 "line" : 141,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003426 "column" : 8,
Esin Karaman971fb7f2017-12-28 13:44:52 +00003427 "source_fragment" : "spgw_meta.do_spgw = false"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003428 }
3429 }
3430 ]
3431 },
3432 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003433 "name" : "act_8",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003434 "id" : 48,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003435 "runtime_data" : [],
3436 "primitives" : [
3437 {
3438 "op" : "assign",
3439 "parameters" : [
3440 {
3441 "type" : "field",
3442 "value" : ["scalars", "spgw_ingress_hasReturned_0"]
3443 },
3444 {
3445 "type" : "expression",
3446 "value" : {
3447 "type" : "expression",
3448 "value" : {
3449 "op" : "b2d",
3450 "left" : null,
3451 "right" : {
3452 "type" : "bool",
3453 "value" : true
3454 }
3455 }
3456 }
3457 }
3458 ],
3459 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003460 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02003461 "line" : 164,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003462 "column" : 12,
3463 "source_fragment" : "return"
3464 }
3465 }
3466 ]
3467 },
3468 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003469 "name" : "act_9",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003470 "id" : 49,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003471 "runtime_data" : [],
3472 "primitives" : [
3473 {
3474 "op" : "assign",
3475 "parameters" : [
3476 {
3477 "type" : "field",
3478 "value" : ["scalars", "spgw_ingress_tmp_4"]
3479 },
3480 {
3481 "type" : "expression",
3482 "value" : {
3483 "type" : "expression",
3484 "value" : {
3485 "op" : "b2d",
3486 "left" : null,
3487 "right" : {
3488 "type" : "bool",
3489 "value" : true
3490 }
3491 }
3492 }
3493 }
3494 ]
3495 }
3496 ]
3497 },
3498 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003499 "name" : "act_10",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003500 "id" : 50,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003501 "runtime_data" : [],
3502 "primitives" : [
3503 {
3504 "op" : "assign",
3505 "parameters" : [
3506 {
3507 "type" : "field",
3508 "value" : ["scalars", "spgw_ingress_tmp_4"]
3509 },
3510 {
3511 "type" : "expression",
3512 "value" : {
3513 "type" : "expression",
3514 "value" : {
3515 "op" : "b2d",
3516 "left" : null,
3517 "right" : {
3518 "type" : "bool",
3519 "value" : false
3520 }
3521 }
3522 }
3523 }
3524 ]
3525 }
3526 ]
3527 },
3528 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003529 "name" : "act_11",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003530 "id" : 51,
Yi Tseng27b9bc02018-04-12 14:52:40 +08003531 "runtime_data" : [],
3532 "primitives" : [
3533 {
3534 "op" : "assign",
3535 "parameters" : [
3536 {
3537 "type" : "field",
3538 "value" : ["userMetadata.spgw", "ipv4_len"]
3539 },
3540 {
3541 "type" : "field",
3542 "value" : ["ipv4", "total_len"]
3543 }
3544 ],
3545 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003546 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02003547 "line" : 194,
Yi Tseng27b9bc02018-04-12 14:52:40 +08003548 "column" : 8,
3549 "source_fragment" : "spgw_meta.ipv4_len = ipv4.total_len"
3550 }
3551 }
3552 ]
3553 },
3554 {
3555 "name" : "act_12",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003556 "id" : 52,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003557 "runtime_data" : [],
3558 "primitives" : [
3559 {
3560 "op" : "assign",
3561 "parameters" : [
3562 {
3563 "type" : "field",
3564 "value" : ["vlan_tag", "ether_type"]
3565 },
3566 {
3567 "type" : "hexstr",
3568 "value" : "0x0800"
3569 }
3570 ],
3571 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003572 "filename" : "include/control/../define.p4",
Carmelo Cascone228092b2018-06-15 20:41:10 +02003573 "line" : 69,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003574 "column" : 31,
3575 "source_fragment" : "0x0800; ..."
3576 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003577 }
3578 ]
3579 },
3580 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003581 "name" : "act_13",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003582 "id" : 53,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003583 "runtime_data" : [],
3584 "primitives" : [
3585 {
3586 "op" : "assign",
3587 "parameters" : [
3588 {
3589 "type" : "field",
Carmelo Casconea5400af2018-07-17 22:11:54 +02003590 "value" : ["scalars", "next_hasReturned_0"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003591 },
3592 {
3593 "type" : "expression",
3594 "value" : {
3595 "type" : "expression",
3596 "value" : {
3597 "op" : "b2d",
3598 "left" : null,
3599 "right" : {
3600 "type" : "bool",
3601 "value" : false
3602 }
3603 }
3604 }
3605 }
3606 ]
3607 }
3608 ]
3609 },
3610 {
Carmelo Casconea5400af2018-07-17 22:11:54 +02003611 "name" : "act_14",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003612 "id" : 54,
Carmelo Casconea5400af2018-07-17 22:11:54 +02003613 "runtime_data" : [],
3614 "primitives" : [
3615 {
3616 "op" : "assign",
3617 "parameters" : [
3618 {
3619 "type" : "field",
3620 "value" : ["scalars", "next_tmp_4"]
3621 },
3622 {
3623 "type" : "expression",
3624 "value" : {
3625 "type" : "expression",
3626 "value" : {
3627 "op" : "b2d",
3628 "left" : null,
3629 "right" : {
3630 "type" : "bool",
3631 "value" : true
3632 }
3633 }
3634 }
3635 }
3636 ]
3637 }
3638 ]
3639 },
3640 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003641 "name" : "act_15",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003642 "id" : 55,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003643 "runtime_data" : [],
3644 "primitives" : [
3645 {
3646 "op" : "assign",
3647 "parameters" : [
3648 {
3649 "type" : "field",
Carmelo Casconea5400af2018-07-17 22:11:54 +02003650 "value" : ["scalars", "next_tmp_4"]
3651 },
3652 {
3653 "type" : "expression",
3654 "value" : {
3655 "type" : "expression",
3656 "value" : {
3657 "op" : "b2d",
3658 "left" : null,
3659 "right" : {
3660 "type" : "bool",
3661 "value" : false
3662 }
3663 }
3664 }
3665 }
3666 ]
3667 }
3668 ]
3669 },
3670 {
3671 "name" : "act_16",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003672 "id" : 56,
Carmelo Casconea5400af2018-07-17 22:11:54 +02003673 "runtime_data" : [],
3674 "primitives" : [
3675 {
3676 "op" : "assign",
3677 "parameters" : [
3678 {
3679 "type" : "field",
3680 "value" : ["scalars", "next_tmp_3"]
3681 },
3682 {
3683 "type" : "expression",
3684 "value" : {
3685 "type" : "expression",
3686 "value" : {
3687 "op" : "b2d",
3688 "left" : null,
3689 "right" : {
3690 "type" : "bool",
3691 "value" : true
3692 }
3693 }
3694 }
3695 }
3696 ]
3697 }
3698 ]
3699 },
3700 {
3701 "name" : "act_17",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003702 "id" : 57,
Carmelo Casconea5400af2018-07-17 22:11:54 +02003703 "runtime_data" : [],
3704 "primitives" : [
3705 {
3706 "op" : "assign",
3707 "parameters" : [
3708 {
3709 "type" : "field",
3710 "value" : ["scalars", "next_tmp_3"]
3711 },
3712 {
3713 "type" : "expression",
3714 "value" : {
3715 "type" : "expression",
3716 "value" : {
3717 "op" : "b2d",
3718 "left" : null,
3719 "right" : {
3720 "type" : "bool",
3721 "value" : false
3722 }
3723 }
3724 }
3725 }
3726 ]
3727 }
3728 ]
3729 },
3730 {
3731 "name" : "act_18",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003732 "id" : 58,
Carmelo Casconea5400af2018-07-17 22:11:54 +02003733 "runtime_data" : [],
3734 "primitives" : [
3735 {
3736 "op" : "assign",
3737 "parameters" : [
3738 {
3739 "type" : "field",
3740 "value" : ["scalars", "next_tmp_2"]
3741 },
3742 {
3743 "type" : "expression",
3744 "value" : {
3745 "type" : "expression",
3746 "value" : {
3747 "op" : "b2d",
3748 "left" : null,
3749 "right" : {
3750 "type" : "bool",
3751 "value" : true
3752 }
3753 }
3754 }
3755 }
3756 ]
3757 }
3758 ]
3759 },
3760 {
3761 "name" : "act_19",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003762 "id" : 59,
Carmelo Casconea5400af2018-07-17 22:11:54 +02003763 "runtime_data" : [],
3764 "primitives" : [
3765 {
3766 "op" : "assign",
3767 "parameters" : [
3768 {
3769 "type" : "field",
3770 "value" : ["scalars", "next_tmp_2"]
3771 },
3772 {
3773 "type" : "expression",
3774 "value" : {
3775 "type" : "expression",
3776 "value" : {
3777 "op" : "b2d",
3778 "left" : null,
3779 "right" : {
3780 "type" : "bool",
3781 "value" : false
3782 }
3783 }
3784 }
3785 }
3786 ]
3787 }
3788 ]
3789 },
3790 {
3791 "name" : "act_20",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003792 "id" : 60,
Carmelo Casconea5400af2018-07-17 22:11:54 +02003793 "runtime_data" : [],
3794 "primitives" : [
3795 {
3796 "op" : "assign",
3797 "parameters" : [
3798 {
3799 "type" : "field",
3800 "value" : ["scalars", "next_hasReturned_0"]
3801 },
3802 {
3803 "type" : "expression",
3804 "value" : {
3805 "type" : "expression",
3806 "value" : {
3807 "op" : "b2d",
3808 "left" : null,
3809 "right" : {
3810 "type" : "bool",
3811 "value" : true
3812 }
3813 }
3814 }
3815 }
3816 ],
3817 "source_info" : {
3818 "filename" : "include/control/next.p4",
3819 "line" : 223,
3820 "column" : 20,
3821 "source_fragment" : "return"
3822 }
3823 }
3824 ]
3825 },
3826 {
3827 "name" : "act_21",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003828 "id" : 61,
Carmelo Casconea5400af2018-07-17 22:11:54 +02003829 "runtime_data" : [],
3830 "primitives" : [
3831 {
3832 "op" : "assign",
3833 "parameters" : [
3834 {
3835 "type" : "field",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003836 "value" : ["ipv4", "ttl"]
3837 },
3838 {
3839 "type" : "expression",
3840 "value" : {
3841 "type" : "expression",
3842 "value" : {
3843 "op" : "&",
3844 "left" : {
3845 "type" : "expression",
3846 "value" : {
3847 "op" : "+",
3848 "left" : {
3849 "type" : "field",
3850 "value" : ["ipv4", "ttl"]
3851 },
3852 "right" : {
3853 "type" : "hexstr",
3854 "value" : "0xff"
3855 }
3856 }
3857 },
3858 "right" : {
3859 "type" : "hexstr",
3860 "value" : "0xff"
3861 }
3862 }
3863 }
3864 }
3865 ],
3866 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003867 "filename" : "include/control/next.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02003868 "line" : 230,
3869 "column" : 16,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003870 "source_fragment" : "hdr.ipv4.ttl = hdr.ipv4.ttl - 1"
3871 }
3872 }
3873 ]
3874 },
3875 {
Carmelo Casconea5400af2018-07-17 22:11:54 +02003876 "name" : "act_22",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003877 "id" : 62,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003878 "runtime_data" : [],
3879 "primitives" : [
3880 {
3881 "op" : "assign",
3882 "parameters" : [
3883 {
3884 "type" : "field",
3885 "value" : ["scalars", "tmp_0"]
3886 },
3887 {
3888 "type" : "expression",
3889 "value" : {
3890 "type" : "expression",
3891 "value" : {
3892 "op" : "&",
3893 "left" : {
3894 "type" : "field",
3895 "value" : ["standard_metadata", "egress_spec"]
3896 },
3897 "right" : {
3898 "type" : "hexstr",
3899 "value" : "0xffffffff"
3900 }
3901 }
3902 }
3903 }
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003904 ],
3905 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003906 "filename" : "include/control/port_counter.p4",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003907 "line" : 28,
3908 "column" : 38,
3909 "source_fragment" : "(bit<32>)standard_metadata.egress_spec"
3910 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003911 },
3912 {
3913 "op" : "count",
3914 "parameters" : [
3915 {
3916 "type" : "counter_array",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003917 "value" : "FabricIngress.port_counters_control.egress_port_counter"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003918 },
3919 {
3920 "type" : "field",
3921 "value" : ["scalars", "tmp_0"]
3922 }
3923 ],
3924 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003925 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003926 "line" : 28,
3927 "column" : 12,
3928 "source_fragment" : "egress_port_counter.count((bit<32>)standard_metadata.egress_spec)"
3929 }
3930 }
3931 ]
3932 },
3933 {
Carmelo Casconea5400af2018-07-17 22:11:54 +02003934 "name" : "act_23",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003935 "id" : 63,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003936 "runtime_data" : [],
3937 "primitives" : [
3938 {
3939 "op" : "assign",
3940 "parameters" : [
3941 {
3942 "type" : "field",
3943 "value" : ["scalars", "tmp_1"]
3944 },
3945 {
3946 "type" : "expression",
3947 "value" : {
3948 "type" : "expression",
3949 "value" : {
3950 "op" : "&",
3951 "left" : {
3952 "type" : "field",
3953 "value" : ["standard_metadata", "ingress_port"]
3954 },
3955 "right" : {
3956 "type" : "hexstr",
3957 "value" : "0xffffffff"
3958 }
3959 }
3960 }
3961 }
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003962 ],
3963 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003964 "filename" : "include/control/port_counter.p4",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003965 "line" : 31,
3966 "column" : 39,
3967 "source_fragment" : "(bit<32>)standard_metadata.ingress_port"
3968 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003969 },
3970 {
3971 "op" : "count",
3972 "parameters" : [
3973 {
3974 "type" : "counter_array",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003975 "value" : "FabricIngress.port_counters_control.ingress_port_counter"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003976 },
3977 {
3978 "type" : "field",
3979 "value" : ["scalars", "tmp_1"]
3980 }
3981 ],
3982 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003983 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003984 "line" : 31,
3985 "column" : 12,
3986 "source_fragment" : "ingress_port_counter.count((bit<32>)standard_metadata.ingress_port)"
3987 }
3988 }
3989 ]
3990 },
3991 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003992 "name" : "nop",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003993 "id" : 64,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003994 "runtime_data" : [],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003995 "primitives" : []
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003996 },
3997 {
Carmelo Casconea5400af2018-07-17 22:11:54 +02003998 "name" : "drop_now",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003999 "id" : 65,
4000 "runtime_data" : [],
4001 "primitives" : [
4002 {
4003 "op" : "drop",
4004 "parameters" : [],
4005 "source_info" : {
4006 "filename" : "include/control/../action.p4",
4007 "line" : 24,
4008 "column" : 4,
4009 "source_fragment" : "mark_to_drop()"
4010 }
4011 },
4012 {
4013 "op" : "exit",
4014 "parameters" : [],
4015 "source_info" : {
4016 "filename" : "include/control/../action.p4",
4017 "line" : 25,
4018 "column" : 4,
4019 "source_fragment" : "exit"
4020 }
4021 }
4022 ]
4023 },
4024 {
4025 "name" : "drop_now",
4026 "id" : 66,
Carmelo Casconea5400af2018-07-17 22:11:54 +02004027 "runtime_data" : [],
4028 "primitives" : [
4029 {
4030 "op" : "drop",
4031 "parameters" : [],
4032 "source_info" : {
4033 "filename" : "include/control/../action.p4",
4034 "line" : 24,
4035 "column" : 4,
4036 "source_fragment" : "mark_to_drop()"
4037 }
4038 },
4039 {
4040 "op" : "exit",
4041 "parameters" : [],
4042 "source_info" : {
4043 "filename" : "include/control/../action.p4",
4044 "line" : 25,
4045 "column" : 4,
4046 "source_fragment" : "exit"
4047 }
4048 }
4049 ]
4050 },
4051 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004052 "name" : "FabricEgress.spgw_egress.gtpu_encap",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02004053 "id" : 67,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004054 "runtime_data" : [],
4055 "primitives" : [
4056 {
4057 "op" : "add_header",
4058 "parameters" : [
4059 {
4060 "type" : "header",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004061 "value" : "gtpu_ipv4"
4062 }
4063 ],
4064 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004065 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004066 "line" : 209,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004067 "column" : 8,
4068 "source_fragment" : "gtpu_ipv4.setValid()"
4069 }
4070 },
4071 {
4072 "op" : "assign",
4073 "parameters" : [
4074 {
4075 "type" : "field",
4076 "value" : ["gtpu_ipv4", "version"]
4077 },
4078 {
4079 "type" : "hexstr",
4080 "value" : "0x04"
4081 }
4082 ],
4083 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004084 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004085 "line" : 210,
Yi Tseng3d3956d2018-01-31 17:28:05 -08004086 "column" : 8,
4087 "source_fragment" : "gtpu_ipv4.version = 4"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004088 }
4089 },
4090 {
4091 "op" : "assign",
4092 "parameters" : [
4093 {
4094 "type" : "field",
4095 "value" : ["gtpu_ipv4", "ihl"]
4096 },
4097 {
4098 "type" : "hexstr",
4099 "value" : "0x05"
4100 }
4101 ],
4102 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004103 "filename" : "include/control/../define.p4",
Carmelo Cascone228092b2018-06-15 20:41:10 +02004104 "line" : 78,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004105 "column" : 28,
4106 "source_fragment" : "5; ..."
4107 }
4108 },
4109 {
4110 "op" : "assign",
4111 "parameters" : [
4112 {
4113 "type" : "field",
4114 "value" : ["gtpu_ipv4", "diffserv"]
4115 },
4116 {
4117 "type" : "hexstr",
4118 "value" : "0x00"
4119 }
4120 ],
4121 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004122 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004123 "line" : 212,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004124 "column" : 8,
4125 "source_fragment" : "gtpu_ipv4.diffserv = 0"
4126 }
4127 },
4128 {
4129 "op" : "assign",
4130 "parameters" : [
4131 {
4132 "type" : "field",
4133 "value" : ["gtpu_ipv4", "total_len"]
4134 },
4135 {
4136 "type" : "expression",
4137 "value" : {
4138 "type" : "expression",
4139 "value" : {
4140 "op" : "&",
4141 "left" : {
4142 "type" : "expression",
4143 "value" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004144 "op" : "+",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004145 "left" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004146 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004147 "value" : ["userMetadata.spgw", "ipv4_len"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08004148 },
4149 "right" : {
4150 "type" : "hexstr",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004151 "value" : "0x0024"
Carmelo Cascone14cde402018-01-25 01:57:18 -08004152 }
4153 }
4154 },
4155 "right" : {
4156 "type" : "hexstr",
4157 "value" : "0xffff"
4158 }
4159 }
4160 }
4161 }
4162 ],
4163 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004164 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004165 "line" : 213,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004166 "column" : 8,
Yi Tseng27b9bc02018-04-12 14:52:40 +08004167 "source_fragment" : "gtpu_ipv4.total_len = spgw_meta.ipv4_len ..."
Carmelo Cascone14cde402018-01-25 01:57:18 -08004168 }
4169 },
4170 {
4171 "op" : "assign",
4172 "parameters" : [
4173 {
4174 "type" : "field",
4175 "value" : ["gtpu_ipv4", "identification"]
4176 },
4177 {
4178 "type" : "hexstr",
4179 "value" : "0x1513"
4180 }
4181 ],
4182 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004183 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004184 "line" : 215,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004185 "column" : 8,
4186 "source_fragment" : "gtpu_ipv4.identification = 0x1513"
4187 }
4188 },
4189 {
4190 "op" : "assign",
4191 "parameters" : [
4192 {
4193 "type" : "field",
4194 "value" : ["gtpu_ipv4", "flags"]
4195 },
4196 {
4197 "type" : "hexstr",
4198 "value" : "0x00"
4199 }
4200 ],
4201 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004202 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004203 "line" : 216,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004204 "column" : 8,
4205 "source_fragment" : "gtpu_ipv4.flags = 0"
4206 }
4207 },
4208 {
4209 "op" : "assign",
4210 "parameters" : [
4211 {
4212 "type" : "field",
4213 "value" : ["gtpu_ipv4", "frag_offset"]
4214 },
4215 {
4216 "type" : "hexstr",
4217 "value" : "0x0000"
4218 }
4219 ],
4220 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004221 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004222 "line" : 217,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004223 "column" : 8,
4224 "source_fragment" : "gtpu_ipv4.frag_offset = 0"
4225 }
4226 },
4227 {
4228 "op" : "assign",
4229 "parameters" : [
4230 {
4231 "type" : "field",
4232 "value" : ["gtpu_ipv4", "ttl"]
4233 },
4234 {
4235 "type" : "hexstr",
4236 "value" : "0x40"
4237 }
4238 ],
4239 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004240 "filename" : "include/control/../define.p4",
Carmelo Cascone228092b2018-06-15 20:41:10 +02004241 "line" : 88,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004242 "column" : 32,
4243 "source_fragment" : "64; ..."
4244 }
4245 },
4246 {
4247 "op" : "assign",
4248 "parameters" : [
4249 {
4250 "type" : "field",
4251 "value" : ["gtpu_ipv4", "protocol"]
4252 },
4253 {
4254 "type" : "hexstr",
4255 "value" : "0x11"
4256 }
4257 ],
4258 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004259 "filename" : "include/control/../define.p4",
Carmelo Cascone228092b2018-06-15 20:41:10 +02004260 "line" : 75,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004261 "column" : 25,
4262 "source_fragment" : "17; ..."
4263 }
4264 },
4265 {
4266 "op" : "assign",
4267 "parameters" : [
4268 {
4269 "type" : "field",
4270 "value" : ["gtpu_ipv4", "dst_addr"]
4271 },
4272 {
4273 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004274 "value" : ["userMetadata.spgw", "s1u_enb_addr"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08004275 }
4276 ],
4277 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004278 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004279 "line" : 220,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004280 "column" : 8,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004281 "source_fragment" : "gtpu_ipv4.dst_addr = spgw_meta.s1u_enb_addr"
Carmelo Cascone14cde402018-01-25 01:57:18 -08004282 }
4283 },
4284 {
4285 "op" : "assign",
4286 "parameters" : [
4287 {
4288 "type" : "field",
4289 "value" : ["gtpu_ipv4", "src_addr"]
4290 },
4291 {
4292 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004293 "value" : ["userMetadata.spgw", "s1u_sgw_addr"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08004294 }
4295 ],
4296 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004297 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004298 "line" : 221,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004299 "column" : 8,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004300 "source_fragment" : "gtpu_ipv4.src_addr = spgw_meta.s1u_sgw_addr"
Carmelo Cascone14cde402018-01-25 01:57:18 -08004301 }
4302 },
4303 {
4304 "op" : "assign",
4305 "parameters" : [
4306 {
4307 "type" : "field",
4308 "value" : ["gtpu_ipv4", "hdr_checksum"]
4309 },
4310 {
4311 "type" : "hexstr",
4312 "value" : "0x0000"
4313 }
4314 ],
4315 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004316 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004317 "line" : 222,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004318 "column" : 8,
4319 "source_fragment" : "gtpu_ipv4.hdr_checksum = 0"
4320 }
4321 },
4322 {
4323 "op" : "add_header",
4324 "parameters" : [
4325 {
4326 "type" : "header",
4327 "value" : "gtpu_udp"
4328 }
4329 ],
4330 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004331 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004332 "line" : 224,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004333 "column" : 8,
4334 "source_fragment" : "gtpu_udp.setValid()"
4335 }
4336 },
4337 {
4338 "op" : "assign",
4339 "parameters" : [
4340 {
4341 "type" : "field",
4342 "value" : ["gtpu_udp", "src_port"]
4343 },
4344 {
4345 "type" : "hexstr",
4346 "value" : "0x0868"
4347 }
4348 ],
4349 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004350 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004351 "line" : 225,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004352 "column" : 8,
4353 "source_fragment" : "gtpu_udp.src_port = 2152"
4354 }
4355 },
4356 {
4357 "op" : "assign",
4358 "parameters" : [
4359 {
4360 "type" : "field",
4361 "value" : ["gtpu_udp", "dst_port"]
4362 },
4363 {
4364 "type" : "hexstr",
4365 "value" : "0x0868"
4366 }
4367 ],
4368 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004369 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004370 "line" : 226,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004371 "column" : 8,
4372 "source_fragment" : "gtpu_udp.dst_port = 2152"
4373 }
4374 },
4375 {
4376 "op" : "assign",
4377 "parameters" : [
4378 {
4379 "type" : "field",
4380 "value" : ["gtpu_udp", "len"]
4381 },
4382 {
4383 "type" : "expression",
4384 "value" : {
4385 "type" : "expression",
4386 "value" : {
4387 "op" : "&",
4388 "left" : {
4389 "type" : "expression",
4390 "value" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004391 "op" : "+",
Carmelo Cascone14cde402018-01-25 01:57:18 -08004392 "left" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004393 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004394 "value" : ["userMetadata.spgw", "ipv4_len"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004395 },
4396 "right" : {
4397 "type" : "hexstr",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004398 "value" : "0x0010"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004399 }
4400 }
4401 },
4402 "right" : {
4403 "type" : "hexstr",
4404 "value" : "0xffff"
4405 }
4406 }
4407 }
4408 }
4409 ],
4410 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004411 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004412 "line" : 227,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004413 "column" : 8,
Yi Tseng27b9bc02018-04-12 14:52:40 +08004414 "source_fragment" : "gtpu_udp.len = spgw_meta.ipv4_len ..."
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004415 }
4416 },
4417 {
4418 "op" : "assign",
4419 "parameters" : [
4420 {
4421 "type" : "field",
4422 "value" : ["gtpu_udp", "checksum"]
4423 },
4424 {
4425 "type" : "hexstr",
4426 "value" : "0x0000"
4427 }
4428 ],
4429 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004430 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004431 "line" : 229,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004432 "column" : 8,
4433 "source_fragment" : "gtpu_udp.checksum = 0"
4434 }
Carmelo Cascone14cde402018-01-25 01:57:18 -08004435 },
4436 {
4437 "op" : "add_header",
4438 "parameters" : [
4439 {
4440 "type" : "header",
4441 "value" : "gtpu"
4442 }
4443 ],
4444 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004445 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004446 "line" : 231,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004447 "column" : 8,
4448 "source_fragment" : "gtpu.setValid()"
4449 }
4450 },
4451 {
4452 "op" : "assign",
4453 "parameters" : [
4454 {
4455 "type" : "field",
4456 "value" : ["gtpu", "version"]
4457 },
4458 {
4459 "type" : "hexstr",
4460 "value" : "0x01"
4461 }
4462 ],
4463 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004464 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004465 "line" : 232,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004466 "column" : 8,
4467 "source_fragment" : "gtpu.version = 0x01"
4468 }
4469 },
4470 {
4471 "op" : "assign",
4472 "parameters" : [
4473 {
4474 "type" : "field",
4475 "value" : ["gtpu", "pt"]
4476 },
4477 {
4478 "type" : "hexstr",
4479 "value" : "0x01"
4480 }
4481 ],
4482 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004483 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004484 "line" : 233,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004485 "column" : 8,
4486 "source_fragment" : "gtpu.pt = 0x01"
4487 }
4488 },
4489 {
4490 "op" : "assign",
4491 "parameters" : [
4492 {
4493 "type" : "field",
4494 "value" : ["gtpu", "spare"]
4495 },
4496 {
4497 "type" : "hexstr",
4498 "value" : "0x00"
4499 }
4500 ],
4501 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004502 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004503 "line" : 234,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004504 "column" : 8,
4505 "source_fragment" : "gtpu.spare = 0"
4506 }
4507 },
4508 {
4509 "op" : "assign",
4510 "parameters" : [
4511 {
4512 "type" : "field",
4513 "value" : ["gtpu", "ex_flag"]
4514 },
4515 {
4516 "type" : "hexstr",
4517 "value" : "0x00"
4518 }
4519 ],
4520 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004521 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004522 "line" : 235,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004523 "column" : 8,
4524 "source_fragment" : "gtpu.ex_flag = 0"
4525 }
4526 },
4527 {
4528 "op" : "assign",
4529 "parameters" : [
4530 {
4531 "type" : "field",
4532 "value" : ["gtpu", "seq_flag"]
4533 },
4534 {
4535 "type" : "hexstr",
4536 "value" : "0x00"
4537 }
4538 ],
4539 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004540 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004541 "line" : 236,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004542 "column" : 8,
4543 "source_fragment" : "gtpu.seq_flag = 0"
4544 }
4545 },
4546 {
4547 "op" : "assign",
4548 "parameters" : [
4549 {
4550 "type" : "field",
4551 "value" : ["gtpu", "npdu_flag"]
4552 },
4553 {
4554 "type" : "hexstr",
4555 "value" : "0x00"
4556 }
4557 ],
4558 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004559 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004560 "line" : 237,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004561 "column" : 8,
4562 "source_fragment" : "gtpu.npdu_flag = 0"
4563 }
4564 },
4565 {
4566 "op" : "assign",
4567 "parameters" : [
4568 {
4569 "type" : "field",
4570 "value" : ["gtpu", "msgtype"]
4571 },
4572 {
4573 "type" : "hexstr",
4574 "value" : "0xff"
4575 }
4576 ],
4577 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004578 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004579 "line" : 238,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004580 "column" : 8,
4581 "source_fragment" : "gtpu.msgtype = 0xff"
4582 }
4583 },
4584 {
4585 "op" : "assign",
4586 "parameters" : [
4587 {
4588 "type" : "field",
4589 "value" : ["gtpu", "msglen"]
4590 },
4591 {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004592 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004593 "value" : ["userMetadata.spgw", "ipv4_len"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08004594 }
4595 ],
4596 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004597 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004598 "line" : 239,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004599 "column" : 8,
Yi Tseng27b9bc02018-04-12 14:52:40 +08004600 "source_fragment" : "gtpu.msglen = spgw_meta.ipv4_len"
Carmelo Cascone14cde402018-01-25 01:57:18 -08004601 }
4602 },
4603 {
4604 "op" : "assign",
4605 "parameters" : [
4606 {
4607 "type" : "field",
4608 "value" : ["gtpu", "teid"]
4609 },
4610 {
4611 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004612 "value" : ["userMetadata.spgw", "teid"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08004613 }
4614 ],
4615 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004616 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004617 "line" : 240,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004618 "column" : 8,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004619 "source_fragment" : "gtpu.teid = spgw_meta.teid"
Carmelo Cascone14cde402018-01-25 01:57:18 -08004620 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004621 }
4622 ]
4623 },
4624 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004625 "name" : "FabricEgress.pkt_io_egress.pop_vlan",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02004626 "id" : 68,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004627 "runtime_data" : [],
4628 "primitives" : [
4629 {
4630 "op" : "assign",
4631 "parameters" : [
4632 {
4633 "type" : "field",
4634 "value" : ["ethernet", "ether_type"]
4635 },
4636 {
4637 "type" : "field",
4638 "value" : ["vlan_tag", "ether_type"]
4639 }
4640 ],
4641 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004642 "filename" : "include/control/packetio.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08004643 "line" : 38,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004644 "column" : 8,
4645 "source_fragment" : "hdr.ethernet.ether_type = hdr.vlan_tag.ether_type"
4646 }
4647 },
4648 {
4649 "op" : "remove_header",
4650 "parameters" : [
4651 {
4652 "type" : "header",
4653 "value" : "vlan_tag"
4654 }
4655 ],
4656 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004657 "filename" : "include/control/packetio.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08004658 "line" : 39,
4659 "column" : 8,
4660 "source_fragment" : "hdr.vlan_tag.setInvalid()"
4661 }
4662 }
4663 ]
4664 },
4665 {
4666 "name" : "FabricEgress.egress_next.pop_vlan",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02004667 "id" : 69,
Yi Tseng47eac892018-07-11 02:17:04 +08004668 "runtime_data" : [],
4669 "primitives" : [
4670 {
4671 "op" : "assign",
4672 "parameters" : [
4673 {
4674 "type" : "field",
4675 "value" : ["ethernet", "ether_type"]
4676 },
4677 {
4678 "type" : "field",
4679 "value" : ["vlan_tag", "ether_type"]
4680 }
4681 ],
4682 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004683 "filename" : "include/control/next.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004684 "line" : 253,
Yi Tseng47eac892018-07-11 02:17:04 +08004685 "column" : 8,
4686 "source_fragment" : "hdr.ethernet.ether_type = hdr.vlan_tag.ether_type"
4687 }
4688 },
4689 {
4690 "op" : "remove_header",
4691 "parameters" : [
4692 {
4693 "type" : "header",
4694 "value" : "vlan_tag"
4695 }
4696 ],
4697 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004698 "filename" : "include/control/next.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004699 "line" : 254,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004700 "column" : 8,
4701 "source_fragment" : "hdr.vlan_tag.setInvalid()"
4702 }
4703 }
4704 ]
4705 },
4706 {
Carmelo Casconea5400af2018-07-17 22:11:54 +02004707 "name" : "act_24",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02004708 "id" : 70,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004709 "runtime_data" : [],
4710 "primitives" : [
4711 {
4712 "op" : "add_header",
4713 "parameters" : [
4714 {
4715 "type" : "header",
4716 "value" : "packet_in"
4717 }
4718 ],
4719 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004720 "filename" : "include/control/packetio.p4",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02004721 "line" : 51,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004722 "column" : 12,
4723 "source_fragment" : "hdr.packet_in.setValid()"
4724 }
4725 },
4726 {
4727 "op" : "assign",
4728 "parameters" : [
4729 {
4730 "type" : "field",
4731 "value" : ["packet_in", "ingress_port"]
4732 },
4733 {
4734 "type" : "field",
4735 "value" : ["standard_metadata", "ingress_port"]
4736 }
4737 ],
4738 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004739 "filename" : "include/control/packetio.p4",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02004740 "line" : 52,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004741 "column" : 12,
4742 "source_fragment" : "hdr.packet_in.ingress_port = standard_metadata.ingress_port"
4743 }
4744 }
4745 ]
4746 },
4747 {
Carmelo Casconea5400af2018-07-17 22:11:54 +02004748 "name" : "act_25",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02004749 "id" : 71,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004750 "runtime_data" : [],
4751 "primitives" : [
4752 {
4753 "op" : "remove_header",
4754 "parameters" : [
4755 {
4756 "type" : "header",
4757 "value" : "gtpu_ipv4"
4758 }
4759 ],
4760 "source_info" : {
4761 "filename" : "fabric.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004762 "line" : 71,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004763 "column" : 36,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004764 "source_fragment" : "hdr.gtpu_ipv4"
4765 }
4766 },
4767 {
4768 "op" : "remove_header",
4769 "parameters" : [
4770 {
4771 "type" : "header",
4772 "value" : "gtpu_udp"
4773 }
4774 ],
4775 "source_info" : {
4776 "filename" : "fabric.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004777 "line" : 71,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004778 "column" : 51,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004779 "source_fragment" : "hdr.gtpu_udp"
4780 }
4781 },
4782 {
4783 "op" : "remove_header",
4784 "parameters" : [
4785 {
4786 "type" : "header",
4787 "value" : "gtpu"
4788 }
4789 ],
4790 "source_info" : {
4791 "filename" : "fabric.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004792 "line" : 71,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004793 "column" : 65,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004794 "source_fragment" : "hdr.gtpu"
4795 }
4796 }
4797 ]
4798 }
4799 ],
4800 "pipelines" : [
4801 {
4802 "name" : "ingress",
4803 "id" : 0,
4804 "source_info" : {
4805 "filename" : "fabric.p4",
4806 "line" : 33,
4807 "column" : 8,
4808 "source_fragment" : "FabricIngress"
4809 },
4810 "init_table" : "node_2",
4811 "tables" : [
4812 {
4813 "name" : "tbl_act",
4814 "id" : 0,
4815 "key" : [],
4816 "match_type" : "exact",
4817 "type" : "simple",
4818 "max_size" : 1024,
4819 "with_counters" : false,
4820 "support_timeout" : false,
4821 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02004822 "action_ids" : [39],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004823 "actions" : ["act"],
4824 "base_default_next" : null,
4825 "next_tables" : {
4826 "act" : null
4827 },
4828 "default_entry" : {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02004829 "action_id" : 39,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004830 "action_const" : true,
4831 "action_data" : [],
4832 "action_entry_const" : true
4833 }
4834 },
4835 {
4836 "name" : "tbl_act_0",
4837 "id" : 1,
4838 "key" : [],
4839 "match_type" : "exact",
4840 "type" : "simple",
4841 "max_size" : 1024,
4842 "with_counters" : false,
4843 "support_timeout" : false,
4844 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02004845 "action_ids" : [47],
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004846 "actions" : ["act_7"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004847 "base_default_next" : "node_5",
4848 "next_tables" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004849 "act_7" : "node_5"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004850 },
4851 "default_entry" : {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02004852 "action_id" : 47,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004853 "action_const" : true,
4854 "action_data" : [],
4855 "action_entry_const" : true
4856 }
4857 },
4858 {
4859 "name" : "tbl_act_1",
4860 "id" : 2,
4861 "key" : [],
4862 "match_type" : "exact",
4863 "type" : "simple",
4864 "max_size" : 1024,
4865 "with_counters" : false,
4866 "support_timeout" : false,
4867 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02004868 "action_ids" : [42],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004869 "actions" : ["act_2"],
Yi Tseng27b9bc02018-04-12 14:52:40 +08004870 "base_default_next" : "FabricIngress.spgw_ingress.s1u_filter_table",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004871 "next_tables" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004872 "act_2" : "FabricIngress.spgw_ingress.s1u_filter_table"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004873 },
4874 "default_entry" : {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02004875 "action_id" : 42,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004876 "action_const" : true,
4877 "action_data" : [],
4878 "action_entry_const" : true
4879 }
4880 },
4881 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004882 "name" : "FabricIngress.spgw_ingress.s1u_filter_table",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004883 "id" : 3,
4884 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004885 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004886 "line" : 60,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004887 "column" : 10,
4888 "source_fragment" : "s1u_filter_table"
4889 },
4890 "key" : [
4891 {
4892 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004893 "name" : "spgw_meta.s1u_sgw_addr",
4894 "target" : ["userMetadata.spgw", "s1u_sgw_addr"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004895 "mask" : null
4896 }
4897 ],
4898 "match_type" : "exact",
4899 "type" : "simple",
4900 "max_size" : 1024,
4901 "with_counters" : false,
4902 "support_timeout" : false,
4903 "direct_meters" : null,
4904 "action_ids" : [1],
4905 "actions" : ["NoAction"],
4906 "base_default_next" : null,
4907 "next_tables" : {
4908 "__HIT__" : "tbl_act_2",
4909 "__MISS__" : "tbl_act_3"
4910 },
4911 "default_entry" : {
4912 "action_id" : 1,
4913 "action_const" : false,
4914 "action_data" : [],
4915 "action_entry_const" : false
4916 }
4917 },
4918 {
4919 "name" : "tbl_act_2",
4920 "id" : 4,
4921 "key" : [],
4922 "match_type" : "exact",
4923 "type" : "simple",
4924 "max_size" : 1024,
4925 "with_counters" : false,
4926 "support_timeout" : false,
4927 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02004928 "action_ids" : [40],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004929 "actions" : ["act_0"],
4930 "base_default_next" : "node_10",
4931 "next_tables" : {
4932 "act_0" : "node_10"
4933 },
4934 "default_entry" : {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02004935 "action_id" : 40,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004936 "action_const" : true,
4937 "action_data" : [],
4938 "action_entry_const" : true
4939 }
4940 },
4941 {
4942 "name" : "tbl_act_3",
4943 "id" : 5,
4944 "key" : [],
4945 "match_type" : "exact",
4946 "type" : "simple",
4947 "max_size" : 1024,
4948 "with_counters" : false,
4949 "support_timeout" : false,
4950 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02004951 "action_ids" : [41],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004952 "actions" : ["act_1"],
4953 "base_default_next" : "node_10",
4954 "next_tables" : {
4955 "act_1" : "node_10"
4956 },
4957 "default_entry" : {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02004958 "action_id" : 41,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004959 "action_const" : true,
4960 "action_data" : [],
4961 "action_entry_const" : true
4962 }
4963 },
4964 {
4965 "name" : "tbl_act_4",
4966 "id" : 6,
4967 "key" : [],
4968 "match_type" : "exact",
4969 "type" : "simple",
4970 "max_size" : 1024,
4971 "with_counters" : false,
4972 "support_timeout" : false,
4973 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02004974 "action_ids" : [43],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004975 "actions" : ["act_3"],
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004976 "base_default_next" : "node_17",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004977 "next_tables" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004978 "act_3" : "node_17"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004979 },
4980 "default_entry" : {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02004981 "action_id" : 43,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004982 "action_const" : true,
4983 "action_data" : [],
4984 "action_entry_const" : true
4985 }
4986 },
4987 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004988 "name" : "FabricIngress.spgw_ingress.ue_filter_table",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004989 "id" : 7,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004990 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004991 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004992 "line" : 50,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004993 "column" : 10,
4994 "source_fragment" : "ue_filter_table"
4995 },
4996 "key" : [
4997 {
4998 "match_type" : "lpm",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004999 "name" : "ipv4.dst_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005000 "target" : ["ipv4", "dst_addr"],
5001 "mask" : null
5002 }
5003 ],
5004 "match_type" : "lpm",
5005 "type" : "simple",
5006 "max_size" : 1024,
5007 "with_counters" : false,
5008 "support_timeout" : false,
5009 "direct_meters" : null,
5010 "action_ids" : [0],
5011 "actions" : ["NoAction"],
5012 "base_default_next" : null,
5013 "next_tables" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005014 "__HIT__" : "tbl_act_5",
5015 "__MISS__" : "tbl_act_6"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005016 },
5017 "default_entry" : {
5018 "action_id" : 0,
5019 "action_const" : false,
5020 "action_data" : [],
5021 "action_entry_const" : false
5022 }
5023 },
5024 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005025 "name" : "tbl_act_5",
5026 "id" : 8,
5027 "key" : [],
5028 "match_type" : "exact",
5029 "type" : "simple",
5030 "max_size" : 1024,
5031 "with_counters" : false,
5032 "support_timeout" : false,
5033 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02005034 "action_ids" : [44],
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005035 "actions" : ["act_4"],
5036 "base_default_next" : "node_15",
5037 "next_tables" : {
5038 "act_4" : "node_15"
5039 },
5040 "default_entry" : {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02005041 "action_id" : 44,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005042 "action_const" : true,
5043 "action_data" : [],
5044 "action_entry_const" : true
5045 }
5046 },
5047 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005048 "name" : "tbl_act_6",
5049 "id" : 9,
5050 "key" : [],
5051 "match_type" : "exact",
5052 "type" : "simple",
5053 "max_size" : 1024,
5054 "with_counters" : false,
5055 "support_timeout" : false,
5056 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02005057 "action_ids" : [45],
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005058 "actions" : ["act_5"],
5059 "base_default_next" : "node_15",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005060 "next_tables" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005061 "act_5" : "node_15"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005062 },
5063 "default_entry" : {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02005064 "action_id" : 45,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005065 "action_const" : true,
5066 "action_data" : [],
5067 "action_entry_const" : true
5068 }
5069 },
5070 {
5071 "name" : "tbl_act_7",
5072 "id" : 10,
5073 "key" : [],
5074 "match_type" : "exact",
5075 "type" : "simple",
5076 "max_size" : 1024,
5077 "with_counters" : false,
5078 "support_timeout" : false,
5079 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02005080 "action_ids" : [46],
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005081 "actions" : ["act_6"],
5082 "base_default_next" : "node_17",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005083 "next_tables" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005084 "act_6" : "node_17"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005085 },
5086 "default_entry" : {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02005087 "action_id" : 46,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005088 "action_const" : true,
5089 "action_data" : [],
5090 "action_entry_const" : true
5091 }
5092 },
5093 {
5094 "name" : "tbl_act_8",
5095 "id" : 11,
5096 "key" : [],
5097 "match_type" : "exact",
5098 "type" : "simple",
5099 "max_size" : 1024,
5100 "with_counters" : false,
5101 "support_timeout" : false,
5102 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02005103 "action_ids" : [48],
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005104 "actions" : ["act_8"],
5105 "base_default_next" : "node_19",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005106 "next_tables" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005107 "act_8" : "node_19"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005108 },
5109 "default_entry" : {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02005110 "action_id" : 48,
Carmelo Cascone14cde402018-01-25 01:57:18 -08005111 "action_const" : true,
5112 "action_data" : [],
5113 "action_entry_const" : true
5114 }
5115 },
5116 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005117 "name" : "tbl_spgw_ingress_gtpu_decap",
Carmelo Cascone14cde402018-01-25 01:57:18 -08005118 "id" : 12,
5119 "key" : [],
5120 "match_type" : "exact",
5121 "type" : "simple",
5122 "max_size" : 1024,
5123 "with_counters" : false,
5124 "support_timeout" : false,
5125 "direct_meters" : null,
Esin Karaman971fb7f2017-12-28 13:44:52 +00005126 "action_ids" : [14],
Yi Tseng27b9bc02018-04-12 14:52:40 +08005127 "actions" : ["FabricIngress.spgw_ingress.gtpu_decap"],
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005128 "base_default_next" : "node_22",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005129 "next_tables" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005130 "FabricIngress.spgw_ingress.gtpu_decap" : "node_22"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005131 },
5132 "default_entry" : {
Esin Karaman971fb7f2017-12-28 13:44:52 +00005133 "action_id" : 14,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005134 "action_const" : true,
5135 "action_data" : [],
5136 "action_entry_const" : true
5137 }
5138 },
5139 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005140 "name" : "FabricIngress.spgw_ingress.dl_sess_lookup",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005141 "id" : 13,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005142 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005143 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02005144 "line" : 119,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005145 "column" : 10,
5146 "source_fragment" : "dl_sess_lookup"
5147 },
5148 "key" : [
5149 {
5150 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005151 "name" : "ipv4.dst_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005152 "target" : ["ipv4", "dst_addr"],
5153 "mask" : null
5154 }
5155 ],
5156 "match_type" : "exact",
5157 "type" : "simple",
5158 "max_size" : 1024,
5159 "with_counters" : false,
5160 "support_timeout" : false,
5161 "direct_meters" : null,
Esin Karaman971fb7f2017-12-28 13:44:52 +00005162 "action_ids" : [15, 2],
Yi Tseng27b9bc02018-04-12 14:52:40 +08005163 "actions" : ["FabricIngress.spgw_ingress.set_dl_sess_info", "NoAction"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005164 "base_default_next" : null,
5165 "next_tables" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005166 "__HIT__" : "tbl_act_9",
5167 "__MISS__" : "tbl_act_10"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005168 },
5169 "default_entry" : {
5170 "action_id" : 2,
5171 "action_const" : false,
5172 "action_data" : [],
5173 "action_entry_const" : false
5174 }
5175 },
5176 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005177 "name" : "tbl_act_9",
5178 "id" : 14,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005179 "key" : [],
5180 "match_type" : "exact",
5181 "type" : "simple",
5182 "max_size" : 1024,
5183 "with_counters" : false,
5184 "support_timeout" : false,
5185 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02005186 "action_ids" : [49],
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005187 "actions" : ["act_9"],
5188 "base_default_next" : "node_26",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005189 "next_tables" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005190 "act_9" : "node_26"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005191 },
5192 "default_entry" : {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02005193 "action_id" : 49,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005194 "action_const" : true,
5195 "action_data" : [],
5196 "action_entry_const" : true
5197 }
5198 },
5199 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005200 "name" : "tbl_act_10",
5201 "id" : 15,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005202 "key" : [],
5203 "match_type" : "exact",
5204 "type" : "simple",
5205 "max_size" : 1024,
5206 "with_counters" : false,
5207 "support_timeout" : false,
5208 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02005209 "action_ids" : [50],
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005210 "actions" : ["act_10"],
5211 "base_default_next" : "node_26",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005212 "next_tables" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005213 "act_10" : "node_26"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005214 },
5215 "default_entry" : {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02005216 "action_id" : 50,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005217 "action_const" : true,
5218 "action_data" : [],
5219 "action_entry_const" : true
5220 }
5221 },
5222 {
Carmelo Casconea5400af2018-07-17 22:11:54 +02005223 "name" : "tbl_drop_now",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005224 "id" : 16,
Carmelo Cascone14cde402018-01-25 01:57:18 -08005225 "key" : [],
5226 "match_type" : "exact",
5227 "type" : "simple",
5228 "max_size" : 1024,
5229 "with_counters" : false,
5230 "support_timeout" : false,
5231 "direct_meters" : null,
Esin Karaman971fb7f2017-12-28 13:44:52 +00005232 "action_ids" : [13],
Carmelo Casconea5400af2018-07-17 22:11:54 +02005233 "actions" : ["drop_now"],
Yi Tseng27b9bc02018-04-12 14:52:40 +08005234 "base_default_next" : "FabricIngress.spgw_ingress.ue_cdr_table",
Carmelo Cascone14cde402018-01-25 01:57:18 -08005235 "next_tables" : {
Carmelo Casconea5400af2018-07-17 22:11:54 +02005236 "drop_now" : "FabricIngress.spgw_ingress.ue_cdr_table"
Carmelo Cascone14cde402018-01-25 01:57:18 -08005237 },
5238 "default_entry" : {
Esin Karaman971fb7f2017-12-28 13:44:52 +00005239 "action_id" : 13,
Carmelo Cascone14cde402018-01-25 01:57:18 -08005240 "action_const" : true,
5241 "action_data" : [],
5242 "action_entry_const" : true
5243 }
5244 },
5245 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005246 "name" : "FabricIngress.spgw_ingress.ue_cdr_table",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005247 "id" : 17,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005248 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005249 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02005250 "line" : 129,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005251 "column" : 10,
5252 "source_fragment" : "ue_cdr_table"
5253 },
5254 "key" : [
5255 {
5256 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005257 "name" : "ipv4.dst_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005258 "target" : ["ipv4", "dst_addr"],
5259 "mask" : null
5260 }
5261 ],
5262 "match_type" : "exact",
5263 "type" : "simple",
5264 "max_size" : 1024,
5265 "with_counters" : true,
5266 "support_timeout" : false,
5267 "direct_meters" : null,
Esin Karaman971fb7f2017-12-28 13:44:52 +00005268 "action_ids" : [16, 3],
Yi Tseng27b9bc02018-04-12 14:52:40 +08005269 "actions" : ["FabricIngress.spgw_ingress.update_ue_cdr", "NoAction"],
5270 "base_default_next" : "tbl_act_11",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005271 "next_tables" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005272 "FabricIngress.spgw_ingress.update_ue_cdr" : "tbl_act_11",
5273 "NoAction" : "tbl_act_11"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005274 },
5275 "default_entry" : {
5276 "action_id" : 3,
5277 "action_const" : false,
5278 "action_data" : [],
5279 "action_entry_const" : false
5280 }
5281 },
5282 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005283 "name" : "tbl_act_11",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005284 "id" : 18,
Yi Tseng27b9bc02018-04-12 14:52:40 +08005285 "key" : [],
5286 "match_type" : "exact",
5287 "type" : "simple",
5288 "max_size" : 1024,
5289 "with_counters" : false,
5290 "support_timeout" : false,
5291 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02005292 "action_ids" : [51],
Yi Tseng27b9bc02018-04-12 14:52:40 +08005293 "actions" : ["act_11"],
5294 "base_default_next" : "FabricIngress.filtering.ingress_port_vlan",
5295 "next_tables" : {
5296 "act_11" : "FabricIngress.filtering.ingress_port_vlan"
5297 },
5298 "default_entry" : {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02005299 "action_id" : 51,
Yi Tseng27b9bc02018-04-12 14:52:40 +08005300 "action_const" : true,
5301 "action_data" : [],
5302 "action_entry_const" : true
5303 }
5304 },
5305 {
5306 "name" : "FabricIngress.filtering.ingress_port_vlan",
5307 "id" : 19,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005308 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005309 "filename" : "include/control/filtering.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08005310 "line" : 61,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005311 "column" : 10,
5312 "source_fragment" : "ingress_port_vlan"
5313 },
5314 "key" : [
5315 {
5316 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005317 "name" : "standard_metadata.ingress_port",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005318 "target" : ["standard_metadata", "ingress_port"],
5319 "mask" : null
5320 },
5321 {
5322 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005323 "name" : "hdr.vlan_tag.is_valid",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005324 "target" : ["vlan_tag", "$valid$"],
5325 "mask" : null
5326 },
5327 {
5328 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005329 "name" : "hdr.vlan_tag.vlan_id",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005330 "target" : ["vlan_tag", "vlan_id"],
5331 "mask" : null
5332 }
5333 ],
5334 "match_type" : "ternary",
5335 "type" : "simple",
5336 "max_size" : 1024,
5337 "with_counters" : true,
5338 "support_timeout" : false,
5339 "direct_meters" : null,
Esin Karaman971fb7f2017-12-28 13:44:52 +00005340 "action_ids" : [19, 18, 10, 17],
Yi Tseng27b9bc02018-04-12 14:52:40 +08005341 "actions" : ["FabricIngress.filtering.push_internal_vlan", "FabricIngress.filtering.set_vlan", "nop", "FabricIngress.filtering.drop"],
5342 "base_default_next" : "FabricIngress.filtering.fwd_classifier",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005343 "next_tables" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005344 "FabricIngress.filtering.push_internal_vlan" : "FabricIngress.filtering.fwd_classifier",
5345 "FabricIngress.filtering.set_vlan" : "FabricIngress.filtering.fwd_classifier",
5346 "nop" : "FabricIngress.filtering.fwd_classifier",
5347 "FabricIngress.filtering.drop" : "FabricIngress.filtering.fwd_classifier"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005348 },
5349 "default_entry" : {
Esin Karaman971fb7f2017-12-28 13:44:52 +00005350 "action_id" : 10,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005351 "action_const" : true,
5352 "action_data" : [],
5353 "action_entry_const" : true
5354 }
5355 },
5356 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005357 "name" : "FabricIngress.filtering.fwd_classifier",
5358 "id" : 20,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005359 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005360 "filename" : "include/control/filtering.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08005361 "line" : 98,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005362 "column" : 10,
5363 "source_fragment" : "fwd_classifier"
5364 },
5365 "key" : [
5366 {
5367 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005368 "name" : "standard_metadata.ingress_port",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005369 "target" : ["standard_metadata", "ingress_port"],
5370 "mask" : null
5371 },
5372 {
5373 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005374 "name" : "hdr.ethernet.dst_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005375 "target" : ["ethernet", "dst_addr"],
5376 "mask" : null
5377 },
5378 {
5379 "match_type" : "exact",
Yi Tseng8235a1a2018-07-24 20:57:28 +08005380 "name" : "hdr.vlan_tag.ether_type",
5381 "target" : ["vlan_tag", "ether_type"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005382 "mask" : null
5383 }
5384 ],
5385 "match_type" : "exact",
5386 "type" : "simple",
5387 "max_size" : 1024,
5388 "with_counters" : true,
5389 "support_timeout" : false,
5390 "direct_meters" : null,
Esin Karaman971fb7f2017-12-28 13:44:52 +00005391 "action_ids" : [20],
Yi Tseng27b9bc02018-04-12 14:52:40 +08005392 "actions" : ["FabricIngress.filtering.set_forwarding_type"],
5393 "base_default_next" : "node_32",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005394 "next_tables" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005395 "FabricIngress.filtering.set_forwarding_type" : "node_32"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005396 },
5397 "default_entry" : {
Esin Karaman971fb7f2017-12-28 13:44:52 +00005398 "action_id" : 20,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005399 "action_const" : true,
5400 "action_data" : ["0x0"],
5401 "action_entry_const" : true
5402 }
5403 },
5404 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005405 "name" : "FabricIngress.forwarding.bridging",
5406 "id" : 21,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005407 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005408 "filename" : "include/control/forwarding.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08005409 "line" : 41,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005410 "column" : 10,
5411 "source_fragment" : "bridging"
5412 },
5413 "key" : [
5414 {
5415 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005416 "name" : "hdr.vlan_tag.vlan_id",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005417 "target" : ["vlan_tag", "vlan_id"],
5418 "mask" : null
5419 },
5420 {
5421 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005422 "name" : "hdr.ethernet.dst_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005423 "target" : ["ethernet", "dst_addr"],
5424 "mask" : null
5425 }
5426 ],
5427 "match_type" : "ternary",
5428 "type" : "simple",
5429 "max_size" : 1024,
5430 "with_counters" : true,
5431 "support_timeout" : false,
5432 "direct_meters" : null,
Yi Tseng47eac892018-07-11 02:17:04 +08005433 "action_ids" : [21, 4],
5434 "actions" : ["FabricIngress.forwarding.set_next_id_bridging", "NoAction"],
Yi Tseng27b9bc02018-04-12 14:52:40 +08005435 "base_default_next" : "FabricIngress.forwarding.acl",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005436 "next_tables" : {
Yi Tseng47eac892018-07-11 02:17:04 +08005437 "FabricIngress.forwarding.set_next_id_bridging" : "FabricIngress.forwarding.acl",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005438 "NoAction" : "FabricIngress.forwarding.acl"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005439 },
5440 "default_entry" : {
5441 "action_id" : 4,
5442 "action_const" : false,
5443 "action_data" : [],
5444 "action_entry_const" : false
5445 }
5446 },
5447 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005448 "name" : "FabricIngress.forwarding.mpls",
5449 "id" : 22,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005450 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005451 "filename" : "include/control/forwarding.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08005452 "line" : 65,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005453 "column" : 10,
5454 "source_fragment" : "mpls"
5455 },
5456 "key" : [
5457 {
5458 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005459 "name" : "hdr.mpls.label",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005460 "target" : ["mpls", "label"],
5461 "mask" : null
5462 }
5463 ],
5464 "match_type" : "exact",
5465 "type" : "simple",
5466 "max_size" : 1024,
5467 "with_counters" : true,
5468 "support_timeout" : false,
5469 "direct_meters" : null,
Yi Tseng47eac892018-07-11 02:17:04 +08005470 "action_ids" : [22, 5],
Yi Tseng27b9bc02018-04-12 14:52:40 +08005471 "actions" : ["FabricIngress.forwarding.pop_mpls_and_next", "NoAction"],
5472 "base_default_next" : "tbl_act_12",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005473 "next_tables" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005474 "FabricIngress.forwarding.pop_mpls_and_next" : "tbl_act_12",
5475 "NoAction" : "tbl_act_12"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005476 },
5477 "default_entry" : {
5478 "action_id" : 5,
5479 "action_const" : false,
5480 "action_data" : [],
5481 "action_entry_const" : false
5482 }
5483 },
5484 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005485 "name" : "tbl_act_12",
5486 "id" : 23,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005487 "key" : [],
5488 "match_type" : "exact",
5489 "type" : "simple",
5490 "max_size" : 1024,
5491 "with_counters" : false,
5492 "support_timeout" : false,
5493 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02005494 "action_ids" : [52],
Yi Tseng27b9bc02018-04-12 14:52:40 +08005495 "actions" : ["act_12"],
5496 "base_default_next" : "FabricIngress.forwarding.acl",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005497 "next_tables" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005498 "act_12" : "FabricIngress.forwarding.acl"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005499 },
5500 "default_entry" : {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02005501 "action_id" : 52,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005502 "action_const" : true,
5503 "action_data" : [],
5504 "action_entry_const" : true
5505 }
5506 },
5507 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005508 "name" : "FabricIngress.forwarding.unicast_v4",
5509 "id" : 24,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005510 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005511 "filename" : "include/control/forwarding.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08005512 "line" : 87,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005513 "column" : 10,
5514 "source_fragment" : "unicast_v4"
5515 },
5516 "key" : [
5517 {
5518 "match_type" : "lpm",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005519 "name" : "hdr.ipv4.dst_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005520 "target" : ["ipv4", "dst_addr"],
5521 "mask" : null
5522 }
5523 ],
5524 "match_type" : "lpm",
5525 "type" : "simple",
5526 "max_size" : 1024,
5527 "with_counters" : true,
5528 "support_timeout" : false,
5529 "direct_meters" : null,
Esin Karaman971fb7f2017-12-28 13:44:52 +00005530 "action_ids" : [23, 6],
Yi Tseng47eac892018-07-11 02:17:04 +08005531 "actions" : ["FabricIngress.forwarding.set_next_id_unicast_v4", "NoAction"],
Yi Tseng27b9bc02018-04-12 14:52:40 +08005532 "base_default_next" : "FabricIngress.forwarding.acl",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005533 "next_tables" : {
Yi Tseng47eac892018-07-11 02:17:04 +08005534 "FabricIngress.forwarding.set_next_id_unicast_v4" : "FabricIngress.forwarding.acl",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005535 "NoAction" : "FabricIngress.forwarding.acl"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005536 },
5537 "default_entry" : {
5538 "action_id" : 6,
5539 "action_const" : false,
5540 "action_data" : [],
5541 "action_entry_const" : false
5542 }
5543 },
5544 {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005545 "name" : "FabricIngress.forwarding.acl",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005546 "id" : 25,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005547 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005548 "filename" : "include/control/forwarding.p4",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02005549 "line" : 127,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005550 "column" : 10,
5551 "source_fragment" : "acl"
5552 },
5553 "key" : [
5554 {
5555 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005556 "name" : "standard_metadata.ingress_port",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005557 "target" : ["standard_metadata", "ingress_port"],
5558 "mask" : null
5559 },
5560 {
5561 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005562 "name" : "fabric_metadata.ip_proto",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005563 "target" : ["scalars", "fabric_metadata_t.ip_proto"],
5564 "mask" : null
5565 },
5566 {
5567 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005568 "name" : "fabric_metadata.l4_src_port",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005569 "target" : ["scalars", "fabric_metadata_t.l4_src_port"],
5570 "mask" : null
5571 },
5572 {
5573 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005574 "name" : "fabric_metadata.l4_dst_port",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005575 "target" : ["scalars", "fabric_metadata_t.l4_dst_port"],
5576 "mask" : null
5577 },
5578 {
5579 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005580 "name" : "hdr.ethernet.dst_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005581 "target" : ["ethernet", "dst_addr"],
5582 "mask" : null
5583 },
5584 {
5585 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005586 "name" : "hdr.ethernet.src_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005587 "target" : ["ethernet", "src_addr"],
5588 "mask" : null
5589 },
5590 {
5591 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005592 "name" : "hdr.vlan_tag.vlan_id",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005593 "target" : ["vlan_tag", "vlan_id"],
5594 "mask" : null
5595 },
5596 {
5597 "match_type" : "ternary",
Yi Tseng8235a1a2018-07-24 20:57:28 +08005598 "name" : "hdr.vlan_tag.ether_type",
5599 "target" : ["vlan_tag", "ether_type"],
5600 "mask" : null
5601 },
5602 {
5603 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005604 "name" : "hdr.ipv4.src_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005605 "target" : ["ipv4", "src_addr"],
5606 "mask" : null
5607 },
5608 {
5609 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005610 "name" : "hdr.ipv4.dst_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005611 "target" : ["ipv4", "dst_addr"],
5612 "mask" : null
5613 },
5614 {
5615 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005616 "name" : "hdr.icmp.icmp_type",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005617 "target" : ["icmp", "icmp_type"],
5618 "mask" : null
5619 },
5620 {
5621 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005622 "name" : "hdr.icmp.icmp_code",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005623 "target" : ["icmp", "icmp_code"],
5624 "mask" : null
5625 }
5626 ],
5627 "match_type" : "ternary",
5628 "type" : "simple",
Yi Tseng8235a1a2018-07-24 20:57:28 +08005629 "max_size" : 128,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005630 "with_counters" : true,
5631 "support_timeout" : false,
5632 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02005633 "action_ids" : [24, 25, 26, 27, 11],
5634 "actions" : ["FabricIngress.forwarding.set_next_id_acl", "FabricIngress.forwarding.punt_to_cpu", "FabricIngress.forwarding.clone_to_cpu", "FabricIngress.forwarding.drop", "nop"],
Carmelo Casconea5400af2018-07-17 22:11:54 +02005635 "base_default_next" : "tbl_act_13",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005636 "next_tables" : {
Carmelo Casconea5400af2018-07-17 22:11:54 +02005637 "FabricIngress.forwarding.set_next_id_acl" : "tbl_act_13",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02005638 "FabricIngress.forwarding.punt_to_cpu" : "tbl_act_13",
5639 "FabricIngress.forwarding.clone_to_cpu" : "tbl_act_13",
Carmelo Casconea5400af2018-07-17 22:11:54 +02005640 "FabricIngress.forwarding.drop" : "tbl_act_13",
5641 "nop" : "tbl_act_13"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005642 },
5643 "default_entry" : {
Esin Karaman971fb7f2017-12-28 13:44:52 +00005644 "action_id" : 11,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005645 "action_const" : true,
5646 "action_data" : [],
5647 "action_entry_const" : true
5648 }
5649 },
5650 {
Carmelo Casconea5400af2018-07-17 22:11:54 +02005651 "name" : "tbl_act_13",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005652 "id" : 26,
Carmelo Casconea5400af2018-07-17 22:11:54 +02005653 "key" : [],
5654 "match_type" : "exact",
5655 "type" : "simple",
5656 "max_size" : 1024,
5657 "with_counters" : false,
5658 "support_timeout" : false,
5659 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02005660 "action_ids" : [53],
Carmelo Casconea5400af2018-07-17 22:11:54 +02005661 "actions" : ["act_13"],
5662 "base_default_next" : "FabricIngress.next.vlan_meta",
5663 "next_tables" : {
5664 "act_13" : "FabricIngress.next.vlan_meta"
5665 },
5666 "default_entry" : {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02005667 "action_id" : 53,
Carmelo Casconea5400af2018-07-17 22:11:54 +02005668 "action_const" : true,
5669 "action_data" : [],
5670 "action_entry_const" : true
5671 }
5672 },
5673 {
5674 "name" : "FabricIngress.next.vlan_meta",
5675 "id" : 27,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005676 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005677 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08005678 "line" : 65,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005679 "column" : 10,
5680 "source_fragment" : "vlan_meta"
5681 },
5682 "key" : [
5683 {
5684 "match_type" : "exact",
5685 "name" : "fabric_metadata.next_id",
5686 "target" : ["scalars", "fabric_metadata_t.next_id"],
5687 "mask" : null
5688 }
5689 ],
5690 "match_type" : "exact",
5691 "type" : "simple",
5692 "max_size" : 1024,
5693 "with_counters" : true,
5694 "support_timeout" : false,
5695 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02005696 "action_ids" : [28, 12],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005697 "actions" : ["FabricIngress.next.set_vlan", "nop"],
5698 "base_default_next" : "FabricIngress.next.simple",
5699 "next_tables" : {
5700 "FabricIngress.next.set_vlan" : "FabricIngress.next.simple",
5701 "nop" : "FabricIngress.next.simple"
5702 },
5703 "default_entry" : {
Esin Karaman971fb7f2017-12-28 13:44:52 +00005704 "action_id" : 12,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005705 "action_const" : false,
5706 "action_data" : [],
5707 "action_entry_const" : false
5708 }
5709 },
5710 {
5711 "name" : "FabricIngress.next.simple",
Carmelo Casconea5400af2018-07-17 22:11:54 +02005712 "id" : 28,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005713 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005714 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08005715 "line" : 122,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005716 "column" : 10,
5717 "source_fragment" : "simple"
5718 },
5719 "key" : [
5720 {
5721 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005722 "name" : "fabric_metadata.next_id",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005723 "target" : ["scalars", "fabric_metadata_t.next_id"],
5724 "mask" : null
5725 }
5726 ],
5727 "match_type" : "exact",
5728 "type" : "simple",
5729 "max_size" : 1024,
5730 "with_counters" : true,
5731 "support_timeout" : false,
5732 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02005733 "action_ids" : [29, 30, 31, 32, 33, 34, 7],
Yi Tseng47eac892018-07-11 02:17:04 +08005734 "actions" : ["FabricIngress.next.output_simple", "FabricIngress.next.set_vlan_output", "FabricIngress.next.l3_routing_simple", "FabricIngress.next.mpls_routing_v4_simple", "FabricIngress.next.mpls_routing_v6_simple", "FabricIngress.next.l3_routing_vlan", "NoAction"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005735 "base_default_next" : null,
5736 "next_tables" : {
Carmelo Casconea5400af2018-07-17 22:11:54 +02005737 "__HIT__" : "tbl_act_14",
5738 "__MISS__" : "tbl_act_15"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005739 },
5740 "default_entry" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005741 "action_id" : 7,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005742 "action_const" : false,
5743 "action_data" : [],
5744 "action_entry_const" : false
5745 }
5746 },
5747 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005748 "name" : "tbl_act_14",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005749 "id" : 29,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005750 "key" : [],
5751 "match_type" : "exact",
5752 "type" : "simple",
5753 "max_size" : 1024,
5754 "with_counters" : false,
5755 "support_timeout" : false,
5756 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02005757 "action_ids" : [54],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005758 "actions" : ["act_14"],
Carmelo Casconea5400af2018-07-17 22:11:54 +02005759 "base_default_next" : "node_45",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005760 "next_tables" : {
Carmelo Casconea5400af2018-07-17 22:11:54 +02005761 "act_14" : "node_45"
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005762 },
5763 "default_entry" : {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02005764 "action_id" : 54,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005765 "action_const" : true,
5766 "action_data" : [],
5767 "action_entry_const" : true
5768 }
5769 },
5770 {
5771 "name" : "tbl_act_15",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005772 "id" : 30,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005773 "key" : [],
5774 "match_type" : "exact",
5775 "type" : "simple",
5776 "max_size" : 1024,
5777 "with_counters" : false,
5778 "support_timeout" : false,
5779 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02005780 "action_ids" : [55],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005781 "actions" : ["act_15"],
Carmelo Casconea5400af2018-07-17 22:11:54 +02005782 "base_default_next" : "node_45",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005783 "next_tables" : {
Carmelo Casconea5400af2018-07-17 22:11:54 +02005784 "act_15" : "node_45"
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005785 },
5786 "default_entry" : {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02005787 "action_id" : 55,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005788 "action_const" : true,
5789 "action_data" : [],
5790 "action_entry_const" : true
5791 }
5792 },
5793 {
5794 "name" : "FabricIngress.next.hashed",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005795 "id" : 31,
Yi Tseng27b9bc02018-04-12 14:52:40 +08005796 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005797 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08005798 "line" : 175,
Yi Tseng27b9bc02018-04-12 14:52:40 +08005799 "column" : 10,
5800 "source_fragment" : "hashed"
5801 },
5802 "key" : [
5803 {
5804 "match_type" : "exact",
5805 "name" : "fabric_metadata.next_id",
5806 "target" : ["scalars", "fabric_metadata_t.next_id"],
5807 "mask" : null
5808 }
5809 ],
5810 "match_type" : "exact",
5811 "type" : "indirect_ws",
5812 "action_profile" : "FabricIngress.next.ecmp_selector",
5813 "max_size" : 1024,
5814 "with_counters" : true,
5815 "support_timeout" : false,
5816 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02005817 "action_ids" : [35, 36, 37, 8],
Yi Tseng47eac892018-07-11 02:17:04 +08005818 "actions" : ["FabricIngress.next.l3_routing_hashed", "FabricIngress.next.mpls_routing_v4_hashed", "FabricIngress.next.mpls_routing_v6_hashed", "NoAction"],
Carmelo Casconea5400af2018-07-17 22:11:54 +02005819 "base_default_next" : null,
Yi Tseng27b9bc02018-04-12 14:52:40 +08005820 "next_tables" : {
Carmelo Casconea5400af2018-07-17 22:11:54 +02005821 "__HIT__" : "tbl_act_16",
5822 "__MISS__" : "tbl_act_17"
5823 }
5824 },
5825 {
5826 "name" : "tbl_act_16",
5827 "id" : 32,
5828 "key" : [],
5829 "match_type" : "exact",
5830 "type" : "simple",
5831 "max_size" : 1024,
5832 "with_counters" : false,
5833 "support_timeout" : false,
5834 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02005835 "action_ids" : [56],
Carmelo Casconea5400af2018-07-17 22:11:54 +02005836 "actions" : ["act_16"],
5837 "base_default_next" : "node_49",
5838 "next_tables" : {
5839 "act_16" : "node_49"
5840 },
5841 "default_entry" : {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02005842 "action_id" : 56,
Carmelo Casconea5400af2018-07-17 22:11:54 +02005843 "action_const" : true,
5844 "action_data" : [],
5845 "action_entry_const" : true
5846 }
5847 },
5848 {
5849 "name" : "tbl_act_17",
5850 "id" : 33,
5851 "key" : [],
5852 "match_type" : "exact",
5853 "type" : "simple",
5854 "max_size" : 1024,
5855 "with_counters" : false,
5856 "support_timeout" : false,
5857 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02005858 "action_ids" : [57],
Carmelo Casconea5400af2018-07-17 22:11:54 +02005859 "actions" : ["act_17"],
5860 "base_default_next" : "node_49",
5861 "next_tables" : {
5862 "act_17" : "node_49"
5863 },
5864 "default_entry" : {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02005865 "action_id" : 57,
Carmelo Casconea5400af2018-07-17 22:11:54 +02005866 "action_const" : true,
5867 "action_data" : [],
5868 "action_entry_const" : true
Esin Karaman971fb7f2017-12-28 13:44:52 +00005869 }
5870 },
5871 {
5872 "name" : "FabricIngress.next.multicast",
Carmelo Casconea5400af2018-07-17 22:11:54 +02005873 "id" : 34,
Esin Karaman971fb7f2017-12-28 13:44:52 +00005874 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005875 "filename" : "include/control/next.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02005876 "line" : 207,
Esin Karaman971fb7f2017-12-28 13:44:52 +00005877 "column" : 10,
5878 "source_fragment" : "multicast"
5879 },
5880 "key" : [
5881 {
5882 "match_type" : "exact",
5883 "name" : "fabric_metadata.next_id",
5884 "target" : ["scalars", "fabric_metadata_t.next_id"],
5885 "mask" : null
5886 }
5887 ],
5888 "match_type" : "exact",
5889 "type" : "simple",
5890 "max_size" : 1024,
5891 "with_counters" : true,
5892 "support_timeout" : false,
5893 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02005894 "action_ids" : [38, 9],
Esin Karaman971fb7f2017-12-28 13:44:52 +00005895 "actions" : ["FabricIngress.next.set_mcast_group", "NoAction"],
Carmelo Casconea5400af2018-07-17 22:11:54 +02005896 "base_default_next" : null,
Esin Karaman971fb7f2017-12-28 13:44:52 +00005897 "next_tables" : {
Carmelo Casconea5400af2018-07-17 22:11:54 +02005898 "__HIT__" : "tbl_act_18",
5899 "__MISS__" : "tbl_act_19"
Esin Karaman971fb7f2017-12-28 13:44:52 +00005900 },
5901 "default_entry" : {
5902 "action_id" : 9,
5903 "action_const" : false,
5904 "action_data" : [],
5905 "action_entry_const" : false
Yi Tseng27b9bc02018-04-12 14:52:40 +08005906 }
5907 },
5908 {
Carmelo Casconea5400af2018-07-17 22:11:54 +02005909 "name" : "tbl_act_18",
5910 "id" : 35,
Yi Tseng27b9bc02018-04-12 14:52:40 +08005911 "key" : [],
5912 "match_type" : "exact",
5913 "type" : "simple",
5914 "max_size" : 1024,
5915 "with_counters" : false,
5916 "support_timeout" : false,
5917 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02005918 "action_ids" : [58],
Carmelo Casconea5400af2018-07-17 22:11:54 +02005919 "actions" : ["act_18"],
5920 "base_default_next" : "node_53",
Esin Karaman971fb7f2017-12-28 13:44:52 +00005921 "next_tables" : {
Carmelo Casconea5400af2018-07-17 22:11:54 +02005922 "act_18" : "node_53"
Esin Karaman971fb7f2017-12-28 13:44:52 +00005923 },
5924 "default_entry" : {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02005925 "action_id" : 58,
Esin Karaman971fb7f2017-12-28 13:44:52 +00005926 "action_const" : true,
5927 "action_data" : [],
5928 "action_entry_const" : true
5929 }
5930 },
5931 {
Carmelo Casconea5400af2018-07-17 22:11:54 +02005932 "name" : "tbl_act_19",
5933 "id" : 36,
Esin Karaman971fb7f2017-12-28 13:44:52 +00005934 "key" : [],
5935 "match_type" : "exact",
5936 "type" : "simple",
5937 "max_size" : 1024,
5938 "with_counters" : false,
5939 "support_timeout" : false,
5940 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02005941 "action_ids" : [59],
Carmelo Casconea5400af2018-07-17 22:11:54 +02005942 "actions" : ["act_19"],
5943 "base_default_next" : "node_53",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005944 "next_tables" : {
Carmelo Casconea5400af2018-07-17 22:11:54 +02005945 "act_19" : "node_53"
Yi Tseng27b9bc02018-04-12 14:52:40 +08005946 },
5947 "default_entry" : {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02005948 "action_id" : 59,
Carmelo Casconea5400af2018-07-17 22:11:54 +02005949 "action_const" : true,
5950 "action_data" : [],
5951 "action_entry_const" : true
5952 }
5953 },
5954 {
5955 "name" : "tbl_act_20",
5956 "id" : 37,
5957 "key" : [],
5958 "match_type" : "exact",
5959 "type" : "simple",
5960 "max_size" : 1024,
5961 "with_counters" : false,
5962 "support_timeout" : false,
5963 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02005964 "action_ids" : [60],
Carmelo Casconea5400af2018-07-17 22:11:54 +02005965 "actions" : ["act_20"],
5966 "base_default_next" : "node_55",
5967 "next_tables" : {
5968 "act_20" : "node_55"
5969 },
5970 "default_entry" : {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02005971 "action_id" : 60,
Carmelo Casconea5400af2018-07-17 22:11:54 +02005972 "action_const" : true,
5973 "action_data" : [],
5974 "action_entry_const" : true
5975 }
5976 },
5977 {
5978 "name" : "tbl_act_21",
5979 "id" : 38,
5980 "key" : [],
5981 "match_type" : "exact",
5982 "type" : "simple",
5983 "max_size" : 1024,
5984 "with_counters" : false,
5985 "support_timeout" : false,
5986 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02005987 "action_ids" : [61],
Carmelo Casconea5400af2018-07-17 22:11:54 +02005988 "actions" : ["act_21"],
5989 "base_default_next" : "node_59",
5990 "next_tables" : {
5991 "act_21" : "node_59"
5992 },
5993 "default_entry" : {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02005994 "action_id" : 61,
Carmelo Casconea5400af2018-07-17 22:11:54 +02005995 "action_const" : true,
5996 "action_data" : [],
5997 "action_entry_const" : true
5998 }
5999 },
6000 {
6001 "name" : "tbl_act_22",
6002 "id" : 39,
6003 "key" : [],
6004 "match_type" : "exact",
6005 "type" : "simple",
6006 "max_size" : 1024,
6007 "with_counters" : false,
6008 "support_timeout" : false,
6009 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02006010 "action_ids" : [62],
Carmelo Casconea5400af2018-07-17 22:11:54 +02006011 "actions" : ["act_22"],
6012 "base_default_next" : "node_61",
6013 "next_tables" : {
6014 "act_22" : "node_61"
6015 },
6016 "default_entry" : {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02006017 "action_id" : 62,
Carmelo Casconea5400af2018-07-17 22:11:54 +02006018 "action_const" : true,
6019 "action_data" : [],
6020 "action_entry_const" : true
6021 }
6022 },
6023 {
6024 "name" : "tbl_act_23",
6025 "id" : 40,
6026 "key" : [],
6027 "match_type" : "exact",
6028 "type" : "simple",
6029 "max_size" : 1024,
6030 "with_counters" : false,
6031 "support_timeout" : false,
6032 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02006033 "action_ids" : [63],
Carmelo Casconea5400af2018-07-17 22:11:54 +02006034 "actions" : ["act_23"],
6035 "base_default_next" : null,
6036 "next_tables" : {
6037 "act_23" : null
6038 },
6039 "default_entry" : {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02006040 "action_id" : 63,
Carmelo Cascone14cde402018-01-25 01:57:18 -08006041 "action_const" : true,
6042 "action_data" : [],
6043 "action_entry_const" : true
6044 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006045 }
6046 ],
6047 "action_profiles" : [
6048 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08006049 "name" : "FabricIngress.next.ecmp_selector",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006050 "id" : 0,
6051 "max_size" : 64,
6052 "selector" : {
6053 "algo" : "crc16",
6054 "input" : [
6055 {
6056 "type" : "field",
Yi Tseng3d3956d2018-01-31 17:28:05 -08006057 "value" : ["ipv4", "dst_addr"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006058 },
6059 {
6060 "type" : "field",
Yi Tseng3d3956d2018-01-31 17:28:05 -08006061 "value" : ["ipv4", "src_addr"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006062 },
6063 {
6064 "type" : "field",
6065 "value" : ["scalars", "fabric_metadata_t.ip_proto"]
6066 },
6067 {
6068 "type" : "field",
6069 "value" : ["scalars", "fabric_metadata_t.l4_src_port"]
6070 },
6071 {
6072 "type" : "field",
6073 "value" : ["scalars", "fabric_metadata_t.l4_dst_port"]
6074 }
6075 ]
6076 }
6077 }
6078 ],
6079 "conditionals" : [
6080 {
6081 "name" : "node_2",
6082 "id" : 0,
6083 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006084 "filename" : "include/control/packetio.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006085 "line" : 25,
6086 "column" : 12,
6087 "source_fragment" : "hdr.packet_out.isValid()"
6088 },
6089 "expression" : {
6090 "type" : "expression",
6091 "value" : {
6092 "op" : "d2b",
6093 "left" : null,
6094 "right" : {
6095 "type" : "field",
6096 "value" : ["packet_out", "$valid$"]
6097 }
6098 }
6099 },
6100 "true_next" : "tbl_act",
6101 "false_next" : "tbl_act_0"
6102 },
6103 {
6104 "name" : "node_5",
6105 "id" : 1,
6106 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006107 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02006108 "line" : 142,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006109 "column" : 12,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006110 "source_fragment" : "gtpu.isValid()"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006111 },
6112 "expression" : {
6113 "type" : "expression",
6114 "value" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006115 "op" : "d2b",
6116 "left" : null,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006117 "right" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006118 "type" : "field",
6119 "value" : ["gtpu", "$valid$"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006120 }
6121 }
6122 },
6123 "true_next" : "tbl_act_1",
Yi Tseng27b9bc02018-04-12 14:52:40 +08006124 "false_next" : "FabricIngress.spgw_ingress.ue_filter_table"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006125 },
6126 {
6127 "name" : "node_10",
6128 "id" : 2,
6129 "expression" : {
6130 "type" : "expression",
6131 "value" : {
6132 "op" : "d2b",
6133 "left" : null,
6134 "right" : {
6135 "type" : "field",
6136 "value" : ["scalars", "spgw_ingress_tmp_2"]
6137 }
6138 }
6139 },
6140 "true_next" : "tbl_act_4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006141 "false_next" : "node_17"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006142 },
6143 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006144 "name" : "node_15",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006145 "id" : 3,
6146 "expression" : {
6147 "type" : "expression",
6148 "value" : {
6149 "op" : "d2b",
6150 "left" : null,
6151 "right" : {
6152 "type" : "field",
6153 "value" : ["scalars", "spgw_ingress_tmp_3"]
6154 }
6155 }
6156 },
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006157 "true_next" : "tbl_act_7",
6158 "false_next" : "node_17"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006159 },
6160 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006161 "name" : "node_17",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006162 "id" : 4,
6163 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006164 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02006165 "line" : 162,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006166 "column" : 12,
Esin Karaman971fb7f2017-12-28 13:44:52 +00006167 "source_fragment" : "spgw_meta.do_spgw == false"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006168 },
6169 "expression" : {
6170 "type" : "expression",
6171 "value" : {
Carmelo Cascone228092b2018-06-15 20:41:10 +02006172 "op" : "==",
6173 "left" : {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006174 "type" : "expression",
6175 "value" : {
6176 "op" : "d2b",
6177 "left" : null,
6178 "right" : {
6179 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08006180 "value" : ["userMetadata.spgw", "do_spgw"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006181 }
6182 }
Carmelo Cascone228092b2018-06-15 20:41:10 +02006183 },
6184 "right" : {
6185 "type" : "bool",
Esin Karaman971fb7f2017-12-28 13:44:52 +00006186 "value" : false
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006187 }
6188 }
6189 },
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006190 "true_next" : "tbl_act_8",
6191 "false_next" : "node_19"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006192 },
6193 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006194 "name" : "node_19",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006195 "id" : 5,
6196 "expression" : {
6197 "type" : "expression",
6198 "value" : {
6199 "op" : "not",
6200 "left" : null,
6201 "right" : {
6202 "type" : "expression",
6203 "value" : {
6204 "op" : "d2b",
6205 "left" : null,
6206 "right" : {
6207 "type" : "field",
6208 "value" : ["scalars", "spgw_ingress_hasReturned_0"]
6209 }
6210 }
6211 }
6212 }
6213 },
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006214 "true_next" : "node_20",
Yi Tseng27b9bc02018-04-12 14:52:40 +08006215 "false_next" : "FabricIngress.filtering.ingress_port_vlan"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006216 },
6217 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006218 "name" : "node_20",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006219 "id" : 6,
6220 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006221 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02006222 "line" : 167,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006223 "column" : 12,
6224 "source_fragment" : "spgw_meta.direction == DIR_UPLINK"
6225 },
6226 "expression" : {
6227 "type" : "expression",
6228 "value" : {
6229 "op" : "==",
6230 "left" : {
6231 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08006232 "value" : ["userMetadata.spgw", "direction"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006233 },
6234 "right" : {
6235 "type" : "hexstr",
6236 "value" : "0x00"
6237 }
6238 }
6239 },
6240 "true_next" : "tbl_spgw_ingress_gtpu_decap",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006241 "false_next" : "node_22"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006242 },
6243 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006244 "name" : "node_22",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006245 "id" : 7,
6246 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006247 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02006248 "line" : 184,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006249 "column" : 12,
6250 "source_fragment" : "spgw_meta.direction == DIR_DOWNLINK"
6251 },
6252 "expression" : {
6253 "type" : "expression",
6254 "value" : {
6255 "op" : "==",
6256 "left" : {
6257 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08006258 "value" : ["userMetadata.spgw", "direction"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006259 },
6260 "right" : {
6261 "type" : "hexstr",
6262 "value" : "0x01"
6263 }
6264 }
6265 },
Yi Tseng27b9bc02018-04-12 14:52:40 +08006266 "true_next" : "FabricIngress.spgw_ingress.dl_sess_lookup",
6267 "false_next" : "tbl_act_11"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006268 },
6269 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006270 "name" : "node_26",
6271 "id" : 8,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006272 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006273 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02006274 "line" : 185,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006275 "column" : 16,
6276 "source_fragment" : "!dl_sess_lookup.apply().hit"
6277 },
6278 "expression" : {
6279 "type" : "expression",
6280 "value" : {
6281 "op" : "not",
6282 "left" : null,
6283 "right" : {
6284 "type" : "expression",
6285 "value" : {
6286 "op" : "d2b",
6287 "left" : null,
6288 "right" : {
6289 "type" : "field",
6290 "value" : ["scalars", "spgw_ingress_tmp_4"]
6291 }
6292 }
6293 }
6294 }
6295 },
Carmelo Casconea5400af2018-07-17 22:11:54 +02006296 "true_next" : "tbl_drop_now",
Yi Tseng27b9bc02018-04-12 14:52:40 +08006297 "false_next" : "FabricIngress.spgw_ingress.ue_cdr_table"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006298 },
6299 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08006300 "name" : "node_32",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006301 "id" : 9,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006302 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006303 "filename" : "include/control/forwarding.p4",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02006304 "line" : 231,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006305 "column" : 11,
6306 "source_fragment" : "fabric_metadata.fwd_type == FWD_BRIDGING"
6307 },
6308 "expression" : {
6309 "type" : "expression",
6310 "value" : {
6311 "op" : "==",
6312 "left" : {
6313 "type" : "field",
6314 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
6315 },
6316 "right" : {
6317 "type" : "hexstr",
6318 "value" : "0x00"
6319 }
6320 }
6321 },
Yi Tseng27b9bc02018-04-12 14:52:40 +08006322 "true_next" : "FabricIngress.forwarding.bridging",
6323 "false_next" : "node_34"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006324 },
6325 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08006326 "name" : "node_34",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006327 "id" : 10,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006328 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006329 "filename" : "include/control/forwarding.p4",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02006330 "line" : 232,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006331 "column" : 17,
6332 "source_fragment" : "fabric_metadata.fwd_type == FWD_MPLS"
6333 },
6334 "expression" : {
6335 "type" : "expression",
6336 "value" : {
6337 "op" : "==",
6338 "left" : {
6339 "type" : "field",
6340 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
6341 },
6342 "right" : {
6343 "type" : "hexstr",
6344 "value" : "0x01"
6345 }
6346 }
6347 },
Yi Tseng27b9bc02018-04-12 14:52:40 +08006348 "true_next" : "FabricIngress.forwarding.mpls",
6349 "false_next" : "node_37"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006350 },
6351 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08006352 "name" : "node_37",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006353 "id" : 11,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006354 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006355 "filename" : "include/control/forwarding.p4",
Yi Tseng8235a1a2018-07-24 20:57:28 +08006356 "line" : 246,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006357 "column" : 17,
6358 "source_fragment" : "fabric_metadata.fwd_type == FWD_IPV4_UNICAST"
6359 },
6360 "expression" : {
6361 "type" : "expression",
6362 "value" : {
6363 "op" : "==",
6364 "left" : {
6365 "type" : "field",
6366 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
6367 },
6368 "right" : {
6369 "type" : "hexstr",
6370 "value" : "0x02"
6371 }
6372 }
6373 },
Yi Tseng27b9bc02018-04-12 14:52:40 +08006374 "true_next" : "FabricIngress.forwarding.unicast_v4",
Yi Tseng27b9bc02018-04-12 14:52:40 +08006375 "false_next" : "FabricIngress.forwarding.acl"
6376 },
6377 {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02006378 "name" : "node_45",
Carmelo Casconea5400af2018-07-17 22:11:54 +02006379 "id" : 12,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006380 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006381 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08006382 "line" : 219,
Carmelo Casconea5400af2018-07-17 22:11:54 +02006383 "column" : 12,
6384 "source_fragment" : "!simple.apply().hit"
6385 },
6386 "expression" : {
6387 "type" : "expression",
6388 "value" : {
6389 "op" : "not",
6390 "left" : null,
6391 "right" : {
6392 "type" : "expression",
6393 "value" : {
6394 "op" : "d2b",
6395 "left" : null,
6396 "right" : {
6397 "type" : "field",
6398 "value" : ["scalars", "next_tmp_4"]
6399 }
6400 }
6401 }
6402 }
6403 },
6404 "true_next" : "FabricIngress.next.hashed",
6405 "false_next" : "node_55"
6406 },
6407 {
6408 "name" : "node_49",
6409 "id" : 13,
6410 "source_info" : {
6411 "filename" : "include/control/next.p4",
6412 "line" : 220,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006413 "column" : 16,
Carmelo Casconea5400af2018-07-17 22:11:54 +02006414 "source_fragment" : "!hashed.apply().hit"
6415 },
6416 "expression" : {
6417 "type" : "expression",
6418 "value" : {
6419 "op" : "not",
6420 "left" : null,
6421 "right" : {
6422 "type" : "expression",
6423 "value" : {
6424 "op" : "d2b",
6425 "left" : null,
6426 "right" : {
6427 "type" : "field",
6428 "value" : ["scalars", "next_tmp_3"]
6429 }
6430 }
6431 }
6432 }
6433 },
6434 "true_next" : "FabricIngress.next.multicast",
6435 "false_next" : "node_55"
6436 },
6437 {
6438 "name" : "node_53",
6439 "id" : 14,
6440 "source_info" : {
6441 "filename" : "include/control/next.p4",
6442 "line" : 221,
6443 "column" : 20,
6444 "source_fragment" : "!multicast.apply().hit"
6445 },
6446 "expression" : {
6447 "type" : "expression",
6448 "value" : {
6449 "op" : "not",
6450 "left" : null,
6451 "right" : {
6452 "type" : "expression",
6453 "value" : {
6454 "op" : "d2b",
6455 "left" : null,
6456 "right" : {
6457 "type" : "field",
6458 "value" : ["scalars", "next_tmp_2"]
6459 }
6460 }
6461 }
6462 }
6463 },
6464 "true_next" : "tbl_act_20",
6465 "false_next" : "node_55"
6466 },
6467 {
6468 "name" : "node_55",
6469 "id" : 15,
6470 "expression" : {
6471 "type" : "expression",
6472 "value" : {
6473 "op" : "not",
6474 "left" : null,
6475 "right" : {
6476 "type" : "expression",
6477 "value" : {
6478 "op" : "d2b",
6479 "left" : null,
6480 "right" : {
6481 "type" : "field",
6482 "value" : ["scalars", "next_hasReturned_0"]
6483 }
6484 }
6485 }
6486 }
6487 },
6488 "true_next" : "node_56",
6489 "false_next" : "node_59"
6490 },
6491 {
6492 "name" : "node_56",
6493 "id" : 16,
6494 "source_info" : {
6495 "filename" : "include/control/next.p4",
6496 "line" : 228,
6497 "column" : 12,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006498 "source_fragment" : "!hdr.mpls.isValid()"
6499 },
6500 "expression" : {
6501 "type" : "expression",
6502 "value" : {
6503 "op" : "not",
6504 "left" : null,
6505 "right" : {
6506 "type" : "expression",
6507 "value" : {
6508 "op" : "d2b",
6509 "left" : null,
6510 "right" : {
6511 "type" : "field",
6512 "value" : ["mpls", "$valid$"]
6513 }
6514 }
6515 }
6516 }
6517 },
Carmelo Casconea5400af2018-07-17 22:11:54 +02006518 "true_next" : "node_57",
6519 "false_next" : "node_59"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006520 },
6521 {
Carmelo Casconea5400af2018-07-17 22:11:54 +02006522 "name" : "node_57",
6523 "id" : 17,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006524 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006525 "filename" : "include/control/next.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02006526 "line" : 229,
6527 "column" : 15,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006528 "source_fragment" : "hdr.ipv4.isValid()"
6529 },
6530 "expression" : {
6531 "type" : "expression",
6532 "value" : {
6533 "op" : "d2b",
6534 "left" : null,
6535 "right" : {
6536 "type" : "field",
6537 "value" : ["ipv4", "$valid$"]
6538 }
6539 }
6540 },
Carmelo Casconea5400af2018-07-17 22:11:54 +02006541 "true_next" : "tbl_act_21",
6542 "false_next" : "node_59"
Yi Tseng27b9bc02018-04-12 14:52:40 +08006543 },
6544 {
Carmelo Casconea5400af2018-07-17 22:11:54 +02006545 "name" : "node_59",
6546 "id" : 18,
Yi Tseng27b9bc02018-04-12 14:52:40 +08006547 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006548 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006549 "line" : 27,
6550 "column" : 12,
6551 "source_fragment" : "standard_metadata.egress_spec < 511"
6552 },
6553 "expression" : {
6554 "type" : "expression",
6555 "value" : {
6556 "op" : "<",
6557 "left" : {
6558 "type" : "field",
6559 "value" : ["standard_metadata", "egress_spec"]
6560 },
6561 "right" : {
6562 "type" : "hexstr",
6563 "value" : "0x01ff"
6564 }
6565 }
6566 },
Carmelo Casconea5400af2018-07-17 22:11:54 +02006567 "true_next" : "tbl_act_22",
6568 "false_next" : "node_61"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006569 },
6570 {
Carmelo Casconea5400af2018-07-17 22:11:54 +02006571 "name" : "node_61",
6572 "id" : 19,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006573 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006574 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006575 "line" : 30,
6576 "column" : 12,
6577 "source_fragment" : "standard_metadata.ingress_port < 511"
6578 },
6579 "expression" : {
6580 "type" : "expression",
6581 "value" : {
6582 "op" : "<",
6583 "left" : {
6584 "type" : "field",
6585 "value" : ["standard_metadata", "ingress_port"]
6586 },
6587 "right" : {
6588 "type" : "hexstr",
6589 "value" : "0x01ff"
6590 }
6591 }
6592 },
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006593 "false_next" : null,
Carmelo Casconea5400af2018-07-17 22:11:54 +02006594 "true_next" : "tbl_act_23"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006595 }
6596 ]
6597 },
6598 {
6599 "name" : "egress",
6600 "id" : 1,
6601 "source_info" : {
6602 "filename" : "fabric.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006603 "line" : 61,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006604 "column" : 8,
6605 "source_fragment" : "FabricEgress"
6606 },
Carmelo Casconea5400af2018-07-17 22:11:54 +02006607 "init_table" : "node_65",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006608 "tables" : [
6609 {
Carmelo Casconea5400af2018-07-17 22:11:54 +02006610 "name" : "tbl_drop_now_0",
6611 "id" : 41,
6612 "key" : [],
6613 "match_type" : "exact",
6614 "type" : "simple",
6615 "max_size" : 1024,
6616 "with_counters" : false,
6617 "support_timeout" : false,
6618 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02006619 "action_ids" : [65],
Carmelo Casconea5400af2018-07-17 22:11:54 +02006620 "actions" : ["drop_now"],
6621 "base_default_next" : "FabricEgress.egress_next.egress_vlan",
6622 "next_tables" : {
6623 "drop_now" : "FabricEgress.egress_next.egress_vlan"
6624 },
6625 "default_entry" : {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02006626 "action_id" : 65,
Carmelo Casconea5400af2018-07-17 22:11:54 +02006627 "action_const" : true,
6628 "action_data" : [],
6629 "action_entry_const" : true
6630 }
6631 },
6632 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006633 "name" : "FabricEgress.egress_next.egress_vlan",
Carmelo Casconea5400af2018-07-17 22:11:54 +02006634 "id" : 42,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006635 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006636 "filename" : "include/control/next.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02006637 "line" : 258,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006638 "column" : 10,
6639 "source_fragment" : "egress_vlan"
6640 },
6641 "key" : [
6642 {
6643 "match_type" : "exact",
6644 "name" : "hdr.vlan_tag.vlan_id",
6645 "target" : ["vlan_tag", "vlan_id"],
6646 "mask" : null
6647 },
6648 {
6649 "match_type" : "exact",
6650 "name" : "standard_metadata.egress_port",
6651 "target" : ["standard_metadata", "egress_port"],
6652 "mask" : null
6653 }
6654 ],
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08006655 "match_type" : "exact",
6656 "type" : "simple",
6657 "max_size" : 1024,
Yi Tseng47eac892018-07-11 02:17:04 +08006658 "with_counters" : true,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08006659 "support_timeout" : false,
6660 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02006661 "action_ids" : [69, 64],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006662 "actions" : ["FabricEgress.egress_next.pop_vlan", "nop"],
Carmelo Casconea5400af2018-07-17 22:11:54 +02006663 "base_default_next" : "node_68",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08006664 "next_tables" : {
Carmelo Casconea5400af2018-07-17 22:11:54 +02006665 "FabricEgress.egress_next.pop_vlan" : "node_68",
6666 "nop" : "node_68"
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08006667 },
6668 "default_entry" : {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02006669 "action_id" : 64,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006670 "action_const" : false,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08006671 "action_data" : [],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006672 "action_entry_const" : false
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08006673 }
6674 },
6675 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006676 "name" : "tbl_pkt_io_egress_pop_vlan",
Carmelo Casconea5400af2018-07-17 22:11:54 +02006677 "id" : 43,
Carmelo Cascone6af4e172018-06-15 16:01:30 +02006678 "key" : [],
6679 "match_type" : "exact",
6680 "type" : "simple",
6681 "max_size" : 1024,
6682 "with_counters" : false,
6683 "support_timeout" : false,
6684 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02006685 "action_ids" : [68],
Esin Karaman971fb7f2017-12-28 13:44:52 +00006686 "actions" : ["FabricEgress.pkt_io_egress.pop_vlan"],
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02006687 "base_default_next" : "node_71",
6688 "next_tables" : {
6689 "FabricEgress.pkt_io_egress.pop_vlan" : "node_71"
6690 },
6691 "default_entry" : {
6692 "action_id" : 68,
6693 "action_const" : true,
6694 "action_data" : [],
6695 "action_entry_const" : true
6696 }
6697 },
6698 {
6699 "name" : "tbl_drop_now_1",
6700 "id" : 44,
6701 "key" : [],
6702 "match_type" : "exact",
6703 "type" : "simple",
6704 "max_size" : 1024,
6705 "with_counters" : false,
6706 "support_timeout" : false,
6707 "direct_meters" : null,
6708 "action_ids" : [66],
6709 "actions" : ["drop_now"],
Carmelo Casconea5400af2018-07-17 22:11:54 +02006710 "base_default_next" : "tbl_act_24",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02006711 "next_tables" : {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02006712 "drop_now" : "tbl_act_24"
Carmelo Cascone6af4e172018-06-15 16:01:30 +02006713 },
6714 "default_entry" : {
Carmelo Casconea5400af2018-07-17 22:11:54 +02006715 "action_id" : 66,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08006716 "action_const" : true,
6717 "action_data" : [],
6718 "action_entry_const" : true
6719 }
6720 },
6721 {
Carmelo Casconea5400af2018-07-17 22:11:54 +02006722 "name" : "tbl_act_24",
Carmelo Casconea5400af2018-07-17 22:11:54 +02006723 "id" : 45,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006724 "key" : [],
6725 "match_type" : "exact",
6726 "type" : "simple",
6727 "max_size" : 1024,
6728 "with_counters" : false,
6729 "support_timeout" : false,
6730 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02006731 "action_ids" : [70],
6732 "actions" : ["act_24"],
6733 "base_default_next" : "tbl_act_25",
Esin Karaman971fb7f2017-12-28 13:44:52 +00006734 "next_tables" : {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02006735 "act_24" : "tbl_act_25"
Esin Karaman971fb7f2017-12-28 13:44:52 +00006736 },
6737 "default_entry" : {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02006738 "action_id" : 70,
Esin Karaman971fb7f2017-12-28 13:44:52 +00006739 "action_const" : true,
6740 "action_data" : [],
6741 "action_entry_const" : true
6742 }
6743 },
6744 {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02006745 "name" : "tbl_act_25",
Carmelo Casconea5400af2018-07-17 22:11:54 +02006746 "id" : 46,
Esin Karaman971fb7f2017-12-28 13:44:52 +00006747 "key" : [],
6748 "match_type" : "exact",
6749 "type" : "simple",
6750 "max_size" : 1024,
6751 "with_counters" : false,
6752 "support_timeout" : false,
6753 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02006754 "action_ids" : [71],
6755 "actions" : ["act_25"],
6756 "base_default_next" : "node_75",
6757 "next_tables" : {
6758 "act_25" : "node_75"
6759 },
6760 "default_entry" : {
6761 "action_id" : 71,
6762 "action_const" : true,
6763 "action_data" : [],
6764 "action_entry_const" : true
6765 }
6766 },
6767 {
6768 "name" : "tbl_spgw_egress_gtpu_encap",
6769 "id" : 47,
6770 "key" : [],
6771 "match_type" : "exact",
6772 "type" : "simple",
6773 "max_size" : 1024,
6774 "with_counters" : false,
6775 "support_timeout" : false,
6776 "direct_meters" : null,
6777 "action_ids" : [67],
Yi Tseng27b9bc02018-04-12 14:52:40 +08006778 "actions" : ["FabricEgress.spgw_egress.gtpu_encap"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006779 "base_default_next" : null,
6780 "next_tables" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08006781 "FabricEgress.spgw_egress.gtpu_encap" : null
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006782 },
6783 "default_entry" : {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02006784 "action_id" : 67,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006785 "action_const" : true,
6786 "action_data" : [],
6787 "action_entry_const" : true
6788 }
6789 }
6790 ],
6791 "action_profiles" : [],
6792 "conditionals" : [
6793 {
Carmelo Casconea5400af2018-07-17 22:11:54 +02006794 "name" : "node_65",
6795 "id" : 20,
6796 "source_info" : {
6797 "filename" : "include/control/next.p4",
6798 "line" : 272,
6799 "column" : 12,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02006800 "source_fragment" : "fabric_metadata.is_multicast == true ..."
Carmelo Casconea5400af2018-07-17 22:11:54 +02006801 },
6802 "expression" : {
6803 "type" : "expression",
6804 "value" : {
6805 "op" : "and",
6806 "left" : {
6807 "type" : "expression",
6808 "value" : {
6809 "op" : "==",
6810 "left" : {
6811 "type" : "expression",
6812 "value" : {
6813 "op" : "d2b",
6814 "left" : null,
6815 "right" : {
6816 "type" : "field",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02006817 "value" : ["scalars", "fabric_metadata_t.is_multicast"]
Carmelo Casconea5400af2018-07-17 22:11:54 +02006818 }
6819 }
6820 },
6821 "right" : {
6822 "type" : "bool",
6823 "value" : true
6824 }
6825 }
6826 },
6827 "right" : {
6828 "type" : "expression",
6829 "value" : {
6830 "op" : "==",
6831 "left" : {
6832 "type" : "field",
6833 "value" : ["standard_metadata", "ingress_port"]
6834 },
6835 "right" : {
6836 "type" : "field",
6837 "value" : ["standard_metadata", "egress_port"]
6838 }
6839 }
6840 }
6841 }
6842 },
6843 "true_next" : "tbl_drop_now_0",
6844 "false_next" : "FabricEgress.egress_next.egress_vlan"
6845 },
6846 {
6847 "name" : "node_68",
6848 "id" : 21,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006849 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006850 "filename" : "include/control/packetio.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006851 "line" : 42,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006852 "column" : 12,
Carmelo Casconeb531b682018-01-30 17:55:56 -08006853 "source_fragment" : "standard_metadata.egress_port == 255"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006854 },
6855 "expression" : {
6856 "type" : "expression",
6857 "value" : {
6858 "op" : "==",
6859 "left" : {
6860 "type" : "field",
6861 "value" : ["standard_metadata", "egress_port"]
6862 },
6863 "right" : {
6864 "type" : "hexstr",
6865 "value" : "0x00ff"
6866 }
6867 }
6868 },
Carmelo Casconea5400af2018-07-17 22:11:54 +02006869 "true_next" : "node_69",
6870 "false_next" : "tbl_act_25"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006871 },
6872 {
Carmelo Casconea5400af2018-07-17 22:11:54 +02006873 "name" : "node_69",
6874 "id" : 22,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006875 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006876 "filename" : "include/control/packetio.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006877 "line" : 43,
6878 "column" : 16,
Carmelo Cascone228092b2018-06-15 20:41:10 +02006879 "source_fragment" : "hdr.vlan_tag.isValid() && fabric_metadata.pop_vlan_when_packet_in == true"
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006880 },
6881 "expression" : {
6882 "type" : "expression",
6883 "value" : {
6884 "op" : "and",
6885 "left" : {
6886 "type" : "expression",
6887 "value" : {
6888 "op" : "d2b",
6889 "left" : null,
6890 "right" : {
6891 "type" : "field",
6892 "value" : ["vlan_tag", "$valid$"]
6893 }
6894 }
6895 },
6896 "right" : {
6897 "type" : "expression",
6898 "value" : {
Carmelo Cascone228092b2018-06-15 20:41:10 +02006899 "op" : "==",
6900 "left" : {
6901 "type" : "expression",
6902 "value" : {
6903 "op" : "d2b",
6904 "left" : null,
6905 "right" : {
6906 "type" : "field",
6907 "value" : ["scalars", "fabric_metadata_t.pop_vlan_when_packet_in"]
6908 }
6909 }
6910 },
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006911 "right" : {
Carmelo Cascone228092b2018-06-15 20:41:10 +02006912 "type" : "bool",
6913 "value" : true
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006914 }
6915 }
6916 }
6917 }
6918 },
6919 "true_next" : "tbl_pkt_io_egress_pop_vlan",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02006920 "false_next" : "node_71"
6921 },
6922 {
6923 "name" : "node_71",
6924 "id" : 23,
6925 "source_info" : {
6926 "filename" : "include/control/packetio.p4",
6927 "line" : 46,
6928 "column" : 16,
6929 "source_fragment" : "fabric_metadata.is_multicast == true && ..."
6930 },
6931 "expression" : {
6932 "type" : "expression",
6933 "value" : {
6934 "op" : "and",
6935 "left" : {
6936 "type" : "expression",
6937 "value" : {
6938 "op" : "==",
6939 "left" : {
6940 "type" : "expression",
6941 "value" : {
6942 "op" : "d2b",
6943 "left" : null,
6944 "right" : {
6945 "type" : "field",
6946 "value" : ["scalars", "fabric_metadata_t.is_multicast"]
6947 }
6948 }
6949 },
6950 "right" : {
6951 "type" : "bool",
6952 "value" : true
6953 }
6954 }
6955 },
6956 "right" : {
6957 "type" : "expression",
6958 "value" : {
6959 "op" : "==",
6960 "left" : {
6961 "type" : "expression",
6962 "value" : {
6963 "op" : "d2b",
6964 "left" : null,
6965 "right" : {
6966 "type" : "field",
6967 "value" : ["scalars", "fabric_metadata_t.clone_to_cpu"]
6968 }
6969 }
6970 },
6971 "right" : {
6972 "type" : "bool",
6973 "value" : false
6974 }
6975 }
6976 }
6977 }
6978 },
6979 "true_next" : "tbl_drop_now_1",
Carmelo Casconea5400af2018-07-17 22:11:54 +02006980 "false_next" : "tbl_act_24"
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006981 },
6982 {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02006983 "name" : "node_75",
6984 "id" : 24,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006985 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006986 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02006987 "line" : 244,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006988 "column" : 12,
Carmelo Cascone228092b2018-06-15 20:41:10 +02006989 "source_fragment" : "spgw_meta.do_spgw == true && spgw_meta.direction == DIR_DOWNLINK"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006990 },
6991 "expression" : {
6992 "type" : "expression",
6993 "value" : {
6994 "op" : "and",
6995 "left" : {
6996 "type" : "expression",
6997 "value" : {
Carmelo Cascone228092b2018-06-15 20:41:10 +02006998 "op" : "==",
6999 "left" : {
7000 "type" : "expression",
7001 "value" : {
7002 "op" : "d2b",
7003 "left" : null,
7004 "right" : {
7005 "type" : "field",
7006 "value" : ["userMetadata.spgw", "do_spgw"]
7007 }
7008 }
7009 },
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007010 "right" : {
Carmelo Cascone228092b2018-06-15 20:41:10 +02007011 "type" : "bool",
7012 "value" : true
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007013 }
7014 }
7015 },
7016 "right" : {
7017 "type" : "expression",
7018 "value" : {
7019 "op" : "==",
7020 "left" : {
7021 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08007022 "value" : ["userMetadata.spgw", "direction"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007023 },
7024 "right" : {
7025 "type" : "hexstr",
7026 "value" : "0x01"
7027 }
7028 }
7029 }
7030 }
7031 },
7032 "false_next" : null,
7033 "true_next" : "tbl_spgw_egress_gtpu_encap"
7034 }
7035 ]
7036 }
7037 ],
7038 "checksums" : [
7039 {
7040 "name" : "cksum",
7041 "id" : 0,
7042 "target" : ["ipv4", "hdr_checksum"],
7043 "type" : "generic",
7044 "calculation" : "calc",
7045 "if_cond" : {
7046 "type" : "expression",
7047 "value" : {
7048 "op" : "d2b",
7049 "left" : null,
7050 "right" : {
7051 "type" : "field",
7052 "value" : ["ipv4", "$valid$"]
7053 }
7054 }
7055 }
7056 },
7057 {
7058 "name" : "cksum_0",
7059 "id" : 1,
Carmelo Cascone6af4e172018-06-15 16:01:30 +02007060 "target" : ["gtpu_ipv4", "hdr_checksum"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007061 "type" : "generic",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08007062 "calculation" : "calc_0",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007063 "if_cond" : {
7064 "type" : "expression",
7065 "value" : {
7066 "op" : "d2b",
7067 "left" : null,
7068 "right" : {
7069 "type" : "field",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02007070 "value" : ["gtpu_ipv4", "$valid$"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007071 }
7072 }
7073 }
7074 },
7075 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08007076 "name" : "cksum_1",
7077 "id" : 2,
Carmelo Cascone6af4e172018-06-15 16:01:30 +02007078 "target" : ["ipv4", "hdr_checksum"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007079 "type" : "generic",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08007080 "calculation" : "calc_1",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007081 "if_cond" : {
7082 "type" : "expression",
7083 "value" : {
7084 "op" : "d2b",
7085 "left" : null,
7086 "right" : {
7087 "type" : "field",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02007088 "value" : ["ipv4", "$valid$"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007089 }
7090 }
7091 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007092 }
7093 ],
7094 "force_arith" : [],
7095 "extern_instances" : [],
7096 "field_aliases" : [
7097 [
7098 "queueing_metadata.enq_timestamp",
7099 ["standard_metadata", "enq_timestamp"]
7100 ],
7101 [
7102 "queueing_metadata.enq_qdepth",
7103 ["standard_metadata", "enq_qdepth"]
7104 ],
7105 [
7106 "queueing_metadata.deq_timedelta",
7107 ["standard_metadata", "deq_timedelta"]
7108 ],
7109 [
7110 "queueing_metadata.deq_qdepth",
7111 ["standard_metadata", "deq_qdepth"]
7112 ],
7113 [
7114 "intrinsic_metadata.ingress_global_timestamp",
7115 ["standard_metadata", "ingress_global_timestamp"]
7116 ],
7117 [
Yi Tseng27b9bc02018-04-12 14:52:40 +08007118 "intrinsic_metadata.egress_global_timestamp",
7119 ["standard_metadata", "egress_global_timestamp"]
7120 ],
7121 [
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007122 "intrinsic_metadata.lf_field_list",
7123 ["standard_metadata", "lf_field_list"]
7124 ],
7125 [
7126 "intrinsic_metadata.mcast_grp",
7127 ["standard_metadata", "mcast_grp"]
7128 ],
7129 [
7130 "intrinsic_metadata.resubmit_flag",
7131 ["standard_metadata", "resubmit_flag"]
7132 ],
7133 [
7134 "intrinsic_metadata.egress_rid",
7135 ["standard_metadata", "egress_rid"]
Yi Tseng27b9bc02018-04-12 14:52:40 +08007136 ],
7137 [
7138 "intrinsic_metadata.recirculate_flag",
7139 ["standard_metadata", "recirculate_flag"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007140 ]
Carmelo Cascone6af4e172018-06-15 16:01:30 +02007141 ],
7142 "program" : "fabric.p4",
7143 "__meta__" : {
7144 "version" : [2, 18],
7145 "compiler" : "https://github.com/p4lang/p4c"
7146 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007147}