blob: da1df9bbf36daa2612bcf08b43fc01a9b01d8666 [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],
Jonghwan Hyuned478dc2018-08-06 15:35:18 +090091 ["dscp", 6, false],
92 ["ecn", 2, false],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -080093 ["total_len", 16, false],
94 ["identification", 16, false],
95 ["flags", 3, false],
96 ["frag_offset", 13, false],
97 ["ttl", 8, false],
98 ["protocol", 8, false],
99 ["hdr_checksum", 16, false],
100 ["src_addr", 32, false],
101 ["dst_addr", 32, false]
102 ]
103 },
104 {
105 "name" : "udp_t",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200106 "id" : 6,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800107 "fields" : [
108 ["src_port", 16, false],
109 ["dst_port", 16, false],
110 ["len", 16, false],
111 ["checksum", 16, false]
112 ]
113 },
114 {
115 "name" : "gtpu_t",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200116 "id" : 7,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800117 "fields" : [
118 ["version", 3, false],
119 ["pt", 1, false],
120 ["spare", 1, false],
121 ["ex_flag", 1, false],
122 ["seq_flag", 1, false],
123 ["npdu_flag", 1, false],
124 ["msgtype", 8, false],
125 ["msglen", 16, false],
126 ["teid", 32, false]
127 ]
128 },
129 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800130 "name" : "arp_t",
131 "id" : 8,
132 "fields" : [
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800133 ["hw_type", 16, false],
134 ["proto_type", 16, false],
135 ["hw_addr_len", 8, false],
136 ["proto_addr_len", 8, false],
137 ["opcode", 16, false]
138 ]
139 },
140 {
141 "name" : "tcp_t",
Yi Tseng27b9bc02018-04-12 14:52:40 +0800142 "id" : 9,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800143 "fields" : [
144 ["src_port", 16, false],
145 ["dst_port", 16, false],
146 ["seq_no", 32, false],
147 ["ack_no", 32, false],
148 ["data_offset", 4, false],
149 ["res", 3, false],
150 ["ecn", 3, false],
151 ["ctrl", 6, false],
152 ["window", 16, false],
153 ["checksum", 16, false],
154 ["urgent_ptr", 16, false]
155 ]
156 },
157 {
158 "name" : "icmp_t",
Yi Tseng27b9bc02018-04-12 14:52:40 +0800159 "id" : 10,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800160 "fields" : [
161 ["icmp_type", 8, false],
162 ["icmp_code", 8, false],
163 ["checksum", 16, false],
164 ["identifier", 16, false],
165 ["sequence_number", 16, false],
166 ["timestamp", 64, false]
167 ]
168 },
169 {
170 "name" : "packet_out_header_t",
Yi Tseng27b9bc02018-04-12 14:52:40 +0800171 "id" : 11,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800172 "fields" : [
173 ["egress_port", 9, false],
174 ["_pad", 7, false]
175 ]
176 },
177 {
178 "name" : "packet_in_header_t",
Yi Tseng27b9bc02018-04-12 14:52:40 +0800179 "id" : 12,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800180 "fields" : [
181 ["ingress_port", 9, false],
182 ["_pad", 7, false]
183 ]
184 },
185 {
186 "name" : "spgw_meta_t",
Yi Tseng27b9bc02018-04-12 14:52:40 +0800187 "id" : 13,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800188 "fields" : [
189 ["do_spgw", 1, 0],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800190 ["direction", 1, false],
Yi Tseng27b9bc02018-04-12 14:52:40 +0800191 ["ipv4_len", 16, false],
Carmelo Casconeb757dbc2018-01-25 17:53:17 -0800192 ["teid", 32, false],
193 ["s1u_enb_addr", 32, false],
194 ["s1u_sgw_addr", 32, false],
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200195 ["_padding_0", 6, false]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800196 ]
197 }
198 ],
199 "headers" : [
200 {
201 "name" : "scalars",
202 "id" : 0,
203 "header_type" : "scalars_0",
204 "metadata" : true,
205 "pi_omit" : true
206 },
207 {
208 "name" : "standard_metadata",
209 "id" : 1,
210 "header_type" : "standard_metadata",
211 "metadata" : true,
212 "pi_omit" : true
213 },
214 {
215 "name" : "ethernet",
216 "id" : 2,
217 "header_type" : "ethernet_t",
218 "metadata" : false,
219 "pi_omit" : true
220 },
221 {
222 "name" : "vlan_tag",
223 "id" : 3,
224 "header_type" : "vlan_tag_t",
225 "metadata" : false,
226 "pi_omit" : true
227 },
228 {
229 "name" : "mpls",
230 "id" : 4,
231 "header_type" : "mpls_t",
232 "metadata" : false,
233 "pi_omit" : true
234 },
235 {
236 "name" : "gtpu_ipv4",
237 "id" : 5,
238 "header_type" : "ipv4_t",
239 "metadata" : false,
240 "pi_omit" : true
241 },
242 {
243 "name" : "gtpu_udp",
244 "id" : 6,
245 "header_type" : "udp_t",
246 "metadata" : false,
247 "pi_omit" : true
248 },
249 {
250 "name" : "gtpu",
251 "id" : 7,
252 "header_type" : "gtpu_t",
253 "metadata" : false,
254 "pi_omit" : true
255 },
256 {
257 "name" : "ipv4",
258 "id" : 8,
259 "header_type" : "ipv4_t",
260 "metadata" : false,
261 "pi_omit" : true
262 },
263 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800264 "name" : "arp",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200265 "id" : 9,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800266 "header_type" : "arp_t",
267 "metadata" : false,
268 "pi_omit" : true
269 },
270 {
271 "name" : "tcp",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200272 "id" : 10,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800273 "header_type" : "tcp_t",
274 "metadata" : false,
275 "pi_omit" : true
276 },
277 {
278 "name" : "udp",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200279 "id" : 11,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800280 "header_type" : "udp_t",
281 "metadata" : false,
282 "pi_omit" : true
283 },
284 {
285 "name" : "icmp",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200286 "id" : 12,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800287 "header_type" : "icmp_t",
288 "metadata" : false,
289 "pi_omit" : true
290 },
291 {
292 "name" : "packet_out",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200293 "id" : 13,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800294 "header_type" : "packet_out_header_t",
295 "metadata" : false,
296 "pi_omit" : true
297 },
298 {
299 "name" : "packet_in",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200300 "id" : 14,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800301 "header_type" : "packet_in_header_t",
302 "metadata" : false,
303 "pi_omit" : true
304 },
305 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800306 "name" : "userMetadata.spgw",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200307 "id" : 15,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800308 "header_type" : "spgw_meta_t",
309 "metadata" : true,
310 "pi_omit" : true
311 }
312 ],
313 "header_stacks" : [],
314 "header_union_types" : [],
315 "header_unions" : [],
316 "header_union_stacks" : [],
317 "field_lists" : [],
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200318 "errors" : [],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800319 "enums" : [],
320 "parsers" : [
321 {
322 "name" : "parser",
323 "id" : 0,
324 "init_state" : "start",
325 "parse_states" : [
326 {
327 "name" : "start",
328 "id" : 0,
329 "parser_ops" : [],
330 "transitions" : [
331 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800332 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800333 "value" : "0x00ff",
334 "mask" : null,
335 "next_state" : "parse_packet_out"
336 },
337 {
338 "value" : "default",
339 "mask" : null,
340 "next_state" : "parse_ethernet"
341 }
342 ],
343 "transition_key" : [
344 {
345 "type" : "field",
346 "value" : ["standard_metadata", "ingress_port"]
347 }
348 ]
349 },
350 {
351 "name" : "parse_packet_out",
352 "id" : 1,
353 "parser_ops" : [
354 {
355 "parameters" : [
356 {
357 "type" : "regular",
358 "value" : "packet_out"
359 }
360 ],
361 "op" : "extract"
362 }
363 ],
364 "transitions" : [
365 {
366 "value" : "default",
367 "mask" : null,
368 "next_state" : "parse_ethernet"
369 }
370 ],
371 "transition_key" : []
372 },
373 {
374 "name" : "parse_ethernet",
375 "id" : 2,
376 "parser_ops" : [
377 {
378 "parameters" : [
379 {
380 "type" : "regular",
381 "value" : "ethernet"
382 }
383 ],
384 "op" : "extract"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800385 }
386 ],
387 "transitions" : [
388 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800389 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800390 "value" : "0x8100",
391 "mask" : null,
392 "next_state" : "parse_vlan_tag"
393 },
394 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800395 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800396 "value" : "0x8847",
397 "mask" : null,
398 "next_state" : "parse_mpls"
399 },
400 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800401 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800402 "value" : "0x0806",
403 "mask" : null,
404 "next_state" : "parse_arp"
405 },
406 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800407 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800408 "value" : "0x0800",
409 "mask" : null,
410 "next_state" : "parse_ipv4"
411 },
412 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800413 "value" : "default",
414 "mask" : null,
415 "next_state" : null
416 }
417 ],
418 "transition_key" : [
419 {
420 "type" : "field",
421 "value" : ["ethernet", "ether_type"]
422 }
423 ]
424 },
425 {
426 "name" : "parse_vlan_tag",
427 "id" : 3,
428 "parser_ops" : [
429 {
430 "parameters" : [
431 {
432 "type" : "regular",
433 "value" : "vlan_tag"
434 }
435 ],
436 "op" : "extract"
437 }
438 ],
439 "transitions" : [
440 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800441 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800442 "value" : "0x0806",
443 "mask" : null,
444 "next_state" : "parse_arp"
445 },
446 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800447 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800448 "value" : "0x0800",
449 "mask" : null,
450 "next_state" : "parse_ipv4"
451 },
452 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800453 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800454 "value" : "0x8847",
455 "mask" : null,
456 "next_state" : "parse_mpls"
457 },
458 {
459 "value" : "default",
460 "mask" : null,
461 "next_state" : null
462 }
463 ],
464 "transition_key" : [
465 {
466 "type" : "field",
467 "value" : ["vlan_tag", "ether_type"]
468 }
469 ]
470 },
471 {
472 "name" : "parse_mpls",
473 "id" : 4,
474 "parser_ops" : [
475 {
476 "parameters" : [
477 {
478 "type" : "regular",
479 "value" : "mpls"
480 }
481 ],
482 "op" : "extract"
483 },
484 {
485 "parameters" : [
486 {
487 "type" : "field",
488 "value" : ["scalars", "tmp"]
489 },
490 {
491 "type" : "lookahead",
492 "value" : [0, 4]
493 }
494 ],
495 "op" : "set"
496 }
497 ],
498 "transitions" : [
499 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800500 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800501 "value" : "0x04",
502 "mask" : null,
503 "next_state" : "parse_ipv4"
504 },
505 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800506 "value" : "default",
507 "mask" : null,
508 "next_state" : "parse_ethernet"
509 }
510 ],
511 "transition_key" : [
512 {
513 "type" : "field",
514 "value" : ["scalars", "tmp"]
515 }
516 ]
517 },
518 {
519 "name" : "parse_ipv4",
520 "id" : 5,
521 "parser_ops" : [
522 {
523 "parameters" : [
524 {
525 "type" : "regular",
526 "value" : "ipv4"
527 }
528 ],
529 "op" : "extract"
530 },
531 {
532 "parameters" : [
533 {
534 "type" : "field",
535 "value" : ["scalars", "fabric_metadata_t.ip_proto"]
536 },
537 {
538 "type" : "field",
539 "value" : ["ipv4", "protocol"]
540 }
541 ],
542 "op" : "set"
543 }
544 ],
545 "transitions" : [
546 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800547 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800548 "value" : "0x06",
549 "mask" : null,
550 "next_state" : "parse_tcp"
551 },
552 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800553 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800554 "value" : "0x11",
555 "mask" : null,
556 "next_state" : "parse_udp"
557 },
558 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800559 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800560 "value" : "0x01",
561 "mask" : null,
562 "next_state" : "parse_icmp"
563 },
564 {
565 "value" : "default",
566 "mask" : null,
567 "next_state" : null
568 }
569 ],
570 "transition_key" : [
571 {
572 "type" : "field",
573 "value" : ["ipv4", "protocol"]
574 }
575 ]
576 },
577 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800578 "name" : "parse_arp",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200579 "id" : 6,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800580 "parser_ops" : [
581 {
582 "parameters" : [
583 {
584 "type" : "regular",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800585 "value" : "arp"
586 }
587 ],
588 "op" : "extract"
589 }
590 ],
591 "transitions" : [
592 {
593 "value" : "default",
594 "mask" : null,
595 "next_state" : null
596 }
597 ],
598 "transition_key" : []
599 },
600 {
601 "name" : "parse_tcp",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200602 "id" : 7,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800603 "parser_ops" : [
604 {
605 "parameters" : [
606 {
607 "type" : "regular",
608 "value" : "tcp"
609 }
610 ],
611 "op" : "extract"
612 },
613 {
614 "parameters" : [
615 {
616 "type" : "field",
617 "value" : ["scalars", "fabric_metadata_t.l4_src_port"]
618 },
619 {
620 "type" : "field",
621 "value" : ["tcp", "src_port"]
622 }
623 ],
624 "op" : "set"
625 },
626 {
627 "parameters" : [
628 {
629 "type" : "field",
630 "value" : ["scalars", "fabric_metadata_t.l4_dst_port"]
631 },
632 {
633 "type" : "field",
634 "value" : ["tcp", "dst_port"]
635 }
636 ],
637 "op" : "set"
638 }
639 ],
640 "transitions" : [
641 {
642 "value" : "default",
643 "mask" : null,
644 "next_state" : null
645 }
646 ],
647 "transition_key" : []
648 },
649 {
650 "name" : "parse_udp",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200651 "id" : 8,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800652 "parser_ops" : [
653 {
654 "parameters" : [
655 {
656 "type" : "regular",
657 "value" : "udp"
658 }
659 ],
660 "op" : "extract"
661 },
662 {
663 "parameters" : [
664 {
665 "type" : "field",
666 "value" : ["scalars", "fabric_metadata_t.l4_src_port"]
667 },
668 {
669 "type" : "field",
670 "value" : ["udp", "src_port"]
671 }
672 ],
673 "op" : "set"
674 },
675 {
676 "parameters" : [
677 {
678 "type" : "field",
679 "value" : ["scalars", "fabric_metadata_t.l4_dst_port"]
680 },
681 {
682 "type" : "field",
683 "value" : ["udp", "dst_port"]
684 }
685 ],
686 "op" : "set"
687 }
688 ],
689 "transitions" : [
690 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800691 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800692 "value" : "0x0868",
693 "mask" : null,
694 "next_state" : "parse_gtpu"
695 },
696 {
697 "value" : "default",
698 "mask" : null,
699 "next_state" : null
700 }
701 ],
702 "transition_key" : [
703 {
704 "type" : "field",
705 "value" : ["udp", "dst_port"]
706 }
707 ]
708 },
709 {
710 "name" : "parse_icmp",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200711 "id" : 9,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800712 "parser_ops" : [
713 {
714 "parameters" : [
715 {
716 "type" : "regular",
717 "value" : "icmp"
718 }
719 ],
720 "op" : "extract"
721 }
722 ],
723 "transitions" : [
724 {
725 "value" : "default",
726 "mask" : null,
727 "next_state" : null
728 }
729 ],
730 "transition_key" : []
731 },
732 {
733 "name" : "parse_gtpu",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200734 "id" : 10,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800735 "parser_ops" : [
736 {
737 "parameters" : [
738 {
739 "type" : "regular",
740 "value" : "gtpu"
741 }
742 ],
743 "op" : "extract"
744 },
745 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800746 "parameters" : [
747 {
748 "type" : "regular",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -0800749 "value" : "gtpu_ipv4"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800750 }
751 ],
752 "op" : "extract"
753 }
754 ],
755 "transitions" : [
756 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800757 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800758 "value" : "0x06",
759 "mask" : null,
760 "next_state" : "parse_tcp"
761 },
762 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800763 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800764 "value" : "0x11",
765 "mask" : null,
766 "next_state" : "parse_udp_inner"
767 },
768 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800769 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800770 "value" : "0x01",
771 "mask" : null,
772 "next_state" : "parse_icmp"
773 },
774 {
775 "value" : "default",
776 "mask" : null,
777 "next_state" : null
778 }
779 ],
780 "transition_key" : [
781 {
782 "type" : "field",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -0800783 "value" : ["gtpu_ipv4", "protocol"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800784 }
785 ]
786 },
787 {
788 "name" : "parse_udp_inner",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200789 "id" : 11,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800790 "parser_ops" : [
791 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800792 "parameters" : [
793 {
794 "type" : "regular",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -0800795 "value" : "gtpu_udp"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800796 }
797 ],
798 "op" : "extract"
799 },
800 {
801 "parameters" : [
802 {
803 "type" : "field",
804 "value" : ["scalars", "fabric_metadata_t.l4_src_port"]
805 },
806 {
807 "type" : "field",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -0800808 "value" : ["gtpu_udp", "src_port"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800809 }
810 ],
811 "op" : "set"
812 },
813 {
814 "parameters" : [
815 {
816 "type" : "field",
817 "value" : ["scalars", "fabric_metadata_t.l4_dst_port"]
818 },
819 {
820 "type" : "field",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -0800821 "value" : ["gtpu_udp", "dst_port"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800822 }
823 ],
824 "op" : "set"
825 }
826 ],
827 "transitions" : [
828 {
829 "value" : "default",
830 "mask" : null,
831 "next_state" : null
832 }
833 ],
834 "transition_key" : []
835 }
836 ]
837 }
838 ],
Yi Tseng27b9bc02018-04-12 14:52:40 +0800839 "parse_vsets" : [],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800840 "deparsers" : [
841 {
842 "name" : "deparser",
843 "id" : 0,
844 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +0200845 "filename" : "include/parser.p4",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +0900846 "line" : 212,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800847 "column" : 8,
848 "source_fragment" : "FabricDeparser"
849 },
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200850 "order" : ["packet_in", "ethernet", "vlan_tag", "mpls", "arp", "gtpu_ipv4", "gtpu_udp", "gtpu", "ipv4", "tcp", "udp", "icmp"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800851 }
852 ],
853 "meter_arrays" : [],
854 "counter_arrays" : [
855 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800856 "name" : "FabricIngress.spgw_ingress.ue_counter",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800857 "id" : 0,
858 "is_direct" : true,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800859 "binding" : "FabricIngress.spgw_ingress.ue_cdr_table"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800860 },
861 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800862 "name" : "FabricIngress.filtering.ingress_port_vlan_counter",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800863 "id" : 1,
864 "is_direct" : true,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800865 "binding" : "FabricIngress.filtering.ingress_port_vlan"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800866 },
867 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800868 "name" : "FabricIngress.filtering.fwd_classifier_counter",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800869 "id" : 2,
870 "is_direct" : true,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800871 "binding" : "FabricIngress.filtering.fwd_classifier"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800872 },
873 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800874 "name" : "FabricIngress.forwarding.bridging_counter",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800875 "id" : 3,
876 "is_direct" : true,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800877 "binding" : "FabricIngress.forwarding.bridging"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800878 },
879 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800880 "name" : "FabricIngress.forwarding.mpls_counter",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800881 "id" : 4,
882 "is_direct" : true,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800883 "binding" : "FabricIngress.forwarding.mpls"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800884 },
885 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800886 "name" : "FabricIngress.forwarding.unicast_v4_counter",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800887 "id" : 5,
888 "is_direct" : true,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800889 "binding" : "FabricIngress.forwarding.unicast_v4"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800890 },
891 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800892 "name" : "FabricIngress.forwarding.acl_counter",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -0800893 "id" : 6,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800894 "is_direct" : true,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800895 "binding" : "FabricIngress.forwarding.acl"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800896 },
897 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +0800898 "name" : "FabricIngress.next.vlan_meta_counter",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200899 "id" : 7,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800900 "is_direct" : true,
Yi Tseng20f9e7b2018-05-24 23:27:39 +0800901 "binding" : "FabricIngress.next.vlan_meta"
902 },
903 {
904 "name" : "FabricIngress.next.simple_counter",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200905 "id" : 8,
Yi Tseng20f9e7b2018-05-24 23:27:39 +0800906 "is_direct" : true,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800907 "binding" : "FabricIngress.next.simple"
908 },
909 {
910 "name" : "FabricIngress.next.hashed_counter",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200911 "id" : 9,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800912 "is_direct" : true,
913 "binding" : "FabricIngress.next.hashed"
914 },
915 {
Esin Karaman971fb7f2017-12-28 13:44:52 +0000916 "name" : "FabricIngress.next.multicast_counter",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200917 "id" : 10,
Esin Karaman971fb7f2017-12-28 13:44:52 +0000918 "is_direct" : true,
919 "binding" : "FabricIngress.next.multicast"
920 },
921 {
922 "name" : "FabricIngress.port_counters_control.egress_port_counter",
923 "id" : 11,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800924 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +0200925 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800926 "line" : 23,
Yi Tseng3d3956d2018-01-31 17:28:05 -0800927 "column" : 48,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800928 "source_fragment" : "egress_port_counter"
929 },
930 "size" : 511,
931 "is_direct" : false
932 },
933 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800934 "name" : "FabricIngress.port_counters_control.ingress_port_counter",
Esin Karaman971fb7f2017-12-28 13:44:52 +0000935 "id" : 12,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800936 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +0200937 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800938 "line" : 24,
Yi Tseng3d3956d2018-01-31 17:28:05 -0800939 "column" : 48,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800940 "source_fragment" : "ingress_port_counter"
941 },
942 "size" : 511,
943 "is_direct" : false
Yi Tseng47eac892018-07-11 02:17:04 +0800944 },
945 {
946 "name" : "FabricEgress.egress_next.egress_vlan_counter",
947 "id" : 13,
948 "is_direct" : true,
949 "binding" : "FabricEgress.egress_next.egress_vlan"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800950 }
951 ],
952 "register_arrays" : [],
953 "calculations" : [
954 {
955 "name" : "calc",
956 "id" : 0,
957 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +0200958 "filename" : "include/checksum.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800959 "line" : 28,
960 "column" : 8,
961 "source_fragment" : "update_checksum(hdr.ipv4.isValid(), ..."
962 },
963 "algo" : "csum16",
964 "input" : [
965 {
966 "type" : "field",
967 "value" : ["ipv4", "version"]
968 },
969 {
970 "type" : "field",
971 "value" : ["ipv4", "ihl"]
972 },
973 {
974 "type" : "field",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +0900975 "value" : ["ipv4", "dscp"]
976 },
977 {
978 "type" : "field",
979 "value" : ["ipv4", "ecn"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800980 },
981 {
982 "type" : "field",
983 "value" : ["ipv4", "total_len"]
984 },
985 {
986 "type" : "field",
987 "value" : ["ipv4", "identification"]
988 },
989 {
990 "type" : "field",
991 "value" : ["ipv4", "flags"]
992 },
993 {
994 "type" : "field",
995 "value" : ["ipv4", "frag_offset"]
996 },
997 {
998 "type" : "field",
999 "value" : ["ipv4", "ttl"]
1000 },
1001 {
1002 "type" : "field",
1003 "value" : ["ipv4", "protocol"]
1004 },
1005 {
1006 "type" : "field",
1007 "value" : ["ipv4", "src_addr"]
1008 },
1009 {
1010 "type" : "field",
1011 "value" : ["ipv4", "dst_addr"]
1012 }
1013 ]
1014 },
1015 {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001016 "name" : "calc_0",
1017 "id" : 1,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001018 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001019 "filename" : "include/spgw.p4",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09001020 "line" : 292,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001021 "column" : 8,
1022 "source_fragment" : "update_checksum(gtpu_ipv4.isValid(), ..."
1023 },
1024 "algo" : "csum16",
1025 "input" : [
1026 {
1027 "type" : "field",
1028 "value" : ["gtpu_ipv4", "version"]
1029 },
1030 {
1031 "type" : "field",
1032 "value" : ["gtpu_ipv4", "ihl"]
1033 },
1034 {
1035 "type" : "field",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09001036 "value" : ["gtpu_ipv4", "dscp"]
1037 },
1038 {
1039 "type" : "field",
1040 "value" : ["gtpu_ipv4", "ecn"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001041 },
1042 {
1043 "type" : "field",
1044 "value" : ["gtpu_ipv4", "total_len"]
1045 },
1046 {
1047 "type" : "field",
1048 "value" : ["gtpu_ipv4", "identification"]
1049 },
1050 {
1051 "type" : "field",
1052 "value" : ["gtpu_ipv4", "flags"]
1053 },
1054 {
1055 "type" : "field",
1056 "value" : ["gtpu_ipv4", "frag_offset"]
1057 },
1058 {
1059 "type" : "field",
1060 "value" : ["gtpu_ipv4", "ttl"]
1061 },
1062 {
1063 "type" : "field",
1064 "value" : ["gtpu_ipv4", "protocol"]
1065 },
1066 {
1067 "type" : "field",
1068 "value" : ["gtpu_ipv4", "src_addr"]
1069 },
1070 {
1071 "type" : "field",
1072 "value" : ["gtpu_ipv4", "dst_addr"]
1073 }
1074 ]
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001075 },
1076 {
1077 "name" : "calc_1",
1078 "id" : 2,
1079 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001080 "filename" : "include/checksum.p4",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09001081 "line" : 57,
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001082 "column" : 8,
1083 "source_fragment" : "verify_checksum(hdr.ipv4.isValid(), ..."
1084 },
1085 "algo" : "csum16",
1086 "input" : [
1087 {
1088 "type" : "field",
1089 "value" : ["ipv4", "version"]
1090 },
1091 {
1092 "type" : "field",
1093 "value" : ["ipv4", "ihl"]
1094 },
1095 {
1096 "type" : "field",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09001097 "value" : ["ipv4", "dscp"]
1098 },
1099 {
1100 "type" : "field",
1101 "value" : ["ipv4", "ecn"]
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001102 },
1103 {
1104 "type" : "field",
1105 "value" : ["ipv4", "total_len"]
1106 },
1107 {
1108 "type" : "field",
1109 "value" : ["ipv4", "identification"]
1110 },
1111 {
1112 "type" : "field",
1113 "value" : ["ipv4", "flags"]
1114 },
1115 {
1116 "type" : "field",
1117 "value" : ["ipv4", "frag_offset"]
1118 },
1119 {
1120 "type" : "field",
1121 "value" : ["ipv4", "ttl"]
1122 },
1123 {
1124 "type" : "field",
1125 "value" : ["ipv4", "protocol"]
1126 },
1127 {
1128 "type" : "field",
1129 "value" : ["ipv4", "src_addr"]
1130 },
1131 {
1132 "type" : "field",
1133 "value" : ["ipv4", "dst_addr"]
1134 }
1135 ]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001136 }
1137 ],
1138 "learn_lists" : [],
1139 "actions" : [
1140 {
1141 "name" : "NoAction",
1142 "id" : 0,
1143 "runtime_data" : [],
1144 "primitives" : []
1145 },
1146 {
1147 "name" : "NoAction",
1148 "id" : 1,
1149 "runtime_data" : [],
1150 "primitives" : []
1151 },
1152 {
1153 "name" : "NoAction",
1154 "id" : 2,
1155 "runtime_data" : [],
1156 "primitives" : []
1157 },
1158 {
1159 "name" : "NoAction",
1160 "id" : 3,
1161 "runtime_data" : [],
1162 "primitives" : []
1163 },
1164 {
1165 "name" : "NoAction",
1166 "id" : 4,
1167 "runtime_data" : [],
1168 "primitives" : []
1169 },
1170 {
1171 "name" : "NoAction",
1172 "id" : 5,
1173 "runtime_data" : [],
1174 "primitives" : []
1175 },
1176 {
1177 "name" : "NoAction",
1178 "id" : 6,
1179 "runtime_data" : [],
1180 "primitives" : []
1181 },
1182 {
1183 "name" : "NoAction",
1184 "id" : 7,
1185 "runtime_data" : [],
1186 "primitives" : []
1187 },
1188 {
1189 "name" : "NoAction",
1190 "id" : 8,
1191 "runtime_data" : [],
1192 "primitives" : []
1193 },
1194 {
Esin Karaman971fb7f2017-12-28 13:44:52 +00001195 "name" : "NoAction",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001196 "id" : 9,
1197 "runtime_data" : [],
1198 "primitives" : []
1199 },
1200 {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001201 "name" : "nop",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001202 "id" : 10,
1203 "runtime_data" : [],
1204 "primitives" : []
1205 },
1206 {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001207 "name" : "nop",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001208 "id" : 11,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001209 "runtime_data" : [],
Yi Tseng27b9bc02018-04-12 14:52:40 +08001210 "primitives" : []
1211 },
1212 {
Esin Karaman971fb7f2017-12-28 13:44:52 +00001213 "name" : "nop",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001214 "id" : 12,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001215 "runtime_data" : [],
Esin Karaman971fb7f2017-12-28 13:44:52 +00001216 "primitives" : []
1217 },
1218 {
Carmelo Casconea5400af2018-07-17 22:11:54 +02001219 "name" : "drop_now",
Esin Karaman971fb7f2017-12-28 13:44:52 +00001220 "id" : 13,
1221 "runtime_data" : [],
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001222 "primitives" : [
1223 {
1224 "op" : "drop",
1225 "parameters" : [],
1226 "source_info" : {
Carmelo Casconea5400af2018-07-17 22:11:54 +02001227 "filename" : "include/control/../action.p4",
1228 "line" : 24,
1229 "column" : 4,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001230 "source_fragment" : "mark_to_drop()"
1231 }
1232 },
1233 {
1234 "op" : "exit",
1235 "parameters" : [],
1236 "source_info" : {
Carmelo Casconea5400af2018-07-17 22:11:54 +02001237 "filename" : "include/control/../action.p4",
1238 "line" : 25,
1239 "column" : 4,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001240 "source_fragment" : "exit"
1241 }
1242 }
1243 ]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001244 },
1245 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001246 "name" : "FabricIngress.spgw_ingress.gtpu_decap",
Esin Karaman971fb7f2017-12-28 13:44:52 +00001247 "id" : 14,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001248 "runtime_data" : [],
1249 "primitives" : [
1250 {
1251 "op" : "remove_header",
1252 "parameters" : [
1253 {
1254 "type" : "header",
1255 "value" : "gtpu_ipv4"
1256 }
1257 ],
1258 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001259 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02001260 "line" : 33,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001261 "column" : 8,
1262 "source_fragment" : "gtpu_ipv4.setInvalid()"
1263 }
1264 },
1265 {
1266 "op" : "remove_header",
1267 "parameters" : [
1268 {
1269 "type" : "header",
1270 "value" : "gtpu_udp"
1271 }
1272 ],
1273 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001274 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02001275 "line" : 34,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001276 "column" : 8,
1277 "source_fragment" : "gtpu_udp.setInvalid()"
1278 }
1279 },
1280 {
1281 "op" : "remove_header",
1282 "parameters" : [
1283 {
1284 "type" : "header",
1285 "value" : "gtpu"
1286 }
1287 ],
1288 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001289 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02001290 "line" : 35,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001291 "column" : 8,
1292 "source_fragment" : "gtpu.setInvalid()"
1293 }
1294 }
1295 ]
1296 },
1297 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001298 "name" : "FabricIngress.spgw_ingress.set_dl_sess_info",
Esin Karaman971fb7f2017-12-28 13:44:52 +00001299 "id" : 15,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001300 "runtime_data" : [
1301 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001302 "name" : "teid",
1303 "bitwidth" : 32
1304 },
1305 {
1306 "name" : "s1u_enb_addr",
1307 "bitwidth" : 32
1308 },
1309 {
1310 "name" : "s1u_sgw_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001311 "bitwidth" : 32
1312 }
1313 ],
1314 "primitives" : [
1315 {
1316 "op" : "assign",
1317 "parameters" : [
1318 {
1319 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08001320 "value" : ["userMetadata.spgw", "teid"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001321 },
1322 {
1323 "type" : "runtime_data",
1324 "value" : 0
1325 }
1326 ],
1327 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001328 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02001329 "line" : 41,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001330 "column" : 8,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001331 "source_fragment" : "spgw_meta.teid = teid"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001332 }
1333 },
1334 {
1335 "op" : "assign",
1336 "parameters" : [
1337 {
1338 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08001339 "value" : ["userMetadata.spgw", "s1u_enb_addr"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001340 },
1341 {
1342 "type" : "runtime_data",
1343 "value" : 1
1344 }
1345 ],
1346 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001347 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02001348 "line" : 42,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001349 "column" : 8,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001350 "source_fragment" : "spgw_meta.s1u_enb_addr = s1u_enb_addr"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001351 }
1352 },
1353 {
1354 "op" : "assign",
1355 "parameters" : [
1356 {
1357 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08001358 "value" : ["userMetadata.spgw", "s1u_sgw_addr"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001359 },
1360 {
1361 "type" : "runtime_data",
1362 "value" : 2
1363 }
1364 ],
1365 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001366 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02001367 "line" : 43,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001368 "column" : 8,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001369 "source_fragment" : "spgw_meta.s1u_sgw_addr = s1u_sgw_addr"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001370 }
1371 }
1372 ]
1373 },
1374 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001375 "name" : "FabricIngress.spgw_ingress.update_ue_cdr",
Esin Karaman971fb7f2017-12-28 13:44:52 +00001376 "id" : 16,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001377 "runtime_data" : [],
1378 "primitives" : []
1379 },
1380 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001381 "name" : "FabricIngress.filtering.drop",
Esin Karaman971fb7f2017-12-28 13:44:52 +00001382 "id" : 17,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001383 "runtime_data" : [],
1384 "primitives" : [
1385 {
1386 "op" : "drop",
1387 "parameters" : [],
1388 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001389 "filename" : "include/control/filtering.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001390 "line" : 37,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001391 "column" : 8,
1392 "source_fragment" : "mark_to_drop()"
1393 }
1394 }
1395 ]
1396 },
1397 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001398 "name" : "FabricIngress.filtering.set_vlan",
Esin Karaman971fb7f2017-12-28 13:44:52 +00001399 "id" : 18,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001400 "runtime_data" : [
1401 {
1402 "name" : "new_vlan_id",
1403 "bitwidth" : 12
1404 }
1405 ],
1406 "primitives" : [
1407 {
1408 "op" : "assign",
1409 "parameters" : [
1410 {
1411 "type" : "field",
1412 "value" : ["vlan_tag", "vlan_id"]
1413 },
1414 {
1415 "type" : "runtime_data",
1416 "value" : 0
1417 }
1418 ],
1419 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001420 "filename" : "include/control/filtering.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001421 "line" : 42,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001422 "column" : 8,
1423 "source_fragment" : "hdr.vlan_tag.vlan_id = new_vlan_id"
1424 }
1425 }
1426 ]
1427 },
1428 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001429 "name" : "FabricIngress.filtering.push_internal_vlan",
Esin Karaman971fb7f2017-12-28 13:44:52 +00001430 "id" : 19,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001431 "runtime_data" : [
1432 {
1433 "name" : "new_vlan_id",
1434 "bitwidth" : 12
1435 }
1436 ],
1437 "primitives" : [
1438 {
1439 "op" : "add_header",
1440 "parameters" : [
1441 {
1442 "type" : "header",
1443 "value" : "vlan_tag"
1444 }
1445 ],
1446 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001447 "filename" : "include/control/filtering.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001448 "line" : 49,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001449 "column" : 8,
1450 "source_fragment" : "hdr.vlan_tag.setValid()"
1451 }
1452 },
1453 {
1454 "op" : "assign",
1455 "parameters" : [
1456 {
1457 "type" : "field",
1458 "value" : ["vlan_tag", "cfi"]
1459 },
1460 {
1461 "type" : "hexstr",
1462 "value" : "0x00"
1463 }
1464 ],
1465 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001466 "filename" : "include/control/filtering.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001467 "line" : 50,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001468 "column" : 8,
1469 "source_fragment" : "hdr.vlan_tag.cfi = 0"
1470 }
1471 },
1472 {
1473 "op" : "assign",
1474 "parameters" : [
1475 {
1476 "type" : "field",
1477 "value" : ["vlan_tag", "pri"]
1478 },
1479 {
1480 "type" : "hexstr",
1481 "value" : "0x00"
1482 }
1483 ],
1484 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001485 "filename" : "include/control/filtering.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001486 "line" : 51,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001487 "column" : 8,
1488 "source_fragment" : "hdr.vlan_tag.pri = 0"
1489 }
1490 },
1491 {
1492 "op" : "assign",
1493 "parameters" : [
1494 {
1495 "type" : "field",
1496 "value" : ["vlan_tag", "ether_type"]
1497 },
1498 {
1499 "type" : "field",
1500 "value" : ["ethernet", "ether_type"]
1501 }
1502 ],
1503 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001504 "filename" : "include/control/filtering.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001505 "line" : 52,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001506 "column" : 8,
1507 "source_fragment" : "hdr.vlan_tag.ether_type = hdr.ethernet.ether_type"
1508 }
1509 },
1510 {
1511 "op" : "assign",
1512 "parameters" : [
1513 {
1514 "type" : "field",
1515 "value" : ["ethernet", "ether_type"]
1516 },
1517 {
1518 "type" : "hexstr",
1519 "value" : "0x8100"
1520 }
1521 ],
1522 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001523 "filename" : "include/control/../define.p4",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09001524 "line" : 74,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001525 "column" : 31,
1526 "source_fragment" : "0x8100; ..."
1527 }
1528 },
1529 {
1530 "op" : "assign",
1531 "parameters" : [
1532 {
1533 "type" : "field",
1534 "value" : ["vlan_tag", "vlan_id"]
1535 },
1536 {
1537 "type" : "runtime_data",
1538 "value" : 0
1539 }
1540 ],
1541 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001542 "filename" : "include/control/filtering.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001543 "line" : 54,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001544 "column" : 8,
Yi Tseng47eac892018-07-11 02:17:04 +08001545 "source_fragment" : "hdr.vlan_tag.vlan_id = new_vlan_id"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001546 }
1547 },
1548 {
1549 "op" : "assign",
1550 "parameters" : [
1551 {
1552 "type" : "field",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001553 "value" : ["scalars", "fabric_metadata_t.pop_vlan_when_packet_in"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001554 },
1555 {
1556 "type" : "expression",
1557 "value" : {
1558 "type" : "expression",
1559 "value" : {
1560 "op" : "b2d",
1561 "left" : null,
1562 "right" : {
1563 "type" : "bool",
1564 "value" : true
1565 }
1566 }
1567 }
1568 }
1569 ],
1570 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001571 "filename" : "include/control/filtering.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001572 "line" : 57,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001573 "column" : 8,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001574 "source_fragment" : "fabric_metadata.pop_vlan_when_packet_in = true"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001575 }
1576 }
1577 ]
1578 },
1579 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001580 "name" : "FabricIngress.filtering.set_forwarding_type",
Esin Karaman971fb7f2017-12-28 13:44:52 +00001581 "id" : 20,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001582 "runtime_data" : [
1583 {
1584 "name" : "fwd_type",
1585 "bitwidth" : 3
1586 }
1587 ],
1588 "primitives" : [
1589 {
1590 "op" : "assign",
1591 "parameters" : [
1592 {
1593 "type" : "field",
1594 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
1595 },
1596 {
1597 "type" : "runtime_data",
1598 "value" : 0
1599 }
1600 ],
1601 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001602 "filename" : "include/control/filtering.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001603 "line" : 94,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001604 "column" : 8,
1605 "source_fragment" : "fabric_metadata.fwd_type = fwd_type"
1606 }
1607 }
1608 ]
1609 },
1610 {
Yi Tseng47eac892018-07-11 02:17:04 +08001611 "name" : "FabricIngress.forwarding.set_next_id_bridging",
Esin Karaman971fb7f2017-12-28 13:44:52 +00001612 "id" : 21,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001613 "runtime_data" : [
1614 {
1615 "name" : "next_id",
1616 "bitwidth" : 32
1617 }
1618 ],
1619 "primitives" : [
1620 {
1621 "op" : "assign",
1622 "parameters" : [
1623 {
1624 "type" : "field",
1625 "value" : ["scalars", "fabric_metadata_t.next_id"]
1626 },
1627 {
1628 "type" : "runtime_data",
1629 "value" : 0
1630 }
1631 ],
1632 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001633 "filename" : "include/control/forwarding.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001634 "line" : 37,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001635 "column" : 8,
1636 "source_fragment" : "fabric_metadata.next_id = next_id"
1637 }
1638 }
1639 ]
1640 },
1641 {
Yi Tseng47eac892018-07-11 02:17:04 +08001642 "name" : "FabricIngress.forwarding.pop_mpls_and_next",
1643 "id" : 22,
1644 "runtime_data" : [
1645 {
1646 "name" : "next_id",
1647 "bitwidth" : 32
1648 }
1649 ],
1650 "primitives" : [
1651 {
1652 "op" : "remove_header",
1653 "parameters" : [
1654 {
1655 "type" : "header",
1656 "value" : "mpls"
1657 }
1658 ],
1659 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001660 "filename" : "include/control/forwarding.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001661 "line" : 60,
1662 "column" : 8,
1663 "source_fragment" : "hdr.mpls.setInvalid()"
1664 }
1665 },
1666 {
1667 "op" : "assign",
1668 "parameters" : [
1669 {
1670 "type" : "field",
1671 "value" : ["scalars", "fabric_metadata_t.next_id"]
1672 },
1673 {
1674 "type" : "runtime_data",
1675 "value" : 0
1676 }
1677 ],
1678 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001679 "filename" : "include/control/forwarding.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001680 "line" : 61,
1681 "column" : 8,
1682 "source_fragment" : "fabric_metadata.next_id = next_id"
1683 }
1684 }
1685 ]
1686 },
1687 {
1688 "name" : "FabricIngress.forwarding.set_next_id_unicast_v4",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001689 "id" : 23,
Yi Tseng27b9bc02018-04-12 14:52:40 +08001690 "runtime_data" : [
1691 {
1692 "name" : "next_id",
1693 "bitwidth" : 32
1694 }
1695 ],
1696 "primitives" : [
1697 {
1698 "op" : "assign",
1699 "parameters" : [
1700 {
1701 "type" : "field",
1702 "value" : ["scalars", "fabric_metadata_t.next_id"]
1703 },
1704 {
1705 "type" : "runtime_data",
1706 "value" : 0
1707 }
1708 ],
1709 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001710 "filename" : "include/control/forwarding.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001711 "line" : 83,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001712 "column" : 8,
1713 "source_fragment" : "fabric_metadata.next_id = next_id"
1714 }
1715 }
1716 ]
1717 },
1718 {
Yi Tseng47eac892018-07-11 02:17:04 +08001719 "name" : "FabricIngress.forwarding.set_next_id_acl",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001720 "id" : 24,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001721 "runtime_data" : [
1722 {
1723 "name" : "next_id",
1724 "bitwidth" : 32
1725 }
1726 ],
1727 "primitives" : [
1728 {
Esin Karaman971fb7f2017-12-28 13:44:52 +00001729 "op" : "assign",
1730 "parameters" : [
1731 {
1732 "type" : "field",
1733 "value" : ["scalars", "fabric_metadata_t.next_id"]
1734 },
1735 {
1736 "type" : "runtime_data",
1737 "value" : 0
1738 }
1739 ],
1740 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001741 "filename" : "include/control/forwarding.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001742 "line" : 105,
Esin Karaman971fb7f2017-12-28 13:44:52 +00001743 "column" : 8,
1744 "source_fragment" : "fabric_metadata.next_id = next_id"
1745 }
1746 }
1747 ]
1748 },
1749 {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001750 "name" : "FabricIngress.forwarding.punt_to_cpu",
Esin Karaman971fb7f2017-12-28 13:44:52 +00001751 "id" : 25,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001752 "runtime_data" : [],
1753 "primitives" : [
1754 {
1755 "op" : "assign",
1756 "parameters" : [
1757 {
1758 "type" : "field",
1759 "value" : ["standard_metadata", "egress_spec"]
1760 },
1761 {
1762 "type" : "hexstr",
1763 "value" : "0x00ff"
1764 }
1765 ],
1766 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001767 "filename" : "include/control/forwarding.p4",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001768 "line" : 111,
Carmelo Casconeb531b682018-01-30 17:55:56 -08001769 "column" : 8,
1770 "source_fragment" : "standard_metadata.egress_spec = 255"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001771 }
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001772 },
1773 {
1774 "op" : "exit",
1775 "parameters" : [],
1776 "source_info" : {
1777 "filename" : "include/control/forwarding.p4",
1778 "line" : 113,
1779 "column" : 8,
1780 "source_fragment" : "exit"
1781 }
1782 }
1783 ]
1784 },
1785 {
1786 "name" : "FabricIngress.forwarding.clone_to_cpu",
1787 "id" : 26,
1788 "runtime_data" : [],
1789 "primitives" : [
1790 {
1791 "op" : "assign",
1792 "parameters" : [
1793 {
1794 "type" : "field",
1795 "value" : ["scalars", "fabric_metadata_t.clone_to_cpu"]
1796 },
1797 {
1798 "type" : "expression",
1799 "value" : {
1800 "type" : "expression",
1801 "value" : {
1802 "op" : "b2d",
1803 "left" : null,
1804 "right" : {
1805 "type" : "bool",
1806 "value" : true
1807 }
1808 }
1809 }
1810 }
1811 ],
1812 "source_info" : {
1813 "filename" : "include/control/forwarding.p4",
1814 "line" : 118,
1815 "column" : 8,
1816 "source_fragment" : "fabric_metadata.clone_to_cpu = true"
1817 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001818 }
1819 ]
1820 },
1821 {
Yi Tseng47eac892018-07-11 02:17:04 +08001822 "name" : "FabricIngress.forwarding.drop",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001823 "id" : 27,
Yi Tseng47eac892018-07-11 02:17:04 +08001824 "runtime_data" : [],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001825 "primitives" : [
1826 {
Yi Tseng47eac892018-07-11 02:17:04 +08001827 "op" : "drop",
1828 "parameters" : [],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001829 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001830 "filename" : "include/control/forwarding.p4",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001831 "line" : 123,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001832 "column" : 8,
Yi Tseng47eac892018-07-11 02:17:04 +08001833 "source_fragment" : "mark_to_drop()"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001834 }
1835 }
1836 ]
1837 },
1838 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001839 "name" : "FabricIngress.next.set_vlan",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001840 "id" : 28,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001841 "runtime_data" : [
1842 {
1843 "name" : "new_vlan_id",
1844 "bitwidth" : 12
1845 }
1846 ],
1847 "primitives" : [
1848 {
1849 "op" : "assign",
1850 "parameters" : [
1851 {
1852 "type" : "field",
1853 "value" : ["vlan_tag", "vlan_id"]
1854 },
1855 {
1856 "type" : "runtime_data",
1857 "value" : 0
1858 }
1859 ],
1860 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001861 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001862 "line" : 61,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001863 "column" : 8,
1864 "source_fragment" : "hdr.vlan_tag.vlan_id = new_vlan_id"
1865 }
1866 }
1867 ]
1868 },
1869 {
Yi Tseng47eac892018-07-11 02:17:04 +08001870 "name" : "FabricIngress.next.output_simple",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001871 "id" : 29,
Yi Tseng47eac892018-07-11 02:17:04 +08001872 "runtime_data" : [
1873 {
1874 "name" : "port_num",
1875 "bitwidth" : 9
1876 }
1877 ],
1878 "primitives" : [
1879 {
1880 "op" : "assign",
1881 "parameters" : [
1882 {
1883 "type" : "field",
1884 "value" : ["standard_metadata", "egress_spec"]
1885 },
1886 {
1887 "type" : "runtime_data",
1888 "value" : 0
1889 }
1890 ],
1891 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001892 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001893 "line" : 85,
1894 "column" : 8,
1895 "source_fragment" : "standard_metadata.egress_spec = port_num"
1896 }
1897 }
1898 ]
1899 },
1900 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001901 "name" : "FabricIngress.next.set_vlan_output",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001902 "id" : 30,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001903 "runtime_data" : [
1904 {
1905 "name" : "new_vlan_id",
1906 "bitwidth" : 12
1907 },
1908 {
1909 "name" : "port_num",
1910 "bitwidth" : 9
1911 }
1912 ],
1913 "primitives" : [
1914 {
1915 "op" : "assign",
1916 "parameters" : [
1917 {
1918 "type" : "field",
1919 "value" : ["vlan_tag", "vlan_id"]
1920 },
1921 {
1922 "type" : "runtime_data",
1923 "value" : 0
1924 }
1925 ],
1926 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001927 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001928 "line" : 90,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001929 "column" : 8,
1930 "source_fragment" : "hdr.vlan_tag.vlan_id = new_vlan_id"
1931 }
1932 },
1933 {
1934 "op" : "assign",
1935 "parameters" : [
1936 {
1937 "type" : "field",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001938 "value" : ["standard_metadata", "egress_spec"]
1939 },
1940 {
1941 "type" : "runtime_data",
1942 "value" : 1
1943 }
1944 ],
1945 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001946 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001947 "line" : 85,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001948 "column" : 8,
1949 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
1950 }
1951 }
1952 ]
1953 },
1954 {
Yi Tseng47eac892018-07-11 02:17:04 +08001955 "name" : "FabricIngress.next.l3_routing_simple",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001956 "id" : 31,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001957 "runtime_data" : [
1958 {
1959 "name" : "port_num",
1960 "bitwidth" : 9
1961 },
1962 {
1963 "name" : "smac",
1964 "bitwidth" : 48
1965 },
1966 {
1967 "name" : "dmac",
1968 "bitwidth" : 48
1969 }
1970 ],
1971 "primitives" : [
1972 {
1973 "op" : "assign",
1974 "parameters" : [
1975 {
1976 "type" : "field",
1977 "value" : ["ethernet", "src_addr"]
1978 },
1979 {
1980 "type" : "runtime_data",
1981 "value" : 1
1982 }
1983 ],
1984 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001985 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001986 "line" : 37,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001987 "column" : 8,
1988 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
1989 }
1990 },
1991 {
1992 "op" : "assign",
1993 "parameters" : [
1994 {
1995 "type" : "field",
1996 "value" : ["ethernet", "dst_addr"]
1997 },
1998 {
1999 "type" : "runtime_data",
2000 "value" : 2
2001 }
2002 ],
2003 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002004 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002005 "line" : 41,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002006 "column" : 8,
2007 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2008 }
2009 },
2010 {
2011 "op" : "assign",
2012 "parameters" : [
2013 {
2014 "type" : "field",
2015 "value" : ["standard_metadata", "egress_spec"]
2016 },
2017 {
2018 "type" : "runtime_data",
2019 "value" : 0
2020 }
2021 ],
2022 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002023 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002024 "line" : 85,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002025 "column" : 8,
2026 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2027 }
2028 }
2029 ]
2030 },
2031 {
Yi Tseng47eac892018-07-11 02:17:04 +08002032 "name" : "FabricIngress.next.mpls_routing_v4_simple",
Yi Tseng47eac892018-07-11 02:17:04 +08002033 "id" : 32,
2034 "runtime_data" : [
2035 {
2036 "name" : "port_num",
2037 "bitwidth" : 9
2038 },
2039 {
2040 "name" : "smac",
2041 "bitwidth" : 48
2042 },
2043 {
2044 "name" : "dmac",
2045 "bitwidth" : 48
2046 },
2047 {
2048 "name" : "label",
2049 "bitwidth" : 20
2050 }
2051 ],
2052 "primitives" : [
2053 {
2054 "op" : "assign",
2055 "parameters" : [
2056 {
2057 "type" : "field",
2058 "value" : ["ethernet", "src_addr"]
2059 },
2060 {
2061 "type" : "runtime_data",
2062 "value" : 1
2063 }
2064 ],
2065 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002066 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002067 "line" : 37,
2068 "column" : 8,
2069 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2070 }
2071 },
2072 {
2073 "op" : "assign",
2074 "parameters" : [
2075 {
2076 "type" : "field",
2077 "value" : ["ethernet", "dst_addr"]
2078 },
2079 {
2080 "type" : "runtime_data",
2081 "value" : 2
2082 }
2083 ],
2084 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002085 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002086 "line" : 41,
2087 "column" : 8,
2088 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2089 }
2090 },
2091 {
2092 "op" : "assign",
2093 "parameters" : [
2094 {
2095 "type" : "field",
2096 "value" : ["standard_metadata", "egress_spec"]
2097 },
2098 {
2099 "type" : "runtime_data",
2100 "value" : 0
2101 }
2102 ],
2103 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002104 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002105 "line" : 85,
2106 "column" : 8,
2107 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2108 }
2109 },
2110 {
2111 "op" : "add_header",
2112 "parameters" : [
2113 {
2114 "type" : "header",
2115 "value" : "mpls"
2116 }
2117 ],
2118 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002119 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002120 "line" : 46,
2121 "column" : 8,
2122 "source_fragment" : "hdr.mpls.setValid()"
2123 }
2124 },
2125 {
2126 "op" : "assign",
2127 "parameters" : [
2128 {
2129 "type" : "field",
2130 "value" : ["vlan_tag", "ether_type"]
2131 },
2132 {
2133 "type" : "hexstr",
2134 "value" : "0x8847"
2135 }
2136 ],
2137 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002138 "filename" : "include/control/../define.p4",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09002139 "line" : 75,
Yi Tseng47eac892018-07-11 02:17:04 +08002140 "column" : 31,
2141 "source_fragment" : "0x8847; ..."
2142 }
2143 },
2144 {
2145 "op" : "assign",
2146 "parameters" : [
2147 {
2148 "type" : "field",
2149 "value" : ["mpls", "label"]
2150 },
2151 {
2152 "type" : "runtime_data",
2153 "value" : 3
2154 }
2155 ],
2156 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002157 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002158 "line" : 48,
2159 "column" : 8,
2160 "source_fragment" : "hdr.mpls.label = label; ..."
2161 }
2162 },
2163 {
2164 "op" : "assign",
2165 "parameters" : [
2166 {
2167 "type" : "field",
2168 "value" : ["mpls", "tc"]
2169 },
2170 {
2171 "type" : "hexstr",
2172 "value" : "0x00"
2173 }
2174 ],
2175 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002176 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002177 "line" : 49,
2178 "column" : 8,
2179 "source_fragment" : "hdr.mpls.tc = tc; ..."
2180 }
2181 },
2182 {
2183 "op" : "assign",
2184 "parameters" : [
2185 {
2186 "type" : "field",
2187 "value" : ["mpls", "bos"]
2188 },
2189 {
2190 "type" : "hexstr",
2191 "value" : "0x01"
2192 }
2193 ],
2194 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002195 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002196 "line" : 50,
2197 "column" : 8,
2198 "source_fragment" : "hdr.mpls.bos = 1w1"
2199 }
2200 },
2201 {
2202 "op" : "assign",
2203 "parameters" : [
2204 {
2205 "type" : "field",
2206 "value" : ["mpls", "ttl"]
2207 },
2208 {
2209 "type" : "hexstr",
2210 "value" : "0x40"
2211 }
2212 ],
2213 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002214 "filename" : "include/control/../define.p4",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09002215 "line" : 95,
Yi Tseng47eac892018-07-11 02:17:04 +08002216 "column" : 32,
2217 "source_fragment" : "64; ..."
2218 }
Esin Karaman971fb7f2017-12-28 13:44:52 +00002219 }
2220 ]
2221 },
2222 {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002223 "name" : "FabricIngress.next.mpls_routing_v6_simple",
Yi Tseng47eac892018-07-11 02:17:04 +08002224 "id" : 33,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002225 "runtime_data" : [
2226 {
2227 "name" : "port_num",
2228 "bitwidth" : 9
2229 },
2230 {
2231 "name" : "smac",
2232 "bitwidth" : 48
2233 },
2234 {
2235 "name" : "dmac",
2236 "bitwidth" : 48
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002237 },
2238 {
Esin Karaman971fb7f2017-12-28 13:44:52 +00002239 "name" : "label",
2240 "bitwidth" : 20
2241 }
2242 ],
2243 "primitives" : [
2244 {
2245 "op" : "assign",
2246 "parameters" : [
2247 {
2248 "type" : "field",
2249 "value" : ["ethernet", "src_addr"]
2250 },
2251 {
2252 "type" : "runtime_data",
2253 "value" : 1
2254 }
2255 ],
2256 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002257 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002258 "line" : 37,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002259 "column" : 8,
2260 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2261 }
2262 },
2263 {
2264 "op" : "assign",
2265 "parameters" : [
2266 {
2267 "type" : "field",
2268 "value" : ["ethernet", "dst_addr"]
2269 },
2270 {
2271 "type" : "runtime_data",
2272 "value" : 2
2273 }
2274 ],
2275 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002276 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002277 "line" : 41,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002278 "column" : 8,
2279 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2280 }
2281 },
2282 {
2283 "op" : "assign",
2284 "parameters" : [
2285 {
2286 "type" : "field",
2287 "value" : ["standard_metadata", "egress_spec"]
2288 },
2289 {
2290 "type" : "runtime_data",
2291 "value" : 0
2292 }
2293 ],
2294 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002295 "filename" : "include/control/next.p4",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002296 "line" : 85,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002297 "column" : 8,
2298 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2299 }
2300 },
2301 {
2302 "op" : "add_header",
2303 "parameters" : [
2304 {
2305 "type" : "header",
2306 "value" : "mpls"
2307 }
2308 ],
2309 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002310 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002311 "line" : 46,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002312 "column" : 8,
2313 "source_fragment" : "hdr.mpls.setValid()"
2314 }
2315 },
2316 {
2317 "op" : "assign",
2318 "parameters" : [
2319 {
2320 "type" : "field",
2321 "value" : ["vlan_tag", "ether_type"]
2322 },
2323 {
2324 "type" : "hexstr",
2325 "value" : "0x8847"
2326 }
2327 ],
2328 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002329 "filename" : "include/control/../define.p4",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09002330 "line" : 75,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002331 "column" : 31,
2332 "source_fragment" : "0x8847; ..."
2333 }
2334 },
2335 {
2336 "op" : "assign",
2337 "parameters" : [
2338 {
2339 "type" : "field",
2340 "value" : ["mpls", "label"]
2341 },
2342 {
2343 "type" : "runtime_data",
2344 "value" : 3
2345 }
2346 ],
2347 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002348 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002349 "line" : 48,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002350 "column" : 8,
2351 "source_fragment" : "hdr.mpls.label = label; ..."
2352 }
2353 },
2354 {
2355 "op" : "assign",
2356 "parameters" : [
2357 {
2358 "type" : "field",
2359 "value" : ["mpls", "tc"]
2360 },
2361 {
2362 "type" : "hexstr",
2363 "value" : "0x00"
2364 }
2365 ],
2366 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002367 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002368 "line" : 49,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002369 "column" : 8,
2370 "source_fragment" : "hdr.mpls.tc = tc; ..."
2371 }
2372 },
2373 {
2374 "op" : "assign",
2375 "parameters" : [
2376 {
2377 "type" : "field",
2378 "value" : ["mpls", "bos"]
2379 },
2380 {
2381 "type" : "hexstr",
2382 "value" : "0x01"
2383 }
2384 ],
2385 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002386 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002387 "line" : 50,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002388 "column" : 8,
2389 "source_fragment" : "hdr.mpls.bos = 1w1"
2390 }
2391 },
2392 {
2393 "op" : "assign",
2394 "parameters" : [
2395 {
2396 "type" : "field",
2397 "value" : ["mpls", "ttl"]
2398 },
2399 {
2400 "type" : "hexstr",
2401 "value" : "0x40"
2402 }
2403 ],
2404 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002405 "filename" : "include/control/../define.p4",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09002406 "line" : 95,
Yi Tseng47eac892018-07-11 02:17:04 +08002407 "column" : 32,
2408 "source_fragment" : "64; ..."
2409 }
2410 }
2411 ]
2412 },
2413 {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002414 "name" : "FabricIngress.next.l3_routing_vlan",
2415 "id" : 34,
2416 "runtime_data" : [
2417 {
2418 "name" : "port_num",
2419 "bitwidth" : 9
2420 },
2421 {
2422 "name" : "smac",
2423 "bitwidth" : 48
2424 },
2425 {
2426 "name" : "dmac",
2427 "bitwidth" : 48
2428 },
2429 {
2430 "name" : "new_vlan_id",
2431 "bitwidth" : 12
2432 }
2433 ],
2434 "primitives" : [
2435 {
2436 "op" : "assign",
2437 "parameters" : [
2438 {
2439 "type" : "field",
2440 "value" : ["ethernet", "src_addr"]
2441 },
2442 {
2443 "type" : "runtime_data",
2444 "value" : 1
2445 }
2446 ],
2447 "source_info" : {
2448 "filename" : "include/control/next.p4",
2449 "line" : 37,
2450 "column" : 8,
2451 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2452 }
2453 },
2454 {
2455 "op" : "assign",
2456 "parameters" : [
2457 {
2458 "type" : "field",
2459 "value" : ["ethernet", "dst_addr"]
2460 },
2461 {
2462 "type" : "runtime_data",
2463 "value" : 2
2464 }
2465 ],
2466 "source_info" : {
2467 "filename" : "include/control/next.p4",
2468 "line" : 41,
2469 "column" : 8,
2470 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2471 }
2472 },
2473 {
2474 "op" : "assign",
2475 "parameters" : [
2476 {
2477 "type" : "field",
2478 "value" : ["vlan_tag", "vlan_id"]
2479 },
2480 {
2481 "type" : "runtime_data",
2482 "value" : 3
2483 }
2484 ],
2485 "source_info" : {
2486 "filename" : "include/control/next.p4",
2487 "line" : 90,
2488 "column" : 8,
2489 "source_fragment" : "hdr.vlan_tag.vlan_id = new_vlan_id; ..."
2490 }
2491 },
2492 {
2493 "op" : "assign",
2494 "parameters" : [
2495 {
2496 "type" : "field",
2497 "value" : ["standard_metadata", "egress_spec"]
2498 },
2499 {
2500 "type" : "runtime_data",
2501 "value" : 0
2502 }
2503 ],
2504 "source_info" : {
2505 "filename" : "include/control/next.p4",
2506 "line" : 85,
2507 "column" : 8,
2508 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2509 }
2510 }
2511 ]
2512 },
2513 {
2514 "name" : "FabricIngress.next.l3_routing_hashed",
2515 "id" : 35,
2516 "runtime_data" : [
2517 {
2518 "name" : "port_num",
2519 "bitwidth" : 9
2520 },
2521 {
2522 "name" : "smac",
2523 "bitwidth" : 48
2524 },
2525 {
2526 "name" : "dmac",
2527 "bitwidth" : 48
2528 }
2529 ],
2530 "primitives" : [
2531 {
2532 "op" : "assign",
2533 "parameters" : [
2534 {
2535 "type" : "field",
2536 "value" : ["ethernet", "src_addr"]
2537 },
2538 {
2539 "type" : "runtime_data",
2540 "value" : 1
2541 }
2542 ],
2543 "source_info" : {
2544 "filename" : "include/control/next.p4",
2545 "line" : 37,
2546 "column" : 8,
2547 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2548 }
2549 },
2550 {
2551 "op" : "assign",
2552 "parameters" : [
2553 {
2554 "type" : "field",
2555 "value" : ["ethernet", "dst_addr"]
2556 },
2557 {
2558 "type" : "runtime_data",
2559 "value" : 2
2560 }
2561 ],
2562 "source_info" : {
2563 "filename" : "include/control/next.p4",
2564 "line" : 41,
2565 "column" : 8,
2566 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2567 }
2568 },
2569 {
2570 "op" : "assign",
2571 "parameters" : [
2572 {
2573 "type" : "field",
2574 "value" : ["standard_metadata", "egress_spec"]
2575 },
2576 {
2577 "type" : "runtime_data",
2578 "value" : 0
2579 }
2580 ],
2581 "source_info" : {
2582 "filename" : "include/control/next.p4",
2583 "line" : 149,
2584 "column" : 8,
2585 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2586 }
2587 }
2588 ]
2589 },
2590 {
2591 "name" : "FabricIngress.next.mpls_routing_v4_hashed",
Yi Tseng47eac892018-07-11 02:17:04 +08002592 "id" : 36,
2593 "runtime_data" : [
2594 {
2595 "name" : "port_num",
2596 "bitwidth" : 9
2597 },
2598 {
2599 "name" : "smac",
2600 "bitwidth" : 48
2601 },
2602 {
2603 "name" : "dmac",
2604 "bitwidth" : 48
2605 },
2606 {
2607 "name" : "label",
2608 "bitwidth" : 20
2609 }
2610 ],
2611 "primitives" : [
2612 {
2613 "op" : "assign",
2614 "parameters" : [
2615 {
2616 "type" : "field",
2617 "value" : ["ethernet", "src_addr"]
2618 },
2619 {
2620 "type" : "runtime_data",
2621 "value" : 1
2622 }
2623 ],
2624 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002625 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002626 "line" : 37,
2627 "column" : 8,
2628 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2629 }
2630 },
2631 {
2632 "op" : "assign",
2633 "parameters" : [
2634 {
2635 "type" : "field",
2636 "value" : ["ethernet", "dst_addr"]
2637 },
2638 {
2639 "type" : "runtime_data",
2640 "value" : 2
2641 }
2642 ],
2643 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002644 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002645 "line" : 41,
2646 "column" : 8,
2647 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2648 }
2649 },
2650 {
2651 "op" : "assign",
2652 "parameters" : [
2653 {
2654 "type" : "field",
2655 "value" : ["standard_metadata", "egress_spec"]
2656 },
2657 {
2658 "type" : "runtime_data",
2659 "value" : 0
2660 }
2661 ],
2662 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002663 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002664 "line" : 149,
2665 "column" : 8,
2666 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2667 }
2668 },
2669 {
2670 "op" : "add_header",
2671 "parameters" : [
2672 {
2673 "type" : "header",
2674 "value" : "mpls"
2675 }
2676 ],
2677 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002678 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002679 "line" : 46,
2680 "column" : 8,
2681 "source_fragment" : "hdr.mpls.setValid()"
2682 }
2683 },
2684 {
2685 "op" : "assign",
2686 "parameters" : [
2687 {
2688 "type" : "field",
2689 "value" : ["vlan_tag", "ether_type"]
2690 },
2691 {
2692 "type" : "hexstr",
2693 "value" : "0x8847"
2694 }
2695 ],
2696 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002697 "filename" : "include/control/../define.p4",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09002698 "line" : 75,
Yi Tseng47eac892018-07-11 02:17:04 +08002699 "column" : 31,
2700 "source_fragment" : "0x8847; ..."
2701 }
2702 },
2703 {
2704 "op" : "assign",
2705 "parameters" : [
2706 {
2707 "type" : "field",
2708 "value" : ["mpls", "label"]
2709 },
2710 {
2711 "type" : "runtime_data",
2712 "value" : 3
2713 }
2714 ],
2715 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002716 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002717 "line" : 48,
2718 "column" : 8,
2719 "source_fragment" : "hdr.mpls.label = label; ..."
2720 }
2721 },
2722 {
2723 "op" : "assign",
2724 "parameters" : [
2725 {
2726 "type" : "field",
2727 "value" : ["mpls", "tc"]
2728 },
2729 {
2730 "type" : "hexstr",
2731 "value" : "0x00"
2732 }
2733 ],
2734 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002735 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002736 "line" : 49,
2737 "column" : 8,
2738 "source_fragment" : "hdr.mpls.tc = tc; ..."
2739 }
2740 },
2741 {
2742 "op" : "assign",
2743 "parameters" : [
2744 {
2745 "type" : "field",
2746 "value" : ["mpls", "bos"]
2747 },
2748 {
2749 "type" : "hexstr",
2750 "value" : "0x01"
2751 }
2752 ],
2753 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002754 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002755 "line" : 50,
2756 "column" : 8,
2757 "source_fragment" : "hdr.mpls.bos = 1w1"
2758 }
2759 },
2760 {
2761 "op" : "assign",
2762 "parameters" : [
2763 {
2764 "type" : "field",
2765 "value" : ["mpls", "ttl"]
2766 },
2767 {
2768 "type" : "hexstr",
2769 "value" : "0x40"
2770 }
2771 ],
2772 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002773 "filename" : "include/control/../define.p4",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09002774 "line" : 95,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002775 "column" : 32,
2776 "source_fragment" : "64; ..."
2777 }
2778 }
2779 ]
2780 },
2781 {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002782 "name" : "FabricIngress.next.mpls_routing_v6_hashed",
Yi Tseng47eac892018-07-11 02:17:04 +08002783 "id" : 37,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002784 "runtime_data" : [
2785 {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002786 "name" : "port_num",
2787 "bitwidth" : 9
2788 },
2789 {
2790 "name" : "smac",
2791 "bitwidth" : 48
2792 },
2793 {
2794 "name" : "dmac",
2795 "bitwidth" : 48
2796 },
2797 {
2798 "name" : "label",
2799 "bitwidth" : 20
2800 }
2801 ],
2802 "primitives" : [
2803 {
2804 "op" : "assign",
2805 "parameters" : [
2806 {
2807 "type" : "field",
2808 "value" : ["ethernet", "src_addr"]
2809 },
2810 {
2811 "type" : "runtime_data",
2812 "value" : 1
2813 }
2814 ],
2815 "source_info" : {
2816 "filename" : "include/control/next.p4",
2817 "line" : 37,
2818 "column" : 8,
2819 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2820 }
2821 },
2822 {
2823 "op" : "assign",
2824 "parameters" : [
2825 {
2826 "type" : "field",
2827 "value" : ["ethernet", "dst_addr"]
2828 },
2829 {
2830 "type" : "runtime_data",
2831 "value" : 2
2832 }
2833 ],
2834 "source_info" : {
2835 "filename" : "include/control/next.p4",
2836 "line" : 41,
2837 "column" : 8,
2838 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2839 }
2840 },
2841 {
2842 "op" : "assign",
2843 "parameters" : [
2844 {
2845 "type" : "field",
2846 "value" : ["standard_metadata", "egress_spec"]
2847 },
2848 {
2849 "type" : "runtime_data",
2850 "value" : 0
2851 }
2852 ],
2853 "source_info" : {
2854 "filename" : "include/control/next.p4",
2855 "line" : 149,
2856 "column" : 8,
2857 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2858 }
2859 },
2860 {
2861 "op" : "add_header",
2862 "parameters" : [
2863 {
2864 "type" : "header",
2865 "value" : "mpls"
2866 }
2867 ],
2868 "source_info" : {
2869 "filename" : "include/control/next.p4",
2870 "line" : 46,
2871 "column" : 8,
2872 "source_fragment" : "hdr.mpls.setValid()"
2873 }
2874 },
2875 {
2876 "op" : "assign",
2877 "parameters" : [
2878 {
2879 "type" : "field",
2880 "value" : ["vlan_tag", "ether_type"]
2881 },
2882 {
2883 "type" : "hexstr",
2884 "value" : "0x8847"
2885 }
2886 ],
2887 "source_info" : {
2888 "filename" : "include/control/../define.p4",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09002889 "line" : 75,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002890 "column" : 31,
2891 "source_fragment" : "0x8847; ..."
2892 }
2893 },
2894 {
2895 "op" : "assign",
2896 "parameters" : [
2897 {
2898 "type" : "field",
2899 "value" : ["mpls", "label"]
2900 },
2901 {
2902 "type" : "runtime_data",
2903 "value" : 3
2904 }
2905 ],
2906 "source_info" : {
2907 "filename" : "include/control/next.p4",
2908 "line" : 48,
2909 "column" : 8,
2910 "source_fragment" : "hdr.mpls.label = label; ..."
2911 }
2912 },
2913 {
2914 "op" : "assign",
2915 "parameters" : [
2916 {
2917 "type" : "field",
2918 "value" : ["mpls", "tc"]
2919 },
2920 {
2921 "type" : "hexstr",
2922 "value" : "0x00"
2923 }
2924 ],
2925 "source_info" : {
2926 "filename" : "include/control/next.p4",
2927 "line" : 49,
2928 "column" : 8,
2929 "source_fragment" : "hdr.mpls.tc = tc; ..."
2930 }
2931 },
2932 {
2933 "op" : "assign",
2934 "parameters" : [
2935 {
2936 "type" : "field",
2937 "value" : ["mpls", "bos"]
2938 },
2939 {
2940 "type" : "hexstr",
2941 "value" : "0x01"
2942 }
2943 ],
2944 "source_info" : {
2945 "filename" : "include/control/next.p4",
2946 "line" : 50,
2947 "column" : 8,
2948 "source_fragment" : "hdr.mpls.bos = 1w1"
2949 }
2950 },
2951 {
2952 "op" : "assign",
2953 "parameters" : [
2954 {
2955 "type" : "field",
2956 "value" : ["mpls", "ttl"]
2957 },
2958 {
2959 "type" : "hexstr",
2960 "value" : "0x40"
2961 }
2962 ],
2963 "source_info" : {
2964 "filename" : "include/control/../define.p4",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09002965 "line" : 95,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002966 "column" : 32,
2967 "source_fragment" : "64; ..."
2968 }
2969 }
2970 ]
2971 },
2972 {
2973 "name" : "FabricIngress.next.set_mcast_group",
2974 "id" : 38,
2975 "runtime_data" : [
2976 {
Esin Karaman971fb7f2017-12-28 13:44:52 +00002977 "name" : "gid",
2978 "bitwidth" : 16
2979 }
2980 ],
2981 "primitives" : [
2982 {
2983 "op" : "assign",
2984 "parameters" : [
2985 {
2986 "type" : "field",
2987 "value" : ["standard_metadata", "mcast_grp"]
2988 },
2989 {
2990 "type" : "runtime_data",
2991 "value" : 0
2992 }
2993 ],
2994 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002995 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002996 "line" : 202,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002997 "column" : 8,
2998 "source_fragment" : "standard_metadata.mcast_grp = gid"
2999 }
Carmelo Casconea5400af2018-07-17 22:11:54 +02003000 },
3001 {
3002 "op" : "assign",
3003 "parameters" : [
3004 {
3005 "type" : "field",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003006 "value" : ["scalars", "fabric_metadata_t.is_multicast"]
Carmelo Casconea5400af2018-07-17 22:11:54 +02003007 },
3008 {
3009 "type" : "expression",
3010 "value" : {
3011 "type" : "expression",
3012 "value" : {
3013 "op" : "b2d",
3014 "left" : null,
3015 "right" : {
3016 "type" : "bool",
3017 "value" : true
3018 }
3019 }
3020 }
3021 }
3022 ],
3023 "source_info" : {
3024 "filename" : "include/control/next.p4",
3025 "line" : 203,
3026 "column" : 8,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003027 "source_fragment" : "fabric_metadata.is_multicast = true"
Carmelo Casconea5400af2018-07-17 22:11:54 +02003028 }
Esin Karaman971fb7f2017-12-28 13:44:52 +00003029 }
3030 ]
3031 },
3032 {
3033 "name" : "act",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003034 "id" : 39,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003035 "runtime_data" : [],
3036 "primitives" : [
3037 {
3038 "op" : "assign",
3039 "parameters" : [
3040 {
3041 "type" : "field",
3042 "value" : ["standard_metadata", "egress_spec"]
3043 },
3044 {
3045 "type" : "field",
3046 "value" : ["packet_out", "egress_port"]
3047 }
3048 ],
3049 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003050 "filename" : "include/control/packetio.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003051 "line" : 26,
3052 "column" : 12,
3053 "source_fragment" : "standard_metadata.egress_spec = hdr.packet_out.egress_port"
3054 }
3055 },
3056 {
3057 "op" : "remove_header",
3058 "parameters" : [
3059 {
3060 "type" : "header",
3061 "value" : "packet_out"
3062 }
3063 ],
3064 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003065 "filename" : "include/control/packetio.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003066 "line" : 27,
3067 "column" : 12,
3068 "source_fragment" : "hdr.packet_out.setInvalid()"
3069 }
3070 }
3071 ]
3072 },
3073 {
3074 "name" : "act_0",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003075 "id" : 40,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003076 "runtime_data" : [],
3077 "primitives" : [
3078 {
3079 "op" : "assign",
3080 "parameters" : [
3081 {
3082 "type" : "field",
3083 "value" : ["scalars", "spgw_ingress_tmp_2"]
3084 },
3085 {
3086 "type" : "expression",
3087 "value" : {
3088 "type" : "expression",
3089 "value" : {
3090 "op" : "b2d",
3091 "left" : null,
3092 "right" : {
3093 "type" : "bool",
3094 "value" : true
3095 }
3096 }
3097 }
3098 }
3099 ]
3100 }
3101 ]
3102 },
3103 {
3104 "name" : "act_1",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003105 "id" : 41,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003106 "runtime_data" : [],
3107 "primitives" : [
3108 {
3109 "op" : "assign",
3110 "parameters" : [
3111 {
3112 "type" : "field",
3113 "value" : ["scalars", "spgw_ingress_tmp_2"]
3114 },
3115 {
3116 "type" : "expression",
3117 "value" : {
3118 "type" : "expression",
3119 "value" : {
3120 "op" : "b2d",
3121 "left" : null,
3122 "right" : {
3123 "type" : "bool",
3124 "value" : false
3125 }
3126 }
3127 }
3128 }
3129 ]
3130 }
3131 ]
3132 },
3133 {
3134 "name" : "act_2",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003135 "id" : 42,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003136 "runtime_data" : [],
3137 "primitives" : [
3138 {
3139 "op" : "assign",
3140 "parameters" : [
3141 {
3142 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003143 "value" : ["userMetadata.spgw", "s1u_enb_addr"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003144 },
3145 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003146 "type" : "field",
3147 "value" : ["ipv4", "src_addr"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003148 }
3149 ],
3150 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003151 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02003152 "line" : 147,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003153 "column" : 12,
3154 "source_fragment" : "spgw_meta.s1u_enb_addr = ipv4.src_addr"
3155 }
3156 },
3157 {
3158 "op" : "assign",
3159 "parameters" : [
3160 {
3161 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003162 "value" : ["userMetadata.spgw", "s1u_sgw_addr"]
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003163 },
3164 {
3165 "type" : "field",
3166 "value" : ["ipv4", "dst_addr"]
3167 }
3168 ],
3169 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003170 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02003171 "line" : 148,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003172 "column" : 12,
3173 "source_fragment" : "spgw_meta.s1u_sgw_addr = ipv4.dst_addr"
3174 }
3175 },
3176 {
3177 "op" : "assign_header",
3178 "parameters" : [
3179 {
3180 "type" : "header",
3181 "value" : "ipv4"
3182 },
3183 {
3184 "type" : "header",
3185 "value" : "gtpu_ipv4"
3186 }
3187 ],
3188 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003189 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02003190 "line" : 149,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003191 "column" : 17,
3192 "source_fragment" : "= gtpu_ipv4; ..."
3193 }
3194 },
3195 {
3196 "op" : "assign_header",
3197 "parameters" : [
3198 {
3199 "type" : "header",
3200 "value" : "udp"
3201 },
3202 {
3203 "type" : "header",
3204 "value" : "gtpu_udp"
3205 }
3206 ],
3207 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003208 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02003209 "line" : 150,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003210 "column" : 16,
3211 "source_fragment" : "= gtpu_udp; ..."
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003212 }
3213 }
3214 ]
3215 },
3216 {
3217 "name" : "act_3",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003218 "id" : 43,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003219 "runtime_data" : [],
3220 "primitives" : [
3221 {
3222 "op" : "assign",
3223 "parameters" : [
3224 {
3225 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003226 "value" : ["userMetadata.spgw", "do_spgw"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003227 },
3228 {
3229 "type" : "expression",
3230 "value" : {
3231 "type" : "expression",
3232 "value" : {
3233 "op" : "b2d",
3234 "left" : null,
3235 "right" : {
3236 "type" : "bool",
3237 "value" : true
3238 }
3239 }
3240 }
3241 }
3242 ],
3243 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003244 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02003245 "line" : 154,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003246 "column" : 16,
3247 "source_fragment" : "spgw_meta.do_spgw = true"
3248 }
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003249 },
3250 {
3251 "op" : "assign",
3252 "parameters" : [
3253 {
3254 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003255 "value" : ["userMetadata.spgw", "direction"]
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003256 },
3257 {
3258 "type" : "hexstr",
3259 "value" : "0x00"
3260 }
3261 ],
3262 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003263 "filename" : "include/control/../define.p4",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09003264 "line" : 106,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003265 "column" : 31,
3266 "source_fragment" : "1w0; ..."
3267 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003268 }
3269 ]
3270 },
3271 {
3272 "name" : "act_4",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003273 "id" : 44,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003274 "runtime_data" : [],
3275 "primitives" : [
3276 {
3277 "op" : "assign",
3278 "parameters" : [
3279 {
3280 "type" : "field",
3281 "value" : ["scalars", "spgw_ingress_tmp_3"]
3282 },
3283 {
3284 "type" : "expression",
3285 "value" : {
3286 "type" : "expression",
3287 "value" : {
3288 "op" : "b2d",
3289 "left" : null,
3290 "right" : {
3291 "type" : "bool",
3292 "value" : true
3293 }
3294 }
3295 }
3296 }
3297 ]
3298 }
3299 ]
3300 },
3301 {
3302 "name" : "act_5",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003303 "id" : 45,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003304 "runtime_data" : [],
3305 "primitives" : [
3306 {
3307 "op" : "assign",
3308 "parameters" : [
3309 {
3310 "type" : "field",
3311 "value" : ["scalars", "spgw_ingress_tmp_3"]
3312 },
3313 {
3314 "type" : "expression",
3315 "value" : {
3316 "type" : "expression",
3317 "value" : {
3318 "op" : "b2d",
3319 "left" : null,
3320 "right" : {
3321 "type" : "bool",
3322 "value" : false
3323 }
3324 }
3325 }
3326 }
3327 ]
3328 }
3329 ]
3330 },
3331 {
3332 "name" : "act_6",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003333 "id" : 46,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003334 "runtime_data" : [],
3335 "primitives" : [
3336 {
3337 "op" : "assign",
3338 "parameters" : [
3339 {
3340 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003341 "value" : ["userMetadata.spgw", "do_spgw"]
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003342 },
3343 {
3344 "type" : "expression",
3345 "value" : {
3346 "type" : "expression",
3347 "value" : {
3348 "op" : "b2d",
3349 "left" : null,
3350 "right" : {
3351 "type" : "bool",
3352 "value" : true
3353 }
3354 }
3355 }
3356 }
3357 ],
3358 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003359 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02003360 "line" : 158,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003361 "column" : 12,
3362 "source_fragment" : "spgw_meta.do_spgw = true"
3363 }
3364 },
3365 {
3366 "op" : "assign",
3367 "parameters" : [
3368 {
3369 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003370 "value" : ["userMetadata.spgw", "direction"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08003371 },
3372 {
3373 "type" : "hexstr",
3374 "value" : "0x01"
3375 }
3376 ],
3377 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003378 "filename" : "include/control/../define.p4",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09003379 "line" : 107,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003380 "column" : 33,
3381 "source_fragment" : "1w1; ..."
3382 }
3383 }
3384 ]
3385 },
3386 {
3387 "name" : "act_7",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003388 "id" : 47,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003389 "runtime_data" : [],
3390 "primitives" : [
3391 {
3392 "op" : "assign",
3393 "parameters" : [
3394 {
3395 "type" : "field",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003396 "value" : ["scalars", "spgw_ingress_hasReturned_0"]
3397 },
3398 {
3399 "type" : "expression",
3400 "value" : {
3401 "type" : "expression",
3402 "value" : {
3403 "op" : "b2d",
3404 "left" : null,
3405 "right" : {
3406 "type" : "bool",
3407 "value" : false
3408 }
3409 }
3410 }
3411 }
3412 ]
3413 },
3414 {
3415 "op" : "assign",
3416 "parameters" : [
3417 {
3418 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003419 "value" : ["userMetadata.spgw", "do_spgw"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003420 },
3421 {
3422 "type" : "expression",
3423 "value" : {
3424 "type" : "expression",
3425 "value" : {
3426 "op" : "b2d",
3427 "left" : null,
3428 "right" : {
3429 "type" : "bool",
Esin Karaman971fb7f2017-12-28 13:44:52 +00003430 "value" : false
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003431 }
3432 }
3433 }
3434 }
3435 ],
3436 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003437 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02003438 "line" : 141,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003439 "column" : 8,
Esin Karaman971fb7f2017-12-28 13:44:52 +00003440 "source_fragment" : "spgw_meta.do_spgw = false"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003441 }
3442 }
3443 ]
3444 },
3445 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003446 "name" : "act_8",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003447 "id" : 48,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003448 "runtime_data" : [],
3449 "primitives" : [
3450 {
3451 "op" : "assign",
3452 "parameters" : [
3453 {
3454 "type" : "field",
3455 "value" : ["scalars", "spgw_ingress_hasReturned_0"]
3456 },
3457 {
3458 "type" : "expression",
3459 "value" : {
3460 "type" : "expression",
3461 "value" : {
3462 "op" : "b2d",
3463 "left" : null,
3464 "right" : {
3465 "type" : "bool",
3466 "value" : true
3467 }
3468 }
3469 }
3470 }
3471 ],
3472 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003473 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02003474 "line" : 164,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003475 "column" : 12,
3476 "source_fragment" : "return"
3477 }
3478 }
3479 ]
3480 },
3481 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003482 "name" : "act_9",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003483 "id" : 49,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003484 "runtime_data" : [],
3485 "primitives" : [
3486 {
3487 "op" : "assign",
3488 "parameters" : [
3489 {
3490 "type" : "field",
3491 "value" : ["scalars", "spgw_ingress_tmp_4"]
3492 },
3493 {
3494 "type" : "expression",
3495 "value" : {
3496 "type" : "expression",
3497 "value" : {
3498 "op" : "b2d",
3499 "left" : null,
3500 "right" : {
3501 "type" : "bool",
3502 "value" : true
3503 }
3504 }
3505 }
3506 }
3507 ]
3508 }
3509 ]
3510 },
3511 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003512 "name" : "act_10",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003513 "id" : 50,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003514 "runtime_data" : [],
3515 "primitives" : [
3516 {
3517 "op" : "assign",
3518 "parameters" : [
3519 {
3520 "type" : "field",
3521 "value" : ["scalars", "spgw_ingress_tmp_4"]
3522 },
3523 {
3524 "type" : "expression",
3525 "value" : {
3526 "type" : "expression",
3527 "value" : {
3528 "op" : "b2d",
3529 "left" : null,
3530 "right" : {
3531 "type" : "bool",
3532 "value" : false
3533 }
3534 }
3535 }
3536 }
3537 ]
3538 }
3539 ]
3540 },
3541 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003542 "name" : "act_11",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003543 "id" : 51,
Yi Tseng27b9bc02018-04-12 14:52:40 +08003544 "runtime_data" : [],
3545 "primitives" : [
3546 {
3547 "op" : "assign",
3548 "parameters" : [
3549 {
3550 "type" : "field",
3551 "value" : ["userMetadata.spgw", "ipv4_len"]
3552 },
3553 {
3554 "type" : "field",
3555 "value" : ["ipv4", "total_len"]
3556 }
3557 ],
3558 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003559 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02003560 "line" : 194,
Yi Tseng27b9bc02018-04-12 14:52:40 +08003561 "column" : 8,
3562 "source_fragment" : "spgw_meta.ipv4_len = ipv4.total_len"
3563 }
3564 }
3565 ]
3566 },
3567 {
3568 "name" : "act_12",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003569 "id" : 52,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003570 "runtime_data" : [],
3571 "primitives" : [
3572 {
3573 "op" : "assign",
3574 "parameters" : [
3575 {
3576 "type" : "field",
3577 "value" : ["vlan_tag", "ether_type"]
3578 },
3579 {
3580 "type" : "hexstr",
3581 "value" : "0x0800"
3582 }
3583 ],
3584 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003585 "filename" : "include/control/../define.p4",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09003586 "line" : 77,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003587 "column" : 31,
3588 "source_fragment" : "0x0800; ..."
3589 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003590 }
3591 ]
3592 },
3593 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003594 "name" : "act_13",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003595 "id" : 53,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003596 "runtime_data" : [],
3597 "primitives" : [
3598 {
3599 "op" : "assign",
3600 "parameters" : [
3601 {
3602 "type" : "field",
Carmelo Casconea5400af2018-07-17 22:11:54 +02003603 "value" : ["scalars", "next_hasReturned_0"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003604 },
3605 {
3606 "type" : "expression",
3607 "value" : {
3608 "type" : "expression",
3609 "value" : {
3610 "op" : "b2d",
3611 "left" : null,
3612 "right" : {
3613 "type" : "bool",
3614 "value" : false
3615 }
3616 }
3617 }
3618 }
3619 ]
3620 }
3621 ]
3622 },
3623 {
Carmelo Casconea5400af2018-07-17 22:11:54 +02003624 "name" : "act_14",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003625 "id" : 54,
Carmelo Casconea5400af2018-07-17 22:11:54 +02003626 "runtime_data" : [],
3627 "primitives" : [
3628 {
3629 "op" : "assign",
3630 "parameters" : [
3631 {
3632 "type" : "field",
3633 "value" : ["scalars", "next_tmp_4"]
3634 },
3635 {
3636 "type" : "expression",
3637 "value" : {
3638 "type" : "expression",
3639 "value" : {
3640 "op" : "b2d",
3641 "left" : null,
3642 "right" : {
3643 "type" : "bool",
3644 "value" : true
3645 }
3646 }
3647 }
3648 }
3649 ]
3650 }
3651 ]
3652 },
3653 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003654 "name" : "act_15",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003655 "id" : 55,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003656 "runtime_data" : [],
3657 "primitives" : [
3658 {
3659 "op" : "assign",
3660 "parameters" : [
3661 {
3662 "type" : "field",
Carmelo Casconea5400af2018-07-17 22:11:54 +02003663 "value" : ["scalars", "next_tmp_4"]
3664 },
3665 {
3666 "type" : "expression",
3667 "value" : {
3668 "type" : "expression",
3669 "value" : {
3670 "op" : "b2d",
3671 "left" : null,
3672 "right" : {
3673 "type" : "bool",
3674 "value" : false
3675 }
3676 }
3677 }
3678 }
3679 ]
3680 }
3681 ]
3682 },
3683 {
3684 "name" : "act_16",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003685 "id" : 56,
Carmelo Casconea5400af2018-07-17 22:11:54 +02003686 "runtime_data" : [],
3687 "primitives" : [
3688 {
3689 "op" : "assign",
3690 "parameters" : [
3691 {
3692 "type" : "field",
3693 "value" : ["scalars", "next_tmp_3"]
3694 },
3695 {
3696 "type" : "expression",
3697 "value" : {
3698 "type" : "expression",
3699 "value" : {
3700 "op" : "b2d",
3701 "left" : null,
3702 "right" : {
3703 "type" : "bool",
3704 "value" : true
3705 }
3706 }
3707 }
3708 }
3709 ]
3710 }
3711 ]
3712 },
3713 {
3714 "name" : "act_17",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003715 "id" : 57,
Carmelo Casconea5400af2018-07-17 22:11:54 +02003716 "runtime_data" : [],
3717 "primitives" : [
3718 {
3719 "op" : "assign",
3720 "parameters" : [
3721 {
3722 "type" : "field",
3723 "value" : ["scalars", "next_tmp_3"]
3724 },
3725 {
3726 "type" : "expression",
3727 "value" : {
3728 "type" : "expression",
3729 "value" : {
3730 "op" : "b2d",
3731 "left" : null,
3732 "right" : {
3733 "type" : "bool",
3734 "value" : false
3735 }
3736 }
3737 }
3738 }
3739 ]
3740 }
3741 ]
3742 },
3743 {
3744 "name" : "act_18",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003745 "id" : 58,
Carmelo Casconea5400af2018-07-17 22:11:54 +02003746 "runtime_data" : [],
3747 "primitives" : [
3748 {
3749 "op" : "assign",
3750 "parameters" : [
3751 {
3752 "type" : "field",
3753 "value" : ["scalars", "next_tmp_2"]
3754 },
3755 {
3756 "type" : "expression",
3757 "value" : {
3758 "type" : "expression",
3759 "value" : {
3760 "op" : "b2d",
3761 "left" : null,
3762 "right" : {
3763 "type" : "bool",
3764 "value" : true
3765 }
3766 }
3767 }
3768 }
3769 ]
3770 }
3771 ]
3772 },
3773 {
3774 "name" : "act_19",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003775 "id" : 59,
Carmelo Casconea5400af2018-07-17 22:11:54 +02003776 "runtime_data" : [],
3777 "primitives" : [
3778 {
3779 "op" : "assign",
3780 "parameters" : [
3781 {
3782 "type" : "field",
3783 "value" : ["scalars", "next_tmp_2"]
3784 },
3785 {
3786 "type" : "expression",
3787 "value" : {
3788 "type" : "expression",
3789 "value" : {
3790 "op" : "b2d",
3791 "left" : null,
3792 "right" : {
3793 "type" : "bool",
3794 "value" : false
3795 }
3796 }
3797 }
3798 }
3799 ]
3800 }
3801 ]
3802 },
3803 {
3804 "name" : "act_20",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003805 "id" : 60,
Carmelo Casconea5400af2018-07-17 22:11:54 +02003806 "runtime_data" : [],
3807 "primitives" : [
3808 {
3809 "op" : "assign",
3810 "parameters" : [
3811 {
3812 "type" : "field",
3813 "value" : ["scalars", "next_hasReturned_0"]
3814 },
3815 {
3816 "type" : "expression",
3817 "value" : {
3818 "type" : "expression",
3819 "value" : {
3820 "op" : "b2d",
3821 "left" : null,
3822 "right" : {
3823 "type" : "bool",
3824 "value" : true
3825 }
3826 }
3827 }
3828 }
3829 ],
3830 "source_info" : {
3831 "filename" : "include/control/next.p4",
3832 "line" : 223,
3833 "column" : 20,
3834 "source_fragment" : "return"
3835 }
3836 }
3837 ]
3838 },
3839 {
3840 "name" : "act_21",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003841 "id" : 61,
Carmelo Casconea5400af2018-07-17 22:11:54 +02003842 "runtime_data" : [],
3843 "primitives" : [
3844 {
3845 "op" : "assign",
3846 "parameters" : [
3847 {
3848 "type" : "field",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003849 "value" : ["ipv4", "ttl"]
3850 },
3851 {
3852 "type" : "expression",
3853 "value" : {
3854 "type" : "expression",
3855 "value" : {
3856 "op" : "&",
3857 "left" : {
3858 "type" : "expression",
3859 "value" : {
3860 "op" : "+",
3861 "left" : {
3862 "type" : "field",
3863 "value" : ["ipv4", "ttl"]
3864 },
3865 "right" : {
3866 "type" : "hexstr",
3867 "value" : "0xff"
3868 }
3869 }
3870 },
3871 "right" : {
3872 "type" : "hexstr",
3873 "value" : "0xff"
3874 }
3875 }
3876 }
3877 }
3878 ],
3879 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003880 "filename" : "include/control/next.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02003881 "line" : 230,
3882 "column" : 16,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003883 "source_fragment" : "hdr.ipv4.ttl = hdr.ipv4.ttl - 1"
3884 }
3885 }
3886 ]
3887 },
3888 {
Carmelo Casconea5400af2018-07-17 22:11:54 +02003889 "name" : "act_22",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003890 "id" : 62,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003891 "runtime_data" : [],
3892 "primitives" : [
3893 {
3894 "op" : "assign",
3895 "parameters" : [
3896 {
3897 "type" : "field",
3898 "value" : ["scalars", "tmp_0"]
3899 },
3900 {
3901 "type" : "expression",
3902 "value" : {
3903 "type" : "expression",
3904 "value" : {
3905 "op" : "&",
3906 "left" : {
3907 "type" : "field",
3908 "value" : ["standard_metadata", "egress_spec"]
3909 },
3910 "right" : {
3911 "type" : "hexstr",
3912 "value" : "0xffffffff"
3913 }
3914 }
3915 }
3916 }
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003917 ],
3918 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003919 "filename" : "include/control/port_counter.p4",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003920 "line" : 28,
3921 "column" : 38,
3922 "source_fragment" : "(bit<32>)standard_metadata.egress_spec"
3923 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003924 },
3925 {
3926 "op" : "count",
3927 "parameters" : [
3928 {
3929 "type" : "counter_array",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003930 "value" : "FabricIngress.port_counters_control.egress_port_counter"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003931 },
3932 {
3933 "type" : "field",
3934 "value" : ["scalars", "tmp_0"]
3935 }
3936 ],
3937 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003938 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003939 "line" : 28,
3940 "column" : 12,
3941 "source_fragment" : "egress_port_counter.count((bit<32>)standard_metadata.egress_spec)"
3942 }
3943 }
3944 ]
3945 },
3946 {
Carmelo Casconea5400af2018-07-17 22:11:54 +02003947 "name" : "act_23",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003948 "id" : 63,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003949 "runtime_data" : [],
3950 "primitives" : [
3951 {
3952 "op" : "assign",
3953 "parameters" : [
3954 {
3955 "type" : "field",
3956 "value" : ["scalars", "tmp_1"]
3957 },
3958 {
3959 "type" : "expression",
3960 "value" : {
3961 "type" : "expression",
3962 "value" : {
3963 "op" : "&",
3964 "left" : {
3965 "type" : "field",
3966 "value" : ["standard_metadata", "ingress_port"]
3967 },
3968 "right" : {
3969 "type" : "hexstr",
3970 "value" : "0xffffffff"
3971 }
3972 }
3973 }
3974 }
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003975 ],
3976 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003977 "filename" : "include/control/port_counter.p4",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003978 "line" : 31,
3979 "column" : 39,
3980 "source_fragment" : "(bit<32>)standard_metadata.ingress_port"
3981 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003982 },
3983 {
3984 "op" : "count",
3985 "parameters" : [
3986 {
3987 "type" : "counter_array",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003988 "value" : "FabricIngress.port_counters_control.ingress_port_counter"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003989 },
3990 {
3991 "type" : "field",
3992 "value" : ["scalars", "tmp_1"]
3993 }
3994 ],
3995 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003996 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003997 "line" : 31,
3998 "column" : 12,
3999 "source_fragment" : "ingress_port_counter.count((bit<32>)standard_metadata.ingress_port)"
4000 }
4001 }
4002 ]
4003 },
4004 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004005 "name" : "nop",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02004006 "id" : 64,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004007 "runtime_data" : [],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004008 "primitives" : []
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004009 },
4010 {
Carmelo Casconea5400af2018-07-17 22:11:54 +02004011 "name" : "drop_now",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02004012 "id" : 65,
4013 "runtime_data" : [],
4014 "primitives" : [
4015 {
4016 "op" : "drop",
4017 "parameters" : [],
4018 "source_info" : {
4019 "filename" : "include/control/../action.p4",
4020 "line" : 24,
4021 "column" : 4,
4022 "source_fragment" : "mark_to_drop()"
4023 }
4024 },
4025 {
4026 "op" : "exit",
4027 "parameters" : [],
4028 "source_info" : {
4029 "filename" : "include/control/../action.p4",
4030 "line" : 25,
4031 "column" : 4,
4032 "source_fragment" : "exit"
4033 }
4034 }
4035 ]
4036 },
4037 {
4038 "name" : "drop_now",
4039 "id" : 66,
Carmelo Casconea5400af2018-07-17 22:11:54 +02004040 "runtime_data" : [],
4041 "primitives" : [
4042 {
4043 "op" : "drop",
4044 "parameters" : [],
4045 "source_info" : {
4046 "filename" : "include/control/../action.p4",
4047 "line" : 24,
4048 "column" : 4,
4049 "source_fragment" : "mark_to_drop()"
4050 }
4051 },
4052 {
4053 "op" : "exit",
4054 "parameters" : [],
4055 "source_info" : {
4056 "filename" : "include/control/../action.p4",
4057 "line" : 25,
4058 "column" : 4,
4059 "source_fragment" : "exit"
4060 }
4061 }
4062 ]
4063 },
4064 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004065 "name" : "FabricEgress.spgw_egress.gtpu_encap",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02004066 "id" : 67,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004067 "runtime_data" : [],
4068 "primitives" : [
4069 {
4070 "op" : "add_header",
4071 "parameters" : [
4072 {
4073 "type" : "header",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004074 "value" : "gtpu_ipv4"
4075 }
4076 ],
4077 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004078 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004079 "line" : 209,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004080 "column" : 8,
4081 "source_fragment" : "gtpu_ipv4.setValid()"
4082 }
4083 },
4084 {
4085 "op" : "assign",
4086 "parameters" : [
4087 {
4088 "type" : "field",
4089 "value" : ["gtpu_ipv4", "version"]
4090 },
4091 {
4092 "type" : "hexstr",
4093 "value" : "0x04"
4094 }
4095 ],
4096 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004097 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004098 "line" : 210,
Yi Tseng3d3956d2018-01-31 17:28:05 -08004099 "column" : 8,
4100 "source_fragment" : "gtpu_ipv4.version = 4"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004101 }
4102 },
4103 {
4104 "op" : "assign",
4105 "parameters" : [
4106 {
4107 "type" : "field",
4108 "value" : ["gtpu_ipv4", "ihl"]
4109 },
4110 {
4111 "type" : "hexstr",
4112 "value" : "0x05"
4113 }
4114 ],
4115 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004116 "filename" : "include/control/../define.p4",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09004117 "line" : 86,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004118 "column" : 28,
4119 "source_fragment" : "5; ..."
4120 }
4121 },
4122 {
4123 "op" : "assign",
4124 "parameters" : [
4125 {
4126 "type" : "field",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09004127 "value" : ["gtpu_ipv4", "dscp"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004128 },
4129 {
4130 "type" : "hexstr",
4131 "value" : "0x00"
4132 }
4133 ],
4134 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004135 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004136 "line" : 212,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004137 "column" : 8,
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09004138 "source_fragment" : "gtpu_ipv4.dscp = 0"
4139 }
4140 },
4141 {
4142 "op" : "assign",
4143 "parameters" : [
4144 {
4145 "type" : "field",
4146 "value" : ["gtpu_ipv4", "ecn"]
4147 },
4148 {
4149 "type" : "hexstr",
4150 "value" : "0x00"
4151 }
4152 ],
4153 "source_info" : {
4154 "filename" : "include/spgw.p4",
4155 "line" : 213,
4156 "column" : 8,
4157 "source_fragment" : "gtpu_ipv4.ecn = 0"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004158 }
4159 },
4160 {
4161 "op" : "assign",
4162 "parameters" : [
4163 {
4164 "type" : "field",
4165 "value" : ["gtpu_ipv4", "total_len"]
4166 },
4167 {
4168 "type" : "expression",
4169 "value" : {
4170 "type" : "expression",
4171 "value" : {
4172 "op" : "&",
4173 "left" : {
4174 "type" : "expression",
4175 "value" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004176 "op" : "+",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004177 "left" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004178 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004179 "value" : ["userMetadata.spgw", "ipv4_len"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08004180 },
4181 "right" : {
4182 "type" : "hexstr",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004183 "value" : "0x0024"
Carmelo Cascone14cde402018-01-25 01:57:18 -08004184 }
4185 }
4186 },
4187 "right" : {
4188 "type" : "hexstr",
4189 "value" : "0xffff"
4190 }
4191 }
4192 }
4193 }
4194 ],
4195 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004196 "filename" : "include/spgw.p4",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09004197 "line" : 214,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004198 "column" : 8,
Yi Tseng27b9bc02018-04-12 14:52:40 +08004199 "source_fragment" : "gtpu_ipv4.total_len = spgw_meta.ipv4_len ..."
Carmelo Cascone14cde402018-01-25 01:57:18 -08004200 }
4201 },
4202 {
4203 "op" : "assign",
4204 "parameters" : [
4205 {
4206 "type" : "field",
4207 "value" : ["gtpu_ipv4", "identification"]
4208 },
4209 {
4210 "type" : "hexstr",
4211 "value" : "0x1513"
4212 }
4213 ],
4214 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004215 "filename" : "include/spgw.p4",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09004216 "line" : 216,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004217 "column" : 8,
4218 "source_fragment" : "gtpu_ipv4.identification = 0x1513"
4219 }
4220 },
4221 {
4222 "op" : "assign",
4223 "parameters" : [
4224 {
4225 "type" : "field",
4226 "value" : ["gtpu_ipv4", "flags"]
4227 },
4228 {
4229 "type" : "hexstr",
4230 "value" : "0x00"
4231 }
4232 ],
4233 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004234 "filename" : "include/spgw.p4",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09004235 "line" : 217,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004236 "column" : 8,
4237 "source_fragment" : "gtpu_ipv4.flags = 0"
4238 }
4239 },
4240 {
4241 "op" : "assign",
4242 "parameters" : [
4243 {
4244 "type" : "field",
4245 "value" : ["gtpu_ipv4", "frag_offset"]
4246 },
4247 {
4248 "type" : "hexstr",
4249 "value" : "0x0000"
4250 }
4251 ],
4252 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004253 "filename" : "include/spgw.p4",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09004254 "line" : 218,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004255 "column" : 8,
4256 "source_fragment" : "gtpu_ipv4.frag_offset = 0"
4257 }
4258 },
4259 {
4260 "op" : "assign",
4261 "parameters" : [
4262 {
4263 "type" : "field",
4264 "value" : ["gtpu_ipv4", "ttl"]
4265 },
4266 {
4267 "type" : "hexstr",
4268 "value" : "0x40"
4269 }
4270 ],
4271 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004272 "filename" : "include/control/../define.p4",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09004273 "line" : 96,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004274 "column" : 32,
4275 "source_fragment" : "64; ..."
4276 }
4277 },
4278 {
4279 "op" : "assign",
4280 "parameters" : [
4281 {
4282 "type" : "field",
4283 "value" : ["gtpu_ipv4", "protocol"]
4284 },
4285 {
4286 "type" : "hexstr",
4287 "value" : "0x11"
4288 }
4289 ],
4290 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004291 "filename" : "include/control/../define.p4",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09004292 "line" : 83,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004293 "column" : 25,
4294 "source_fragment" : "17; ..."
4295 }
4296 },
4297 {
4298 "op" : "assign",
4299 "parameters" : [
4300 {
4301 "type" : "field",
4302 "value" : ["gtpu_ipv4", "dst_addr"]
4303 },
4304 {
4305 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004306 "value" : ["userMetadata.spgw", "s1u_enb_addr"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08004307 }
4308 ],
4309 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004310 "filename" : "include/spgw.p4",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09004311 "line" : 221,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004312 "column" : 8,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004313 "source_fragment" : "gtpu_ipv4.dst_addr = spgw_meta.s1u_enb_addr"
Carmelo Cascone14cde402018-01-25 01:57:18 -08004314 }
4315 },
4316 {
4317 "op" : "assign",
4318 "parameters" : [
4319 {
4320 "type" : "field",
4321 "value" : ["gtpu_ipv4", "src_addr"]
4322 },
4323 {
4324 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004325 "value" : ["userMetadata.spgw", "s1u_sgw_addr"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08004326 }
4327 ],
4328 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004329 "filename" : "include/spgw.p4",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09004330 "line" : 222,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004331 "column" : 8,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004332 "source_fragment" : "gtpu_ipv4.src_addr = spgw_meta.s1u_sgw_addr"
Carmelo Cascone14cde402018-01-25 01:57:18 -08004333 }
4334 },
4335 {
4336 "op" : "assign",
4337 "parameters" : [
4338 {
4339 "type" : "field",
4340 "value" : ["gtpu_ipv4", "hdr_checksum"]
4341 },
4342 {
4343 "type" : "hexstr",
4344 "value" : "0x0000"
4345 }
4346 ],
4347 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004348 "filename" : "include/spgw.p4",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09004349 "line" : 223,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004350 "column" : 8,
4351 "source_fragment" : "gtpu_ipv4.hdr_checksum = 0"
4352 }
4353 },
4354 {
4355 "op" : "add_header",
4356 "parameters" : [
4357 {
4358 "type" : "header",
4359 "value" : "gtpu_udp"
4360 }
4361 ],
4362 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004363 "filename" : "include/spgw.p4",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09004364 "line" : 225,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004365 "column" : 8,
4366 "source_fragment" : "gtpu_udp.setValid()"
4367 }
4368 },
4369 {
4370 "op" : "assign",
4371 "parameters" : [
4372 {
4373 "type" : "field",
4374 "value" : ["gtpu_udp", "src_port"]
4375 },
4376 {
4377 "type" : "hexstr",
4378 "value" : "0x0868"
4379 }
4380 ],
4381 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004382 "filename" : "include/spgw.p4",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09004383 "line" : 226,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004384 "column" : 8,
4385 "source_fragment" : "gtpu_udp.src_port = 2152"
4386 }
4387 },
4388 {
4389 "op" : "assign",
4390 "parameters" : [
4391 {
4392 "type" : "field",
4393 "value" : ["gtpu_udp", "dst_port"]
4394 },
4395 {
4396 "type" : "hexstr",
4397 "value" : "0x0868"
4398 }
4399 ],
4400 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004401 "filename" : "include/spgw.p4",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09004402 "line" : 227,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004403 "column" : 8,
4404 "source_fragment" : "gtpu_udp.dst_port = 2152"
4405 }
4406 },
4407 {
4408 "op" : "assign",
4409 "parameters" : [
4410 {
4411 "type" : "field",
4412 "value" : ["gtpu_udp", "len"]
4413 },
4414 {
4415 "type" : "expression",
4416 "value" : {
4417 "type" : "expression",
4418 "value" : {
4419 "op" : "&",
4420 "left" : {
4421 "type" : "expression",
4422 "value" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004423 "op" : "+",
Carmelo Cascone14cde402018-01-25 01:57:18 -08004424 "left" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004425 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004426 "value" : ["userMetadata.spgw", "ipv4_len"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004427 },
4428 "right" : {
4429 "type" : "hexstr",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004430 "value" : "0x0010"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004431 }
4432 }
4433 },
4434 "right" : {
4435 "type" : "hexstr",
4436 "value" : "0xffff"
4437 }
4438 }
4439 }
4440 }
4441 ],
4442 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004443 "filename" : "include/spgw.p4",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09004444 "line" : 228,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004445 "column" : 8,
Yi Tseng27b9bc02018-04-12 14:52:40 +08004446 "source_fragment" : "gtpu_udp.len = spgw_meta.ipv4_len ..."
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004447 }
4448 },
4449 {
4450 "op" : "assign",
4451 "parameters" : [
4452 {
4453 "type" : "field",
4454 "value" : ["gtpu_udp", "checksum"]
4455 },
4456 {
4457 "type" : "hexstr",
4458 "value" : "0x0000"
4459 }
4460 ],
4461 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004462 "filename" : "include/spgw.p4",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09004463 "line" : 230,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004464 "column" : 8,
4465 "source_fragment" : "gtpu_udp.checksum = 0"
4466 }
Carmelo Cascone14cde402018-01-25 01:57:18 -08004467 },
4468 {
4469 "op" : "add_header",
4470 "parameters" : [
4471 {
4472 "type" : "header",
4473 "value" : "gtpu"
4474 }
4475 ],
4476 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004477 "filename" : "include/spgw.p4",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09004478 "line" : 232,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004479 "column" : 8,
4480 "source_fragment" : "gtpu.setValid()"
4481 }
4482 },
4483 {
4484 "op" : "assign",
4485 "parameters" : [
4486 {
4487 "type" : "field",
4488 "value" : ["gtpu", "version"]
4489 },
4490 {
4491 "type" : "hexstr",
4492 "value" : "0x01"
4493 }
4494 ],
4495 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004496 "filename" : "include/spgw.p4",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09004497 "line" : 233,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004498 "column" : 8,
4499 "source_fragment" : "gtpu.version = 0x01"
4500 }
4501 },
4502 {
4503 "op" : "assign",
4504 "parameters" : [
4505 {
4506 "type" : "field",
4507 "value" : ["gtpu", "pt"]
4508 },
4509 {
4510 "type" : "hexstr",
4511 "value" : "0x01"
4512 }
4513 ],
4514 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004515 "filename" : "include/spgw.p4",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09004516 "line" : 234,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004517 "column" : 8,
4518 "source_fragment" : "gtpu.pt = 0x01"
4519 }
4520 },
4521 {
4522 "op" : "assign",
4523 "parameters" : [
4524 {
4525 "type" : "field",
4526 "value" : ["gtpu", "spare"]
4527 },
4528 {
4529 "type" : "hexstr",
4530 "value" : "0x00"
4531 }
4532 ],
4533 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004534 "filename" : "include/spgw.p4",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09004535 "line" : 235,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004536 "column" : 8,
4537 "source_fragment" : "gtpu.spare = 0"
4538 }
4539 },
4540 {
4541 "op" : "assign",
4542 "parameters" : [
4543 {
4544 "type" : "field",
4545 "value" : ["gtpu", "ex_flag"]
4546 },
4547 {
4548 "type" : "hexstr",
4549 "value" : "0x00"
4550 }
4551 ],
4552 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004553 "filename" : "include/spgw.p4",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09004554 "line" : 236,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004555 "column" : 8,
4556 "source_fragment" : "gtpu.ex_flag = 0"
4557 }
4558 },
4559 {
4560 "op" : "assign",
4561 "parameters" : [
4562 {
4563 "type" : "field",
4564 "value" : ["gtpu", "seq_flag"]
4565 },
4566 {
4567 "type" : "hexstr",
4568 "value" : "0x00"
4569 }
4570 ],
4571 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004572 "filename" : "include/spgw.p4",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09004573 "line" : 237,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004574 "column" : 8,
4575 "source_fragment" : "gtpu.seq_flag = 0"
4576 }
4577 },
4578 {
4579 "op" : "assign",
4580 "parameters" : [
4581 {
4582 "type" : "field",
4583 "value" : ["gtpu", "npdu_flag"]
4584 },
4585 {
4586 "type" : "hexstr",
4587 "value" : "0x00"
4588 }
4589 ],
4590 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004591 "filename" : "include/spgw.p4",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09004592 "line" : 238,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004593 "column" : 8,
4594 "source_fragment" : "gtpu.npdu_flag = 0"
4595 }
4596 },
4597 {
4598 "op" : "assign",
4599 "parameters" : [
4600 {
4601 "type" : "field",
4602 "value" : ["gtpu", "msgtype"]
4603 },
4604 {
4605 "type" : "hexstr",
4606 "value" : "0xff"
4607 }
4608 ],
4609 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004610 "filename" : "include/spgw.p4",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09004611 "line" : 239,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004612 "column" : 8,
4613 "source_fragment" : "gtpu.msgtype = 0xff"
4614 }
4615 },
4616 {
4617 "op" : "assign",
4618 "parameters" : [
4619 {
4620 "type" : "field",
4621 "value" : ["gtpu", "msglen"]
4622 },
4623 {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004624 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004625 "value" : ["userMetadata.spgw", "ipv4_len"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08004626 }
4627 ],
4628 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004629 "filename" : "include/spgw.p4",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09004630 "line" : 240,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004631 "column" : 8,
Yi Tseng27b9bc02018-04-12 14:52:40 +08004632 "source_fragment" : "gtpu.msglen = spgw_meta.ipv4_len"
Carmelo Cascone14cde402018-01-25 01:57:18 -08004633 }
4634 },
4635 {
4636 "op" : "assign",
4637 "parameters" : [
4638 {
4639 "type" : "field",
4640 "value" : ["gtpu", "teid"]
4641 },
4642 {
4643 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004644 "value" : ["userMetadata.spgw", "teid"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08004645 }
4646 ],
4647 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004648 "filename" : "include/spgw.p4",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09004649 "line" : 241,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004650 "column" : 8,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004651 "source_fragment" : "gtpu.teid = spgw_meta.teid"
Carmelo Cascone14cde402018-01-25 01:57:18 -08004652 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004653 }
4654 ]
4655 },
4656 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004657 "name" : "FabricEgress.pkt_io_egress.pop_vlan",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02004658 "id" : 68,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004659 "runtime_data" : [],
4660 "primitives" : [
4661 {
4662 "op" : "assign",
4663 "parameters" : [
4664 {
4665 "type" : "field",
4666 "value" : ["ethernet", "ether_type"]
4667 },
4668 {
4669 "type" : "field",
4670 "value" : ["vlan_tag", "ether_type"]
4671 }
4672 ],
4673 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004674 "filename" : "include/control/packetio.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08004675 "line" : 38,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004676 "column" : 8,
4677 "source_fragment" : "hdr.ethernet.ether_type = hdr.vlan_tag.ether_type"
4678 }
4679 },
4680 {
4681 "op" : "remove_header",
4682 "parameters" : [
4683 {
4684 "type" : "header",
4685 "value" : "vlan_tag"
4686 }
4687 ],
4688 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004689 "filename" : "include/control/packetio.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08004690 "line" : 39,
4691 "column" : 8,
4692 "source_fragment" : "hdr.vlan_tag.setInvalid()"
4693 }
4694 }
4695 ]
4696 },
4697 {
4698 "name" : "FabricEgress.egress_next.pop_vlan",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02004699 "id" : 69,
Yi Tseng47eac892018-07-11 02:17:04 +08004700 "runtime_data" : [],
4701 "primitives" : [
4702 {
4703 "op" : "assign",
4704 "parameters" : [
4705 {
4706 "type" : "field",
4707 "value" : ["ethernet", "ether_type"]
4708 },
4709 {
4710 "type" : "field",
4711 "value" : ["vlan_tag", "ether_type"]
4712 }
4713 ],
4714 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004715 "filename" : "include/control/next.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004716 "line" : 253,
Yi Tseng47eac892018-07-11 02:17:04 +08004717 "column" : 8,
4718 "source_fragment" : "hdr.ethernet.ether_type = hdr.vlan_tag.ether_type"
4719 }
4720 },
4721 {
4722 "op" : "remove_header",
4723 "parameters" : [
4724 {
4725 "type" : "header",
4726 "value" : "vlan_tag"
4727 }
4728 ],
4729 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004730 "filename" : "include/control/next.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004731 "line" : 254,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004732 "column" : 8,
4733 "source_fragment" : "hdr.vlan_tag.setInvalid()"
4734 }
4735 }
4736 ]
4737 },
4738 {
Carmelo Casconea5400af2018-07-17 22:11:54 +02004739 "name" : "act_24",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02004740 "id" : 70,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004741 "runtime_data" : [],
4742 "primitives" : [
4743 {
4744 "op" : "add_header",
4745 "parameters" : [
4746 {
4747 "type" : "header",
4748 "value" : "packet_in"
4749 }
4750 ],
4751 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004752 "filename" : "include/control/packetio.p4",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02004753 "line" : 51,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004754 "column" : 12,
4755 "source_fragment" : "hdr.packet_in.setValid()"
4756 }
4757 },
4758 {
4759 "op" : "assign",
4760 "parameters" : [
4761 {
4762 "type" : "field",
4763 "value" : ["packet_in", "ingress_port"]
4764 },
4765 {
4766 "type" : "field",
4767 "value" : ["standard_metadata", "ingress_port"]
4768 }
4769 ],
4770 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004771 "filename" : "include/control/packetio.p4",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02004772 "line" : 52,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004773 "column" : 12,
4774 "source_fragment" : "hdr.packet_in.ingress_port = standard_metadata.ingress_port"
4775 }
4776 }
4777 ]
4778 },
4779 {
Carmelo Casconea5400af2018-07-17 22:11:54 +02004780 "name" : "act_25",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02004781 "id" : 71,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004782 "runtime_data" : [],
4783 "primitives" : [
4784 {
4785 "op" : "remove_header",
4786 "parameters" : [
4787 {
4788 "type" : "header",
4789 "value" : "gtpu_ipv4"
4790 }
4791 ],
4792 "source_info" : {
4793 "filename" : "fabric.p4",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09004794 "line" : 86,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004795 "column" : 36,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004796 "source_fragment" : "hdr.gtpu_ipv4"
4797 }
4798 },
4799 {
4800 "op" : "remove_header",
4801 "parameters" : [
4802 {
4803 "type" : "header",
4804 "value" : "gtpu_udp"
4805 }
4806 ],
4807 "source_info" : {
4808 "filename" : "fabric.p4",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09004809 "line" : 86,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004810 "column" : 51,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004811 "source_fragment" : "hdr.gtpu_udp"
4812 }
4813 },
4814 {
4815 "op" : "remove_header",
4816 "parameters" : [
4817 {
4818 "type" : "header",
4819 "value" : "gtpu"
4820 }
4821 ],
4822 "source_info" : {
4823 "filename" : "fabric.p4",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09004824 "line" : 86,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004825 "column" : 65,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004826 "source_fragment" : "hdr.gtpu"
4827 }
4828 }
4829 ]
4830 }
4831 ],
4832 "pipelines" : [
4833 {
4834 "name" : "ingress",
4835 "id" : 0,
4836 "source_info" : {
4837 "filename" : "fabric.p4",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09004838 "line" : 40,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004839 "column" : 8,
4840 "source_fragment" : "FabricIngress"
4841 },
4842 "init_table" : "node_2",
4843 "tables" : [
4844 {
4845 "name" : "tbl_act",
4846 "id" : 0,
4847 "key" : [],
4848 "match_type" : "exact",
4849 "type" : "simple",
4850 "max_size" : 1024,
4851 "with_counters" : false,
4852 "support_timeout" : false,
4853 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02004854 "action_ids" : [39],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004855 "actions" : ["act"],
4856 "base_default_next" : null,
4857 "next_tables" : {
4858 "act" : null
4859 },
4860 "default_entry" : {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02004861 "action_id" : 39,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004862 "action_const" : true,
4863 "action_data" : [],
4864 "action_entry_const" : true
4865 }
4866 },
4867 {
4868 "name" : "tbl_act_0",
4869 "id" : 1,
4870 "key" : [],
4871 "match_type" : "exact",
4872 "type" : "simple",
4873 "max_size" : 1024,
4874 "with_counters" : false,
4875 "support_timeout" : false,
4876 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02004877 "action_ids" : [47],
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004878 "actions" : ["act_7"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004879 "base_default_next" : "node_5",
4880 "next_tables" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004881 "act_7" : "node_5"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004882 },
4883 "default_entry" : {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02004884 "action_id" : 47,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004885 "action_const" : true,
4886 "action_data" : [],
4887 "action_entry_const" : true
4888 }
4889 },
4890 {
4891 "name" : "tbl_act_1",
4892 "id" : 2,
4893 "key" : [],
4894 "match_type" : "exact",
4895 "type" : "simple",
4896 "max_size" : 1024,
4897 "with_counters" : false,
4898 "support_timeout" : false,
4899 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02004900 "action_ids" : [42],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004901 "actions" : ["act_2"],
Yi Tseng27b9bc02018-04-12 14:52:40 +08004902 "base_default_next" : "FabricIngress.spgw_ingress.s1u_filter_table",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004903 "next_tables" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004904 "act_2" : "FabricIngress.spgw_ingress.s1u_filter_table"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004905 },
4906 "default_entry" : {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02004907 "action_id" : 42,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004908 "action_const" : true,
4909 "action_data" : [],
4910 "action_entry_const" : true
4911 }
4912 },
4913 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004914 "name" : "FabricIngress.spgw_ingress.s1u_filter_table",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004915 "id" : 3,
4916 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004917 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004918 "line" : 60,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004919 "column" : 10,
4920 "source_fragment" : "s1u_filter_table"
4921 },
4922 "key" : [
4923 {
4924 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004925 "name" : "spgw_meta.s1u_sgw_addr",
4926 "target" : ["userMetadata.spgw", "s1u_sgw_addr"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004927 "mask" : null
4928 }
4929 ],
4930 "match_type" : "exact",
4931 "type" : "simple",
4932 "max_size" : 1024,
4933 "with_counters" : false,
4934 "support_timeout" : false,
4935 "direct_meters" : null,
4936 "action_ids" : [1],
4937 "actions" : ["NoAction"],
4938 "base_default_next" : null,
4939 "next_tables" : {
4940 "__HIT__" : "tbl_act_2",
4941 "__MISS__" : "tbl_act_3"
4942 },
4943 "default_entry" : {
4944 "action_id" : 1,
4945 "action_const" : false,
4946 "action_data" : [],
4947 "action_entry_const" : false
4948 }
4949 },
4950 {
4951 "name" : "tbl_act_2",
4952 "id" : 4,
4953 "key" : [],
4954 "match_type" : "exact",
4955 "type" : "simple",
4956 "max_size" : 1024,
4957 "with_counters" : false,
4958 "support_timeout" : false,
4959 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02004960 "action_ids" : [40],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004961 "actions" : ["act_0"],
4962 "base_default_next" : "node_10",
4963 "next_tables" : {
4964 "act_0" : "node_10"
4965 },
4966 "default_entry" : {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02004967 "action_id" : 40,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004968 "action_const" : true,
4969 "action_data" : [],
4970 "action_entry_const" : true
4971 }
4972 },
4973 {
4974 "name" : "tbl_act_3",
4975 "id" : 5,
4976 "key" : [],
4977 "match_type" : "exact",
4978 "type" : "simple",
4979 "max_size" : 1024,
4980 "with_counters" : false,
4981 "support_timeout" : false,
4982 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02004983 "action_ids" : [41],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004984 "actions" : ["act_1"],
4985 "base_default_next" : "node_10",
4986 "next_tables" : {
4987 "act_1" : "node_10"
4988 },
4989 "default_entry" : {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02004990 "action_id" : 41,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004991 "action_const" : true,
4992 "action_data" : [],
4993 "action_entry_const" : true
4994 }
4995 },
4996 {
4997 "name" : "tbl_act_4",
4998 "id" : 6,
4999 "key" : [],
5000 "match_type" : "exact",
5001 "type" : "simple",
5002 "max_size" : 1024,
5003 "with_counters" : false,
5004 "support_timeout" : false,
5005 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02005006 "action_ids" : [43],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005007 "actions" : ["act_3"],
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005008 "base_default_next" : "node_17",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005009 "next_tables" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005010 "act_3" : "node_17"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005011 },
5012 "default_entry" : {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02005013 "action_id" : 43,
Carmelo Cascone14cde402018-01-25 01:57:18 -08005014 "action_const" : true,
5015 "action_data" : [],
5016 "action_entry_const" : true
5017 }
5018 },
5019 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005020 "name" : "FabricIngress.spgw_ingress.ue_filter_table",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005021 "id" : 7,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005022 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005023 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02005024 "line" : 50,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005025 "column" : 10,
5026 "source_fragment" : "ue_filter_table"
5027 },
5028 "key" : [
5029 {
5030 "match_type" : "lpm",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005031 "name" : "ipv4.dst_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005032 "target" : ["ipv4", "dst_addr"],
5033 "mask" : null
5034 }
5035 ],
5036 "match_type" : "lpm",
5037 "type" : "simple",
5038 "max_size" : 1024,
5039 "with_counters" : false,
5040 "support_timeout" : false,
5041 "direct_meters" : null,
5042 "action_ids" : [0],
5043 "actions" : ["NoAction"],
5044 "base_default_next" : null,
5045 "next_tables" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005046 "__HIT__" : "tbl_act_5",
5047 "__MISS__" : "tbl_act_6"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005048 },
5049 "default_entry" : {
5050 "action_id" : 0,
5051 "action_const" : false,
5052 "action_data" : [],
5053 "action_entry_const" : false
5054 }
5055 },
5056 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005057 "name" : "tbl_act_5",
5058 "id" : 8,
5059 "key" : [],
5060 "match_type" : "exact",
5061 "type" : "simple",
5062 "max_size" : 1024,
5063 "with_counters" : false,
5064 "support_timeout" : false,
5065 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02005066 "action_ids" : [44],
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005067 "actions" : ["act_4"],
5068 "base_default_next" : "node_15",
5069 "next_tables" : {
5070 "act_4" : "node_15"
5071 },
5072 "default_entry" : {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02005073 "action_id" : 44,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005074 "action_const" : true,
5075 "action_data" : [],
5076 "action_entry_const" : true
5077 }
5078 },
5079 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005080 "name" : "tbl_act_6",
5081 "id" : 9,
5082 "key" : [],
5083 "match_type" : "exact",
5084 "type" : "simple",
5085 "max_size" : 1024,
5086 "with_counters" : false,
5087 "support_timeout" : false,
5088 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02005089 "action_ids" : [45],
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005090 "actions" : ["act_5"],
5091 "base_default_next" : "node_15",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005092 "next_tables" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005093 "act_5" : "node_15"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005094 },
5095 "default_entry" : {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02005096 "action_id" : 45,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005097 "action_const" : true,
5098 "action_data" : [],
5099 "action_entry_const" : true
5100 }
5101 },
5102 {
5103 "name" : "tbl_act_7",
5104 "id" : 10,
5105 "key" : [],
5106 "match_type" : "exact",
5107 "type" : "simple",
5108 "max_size" : 1024,
5109 "with_counters" : false,
5110 "support_timeout" : false,
5111 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02005112 "action_ids" : [46],
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005113 "actions" : ["act_6"],
5114 "base_default_next" : "node_17",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005115 "next_tables" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005116 "act_6" : "node_17"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005117 },
5118 "default_entry" : {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02005119 "action_id" : 46,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005120 "action_const" : true,
5121 "action_data" : [],
5122 "action_entry_const" : true
5123 }
5124 },
5125 {
5126 "name" : "tbl_act_8",
5127 "id" : 11,
5128 "key" : [],
5129 "match_type" : "exact",
5130 "type" : "simple",
5131 "max_size" : 1024,
5132 "with_counters" : false,
5133 "support_timeout" : false,
5134 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02005135 "action_ids" : [48],
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005136 "actions" : ["act_8"],
5137 "base_default_next" : "node_19",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005138 "next_tables" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005139 "act_8" : "node_19"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005140 },
5141 "default_entry" : {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02005142 "action_id" : 48,
Carmelo Cascone14cde402018-01-25 01:57:18 -08005143 "action_const" : true,
5144 "action_data" : [],
5145 "action_entry_const" : true
5146 }
5147 },
5148 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005149 "name" : "tbl_spgw_ingress_gtpu_decap",
Carmelo Cascone14cde402018-01-25 01:57:18 -08005150 "id" : 12,
5151 "key" : [],
5152 "match_type" : "exact",
5153 "type" : "simple",
5154 "max_size" : 1024,
5155 "with_counters" : false,
5156 "support_timeout" : false,
5157 "direct_meters" : null,
Esin Karaman971fb7f2017-12-28 13:44:52 +00005158 "action_ids" : [14],
Yi Tseng27b9bc02018-04-12 14:52:40 +08005159 "actions" : ["FabricIngress.spgw_ingress.gtpu_decap"],
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005160 "base_default_next" : "node_22",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005161 "next_tables" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005162 "FabricIngress.spgw_ingress.gtpu_decap" : "node_22"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005163 },
5164 "default_entry" : {
Esin Karaman971fb7f2017-12-28 13:44:52 +00005165 "action_id" : 14,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005166 "action_const" : true,
5167 "action_data" : [],
5168 "action_entry_const" : true
5169 }
5170 },
5171 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005172 "name" : "FabricIngress.spgw_ingress.dl_sess_lookup",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005173 "id" : 13,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005174 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005175 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02005176 "line" : 119,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005177 "column" : 10,
5178 "source_fragment" : "dl_sess_lookup"
5179 },
5180 "key" : [
5181 {
5182 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005183 "name" : "ipv4.dst_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005184 "target" : ["ipv4", "dst_addr"],
5185 "mask" : null
5186 }
5187 ],
5188 "match_type" : "exact",
5189 "type" : "simple",
5190 "max_size" : 1024,
5191 "with_counters" : false,
5192 "support_timeout" : false,
5193 "direct_meters" : null,
Esin Karaman971fb7f2017-12-28 13:44:52 +00005194 "action_ids" : [15, 2],
Yi Tseng27b9bc02018-04-12 14:52:40 +08005195 "actions" : ["FabricIngress.spgw_ingress.set_dl_sess_info", "NoAction"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005196 "base_default_next" : null,
5197 "next_tables" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005198 "__HIT__" : "tbl_act_9",
5199 "__MISS__" : "tbl_act_10"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005200 },
5201 "default_entry" : {
5202 "action_id" : 2,
5203 "action_const" : false,
5204 "action_data" : [],
5205 "action_entry_const" : false
5206 }
5207 },
5208 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005209 "name" : "tbl_act_9",
5210 "id" : 14,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005211 "key" : [],
5212 "match_type" : "exact",
5213 "type" : "simple",
5214 "max_size" : 1024,
5215 "with_counters" : false,
5216 "support_timeout" : false,
5217 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02005218 "action_ids" : [49],
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005219 "actions" : ["act_9"],
5220 "base_default_next" : "node_26",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005221 "next_tables" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005222 "act_9" : "node_26"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005223 },
5224 "default_entry" : {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02005225 "action_id" : 49,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005226 "action_const" : true,
5227 "action_data" : [],
5228 "action_entry_const" : true
5229 }
5230 },
5231 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005232 "name" : "tbl_act_10",
5233 "id" : 15,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005234 "key" : [],
5235 "match_type" : "exact",
5236 "type" : "simple",
5237 "max_size" : 1024,
5238 "with_counters" : false,
5239 "support_timeout" : false,
5240 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02005241 "action_ids" : [50],
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005242 "actions" : ["act_10"],
5243 "base_default_next" : "node_26",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005244 "next_tables" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005245 "act_10" : "node_26"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005246 },
5247 "default_entry" : {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02005248 "action_id" : 50,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005249 "action_const" : true,
5250 "action_data" : [],
5251 "action_entry_const" : true
5252 }
5253 },
5254 {
Carmelo Casconea5400af2018-07-17 22:11:54 +02005255 "name" : "tbl_drop_now",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005256 "id" : 16,
Carmelo Cascone14cde402018-01-25 01:57:18 -08005257 "key" : [],
5258 "match_type" : "exact",
5259 "type" : "simple",
5260 "max_size" : 1024,
5261 "with_counters" : false,
5262 "support_timeout" : false,
5263 "direct_meters" : null,
Esin Karaman971fb7f2017-12-28 13:44:52 +00005264 "action_ids" : [13],
Carmelo Casconea5400af2018-07-17 22:11:54 +02005265 "actions" : ["drop_now"],
Yi Tseng27b9bc02018-04-12 14:52:40 +08005266 "base_default_next" : "FabricIngress.spgw_ingress.ue_cdr_table",
Carmelo Cascone14cde402018-01-25 01:57:18 -08005267 "next_tables" : {
Carmelo Casconea5400af2018-07-17 22:11:54 +02005268 "drop_now" : "FabricIngress.spgw_ingress.ue_cdr_table"
Carmelo Cascone14cde402018-01-25 01:57:18 -08005269 },
5270 "default_entry" : {
Esin Karaman971fb7f2017-12-28 13:44:52 +00005271 "action_id" : 13,
Carmelo Cascone14cde402018-01-25 01:57:18 -08005272 "action_const" : true,
5273 "action_data" : [],
5274 "action_entry_const" : true
5275 }
5276 },
5277 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005278 "name" : "FabricIngress.spgw_ingress.ue_cdr_table",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005279 "id" : 17,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005280 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005281 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02005282 "line" : 129,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005283 "column" : 10,
5284 "source_fragment" : "ue_cdr_table"
5285 },
5286 "key" : [
5287 {
5288 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005289 "name" : "ipv4.dst_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005290 "target" : ["ipv4", "dst_addr"],
5291 "mask" : null
5292 }
5293 ],
5294 "match_type" : "exact",
5295 "type" : "simple",
5296 "max_size" : 1024,
5297 "with_counters" : true,
5298 "support_timeout" : false,
5299 "direct_meters" : null,
Esin Karaman971fb7f2017-12-28 13:44:52 +00005300 "action_ids" : [16, 3],
Yi Tseng27b9bc02018-04-12 14:52:40 +08005301 "actions" : ["FabricIngress.spgw_ingress.update_ue_cdr", "NoAction"],
5302 "base_default_next" : "tbl_act_11",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005303 "next_tables" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005304 "FabricIngress.spgw_ingress.update_ue_cdr" : "tbl_act_11",
5305 "NoAction" : "tbl_act_11"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005306 },
5307 "default_entry" : {
5308 "action_id" : 3,
5309 "action_const" : false,
5310 "action_data" : [],
5311 "action_entry_const" : false
5312 }
5313 },
5314 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005315 "name" : "tbl_act_11",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005316 "id" : 18,
Yi Tseng27b9bc02018-04-12 14:52:40 +08005317 "key" : [],
5318 "match_type" : "exact",
5319 "type" : "simple",
5320 "max_size" : 1024,
5321 "with_counters" : false,
5322 "support_timeout" : false,
5323 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02005324 "action_ids" : [51],
Yi Tseng27b9bc02018-04-12 14:52:40 +08005325 "actions" : ["act_11"],
5326 "base_default_next" : "FabricIngress.filtering.ingress_port_vlan",
5327 "next_tables" : {
5328 "act_11" : "FabricIngress.filtering.ingress_port_vlan"
5329 },
5330 "default_entry" : {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02005331 "action_id" : 51,
Yi Tseng27b9bc02018-04-12 14:52:40 +08005332 "action_const" : true,
5333 "action_data" : [],
5334 "action_entry_const" : true
5335 }
5336 },
5337 {
5338 "name" : "FabricIngress.filtering.ingress_port_vlan",
5339 "id" : 19,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005340 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005341 "filename" : "include/control/filtering.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08005342 "line" : 61,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005343 "column" : 10,
5344 "source_fragment" : "ingress_port_vlan"
5345 },
5346 "key" : [
5347 {
5348 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005349 "name" : "standard_metadata.ingress_port",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005350 "target" : ["standard_metadata", "ingress_port"],
5351 "mask" : null
5352 },
5353 {
5354 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005355 "name" : "hdr.vlan_tag.is_valid",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005356 "target" : ["vlan_tag", "$valid$"],
5357 "mask" : null
5358 },
5359 {
5360 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005361 "name" : "hdr.vlan_tag.vlan_id",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005362 "target" : ["vlan_tag", "vlan_id"],
5363 "mask" : null
5364 }
5365 ],
5366 "match_type" : "ternary",
5367 "type" : "simple",
5368 "max_size" : 1024,
5369 "with_counters" : true,
5370 "support_timeout" : false,
5371 "direct_meters" : null,
Esin Karaman971fb7f2017-12-28 13:44:52 +00005372 "action_ids" : [19, 18, 10, 17],
Yi Tseng27b9bc02018-04-12 14:52:40 +08005373 "actions" : ["FabricIngress.filtering.push_internal_vlan", "FabricIngress.filtering.set_vlan", "nop", "FabricIngress.filtering.drop"],
5374 "base_default_next" : "FabricIngress.filtering.fwd_classifier",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005375 "next_tables" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005376 "FabricIngress.filtering.push_internal_vlan" : "FabricIngress.filtering.fwd_classifier",
5377 "FabricIngress.filtering.set_vlan" : "FabricIngress.filtering.fwd_classifier",
5378 "nop" : "FabricIngress.filtering.fwd_classifier",
5379 "FabricIngress.filtering.drop" : "FabricIngress.filtering.fwd_classifier"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005380 },
5381 "default_entry" : {
Esin Karaman971fb7f2017-12-28 13:44:52 +00005382 "action_id" : 10,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005383 "action_const" : true,
5384 "action_data" : [],
5385 "action_entry_const" : true
5386 }
5387 },
5388 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005389 "name" : "FabricIngress.filtering.fwd_classifier",
5390 "id" : 20,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005391 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005392 "filename" : "include/control/filtering.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08005393 "line" : 98,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005394 "column" : 10,
5395 "source_fragment" : "fwd_classifier"
5396 },
5397 "key" : [
5398 {
5399 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005400 "name" : "standard_metadata.ingress_port",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005401 "target" : ["standard_metadata", "ingress_port"],
5402 "mask" : null
5403 },
5404 {
5405 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005406 "name" : "hdr.ethernet.dst_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005407 "target" : ["ethernet", "dst_addr"],
5408 "mask" : null
5409 },
5410 {
5411 "match_type" : "exact",
Yi Tseng8235a1a2018-07-24 20:57:28 +08005412 "name" : "hdr.vlan_tag.ether_type",
5413 "target" : ["vlan_tag", "ether_type"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005414 "mask" : null
5415 }
5416 ],
5417 "match_type" : "exact",
5418 "type" : "simple",
5419 "max_size" : 1024,
5420 "with_counters" : true,
5421 "support_timeout" : false,
5422 "direct_meters" : null,
Esin Karaman971fb7f2017-12-28 13:44:52 +00005423 "action_ids" : [20],
Yi Tseng27b9bc02018-04-12 14:52:40 +08005424 "actions" : ["FabricIngress.filtering.set_forwarding_type"],
5425 "base_default_next" : "node_32",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005426 "next_tables" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005427 "FabricIngress.filtering.set_forwarding_type" : "node_32"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005428 },
5429 "default_entry" : {
Esin Karaman971fb7f2017-12-28 13:44:52 +00005430 "action_id" : 20,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005431 "action_const" : true,
5432 "action_data" : ["0x0"],
5433 "action_entry_const" : true
5434 }
5435 },
5436 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005437 "name" : "FabricIngress.forwarding.bridging",
5438 "id" : 21,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005439 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005440 "filename" : "include/control/forwarding.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08005441 "line" : 41,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005442 "column" : 10,
5443 "source_fragment" : "bridging"
5444 },
5445 "key" : [
5446 {
5447 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005448 "name" : "hdr.vlan_tag.vlan_id",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005449 "target" : ["vlan_tag", "vlan_id"],
5450 "mask" : null
5451 },
5452 {
5453 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005454 "name" : "hdr.ethernet.dst_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005455 "target" : ["ethernet", "dst_addr"],
5456 "mask" : null
5457 }
5458 ],
5459 "match_type" : "ternary",
5460 "type" : "simple",
5461 "max_size" : 1024,
5462 "with_counters" : true,
5463 "support_timeout" : false,
5464 "direct_meters" : null,
Yi Tseng47eac892018-07-11 02:17:04 +08005465 "action_ids" : [21, 4],
5466 "actions" : ["FabricIngress.forwarding.set_next_id_bridging", "NoAction"],
Yi Tseng27b9bc02018-04-12 14:52:40 +08005467 "base_default_next" : "FabricIngress.forwarding.acl",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005468 "next_tables" : {
Yi Tseng47eac892018-07-11 02:17:04 +08005469 "FabricIngress.forwarding.set_next_id_bridging" : "FabricIngress.forwarding.acl",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005470 "NoAction" : "FabricIngress.forwarding.acl"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005471 },
5472 "default_entry" : {
5473 "action_id" : 4,
5474 "action_const" : false,
5475 "action_data" : [],
5476 "action_entry_const" : false
5477 }
5478 },
5479 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005480 "name" : "FabricIngress.forwarding.mpls",
5481 "id" : 22,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005482 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005483 "filename" : "include/control/forwarding.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08005484 "line" : 65,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005485 "column" : 10,
5486 "source_fragment" : "mpls"
5487 },
5488 "key" : [
5489 {
5490 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005491 "name" : "hdr.mpls.label",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005492 "target" : ["mpls", "label"],
5493 "mask" : null
5494 }
5495 ],
5496 "match_type" : "exact",
5497 "type" : "simple",
5498 "max_size" : 1024,
5499 "with_counters" : true,
5500 "support_timeout" : false,
5501 "direct_meters" : null,
Yi Tseng47eac892018-07-11 02:17:04 +08005502 "action_ids" : [22, 5],
Yi Tseng27b9bc02018-04-12 14:52:40 +08005503 "actions" : ["FabricIngress.forwarding.pop_mpls_and_next", "NoAction"],
5504 "base_default_next" : "tbl_act_12",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005505 "next_tables" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005506 "FabricIngress.forwarding.pop_mpls_and_next" : "tbl_act_12",
5507 "NoAction" : "tbl_act_12"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005508 },
5509 "default_entry" : {
5510 "action_id" : 5,
5511 "action_const" : false,
5512 "action_data" : [],
5513 "action_entry_const" : false
5514 }
5515 },
5516 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005517 "name" : "tbl_act_12",
5518 "id" : 23,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005519 "key" : [],
5520 "match_type" : "exact",
5521 "type" : "simple",
5522 "max_size" : 1024,
5523 "with_counters" : false,
5524 "support_timeout" : false,
5525 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02005526 "action_ids" : [52],
Yi Tseng27b9bc02018-04-12 14:52:40 +08005527 "actions" : ["act_12"],
5528 "base_default_next" : "FabricIngress.forwarding.acl",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005529 "next_tables" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005530 "act_12" : "FabricIngress.forwarding.acl"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005531 },
5532 "default_entry" : {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02005533 "action_id" : 52,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005534 "action_const" : true,
5535 "action_data" : [],
5536 "action_entry_const" : true
5537 }
5538 },
5539 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005540 "name" : "FabricIngress.forwarding.unicast_v4",
5541 "id" : 24,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005542 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005543 "filename" : "include/control/forwarding.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08005544 "line" : 87,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005545 "column" : 10,
5546 "source_fragment" : "unicast_v4"
5547 },
5548 "key" : [
5549 {
5550 "match_type" : "lpm",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005551 "name" : "hdr.ipv4.dst_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005552 "target" : ["ipv4", "dst_addr"],
5553 "mask" : null
5554 }
5555 ],
5556 "match_type" : "lpm",
5557 "type" : "simple",
5558 "max_size" : 1024,
5559 "with_counters" : true,
5560 "support_timeout" : false,
5561 "direct_meters" : null,
Esin Karaman971fb7f2017-12-28 13:44:52 +00005562 "action_ids" : [23, 6],
Yi Tseng47eac892018-07-11 02:17:04 +08005563 "actions" : ["FabricIngress.forwarding.set_next_id_unicast_v4", "NoAction"],
Yi Tseng27b9bc02018-04-12 14:52:40 +08005564 "base_default_next" : "FabricIngress.forwarding.acl",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005565 "next_tables" : {
Yi Tseng47eac892018-07-11 02:17:04 +08005566 "FabricIngress.forwarding.set_next_id_unicast_v4" : "FabricIngress.forwarding.acl",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005567 "NoAction" : "FabricIngress.forwarding.acl"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005568 },
5569 "default_entry" : {
5570 "action_id" : 6,
5571 "action_const" : false,
5572 "action_data" : [],
5573 "action_entry_const" : false
5574 }
5575 },
5576 {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005577 "name" : "FabricIngress.forwarding.acl",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005578 "id" : 25,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005579 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005580 "filename" : "include/control/forwarding.p4",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02005581 "line" : 127,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005582 "column" : 10,
5583 "source_fragment" : "acl"
5584 },
5585 "key" : [
5586 {
5587 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005588 "name" : "standard_metadata.ingress_port",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005589 "target" : ["standard_metadata", "ingress_port"],
5590 "mask" : null
5591 },
5592 {
5593 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005594 "name" : "fabric_metadata.ip_proto",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005595 "target" : ["scalars", "fabric_metadata_t.ip_proto"],
5596 "mask" : null
5597 },
5598 {
5599 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005600 "name" : "fabric_metadata.l4_src_port",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005601 "target" : ["scalars", "fabric_metadata_t.l4_src_port"],
5602 "mask" : null
5603 },
5604 {
5605 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005606 "name" : "fabric_metadata.l4_dst_port",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005607 "target" : ["scalars", "fabric_metadata_t.l4_dst_port"],
5608 "mask" : null
5609 },
5610 {
5611 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005612 "name" : "hdr.ethernet.dst_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005613 "target" : ["ethernet", "dst_addr"],
5614 "mask" : null
5615 },
5616 {
5617 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005618 "name" : "hdr.ethernet.src_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005619 "target" : ["ethernet", "src_addr"],
5620 "mask" : null
5621 },
5622 {
5623 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005624 "name" : "hdr.vlan_tag.vlan_id",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005625 "target" : ["vlan_tag", "vlan_id"],
5626 "mask" : null
5627 },
5628 {
5629 "match_type" : "ternary",
Yi Tseng8235a1a2018-07-24 20:57:28 +08005630 "name" : "hdr.vlan_tag.ether_type",
5631 "target" : ["vlan_tag", "ether_type"],
5632 "mask" : null
5633 },
5634 {
5635 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005636 "name" : "hdr.ipv4.src_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005637 "target" : ["ipv4", "src_addr"],
5638 "mask" : null
5639 },
5640 {
5641 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005642 "name" : "hdr.ipv4.dst_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005643 "target" : ["ipv4", "dst_addr"],
5644 "mask" : null
5645 },
5646 {
5647 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005648 "name" : "hdr.icmp.icmp_type",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005649 "target" : ["icmp", "icmp_type"],
5650 "mask" : null
5651 },
5652 {
5653 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005654 "name" : "hdr.icmp.icmp_code",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005655 "target" : ["icmp", "icmp_code"],
5656 "mask" : null
5657 }
5658 ],
5659 "match_type" : "ternary",
5660 "type" : "simple",
Yi Tseng8235a1a2018-07-24 20:57:28 +08005661 "max_size" : 128,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005662 "with_counters" : true,
5663 "support_timeout" : false,
5664 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02005665 "action_ids" : [24, 25, 26, 27, 11],
5666 "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 +02005667 "base_default_next" : "tbl_act_13",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005668 "next_tables" : {
Carmelo Casconea5400af2018-07-17 22:11:54 +02005669 "FabricIngress.forwarding.set_next_id_acl" : "tbl_act_13",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02005670 "FabricIngress.forwarding.punt_to_cpu" : "tbl_act_13",
5671 "FabricIngress.forwarding.clone_to_cpu" : "tbl_act_13",
Carmelo Casconea5400af2018-07-17 22:11:54 +02005672 "FabricIngress.forwarding.drop" : "tbl_act_13",
5673 "nop" : "tbl_act_13"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005674 },
5675 "default_entry" : {
Esin Karaman971fb7f2017-12-28 13:44:52 +00005676 "action_id" : 11,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005677 "action_const" : true,
5678 "action_data" : [],
5679 "action_entry_const" : true
5680 }
5681 },
5682 {
Carmelo Casconea5400af2018-07-17 22:11:54 +02005683 "name" : "tbl_act_13",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005684 "id" : 26,
Carmelo Casconea5400af2018-07-17 22:11:54 +02005685 "key" : [],
5686 "match_type" : "exact",
5687 "type" : "simple",
5688 "max_size" : 1024,
5689 "with_counters" : false,
5690 "support_timeout" : false,
5691 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02005692 "action_ids" : [53],
Carmelo Casconea5400af2018-07-17 22:11:54 +02005693 "actions" : ["act_13"],
5694 "base_default_next" : "FabricIngress.next.vlan_meta",
5695 "next_tables" : {
5696 "act_13" : "FabricIngress.next.vlan_meta"
5697 },
5698 "default_entry" : {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02005699 "action_id" : 53,
Carmelo Casconea5400af2018-07-17 22:11:54 +02005700 "action_const" : true,
5701 "action_data" : [],
5702 "action_entry_const" : true
5703 }
5704 },
5705 {
5706 "name" : "FabricIngress.next.vlan_meta",
5707 "id" : 27,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005708 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005709 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08005710 "line" : 65,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005711 "column" : 10,
5712 "source_fragment" : "vlan_meta"
5713 },
5714 "key" : [
5715 {
5716 "match_type" : "exact",
5717 "name" : "fabric_metadata.next_id",
5718 "target" : ["scalars", "fabric_metadata_t.next_id"],
5719 "mask" : null
5720 }
5721 ],
5722 "match_type" : "exact",
5723 "type" : "simple",
5724 "max_size" : 1024,
5725 "with_counters" : true,
5726 "support_timeout" : false,
5727 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02005728 "action_ids" : [28, 12],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005729 "actions" : ["FabricIngress.next.set_vlan", "nop"],
5730 "base_default_next" : "FabricIngress.next.simple",
5731 "next_tables" : {
5732 "FabricIngress.next.set_vlan" : "FabricIngress.next.simple",
5733 "nop" : "FabricIngress.next.simple"
5734 },
5735 "default_entry" : {
Esin Karaman971fb7f2017-12-28 13:44:52 +00005736 "action_id" : 12,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005737 "action_const" : false,
5738 "action_data" : [],
5739 "action_entry_const" : false
5740 }
5741 },
5742 {
5743 "name" : "FabricIngress.next.simple",
Carmelo Casconea5400af2018-07-17 22:11:54 +02005744 "id" : 28,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005745 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005746 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08005747 "line" : 122,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005748 "column" : 10,
5749 "source_fragment" : "simple"
5750 },
5751 "key" : [
5752 {
5753 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005754 "name" : "fabric_metadata.next_id",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005755 "target" : ["scalars", "fabric_metadata_t.next_id"],
5756 "mask" : null
5757 }
5758 ],
5759 "match_type" : "exact",
5760 "type" : "simple",
5761 "max_size" : 1024,
5762 "with_counters" : true,
5763 "support_timeout" : false,
5764 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02005765 "action_ids" : [29, 30, 31, 32, 33, 34, 7],
Yi Tseng47eac892018-07-11 02:17:04 +08005766 "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 -08005767 "base_default_next" : null,
5768 "next_tables" : {
Carmelo Casconea5400af2018-07-17 22:11:54 +02005769 "__HIT__" : "tbl_act_14",
5770 "__MISS__" : "tbl_act_15"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005771 },
5772 "default_entry" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005773 "action_id" : 7,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005774 "action_const" : false,
5775 "action_data" : [],
5776 "action_entry_const" : false
5777 }
5778 },
5779 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005780 "name" : "tbl_act_14",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005781 "id" : 29,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005782 "key" : [],
5783 "match_type" : "exact",
5784 "type" : "simple",
5785 "max_size" : 1024,
5786 "with_counters" : false,
5787 "support_timeout" : false,
5788 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02005789 "action_ids" : [54],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005790 "actions" : ["act_14"],
Carmelo Casconea5400af2018-07-17 22:11:54 +02005791 "base_default_next" : "node_45",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005792 "next_tables" : {
Carmelo Casconea5400af2018-07-17 22:11:54 +02005793 "act_14" : "node_45"
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005794 },
5795 "default_entry" : {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02005796 "action_id" : 54,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005797 "action_const" : true,
5798 "action_data" : [],
5799 "action_entry_const" : true
5800 }
5801 },
5802 {
5803 "name" : "tbl_act_15",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005804 "id" : 30,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005805 "key" : [],
5806 "match_type" : "exact",
5807 "type" : "simple",
5808 "max_size" : 1024,
5809 "with_counters" : false,
5810 "support_timeout" : false,
5811 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02005812 "action_ids" : [55],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005813 "actions" : ["act_15"],
Carmelo Casconea5400af2018-07-17 22:11:54 +02005814 "base_default_next" : "node_45",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005815 "next_tables" : {
Carmelo Casconea5400af2018-07-17 22:11:54 +02005816 "act_15" : "node_45"
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005817 },
5818 "default_entry" : {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02005819 "action_id" : 55,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005820 "action_const" : true,
5821 "action_data" : [],
5822 "action_entry_const" : true
5823 }
5824 },
5825 {
5826 "name" : "FabricIngress.next.hashed",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005827 "id" : 31,
Yi Tseng27b9bc02018-04-12 14:52:40 +08005828 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005829 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08005830 "line" : 175,
Yi Tseng27b9bc02018-04-12 14:52:40 +08005831 "column" : 10,
5832 "source_fragment" : "hashed"
5833 },
5834 "key" : [
5835 {
5836 "match_type" : "exact",
5837 "name" : "fabric_metadata.next_id",
5838 "target" : ["scalars", "fabric_metadata_t.next_id"],
5839 "mask" : null
5840 }
5841 ],
5842 "match_type" : "exact",
5843 "type" : "indirect_ws",
5844 "action_profile" : "FabricIngress.next.ecmp_selector",
5845 "max_size" : 1024,
5846 "with_counters" : true,
5847 "support_timeout" : false,
5848 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02005849 "action_ids" : [35, 36, 37, 8],
Yi Tseng47eac892018-07-11 02:17:04 +08005850 "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 +02005851 "base_default_next" : null,
Yi Tseng27b9bc02018-04-12 14:52:40 +08005852 "next_tables" : {
Carmelo Casconea5400af2018-07-17 22:11:54 +02005853 "__HIT__" : "tbl_act_16",
5854 "__MISS__" : "tbl_act_17"
5855 }
5856 },
5857 {
5858 "name" : "tbl_act_16",
5859 "id" : 32,
5860 "key" : [],
5861 "match_type" : "exact",
5862 "type" : "simple",
5863 "max_size" : 1024,
5864 "with_counters" : false,
5865 "support_timeout" : false,
5866 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02005867 "action_ids" : [56],
Carmelo Casconea5400af2018-07-17 22:11:54 +02005868 "actions" : ["act_16"],
5869 "base_default_next" : "node_49",
5870 "next_tables" : {
5871 "act_16" : "node_49"
5872 },
5873 "default_entry" : {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02005874 "action_id" : 56,
Carmelo Casconea5400af2018-07-17 22:11:54 +02005875 "action_const" : true,
5876 "action_data" : [],
5877 "action_entry_const" : true
5878 }
5879 },
5880 {
5881 "name" : "tbl_act_17",
5882 "id" : 33,
5883 "key" : [],
5884 "match_type" : "exact",
5885 "type" : "simple",
5886 "max_size" : 1024,
5887 "with_counters" : false,
5888 "support_timeout" : false,
5889 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02005890 "action_ids" : [57],
Carmelo Casconea5400af2018-07-17 22:11:54 +02005891 "actions" : ["act_17"],
5892 "base_default_next" : "node_49",
5893 "next_tables" : {
5894 "act_17" : "node_49"
5895 },
5896 "default_entry" : {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02005897 "action_id" : 57,
Carmelo Casconea5400af2018-07-17 22:11:54 +02005898 "action_const" : true,
5899 "action_data" : [],
5900 "action_entry_const" : true
Esin Karaman971fb7f2017-12-28 13:44:52 +00005901 }
5902 },
5903 {
5904 "name" : "FabricIngress.next.multicast",
Carmelo Casconea5400af2018-07-17 22:11:54 +02005905 "id" : 34,
Esin Karaman971fb7f2017-12-28 13:44:52 +00005906 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005907 "filename" : "include/control/next.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02005908 "line" : 207,
Esin Karaman971fb7f2017-12-28 13:44:52 +00005909 "column" : 10,
5910 "source_fragment" : "multicast"
5911 },
5912 "key" : [
5913 {
5914 "match_type" : "exact",
5915 "name" : "fabric_metadata.next_id",
5916 "target" : ["scalars", "fabric_metadata_t.next_id"],
5917 "mask" : null
5918 }
5919 ],
5920 "match_type" : "exact",
5921 "type" : "simple",
5922 "max_size" : 1024,
5923 "with_counters" : true,
5924 "support_timeout" : false,
5925 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02005926 "action_ids" : [38, 9],
Esin Karaman971fb7f2017-12-28 13:44:52 +00005927 "actions" : ["FabricIngress.next.set_mcast_group", "NoAction"],
Carmelo Casconea5400af2018-07-17 22:11:54 +02005928 "base_default_next" : null,
Esin Karaman971fb7f2017-12-28 13:44:52 +00005929 "next_tables" : {
Carmelo Casconea5400af2018-07-17 22:11:54 +02005930 "__HIT__" : "tbl_act_18",
5931 "__MISS__" : "tbl_act_19"
Esin Karaman971fb7f2017-12-28 13:44:52 +00005932 },
5933 "default_entry" : {
5934 "action_id" : 9,
5935 "action_const" : false,
5936 "action_data" : [],
5937 "action_entry_const" : false
Yi Tseng27b9bc02018-04-12 14:52:40 +08005938 }
5939 },
5940 {
Carmelo Casconea5400af2018-07-17 22:11:54 +02005941 "name" : "tbl_act_18",
5942 "id" : 35,
Yi Tseng27b9bc02018-04-12 14:52:40 +08005943 "key" : [],
5944 "match_type" : "exact",
5945 "type" : "simple",
5946 "max_size" : 1024,
5947 "with_counters" : false,
5948 "support_timeout" : false,
5949 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02005950 "action_ids" : [58],
Carmelo Casconea5400af2018-07-17 22:11:54 +02005951 "actions" : ["act_18"],
5952 "base_default_next" : "node_53",
Esin Karaman971fb7f2017-12-28 13:44:52 +00005953 "next_tables" : {
Carmelo Casconea5400af2018-07-17 22:11:54 +02005954 "act_18" : "node_53"
Esin Karaman971fb7f2017-12-28 13:44:52 +00005955 },
5956 "default_entry" : {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02005957 "action_id" : 58,
Esin Karaman971fb7f2017-12-28 13:44:52 +00005958 "action_const" : true,
5959 "action_data" : [],
5960 "action_entry_const" : true
5961 }
5962 },
5963 {
Carmelo Casconea5400af2018-07-17 22:11:54 +02005964 "name" : "tbl_act_19",
5965 "id" : 36,
Esin Karaman971fb7f2017-12-28 13:44:52 +00005966 "key" : [],
5967 "match_type" : "exact",
5968 "type" : "simple",
5969 "max_size" : 1024,
5970 "with_counters" : false,
5971 "support_timeout" : false,
5972 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02005973 "action_ids" : [59],
Carmelo Casconea5400af2018-07-17 22:11:54 +02005974 "actions" : ["act_19"],
5975 "base_default_next" : "node_53",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005976 "next_tables" : {
Carmelo Casconea5400af2018-07-17 22:11:54 +02005977 "act_19" : "node_53"
Yi Tseng27b9bc02018-04-12 14:52:40 +08005978 },
5979 "default_entry" : {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02005980 "action_id" : 59,
Carmelo Casconea5400af2018-07-17 22:11:54 +02005981 "action_const" : true,
5982 "action_data" : [],
5983 "action_entry_const" : true
5984 }
5985 },
5986 {
5987 "name" : "tbl_act_20",
5988 "id" : 37,
5989 "key" : [],
5990 "match_type" : "exact",
5991 "type" : "simple",
5992 "max_size" : 1024,
5993 "with_counters" : false,
5994 "support_timeout" : false,
5995 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02005996 "action_ids" : [60],
Carmelo Casconea5400af2018-07-17 22:11:54 +02005997 "actions" : ["act_20"],
5998 "base_default_next" : "node_55",
5999 "next_tables" : {
6000 "act_20" : "node_55"
6001 },
6002 "default_entry" : {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02006003 "action_id" : 60,
Carmelo Casconea5400af2018-07-17 22:11:54 +02006004 "action_const" : true,
6005 "action_data" : [],
6006 "action_entry_const" : true
6007 }
6008 },
6009 {
6010 "name" : "tbl_act_21",
6011 "id" : 38,
6012 "key" : [],
6013 "match_type" : "exact",
6014 "type" : "simple",
6015 "max_size" : 1024,
6016 "with_counters" : false,
6017 "support_timeout" : false,
6018 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02006019 "action_ids" : [61],
Carmelo Casconea5400af2018-07-17 22:11:54 +02006020 "actions" : ["act_21"],
6021 "base_default_next" : "node_59",
6022 "next_tables" : {
6023 "act_21" : "node_59"
6024 },
6025 "default_entry" : {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02006026 "action_id" : 61,
Carmelo Casconea5400af2018-07-17 22:11:54 +02006027 "action_const" : true,
6028 "action_data" : [],
6029 "action_entry_const" : true
6030 }
6031 },
6032 {
6033 "name" : "tbl_act_22",
6034 "id" : 39,
6035 "key" : [],
6036 "match_type" : "exact",
6037 "type" : "simple",
6038 "max_size" : 1024,
6039 "with_counters" : false,
6040 "support_timeout" : false,
6041 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02006042 "action_ids" : [62],
Carmelo Casconea5400af2018-07-17 22:11:54 +02006043 "actions" : ["act_22"],
6044 "base_default_next" : "node_61",
6045 "next_tables" : {
6046 "act_22" : "node_61"
6047 },
6048 "default_entry" : {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02006049 "action_id" : 62,
Carmelo Casconea5400af2018-07-17 22:11:54 +02006050 "action_const" : true,
6051 "action_data" : [],
6052 "action_entry_const" : true
6053 }
6054 },
6055 {
6056 "name" : "tbl_act_23",
6057 "id" : 40,
6058 "key" : [],
6059 "match_type" : "exact",
6060 "type" : "simple",
6061 "max_size" : 1024,
6062 "with_counters" : false,
6063 "support_timeout" : false,
6064 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02006065 "action_ids" : [63],
Carmelo Casconea5400af2018-07-17 22:11:54 +02006066 "actions" : ["act_23"],
6067 "base_default_next" : null,
6068 "next_tables" : {
6069 "act_23" : null
6070 },
6071 "default_entry" : {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02006072 "action_id" : 63,
Carmelo Cascone14cde402018-01-25 01:57:18 -08006073 "action_const" : true,
6074 "action_data" : [],
6075 "action_entry_const" : true
6076 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006077 }
6078 ],
6079 "action_profiles" : [
6080 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08006081 "name" : "FabricIngress.next.ecmp_selector",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006082 "id" : 0,
6083 "max_size" : 64,
6084 "selector" : {
6085 "algo" : "crc16",
6086 "input" : [
6087 {
6088 "type" : "field",
Yi Tseng3d3956d2018-01-31 17:28:05 -08006089 "value" : ["ipv4", "dst_addr"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006090 },
6091 {
6092 "type" : "field",
Yi Tseng3d3956d2018-01-31 17:28:05 -08006093 "value" : ["ipv4", "src_addr"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006094 },
6095 {
6096 "type" : "field",
6097 "value" : ["scalars", "fabric_metadata_t.ip_proto"]
6098 },
6099 {
6100 "type" : "field",
6101 "value" : ["scalars", "fabric_metadata_t.l4_src_port"]
6102 },
6103 {
6104 "type" : "field",
6105 "value" : ["scalars", "fabric_metadata_t.l4_dst_port"]
6106 }
6107 ]
6108 }
6109 }
6110 ],
6111 "conditionals" : [
6112 {
6113 "name" : "node_2",
6114 "id" : 0,
6115 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006116 "filename" : "include/control/packetio.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006117 "line" : 25,
6118 "column" : 12,
6119 "source_fragment" : "hdr.packet_out.isValid()"
6120 },
6121 "expression" : {
6122 "type" : "expression",
6123 "value" : {
6124 "op" : "d2b",
6125 "left" : null,
6126 "right" : {
6127 "type" : "field",
6128 "value" : ["packet_out", "$valid$"]
6129 }
6130 }
6131 },
6132 "true_next" : "tbl_act",
6133 "false_next" : "tbl_act_0"
6134 },
6135 {
6136 "name" : "node_5",
6137 "id" : 1,
6138 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006139 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02006140 "line" : 142,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006141 "column" : 12,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006142 "source_fragment" : "gtpu.isValid()"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006143 },
6144 "expression" : {
6145 "type" : "expression",
6146 "value" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006147 "op" : "d2b",
6148 "left" : null,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006149 "right" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006150 "type" : "field",
6151 "value" : ["gtpu", "$valid$"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006152 }
6153 }
6154 },
6155 "true_next" : "tbl_act_1",
Yi Tseng27b9bc02018-04-12 14:52:40 +08006156 "false_next" : "FabricIngress.spgw_ingress.ue_filter_table"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006157 },
6158 {
6159 "name" : "node_10",
6160 "id" : 2,
6161 "expression" : {
6162 "type" : "expression",
6163 "value" : {
6164 "op" : "d2b",
6165 "left" : null,
6166 "right" : {
6167 "type" : "field",
6168 "value" : ["scalars", "spgw_ingress_tmp_2"]
6169 }
6170 }
6171 },
6172 "true_next" : "tbl_act_4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006173 "false_next" : "node_17"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006174 },
6175 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006176 "name" : "node_15",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006177 "id" : 3,
6178 "expression" : {
6179 "type" : "expression",
6180 "value" : {
6181 "op" : "d2b",
6182 "left" : null,
6183 "right" : {
6184 "type" : "field",
6185 "value" : ["scalars", "spgw_ingress_tmp_3"]
6186 }
6187 }
6188 },
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006189 "true_next" : "tbl_act_7",
6190 "false_next" : "node_17"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006191 },
6192 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006193 "name" : "node_17",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006194 "id" : 4,
6195 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006196 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02006197 "line" : 162,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006198 "column" : 12,
Esin Karaman971fb7f2017-12-28 13:44:52 +00006199 "source_fragment" : "spgw_meta.do_spgw == false"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006200 },
6201 "expression" : {
6202 "type" : "expression",
6203 "value" : {
Carmelo Cascone228092b2018-06-15 20:41:10 +02006204 "op" : "==",
6205 "left" : {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006206 "type" : "expression",
6207 "value" : {
6208 "op" : "d2b",
6209 "left" : null,
6210 "right" : {
6211 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08006212 "value" : ["userMetadata.spgw", "do_spgw"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006213 }
6214 }
Carmelo Cascone228092b2018-06-15 20:41:10 +02006215 },
6216 "right" : {
6217 "type" : "bool",
Esin Karaman971fb7f2017-12-28 13:44:52 +00006218 "value" : false
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006219 }
6220 }
6221 },
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006222 "true_next" : "tbl_act_8",
6223 "false_next" : "node_19"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006224 },
6225 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006226 "name" : "node_19",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006227 "id" : 5,
6228 "expression" : {
6229 "type" : "expression",
6230 "value" : {
6231 "op" : "not",
6232 "left" : null,
6233 "right" : {
6234 "type" : "expression",
6235 "value" : {
6236 "op" : "d2b",
6237 "left" : null,
6238 "right" : {
6239 "type" : "field",
6240 "value" : ["scalars", "spgw_ingress_hasReturned_0"]
6241 }
6242 }
6243 }
6244 }
6245 },
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006246 "true_next" : "node_20",
Yi Tseng27b9bc02018-04-12 14:52:40 +08006247 "false_next" : "FabricIngress.filtering.ingress_port_vlan"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006248 },
6249 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006250 "name" : "node_20",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006251 "id" : 6,
6252 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006253 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02006254 "line" : 167,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006255 "column" : 12,
6256 "source_fragment" : "spgw_meta.direction == DIR_UPLINK"
6257 },
6258 "expression" : {
6259 "type" : "expression",
6260 "value" : {
6261 "op" : "==",
6262 "left" : {
6263 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08006264 "value" : ["userMetadata.spgw", "direction"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006265 },
6266 "right" : {
6267 "type" : "hexstr",
6268 "value" : "0x00"
6269 }
6270 }
6271 },
6272 "true_next" : "tbl_spgw_ingress_gtpu_decap",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006273 "false_next" : "node_22"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006274 },
6275 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006276 "name" : "node_22",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006277 "id" : 7,
6278 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006279 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02006280 "line" : 184,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006281 "column" : 12,
6282 "source_fragment" : "spgw_meta.direction == DIR_DOWNLINK"
6283 },
6284 "expression" : {
6285 "type" : "expression",
6286 "value" : {
6287 "op" : "==",
6288 "left" : {
6289 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08006290 "value" : ["userMetadata.spgw", "direction"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006291 },
6292 "right" : {
6293 "type" : "hexstr",
6294 "value" : "0x01"
6295 }
6296 }
6297 },
Yi Tseng27b9bc02018-04-12 14:52:40 +08006298 "true_next" : "FabricIngress.spgw_ingress.dl_sess_lookup",
6299 "false_next" : "tbl_act_11"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006300 },
6301 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006302 "name" : "node_26",
6303 "id" : 8,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006304 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006305 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02006306 "line" : 185,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006307 "column" : 16,
6308 "source_fragment" : "!dl_sess_lookup.apply().hit"
6309 },
6310 "expression" : {
6311 "type" : "expression",
6312 "value" : {
6313 "op" : "not",
6314 "left" : null,
6315 "right" : {
6316 "type" : "expression",
6317 "value" : {
6318 "op" : "d2b",
6319 "left" : null,
6320 "right" : {
6321 "type" : "field",
6322 "value" : ["scalars", "spgw_ingress_tmp_4"]
6323 }
6324 }
6325 }
6326 }
6327 },
Carmelo Casconea5400af2018-07-17 22:11:54 +02006328 "true_next" : "tbl_drop_now",
Yi Tseng27b9bc02018-04-12 14:52:40 +08006329 "false_next" : "FabricIngress.spgw_ingress.ue_cdr_table"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006330 },
6331 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08006332 "name" : "node_32",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006333 "id" : 9,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006334 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006335 "filename" : "include/control/forwarding.p4",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02006336 "line" : 231,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006337 "column" : 11,
6338 "source_fragment" : "fabric_metadata.fwd_type == FWD_BRIDGING"
6339 },
6340 "expression" : {
6341 "type" : "expression",
6342 "value" : {
6343 "op" : "==",
6344 "left" : {
6345 "type" : "field",
6346 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
6347 },
6348 "right" : {
6349 "type" : "hexstr",
6350 "value" : "0x00"
6351 }
6352 }
6353 },
Yi Tseng27b9bc02018-04-12 14:52:40 +08006354 "true_next" : "FabricIngress.forwarding.bridging",
6355 "false_next" : "node_34"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006356 },
6357 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08006358 "name" : "node_34",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006359 "id" : 10,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006360 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006361 "filename" : "include/control/forwarding.p4",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02006362 "line" : 232,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006363 "column" : 17,
6364 "source_fragment" : "fabric_metadata.fwd_type == FWD_MPLS"
6365 },
6366 "expression" : {
6367 "type" : "expression",
6368 "value" : {
6369 "op" : "==",
6370 "left" : {
6371 "type" : "field",
6372 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
6373 },
6374 "right" : {
6375 "type" : "hexstr",
6376 "value" : "0x01"
6377 }
6378 }
6379 },
Yi Tseng27b9bc02018-04-12 14:52:40 +08006380 "true_next" : "FabricIngress.forwarding.mpls",
6381 "false_next" : "node_37"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006382 },
6383 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08006384 "name" : "node_37",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006385 "id" : 11,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006386 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006387 "filename" : "include/control/forwarding.p4",
Yi Tseng8235a1a2018-07-24 20:57:28 +08006388 "line" : 246,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006389 "column" : 17,
6390 "source_fragment" : "fabric_metadata.fwd_type == FWD_IPV4_UNICAST"
6391 },
6392 "expression" : {
6393 "type" : "expression",
6394 "value" : {
6395 "op" : "==",
6396 "left" : {
6397 "type" : "field",
6398 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
6399 },
6400 "right" : {
6401 "type" : "hexstr",
6402 "value" : "0x02"
6403 }
6404 }
6405 },
Yi Tseng27b9bc02018-04-12 14:52:40 +08006406 "true_next" : "FabricIngress.forwarding.unicast_v4",
Yi Tseng27b9bc02018-04-12 14:52:40 +08006407 "false_next" : "FabricIngress.forwarding.acl"
6408 },
6409 {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02006410 "name" : "node_45",
Carmelo Casconea5400af2018-07-17 22:11:54 +02006411 "id" : 12,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006412 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006413 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08006414 "line" : 219,
Carmelo Casconea5400af2018-07-17 22:11:54 +02006415 "column" : 12,
6416 "source_fragment" : "!simple.apply().hit"
6417 },
6418 "expression" : {
6419 "type" : "expression",
6420 "value" : {
6421 "op" : "not",
6422 "left" : null,
6423 "right" : {
6424 "type" : "expression",
6425 "value" : {
6426 "op" : "d2b",
6427 "left" : null,
6428 "right" : {
6429 "type" : "field",
6430 "value" : ["scalars", "next_tmp_4"]
6431 }
6432 }
6433 }
6434 }
6435 },
6436 "true_next" : "FabricIngress.next.hashed",
6437 "false_next" : "node_55"
6438 },
6439 {
6440 "name" : "node_49",
6441 "id" : 13,
6442 "source_info" : {
6443 "filename" : "include/control/next.p4",
6444 "line" : 220,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006445 "column" : 16,
Carmelo Casconea5400af2018-07-17 22:11:54 +02006446 "source_fragment" : "!hashed.apply().hit"
6447 },
6448 "expression" : {
6449 "type" : "expression",
6450 "value" : {
6451 "op" : "not",
6452 "left" : null,
6453 "right" : {
6454 "type" : "expression",
6455 "value" : {
6456 "op" : "d2b",
6457 "left" : null,
6458 "right" : {
6459 "type" : "field",
6460 "value" : ["scalars", "next_tmp_3"]
6461 }
6462 }
6463 }
6464 }
6465 },
6466 "true_next" : "FabricIngress.next.multicast",
6467 "false_next" : "node_55"
6468 },
6469 {
6470 "name" : "node_53",
6471 "id" : 14,
6472 "source_info" : {
6473 "filename" : "include/control/next.p4",
6474 "line" : 221,
6475 "column" : 20,
6476 "source_fragment" : "!multicast.apply().hit"
6477 },
6478 "expression" : {
6479 "type" : "expression",
6480 "value" : {
6481 "op" : "not",
6482 "left" : null,
6483 "right" : {
6484 "type" : "expression",
6485 "value" : {
6486 "op" : "d2b",
6487 "left" : null,
6488 "right" : {
6489 "type" : "field",
6490 "value" : ["scalars", "next_tmp_2"]
6491 }
6492 }
6493 }
6494 }
6495 },
6496 "true_next" : "tbl_act_20",
6497 "false_next" : "node_55"
6498 },
6499 {
6500 "name" : "node_55",
6501 "id" : 15,
6502 "expression" : {
6503 "type" : "expression",
6504 "value" : {
6505 "op" : "not",
6506 "left" : null,
6507 "right" : {
6508 "type" : "expression",
6509 "value" : {
6510 "op" : "d2b",
6511 "left" : null,
6512 "right" : {
6513 "type" : "field",
6514 "value" : ["scalars", "next_hasReturned_0"]
6515 }
6516 }
6517 }
6518 }
6519 },
6520 "true_next" : "node_56",
6521 "false_next" : "node_59"
6522 },
6523 {
6524 "name" : "node_56",
6525 "id" : 16,
6526 "source_info" : {
6527 "filename" : "include/control/next.p4",
6528 "line" : 228,
6529 "column" : 12,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006530 "source_fragment" : "!hdr.mpls.isValid()"
6531 },
6532 "expression" : {
6533 "type" : "expression",
6534 "value" : {
6535 "op" : "not",
6536 "left" : null,
6537 "right" : {
6538 "type" : "expression",
6539 "value" : {
6540 "op" : "d2b",
6541 "left" : null,
6542 "right" : {
6543 "type" : "field",
6544 "value" : ["mpls", "$valid$"]
6545 }
6546 }
6547 }
6548 }
6549 },
Carmelo Casconea5400af2018-07-17 22:11:54 +02006550 "true_next" : "node_57",
6551 "false_next" : "node_59"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006552 },
6553 {
Carmelo Casconea5400af2018-07-17 22:11:54 +02006554 "name" : "node_57",
6555 "id" : 17,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006556 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006557 "filename" : "include/control/next.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02006558 "line" : 229,
6559 "column" : 15,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006560 "source_fragment" : "hdr.ipv4.isValid()"
6561 },
6562 "expression" : {
6563 "type" : "expression",
6564 "value" : {
6565 "op" : "d2b",
6566 "left" : null,
6567 "right" : {
6568 "type" : "field",
6569 "value" : ["ipv4", "$valid$"]
6570 }
6571 }
6572 },
Carmelo Casconea5400af2018-07-17 22:11:54 +02006573 "true_next" : "tbl_act_21",
6574 "false_next" : "node_59"
Yi Tseng27b9bc02018-04-12 14:52:40 +08006575 },
6576 {
Carmelo Casconea5400af2018-07-17 22:11:54 +02006577 "name" : "node_59",
6578 "id" : 18,
Yi Tseng27b9bc02018-04-12 14:52:40 +08006579 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006580 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006581 "line" : 27,
6582 "column" : 12,
6583 "source_fragment" : "standard_metadata.egress_spec < 511"
6584 },
6585 "expression" : {
6586 "type" : "expression",
6587 "value" : {
6588 "op" : "<",
6589 "left" : {
6590 "type" : "field",
6591 "value" : ["standard_metadata", "egress_spec"]
6592 },
6593 "right" : {
6594 "type" : "hexstr",
6595 "value" : "0x01ff"
6596 }
6597 }
6598 },
Carmelo Casconea5400af2018-07-17 22:11:54 +02006599 "true_next" : "tbl_act_22",
6600 "false_next" : "node_61"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006601 },
6602 {
Carmelo Casconea5400af2018-07-17 22:11:54 +02006603 "name" : "node_61",
6604 "id" : 19,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006605 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006606 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006607 "line" : 30,
6608 "column" : 12,
6609 "source_fragment" : "standard_metadata.ingress_port < 511"
6610 },
6611 "expression" : {
6612 "type" : "expression",
6613 "value" : {
6614 "op" : "<",
6615 "left" : {
6616 "type" : "field",
6617 "value" : ["standard_metadata", "ingress_port"]
6618 },
6619 "right" : {
6620 "type" : "hexstr",
6621 "value" : "0x01ff"
6622 }
6623 }
6624 },
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006625 "false_next" : null,
Carmelo Casconea5400af2018-07-17 22:11:54 +02006626 "true_next" : "tbl_act_23"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006627 }
6628 ]
6629 },
6630 {
6631 "name" : "egress",
6632 "id" : 1,
6633 "source_info" : {
6634 "filename" : "fabric.p4",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09006635 "line" : 76,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006636 "column" : 8,
6637 "source_fragment" : "FabricEgress"
6638 },
Carmelo Casconea5400af2018-07-17 22:11:54 +02006639 "init_table" : "node_65",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006640 "tables" : [
6641 {
Carmelo Casconea5400af2018-07-17 22:11:54 +02006642 "name" : "tbl_drop_now_0",
6643 "id" : 41,
6644 "key" : [],
6645 "match_type" : "exact",
6646 "type" : "simple",
6647 "max_size" : 1024,
6648 "with_counters" : false,
6649 "support_timeout" : false,
6650 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02006651 "action_ids" : [65],
Carmelo Casconea5400af2018-07-17 22:11:54 +02006652 "actions" : ["drop_now"],
6653 "base_default_next" : "FabricEgress.egress_next.egress_vlan",
6654 "next_tables" : {
6655 "drop_now" : "FabricEgress.egress_next.egress_vlan"
6656 },
6657 "default_entry" : {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02006658 "action_id" : 65,
Carmelo Casconea5400af2018-07-17 22:11:54 +02006659 "action_const" : true,
6660 "action_data" : [],
6661 "action_entry_const" : true
6662 }
6663 },
6664 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006665 "name" : "FabricEgress.egress_next.egress_vlan",
Carmelo Casconea5400af2018-07-17 22:11:54 +02006666 "id" : 42,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006667 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006668 "filename" : "include/control/next.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02006669 "line" : 258,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006670 "column" : 10,
6671 "source_fragment" : "egress_vlan"
6672 },
6673 "key" : [
6674 {
6675 "match_type" : "exact",
6676 "name" : "hdr.vlan_tag.vlan_id",
6677 "target" : ["vlan_tag", "vlan_id"],
6678 "mask" : null
6679 },
6680 {
6681 "match_type" : "exact",
6682 "name" : "standard_metadata.egress_port",
6683 "target" : ["standard_metadata", "egress_port"],
6684 "mask" : null
6685 }
6686 ],
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08006687 "match_type" : "exact",
6688 "type" : "simple",
6689 "max_size" : 1024,
Yi Tseng47eac892018-07-11 02:17:04 +08006690 "with_counters" : true,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08006691 "support_timeout" : false,
6692 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02006693 "action_ids" : [69, 64],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006694 "actions" : ["FabricEgress.egress_next.pop_vlan", "nop"],
Carmelo Casconea5400af2018-07-17 22:11:54 +02006695 "base_default_next" : "node_68",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08006696 "next_tables" : {
Carmelo Casconea5400af2018-07-17 22:11:54 +02006697 "FabricEgress.egress_next.pop_vlan" : "node_68",
6698 "nop" : "node_68"
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08006699 },
6700 "default_entry" : {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02006701 "action_id" : 64,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006702 "action_const" : false,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08006703 "action_data" : [],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006704 "action_entry_const" : false
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08006705 }
6706 },
6707 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006708 "name" : "tbl_pkt_io_egress_pop_vlan",
Carmelo Casconea5400af2018-07-17 22:11:54 +02006709 "id" : 43,
Carmelo Cascone6af4e172018-06-15 16:01:30 +02006710 "key" : [],
6711 "match_type" : "exact",
6712 "type" : "simple",
6713 "max_size" : 1024,
6714 "with_counters" : false,
6715 "support_timeout" : false,
6716 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02006717 "action_ids" : [68],
Esin Karaman971fb7f2017-12-28 13:44:52 +00006718 "actions" : ["FabricEgress.pkt_io_egress.pop_vlan"],
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02006719 "base_default_next" : "node_71",
6720 "next_tables" : {
6721 "FabricEgress.pkt_io_egress.pop_vlan" : "node_71"
6722 },
6723 "default_entry" : {
6724 "action_id" : 68,
6725 "action_const" : true,
6726 "action_data" : [],
6727 "action_entry_const" : true
6728 }
6729 },
6730 {
6731 "name" : "tbl_drop_now_1",
6732 "id" : 44,
6733 "key" : [],
6734 "match_type" : "exact",
6735 "type" : "simple",
6736 "max_size" : 1024,
6737 "with_counters" : false,
6738 "support_timeout" : false,
6739 "direct_meters" : null,
6740 "action_ids" : [66],
6741 "actions" : ["drop_now"],
Carmelo Casconea5400af2018-07-17 22:11:54 +02006742 "base_default_next" : "tbl_act_24",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02006743 "next_tables" : {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02006744 "drop_now" : "tbl_act_24"
Carmelo Cascone6af4e172018-06-15 16:01:30 +02006745 },
6746 "default_entry" : {
Carmelo Casconea5400af2018-07-17 22:11:54 +02006747 "action_id" : 66,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08006748 "action_const" : true,
6749 "action_data" : [],
6750 "action_entry_const" : true
6751 }
6752 },
6753 {
Carmelo Casconea5400af2018-07-17 22:11:54 +02006754 "name" : "tbl_act_24",
Carmelo Casconea5400af2018-07-17 22:11:54 +02006755 "id" : 45,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006756 "key" : [],
6757 "match_type" : "exact",
6758 "type" : "simple",
6759 "max_size" : 1024,
6760 "with_counters" : false,
6761 "support_timeout" : false,
6762 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02006763 "action_ids" : [70],
6764 "actions" : ["act_24"],
6765 "base_default_next" : "tbl_act_25",
Esin Karaman971fb7f2017-12-28 13:44:52 +00006766 "next_tables" : {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02006767 "act_24" : "tbl_act_25"
Esin Karaman971fb7f2017-12-28 13:44:52 +00006768 },
6769 "default_entry" : {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02006770 "action_id" : 70,
Esin Karaman971fb7f2017-12-28 13:44:52 +00006771 "action_const" : true,
6772 "action_data" : [],
6773 "action_entry_const" : true
6774 }
6775 },
6776 {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02006777 "name" : "tbl_act_25",
Carmelo Casconea5400af2018-07-17 22:11:54 +02006778 "id" : 46,
Esin Karaman971fb7f2017-12-28 13:44:52 +00006779 "key" : [],
6780 "match_type" : "exact",
6781 "type" : "simple",
6782 "max_size" : 1024,
6783 "with_counters" : false,
6784 "support_timeout" : false,
6785 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02006786 "action_ids" : [71],
6787 "actions" : ["act_25"],
6788 "base_default_next" : "node_75",
6789 "next_tables" : {
6790 "act_25" : "node_75"
6791 },
6792 "default_entry" : {
6793 "action_id" : 71,
6794 "action_const" : true,
6795 "action_data" : [],
6796 "action_entry_const" : true
6797 }
6798 },
6799 {
6800 "name" : "tbl_spgw_egress_gtpu_encap",
6801 "id" : 47,
6802 "key" : [],
6803 "match_type" : "exact",
6804 "type" : "simple",
6805 "max_size" : 1024,
6806 "with_counters" : false,
6807 "support_timeout" : false,
6808 "direct_meters" : null,
6809 "action_ids" : [67],
Yi Tseng27b9bc02018-04-12 14:52:40 +08006810 "actions" : ["FabricEgress.spgw_egress.gtpu_encap"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006811 "base_default_next" : null,
6812 "next_tables" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08006813 "FabricEgress.spgw_egress.gtpu_encap" : null
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006814 },
6815 "default_entry" : {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02006816 "action_id" : 67,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006817 "action_const" : true,
6818 "action_data" : [],
6819 "action_entry_const" : true
6820 }
6821 }
6822 ],
6823 "action_profiles" : [],
6824 "conditionals" : [
6825 {
Carmelo Casconea5400af2018-07-17 22:11:54 +02006826 "name" : "node_65",
6827 "id" : 20,
6828 "source_info" : {
6829 "filename" : "include/control/next.p4",
6830 "line" : 272,
6831 "column" : 12,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02006832 "source_fragment" : "fabric_metadata.is_multicast == true ..."
Carmelo Casconea5400af2018-07-17 22:11:54 +02006833 },
6834 "expression" : {
6835 "type" : "expression",
6836 "value" : {
6837 "op" : "and",
6838 "left" : {
6839 "type" : "expression",
6840 "value" : {
6841 "op" : "==",
6842 "left" : {
6843 "type" : "expression",
6844 "value" : {
6845 "op" : "d2b",
6846 "left" : null,
6847 "right" : {
6848 "type" : "field",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02006849 "value" : ["scalars", "fabric_metadata_t.is_multicast"]
Carmelo Casconea5400af2018-07-17 22:11:54 +02006850 }
6851 }
6852 },
6853 "right" : {
6854 "type" : "bool",
6855 "value" : true
6856 }
6857 }
6858 },
6859 "right" : {
6860 "type" : "expression",
6861 "value" : {
6862 "op" : "==",
6863 "left" : {
6864 "type" : "field",
6865 "value" : ["standard_metadata", "ingress_port"]
6866 },
6867 "right" : {
6868 "type" : "field",
6869 "value" : ["standard_metadata", "egress_port"]
6870 }
6871 }
6872 }
6873 }
6874 },
6875 "true_next" : "tbl_drop_now_0",
6876 "false_next" : "FabricEgress.egress_next.egress_vlan"
6877 },
6878 {
6879 "name" : "node_68",
6880 "id" : 21,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006881 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006882 "filename" : "include/control/packetio.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006883 "line" : 42,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006884 "column" : 12,
Carmelo Casconeb531b682018-01-30 17:55:56 -08006885 "source_fragment" : "standard_metadata.egress_port == 255"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006886 },
6887 "expression" : {
6888 "type" : "expression",
6889 "value" : {
6890 "op" : "==",
6891 "left" : {
6892 "type" : "field",
6893 "value" : ["standard_metadata", "egress_port"]
6894 },
6895 "right" : {
6896 "type" : "hexstr",
6897 "value" : "0x00ff"
6898 }
6899 }
6900 },
Carmelo Casconea5400af2018-07-17 22:11:54 +02006901 "true_next" : "node_69",
6902 "false_next" : "tbl_act_25"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006903 },
6904 {
Carmelo Casconea5400af2018-07-17 22:11:54 +02006905 "name" : "node_69",
6906 "id" : 22,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006907 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006908 "filename" : "include/control/packetio.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006909 "line" : 43,
6910 "column" : 16,
Carmelo Cascone228092b2018-06-15 20:41:10 +02006911 "source_fragment" : "hdr.vlan_tag.isValid() && fabric_metadata.pop_vlan_when_packet_in == true"
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006912 },
6913 "expression" : {
6914 "type" : "expression",
6915 "value" : {
6916 "op" : "and",
6917 "left" : {
6918 "type" : "expression",
6919 "value" : {
6920 "op" : "d2b",
6921 "left" : null,
6922 "right" : {
6923 "type" : "field",
6924 "value" : ["vlan_tag", "$valid$"]
6925 }
6926 }
6927 },
6928 "right" : {
6929 "type" : "expression",
6930 "value" : {
Carmelo Cascone228092b2018-06-15 20:41:10 +02006931 "op" : "==",
6932 "left" : {
6933 "type" : "expression",
6934 "value" : {
6935 "op" : "d2b",
6936 "left" : null,
6937 "right" : {
6938 "type" : "field",
6939 "value" : ["scalars", "fabric_metadata_t.pop_vlan_when_packet_in"]
6940 }
6941 }
6942 },
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006943 "right" : {
Carmelo Cascone228092b2018-06-15 20:41:10 +02006944 "type" : "bool",
6945 "value" : true
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006946 }
6947 }
6948 }
6949 }
6950 },
6951 "true_next" : "tbl_pkt_io_egress_pop_vlan",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02006952 "false_next" : "node_71"
6953 },
6954 {
6955 "name" : "node_71",
6956 "id" : 23,
6957 "source_info" : {
6958 "filename" : "include/control/packetio.p4",
6959 "line" : 46,
6960 "column" : 16,
6961 "source_fragment" : "fabric_metadata.is_multicast == true && ..."
6962 },
6963 "expression" : {
6964 "type" : "expression",
6965 "value" : {
6966 "op" : "and",
6967 "left" : {
6968 "type" : "expression",
6969 "value" : {
6970 "op" : "==",
6971 "left" : {
6972 "type" : "expression",
6973 "value" : {
6974 "op" : "d2b",
6975 "left" : null,
6976 "right" : {
6977 "type" : "field",
6978 "value" : ["scalars", "fabric_metadata_t.is_multicast"]
6979 }
6980 }
6981 },
6982 "right" : {
6983 "type" : "bool",
6984 "value" : true
6985 }
6986 }
6987 },
6988 "right" : {
6989 "type" : "expression",
6990 "value" : {
6991 "op" : "==",
6992 "left" : {
6993 "type" : "expression",
6994 "value" : {
6995 "op" : "d2b",
6996 "left" : null,
6997 "right" : {
6998 "type" : "field",
6999 "value" : ["scalars", "fabric_metadata_t.clone_to_cpu"]
7000 }
7001 }
7002 },
7003 "right" : {
7004 "type" : "bool",
7005 "value" : false
7006 }
7007 }
7008 }
7009 }
7010 },
7011 "true_next" : "tbl_drop_now_1",
Carmelo Casconea5400af2018-07-17 22:11:54 +02007012 "false_next" : "tbl_act_24"
Yi Tseng20f9e7b2018-05-24 23:27:39 +08007013 },
7014 {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02007015 "name" : "node_75",
7016 "id" : 24,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007017 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02007018 "filename" : "include/spgw.p4",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09007019 "line" : 245,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007020 "column" : 12,
Carmelo Cascone228092b2018-06-15 20:41:10 +02007021 "source_fragment" : "spgw_meta.do_spgw == true && spgw_meta.direction == DIR_DOWNLINK"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007022 },
7023 "expression" : {
7024 "type" : "expression",
7025 "value" : {
7026 "op" : "and",
7027 "left" : {
7028 "type" : "expression",
7029 "value" : {
Carmelo Cascone228092b2018-06-15 20:41:10 +02007030 "op" : "==",
7031 "left" : {
7032 "type" : "expression",
7033 "value" : {
7034 "op" : "d2b",
7035 "left" : null,
7036 "right" : {
7037 "type" : "field",
7038 "value" : ["userMetadata.spgw", "do_spgw"]
7039 }
7040 }
7041 },
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007042 "right" : {
Carmelo Cascone228092b2018-06-15 20:41:10 +02007043 "type" : "bool",
7044 "value" : true
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007045 }
7046 }
7047 },
7048 "right" : {
7049 "type" : "expression",
7050 "value" : {
7051 "op" : "==",
7052 "left" : {
7053 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08007054 "value" : ["userMetadata.spgw", "direction"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007055 },
7056 "right" : {
7057 "type" : "hexstr",
7058 "value" : "0x01"
7059 }
7060 }
7061 }
7062 }
7063 },
7064 "false_next" : null,
7065 "true_next" : "tbl_spgw_egress_gtpu_encap"
7066 }
7067 ]
7068 }
7069 ],
7070 "checksums" : [
7071 {
7072 "name" : "cksum",
7073 "id" : 0,
7074 "target" : ["ipv4", "hdr_checksum"],
7075 "type" : "generic",
7076 "calculation" : "calc",
7077 "if_cond" : {
7078 "type" : "expression",
7079 "value" : {
7080 "op" : "d2b",
7081 "left" : null,
7082 "right" : {
7083 "type" : "field",
7084 "value" : ["ipv4", "$valid$"]
7085 }
7086 }
7087 }
7088 },
7089 {
7090 "name" : "cksum_0",
7091 "id" : 1,
Carmelo Cascone6af4e172018-06-15 16:01:30 +02007092 "target" : ["gtpu_ipv4", "hdr_checksum"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007093 "type" : "generic",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08007094 "calculation" : "calc_0",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007095 "if_cond" : {
7096 "type" : "expression",
7097 "value" : {
7098 "op" : "d2b",
7099 "left" : null,
7100 "right" : {
7101 "type" : "field",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02007102 "value" : ["gtpu_ipv4", "$valid$"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007103 }
7104 }
7105 }
7106 },
7107 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08007108 "name" : "cksum_1",
7109 "id" : 2,
Carmelo Cascone6af4e172018-06-15 16:01:30 +02007110 "target" : ["ipv4", "hdr_checksum"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007111 "type" : "generic",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08007112 "calculation" : "calc_1",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007113 "if_cond" : {
7114 "type" : "expression",
7115 "value" : {
7116 "op" : "d2b",
7117 "left" : null,
7118 "right" : {
7119 "type" : "field",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02007120 "value" : ["ipv4", "$valid$"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007121 }
7122 }
7123 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007124 }
7125 ],
7126 "force_arith" : [],
7127 "extern_instances" : [],
7128 "field_aliases" : [
7129 [
7130 "queueing_metadata.enq_timestamp",
7131 ["standard_metadata", "enq_timestamp"]
7132 ],
7133 [
7134 "queueing_metadata.enq_qdepth",
7135 ["standard_metadata", "enq_qdepth"]
7136 ],
7137 [
7138 "queueing_metadata.deq_timedelta",
7139 ["standard_metadata", "deq_timedelta"]
7140 ],
7141 [
7142 "queueing_metadata.deq_qdepth",
7143 ["standard_metadata", "deq_qdepth"]
7144 ],
7145 [
7146 "intrinsic_metadata.ingress_global_timestamp",
7147 ["standard_metadata", "ingress_global_timestamp"]
7148 ],
7149 [
Yi Tseng27b9bc02018-04-12 14:52:40 +08007150 "intrinsic_metadata.egress_global_timestamp",
7151 ["standard_metadata", "egress_global_timestamp"]
7152 ],
7153 [
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007154 "intrinsic_metadata.lf_field_list",
7155 ["standard_metadata", "lf_field_list"]
7156 ],
7157 [
7158 "intrinsic_metadata.mcast_grp",
7159 ["standard_metadata", "mcast_grp"]
7160 ],
7161 [
7162 "intrinsic_metadata.resubmit_flag",
7163 ["standard_metadata", "resubmit_flag"]
7164 ],
7165 [
7166 "intrinsic_metadata.egress_rid",
7167 ["standard_metadata", "egress_rid"]
Yi Tseng27b9bc02018-04-12 14:52:40 +08007168 ],
7169 [
7170 "intrinsic_metadata.recirculate_flag",
7171 ["standard_metadata", "recirculate_flag"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007172 ]
Carmelo Cascone6af4e172018-06-15 16:01:30 +02007173 ],
7174 "program" : "fabric.p4",
7175 "__meta__" : {
7176 "version" : [2, 18],
7177 "compiler" : "https://github.com/p4lang/p4c"
7178 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007179}