blob: 14fa6ca2b8c15a4e857235e79ba74f4f1dfd11d2 [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],
26 ["fabric_metadata_t.original_ether_type", 16, false],
Carmelo Cascone1e8843f2018-07-19 19:01:12 +020027 ["_padding_1", 6, false]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -080028 ]
29 },
30 {
Carmelo Cascone6af4e172018-06-15 16:01:30 +020031 "name" : "standard_metadata",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -080032 "id" : 1,
33 "fields" : [
Carmelo Cascone6af4e172018-06-15 16:01:30 +020034 ["ingress_port", 9, false],
35 ["egress_spec", 9, false],
36 ["egress_port", 9, false],
37 ["clone_spec", 32, false],
38 ["instance_type", 32, false],
39 ["drop", 1, false],
40 ["recirculate_port", 16, false],
41 ["packet_length", 32, false],
42 ["enq_timestamp", 32, false],
43 ["enq_qdepth", 19, false],
44 ["deq_timedelta", 32, false],
45 ["deq_qdepth", 19, false],
46 ["ingress_global_timestamp", 48, false],
47 ["egress_global_timestamp", 48, false],
48 ["lf_field_list", 32, false],
49 ["mcast_grp", 16, false],
50 ["resubmit_flag", 32, false],
51 ["egress_rid", 16, false],
52 ["checksum_error", 1, false],
53 ["recirculate_flag", 32, false],
54 ["_padding", 5, false]
55 ]
56 },
57 {
58 "name" : "ethernet_t",
59 "id" : 2,
60 "fields" : [
Carmelo Casconeb81f4be2018-01-16 23:24:01 -080061 ["dst_addr", 48, false],
62 ["src_addr", 48, false],
63 ["ether_type", 16, false]
64 ]
65 },
66 {
67 "name" : "vlan_tag_t",
Carmelo Cascone6af4e172018-06-15 16:01:30 +020068 "id" : 3,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -080069 "fields" : [
70 ["pri", 3, false],
71 ["cfi", 1, false],
72 ["vlan_id", 12, false],
73 ["ether_type", 16, false]
74 ]
75 },
76 {
77 "name" : "mpls_t",
Carmelo Cascone6af4e172018-06-15 16:01:30 +020078 "id" : 4,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -080079 "fields" : [
80 ["label", 20, false],
81 ["tc", 3, false],
82 ["bos", 1, false],
83 ["ttl", 8, false]
84 ]
85 },
86 {
87 "name" : "ipv4_t",
Carmelo Cascone6af4e172018-06-15 16:01:30 +020088 "id" : 5,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -080089 "fields" : [
90 ["version", 4, false],
91 ["ihl", 4, false],
92 ["diffserv", 8, false],
93 ["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"
385 },
386 {
387 "parameters" : [
388 {
389 "type" : "field",
390 "value" : ["scalars", "fabric_metadata_t.original_ether_type"]
391 },
392 {
393 "type" : "field",
394 "value" : ["ethernet", "ether_type"]
395 }
396 ],
397 "op" : "set"
398 }
399 ],
400 "transitions" : [
401 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800402 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800403 "value" : "0x8100",
404 "mask" : null,
405 "next_state" : "parse_vlan_tag"
406 },
407 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800408 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800409 "value" : "0x8847",
410 "mask" : null,
411 "next_state" : "parse_mpls"
412 },
413 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800414 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800415 "value" : "0x0806",
416 "mask" : null,
417 "next_state" : "parse_arp"
418 },
419 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800420 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800421 "value" : "0x0800",
422 "mask" : null,
423 "next_state" : "parse_ipv4"
424 },
425 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800426 "value" : "default",
427 "mask" : null,
428 "next_state" : null
429 }
430 ],
431 "transition_key" : [
432 {
433 "type" : "field",
434 "value" : ["ethernet", "ether_type"]
435 }
436 ]
437 },
438 {
439 "name" : "parse_vlan_tag",
440 "id" : 3,
441 "parser_ops" : [
442 {
443 "parameters" : [
444 {
445 "type" : "regular",
446 "value" : "vlan_tag"
447 }
448 ],
449 "op" : "extract"
Yi Tseng20f9e7b2018-05-24 23:27:39 +0800450 },
451 {
452 "parameters" : [
453 {
454 "type" : "field",
455 "value" : ["scalars", "fabric_metadata_t.original_ether_type"]
456 },
457 {
458 "type" : "field",
459 "value" : ["vlan_tag", "ether_type"]
460 }
461 ],
462 "op" : "set"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800463 }
464 ],
465 "transitions" : [
466 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800467 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800468 "value" : "0x0806",
469 "mask" : null,
470 "next_state" : "parse_arp"
471 },
472 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800473 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800474 "value" : "0x0800",
475 "mask" : null,
476 "next_state" : "parse_ipv4"
477 },
478 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800479 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800480 "value" : "0x8847",
481 "mask" : null,
482 "next_state" : "parse_mpls"
483 },
484 {
485 "value" : "default",
486 "mask" : null,
487 "next_state" : null
488 }
489 ],
490 "transition_key" : [
491 {
492 "type" : "field",
493 "value" : ["vlan_tag", "ether_type"]
494 }
495 ]
496 },
497 {
498 "name" : "parse_mpls",
499 "id" : 4,
500 "parser_ops" : [
501 {
502 "parameters" : [
503 {
504 "type" : "regular",
505 "value" : "mpls"
506 }
507 ],
508 "op" : "extract"
509 },
510 {
511 "parameters" : [
512 {
513 "type" : "field",
514 "value" : ["scalars", "tmp"]
515 },
516 {
517 "type" : "lookahead",
518 "value" : [0, 4]
519 }
520 ],
521 "op" : "set"
522 }
523 ],
524 "transitions" : [
525 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800526 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800527 "value" : "0x04",
528 "mask" : null,
529 "next_state" : "parse_ipv4"
530 },
531 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800532 "value" : "default",
533 "mask" : null,
534 "next_state" : "parse_ethernet"
535 }
536 ],
537 "transition_key" : [
538 {
539 "type" : "field",
540 "value" : ["scalars", "tmp"]
541 }
542 ]
543 },
544 {
545 "name" : "parse_ipv4",
546 "id" : 5,
547 "parser_ops" : [
548 {
549 "parameters" : [
550 {
551 "type" : "regular",
552 "value" : "ipv4"
553 }
554 ],
555 "op" : "extract"
556 },
557 {
558 "parameters" : [
559 {
560 "type" : "field",
561 "value" : ["scalars", "fabric_metadata_t.ip_proto"]
562 },
563 {
564 "type" : "field",
565 "value" : ["ipv4", "protocol"]
566 }
567 ],
568 "op" : "set"
569 }
570 ],
571 "transitions" : [
572 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800573 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800574 "value" : "0x06",
575 "mask" : null,
576 "next_state" : "parse_tcp"
577 },
578 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800579 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800580 "value" : "0x11",
581 "mask" : null,
582 "next_state" : "parse_udp"
583 },
584 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800585 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800586 "value" : "0x01",
587 "mask" : null,
588 "next_state" : "parse_icmp"
589 },
590 {
591 "value" : "default",
592 "mask" : null,
593 "next_state" : null
594 }
595 ],
596 "transition_key" : [
597 {
598 "type" : "field",
599 "value" : ["ipv4", "protocol"]
600 }
601 ]
602 },
603 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800604 "name" : "parse_arp",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200605 "id" : 6,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800606 "parser_ops" : [
607 {
608 "parameters" : [
609 {
610 "type" : "regular",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800611 "value" : "arp"
612 }
613 ],
614 "op" : "extract"
615 }
616 ],
617 "transitions" : [
618 {
619 "value" : "default",
620 "mask" : null,
621 "next_state" : null
622 }
623 ],
624 "transition_key" : []
625 },
626 {
627 "name" : "parse_tcp",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200628 "id" : 7,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800629 "parser_ops" : [
630 {
631 "parameters" : [
632 {
633 "type" : "regular",
634 "value" : "tcp"
635 }
636 ],
637 "op" : "extract"
638 },
639 {
640 "parameters" : [
641 {
642 "type" : "field",
643 "value" : ["scalars", "fabric_metadata_t.l4_src_port"]
644 },
645 {
646 "type" : "field",
647 "value" : ["tcp", "src_port"]
648 }
649 ],
650 "op" : "set"
651 },
652 {
653 "parameters" : [
654 {
655 "type" : "field",
656 "value" : ["scalars", "fabric_metadata_t.l4_dst_port"]
657 },
658 {
659 "type" : "field",
660 "value" : ["tcp", "dst_port"]
661 }
662 ],
663 "op" : "set"
664 }
665 ],
666 "transitions" : [
667 {
668 "value" : "default",
669 "mask" : null,
670 "next_state" : null
671 }
672 ],
673 "transition_key" : []
674 },
675 {
676 "name" : "parse_udp",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200677 "id" : 8,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800678 "parser_ops" : [
679 {
680 "parameters" : [
681 {
682 "type" : "regular",
683 "value" : "udp"
684 }
685 ],
686 "op" : "extract"
687 },
688 {
689 "parameters" : [
690 {
691 "type" : "field",
692 "value" : ["scalars", "fabric_metadata_t.l4_src_port"]
693 },
694 {
695 "type" : "field",
696 "value" : ["udp", "src_port"]
697 }
698 ],
699 "op" : "set"
700 },
701 {
702 "parameters" : [
703 {
704 "type" : "field",
705 "value" : ["scalars", "fabric_metadata_t.l4_dst_port"]
706 },
707 {
708 "type" : "field",
709 "value" : ["udp", "dst_port"]
710 }
711 ],
712 "op" : "set"
713 }
714 ],
715 "transitions" : [
716 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800717 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800718 "value" : "0x0868",
719 "mask" : null,
720 "next_state" : "parse_gtpu"
721 },
722 {
723 "value" : "default",
724 "mask" : null,
725 "next_state" : null
726 }
727 ],
728 "transition_key" : [
729 {
730 "type" : "field",
731 "value" : ["udp", "dst_port"]
732 }
733 ]
734 },
735 {
736 "name" : "parse_icmp",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200737 "id" : 9,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800738 "parser_ops" : [
739 {
740 "parameters" : [
741 {
742 "type" : "regular",
743 "value" : "icmp"
744 }
745 ],
746 "op" : "extract"
747 }
748 ],
749 "transitions" : [
750 {
751 "value" : "default",
752 "mask" : null,
753 "next_state" : null
754 }
755 ],
756 "transition_key" : []
757 },
758 {
759 "name" : "parse_gtpu",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200760 "id" : 10,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800761 "parser_ops" : [
762 {
763 "parameters" : [
764 {
765 "type" : "regular",
766 "value" : "gtpu"
767 }
768 ],
769 "op" : "extract"
770 },
771 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800772 "parameters" : [
773 {
774 "type" : "regular",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -0800775 "value" : "gtpu_ipv4"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800776 }
777 ],
778 "op" : "extract"
779 }
780 ],
781 "transitions" : [
782 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800783 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800784 "value" : "0x06",
785 "mask" : null,
786 "next_state" : "parse_tcp"
787 },
788 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800789 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800790 "value" : "0x11",
791 "mask" : null,
792 "next_state" : "parse_udp_inner"
793 },
794 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800795 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800796 "value" : "0x01",
797 "mask" : null,
798 "next_state" : "parse_icmp"
799 },
800 {
801 "value" : "default",
802 "mask" : null,
803 "next_state" : null
804 }
805 ],
806 "transition_key" : [
807 {
808 "type" : "field",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -0800809 "value" : ["gtpu_ipv4", "protocol"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800810 }
811 ]
812 },
813 {
814 "name" : "parse_udp_inner",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200815 "id" : 11,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800816 "parser_ops" : [
817 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800818 "parameters" : [
819 {
820 "type" : "regular",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -0800821 "value" : "gtpu_udp"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800822 }
823 ],
824 "op" : "extract"
825 },
826 {
827 "parameters" : [
828 {
829 "type" : "field",
830 "value" : ["scalars", "fabric_metadata_t.l4_src_port"]
831 },
832 {
833 "type" : "field",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -0800834 "value" : ["gtpu_udp", "src_port"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800835 }
836 ],
837 "op" : "set"
838 },
839 {
840 "parameters" : [
841 {
842 "type" : "field",
843 "value" : ["scalars", "fabric_metadata_t.l4_dst_port"]
844 },
845 {
846 "type" : "field",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -0800847 "value" : ["gtpu_udp", "dst_port"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800848 }
849 ],
850 "op" : "set"
851 }
852 ],
853 "transitions" : [
854 {
855 "value" : "default",
856 "mask" : null,
857 "next_state" : null
858 }
859 ],
860 "transition_key" : []
861 }
862 ]
863 }
864 ],
Yi Tseng27b9bc02018-04-12 14:52:40 +0800865 "parse_vsets" : [],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800866 "deparsers" : [
867 {
868 "name" : "deparser",
869 "id" : 0,
870 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +0200871 "filename" : "include/parser.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +0800872 "line" : 165,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800873 "column" : 8,
874 "source_fragment" : "FabricDeparser"
875 },
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200876 "order" : ["packet_in", "ethernet", "vlan_tag", "mpls", "arp", "gtpu_ipv4", "gtpu_udp", "gtpu", "ipv4", "tcp", "udp", "icmp"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800877 }
878 ],
879 "meter_arrays" : [],
880 "counter_arrays" : [
881 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800882 "name" : "FabricIngress.spgw_ingress.ue_counter",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800883 "id" : 0,
884 "is_direct" : true,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800885 "binding" : "FabricIngress.spgw_ingress.ue_cdr_table"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800886 },
887 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800888 "name" : "FabricIngress.filtering.ingress_port_vlan_counter",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800889 "id" : 1,
890 "is_direct" : true,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800891 "binding" : "FabricIngress.filtering.ingress_port_vlan"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800892 },
893 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800894 "name" : "FabricIngress.filtering.fwd_classifier_counter",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800895 "id" : 2,
896 "is_direct" : true,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800897 "binding" : "FabricIngress.filtering.fwd_classifier"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800898 },
899 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800900 "name" : "FabricIngress.forwarding.bridging_counter",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800901 "id" : 3,
902 "is_direct" : true,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800903 "binding" : "FabricIngress.forwarding.bridging"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800904 },
905 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800906 "name" : "FabricIngress.forwarding.mpls_counter",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800907 "id" : 4,
908 "is_direct" : true,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800909 "binding" : "FabricIngress.forwarding.mpls"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800910 },
911 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800912 "name" : "FabricIngress.forwarding.unicast_v4_counter",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800913 "id" : 5,
914 "is_direct" : true,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800915 "binding" : "FabricIngress.forwarding.unicast_v4"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800916 },
917 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800918 "name" : "FabricIngress.forwarding.acl_counter",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -0800919 "id" : 6,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800920 "is_direct" : true,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800921 "binding" : "FabricIngress.forwarding.acl"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800922 },
923 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +0800924 "name" : "FabricIngress.next.vlan_meta_counter",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200925 "id" : 7,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800926 "is_direct" : true,
Yi Tseng20f9e7b2018-05-24 23:27:39 +0800927 "binding" : "FabricIngress.next.vlan_meta"
928 },
929 {
930 "name" : "FabricIngress.next.simple_counter",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200931 "id" : 8,
Yi Tseng20f9e7b2018-05-24 23:27:39 +0800932 "is_direct" : true,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800933 "binding" : "FabricIngress.next.simple"
934 },
935 {
936 "name" : "FabricIngress.next.hashed_counter",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200937 "id" : 9,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800938 "is_direct" : true,
939 "binding" : "FabricIngress.next.hashed"
940 },
941 {
Esin Karaman971fb7f2017-12-28 13:44:52 +0000942 "name" : "FabricIngress.next.multicast_counter",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200943 "id" : 10,
Esin Karaman971fb7f2017-12-28 13:44:52 +0000944 "is_direct" : true,
945 "binding" : "FabricIngress.next.multicast"
946 },
947 {
948 "name" : "FabricIngress.port_counters_control.egress_port_counter",
949 "id" : 11,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800950 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +0200951 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800952 "line" : 23,
Yi Tseng3d3956d2018-01-31 17:28:05 -0800953 "column" : 48,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800954 "source_fragment" : "egress_port_counter"
955 },
956 "size" : 511,
957 "is_direct" : false
958 },
959 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800960 "name" : "FabricIngress.port_counters_control.ingress_port_counter",
Esin Karaman971fb7f2017-12-28 13:44:52 +0000961 "id" : 12,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800962 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +0200963 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800964 "line" : 24,
Yi Tseng3d3956d2018-01-31 17:28:05 -0800965 "column" : 48,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800966 "source_fragment" : "ingress_port_counter"
967 },
968 "size" : 511,
969 "is_direct" : false
Yi Tseng47eac892018-07-11 02:17:04 +0800970 },
971 {
972 "name" : "FabricEgress.egress_next.egress_vlan_counter",
973 "id" : 13,
974 "is_direct" : true,
975 "binding" : "FabricEgress.egress_next.egress_vlan"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800976 }
977 ],
978 "register_arrays" : [],
979 "calculations" : [
980 {
981 "name" : "calc",
982 "id" : 0,
983 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +0200984 "filename" : "include/checksum.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800985 "line" : 28,
986 "column" : 8,
987 "source_fragment" : "update_checksum(hdr.ipv4.isValid(), ..."
988 },
989 "algo" : "csum16",
990 "input" : [
991 {
992 "type" : "field",
993 "value" : ["ipv4", "version"]
994 },
995 {
996 "type" : "field",
997 "value" : ["ipv4", "ihl"]
998 },
999 {
1000 "type" : "field",
1001 "value" : ["ipv4", "diffserv"]
1002 },
1003 {
1004 "type" : "field",
1005 "value" : ["ipv4", "total_len"]
1006 },
1007 {
1008 "type" : "field",
1009 "value" : ["ipv4", "identification"]
1010 },
1011 {
1012 "type" : "field",
1013 "value" : ["ipv4", "flags"]
1014 },
1015 {
1016 "type" : "field",
1017 "value" : ["ipv4", "frag_offset"]
1018 },
1019 {
1020 "type" : "field",
1021 "value" : ["ipv4", "ttl"]
1022 },
1023 {
1024 "type" : "field",
1025 "value" : ["ipv4", "protocol"]
1026 },
1027 {
1028 "type" : "field",
1029 "value" : ["ipv4", "src_addr"]
1030 },
1031 {
1032 "type" : "field",
1033 "value" : ["ipv4", "dst_addr"]
1034 }
1035 ]
1036 },
1037 {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001038 "name" : "calc_0",
1039 "id" : 1,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001040 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001041 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02001042 "line" : 291,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001043 "column" : 8,
1044 "source_fragment" : "update_checksum(gtpu_ipv4.isValid(), ..."
1045 },
1046 "algo" : "csum16",
1047 "input" : [
1048 {
1049 "type" : "field",
1050 "value" : ["gtpu_ipv4", "version"]
1051 },
1052 {
1053 "type" : "field",
1054 "value" : ["gtpu_ipv4", "ihl"]
1055 },
1056 {
1057 "type" : "field",
1058 "value" : ["gtpu_ipv4", "diffserv"]
1059 },
1060 {
1061 "type" : "field",
1062 "value" : ["gtpu_ipv4", "total_len"]
1063 },
1064 {
1065 "type" : "field",
1066 "value" : ["gtpu_ipv4", "identification"]
1067 },
1068 {
1069 "type" : "field",
1070 "value" : ["gtpu_ipv4", "flags"]
1071 },
1072 {
1073 "type" : "field",
1074 "value" : ["gtpu_ipv4", "frag_offset"]
1075 },
1076 {
1077 "type" : "field",
1078 "value" : ["gtpu_ipv4", "ttl"]
1079 },
1080 {
1081 "type" : "field",
1082 "value" : ["gtpu_ipv4", "protocol"]
1083 },
1084 {
1085 "type" : "field",
1086 "value" : ["gtpu_ipv4", "src_addr"]
1087 },
1088 {
1089 "type" : "field",
1090 "value" : ["gtpu_ipv4", "dst_addr"]
1091 }
1092 ]
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001093 },
1094 {
1095 "name" : "calc_1",
1096 "id" : 2,
1097 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001098 "filename" : "include/checksum.p4",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001099 "line" : 56,
1100 "column" : 8,
1101 "source_fragment" : "verify_checksum(hdr.ipv4.isValid(), ..."
1102 },
1103 "algo" : "csum16",
1104 "input" : [
1105 {
1106 "type" : "field",
1107 "value" : ["ipv4", "version"]
1108 },
1109 {
1110 "type" : "field",
1111 "value" : ["ipv4", "ihl"]
1112 },
1113 {
1114 "type" : "field",
1115 "value" : ["ipv4", "diffserv"]
1116 },
1117 {
1118 "type" : "field",
1119 "value" : ["ipv4", "total_len"]
1120 },
1121 {
1122 "type" : "field",
1123 "value" : ["ipv4", "identification"]
1124 },
1125 {
1126 "type" : "field",
1127 "value" : ["ipv4", "flags"]
1128 },
1129 {
1130 "type" : "field",
1131 "value" : ["ipv4", "frag_offset"]
1132 },
1133 {
1134 "type" : "field",
1135 "value" : ["ipv4", "ttl"]
1136 },
1137 {
1138 "type" : "field",
1139 "value" : ["ipv4", "protocol"]
1140 },
1141 {
1142 "type" : "field",
1143 "value" : ["ipv4", "src_addr"]
1144 },
1145 {
1146 "type" : "field",
1147 "value" : ["ipv4", "dst_addr"]
1148 }
1149 ]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001150 }
1151 ],
1152 "learn_lists" : [],
1153 "actions" : [
1154 {
1155 "name" : "NoAction",
1156 "id" : 0,
1157 "runtime_data" : [],
1158 "primitives" : []
1159 },
1160 {
1161 "name" : "NoAction",
1162 "id" : 1,
1163 "runtime_data" : [],
1164 "primitives" : []
1165 },
1166 {
1167 "name" : "NoAction",
1168 "id" : 2,
1169 "runtime_data" : [],
1170 "primitives" : []
1171 },
1172 {
1173 "name" : "NoAction",
1174 "id" : 3,
1175 "runtime_data" : [],
1176 "primitives" : []
1177 },
1178 {
1179 "name" : "NoAction",
1180 "id" : 4,
1181 "runtime_data" : [],
1182 "primitives" : []
1183 },
1184 {
1185 "name" : "NoAction",
1186 "id" : 5,
1187 "runtime_data" : [],
1188 "primitives" : []
1189 },
1190 {
1191 "name" : "NoAction",
1192 "id" : 6,
1193 "runtime_data" : [],
1194 "primitives" : []
1195 },
1196 {
1197 "name" : "NoAction",
1198 "id" : 7,
1199 "runtime_data" : [],
1200 "primitives" : []
1201 },
1202 {
1203 "name" : "NoAction",
1204 "id" : 8,
1205 "runtime_data" : [],
1206 "primitives" : []
1207 },
1208 {
Esin Karaman971fb7f2017-12-28 13:44:52 +00001209 "name" : "NoAction",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001210 "id" : 9,
1211 "runtime_data" : [],
1212 "primitives" : []
1213 },
1214 {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001215 "name" : "nop",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001216 "id" : 10,
1217 "runtime_data" : [],
1218 "primitives" : []
1219 },
1220 {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001221 "name" : "nop",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001222 "id" : 11,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001223 "runtime_data" : [],
Yi Tseng27b9bc02018-04-12 14:52:40 +08001224 "primitives" : []
1225 },
1226 {
Esin Karaman971fb7f2017-12-28 13:44:52 +00001227 "name" : "nop",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001228 "id" : 12,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001229 "runtime_data" : [],
Esin Karaman971fb7f2017-12-28 13:44:52 +00001230 "primitives" : []
1231 },
1232 {
Carmelo Casconea5400af2018-07-17 22:11:54 +02001233 "name" : "drop_now",
Esin Karaman971fb7f2017-12-28 13:44:52 +00001234 "id" : 13,
1235 "runtime_data" : [],
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001236 "primitives" : [
1237 {
1238 "op" : "drop",
1239 "parameters" : [],
1240 "source_info" : {
Carmelo Casconea5400af2018-07-17 22:11:54 +02001241 "filename" : "include/control/../action.p4",
1242 "line" : 24,
1243 "column" : 4,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001244 "source_fragment" : "mark_to_drop()"
1245 }
1246 },
1247 {
1248 "op" : "exit",
1249 "parameters" : [],
1250 "source_info" : {
Carmelo Casconea5400af2018-07-17 22:11:54 +02001251 "filename" : "include/control/../action.p4",
1252 "line" : 25,
1253 "column" : 4,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001254 "source_fragment" : "exit"
1255 }
1256 }
1257 ]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001258 },
1259 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001260 "name" : "FabricIngress.spgw_ingress.gtpu_decap",
Esin Karaman971fb7f2017-12-28 13:44:52 +00001261 "id" : 14,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001262 "runtime_data" : [],
1263 "primitives" : [
1264 {
1265 "op" : "remove_header",
1266 "parameters" : [
1267 {
1268 "type" : "header",
1269 "value" : "gtpu_ipv4"
1270 }
1271 ],
1272 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001273 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02001274 "line" : 33,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001275 "column" : 8,
1276 "source_fragment" : "gtpu_ipv4.setInvalid()"
1277 }
1278 },
1279 {
1280 "op" : "remove_header",
1281 "parameters" : [
1282 {
1283 "type" : "header",
1284 "value" : "gtpu_udp"
1285 }
1286 ],
1287 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001288 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02001289 "line" : 34,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001290 "column" : 8,
1291 "source_fragment" : "gtpu_udp.setInvalid()"
1292 }
1293 },
1294 {
1295 "op" : "remove_header",
1296 "parameters" : [
1297 {
1298 "type" : "header",
1299 "value" : "gtpu"
1300 }
1301 ],
1302 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001303 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02001304 "line" : 35,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001305 "column" : 8,
1306 "source_fragment" : "gtpu.setInvalid()"
1307 }
1308 }
1309 ]
1310 },
1311 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001312 "name" : "FabricIngress.spgw_ingress.set_dl_sess_info",
Esin Karaman971fb7f2017-12-28 13:44:52 +00001313 "id" : 15,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001314 "runtime_data" : [
1315 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001316 "name" : "teid",
1317 "bitwidth" : 32
1318 },
1319 {
1320 "name" : "s1u_enb_addr",
1321 "bitwidth" : 32
1322 },
1323 {
1324 "name" : "s1u_sgw_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001325 "bitwidth" : 32
1326 }
1327 ],
1328 "primitives" : [
1329 {
1330 "op" : "assign",
1331 "parameters" : [
1332 {
1333 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08001334 "value" : ["userMetadata.spgw", "teid"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001335 },
1336 {
1337 "type" : "runtime_data",
1338 "value" : 0
1339 }
1340 ],
1341 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001342 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02001343 "line" : 41,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001344 "column" : 8,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001345 "source_fragment" : "spgw_meta.teid = teid"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001346 }
1347 },
1348 {
1349 "op" : "assign",
1350 "parameters" : [
1351 {
1352 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08001353 "value" : ["userMetadata.spgw", "s1u_enb_addr"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001354 },
1355 {
1356 "type" : "runtime_data",
1357 "value" : 1
1358 }
1359 ],
1360 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001361 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02001362 "line" : 42,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001363 "column" : 8,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001364 "source_fragment" : "spgw_meta.s1u_enb_addr = s1u_enb_addr"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001365 }
1366 },
1367 {
1368 "op" : "assign",
1369 "parameters" : [
1370 {
1371 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08001372 "value" : ["userMetadata.spgw", "s1u_sgw_addr"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001373 },
1374 {
1375 "type" : "runtime_data",
1376 "value" : 2
1377 }
1378 ],
1379 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001380 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02001381 "line" : 43,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001382 "column" : 8,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001383 "source_fragment" : "spgw_meta.s1u_sgw_addr = s1u_sgw_addr"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001384 }
1385 }
1386 ]
1387 },
1388 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001389 "name" : "FabricIngress.spgw_ingress.update_ue_cdr",
Esin Karaman971fb7f2017-12-28 13:44:52 +00001390 "id" : 16,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001391 "runtime_data" : [],
1392 "primitives" : []
1393 },
1394 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001395 "name" : "FabricIngress.filtering.drop",
Esin Karaman971fb7f2017-12-28 13:44:52 +00001396 "id" : 17,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001397 "runtime_data" : [],
1398 "primitives" : [
1399 {
1400 "op" : "drop",
1401 "parameters" : [],
1402 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001403 "filename" : "include/control/filtering.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001404 "line" : 37,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001405 "column" : 8,
1406 "source_fragment" : "mark_to_drop()"
1407 }
1408 }
1409 ]
1410 },
1411 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001412 "name" : "FabricIngress.filtering.set_vlan",
Esin Karaman971fb7f2017-12-28 13:44:52 +00001413 "id" : 18,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001414 "runtime_data" : [
1415 {
1416 "name" : "new_vlan_id",
1417 "bitwidth" : 12
1418 }
1419 ],
1420 "primitives" : [
1421 {
1422 "op" : "assign",
1423 "parameters" : [
1424 {
1425 "type" : "field",
1426 "value" : ["vlan_tag", "vlan_id"]
1427 },
1428 {
1429 "type" : "runtime_data",
1430 "value" : 0
1431 }
1432 ],
1433 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001434 "filename" : "include/control/filtering.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001435 "line" : 42,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001436 "column" : 8,
1437 "source_fragment" : "hdr.vlan_tag.vlan_id = new_vlan_id"
1438 }
1439 }
1440 ]
1441 },
1442 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001443 "name" : "FabricIngress.filtering.push_internal_vlan",
Esin Karaman971fb7f2017-12-28 13:44:52 +00001444 "id" : 19,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001445 "runtime_data" : [
1446 {
1447 "name" : "new_vlan_id",
1448 "bitwidth" : 12
1449 }
1450 ],
1451 "primitives" : [
1452 {
1453 "op" : "add_header",
1454 "parameters" : [
1455 {
1456 "type" : "header",
1457 "value" : "vlan_tag"
1458 }
1459 ],
1460 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001461 "filename" : "include/control/filtering.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001462 "line" : 49,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001463 "column" : 8,
1464 "source_fragment" : "hdr.vlan_tag.setValid()"
1465 }
1466 },
1467 {
1468 "op" : "assign",
1469 "parameters" : [
1470 {
1471 "type" : "field",
1472 "value" : ["vlan_tag", "cfi"]
1473 },
1474 {
1475 "type" : "hexstr",
1476 "value" : "0x00"
1477 }
1478 ],
1479 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001480 "filename" : "include/control/filtering.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001481 "line" : 50,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001482 "column" : 8,
1483 "source_fragment" : "hdr.vlan_tag.cfi = 0"
1484 }
1485 },
1486 {
1487 "op" : "assign",
1488 "parameters" : [
1489 {
1490 "type" : "field",
1491 "value" : ["vlan_tag", "pri"]
1492 },
1493 {
1494 "type" : "hexstr",
1495 "value" : "0x00"
1496 }
1497 ],
1498 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001499 "filename" : "include/control/filtering.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001500 "line" : 51,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001501 "column" : 8,
1502 "source_fragment" : "hdr.vlan_tag.pri = 0"
1503 }
1504 },
1505 {
1506 "op" : "assign",
1507 "parameters" : [
1508 {
1509 "type" : "field",
1510 "value" : ["vlan_tag", "ether_type"]
1511 },
1512 {
1513 "type" : "field",
1514 "value" : ["ethernet", "ether_type"]
1515 }
1516 ],
1517 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001518 "filename" : "include/control/filtering.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001519 "line" : 52,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001520 "column" : 8,
1521 "source_fragment" : "hdr.vlan_tag.ether_type = hdr.ethernet.ether_type"
1522 }
1523 },
1524 {
1525 "op" : "assign",
1526 "parameters" : [
1527 {
1528 "type" : "field",
1529 "value" : ["ethernet", "ether_type"]
1530 },
1531 {
1532 "type" : "hexstr",
1533 "value" : "0x8100"
1534 }
1535 ],
1536 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001537 "filename" : "include/control/../define.p4",
Carmelo Cascone228092b2018-06-15 20:41:10 +02001538 "line" : 66,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001539 "column" : 31,
1540 "source_fragment" : "0x8100; ..."
1541 }
1542 },
1543 {
1544 "op" : "assign",
1545 "parameters" : [
1546 {
1547 "type" : "field",
1548 "value" : ["vlan_tag", "vlan_id"]
1549 },
1550 {
1551 "type" : "runtime_data",
1552 "value" : 0
1553 }
1554 ],
1555 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001556 "filename" : "include/control/filtering.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001557 "line" : 54,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001558 "column" : 8,
Yi Tseng47eac892018-07-11 02:17:04 +08001559 "source_fragment" : "hdr.vlan_tag.vlan_id = new_vlan_id"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001560 }
1561 },
1562 {
1563 "op" : "assign",
1564 "parameters" : [
1565 {
1566 "type" : "field",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001567 "value" : ["scalars", "fabric_metadata_t.pop_vlan_when_packet_in"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001568 },
1569 {
1570 "type" : "expression",
1571 "value" : {
1572 "type" : "expression",
1573 "value" : {
1574 "op" : "b2d",
1575 "left" : null,
1576 "right" : {
1577 "type" : "bool",
1578 "value" : true
1579 }
1580 }
1581 }
1582 }
1583 ],
1584 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001585 "filename" : "include/control/filtering.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001586 "line" : 57,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001587 "column" : 8,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001588 "source_fragment" : "fabric_metadata.pop_vlan_when_packet_in = true"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001589 }
1590 }
1591 ]
1592 },
1593 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001594 "name" : "FabricIngress.filtering.set_forwarding_type",
Esin Karaman971fb7f2017-12-28 13:44:52 +00001595 "id" : 20,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001596 "runtime_data" : [
1597 {
1598 "name" : "fwd_type",
1599 "bitwidth" : 3
1600 }
1601 ],
1602 "primitives" : [
1603 {
1604 "op" : "assign",
1605 "parameters" : [
1606 {
1607 "type" : "field",
1608 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
1609 },
1610 {
1611 "type" : "runtime_data",
1612 "value" : 0
1613 }
1614 ],
1615 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001616 "filename" : "include/control/filtering.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001617 "line" : 94,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001618 "column" : 8,
1619 "source_fragment" : "fabric_metadata.fwd_type = fwd_type"
1620 }
1621 }
1622 ]
1623 },
1624 {
Yi Tseng47eac892018-07-11 02:17:04 +08001625 "name" : "FabricIngress.forwarding.set_next_id_bridging",
Esin Karaman971fb7f2017-12-28 13:44:52 +00001626 "id" : 21,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001627 "runtime_data" : [
1628 {
1629 "name" : "next_id",
1630 "bitwidth" : 32
1631 }
1632 ],
1633 "primitives" : [
1634 {
1635 "op" : "assign",
1636 "parameters" : [
1637 {
1638 "type" : "field",
1639 "value" : ["scalars", "fabric_metadata_t.next_id"]
1640 },
1641 {
1642 "type" : "runtime_data",
1643 "value" : 0
1644 }
1645 ],
1646 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001647 "filename" : "include/control/forwarding.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001648 "line" : 37,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001649 "column" : 8,
1650 "source_fragment" : "fabric_metadata.next_id = next_id"
1651 }
1652 }
1653 ]
1654 },
1655 {
Yi Tseng47eac892018-07-11 02:17:04 +08001656 "name" : "FabricIngress.forwarding.pop_mpls_and_next",
1657 "id" : 22,
1658 "runtime_data" : [
1659 {
1660 "name" : "next_id",
1661 "bitwidth" : 32
1662 }
1663 ],
1664 "primitives" : [
1665 {
1666 "op" : "remove_header",
1667 "parameters" : [
1668 {
1669 "type" : "header",
1670 "value" : "mpls"
1671 }
1672 ],
1673 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001674 "filename" : "include/control/forwarding.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001675 "line" : 60,
1676 "column" : 8,
1677 "source_fragment" : "hdr.mpls.setInvalid()"
1678 }
1679 },
1680 {
1681 "op" : "assign",
1682 "parameters" : [
1683 {
1684 "type" : "field",
1685 "value" : ["scalars", "fabric_metadata_t.next_id"]
1686 },
1687 {
1688 "type" : "runtime_data",
1689 "value" : 0
1690 }
1691 ],
1692 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001693 "filename" : "include/control/forwarding.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001694 "line" : 61,
1695 "column" : 8,
1696 "source_fragment" : "fabric_metadata.next_id = next_id"
1697 }
1698 }
1699 ]
1700 },
1701 {
1702 "name" : "FabricIngress.forwarding.set_next_id_unicast_v4",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001703 "id" : 23,
Yi Tseng27b9bc02018-04-12 14:52:40 +08001704 "runtime_data" : [
1705 {
1706 "name" : "next_id",
1707 "bitwidth" : 32
1708 }
1709 ],
1710 "primitives" : [
1711 {
1712 "op" : "assign",
1713 "parameters" : [
1714 {
1715 "type" : "field",
1716 "value" : ["scalars", "fabric_metadata_t.next_id"]
1717 },
1718 {
1719 "type" : "runtime_data",
1720 "value" : 0
1721 }
1722 ],
1723 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001724 "filename" : "include/control/forwarding.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001725 "line" : 83,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001726 "column" : 8,
1727 "source_fragment" : "fabric_metadata.next_id = next_id"
1728 }
1729 }
1730 ]
1731 },
1732 {
Yi Tseng47eac892018-07-11 02:17:04 +08001733 "name" : "FabricIngress.forwarding.set_next_id_acl",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001734 "id" : 24,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001735 "runtime_data" : [
1736 {
1737 "name" : "next_id",
1738 "bitwidth" : 32
1739 }
1740 ],
1741 "primitives" : [
1742 {
Esin Karaman971fb7f2017-12-28 13:44:52 +00001743 "op" : "assign",
1744 "parameters" : [
1745 {
1746 "type" : "field",
1747 "value" : ["scalars", "fabric_metadata_t.next_id"]
1748 },
1749 {
1750 "type" : "runtime_data",
1751 "value" : 0
1752 }
1753 ],
1754 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001755 "filename" : "include/control/forwarding.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001756 "line" : 105,
Esin Karaman971fb7f2017-12-28 13:44:52 +00001757 "column" : 8,
1758 "source_fragment" : "fabric_metadata.next_id = next_id"
1759 }
1760 }
1761 ]
1762 },
1763 {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001764 "name" : "FabricIngress.forwarding.punt_to_cpu",
Esin Karaman971fb7f2017-12-28 13:44:52 +00001765 "id" : 25,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001766 "runtime_data" : [],
1767 "primitives" : [
1768 {
1769 "op" : "assign",
1770 "parameters" : [
1771 {
1772 "type" : "field",
1773 "value" : ["standard_metadata", "egress_spec"]
1774 },
1775 {
1776 "type" : "hexstr",
1777 "value" : "0x00ff"
1778 }
1779 ],
1780 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001781 "filename" : "include/control/forwarding.p4",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001782 "line" : 111,
Carmelo Casconeb531b682018-01-30 17:55:56 -08001783 "column" : 8,
1784 "source_fragment" : "standard_metadata.egress_spec = 255"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001785 }
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001786 },
1787 {
1788 "op" : "exit",
1789 "parameters" : [],
1790 "source_info" : {
1791 "filename" : "include/control/forwarding.p4",
1792 "line" : 113,
1793 "column" : 8,
1794 "source_fragment" : "exit"
1795 }
1796 }
1797 ]
1798 },
1799 {
1800 "name" : "FabricIngress.forwarding.clone_to_cpu",
1801 "id" : 26,
1802 "runtime_data" : [],
1803 "primitives" : [
1804 {
1805 "op" : "assign",
1806 "parameters" : [
1807 {
1808 "type" : "field",
1809 "value" : ["scalars", "fabric_metadata_t.clone_to_cpu"]
1810 },
1811 {
1812 "type" : "expression",
1813 "value" : {
1814 "type" : "expression",
1815 "value" : {
1816 "op" : "b2d",
1817 "left" : null,
1818 "right" : {
1819 "type" : "bool",
1820 "value" : true
1821 }
1822 }
1823 }
1824 }
1825 ],
1826 "source_info" : {
1827 "filename" : "include/control/forwarding.p4",
1828 "line" : 118,
1829 "column" : 8,
1830 "source_fragment" : "fabric_metadata.clone_to_cpu = true"
1831 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001832 }
1833 ]
1834 },
1835 {
Yi Tseng47eac892018-07-11 02:17:04 +08001836 "name" : "FabricIngress.forwarding.drop",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001837 "id" : 27,
Yi Tseng47eac892018-07-11 02:17:04 +08001838 "runtime_data" : [],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001839 "primitives" : [
1840 {
Yi Tseng47eac892018-07-11 02:17:04 +08001841 "op" : "drop",
1842 "parameters" : [],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001843 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001844 "filename" : "include/control/forwarding.p4",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001845 "line" : 123,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001846 "column" : 8,
Yi Tseng47eac892018-07-11 02:17:04 +08001847 "source_fragment" : "mark_to_drop()"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001848 }
1849 }
1850 ]
1851 },
1852 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001853 "name" : "FabricIngress.next.set_vlan",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001854 "id" : 28,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001855 "runtime_data" : [
1856 {
1857 "name" : "new_vlan_id",
1858 "bitwidth" : 12
1859 }
1860 ],
1861 "primitives" : [
1862 {
1863 "op" : "assign",
1864 "parameters" : [
1865 {
1866 "type" : "field",
1867 "value" : ["vlan_tag", "vlan_id"]
1868 },
1869 {
1870 "type" : "runtime_data",
1871 "value" : 0
1872 }
1873 ],
1874 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001875 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001876 "line" : 61,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001877 "column" : 8,
1878 "source_fragment" : "hdr.vlan_tag.vlan_id = new_vlan_id"
1879 }
1880 }
1881 ]
1882 },
1883 {
Yi Tseng47eac892018-07-11 02:17:04 +08001884 "name" : "FabricIngress.next.output_simple",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001885 "id" : 29,
Yi Tseng47eac892018-07-11 02:17:04 +08001886 "runtime_data" : [
1887 {
1888 "name" : "port_num",
1889 "bitwidth" : 9
1890 }
1891 ],
1892 "primitives" : [
1893 {
1894 "op" : "assign",
1895 "parameters" : [
1896 {
1897 "type" : "field",
1898 "value" : ["standard_metadata", "egress_spec"]
1899 },
1900 {
1901 "type" : "runtime_data",
1902 "value" : 0
1903 }
1904 ],
1905 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001906 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001907 "line" : 85,
1908 "column" : 8,
1909 "source_fragment" : "standard_metadata.egress_spec = port_num"
1910 }
1911 }
1912 ]
1913 },
1914 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001915 "name" : "FabricIngress.next.set_vlan_output",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001916 "id" : 30,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001917 "runtime_data" : [
1918 {
1919 "name" : "new_vlan_id",
1920 "bitwidth" : 12
1921 },
1922 {
1923 "name" : "port_num",
1924 "bitwidth" : 9
1925 }
1926 ],
1927 "primitives" : [
1928 {
1929 "op" : "assign",
1930 "parameters" : [
1931 {
1932 "type" : "field",
1933 "value" : ["vlan_tag", "vlan_id"]
1934 },
1935 {
1936 "type" : "runtime_data",
1937 "value" : 0
1938 }
1939 ],
1940 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001941 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001942 "line" : 90,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001943 "column" : 8,
1944 "source_fragment" : "hdr.vlan_tag.vlan_id = new_vlan_id"
1945 }
1946 },
1947 {
1948 "op" : "assign",
1949 "parameters" : [
1950 {
1951 "type" : "field",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001952 "value" : ["standard_metadata", "egress_spec"]
1953 },
1954 {
1955 "type" : "runtime_data",
1956 "value" : 1
1957 }
1958 ],
1959 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001960 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001961 "line" : 85,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001962 "column" : 8,
1963 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
1964 }
1965 }
1966 ]
1967 },
1968 {
Yi Tseng47eac892018-07-11 02:17:04 +08001969 "name" : "FabricIngress.next.l3_routing_simple",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001970 "id" : 31,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001971 "runtime_data" : [
1972 {
1973 "name" : "port_num",
1974 "bitwidth" : 9
1975 },
1976 {
1977 "name" : "smac",
1978 "bitwidth" : 48
1979 },
1980 {
1981 "name" : "dmac",
1982 "bitwidth" : 48
1983 }
1984 ],
1985 "primitives" : [
1986 {
1987 "op" : "assign",
1988 "parameters" : [
1989 {
1990 "type" : "field",
1991 "value" : ["ethernet", "src_addr"]
1992 },
1993 {
1994 "type" : "runtime_data",
1995 "value" : 1
1996 }
1997 ],
1998 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001999 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002000 "line" : 37,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002001 "column" : 8,
2002 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2003 }
2004 },
2005 {
2006 "op" : "assign",
2007 "parameters" : [
2008 {
2009 "type" : "field",
2010 "value" : ["ethernet", "dst_addr"]
2011 },
2012 {
2013 "type" : "runtime_data",
2014 "value" : 2
2015 }
2016 ],
2017 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002018 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002019 "line" : 41,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002020 "column" : 8,
2021 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2022 }
2023 },
2024 {
2025 "op" : "assign",
2026 "parameters" : [
2027 {
2028 "type" : "field",
2029 "value" : ["standard_metadata", "egress_spec"]
2030 },
2031 {
2032 "type" : "runtime_data",
2033 "value" : 0
2034 }
2035 ],
2036 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002037 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002038 "line" : 85,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002039 "column" : 8,
2040 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2041 }
2042 }
2043 ]
2044 },
2045 {
Yi Tseng47eac892018-07-11 02:17:04 +08002046 "name" : "FabricIngress.next.mpls_routing_v4_simple",
Yi Tseng47eac892018-07-11 02:17:04 +08002047 "id" : 32,
2048 "runtime_data" : [
2049 {
2050 "name" : "port_num",
2051 "bitwidth" : 9
2052 },
2053 {
2054 "name" : "smac",
2055 "bitwidth" : 48
2056 },
2057 {
2058 "name" : "dmac",
2059 "bitwidth" : 48
2060 },
2061 {
2062 "name" : "label",
2063 "bitwidth" : 20
2064 }
2065 ],
2066 "primitives" : [
2067 {
2068 "op" : "assign",
2069 "parameters" : [
2070 {
2071 "type" : "field",
2072 "value" : ["ethernet", "src_addr"]
2073 },
2074 {
2075 "type" : "runtime_data",
2076 "value" : 1
2077 }
2078 ],
2079 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002080 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002081 "line" : 37,
2082 "column" : 8,
2083 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2084 }
2085 },
2086 {
2087 "op" : "assign",
2088 "parameters" : [
2089 {
2090 "type" : "field",
2091 "value" : ["ethernet", "dst_addr"]
2092 },
2093 {
2094 "type" : "runtime_data",
2095 "value" : 2
2096 }
2097 ],
2098 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002099 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002100 "line" : 41,
2101 "column" : 8,
2102 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2103 }
2104 },
2105 {
2106 "op" : "assign",
2107 "parameters" : [
2108 {
2109 "type" : "field",
2110 "value" : ["standard_metadata", "egress_spec"]
2111 },
2112 {
2113 "type" : "runtime_data",
2114 "value" : 0
2115 }
2116 ],
2117 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002118 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002119 "line" : 85,
2120 "column" : 8,
2121 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2122 }
2123 },
2124 {
2125 "op" : "add_header",
2126 "parameters" : [
2127 {
2128 "type" : "header",
2129 "value" : "mpls"
2130 }
2131 ],
2132 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002133 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002134 "line" : 46,
2135 "column" : 8,
2136 "source_fragment" : "hdr.mpls.setValid()"
2137 }
2138 },
2139 {
2140 "op" : "assign",
2141 "parameters" : [
2142 {
2143 "type" : "field",
2144 "value" : ["vlan_tag", "ether_type"]
2145 },
2146 {
2147 "type" : "hexstr",
2148 "value" : "0x8847"
2149 }
2150 ],
2151 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002152 "filename" : "include/control/../define.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002153 "line" : 67,
2154 "column" : 31,
2155 "source_fragment" : "0x8847; ..."
2156 }
2157 },
2158 {
2159 "op" : "assign",
2160 "parameters" : [
2161 {
2162 "type" : "field",
2163 "value" : ["mpls", "label"]
2164 },
2165 {
2166 "type" : "runtime_data",
2167 "value" : 3
2168 }
2169 ],
2170 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002171 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002172 "line" : 48,
2173 "column" : 8,
2174 "source_fragment" : "hdr.mpls.label = label; ..."
2175 }
2176 },
2177 {
2178 "op" : "assign",
2179 "parameters" : [
2180 {
2181 "type" : "field",
2182 "value" : ["mpls", "tc"]
2183 },
2184 {
2185 "type" : "hexstr",
2186 "value" : "0x00"
2187 }
2188 ],
2189 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002190 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002191 "line" : 49,
2192 "column" : 8,
2193 "source_fragment" : "hdr.mpls.tc = tc; ..."
2194 }
2195 },
2196 {
2197 "op" : "assign",
2198 "parameters" : [
2199 {
2200 "type" : "field",
2201 "value" : ["mpls", "bos"]
2202 },
2203 {
2204 "type" : "hexstr",
2205 "value" : "0x01"
2206 }
2207 ],
2208 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002209 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002210 "line" : 50,
2211 "column" : 8,
2212 "source_fragment" : "hdr.mpls.bos = 1w1"
2213 }
2214 },
2215 {
2216 "op" : "assign",
2217 "parameters" : [
2218 {
2219 "type" : "field",
2220 "value" : ["mpls", "ttl"]
2221 },
2222 {
2223 "type" : "hexstr",
2224 "value" : "0x40"
2225 }
2226 ],
2227 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002228 "filename" : "include/control/../define.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002229 "line" : 87,
2230 "column" : 32,
2231 "source_fragment" : "64; ..."
2232 }
Esin Karaman971fb7f2017-12-28 13:44:52 +00002233 }
2234 ]
2235 },
2236 {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002237 "name" : "FabricIngress.next.mpls_routing_v6_simple",
Yi Tseng47eac892018-07-11 02:17:04 +08002238 "id" : 33,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002239 "runtime_data" : [
2240 {
2241 "name" : "port_num",
2242 "bitwidth" : 9
2243 },
2244 {
2245 "name" : "smac",
2246 "bitwidth" : 48
2247 },
2248 {
2249 "name" : "dmac",
2250 "bitwidth" : 48
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002251 },
2252 {
Esin Karaman971fb7f2017-12-28 13:44:52 +00002253 "name" : "label",
2254 "bitwidth" : 20
2255 }
2256 ],
2257 "primitives" : [
2258 {
2259 "op" : "assign",
2260 "parameters" : [
2261 {
2262 "type" : "field",
2263 "value" : ["ethernet", "src_addr"]
2264 },
2265 {
2266 "type" : "runtime_data",
2267 "value" : 1
2268 }
2269 ],
2270 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002271 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002272 "line" : 37,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002273 "column" : 8,
2274 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2275 }
2276 },
2277 {
2278 "op" : "assign",
2279 "parameters" : [
2280 {
2281 "type" : "field",
2282 "value" : ["ethernet", "dst_addr"]
2283 },
2284 {
2285 "type" : "runtime_data",
2286 "value" : 2
2287 }
2288 ],
2289 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002290 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002291 "line" : 41,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002292 "column" : 8,
2293 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2294 }
2295 },
2296 {
2297 "op" : "assign",
2298 "parameters" : [
2299 {
2300 "type" : "field",
2301 "value" : ["standard_metadata", "egress_spec"]
2302 },
2303 {
2304 "type" : "runtime_data",
2305 "value" : 0
2306 }
2307 ],
2308 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002309 "filename" : "include/control/next.p4",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002310 "line" : 85,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002311 "column" : 8,
2312 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2313 }
2314 },
2315 {
2316 "op" : "add_header",
2317 "parameters" : [
2318 {
2319 "type" : "header",
2320 "value" : "mpls"
2321 }
2322 ],
2323 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002324 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002325 "line" : 46,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002326 "column" : 8,
2327 "source_fragment" : "hdr.mpls.setValid()"
2328 }
2329 },
2330 {
2331 "op" : "assign",
2332 "parameters" : [
2333 {
2334 "type" : "field",
2335 "value" : ["vlan_tag", "ether_type"]
2336 },
2337 {
2338 "type" : "hexstr",
2339 "value" : "0x8847"
2340 }
2341 ],
2342 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002343 "filename" : "include/control/../define.p4",
Esin Karaman971fb7f2017-12-28 13:44:52 +00002344 "line" : 67,
2345 "column" : 31,
2346 "source_fragment" : "0x8847; ..."
2347 }
2348 },
2349 {
2350 "op" : "assign",
2351 "parameters" : [
2352 {
2353 "type" : "field",
2354 "value" : ["mpls", "label"]
2355 },
2356 {
2357 "type" : "runtime_data",
2358 "value" : 3
2359 }
2360 ],
2361 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002362 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002363 "line" : 48,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002364 "column" : 8,
2365 "source_fragment" : "hdr.mpls.label = label; ..."
2366 }
2367 },
2368 {
2369 "op" : "assign",
2370 "parameters" : [
2371 {
2372 "type" : "field",
2373 "value" : ["mpls", "tc"]
2374 },
2375 {
2376 "type" : "hexstr",
2377 "value" : "0x00"
2378 }
2379 ],
2380 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002381 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002382 "line" : 49,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002383 "column" : 8,
2384 "source_fragment" : "hdr.mpls.tc = tc; ..."
2385 }
2386 },
2387 {
2388 "op" : "assign",
2389 "parameters" : [
2390 {
2391 "type" : "field",
2392 "value" : ["mpls", "bos"]
2393 },
2394 {
2395 "type" : "hexstr",
2396 "value" : "0x01"
2397 }
2398 ],
2399 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002400 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002401 "line" : 50,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002402 "column" : 8,
2403 "source_fragment" : "hdr.mpls.bos = 1w1"
2404 }
2405 },
2406 {
2407 "op" : "assign",
2408 "parameters" : [
2409 {
2410 "type" : "field",
2411 "value" : ["mpls", "ttl"]
2412 },
2413 {
2414 "type" : "hexstr",
2415 "value" : "0x40"
2416 }
2417 ],
2418 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002419 "filename" : "include/control/../define.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002420 "line" : 87,
2421 "column" : 32,
2422 "source_fragment" : "64; ..."
2423 }
2424 }
2425 ]
2426 },
2427 {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002428 "name" : "FabricIngress.next.l3_routing_vlan",
2429 "id" : 34,
2430 "runtime_data" : [
2431 {
2432 "name" : "port_num",
2433 "bitwidth" : 9
2434 },
2435 {
2436 "name" : "smac",
2437 "bitwidth" : 48
2438 },
2439 {
2440 "name" : "dmac",
2441 "bitwidth" : 48
2442 },
2443 {
2444 "name" : "new_vlan_id",
2445 "bitwidth" : 12
2446 }
2447 ],
2448 "primitives" : [
2449 {
2450 "op" : "assign",
2451 "parameters" : [
2452 {
2453 "type" : "field",
2454 "value" : ["ethernet", "src_addr"]
2455 },
2456 {
2457 "type" : "runtime_data",
2458 "value" : 1
2459 }
2460 ],
2461 "source_info" : {
2462 "filename" : "include/control/next.p4",
2463 "line" : 37,
2464 "column" : 8,
2465 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2466 }
2467 },
2468 {
2469 "op" : "assign",
2470 "parameters" : [
2471 {
2472 "type" : "field",
2473 "value" : ["ethernet", "dst_addr"]
2474 },
2475 {
2476 "type" : "runtime_data",
2477 "value" : 2
2478 }
2479 ],
2480 "source_info" : {
2481 "filename" : "include/control/next.p4",
2482 "line" : 41,
2483 "column" : 8,
2484 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2485 }
2486 },
2487 {
2488 "op" : "assign",
2489 "parameters" : [
2490 {
2491 "type" : "field",
2492 "value" : ["vlan_tag", "vlan_id"]
2493 },
2494 {
2495 "type" : "runtime_data",
2496 "value" : 3
2497 }
2498 ],
2499 "source_info" : {
2500 "filename" : "include/control/next.p4",
2501 "line" : 90,
2502 "column" : 8,
2503 "source_fragment" : "hdr.vlan_tag.vlan_id = new_vlan_id; ..."
2504 }
2505 },
2506 {
2507 "op" : "assign",
2508 "parameters" : [
2509 {
2510 "type" : "field",
2511 "value" : ["standard_metadata", "egress_spec"]
2512 },
2513 {
2514 "type" : "runtime_data",
2515 "value" : 0
2516 }
2517 ],
2518 "source_info" : {
2519 "filename" : "include/control/next.p4",
2520 "line" : 85,
2521 "column" : 8,
2522 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2523 }
2524 }
2525 ]
2526 },
2527 {
2528 "name" : "FabricIngress.next.l3_routing_hashed",
2529 "id" : 35,
2530 "runtime_data" : [
2531 {
2532 "name" : "port_num",
2533 "bitwidth" : 9
2534 },
2535 {
2536 "name" : "smac",
2537 "bitwidth" : 48
2538 },
2539 {
2540 "name" : "dmac",
2541 "bitwidth" : 48
2542 }
2543 ],
2544 "primitives" : [
2545 {
2546 "op" : "assign",
2547 "parameters" : [
2548 {
2549 "type" : "field",
2550 "value" : ["ethernet", "src_addr"]
2551 },
2552 {
2553 "type" : "runtime_data",
2554 "value" : 1
2555 }
2556 ],
2557 "source_info" : {
2558 "filename" : "include/control/next.p4",
2559 "line" : 37,
2560 "column" : 8,
2561 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2562 }
2563 },
2564 {
2565 "op" : "assign",
2566 "parameters" : [
2567 {
2568 "type" : "field",
2569 "value" : ["ethernet", "dst_addr"]
2570 },
2571 {
2572 "type" : "runtime_data",
2573 "value" : 2
2574 }
2575 ],
2576 "source_info" : {
2577 "filename" : "include/control/next.p4",
2578 "line" : 41,
2579 "column" : 8,
2580 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2581 }
2582 },
2583 {
2584 "op" : "assign",
2585 "parameters" : [
2586 {
2587 "type" : "field",
2588 "value" : ["standard_metadata", "egress_spec"]
2589 },
2590 {
2591 "type" : "runtime_data",
2592 "value" : 0
2593 }
2594 ],
2595 "source_info" : {
2596 "filename" : "include/control/next.p4",
2597 "line" : 149,
2598 "column" : 8,
2599 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2600 }
2601 }
2602 ]
2603 },
2604 {
2605 "name" : "FabricIngress.next.mpls_routing_v4_hashed",
Yi Tseng47eac892018-07-11 02:17:04 +08002606 "id" : 36,
2607 "runtime_data" : [
2608 {
2609 "name" : "port_num",
2610 "bitwidth" : 9
2611 },
2612 {
2613 "name" : "smac",
2614 "bitwidth" : 48
2615 },
2616 {
2617 "name" : "dmac",
2618 "bitwidth" : 48
2619 },
2620 {
2621 "name" : "label",
2622 "bitwidth" : 20
2623 }
2624 ],
2625 "primitives" : [
2626 {
2627 "op" : "assign",
2628 "parameters" : [
2629 {
2630 "type" : "field",
2631 "value" : ["ethernet", "src_addr"]
2632 },
2633 {
2634 "type" : "runtime_data",
2635 "value" : 1
2636 }
2637 ],
2638 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002639 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002640 "line" : 37,
2641 "column" : 8,
2642 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2643 }
2644 },
2645 {
2646 "op" : "assign",
2647 "parameters" : [
2648 {
2649 "type" : "field",
2650 "value" : ["ethernet", "dst_addr"]
2651 },
2652 {
2653 "type" : "runtime_data",
2654 "value" : 2
2655 }
2656 ],
2657 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002658 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002659 "line" : 41,
2660 "column" : 8,
2661 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2662 }
2663 },
2664 {
2665 "op" : "assign",
2666 "parameters" : [
2667 {
2668 "type" : "field",
2669 "value" : ["standard_metadata", "egress_spec"]
2670 },
2671 {
2672 "type" : "runtime_data",
2673 "value" : 0
2674 }
2675 ],
2676 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002677 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002678 "line" : 149,
2679 "column" : 8,
2680 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2681 }
2682 },
2683 {
2684 "op" : "add_header",
2685 "parameters" : [
2686 {
2687 "type" : "header",
2688 "value" : "mpls"
2689 }
2690 ],
2691 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002692 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002693 "line" : 46,
2694 "column" : 8,
2695 "source_fragment" : "hdr.mpls.setValid()"
2696 }
2697 },
2698 {
2699 "op" : "assign",
2700 "parameters" : [
2701 {
2702 "type" : "field",
2703 "value" : ["vlan_tag", "ether_type"]
2704 },
2705 {
2706 "type" : "hexstr",
2707 "value" : "0x8847"
2708 }
2709 ],
2710 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002711 "filename" : "include/control/../define.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002712 "line" : 67,
2713 "column" : 31,
2714 "source_fragment" : "0x8847; ..."
2715 }
2716 },
2717 {
2718 "op" : "assign",
2719 "parameters" : [
2720 {
2721 "type" : "field",
2722 "value" : ["mpls", "label"]
2723 },
2724 {
2725 "type" : "runtime_data",
2726 "value" : 3
2727 }
2728 ],
2729 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002730 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002731 "line" : 48,
2732 "column" : 8,
2733 "source_fragment" : "hdr.mpls.label = label; ..."
2734 }
2735 },
2736 {
2737 "op" : "assign",
2738 "parameters" : [
2739 {
2740 "type" : "field",
2741 "value" : ["mpls", "tc"]
2742 },
2743 {
2744 "type" : "hexstr",
2745 "value" : "0x00"
2746 }
2747 ],
2748 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002749 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002750 "line" : 49,
2751 "column" : 8,
2752 "source_fragment" : "hdr.mpls.tc = tc; ..."
2753 }
2754 },
2755 {
2756 "op" : "assign",
2757 "parameters" : [
2758 {
2759 "type" : "field",
2760 "value" : ["mpls", "bos"]
2761 },
2762 {
2763 "type" : "hexstr",
2764 "value" : "0x01"
2765 }
2766 ],
2767 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002768 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002769 "line" : 50,
2770 "column" : 8,
2771 "source_fragment" : "hdr.mpls.bos = 1w1"
2772 }
2773 },
2774 {
2775 "op" : "assign",
2776 "parameters" : [
2777 {
2778 "type" : "field",
2779 "value" : ["mpls", "ttl"]
2780 },
2781 {
2782 "type" : "hexstr",
2783 "value" : "0x40"
2784 }
2785 ],
2786 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002787 "filename" : "include/control/../define.p4",
Esin Karaman971fb7f2017-12-28 13:44:52 +00002788 "line" : 87,
2789 "column" : 32,
2790 "source_fragment" : "64; ..."
2791 }
2792 }
2793 ]
2794 },
2795 {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002796 "name" : "FabricIngress.next.mpls_routing_v6_hashed",
Yi Tseng47eac892018-07-11 02:17:04 +08002797 "id" : 37,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002798 "runtime_data" : [
2799 {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002800 "name" : "port_num",
2801 "bitwidth" : 9
2802 },
2803 {
2804 "name" : "smac",
2805 "bitwidth" : 48
2806 },
2807 {
2808 "name" : "dmac",
2809 "bitwidth" : 48
2810 },
2811 {
2812 "name" : "label",
2813 "bitwidth" : 20
2814 }
2815 ],
2816 "primitives" : [
2817 {
2818 "op" : "assign",
2819 "parameters" : [
2820 {
2821 "type" : "field",
2822 "value" : ["ethernet", "src_addr"]
2823 },
2824 {
2825 "type" : "runtime_data",
2826 "value" : 1
2827 }
2828 ],
2829 "source_info" : {
2830 "filename" : "include/control/next.p4",
2831 "line" : 37,
2832 "column" : 8,
2833 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2834 }
2835 },
2836 {
2837 "op" : "assign",
2838 "parameters" : [
2839 {
2840 "type" : "field",
2841 "value" : ["ethernet", "dst_addr"]
2842 },
2843 {
2844 "type" : "runtime_data",
2845 "value" : 2
2846 }
2847 ],
2848 "source_info" : {
2849 "filename" : "include/control/next.p4",
2850 "line" : 41,
2851 "column" : 8,
2852 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2853 }
2854 },
2855 {
2856 "op" : "assign",
2857 "parameters" : [
2858 {
2859 "type" : "field",
2860 "value" : ["standard_metadata", "egress_spec"]
2861 },
2862 {
2863 "type" : "runtime_data",
2864 "value" : 0
2865 }
2866 ],
2867 "source_info" : {
2868 "filename" : "include/control/next.p4",
2869 "line" : 149,
2870 "column" : 8,
2871 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2872 }
2873 },
2874 {
2875 "op" : "add_header",
2876 "parameters" : [
2877 {
2878 "type" : "header",
2879 "value" : "mpls"
2880 }
2881 ],
2882 "source_info" : {
2883 "filename" : "include/control/next.p4",
2884 "line" : 46,
2885 "column" : 8,
2886 "source_fragment" : "hdr.mpls.setValid()"
2887 }
2888 },
2889 {
2890 "op" : "assign",
2891 "parameters" : [
2892 {
2893 "type" : "field",
2894 "value" : ["vlan_tag", "ether_type"]
2895 },
2896 {
2897 "type" : "hexstr",
2898 "value" : "0x8847"
2899 }
2900 ],
2901 "source_info" : {
2902 "filename" : "include/control/../define.p4",
2903 "line" : 67,
2904 "column" : 31,
2905 "source_fragment" : "0x8847; ..."
2906 }
2907 },
2908 {
2909 "op" : "assign",
2910 "parameters" : [
2911 {
2912 "type" : "field",
2913 "value" : ["mpls", "label"]
2914 },
2915 {
2916 "type" : "runtime_data",
2917 "value" : 3
2918 }
2919 ],
2920 "source_info" : {
2921 "filename" : "include/control/next.p4",
2922 "line" : 48,
2923 "column" : 8,
2924 "source_fragment" : "hdr.mpls.label = label; ..."
2925 }
2926 },
2927 {
2928 "op" : "assign",
2929 "parameters" : [
2930 {
2931 "type" : "field",
2932 "value" : ["mpls", "tc"]
2933 },
2934 {
2935 "type" : "hexstr",
2936 "value" : "0x00"
2937 }
2938 ],
2939 "source_info" : {
2940 "filename" : "include/control/next.p4",
2941 "line" : 49,
2942 "column" : 8,
2943 "source_fragment" : "hdr.mpls.tc = tc; ..."
2944 }
2945 },
2946 {
2947 "op" : "assign",
2948 "parameters" : [
2949 {
2950 "type" : "field",
2951 "value" : ["mpls", "bos"]
2952 },
2953 {
2954 "type" : "hexstr",
2955 "value" : "0x01"
2956 }
2957 ],
2958 "source_info" : {
2959 "filename" : "include/control/next.p4",
2960 "line" : 50,
2961 "column" : 8,
2962 "source_fragment" : "hdr.mpls.bos = 1w1"
2963 }
2964 },
2965 {
2966 "op" : "assign",
2967 "parameters" : [
2968 {
2969 "type" : "field",
2970 "value" : ["mpls", "ttl"]
2971 },
2972 {
2973 "type" : "hexstr",
2974 "value" : "0x40"
2975 }
2976 ],
2977 "source_info" : {
2978 "filename" : "include/control/../define.p4",
2979 "line" : 87,
2980 "column" : 32,
2981 "source_fragment" : "64; ..."
2982 }
2983 }
2984 ]
2985 },
2986 {
2987 "name" : "FabricIngress.next.set_mcast_group",
2988 "id" : 38,
2989 "runtime_data" : [
2990 {
Esin Karaman971fb7f2017-12-28 13:44:52 +00002991 "name" : "gid",
2992 "bitwidth" : 16
2993 }
2994 ],
2995 "primitives" : [
2996 {
2997 "op" : "assign",
2998 "parameters" : [
2999 {
3000 "type" : "field",
3001 "value" : ["standard_metadata", "mcast_grp"]
3002 },
3003 {
3004 "type" : "runtime_data",
3005 "value" : 0
3006 }
3007 ],
3008 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003009 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08003010 "line" : 202,
Esin Karaman971fb7f2017-12-28 13:44:52 +00003011 "column" : 8,
3012 "source_fragment" : "standard_metadata.mcast_grp = gid"
3013 }
Carmelo Casconea5400af2018-07-17 22:11:54 +02003014 },
3015 {
3016 "op" : "assign",
3017 "parameters" : [
3018 {
3019 "type" : "field",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003020 "value" : ["scalars", "fabric_metadata_t.is_multicast"]
Carmelo Casconea5400af2018-07-17 22:11:54 +02003021 },
3022 {
3023 "type" : "expression",
3024 "value" : {
3025 "type" : "expression",
3026 "value" : {
3027 "op" : "b2d",
3028 "left" : null,
3029 "right" : {
3030 "type" : "bool",
3031 "value" : true
3032 }
3033 }
3034 }
3035 }
3036 ],
3037 "source_info" : {
3038 "filename" : "include/control/next.p4",
3039 "line" : 203,
3040 "column" : 8,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003041 "source_fragment" : "fabric_metadata.is_multicast = true"
Carmelo Casconea5400af2018-07-17 22:11:54 +02003042 }
Esin Karaman971fb7f2017-12-28 13:44:52 +00003043 }
3044 ]
3045 },
3046 {
3047 "name" : "act",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003048 "id" : 39,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003049 "runtime_data" : [],
3050 "primitives" : [
3051 {
3052 "op" : "assign",
3053 "parameters" : [
3054 {
3055 "type" : "field",
3056 "value" : ["standard_metadata", "egress_spec"]
3057 },
3058 {
3059 "type" : "field",
3060 "value" : ["packet_out", "egress_port"]
3061 }
3062 ],
3063 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003064 "filename" : "include/control/packetio.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003065 "line" : 26,
3066 "column" : 12,
3067 "source_fragment" : "standard_metadata.egress_spec = hdr.packet_out.egress_port"
3068 }
3069 },
3070 {
3071 "op" : "remove_header",
3072 "parameters" : [
3073 {
3074 "type" : "header",
3075 "value" : "packet_out"
3076 }
3077 ],
3078 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003079 "filename" : "include/control/packetio.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003080 "line" : 27,
3081 "column" : 12,
3082 "source_fragment" : "hdr.packet_out.setInvalid()"
3083 }
3084 }
3085 ]
3086 },
3087 {
3088 "name" : "act_0",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003089 "id" : 40,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003090 "runtime_data" : [],
3091 "primitives" : [
3092 {
3093 "op" : "assign",
3094 "parameters" : [
3095 {
3096 "type" : "field",
3097 "value" : ["scalars", "spgw_ingress_tmp_2"]
3098 },
3099 {
3100 "type" : "expression",
3101 "value" : {
3102 "type" : "expression",
3103 "value" : {
3104 "op" : "b2d",
3105 "left" : null,
3106 "right" : {
3107 "type" : "bool",
3108 "value" : true
3109 }
3110 }
3111 }
3112 }
3113 ]
3114 }
3115 ]
3116 },
3117 {
3118 "name" : "act_1",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003119 "id" : 41,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003120 "runtime_data" : [],
3121 "primitives" : [
3122 {
3123 "op" : "assign",
3124 "parameters" : [
3125 {
3126 "type" : "field",
3127 "value" : ["scalars", "spgw_ingress_tmp_2"]
3128 },
3129 {
3130 "type" : "expression",
3131 "value" : {
3132 "type" : "expression",
3133 "value" : {
3134 "op" : "b2d",
3135 "left" : null,
3136 "right" : {
3137 "type" : "bool",
3138 "value" : false
3139 }
3140 }
3141 }
3142 }
3143 ]
3144 }
3145 ]
3146 },
3147 {
3148 "name" : "act_2",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003149 "id" : 42,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003150 "runtime_data" : [],
3151 "primitives" : [
3152 {
3153 "op" : "assign",
3154 "parameters" : [
3155 {
3156 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003157 "value" : ["userMetadata.spgw", "s1u_enb_addr"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003158 },
3159 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003160 "type" : "field",
3161 "value" : ["ipv4", "src_addr"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003162 }
3163 ],
3164 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003165 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02003166 "line" : 147,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003167 "column" : 12,
3168 "source_fragment" : "spgw_meta.s1u_enb_addr = ipv4.src_addr"
3169 }
3170 },
3171 {
3172 "op" : "assign",
3173 "parameters" : [
3174 {
3175 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003176 "value" : ["userMetadata.spgw", "s1u_sgw_addr"]
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003177 },
3178 {
3179 "type" : "field",
3180 "value" : ["ipv4", "dst_addr"]
3181 }
3182 ],
3183 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003184 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02003185 "line" : 148,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003186 "column" : 12,
3187 "source_fragment" : "spgw_meta.s1u_sgw_addr = ipv4.dst_addr"
3188 }
3189 },
3190 {
3191 "op" : "assign_header",
3192 "parameters" : [
3193 {
3194 "type" : "header",
3195 "value" : "ipv4"
3196 },
3197 {
3198 "type" : "header",
3199 "value" : "gtpu_ipv4"
3200 }
3201 ],
3202 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003203 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02003204 "line" : 149,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003205 "column" : 17,
3206 "source_fragment" : "= gtpu_ipv4; ..."
3207 }
3208 },
3209 {
3210 "op" : "assign_header",
3211 "parameters" : [
3212 {
3213 "type" : "header",
3214 "value" : "udp"
3215 },
3216 {
3217 "type" : "header",
3218 "value" : "gtpu_udp"
3219 }
3220 ],
3221 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003222 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02003223 "line" : 150,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003224 "column" : 16,
3225 "source_fragment" : "= gtpu_udp; ..."
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003226 }
3227 }
3228 ]
3229 },
3230 {
3231 "name" : "act_3",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003232 "id" : 43,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003233 "runtime_data" : [],
3234 "primitives" : [
3235 {
3236 "op" : "assign",
3237 "parameters" : [
3238 {
3239 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003240 "value" : ["userMetadata.spgw", "do_spgw"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003241 },
3242 {
3243 "type" : "expression",
3244 "value" : {
3245 "type" : "expression",
3246 "value" : {
3247 "op" : "b2d",
3248 "left" : null,
3249 "right" : {
3250 "type" : "bool",
3251 "value" : true
3252 }
3253 }
3254 }
3255 }
3256 ],
3257 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003258 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02003259 "line" : 154,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003260 "column" : 16,
3261 "source_fragment" : "spgw_meta.do_spgw = true"
3262 }
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003263 },
3264 {
3265 "op" : "assign",
3266 "parameters" : [
3267 {
3268 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003269 "value" : ["userMetadata.spgw", "direction"]
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003270 },
3271 {
3272 "type" : "hexstr",
3273 "value" : "0x00"
3274 }
3275 ],
3276 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003277 "filename" : "include/control/../define.p4",
Carmelo Cascone228092b2018-06-15 20:41:10 +02003278 "line" : 98,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003279 "column" : 31,
3280 "source_fragment" : "1w0; ..."
3281 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003282 }
3283 ]
3284 },
3285 {
3286 "name" : "act_4",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003287 "id" : 44,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003288 "runtime_data" : [],
3289 "primitives" : [
3290 {
3291 "op" : "assign",
3292 "parameters" : [
3293 {
3294 "type" : "field",
3295 "value" : ["scalars", "spgw_ingress_tmp_3"]
3296 },
3297 {
3298 "type" : "expression",
3299 "value" : {
3300 "type" : "expression",
3301 "value" : {
3302 "op" : "b2d",
3303 "left" : null,
3304 "right" : {
3305 "type" : "bool",
3306 "value" : true
3307 }
3308 }
3309 }
3310 }
3311 ]
3312 }
3313 ]
3314 },
3315 {
3316 "name" : "act_5",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003317 "id" : 45,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003318 "runtime_data" : [],
3319 "primitives" : [
3320 {
3321 "op" : "assign",
3322 "parameters" : [
3323 {
3324 "type" : "field",
3325 "value" : ["scalars", "spgw_ingress_tmp_3"]
3326 },
3327 {
3328 "type" : "expression",
3329 "value" : {
3330 "type" : "expression",
3331 "value" : {
3332 "op" : "b2d",
3333 "left" : null,
3334 "right" : {
3335 "type" : "bool",
3336 "value" : false
3337 }
3338 }
3339 }
3340 }
3341 ]
3342 }
3343 ]
3344 },
3345 {
3346 "name" : "act_6",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003347 "id" : 46,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003348 "runtime_data" : [],
3349 "primitives" : [
3350 {
3351 "op" : "assign",
3352 "parameters" : [
3353 {
3354 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003355 "value" : ["userMetadata.spgw", "do_spgw"]
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003356 },
3357 {
3358 "type" : "expression",
3359 "value" : {
3360 "type" : "expression",
3361 "value" : {
3362 "op" : "b2d",
3363 "left" : null,
3364 "right" : {
3365 "type" : "bool",
3366 "value" : true
3367 }
3368 }
3369 }
3370 }
3371 ],
3372 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003373 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02003374 "line" : 158,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003375 "column" : 12,
3376 "source_fragment" : "spgw_meta.do_spgw = true"
3377 }
3378 },
3379 {
3380 "op" : "assign",
3381 "parameters" : [
3382 {
3383 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003384 "value" : ["userMetadata.spgw", "direction"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08003385 },
3386 {
3387 "type" : "hexstr",
3388 "value" : "0x01"
3389 }
3390 ],
3391 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003392 "filename" : "include/control/../define.p4",
Carmelo Cascone228092b2018-06-15 20:41:10 +02003393 "line" : 99,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003394 "column" : 33,
3395 "source_fragment" : "1w1; ..."
3396 }
3397 }
3398 ]
3399 },
3400 {
3401 "name" : "act_7",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003402 "id" : 47,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003403 "runtime_data" : [],
3404 "primitives" : [
3405 {
3406 "op" : "assign",
3407 "parameters" : [
3408 {
3409 "type" : "field",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003410 "value" : ["scalars", "spgw_ingress_hasReturned_0"]
3411 },
3412 {
3413 "type" : "expression",
3414 "value" : {
3415 "type" : "expression",
3416 "value" : {
3417 "op" : "b2d",
3418 "left" : null,
3419 "right" : {
3420 "type" : "bool",
3421 "value" : false
3422 }
3423 }
3424 }
3425 }
3426 ]
3427 },
3428 {
3429 "op" : "assign",
3430 "parameters" : [
3431 {
3432 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003433 "value" : ["userMetadata.spgw", "do_spgw"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003434 },
3435 {
3436 "type" : "expression",
3437 "value" : {
3438 "type" : "expression",
3439 "value" : {
3440 "op" : "b2d",
3441 "left" : null,
3442 "right" : {
3443 "type" : "bool",
Esin Karaman971fb7f2017-12-28 13:44:52 +00003444 "value" : false
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003445 }
3446 }
3447 }
3448 }
3449 ],
3450 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003451 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02003452 "line" : 141,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003453 "column" : 8,
Esin Karaman971fb7f2017-12-28 13:44:52 +00003454 "source_fragment" : "spgw_meta.do_spgw = false"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003455 }
3456 }
3457 ]
3458 },
3459 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003460 "name" : "act_8",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003461 "id" : 48,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003462 "runtime_data" : [],
3463 "primitives" : [
3464 {
3465 "op" : "assign",
3466 "parameters" : [
3467 {
3468 "type" : "field",
3469 "value" : ["scalars", "spgw_ingress_hasReturned_0"]
3470 },
3471 {
3472 "type" : "expression",
3473 "value" : {
3474 "type" : "expression",
3475 "value" : {
3476 "op" : "b2d",
3477 "left" : null,
3478 "right" : {
3479 "type" : "bool",
3480 "value" : true
3481 }
3482 }
3483 }
3484 }
3485 ],
3486 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003487 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02003488 "line" : 164,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003489 "column" : 12,
3490 "source_fragment" : "return"
3491 }
3492 }
3493 ]
3494 },
3495 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003496 "name" : "act_9",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003497 "id" : 49,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003498 "runtime_data" : [],
3499 "primitives" : [
3500 {
3501 "op" : "assign",
3502 "parameters" : [
3503 {
3504 "type" : "field",
3505 "value" : ["scalars", "spgw_ingress_tmp_4"]
3506 },
3507 {
3508 "type" : "expression",
3509 "value" : {
3510 "type" : "expression",
3511 "value" : {
3512 "op" : "b2d",
3513 "left" : null,
3514 "right" : {
3515 "type" : "bool",
3516 "value" : true
3517 }
3518 }
3519 }
3520 }
3521 ]
3522 }
3523 ]
3524 },
3525 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003526 "name" : "act_10",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003527 "id" : 50,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003528 "runtime_data" : [],
3529 "primitives" : [
3530 {
3531 "op" : "assign",
3532 "parameters" : [
3533 {
3534 "type" : "field",
3535 "value" : ["scalars", "spgw_ingress_tmp_4"]
3536 },
3537 {
3538 "type" : "expression",
3539 "value" : {
3540 "type" : "expression",
3541 "value" : {
3542 "op" : "b2d",
3543 "left" : null,
3544 "right" : {
3545 "type" : "bool",
3546 "value" : false
3547 }
3548 }
3549 }
3550 }
3551 ]
3552 }
3553 ]
3554 },
3555 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003556 "name" : "act_11",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003557 "id" : 51,
Yi Tseng27b9bc02018-04-12 14:52:40 +08003558 "runtime_data" : [],
3559 "primitives" : [
3560 {
3561 "op" : "assign",
3562 "parameters" : [
3563 {
3564 "type" : "field",
3565 "value" : ["userMetadata.spgw", "ipv4_len"]
3566 },
3567 {
3568 "type" : "field",
3569 "value" : ["ipv4", "total_len"]
3570 }
3571 ],
3572 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003573 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02003574 "line" : 194,
Yi Tseng27b9bc02018-04-12 14:52:40 +08003575 "column" : 8,
3576 "source_fragment" : "spgw_meta.ipv4_len = ipv4.total_len"
3577 }
3578 }
3579 ]
3580 },
3581 {
3582 "name" : "act_12",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003583 "id" : 52,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003584 "runtime_data" : [],
3585 "primitives" : [
3586 {
3587 "op" : "assign",
3588 "parameters" : [
3589 {
3590 "type" : "field",
3591 "value" : ["vlan_tag", "ether_type"]
3592 },
3593 {
3594 "type" : "hexstr",
3595 "value" : "0x0800"
3596 }
3597 ],
3598 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003599 "filename" : "include/control/../define.p4",
Carmelo Cascone228092b2018-06-15 20:41:10 +02003600 "line" : 69,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003601 "column" : 31,
3602 "source_fragment" : "0x0800; ..."
3603 }
3604 },
3605 {
3606 "op" : "assign",
3607 "parameters" : [
3608 {
3609 "type" : "field",
3610 "value" : ["scalars", "fabric_metadata_t.original_ether_type"]
3611 },
3612 {
3613 "type" : "hexstr",
3614 "value" : "0x0800"
3615 }
3616 ],
3617 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003618 "filename" : "include/control/../define.p4",
Carmelo Cascone228092b2018-06-15 20:41:10 +02003619 "line" : 69,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003620 "column" : 31,
3621 "source_fragment" : "0x0800; ..."
3622 }
3623 }
3624 ]
3625 },
3626 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003627 "name" : "act_13",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003628 "id" : 53,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003629 "runtime_data" : [],
3630 "primitives" : [
3631 {
3632 "op" : "assign",
3633 "parameters" : [
3634 {
3635 "type" : "field",
Carmelo Casconea5400af2018-07-17 22:11:54 +02003636 "value" : ["scalars", "next_hasReturned_0"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003637 },
3638 {
3639 "type" : "expression",
3640 "value" : {
3641 "type" : "expression",
3642 "value" : {
3643 "op" : "b2d",
3644 "left" : null,
3645 "right" : {
3646 "type" : "bool",
3647 "value" : false
3648 }
3649 }
3650 }
3651 }
3652 ]
3653 }
3654 ]
3655 },
3656 {
Carmelo Casconea5400af2018-07-17 22:11:54 +02003657 "name" : "act_14",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003658 "id" : 54,
Carmelo Casconea5400af2018-07-17 22:11:54 +02003659 "runtime_data" : [],
3660 "primitives" : [
3661 {
3662 "op" : "assign",
3663 "parameters" : [
3664 {
3665 "type" : "field",
3666 "value" : ["scalars", "next_tmp_4"]
3667 },
3668 {
3669 "type" : "expression",
3670 "value" : {
3671 "type" : "expression",
3672 "value" : {
3673 "op" : "b2d",
3674 "left" : null,
3675 "right" : {
3676 "type" : "bool",
3677 "value" : true
3678 }
3679 }
3680 }
3681 }
3682 ]
3683 }
3684 ]
3685 },
3686 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003687 "name" : "act_15",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003688 "id" : 55,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003689 "runtime_data" : [],
3690 "primitives" : [
3691 {
3692 "op" : "assign",
3693 "parameters" : [
3694 {
3695 "type" : "field",
Carmelo Casconea5400af2018-07-17 22:11:54 +02003696 "value" : ["scalars", "next_tmp_4"]
3697 },
3698 {
3699 "type" : "expression",
3700 "value" : {
3701 "type" : "expression",
3702 "value" : {
3703 "op" : "b2d",
3704 "left" : null,
3705 "right" : {
3706 "type" : "bool",
3707 "value" : false
3708 }
3709 }
3710 }
3711 }
3712 ]
3713 }
3714 ]
3715 },
3716 {
3717 "name" : "act_16",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003718 "id" : 56,
Carmelo Casconea5400af2018-07-17 22:11:54 +02003719 "runtime_data" : [],
3720 "primitives" : [
3721 {
3722 "op" : "assign",
3723 "parameters" : [
3724 {
3725 "type" : "field",
3726 "value" : ["scalars", "next_tmp_3"]
3727 },
3728 {
3729 "type" : "expression",
3730 "value" : {
3731 "type" : "expression",
3732 "value" : {
3733 "op" : "b2d",
3734 "left" : null,
3735 "right" : {
3736 "type" : "bool",
3737 "value" : true
3738 }
3739 }
3740 }
3741 }
3742 ]
3743 }
3744 ]
3745 },
3746 {
3747 "name" : "act_17",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003748 "id" : 57,
Carmelo Casconea5400af2018-07-17 22:11:54 +02003749 "runtime_data" : [],
3750 "primitives" : [
3751 {
3752 "op" : "assign",
3753 "parameters" : [
3754 {
3755 "type" : "field",
3756 "value" : ["scalars", "next_tmp_3"]
3757 },
3758 {
3759 "type" : "expression",
3760 "value" : {
3761 "type" : "expression",
3762 "value" : {
3763 "op" : "b2d",
3764 "left" : null,
3765 "right" : {
3766 "type" : "bool",
3767 "value" : false
3768 }
3769 }
3770 }
3771 }
3772 ]
3773 }
3774 ]
3775 },
3776 {
3777 "name" : "act_18",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003778 "id" : 58,
Carmelo Casconea5400af2018-07-17 22:11:54 +02003779 "runtime_data" : [],
3780 "primitives" : [
3781 {
3782 "op" : "assign",
3783 "parameters" : [
3784 {
3785 "type" : "field",
3786 "value" : ["scalars", "next_tmp_2"]
3787 },
3788 {
3789 "type" : "expression",
3790 "value" : {
3791 "type" : "expression",
3792 "value" : {
3793 "op" : "b2d",
3794 "left" : null,
3795 "right" : {
3796 "type" : "bool",
3797 "value" : true
3798 }
3799 }
3800 }
3801 }
3802 ]
3803 }
3804 ]
3805 },
3806 {
3807 "name" : "act_19",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003808 "id" : 59,
Carmelo Casconea5400af2018-07-17 22:11:54 +02003809 "runtime_data" : [],
3810 "primitives" : [
3811 {
3812 "op" : "assign",
3813 "parameters" : [
3814 {
3815 "type" : "field",
3816 "value" : ["scalars", "next_tmp_2"]
3817 },
3818 {
3819 "type" : "expression",
3820 "value" : {
3821 "type" : "expression",
3822 "value" : {
3823 "op" : "b2d",
3824 "left" : null,
3825 "right" : {
3826 "type" : "bool",
3827 "value" : false
3828 }
3829 }
3830 }
3831 }
3832 ]
3833 }
3834 ]
3835 },
3836 {
3837 "name" : "act_20",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003838 "id" : 60,
Carmelo Casconea5400af2018-07-17 22:11:54 +02003839 "runtime_data" : [],
3840 "primitives" : [
3841 {
3842 "op" : "assign",
3843 "parameters" : [
3844 {
3845 "type" : "field",
3846 "value" : ["scalars", "next_hasReturned_0"]
3847 },
3848 {
3849 "type" : "expression",
3850 "value" : {
3851 "type" : "expression",
3852 "value" : {
3853 "op" : "b2d",
3854 "left" : null,
3855 "right" : {
3856 "type" : "bool",
3857 "value" : true
3858 }
3859 }
3860 }
3861 }
3862 ],
3863 "source_info" : {
3864 "filename" : "include/control/next.p4",
3865 "line" : 223,
3866 "column" : 20,
3867 "source_fragment" : "return"
3868 }
3869 }
3870 ]
3871 },
3872 {
3873 "name" : "act_21",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003874 "id" : 61,
Carmelo Casconea5400af2018-07-17 22:11:54 +02003875 "runtime_data" : [],
3876 "primitives" : [
3877 {
3878 "op" : "assign",
3879 "parameters" : [
3880 {
3881 "type" : "field",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003882 "value" : ["ipv4", "ttl"]
3883 },
3884 {
3885 "type" : "expression",
3886 "value" : {
3887 "type" : "expression",
3888 "value" : {
3889 "op" : "&",
3890 "left" : {
3891 "type" : "expression",
3892 "value" : {
3893 "op" : "+",
3894 "left" : {
3895 "type" : "field",
3896 "value" : ["ipv4", "ttl"]
3897 },
3898 "right" : {
3899 "type" : "hexstr",
3900 "value" : "0xff"
3901 }
3902 }
3903 },
3904 "right" : {
3905 "type" : "hexstr",
3906 "value" : "0xff"
3907 }
3908 }
3909 }
3910 }
3911 ],
3912 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003913 "filename" : "include/control/next.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02003914 "line" : 230,
3915 "column" : 16,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003916 "source_fragment" : "hdr.ipv4.ttl = hdr.ipv4.ttl - 1"
3917 }
3918 }
3919 ]
3920 },
3921 {
Carmelo Casconea5400af2018-07-17 22:11:54 +02003922 "name" : "act_22",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003923 "id" : 62,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003924 "runtime_data" : [],
3925 "primitives" : [
3926 {
3927 "op" : "assign",
3928 "parameters" : [
3929 {
3930 "type" : "field",
3931 "value" : ["scalars", "tmp_0"]
3932 },
3933 {
3934 "type" : "expression",
3935 "value" : {
3936 "type" : "expression",
3937 "value" : {
3938 "op" : "&",
3939 "left" : {
3940 "type" : "field",
3941 "value" : ["standard_metadata", "egress_spec"]
3942 },
3943 "right" : {
3944 "type" : "hexstr",
3945 "value" : "0xffffffff"
3946 }
3947 }
3948 }
3949 }
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003950 ],
3951 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003952 "filename" : "include/control/port_counter.p4",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003953 "line" : 28,
3954 "column" : 38,
3955 "source_fragment" : "(bit<32>)standard_metadata.egress_spec"
3956 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003957 },
3958 {
3959 "op" : "count",
3960 "parameters" : [
3961 {
3962 "type" : "counter_array",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003963 "value" : "FabricIngress.port_counters_control.egress_port_counter"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003964 },
3965 {
3966 "type" : "field",
3967 "value" : ["scalars", "tmp_0"]
3968 }
3969 ],
3970 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003971 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003972 "line" : 28,
3973 "column" : 12,
3974 "source_fragment" : "egress_port_counter.count((bit<32>)standard_metadata.egress_spec)"
3975 }
3976 }
3977 ]
3978 },
3979 {
Carmelo Casconea5400af2018-07-17 22:11:54 +02003980 "name" : "act_23",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003981 "id" : 63,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003982 "runtime_data" : [],
3983 "primitives" : [
3984 {
3985 "op" : "assign",
3986 "parameters" : [
3987 {
3988 "type" : "field",
3989 "value" : ["scalars", "tmp_1"]
3990 },
3991 {
3992 "type" : "expression",
3993 "value" : {
3994 "type" : "expression",
3995 "value" : {
3996 "op" : "&",
3997 "left" : {
3998 "type" : "field",
3999 "value" : ["standard_metadata", "ingress_port"]
4000 },
4001 "right" : {
4002 "type" : "hexstr",
4003 "value" : "0xffffffff"
4004 }
4005 }
4006 }
4007 }
Carmelo Cascone6af4e172018-06-15 16:01:30 +02004008 ],
4009 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004010 "filename" : "include/control/port_counter.p4",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02004011 "line" : 31,
4012 "column" : 39,
4013 "source_fragment" : "(bit<32>)standard_metadata.ingress_port"
4014 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004015 },
4016 {
4017 "op" : "count",
4018 "parameters" : [
4019 {
4020 "type" : "counter_array",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004021 "value" : "FabricIngress.port_counters_control.ingress_port_counter"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004022 },
4023 {
4024 "type" : "field",
4025 "value" : ["scalars", "tmp_1"]
4026 }
4027 ],
4028 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004029 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004030 "line" : 31,
4031 "column" : 12,
4032 "source_fragment" : "ingress_port_counter.count((bit<32>)standard_metadata.ingress_port)"
4033 }
4034 }
4035 ]
4036 },
4037 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004038 "name" : "nop",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02004039 "id" : 64,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004040 "runtime_data" : [],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004041 "primitives" : []
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004042 },
4043 {
Carmelo Casconea5400af2018-07-17 22:11:54 +02004044 "name" : "drop_now",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02004045 "id" : 65,
4046 "runtime_data" : [],
4047 "primitives" : [
4048 {
4049 "op" : "drop",
4050 "parameters" : [],
4051 "source_info" : {
4052 "filename" : "include/control/../action.p4",
4053 "line" : 24,
4054 "column" : 4,
4055 "source_fragment" : "mark_to_drop()"
4056 }
4057 },
4058 {
4059 "op" : "exit",
4060 "parameters" : [],
4061 "source_info" : {
4062 "filename" : "include/control/../action.p4",
4063 "line" : 25,
4064 "column" : 4,
4065 "source_fragment" : "exit"
4066 }
4067 }
4068 ]
4069 },
4070 {
4071 "name" : "drop_now",
4072 "id" : 66,
Carmelo Casconea5400af2018-07-17 22:11:54 +02004073 "runtime_data" : [],
4074 "primitives" : [
4075 {
4076 "op" : "drop",
4077 "parameters" : [],
4078 "source_info" : {
4079 "filename" : "include/control/../action.p4",
4080 "line" : 24,
4081 "column" : 4,
4082 "source_fragment" : "mark_to_drop()"
4083 }
4084 },
4085 {
4086 "op" : "exit",
4087 "parameters" : [],
4088 "source_info" : {
4089 "filename" : "include/control/../action.p4",
4090 "line" : 25,
4091 "column" : 4,
4092 "source_fragment" : "exit"
4093 }
4094 }
4095 ]
4096 },
4097 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004098 "name" : "FabricEgress.spgw_egress.gtpu_encap",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02004099 "id" : 67,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004100 "runtime_data" : [],
4101 "primitives" : [
4102 {
4103 "op" : "add_header",
4104 "parameters" : [
4105 {
4106 "type" : "header",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004107 "value" : "gtpu_ipv4"
4108 }
4109 ],
4110 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004111 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004112 "line" : 209,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004113 "column" : 8,
4114 "source_fragment" : "gtpu_ipv4.setValid()"
4115 }
4116 },
4117 {
4118 "op" : "assign",
4119 "parameters" : [
4120 {
4121 "type" : "field",
4122 "value" : ["gtpu_ipv4", "version"]
4123 },
4124 {
4125 "type" : "hexstr",
4126 "value" : "0x04"
4127 }
4128 ],
4129 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004130 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004131 "line" : 210,
Yi Tseng3d3956d2018-01-31 17:28:05 -08004132 "column" : 8,
4133 "source_fragment" : "gtpu_ipv4.version = 4"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004134 }
4135 },
4136 {
4137 "op" : "assign",
4138 "parameters" : [
4139 {
4140 "type" : "field",
4141 "value" : ["gtpu_ipv4", "ihl"]
4142 },
4143 {
4144 "type" : "hexstr",
4145 "value" : "0x05"
4146 }
4147 ],
4148 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004149 "filename" : "include/control/../define.p4",
Carmelo Cascone228092b2018-06-15 20:41:10 +02004150 "line" : 78,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004151 "column" : 28,
4152 "source_fragment" : "5; ..."
4153 }
4154 },
4155 {
4156 "op" : "assign",
4157 "parameters" : [
4158 {
4159 "type" : "field",
4160 "value" : ["gtpu_ipv4", "diffserv"]
4161 },
4162 {
4163 "type" : "hexstr",
4164 "value" : "0x00"
4165 }
4166 ],
4167 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004168 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004169 "line" : 212,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004170 "column" : 8,
4171 "source_fragment" : "gtpu_ipv4.diffserv = 0"
4172 }
4173 },
4174 {
4175 "op" : "assign",
4176 "parameters" : [
4177 {
4178 "type" : "field",
4179 "value" : ["gtpu_ipv4", "total_len"]
4180 },
4181 {
4182 "type" : "expression",
4183 "value" : {
4184 "type" : "expression",
4185 "value" : {
4186 "op" : "&",
4187 "left" : {
4188 "type" : "expression",
4189 "value" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004190 "op" : "+",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004191 "left" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004192 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004193 "value" : ["userMetadata.spgw", "ipv4_len"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08004194 },
4195 "right" : {
4196 "type" : "hexstr",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004197 "value" : "0x0024"
Carmelo Cascone14cde402018-01-25 01:57:18 -08004198 }
4199 }
4200 },
4201 "right" : {
4202 "type" : "hexstr",
4203 "value" : "0xffff"
4204 }
4205 }
4206 }
4207 }
4208 ],
4209 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004210 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004211 "line" : 213,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004212 "column" : 8,
Yi Tseng27b9bc02018-04-12 14:52:40 +08004213 "source_fragment" : "gtpu_ipv4.total_len = spgw_meta.ipv4_len ..."
Carmelo Cascone14cde402018-01-25 01:57:18 -08004214 }
4215 },
4216 {
4217 "op" : "assign",
4218 "parameters" : [
4219 {
4220 "type" : "field",
4221 "value" : ["gtpu_ipv4", "identification"]
4222 },
4223 {
4224 "type" : "hexstr",
4225 "value" : "0x1513"
4226 }
4227 ],
4228 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004229 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004230 "line" : 215,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004231 "column" : 8,
4232 "source_fragment" : "gtpu_ipv4.identification = 0x1513"
4233 }
4234 },
4235 {
4236 "op" : "assign",
4237 "parameters" : [
4238 {
4239 "type" : "field",
4240 "value" : ["gtpu_ipv4", "flags"]
4241 },
4242 {
4243 "type" : "hexstr",
4244 "value" : "0x00"
4245 }
4246 ],
4247 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004248 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004249 "line" : 216,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004250 "column" : 8,
4251 "source_fragment" : "gtpu_ipv4.flags = 0"
4252 }
4253 },
4254 {
4255 "op" : "assign",
4256 "parameters" : [
4257 {
4258 "type" : "field",
4259 "value" : ["gtpu_ipv4", "frag_offset"]
4260 },
4261 {
4262 "type" : "hexstr",
4263 "value" : "0x0000"
4264 }
4265 ],
4266 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004267 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004268 "line" : 217,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004269 "column" : 8,
4270 "source_fragment" : "gtpu_ipv4.frag_offset = 0"
4271 }
4272 },
4273 {
4274 "op" : "assign",
4275 "parameters" : [
4276 {
4277 "type" : "field",
4278 "value" : ["gtpu_ipv4", "ttl"]
4279 },
4280 {
4281 "type" : "hexstr",
4282 "value" : "0x40"
4283 }
4284 ],
4285 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004286 "filename" : "include/control/../define.p4",
Carmelo Cascone228092b2018-06-15 20:41:10 +02004287 "line" : 88,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004288 "column" : 32,
4289 "source_fragment" : "64; ..."
4290 }
4291 },
4292 {
4293 "op" : "assign",
4294 "parameters" : [
4295 {
4296 "type" : "field",
4297 "value" : ["gtpu_ipv4", "protocol"]
4298 },
4299 {
4300 "type" : "hexstr",
4301 "value" : "0x11"
4302 }
4303 ],
4304 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004305 "filename" : "include/control/../define.p4",
Carmelo Cascone228092b2018-06-15 20:41:10 +02004306 "line" : 75,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004307 "column" : 25,
4308 "source_fragment" : "17; ..."
4309 }
4310 },
4311 {
4312 "op" : "assign",
4313 "parameters" : [
4314 {
4315 "type" : "field",
4316 "value" : ["gtpu_ipv4", "dst_addr"]
4317 },
4318 {
4319 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004320 "value" : ["userMetadata.spgw", "s1u_enb_addr"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08004321 }
4322 ],
4323 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004324 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004325 "line" : 220,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004326 "column" : 8,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004327 "source_fragment" : "gtpu_ipv4.dst_addr = spgw_meta.s1u_enb_addr"
Carmelo Cascone14cde402018-01-25 01:57:18 -08004328 }
4329 },
4330 {
4331 "op" : "assign",
4332 "parameters" : [
4333 {
4334 "type" : "field",
4335 "value" : ["gtpu_ipv4", "src_addr"]
4336 },
4337 {
4338 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004339 "value" : ["userMetadata.spgw", "s1u_sgw_addr"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08004340 }
4341 ],
4342 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004343 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004344 "line" : 221,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004345 "column" : 8,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004346 "source_fragment" : "gtpu_ipv4.src_addr = spgw_meta.s1u_sgw_addr"
Carmelo Cascone14cde402018-01-25 01:57:18 -08004347 }
4348 },
4349 {
4350 "op" : "assign",
4351 "parameters" : [
4352 {
4353 "type" : "field",
4354 "value" : ["gtpu_ipv4", "hdr_checksum"]
4355 },
4356 {
4357 "type" : "hexstr",
4358 "value" : "0x0000"
4359 }
4360 ],
4361 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004362 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004363 "line" : 222,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004364 "column" : 8,
4365 "source_fragment" : "gtpu_ipv4.hdr_checksum = 0"
4366 }
4367 },
4368 {
4369 "op" : "add_header",
4370 "parameters" : [
4371 {
4372 "type" : "header",
4373 "value" : "gtpu_udp"
4374 }
4375 ],
4376 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004377 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004378 "line" : 224,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004379 "column" : 8,
4380 "source_fragment" : "gtpu_udp.setValid()"
4381 }
4382 },
4383 {
4384 "op" : "assign",
4385 "parameters" : [
4386 {
4387 "type" : "field",
4388 "value" : ["gtpu_udp", "src_port"]
4389 },
4390 {
4391 "type" : "hexstr",
4392 "value" : "0x0868"
4393 }
4394 ],
4395 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004396 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004397 "line" : 225,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004398 "column" : 8,
4399 "source_fragment" : "gtpu_udp.src_port = 2152"
4400 }
4401 },
4402 {
4403 "op" : "assign",
4404 "parameters" : [
4405 {
4406 "type" : "field",
4407 "value" : ["gtpu_udp", "dst_port"]
4408 },
4409 {
4410 "type" : "hexstr",
4411 "value" : "0x0868"
4412 }
4413 ],
4414 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004415 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004416 "line" : 226,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004417 "column" : 8,
4418 "source_fragment" : "gtpu_udp.dst_port = 2152"
4419 }
4420 },
4421 {
4422 "op" : "assign",
4423 "parameters" : [
4424 {
4425 "type" : "field",
4426 "value" : ["gtpu_udp", "len"]
4427 },
4428 {
4429 "type" : "expression",
4430 "value" : {
4431 "type" : "expression",
4432 "value" : {
4433 "op" : "&",
4434 "left" : {
4435 "type" : "expression",
4436 "value" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004437 "op" : "+",
Carmelo Cascone14cde402018-01-25 01:57:18 -08004438 "left" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004439 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004440 "value" : ["userMetadata.spgw", "ipv4_len"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004441 },
4442 "right" : {
4443 "type" : "hexstr",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004444 "value" : "0x0010"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004445 }
4446 }
4447 },
4448 "right" : {
4449 "type" : "hexstr",
4450 "value" : "0xffff"
4451 }
4452 }
4453 }
4454 }
4455 ],
4456 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004457 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004458 "line" : 227,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004459 "column" : 8,
Yi Tseng27b9bc02018-04-12 14:52:40 +08004460 "source_fragment" : "gtpu_udp.len = spgw_meta.ipv4_len ..."
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004461 }
4462 },
4463 {
4464 "op" : "assign",
4465 "parameters" : [
4466 {
4467 "type" : "field",
4468 "value" : ["gtpu_udp", "checksum"]
4469 },
4470 {
4471 "type" : "hexstr",
4472 "value" : "0x0000"
4473 }
4474 ],
4475 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004476 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004477 "line" : 229,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004478 "column" : 8,
4479 "source_fragment" : "gtpu_udp.checksum = 0"
4480 }
Carmelo Cascone14cde402018-01-25 01:57:18 -08004481 },
4482 {
4483 "op" : "add_header",
4484 "parameters" : [
4485 {
4486 "type" : "header",
4487 "value" : "gtpu"
4488 }
4489 ],
4490 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004491 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004492 "line" : 231,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004493 "column" : 8,
4494 "source_fragment" : "gtpu.setValid()"
4495 }
4496 },
4497 {
4498 "op" : "assign",
4499 "parameters" : [
4500 {
4501 "type" : "field",
4502 "value" : ["gtpu", "version"]
4503 },
4504 {
4505 "type" : "hexstr",
4506 "value" : "0x01"
4507 }
4508 ],
4509 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004510 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004511 "line" : 232,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004512 "column" : 8,
4513 "source_fragment" : "gtpu.version = 0x01"
4514 }
4515 },
4516 {
4517 "op" : "assign",
4518 "parameters" : [
4519 {
4520 "type" : "field",
4521 "value" : ["gtpu", "pt"]
4522 },
4523 {
4524 "type" : "hexstr",
4525 "value" : "0x01"
4526 }
4527 ],
4528 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004529 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004530 "line" : 233,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004531 "column" : 8,
4532 "source_fragment" : "gtpu.pt = 0x01"
4533 }
4534 },
4535 {
4536 "op" : "assign",
4537 "parameters" : [
4538 {
4539 "type" : "field",
4540 "value" : ["gtpu", "spare"]
4541 },
4542 {
4543 "type" : "hexstr",
4544 "value" : "0x00"
4545 }
4546 ],
4547 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004548 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004549 "line" : 234,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004550 "column" : 8,
4551 "source_fragment" : "gtpu.spare = 0"
4552 }
4553 },
4554 {
4555 "op" : "assign",
4556 "parameters" : [
4557 {
4558 "type" : "field",
4559 "value" : ["gtpu", "ex_flag"]
4560 },
4561 {
4562 "type" : "hexstr",
4563 "value" : "0x00"
4564 }
4565 ],
4566 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004567 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004568 "line" : 235,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004569 "column" : 8,
4570 "source_fragment" : "gtpu.ex_flag = 0"
4571 }
4572 },
4573 {
4574 "op" : "assign",
4575 "parameters" : [
4576 {
4577 "type" : "field",
4578 "value" : ["gtpu", "seq_flag"]
4579 },
4580 {
4581 "type" : "hexstr",
4582 "value" : "0x00"
4583 }
4584 ],
4585 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004586 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004587 "line" : 236,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004588 "column" : 8,
4589 "source_fragment" : "gtpu.seq_flag = 0"
4590 }
4591 },
4592 {
4593 "op" : "assign",
4594 "parameters" : [
4595 {
4596 "type" : "field",
4597 "value" : ["gtpu", "npdu_flag"]
4598 },
4599 {
4600 "type" : "hexstr",
4601 "value" : "0x00"
4602 }
4603 ],
4604 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004605 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004606 "line" : 237,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004607 "column" : 8,
4608 "source_fragment" : "gtpu.npdu_flag = 0"
4609 }
4610 },
4611 {
4612 "op" : "assign",
4613 "parameters" : [
4614 {
4615 "type" : "field",
4616 "value" : ["gtpu", "msgtype"]
4617 },
4618 {
4619 "type" : "hexstr",
4620 "value" : "0xff"
4621 }
4622 ],
4623 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004624 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004625 "line" : 238,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004626 "column" : 8,
4627 "source_fragment" : "gtpu.msgtype = 0xff"
4628 }
4629 },
4630 {
4631 "op" : "assign",
4632 "parameters" : [
4633 {
4634 "type" : "field",
4635 "value" : ["gtpu", "msglen"]
4636 },
4637 {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004638 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004639 "value" : ["userMetadata.spgw", "ipv4_len"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08004640 }
4641 ],
4642 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004643 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004644 "line" : 239,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004645 "column" : 8,
Yi Tseng27b9bc02018-04-12 14:52:40 +08004646 "source_fragment" : "gtpu.msglen = spgw_meta.ipv4_len"
Carmelo Cascone14cde402018-01-25 01:57:18 -08004647 }
4648 },
4649 {
4650 "op" : "assign",
4651 "parameters" : [
4652 {
4653 "type" : "field",
4654 "value" : ["gtpu", "teid"]
4655 },
4656 {
4657 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004658 "value" : ["userMetadata.spgw", "teid"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08004659 }
4660 ],
4661 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004662 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004663 "line" : 240,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004664 "column" : 8,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004665 "source_fragment" : "gtpu.teid = spgw_meta.teid"
Carmelo Cascone14cde402018-01-25 01:57:18 -08004666 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004667 }
4668 ]
4669 },
4670 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004671 "name" : "FabricEgress.pkt_io_egress.pop_vlan",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02004672 "id" : 68,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004673 "runtime_data" : [],
4674 "primitives" : [
4675 {
4676 "op" : "assign",
4677 "parameters" : [
4678 {
4679 "type" : "field",
4680 "value" : ["ethernet", "ether_type"]
4681 },
4682 {
4683 "type" : "field",
4684 "value" : ["vlan_tag", "ether_type"]
4685 }
4686 ],
4687 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004688 "filename" : "include/control/packetio.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08004689 "line" : 38,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004690 "column" : 8,
4691 "source_fragment" : "hdr.ethernet.ether_type = hdr.vlan_tag.ether_type"
4692 }
4693 },
4694 {
4695 "op" : "remove_header",
4696 "parameters" : [
4697 {
4698 "type" : "header",
4699 "value" : "vlan_tag"
4700 }
4701 ],
4702 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004703 "filename" : "include/control/packetio.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08004704 "line" : 39,
4705 "column" : 8,
4706 "source_fragment" : "hdr.vlan_tag.setInvalid()"
4707 }
4708 }
4709 ]
4710 },
4711 {
4712 "name" : "FabricEgress.egress_next.pop_vlan",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02004713 "id" : 69,
Yi Tseng47eac892018-07-11 02:17:04 +08004714 "runtime_data" : [],
4715 "primitives" : [
4716 {
4717 "op" : "assign",
4718 "parameters" : [
4719 {
4720 "type" : "field",
4721 "value" : ["ethernet", "ether_type"]
4722 },
4723 {
4724 "type" : "field",
4725 "value" : ["vlan_tag", "ether_type"]
4726 }
4727 ],
4728 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004729 "filename" : "include/control/next.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004730 "line" : 253,
Yi Tseng47eac892018-07-11 02:17:04 +08004731 "column" : 8,
4732 "source_fragment" : "hdr.ethernet.ether_type = hdr.vlan_tag.ether_type"
4733 }
4734 },
4735 {
4736 "op" : "remove_header",
4737 "parameters" : [
4738 {
4739 "type" : "header",
4740 "value" : "vlan_tag"
4741 }
4742 ],
4743 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004744 "filename" : "include/control/next.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004745 "line" : 254,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004746 "column" : 8,
4747 "source_fragment" : "hdr.vlan_tag.setInvalid()"
4748 }
4749 }
4750 ]
4751 },
4752 {
Carmelo Casconea5400af2018-07-17 22:11:54 +02004753 "name" : "act_24",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02004754 "id" : 70,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004755 "runtime_data" : [],
4756 "primitives" : [
4757 {
4758 "op" : "add_header",
4759 "parameters" : [
4760 {
4761 "type" : "header",
4762 "value" : "packet_in"
4763 }
4764 ],
4765 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004766 "filename" : "include/control/packetio.p4",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02004767 "line" : 51,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004768 "column" : 12,
4769 "source_fragment" : "hdr.packet_in.setValid()"
4770 }
4771 },
4772 {
4773 "op" : "assign",
4774 "parameters" : [
4775 {
4776 "type" : "field",
4777 "value" : ["packet_in", "ingress_port"]
4778 },
4779 {
4780 "type" : "field",
4781 "value" : ["standard_metadata", "ingress_port"]
4782 }
4783 ],
4784 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004785 "filename" : "include/control/packetio.p4",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02004786 "line" : 52,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004787 "column" : 12,
4788 "source_fragment" : "hdr.packet_in.ingress_port = standard_metadata.ingress_port"
4789 }
4790 }
4791 ]
4792 },
4793 {
Carmelo Casconea5400af2018-07-17 22:11:54 +02004794 "name" : "act_25",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02004795 "id" : 71,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004796 "runtime_data" : [],
4797 "primitives" : [
4798 {
4799 "op" : "remove_header",
4800 "parameters" : [
4801 {
4802 "type" : "header",
4803 "value" : "gtpu_ipv4"
4804 }
4805 ],
4806 "source_info" : {
4807 "filename" : "fabric.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004808 "line" : 71,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004809 "column" : 36,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004810 "source_fragment" : "hdr.gtpu_ipv4"
4811 }
4812 },
4813 {
4814 "op" : "remove_header",
4815 "parameters" : [
4816 {
4817 "type" : "header",
4818 "value" : "gtpu_udp"
4819 }
4820 ],
4821 "source_info" : {
4822 "filename" : "fabric.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004823 "line" : 71,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004824 "column" : 51,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004825 "source_fragment" : "hdr.gtpu_udp"
4826 }
4827 },
4828 {
4829 "op" : "remove_header",
4830 "parameters" : [
4831 {
4832 "type" : "header",
4833 "value" : "gtpu"
4834 }
4835 ],
4836 "source_info" : {
4837 "filename" : "fabric.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004838 "line" : 71,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004839 "column" : 65,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004840 "source_fragment" : "hdr.gtpu"
4841 }
4842 }
4843 ]
4844 }
4845 ],
4846 "pipelines" : [
4847 {
4848 "name" : "ingress",
4849 "id" : 0,
4850 "source_info" : {
4851 "filename" : "fabric.p4",
4852 "line" : 33,
4853 "column" : 8,
4854 "source_fragment" : "FabricIngress"
4855 },
4856 "init_table" : "node_2",
4857 "tables" : [
4858 {
4859 "name" : "tbl_act",
4860 "id" : 0,
4861 "key" : [],
4862 "match_type" : "exact",
4863 "type" : "simple",
4864 "max_size" : 1024,
4865 "with_counters" : false,
4866 "support_timeout" : false,
4867 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02004868 "action_ids" : [39],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004869 "actions" : ["act"],
4870 "base_default_next" : null,
4871 "next_tables" : {
4872 "act" : null
4873 },
4874 "default_entry" : {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02004875 "action_id" : 39,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004876 "action_const" : true,
4877 "action_data" : [],
4878 "action_entry_const" : true
4879 }
4880 },
4881 {
4882 "name" : "tbl_act_0",
4883 "id" : 1,
4884 "key" : [],
4885 "match_type" : "exact",
4886 "type" : "simple",
4887 "max_size" : 1024,
4888 "with_counters" : false,
4889 "support_timeout" : false,
4890 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02004891 "action_ids" : [47],
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004892 "actions" : ["act_7"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004893 "base_default_next" : "node_5",
4894 "next_tables" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004895 "act_7" : "node_5"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004896 },
4897 "default_entry" : {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02004898 "action_id" : 47,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004899 "action_const" : true,
4900 "action_data" : [],
4901 "action_entry_const" : true
4902 }
4903 },
4904 {
4905 "name" : "tbl_act_1",
4906 "id" : 2,
4907 "key" : [],
4908 "match_type" : "exact",
4909 "type" : "simple",
4910 "max_size" : 1024,
4911 "with_counters" : false,
4912 "support_timeout" : false,
4913 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02004914 "action_ids" : [42],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004915 "actions" : ["act_2"],
Yi Tseng27b9bc02018-04-12 14:52:40 +08004916 "base_default_next" : "FabricIngress.spgw_ingress.s1u_filter_table",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004917 "next_tables" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004918 "act_2" : "FabricIngress.spgw_ingress.s1u_filter_table"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004919 },
4920 "default_entry" : {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02004921 "action_id" : 42,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004922 "action_const" : true,
4923 "action_data" : [],
4924 "action_entry_const" : true
4925 }
4926 },
4927 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004928 "name" : "FabricIngress.spgw_ingress.s1u_filter_table",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004929 "id" : 3,
4930 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004931 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004932 "line" : 60,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004933 "column" : 10,
4934 "source_fragment" : "s1u_filter_table"
4935 },
4936 "key" : [
4937 {
4938 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004939 "name" : "spgw_meta.s1u_sgw_addr",
4940 "target" : ["userMetadata.spgw", "s1u_sgw_addr"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004941 "mask" : null
4942 }
4943 ],
4944 "match_type" : "exact",
4945 "type" : "simple",
4946 "max_size" : 1024,
4947 "with_counters" : false,
4948 "support_timeout" : false,
4949 "direct_meters" : null,
4950 "action_ids" : [1],
4951 "actions" : ["NoAction"],
4952 "base_default_next" : null,
4953 "next_tables" : {
4954 "__HIT__" : "tbl_act_2",
4955 "__MISS__" : "tbl_act_3"
4956 },
4957 "default_entry" : {
4958 "action_id" : 1,
4959 "action_const" : false,
4960 "action_data" : [],
4961 "action_entry_const" : false
4962 }
4963 },
4964 {
4965 "name" : "tbl_act_2",
4966 "id" : 4,
4967 "key" : [],
4968 "match_type" : "exact",
4969 "type" : "simple",
4970 "max_size" : 1024,
4971 "with_counters" : false,
4972 "support_timeout" : false,
4973 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02004974 "action_ids" : [40],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004975 "actions" : ["act_0"],
4976 "base_default_next" : "node_10",
4977 "next_tables" : {
4978 "act_0" : "node_10"
4979 },
4980 "default_entry" : {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02004981 "action_id" : 40,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004982 "action_const" : true,
4983 "action_data" : [],
4984 "action_entry_const" : true
4985 }
4986 },
4987 {
4988 "name" : "tbl_act_3",
4989 "id" : 5,
4990 "key" : [],
4991 "match_type" : "exact",
4992 "type" : "simple",
4993 "max_size" : 1024,
4994 "with_counters" : false,
4995 "support_timeout" : false,
4996 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02004997 "action_ids" : [41],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004998 "actions" : ["act_1"],
4999 "base_default_next" : "node_10",
5000 "next_tables" : {
5001 "act_1" : "node_10"
5002 },
5003 "default_entry" : {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02005004 "action_id" : 41,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005005 "action_const" : true,
5006 "action_data" : [],
5007 "action_entry_const" : true
5008 }
5009 },
5010 {
5011 "name" : "tbl_act_4",
5012 "id" : 6,
5013 "key" : [],
5014 "match_type" : "exact",
5015 "type" : "simple",
5016 "max_size" : 1024,
5017 "with_counters" : false,
5018 "support_timeout" : false,
5019 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02005020 "action_ids" : [43],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005021 "actions" : ["act_3"],
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005022 "base_default_next" : "node_17",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005023 "next_tables" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005024 "act_3" : "node_17"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005025 },
5026 "default_entry" : {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02005027 "action_id" : 43,
Carmelo Cascone14cde402018-01-25 01:57:18 -08005028 "action_const" : true,
5029 "action_data" : [],
5030 "action_entry_const" : true
5031 }
5032 },
5033 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005034 "name" : "FabricIngress.spgw_ingress.ue_filter_table",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005035 "id" : 7,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005036 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005037 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02005038 "line" : 50,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005039 "column" : 10,
5040 "source_fragment" : "ue_filter_table"
5041 },
5042 "key" : [
5043 {
5044 "match_type" : "lpm",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005045 "name" : "ipv4.dst_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005046 "target" : ["ipv4", "dst_addr"],
5047 "mask" : null
5048 }
5049 ],
5050 "match_type" : "lpm",
5051 "type" : "simple",
5052 "max_size" : 1024,
5053 "with_counters" : false,
5054 "support_timeout" : false,
5055 "direct_meters" : null,
5056 "action_ids" : [0],
5057 "actions" : ["NoAction"],
5058 "base_default_next" : null,
5059 "next_tables" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005060 "__HIT__" : "tbl_act_5",
5061 "__MISS__" : "tbl_act_6"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005062 },
5063 "default_entry" : {
5064 "action_id" : 0,
5065 "action_const" : false,
5066 "action_data" : [],
5067 "action_entry_const" : false
5068 }
5069 },
5070 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005071 "name" : "tbl_act_5",
5072 "id" : 8,
5073 "key" : [],
5074 "match_type" : "exact",
5075 "type" : "simple",
5076 "max_size" : 1024,
5077 "with_counters" : false,
5078 "support_timeout" : false,
5079 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02005080 "action_ids" : [44],
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005081 "actions" : ["act_4"],
5082 "base_default_next" : "node_15",
5083 "next_tables" : {
5084 "act_4" : "node_15"
5085 },
5086 "default_entry" : {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02005087 "action_id" : 44,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005088 "action_const" : true,
5089 "action_data" : [],
5090 "action_entry_const" : true
5091 }
5092 },
5093 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005094 "name" : "tbl_act_6",
5095 "id" : 9,
5096 "key" : [],
5097 "match_type" : "exact",
5098 "type" : "simple",
5099 "max_size" : 1024,
5100 "with_counters" : false,
5101 "support_timeout" : false,
5102 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02005103 "action_ids" : [45],
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005104 "actions" : ["act_5"],
5105 "base_default_next" : "node_15",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005106 "next_tables" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005107 "act_5" : "node_15"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005108 },
5109 "default_entry" : {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02005110 "action_id" : 45,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005111 "action_const" : true,
5112 "action_data" : [],
5113 "action_entry_const" : true
5114 }
5115 },
5116 {
5117 "name" : "tbl_act_7",
5118 "id" : 10,
5119 "key" : [],
5120 "match_type" : "exact",
5121 "type" : "simple",
5122 "max_size" : 1024,
5123 "with_counters" : false,
5124 "support_timeout" : false,
5125 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02005126 "action_ids" : [46],
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005127 "actions" : ["act_6"],
5128 "base_default_next" : "node_17",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005129 "next_tables" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005130 "act_6" : "node_17"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005131 },
5132 "default_entry" : {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02005133 "action_id" : 46,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005134 "action_const" : true,
5135 "action_data" : [],
5136 "action_entry_const" : true
5137 }
5138 },
5139 {
5140 "name" : "tbl_act_8",
5141 "id" : 11,
5142 "key" : [],
5143 "match_type" : "exact",
5144 "type" : "simple",
5145 "max_size" : 1024,
5146 "with_counters" : false,
5147 "support_timeout" : false,
5148 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02005149 "action_ids" : [48],
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005150 "actions" : ["act_8"],
5151 "base_default_next" : "node_19",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005152 "next_tables" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005153 "act_8" : "node_19"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005154 },
5155 "default_entry" : {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02005156 "action_id" : 48,
Carmelo Cascone14cde402018-01-25 01:57:18 -08005157 "action_const" : true,
5158 "action_data" : [],
5159 "action_entry_const" : true
5160 }
5161 },
5162 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005163 "name" : "tbl_spgw_ingress_gtpu_decap",
Carmelo Cascone14cde402018-01-25 01:57:18 -08005164 "id" : 12,
5165 "key" : [],
5166 "match_type" : "exact",
5167 "type" : "simple",
5168 "max_size" : 1024,
5169 "with_counters" : false,
5170 "support_timeout" : false,
5171 "direct_meters" : null,
Esin Karaman971fb7f2017-12-28 13:44:52 +00005172 "action_ids" : [14],
Yi Tseng27b9bc02018-04-12 14:52:40 +08005173 "actions" : ["FabricIngress.spgw_ingress.gtpu_decap"],
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005174 "base_default_next" : "node_22",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005175 "next_tables" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005176 "FabricIngress.spgw_ingress.gtpu_decap" : "node_22"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005177 },
5178 "default_entry" : {
Esin Karaman971fb7f2017-12-28 13:44:52 +00005179 "action_id" : 14,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005180 "action_const" : true,
5181 "action_data" : [],
5182 "action_entry_const" : true
5183 }
5184 },
5185 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005186 "name" : "FabricIngress.spgw_ingress.dl_sess_lookup",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005187 "id" : 13,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005188 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005189 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02005190 "line" : 119,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005191 "column" : 10,
5192 "source_fragment" : "dl_sess_lookup"
5193 },
5194 "key" : [
5195 {
5196 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005197 "name" : "ipv4.dst_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005198 "target" : ["ipv4", "dst_addr"],
5199 "mask" : null
5200 }
5201 ],
5202 "match_type" : "exact",
5203 "type" : "simple",
5204 "max_size" : 1024,
5205 "with_counters" : false,
5206 "support_timeout" : false,
5207 "direct_meters" : null,
Esin Karaman971fb7f2017-12-28 13:44:52 +00005208 "action_ids" : [15, 2],
Yi Tseng27b9bc02018-04-12 14:52:40 +08005209 "actions" : ["FabricIngress.spgw_ingress.set_dl_sess_info", "NoAction"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005210 "base_default_next" : null,
5211 "next_tables" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005212 "__HIT__" : "tbl_act_9",
5213 "__MISS__" : "tbl_act_10"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005214 },
5215 "default_entry" : {
5216 "action_id" : 2,
5217 "action_const" : false,
5218 "action_data" : [],
5219 "action_entry_const" : false
5220 }
5221 },
5222 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005223 "name" : "tbl_act_9",
5224 "id" : 14,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005225 "key" : [],
5226 "match_type" : "exact",
5227 "type" : "simple",
5228 "max_size" : 1024,
5229 "with_counters" : false,
5230 "support_timeout" : false,
5231 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02005232 "action_ids" : [49],
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005233 "actions" : ["act_9"],
5234 "base_default_next" : "node_26",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005235 "next_tables" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005236 "act_9" : "node_26"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005237 },
5238 "default_entry" : {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02005239 "action_id" : 49,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005240 "action_const" : true,
5241 "action_data" : [],
5242 "action_entry_const" : true
5243 }
5244 },
5245 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005246 "name" : "tbl_act_10",
5247 "id" : 15,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005248 "key" : [],
5249 "match_type" : "exact",
5250 "type" : "simple",
5251 "max_size" : 1024,
5252 "with_counters" : false,
5253 "support_timeout" : false,
5254 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02005255 "action_ids" : [50],
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005256 "actions" : ["act_10"],
5257 "base_default_next" : "node_26",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005258 "next_tables" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005259 "act_10" : "node_26"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005260 },
5261 "default_entry" : {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02005262 "action_id" : 50,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005263 "action_const" : true,
5264 "action_data" : [],
5265 "action_entry_const" : true
5266 }
5267 },
5268 {
Carmelo Casconea5400af2018-07-17 22:11:54 +02005269 "name" : "tbl_drop_now",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005270 "id" : 16,
Carmelo Cascone14cde402018-01-25 01:57:18 -08005271 "key" : [],
5272 "match_type" : "exact",
5273 "type" : "simple",
5274 "max_size" : 1024,
5275 "with_counters" : false,
5276 "support_timeout" : false,
5277 "direct_meters" : null,
Esin Karaman971fb7f2017-12-28 13:44:52 +00005278 "action_ids" : [13],
Carmelo Casconea5400af2018-07-17 22:11:54 +02005279 "actions" : ["drop_now"],
Yi Tseng27b9bc02018-04-12 14:52:40 +08005280 "base_default_next" : "FabricIngress.spgw_ingress.ue_cdr_table",
Carmelo Cascone14cde402018-01-25 01:57:18 -08005281 "next_tables" : {
Carmelo Casconea5400af2018-07-17 22:11:54 +02005282 "drop_now" : "FabricIngress.spgw_ingress.ue_cdr_table"
Carmelo Cascone14cde402018-01-25 01:57:18 -08005283 },
5284 "default_entry" : {
Esin Karaman971fb7f2017-12-28 13:44:52 +00005285 "action_id" : 13,
Carmelo Cascone14cde402018-01-25 01:57:18 -08005286 "action_const" : true,
5287 "action_data" : [],
5288 "action_entry_const" : true
5289 }
5290 },
5291 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005292 "name" : "FabricIngress.spgw_ingress.ue_cdr_table",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005293 "id" : 17,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005294 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005295 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02005296 "line" : 129,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005297 "column" : 10,
5298 "source_fragment" : "ue_cdr_table"
5299 },
5300 "key" : [
5301 {
5302 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005303 "name" : "ipv4.dst_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005304 "target" : ["ipv4", "dst_addr"],
5305 "mask" : null
5306 }
5307 ],
5308 "match_type" : "exact",
5309 "type" : "simple",
5310 "max_size" : 1024,
5311 "with_counters" : true,
5312 "support_timeout" : false,
5313 "direct_meters" : null,
Esin Karaman971fb7f2017-12-28 13:44:52 +00005314 "action_ids" : [16, 3],
Yi Tseng27b9bc02018-04-12 14:52:40 +08005315 "actions" : ["FabricIngress.spgw_ingress.update_ue_cdr", "NoAction"],
5316 "base_default_next" : "tbl_act_11",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005317 "next_tables" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005318 "FabricIngress.spgw_ingress.update_ue_cdr" : "tbl_act_11",
5319 "NoAction" : "tbl_act_11"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005320 },
5321 "default_entry" : {
5322 "action_id" : 3,
5323 "action_const" : false,
5324 "action_data" : [],
5325 "action_entry_const" : false
5326 }
5327 },
5328 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005329 "name" : "tbl_act_11",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005330 "id" : 18,
Yi Tseng27b9bc02018-04-12 14:52:40 +08005331 "key" : [],
5332 "match_type" : "exact",
5333 "type" : "simple",
5334 "max_size" : 1024,
5335 "with_counters" : false,
5336 "support_timeout" : false,
5337 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02005338 "action_ids" : [51],
Yi Tseng27b9bc02018-04-12 14:52:40 +08005339 "actions" : ["act_11"],
5340 "base_default_next" : "FabricIngress.filtering.ingress_port_vlan",
5341 "next_tables" : {
5342 "act_11" : "FabricIngress.filtering.ingress_port_vlan"
5343 },
5344 "default_entry" : {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02005345 "action_id" : 51,
Yi Tseng27b9bc02018-04-12 14:52:40 +08005346 "action_const" : true,
5347 "action_data" : [],
5348 "action_entry_const" : true
5349 }
5350 },
5351 {
5352 "name" : "FabricIngress.filtering.ingress_port_vlan",
5353 "id" : 19,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005354 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005355 "filename" : "include/control/filtering.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08005356 "line" : 61,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005357 "column" : 10,
5358 "source_fragment" : "ingress_port_vlan"
5359 },
5360 "key" : [
5361 {
5362 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005363 "name" : "standard_metadata.ingress_port",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005364 "target" : ["standard_metadata", "ingress_port"],
5365 "mask" : null
5366 },
5367 {
5368 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005369 "name" : "hdr.vlan_tag.is_valid",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005370 "target" : ["vlan_tag", "$valid$"],
5371 "mask" : null
5372 },
5373 {
5374 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005375 "name" : "hdr.vlan_tag.vlan_id",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005376 "target" : ["vlan_tag", "vlan_id"],
5377 "mask" : null
5378 }
5379 ],
5380 "match_type" : "ternary",
5381 "type" : "simple",
5382 "max_size" : 1024,
5383 "with_counters" : true,
5384 "support_timeout" : false,
5385 "direct_meters" : null,
Esin Karaman971fb7f2017-12-28 13:44:52 +00005386 "action_ids" : [19, 18, 10, 17],
Yi Tseng27b9bc02018-04-12 14:52:40 +08005387 "actions" : ["FabricIngress.filtering.push_internal_vlan", "FabricIngress.filtering.set_vlan", "nop", "FabricIngress.filtering.drop"],
5388 "base_default_next" : "FabricIngress.filtering.fwd_classifier",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005389 "next_tables" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005390 "FabricIngress.filtering.push_internal_vlan" : "FabricIngress.filtering.fwd_classifier",
5391 "FabricIngress.filtering.set_vlan" : "FabricIngress.filtering.fwd_classifier",
5392 "nop" : "FabricIngress.filtering.fwd_classifier",
5393 "FabricIngress.filtering.drop" : "FabricIngress.filtering.fwd_classifier"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005394 },
5395 "default_entry" : {
Esin Karaman971fb7f2017-12-28 13:44:52 +00005396 "action_id" : 10,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005397 "action_const" : true,
5398 "action_data" : [],
5399 "action_entry_const" : true
5400 }
5401 },
5402 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005403 "name" : "FabricIngress.filtering.fwd_classifier",
5404 "id" : 20,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005405 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005406 "filename" : "include/control/filtering.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08005407 "line" : 98,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005408 "column" : 10,
5409 "source_fragment" : "fwd_classifier"
5410 },
5411 "key" : [
5412 {
5413 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005414 "name" : "standard_metadata.ingress_port",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005415 "target" : ["standard_metadata", "ingress_port"],
5416 "mask" : null
5417 },
5418 {
5419 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005420 "name" : "hdr.ethernet.dst_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005421 "target" : ["ethernet", "dst_addr"],
5422 "mask" : null
5423 },
5424 {
5425 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005426 "name" : "fabric_metadata.original_ether_type",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005427 "target" : ["scalars", "fabric_metadata_t.original_ether_type"],
5428 "mask" : null
5429 }
5430 ],
5431 "match_type" : "exact",
5432 "type" : "simple",
5433 "max_size" : 1024,
5434 "with_counters" : true,
5435 "support_timeout" : false,
5436 "direct_meters" : null,
Esin Karaman971fb7f2017-12-28 13:44:52 +00005437 "action_ids" : [20],
Yi Tseng27b9bc02018-04-12 14:52:40 +08005438 "actions" : ["FabricIngress.filtering.set_forwarding_type"],
5439 "base_default_next" : "node_32",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005440 "next_tables" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005441 "FabricIngress.filtering.set_forwarding_type" : "node_32"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005442 },
5443 "default_entry" : {
Esin Karaman971fb7f2017-12-28 13:44:52 +00005444 "action_id" : 20,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005445 "action_const" : true,
5446 "action_data" : ["0x0"],
5447 "action_entry_const" : true
5448 }
5449 },
5450 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005451 "name" : "FabricIngress.forwarding.bridging",
5452 "id" : 21,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005453 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005454 "filename" : "include/control/forwarding.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08005455 "line" : 41,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005456 "column" : 10,
5457 "source_fragment" : "bridging"
5458 },
5459 "key" : [
5460 {
5461 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005462 "name" : "hdr.vlan_tag.vlan_id",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005463 "target" : ["vlan_tag", "vlan_id"],
5464 "mask" : null
5465 },
5466 {
5467 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005468 "name" : "hdr.ethernet.dst_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005469 "target" : ["ethernet", "dst_addr"],
5470 "mask" : null
5471 }
5472 ],
5473 "match_type" : "ternary",
5474 "type" : "simple",
5475 "max_size" : 1024,
5476 "with_counters" : true,
5477 "support_timeout" : false,
5478 "direct_meters" : null,
Yi Tseng47eac892018-07-11 02:17:04 +08005479 "action_ids" : [21, 4],
5480 "actions" : ["FabricIngress.forwarding.set_next_id_bridging", "NoAction"],
Yi Tseng27b9bc02018-04-12 14:52:40 +08005481 "base_default_next" : "FabricIngress.forwarding.acl",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005482 "next_tables" : {
Yi Tseng47eac892018-07-11 02:17:04 +08005483 "FabricIngress.forwarding.set_next_id_bridging" : "FabricIngress.forwarding.acl",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005484 "NoAction" : "FabricIngress.forwarding.acl"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005485 },
5486 "default_entry" : {
5487 "action_id" : 4,
5488 "action_const" : false,
5489 "action_data" : [],
5490 "action_entry_const" : false
5491 }
5492 },
5493 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005494 "name" : "FabricIngress.forwarding.mpls",
5495 "id" : 22,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005496 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005497 "filename" : "include/control/forwarding.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08005498 "line" : 65,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005499 "column" : 10,
5500 "source_fragment" : "mpls"
5501 },
5502 "key" : [
5503 {
5504 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005505 "name" : "hdr.mpls.label",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005506 "target" : ["mpls", "label"],
5507 "mask" : null
5508 }
5509 ],
5510 "match_type" : "exact",
5511 "type" : "simple",
5512 "max_size" : 1024,
5513 "with_counters" : true,
5514 "support_timeout" : false,
5515 "direct_meters" : null,
Yi Tseng47eac892018-07-11 02:17:04 +08005516 "action_ids" : [22, 5],
Yi Tseng27b9bc02018-04-12 14:52:40 +08005517 "actions" : ["FabricIngress.forwarding.pop_mpls_and_next", "NoAction"],
5518 "base_default_next" : "tbl_act_12",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005519 "next_tables" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005520 "FabricIngress.forwarding.pop_mpls_and_next" : "tbl_act_12",
5521 "NoAction" : "tbl_act_12"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005522 },
5523 "default_entry" : {
5524 "action_id" : 5,
5525 "action_const" : false,
5526 "action_data" : [],
5527 "action_entry_const" : false
5528 }
5529 },
5530 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005531 "name" : "tbl_act_12",
5532 "id" : 23,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005533 "key" : [],
5534 "match_type" : "exact",
5535 "type" : "simple",
5536 "max_size" : 1024,
5537 "with_counters" : false,
5538 "support_timeout" : false,
5539 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02005540 "action_ids" : [52],
Yi Tseng27b9bc02018-04-12 14:52:40 +08005541 "actions" : ["act_12"],
5542 "base_default_next" : "FabricIngress.forwarding.acl",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005543 "next_tables" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005544 "act_12" : "FabricIngress.forwarding.acl"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005545 },
5546 "default_entry" : {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02005547 "action_id" : 52,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005548 "action_const" : true,
5549 "action_data" : [],
5550 "action_entry_const" : true
5551 }
5552 },
5553 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005554 "name" : "FabricIngress.forwarding.unicast_v4",
5555 "id" : 24,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005556 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005557 "filename" : "include/control/forwarding.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08005558 "line" : 87,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005559 "column" : 10,
5560 "source_fragment" : "unicast_v4"
5561 },
5562 "key" : [
5563 {
5564 "match_type" : "lpm",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005565 "name" : "hdr.ipv4.dst_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005566 "target" : ["ipv4", "dst_addr"],
5567 "mask" : null
5568 }
5569 ],
5570 "match_type" : "lpm",
5571 "type" : "simple",
5572 "max_size" : 1024,
5573 "with_counters" : true,
5574 "support_timeout" : false,
5575 "direct_meters" : null,
Esin Karaman971fb7f2017-12-28 13:44:52 +00005576 "action_ids" : [23, 6],
Yi Tseng47eac892018-07-11 02:17:04 +08005577 "actions" : ["FabricIngress.forwarding.set_next_id_unicast_v4", "NoAction"],
Yi Tseng27b9bc02018-04-12 14:52:40 +08005578 "base_default_next" : "FabricIngress.forwarding.acl",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005579 "next_tables" : {
Yi Tseng47eac892018-07-11 02:17:04 +08005580 "FabricIngress.forwarding.set_next_id_unicast_v4" : "FabricIngress.forwarding.acl",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005581 "NoAction" : "FabricIngress.forwarding.acl"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005582 },
5583 "default_entry" : {
5584 "action_id" : 6,
5585 "action_const" : false,
5586 "action_data" : [],
5587 "action_entry_const" : false
5588 }
5589 },
5590 {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005591 "name" : "FabricIngress.forwarding.acl",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005592 "id" : 25,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005593 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005594 "filename" : "include/control/forwarding.p4",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02005595 "line" : 127,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005596 "column" : 10,
5597 "source_fragment" : "acl"
5598 },
5599 "key" : [
5600 {
5601 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005602 "name" : "standard_metadata.ingress_port",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005603 "target" : ["standard_metadata", "ingress_port"],
5604 "mask" : null
5605 },
5606 {
5607 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005608 "name" : "fabric_metadata.ip_proto",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005609 "target" : ["scalars", "fabric_metadata_t.ip_proto"],
5610 "mask" : null
5611 },
5612 {
5613 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005614 "name" : "fabric_metadata.l4_src_port",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005615 "target" : ["scalars", "fabric_metadata_t.l4_src_port"],
5616 "mask" : null
5617 },
5618 {
5619 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005620 "name" : "fabric_metadata.l4_dst_port",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005621 "target" : ["scalars", "fabric_metadata_t.l4_dst_port"],
5622 "mask" : null
5623 },
5624 {
5625 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005626 "name" : "fabric_metadata.original_ether_type",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005627 "target" : ["scalars", "fabric_metadata_t.original_ether_type"],
5628 "mask" : null
5629 },
5630 {
5631 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005632 "name" : "hdr.ethernet.dst_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005633 "target" : ["ethernet", "dst_addr"],
5634 "mask" : null
5635 },
5636 {
5637 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005638 "name" : "hdr.ethernet.src_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005639 "target" : ["ethernet", "src_addr"],
5640 "mask" : null
5641 },
5642 {
5643 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005644 "name" : "hdr.vlan_tag.vlan_id",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005645 "target" : ["vlan_tag", "vlan_id"],
5646 "mask" : null
5647 },
5648 {
5649 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005650 "name" : "hdr.ipv4.src_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005651 "target" : ["ipv4", "src_addr"],
5652 "mask" : null
5653 },
5654 {
5655 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005656 "name" : "hdr.ipv4.dst_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005657 "target" : ["ipv4", "dst_addr"],
5658 "mask" : null
5659 },
5660 {
5661 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005662 "name" : "hdr.icmp.icmp_type",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005663 "target" : ["icmp", "icmp_type"],
5664 "mask" : null
5665 },
5666 {
5667 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005668 "name" : "hdr.icmp.icmp_code",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005669 "target" : ["icmp", "icmp_code"],
5670 "mask" : null
5671 }
5672 ],
5673 "match_type" : "ternary",
5674 "type" : "simple",
5675 "max_size" : 256,
5676 "with_counters" : true,
5677 "support_timeout" : false,
5678 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02005679 "action_ids" : [24, 25, 26, 27, 11],
5680 "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 +02005681 "base_default_next" : "tbl_act_13",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005682 "next_tables" : {
Carmelo Casconea5400af2018-07-17 22:11:54 +02005683 "FabricIngress.forwarding.set_next_id_acl" : "tbl_act_13",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02005684 "FabricIngress.forwarding.punt_to_cpu" : "tbl_act_13",
5685 "FabricIngress.forwarding.clone_to_cpu" : "tbl_act_13",
Carmelo Casconea5400af2018-07-17 22:11:54 +02005686 "FabricIngress.forwarding.drop" : "tbl_act_13",
5687 "nop" : "tbl_act_13"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005688 },
5689 "default_entry" : {
Esin Karaman971fb7f2017-12-28 13:44:52 +00005690 "action_id" : 11,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005691 "action_const" : true,
5692 "action_data" : [],
5693 "action_entry_const" : true
5694 }
5695 },
5696 {
Carmelo Casconea5400af2018-07-17 22:11:54 +02005697 "name" : "tbl_act_13",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005698 "id" : 26,
Carmelo Casconea5400af2018-07-17 22:11:54 +02005699 "key" : [],
5700 "match_type" : "exact",
5701 "type" : "simple",
5702 "max_size" : 1024,
5703 "with_counters" : false,
5704 "support_timeout" : false,
5705 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02005706 "action_ids" : [53],
Carmelo Casconea5400af2018-07-17 22:11:54 +02005707 "actions" : ["act_13"],
5708 "base_default_next" : "FabricIngress.next.vlan_meta",
5709 "next_tables" : {
5710 "act_13" : "FabricIngress.next.vlan_meta"
5711 },
5712 "default_entry" : {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02005713 "action_id" : 53,
Carmelo Casconea5400af2018-07-17 22:11:54 +02005714 "action_const" : true,
5715 "action_data" : [],
5716 "action_entry_const" : true
5717 }
5718 },
5719 {
5720 "name" : "FabricIngress.next.vlan_meta",
5721 "id" : 27,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005722 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005723 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08005724 "line" : 65,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005725 "column" : 10,
5726 "source_fragment" : "vlan_meta"
5727 },
5728 "key" : [
5729 {
5730 "match_type" : "exact",
5731 "name" : "fabric_metadata.next_id",
5732 "target" : ["scalars", "fabric_metadata_t.next_id"],
5733 "mask" : null
5734 }
5735 ],
5736 "match_type" : "exact",
5737 "type" : "simple",
5738 "max_size" : 1024,
5739 "with_counters" : true,
5740 "support_timeout" : false,
5741 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02005742 "action_ids" : [28, 12],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005743 "actions" : ["FabricIngress.next.set_vlan", "nop"],
5744 "base_default_next" : "FabricIngress.next.simple",
5745 "next_tables" : {
5746 "FabricIngress.next.set_vlan" : "FabricIngress.next.simple",
5747 "nop" : "FabricIngress.next.simple"
5748 },
5749 "default_entry" : {
Esin Karaman971fb7f2017-12-28 13:44:52 +00005750 "action_id" : 12,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005751 "action_const" : false,
5752 "action_data" : [],
5753 "action_entry_const" : false
5754 }
5755 },
5756 {
5757 "name" : "FabricIngress.next.simple",
Carmelo Casconea5400af2018-07-17 22:11:54 +02005758 "id" : 28,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005759 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005760 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08005761 "line" : 122,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005762 "column" : 10,
5763 "source_fragment" : "simple"
5764 },
5765 "key" : [
5766 {
5767 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005768 "name" : "fabric_metadata.next_id",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005769 "target" : ["scalars", "fabric_metadata_t.next_id"],
5770 "mask" : null
5771 }
5772 ],
5773 "match_type" : "exact",
5774 "type" : "simple",
5775 "max_size" : 1024,
5776 "with_counters" : true,
5777 "support_timeout" : false,
5778 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02005779 "action_ids" : [29, 30, 31, 32, 33, 34, 7],
Yi Tseng47eac892018-07-11 02:17:04 +08005780 "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 -08005781 "base_default_next" : null,
5782 "next_tables" : {
Carmelo Casconea5400af2018-07-17 22:11:54 +02005783 "__HIT__" : "tbl_act_14",
5784 "__MISS__" : "tbl_act_15"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005785 },
5786 "default_entry" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005787 "action_id" : 7,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005788 "action_const" : false,
5789 "action_data" : [],
5790 "action_entry_const" : false
5791 }
5792 },
5793 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005794 "name" : "tbl_act_14",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005795 "id" : 29,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005796 "key" : [],
5797 "match_type" : "exact",
5798 "type" : "simple",
5799 "max_size" : 1024,
5800 "with_counters" : false,
5801 "support_timeout" : false,
5802 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02005803 "action_ids" : [54],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005804 "actions" : ["act_14"],
Carmelo Casconea5400af2018-07-17 22:11:54 +02005805 "base_default_next" : "node_45",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005806 "next_tables" : {
Carmelo Casconea5400af2018-07-17 22:11:54 +02005807 "act_14" : "node_45"
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005808 },
5809 "default_entry" : {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02005810 "action_id" : 54,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005811 "action_const" : true,
5812 "action_data" : [],
5813 "action_entry_const" : true
5814 }
5815 },
5816 {
5817 "name" : "tbl_act_15",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005818 "id" : 30,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005819 "key" : [],
5820 "match_type" : "exact",
5821 "type" : "simple",
5822 "max_size" : 1024,
5823 "with_counters" : false,
5824 "support_timeout" : false,
5825 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02005826 "action_ids" : [55],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005827 "actions" : ["act_15"],
Carmelo Casconea5400af2018-07-17 22:11:54 +02005828 "base_default_next" : "node_45",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005829 "next_tables" : {
Carmelo Casconea5400af2018-07-17 22:11:54 +02005830 "act_15" : "node_45"
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005831 },
5832 "default_entry" : {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02005833 "action_id" : 55,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005834 "action_const" : true,
5835 "action_data" : [],
5836 "action_entry_const" : true
5837 }
5838 },
5839 {
5840 "name" : "FabricIngress.next.hashed",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005841 "id" : 31,
Yi Tseng27b9bc02018-04-12 14:52:40 +08005842 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005843 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08005844 "line" : 175,
Yi Tseng27b9bc02018-04-12 14:52:40 +08005845 "column" : 10,
5846 "source_fragment" : "hashed"
5847 },
5848 "key" : [
5849 {
5850 "match_type" : "exact",
5851 "name" : "fabric_metadata.next_id",
5852 "target" : ["scalars", "fabric_metadata_t.next_id"],
5853 "mask" : null
5854 }
5855 ],
5856 "match_type" : "exact",
5857 "type" : "indirect_ws",
5858 "action_profile" : "FabricIngress.next.ecmp_selector",
5859 "max_size" : 1024,
5860 "with_counters" : true,
5861 "support_timeout" : false,
5862 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02005863 "action_ids" : [35, 36, 37, 8],
Yi Tseng47eac892018-07-11 02:17:04 +08005864 "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 +02005865 "base_default_next" : null,
Yi Tseng27b9bc02018-04-12 14:52:40 +08005866 "next_tables" : {
Carmelo Casconea5400af2018-07-17 22:11:54 +02005867 "__HIT__" : "tbl_act_16",
5868 "__MISS__" : "tbl_act_17"
5869 }
5870 },
5871 {
5872 "name" : "tbl_act_16",
5873 "id" : 32,
5874 "key" : [],
5875 "match_type" : "exact",
5876 "type" : "simple",
5877 "max_size" : 1024,
5878 "with_counters" : false,
5879 "support_timeout" : false,
5880 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02005881 "action_ids" : [56],
Carmelo Casconea5400af2018-07-17 22:11:54 +02005882 "actions" : ["act_16"],
5883 "base_default_next" : "node_49",
5884 "next_tables" : {
5885 "act_16" : "node_49"
5886 },
5887 "default_entry" : {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02005888 "action_id" : 56,
Carmelo Casconea5400af2018-07-17 22:11:54 +02005889 "action_const" : true,
5890 "action_data" : [],
5891 "action_entry_const" : true
5892 }
5893 },
5894 {
5895 "name" : "tbl_act_17",
5896 "id" : 33,
5897 "key" : [],
5898 "match_type" : "exact",
5899 "type" : "simple",
5900 "max_size" : 1024,
5901 "with_counters" : false,
5902 "support_timeout" : false,
5903 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02005904 "action_ids" : [57],
Carmelo Casconea5400af2018-07-17 22:11:54 +02005905 "actions" : ["act_17"],
5906 "base_default_next" : "node_49",
5907 "next_tables" : {
5908 "act_17" : "node_49"
5909 },
5910 "default_entry" : {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02005911 "action_id" : 57,
Carmelo Casconea5400af2018-07-17 22:11:54 +02005912 "action_const" : true,
5913 "action_data" : [],
5914 "action_entry_const" : true
Esin Karaman971fb7f2017-12-28 13:44:52 +00005915 }
5916 },
5917 {
5918 "name" : "FabricIngress.next.multicast",
Carmelo Casconea5400af2018-07-17 22:11:54 +02005919 "id" : 34,
Esin Karaman971fb7f2017-12-28 13:44:52 +00005920 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005921 "filename" : "include/control/next.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02005922 "line" : 207,
Esin Karaman971fb7f2017-12-28 13:44:52 +00005923 "column" : 10,
5924 "source_fragment" : "multicast"
5925 },
5926 "key" : [
5927 {
5928 "match_type" : "exact",
5929 "name" : "fabric_metadata.next_id",
5930 "target" : ["scalars", "fabric_metadata_t.next_id"],
5931 "mask" : null
5932 }
5933 ],
5934 "match_type" : "exact",
5935 "type" : "simple",
5936 "max_size" : 1024,
5937 "with_counters" : true,
5938 "support_timeout" : false,
5939 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02005940 "action_ids" : [38, 9],
Esin Karaman971fb7f2017-12-28 13:44:52 +00005941 "actions" : ["FabricIngress.next.set_mcast_group", "NoAction"],
Carmelo Casconea5400af2018-07-17 22:11:54 +02005942 "base_default_next" : null,
Esin Karaman971fb7f2017-12-28 13:44:52 +00005943 "next_tables" : {
Carmelo Casconea5400af2018-07-17 22:11:54 +02005944 "__HIT__" : "tbl_act_18",
5945 "__MISS__" : "tbl_act_19"
Esin Karaman971fb7f2017-12-28 13:44:52 +00005946 },
5947 "default_entry" : {
5948 "action_id" : 9,
5949 "action_const" : false,
5950 "action_data" : [],
5951 "action_entry_const" : false
Yi Tseng27b9bc02018-04-12 14:52:40 +08005952 }
5953 },
5954 {
Carmelo Casconea5400af2018-07-17 22:11:54 +02005955 "name" : "tbl_act_18",
5956 "id" : 35,
Yi Tseng27b9bc02018-04-12 14:52:40 +08005957 "key" : [],
5958 "match_type" : "exact",
5959 "type" : "simple",
5960 "max_size" : 1024,
5961 "with_counters" : false,
5962 "support_timeout" : false,
5963 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02005964 "action_ids" : [58],
Carmelo Casconea5400af2018-07-17 22:11:54 +02005965 "actions" : ["act_18"],
5966 "base_default_next" : "node_53",
Esin Karaman971fb7f2017-12-28 13:44:52 +00005967 "next_tables" : {
Carmelo Casconea5400af2018-07-17 22:11:54 +02005968 "act_18" : "node_53"
Esin Karaman971fb7f2017-12-28 13:44:52 +00005969 },
5970 "default_entry" : {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02005971 "action_id" : 58,
Esin Karaman971fb7f2017-12-28 13:44:52 +00005972 "action_const" : true,
5973 "action_data" : [],
5974 "action_entry_const" : true
5975 }
5976 },
5977 {
Carmelo Casconea5400af2018-07-17 22:11:54 +02005978 "name" : "tbl_act_19",
5979 "id" : 36,
Esin Karaman971fb7f2017-12-28 13:44:52 +00005980 "key" : [],
5981 "match_type" : "exact",
5982 "type" : "simple",
5983 "max_size" : 1024,
5984 "with_counters" : false,
5985 "support_timeout" : false,
5986 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02005987 "action_ids" : [59],
Carmelo Casconea5400af2018-07-17 22:11:54 +02005988 "actions" : ["act_19"],
5989 "base_default_next" : "node_53",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005990 "next_tables" : {
Carmelo Casconea5400af2018-07-17 22:11:54 +02005991 "act_19" : "node_53"
Yi Tseng27b9bc02018-04-12 14:52:40 +08005992 },
5993 "default_entry" : {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02005994 "action_id" : 59,
Carmelo Casconea5400af2018-07-17 22:11:54 +02005995 "action_const" : true,
5996 "action_data" : [],
5997 "action_entry_const" : true
5998 }
5999 },
6000 {
6001 "name" : "tbl_act_20",
6002 "id" : 37,
6003 "key" : [],
6004 "match_type" : "exact",
6005 "type" : "simple",
6006 "max_size" : 1024,
6007 "with_counters" : false,
6008 "support_timeout" : false,
6009 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02006010 "action_ids" : [60],
Carmelo Casconea5400af2018-07-17 22:11:54 +02006011 "actions" : ["act_20"],
6012 "base_default_next" : "node_55",
6013 "next_tables" : {
6014 "act_20" : "node_55"
6015 },
6016 "default_entry" : {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02006017 "action_id" : 60,
Carmelo Casconea5400af2018-07-17 22:11:54 +02006018 "action_const" : true,
6019 "action_data" : [],
6020 "action_entry_const" : true
6021 }
6022 },
6023 {
6024 "name" : "tbl_act_21",
6025 "id" : 38,
6026 "key" : [],
6027 "match_type" : "exact",
6028 "type" : "simple",
6029 "max_size" : 1024,
6030 "with_counters" : false,
6031 "support_timeout" : false,
6032 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02006033 "action_ids" : [61],
Carmelo Casconea5400af2018-07-17 22:11:54 +02006034 "actions" : ["act_21"],
6035 "base_default_next" : "node_59",
6036 "next_tables" : {
6037 "act_21" : "node_59"
6038 },
6039 "default_entry" : {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02006040 "action_id" : 61,
Carmelo Casconea5400af2018-07-17 22:11:54 +02006041 "action_const" : true,
6042 "action_data" : [],
6043 "action_entry_const" : true
6044 }
6045 },
6046 {
6047 "name" : "tbl_act_22",
6048 "id" : 39,
6049 "key" : [],
6050 "match_type" : "exact",
6051 "type" : "simple",
6052 "max_size" : 1024,
6053 "with_counters" : false,
6054 "support_timeout" : false,
6055 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02006056 "action_ids" : [62],
Carmelo Casconea5400af2018-07-17 22:11:54 +02006057 "actions" : ["act_22"],
6058 "base_default_next" : "node_61",
6059 "next_tables" : {
6060 "act_22" : "node_61"
6061 },
6062 "default_entry" : {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02006063 "action_id" : 62,
Carmelo Casconea5400af2018-07-17 22:11:54 +02006064 "action_const" : true,
6065 "action_data" : [],
6066 "action_entry_const" : true
6067 }
6068 },
6069 {
6070 "name" : "tbl_act_23",
6071 "id" : 40,
6072 "key" : [],
6073 "match_type" : "exact",
6074 "type" : "simple",
6075 "max_size" : 1024,
6076 "with_counters" : false,
6077 "support_timeout" : false,
6078 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02006079 "action_ids" : [63],
Carmelo Casconea5400af2018-07-17 22:11:54 +02006080 "actions" : ["act_23"],
6081 "base_default_next" : null,
6082 "next_tables" : {
6083 "act_23" : null
6084 },
6085 "default_entry" : {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02006086 "action_id" : 63,
Carmelo Cascone14cde402018-01-25 01:57:18 -08006087 "action_const" : true,
6088 "action_data" : [],
6089 "action_entry_const" : true
6090 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006091 }
6092 ],
6093 "action_profiles" : [
6094 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08006095 "name" : "FabricIngress.next.ecmp_selector",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006096 "id" : 0,
6097 "max_size" : 64,
6098 "selector" : {
6099 "algo" : "crc16",
6100 "input" : [
6101 {
6102 "type" : "field",
Yi Tseng3d3956d2018-01-31 17:28:05 -08006103 "value" : ["ipv4", "dst_addr"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006104 },
6105 {
6106 "type" : "field",
Yi Tseng3d3956d2018-01-31 17:28:05 -08006107 "value" : ["ipv4", "src_addr"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006108 },
6109 {
6110 "type" : "field",
6111 "value" : ["scalars", "fabric_metadata_t.ip_proto"]
6112 },
6113 {
6114 "type" : "field",
6115 "value" : ["scalars", "fabric_metadata_t.l4_src_port"]
6116 },
6117 {
6118 "type" : "field",
6119 "value" : ["scalars", "fabric_metadata_t.l4_dst_port"]
6120 }
6121 ]
6122 }
6123 }
6124 ],
6125 "conditionals" : [
6126 {
6127 "name" : "node_2",
6128 "id" : 0,
6129 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006130 "filename" : "include/control/packetio.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006131 "line" : 25,
6132 "column" : 12,
6133 "source_fragment" : "hdr.packet_out.isValid()"
6134 },
6135 "expression" : {
6136 "type" : "expression",
6137 "value" : {
6138 "op" : "d2b",
6139 "left" : null,
6140 "right" : {
6141 "type" : "field",
6142 "value" : ["packet_out", "$valid$"]
6143 }
6144 }
6145 },
6146 "true_next" : "tbl_act",
6147 "false_next" : "tbl_act_0"
6148 },
6149 {
6150 "name" : "node_5",
6151 "id" : 1,
6152 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006153 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02006154 "line" : 142,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006155 "column" : 12,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006156 "source_fragment" : "gtpu.isValid()"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006157 },
6158 "expression" : {
6159 "type" : "expression",
6160 "value" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006161 "op" : "d2b",
6162 "left" : null,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006163 "right" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006164 "type" : "field",
6165 "value" : ["gtpu", "$valid$"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006166 }
6167 }
6168 },
6169 "true_next" : "tbl_act_1",
Yi Tseng27b9bc02018-04-12 14:52:40 +08006170 "false_next" : "FabricIngress.spgw_ingress.ue_filter_table"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006171 },
6172 {
6173 "name" : "node_10",
6174 "id" : 2,
6175 "expression" : {
6176 "type" : "expression",
6177 "value" : {
6178 "op" : "d2b",
6179 "left" : null,
6180 "right" : {
6181 "type" : "field",
6182 "value" : ["scalars", "spgw_ingress_tmp_2"]
6183 }
6184 }
6185 },
6186 "true_next" : "tbl_act_4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006187 "false_next" : "node_17"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006188 },
6189 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006190 "name" : "node_15",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006191 "id" : 3,
6192 "expression" : {
6193 "type" : "expression",
6194 "value" : {
6195 "op" : "d2b",
6196 "left" : null,
6197 "right" : {
6198 "type" : "field",
6199 "value" : ["scalars", "spgw_ingress_tmp_3"]
6200 }
6201 }
6202 },
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006203 "true_next" : "tbl_act_7",
6204 "false_next" : "node_17"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006205 },
6206 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006207 "name" : "node_17",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006208 "id" : 4,
6209 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006210 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02006211 "line" : 162,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006212 "column" : 12,
Esin Karaman971fb7f2017-12-28 13:44:52 +00006213 "source_fragment" : "spgw_meta.do_spgw == false"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006214 },
6215 "expression" : {
6216 "type" : "expression",
6217 "value" : {
Carmelo Cascone228092b2018-06-15 20:41:10 +02006218 "op" : "==",
6219 "left" : {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006220 "type" : "expression",
6221 "value" : {
6222 "op" : "d2b",
6223 "left" : null,
6224 "right" : {
6225 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08006226 "value" : ["userMetadata.spgw", "do_spgw"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006227 }
6228 }
Carmelo Cascone228092b2018-06-15 20:41:10 +02006229 },
6230 "right" : {
6231 "type" : "bool",
Esin Karaman971fb7f2017-12-28 13:44:52 +00006232 "value" : false
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006233 }
6234 }
6235 },
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006236 "true_next" : "tbl_act_8",
6237 "false_next" : "node_19"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006238 },
6239 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006240 "name" : "node_19",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006241 "id" : 5,
6242 "expression" : {
6243 "type" : "expression",
6244 "value" : {
6245 "op" : "not",
6246 "left" : null,
6247 "right" : {
6248 "type" : "expression",
6249 "value" : {
6250 "op" : "d2b",
6251 "left" : null,
6252 "right" : {
6253 "type" : "field",
6254 "value" : ["scalars", "spgw_ingress_hasReturned_0"]
6255 }
6256 }
6257 }
6258 }
6259 },
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006260 "true_next" : "node_20",
Yi Tseng27b9bc02018-04-12 14:52:40 +08006261 "false_next" : "FabricIngress.filtering.ingress_port_vlan"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006262 },
6263 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006264 "name" : "node_20",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006265 "id" : 6,
6266 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006267 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02006268 "line" : 167,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006269 "column" : 12,
6270 "source_fragment" : "spgw_meta.direction == DIR_UPLINK"
6271 },
6272 "expression" : {
6273 "type" : "expression",
6274 "value" : {
6275 "op" : "==",
6276 "left" : {
6277 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08006278 "value" : ["userMetadata.spgw", "direction"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006279 },
6280 "right" : {
6281 "type" : "hexstr",
6282 "value" : "0x00"
6283 }
6284 }
6285 },
6286 "true_next" : "tbl_spgw_ingress_gtpu_decap",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006287 "false_next" : "node_22"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006288 },
6289 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006290 "name" : "node_22",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006291 "id" : 7,
6292 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006293 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02006294 "line" : 184,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006295 "column" : 12,
6296 "source_fragment" : "spgw_meta.direction == DIR_DOWNLINK"
6297 },
6298 "expression" : {
6299 "type" : "expression",
6300 "value" : {
6301 "op" : "==",
6302 "left" : {
6303 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08006304 "value" : ["userMetadata.spgw", "direction"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006305 },
6306 "right" : {
6307 "type" : "hexstr",
6308 "value" : "0x01"
6309 }
6310 }
6311 },
Yi Tseng27b9bc02018-04-12 14:52:40 +08006312 "true_next" : "FabricIngress.spgw_ingress.dl_sess_lookup",
6313 "false_next" : "tbl_act_11"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006314 },
6315 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006316 "name" : "node_26",
6317 "id" : 8,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006318 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006319 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02006320 "line" : 185,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006321 "column" : 16,
6322 "source_fragment" : "!dl_sess_lookup.apply().hit"
6323 },
6324 "expression" : {
6325 "type" : "expression",
6326 "value" : {
6327 "op" : "not",
6328 "left" : null,
6329 "right" : {
6330 "type" : "expression",
6331 "value" : {
6332 "op" : "d2b",
6333 "left" : null,
6334 "right" : {
6335 "type" : "field",
6336 "value" : ["scalars", "spgw_ingress_tmp_4"]
6337 }
6338 }
6339 }
6340 }
6341 },
Carmelo Casconea5400af2018-07-17 22:11:54 +02006342 "true_next" : "tbl_drop_now",
Yi Tseng27b9bc02018-04-12 14:52:40 +08006343 "false_next" : "FabricIngress.spgw_ingress.ue_cdr_table"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006344 },
6345 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08006346 "name" : "node_32",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006347 "id" : 9,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006348 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006349 "filename" : "include/control/forwarding.p4",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02006350 "line" : 231,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006351 "column" : 11,
6352 "source_fragment" : "fabric_metadata.fwd_type == FWD_BRIDGING"
6353 },
6354 "expression" : {
6355 "type" : "expression",
6356 "value" : {
6357 "op" : "==",
6358 "left" : {
6359 "type" : "field",
6360 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
6361 },
6362 "right" : {
6363 "type" : "hexstr",
6364 "value" : "0x00"
6365 }
6366 }
6367 },
Yi Tseng27b9bc02018-04-12 14:52:40 +08006368 "true_next" : "FabricIngress.forwarding.bridging",
6369 "false_next" : "node_34"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006370 },
6371 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08006372 "name" : "node_34",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006373 "id" : 10,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006374 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006375 "filename" : "include/control/forwarding.p4",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02006376 "line" : 232,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006377 "column" : 17,
6378 "source_fragment" : "fabric_metadata.fwd_type == FWD_MPLS"
6379 },
6380 "expression" : {
6381 "type" : "expression",
6382 "value" : {
6383 "op" : "==",
6384 "left" : {
6385 "type" : "field",
6386 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
6387 },
6388 "right" : {
6389 "type" : "hexstr",
6390 "value" : "0x01"
6391 }
6392 }
6393 },
Yi Tseng27b9bc02018-04-12 14:52:40 +08006394 "true_next" : "FabricIngress.forwarding.mpls",
6395 "false_next" : "node_37"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006396 },
6397 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08006398 "name" : "node_37",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006399 "id" : 11,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006400 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006401 "filename" : "include/control/forwarding.p4",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02006402 "line" : 247,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006403 "column" : 17,
6404 "source_fragment" : "fabric_metadata.fwd_type == FWD_IPV4_UNICAST"
6405 },
6406 "expression" : {
6407 "type" : "expression",
6408 "value" : {
6409 "op" : "==",
6410 "left" : {
6411 "type" : "field",
6412 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
6413 },
6414 "right" : {
6415 "type" : "hexstr",
6416 "value" : "0x02"
6417 }
6418 }
6419 },
Yi Tseng27b9bc02018-04-12 14:52:40 +08006420 "true_next" : "FabricIngress.forwarding.unicast_v4",
Yi Tseng27b9bc02018-04-12 14:52:40 +08006421 "false_next" : "FabricIngress.forwarding.acl"
6422 },
6423 {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02006424 "name" : "node_45",
Carmelo Casconea5400af2018-07-17 22:11:54 +02006425 "id" : 12,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006426 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006427 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08006428 "line" : 219,
Carmelo Casconea5400af2018-07-17 22:11:54 +02006429 "column" : 12,
6430 "source_fragment" : "!simple.apply().hit"
6431 },
6432 "expression" : {
6433 "type" : "expression",
6434 "value" : {
6435 "op" : "not",
6436 "left" : null,
6437 "right" : {
6438 "type" : "expression",
6439 "value" : {
6440 "op" : "d2b",
6441 "left" : null,
6442 "right" : {
6443 "type" : "field",
6444 "value" : ["scalars", "next_tmp_4"]
6445 }
6446 }
6447 }
6448 }
6449 },
6450 "true_next" : "FabricIngress.next.hashed",
6451 "false_next" : "node_55"
6452 },
6453 {
6454 "name" : "node_49",
6455 "id" : 13,
6456 "source_info" : {
6457 "filename" : "include/control/next.p4",
6458 "line" : 220,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006459 "column" : 16,
Carmelo Casconea5400af2018-07-17 22:11:54 +02006460 "source_fragment" : "!hashed.apply().hit"
6461 },
6462 "expression" : {
6463 "type" : "expression",
6464 "value" : {
6465 "op" : "not",
6466 "left" : null,
6467 "right" : {
6468 "type" : "expression",
6469 "value" : {
6470 "op" : "d2b",
6471 "left" : null,
6472 "right" : {
6473 "type" : "field",
6474 "value" : ["scalars", "next_tmp_3"]
6475 }
6476 }
6477 }
6478 }
6479 },
6480 "true_next" : "FabricIngress.next.multicast",
6481 "false_next" : "node_55"
6482 },
6483 {
6484 "name" : "node_53",
6485 "id" : 14,
6486 "source_info" : {
6487 "filename" : "include/control/next.p4",
6488 "line" : 221,
6489 "column" : 20,
6490 "source_fragment" : "!multicast.apply().hit"
6491 },
6492 "expression" : {
6493 "type" : "expression",
6494 "value" : {
6495 "op" : "not",
6496 "left" : null,
6497 "right" : {
6498 "type" : "expression",
6499 "value" : {
6500 "op" : "d2b",
6501 "left" : null,
6502 "right" : {
6503 "type" : "field",
6504 "value" : ["scalars", "next_tmp_2"]
6505 }
6506 }
6507 }
6508 }
6509 },
6510 "true_next" : "tbl_act_20",
6511 "false_next" : "node_55"
6512 },
6513 {
6514 "name" : "node_55",
6515 "id" : 15,
6516 "expression" : {
6517 "type" : "expression",
6518 "value" : {
6519 "op" : "not",
6520 "left" : null,
6521 "right" : {
6522 "type" : "expression",
6523 "value" : {
6524 "op" : "d2b",
6525 "left" : null,
6526 "right" : {
6527 "type" : "field",
6528 "value" : ["scalars", "next_hasReturned_0"]
6529 }
6530 }
6531 }
6532 }
6533 },
6534 "true_next" : "node_56",
6535 "false_next" : "node_59"
6536 },
6537 {
6538 "name" : "node_56",
6539 "id" : 16,
6540 "source_info" : {
6541 "filename" : "include/control/next.p4",
6542 "line" : 228,
6543 "column" : 12,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006544 "source_fragment" : "!hdr.mpls.isValid()"
6545 },
6546 "expression" : {
6547 "type" : "expression",
6548 "value" : {
6549 "op" : "not",
6550 "left" : null,
6551 "right" : {
6552 "type" : "expression",
6553 "value" : {
6554 "op" : "d2b",
6555 "left" : null,
6556 "right" : {
6557 "type" : "field",
6558 "value" : ["mpls", "$valid$"]
6559 }
6560 }
6561 }
6562 }
6563 },
Carmelo Casconea5400af2018-07-17 22:11:54 +02006564 "true_next" : "node_57",
6565 "false_next" : "node_59"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006566 },
6567 {
Carmelo Casconea5400af2018-07-17 22:11:54 +02006568 "name" : "node_57",
6569 "id" : 17,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006570 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006571 "filename" : "include/control/next.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02006572 "line" : 229,
6573 "column" : 15,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006574 "source_fragment" : "hdr.ipv4.isValid()"
6575 },
6576 "expression" : {
6577 "type" : "expression",
6578 "value" : {
6579 "op" : "d2b",
6580 "left" : null,
6581 "right" : {
6582 "type" : "field",
6583 "value" : ["ipv4", "$valid$"]
6584 }
6585 }
6586 },
Carmelo Casconea5400af2018-07-17 22:11:54 +02006587 "true_next" : "tbl_act_21",
6588 "false_next" : "node_59"
Yi Tseng27b9bc02018-04-12 14:52:40 +08006589 },
6590 {
Carmelo Casconea5400af2018-07-17 22:11:54 +02006591 "name" : "node_59",
6592 "id" : 18,
Yi Tseng27b9bc02018-04-12 14:52:40 +08006593 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006594 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006595 "line" : 27,
6596 "column" : 12,
6597 "source_fragment" : "standard_metadata.egress_spec < 511"
6598 },
6599 "expression" : {
6600 "type" : "expression",
6601 "value" : {
6602 "op" : "<",
6603 "left" : {
6604 "type" : "field",
6605 "value" : ["standard_metadata", "egress_spec"]
6606 },
6607 "right" : {
6608 "type" : "hexstr",
6609 "value" : "0x01ff"
6610 }
6611 }
6612 },
Carmelo Casconea5400af2018-07-17 22:11:54 +02006613 "true_next" : "tbl_act_22",
6614 "false_next" : "node_61"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006615 },
6616 {
Carmelo Casconea5400af2018-07-17 22:11:54 +02006617 "name" : "node_61",
6618 "id" : 19,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006619 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006620 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006621 "line" : 30,
6622 "column" : 12,
6623 "source_fragment" : "standard_metadata.ingress_port < 511"
6624 },
6625 "expression" : {
6626 "type" : "expression",
6627 "value" : {
6628 "op" : "<",
6629 "left" : {
6630 "type" : "field",
6631 "value" : ["standard_metadata", "ingress_port"]
6632 },
6633 "right" : {
6634 "type" : "hexstr",
6635 "value" : "0x01ff"
6636 }
6637 }
6638 },
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006639 "false_next" : null,
Carmelo Casconea5400af2018-07-17 22:11:54 +02006640 "true_next" : "tbl_act_23"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006641 }
6642 ]
6643 },
6644 {
6645 "name" : "egress",
6646 "id" : 1,
6647 "source_info" : {
6648 "filename" : "fabric.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006649 "line" : 61,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006650 "column" : 8,
6651 "source_fragment" : "FabricEgress"
6652 },
Carmelo Casconea5400af2018-07-17 22:11:54 +02006653 "init_table" : "node_65",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006654 "tables" : [
6655 {
Carmelo Casconea5400af2018-07-17 22:11:54 +02006656 "name" : "tbl_drop_now_0",
6657 "id" : 41,
6658 "key" : [],
6659 "match_type" : "exact",
6660 "type" : "simple",
6661 "max_size" : 1024,
6662 "with_counters" : false,
6663 "support_timeout" : false,
6664 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02006665 "action_ids" : [65],
Carmelo Casconea5400af2018-07-17 22:11:54 +02006666 "actions" : ["drop_now"],
6667 "base_default_next" : "FabricEgress.egress_next.egress_vlan",
6668 "next_tables" : {
6669 "drop_now" : "FabricEgress.egress_next.egress_vlan"
6670 },
6671 "default_entry" : {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02006672 "action_id" : 65,
Carmelo Casconea5400af2018-07-17 22:11:54 +02006673 "action_const" : true,
6674 "action_data" : [],
6675 "action_entry_const" : true
6676 }
6677 },
6678 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006679 "name" : "FabricEgress.egress_next.egress_vlan",
Carmelo Casconea5400af2018-07-17 22:11:54 +02006680 "id" : 42,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006681 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006682 "filename" : "include/control/next.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02006683 "line" : 258,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006684 "column" : 10,
6685 "source_fragment" : "egress_vlan"
6686 },
6687 "key" : [
6688 {
6689 "match_type" : "exact",
6690 "name" : "hdr.vlan_tag.vlan_id",
6691 "target" : ["vlan_tag", "vlan_id"],
6692 "mask" : null
6693 },
6694 {
6695 "match_type" : "exact",
6696 "name" : "standard_metadata.egress_port",
6697 "target" : ["standard_metadata", "egress_port"],
6698 "mask" : null
6699 }
6700 ],
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08006701 "match_type" : "exact",
6702 "type" : "simple",
6703 "max_size" : 1024,
Yi Tseng47eac892018-07-11 02:17:04 +08006704 "with_counters" : true,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08006705 "support_timeout" : false,
6706 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02006707 "action_ids" : [69, 64],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006708 "actions" : ["FabricEgress.egress_next.pop_vlan", "nop"],
Carmelo Casconea5400af2018-07-17 22:11:54 +02006709 "base_default_next" : "node_68",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08006710 "next_tables" : {
Carmelo Casconea5400af2018-07-17 22:11:54 +02006711 "FabricEgress.egress_next.pop_vlan" : "node_68",
6712 "nop" : "node_68"
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08006713 },
6714 "default_entry" : {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02006715 "action_id" : 64,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006716 "action_const" : false,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08006717 "action_data" : [],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006718 "action_entry_const" : false
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08006719 }
6720 },
6721 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006722 "name" : "tbl_pkt_io_egress_pop_vlan",
Carmelo Casconea5400af2018-07-17 22:11:54 +02006723 "id" : 43,
Carmelo Cascone6af4e172018-06-15 16:01:30 +02006724 "key" : [],
6725 "match_type" : "exact",
6726 "type" : "simple",
6727 "max_size" : 1024,
6728 "with_counters" : false,
6729 "support_timeout" : false,
6730 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02006731 "action_ids" : [68],
Esin Karaman971fb7f2017-12-28 13:44:52 +00006732 "actions" : ["FabricEgress.pkt_io_egress.pop_vlan"],
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02006733 "base_default_next" : "node_71",
6734 "next_tables" : {
6735 "FabricEgress.pkt_io_egress.pop_vlan" : "node_71"
6736 },
6737 "default_entry" : {
6738 "action_id" : 68,
6739 "action_const" : true,
6740 "action_data" : [],
6741 "action_entry_const" : true
6742 }
6743 },
6744 {
6745 "name" : "tbl_drop_now_1",
6746 "id" : 44,
6747 "key" : [],
6748 "match_type" : "exact",
6749 "type" : "simple",
6750 "max_size" : 1024,
6751 "with_counters" : false,
6752 "support_timeout" : false,
6753 "direct_meters" : null,
6754 "action_ids" : [66],
6755 "actions" : ["drop_now"],
Carmelo Casconea5400af2018-07-17 22:11:54 +02006756 "base_default_next" : "tbl_act_24",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02006757 "next_tables" : {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02006758 "drop_now" : "tbl_act_24"
Carmelo Cascone6af4e172018-06-15 16:01:30 +02006759 },
6760 "default_entry" : {
Carmelo Casconea5400af2018-07-17 22:11:54 +02006761 "action_id" : 66,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08006762 "action_const" : true,
6763 "action_data" : [],
6764 "action_entry_const" : true
6765 }
6766 },
6767 {
Carmelo Casconea5400af2018-07-17 22:11:54 +02006768 "name" : "tbl_act_24",
Carmelo Casconea5400af2018-07-17 22:11:54 +02006769 "id" : 45,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006770 "key" : [],
6771 "match_type" : "exact",
6772 "type" : "simple",
6773 "max_size" : 1024,
6774 "with_counters" : false,
6775 "support_timeout" : false,
6776 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02006777 "action_ids" : [70],
6778 "actions" : ["act_24"],
6779 "base_default_next" : "tbl_act_25",
Esin Karaman971fb7f2017-12-28 13:44:52 +00006780 "next_tables" : {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02006781 "act_24" : "tbl_act_25"
Esin Karaman971fb7f2017-12-28 13:44:52 +00006782 },
6783 "default_entry" : {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02006784 "action_id" : 70,
Esin Karaman971fb7f2017-12-28 13:44:52 +00006785 "action_const" : true,
6786 "action_data" : [],
6787 "action_entry_const" : true
6788 }
6789 },
6790 {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02006791 "name" : "tbl_act_25",
Carmelo Casconea5400af2018-07-17 22:11:54 +02006792 "id" : 46,
Esin Karaman971fb7f2017-12-28 13:44:52 +00006793 "key" : [],
6794 "match_type" : "exact",
6795 "type" : "simple",
6796 "max_size" : 1024,
6797 "with_counters" : false,
6798 "support_timeout" : false,
6799 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02006800 "action_ids" : [71],
6801 "actions" : ["act_25"],
6802 "base_default_next" : "node_75",
6803 "next_tables" : {
6804 "act_25" : "node_75"
6805 },
6806 "default_entry" : {
6807 "action_id" : 71,
6808 "action_const" : true,
6809 "action_data" : [],
6810 "action_entry_const" : true
6811 }
6812 },
6813 {
6814 "name" : "tbl_spgw_egress_gtpu_encap",
6815 "id" : 47,
6816 "key" : [],
6817 "match_type" : "exact",
6818 "type" : "simple",
6819 "max_size" : 1024,
6820 "with_counters" : false,
6821 "support_timeout" : false,
6822 "direct_meters" : null,
6823 "action_ids" : [67],
Yi Tseng27b9bc02018-04-12 14:52:40 +08006824 "actions" : ["FabricEgress.spgw_egress.gtpu_encap"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006825 "base_default_next" : null,
6826 "next_tables" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08006827 "FabricEgress.spgw_egress.gtpu_encap" : null
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006828 },
6829 "default_entry" : {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02006830 "action_id" : 67,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006831 "action_const" : true,
6832 "action_data" : [],
6833 "action_entry_const" : true
6834 }
6835 }
6836 ],
6837 "action_profiles" : [],
6838 "conditionals" : [
6839 {
Carmelo Casconea5400af2018-07-17 22:11:54 +02006840 "name" : "node_65",
6841 "id" : 20,
6842 "source_info" : {
6843 "filename" : "include/control/next.p4",
6844 "line" : 272,
6845 "column" : 12,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02006846 "source_fragment" : "fabric_metadata.is_multicast == true ..."
Carmelo Casconea5400af2018-07-17 22:11:54 +02006847 },
6848 "expression" : {
6849 "type" : "expression",
6850 "value" : {
6851 "op" : "and",
6852 "left" : {
6853 "type" : "expression",
6854 "value" : {
6855 "op" : "==",
6856 "left" : {
6857 "type" : "expression",
6858 "value" : {
6859 "op" : "d2b",
6860 "left" : null,
6861 "right" : {
6862 "type" : "field",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02006863 "value" : ["scalars", "fabric_metadata_t.is_multicast"]
Carmelo Casconea5400af2018-07-17 22:11:54 +02006864 }
6865 }
6866 },
6867 "right" : {
6868 "type" : "bool",
6869 "value" : true
6870 }
6871 }
6872 },
6873 "right" : {
6874 "type" : "expression",
6875 "value" : {
6876 "op" : "==",
6877 "left" : {
6878 "type" : "field",
6879 "value" : ["standard_metadata", "ingress_port"]
6880 },
6881 "right" : {
6882 "type" : "field",
6883 "value" : ["standard_metadata", "egress_port"]
6884 }
6885 }
6886 }
6887 }
6888 },
6889 "true_next" : "tbl_drop_now_0",
6890 "false_next" : "FabricEgress.egress_next.egress_vlan"
6891 },
6892 {
6893 "name" : "node_68",
6894 "id" : 21,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006895 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006896 "filename" : "include/control/packetio.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006897 "line" : 42,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006898 "column" : 12,
Carmelo Casconeb531b682018-01-30 17:55:56 -08006899 "source_fragment" : "standard_metadata.egress_port == 255"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006900 },
6901 "expression" : {
6902 "type" : "expression",
6903 "value" : {
6904 "op" : "==",
6905 "left" : {
6906 "type" : "field",
6907 "value" : ["standard_metadata", "egress_port"]
6908 },
6909 "right" : {
6910 "type" : "hexstr",
6911 "value" : "0x00ff"
6912 }
6913 }
6914 },
Carmelo Casconea5400af2018-07-17 22:11:54 +02006915 "true_next" : "node_69",
6916 "false_next" : "tbl_act_25"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006917 },
6918 {
Carmelo Casconea5400af2018-07-17 22:11:54 +02006919 "name" : "node_69",
6920 "id" : 22,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006921 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006922 "filename" : "include/control/packetio.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006923 "line" : 43,
6924 "column" : 16,
Carmelo Cascone228092b2018-06-15 20:41:10 +02006925 "source_fragment" : "hdr.vlan_tag.isValid() && fabric_metadata.pop_vlan_when_packet_in == true"
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006926 },
6927 "expression" : {
6928 "type" : "expression",
6929 "value" : {
6930 "op" : "and",
6931 "left" : {
6932 "type" : "expression",
6933 "value" : {
6934 "op" : "d2b",
6935 "left" : null,
6936 "right" : {
6937 "type" : "field",
6938 "value" : ["vlan_tag", "$valid$"]
6939 }
6940 }
6941 },
6942 "right" : {
6943 "type" : "expression",
6944 "value" : {
Carmelo Cascone228092b2018-06-15 20:41:10 +02006945 "op" : "==",
6946 "left" : {
6947 "type" : "expression",
6948 "value" : {
6949 "op" : "d2b",
6950 "left" : null,
6951 "right" : {
6952 "type" : "field",
6953 "value" : ["scalars", "fabric_metadata_t.pop_vlan_when_packet_in"]
6954 }
6955 }
6956 },
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006957 "right" : {
Carmelo Cascone228092b2018-06-15 20:41:10 +02006958 "type" : "bool",
6959 "value" : true
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006960 }
6961 }
6962 }
6963 }
6964 },
6965 "true_next" : "tbl_pkt_io_egress_pop_vlan",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02006966 "false_next" : "node_71"
6967 },
6968 {
6969 "name" : "node_71",
6970 "id" : 23,
6971 "source_info" : {
6972 "filename" : "include/control/packetio.p4",
6973 "line" : 46,
6974 "column" : 16,
6975 "source_fragment" : "fabric_metadata.is_multicast == true && ..."
6976 },
6977 "expression" : {
6978 "type" : "expression",
6979 "value" : {
6980 "op" : "and",
6981 "left" : {
6982 "type" : "expression",
6983 "value" : {
6984 "op" : "==",
6985 "left" : {
6986 "type" : "expression",
6987 "value" : {
6988 "op" : "d2b",
6989 "left" : null,
6990 "right" : {
6991 "type" : "field",
6992 "value" : ["scalars", "fabric_metadata_t.is_multicast"]
6993 }
6994 }
6995 },
6996 "right" : {
6997 "type" : "bool",
6998 "value" : true
6999 }
7000 }
7001 },
7002 "right" : {
7003 "type" : "expression",
7004 "value" : {
7005 "op" : "==",
7006 "left" : {
7007 "type" : "expression",
7008 "value" : {
7009 "op" : "d2b",
7010 "left" : null,
7011 "right" : {
7012 "type" : "field",
7013 "value" : ["scalars", "fabric_metadata_t.clone_to_cpu"]
7014 }
7015 }
7016 },
7017 "right" : {
7018 "type" : "bool",
7019 "value" : false
7020 }
7021 }
7022 }
7023 }
7024 },
7025 "true_next" : "tbl_drop_now_1",
Carmelo Casconea5400af2018-07-17 22:11:54 +02007026 "false_next" : "tbl_act_24"
Yi Tseng20f9e7b2018-05-24 23:27:39 +08007027 },
7028 {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02007029 "name" : "node_75",
7030 "id" : 24,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007031 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02007032 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02007033 "line" : 244,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007034 "column" : 12,
Carmelo Cascone228092b2018-06-15 20:41:10 +02007035 "source_fragment" : "spgw_meta.do_spgw == true && spgw_meta.direction == DIR_DOWNLINK"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007036 },
7037 "expression" : {
7038 "type" : "expression",
7039 "value" : {
7040 "op" : "and",
7041 "left" : {
7042 "type" : "expression",
7043 "value" : {
Carmelo Cascone228092b2018-06-15 20:41:10 +02007044 "op" : "==",
7045 "left" : {
7046 "type" : "expression",
7047 "value" : {
7048 "op" : "d2b",
7049 "left" : null,
7050 "right" : {
7051 "type" : "field",
7052 "value" : ["userMetadata.spgw", "do_spgw"]
7053 }
7054 }
7055 },
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007056 "right" : {
Carmelo Cascone228092b2018-06-15 20:41:10 +02007057 "type" : "bool",
7058 "value" : true
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007059 }
7060 }
7061 },
7062 "right" : {
7063 "type" : "expression",
7064 "value" : {
7065 "op" : "==",
7066 "left" : {
7067 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08007068 "value" : ["userMetadata.spgw", "direction"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007069 },
7070 "right" : {
7071 "type" : "hexstr",
7072 "value" : "0x01"
7073 }
7074 }
7075 }
7076 }
7077 },
7078 "false_next" : null,
7079 "true_next" : "tbl_spgw_egress_gtpu_encap"
7080 }
7081 ]
7082 }
7083 ],
7084 "checksums" : [
7085 {
7086 "name" : "cksum",
7087 "id" : 0,
7088 "target" : ["ipv4", "hdr_checksum"],
7089 "type" : "generic",
7090 "calculation" : "calc",
7091 "if_cond" : {
7092 "type" : "expression",
7093 "value" : {
7094 "op" : "d2b",
7095 "left" : null,
7096 "right" : {
7097 "type" : "field",
7098 "value" : ["ipv4", "$valid$"]
7099 }
7100 }
7101 }
7102 },
7103 {
7104 "name" : "cksum_0",
7105 "id" : 1,
Carmelo Cascone6af4e172018-06-15 16:01:30 +02007106 "target" : ["gtpu_ipv4", "hdr_checksum"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007107 "type" : "generic",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08007108 "calculation" : "calc_0",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007109 "if_cond" : {
7110 "type" : "expression",
7111 "value" : {
7112 "op" : "d2b",
7113 "left" : null,
7114 "right" : {
7115 "type" : "field",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02007116 "value" : ["gtpu_ipv4", "$valid$"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007117 }
7118 }
7119 }
7120 },
7121 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08007122 "name" : "cksum_1",
7123 "id" : 2,
Carmelo Cascone6af4e172018-06-15 16:01:30 +02007124 "target" : ["ipv4", "hdr_checksum"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007125 "type" : "generic",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08007126 "calculation" : "calc_1",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007127 "if_cond" : {
7128 "type" : "expression",
7129 "value" : {
7130 "op" : "d2b",
7131 "left" : null,
7132 "right" : {
7133 "type" : "field",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02007134 "value" : ["ipv4", "$valid$"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007135 }
7136 }
7137 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007138 }
7139 ],
7140 "force_arith" : [],
7141 "extern_instances" : [],
7142 "field_aliases" : [
7143 [
7144 "queueing_metadata.enq_timestamp",
7145 ["standard_metadata", "enq_timestamp"]
7146 ],
7147 [
7148 "queueing_metadata.enq_qdepth",
7149 ["standard_metadata", "enq_qdepth"]
7150 ],
7151 [
7152 "queueing_metadata.deq_timedelta",
7153 ["standard_metadata", "deq_timedelta"]
7154 ],
7155 [
7156 "queueing_metadata.deq_qdepth",
7157 ["standard_metadata", "deq_qdepth"]
7158 ],
7159 [
7160 "intrinsic_metadata.ingress_global_timestamp",
7161 ["standard_metadata", "ingress_global_timestamp"]
7162 ],
7163 [
Yi Tseng27b9bc02018-04-12 14:52:40 +08007164 "intrinsic_metadata.egress_global_timestamp",
7165 ["standard_metadata", "egress_global_timestamp"]
7166 ],
7167 [
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007168 "intrinsic_metadata.lf_field_list",
7169 ["standard_metadata", "lf_field_list"]
7170 ],
7171 [
7172 "intrinsic_metadata.mcast_grp",
7173 ["standard_metadata", "mcast_grp"]
7174 ],
7175 [
7176 "intrinsic_metadata.resubmit_flag",
7177 ["standard_metadata", "resubmit_flag"]
7178 ],
7179 [
7180 "intrinsic_metadata.egress_rid",
7181 ["standard_metadata", "egress_rid"]
Yi Tseng27b9bc02018-04-12 14:52:40 +08007182 ],
7183 [
7184 "intrinsic_metadata.recirculate_flag",
7185 ["standard_metadata", "recirculate_flag"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007186 ]
Carmelo Cascone6af4e172018-06-15 16:01:30 +02007187 ],
7188 "program" : "fabric.p4",
7189 "__meta__" : {
7190 "version" : [2, 18],
7191 "compiler" : "https://github.com/p4lang/p4c"
7192 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007193}