blob: c5347af52c513fb58d32e5d317c28dd5b1de1607 [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 Casconea5400af2018-07-17 22:11:54 +020021 ["fabric_metadata_t.drop_if_egress_is_ingress", 1, false],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -080022 ["fabric_metadata_t.ip_proto", 8, false],
23 ["fabric_metadata_t.l4_src_port", 16, false],
24 ["fabric_metadata_t.l4_dst_port", 16, false],
25 ["fabric_metadata_t.original_ether_type", 16, false],
Carmelo Casconea5400af2018-07-17 22:11:54 +020026 ["_padding_1", 7, false]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -080027 ]
28 },
29 {
Carmelo Cascone6af4e172018-06-15 16:01:30 +020030 "name" : "standard_metadata",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -080031 "id" : 1,
32 "fields" : [
Carmelo Cascone6af4e172018-06-15 16:01:30 +020033 ["ingress_port", 9, false],
34 ["egress_spec", 9, false],
35 ["egress_port", 9, false],
36 ["clone_spec", 32, false],
37 ["instance_type", 32, false],
38 ["drop", 1, false],
39 ["recirculate_port", 16, false],
40 ["packet_length", 32, false],
41 ["enq_timestamp", 32, false],
42 ["enq_qdepth", 19, false],
43 ["deq_timedelta", 32, false],
44 ["deq_qdepth", 19, false],
45 ["ingress_global_timestamp", 48, false],
46 ["egress_global_timestamp", 48, false],
47 ["lf_field_list", 32, false],
48 ["mcast_grp", 16, false],
49 ["resubmit_flag", 32, false],
50 ["egress_rid", 16, false],
51 ["checksum_error", 1, false],
52 ["recirculate_flag", 32, false],
53 ["_padding", 5, false]
54 ]
55 },
56 {
57 "name" : "ethernet_t",
58 "id" : 2,
59 "fields" : [
Carmelo Casconeb81f4be2018-01-16 23:24:01 -080060 ["dst_addr", 48, false],
61 ["src_addr", 48, false],
62 ["ether_type", 16, false]
63 ]
64 },
65 {
66 "name" : "vlan_tag_t",
Carmelo Cascone6af4e172018-06-15 16:01:30 +020067 "id" : 3,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -080068 "fields" : [
69 ["pri", 3, false],
70 ["cfi", 1, false],
71 ["vlan_id", 12, false],
72 ["ether_type", 16, false]
73 ]
74 },
75 {
76 "name" : "mpls_t",
Carmelo Cascone6af4e172018-06-15 16:01:30 +020077 "id" : 4,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -080078 "fields" : [
79 ["label", 20, false],
80 ["tc", 3, false],
81 ["bos", 1, false],
82 ["ttl", 8, false]
83 ]
84 },
85 {
86 "name" : "ipv4_t",
Carmelo Cascone6af4e172018-06-15 16:01:30 +020087 "id" : 5,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -080088 "fields" : [
89 ["version", 4, false],
90 ["ihl", 4, false],
91 ["diffserv", 8, false],
92 ["total_len", 16, false],
93 ["identification", 16, false],
94 ["flags", 3, false],
95 ["frag_offset", 13, false],
96 ["ttl", 8, false],
97 ["protocol", 8, false],
98 ["hdr_checksum", 16, false],
99 ["src_addr", 32, false],
100 ["dst_addr", 32, false]
101 ]
102 },
103 {
104 "name" : "udp_t",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200105 "id" : 6,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800106 "fields" : [
107 ["src_port", 16, false],
108 ["dst_port", 16, false],
109 ["len", 16, false],
110 ["checksum", 16, false]
111 ]
112 },
113 {
114 "name" : "gtpu_t",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200115 "id" : 7,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800116 "fields" : [
117 ["version", 3, false],
118 ["pt", 1, false],
119 ["spare", 1, false],
120 ["ex_flag", 1, false],
121 ["seq_flag", 1, false],
122 ["npdu_flag", 1, false],
123 ["msgtype", 8, false],
124 ["msglen", 16, false],
125 ["teid", 32, false]
126 ]
127 },
128 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800129 "name" : "arp_t",
130 "id" : 8,
131 "fields" : [
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800132 ["hw_type", 16, false],
133 ["proto_type", 16, false],
134 ["hw_addr_len", 8, false],
135 ["proto_addr_len", 8, false],
136 ["opcode", 16, false]
137 ]
138 },
139 {
140 "name" : "tcp_t",
Yi Tseng27b9bc02018-04-12 14:52:40 +0800141 "id" : 9,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800142 "fields" : [
143 ["src_port", 16, false],
144 ["dst_port", 16, false],
145 ["seq_no", 32, false],
146 ["ack_no", 32, false],
147 ["data_offset", 4, false],
148 ["res", 3, false],
149 ["ecn", 3, false],
150 ["ctrl", 6, false],
151 ["window", 16, false],
152 ["checksum", 16, false],
153 ["urgent_ptr", 16, false]
154 ]
155 },
156 {
157 "name" : "icmp_t",
Yi Tseng27b9bc02018-04-12 14:52:40 +0800158 "id" : 10,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800159 "fields" : [
160 ["icmp_type", 8, false],
161 ["icmp_code", 8, false],
162 ["checksum", 16, false],
163 ["identifier", 16, false],
164 ["sequence_number", 16, false],
165 ["timestamp", 64, false]
166 ]
167 },
168 {
169 "name" : "packet_out_header_t",
Yi Tseng27b9bc02018-04-12 14:52:40 +0800170 "id" : 11,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800171 "fields" : [
172 ["egress_port", 9, false],
173 ["_pad", 7, false]
174 ]
175 },
176 {
177 "name" : "packet_in_header_t",
Yi Tseng27b9bc02018-04-12 14:52:40 +0800178 "id" : 12,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800179 "fields" : [
180 ["ingress_port", 9, false],
181 ["_pad", 7, false]
182 ]
183 },
184 {
185 "name" : "spgw_meta_t",
Yi Tseng27b9bc02018-04-12 14:52:40 +0800186 "id" : 13,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800187 "fields" : [
188 ["do_spgw", 1, 0],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800189 ["direction", 1, false],
Yi Tseng27b9bc02018-04-12 14:52:40 +0800190 ["ipv4_len", 16, false],
Carmelo Casconeb757dbc2018-01-25 17:53:17 -0800191 ["teid", 32, false],
192 ["s1u_enb_addr", 32, false],
193 ["s1u_sgw_addr", 32, false],
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200194 ["_padding_0", 6, false]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800195 ]
196 }
197 ],
198 "headers" : [
199 {
200 "name" : "scalars",
201 "id" : 0,
202 "header_type" : "scalars_0",
203 "metadata" : true,
204 "pi_omit" : true
205 },
206 {
207 "name" : "standard_metadata",
208 "id" : 1,
209 "header_type" : "standard_metadata",
210 "metadata" : true,
211 "pi_omit" : true
212 },
213 {
214 "name" : "ethernet",
215 "id" : 2,
216 "header_type" : "ethernet_t",
217 "metadata" : false,
218 "pi_omit" : true
219 },
220 {
221 "name" : "vlan_tag",
222 "id" : 3,
223 "header_type" : "vlan_tag_t",
224 "metadata" : false,
225 "pi_omit" : true
226 },
227 {
228 "name" : "mpls",
229 "id" : 4,
230 "header_type" : "mpls_t",
231 "metadata" : false,
232 "pi_omit" : true
233 },
234 {
235 "name" : "gtpu_ipv4",
236 "id" : 5,
237 "header_type" : "ipv4_t",
238 "metadata" : false,
239 "pi_omit" : true
240 },
241 {
242 "name" : "gtpu_udp",
243 "id" : 6,
244 "header_type" : "udp_t",
245 "metadata" : false,
246 "pi_omit" : true
247 },
248 {
249 "name" : "gtpu",
250 "id" : 7,
251 "header_type" : "gtpu_t",
252 "metadata" : false,
253 "pi_omit" : true
254 },
255 {
256 "name" : "ipv4",
257 "id" : 8,
258 "header_type" : "ipv4_t",
259 "metadata" : false,
260 "pi_omit" : true
261 },
262 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800263 "name" : "arp",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200264 "id" : 9,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800265 "header_type" : "arp_t",
266 "metadata" : false,
267 "pi_omit" : true
268 },
269 {
270 "name" : "tcp",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200271 "id" : 10,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800272 "header_type" : "tcp_t",
273 "metadata" : false,
274 "pi_omit" : true
275 },
276 {
277 "name" : "udp",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200278 "id" : 11,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800279 "header_type" : "udp_t",
280 "metadata" : false,
281 "pi_omit" : true
282 },
283 {
284 "name" : "icmp",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200285 "id" : 12,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800286 "header_type" : "icmp_t",
287 "metadata" : false,
288 "pi_omit" : true
289 },
290 {
291 "name" : "packet_out",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200292 "id" : 13,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800293 "header_type" : "packet_out_header_t",
294 "metadata" : false,
295 "pi_omit" : true
296 },
297 {
298 "name" : "packet_in",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200299 "id" : 14,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800300 "header_type" : "packet_in_header_t",
301 "metadata" : false,
302 "pi_omit" : true
303 },
304 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800305 "name" : "userMetadata.spgw",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200306 "id" : 15,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800307 "header_type" : "spgw_meta_t",
308 "metadata" : true,
309 "pi_omit" : true
310 }
311 ],
312 "header_stacks" : [],
313 "header_union_types" : [],
314 "header_unions" : [],
315 "header_union_stacks" : [],
316 "field_lists" : [],
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200317 "errors" : [],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800318 "enums" : [],
319 "parsers" : [
320 {
321 "name" : "parser",
322 "id" : 0,
323 "init_state" : "start",
324 "parse_states" : [
325 {
326 "name" : "start",
327 "id" : 0,
328 "parser_ops" : [],
329 "transitions" : [
330 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800331 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800332 "value" : "0x00ff",
333 "mask" : null,
334 "next_state" : "parse_packet_out"
335 },
336 {
337 "value" : "default",
338 "mask" : null,
339 "next_state" : "parse_ethernet"
340 }
341 ],
342 "transition_key" : [
343 {
344 "type" : "field",
345 "value" : ["standard_metadata", "ingress_port"]
346 }
347 ]
348 },
349 {
350 "name" : "parse_packet_out",
351 "id" : 1,
352 "parser_ops" : [
353 {
354 "parameters" : [
355 {
356 "type" : "regular",
357 "value" : "packet_out"
358 }
359 ],
360 "op" : "extract"
361 }
362 ],
363 "transitions" : [
364 {
365 "value" : "default",
366 "mask" : null,
367 "next_state" : "parse_ethernet"
368 }
369 ],
370 "transition_key" : []
371 },
372 {
373 "name" : "parse_ethernet",
374 "id" : 2,
375 "parser_ops" : [
376 {
377 "parameters" : [
378 {
379 "type" : "regular",
380 "value" : "ethernet"
381 }
382 ],
383 "op" : "extract"
384 },
385 {
386 "parameters" : [
387 {
388 "type" : "field",
389 "value" : ["scalars", "fabric_metadata_t.original_ether_type"]
390 },
391 {
392 "type" : "field",
393 "value" : ["ethernet", "ether_type"]
394 }
395 ],
396 "op" : "set"
397 }
398 ],
399 "transitions" : [
400 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800401 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800402 "value" : "0x8100",
403 "mask" : null,
404 "next_state" : "parse_vlan_tag"
405 },
406 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800407 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800408 "value" : "0x8847",
409 "mask" : null,
410 "next_state" : "parse_mpls"
411 },
412 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800413 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800414 "value" : "0x0806",
415 "mask" : null,
416 "next_state" : "parse_arp"
417 },
418 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800419 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800420 "value" : "0x0800",
421 "mask" : null,
422 "next_state" : "parse_ipv4"
423 },
424 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800425 "value" : "default",
426 "mask" : null,
427 "next_state" : null
428 }
429 ],
430 "transition_key" : [
431 {
432 "type" : "field",
433 "value" : ["ethernet", "ether_type"]
434 }
435 ]
436 },
437 {
438 "name" : "parse_vlan_tag",
439 "id" : 3,
440 "parser_ops" : [
441 {
442 "parameters" : [
443 {
444 "type" : "regular",
445 "value" : "vlan_tag"
446 }
447 ],
448 "op" : "extract"
Yi Tseng20f9e7b2018-05-24 23:27:39 +0800449 },
450 {
451 "parameters" : [
452 {
453 "type" : "field",
454 "value" : ["scalars", "fabric_metadata_t.original_ether_type"]
455 },
456 {
457 "type" : "field",
458 "value" : ["vlan_tag", "ether_type"]
459 }
460 ],
461 "op" : "set"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800462 }
463 ],
464 "transitions" : [
465 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800466 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800467 "value" : "0x0806",
468 "mask" : null,
469 "next_state" : "parse_arp"
470 },
471 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800472 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800473 "value" : "0x0800",
474 "mask" : null,
475 "next_state" : "parse_ipv4"
476 },
477 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800478 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800479 "value" : "0x8847",
480 "mask" : null,
481 "next_state" : "parse_mpls"
482 },
483 {
484 "value" : "default",
485 "mask" : null,
486 "next_state" : null
487 }
488 ],
489 "transition_key" : [
490 {
491 "type" : "field",
492 "value" : ["vlan_tag", "ether_type"]
493 }
494 ]
495 },
496 {
497 "name" : "parse_mpls",
498 "id" : 4,
499 "parser_ops" : [
500 {
501 "parameters" : [
502 {
503 "type" : "regular",
504 "value" : "mpls"
505 }
506 ],
507 "op" : "extract"
508 },
509 {
510 "parameters" : [
511 {
512 "type" : "field",
513 "value" : ["scalars", "tmp"]
514 },
515 {
516 "type" : "lookahead",
517 "value" : [0, 4]
518 }
519 ],
520 "op" : "set"
521 }
522 ],
523 "transitions" : [
524 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800525 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800526 "value" : "0x04",
527 "mask" : null,
528 "next_state" : "parse_ipv4"
529 },
530 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800531 "value" : "default",
532 "mask" : null,
533 "next_state" : "parse_ethernet"
534 }
535 ],
536 "transition_key" : [
537 {
538 "type" : "field",
539 "value" : ["scalars", "tmp"]
540 }
541 ]
542 },
543 {
544 "name" : "parse_ipv4",
545 "id" : 5,
546 "parser_ops" : [
547 {
548 "parameters" : [
549 {
550 "type" : "regular",
551 "value" : "ipv4"
552 }
553 ],
554 "op" : "extract"
555 },
556 {
557 "parameters" : [
558 {
559 "type" : "field",
560 "value" : ["scalars", "fabric_metadata_t.ip_proto"]
561 },
562 {
563 "type" : "field",
564 "value" : ["ipv4", "protocol"]
565 }
566 ],
567 "op" : "set"
568 }
569 ],
570 "transitions" : [
571 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800572 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800573 "value" : "0x06",
574 "mask" : null,
575 "next_state" : "parse_tcp"
576 },
577 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800578 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800579 "value" : "0x11",
580 "mask" : null,
581 "next_state" : "parse_udp"
582 },
583 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800584 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800585 "value" : "0x01",
586 "mask" : null,
587 "next_state" : "parse_icmp"
588 },
589 {
590 "value" : "default",
591 "mask" : null,
592 "next_state" : null
593 }
594 ],
595 "transition_key" : [
596 {
597 "type" : "field",
598 "value" : ["ipv4", "protocol"]
599 }
600 ]
601 },
602 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800603 "name" : "parse_arp",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200604 "id" : 6,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800605 "parser_ops" : [
606 {
607 "parameters" : [
608 {
609 "type" : "regular",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800610 "value" : "arp"
611 }
612 ],
613 "op" : "extract"
614 }
615 ],
616 "transitions" : [
617 {
618 "value" : "default",
619 "mask" : null,
620 "next_state" : null
621 }
622 ],
623 "transition_key" : []
624 },
625 {
626 "name" : "parse_tcp",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200627 "id" : 7,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800628 "parser_ops" : [
629 {
630 "parameters" : [
631 {
632 "type" : "regular",
633 "value" : "tcp"
634 }
635 ],
636 "op" : "extract"
637 },
638 {
639 "parameters" : [
640 {
641 "type" : "field",
642 "value" : ["scalars", "fabric_metadata_t.l4_src_port"]
643 },
644 {
645 "type" : "field",
646 "value" : ["tcp", "src_port"]
647 }
648 ],
649 "op" : "set"
650 },
651 {
652 "parameters" : [
653 {
654 "type" : "field",
655 "value" : ["scalars", "fabric_metadata_t.l4_dst_port"]
656 },
657 {
658 "type" : "field",
659 "value" : ["tcp", "dst_port"]
660 }
661 ],
662 "op" : "set"
663 }
664 ],
665 "transitions" : [
666 {
667 "value" : "default",
668 "mask" : null,
669 "next_state" : null
670 }
671 ],
672 "transition_key" : []
673 },
674 {
675 "name" : "parse_udp",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200676 "id" : 8,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800677 "parser_ops" : [
678 {
679 "parameters" : [
680 {
681 "type" : "regular",
682 "value" : "udp"
683 }
684 ],
685 "op" : "extract"
686 },
687 {
688 "parameters" : [
689 {
690 "type" : "field",
691 "value" : ["scalars", "fabric_metadata_t.l4_src_port"]
692 },
693 {
694 "type" : "field",
695 "value" : ["udp", "src_port"]
696 }
697 ],
698 "op" : "set"
699 },
700 {
701 "parameters" : [
702 {
703 "type" : "field",
704 "value" : ["scalars", "fabric_metadata_t.l4_dst_port"]
705 },
706 {
707 "type" : "field",
708 "value" : ["udp", "dst_port"]
709 }
710 ],
711 "op" : "set"
712 }
713 ],
714 "transitions" : [
715 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800716 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800717 "value" : "0x0868",
718 "mask" : null,
719 "next_state" : "parse_gtpu"
720 },
721 {
722 "value" : "default",
723 "mask" : null,
724 "next_state" : null
725 }
726 ],
727 "transition_key" : [
728 {
729 "type" : "field",
730 "value" : ["udp", "dst_port"]
731 }
732 ]
733 },
734 {
735 "name" : "parse_icmp",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200736 "id" : 9,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800737 "parser_ops" : [
738 {
739 "parameters" : [
740 {
741 "type" : "regular",
742 "value" : "icmp"
743 }
744 ],
745 "op" : "extract"
746 }
747 ],
748 "transitions" : [
749 {
750 "value" : "default",
751 "mask" : null,
752 "next_state" : null
753 }
754 ],
755 "transition_key" : []
756 },
757 {
758 "name" : "parse_gtpu",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200759 "id" : 10,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800760 "parser_ops" : [
761 {
762 "parameters" : [
763 {
764 "type" : "regular",
765 "value" : "gtpu"
766 }
767 ],
768 "op" : "extract"
769 },
770 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800771 "parameters" : [
772 {
773 "type" : "regular",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -0800774 "value" : "gtpu_ipv4"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800775 }
776 ],
777 "op" : "extract"
778 }
779 ],
780 "transitions" : [
781 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800782 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800783 "value" : "0x06",
784 "mask" : null,
785 "next_state" : "parse_tcp"
786 },
787 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800788 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800789 "value" : "0x11",
790 "mask" : null,
791 "next_state" : "parse_udp_inner"
792 },
793 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800794 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800795 "value" : "0x01",
796 "mask" : null,
797 "next_state" : "parse_icmp"
798 },
799 {
800 "value" : "default",
801 "mask" : null,
802 "next_state" : null
803 }
804 ],
805 "transition_key" : [
806 {
807 "type" : "field",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -0800808 "value" : ["gtpu_ipv4", "protocol"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800809 }
810 ]
811 },
812 {
813 "name" : "parse_udp_inner",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200814 "id" : 11,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800815 "parser_ops" : [
816 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800817 "parameters" : [
818 {
819 "type" : "regular",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -0800820 "value" : "gtpu_udp"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800821 }
822 ],
823 "op" : "extract"
824 },
825 {
826 "parameters" : [
827 {
828 "type" : "field",
829 "value" : ["scalars", "fabric_metadata_t.l4_src_port"]
830 },
831 {
832 "type" : "field",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -0800833 "value" : ["gtpu_udp", "src_port"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800834 }
835 ],
836 "op" : "set"
837 },
838 {
839 "parameters" : [
840 {
841 "type" : "field",
842 "value" : ["scalars", "fabric_metadata_t.l4_dst_port"]
843 },
844 {
845 "type" : "field",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -0800846 "value" : ["gtpu_udp", "dst_port"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800847 }
848 ],
849 "op" : "set"
850 }
851 ],
852 "transitions" : [
853 {
854 "value" : "default",
855 "mask" : null,
856 "next_state" : null
857 }
858 ],
859 "transition_key" : []
860 }
861 ]
862 }
863 ],
Yi Tseng27b9bc02018-04-12 14:52:40 +0800864 "parse_vsets" : [],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800865 "deparsers" : [
866 {
867 "name" : "deparser",
868 "id" : 0,
869 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +0200870 "filename" : "include/parser.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +0800871 "line" : 165,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800872 "column" : 8,
873 "source_fragment" : "FabricDeparser"
874 },
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200875 "order" : ["packet_in", "ethernet", "vlan_tag", "mpls", "arp", "gtpu_ipv4", "gtpu_udp", "gtpu", "ipv4", "tcp", "udp", "icmp"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800876 }
877 ],
878 "meter_arrays" : [],
879 "counter_arrays" : [
880 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800881 "name" : "FabricIngress.spgw_ingress.ue_counter",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800882 "id" : 0,
883 "is_direct" : true,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800884 "binding" : "FabricIngress.spgw_ingress.ue_cdr_table"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800885 },
886 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800887 "name" : "FabricIngress.filtering.ingress_port_vlan_counter",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800888 "id" : 1,
889 "is_direct" : true,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800890 "binding" : "FabricIngress.filtering.ingress_port_vlan"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800891 },
892 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800893 "name" : "FabricIngress.filtering.fwd_classifier_counter",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800894 "id" : 2,
895 "is_direct" : true,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800896 "binding" : "FabricIngress.filtering.fwd_classifier"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800897 },
898 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800899 "name" : "FabricIngress.forwarding.bridging_counter",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800900 "id" : 3,
901 "is_direct" : true,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800902 "binding" : "FabricIngress.forwarding.bridging"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800903 },
904 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800905 "name" : "FabricIngress.forwarding.mpls_counter",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800906 "id" : 4,
907 "is_direct" : true,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800908 "binding" : "FabricIngress.forwarding.mpls"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800909 },
910 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800911 "name" : "FabricIngress.forwarding.unicast_v4_counter",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800912 "id" : 5,
913 "is_direct" : true,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800914 "binding" : "FabricIngress.forwarding.unicast_v4"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800915 },
916 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800917 "name" : "FabricIngress.forwarding.acl_counter",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -0800918 "id" : 6,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800919 "is_direct" : true,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800920 "binding" : "FabricIngress.forwarding.acl"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800921 },
922 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +0800923 "name" : "FabricIngress.next.vlan_meta_counter",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200924 "id" : 7,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800925 "is_direct" : true,
Yi Tseng20f9e7b2018-05-24 23:27:39 +0800926 "binding" : "FabricIngress.next.vlan_meta"
927 },
928 {
929 "name" : "FabricIngress.next.simple_counter",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200930 "id" : 8,
Yi Tseng20f9e7b2018-05-24 23:27:39 +0800931 "is_direct" : true,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800932 "binding" : "FabricIngress.next.simple"
933 },
934 {
935 "name" : "FabricIngress.next.hashed_counter",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200936 "id" : 9,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800937 "is_direct" : true,
938 "binding" : "FabricIngress.next.hashed"
939 },
940 {
Esin Karaman971fb7f2017-12-28 13:44:52 +0000941 "name" : "FabricIngress.next.multicast_counter",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200942 "id" : 10,
Esin Karaman971fb7f2017-12-28 13:44:52 +0000943 "is_direct" : true,
944 "binding" : "FabricIngress.next.multicast"
945 },
946 {
947 "name" : "FabricIngress.port_counters_control.egress_port_counter",
948 "id" : 11,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800949 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +0200950 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800951 "line" : 23,
Yi Tseng3d3956d2018-01-31 17:28:05 -0800952 "column" : 48,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800953 "source_fragment" : "egress_port_counter"
954 },
955 "size" : 511,
956 "is_direct" : false
957 },
958 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800959 "name" : "FabricIngress.port_counters_control.ingress_port_counter",
Esin Karaman971fb7f2017-12-28 13:44:52 +0000960 "id" : 12,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800961 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +0200962 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800963 "line" : 24,
Yi Tseng3d3956d2018-01-31 17:28:05 -0800964 "column" : 48,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800965 "source_fragment" : "ingress_port_counter"
966 },
967 "size" : 511,
968 "is_direct" : false
Yi Tseng47eac892018-07-11 02:17:04 +0800969 },
970 {
971 "name" : "FabricEgress.egress_next.egress_vlan_counter",
972 "id" : 13,
973 "is_direct" : true,
974 "binding" : "FabricEgress.egress_next.egress_vlan"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800975 }
976 ],
977 "register_arrays" : [],
978 "calculations" : [
979 {
980 "name" : "calc",
981 "id" : 0,
982 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +0200983 "filename" : "include/checksum.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800984 "line" : 28,
985 "column" : 8,
986 "source_fragment" : "update_checksum(hdr.ipv4.isValid(), ..."
987 },
988 "algo" : "csum16",
989 "input" : [
990 {
991 "type" : "field",
992 "value" : ["ipv4", "version"]
993 },
994 {
995 "type" : "field",
996 "value" : ["ipv4", "ihl"]
997 },
998 {
999 "type" : "field",
1000 "value" : ["ipv4", "diffserv"]
1001 },
1002 {
1003 "type" : "field",
1004 "value" : ["ipv4", "total_len"]
1005 },
1006 {
1007 "type" : "field",
1008 "value" : ["ipv4", "identification"]
1009 },
1010 {
1011 "type" : "field",
1012 "value" : ["ipv4", "flags"]
1013 },
1014 {
1015 "type" : "field",
1016 "value" : ["ipv4", "frag_offset"]
1017 },
1018 {
1019 "type" : "field",
1020 "value" : ["ipv4", "ttl"]
1021 },
1022 {
1023 "type" : "field",
1024 "value" : ["ipv4", "protocol"]
1025 },
1026 {
1027 "type" : "field",
1028 "value" : ["ipv4", "src_addr"]
1029 },
1030 {
1031 "type" : "field",
1032 "value" : ["ipv4", "dst_addr"]
1033 }
1034 ]
1035 },
1036 {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001037 "name" : "calc_0",
1038 "id" : 1,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001039 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001040 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02001041 "line" : 291,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001042 "column" : 8,
1043 "source_fragment" : "update_checksum(gtpu_ipv4.isValid(), ..."
1044 },
1045 "algo" : "csum16",
1046 "input" : [
1047 {
1048 "type" : "field",
1049 "value" : ["gtpu_ipv4", "version"]
1050 },
1051 {
1052 "type" : "field",
1053 "value" : ["gtpu_ipv4", "ihl"]
1054 },
1055 {
1056 "type" : "field",
1057 "value" : ["gtpu_ipv4", "diffserv"]
1058 },
1059 {
1060 "type" : "field",
1061 "value" : ["gtpu_ipv4", "total_len"]
1062 },
1063 {
1064 "type" : "field",
1065 "value" : ["gtpu_ipv4", "identification"]
1066 },
1067 {
1068 "type" : "field",
1069 "value" : ["gtpu_ipv4", "flags"]
1070 },
1071 {
1072 "type" : "field",
1073 "value" : ["gtpu_ipv4", "frag_offset"]
1074 },
1075 {
1076 "type" : "field",
1077 "value" : ["gtpu_ipv4", "ttl"]
1078 },
1079 {
1080 "type" : "field",
1081 "value" : ["gtpu_ipv4", "protocol"]
1082 },
1083 {
1084 "type" : "field",
1085 "value" : ["gtpu_ipv4", "src_addr"]
1086 },
1087 {
1088 "type" : "field",
1089 "value" : ["gtpu_ipv4", "dst_addr"]
1090 }
1091 ]
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001092 },
1093 {
1094 "name" : "calc_1",
1095 "id" : 2,
1096 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001097 "filename" : "include/checksum.p4",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001098 "line" : 56,
1099 "column" : 8,
1100 "source_fragment" : "verify_checksum(hdr.ipv4.isValid(), ..."
1101 },
1102 "algo" : "csum16",
1103 "input" : [
1104 {
1105 "type" : "field",
1106 "value" : ["ipv4", "version"]
1107 },
1108 {
1109 "type" : "field",
1110 "value" : ["ipv4", "ihl"]
1111 },
1112 {
1113 "type" : "field",
1114 "value" : ["ipv4", "diffserv"]
1115 },
1116 {
1117 "type" : "field",
1118 "value" : ["ipv4", "total_len"]
1119 },
1120 {
1121 "type" : "field",
1122 "value" : ["ipv4", "identification"]
1123 },
1124 {
1125 "type" : "field",
1126 "value" : ["ipv4", "flags"]
1127 },
1128 {
1129 "type" : "field",
1130 "value" : ["ipv4", "frag_offset"]
1131 },
1132 {
1133 "type" : "field",
1134 "value" : ["ipv4", "ttl"]
1135 },
1136 {
1137 "type" : "field",
1138 "value" : ["ipv4", "protocol"]
1139 },
1140 {
1141 "type" : "field",
1142 "value" : ["ipv4", "src_addr"]
1143 },
1144 {
1145 "type" : "field",
1146 "value" : ["ipv4", "dst_addr"]
1147 }
1148 ]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001149 }
1150 ],
1151 "learn_lists" : [],
1152 "actions" : [
1153 {
1154 "name" : "NoAction",
1155 "id" : 0,
1156 "runtime_data" : [],
1157 "primitives" : []
1158 },
1159 {
1160 "name" : "NoAction",
1161 "id" : 1,
1162 "runtime_data" : [],
1163 "primitives" : []
1164 },
1165 {
1166 "name" : "NoAction",
1167 "id" : 2,
1168 "runtime_data" : [],
1169 "primitives" : []
1170 },
1171 {
1172 "name" : "NoAction",
1173 "id" : 3,
1174 "runtime_data" : [],
1175 "primitives" : []
1176 },
1177 {
1178 "name" : "NoAction",
1179 "id" : 4,
1180 "runtime_data" : [],
1181 "primitives" : []
1182 },
1183 {
1184 "name" : "NoAction",
1185 "id" : 5,
1186 "runtime_data" : [],
1187 "primitives" : []
1188 },
1189 {
1190 "name" : "NoAction",
1191 "id" : 6,
1192 "runtime_data" : [],
1193 "primitives" : []
1194 },
1195 {
1196 "name" : "NoAction",
1197 "id" : 7,
1198 "runtime_data" : [],
1199 "primitives" : []
1200 },
1201 {
1202 "name" : "NoAction",
1203 "id" : 8,
1204 "runtime_data" : [],
1205 "primitives" : []
1206 },
1207 {
Esin Karaman971fb7f2017-12-28 13:44:52 +00001208 "name" : "NoAction",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001209 "id" : 9,
1210 "runtime_data" : [],
1211 "primitives" : []
1212 },
1213 {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001214 "name" : "nop",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001215 "id" : 10,
1216 "runtime_data" : [],
1217 "primitives" : []
1218 },
1219 {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001220 "name" : "nop",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001221 "id" : 11,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001222 "runtime_data" : [],
Yi Tseng27b9bc02018-04-12 14:52:40 +08001223 "primitives" : []
1224 },
1225 {
Esin Karaman971fb7f2017-12-28 13:44:52 +00001226 "name" : "nop",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001227 "id" : 12,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001228 "runtime_data" : [],
Esin Karaman971fb7f2017-12-28 13:44:52 +00001229 "primitives" : []
1230 },
1231 {
Carmelo Casconea5400af2018-07-17 22:11:54 +02001232 "name" : "drop_now",
Esin Karaman971fb7f2017-12-28 13:44:52 +00001233 "id" : 13,
1234 "runtime_data" : [],
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001235 "primitives" : [
1236 {
1237 "op" : "drop",
1238 "parameters" : [],
1239 "source_info" : {
Carmelo Casconea5400af2018-07-17 22:11:54 +02001240 "filename" : "include/control/../action.p4",
1241 "line" : 24,
1242 "column" : 4,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001243 "source_fragment" : "mark_to_drop()"
1244 }
1245 },
1246 {
1247 "op" : "exit",
1248 "parameters" : [],
1249 "source_info" : {
Carmelo Casconea5400af2018-07-17 22:11:54 +02001250 "filename" : "include/control/../action.p4",
1251 "line" : 25,
1252 "column" : 4,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001253 "source_fragment" : "exit"
1254 }
1255 }
1256 ]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001257 },
1258 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001259 "name" : "FabricIngress.spgw_ingress.gtpu_decap",
Esin Karaman971fb7f2017-12-28 13:44:52 +00001260 "id" : 14,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001261 "runtime_data" : [],
1262 "primitives" : [
1263 {
1264 "op" : "remove_header",
1265 "parameters" : [
1266 {
1267 "type" : "header",
1268 "value" : "gtpu_ipv4"
1269 }
1270 ],
1271 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001272 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02001273 "line" : 33,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001274 "column" : 8,
1275 "source_fragment" : "gtpu_ipv4.setInvalid()"
1276 }
1277 },
1278 {
1279 "op" : "remove_header",
1280 "parameters" : [
1281 {
1282 "type" : "header",
1283 "value" : "gtpu_udp"
1284 }
1285 ],
1286 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001287 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02001288 "line" : 34,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001289 "column" : 8,
1290 "source_fragment" : "gtpu_udp.setInvalid()"
1291 }
1292 },
1293 {
1294 "op" : "remove_header",
1295 "parameters" : [
1296 {
1297 "type" : "header",
1298 "value" : "gtpu"
1299 }
1300 ],
1301 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001302 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02001303 "line" : 35,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001304 "column" : 8,
1305 "source_fragment" : "gtpu.setInvalid()"
1306 }
1307 }
1308 ]
1309 },
1310 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001311 "name" : "FabricIngress.spgw_ingress.set_dl_sess_info",
Esin Karaman971fb7f2017-12-28 13:44:52 +00001312 "id" : 15,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001313 "runtime_data" : [
1314 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001315 "name" : "teid",
1316 "bitwidth" : 32
1317 },
1318 {
1319 "name" : "s1u_enb_addr",
1320 "bitwidth" : 32
1321 },
1322 {
1323 "name" : "s1u_sgw_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001324 "bitwidth" : 32
1325 }
1326 ],
1327 "primitives" : [
1328 {
1329 "op" : "assign",
1330 "parameters" : [
1331 {
1332 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08001333 "value" : ["userMetadata.spgw", "teid"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001334 },
1335 {
1336 "type" : "runtime_data",
1337 "value" : 0
1338 }
1339 ],
1340 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001341 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02001342 "line" : 41,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001343 "column" : 8,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001344 "source_fragment" : "spgw_meta.teid = teid"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001345 }
1346 },
1347 {
1348 "op" : "assign",
1349 "parameters" : [
1350 {
1351 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08001352 "value" : ["userMetadata.spgw", "s1u_enb_addr"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001353 },
1354 {
1355 "type" : "runtime_data",
1356 "value" : 1
1357 }
1358 ],
1359 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001360 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02001361 "line" : 42,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001362 "column" : 8,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001363 "source_fragment" : "spgw_meta.s1u_enb_addr = s1u_enb_addr"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001364 }
1365 },
1366 {
1367 "op" : "assign",
1368 "parameters" : [
1369 {
1370 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08001371 "value" : ["userMetadata.spgw", "s1u_sgw_addr"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001372 },
1373 {
1374 "type" : "runtime_data",
1375 "value" : 2
1376 }
1377 ],
1378 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001379 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02001380 "line" : 43,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001381 "column" : 8,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001382 "source_fragment" : "spgw_meta.s1u_sgw_addr = s1u_sgw_addr"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001383 }
1384 }
1385 ]
1386 },
1387 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001388 "name" : "FabricIngress.spgw_ingress.update_ue_cdr",
Esin Karaman971fb7f2017-12-28 13:44:52 +00001389 "id" : 16,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001390 "runtime_data" : [],
1391 "primitives" : []
1392 },
1393 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001394 "name" : "FabricIngress.filtering.drop",
Esin Karaman971fb7f2017-12-28 13:44:52 +00001395 "id" : 17,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001396 "runtime_data" : [],
1397 "primitives" : [
1398 {
1399 "op" : "drop",
1400 "parameters" : [],
1401 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001402 "filename" : "include/control/filtering.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001403 "line" : 37,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001404 "column" : 8,
1405 "source_fragment" : "mark_to_drop()"
1406 }
1407 }
1408 ]
1409 },
1410 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001411 "name" : "FabricIngress.filtering.set_vlan",
Esin Karaman971fb7f2017-12-28 13:44:52 +00001412 "id" : 18,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001413 "runtime_data" : [
1414 {
1415 "name" : "new_vlan_id",
1416 "bitwidth" : 12
1417 }
1418 ],
1419 "primitives" : [
1420 {
1421 "op" : "assign",
1422 "parameters" : [
1423 {
1424 "type" : "field",
1425 "value" : ["vlan_tag", "vlan_id"]
1426 },
1427 {
1428 "type" : "runtime_data",
1429 "value" : 0
1430 }
1431 ],
1432 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001433 "filename" : "include/control/filtering.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001434 "line" : 42,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001435 "column" : 8,
1436 "source_fragment" : "hdr.vlan_tag.vlan_id = new_vlan_id"
1437 }
1438 }
1439 ]
1440 },
1441 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001442 "name" : "FabricIngress.filtering.push_internal_vlan",
Esin Karaman971fb7f2017-12-28 13:44:52 +00001443 "id" : 19,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001444 "runtime_data" : [
1445 {
1446 "name" : "new_vlan_id",
1447 "bitwidth" : 12
1448 }
1449 ],
1450 "primitives" : [
1451 {
1452 "op" : "add_header",
1453 "parameters" : [
1454 {
1455 "type" : "header",
1456 "value" : "vlan_tag"
1457 }
1458 ],
1459 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001460 "filename" : "include/control/filtering.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001461 "line" : 49,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001462 "column" : 8,
1463 "source_fragment" : "hdr.vlan_tag.setValid()"
1464 }
1465 },
1466 {
1467 "op" : "assign",
1468 "parameters" : [
1469 {
1470 "type" : "field",
1471 "value" : ["vlan_tag", "cfi"]
1472 },
1473 {
1474 "type" : "hexstr",
1475 "value" : "0x00"
1476 }
1477 ],
1478 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001479 "filename" : "include/control/filtering.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001480 "line" : 50,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001481 "column" : 8,
1482 "source_fragment" : "hdr.vlan_tag.cfi = 0"
1483 }
1484 },
1485 {
1486 "op" : "assign",
1487 "parameters" : [
1488 {
1489 "type" : "field",
1490 "value" : ["vlan_tag", "pri"]
1491 },
1492 {
1493 "type" : "hexstr",
1494 "value" : "0x00"
1495 }
1496 ],
1497 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001498 "filename" : "include/control/filtering.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001499 "line" : 51,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001500 "column" : 8,
1501 "source_fragment" : "hdr.vlan_tag.pri = 0"
1502 }
1503 },
1504 {
1505 "op" : "assign",
1506 "parameters" : [
1507 {
1508 "type" : "field",
1509 "value" : ["vlan_tag", "ether_type"]
1510 },
1511 {
1512 "type" : "field",
1513 "value" : ["ethernet", "ether_type"]
1514 }
1515 ],
1516 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001517 "filename" : "include/control/filtering.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001518 "line" : 52,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001519 "column" : 8,
1520 "source_fragment" : "hdr.vlan_tag.ether_type = hdr.ethernet.ether_type"
1521 }
1522 },
1523 {
1524 "op" : "assign",
1525 "parameters" : [
1526 {
1527 "type" : "field",
1528 "value" : ["ethernet", "ether_type"]
1529 },
1530 {
1531 "type" : "hexstr",
1532 "value" : "0x8100"
1533 }
1534 ],
1535 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001536 "filename" : "include/control/../define.p4",
Carmelo Cascone228092b2018-06-15 20:41:10 +02001537 "line" : 66,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001538 "column" : 31,
1539 "source_fragment" : "0x8100; ..."
1540 }
1541 },
1542 {
1543 "op" : "assign",
1544 "parameters" : [
1545 {
1546 "type" : "field",
1547 "value" : ["vlan_tag", "vlan_id"]
1548 },
1549 {
1550 "type" : "runtime_data",
1551 "value" : 0
1552 }
1553 ],
1554 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001555 "filename" : "include/control/filtering.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001556 "line" : 54,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001557 "column" : 8,
Yi Tseng47eac892018-07-11 02:17:04 +08001558 "source_fragment" : "hdr.vlan_tag.vlan_id = new_vlan_id"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001559 }
1560 },
1561 {
1562 "op" : "assign",
1563 "parameters" : [
1564 {
1565 "type" : "field",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001566 "value" : ["scalars", "fabric_metadata_t.pop_vlan_when_packet_in"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001567 },
1568 {
1569 "type" : "expression",
1570 "value" : {
1571 "type" : "expression",
1572 "value" : {
1573 "op" : "b2d",
1574 "left" : null,
1575 "right" : {
1576 "type" : "bool",
1577 "value" : true
1578 }
1579 }
1580 }
1581 }
1582 ],
1583 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001584 "filename" : "include/control/filtering.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001585 "line" : 57,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001586 "column" : 8,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001587 "source_fragment" : "fabric_metadata.pop_vlan_when_packet_in = true"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001588 }
1589 }
1590 ]
1591 },
1592 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001593 "name" : "FabricIngress.filtering.set_forwarding_type",
Esin Karaman971fb7f2017-12-28 13:44:52 +00001594 "id" : 20,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001595 "runtime_data" : [
1596 {
1597 "name" : "fwd_type",
1598 "bitwidth" : 3
1599 }
1600 ],
1601 "primitives" : [
1602 {
1603 "op" : "assign",
1604 "parameters" : [
1605 {
1606 "type" : "field",
1607 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
1608 },
1609 {
1610 "type" : "runtime_data",
1611 "value" : 0
1612 }
1613 ],
1614 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001615 "filename" : "include/control/filtering.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001616 "line" : 94,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001617 "column" : 8,
1618 "source_fragment" : "fabric_metadata.fwd_type = fwd_type"
1619 }
1620 }
1621 ]
1622 },
1623 {
Yi Tseng47eac892018-07-11 02:17:04 +08001624 "name" : "FabricIngress.forwarding.set_next_id_bridging",
Esin Karaman971fb7f2017-12-28 13:44:52 +00001625 "id" : 21,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001626 "runtime_data" : [
1627 {
1628 "name" : "next_id",
1629 "bitwidth" : 32
1630 }
1631 ],
1632 "primitives" : [
1633 {
1634 "op" : "assign",
1635 "parameters" : [
1636 {
1637 "type" : "field",
1638 "value" : ["scalars", "fabric_metadata_t.next_id"]
1639 },
1640 {
1641 "type" : "runtime_data",
1642 "value" : 0
1643 }
1644 ],
1645 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001646 "filename" : "include/control/forwarding.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001647 "line" : 37,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001648 "column" : 8,
1649 "source_fragment" : "fabric_metadata.next_id = next_id"
1650 }
1651 }
1652 ]
1653 },
1654 {
Yi Tseng47eac892018-07-11 02:17:04 +08001655 "name" : "FabricIngress.forwarding.pop_mpls_and_next",
1656 "id" : 22,
1657 "runtime_data" : [
1658 {
1659 "name" : "next_id",
1660 "bitwidth" : 32
1661 }
1662 ],
1663 "primitives" : [
1664 {
1665 "op" : "remove_header",
1666 "parameters" : [
1667 {
1668 "type" : "header",
1669 "value" : "mpls"
1670 }
1671 ],
1672 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001673 "filename" : "include/control/forwarding.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001674 "line" : 60,
1675 "column" : 8,
1676 "source_fragment" : "hdr.mpls.setInvalid()"
1677 }
1678 },
1679 {
1680 "op" : "assign",
1681 "parameters" : [
1682 {
1683 "type" : "field",
1684 "value" : ["scalars", "fabric_metadata_t.next_id"]
1685 },
1686 {
1687 "type" : "runtime_data",
1688 "value" : 0
1689 }
1690 ],
1691 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001692 "filename" : "include/control/forwarding.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001693 "line" : 61,
1694 "column" : 8,
1695 "source_fragment" : "fabric_metadata.next_id = next_id"
1696 }
1697 }
1698 ]
1699 },
1700 {
1701 "name" : "FabricIngress.forwarding.set_next_id_unicast_v4",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001702 "id" : 23,
Yi Tseng27b9bc02018-04-12 14:52:40 +08001703 "runtime_data" : [
1704 {
1705 "name" : "next_id",
1706 "bitwidth" : 32
1707 }
1708 ],
1709 "primitives" : [
1710 {
1711 "op" : "assign",
1712 "parameters" : [
1713 {
1714 "type" : "field",
1715 "value" : ["scalars", "fabric_metadata_t.next_id"]
1716 },
1717 {
1718 "type" : "runtime_data",
1719 "value" : 0
1720 }
1721 ],
1722 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001723 "filename" : "include/control/forwarding.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001724 "line" : 83,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001725 "column" : 8,
1726 "source_fragment" : "fabric_metadata.next_id = next_id"
1727 }
1728 }
1729 ]
1730 },
1731 {
Yi Tseng47eac892018-07-11 02:17:04 +08001732 "name" : "FabricIngress.forwarding.set_next_id_acl",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001733 "id" : 24,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001734 "runtime_data" : [
1735 {
1736 "name" : "next_id",
1737 "bitwidth" : 32
1738 }
1739 ],
1740 "primitives" : [
1741 {
Esin Karaman971fb7f2017-12-28 13:44:52 +00001742 "op" : "assign",
1743 "parameters" : [
1744 {
1745 "type" : "field",
1746 "value" : ["scalars", "fabric_metadata_t.next_id"]
1747 },
1748 {
1749 "type" : "runtime_data",
1750 "value" : 0
1751 }
1752 ],
1753 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001754 "filename" : "include/control/forwarding.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001755 "line" : 105,
Esin Karaman971fb7f2017-12-28 13:44:52 +00001756 "column" : 8,
1757 "source_fragment" : "fabric_metadata.next_id = next_id"
1758 }
1759 }
1760 ]
1761 },
1762 {
Yi Tseng47eac892018-07-11 02:17:04 +08001763 "name" : "FabricIngress.forwarding.send_to_controller",
Esin Karaman971fb7f2017-12-28 13:44:52 +00001764 "id" : 25,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001765 "runtime_data" : [],
1766 "primitives" : [
1767 {
1768 "op" : "assign",
1769 "parameters" : [
1770 {
1771 "type" : "field",
1772 "value" : ["standard_metadata", "egress_spec"]
1773 },
1774 {
1775 "type" : "hexstr",
1776 "value" : "0x00ff"
1777 }
1778 ],
1779 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001780 "filename" : "include/control/forwarding.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001781 "line" : 110,
Carmelo Casconeb531b682018-01-30 17:55:56 -08001782 "column" : 8,
1783 "source_fragment" : "standard_metadata.egress_spec = 255"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001784 }
1785 }
1786 ]
1787 },
1788 {
Yi Tseng47eac892018-07-11 02:17:04 +08001789 "name" : "FabricIngress.forwarding.drop",
1790 "id" : 26,
1791 "runtime_data" : [],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001792 "primitives" : [
1793 {
Yi Tseng47eac892018-07-11 02:17:04 +08001794 "op" : "drop",
1795 "parameters" : [],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001796 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001797 "filename" : "include/control/forwarding.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001798 "line" : 115,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001799 "column" : 8,
Yi Tseng47eac892018-07-11 02:17:04 +08001800 "source_fragment" : "mark_to_drop()"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001801 }
1802 }
1803 ]
1804 },
1805 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001806 "name" : "FabricIngress.next.set_vlan",
Yi Tseng47eac892018-07-11 02:17:04 +08001807 "id" : 27,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001808 "runtime_data" : [
1809 {
1810 "name" : "new_vlan_id",
1811 "bitwidth" : 12
1812 }
1813 ],
1814 "primitives" : [
1815 {
1816 "op" : "assign",
1817 "parameters" : [
1818 {
1819 "type" : "field",
1820 "value" : ["vlan_tag", "vlan_id"]
1821 },
1822 {
1823 "type" : "runtime_data",
1824 "value" : 0
1825 }
1826 ],
1827 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001828 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001829 "line" : 61,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001830 "column" : 8,
1831 "source_fragment" : "hdr.vlan_tag.vlan_id = new_vlan_id"
1832 }
1833 }
1834 ]
1835 },
1836 {
Yi Tseng47eac892018-07-11 02:17:04 +08001837 "name" : "FabricIngress.next.output_simple",
1838 "id" : 28,
1839 "runtime_data" : [
1840 {
1841 "name" : "port_num",
1842 "bitwidth" : 9
1843 }
1844 ],
1845 "primitives" : [
1846 {
1847 "op" : "assign",
1848 "parameters" : [
1849 {
1850 "type" : "field",
1851 "value" : ["standard_metadata", "egress_spec"]
1852 },
1853 {
1854 "type" : "runtime_data",
1855 "value" : 0
1856 }
1857 ],
1858 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001859 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001860 "line" : 85,
1861 "column" : 8,
1862 "source_fragment" : "standard_metadata.egress_spec = port_num"
1863 }
1864 }
1865 ]
1866 },
1867 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001868 "name" : "FabricIngress.next.set_vlan_output",
Esin Karaman971fb7f2017-12-28 13:44:52 +00001869 "id" : 29,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001870 "runtime_data" : [
1871 {
1872 "name" : "new_vlan_id",
1873 "bitwidth" : 12
1874 },
1875 {
1876 "name" : "port_num",
1877 "bitwidth" : 9
1878 }
1879 ],
1880 "primitives" : [
1881 {
1882 "op" : "assign",
1883 "parameters" : [
1884 {
1885 "type" : "field",
1886 "value" : ["vlan_tag", "vlan_id"]
1887 },
1888 {
1889 "type" : "runtime_data",
1890 "value" : 0
1891 }
1892 ],
1893 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001894 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001895 "line" : 90,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001896 "column" : 8,
1897 "source_fragment" : "hdr.vlan_tag.vlan_id = new_vlan_id"
1898 }
1899 },
1900 {
1901 "op" : "assign",
1902 "parameters" : [
1903 {
1904 "type" : "field",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001905 "value" : ["standard_metadata", "egress_spec"]
1906 },
1907 {
1908 "type" : "runtime_data",
1909 "value" : 1
1910 }
1911 ],
1912 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001913 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001914 "line" : 85,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001915 "column" : 8,
1916 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
1917 }
1918 }
1919 ]
1920 },
1921 {
Yi Tseng47eac892018-07-11 02:17:04 +08001922 "name" : "FabricIngress.next.l3_routing_simple",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001923 "id" : 30,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001924 "runtime_data" : [
1925 {
1926 "name" : "port_num",
1927 "bitwidth" : 9
1928 },
1929 {
1930 "name" : "smac",
1931 "bitwidth" : 48
1932 },
1933 {
1934 "name" : "dmac",
1935 "bitwidth" : 48
1936 }
1937 ],
1938 "primitives" : [
1939 {
1940 "op" : "assign",
1941 "parameters" : [
1942 {
1943 "type" : "field",
1944 "value" : ["ethernet", "src_addr"]
1945 },
1946 {
1947 "type" : "runtime_data",
1948 "value" : 1
1949 }
1950 ],
1951 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001952 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001953 "line" : 37,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001954 "column" : 8,
1955 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
1956 }
1957 },
1958 {
1959 "op" : "assign",
1960 "parameters" : [
1961 {
1962 "type" : "field",
1963 "value" : ["ethernet", "dst_addr"]
1964 },
1965 {
1966 "type" : "runtime_data",
1967 "value" : 2
1968 }
1969 ],
1970 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001971 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001972 "line" : 41,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001973 "column" : 8,
1974 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
1975 }
1976 },
1977 {
1978 "op" : "assign",
1979 "parameters" : [
1980 {
1981 "type" : "field",
1982 "value" : ["standard_metadata", "egress_spec"]
1983 },
1984 {
1985 "type" : "runtime_data",
1986 "value" : 0
1987 }
1988 ],
1989 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001990 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001991 "line" : 85,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001992 "column" : 8,
1993 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
1994 }
1995 }
1996 ]
1997 },
1998 {
Yi Tseng47eac892018-07-11 02:17:04 +08001999 "name" : "FabricIngress.next.mpls_routing_v4_simple",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02002000 "id" : 31,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002001 "runtime_data" : [
2002 {
2003 "name" : "port_num",
2004 "bitwidth" : 9
2005 },
2006 {
2007 "name" : "smac",
2008 "bitwidth" : 48
2009 },
2010 {
2011 "name" : "dmac",
2012 "bitwidth" : 48
Yi Tseng47eac892018-07-11 02:17:04 +08002013 },
2014 {
2015 "name" : "label",
2016 "bitwidth" : 20
Esin Karaman971fb7f2017-12-28 13:44:52 +00002017 }
2018 ],
2019 "primitives" : [
2020 {
2021 "op" : "assign",
2022 "parameters" : [
2023 {
2024 "type" : "field",
2025 "value" : ["ethernet", "src_addr"]
2026 },
2027 {
2028 "type" : "runtime_data",
2029 "value" : 1
2030 }
2031 ],
2032 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002033 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002034 "line" : 37,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002035 "column" : 8,
2036 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2037 }
2038 },
2039 {
2040 "op" : "assign",
2041 "parameters" : [
2042 {
2043 "type" : "field",
2044 "value" : ["ethernet", "dst_addr"]
2045 },
2046 {
2047 "type" : "runtime_data",
2048 "value" : 2
2049 }
2050 ],
2051 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002052 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002053 "line" : 41,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002054 "column" : 8,
2055 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2056 }
2057 },
2058 {
2059 "op" : "assign",
2060 "parameters" : [
2061 {
2062 "type" : "field",
2063 "value" : ["standard_metadata", "egress_spec"]
2064 },
2065 {
2066 "type" : "runtime_data",
2067 "value" : 0
2068 }
2069 ],
2070 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002071 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002072 "line" : 85,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002073 "column" : 8,
2074 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2075 }
Yi Tseng47eac892018-07-11 02:17:04 +08002076 },
2077 {
2078 "op" : "add_header",
2079 "parameters" : [
2080 {
2081 "type" : "header",
2082 "value" : "mpls"
2083 }
2084 ],
2085 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002086 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002087 "line" : 46,
2088 "column" : 8,
2089 "source_fragment" : "hdr.mpls.setValid()"
2090 }
2091 },
2092 {
2093 "op" : "assign",
2094 "parameters" : [
2095 {
2096 "type" : "field",
2097 "value" : ["vlan_tag", "ether_type"]
2098 },
2099 {
2100 "type" : "hexstr",
2101 "value" : "0x8847"
2102 }
2103 ],
2104 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002105 "filename" : "include/control/../define.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002106 "line" : 67,
2107 "column" : 31,
2108 "source_fragment" : "0x8847; ..."
2109 }
2110 },
2111 {
2112 "op" : "assign",
2113 "parameters" : [
2114 {
2115 "type" : "field",
2116 "value" : ["mpls", "label"]
2117 },
2118 {
2119 "type" : "runtime_data",
2120 "value" : 3
2121 }
2122 ],
2123 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002124 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002125 "line" : 48,
2126 "column" : 8,
2127 "source_fragment" : "hdr.mpls.label = label; ..."
2128 }
2129 },
2130 {
2131 "op" : "assign",
2132 "parameters" : [
2133 {
2134 "type" : "field",
2135 "value" : ["mpls", "tc"]
2136 },
2137 {
2138 "type" : "hexstr",
2139 "value" : "0x00"
2140 }
2141 ],
2142 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002143 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002144 "line" : 49,
2145 "column" : 8,
2146 "source_fragment" : "hdr.mpls.tc = tc; ..."
2147 }
2148 },
2149 {
2150 "op" : "assign",
2151 "parameters" : [
2152 {
2153 "type" : "field",
2154 "value" : ["mpls", "bos"]
2155 },
2156 {
2157 "type" : "hexstr",
2158 "value" : "0x01"
2159 }
2160 ],
2161 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002162 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002163 "line" : 50,
2164 "column" : 8,
2165 "source_fragment" : "hdr.mpls.bos = 1w1"
2166 }
2167 },
2168 {
2169 "op" : "assign",
2170 "parameters" : [
2171 {
2172 "type" : "field",
2173 "value" : ["mpls", "ttl"]
2174 },
2175 {
2176 "type" : "hexstr",
2177 "value" : "0x40"
2178 }
2179 ],
2180 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002181 "filename" : "include/control/../define.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002182 "line" : 87,
2183 "column" : 32,
2184 "source_fragment" : "64; ..."
2185 }
2186 }
2187 ]
2188 },
2189 {
2190 "name" : "FabricIngress.next.mpls_routing_v6_simple",
2191 "id" : 32,
2192 "runtime_data" : [
2193 {
2194 "name" : "port_num",
2195 "bitwidth" : 9
2196 },
2197 {
2198 "name" : "smac",
2199 "bitwidth" : 48
2200 },
2201 {
2202 "name" : "dmac",
2203 "bitwidth" : 48
2204 },
2205 {
2206 "name" : "label",
2207 "bitwidth" : 20
2208 }
2209 ],
2210 "primitives" : [
2211 {
2212 "op" : "assign",
2213 "parameters" : [
2214 {
2215 "type" : "field",
2216 "value" : ["ethernet", "src_addr"]
2217 },
2218 {
2219 "type" : "runtime_data",
2220 "value" : 1
2221 }
2222 ],
2223 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002224 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002225 "line" : 37,
2226 "column" : 8,
2227 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2228 }
2229 },
2230 {
2231 "op" : "assign",
2232 "parameters" : [
2233 {
2234 "type" : "field",
2235 "value" : ["ethernet", "dst_addr"]
2236 },
2237 {
2238 "type" : "runtime_data",
2239 "value" : 2
2240 }
2241 ],
2242 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002243 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002244 "line" : 41,
2245 "column" : 8,
2246 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2247 }
2248 },
2249 {
2250 "op" : "assign",
2251 "parameters" : [
2252 {
2253 "type" : "field",
2254 "value" : ["standard_metadata", "egress_spec"]
2255 },
2256 {
2257 "type" : "runtime_data",
2258 "value" : 0
2259 }
2260 ],
2261 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002262 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002263 "line" : 85,
2264 "column" : 8,
2265 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2266 }
2267 },
2268 {
2269 "op" : "add_header",
2270 "parameters" : [
2271 {
2272 "type" : "header",
2273 "value" : "mpls"
2274 }
2275 ],
2276 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002277 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002278 "line" : 46,
2279 "column" : 8,
2280 "source_fragment" : "hdr.mpls.setValid()"
2281 }
2282 },
2283 {
2284 "op" : "assign",
2285 "parameters" : [
2286 {
2287 "type" : "field",
2288 "value" : ["vlan_tag", "ether_type"]
2289 },
2290 {
2291 "type" : "hexstr",
2292 "value" : "0x8847"
2293 }
2294 ],
2295 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002296 "filename" : "include/control/../define.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002297 "line" : 67,
2298 "column" : 31,
2299 "source_fragment" : "0x8847; ..."
2300 }
2301 },
2302 {
2303 "op" : "assign",
2304 "parameters" : [
2305 {
2306 "type" : "field",
2307 "value" : ["mpls", "label"]
2308 },
2309 {
2310 "type" : "runtime_data",
2311 "value" : 3
2312 }
2313 ],
2314 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002315 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002316 "line" : 48,
2317 "column" : 8,
2318 "source_fragment" : "hdr.mpls.label = label; ..."
2319 }
2320 },
2321 {
2322 "op" : "assign",
2323 "parameters" : [
2324 {
2325 "type" : "field",
2326 "value" : ["mpls", "tc"]
2327 },
2328 {
2329 "type" : "hexstr",
2330 "value" : "0x00"
2331 }
2332 ],
2333 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002334 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002335 "line" : 49,
2336 "column" : 8,
2337 "source_fragment" : "hdr.mpls.tc = tc; ..."
2338 }
2339 },
2340 {
2341 "op" : "assign",
2342 "parameters" : [
2343 {
2344 "type" : "field",
2345 "value" : ["mpls", "bos"]
2346 },
2347 {
2348 "type" : "hexstr",
2349 "value" : "0x01"
2350 }
2351 ],
2352 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002353 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002354 "line" : 50,
2355 "column" : 8,
2356 "source_fragment" : "hdr.mpls.bos = 1w1"
2357 }
2358 },
2359 {
2360 "op" : "assign",
2361 "parameters" : [
2362 {
2363 "type" : "field",
2364 "value" : ["mpls", "ttl"]
2365 },
2366 {
2367 "type" : "hexstr",
2368 "value" : "0x40"
2369 }
2370 ],
2371 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002372 "filename" : "include/control/../define.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002373 "line" : 87,
2374 "column" : 32,
2375 "source_fragment" : "64; ..."
2376 }
Esin Karaman971fb7f2017-12-28 13:44:52 +00002377 }
2378 ]
2379 },
2380 {
2381 "name" : "FabricIngress.next.l3_routing_vlan",
Yi Tseng47eac892018-07-11 02:17:04 +08002382 "id" : 33,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002383 "runtime_data" : [
2384 {
2385 "name" : "port_num",
2386 "bitwidth" : 9
2387 },
2388 {
2389 "name" : "smac",
2390 "bitwidth" : 48
2391 },
2392 {
2393 "name" : "dmac",
2394 "bitwidth" : 48
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002395 },
2396 {
2397 "name" : "new_vlan_id",
2398 "bitwidth" : 12
2399 }
2400 ],
2401 "primitives" : [
2402 {
2403 "op" : "assign",
2404 "parameters" : [
2405 {
2406 "type" : "field",
2407 "value" : ["ethernet", "src_addr"]
2408 },
2409 {
2410 "type" : "runtime_data",
2411 "value" : 1
2412 }
2413 ],
2414 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002415 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002416 "line" : 37,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002417 "column" : 8,
2418 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2419 }
2420 },
2421 {
2422 "op" : "assign",
2423 "parameters" : [
2424 {
2425 "type" : "field",
2426 "value" : ["ethernet", "dst_addr"]
2427 },
2428 {
2429 "type" : "runtime_data",
2430 "value" : 2
2431 }
2432 ],
2433 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002434 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002435 "line" : 41,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002436 "column" : 8,
2437 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2438 }
2439 },
2440 {
2441 "op" : "assign",
2442 "parameters" : [
2443 {
2444 "type" : "field",
2445 "value" : ["vlan_tag", "vlan_id"]
2446 },
2447 {
2448 "type" : "runtime_data",
2449 "value" : 3
2450 }
2451 ],
2452 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002453 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002454 "line" : 90,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002455 "column" : 8,
2456 "source_fragment" : "hdr.vlan_tag.vlan_id = new_vlan_id; ..."
2457 }
2458 },
2459 {
2460 "op" : "assign",
2461 "parameters" : [
2462 {
2463 "type" : "field",
2464 "value" : ["standard_metadata", "egress_spec"]
2465 },
2466 {
2467 "type" : "runtime_data",
2468 "value" : 0
2469 }
2470 ],
2471 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002472 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002473 "line" : 85,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002474 "column" : 8,
2475 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2476 }
2477 }
2478 ]
2479 },
2480 {
Yi Tseng47eac892018-07-11 02:17:04 +08002481 "name" : "FabricIngress.next.l3_routing_hashed",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02002482 "id" : 34,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002483 "runtime_data" : [
2484 {
2485 "name" : "port_num",
2486 "bitwidth" : 9
2487 },
2488 {
2489 "name" : "smac",
2490 "bitwidth" : 48
2491 },
2492 {
2493 "name" : "dmac",
2494 "bitwidth" : 48
2495 }
2496 ],
2497 "primitives" : [
2498 {
2499 "op" : "assign",
2500 "parameters" : [
2501 {
2502 "type" : "field",
2503 "value" : ["ethernet", "src_addr"]
2504 },
2505 {
2506 "type" : "runtime_data",
2507 "value" : 1
2508 }
2509 ],
2510 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002511 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002512 "line" : 37,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002513 "column" : 8,
2514 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2515 }
2516 },
2517 {
2518 "op" : "assign",
2519 "parameters" : [
2520 {
2521 "type" : "field",
2522 "value" : ["ethernet", "dst_addr"]
2523 },
2524 {
2525 "type" : "runtime_data",
2526 "value" : 2
2527 }
2528 ],
2529 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002530 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002531 "line" : 41,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002532 "column" : 8,
2533 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2534 }
2535 },
2536 {
2537 "op" : "assign",
2538 "parameters" : [
2539 {
2540 "type" : "field",
2541 "value" : ["standard_metadata", "egress_spec"]
2542 },
2543 {
2544 "type" : "runtime_data",
2545 "value" : 0
2546 }
2547 ],
2548 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002549 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002550 "line" : 149,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002551 "column" : 8,
2552 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2553 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002554 }
2555 ]
2556 },
2557 {
Yi Tseng47eac892018-07-11 02:17:04 +08002558 "name" : "FabricIngress.next.mpls_routing_v4_hashed",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02002559 "id" : 35,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002560 "runtime_data" : [
2561 {
2562 "name" : "port_num",
2563 "bitwidth" : 9
2564 },
2565 {
2566 "name" : "smac",
2567 "bitwidth" : 48
2568 },
2569 {
2570 "name" : "dmac",
2571 "bitwidth" : 48
2572 },
2573 {
2574 "name" : "label",
2575 "bitwidth" : 20
2576 }
2577 ],
2578 "primitives" : [
2579 {
2580 "op" : "assign",
2581 "parameters" : [
2582 {
2583 "type" : "field",
2584 "value" : ["ethernet", "src_addr"]
2585 },
2586 {
2587 "type" : "runtime_data",
2588 "value" : 1
2589 }
2590 ],
2591 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002592 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002593 "line" : 37,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002594 "column" : 8,
2595 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2596 }
2597 },
2598 {
2599 "op" : "assign",
2600 "parameters" : [
2601 {
2602 "type" : "field",
2603 "value" : ["ethernet", "dst_addr"]
2604 },
2605 {
2606 "type" : "runtime_data",
2607 "value" : 2
2608 }
2609 ],
2610 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002611 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002612 "line" : 41,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002613 "column" : 8,
2614 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2615 }
2616 },
2617 {
2618 "op" : "assign",
2619 "parameters" : [
2620 {
2621 "type" : "field",
2622 "value" : ["standard_metadata", "egress_spec"]
2623 },
2624 {
2625 "type" : "runtime_data",
2626 "value" : 0
2627 }
2628 ],
2629 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002630 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002631 "line" : 149,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002632 "column" : 8,
2633 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2634 }
2635 },
2636 {
2637 "op" : "add_header",
2638 "parameters" : [
2639 {
2640 "type" : "header",
2641 "value" : "mpls"
2642 }
2643 ],
2644 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002645 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002646 "line" : 46,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002647 "column" : 8,
2648 "source_fragment" : "hdr.mpls.setValid()"
2649 }
2650 },
2651 {
2652 "op" : "assign",
2653 "parameters" : [
2654 {
2655 "type" : "field",
2656 "value" : ["vlan_tag", "ether_type"]
2657 },
2658 {
2659 "type" : "hexstr",
2660 "value" : "0x8847"
2661 }
2662 ],
2663 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002664 "filename" : "include/control/../define.p4",
Esin Karaman971fb7f2017-12-28 13:44:52 +00002665 "line" : 67,
2666 "column" : 31,
2667 "source_fragment" : "0x8847; ..."
2668 }
2669 },
2670 {
2671 "op" : "assign",
2672 "parameters" : [
2673 {
2674 "type" : "field",
2675 "value" : ["mpls", "label"]
2676 },
2677 {
2678 "type" : "runtime_data",
2679 "value" : 3
2680 }
2681 ],
2682 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002683 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002684 "line" : 48,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002685 "column" : 8,
2686 "source_fragment" : "hdr.mpls.label = label; ..."
2687 }
2688 },
2689 {
2690 "op" : "assign",
2691 "parameters" : [
2692 {
2693 "type" : "field",
2694 "value" : ["mpls", "tc"]
2695 },
2696 {
2697 "type" : "hexstr",
2698 "value" : "0x00"
2699 }
2700 ],
2701 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002702 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002703 "line" : 49,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002704 "column" : 8,
2705 "source_fragment" : "hdr.mpls.tc = tc; ..."
2706 }
2707 },
2708 {
2709 "op" : "assign",
2710 "parameters" : [
2711 {
2712 "type" : "field",
2713 "value" : ["mpls", "bos"]
2714 },
2715 {
2716 "type" : "hexstr",
2717 "value" : "0x01"
2718 }
2719 ],
2720 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002721 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002722 "line" : 50,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002723 "column" : 8,
2724 "source_fragment" : "hdr.mpls.bos = 1w1"
2725 }
2726 },
2727 {
2728 "op" : "assign",
2729 "parameters" : [
2730 {
2731 "type" : "field",
2732 "value" : ["mpls", "ttl"]
2733 },
2734 {
2735 "type" : "hexstr",
2736 "value" : "0x40"
2737 }
2738 ],
2739 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002740 "filename" : "include/control/../define.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002741 "line" : 87,
2742 "column" : 32,
2743 "source_fragment" : "64; ..."
2744 }
2745 }
2746 ]
2747 },
2748 {
2749 "name" : "FabricIngress.next.mpls_routing_v6_hashed",
2750 "id" : 36,
2751 "runtime_data" : [
2752 {
2753 "name" : "port_num",
2754 "bitwidth" : 9
2755 },
2756 {
2757 "name" : "smac",
2758 "bitwidth" : 48
2759 },
2760 {
2761 "name" : "dmac",
2762 "bitwidth" : 48
2763 },
2764 {
2765 "name" : "label",
2766 "bitwidth" : 20
2767 }
2768 ],
2769 "primitives" : [
2770 {
2771 "op" : "assign",
2772 "parameters" : [
2773 {
2774 "type" : "field",
2775 "value" : ["ethernet", "src_addr"]
2776 },
2777 {
2778 "type" : "runtime_data",
2779 "value" : 1
2780 }
2781 ],
2782 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002783 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002784 "line" : 37,
2785 "column" : 8,
2786 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2787 }
2788 },
2789 {
2790 "op" : "assign",
2791 "parameters" : [
2792 {
2793 "type" : "field",
2794 "value" : ["ethernet", "dst_addr"]
2795 },
2796 {
2797 "type" : "runtime_data",
2798 "value" : 2
2799 }
2800 ],
2801 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002802 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002803 "line" : 41,
2804 "column" : 8,
2805 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2806 }
2807 },
2808 {
2809 "op" : "assign",
2810 "parameters" : [
2811 {
2812 "type" : "field",
2813 "value" : ["standard_metadata", "egress_spec"]
2814 },
2815 {
2816 "type" : "runtime_data",
2817 "value" : 0
2818 }
2819 ],
2820 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002821 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002822 "line" : 149,
2823 "column" : 8,
2824 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2825 }
2826 },
2827 {
2828 "op" : "add_header",
2829 "parameters" : [
2830 {
2831 "type" : "header",
2832 "value" : "mpls"
2833 }
2834 ],
2835 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002836 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002837 "line" : 46,
2838 "column" : 8,
2839 "source_fragment" : "hdr.mpls.setValid()"
2840 }
2841 },
2842 {
2843 "op" : "assign",
2844 "parameters" : [
2845 {
2846 "type" : "field",
2847 "value" : ["vlan_tag", "ether_type"]
2848 },
2849 {
2850 "type" : "hexstr",
2851 "value" : "0x8847"
2852 }
2853 ],
2854 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002855 "filename" : "include/control/../define.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002856 "line" : 67,
2857 "column" : 31,
2858 "source_fragment" : "0x8847; ..."
2859 }
2860 },
2861 {
2862 "op" : "assign",
2863 "parameters" : [
2864 {
2865 "type" : "field",
2866 "value" : ["mpls", "label"]
2867 },
2868 {
2869 "type" : "runtime_data",
2870 "value" : 3
2871 }
2872 ],
2873 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002874 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002875 "line" : 48,
2876 "column" : 8,
2877 "source_fragment" : "hdr.mpls.label = label; ..."
2878 }
2879 },
2880 {
2881 "op" : "assign",
2882 "parameters" : [
2883 {
2884 "type" : "field",
2885 "value" : ["mpls", "tc"]
2886 },
2887 {
2888 "type" : "hexstr",
2889 "value" : "0x00"
2890 }
2891 ],
2892 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002893 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002894 "line" : 49,
2895 "column" : 8,
2896 "source_fragment" : "hdr.mpls.tc = tc; ..."
2897 }
2898 },
2899 {
2900 "op" : "assign",
2901 "parameters" : [
2902 {
2903 "type" : "field",
2904 "value" : ["mpls", "bos"]
2905 },
2906 {
2907 "type" : "hexstr",
2908 "value" : "0x01"
2909 }
2910 ],
2911 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002912 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002913 "line" : 50,
2914 "column" : 8,
2915 "source_fragment" : "hdr.mpls.bos = 1w1"
2916 }
2917 },
2918 {
2919 "op" : "assign",
2920 "parameters" : [
2921 {
2922 "type" : "field",
2923 "value" : ["mpls", "ttl"]
2924 },
2925 {
2926 "type" : "hexstr",
2927 "value" : "0x40"
2928 }
2929 ],
2930 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002931 "filename" : "include/control/../define.p4",
Esin Karaman971fb7f2017-12-28 13:44:52 +00002932 "line" : 87,
2933 "column" : 32,
2934 "source_fragment" : "64; ..."
2935 }
2936 }
2937 ]
2938 },
2939 {
2940 "name" : "FabricIngress.next.set_mcast_group",
Yi Tseng47eac892018-07-11 02:17:04 +08002941 "id" : 37,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002942 "runtime_data" : [
2943 {
2944 "name" : "gid",
2945 "bitwidth" : 16
2946 }
2947 ],
2948 "primitives" : [
2949 {
2950 "op" : "assign",
2951 "parameters" : [
2952 {
2953 "type" : "field",
2954 "value" : ["standard_metadata", "mcast_grp"]
2955 },
2956 {
2957 "type" : "runtime_data",
2958 "value" : 0
2959 }
2960 ],
2961 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002962 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002963 "line" : 202,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002964 "column" : 8,
2965 "source_fragment" : "standard_metadata.mcast_grp = gid"
2966 }
Carmelo Casconea5400af2018-07-17 22:11:54 +02002967 },
2968 {
2969 "op" : "assign",
2970 "parameters" : [
2971 {
2972 "type" : "field",
2973 "value" : ["scalars", "fabric_metadata_t.drop_if_egress_is_ingress"]
2974 },
2975 {
2976 "type" : "expression",
2977 "value" : {
2978 "type" : "expression",
2979 "value" : {
2980 "op" : "b2d",
2981 "left" : null,
2982 "right" : {
2983 "type" : "bool",
2984 "value" : true
2985 }
2986 }
2987 }
2988 }
2989 ],
2990 "source_info" : {
2991 "filename" : "include/control/next.p4",
2992 "line" : 203,
2993 "column" : 8,
2994 "source_fragment" : "fabric_metadata.drop_if_egress_is_ingress = true"
2995 }
Esin Karaman971fb7f2017-12-28 13:44:52 +00002996 }
2997 ]
2998 },
2999 {
3000 "name" : "act",
Yi Tseng47eac892018-07-11 02:17:04 +08003001 "id" : 38,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003002 "runtime_data" : [],
3003 "primitives" : [
3004 {
3005 "op" : "assign",
3006 "parameters" : [
3007 {
3008 "type" : "field",
3009 "value" : ["standard_metadata", "egress_spec"]
3010 },
3011 {
3012 "type" : "field",
3013 "value" : ["packet_out", "egress_port"]
3014 }
3015 ],
3016 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003017 "filename" : "include/control/packetio.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003018 "line" : 26,
3019 "column" : 12,
3020 "source_fragment" : "standard_metadata.egress_spec = hdr.packet_out.egress_port"
3021 }
3022 },
3023 {
3024 "op" : "remove_header",
3025 "parameters" : [
3026 {
3027 "type" : "header",
3028 "value" : "packet_out"
3029 }
3030 ],
3031 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003032 "filename" : "include/control/packetio.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003033 "line" : 27,
3034 "column" : 12,
3035 "source_fragment" : "hdr.packet_out.setInvalid()"
3036 }
3037 }
3038 ]
3039 },
3040 {
3041 "name" : "act_0",
Yi Tseng47eac892018-07-11 02:17:04 +08003042 "id" : 39,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003043 "runtime_data" : [],
3044 "primitives" : [
3045 {
3046 "op" : "assign",
3047 "parameters" : [
3048 {
3049 "type" : "field",
3050 "value" : ["scalars", "spgw_ingress_tmp_2"]
3051 },
3052 {
3053 "type" : "expression",
3054 "value" : {
3055 "type" : "expression",
3056 "value" : {
3057 "op" : "b2d",
3058 "left" : null,
3059 "right" : {
3060 "type" : "bool",
3061 "value" : true
3062 }
3063 }
3064 }
3065 }
3066 ]
3067 }
3068 ]
3069 },
3070 {
3071 "name" : "act_1",
Yi Tseng47eac892018-07-11 02:17:04 +08003072 "id" : 40,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003073 "runtime_data" : [],
3074 "primitives" : [
3075 {
3076 "op" : "assign",
3077 "parameters" : [
3078 {
3079 "type" : "field",
3080 "value" : ["scalars", "spgw_ingress_tmp_2"]
3081 },
3082 {
3083 "type" : "expression",
3084 "value" : {
3085 "type" : "expression",
3086 "value" : {
3087 "op" : "b2d",
3088 "left" : null,
3089 "right" : {
3090 "type" : "bool",
3091 "value" : false
3092 }
3093 }
3094 }
3095 }
3096 ]
3097 }
3098 ]
3099 },
3100 {
3101 "name" : "act_2",
Yi Tseng47eac892018-07-11 02:17:04 +08003102 "id" : 41,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003103 "runtime_data" : [],
3104 "primitives" : [
3105 {
3106 "op" : "assign",
3107 "parameters" : [
3108 {
3109 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003110 "value" : ["userMetadata.spgw", "s1u_enb_addr"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003111 },
3112 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003113 "type" : "field",
3114 "value" : ["ipv4", "src_addr"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003115 }
3116 ],
3117 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003118 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02003119 "line" : 147,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003120 "column" : 12,
3121 "source_fragment" : "spgw_meta.s1u_enb_addr = ipv4.src_addr"
3122 }
3123 },
3124 {
3125 "op" : "assign",
3126 "parameters" : [
3127 {
3128 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003129 "value" : ["userMetadata.spgw", "s1u_sgw_addr"]
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003130 },
3131 {
3132 "type" : "field",
3133 "value" : ["ipv4", "dst_addr"]
3134 }
3135 ],
3136 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003137 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02003138 "line" : 148,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003139 "column" : 12,
3140 "source_fragment" : "spgw_meta.s1u_sgw_addr = ipv4.dst_addr"
3141 }
3142 },
3143 {
3144 "op" : "assign_header",
3145 "parameters" : [
3146 {
3147 "type" : "header",
3148 "value" : "ipv4"
3149 },
3150 {
3151 "type" : "header",
3152 "value" : "gtpu_ipv4"
3153 }
3154 ],
3155 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003156 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02003157 "line" : 149,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003158 "column" : 17,
3159 "source_fragment" : "= gtpu_ipv4; ..."
3160 }
3161 },
3162 {
3163 "op" : "assign_header",
3164 "parameters" : [
3165 {
3166 "type" : "header",
3167 "value" : "udp"
3168 },
3169 {
3170 "type" : "header",
3171 "value" : "gtpu_udp"
3172 }
3173 ],
3174 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003175 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02003176 "line" : 150,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003177 "column" : 16,
3178 "source_fragment" : "= gtpu_udp; ..."
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003179 }
3180 }
3181 ]
3182 },
3183 {
3184 "name" : "act_3",
Yi Tseng47eac892018-07-11 02:17:04 +08003185 "id" : 42,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003186 "runtime_data" : [],
3187 "primitives" : [
3188 {
3189 "op" : "assign",
3190 "parameters" : [
3191 {
3192 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003193 "value" : ["userMetadata.spgw", "do_spgw"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003194 },
3195 {
3196 "type" : "expression",
3197 "value" : {
3198 "type" : "expression",
3199 "value" : {
3200 "op" : "b2d",
3201 "left" : null,
3202 "right" : {
3203 "type" : "bool",
3204 "value" : true
3205 }
3206 }
3207 }
3208 }
3209 ],
3210 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003211 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02003212 "line" : 154,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003213 "column" : 16,
3214 "source_fragment" : "spgw_meta.do_spgw = true"
3215 }
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003216 },
3217 {
3218 "op" : "assign",
3219 "parameters" : [
3220 {
3221 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003222 "value" : ["userMetadata.spgw", "direction"]
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003223 },
3224 {
3225 "type" : "hexstr",
3226 "value" : "0x00"
3227 }
3228 ],
3229 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003230 "filename" : "include/control/../define.p4",
Carmelo Cascone228092b2018-06-15 20:41:10 +02003231 "line" : 98,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003232 "column" : 31,
3233 "source_fragment" : "1w0; ..."
3234 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003235 }
3236 ]
3237 },
3238 {
3239 "name" : "act_4",
Yi Tseng47eac892018-07-11 02:17:04 +08003240 "id" : 43,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003241 "runtime_data" : [],
3242 "primitives" : [
3243 {
3244 "op" : "assign",
3245 "parameters" : [
3246 {
3247 "type" : "field",
3248 "value" : ["scalars", "spgw_ingress_tmp_3"]
3249 },
3250 {
3251 "type" : "expression",
3252 "value" : {
3253 "type" : "expression",
3254 "value" : {
3255 "op" : "b2d",
3256 "left" : null,
3257 "right" : {
3258 "type" : "bool",
3259 "value" : true
3260 }
3261 }
3262 }
3263 }
3264 ]
3265 }
3266 ]
3267 },
3268 {
3269 "name" : "act_5",
Yi Tseng47eac892018-07-11 02:17:04 +08003270 "id" : 44,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003271 "runtime_data" : [],
3272 "primitives" : [
3273 {
3274 "op" : "assign",
3275 "parameters" : [
3276 {
3277 "type" : "field",
3278 "value" : ["scalars", "spgw_ingress_tmp_3"]
3279 },
3280 {
3281 "type" : "expression",
3282 "value" : {
3283 "type" : "expression",
3284 "value" : {
3285 "op" : "b2d",
3286 "left" : null,
3287 "right" : {
3288 "type" : "bool",
3289 "value" : false
3290 }
3291 }
3292 }
3293 }
3294 ]
3295 }
3296 ]
3297 },
3298 {
3299 "name" : "act_6",
Yi Tseng47eac892018-07-11 02:17:04 +08003300 "id" : 45,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003301 "runtime_data" : [],
3302 "primitives" : [
3303 {
3304 "op" : "assign",
3305 "parameters" : [
3306 {
3307 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003308 "value" : ["userMetadata.spgw", "do_spgw"]
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003309 },
3310 {
3311 "type" : "expression",
3312 "value" : {
3313 "type" : "expression",
3314 "value" : {
3315 "op" : "b2d",
3316 "left" : null,
3317 "right" : {
3318 "type" : "bool",
3319 "value" : true
3320 }
3321 }
3322 }
3323 }
3324 ],
3325 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003326 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02003327 "line" : 158,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003328 "column" : 12,
3329 "source_fragment" : "spgw_meta.do_spgw = true"
3330 }
3331 },
3332 {
3333 "op" : "assign",
3334 "parameters" : [
3335 {
3336 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003337 "value" : ["userMetadata.spgw", "direction"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08003338 },
3339 {
3340 "type" : "hexstr",
3341 "value" : "0x01"
3342 }
3343 ],
3344 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003345 "filename" : "include/control/../define.p4",
Carmelo Cascone228092b2018-06-15 20:41:10 +02003346 "line" : 99,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003347 "column" : 33,
3348 "source_fragment" : "1w1; ..."
3349 }
3350 }
3351 ]
3352 },
3353 {
3354 "name" : "act_7",
Yi Tseng47eac892018-07-11 02:17:04 +08003355 "id" : 46,
Carmelo Cascone14cde402018-01-25 01:57:18 -08003356 "runtime_data" : [],
3357 "primitives" : [
3358 {
3359 "op" : "assign",
3360 "parameters" : [
3361 {
3362 "type" : "field",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003363 "value" : ["scalars", "spgw_ingress_hasReturned_0"]
3364 },
3365 {
3366 "type" : "expression",
3367 "value" : {
3368 "type" : "expression",
3369 "value" : {
3370 "op" : "b2d",
3371 "left" : null,
3372 "right" : {
3373 "type" : "bool",
3374 "value" : false
3375 }
3376 }
3377 }
3378 }
3379 ]
3380 },
3381 {
3382 "op" : "assign",
3383 "parameters" : [
3384 {
3385 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003386 "value" : ["userMetadata.spgw", "do_spgw"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003387 },
3388 {
3389 "type" : "expression",
3390 "value" : {
3391 "type" : "expression",
3392 "value" : {
3393 "op" : "b2d",
3394 "left" : null,
3395 "right" : {
3396 "type" : "bool",
Esin Karaman971fb7f2017-12-28 13:44:52 +00003397 "value" : false
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003398 }
3399 }
3400 }
3401 }
3402 ],
3403 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003404 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02003405 "line" : 141,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003406 "column" : 8,
Esin Karaman971fb7f2017-12-28 13:44:52 +00003407 "source_fragment" : "spgw_meta.do_spgw = false"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003408 }
3409 }
3410 ]
3411 },
3412 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003413 "name" : "act_8",
Yi Tseng47eac892018-07-11 02:17:04 +08003414 "id" : 47,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003415 "runtime_data" : [],
3416 "primitives" : [
3417 {
3418 "op" : "assign",
3419 "parameters" : [
3420 {
3421 "type" : "field",
3422 "value" : ["scalars", "spgw_ingress_hasReturned_0"]
3423 },
3424 {
3425 "type" : "expression",
3426 "value" : {
3427 "type" : "expression",
3428 "value" : {
3429 "op" : "b2d",
3430 "left" : null,
3431 "right" : {
3432 "type" : "bool",
3433 "value" : true
3434 }
3435 }
3436 }
3437 }
3438 ],
3439 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003440 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02003441 "line" : 164,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003442 "column" : 12,
3443 "source_fragment" : "return"
3444 }
3445 }
3446 ]
3447 },
3448 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003449 "name" : "act_9",
Yi Tseng47eac892018-07-11 02:17:04 +08003450 "id" : 48,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003451 "runtime_data" : [],
3452 "primitives" : [
3453 {
3454 "op" : "assign",
3455 "parameters" : [
3456 {
3457 "type" : "field",
3458 "value" : ["scalars", "spgw_ingress_tmp_4"]
3459 },
3460 {
3461 "type" : "expression",
3462 "value" : {
3463 "type" : "expression",
3464 "value" : {
3465 "op" : "b2d",
3466 "left" : null,
3467 "right" : {
3468 "type" : "bool",
3469 "value" : true
3470 }
3471 }
3472 }
3473 }
3474 ]
3475 }
3476 ]
3477 },
3478 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003479 "name" : "act_10",
Yi Tseng47eac892018-07-11 02:17:04 +08003480 "id" : 49,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003481 "runtime_data" : [],
3482 "primitives" : [
3483 {
3484 "op" : "assign",
3485 "parameters" : [
3486 {
3487 "type" : "field",
3488 "value" : ["scalars", "spgw_ingress_tmp_4"]
3489 },
3490 {
3491 "type" : "expression",
3492 "value" : {
3493 "type" : "expression",
3494 "value" : {
3495 "op" : "b2d",
3496 "left" : null,
3497 "right" : {
3498 "type" : "bool",
3499 "value" : false
3500 }
3501 }
3502 }
3503 }
3504 ]
3505 }
3506 ]
3507 },
3508 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08003509 "name" : "act_11",
Yi Tseng47eac892018-07-11 02:17:04 +08003510 "id" : 50,
Yi Tseng27b9bc02018-04-12 14:52:40 +08003511 "runtime_data" : [],
3512 "primitives" : [
3513 {
3514 "op" : "assign",
3515 "parameters" : [
3516 {
3517 "type" : "field",
3518 "value" : ["userMetadata.spgw", "ipv4_len"]
3519 },
3520 {
3521 "type" : "field",
3522 "value" : ["ipv4", "total_len"]
3523 }
3524 ],
3525 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003526 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02003527 "line" : 194,
Yi Tseng27b9bc02018-04-12 14:52:40 +08003528 "column" : 8,
3529 "source_fragment" : "spgw_meta.ipv4_len = ipv4.total_len"
3530 }
3531 }
3532 ]
3533 },
3534 {
3535 "name" : "act_12",
Yi Tseng47eac892018-07-11 02:17:04 +08003536 "id" : 51,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003537 "runtime_data" : [],
3538 "primitives" : [
3539 {
3540 "op" : "assign",
3541 "parameters" : [
3542 {
3543 "type" : "field",
3544 "value" : ["vlan_tag", "ether_type"]
3545 },
3546 {
3547 "type" : "hexstr",
3548 "value" : "0x0800"
3549 }
3550 ],
3551 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003552 "filename" : "include/control/../define.p4",
Carmelo Cascone228092b2018-06-15 20:41:10 +02003553 "line" : 69,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003554 "column" : 31,
3555 "source_fragment" : "0x0800; ..."
3556 }
3557 },
3558 {
3559 "op" : "assign",
3560 "parameters" : [
3561 {
3562 "type" : "field",
3563 "value" : ["scalars", "fabric_metadata_t.original_ether_type"]
3564 },
3565 {
3566 "type" : "hexstr",
3567 "value" : "0x0800"
3568 }
3569 ],
3570 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003571 "filename" : "include/control/../define.p4",
Carmelo Cascone228092b2018-06-15 20:41:10 +02003572 "line" : 69,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003573 "column" : 31,
3574 "source_fragment" : "0x0800; ..."
3575 }
3576 }
3577 ]
3578 },
3579 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003580 "name" : "act_13",
Yi Tseng47eac892018-07-11 02:17:04 +08003581 "id" : 52,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003582 "runtime_data" : [],
3583 "primitives" : [
3584 {
3585 "op" : "assign",
3586 "parameters" : [
3587 {
3588 "type" : "field",
Carmelo Casconea5400af2018-07-17 22:11:54 +02003589 "value" : ["scalars", "next_hasReturned_0"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003590 },
3591 {
3592 "type" : "expression",
3593 "value" : {
3594 "type" : "expression",
3595 "value" : {
3596 "op" : "b2d",
3597 "left" : null,
3598 "right" : {
3599 "type" : "bool",
3600 "value" : false
3601 }
3602 }
3603 }
3604 }
3605 ]
3606 }
3607 ]
3608 },
3609 {
Carmelo Casconea5400af2018-07-17 22:11:54 +02003610 "name" : "act_14",
3611 "id" : 53,
3612 "runtime_data" : [],
3613 "primitives" : [
3614 {
3615 "op" : "assign",
3616 "parameters" : [
3617 {
3618 "type" : "field",
3619 "value" : ["scalars", "next_tmp_4"]
3620 },
3621 {
3622 "type" : "expression",
3623 "value" : {
3624 "type" : "expression",
3625 "value" : {
3626 "op" : "b2d",
3627 "left" : null,
3628 "right" : {
3629 "type" : "bool",
3630 "value" : true
3631 }
3632 }
3633 }
3634 }
3635 ]
3636 }
3637 ]
3638 },
3639 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003640 "name" : "act_15",
Yi Tseng47eac892018-07-11 02:17:04 +08003641 "id" : 54,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003642 "runtime_data" : [],
3643 "primitives" : [
3644 {
3645 "op" : "assign",
3646 "parameters" : [
3647 {
3648 "type" : "field",
Carmelo Casconea5400af2018-07-17 22:11:54 +02003649 "value" : ["scalars", "next_tmp_4"]
3650 },
3651 {
3652 "type" : "expression",
3653 "value" : {
3654 "type" : "expression",
3655 "value" : {
3656 "op" : "b2d",
3657 "left" : null,
3658 "right" : {
3659 "type" : "bool",
3660 "value" : false
3661 }
3662 }
3663 }
3664 }
3665 ]
3666 }
3667 ]
3668 },
3669 {
3670 "name" : "act_16",
3671 "id" : 55,
3672 "runtime_data" : [],
3673 "primitives" : [
3674 {
3675 "op" : "assign",
3676 "parameters" : [
3677 {
3678 "type" : "field",
3679 "value" : ["scalars", "next_tmp_3"]
3680 },
3681 {
3682 "type" : "expression",
3683 "value" : {
3684 "type" : "expression",
3685 "value" : {
3686 "op" : "b2d",
3687 "left" : null,
3688 "right" : {
3689 "type" : "bool",
3690 "value" : true
3691 }
3692 }
3693 }
3694 }
3695 ]
3696 }
3697 ]
3698 },
3699 {
3700 "name" : "act_17",
3701 "id" : 56,
3702 "runtime_data" : [],
3703 "primitives" : [
3704 {
3705 "op" : "assign",
3706 "parameters" : [
3707 {
3708 "type" : "field",
3709 "value" : ["scalars", "next_tmp_3"]
3710 },
3711 {
3712 "type" : "expression",
3713 "value" : {
3714 "type" : "expression",
3715 "value" : {
3716 "op" : "b2d",
3717 "left" : null,
3718 "right" : {
3719 "type" : "bool",
3720 "value" : false
3721 }
3722 }
3723 }
3724 }
3725 ]
3726 }
3727 ]
3728 },
3729 {
3730 "name" : "act_18",
3731 "id" : 57,
3732 "runtime_data" : [],
3733 "primitives" : [
3734 {
3735 "op" : "assign",
3736 "parameters" : [
3737 {
3738 "type" : "field",
3739 "value" : ["scalars", "next_tmp_2"]
3740 },
3741 {
3742 "type" : "expression",
3743 "value" : {
3744 "type" : "expression",
3745 "value" : {
3746 "op" : "b2d",
3747 "left" : null,
3748 "right" : {
3749 "type" : "bool",
3750 "value" : true
3751 }
3752 }
3753 }
3754 }
3755 ]
3756 }
3757 ]
3758 },
3759 {
3760 "name" : "act_19",
3761 "id" : 58,
3762 "runtime_data" : [],
3763 "primitives" : [
3764 {
3765 "op" : "assign",
3766 "parameters" : [
3767 {
3768 "type" : "field",
3769 "value" : ["scalars", "next_tmp_2"]
3770 },
3771 {
3772 "type" : "expression",
3773 "value" : {
3774 "type" : "expression",
3775 "value" : {
3776 "op" : "b2d",
3777 "left" : null,
3778 "right" : {
3779 "type" : "bool",
3780 "value" : false
3781 }
3782 }
3783 }
3784 }
3785 ]
3786 }
3787 ]
3788 },
3789 {
3790 "name" : "act_20",
3791 "id" : 59,
3792 "runtime_data" : [],
3793 "primitives" : [
3794 {
3795 "op" : "assign",
3796 "parameters" : [
3797 {
3798 "type" : "field",
3799 "value" : ["scalars", "next_hasReturned_0"]
3800 },
3801 {
3802 "type" : "expression",
3803 "value" : {
3804 "type" : "expression",
3805 "value" : {
3806 "op" : "b2d",
3807 "left" : null,
3808 "right" : {
3809 "type" : "bool",
3810 "value" : true
3811 }
3812 }
3813 }
3814 }
3815 ],
3816 "source_info" : {
3817 "filename" : "include/control/next.p4",
3818 "line" : 223,
3819 "column" : 20,
3820 "source_fragment" : "return"
3821 }
3822 }
3823 ]
3824 },
3825 {
3826 "name" : "act_21",
3827 "id" : 60,
3828 "runtime_data" : [],
3829 "primitives" : [
3830 {
3831 "op" : "assign",
3832 "parameters" : [
3833 {
3834 "type" : "field",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003835 "value" : ["ipv4", "ttl"]
3836 },
3837 {
3838 "type" : "expression",
3839 "value" : {
3840 "type" : "expression",
3841 "value" : {
3842 "op" : "&",
3843 "left" : {
3844 "type" : "expression",
3845 "value" : {
3846 "op" : "+",
3847 "left" : {
3848 "type" : "field",
3849 "value" : ["ipv4", "ttl"]
3850 },
3851 "right" : {
3852 "type" : "hexstr",
3853 "value" : "0xff"
3854 }
3855 }
3856 },
3857 "right" : {
3858 "type" : "hexstr",
3859 "value" : "0xff"
3860 }
3861 }
3862 }
3863 }
3864 ],
3865 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003866 "filename" : "include/control/next.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02003867 "line" : 230,
3868 "column" : 16,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003869 "source_fragment" : "hdr.ipv4.ttl = hdr.ipv4.ttl - 1"
3870 }
3871 }
3872 ]
3873 },
3874 {
Carmelo Casconea5400af2018-07-17 22:11:54 +02003875 "name" : "act_22",
3876 "id" : 61,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003877 "runtime_data" : [],
3878 "primitives" : [
3879 {
3880 "op" : "assign",
3881 "parameters" : [
3882 {
3883 "type" : "field",
3884 "value" : ["scalars", "tmp_0"]
3885 },
3886 {
3887 "type" : "expression",
3888 "value" : {
3889 "type" : "expression",
3890 "value" : {
3891 "op" : "&",
3892 "left" : {
3893 "type" : "field",
3894 "value" : ["standard_metadata", "egress_spec"]
3895 },
3896 "right" : {
3897 "type" : "hexstr",
3898 "value" : "0xffffffff"
3899 }
3900 }
3901 }
3902 }
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003903 ],
3904 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003905 "filename" : "include/control/port_counter.p4",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003906 "line" : 28,
3907 "column" : 38,
3908 "source_fragment" : "(bit<32>)standard_metadata.egress_spec"
3909 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003910 },
3911 {
3912 "op" : "count",
3913 "parameters" : [
3914 {
3915 "type" : "counter_array",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003916 "value" : "FabricIngress.port_counters_control.egress_port_counter"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003917 },
3918 {
3919 "type" : "field",
3920 "value" : ["scalars", "tmp_0"]
3921 }
3922 ],
3923 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003924 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003925 "line" : 28,
3926 "column" : 12,
3927 "source_fragment" : "egress_port_counter.count((bit<32>)standard_metadata.egress_spec)"
3928 }
3929 }
3930 ]
3931 },
3932 {
Carmelo Casconea5400af2018-07-17 22:11:54 +02003933 "name" : "act_23",
3934 "id" : 62,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003935 "runtime_data" : [],
3936 "primitives" : [
3937 {
3938 "op" : "assign",
3939 "parameters" : [
3940 {
3941 "type" : "field",
3942 "value" : ["scalars", "tmp_1"]
3943 },
3944 {
3945 "type" : "expression",
3946 "value" : {
3947 "type" : "expression",
3948 "value" : {
3949 "op" : "&",
3950 "left" : {
3951 "type" : "field",
3952 "value" : ["standard_metadata", "ingress_port"]
3953 },
3954 "right" : {
3955 "type" : "hexstr",
3956 "value" : "0xffffffff"
3957 }
3958 }
3959 }
3960 }
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003961 ],
3962 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003963 "filename" : "include/control/port_counter.p4",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003964 "line" : 31,
3965 "column" : 39,
3966 "source_fragment" : "(bit<32>)standard_metadata.ingress_port"
3967 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003968 },
3969 {
3970 "op" : "count",
3971 "parameters" : [
3972 {
3973 "type" : "counter_array",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003974 "value" : "FabricIngress.port_counters_control.ingress_port_counter"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003975 },
3976 {
3977 "type" : "field",
3978 "value" : ["scalars", "tmp_1"]
3979 }
3980 ],
3981 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003982 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003983 "line" : 31,
3984 "column" : 12,
3985 "source_fragment" : "ingress_port_counter.count((bit<32>)standard_metadata.ingress_port)"
3986 }
3987 }
3988 ]
3989 },
3990 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003991 "name" : "nop",
Carmelo Casconea5400af2018-07-17 22:11:54 +02003992 "id" : 63,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003993 "runtime_data" : [],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003994 "primitives" : []
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003995 },
3996 {
Carmelo Casconea5400af2018-07-17 22:11:54 +02003997 "name" : "drop_now",
3998 "id" : 64,
3999 "runtime_data" : [],
4000 "primitives" : [
4001 {
4002 "op" : "drop",
4003 "parameters" : [],
4004 "source_info" : {
4005 "filename" : "include/control/../action.p4",
4006 "line" : 24,
4007 "column" : 4,
4008 "source_fragment" : "mark_to_drop()"
4009 }
4010 },
4011 {
4012 "op" : "exit",
4013 "parameters" : [],
4014 "source_info" : {
4015 "filename" : "include/control/../action.p4",
4016 "line" : 25,
4017 "column" : 4,
4018 "source_fragment" : "exit"
4019 }
4020 }
4021 ]
4022 },
4023 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004024 "name" : "FabricEgress.spgw_egress.gtpu_encap",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004025 "id" : 65,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004026 "runtime_data" : [],
4027 "primitives" : [
4028 {
4029 "op" : "add_header",
4030 "parameters" : [
4031 {
4032 "type" : "header",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004033 "value" : "gtpu_ipv4"
4034 }
4035 ],
4036 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004037 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004038 "line" : 209,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004039 "column" : 8,
4040 "source_fragment" : "gtpu_ipv4.setValid()"
4041 }
4042 },
4043 {
4044 "op" : "assign",
4045 "parameters" : [
4046 {
4047 "type" : "field",
4048 "value" : ["gtpu_ipv4", "version"]
4049 },
4050 {
4051 "type" : "hexstr",
4052 "value" : "0x04"
4053 }
4054 ],
4055 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004056 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004057 "line" : 210,
Yi Tseng3d3956d2018-01-31 17:28:05 -08004058 "column" : 8,
4059 "source_fragment" : "gtpu_ipv4.version = 4"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004060 }
4061 },
4062 {
4063 "op" : "assign",
4064 "parameters" : [
4065 {
4066 "type" : "field",
4067 "value" : ["gtpu_ipv4", "ihl"]
4068 },
4069 {
4070 "type" : "hexstr",
4071 "value" : "0x05"
4072 }
4073 ],
4074 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004075 "filename" : "include/control/../define.p4",
Carmelo Cascone228092b2018-06-15 20:41:10 +02004076 "line" : 78,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004077 "column" : 28,
4078 "source_fragment" : "5; ..."
4079 }
4080 },
4081 {
4082 "op" : "assign",
4083 "parameters" : [
4084 {
4085 "type" : "field",
4086 "value" : ["gtpu_ipv4", "diffserv"]
4087 },
4088 {
4089 "type" : "hexstr",
4090 "value" : "0x00"
4091 }
4092 ],
4093 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004094 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004095 "line" : 212,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004096 "column" : 8,
4097 "source_fragment" : "gtpu_ipv4.diffserv = 0"
4098 }
4099 },
4100 {
4101 "op" : "assign",
4102 "parameters" : [
4103 {
4104 "type" : "field",
4105 "value" : ["gtpu_ipv4", "total_len"]
4106 },
4107 {
4108 "type" : "expression",
4109 "value" : {
4110 "type" : "expression",
4111 "value" : {
4112 "op" : "&",
4113 "left" : {
4114 "type" : "expression",
4115 "value" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004116 "op" : "+",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004117 "left" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004118 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004119 "value" : ["userMetadata.spgw", "ipv4_len"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08004120 },
4121 "right" : {
4122 "type" : "hexstr",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004123 "value" : "0x0024"
Carmelo Cascone14cde402018-01-25 01:57:18 -08004124 }
4125 }
4126 },
4127 "right" : {
4128 "type" : "hexstr",
4129 "value" : "0xffff"
4130 }
4131 }
4132 }
4133 }
4134 ],
4135 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004136 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004137 "line" : 213,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004138 "column" : 8,
Yi Tseng27b9bc02018-04-12 14:52:40 +08004139 "source_fragment" : "gtpu_ipv4.total_len = spgw_meta.ipv4_len ..."
Carmelo Cascone14cde402018-01-25 01:57:18 -08004140 }
4141 },
4142 {
4143 "op" : "assign",
4144 "parameters" : [
4145 {
4146 "type" : "field",
4147 "value" : ["gtpu_ipv4", "identification"]
4148 },
4149 {
4150 "type" : "hexstr",
4151 "value" : "0x1513"
4152 }
4153 ],
4154 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004155 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004156 "line" : 215,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004157 "column" : 8,
4158 "source_fragment" : "gtpu_ipv4.identification = 0x1513"
4159 }
4160 },
4161 {
4162 "op" : "assign",
4163 "parameters" : [
4164 {
4165 "type" : "field",
4166 "value" : ["gtpu_ipv4", "flags"]
4167 },
4168 {
4169 "type" : "hexstr",
4170 "value" : "0x00"
4171 }
4172 ],
4173 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004174 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004175 "line" : 216,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004176 "column" : 8,
4177 "source_fragment" : "gtpu_ipv4.flags = 0"
4178 }
4179 },
4180 {
4181 "op" : "assign",
4182 "parameters" : [
4183 {
4184 "type" : "field",
4185 "value" : ["gtpu_ipv4", "frag_offset"]
4186 },
4187 {
4188 "type" : "hexstr",
4189 "value" : "0x0000"
4190 }
4191 ],
4192 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004193 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004194 "line" : 217,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004195 "column" : 8,
4196 "source_fragment" : "gtpu_ipv4.frag_offset = 0"
4197 }
4198 },
4199 {
4200 "op" : "assign",
4201 "parameters" : [
4202 {
4203 "type" : "field",
4204 "value" : ["gtpu_ipv4", "ttl"]
4205 },
4206 {
4207 "type" : "hexstr",
4208 "value" : "0x40"
4209 }
4210 ],
4211 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004212 "filename" : "include/control/../define.p4",
Carmelo Cascone228092b2018-06-15 20:41:10 +02004213 "line" : 88,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004214 "column" : 32,
4215 "source_fragment" : "64; ..."
4216 }
4217 },
4218 {
4219 "op" : "assign",
4220 "parameters" : [
4221 {
4222 "type" : "field",
4223 "value" : ["gtpu_ipv4", "protocol"]
4224 },
4225 {
4226 "type" : "hexstr",
4227 "value" : "0x11"
4228 }
4229 ],
4230 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004231 "filename" : "include/control/../define.p4",
Carmelo Cascone228092b2018-06-15 20:41:10 +02004232 "line" : 75,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004233 "column" : 25,
4234 "source_fragment" : "17; ..."
4235 }
4236 },
4237 {
4238 "op" : "assign",
4239 "parameters" : [
4240 {
4241 "type" : "field",
4242 "value" : ["gtpu_ipv4", "dst_addr"]
4243 },
4244 {
4245 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004246 "value" : ["userMetadata.spgw", "s1u_enb_addr"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08004247 }
4248 ],
4249 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004250 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004251 "line" : 220,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004252 "column" : 8,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004253 "source_fragment" : "gtpu_ipv4.dst_addr = spgw_meta.s1u_enb_addr"
Carmelo Cascone14cde402018-01-25 01:57:18 -08004254 }
4255 },
4256 {
4257 "op" : "assign",
4258 "parameters" : [
4259 {
4260 "type" : "field",
4261 "value" : ["gtpu_ipv4", "src_addr"]
4262 },
4263 {
4264 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004265 "value" : ["userMetadata.spgw", "s1u_sgw_addr"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08004266 }
4267 ],
4268 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004269 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004270 "line" : 221,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004271 "column" : 8,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004272 "source_fragment" : "gtpu_ipv4.src_addr = spgw_meta.s1u_sgw_addr"
Carmelo Cascone14cde402018-01-25 01:57:18 -08004273 }
4274 },
4275 {
4276 "op" : "assign",
4277 "parameters" : [
4278 {
4279 "type" : "field",
4280 "value" : ["gtpu_ipv4", "hdr_checksum"]
4281 },
4282 {
4283 "type" : "hexstr",
4284 "value" : "0x0000"
4285 }
4286 ],
4287 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004288 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004289 "line" : 222,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004290 "column" : 8,
4291 "source_fragment" : "gtpu_ipv4.hdr_checksum = 0"
4292 }
4293 },
4294 {
4295 "op" : "add_header",
4296 "parameters" : [
4297 {
4298 "type" : "header",
4299 "value" : "gtpu_udp"
4300 }
4301 ],
4302 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004303 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004304 "line" : 224,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004305 "column" : 8,
4306 "source_fragment" : "gtpu_udp.setValid()"
4307 }
4308 },
4309 {
4310 "op" : "assign",
4311 "parameters" : [
4312 {
4313 "type" : "field",
4314 "value" : ["gtpu_udp", "src_port"]
4315 },
4316 {
4317 "type" : "hexstr",
4318 "value" : "0x0868"
4319 }
4320 ],
4321 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004322 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004323 "line" : 225,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004324 "column" : 8,
4325 "source_fragment" : "gtpu_udp.src_port = 2152"
4326 }
4327 },
4328 {
4329 "op" : "assign",
4330 "parameters" : [
4331 {
4332 "type" : "field",
4333 "value" : ["gtpu_udp", "dst_port"]
4334 },
4335 {
4336 "type" : "hexstr",
4337 "value" : "0x0868"
4338 }
4339 ],
4340 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004341 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004342 "line" : 226,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004343 "column" : 8,
4344 "source_fragment" : "gtpu_udp.dst_port = 2152"
4345 }
4346 },
4347 {
4348 "op" : "assign",
4349 "parameters" : [
4350 {
4351 "type" : "field",
4352 "value" : ["gtpu_udp", "len"]
4353 },
4354 {
4355 "type" : "expression",
4356 "value" : {
4357 "type" : "expression",
4358 "value" : {
4359 "op" : "&",
4360 "left" : {
4361 "type" : "expression",
4362 "value" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004363 "op" : "+",
Carmelo Cascone14cde402018-01-25 01:57:18 -08004364 "left" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004365 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004366 "value" : ["userMetadata.spgw", "ipv4_len"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004367 },
4368 "right" : {
4369 "type" : "hexstr",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004370 "value" : "0x0010"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004371 }
4372 }
4373 },
4374 "right" : {
4375 "type" : "hexstr",
4376 "value" : "0xffff"
4377 }
4378 }
4379 }
4380 }
4381 ],
4382 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004383 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004384 "line" : 227,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004385 "column" : 8,
Yi Tseng27b9bc02018-04-12 14:52:40 +08004386 "source_fragment" : "gtpu_udp.len = spgw_meta.ipv4_len ..."
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004387 }
4388 },
4389 {
4390 "op" : "assign",
4391 "parameters" : [
4392 {
4393 "type" : "field",
4394 "value" : ["gtpu_udp", "checksum"]
4395 },
4396 {
4397 "type" : "hexstr",
4398 "value" : "0x0000"
4399 }
4400 ],
4401 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004402 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004403 "line" : 229,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004404 "column" : 8,
4405 "source_fragment" : "gtpu_udp.checksum = 0"
4406 }
Carmelo Cascone14cde402018-01-25 01:57:18 -08004407 },
4408 {
4409 "op" : "add_header",
4410 "parameters" : [
4411 {
4412 "type" : "header",
4413 "value" : "gtpu"
4414 }
4415 ],
4416 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004417 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004418 "line" : 231,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004419 "column" : 8,
4420 "source_fragment" : "gtpu.setValid()"
4421 }
4422 },
4423 {
4424 "op" : "assign",
4425 "parameters" : [
4426 {
4427 "type" : "field",
4428 "value" : ["gtpu", "version"]
4429 },
4430 {
4431 "type" : "hexstr",
4432 "value" : "0x01"
4433 }
4434 ],
4435 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004436 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004437 "line" : 232,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004438 "column" : 8,
4439 "source_fragment" : "gtpu.version = 0x01"
4440 }
4441 },
4442 {
4443 "op" : "assign",
4444 "parameters" : [
4445 {
4446 "type" : "field",
4447 "value" : ["gtpu", "pt"]
4448 },
4449 {
4450 "type" : "hexstr",
4451 "value" : "0x01"
4452 }
4453 ],
4454 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004455 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004456 "line" : 233,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004457 "column" : 8,
4458 "source_fragment" : "gtpu.pt = 0x01"
4459 }
4460 },
4461 {
4462 "op" : "assign",
4463 "parameters" : [
4464 {
4465 "type" : "field",
4466 "value" : ["gtpu", "spare"]
4467 },
4468 {
4469 "type" : "hexstr",
4470 "value" : "0x00"
4471 }
4472 ],
4473 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004474 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004475 "line" : 234,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004476 "column" : 8,
4477 "source_fragment" : "gtpu.spare = 0"
4478 }
4479 },
4480 {
4481 "op" : "assign",
4482 "parameters" : [
4483 {
4484 "type" : "field",
4485 "value" : ["gtpu", "ex_flag"]
4486 },
4487 {
4488 "type" : "hexstr",
4489 "value" : "0x00"
4490 }
4491 ],
4492 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004493 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004494 "line" : 235,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004495 "column" : 8,
4496 "source_fragment" : "gtpu.ex_flag = 0"
4497 }
4498 },
4499 {
4500 "op" : "assign",
4501 "parameters" : [
4502 {
4503 "type" : "field",
4504 "value" : ["gtpu", "seq_flag"]
4505 },
4506 {
4507 "type" : "hexstr",
4508 "value" : "0x00"
4509 }
4510 ],
4511 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004512 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004513 "line" : 236,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004514 "column" : 8,
4515 "source_fragment" : "gtpu.seq_flag = 0"
4516 }
4517 },
4518 {
4519 "op" : "assign",
4520 "parameters" : [
4521 {
4522 "type" : "field",
4523 "value" : ["gtpu", "npdu_flag"]
4524 },
4525 {
4526 "type" : "hexstr",
4527 "value" : "0x00"
4528 }
4529 ],
4530 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004531 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004532 "line" : 237,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004533 "column" : 8,
4534 "source_fragment" : "gtpu.npdu_flag = 0"
4535 }
4536 },
4537 {
4538 "op" : "assign",
4539 "parameters" : [
4540 {
4541 "type" : "field",
4542 "value" : ["gtpu", "msgtype"]
4543 },
4544 {
4545 "type" : "hexstr",
4546 "value" : "0xff"
4547 }
4548 ],
4549 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004550 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004551 "line" : 238,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004552 "column" : 8,
4553 "source_fragment" : "gtpu.msgtype = 0xff"
4554 }
4555 },
4556 {
4557 "op" : "assign",
4558 "parameters" : [
4559 {
4560 "type" : "field",
4561 "value" : ["gtpu", "msglen"]
4562 },
4563 {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004564 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004565 "value" : ["userMetadata.spgw", "ipv4_len"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08004566 }
4567 ],
4568 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004569 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004570 "line" : 239,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004571 "column" : 8,
Yi Tseng27b9bc02018-04-12 14:52:40 +08004572 "source_fragment" : "gtpu.msglen = spgw_meta.ipv4_len"
Carmelo Cascone14cde402018-01-25 01:57:18 -08004573 }
4574 },
4575 {
4576 "op" : "assign",
4577 "parameters" : [
4578 {
4579 "type" : "field",
4580 "value" : ["gtpu", "teid"]
4581 },
4582 {
4583 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004584 "value" : ["userMetadata.spgw", "teid"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08004585 }
4586 ],
4587 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004588 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004589 "line" : 240,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004590 "column" : 8,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004591 "source_fragment" : "gtpu.teid = spgw_meta.teid"
Carmelo Cascone14cde402018-01-25 01:57:18 -08004592 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004593 }
4594 ]
4595 },
4596 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004597 "name" : "FabricEgress.pkt_io_egress.pop_vlan",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004598 "id" : 66,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004599 "runtime_data" : [],
4600 "primitives" : [
4601 {
4602 "op" : "assign",
4603 "parameters" : [
4604 {
4605 "type" : "field",
4606 "value" : ["ethernet", "ether_type"]
4607 },
4608 {
4609 "type" : "field",
4610 "value" : ["vlan_tag", "ether_type"]
4611 }
4612 ],
4613 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004614 "filename" : "include/control/packetio.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08004615 "line" : 38,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004616 "column" : 8,
4617 "source_fragment" : "hdr.ethernet.ether_type = hdr.vlan_tag.ether_type"
4618 }
4619 },
4620 {
4621 "op" : "remove_header",
4622 "parameters" : [
4623 {
4624 "type" : "header",
4625 "value" : "vlan_tag"
4626 }
4627 ],
4628 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004629 "filename" : "include/control/packetio.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08004630 "line" : 39,
4631 "column" : 8,
4632 "source_fragment" : "hdr.vlan_tag.setInvalid()"
4633 }
4634 }
4635 ]
4636 },
4637 {
4638 "name" : "FabricEgress.egress_next.pop_vlan",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004639 "id" : 67,
Yi Tseng47eac892018-07-11 02:17:04 +08004640 "runtime_data" : [],
4641 "primitives" : [
4642 {
4643 "op" : "assign",
4644 "parameters" : [
4645 {
4646 "type" : "field",
4647 "value" : ["ethernet", "ether_type"]
4648 },
4649 {
4650 "type" : "field",
4651 "value" : ["vlan_tag", "ether_type"]
4652 }
4653 ],
4654 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004655 "filename" : "include/control/next.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004656 "line" : 253,
Yi Tseng47eac892018-07-11 02:17:04 +08004657 "column" : 8,
4658 "source_fragment" : "hdr.ethernet.ether_type = hdr.vlan_tag.ether_type"
4659 }
4660 },
4661 {
4662 "op" : "remove_header",
4663 "parameters" : [
4664 {
4665 "type" : "header",
4666 "value" : "vlan_tag"
4667 }
4668 ],
4669 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004670 "filename" : "include/control/next.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004671 "line" : 254,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004672 "column" : 8,
4673 "source_fragment" : "hdr.vlan_tag.setInvalid()"
4674 }
4675 }
4676 ]
4677 },
4678 {
Carmelo Casconea5400af2018-07-17 22:11:54 +02004679 "name" : "act_24",
4680 "id" : 68,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004681 "runtime_data" : [],
4682 "primitives" : [
4683 {
4684 "op" : "add_header",
4685 "parameters" : [
4686 {
4687 "type" : "header",
4688 "value" : "packet_in"
4689 }
4690 ],
4691 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004692 "filename" : "include/control/packetio.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004693 "line" : 46,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004694 "column" : 12,
4695 "source_fragment" : "hdr.packet_in.setValid()"
4696 }
4697 },
4698 {
4699 "op" : "assign",
4700 "parameters" : [
4701 {
4702 "type" : "field",
4703 "value" : ["packet_in", "ingress_port"]
4704 },
4705 {
4706 "type" : "field",
4707 "value" : ["standard_metadata", "ingress_port"]
4708 }
4709 ],
4710 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004711 "filename" : "include/control/packetio.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004712 "line" : 47,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004713 "column" : 12,
4714 "source_fragment" : "hdr.packet_in.ingress_port = standard_metadata.ingress_port"
4715 }
4716 }
4717 ]
4718 },
4719 {
Carmelo Casconea5400af2018-07-17 22:11:54 +02004720 "name" : "act_25",
4721 "id" : 69,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004722 "runtime_data" : [],
4723 "primitives" : [
4724 {
4725 "op" : "remove_header",
4726 "parameters" : [
4727 {
4728 "type" : "header",
4729 "value" : "gtpu_ipv4"
4730 }
4731 ],
4732 "source_info" : {
4733 "filename" : "fabric.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004734 "line" : 71,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004735 "column" : 36,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004736 "source_fragment" : "hdr.gtpu_ipv4"
4737 }
4738 },
4739 {
4740 "op" : "remove_header",
4741 "parameters" : [
4742 {
4743 "type" : "header",
4744 "value" : "gtpu_udp"
4745 }
4746 ],
4747 "source_info" : {
4748 "filename" : "fabric.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004749 "line" : 71,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004750 "column" : 51,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004751 "source_fragment" : "hdr.gtpu_udp"
4752 }
4753 },
4754 {
4755 "op" : "remove_header",
4756 "parameters" : [
4757 {
4758 "type" : "header",
4759 "value" : "gtpu"
4760 }
4761 ],
4762 "source_info" : {
4763 "filename" : "fabric.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004764 "line" : 71,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004765 "column" : 65,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004766 "source_fragment" : "hdr.gtpu"
4767 }
4768 }
4769 ]
4770 }
4771 ],
4772 "pipelines" : [
4773 {
4774 "name" : "ingress",
4775 "id" : 0,
4776 "source_info" : {
4777 "filename" : "fabric.p4",
4778 "line" : 33,
4779 "column" : 8,
4780 "source_fragment" : "FabricIngress"
4781 },
4782 "init_table" : "node_2",
4783 "tables" : [
4784 {
4785 "name" : "tbl_act",
4786 "id" : 0,
4787 "key" : [],
4788 "match_type" : "exact",
4789 "type" : "simple",
4790 "max_size" : 1024,
4791 "with_counters" : false,
4792 "support_timeout" : false,
4793 "direct_meters" : null,
Yi Tseng47eac892018-07-11 02:17:04 +08004794 "action_ids" : [38],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004795 "actions" : ["act"],
4796 "base_default_next" : null,
4797 "next_tables" : {
4798 "act" : null
4799 },
4800 "default_entry" : {
Yi Tseng47eac892018-07-11 02:17:04 +08004801 "action_id" : 38,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004802 "action_const" : true,
4803 "action_data" : [],
4804 "action_entry_const" : true
4805 }
4806 },
4807 {
4808 "name" : "tbl_act_0",
4809 "id" : 1,
4810 "key" : [],
4811 "match_type" : "exact",
4812 "type" : "simple",
4813 "max_size" : 1024,
4814 "with_counters" : false,
4815 "support_timeout" : false,
4816 "direct_meters" : null,
Yi Tseng47eac892018-07-11 02:17:04 +08004817 "action_ids" : [46],
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004818 "actions" : ["act_7"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004819 "base_default_next" : "node_5",
4820 "next_tables" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004821 "act_7" : "node_5"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004822 },
4823 "default_entry" : {
Yi Tseng47eac892018-07-11 02:17:04 +08004824 "action_id" : 46,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004825 "action_const" : true,
4826 "action_data" : [],
4827 "action_entry_const" : true
4828 }
4829 },
4830 {
4831 "name" : "tbl_act_1",
4832 "id" : 2,
4833 "key" : [],
4834 "match_type" : "exact",
4835 "type" : "simple",
4836 "max_size" : 1024,
4837 "with_counters" : false,
4838 "support_timeout" : false,
4839 "direct_meters" : null,
Yi Tseng47eac892018-07-11 02:17:04 +08004840 "action_ids" : [41],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004841 "actions" : ["act_2"],
Yi Tseng27b9bc02018-04-12 14:52:40 +08004842 "base_default_next" : "FabricIngress.spgw_ingress.s1u_filter_table",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004843 "next_tables" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004844 "act_2" : "FabricIngress.spgw_ingress.s1u_filter_table"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004845 },
4846 "default_entry" : {
Yi Tseng47eac892018-07-11 02:17:04 +08004847 "action_id" : 41,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004848 "action_const" : true,
4849 "action_data" : [],
4850 "action_entry_const" : true
4851 }
4852 },
4853 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004854 "name" : "FabricIngress.spgw_ingress.s1u_filter_table",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004855 "id" : 3,
4856 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004857 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004858 "line" : 60,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004859 "column" : 10,
4860 "source_fragment" : "s1u_filter_table"
4861 },
4862 "key" : [
4863 {
4864 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004865 "name" : "spgw_meta.s1u_sgw_addr",
4866 "target" : ["userMetadata.spgw", "s1u_sgw_addr"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004867 "mask" : null
4868 }
4869 ],
4870 "match_type" : "exact",
4871 "type" : "simple",
4872 "max_size" : 1024,
4873 "with_counters" : false,
4874 "support_timeout" : false,
4875 "direct_meters" : null,
4876 "action_ids" : [1],
4877 "actions" : ["NoAction"],
4878 "base_default_next" : null,
4879 "next_tables" : {
4880 "__HIT__" : "tbl_act_2",
4881 "__MISS__" : "tbl_act_3"
4882 },
4883 "default_entry" : {
4884 "action_id" : 1,
4885 "action_const" : false,
4886 "action_data" : [],
4887 "action_entry_const" : false
4888 }
4889 },
4890 {
4891 "name" : "tbl_act_2",
4892 "id" : 4,
4893 "key" : [],
4894 "match_type" : "exact",
4895 "type" : "simple",
4896 "max_size" : 1024,
4897 "with_counters" : false,
4898 "support_timeout" : false,
4899 "direct_meters" : null,
Yi Tseng47eac892018-07-11 02:17:04 +08004900 "action_ids" : [39],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004901 "actions" : ["act_0"],
4902 "base_default_next" : "node_10",
4903 "next_tables" : {
4904 "act_0" : "node_10"
4905 },
4906 "default_entry" : {
Yi Tseng47eac892018-07-11 02:17:04 +08004907 "action_id" : 39,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004908 "action_const" : true,
4909 "action_data" : [],
4910 "action_entry_const" : true
4911 }
4912 },
4913 {
4914 "name" : "tbl_act_3",
4915 "id" : 5,
4916 "key" : [],
4917 "match_type" : "exact",
4918 "type" : "simple",
4919 "max_size" : 1024,
4920 "with_counters" : false,
4921 "support_timeout" : false,
4922 "direct_meters" : null,
Yi Tseng47eac892018-07-11 02:17:04 +08004923 "action_ids" : [40],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004924 "actions" : ["act_1"],
4925 "base_default_next" : "node_10",
4926 "next_tables" : {
4927 "act_1" : "node_10"
4928 },
4929 "default_entry" : {
Yi Tseng47eac892018-07-11 02:17:04 +08004930 "action_id" : 40,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004931 "action_const" : true,
4932 "action_data" : [],
4933 "action_entry_const" : true
4934 }
4935 },
4936 {
4937 "name" : "tbl_act_4",
4938 "id" : 6,
4939 "key" : [],
4940 "match_type" : "exact",
4941 "type" : "simple",
4942 "max_size" : 1024,
4943 "with_counters" : false,
4944 "support_timeout" : false,
4945 "direct_meters" : null,
Yi Tseng47eac892018-07-11 02:17:04 +08004946 "action_ids" : [42],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004947 "actions" : ["act_3"],
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004948 "base_default_next" : "node_17",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004949 "next_tables" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004950 "act_3" : "node_17"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004951 },
4952 "default_entry" : {
Yi Tseng47eac892018-07-11 02:17:04 +08004953 "action_id" : 42,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004954 "action_const" : true,
4955 "action_data" : [],
4956 "action_entry_const" : true
4957 }
4958 },
4959 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004960 "name" : "FabricIngress.spgw_ingress.ue_filter_table",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004961 "id" : 7,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004962 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004963 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004964 "line" : 50,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004965 "column" : 10,
4966 "source_fragment" : "ue_filter_table"
4967 },
4968 "key" : [
4969 {
4970 "match_type" : "lpm",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004971 "name" : "ipv4.dst_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004972 "target" : ["ipv4", "dst_addr"],
4973 "mask" : null
4974 }
4975 ],
4976 "match_type" : "lpm",
4977 "type" : "simple",
4978 "max_size" : 1024,
4979 "with_counters" : false,
4980 "support_timeout" : false,
4981 "direct_meters" : null,
4982 "action_ids" : [0],
4983 "actions" : ["NoAction"],
4984 "base_default_next" : null,
4985 "next_tables" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004986 "__HIT__" : "tbl_act_5",
4987 "__MISS__" : "tbl_act_6"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004988 },
4989 "default_entry" : {
4990 "action_id" : 0,
4991 "action_const" : false,
4992 "action_data" : [],
4993 "action_entry_const" : false
4994 }
4995 },
4996 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004997 "name" : "tbl_act_5",
4998 "id" : 8,
4999 "key" : [],
5000 "match_type" : "exact",
5001 "type" : "simple",
5002 "max_size" : 1024,
5003 "with_counters" : false,
5004 "support_timeout" : false,
5005 "direct_meters" : null,
Yi Tseng47eac892018-07-11 02:17:04 +08005006 "action_ids" : [43],
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005007 "actions" : ["act_4"],
5008 "base_default_next" : "node_15",
5009 "next_tables" : {
5010 "act_4" : "node_15"
5011 },
5012 "default_entry" : {
Yi Tseng47eac892018-07-11 02:17:04 +08005013 "action_id" : 43,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005014 "action_const" : true,
5015 "action_data" : [],
5016 "action_entry_const" : true
5017 }
5018 },
5019 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005020 "name" : "tbl_act_6",
5021 "id" : 9,
5022 "key" : [],
5023 "match_type" : "exact",
5024 "type" : "simple",
5025 "max_size" : 1024,
5026 "with_counters" : false,
5027 "support_timeout" : false,
5028 "direct_meters" : null,
Yi Tseng47eac892018-07-11 02:17:04 +08005029 "action_ids" : [44],
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005030 "actions" : ["act_5"],
5031 "base_default_next" : "node_15",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005032 "next_tables" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005033 "act_5" : "node_15"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005034 },
5035 "default_entry" : {
Yi Tseng47eac892018-07-11 02:17:04 +08005036 "action_id" : 44,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005037 "action_const" : true,
5038 "action_data" : [],
5039 "action_entry_const" : true
5040 }
5041 },
5042 {
5043 "name" : "tbl_act_7",
5044 "id" : 10,
5045 "key" : [],
5046 "match_type" : "exact",
5047 "type" : "simple",
5048 "max_size" : 1024,
5049 "with_counters" : false,
5050 "support_timeout" : false,
5051 "direct_meters" : null,
Yi Tseng47eac892018-07-11 02:17:04 +08005052 "action_ids" : [45],
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005053 "actions" : ["act_6"],
5054 "base_default_next" : "node_17",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005055 "next_tables" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005056 "act_6" : "node_17"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005057 },
5058 "default_entry" : {
Yi Tseng47eac892018-07-11 02:17:04 +08005059 "action_id" : 45,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005060 "action_const" : true,
5061 "action_data" : [],
5062 "action_entry_const" : true
5063 }
5064 },
5065 {
5066 "name" : "tbl_act_8",
5067 "id" : 11,
5068 "key" : [],
5069 "match_type" : "exact",
5070 "type" : "simple",
5071 "max_size" : 1024,
5072 "with_counters" : false,
5073 "support_timeout" : false,
5074 "direct_meters" : null,
Yi Tseng47eac892018-07-11 02:17:04 +08005075 "action_ids" : [47],
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005076 "actions" : ["act_8"],
5077 "base_default_next" : "node_19",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005078 "next_tables" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005079 "act_8" : "node_19"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005080 },
5081 "default_entry" : {
Yi Tseng47eac892018-07-11 02:17:04 +08005082 "action_id" : 47,
Carmelo Cascone14cde402018-01-25 01:57:18 -08005083 "action_const" : true,
5084 "action_data" : [],
5085 "action_entry_const" : true
5086 }
5087 },
5088 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005089 "name" : "tbl_spgw_ingress_gtpu_decap",
Carmelo Cascone14cde402018-01-25 01:57:18 -08005090 "id" : 12,
5091 "key" : [],
5092 "match_type" : "exact",
5093 "type" : "simple",
5094 "max_size" : 1024,
5095 "with_counters" : false,
5096 "support_timeout" : false,
5097 "direct_meters" : null,
Esin Karaman971fb7f2017-12-28 13:44:52 +00005098 "action_ids" : [14],
Yi Tseng27b9bc02018-04-12 14:52:40 +08005099 "actions" : ["FabricIngress.spgw_ingress.gtpu_decap"],
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005100 "base_default_next" : "node_22",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005101 "next_tables" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005102 "FabricIngress.spgw_ingress.gtpu_decap" : "node_22"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005103 },
5104 "default_entry" : {
Esin Karaman971fb7f2017-12-28 13:44:52 +00005105 "action_id" : 14,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005106 "action_const" : true,
5107 "action_data" : [],
5108 "action_entry_const" : true
5109 }
5110 },
5111 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005112 "name" : "FabricIngress.spgw_ingress.dl_sess_lookup",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005113 "id" : 13,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005114 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005115 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02005116 "line" : 119,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005117 "column" : 10,
5118 "source_fragment" : "dl_sess_lookup"
5119 },
5120 "key" : [
5121 {
5122 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005123 "name" : "ipv4.dst_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005124 "target" : ["ipv4", "dst_addr"],
5125 "mask" : null
5126 }
5127 ],
5128 "match_type" : "exact",
5129 "type" : "simple",
5130 "max_size" : 1024,
5131 "with_counters" : false,
5132 "support_timeout" : false,
5133 "direct_meters" : null,
Esin Karaman971fb7f2017-12-28 13:44:52 +00005134 "action_ids" : [15, 2],
Yi Tseng27b9bc02018-04-12 14:52:40 +08005135 "actions" : ["FabricIngress.spgw_ingress.set_dl_sess_info", "NoAction"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005136 "base_default_next" : null,
5137 "next_tables" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005138 "__HIT__" : "tbl_act_9",
5139 "__MISS__" : "tbl_act_10"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005140 },
5141 "default_entry" : {
5142 "action_id" : 2,
5143 "action_const" : false,
5144 "action_data" : [],
5145 "action_entry_const" : false
5146 }
5147 },
5148 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005149 "name" : "tbl_act_9",
5150 "id" : 14,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005151 "key" : [],
5152 "match_type" : "exact",
5153 "type" : "simple",
5154 "max_size" : 1024,
5155 "with_counters" : false,
5156 "support_timeout" : false,
5157 "direct_meters" : null,
Yi Tseng47eac892018-07-11 02:17:04 +08005158 "action_ids" : [48],
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005159 "actions" : ["act_9"],
5160 "base_default_next" : "node_26",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005161 "next_tables" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005162 "act_9" : "node_26"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005163 },
5164 "default_entry" : {
Yi Tseng47eac892018-07-11 02:17:04 +08005165 "action_id" : 48,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005166 "action_const" : true,
5167 "action_data" : [],
5168 "action_entry_const" : true
5169 }
5170 },
5171 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005172 "name" : "tbl_act_10",
5173 "id" : 15,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005174 "key" : [],
5175 "match_type" : "exact",
5176 "type" : "simple",
5177 "max_size" : 1024,
5178 "with_counters" : false,
5179 "support_timeout" : false,
5180 "direct_meters" : null,
Yi Tseng47eac892018-07-11 02:17:04 +08005181 "action_ids" : [49],
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005182 "actions" : ["act_10"],
5183 "base_default_next" : "node_26",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005184 "next_tables" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005185 "act_10" : "node_26"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005186 },
5187 "default_entry" : {
Yi Tseng47eac892018-07-11 02:17:04 +08005188 "action_id" : 49,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005189 "action_const" : true,
5190 "action_data" : [],
5191 "action_entry_const" : true
5192 }
5193 },
5194 {
Carmelo Casconea5400af2018-07-17 22:11:54 +02005195 "name" : "tbl_drop_now",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005196 "id" : 16,
Carmelo Cascone14cde402018-01-25 01:57:18 -08005197 "key" : [],
5198 "match_type" : "exact",
5199 "type" : "simple",
5200 "max_size" : 1024,
5201 "with_counters" : false,
5202 "support_timeout" : false,
5203 "direct_meters" : null,
Esin Karaman971fb7f2017-12-28 13:44:52 +00005204 "action_ids" : [13],
Carmelo Casconea5400af2018-07-17 22:11:54 +02005205 "actions" : ["drop_now"],
Yi Tseng27b9bc02018-04-12 14:52:40 +08005206 "base_default_next" : "FabricIngress.spgw_ingress.ue_cdr_table",
Carmelo Cascone14cde402018-01-25 01:57:18 -08005207 "next_tables" : {
Carmelo Casconea5400af2018-07-17 22:11:54 +02005208 "drop_now" : "FabricIngress.spgw_ingress.ue_cdr_table"
Carmelo Cascone14cde402018-01-25 01:57:18 -08005209 },
5210 "default_entry" : {
Esin Karaman971fb7f2017-12-28 13:44:52 +00005211 "action_id" : 13,
Carmelo Cascone14cde402018-01-25 01:57:18 -08005212 "action_const" : true,
5213 "action_data" : [],
5214 "action_entry_const" : true
5215 }
5216 },
5217 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005218 "name" : "FabricIngress.spgw_ingress.ue_cdr_table",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005219 "id" : 17,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005220 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005221 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02005222 "line" : 129,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005223 "column" : 10,
5224 "source_fragment" : "ue_cdr_table"
5225 },
5226 "key" : [
5227 {
5228 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005229 "name" : "ipv4.dst_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005230 "target" : ["ipv4", "dst_addr"],
5231 "mask" : null
5232 }
5233 ],
5234 "match_type" : "exact",
5235 "type" : "simple",
5236 "max_size" : 1024,
5237 "with_counters" : true,
5238 "support_timeout" : false,
5239 "direct_meters" : null,
Esin Karaman971fb7f2017-12-28 13:44:52 +00005240 "action_ids" : [16, 3],
Yi Tseng27b9bc02018-04-12 14:52:40 +08005241 "actions" : ["FabricIngress.spgw_ingress.update_ue_cdr", "NoAction"],
5242 "base_default_next" : "tbl_act_11",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005243 "next_tables" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005244 "FabricIngress.spgw_ingress.update_ue_cdr" : "tbl_act_11",
5245 "NoAction" : "tbl_act_11"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005246 },
5247 "default_entry" : {
5248 "action_id" : 3,
5249 "action_const" : false,
5250 "action_data" : [],
5251 "action_entry_const" : false
5252 }
5253 },
5254 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005255 "name" : "tbl_act_11",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005256 "id" : 18,
Yi Tseng27b9bc02018-04-12 14:52:40 +08005257 "key" : [],
5258 "match_type" : "exact",
5259 "type" : "simple",
5260 "max_size" : 1024,
5261 "with_counters" : false,
5262 "support_timeout" : false,
5263 "direct_meters" : null,
Yi Tseng47eac892018-07-11 02:17:04 +08005264 "action_ids" : [50],
Yi Tseng27b9bc02018-04-12 14:52:40 +08005265 "actions" : ["act_11"],
5266 "base_default_next" : "FabricIngress.filtering.ingress_port_vlan",
5267 "next_tables" : {
5268 "act_11" : "FabricIngress.filtering.ingress_port_vlan"
5269 },
5270 "default_entry" : {
Yi Tseng47eac892018-07-11 02:17:04 +08005271 "action_id" : 50,
Yi Tseng27b9bc02018-04-12 14:52:40 +08005272 "action_const" : true,
5273 "action_data" : [],
5274 "action_entry_const" : true
5275 }
5276 },
5277 {
5278 "name" : "FabricIngress.filtering.ingress_port_vlan",
5279 "id" : 19,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005280 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005281 "filename" : "include/control/filtering.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08005282 "line" : 61,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005283 "column" : 10,
5284 "source_fragment" : "ingress_port_vlan"
5285 },
5286 "key" : [
5287 {
5288 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005289 "name" : "standard_metadata.ingress_port",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005290 "target" : ["standard_metadata", "ingress_port"],
5291 "mask" : null
5292 },
5293 {
5294 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005295 "name" : "hdr.vlan_tag.is_valid",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005296 "target" : ["vlan_tag", "$valid$"],
5297 "mask" : null
5298 },
5299 {
5300 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005301 "name" : "hdr.vlan_tag.vlan_id",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005302 "target" : ["vlan_tag", "vlan_id"],
5303 "mask" : null
5304 }
5305 ],
5306 "match_type" : "ternary",
5307 "type" : "simple",
5308 "max_size" : 1024,
5309 "with_counters" : true,
5310 "support_timeout" : false,
5311 "direct_meters" : null,
Esin Karaman971fb7f2017-12-28 13:44:52 +00005312 "action_ids" : [19, 18, 10, 17],
Yi Tseng27b9bc02018-04-12 14:52:40 +08005313 "actions" : ["FabricIngress.filtering.push_internal_vlan", "FabricIngress.filtering.set_vlan", "nop", "FabricIngress.filtering.drop"],
5314 "base_default_next" : "FabricIngress.filtering.fwd_classifier",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005315 "next_tables" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005316 "FabricIngress.filtering.push_internal_vlan" : "FabricIngress.filtering.fwd_classifier",
5317 "FabricIngress.filtering.set_vlan" : "FabricIngress.filtering.fwd_classifier",
5318 "nop" : "FabricIngress.filtering.fwd_classifier",
5319 "FabricIngress.filtering.drop" : "FabricIngress.filtering.fwd_classifier"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005320 },
5321 "default_entry" : {
Esin Karaman971fb7f2017-12-28 13:44:52 +00005322 "action_id" : 10,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005323 "action_const" : true,
5324 "action_data" : [],
5325 "action_entry_const" : true
5326 }
5327 },
5328 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005329 "name" : "FabricIngress.filtering.fwd_classifier",
5330 "id" : 20,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005331 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005332 "filename" : "include/control/filtering.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08005333 "line" : 98,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005334 "column" : 10,
5335 "source_fragment" : "fwd_classifier"
5336 },
5337 "key" : [
5338 {
5339 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005340 "name" : "standard_metadata.ingress_port",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005341 "target" : ["standard_metadata", "ingress_port"],
5342 "mask" : null
5343 },
5344 {
5345 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005346 "name" : "hdr.ethernet.dst_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005347 "target" : ["ethernet", "dst_addr"],
5348 "mask" : null
5349 },
5350 {
5351 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005352 "name" : "fabric_metadata.original_ether_type",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005353 "target" : ["scalars", "fabric_metadata_t.original_ether_type"],
5354 "mask" : null
5355 }
5356 ],
5357 "match_type" : "exact",
5358 "type" : "simple",
5359 "max_size" : 1024,
5360 "with_counters" : true,
5361 "support_timeout" : false,
5362 "direct_meters" : null,
Esin Karaman971fb7f2017-12-28 13:44:52 +00005363 "action_ids" : [20],
Yi Tseng27b9bc02018-04-12 14:52:40 +08005364 "actions" : ["FabricIngress.filtering.set_forwarding_type"],
5365 "base_default_next" : "node_32",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005366 "next_tables" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005367 "FabricIngress.filtering.set_forwarding_type" : "node_32"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005368 },
5369 "default_entry" : {
Esin Karaman971fb7f2017-12-28 13:44:52 +00005370 "action_id" : 20,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005371 "action_const" : true,
5372 "action_data" : ["0x0"],
5373 "action_entry_const" : true
5374 }
5375 },
5376 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005377 "name" : "FabricIngress.forwarding.bridging",
5378 "id" : 21,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005379 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005380 "filename" : "include/control/forwarding.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08005381 "line" : 41,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005382 "column" : 10,
5383 "source_fragment" : "bridging"
5384 },
5385 "key" : [
5386 {
5387 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005388 "name" : "hdr.vlan_tag.vlan_id",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005389 "target" : ["vlan_tag", "vlan_id"],
5390 "mask" : null
5391 },
5392 {
5393 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005394 "name" : "hdr.ethernet.dst_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005395 "target" : ["ethernet", "dst_addr"],
5396 "mask" : null
5397 }
5398 ],
5399 "match_type" : "ternary",
5400 "type" : "simple",
5401 "max_size" : 1024,
5402 "with_counters" : true,
5403 "support_timeout" : false,
5404 "direct_meters" : null,
Yi Tseng47eac892018-07-11 02:17:04 +08005405 "action_ids" : [21, 4],
5406 "actions" : ["FabricIngress.forwarding.set_next_id_bridging", "NoAction"],
Yi Tseng27b9bc02018-04-12 14:52:40 +08005407 "base_default_next" : "FabricIngress.forwarding.acl",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005408 "next_tables" : {
Yi Tseng47eac892018-07-11 02:17:04 +08005409 "FabricIngress.forwarding.set_next_id_bridging" : "FabricIngress.forwarding.acl",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005410 "NoAction" : "FabricIngress.forwarding.acl"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005411 },
5412 "default_entry" : {
5413 "action_id" : 4,
5414 "action_const" : false,
5415 "action_data" : [],
5416 "action_entry_const" : false
5417 }
5418 },
5419 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005420 "name" : "FabricIngress.forwarding.mpls",
5421 "id" : 22,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005422 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005423 "filename" : "include/control/forwarding.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08005424 "line" : 65,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005425 "column" : 10,
5426 "source_fragment" : "mpls"
5427 },
5428 "key" : [
5429 {
5430 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005431 "name" : "hdr.mpls.label",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005432 "target" : ["mpls", "label"],
5433 "mask" : null
5434 }
5435 ],
5436 "match_type" : "exact",
5437 "type" : "simple",
5438 "max_size" : 1024,
5439 "with_counters" : true,
5440 "support_timeout" : false,
5441 "direct_meters" : null,
Yi Tseng47eac892018-07-11 02:17:04 +08005442 "action_ids" : [22, 5],
Yi Tseng27b9bc02018-04-12 14:52:40 +08005443 "actions" : ["FabricIngress.forwarding.pop_mpls_and_next", "NoAction"],
5444 "base_default_next" : "tbl_act_12",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005445 "next_tables" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005446 "FabricIngress.forwarding.pop_mpls_and_next" : "tbl_act_12",
5447 "NoAction" : "tbl_act_12"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005448 },
5449 "default_entry" : {
5450 "action_id" : 5,
5451 "action_const" : false,
5452 "action_data" : [],
5453 "action_entry_const" : false
5454 }
5455 },
5456 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005457 "name" : "tbl_act_12",
5458 "id" : 23,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005459 "key" : [],
5460 "match_type" : "exact",
5461 "type" : "simple",
5462 "max_size" : 1024,
5463 "with_counters" : false,
5464 "support_timeout" : false,
5465 "direct_meters" : null,
Yi Tseng47eac892018-07-11 02:17:04 +08005466 "action_ids" : [51],
Yi Tseng27b9bc02018-04-12 14:52:40 +08005467 "actions" : ["act_12"],
5468 "base_default_next" : "FabricIngress.forwarding.acl",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005469 "next_tables" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005470 "act_12" : "FabricIngress.forwarding.acl"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005471 },
5472 "default_entry" : {
Yi Tseng47eac892018-07-11 02:17:04 +08005473 "action_id" : 51,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005474 "action_const" : true,
5475 "action_data" : [],
5476 "action_entry_const" : true
5477 }
5478 },
5479 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005480 "name" : "FabricIngress.forwarding.unicast_v4",
5481 "id" : 24,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005482 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005483 "filename" : "include/control/forwarding.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08005484 "line" : 87,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005485 "column" : 10,
5486 "source_fragment" : "unicast_v4"
5487 },
5488 "key" : [
5489 {
5490 "match_type" : "lpm",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005491 "name" : "hdr.ipv4.dst_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005492 "target" : ["ipv4", "dst_addr"],
5493 "mask" : null
5494 }
5495 ],
5496 "match_type" : "lpm",
5497 "type" : "simple",
5498 "max_size" : 1024,
5499 "with_counters" : true,
5500 "support_timeout" : false,
5501 "direct_meters" : null,
Esin Karaman971fb7f2017-12-28 13:44:52 +00005502 "action_ids" : [23, 6],
Yi Tseng47eac892018-07-11 02:17:04 +08005503 "actions" : ["FabricIngress.forwarding.set_next_id_unicast_v4", "NoAction"],
Yi Tseng27b9bc02018-04-12 14:52:40 +08005504 "base_default_next" : "FabricIngress.forwarding.acl",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005505 "next_tables" : {
Yi Tseng47eac892018-07-11 02:17:04 +08005506 "FabricIngress.forwarding.set_next_id_unicast_v4" : "FabricIngress.forwarding.acl",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005507 "NoAction" : "FabricIngress.forwarding.acl"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005508 },
5509 "default_entry" : {
5510 "action_id" : 6,
5511 "action_const" : false,
5512 "action_data" : [],
5513 "action_entry_const" : false
5514 }
5515 },
5516 {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005517 "name" : "FabricIngress.forwarding.acl",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005518 "id" : 25,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005519 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005520 "filename" : "include/control/forwarding.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08005521 "line" : 119,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005522 "column" : 10,
5523 "source_fragment" : "acl"
5524 },
5525 "key" : [
5526 {
5527 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005528 "name" : "standard_metadata.ingress_port",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005529 "target" : ["standard_metadata", "ingress_port"],
5530 "mask" : null
5531 },
5532 {
5533 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005534 "name" : "fabric_metadata.ip_proto",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005535 "target" : ["scalars", "fabric_metadata_t.ip_proto"],
5536 "mask" : null
5537 },
5538 {
5539 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005540 "name" : "fabric_metadata.l4_src_port",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005541 "target" : ["scalars", "fabric_metadata_t.l4_src_port"],
5542 "mask" : null
5543 },
5544 {
5545 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005546 "name" : "fabric_metadata.l4_dst_port",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005547 "target" : ["scalars", "fabric_metadata_t.l4_dst_port"],
5548 "mask" : null
5549 },
5550 {
5551 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005552 "name" : "fabric_metadata.original_ether_type",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005553 "target" : ["scalars", "fabric_metadata_t.original_ether_type"],
5554 "mask" : null
5555 },
5556 {
5557 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005558 "name" : "hdr.ethernet.dst_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005559 "target" : ["ethernet", "dst_addr"],
5560 "mask" : null
5561 },
5562 {
5563 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005564 "name" : "hdr.ethernet.src_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005565 "target" : ["ethernet", "src_addr"],
5566 "mask" : null
5567 },
5568 {
5569 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005570 "name" : "hdr.vlan_tag.vlan_id",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005571 "target" : ["vlan_tag", "vlan_id"],
5572 "mask" : null
5573 },
5574 {
5575 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005576 "name" : "hdr.ipv4.src_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005577 "target" : ["ipv4", "src_addr"],
5578 "mask" : null
5579 },
5580 {
5581 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005582 "name" : "hdr.ipv4.dst_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005583 "target" : ["ipv4", "dst_addr"],
5584 "mask" : null
5585 },
5586 {
5587 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005588 "name" : "hdr.icmp.icmp_type",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005589 "target" : ["icmp", "icmp_type"],
5590 "mask" : null
5591 },
5592 {
5593 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005594 "name" : "hdr.icmp.icmp_code",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005595 "target" : ["icmp", "icmp_code"],
5596 "mask" : null
5597 }
5598 ],
5599 "match_type" : "ternary",
5600 "type" : "simple",
5601 "max_size" : 256,
5602 "with_counters" : true,
5603 "support_timeout" : false,
5604 "direct_meters" : null,
Yi Tseng47eac892018-07-11 02:17:04 +08005605 "action_ids" : [24, 25, 26, 11],
5606 "actions" : ["FabricIngress.forwarding.set_next_id_acl", "FabricIngress.forwarding.send_to_controller", "FabricIngress.forwarding.drop", "nop"],
Carmelo Casconea5400af2018-07-17 22:11:54 +02005607 "base_default_next" : "tbl_act_13",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005608 "next_tables" : {
Carmelo Casconea5400af2018-07-17 22:11:54 +02005609 "FabricIngress.forwarding.set_next_id_acl" : "tbl_act_13",
5610 "FabricIngress.forwarding.send_to_controller" : "tbl_act_13",
5611 "FabricIngress.forwarding.drop" : "tbl_act_13",
5612 "nop" : "tbl_act_13"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005613 },
5614 "default_entry" : {
Esin Karaman971fb7f2017-12-28 13:44:52 +00005615 "action_id" : 11,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005616 "action_const" : true,
5617 "action_data" : [],
5618 "action_entry_const" : true
5619 }
5620 },
5621 {
Carmelo Casconea5400af2018-07-17 22:11:54 +02005622 "name" : "tbl_act_13",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005623 "id" : 26,
Carmelo Casconea5400af2018-07-17 22:11:54 +02005624 "key" : [],
5625 "match_type" : "exact",
5626 "type" : "simple",
5627 "max_size" : 1024,
5628 "with_counters" : false,
5629 "support_timeout" : false,
5630 "direct_meters" : null,
5631 "action_ids" : [52],
5632 "actions" : ["act_13"],
5633 "base_default_next" : "FabricIngress.next.vlan_meta",
5634 "next_tables" : {
5635 "act_13" : "FabricIngress.next.vlan_meta"
5636 },
5637 "default_entry" : {
5638 "action_id" : 52,
5639 "action_const" : true,
5640 "action_data" : [],
5641 "action_entry_const" : true
5642 }
5643 },
5644 {
5645 "name" : "FabricIngress.next.vlan_meta",
5646 "id" : 27,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005647 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005648 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08005649 "line" : 65,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005650 "column" : 10,
5651 "source_fragment" : "vlan_meta"
5652 },
5653 "key" : [
5654 {
5655 "match_type" : "exact",
5656 "name" : "fabric_metadata.next_id",
5657 "target" : ["scalars", "fabric_metadata_t.next_id"],
5658 "mask" : null
5659 }
5660 ],
5661 "match_type" : "exact",
5662 "type" : "simple",
5663 "max_size" : 1024,
5664 "with_counters" : true,
5665 "support_timeout" : false,
5666 "direct_meters" : null,
Yi Tseng47eac892018-07-11 02:17:04 +08005667 "action_ids" : [27, 12],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005668 "actions" : ["FabricIngress.next.set_vlan", "nop"],
5669 "base_default_next" : "FabricIngress.next.simple",
5670 "next_tables" : {
5671 "FabricIngress.next.set_vlan" : "FabricIngress.next.simple",
5672 "nop" : "FabricIngress.next.simple"
5673 },
5674 "default_entry" : {
Esin Karaman971fb7f2017-12-28 13:44:52 +00005675 "action_id" : 12,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005676 "action_const" : false,
5677 "action_data" : [],
5678 "action_entry_const" : false
5679 }
5680 },
5681 {
5682 "name" : "FabricIngress.next.simple",
Carmelo Casconea5400af2018-07-17 22:11:54 +02005683 "id" : 28,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005684 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005685 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08005686 "line" : 122,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005687 "column" : 10,
5688 "source_fragment" : "simple"
5689 },
5690 "key" : [
5691 {
5692 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005693 "name" : "fabric_metadata.next_id",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005694 "target" : ["scalars", "fabric_metadata_t.next_id"],
5695 "mask" : null
5696 }
5697 ],
5698 "match_type" : "exact",
5699 "type" : "simple",
5700 "max_size" : 1024,
5701 "with_counters" : true,
5702 "support_timeout" : false,
5703 "direct_meters" : null,
Yi Tseng47eac892018-07-11 02:17:04 +08005704 "action_ids" : [28, 29, 30, 31, 32, 33, 7],
5705 "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 -08005706 "base_default_next" : null,
5707 "next_tables" : {
Carmelo Casconea5400af2018-07-17 22:11:54 +02005708 "__HIT__" : "tbl_act_14",
5709 "__MISS__" : "tbl_act_15"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005710 },
5711 "default_entry" : {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005712 "action_id" : 7,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005713 "action_const" : false,
5714 "action_data" : [],
5715 "action_entry_const" : false
5716 }
5717 },
5718 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005719 "name" : "tbl_act_14",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005720 "id" : 29,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005721 "key" : [],
5722 "match_type" : "exact",
5723 "type" : "simple",
5724 "max_size" : 1024,
5725 "with_counters" : false,
5726 "support_timeout" : false,
5727 "direct_meters" : null,
Yi Tseng47eac892018-07-11 02:17:04 +08005728 "action_ids" : [53],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005729 "actions" : ["act_14"],
Carmelo Casconea5400af2018-07-17 22:11:54 +02005730 "base_default_next" : "node_45",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005731 "next_tables" : {
Carmelo Casconea5400af2018-07-17 22:11:54 +02005732 "act_14" : "node_45"
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005733 },
5734 "default_entry" : {
Yi Tseng47eac892018-07-11 02:17:04 +08005735 "action_id" : 53,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005736 "action_const" : true,
5737 "action_data" : [],
5738 "action_entry_const" : true
5739 }
5740 },
5741 {
5742 "name" : "tbl_act_15",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005743 "id" : 30,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005744 "key" : [],
5745 "match_type" : "exact",
5746 "type" : "simple",
5747 "max_size" : 1024,
5748 "with_counters" : false,
5749 "support_timeout" : false,
5750 "direct_meters" : null,
Yi Tseng47eac892018-07-11 02:17:04 +08005751 "action_ids" : [54],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005752 "actions" : ["act_15"],
Carmelo Casconea5400af2018-07-17 22:11:54 +02005753 "base_default_next" : "node_45",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005754 "next_tables" : {
Carmelo Casconea5400af2018-07-17 22:11:54 +02005755 "act_15" : "node_45"
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005756 },
5757 "default_entry" : {
Yi Tseng47eac892018-07-11 02:17:04 +08005758 "action_id" : 54,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005759 "action_const" : true,
5760 "action_data" : [],
5761 "action_entry_const" : true
5762 }
5763 },
5764 {
5765 "name" : "FabricIngress.next.hashed",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005766 "id" : 31,
Yi Tseng27b9bc02018-04-12 14:52:40 +08005767 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005768 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08005769 "line" : 175,
Yi Tseng27b9bc02018-04-12 14:52:40 +08005770 "column" : 10,
5771 "source_fragment" : "hashed"
5772 },
5773 "key" : [
5774 {
5775 "match_type" : "exact",
5776 "name" : "fabric_metadata.next_id",
5777 "target" : ["scalars", "fabric_metadata_t.next_id"],
5778 "mask" : null
5779 }
5780 ],
5781 "match_type" : "exact",
5782 "type" : "indirect_ws",
5783 "action_profile" : "FabricIngress.next.ecmp_selector",
5784 "max_size" : 1024,
5785 "with_counters" : true,
5786 "support_timeout" : false,
5787 "direct_meters" : null,
Yi Tseng47eac892018-07-11 02:17:04 +08005788 "action_ids" : [34, 35, 36, 8],
5789 "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 +02005790 "base_default_next" : null,
Yi Tseng27b9bc02018-04-12 14:52:40 +08005791 "next_tables" : {
Carmelo Casconea5400af2018-07-17 22:11:54 +02005792 "__HIT__" : "tbl_act_16",
5793 "__MISS__" : "tbl_act_17"
5794 }
5795 },
5796 {
5797 "name" : "tbl_act_16",
5798 "id" : 32,
5799 "key" : [],
5800 "match_type" : "exact",
5801 "type" : "simple",
5802 "max_size" : 1024,
5803 "with_counters" : false,
5804 "support_timeout" : false,
5805 "direct_meters" : null,
5806 "action_ids" : [55],
5807 "actions" : ["act_16"],
5808 "base_default_next" : "node_49",
5809 "next_tables" : {
5810 "act_16" : "node_49"
5811 },
5812 "default_entry" : {
5813 "action_id" : 55,
5814 "action_const" : true,
5815 "action_data" : [],
5816 "action_entry_const" : true
5817 }
5818 },
5819 {
5820 "name" : "tbl_act_17",
5821 "id" : 33,
5822 "key" : [],
5823 "match_type" : "exact",
5824 "type" : "simple",
5825 "max_size" : 1024,
5826 "with_counters" : false,
5827 "support_timeout" : false,
5828 "direct_meters" : null,
5829 "action_ids" : [56],
5830 "actions" : ["act_17"],
5831 "base_default_next" : "node_49",
5832 "next_tables" : {
5833 "act_17" : "node_49"
5834 },
5835 "default_entry" : {
5836 "action_id" : 56,
5837 "action_const" : true,
5838 "action_data" : [],
5839 "action_entry_const" : true
Esin Karaman971fb7f2017-12-28 13:44:52 +00005840 }
5841 },
5842 {
5843 "name" : "FabricIngress.next.multicast",
Carmelo Casconea5400af2018-07-17 22:11:54 +02005844 "id" : 34,
Esin Karaman971fb7f2017-12-28 13:44:52 +00005845 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005846 "filename" : "include/control/next.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02005847 "line" : 207,
Esin Karaman971fb7f2017-12-28 13:44:52 +00005848 "column" : 10,
5849 "source_fragment" : "multicast"
5850 },
5851 "key" : [
5852 {
5853 "match_type" : "exact",
5854 "name" : "fabric_metadata.next_id",
5855 "target" : ["scalars", "fabric_metadata_t.next_id"],
5856 "mask" : null
5857 }
5858 ],
5859 "match_type" : "exact",
5860 "type" : "simple",
5861 "max_size" : 1024,
5862 "with_counters" : true,
5863 "support_timeout" : false,
5864 "direct_meters" : null,
Yi Tseng47eac892018-07-11 02:17:04 +08005865 "action_ids" : [37, 9],
Esin Karaman971fb7f2017-12-28 13:44:52 +00005866 "actions" : ["FabricIngress.next.set_mcast_group", "NoAction"],
Carmelo Casconea5400af2018-07-17 22:11:54 +02005867 "base_default_next" : null,
Esin Karaman971fb7f2017-12-28 13:44:52 +00005868 "next_tables" : {
Carmelo Casconea5400af2018-07-17 22:11:54 +02005869 "__HIT__" : "tbl_act_18",
5870 "__MISS__" : "tbl_act_19"
Esin Karaman971fb7f2017-12-28 13:44:52 +00005871 },
5872 "default_entry" : {
5873 "action_id" : 9,
5874 "action_const" : false,
5875 "action_data" : [],
5876 "action_entry_const" : false
Yi Tseng27b9bc02018-04-12 14:52:40 +08005877 }
5878 },
5879 {
Carmelo Casconea5400af2018-07-17 22:11:54 +02005880 "name" : "tbl_act_18",
5881 "id" : 35,
Yi Tseng27b9bc02018-04-12 14:52:40 +08005882 "key" : [],
5883 "match_type" : "exact",
5884 "type" : "simple",
5885 "max_size" : 1024,
5886 "with_counters" : false,
5887 "support_timeout" : false,
5888 "direct_meters" : null,
Carmelo Casconea5400af2018-07-17 22:11:54 +02005889 "action_ids" : [57],
5890 "actions" : ["act_18"],
5891 "base_default_next" : "node_53",
Esin Karaman971fb7f2017-12-28 13:44:52 +00005892 "next_tables" : {
Carmelo Casconea5400af2018-07-17 22:11:54 +02005893 "act_18" : "node_53"
Esin Karaman971fb7f2017-12-28 13:44:52 +00005894 },
5895 "default_entry" : {
Carmelo Casconea5400af2018-07-17 22:11:54 +02005896 "action_id" : 57,
Esin Karaman971fb7f2017-12-28 13:44:52 +00005897 "action_const" : true,
5898 "action_data" : [],
5899 "action_entry_const" : true
5900 }
5901 },
5902 {
Carmelo Casconea5400af2018-07-17 22:11:54 +02005903 "name" : "tbl_act_19",
5904 "id" : 36,
Esin Karaman971fb7f2017-12-28 13:44:52 +00005905 "key" : [],
5906 "match_type" : "exact",
5907 "type" : "simple",
5908 "max_size" : 1024,
5909 "with_counters" : false,
5910 "support_timeout" : false,
5911 "direct_meters" : null,
Carmelo Casconea5400af2018-07-17 22:11:54 +02005912 "action_ids" : [58],
5913 "actions" : ["act_19"],
5914 "base_default_next" : "node_53",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005915 "next_tables" : {
Carmelo Casconea5400af2018-07-17 22:11:54 +02005916 "act_19" : "node_53"
Yi Tseng27b9bc02018-04-12 14:52:40 +08005917 },
5918 "default_entry" : {
Carmelo Casconea5400af2018-07-17 22:11:54 +02005919 "action_id" : 58,
5920 "action_const" : true,
5921 "action_data" : [],
5922 "action_entry_const" : true
5923 }
5924 },
5925 {
5926 "name" : "tbl_act_20",
5927 "id" : 37,
5928 "key" : [],
5929 "match_type" : "exact",
5930 "type" : "simple",
5931 "max_size" : 1024,
5932 "with_counters" : false,
5933 "support_timeout" : false,
5934 "direct_meters" : null,
5935 "action_ids" : [59],
5936 "actions" : ["act_20"],
5937 "base_default_next" : "node_55",
5938 "next_tables" : {
5939 "act_20" : "node_55"
5940 },
5941 "default_entry" : {
5942 "action_id" : 59,
5943 "action_const" : true,
5944 "action_data" : [],
5945 "action_entry_const" : true
5946 }
5947 },
5948 {
5949 "name" : "tbl_act_21",
5950 "id" : 38,
5951 "key" : [],
5952 "match_type" : "exact",
5953 "type" : "simple",
5954 "max_size" : 1024,
5955 "with_counters" : false,
5956 "support_timeout" : false,
5957 "direct_meters" : null,
5958 "action_ids" : [60],
5959 "actions" : ["act_21"],
5960 "base_default_next" : "node_59",
5961 "next_tables" : {
5962 "act_21" : "node_59"
5963 },
5964 "default_entry" : {
5965 "action_id" : 60,
5966 "action_const" : true,
5967 "action_data" : [],
5968 "action_entry_const" : true
5969 }
5970 },
5971 {
5972 "name" : "tbl_act_22",
5973 "id" : 39,
5974 "key" : [],
5975 "match_type" : "exact",
5976 "type" : "simple",
5977 "max_size" : 1024,
5978 "with_counters" : false,
5979 "support_timeout" : false,
5980 "direct_meters" : null,
5981 "action_ids" : [61],
5982 "actions" : ["act_22"],
5983 "base_default_next" : "node_61",
5984 "next_tables" : {
5985 "act_22" : "node_61"
5986 },
5987 "default_entry" : {
5988 "action_id" : 61,
5989 "action_const" : true,
5990 "action_data" : [],
5991 "action_entry_const" : true
5992 }
5993 },
5994 {
5995 "name" : "tbl_act_23",
5996 "id" : 40,
5997 "key" : [],
5998 "match_type" : "exact",
5999 "type" : "simple",
6000 "max_size" : 1024,
6001 "with_counters" : false,
6002 "support_timeout" : false,
6003 "direct_meters" : null,
6004 "action_ids" : [62],
6005 "actions" : ["act_23"],
6006 "base_default_next" : null,
6007 "next_tables" : {
6008 "act_23" : null
6009 },
6010 "default_entry" : {
6011 "action_id" : 62,
Carmelo Cascone14cde402018-01-25 01:57:18 -08006012 "action_const" : true,
6013 "action_data" : [],
6014 "action_entry_const" : true
6015 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006016 }
6017 ],
6018 "action_profiles" : [
6019 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08006020 "name" : "FabricIngress.next.ecmp_selector",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006021 "id" : 0,
6022 "max_size" : 64,
6023 "selector" : {
6024 "algo" : "crc16",
6025 "input" : [
6026 {
6027 "type" : "field",
Yi Tseng3d3956d2018-01-31 17:28:05 -08006028 "value" : ["ipv4", "dst_addr"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006029 },
6030 {
6031 "type" : "field",
Yi Tseng3d3956d2018-01-31 17:28:05 -08006032 "value" : ["ipv4", "src_addr"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006033 },
6034 {
6035 "type" : "field",
6036 "value" : ["scalars", "fabric_metadata_t.ip_proto"]
6037 },
6038 {
6039 "type" : "field",
6040 "value" : ["scalars", "fabric_metadata_t.l4_src_port"]
6041 },
6042 {
6043 "type" : "field",
6044 "value" : ["scalars", "fabric_metadata_t.l4_dst_port"]
6045 }
6046 ]
6047 }
6048 }
6049 ],
6050 "conditionals" : [
6051 {
6052 "name" : "node_2",
6053 "id" : 0,
6054 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006055 "filename" : "include/control/packetio.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006056 "line" : 25,
6057 "column" : 12,
6058 "source_fragment" : "hdr.packet_out.isValid()"
6059 },
6060 "expression" : {
6061 "type" : "expression",
6062 "value" : {
6063 "op" : "d2b",
6064 "left" : null,
6065 "right" : {
6066 "type" : "field",
6067 "value" : ["packet_out", "$valid$"]
6068 }
6069 }
6070 },
6071 "true_next" : "tbl_act",
6072 "false_next" : "tbl_act_0"
6073 },
6074 {
6075 "name" : "node_5",
6076 "id" : 1,
6077 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006078 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02006079 "line" : 142,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006080 "column" : 12,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006081 "source_fragment" : "gtpu.isValid()"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006082 },
6083 "expression" : {
6084 "type" : "expression",
6085 "value" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006086 "op" : "d2b",
6087 "left" : null,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006088 "right" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006089 "type" : "field",
6090 "value" : ["gtpu", "$valid$"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006091 }
6092 }
6093 },
6094 "true_next" : "tbl_act_1",
Yi Tseng27b9bc02018-04-12 14:52:40 +08006095 "false_next" : "FabricIngress.spgw_ingress.ue_filter_table"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006096 },
6097 {
6098 "name" : "node_10",
6099 "id" : 2,
6100 "expression" : {
6101 "type" : "expression",
6102 "value" : {
6103 "op" : "d2b",
6104 "left" : null,
6105 "right" : {
6106 "type" : "field",
6107 "value" : ["scalars", "spgw_ingress_tmp_2"]
6108 }
6109 }
6110 },
6111 "true_next" : "tbl_act_4",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006112 "false_next" : "node_17"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006113 },
6114 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006115 "name" : "node_15",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006116 "id" : 3,
6117 "expression" : {
6118 "type" : "expression",
6119 "value" : {
6120 "op" : "d2b",
6121 "left" : null,
6122 "right" : {
6123 "type" : "field",
6124 "value" : ["scalars", "spgw_ingress_tmp_3"]
6125 }
6126 }
6127 },
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006128 "true_next" : "tbl_act_7",
6129 "false_next" : "node_17"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006130 },
6131 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006132 "name" : "node_17",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006133 "id" : 4,
6134 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006135 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02006136 "line" : 162,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006137 "column" : 12,
Esin Karaman971fb7f2017-12-28 13:44:52 +00006138 "source_fragment" : "spgw_meta.do_spgw == false"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006139 },
6140 "expression" : {
6141 "type" : "expression",
6142 "value" : {
Carmelo Cascone228092b2018-06-15 20:41:10 +02006143 "op" : "==",
6144 "left" : {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006145 "type" : "expression",
6146 "value" : {
6147 "op" : "d2b",
6148 "left" : null,
6149 "right" : {
6150 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08006151 "value" : ["userMetadata.spgw", "do_spgw"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006152 }
6153 }
Carmelo Cascone228092b2018-06-15 20:41:10 +02006154 },
6155 "right" : {
6156 "type" : "bool",
Esin Karaman971fb7f2017-12-28 13:44:52 +00006157 "value" : false
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006158 }
6159 }
6160 },
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006161 "true_next" : "tbl_act_8",
6162 "false_next" : "node_19"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006163 },
6164 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006165 "name" : "node_19",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006166 "id" : 5,
6167 "expression" : {
6168 "type" : "expression",
6169 "value" : {
6170 "op" : "not",
6171 "left" : null,
6172 "right" : {
6173 "type" : "expression",
6174 "value" : {
6175 "op" : "d2b",
6176 "left" : null,
6177 "right" : {
6178 "type" : "field",
6179 "value" : ["scalars", "spgw_ingress_hasReturned_0"]
6180 }
6181 }
6182 }
6183 }
6184 },
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006185 "true_next" : "node_20",
Yi Tseng27b9bc02018-04-12 14:52:40 +08006186 "false_next" : "FabricIngress.filtering.ingress_port_vlan"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006187 },
6188 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006189 "name" : "node_20",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006190 "id" : 6,
6191 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006192 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02006193 "line" : 167,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006194 "column" : 12,
6195 "source_fragment" : "spgw_meta.direction == DIR_UPLINK"
6196 },
6197 "expression" : {
6198 "type" : "expression",
6199 "value" : {
6200 "op" : "==",
6201 "left" : {
6202 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08006203 "value" : ["userMetadata.spgw", "direction"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006204 },
6205 "right" : {
6206 "type" : "hexstr",
6207 "value" : "0x00"
6208 }
6209 }
6210 },
6211 "true_next" : "tbl_spgw_ingress_gtpu_decap",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006212 "false_next" : "node_22"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006213 },
6214 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006215 "name" : "node_22",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006216 "id" : 7,
6217 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006218 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02006219 "line" : 184,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006220 "column" : 12,
6221 "source_fragment" : "spgw_meta.direction == DIR_DOWNLINK"
6222 },
6223 "expression" : {
6224 "type" : "expression",
6225 "value" : {
6226 "op" : "==",
6227 "left" : {
6228 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08006229 "value" : ["userMetadata.spgw", "direction"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006230 },
6231 "right" : {
6232 "type" : "hexstr",
6233 "value" : "0x01"
6234 }
6235 }
6236 },
Yi Tseng27b9bc02018-04-12 14:52:40 +08006237 "true_next" : "FabricIngress.spgw_ingress.dl_sess_lookup",
6238 "false_next" : "tbl_act_11"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006239 },
6240 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006241 "name" : "node_26",
6242 "id" : 8,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006243 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006244 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02006245 "line" : 185,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006246 "column" : 16,
6247 "source_fragment" : "!dl_sess_lookup.apply().hit"
6248 },
6249 "expression" : {
6250 "type" : "expression",
6251 "value" : {
6252 "op" : "not",
6253 "left" : null,
6254 "right" : {
6255 "type" : "expression",
6256 "value" : {
6257 "op" : "d2b",
6258 "left" : null,
6259 "right" : {
6260 "type" : "field",
6261 "value" : ["scalars", "spgw_ingress_tmp_4"]
6262 }
6263 }
6264 }
6265 }
6266 },
Carmelo Casconea5400af2018-07-17 22:11:54 +02006267 "true_next" : "tbl_drop_now",
Yi Tseng27b9bc02018-04-12 14:52:40 +08006268 "false_next" : "FabricIngress.spgw_ingress.ue_cdr_table"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006269 },
6270 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08006271 "name" : "node_32",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006272 "id" : 9,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006273 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006274 "filename" : "include/control/forwarding.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08006275 "line" : 222,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006276 "column" : 11,
6277 "source_fragment" : "fabric_metadata.fwd_type == FWD_BRIDGING"
6278 },
6279 "expression" : {
6280 "type" : "expression",
6281 "value" : {
6282 "op" : "==",
6283 "left" : {
6284 "type" : "field",
6285 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
6286 },
6287 "right" : {
6288 "type" : "hexstr",
6289 "value" : "0x00"
6290 }
6291 }
6292 },
Yi Tseng27b9bc02018-04-12 14:52:40 +08006293 "true_next" : "FabricIngress.forwarding.bridging",
6294 "false_next" : "node_34"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006295 },
6296 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08006297 "name" : "node_34",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006298 "id" : 10,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006299 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006300 "filename" : "include/control/forwarding.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08006301 "line" : 223,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006302 "column" : 17,
6303 "source_fragment" : "fabric_metadata.fwd_type == FWD_MPLS"
6304 },
6305 "expression" : {
6306 "type" : "expression",
6307 "value" : {
6308 "op" : "==",
6309 "left" : {
6310 "type" : "field",
6311 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
6312 },
6313 "right" : {
6314 "type" : "hexstr",
6315 "value" : "0x01"
6316 }
6317 }
6318 },
Yi Tseng27b9bc02018-04-12 14:52:40 +08006319 "true_next" : "FabricIngress.forwarding.mpls",
6320 "false_next" : "node_37"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006321 },
6322 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08006323 "name" : "node_37",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006324 "id" : 11,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006325 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006326 "filename" : "include/control/forwarding.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08006327 "line" : 238,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006328 "column" : 17,
6329 "source_fragment" : "fabric_metadata.fwd_type == FWD_IPV4_UNICAST"
6330 },
6331 "expression" : {
6332 "type" : "expression",
6333 "value" : {
6334 "op" : "==",
6335 "left" : {
6336 "type" : "field",
6337 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
6338 },
6339 "right" : {
6340 "type" : "hexstr",
6341 "value" : "0x02"
6342 }
6343 }
6344 },
Yi Tseng27b9bc02018-04-12 14:52:40 +08006345 "true_next" : "FabricIngress.forwarding.unicast_v4",
Yi Tseng27b9bc02018-04-12 14:52:40 +08006346 "false_next" : "FabricIngress.forwarding.acl"
6347 },
6348 {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02006349 "name" : "node_45",
Carmelo Casconea5400af2018-07-17 22:11:54 +02006350 "id" : 12,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006351 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006352 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08006353 "line" : 219,
Carmelo Casconea5400af2018-07-17 22:11:54 +02006354 "column" : 12,
6355 "source_fragment" : "!simple.apply().hit"
6356 },
6357 "expression" : {
6358 "type" : "expression",
6359 "value" : {
6360 "op" : "not",
6361 "left" : null,
6362 "right" : {
6363 "type" : "expression",
6364 "value" : {
6365 "op" : "d2b",
6366 "left" : null,
6367 "right" : {
6368 "type" : "field",
6369 "value" : ["scalars", "next_tmp_4"]
6370 }
6371 }
6372 }
6373 }
6374 },
6375 "true_next" : "FabricIngress.next.hashed",
6376 "false_next" : "node_55"
6377 },
6378 {
6379 "name" : "node_49",
6380 "id" : 13,
6381 "source_info" : {
6382 "filename" : "include/control/next.p4",
6383 "line" : 220,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006384 "column" : 16,
Carmelo Casconea5400af2018-07-17 22:11:54 +02006385 "source_fragment" : "!hashed.apply().hit"
6386 },
6387 "expression" : {
6388 "type" : "expression",
6389 "value" : {
6390 "op" : "not",
6391 "left" : null,
6392 "right" : {
6393 "type" : "expression",
6394 "value" : {
6395 "op" : "d2b",
6396 "left" : null,
6397 "right" : {
6398 "type" : "field",
6399 "value" : ["scalars", "next_tmp_3"]
6400 }
6401 }
6402 }
6403 }
6404 },
6405 "true_next" : "FabricIngress.next.multicast",
6406 "false_next" : "node_55"
6407 },
6408 {
6409 "name" : "node_53",
6410 "id" : 14,
6411 "source_info" : {
6412 "filename" : "include/control/next.p4",
6413 "line" : 221,
6414 "column" : 20,
6415 "source_fragment" : "!multicast.apply().hit"
6416 },
6417 "expression" : {
6418 "type" : "expression",
6419 "value" : {
6420 "op" : "not",
6421 "left" : null,
6422 "right" : {
6423 "type" : "expression",
6424 "value" : {
6425 "op" : "d2b",
6426 "left" : null,
6427 "right" : {
6428 "type" : "field",
6429 "value" : ["scalars", "next_tmp_2"]
6430 }
6431 }
6432 }
6433 }
6434 },
6435 "true_next" : "tbl_act_20",
6436 "false_next" : "node_55"
6437 },
6438 {
6439 "name" : "node_55",
6440 "id" : 15,
6441 "expression" : {
6442 "type" : "expression",
6443 "value" : {
6444 "op" : "not",
6445 "left" : null,
6446 "right" : {
6447 "type" : "expression",
6448 "value" : {
6449 "op" : "d2b",
6450 "left" : null,
6451 "right" : {
6452 "type" : "field",
6453 "value" : ["scalars", "next_hasReturned_0"]
6454 }
6455 }
6456 }
6457 }
6458 },
6459 "true_next" : "node_56",
6460 "false_next" : "node_59"
6461 },
6462 {
6463 "name" : "node_56",
6464 "id" : 16,
6465 "source_info" : {
6466 "filename" : "include/control/next.p4",
6467 "line" : 228,
6468 "column" : 12,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006469 "source_fragment" : "!hdr.mpls.isValid()"
6470 },
6471 "expression" : {
6472 "type" : "expression",
6473 "value" : {
6474 "op" : "not",
6475 "left" : null,
6476 "right" : {
6477 "type" : "expression",
6478 "value" : {
6479 "op" : "d2b",
6480 "left" : null,
6481 "right" : {
6482 "type" : "field",
6483 "value" : ["mpls", "$valid$"]
6484 }
6485 }
6486 }
6487 }
6488 },
Carmelo Casconea5400af2018-07-17 22:11:54 +02006489 "true_next" : "node_57",
6490 "false_next" : "node_59"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006491 },
6492 {
Carmelo Casconea5400af2018-07-17 22:11:54 +02006493 "name" : "node_57",
6494 "id" : 17,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006495 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006496 "filename" : "include/control/next.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02006497 "line" : 229,
6498 "column" : 15,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006499 "source_fragment" : "hdr.ipv4.isValid()"
6500 },
6501 "expression" : {
6502 "type" : "expression",
6503 "value" : {
6504 "op" : "d2b",
6505 "left" : null,
6506 "right" : {
6507 "type" : "field",
6508 "value" : ["ipv4", "$valid$"]
6509 }
6510 }
6511 },
Carmelo Casconea5400af2018-07-17 22:11:54 +02006512 "true_next" : "tbl_act_21",
6513 "false_next" : "node_59"
Yi Tseng27b9bc02018-04-12 14:52:40 +08006514 },
6515 {
Carmelo Casconea5400af2018-07-17 22:11:54 +02006516 "name" : "node_59",
6517 "id" : 18,
Yi Tseng27b9bc02018-04-12 14:52:40 +08006518 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006519 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006520 "line" : 27,
6521 "column" : 12,
6522 "source_fragment" : "standard_metadata.egress_spec < 511"
6523 },
6524 "expression" : {
6525 "type" : "expression",
6526 "value" : {
6527 "op" : "<",
6528 "left" : {
6529 "type" : "field",
6530 "value" : ["standard_metadata", "egress_spec"]
6531 },
6532 "right" : {
6533 "type" : "hexstr",
6534 "value" : "0x01ff"
6535 }
6536 }
6537 },
Carmelo Casconea5400af2018-07-17 22:11:54 +02006538 "true_next" : "tbl_act_22",
6539 "false_next" : "node_61"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006540 },
6541 {
Carmelo Casconea5400af2018-07-17 22:11:54 +02006542 "name" : "node_61",
6543 "id" : 19,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006544 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006545 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006546 "line" : 30,
6547 "column" : 12,
6548 "source_fragment" : "standard_metadata.ingress_port < 511"
6549 },
6550 "expression" : {
6551 "type" : "expression",
6552 "value" : {
6553 "op" : "<",
6554 "left" : {
6555 "type" : "field",
6556 "value" : ["standard_metadata", "ingress_port"]
6557 },
6558 "right" : {
6559 "type" : "hexstr",
6560 "value" : "0x01ff"
6561 }
6562 }
6563 },
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006564 "false_next" : null,
Carmelo Casconea5400af2018-07-17 22:11:54 +02006565 "true_next" : "tbl_act_23"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006566 }
6567 ]
6568 },
6569 {
6570 "name" : "egress",
6571 "id" : 1,
6572 "source_info" : {
6573 "filename" : "fabric.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006574 "line" : 61,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006575 "column" : 8,
6576 "source_fragment" : "FabricEgress"
6577 },
Carmelo Casconea5400af2018-07-17 22:11:54 +02006578 "init_table" : "node_65",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006579 "tables" : [
6580 {
Carmelo Casconea5400af2018-07-17 22:11:54 +02006581 "name" : "tbl_drop_now_0",
6582 "id" : 41,
6583 "key" : [],
6584 "match_type" : "exact",
6585 "type" : "simple",
6586 "max_size" : 1024,
6587 "with_counters" : false,
6588 "support_timeout" : false,
6589 "direct_meters" : null,
6590 "action_ids" : [64],
6591 "actions" : ["drop_now"],
6592 "base_default_next" : "FabricEgress.egress_next.egress_vlan",
6593 "next_tables" : {
6594 "drop_now" : "FabricEgress.egress_next.egress_vlan"
6595 },
6596 "default_entry" : {
6597 "action_id" : 64,
6598 "action_const" : true,
6599 "action_data" : [],
6600 "action_entry_const" : true
6601 }
6602 },
6603 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006604 "name" : "FabricEgress.egress_next.egress_vlan",
Carmelo Casconea5400af2018-07-17 22:11:54 +02006605 "id" : 42,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006606 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006607 "filename" : "include/control/next.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02006608 "line" : 258,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006609 "column" : 10,
6610 "source_fragment" : "egress_vlan"
6611 },
6612 "key" : [
6613 {
6614 "match_type" : "exact",
6615 "name" : "hdr.vlan_tag.vlan_id",
6616 "target" : ["vlan_tag", "vlan_id"],
6617 "mask" : null
6618 },
6619 {
6620 "match_type" : "exact",
6621 "name" : "standard_metadata.egress_port",
6622 "target" : ["standard_metadata", "egress_port"],
6623 "mask" : null
6624 }
6625 ],
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08006626 "match_type" : "exact",
6627 "type" : "simple",
6628 "max_size" : 1024,
Yi Tseng47eac892018-07-11 02:17:04 +08006629 "with_counters" : true,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08006630 "support_timeout" : false,
6631 "direct_meters" : null,
Carmelo Casconea5400af2018-07-17 22:11:54 +02006632 "action_ids" : [67, 63],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006633 "actions" : ["FabricEgress.egress_next.pop_vlan", "nop"],
Carmelo Casconea5400af2018-07-17 22:11:54 +02006634 "base_default_next" : "node_68",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08006635 "next_tables" : {
Carmelo Casconea5400af2018-07-17 22:11:54 +02006636 "FabricEgress.egress_next.pop_vlan" : "node_68",
6637 "nop" : "node_68"
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08006638 },
6639 "default_entry" : {
Carmelo Casconea5400af2018-07-17 22:11:54 +02006640 "action_id" : 63,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006641 "action_const" : false,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08006642 "action_data" : [],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006643 "action_entry_const" : false
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08006644 }
6645 },
6646 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006647 "name" : "tbl_pkt_io_egress_pop_vlan",
Carmelo Casconea5400af2018-07-17 22:11:54 +02006648 "id" : 43,
Carmelo Cascone6af4e172018-06-15 16:01:30 +02006649 "key" : [],
6650 "match_type" : "exact",
6651 "type" : "simple",
6652 "max_size" : 1024,
6653 "with_counters" : false,
6654 "support_timeout" : false,
6655 "direct_meters" : null,
Carmelo Casconea5400af2018-07-17 22:11:54 +02006656 "action_ids" : [66],
Esin Karaman971fb7f2017-12-28 13:44:52 +00006657 "actions" : ["FabricEgress.pkt_io_egress.pop_vlan"],
Carmelo Casconea5400af2018-07-17 22:11:54 +02006658 "base_default_next" : "tbl_act_24",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02006659 "next_tables" : {
Carmelo Casconea5400af2018-07-17 22:11:54 +02006660 "FabricEgress.pkt_io_egress.pop_vlan" : "tbl_act_24"
Carmelo Cascone6af4e172018-06-15 16:01:30 +02006661 },
6662 "default_entry" : {
Carmelo Casconea5400af2018-07-17 22:11:54 +02006663 "action_id" : 66,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08006664 "action_const" : true,
6665 "action_data" : [],
6666 "action_entry_const" : true
6667 }
6668 },
6669 {
Carmelo Casconea5400af2018-07-17 22:11:54 +02006670 "name" : "tbl_act_24",
6671 "id" : 44,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006672 "key" : [],
6673 "match_type" : "exact",
6674 "type" : "simple",
6675 "max_size" : 1024,
6676 "with_counters" : false,
6677 "support_timeout" : false,
6678 "direct_meters" : null,
Carmelo Casconea5400af2018-07-17 22:11:54 +02006679 "action_ids" : [68],
6680 "actions" : ["act_24"],
6681 "base_default_next" : "tbl_act_25",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006682 "next_tables" : {
Carmelo Casconea5400af2018-07-17 22:11:54 +02006683 "act_24" : "tbl_act_25"
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006684 },
6685 "default_entry" : {
Carmelo Casconea5400af2018-07-17 22:11:54 +02006686 "action_id" : 68,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006687 "action_const" : true,
6688 "action_data" : [],
6689 "action_entry_const" : true
6690 }
6691 },
6692 {
Carmelo Casconea5400af2018-07-17 22:11:54 +02006693 "name" : "tbl_act_25",
6694 "id" : 45,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006695 "key" : [],
6696 "match_type" : "exact",
6697 "type" : "simple",
6698 "max_size" : 1024,
6699 "with_counters" : false,
6700 "support_timeout" : false,
6701 "direct_meters" : null,
Carmelo Casconea5400af2018-07-17 22:11:54 +02006702 "action_ids" : [69],
6703 "actions" : ["act_25"],
6704 "base_default_next" : "node_73",
Esin Karaman971fb7f2017-12-28 13:44:52 +00006705 "next_tables" : {
Carmelo Casconea5400af2018-07-17 22:11:54 +02006706 "act_25" : "node_73"
Esin Karaman971fb7f2017-12-28 13:44:52 +00006707 },
6708 "default_entry" : {
Carmelo Casconea5400af2018-07-17 22:11:54 +02006709 "action_id" : 69,
Esin Karaman971fb7f2017-12-28 13:44:52 +00006710 "action_const" : true,
6711 "action_data" : [],
6712 "action_entry_const" : true
6713 }
6714 },
6715 {
6716 "name" : "tbl_spgw_egress_gtpu_encap",
Carmelo Casconea5400af2018-07-17 22:11:54 +02006717 "id" : 46,
Esin Karaman971fb7f2017-12-28 13:44:52 +00006718 "key" : [],
6719 "match_type" : "exact",
6720 "type" : "simple",
6721 "max_size" : 1024,
6722 "with_counters" : false,
6723 "support_timeout" : false,
6724 "direct_meters" : null,
Carmelo Casconea5400af2018-07-17 22:11:54 +02006725 "action_ids" : [65],
Yi Tseng27b9bc02018-04-12 14:52:40 +08006726 "actions" : ["FabricEgress.spgw_egress.gtpu_encap"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006727 "base_default_next" : null,
6728 "next_tables" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08006729 "FabricEgress.spgw_egress.gtpu_encap" : null
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006730 },
6731 "default_entry" : {
Carmelo Casconea5400af2018-07-17 22:11:54 +02006732 "action_id" : 65,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006733 "action_const" : true,
6734 "action_data" : [],
6735 "action_entry_const" : true
6736 }
6737 }
6738 ],
6739 "action_profiles" : [],
6740 "conditionals" : [
6741 {
Carmelo Casconea5400af2018-07-17 22:11:54 +02006742 "name" : "node_65",
6743 "id" : 20,
6744 "source_info" : {
6745 "filename" : "include/control/next.p4",
6746 "line" : 272,
6747 "column" : 12,
6748 "source_fragment" : "fabric_metadata.drop_if_egress_is_ingress == true ..."
6749 },
6750 "expression" : {
6751 "type" : "expression",
6752 "value" : {
6753 "op" : "and",
6754 "left" : {
6755 "type" : "expression",
6756 "value" : {
6757 "op" : "==",
6758 "left" : {
6759 "type" : "expression",
6760 "value" : {
6761 "op" : "d2b",
6762 "left" : null,
6763 "right" : {
6764 "type" : "field",
6765 "value" : ["scalars", "fabric_metadata_t.drop_if_egress_is_ingress"]
6766 }
6767 }
6768 },
6769 "right" : {
6770 "type" : "bool",
6771 "value" : true
6772 }
6773 }
6774 },
6775 "right" : {
6776 "type" : "expression",
6777 "value" : {
6778 "op" : "==",
6779 "left" : {
6780 "type" : "field",
6781 "value" : ["standard_metadata", "ingress_port"]
6782 },
6783 "right" : {
6784 "type" : "field",
6785 "value" : ["standard_metadata", "egress_port"]
6786 }
6787 }
6788 }
6789 }
6790 },
6791 "true_next" : "tbl_drop_now_0",
6792 "false_next" : "FabricEgress.egress_next.egress_vlan"
6793 },
6794 {
6795 "name" : "node_68",
6796 "id" : 21,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006797 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006798 "filename" : "include/control/packetio.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006799 "line" : 42,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006800 "column" : 12,
Carmelo Casconeb531b682018-01-30 17:55:56 -08006801 "source_fragment" : "standard_metadata.egress_port == 255"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006802 },
6803 "expression" : {
6804 "type" : "expression",
6805 "value" : {
6806 "op" : "==",
6807 "left" : {
6808 "type" : "field",
6809 "value" : ["standard_metadata", "egress_port"]
6810 },
6811 "right" : {
6812 "type" : "hexstr",
6813 "value" : "0x00ff"
6814 }
6815 }
6816 },
Carmelo Casconea5400af2018-07-17 22:11:54 +02006817 "true_next" : "node_69",
6818 "false_next" : "tbl_act_25"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006819 },
6820 {
Carmelo Casconea5400af2018-07-17 22:11:54 +02006821 "name" : "node_69",
6822 "id" : 22,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006823 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006824 "filename" : "include/control/packetio.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006825 "line" : 43,
6826 "column" : 16,
Carmelo Cascone228092b2018-06-15 20:41:10 +02006827 "source_fragment" : "hdr.vlan_tag.isValid() && fabric_metadata.pop_vlan_when_packet_in == true"
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006828 },
6829 "expression" : {
6830 "type" : "expression",
6831 "value" : {
6832 "op" : "and",
6833 "left" : {
6834 "type" : "expression",
6835 "value" : {
6836 "op" : "d2b",
6837 "left" : null,
6838 "right" : {
6839 "type" : "field",
6840 "value" : ["vlan_tag", "$valid$"]
6841 }
6842 }
6843 },
6844 "right" : {
6845 "type" : "expression",
6846 "value" : {
Carmelo Cascone228092b2018-06-15 20:41:10 +02006847 "op" : "==",
6848 "left" : {
6849 "type" : "expression",
6850 "value" : {
6851 "op" : "d2b",
6852 "left" : null,
6853 "right" : {
6854 "type" : "field",
6855 "value" : ["scalars", "fabric_metadata_t.pop_vlan_when_packet_in"]
6856 }
6857 }
6858 },
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006859 "right" : {
Carmelo Cascone228092b2018-06-15 20:41:10 +02006860 "type" : "bool",
6861 "value" : true
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006862 }
6863 }
6864 }
6865 }
6866 },
6867 "true_next" : "tbl_pkt_io_egress_pop_vlan",
Carmelo Casconea5400af2018-07-17 22:11:54 +02006868 "false_next" : "tbl_act_24"
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006869 },
6870 {
Carmelo Casconea5400af2018-07-17 22:11:54 +02006871 "name" : "node_73",
6872 "id" : 23,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006873 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006874 "filename" : "include/spgw.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02006875 "line" : 244,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006876 "column" : 12,
Carmelo Cascone228092b2018-06-15 20:41:10 +02006877 "source_fragment" : "spgw_meta.do_spgw == true && spgw_meta.direction == DIR_DOWNLINK"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006878 },
6879 "expression" : {
6880 "type" : "expression",
6881 "value" : {
6882 "op" : "and",
6883 "left" : {
6884 "type" : "expression",
6885 "value" : {
Carmelo Cascone228092b2018-06-15 20:41:10 +02006886 "op" : "==",
6887 "left" : {
6888 "type" : "expression",
6889 "value" : {
6890 "op" : "d2b",
6891 "left" : null,
6892 "right" : {
6893 "type" : "field",
6894 "value" : ["userMetadata.spgw", "do_spgw"]
6895 }
6896 }
6897 },
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006898 "right" : {
Carmelo Cascone228092b2018-06-15 20:41:10 +02006899 "type" : "bool",
6900 "value" : true
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006901 }
6902 }
6903 },
6904 "right" : {
6905 "type" : "expression",
6906 "value" : {
6907 "op" : "==",
6908 "left" : {
6909 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08006910 "value" : ["userMetadata.spgw", "direction"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006911 },
6912 "right" : {
6913 "type" : "hexstr",
6914 "value" : "0x01"
6915 }
6916 }
6917 }
6918 }
6919 },
6920 "false_next" : null,
6921 "true_next" : "tbl_spgw_egress_gtpu_encap"
6922 }
6923 ]
6924 }
6925 ],
6926 "checksums" : [
6927 {
6928 "name" : "cksum",
6929 "id" : 0,
6930 "target" : ["ipv4", "hdr_checksum"],
6931 "type" : "generic",
6932 "calculation" : "calc",
6933 "if_cond" : {
6934 "type" : "expression",
6935 "value" : {
6936 "op" : "d2b",
6937 "left" : null,
6938 "right" : {
6939 "type" : "field",
6940 "value" : ["ipv4", "$valid$"]
6941 }
6942 }
6943 }
6944 },
6945 {
6946 "name" : "cksum_0",
6947 "id" : 1,
Carmelo Cascone6af4e172018-06-15 16:01:30 +02006948 "target" : ["gtpu_ipv4", "hdr_checksum"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006949 "type" : "generic",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006950 "calculation" : "calc_0",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006951 "if_cond" : {
6952 "type" : "expression",
6953 "value" : {
6954 "op" : "d2b",
6955 "left" : null,
6956 "right" : {
6957 "type" : "field",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02006958 "value" : ["gtpu_ipv4", "$valid$"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006959 }
6960 }
6961 }
6962 },
6963 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006964 "name" : "cksum_1",
6965 "id" : 2,
Carmelo Cascone6af4e172018-06-15 16:01:30 +02006966 "target" : ["ipv4", "hdr_checksum"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006967 "type" : "generic",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006968 "calculation" : "calc_1",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006969 "if_cond" : {
6970 "type" : "expression",
6971 "value" : {
6972 "op" : "d2b",
6973 "left" : null,
6974 "right" : {
6975 "type" : "field",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02006976 "value" : ["ipv4", "$valid$"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006977 }
6978 }
6979 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006980 }
6981 ],
6982 "force_arith" : [],
6983 "extern_instances" : [],
6984 "field_aliases" : [
6985 [
6986 "queueing_metadata.enq_timestamp",
6987 ["standard_metadata", "enq_timestamp"]
6988 ],
6989 [
6990 "queueing_metadata.enq_qdepth",
6991 ["standard_metadata", "enq_qdepth"]
6992 ],
6993 [
6994 "queueing_metadata.deq_timedelta",
6995 ["standard_metadata", "deq_timedelta"]
6996 ],
6997 [
6998 "queueing_metadata.deq_qdepth",
6999 ["standard_metadata", "deq_qdepth"]
7000 ],
7001 [
7002 "intrinsic_metadata.ingress_global_timestamp",
7003 ["standard_metadata", "ingress_global_timestamp"]
7004 ],
7005 [
Yi Tseng27b9bc02018-04-12 14:52:40 +08007006 "intrinsic_metadata.egress_global_timestamp",
7007 ["standard_metadata", "egress_global_timestamp"]
7008 ],
7009 [
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007010 "intrinsic_metadata.lf_field_list",
7011 ["standard_metadata", "lf_field_list"]
7012 ],
7013 [
7014 "intrinsic_metadata.mcast_grp",
7015 ["standard_metadata", "mcast_grp"]
7016 ],
7017 [
7018 "intrinsic_metadata.resubmit_flag",
7019 ["standard_metadata", "resubmit_flag"]
7020 ],
7021 [
7022 "intrinsic_metadata.egress_rid",
7023 ["standard_metadata", "egress_rid"]
Yi Tseng27b9bc02018-04-12 14:52:40 +08007024 ],
7025 [
7026 "intrinsic_metadata.recirculate_flag",
7027 ["standard_metadata", "recirculate_flag"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007028 ]
Carmelo Cascone6af4e172018-06-15 16:01:30 +02007029 ],
7030 "program" : "fabric.p4",
7031 "__meta__" : {
7032 "version" : [2, 18],
7033 "compiler" : "https://github.com/p4lang/p4c"
7034 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007035}