blob: 285ac8c1a8cb073612ef8c34a7585f0eeb7ea7eb [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],
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07008 ["tmp_0", 8, false],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08009 ["tmp_1", 32, false],
Carmelo Cascone9b0171b2018-08-14 01:43:57 -070010 ["tmp_2", 32, false],
11 ["spgw_ingress_tmp_1", 1, false],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -080012 ["spgw_ingress_tmp_2", 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 Cascone9b0171b2018-08-14 01:43:57 -070016 ["spgw_normalizer_hasReturned_0", 1, false],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -080017 ["spgw_ingress_hasReturned_0", 1, false],
Carmelo Casconea5400af2018-07-17 22:11:54 +020018 ["next_hasReturned_0", 1, false],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -080019 ["fabric_metadata_t.fwd_type", 3, false],
20 ["fabric_metadata_t.next_id", 32, false],
Yi Tseng20f9e7b2018-05-24 23:27:39 +080021 ["fabric_metadata_t.pop_vlan_when_packet_in", 1, false],
Carmelo Cascone1e8843f2018-07-19 19:01:12 +020022 ["fabric_metadata_t.is_multicast", 1, false],
23 ["fabric_metadata_t.clone_to_cpu", 1, false],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -080024 ["fabric_metadata_t.ip_proto", 8, false],
25 ["fabric_metadata_t.l4_src_port", 16, false],
26 ["fabric_metadata_t.l4_dst_port", 16, false],
Carmelo Cascone1e8843f2018-07-19 19:01:12 +020027 ["_padding_1", 6, false]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -080028 ]
29 },
30 {
Carmelo Cascone6af4e172018-06-15 16:01:30 +020031 "name" : "standard_metadata",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -080032 "id" : 1,
33 "fields" : [
Carmelo Cascone6af4e172018-06-15 16:01:30 +020034 ["ingress_port", 9, false],
35 ["egress_spec", 9, false],
36 ["egress_port", 9, false],
37 ["clone_spec", 32, false],
38 ["instance_type", 32, false],
39 ["drop", 1, false],
40 ["recirculate_port", 16, false],
41 ["packet_length", 32, false],
42 ["enq_timestamp", 32, false],
43 ["enq_qdepth", 19, false],
44 ["deq_timedelta", 32, false],
45 ["deq_qdepth", 19, false],
46 ["ingress_global_timestamp", 48, false],
47 ["egress_global_timestamp", 48, false],
48 ["lf_field_list", 32, false],
49 ["mcast_grp", 16, false],
50 ["resubmit_flag", 32, false],
51 ["egress_rid", 16, false],
52 ["checksum_error", 1, false],
53 ["recirculate_flag", 32, false],
54 ["_padding", 5, false]
55 ]
56 },
57 {
58 "name" : "ethernet_t",
59 "id" : 2,
60 "fields" : [
Carmelo Casconeb81f4be2018-01-16 23:24:01 -080061 ["dst_addr", 48, false],
62 ["src_addr", 48, false],
63 ["ether_type", 16, false]
64 ]
65 },
66 {
67 "name" : "vlan_tag_t",
Carmelo Cascone6af4e172018-06-15 16:01:30 +020068 "id" : 3,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -080069 "fields" : [
70 ["pri", 3, false],
71 ["cfi", 1, false],
72 ["vlan_id", 12, false],
73 ["ether_type", 16, false]
74 ]
75 },
76 {
77 "name" : "mpls_t",
Carmelo Cascone6af4e172018-06-15 16:01:30 +020078 "id" : 4,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -080079 "fields" : [
80 ["label", 20, false],
81 ["tc", 3, false],
82 ["bos", 1, false],
83 ["ttl", 8, false]
84 ]
85 },
86 {
87 "name" : "ipv4_t",
Carmelo Cascone6af4e172018-06-15 16:01:30 +020088 "id" : 5,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -080089 "fields" : [
90 ["version", 4, false],
91 ["ihl", 4, false],
Jonghwan Hyuned478dc2018-08-06 15:35:18 +090092 ["dscp", 6, false],
93 ["ecn", 2, false],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -080094 ["total_len", 16, false],
95 ["identification", 16, false],
96 ["flags", 3, false],
97 ["frag_offset", 13, false],
98 ["ttl", 8, false],
99 ["protocol", 8, false],
100 ["hdr_checksum", 16, false],
101 ["src_addr", 32, false],
102 ["dst_addr", 32, false]
103 ]
104 },
105 {
106 "name" : "udp_t",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200107 "id" : 6,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800108 "fields" : [
109 ["src_port", 16, false],
110 ["dst_port", 16, false],
111 ["len", 16, false],
112 ["checksum", 16, false]
113 ]
114 },
115 {
116 "name" : "gtpu_t",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200117 "id" : 7,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800118 "fields" : [
119 ["version", 3, false],
120 ["pt", 1, false],
121 ["spare", 1, false],
122 ["ex_flag", 1, false],
123 ["seq_flag", 1, false],
124 ["npdu_flag", 1, false],
125 ["msgtype", 8, false],
126 ["msglen", 16, false],
127 ["teid", 32, false]
128 ]
129 },
130 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800131 "name" : "arp_t",
132 "id" : 8,
133 "fields" : [
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800134 ["hw_type", 16, false],
135 ["proto_type", 16, false],
136 ["hw_addr_len", 8, false],
137 ["proto_addr_len", 8, false],
138 ["opcode", 16, false]
139 ]
140 },
141 {
142 "name" : "tcp_t",
Yi Tseng27b9bc02018-04-12 14:52:40 +0800143 "id" : 9,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800144 "fields" : [
145 ["src_port", 16, false],
146 ["dst_port", 16, false],
147 ["seq_no", 32, false],
148 ["ack_no", 32, false],
149 ["data_offset", 4, false],
150 ["res", 3, false],
151 ["ecn", 3, false],
152 ["ctrl", 6, false],
153 ["window", 16, false],
154 ["checksum", 16, false],
155 ["urgent_ptr", 16, false]
156 ]
157 },
158 {
159 "name" : "icmp_t",
Yi Tseng27b9bc02018-04-12 14:52:40 +0800160 "id" : 10,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800161 "fields" : [
162 ["icmp_type", 8, false],
163 ["icmp_code", 8, false],
164 ["checksum", 16, false],
165 ["identifier", 16, false],
166 ["sequence_number", 16, false],
167 ["timestamp", 64, false]
168 ]
169 },
170 {
171 "name" : "packet_out_header_t",
Yi Tseng27b9bc02018-04-12 14:52:40 +0800172 "id" : 11,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800173 "fields" : [
174 ["egress_port", 9, false],
175 ["_pad", 7, false]
176 ]
177 },
178 {
179 "name" : "packet_in_header_t",
Yi Tseng27b9bc02018-04-12 14:52:40 +0800180 "id" : 12,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800181 "fields" : [
182 ["ingress_port", 9, false],
183 ["_pad", 7, false]
184 ]
185 },
186 {
187 "name" : "spgw_meta_t",
Yi Tseng27b9bc02018-04-12 14:52:40 +0800188 "id" : 13,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800189 "fields" : [
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700190 ["direction", 2, false],
Yi Tseng27b9bc02018-04-12 14:52:40 +0800191 ["ipv4_len", 16, false],
Carmelo Casconeb757dbc2018-01-25 17:53:17 -0800192 ["teid", 32, false],
193 ["s1u_enb_addr", 32, false],
194 ["s1u_sgw_addr", 32, false],
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200195 ["_padding_0", 6, false]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800196 ]
197 }
198 ],
199 "headers" : [
200 {
201 "name" : "scalars",
202 "id" : 0,
203 "header_type" : "scalars_0",
204 "metadata" : true,
205 "pi_omit" : true
206 },
207 {
208 "name" : "standard_metadata",
209 "id" : 1,
210 "header_type" : "standard_metadata",
211 "metadata" : true,
212 "pi_omit" : true
213 },
214 {
215 "name" : "ethernet",
216 "id" : 2,
217 "header_type" : "ethernet_t",
218 "metadata" : false,
219 "pi_omit" : true
220 },
221 {
222 "name" : "vlan_tag",
223 "id" : 3,
224 "header_type" : "vlan_tag_t",
225 "metadata" : false,
226 "pi_omit" : true
227 },
228 {
229 "name" : "mpls",
230 "id" : 4,
231 "header_type" : "mpls_t",
232 "metadata" : false,
233 "pi_omit" : true
234 },
235 {
236 "name" : "gtpu_ipv4",
237 "id" : 5,
238 "header_type" : "ipv4_t",
239 "metadata" : false,
240 "pi_omit" : true
241 },
242 {
243 "name" : "gtpu_udp",
244 "id" : 6,
245 "header_type" : "udp_t",
246 "metadata" : false,
247 "pi_omit" : true
248 },
249 {
250 "name" : "gtpu",
251 "id" : 7,
252 "header_type" : "gtpu_t",
253 "metadata" : false,
254 "pi_omit" : true
255 },
256 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700257 "name" : "inner_ipv4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800258 "id" : 8,
259 "header_type" : "ipv4_t",
260 "metadata" : false,
261 "pi_omit" : true
262 },
263 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700264 "name" : "inner_udp",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200265 "id" : 9,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700266 "header_type" : "udp_t",
267 "metadata" : false,
268 "pi_omit" : true
269 },
270 {
271 "name" : "ipv4",
272 "id" : 10,
273 "header_type" : "ipv4_t",
274 "metadata" : false,
275 "pi_omit" : true
276 },
277 {
278 "name" : "arp",
279 "id" : 11,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800280 "header_type" : "arp_t",
281 "metadata" : false,
282 "pi_omit" : true
283 },
284 {
285 "name" : "tcp",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700286 "id" : 12,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800287 "header_type" : "tcp_t",
288 "metadata" : false,
289 "pi_omit" : true
290 },
291 {
292 "name" : "udp",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700293 "id" : 13,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800294 "header_type" : "udp_t",
295 "metadata" : false,
296 "pi_omit" : true
297 },
298 {
299 "name" : "icmp",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700300 "id" : 14,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800301 "header_type" : "icmp_t",
302 "metadata" : false,
303 "pi_omit" : true
304 },
305 {
306 "name" : "packet_out",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700307 "id" : 15,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800308 "header_type" : "packet_out_header_t",
309 "metadata" : false,
310 "pi_omit" : true
311 },
312 {
313 "name" : "packet_in",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700314 "id" : 16,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800315 "header_type" : "packet_in_header_t",
316 "metadata" : false,
317 "pi_omit" : true
318 },
319 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800320 "name" : "userMetadata.spgw",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700321 "id" : 17,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800322 "header_type" : "spgw_meta_t",
323 "metadata" : true,
324 "pi_omit" : true
325 }
326 ],
327 "header_stacks" : [],
328 "header_union_types" : [],
329 "header_unions" : [],
330 "header_union_stacks" : [],
331 "field_lists" : [],
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200332 "errors" : [],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800333 "enums" : [],
334 "parsers" : [
335 {
336 "name" : "parser",
337 "id" : 0,
338 "init_state" : "start",
339 "parse_states" : [
340 {
341 "name" : "start",
342 "id" : 0,
343 "parser_ops" : [],
344 "transitions" : [
345 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800346 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800347 "value" : "0x00ff",
348 "mask" : null,
349 "next_state" : "parse_packet_out"
350 },
351 {
352 "value" : "default",
353 "mask" : null,
354 "next_state" : "parse_ethernet"
355 }
356 ],
357 "transition_key" : [
358 {
359 "type" : "field",
360 "value" : ["standard_metadata", "ingress_port"]
361 }
362 ]
363 },
364 {
365 "name" : "parse_packet_out",
366 "id" : 1,
367 "parser_ops" : [
368 {
369 "parameters" : [
370 {
371 "type" : "regular",
372 "value" : "packet_out"
373 }
374 ],
375 "op" : "extract"
376 }
377 ],
378 "transitions" : [
379 {
380 "value" : "default",
381 "mask" : null,
382 "next_state" : "parse_ethernet"
383 }
384 ],
385 "transition_key" : []
386 },
387 {
388 "name" : "parse_ethernet",
389 "id" : 2,
390 "parser_ops" : [
391 {
392 "parameters" : [
393 {
394 "type" : "regular",
395 "value" : "ethernet"
396 }
397 ],
398 "op" : "extract"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800399 }
400 ],
401 "transitions" : [
402 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800403 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800404 "value" : "0x8100",
405 "mask" : null,
406 "next_state" : "parse_vlan_tag"
407 },
408 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800409 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800410 "value" : "0x8847",
411 "mask" : null,
412 "next_state" : "parse_mpls"
413 },
414 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800415 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800416 "value" : "0x0806",
417 "mask" : null,
418 "next_state" : "parse_arp"
419 },
420 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800421 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800422 "value" : "0x0800",
423 "mask" : null,
424 "next_state" : "parse_ipv4"
425 },
426 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800427 "value" : "default",
428 "mask" : null,
429 "next_state" : null
430 }
431 ],
432 "transition_key" : [
433 {
434 "type" : "field",
435 "value" : ["ethernet", "ether_type"]
436 }
437 ]
438 },
439 {
440 "name" : "parse_vlan_tag",
441 "id" : 3,
442 "parser_ops" : [
443 {
444 "parameters" : [
445 {
446 "type" : "regular",
447 "value" : "vlan_tag"
448 }
449 ],
450 "op" : "extract"
451 }
452 ],
453 "transitions" : [
454 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800455 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800456 "value" : "0x0806",
457 "mask" : null,
458 "next_state" : "parse_arp"
459 },
460 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800461 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800462 "value" : "0x0800",
463 "mask" : null,
464 "next_state" : "parse_ipv4"
465 },
466 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800467 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800468 "value" : "0x8847",
469 "mask" : null,
470 "next_state" : "parse_mpls"
471 },
472 {
473 "value" : "default",
474 "mask" : null,
475 "next_state" : null
476 }
477 ],
478 "transition_key" : [
479 {
480 "type" : "field",
481 "value" : ["vlan_tag", "ether_type"]
482 }
483 ]
484 },
485 {
486 "name" : "parse_mpls",
487 "id" : 4,
488 "parser_ops" : [
489 {
490 "parameters" : [
491 {
492 "type" : "regular",
493 "value" : "mpls"
494 }
495 ],
496 "op" : "extract"
497 },
498 {
499 "parameters" : [
500 {
501 "type" : "field",
502 "value" : ["scalars", "tmp"]
503 },
504 {
505 "type" : "lookahead",
506 "value" : [0, 4]
507 }
508 ],
509 "op" : "set"
510 }
511 ],
512 "transitions" : [
513 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800514 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800515 "value" : "0x04",
516 "mask" : null,
517 "next_state" : "parse_ipv4"
518 },
519 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800520 "value" : "default",
521 "mask" : null,
522 "next_state" : "parse_ethernet"
523 }
524 ],
525 "transition_key" : [
526 {
527 "type" : "field",
528 "value" : ["scalars", "tmp"]
529 }
530 ]
531 },
532 {
533 "name" : "parse_ipv4",
534 "id" : 5,
535 "parser_ops" : [
536 {
537 "parameters" : [
538 {
539 "type" : "regular",
540 "value" : "ipv4"
541 }
542 ],
543 "op" : "extract"
544 },
545 {
546 "parameters" : [
547 {
548 "type" : "field",
549 "value" : ["scalars", "fabric_metadata_t.ip_proto"]
550 },
551 {
552 "type" : "field",
553 "value" : ["ipv4", "protocol"]
554 }
555 ],
556 "op" : "set"
557 }
558 ],
559 "transitions" : [
560 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800561 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800562 "value" : "0x06",
563 "mask" : null,
564 "next_state" : "parse_tcp"
565 },
566 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800567 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800568 "value" : "0x11",
569 "mask" : null,
570 "next_state" : "parse_udp"
571 },
572 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800573 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800574 "value" : "0x01",
575 "mask" : null,
576 "next_state" : "parse_icmp"
577 },
578 {
579 "value" : "default",
580 "mask" : null,
581 "next_state" : null
582 }
583 ],
584 "transition_key" : [
585 {
586 "type" : "field",
587 "value" : ["ipv4", "protocol"]
588 }
589 ]
590 },
591 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800592 "name" : "parse_arp",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200593 "id" : 6,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800594 "parser_ops" : [
595 {
596 "parameters" : [
597 {
598 "type" : "regular",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800599 "value" : "arp"
600 }
601 ],
602 "op" : "extract"
603 }
604 ],
605 "transitions" : [
606 {
607 "value" : "default",
608 "mask" : null,
609 "next_state" : null
610 }
611 ],
612 "transition_key" : []
613 },
614 {
615 "name" : "parse_tcp",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200616 "id" : 7,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800617 "parser_ops" : [
618 {
619 "parameters" : [
620 {
621 "type" : "regular",
622 "value" : "tcp"
623 }
624 ],
625 "op" : "extract"
626 },
627 {
628 "parameters" : [
629 {
630 "type" : "field",
631 "value" : ["scalars", "fabric_metadata_t.l4_src_port"]
632 },
633 {
634 "type" : "field",
635 "value" : ["tcp", "src_port"]
636 }
637 ],
638 "op" : "set"
639 },
640 {
641 "parameters" : [
642 {
643 "type" : "field",
644 "value" : ["scalars", "fabric_metadata_t.l4_dst_port"]
645 },
646 {
647 "type" : "field",
648 "value" : ["tcp", "dst_port"]
649 }
650 ],
651 "op" : "set"
652 }
653 ],
654 "transitions" : [
655 {
656 "value" : "default",
657 "mask" : null,
658 "next_state" : null
659 }
660 ],
661 "transition_key" : []
662 },
663 {
664 "name" : "parse_udp",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200665 "id" : 8,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800666 "parser_ops" : [
667 {
668 "parameters" : [
669 {
670 "type" : "regular",
671 "value" : "udp"
672 }
673 ],
674 "op" : "extract"
675 },
676 {
677 "parameters" : [
678 {
679 "type" : "field",
680 "value" : ["scalars", "fabric_metadata_t.l4_src_port"]
681 },
682 {
683 "type" : "field",
684 "value" : ["udp", "src_port"]
685 }
686 ],
687 "op" : "set"
688 },
689 {
690 "parameters" : [
691 {
692 "type" : "field",
693 "value" : ["scalars", "fabric_metadata_t.l4_dst_port"]
694 },
695 {
696 "type" : "field",
697 "value" : ["udp", "dst_port"]
698 }
699 ],
700 "op" : "set"
701 }
702 ],
703 "transitions" : [
704 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800705 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800706 "value" : "0x0868",
707 "mask" : null,
708 "next_state" : "parse_gtpu"
709 },
710 {
711 "value" : "default",
712 "mask" : null,
713 "next_state" : null
714 }
715 ],
716 "transition_key" : [
717 {
718 "type" : "field",
719 "value" : ["udp", "dst_port"]
720 }
721 ]
722 },
723 {
724 "name" : "parse_icmp",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200725 "id" : 9,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800726 "parser_ops" : [
727 {
728 "parameters" : [
729 {
730 "type" : "regular",
731 "value" : "icmp"
732 }
733 ],
734 "op" : "extract"
735 }
736 ],
737 "transitions" : [
738 {
739 "value" : "default",
740 "mask" : null,
741 "next_state" : null
742 }
743 ],
744 "transition_key" : []
745 },
746 {
747 "name" : "parse_gtpu",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200748 "id" : 10,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800749 "parser_ops" : [
750 {
751 "parameters" : [
752 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700753 "type" : "field",
754 "value" : ["scalars", "tmp_0"]
755 },
756 {
757 "type" : "expression",
758 "value" : {
759 "type" : "expression",
760 "value" : {
761 "op" : "&",
762 "left" : {
763 "type" : "expression",
764 "value" : {
765 "op" : "&",
766 "left" : {
767 "type" : "expression",
768 "value" : {
769 "op" : ">>",
770 "left" : {
771 "type" : "field",
772 "value" : ["ipv4", "dst_addr"]
773 },
774 "right" : {
775 "type" : "hexstr",
776 "value" : "0x18"
777 }
778 }
779 },
780 "right" : {
781 "type" : "hexstr",
782 "value" : "0xffffffff"
783 }
784 }
785 },
786 "right" : {
787 "type" : "hexstr",
788 "value" : "0xff"
789 }
790 }
791 }
792 }
793 ],
794 "op" : "set"
795 }
796 ],
797 "transitions" : [
798 {
799 "type" : "hexstr",
800 "value" : "0x8c",
801 "mask" : null,
802 "next_state" : "do_parse_gtpu"
803 },
804 {
805 "value" : "default",
806 "mask" : null,
807 "next_state" : null
808 }
809 ],
810 "transition_key" : [
811 {
812 "type" : "field",
813 "value" : ["scalars", "tmp_0"]
814 }
815 ]
816 },
817 {
818 "name" : "do_parse_gtpu",
819 "id" : 11,
820 "parser_ops" : [
821 {
822 "parameters" : [
823 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800824 "type" : "regular",
825 "value" : "gtpu"
826 }
827 ],
828 "op" : "extract"
829 },
830 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800831 "parameters" : [
832 {
833 "type" : "regular",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700834 "value" : "inner_ipv4"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800835 }
836 ],
837 "op" : "extract"
838 }
839 ],
840 "transitions" : [
841 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800842 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800843 "value" : "0x06",
844 "mask" : null,
845 "next_state" : "parse_tcp"
846 },
847 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800848 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800849 "value" : "0x11",
850 "mask" : null,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700851 "next_state" : "parse_inner_udp"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800852 },
853 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800854 "type" : "hexstr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800855 "value" : "0x01",
856 "mask" : null,
857 "next_state" : "parse_icmp"
858 },
859 {
860 "value" : "default",
861 "mask" : null,
862 "next_state" : null
863 }
864 ],
865 "transition_key" : [
866 {
867 "type" : "field",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700868 "value" : ["inner_ipv4", "protocol"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800869 }
870 ]
871 },
872 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700873 "name" : "parse_inner_udp",
874 "id" : 12,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800875 "parser_ops" : [
876 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800877 "parameters" : [
878 {
879 "type" : "regular",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700880 "value" : "inner_udp"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800881 }
882 ],
883 "op" : "extract"
884 },
885 {
886 "parameters" : [
887 {
888 "type" : "field",
889 "value" : ["scalars", "fabric_metadata_t.l4_src_port"]
890 },
891 {
892 "type" : "field",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700893 "value" : ["inner_udp", "src_port"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800894 }
895 ],
896 "op" : "set"
897 },
898 {
899 "parameters" : [
900 {
901 "type" : "field",
902 "value" : ["scalars", "fabric_metadata_t.l4_dst_port"]
903 },
904 {
905 "type" : "field",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700906 "value" : ["inner_udp", "dst_port"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800907 }
908 ],
909 "op" : "set"
910 }
911 ],
912 "transitions" : [
913 {
914 "value" : "default",
915 "mask" : null,
916 "next_state" : null
917 }
918 ],
919 "transition_key" : []
920 }
921 ]
922 }
923 ],
Yi Tseng27b9bc02018-04-12 14:52:40 +0800924 "parse_vsets" : [],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800925 "deparsers" : [
926 {
927 "name" : "deparser",
928 "id" : 0,
929 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +0200930 "filename" : "include/parser.p4",
Charles Chancf696e52018-08-16 16:25:13 -0700931 "line" : 223,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800932 "column" : 8,
933 "source_fragment" : "FabricDeparser"
934 },
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200935 "order" : ["packet_in", "ethernet", "vlan_tag", "mpls", "arp", "gtpu_ipv4", "gtpu_udp", "gtpu", "ipv4", "tcp", "udp", "icmp"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800936 }
937 ],
938 "meter_arrays" : [],
939 "counter_arrays" : [
940 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800941 "name" : "FabricIngress.spgw_ingress.ue_counter",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800942 "id" : 0,
943 "is_direct" : true,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -0700944 "binding" : "FabricIngress.spgw_ingress.dl_sess_lookup"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800945 },
946 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800947 "name" : "FabricIngress.filtering.ingress_port_vlan_counter",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800948 "id" : 1,
949 "is_direct" : true,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800950 "binding" : "FabricIngress.filtering.ingress_port_vlan"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800951 },
952 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800953 "name" : "FabricIngress.filtering.fwd_classifier_counter",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800954 "id" : 2,
955 "is_direct" : true,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800956 "binding" : "FabricIngress.filtering.fwd_classifier"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800957 },
958 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800959 "name" : "FabricIngress.forwarding.bridging_counter",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800960 "id" : 3,
961 "is_direct" : true,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800962 "binding" : "FabricIngress.forwarding.bridging"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800963 },
964 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800965 "name" : "FabricIngress.forwarding.mpls_counter",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800966 "id" : 4,
967 "is_direct" : true,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800968 "binding" : "FabricIngress.forwarding.mpls"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800969 },
970 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800971 "name" : "FabricIngress.forwarding.unicast_v4_counter",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800972 "id" : 5,
973 "is_direct" : true,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800974 "binding" : "FabricIngress.forwarding.unicast_v4"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800975 },
976 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800977 "name" : "FabricIngress.forwarding.acl_counter",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -0800978 "id" : 6,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800979 "is_direct" : true,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800980 "binding" : "FabricIngress.forwarding.acl"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -0800981 },
982 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +0800983 "name" : "FabricIngress.next.vlan_meta_counter",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200984 "id" : 7,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800985 "is_direct" : true,
Yi Tseng20f9e7b2018-05-24 23:27:39 +0800986 "binding" : "FabricIngress.next.vlan_meta"
987 },
988 {
989 "name" : "FabricIngress.next.simple_counter",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200990 "id" : 8,
Yi Tseng20f9e7b2018-05-24 23:27:39 +0800991 "is_direct" : true,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800992 "binding" : "FabricIngress.next.simple"
993 },
994 {
995 "name" : "FabricIngress.next.hashed_counter",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200996 "id" : 9,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800997 "is_direct" : true,
998 "binding" : "FabricIngress.next.hashed"
999 },
1000 {
Esin Karaman971fb7f2017-12-28 13:44:52 +00001001 "name" : "FabricIngress.next.multicast_counter",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001002 "id" : 10,
Esin Karaman971fb7f2017-12-28 13:44:52 +00001003 "is_direct" : true,
1004 "binding" : "FabricIngress.next.multicast"
1005 },
1006 {
1007 "name" : "FabricIngress.port_counters_control.egress_port_counter",
1008 "id" : 11,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001009 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001010 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001011 "line" : 23,
Yi Tseng3d3956d2018-01-31 17:28:05 -08001012 "column" : 48,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001013 "source_fragment" : "egress_port_counter"
1014 },
1015 "size" : 511,
1016 "is_direct" : false
1017 },
1018 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001019 "name" : "FabricIngress.port_counters_control.ingress_port_counter",
Esin Karaman971fb7f2017-12-28 13:44:52 +00001020 "id" : 12,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001021 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001022 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001023 "line" : 24,
Yi Tseng3d3956d2018-01-31 17:28:05 -08001024 "column" : 48,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001025 "source_fragment" : "ingress_port_counter"
1026 },
1027 "size" : 511,
1028 "is_direct" : false
Yi Tseng47eac892018-07-11 02:17:04 +08001029 },
1030 {
1031 "name" : "FabricEgress.egress_next.egress_vlan_counter",
1032 "id" : 13,
1033 "is_direct" : true,
1034 "binding" : "FabricEgress.egress_next.egress_vlan"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001035 }
1036 ],
1037 "register_arrays" : [],
1038 "calculations" : [
1039 {
1040 "name" : "calc",
1041 "id" : 0,
1042 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001043 "filename" : "include/checksum.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001044 "line" : 28,
1045 "column" : 8,
1046 "source_fragment" : "update_checksum(hdr.ipv4.isValid(), ..."
1047 },
1048 "algo" : "csum16",
1049 "input" : [
1050 {
1051 "type" : "field",
1052 "value" : ["ipv4", "version"]
1053 },
1054 {
1055 "type" : "field",
1056 "value" : ["ipv4", "ihl"]
1057 },
1058 {
1059 "type" : "field",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09001060 "value" : ["ipv4", "dscp"]
1061 },
1062 {
1063 "type" : "field",
1064 "value" : ["ipv4", "ecn"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001065 },
1066 {
1067 "type" : "field",
1068 "value" : ["ipv4", "total_len"]
1069 },
1070 {
1071 "type" : "field",
1072 "value" : ["ipv4", "identification"]
1073 },
1074 {
1075 "type" : "field",
1076 "value" : ["ipv4", "flags"]
1077 },
1078 {
1079 "type" : "field",
1080 "value" : ["ipv4", "frag_offset"]
1081 },
1082 {
1083 "type" : "field",
1084 "value" : ["ipv4", "ttl"]
1085 },
1086 {
1087 "type" : "field",
1088 "value" : ["ipv4", "protocol"]
1089 },
1090 {
1091 "type" : "field",
1092 "value" : ["ipv4", "src_addr"]
1093 },
1094 {
1095 "type" : "field",
1096 "value" : ["ipv4", "dst_addr"]
1097 }
1098 ]
1099 },
1100 {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001101 "name" : "calc_0",
1102 "id" : 1,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001103 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001104 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07001105 "line" : 237,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001106 "column" : 8,
1107 "source_fragment" : "update_checksum(gtpu_ipv4.isValid(), ..."
1108 },
1109 "algo" : "csum16",
1110 "input" : [
1111 {
1112 "type" : "field",
1113 "value" : ["gtpu_ipv4", "version"]
1114 },
1115 {
1116 "type" : "field",
1117 "value" : ["gtpu_ipv4", "ihl"]
1118 },
1119 {
1120 "type" : "field",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09001121 "value" : ["gtpu_ipv4", "dscp"]
1122 },
1123 {
1124 "type" : "field",
1125 "value" : ["gtpu_ipv4", "ecn"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001126 },
1127 {
1128 "type" : "field",
1129 "value" : ["gtpu_ipv4", "total_len"]
1130 },
1131 {
1132 "type" : "field",
1133 "value" : ["gtpu_ipv4", "identification"]
1134 },
1135 {
1136 "type" : "field",
1137 "value" : ["gtpu_ipv4", "flags"]
1138 },
1139 {
1140 "type" : "field",
1141 "value" : ["gtpu_ipv4", "frag_offset"]
1142 },
1143 {
1144 "type" : "field",
1145 "value" : ["gtpu_ipv4", "ttl"]
1146 },
1147 {
1148 "type" : "field",
1149 "value" : ["gtpu_ipv4", "protocol"]
1150 },
1151 {
1152 "type" : "field",
1153 "value" : ["gtpu_ipv4", "src_addr"]
1154 },
1155 {
1156 "type" : "field",
1157 "value" : ["gtpu_ipv4", "dst_addr"]
1158 }
1159 ]
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001160 },
1161 {
1162 "name" : "calc_1",
1163 "id" : 2,
1164 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001165 "filename" : "include/checksum.p4",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09001166 "line" : 57,
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001167 "column" : 8,
1168 "source_fragment" : "verify_checksum(hdr.ipv4.isValid(), ..."
1169 },
1170 "algo" : "csum16",
1171 "input" : [
1172 {
1173 "type" : "field",
1174 "value" : ["ipv4", "version"]
1175 },
1176 {
1177 "type" : "field",
1178 "value" : ["ipv4", "ihl"]
1179 },
1180 {
1181 "type" : "field",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09001182 "value" : ["ipv4", "dscp"]
1183 },
1184 {
1185 "type" : "field",
1186 "value" : ["ipv4", "ecn"]
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001187 },
1188 {
1189 "type" : "field",
1190 "value" : ["ipv4", "total_len"]
1191 },
1192 {
1193 "type" : "field",
1194 "value" : ["ipv4", "identification"]
1195 },
1196 {
1197 "type" : "field",
1198 "value" : ["ipv4", "flags"]
1199 },
1200 {
1201 "type" : "field",
1202 "value" : ["ipv4", "frag_offset"]
1203 },
1204 {
1205 "type" : "field",
1206 "value" : ["ipv4", "ttl"]
1207 },
1208 {
1209 "type" : "field",
1210 "value" : ["ipv4", "protocol"]
1211 },
1212 {
1213 "type" : "field",
1214 "value" : ["ipv4", "src_addr"]
1215 },
1216 {
1217 "type" : "field",
1218 "value" : ["ipv4", "dst_addr"]
1219 }
1220 ]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001221 }
1222 ],
1223 "learn_lists" : [],
1224 "actions" : [
1225 {
1226 "name" : "NoAction",
1227 "id" : 0,
1228 "runtime_data" : [],
1229 "primitives" : []
1230 },
1231 {
1232 "name" : "NoAction",
1233 "id" : 1,
1234 "runtime_data" : [],
1235 "primitives" : []
1236 },
1237 {
1238 "name" : "NoAction",
1239 "id" : 2,
1240 "runtime_data" : [],
1241 "primitives" : []
1242 },
1243 {
1244 "name" : "NoAction",
1245 "id" : 3,
1246 "runtime_data" : [],
1247 "primitives" : []
1248 },
1249 {
1250 "name" : "NoAction",
1251 "id" : 4,
1252 "runtime_data" : [],
1253 "primitives" : []
1254 },
1255 {
1256 "name" : "NoAction",
1257 "id" : 5,
1258 "runtime_data" : [],
1259 "primitives" : []
1260 },
1261 {
1262 "name" : "NoAction",
1263 "id" : 6,
1264 "runtime_data" : [],
1265 "primitives" : []
1266 },
1267 {
1268 "name" : "NoAction",
1269 "id" : 7,
1270 "runtime_data" : [],
1271 "primitives" : []
1272 },
1273 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07001274 "name" : "nop",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001275 "id" : 8,
1276 "runtime_data" : [],
1277 "primitives" : []
1278 },
1279 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07001280 "name" : "nop",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001281 "id" : 9,
1282 "runtime_data" : [],
1283 "primitives" : []
1284 },
1285 {
Carmelo Casconea5400af2018-07-17 22:11:54 +02001286 "name" : "drop_now",
Charles Chancf696e52018-08-16 16:25:13 -07001287 "id" : 10,
Esin Karaman971fb7f2017-12-28 13:44:52 +00001288 "runtime_data" : [],
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001289 "primitives" : [
1290 {
1291 "op" : "drop",
1292 "parameters" : [],
1293 "source_info" : {
Carmelo Casconea5400af2018-07-17 22:11:54 +02001294 "filename" : "include/control/../action.p4",
1295 "line" : 24,
1296 "column" : 4,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001297 "source_fragment" : "mark_to_drop()"
1298 }
1299 },
1300 {
1301 "op" : "exit",
1302 "parameters" : [],
1303 "source_info" : {
Carmelo Casconea5400af2018-07-17 22:11:54 +02001304 "filename" : "include/control/../action.p4",
1305 "line" : 25,
1306 "column" : 4,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001307 "source_fragment" : "exit"
1308 }
1309 }
1310 ]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001311 },
1312 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001313 "name" : "FabricIngress.spgw_ingress.gtpu_decap",
Charles Chancf696e52018-08-16 16:25:13 -07001314 "id" : 11,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001315 "runtime_data" : [],
1316 "primitives" : [
1317 {
1318 "op" : "remove_header",
1319 "parameters" : [
1320 {
1321 "type" : "header",
1322 "value" : "gtpu_ipv4"
1323 }
1324 ],
1325 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001326 "filename" : "include/spgw.p4",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07001327 "line" : 54,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001328 "column" : 8,
1329 "source_fragment" : "gtpu_ipv4.setInvalid()"
1330 }
1331 },
1332 {
1333 "op" : "remove_header",
1334 "parameters" : [
1335 {
1336 "type" : "header",
1337 "value" : "gtpu_udp"
1338 }
1339 ],
1340 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001341 "filename" : "include/spgw.p4",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07001342 "line" : 55,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001343 "column" : 8,
1344 "source_fragment" : "gtpu_udp.setInvalid()"
1345 }
1346 },
1347 {
1348 "op" : "remove_header",
1349 "parameters" : [
1350 {
1351 "type" : "header",
1352 "value" : "gtpu"
1353 }
1354 ],
1355 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001356 "filename" : "include/spgw.p4",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07001357 "line" : 56,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001358 "column" : 8,
1359 "source_fragment" : "gtpu.setInvalid()"
1360 }
1361 }
1362 ]
1363 },
1364 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001365 "name" : "FabricIngress.spgw_ingress.set_dl_sess_info",
Charles Chancf696e52018-08-16 16:25:13 -07001366 "id" : 12,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001367 "runtime_data" : [
1368 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001369 "name" : "teid",
1370 "bitwidth" : 32
1371 },
1372 {
1373 "name" : "s1u_enb_addr",
1374 "bitwidth" : 32
1375 },
1376 {
1377 "name" : "s1u_sgw_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001378 "bitwidth" : 32
1379 }
1380 ],
1381 "primitives" : [
1382 {
1383 "op" : "assign",
1384 "parameters" : [
1385 {
1386 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08001387 "value" : ["userMetadata.spgw", "teid"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001388 },
1389 {
1390 "type" : "runtime_data",
1391 "value" : 0
1392 }
1393 ],
1394 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001395 "filename" : "include/spgw.p4",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07001396 "line" : 62,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001397 "column" : 8,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001398 "source_fragment" : "spgw_meta.teid = teid"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001399 }
1400 },
1401 {
1402 "op" : "assign",
1403 "parameters" : [
1404 {
1405 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08001406 "value" : ["userMetadata.spgw", "s1u_enb_addr"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001407 },
1408 {
1409 "type" : "runtime_data",
1410 "value" : 1
1411 }
1412 ],
1413 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001414 "filename" : "include/spgw.p4",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07001415 "line" : 63,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001416 "column" : 8,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001417 "source_fragment" : "spgw_meta.s1u_enb_addr = s1u_enb_addr"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001418 }
1419 },
1420 {
1421 "op" : "assign",
1422 "parameters" : [
1423 {
1424 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08001425 "value" : ["userMetadata.spgw", "s1u_sgw_addr"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001426 },
1427 {
1428 "type" : "runtime_data",
1429 "value" : 2
1430 }
1431 ],
1432 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001433 "filename" : "include/spgw.p4",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07001434 "line" : 64,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001435 "column" : 8,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08001436 "source_fragment" : "spgw_meta.s1u_sgw_addr = s1u_sgw_addr"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001437 }
1438 }
1439 ]
1440 },
1441 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001442 "name" : "FabricIngress.filtering.drop",
Charles Chancf696e52018-08-16 16:25:13 -07001443 "id" : 13,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001444 "runtime_data" : [],
1445 "primitives" : [
1446 {
1447 "op" : "drop",
1448 "parameters" : [],
1449 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001450 "filename" : "include/control/filtering.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001451 "line" : 37,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001452 "column" : 8,
1453 "source_fragment" : "mark_to_drop()"
1454 }
1455 }
1456 ]
1457 },
1458 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001459 "name" : "FabricIngress.filtering.set_vlan",
Charles Chancf696e52018-08-16 16:25:13 -07001460 "id" : 14,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001461 "runtime_data" : [
1462 {
1463 "name" : "new_vlan_id",
1464 "bitwidth" : 12
1465 }
1466 ],
1467 "primitives" : [
1468 {
1469 "op" : "assign",
1470 "parameters" : [
1471 {
1472 "type" : "field",
1473 "value" : ["vlan_tag", "vlan_id"]
1474 },
1475 {
1476 "type" : "runtime_data",
1477 "value" : 0
1478 }
1479 ],
1480 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001481 "filename" : "include/control/filtering.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001482 "line" : 42,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001483 "column" : 8,
1484 "source_fragment" : "hdr.vlan_tag.vlan_id = new_vlan_id"
1485 }
1486 }
1487 ]
1488 },
1489 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001490 "name" : "FabricIngress.filtering.push_internal_vlan",
Charles Chancf696e52018-08-16 16:25:13 -07001491 "id" : 15,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001492 "runtime_data" : [
1493 {
1494 "name" : "new_vlan_id",
1495 "bitwidth" : 12
1496 }
1497 ],
1498 "primitives" : [
1499 {
1500 "op" : "add_header",
1501 "parameters" : [
1502 {
1503 "type" : "header",
1504 "value" : "vlan_tag"
1505 }
1506 ],
1507 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001508 "filename" : "include/control/filtering.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001509 "line" : 49,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001510 "column" : 8,
1511 "source_fragment" : "hdr.vlan_tag.setValid()"
1512 }
1513 },
1514 {
1515 "op" : "assign",
1516 "parameters" : [
1517 {
1518 "type" : "field",
1519 "value" : ["vlan_tag", "cfi"]
1520 },
1521 {
1522 "type" : "hexstr",
1523 "value" : "0x00"
1524 }
1525 ],
1526 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001527 "filename" : "include/control/filtering.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001528 "line" : 50,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001529 "column" : 8,
1530 "source_fragment" : "hdr.vlan_tag.cfi = 0"
1531 }
1532 },
1533 {
1534 "op" : "assign",
1535 "parameters" : [
1536 {
1537 "type" : "field",
1538 "value" : ["vlan_tag", "pri"]
1539 },
1540 {
1541 "type" : "hexstr",
1542 "value" : "0x00"
1543 }
1544 ],
1545 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001546 "filename" : "include/control/filtering.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001547 "line" : 51,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001548 "column" : 8,
1549 "source_fragment" : "hdr.vlan_tag.pri = 0"
1550 }
1551 },
1552 {
1553 "op" : "assign",
1554 "parameters" : [
1555 {
1556 "type" : "field",
1557 "value" : ["vlan_tag", "ether_type"]
1558 },
1559 {
1560 "type" : "field",
1561 "value" : ["ethernet", "ether_type"]
1562 }
1563 ],
1564 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001565 "filename" : "include/control/filtering.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001566 "line" : 52,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001567 "column" : 8,
1568 "source_fragment" : "hdr.vlan_tag.ether_type = hdr.ethernet.ether_type"
1569 }
1570 },
1571 {
1572 "op" : "assign",
1573 "parameters" : [
1574 {
1575 "type" : "field",
1576 "value" : ["ethernet", "ether_type"]
1577 },
1578 {
1579 "type" : "hexstr",
1580 "value" : "0x8100"
1581 }
1582 ],
1583 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001584 "filename" : "include/control/../define.p4",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07001585 "line" : 89,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001586 "column" : 31,
1587 "source_fragment" : "0x8100; ..."
1588 }
1589 },
1590 {
1591 "op" : "assign",
1592 "parameters" : [
1593 {
1594 "type" : "field",
1595 "value" : ["vlan_tag", "vlan_id"]
1596 },
1597 {
1598 "type" : "runtime_data",
1599 "value" : 0
1600 }
1601 ],
1602 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001603 "filename" : "include/control/filtering.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001604 "line" : 54,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001605 "column" : 8,
Yi Tseng47eac892018-07-11 02:17:04 +08001606 "source_fragment" : "hdr.vlan_tag.vlan_id = new_vlan_id"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001607 }
1608 },
1609 {
1610 "op" : "assign",
1611 "parameters" : [
1612 {
1613 "type" : "field",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001614 "value" : ["scalars", "fabric_metadata_t.pop_vlan_when_packet_in"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001615 },
1616 {
1617 "type" : "expression",
1618 "value" : {
1619 "type" : "expression",
1620 "value" : {
1621 "op" : "b2d",
1622 "left" : null,
1623 "right" : {
1624 "type" : "bool",
1625 "value" : true
1626 }
1627 }
1628 }
1629 }
1630 ],
1631 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001632 "filename" : "include/control/filtering.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001633 "line" : 57,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001634 "column" : 8,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001635 "source_fragment" : "fabric_metadata.pop_vlan_when_packet_in = true"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001636 }
1637 }
1638 ]
1639 },
1640 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001641 "name" : "FabricIngress.filtering.set_forwarding_type",
Charles Chancf696e52018-08-16 16:25:13 -07001642 "id" : 16,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001643 "runtime_data" : [
1644 {
1645 "name" : "fwd_type",
1646 "bitwidth" : 3
1647 }
1648 ],
1649 "primitives" : [
1650 {
1651 "op" : "assign",
1652 "parameters" : [
1653 {
1654 "type" : "field",
1655 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
1656 },
1657 {
1658 "type" : "runtime_data",
1659 "value" : 0
1660 }
1661 ],
1662 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001663 "filename" : "include/control/filtering.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001664 "line" : 94,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001665 "column" : 8,
1666 "source_fragment" : "fabric_metadata.fwd_type = fwd_type"
1667 }
1668 }
1669 ]
1670 },
1671 {
Yi Tseng47eac892018-07-11 02:17:04 +08001672 "name" : "FabricIngress.forwarding.set_next_id_bridging",
Charles Chancf696e52018-08-16 16:25:13 -07001673 "id" : 17,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001674 "runtime_data" : [
1675 {
1676 "name" : "next_id",
1677 "bitwidth" : 32
1678 }
1679 ],
1680 "primitives" : [
1681 {
1682 "op" : "assign",
1683 "parameters" : [
1684 {
1685 "type" : "field",
1686 "value" : ["scalars", "fabric_metadata_t.next_id"]
1687 },
1688 {
1689 "type" : "runtime_data",
1690 "value" : 0
1691 }
1692 ],
1693 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001694 "filename" : "include/control/forwarding.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001695 "line" : 37,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001696 "column" : 8,
1697 "source_fragment" : "fabric_metadata.next_id = next_id"
1698 }
1699 }
1700 ]
1701 },
1702 {
Yi Tseng47eac892018-07-11 02:17:04 +08001703 "name" : "FabricIngress.forwarding.pop_mpls_and_next",
Charles Chancf696e52018-08-16 16:25:13 -07001704 "id" : 18,
Yi Tseng47eac892018-07-11 02:17:04 +08001705 "runtime_data" : [
1706 {
1707 "name" : "next_id",
1708 "bitwidth" : 32
1709 }
1710 ],
1711 "primitives" : [
1712 {
1713 "op" : "remove_header",
1714 "parameters" : [
1715 {
1716 "type" : "header",
1717 "value" : "mpls"
1718 }
1719 ],
1720 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001721 "filename" : "include/control/forwarding.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001722 "line" : 60,
1723 "column" : 8,
1724 "source_fragment" : "hdr.mpls.setInvalid()"
1725 }
1726 },
1727 {
1728 "op" : "assign",
1729 "parameters" : [
1730 {
1731 "type" : "field",
1732 "value" : ["scalars", "fabric_metadata_t.next_id"]
1733 },
1734 {
1735 "type" : "runtime_data",
1736 "value" : 0
1737 }
1738 ],
1739 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001740 "filename" : "include/control/forwarding.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001741 "line" : 61,
1742 "column" : 8,
1743 "source_fragment" : "fabric_metadata.next_id = next_id"
1744 }
1745 }
1746 ]
1747 },
1748 {
1749 "name" : "FabricIngress.forwarding.set_next_id_unicast_v4",
Charles Chancf696e52018-08-16 16:25:13 -07001750 "id" : 19,
Yi Tseng27b9bc02018-04-12 14:52:40 +08001751 "runtime_data" : [
1752 {
1753 "name" : "next_id",
1754 "bitwidth" : 32
1755 }
1756 ],
1757 "primitives" : [
1758 {
1759 "op" : "assign",
1760 "parameters" : [
1761 {
1762 "type" : "field",
1763 "value" : ["scalars", "fabric_metadata_t.next_id"]
1764 },
1765 {
1766 "type" : "runtime_data",
1767 "value" : 0
1768 }
1769 ],
1770 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001771 "filename" : "include/control/forwarding.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001772 "line" : 83,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001773 "column" : 8,
1774 "source_fragment" : "fabric_metadata.next_id = next_id"
1775 }
1776 }
1777 ]
1778 },
1779 {
Yi Tseng47eac892018-07-11 02:17:04 +08001780 "name" : "FabricIngress.forwarding.set_next_id_acl",
Charles Chancf696e52018-08-16 16:25:13 -07001781 "id" : 20,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001782 "runtime_data" : [
1783 {
1784 "name" : "next_id",
1785 "bitwidth" : 32
1786 }
1787 ],
1788 "primitives" : [
1789 {
Esin Karaman971fb7f2017-12-28 13:44:52 +00001790 "op" : "assign",
1791 "parameters" : [
1792 {
1793 "type" : "field",
1794 "value" : ["scalars", "fabric_metadata_t.next_id"]
1795 },
1796 {
1797 "type" : "runtime_data",
1798 "value" : 0
1799 }
1800 ],
1801 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001802 "filename" : "include/control/forwarding.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001803 "line" : 105,
Esin Karaman971fb7f2017-12-28 13:44:52 +00001804 "column" : 8,
1805 "source_fragment" : "fabric_metadata.next_id = next_id"
1806 }
1807 }
1808 ]
1809 },
1810 {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001811 "name" : "FabricIngress.forwarding.punt_to_cpu",
Charles Chancf696e52018-08-16 16:25:13 -07001812 "id" : 21,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001813 "runtime_data" : [],
1814 "primitives" : [
1815 {
1816 "op" : "assign",
1817 "parameters" : [
1818 {
1819 "type" : "field",
1820 "value" : ["standard_metadata", "egress_spec"]
1821 },
1822 {
1823 "type" : "hexstr",
1824 "value" : "0x00ff"
1825 }
1826 ],
1827 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001828 "filename" : "include/control/forwarding.p4",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001829 "line" : 111,
Carmelo Casconeb531b682018-01-30 17:55:56 -08001830 "column" : 8,
1831 "source_fragment" : "standard_metadata.egress_spec = 255"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001832 }
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001833 },
1834 {
1835 "op" : "exit",
1836 "parameters" : [],
1837 "source_info" : {
1838 "filename" : "include/control/forwarding.p4",
1839 "line" : 113,
1840 "column" : 8,
1841 "source_fragment" : "exit"
1842 }
1843 }
1844 ]
1845 },
1846 {
1847 "name" : "FabricIngress.forwarding.clone_to_cpu",
Charles Chancf696e52018-08-16 16:25:13 -07001848 "id" : 22,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001849 "runtime_data" : [],
1850 "primitives" : [
1851 {
1852 "op" : "assign",
1853 "parameters" : [
1854 {
1855 "type" : "field",
1856 "value" : ["scalars", "fabric_metadata_t.clone_to_cpu"]
1857 },
1858 {
1859 "type" : "expression",
1860 "value" : {
1861 "type" : "expression",
1862 "value" : {
1863 "op" : "b2d",
1864 "left" : null,
1865 "right" : {
1866 "type" : "bool",
1867 "value" : true
1868 }
1869 }
1870 }
1871 }
1872 ],
1873 "source_info" : {
1874 "filename" : "include/control/forwarding.p4",
1875 "line" : 118,
1876 "column" : 8,
1877 "source_fragment" : "fabric_metadata.clone_to_cpu = true"
1878 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001879 }
1880 ]
1881 },
1882 {
Yi Tseng47eac892018-07-11 02:17:04 +08001883 "name" : "FabricIngress.forwarding.drop",
Charles Chancf696e52018-08-16 16:25:13 -07001884 "id" : 23,
Yi Tseng47eac892018-07-11 02:17:04 +08001885 "runtime_data" : [],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001886 "primitives" : [
1887 {
Yi Tseng47eac892018-07-11 02:17:04 +08001888 "op" : "drop",
1889 "parameters" : [],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001890 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001891 "filename" : "include/control/forwarding.p4",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001892 "line" : 123,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001893 "column" : 8,
Yi Tseng47eac892018-07-11 02:17:04 +08001894 "source_fragment" : "mark_to_drop()"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001895 }
1896 }
1897 ]
1898 },
1899 {
Charles Chancf696e52018-08-16 16:25:13 -07001900 "name" : "FabricIngress.forwarding.nop_acl",
1901 "id" : 24,
1902 "runtime_data" : [],
1903 "primitives" : []
1904 },
1905 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001906 "name" : "FabricIngress.next.set_vlan",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07001907 "id" : 25,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001908 "runtime_data" : [
1909 {
1910 "name" : "new_vlan_id",
1911 "bitwidth" : 12
1912 }
1913 ],
1914 "primitives" : [
1915 {
1916 "op" : "assign",
1917 "parameters" : [
1918 {
1919 "type" : "field",
1920 "value" : ["vlan_tag", "vlan_id"]
1921 },
1922 {
1923 "type" : "runtime_data",
1924 "value" : 0
1925 }
1926 ],
1927 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001928 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001929 "line" : 61,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001930 "column" : 8,
1931 "source_fragment" : "hdr.vlan_tag.vlan_id = new_vlan_id"
1932 }
1933 }
1934 ]
1935 },
1936 {
Yi Tseng47eac892018-07-11 02:17:04 +08001937 "name" : "FabricIngress.next.output_simple",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07001938 "id" : 26,
Yi Tseng47eac892018-07-11 02:17:04 +08001939 "runtime_data" : [
1940 {
1941 "name" : "port_num",
1942 "bitwidth" : 9
1943 }
1944 ],
1945 "primitives" : [
1946 {
1947 "op" : "assign",
1948 "parameters" : [
1949 {
1950 "type" : "field",
1951 "value" : ["standard_metadata", "egress_spec"]
1952 },
1953 {
1954 "type" : "runtime_data",
1955 "value" : 0
1956 }
1957 ],
1958 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001959 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001960 "line" : 85,
1961 "column" : 8,
1962 "source_fragment" : "standard_metadata.egress_spec = port_num"
1963 }
1964 }
1965 ]
1966 },
1967 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001968 "name" : "FabricIngress.next.set_vlan_output",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07001969 "id" : 27,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001970 "runtime_data" : [
1971 {
1972 "name" : "new_vlan_id",
1973 "bitwidth" : 12
1974 },
1975 {
1976 "name" : "port_num",
1977 "bitwidth" : 9
1978 }
1979 ],
1980 "primitives" : [
1981 {
1982 "op" : "assign",
1983 "parameters" : [
1984 {
1985 "type" : "field",
1986 "value" : ["vlan_tag", "vlan_id"]
1987 },
1988 {
1989 "type" : "runtime_data",
1990 "value" : 0
1991 }
1992 ],
1993 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001994 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001995 "line" : 90,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08001996 "column" : 8,
1997 "source_fragment" : "hdr.vlan_tag.vlan_id = new_vlan_id"
1998 }
1999 },
2000 {
2001 "op" : "assign",
2002 "parameters" : [
2003 {
2004 "type" : "field",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002005 "value" : ["standard_metadata", "egress_spec"]
2006 },
2007 {
2008 "type" : "runtime_data",
2009 "value" : 1
2010 }
2011 ],
2012 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002013 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002014 "line" : 85,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002015 "column" : 8,
2016 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2017 }
2018 }
2019 ]
2020 },
2021 {
Yi Tseng47eac892018-07-11 02:17:04 +08002022 "name" : "FabricIngress.next.l3_routing_simple",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002023 "id" : 28,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002024 "runtime_data" : [
2025 {
2026 "name" : "port_num",
2027 "bitwidth" : 9
2028 },
2029 {
2030 "name" : "smac",
2031 "bitwidth" : 48
2032 },
2033 {
2034 "name" : "dmac",
2035 "bitwidth" : 48
2036 }
2037 ],
2038 "primitives" : [
2039 {
2040 "op" : "assign",
2041 "parameters" : [
2042 {
2043 "type" : "field",
2044 "value" : ["ethernet", "src_addr"]
2045 },
2046 {
2047 "type" : "runtime_data",
2048 "value" : 1
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" : 37,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002054 "column" : 8,
2055 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2056 }
2057 },
2058 {
2059 "op" : "assign",
2060 "parameters" : [
2061 {
2062 "type" : "field",
2063 "value" : ["ethernet", "dst_addr"]
2064 },
2065 {
2066 "type" : "runtime_data",
2067 "value" : 2
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" : 41,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002073 "column" : 8,
2074 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2075 }
2076 },
2077 {
2078 "op" : "assign",
2079 "parameters" : [
2080 {
2081 "type" : "field",
2082 "value" : ["standard_metadata", "egress_spec"]
2083 },
2084 {
2085 "type" : "runtime_data",
2086 "value" : 0
2087 }
2088 ],
2089 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002090 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002091 "line" : 85,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002092 "column" : 8,
2093 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2094 }
2095 }
2096 ]
2097 },
2098 {
Yi Tseng47eac892018-07-11 02:17:04 +08002099 "name" : "FabricIngress.next.mpls_routing_v4_simple",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002100 "id" : 29,
Yi Tseng47eac892018-07-11 02:17:04 +08002101 "runtime_data" : [
2102 {
2103 "name" : "port_num",
2104 "bitwidth" : 9
2105 },
2106 {
2107 "name" : "smac",
2108 "bitwidth" : 48
2109 },
2110 {
2111 "name" : "dmac",
2112 "bitwidth" : 48
2113 },
2114 {
2115 "name" : "label",
2116 "bitwidth" : 20
2117 }
2118 ],
2119 "primitives" : [
2120 {
2121 "op" : "assign",
2122 "parameters" : [
2123 {
2124 "type" : "field",
2125 "value" : ["ethernet", "src_addr"]
2126 },
2127 {
2128 "type" : "runtime_data",
2129 "value" : 1
2130 }
2131 ],
2132 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002133 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002134 "line" : 37,
2135 "column" : 8,
2136 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2137 }
2138 },
2139 {
2140 "op" : "assign",
2141 "parameters" : [
2142 {
2143 "type" : "field",
2144 "value" : ["ethernet", "dst_addr"]
2145 },
2146 {
2147 "type" : "runtime_data",
2148 "value" : 2
2149 }
2150 ],
2151 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002152 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002153 "line" : 41,
2154 "column" : 8,
2155 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2156 }
2157 },
2158 {
2159 "op" : "assign",
2160 "parameters" : [
2161 {
2162 "type" : "field",
2163 "value" : ["standard_metadata", "egress_spec"]
2164 },
2165 {
2166 "type" : "runtime_data",
2167 "value" : 0
2168 }
2169 ],
2170 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002171 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002172 "line" : 85,
2173 "column" : 8,
2174 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2175 }
2176 },
2177 {
2178 "op" : "add_header",
2179 "parameters" : [
2180 {
2181 "type" : "header",
2182 "value" : "mpls"
2183 }
2184 ],
2185 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002186 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002187 "line" : 46,
2188 "column" : 8,
2189 "source_fragment" : "hdr.mpls.setValid()"
2190 }
2191 },
2192 {
2193 "op" : "assign",
2194 "parameters" : [
2195 {
2196 "type" : "field",
2197 "value" : ["vlan_tag", "ether_type"]
2198 },
2199 {
2200 "type" : "hexstr",
2201 "value" : "0x8847"
2202 }
2203 ],
2204 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002205 "filename" : "include/control/../define.p4",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002206 "line" : 90,
Yi Tseng47eac892018-07-11 02:17:04 +08002207 "column" : 31,
2208 "source_fragment" : "0x8847; ..."
2209 }
2210 },
2211 {
2212 "op" : "assign",
2213 "parameters" : [
2214 {
2215 "type" : "field",
2216 "value" : ["mpls", "label"]
2217 },
2218 {
2219 "type" : "runtime_data",
2220 "value" : 3
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" : 48,
2226 "column" : 8,
2227 "source_fragment" : "hdr.mpls.label = label; ..."
2228 }
2229 },
2230 {
2231 "op" : "assign",
2232 "parameters" : [
2233 {
2234 "type" : "field",
2235 "value" : ["mpls", "tc"]
2236 },
2237 {
2238 "type" : "hexstr",
2239 "value" : "0x00"
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" : 49,
2245 "column" : 8,
2246 "source_fragment" : "hdr.mpls.tc = tc; ..."
2247 }
2248 },
2249 {
2250 "op" : "assign",
2251 "parameters" : [
2252 {
2253 "type" : "field",
2254 "value" : ["mpls", "bos"]
2255 },
2256 {
2257 "type" : "hexstr",
2258 "value" : "0x01"
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" : 50,
2264 "column" : 8,
2265 "source_fragment" : "hdr.mpls.bos = 1w1"
2266 }
2267 },
2268 {
2269 "op" : "assign",
2270 "parameters" : [
2271 {
2272 "type" : "field",
2273 "value" : ["mpls", "ttl"]
2274 },
2275 {
2276 "type" : "hexstr",
2277 "value" : "0x40"
2278 }
2279 ],
2280 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002281 "filename" : "include/control/../define.p4",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002282 "line" : 110,
Yi Tseng47eac892018-07-11 02:17:04 +08002283 "column" : 32,
2284 "source_fragment" : "64; ..."
2285 }
Esin Karaman971fb7f2017-12-28 13:44:52 +00002286 }
2287 ]
2288 },
2289 {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002290 "name" : "FabricIngress.next.mpls_routing_v6_simple",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002291 "id" : 30,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002292 "runtime_data" : [
2293 {
2294 "name" : "port_num",
2295 "bitwidth" : 9
2296 },
2297 {
2298 "name" : "smac",
2299 "bitwidth" : 48
2300 },
2301 {
2302 "name" : "dmac",
2303 "bitwidth" : 48
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002304 },
2305 {
Esin Karaman971fb7f2017-12-28 13:44:52 +00002306 "name" : "label",
2307 "bitwidth" : 20
2308 }
2309 ],
2310 "primitives" : [
2311 {
2312 "op" : "assign",
2313 "parameters" : [
2314 {
2315 "type" : "field",
2316 "value" : ["ethernet", "src_addr"]
2317 },
2318 {
2319 "type" : "runtime_data",
2320 "value" : 1
2321 }
2322 ],
2323 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002324 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002325 "line" : 37,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002326 "column" : 8,
2327 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2328 }
2329 },
2330 {
2331 "op" : "assign",
2332 "parameters" : [
2333 {
2334 "type" : "field",
2335 "value" : ["ethernet", "dst_addr"]
2336 },
2337 {
2338 "type" : "runtime_data",
2339 "value" : 2
2340 }
2341 ],
2342 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002343 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002344 "line" : 41,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002345 "column" : 8,
2346 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2347 }
2348 },
2349 {
2350 "op" : "assign",
2351 "parameters" : [
2352 {
2353 "type" : "field",
2354 "value" : ["standard_metadata", "egress_spec"]
2355 },
2356 {
2357 "type" : "runtime_data",
2358 "value" : 0
2359 }
2360 ],
2361 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002362 "filename" : "include/control/next.p4",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002363 "line" : 85,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002364 "column" : 8,
2365 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2366 }
2367 },
2368 {
2369 "op" : "add_header",
2370 "parameters" : [
2371 {
2372 "type" : "header",
2373 "value" : "mpls"
2374 }
2375 ],
2376 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002377 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002378 "line" : 46,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002379 "column" : 8,
2380 "source_fragment" : "hdr.mpls.setValid()"
2381 }
2382 },
2383 {
2384 "op" : "assign",
2385 "parameters" : [
2386 {
2387 "type" : "field",
2388 "value" : ["vlan_tag", "ether_type"]
2389 },
2390 {
2391 "type" : "hexstr",
2392 "value" : "0x8847"
2393 }
2394 ],
2395 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002396 "filename" : "include/control/../define.p4",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002397 "line" : 90,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002398 "column" : 31,
2399 "source_fragment" : "0x8847; ..."
2400 }
2401 },
2402 {
2403 "op" : "assign",
2404 "parameters" : [
2405 {
2406 "type" : "field",
2407 "value" : ["mpls", "label"]
2408 },
2409 {
2410 "type" : "runtime_data",
2411 "value" : 3
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" : 48,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002417 "column" : 8,
2418 "source_fragment" : "hdr.mpls.label = label; ..."
2419 }
2420 },
2421 {
2422 "op" : "assign",
2423 "parameters" : [
2424 {
2425 "type" : "field",
2426 "value" : ["mpls", "tc"]
2427 },
2428 {
2429 "type" : "hexstr",
2430 "value" : "0x00"
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" : 49,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002436 "column" : 8,
2437 "source_fragment" : "hdr.mpls.tc = tc; ..."
2438 }
2439 },
2440 {
2441 "op" : "assign",
2442 "parameters" : [
2443 {
2444 "type" : "field",
2445 "value" : ["mpls", "bos"]
2446 },
2447 {
2448 "type" : "hexstr",
2449 "value" : "0x01"
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" : 50,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002455 "column" : 8,
2456 "source_fragment" : "hdr.mpls.bos = 1w1"
2457 }
2458 },
2459 {
2460 "op" : "assign",
2461 "parameters" : [
2462 {
2463 "type" : "field",
2464 "value" : ["mpls", "ttl"]
2465 },
2466 {
2467 "type" : "hexstr",
2468 "value" : "0x40"
2469 }
2470 ],
2471 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002472 "filename" : "include/control/../define.p4",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002473 "line" : 110,
Yi Tseng47eac892018-07-11 02:17:04 +08002474 "column" : 32,
2475 "source_fragment" : "64; ..."
2476 }
2477 }
2478 ]
2479 },
2480 {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002481 "name" : "FabricIngress.next.l3_routing_vlan",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002482 "id" : 31,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002483 "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 "name" : "new_vlan_id",
2498 "bitwidth" : 12
2499 }
2500 ],
2501 "primitives" : [
2502 {
2503 "op" : "assign",
2504 "parameters" : [
2505 {
2506 "type" : "field",
2507 "value" : ["ethernet", "src_addr"]
2508 },
2509 {
2510 "type" : "runtime_data",
2511 "value" : 1
2512 }
2513 ],
2514 "source_info" : {
2515 "filename" : "include/control/next.p4",
2516 "line" : 37,
2517 "column" : 8,
2518 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2519 }
2520 },
2521 {
2522 "op" : "assign",
2523 "parameters" : [
2524 {
2525 "type" : "field",
2526 "value" : ["ethernet", "dst_addr"]
2527 },
2528 {
2529 "type" : "runtime_data",
2530 "value" : 2
2531 }
2532 ],
2533 "source_info" : {
2534 "filename" : "include/control/next.p4",
2535 "line" : 41,
2536 "column" : 8,
2537 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2538 }
2539 },
2540 {
2541 "op" : "assign",
2542 "parameters" : [
2543 {
2544 "type" : "field",
2545 "value" : ["vlan_tag", "vlan_id"]
2546 },
2547 {
2548 "type" : "runtime_data",
2549 "value" : 3
2550 }
2551 ],
2552 "source_info" : {
2553 "filename" : "include/control/next.p4",
2554 "line" : 90,
2555 "column" : 8,
2556 "source_fragment" : "hdr.vlan_tag.vlan_id = new_vlan_id; ..."
2557 }
2558 },
2559 {
2560 "op" : "assign",
2561 "parameters" : [
2562 {
2563 "type" : "field",
2564 "value" : ["standard_metadata", "egress_spec"]
2565 },
2566 {
2567 "type" : "runtime_data",
2568 "value" : 0
2569 }
2570 ],
2571 "source_info" : {
2572 "filename" : "include/control/next.p4",
2573 "line" : 85,
2574 "column" : 8,
2575 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2576 }
2577 }
2578 ]
2579 },
2580 {
2581 "name" : "FabricIngress.next.l3_routing_hashed",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002582 "id" : 32,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002583 "runtime_data" : [
2584 {
2585 "name" : "port_num",
2586 "bitwidth" : 9
2587 },
2588 {
2589 "name" : "smac",
2590 "bitwidth" : 48
2591 },
2592 {
2593 "name" : "dmac",
2594 "bitwidth" : 48
2595 }
2596 ],
2597 "primitives" : [
2598 {
2599 "op" : "assign",
2600 "parameters" : [
2601 {
2602 "type" : "field",
2603 "value" : ["ethernet", "src_addr"]
2604 },
2605 {
2606 "type" : "runtime_data",
2607 "value" : 1
2608 }
2609 ],
2610 "source_info" : {
2611 "filename" : "include/control/next.p4",
2612 "line" : 37,
2613 "column" : 8,
2614 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2615 }
2616 },
2617 {
2618 "op" : "assign",
2619 "parameters" : [
2620 {
2621 "type" : "field",
2622 "value" : ["ethernet", "dst_addr"]
2623 },
2624 {
2625 "type" : "runtime_data",
2626 "value" : 2
2627 }
2628 ],
2629 "source_info" : {
2630 "filename" : "include/control/next.p4",
2631 "line" : 41,
2632 "column" : 8,
2633 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2634 }
2635 },
2636 {
2637 "op" : "assign",
2638 "parameters" : [
2639 {
2640 "type" : "field",
2641 "value" : ["standard_metadata", "egress_spec"]
2642 },
2643 {
2644 "type" : "runtime_data",
2645 "value" : 0
2646 }
2647 ],
2648 "source_info" : {
2649 "filename" : "include/control/next.p4",
2650 "line" : 149,
2651 "column" : 8,
2652 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2653 }
2654 }
2655 ]
2656 },
2657 {
2658 "name" : "FabricIngress.next.mpls_routing_v4_hashed",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002659 "id" : 33,
Yi Tseng47eac892018-07-11 02:17:04 +08002660 "runtime_data" : [
2661 {
2662 "name" : "port_num",
2663 "bitwidth" : 9
2664 },
2665 {
2666 "name" : "smac",
2667 "bitwidth" : 48
2668 },
2669 {
2670 "name" : "dmac",
2671 "bitwidth" : 48
2672 },
2673 {
2674 "name" : "label",
2675 "bitwidth" : 20
2676 }
2677 ],
2678 "primitives" : [
2679 {
2680 "op" : "assign",
2681 "parameters" : [
2682 {
2683 "type" : "field",
2684 "value" : ["ethernet", "src_addr"]
2685 },
2686 {
2687 "type" : "runtime_data",
2688 "value" : 1
2689 }
2690 ],
2691 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002692 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002693 "line" : 37,
2694 "column" : 8,
2695 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2696 }
2697 },
2698 {
2699 "op" : "assign",
2700 "parameters" : [
2701 {
2702 "type" : "field",
2703 "value" : ["ethernet", "dst_addr"]
2704 },
2705 {
2706 "type" : "runtime_data",
2707 "value" : 2
2708 }
2709 ],
2710 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002711 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002712 "line" : 41,
2713 "column" : 8,
2714 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2715 }
2716 },
2717 {
2718 "op" : "assign",
2719 "parameters" : [
2720 {
2721 "type" : "field",
2722 "value" : ["standard_metadata", "egress_spec"]
2723 },
2724 {
2725 "type" : "runtime_data",
2726 "value" : 0
2727 }
2728 ],
2729 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002730 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002731 "line" : 149,
2732 "column" : 8,
2733 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2734 }
2735 },
2736 {
2737 "op" : "add_header",
2738 "parameters" : [
2739 {
2740 "type" : "header",
2741 "value" : "mpls"
2742 }
2743 ],
2744 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002745 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002746 "line" : 46,
2747 "column" : 8,
2748 "source_fragment" : "hdr.mpls.setValid()"
2749 }
2750 },
2751 {
2752 "op" : "assign",
2753 "parameters" : [
2754 {
2755 "type" : "field",
2756 "value" : ["vlan_tag", "ether_type"]
2757 },
2758 {
2759 "type" : "hexstr",
2760 "value" : "0x8847"
2761 }
2762 ],
2763 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002764 "filename" : "include/control/../define.p4",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002765 "line" : 90,
Yi Tseng47eac892018-07-11 02:17:04 +08002766 "column" : 31,
2767 "source_fragment" : "0x8847; ..."
2768 }
2769 },
2770 {
2771 "op" : "assign",
2772 "parameters" : [
2773 {
2774 "type" : "field",
2775 "value" : ["mpls", "label"]
2776 },
2777 {
2778 "type" : "runtime_data",
2779 "value" : 3
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" : 48,
2785 "column" : 8,
2786 "source_fragment" : "hdr.mpls.label = label; ..."
2787 }
2788 },
2789 {
2790 "op" : "assign",
2791 "parameters" : [
2792 {
2793 "type" : "field",
2794 "value" : ["mpls", "tc"]
2795 },
2796 {
2797 "type" : "hexstr",
2798 "value" : "0x00"
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" : 49,
2804 "column" : 8,
2805 "source_fragment" : "hdr.mpls.tc = tc; ..."
2806 }
2807 },
2808 {
2809 "op" : "assign",
2810 "parameters" : [
2811 {
2812 "type" : "field",
2813 "value" : ["mpls", "bos"]
2814 },
2815 {
2816 "type" : "hexstr",
2817 "value" : "0x01"
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" : 50,
2823 "column" : 8,
2824 "source_fragment" : "hdr.mpls.bos = 1w1"
2825 }
2826 },
2827 {
2828 "op" : "assign",
2829 "parameters" : [
2830 {
2831 "type" : "field",
2832 "value" : ["mpls", "ttl"]
2833 },
2834 {
2835 "type" : "hexstr",
2836 "value" : "0x40"
2837 }
2838 ],
2839 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002840 "filename" : "include/control/../define.p4",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002841 "line" : 110,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002842 "column" : 32,
2843 "source_fragment" : "64; ..."
2844 }
2845 }
2846 ]
2847 },
2848 {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002849 "name" : "FabricIngress.next.mpls_routing_v6_hashed",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002850 "id" : 34,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002851 "runtime_data" : [
2852 {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002853 "name" : "port_num",
2854 "bitwidth" : 9
2855 },
2856 {
2857 "name" : "smac",
2858 "bitwidth" : 48
2859 },
2860 {
2861 "name" : "dmac",
2862 "bitwidth" : 48
2863 },
2864 {
2865 "name" : "label",
2866 "bitwidth" : 20
2867 }
2868 ],
2869 "primitives" : [
2870 {
2871 "op" : "assign",
2872 "parameters" : [
2873 {
2874 "type" : "field",
2875 "value" : ["ethernet", "src_addr"]
2876 },
2877 {
2878 "type" : "runtime_data",
2879 "value" : 1
2880 }
2881 ],
2882 "source_info" : {
2883 "filename" : "include/control/next.p4",
2884 "line" : 37,
2885 "column" : 8,
2886 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2887 }
2888 },
2889 {
2890 "op" : "assign",
2891 "parameters" : [
2892 {
2893 "type" : "field",
2894 "value" : ["ethernet", "dst_addr"]
2895 },
2896 {
2897 "type" : "runtime_data",
2898 "value" : 2
2899 }
2900 ],
2901 "source_info" : {
2902 "filename" : "include/control/next.p4",
2903 "line" : 41,
2904 "column" : 8,
2905 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2906 }
2907 },
2908 {
2909 "op" : "assign",
2910 "parameters" : [
2911 {
2912 "type" : "field",
2913 "value" : ["standard_metadata", "egress_spec"]
2914 },
2915 {
2916 "type" : "runtime_data",
2917 "value" : 0
2918 }
2919 ],
2920 "source_info" : {
2921 "filename" : "include/control/next.p4",
2922 "line" : 149,
2923 "column" : 8,
2924 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2925 }
2926 },
2927 {
2928 "op" : "add_header",
2929 "parameters" : [
2930 {
2931 "type" : "header",
2932 "value" : "mpls"
2933 }
2934 ],
2935 "source_info" : {
2936 "filename" : "include/control/next.p4",
2937 "line" : 46,
2938 "column" : 8,
2939 "source_fragment" : "hdr.mpls.setValid()"
2940 }
2941 },
2942 {
2943 "op" : "assign",
2944 "parameters" : [
2945 {
2946 "type" : "field",
2947 "value" : ["vlan_tag", "ether_type"]
2948 },
2949 {
2950 "type" : "hexstr",
2951 "value" : "0x8847"
2952 }
2953 ],
2954 "source_info" : {
2955 "filename" : "include/control/../define.p4",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002956 "line" : 90,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002957 "column" : 31,
2958 "source_fragment" : "0x8847; ..."
2959 }
2960 },
2961 {
2962 "op" : "assign",
2963 "parameters" : [
2964 {
2965 "type" : "field",
2966 "value" : ["mpls", "label"]
2967 },
2968 {
2969 "type" : "runtime_data",
2970 "value" : 3
2971 }
2972 ],
2973 "source_info" : {
2974 "filename" : "include/control/next.p4",
2975 "line" : 48,
2976 "column" : 8,
2977 "source_fragment" : "hdr.mpls.label = label; ..."
2978 }
2979 },
2980 {
2981 "op" : "assign",
2982 "parameters" : [
2983 {
2984 "type" : "field",
2985 "value" : ["mpls", "tc"]
2986 },
2987 {
2988 "type" : "hexstr",
2989 "value" : "0x00"
2990 }
2991 ],
2992 "source_info" : {
2993 "filename" : "include/control/next.p4",
2994 "line" : 49,
2995 "column" : 8,
2996 "source_fragment" : "hdr.mpls.tc = tc; ..."
2997 }
2998 },
2999 {
3000 "op" : "assign",
3001 "parameters" : [
3002 {
3003 "type" : "field",
3004 "value" : ["mpls", "bos"]
3005 },
3006 {
3007 "type" : "hexstr",
3008 "value" : "0x01"
3009 }
3010 ],
3011 "source_info" : {
3012 "filename" : "include/control/next.p4",
3013 "line" : 50,
3014 "column" : 8,
3015 "source_fragment" : "hdr.mpls.bos = 1w1"
3016 }
3017 },
3018 {
3019 "op" : "assign",
3020 "parameters" : [
3021 {
3022 "type" : "field",
3023 "value" : ["mpls", "ttl"]
3024 },
3025 {
3026 "type" : "hexstr",
3027 "value" : "0x40"
3028 }
3029 ],
3030 "source_info" : {
3031 "filename" : "include/control/../define.p4",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003032 "line" : 110,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003033 "column" : 32,
3034 "source_fragment" : "64; ..."
3035 }
3036 }
3037 ]
3038 },
3039 {
3040 "name" : "FabricIngress.next.set_mcast_group",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003041 "id" : 35,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003042 "runtime_data" : [
3043 {
Esin Karaman971fb7f2017-12-28 13:44:52 +00003044 "name" : "gid",
3045 "bitwidth" : 16
3046 }
3047 ],
3048 "primitives" : [
3049 {
3050 "op" : "assign",
3051 "parameters" : [
3052 {
3053 "type" : "field",
3054 "value" : ["standard_metadata", "mcast_grp"]
3055 },
3056 {
3057 "type" : "runtime_data",
3058 "value" : 0
3059 }
3060 ],
3061 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003062 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08003063 "line" : 202,
Esin Karaman971fb7f2017-12-28 13:44:52 +00003064 "column" : 8,
3065 "source_fragment" : "standard_metadata.mcast_grp = gid"
3066 }
Carmelo Casconea5400af2018-07-17 22:11:54 +02003067 },
3068 {
3069 "op" : "assign",
3070 "parameters" : [
3071 {
3072 "type" : "field",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003073 "value" : ["scalars", "fabric_metadata_t.is_multicast"]
Carmelo Casconea5400af2018-07-17 22:11:54 +02003074 },
3075 {
3076 "type" : "expression",
3077 "value" : {
3078 "type" : "expression",
3079 "value" : {
3080 "op" : "b2d",
3081 "left" : null,
3082 "right" : {
3083 "type" : "bool",
3084 "value" : true
3085 }
3086 }
3087 }
3088 }
3089 ],
3090 "source_info" : {
3091 "filename" : "include/control/next.p4",
3092 "line" : 203,
3093 "column" : 8,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003094 "source_fragment" : "fabric_metadata.is_multicast = true"
Carmelo Casconea5400af2018-07-17 22:11:54 +02003095 }
Esin Karaman971fb7f2017-12-28 13:44:52 +00003096 }
3097 ]
3098 },
3099 {
3100 "name" : "act",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003101 "id" : 36,
3102 "runtime_data" : [],
3103 "primitives" : [
3104 {
3105 "op" : "assign",
3106 "parameters" : [
3107 {
3108 "type" : "field",
3109 "value" : ["scalars", "spgw_normalizer_hasReturned_0"]
3110 },
3111 {
3112 "type" : "expression",
3113 "value" : {
3114 "type" : "expression",
3115 "value" : {
3116 "op" : "b2d",
3117 "left" : null,
3118 "right" : {
3119 "type" : "bool",
3120 "value" : true
3121 }
3122 }
3123 }
3124 }
3125 ],
3126 "source_info" : {
3127 "filename" : "include/spgw.p4",
3128 "line" : 30,
3129 "column" : 32,
3130 "source_fragment" : "return"
3131 }
3132 }
3133 ]
3134 },
3135 {
3136 "name" : "act_0",
3137 "id" : 37,
3138 "runtime_data" : [],
3139 "primitives" : [
3140 {
3141 "op" : "remove_header",
3142 "parameters" : [
3143 {
3144 "type" : "header",
3145 "value" : "gtpu_ipv4"
3146 }
3147 ],
3148 "source_info" : {
3149 "filename" : "fabric.p4",
3150 "line" : 52,
3151 "column" : 50,
3152 "source_fragment" : "hdr.gtpu_ipv4"
3153 }
3154 },
3155 {
3156 "op" : "remove_header",
3157 "parameters" : [
3158 {
3159 "type" : "header",
3160 "value" : "gtpu_udp"
3161 }
3162 ],
3163 "source_info" : {
3164 "filename" : "fabric.p4",
3165 "line" : 52,
3166 "column" : 65,
3167 "source_fragment" : "hdr.gtpu_udp"
3168 }
3169 },
3170 {
3171 "op" : "assign",
3172 "parameters" : [
3173 {
3174 "type" : "field",
3175 "value" : ["scalars", "spgw_normalizer_hasReturned_0"]
3176 },
3177 {
3178 "type" : "expression",
3179 "value" : {
3180 "type" : "expression",
3181 "value" : {
3182 "op" : "b2d",
3183 "left" : null,
3184 "right" : {
3185 "type" : "bool",
3186 "value" : false
3187 }
3188 }
3189 }
3190 }
3191 ]
3192 }
3193 ]
3194 },
3195 {
3196 "name" : "act_1",
3197 "id" : 38,
3198 "runtime_data" : [],
3199 "primitives" : [
3200 {
3201 "op" : "assign_header",
3202 "parameters" : [
3203 {
3204 "type" : "header",
3205 "value" : "udp"
3206 },
3207 {
3208 "type" : "header",
3209 "value" : "inner_udp"
3210 }
3211 ],
3212 "source_info" : {
3213 "filename" : "include/spgw.p4",
3214 "line" : 35,
3215 "column" : 16,
3216 "source_fragment" : "= inner_udp; ..."
3217 }
3218 }
3219 ]
3220 },
3221 {
3222 "name" : "act_2",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003223 "id" : 39,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003224 "runtime_data" : [],
3225 "primitives" : [
3226 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003227 "op" : "remove_header",
3228 "parameters" : [
3229 {
3230 "type" : "header",
3231 "value" : "udp"
3232 }
3233 ],
3234 "source_info" : {
3235 "filename" : "include/spgw.p4",
3236 "line" : 37,
3237 "column" : 12,
3238 "source_fragment" : "udp.setInvalid()"
3239 }
3240 }
3241 ]
3242 },
3243 {
3244 "name" : "act_3",
3245 "id" : 40,
3246 "runtime_data" : [],
3247 "primitives" : [
3248 {
3249 "op" : "assign_header",
3250 "parameters" : [
3251 {
3252 "type" : "header",
3253 "value" : "gtpu_ipv4"
3254 },
3255 {
3256 "type" : "header",
3257 "value" : "ipv4"
3258 }
3259 ],
3260 "source_info" : {
3261 "filename" : "include/spgw.p4",
3262 "line" : 31,
3263 "column" : 18,
3264 "source_fragment" : "= ipv4; ..."
3265 }
3266 },
3267 {
3268 "op" : "assign_header",
3269 "parameters" : [
3270 {
3271 "type" : "header",
3272 "value" : "ipv4"
3273 },
3274 {
3275 "type" : "header",
3276 "value" : "inner_ipv4"
3277 }
3278 ],
3279 "source_info" : {
3280 "filename" : "include/spgw.p4",
3281 "line" : 32,
3282 "column" : 13,
3283 "source_fragment" : "= inner_ipv4; ..."
3284 }
3285 },
3286 {
3287 "op" : "assign_header",
3288 "parameters" : [
3289 {
3290 "type" : "header",
3291 "value" : "gtpu_udp"
3292 },
3293 {
3294 "type" : "header",
3295 "value" : "udp"
3296 }
3297 ],
3298 "source_info" : {
3299 "filename" : "include/spgw.p4",
3300 "line" : 33,
3301 "column" : 17,
3302 "source_fragment" : "= udp; ..."
3303 }
3304 }
3305 ]
3306 },
3307 {
3308 "name" : "act_4",
3309 "id" : 41,
3310 "runtime_data" : [],
3311 "primitives" : [
3312 {
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003313 "op" : "assign",
3314 "parameters" : [
3315 {
3316 "type" : "field",
3317 "value" : ["standard_metadata", "egress_spec"]
3318 },
3319 {
3320 "type" : "field",
3321 "value" : ["packet_out", "egress_port"]
3322 }
3323 ],
3324 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003325 "filename" : "include/control/packetio.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003326 "line" : 26,
3327 "column" : 12,
3328 "source_fragment" : "standard_metadata.egress_spec = hdr.packet_out.egress_port"
3329 }
3330 },
3331 {
3332 "op" : "remove_header",
3333 "parameters" : [
3334 {
3335 "type" : "header",
3336 "value" : "packet_out"
3337 }
3338 ],
3339 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003340 "filename" : "include/control/packetio.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003341 "line" : 27,
3342 "column" : 12,
3343 "source_fragment" : "hdr.packet_out.setInvalid()"
3344 }
3345 }
3346 ]
3347 },
3348 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003349 "name" : "act_5",
3350 "id" : 42,
3351 "runtime_data" : [],
3352 "primitives" : [
3353 {
3354 "op" : "assign",
3355 "parameters" : [
3356 {
3357 "type" : "field",
3358 "value" : ["scalars", "spgw_ingress_tmp_1"]
3359 },
3360 {
3361 "type" : "expression",
3362 "value" : {
3363 "type" : "expression",
3364 "value" : {
3365 "op" : "b2d",
3366 "left" : null,
3367 "right" : {
3368 "type" : "bool",
3369 "value" : true
3370 }
3371 }
3372 }
3373 }
3374 ]
3375 }
3376 ]
3377 },
3378 {
3379 "name" : "act_6",
3380 "id" : 43,
3381 "runtime_data" : [],
3382 "primitives" : [
3383 {
3384 "op" : "assign",
3385 "parameters" : [
3386 {
3387 "type" : "field",
3388 "value" : ["scalars", "spgw_ingress_tmp_1"]
3389 },
3390 {
3391 "type" : "expression",
3392 "value" : {
3393 "type" : "expression",
3394 "value" : {
3395 "op" : "b2d",
3396 "left" : null,
3397 "right" : {
3398 "type" : "bool",
3399 "value" : false
3400 }
3401 }
3402 }
3403 }
3404 ]
3405 }
3406 ]
3407 },
3408 {
3409 "name" : "act_7",
3410 "id" : 44,
3411 "runtime_data" : [],
3412 "primitives" : [
3413 {
3414 "op" : "assign",
3415 "parameters" : [
3416 {
3417 "type" : "field",
3418 "value" : ["userMetadata.spgw", "direction"]
3419 },
3420 {
3421 "type" : "hexstr",
3422 "value" : "0x01"
3423 }
3424 ],
3425 "source_info" : {
3426 "filename" : "include/control/../define.p4",
3427 "line" : 116,
3428 "column" : 36,
3429 "source_fragment" : "2w1; ..."
3430 }
3431 }
3432 ]
3433 },
3434 {
3435 "name" : "act_8",
3436 "id" : 45,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003437 "runtime_data" : [],
3438 "primitives" : [
3439 {
3440 "op" : "assign",
3441 "parameters" : [
3442 {
3443 "type" : "field",
3444 "value" : ["scalars", "spgw_ingress_tmp_2"]
3445 },
3446 {
3447 "type" : "expression",
3448 "value" : {
3449 "type" : "expression",
3450 "value" : {
3451 "op" : "b2d",
3452 "left" : null,
3453 "right" : {
3454 "type" : "bool",
3455 "value" : true
3456 }
3457 }
3458 }
3459 }
3460 ]
3461 }
3462 ]
3463 },
3464 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003465 "name" : "act_9",
3466 "id" : 46,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003467 "runtime_data" : [],
3468 "primitives" : [
3469 {
3470 "op" : "assign",
3471 "parameters" : [
3472 {
3473 "type" : "field",
3474 "value" : ["scalars", "spgw_ingress_tmp_2"]
3475 },
3476 {
3477 "type" : "expression",
3478 "value" : {
3479 "type" : "expression",
3480 "value" : {
3481 "op" : "b2d",
3482 "left" : null,
3483 "right" : {
3484 "type" : "bool",
3485 "value" : false
3486 }
3487 }
3488 }
3489 }
3490 ]
3491 }
3492 ]
3493 },
3494 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003495 "name" : "act_10",
3496 "id" : 47,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003497 "runtime_data" : [],
3498 "primitives" : [
3499 {
3500 "op" : "assign",
3501 "parameters" : [
3502 {
3503 "type" : "field",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003504 "value" : ["userMetadata.spgw", "direction"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003505 },
3506 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003507 "type" : "hexstr",
3508 "value" : "0x02"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003509 }
3510 ],
3511 "source_info" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003512 "filename" : "include/control/../define.p4",
3513 "line" : 117,
3514 "column" : 38,
3515 "source_fragment" : "2w2; ..."
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003516 }
3517 }
3518 ]
3519 },
3520 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003521 "name" : "act_11",
3522 "id" : 48,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003523 "runtime_data" : [],
3524 "primitives" : [
3525 {
3526 "op" : "assign",
3527 "parameters" : [
3528 {
3529 "type" : "field",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003530 "value" : ["userMetadata.spgw", "direction"]
3531 },
3532 {
3533 "type" : "hexstr",
3534 "value" : "0x00"
3535 }
3536 ],
3537 "source_info" : {
3538 "filename" : "include/control/../define.p4",
3539 "line" : 115,
3540 "column" : 37,
3541 "source_fragment" : "2w0; ..."
3542 }
3543 },
3544 {
3545 "op" : "assign",
3546 "parameters" : [
3547 {
3548 "type" : "field",
3549 "value" : ["scalars", "spgw_ingress_hasReturned_0"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003550 },
3551 {
3552 "type" : "expression",
3553 "value" : {
3554 "type" : "expression",
3555 "value" : {
3556 "op" : "b2d",
3557 "left" : null,
3558 "right" : {
3559 "type" : "bool",
3560 "value" : true
3561 }
3562 }
3563 }
3564 }
3565 ],
3566 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003567 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07003568 "line" : 153,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003569 "column" : 12,
3570 "source_fragment" : "return"
3571 }
3572 }
3573 ]
3574 },
3575 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003576 "name" : "act_12",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003577 "id" : 49,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003578 "runtime_data" : [],
3579 "primitives" : [
3580 {
3581 "op" : "assign",
3582 "parameters" : [
3583 {
3584 "type" : "field",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003585 "value" : ["scalars", "spgw_ingress_hasReturned_0"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003586 },
3587 {
3588 "type" : "expression",
3589 "value" : {
3590 "type" : "expression",
3591 "value" : {
3592 "op" : "b2d",
3593 "left" : null,
3594 "right" : {
3595 "type" : "bool",
3596 "value" : false
3597 }
3598 }
3599 }
3600 }
3601 ]
3602 }
3603 ]
3604 },
3605 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003606 "name" : "act_13",
3607 "id" : 50,
Yi Tseng27b9bc02018-04-12 14:52:40 +08003608 "runtime_data" : [],
3609 "primitives" : [
3610 {
3611 "op" : "assign",
3612 "parameters" : [
3613 {
3614 "type" : "field",
3615 "value" : ["userMetadata.spgw", "ipv4_len"]
3616 },
3617 {
3618 "type" : "field",
3619 "value" : ["ipv4", "total_len"]
3620 }
3621 ],
3622 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003623 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07003624 "line" : 170,
Yi Tseng27b9bc02018-04-12 14:52:40 +08003625 "column" : 8,
3626 "source_fragment" : "spgw_meta.ipv4_len = ipv4.total_len"
3627 }
3628 }
3629 ]
3630 },
3631 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003632 "name" : "act_14",
3633 "id" : 51,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003634 "runtime_data" : [],
3635 "primitives" : [
3636 {
3637 "op" : "assign",
3638 "parameters" : [
3639 {
3640 "type" : "field",
3641 "value" : ["vlan_tag", "ether_type"]
3642 },
3643 {
3644 "type" : "hexstr",
3645 "value" : "0x0800"
3646 }
3647 ],
3648 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003649 "filename" : "include/control/../define.p4",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003650 "line" : 92,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003651 "column" : 31,
3652 "source_fragment" : "0x0800; ..."
3653 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003654 }
3655 ]
3656 },
3657 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003658 "name" : "act_15",
3659 "id" : 52,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003660 "runtime_data" : [],
3661 "primitives" : [
3662 {
3663 "op" : "assign",
3664 "parameters" : [
3665 {
3666 "type" : "field",
Carmelo Casconea5400af2018-07-17 22:11:54 +02003667 "value" : ["scalars", "next_hasReturned_0"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003668 },
3669 {
3670 "type" : "expression",
3671 "value" : {
3672 "type" : "expression",
3673 "value" : {
3674 "op" : "b2d",
3675 "left" : null,
3676 "right" : {
3677 "type" : "bool",
3678 "value" : false
3679 }
3680 }
3681 }
3682 }
3683 ]
3684 }
3685 ]
3686 },
3687 {
Carmelo Casconea5400af2018-07-17 22:11:54 +02003688 "name" : "act_16",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003689 "id" : 53,
Carmelo Casconea5400af2018-07-17 22:11:54 +02003690 "runtime_data" : [],
3691 "primitives" : [
3692 {
3693 "op" : "assign",
3694 "parameters" : [
3695 {
3696 "type" : "field",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003697 "value" : ["scalars", "next_tmp_4"]
Carmelo Casconea5400af2018-07-17 22:11:54 +02003698 },
3699 {
3700 "type" : "expression",
3701 "value" : {
3702 "type" : "expression",
3703 "value" : {
3704 "op" : "b2d",
3705 "left" : null,
3706 "right" : {
3707 "type" : "bool",
3708 "value" : true
3709 }
3710 }
3711 }
3712 }
3713 ]
3714 }
3715 ]
3716 },
3717 {
3718 "name" : "act_17",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003719 "id" : 54,
3720 "runtime_data" : [],
3721 "primitives" : [
3722 {
3723 "op" : "assign",
3724 "parameters" : [
3725 {
3726 "type" : "field",
3727 "value" : ["scalars", "next_tmp_4"]
3728 },
3729 {
3730 "type" : "expression",
3731 "value" : {
3732 "type" : "expression",
3733 "value" : {
3734 "op" : "b2d",
3735 "left" : null,
3736 "right" : {
3737 "type" : "bool",
3738 "value" : false
3739 }
3740 }
3741 }
3742 }
3743 ]
3744 }
3745 ]
3746 },
3747 {
3748 "name" : "act_18",
3749 "id" : 55,
3750 "runtime_data" : [],
3751 "primitives" : [
3752 {
3753 "op" : "assign",
3754 "parameters" : [
3755 {
3756 "type" : "field",
3757 "value" : ["scalars", "next_tmp_3"]
3758 },
3759 {
3760 "type" : "expression",
3761 "value" : {
3762 "type" : "expression",
3763 "value" : {
3764 "op" : "b2d",
3765 "left" : null,
3766 "right" : {
3767 "type" : "bool",
3768 "value" : true
3769 }
3770 }
3771 }
3772 }
3773 ]
3774 }
3775 ]
3776 },
3777 {
3778 "name" : "act_19",
3779 "id" : 56,
Carmelo Casconea5400af2018-07-17 22:11:54 +02003780 "runtime_data" : [],
3781 "primitives" : [
3782 {
3783 "op" : "assign",
3784 "parameters" : [
3785 {
3786 "type" : "field",
3787 "value" : ["scalars", "next_tmp_3"]
3788 },
3789 {
3790 "type" : "expression",
3791 "value" : {
3792 "type" : "expression",
3793 "value" : {
3794 "op" : "b2d",
3795 "left" : null,
3796 "right" : {
3797 "type" : "bool",
3798 "value" : false
3799 }
3800 }
3801 }
3802 }
3803 ]
3804 }
3805 ]
3806 },
3807 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003808 "name" : "act_20",
3809 "id" : 57,
Carmelo Casconea5400af2018-07-17 22:11:54 +02003810 "runtime_data" : [],
3811 "primitives" : [
3812 {
3813 "op" : "assign",
3814 "parameters" : [
3815 {
3816 "type" : "field",
3817 "value" : ["scalars", "next_tmp_2"]
3818 },
3819 {
3820 "type" : "expression",
3821 "value" : {
3822 "type" : "expression",
3823 "value" : {
3824 "op" : "b2d",
3825 "left" : null,
3826 "right" : {
3827 "type" : "bool",
3828 "value" : true
3829 }
3830 }
3831 }
3832 }
3833 ]
3834 }
3835 ]
3836 },
3837 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003838 "name" : "act_21",
3839 "id" : 58,
Carmelo Casconea5400af2018-07-17 22:11:54 +02003840 "runtime_data" : [],
3841 "primitives" : [
3842 {
3843 "op" : "assign",
3844 "parameters" : [
3845 {
3846 "type" : "field",
3847 "value" : ["scalars", "next_tmp_2"]
3848 },
3849 {
3850 "type" : "expression",
3851 "value" : {
3852 "type" : "expression",
3853 "value" : {
3854 "op" : "b2d",
3855 "left" : null,
3856 "right" : {
3857 "type" : "bool",
3858 "value" : false
3859 }
3860 }
3861 }
3862 }
3863 ]
3864 }
3865 ]
3866 },
3867 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003868 "name" : "act_22",
3869 "id" : 59,
Carmelo Casconea5400af2018-07-17 22:11:54 +02003870 "runtime_data" : [],
3871 "primitives" : [
3872 {
3873 "op" : "assign",
3874 "parameters" : [
3875 {
3876 "type" : "field",
3877 "value" : ["scalars", "next_hasReturned_0"]
3878 },
3879 {
3880 "type" : "expression",
3881 "value" : {
3882 "type" : "expression",
3883 "value" : {
3884 "op" : "b2d",
3885 "left" : null,
3886 "right" : {
3887 "type" : "bool",
3888 "value" : true
3889 }
3890 }
3891 }
3892 }
3893 ],
3894 "source_info" : {
3895 "filename" : "include/control/next.p4",
3896 "line" : 223,
3897 "column" : 20,
3898 "source_fragment" : "return"
3899 }
3900 }
3901 ]
3902 },
3903 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003904 "name" : "act_23",
3905 "id" : 60,
Carmelo Casconea5400af2018-07-17 22:11:54 +02003906 "runtime_data" : [],
3907 "primitives" : [
3908 {
3909 "op" : "assign",
3910 "parameters" : [
3911 {
3912 "type" : "field",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003913 "value" : ["ipv4", "ttl"]
3914 },
3915 {
3916 "type" : "expression",
3917 "value" : {
3918 "type" : "expression",
3919 "value" : {
3920 "op" : "&",
3921 "left" : {
3922 "type" : "expression",
3923 "value" : {
3924 "op" : "+",
3925 "left" : {
3926 "type" : "field",
3927 "value" : ["ipv4", "ttl"]
3928 },
3929 "right" : {
3930 "type" : "hexstr",
3931 "value" : "0xff"
3932 }
3933 }
3934 },
3935 "right" : {
3936 "type" : "hexstr",
3937 "value" : "0xff"
3938 }
3939 }
3940 }
3941 }
3942 ],
3943 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003944 "filename" : "include/control/next.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02003945 "line" : 230,
3946 "column" : 16,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003947 "source_fragment" : "hdr.ipv4.ttl = hdr.ipv4.ttl - 1"
3948 }
3949 }
3950 ]
3951 },
3952 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003953 "name" : "act_24",
3954 "id" : 61,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003955 "runtime_data" : [],
3956 "primitives" : [
3957 {
3958 "op" : "assign",
3959 "parameters" : [
3960 {
3961 "type" : "field",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003962 "value" : ["scalars", "tmp_1"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003963 },
3964 {
3965 "type" : "expression",
3966 "value" : {
3967 "type" : "expression",
3968 "value" : {
3969 "op" : "&",
3970 "left" : {
3971 "type" : "field",
3972 "value" : ["standard_metadata", "egress_spec"]
3973 },
3974 "right" : {
3975 "type" : "hexstr",
3976 "value" : "0xffffffff"
3977 }
3978 }
3979 }
3980 }
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003981 ],
3982 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003983 "filename" : "include/control/port_counter.p4",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003984 "line" : 28,
3985 "column" : 38,
3986 "source_fragment" : "(bit<32>)standard_metadata.egress_spec"
3987 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003988 },
3989 {
3990 "op" : "count",
3991 "parameters" : [
3992 {
3993 "type" : "counter_array",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003994 "value" : "FabricIngress.port_counters_control.egress_port_counter"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003995 },
3996 {
3997 "type" : "field",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07003998 "value" : ["scalars", "tmp_1"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08003999 }
4000 ],
4001 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004002 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004003 "line" : 28,
4004 "column" : 12,
4005 "source_fragment" : "egress_port_counter.count((bit<32>)standard_metadata.egress_spec)"
4006 }
4007 }
4008 ]
4009 },
4010 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004011 "name" : "act_25",
4012 "id" : 62,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004013 "runtime_data" : [],
4014 "primitives" : [
4015 {
4016 "op" : "assign",
4017 "parameters" : [
4018 {
4019 "type" : "field",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004020 "value" : ["scalars", "tmp_2"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004021 },
4022 {
4023 "type" : "expression",
4024 "value" : {
4025 "type" : "expression",
4026 "value" : {
4027 "op" : "&",
4028 "left" : {
4029 "type" : "field",
4030 "value" : ["standard_metadata", "ingress_port"]
4031 },
4032 "right" : {
4033 "type" : "hexstr",
4034 "value" : "0xffffffff"
4035 }
4036 }
4037 }
4038 }
Carmelo Cascone6af4e172018-06-15 16:01:30 +02004039 ],
4040 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004041 "filename" : "include/control/port_counter.p4",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02004042 "line" : 31,
4043 "column" : 39,
4044 "source_fragment" : "(bit<32>)standard_metadata.ingress_port"
4045 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004046 },
4047 {
4048 "op" : "count",
4049 "parameters" : [
4050 {
4051 "type" : "counter_array",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004052 "value" : "FabricIngress.port_counters_control.ingress_port_counter"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004053 },
4054 {
4055 "type" : "field",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004056 "value" : ["scalars", "tmp_2"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004057 }
4058 ],
4059 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004060 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004061 "line" : 31,
4062 "column" : 12,
4063 "source_fragment" : "ingress_port_counter.count((bit<32>)standard_metadata.ingress_port)"
4064 }
4065 }
4066 ]
4067 },
4068 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004069 "name" : "nop",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004070 "id" : 63,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004071 "runtime_data" : [],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004072 "primitives" : []
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004073 },
4074 {
Carmelo Casconea5400af2018-07-17 22:11:54 +02004075 "name" : "drop_now",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004076 "id" : 64,
4077 "runtime_data" : [],
4078 "primitives" : [
4079 {
4080 "op" : "drop",
4081 "parameters" : [],
4082 "source_info" : {
4083 "filename" : "include/control/../action.p4",
4084 "line" : 24,
4085 "column" : 4,
4086 "source_fragment" : "mark_to_drop()"
4087 }
4088 },
4089 {
4090 "op" : "exit",
4091 "parameters" : [],
4092 "source_info" : {
4093 "filename" : "include/control/../action.p4",
4094 "line" : 25,
4095 "column" : 4,
4096 "source_fragment" : "exit"
4097 }
4098 }
4099 ]
4100 },
4101 {
4102 "name" : "drop_now",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02004103 "id" : 65,
4104 "runtime_data" : [],
4105 "primitives" : [
4106 {
4107 "op" : "drop",
4108 "parameters" : [],
4109 "source_info" : {
4110 "filename" : "include/control/../action.p4",
4111 "line" : 24,
4112 "column" : 4,
4113 "source_fragment" : "mark_to_drop()"
4114 }
4115 },
4116 {
4117 "op" : "exit",
4118 "parameters" : [],
4119 "source_info" : {
4120 "filename" : "include/control/../action.p4",
4121 "line" : 25,
4122 "column" : 4,
4123 "source_fragment" : "exit"
4124 }
4125 }
4126 ]
4127 },
4128 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004129 "name" : "FabricEgress.spgw_egress.gtpu_encap",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004130 "id" : 66,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004131 "runtime_data" : [],
4132 "primitives" : [
4133 {
4134 "op" : "add_header",
4135 "parameters" : [
4136 {
4137 "type" : "header",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004138 "value" : "gtpu_ipv4"
4139 }
4140 ],
4141 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004142 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07004143 "line" : 185,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004144 "column" : 8,
4145 "source_fragment" : "gtpu_ipv4.setValid()"
4146 }
4147 },
4148 {
4149 "op" : "assign",
4150 "parameters" : [
4151 {
4152 "type" : "field",
4153 "value" : ["gtpu_ipv4", "version"]
4154 },
4155 {
4156 "type" : "hexstr",
4157 "value" : "0x04"
4158 }
4159 ],
4160 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004161 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07004162 "line" : 186,
Yi Tseng3d3956d2018-01-31 17:28:05 -08004163 "column" : 8,
4164 "source_fragment" : "gtpu_ipv4.version = 4"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004165 }
4166 },
4167 {
4168 "op" : "assign",
4169 "parameters" : [
4170 {
4171 "type" : "field",
4172 "value" : ["gtpu_ipv4", "ihl"]
4173 },
4174 {
4175 "type" : "hexstr",
4176 "value" : "0x05"
4177 }
4178 ],
4179 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004180 "filename" : "include/control/../define.p4",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004181 "line" : 101,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004182 "column" : 28,
4183 "source_fragment" : "5; ..."
4184 }
4185 },
4186 {
4187 "op" : "assign",
4188 "parameters" : [
4189 {
4190 "type" : "field",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09004191 "value" : ["gtpu_ipv4", "dscp"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004192 },
4193 {
4194 "type" : "hexstr",
4195 "value" : "0x00"
4196 }
4197 ],
4198 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004199 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07004200 "line" : 188,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004201 "column" : 8,
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09004202 "source_fragment" : "gtpu_ipv4.dscp = 0"
4203 }
4204 },
4205 {
4206 "op" : "assign",
4207 "parameters" : [
4208 {
4209 "type" : "field",
4210 "value" : ["gtpu_ipv4", "ecn"]
4211 },
4212 {
4213 "type" : "hexstr",
4214 "value" : "0x00"
4215 }
4216 ],
4217 "source_info" : {
4218 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07004219 "line" : 189,
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09004220 "column" : 8,
4221 "source_fragment" : "gtpu_ipv4.ecn = 0"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004222 }
4223 },
4224 {
4225 "op" : "assign",
4226 "parameters" : [
4227 {
4228 "type" : "field",
4229 "value" : ["gtpu_ipv4", "total_len"]
4230 },
4231 {
4232 "type" : "expression",
4233 "value" : {
4234 "type" : "expression",
4235 "value" : {
4236 "op" : "&",
4237 "left" : {
4238 "type" : "expression",
4239 "value" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004240 "op" : "+",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004241 "left" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004242 "type" : "field",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004243 "value" : ["ipv4", "total_len"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08004244 },
4245 "right" : {
4246 "type" : "hexstr",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004247 "value" : "0x0024"
Carmelo Cascone14cde402018-01-25 01:57:18 -08004248 }
4249 }
4250 },
4251 "right" : {
4252 "type" : "hexstr",
4253 "value" : "0xffff"
4254 }
4255 }
4256 }
4257 }
4258 ],
4259 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004260 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07004261 "line" : 190,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004262 "column" : 8,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004263 "source_fragment" : "gtpu_ipv4.total_len = ipv4.total_len ..."
Carmelo Cascone14cde402018-01-25 01:57:18 -08004264 }
4265 },
4266 {
4267 "op" : "assign",
4268 "parameters" : [
4269 {
4270 "type" : "field",
4271 "value" : ["gtpu_ipv4", "identification"]
4272 },
4273 {
4274 "type" : "hexstr",
4275 "value" : "0x1513"
4276 }
4277 ],
4278 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004279 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07004280 "line" : 192,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004281 "column" : 8,
4282 "source_fragment" : "gtpu_ipv4.identification = 0x1513"
4283 }
4284 },
4285 {
4286 "op" : "assign",
4287 "parameters" : [
4288 {
4289 "type" : "field",
4290 "value" : ["gtpu_ipv4", "flags"]
4291 },
4292 {
4293 "type" : "hexstr",
4294 "value" : "0x00"
4295 }
4296 ],
4297 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004298 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07004299 "line" : 193,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004300 "column" : 8,
4301 "source_fragment" : "gtpu_ipv4.flags = 0"
4302 }
4303 },
4304 {
4305 "op" : "assign",
4306 "parameters" : [
4307 {
4308 "type" : "field",
4309 "value" : ["gtpu_ipv4", "frag_offset"]
4310 },
4311 {
4312 "type" : "hexstr",
4313 "value" : "0x0000"
4314 }
4315 ],
4316 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004317 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07004318 "line" : 194,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004319 "column" : 8,
4320 "source_fragment" : "gtpu_ipv4.frag_offset = 0"
4321 }
4322 },
4323 {
4324 "op" : "assign",
4325 "parameters" : [
4326 {
4327 "type" : "field",
4328 "value" : ["gtpu_ipv4", "ttl"]
4329 },
4330 {
4331 "type" : "hexstr",
4332 "value" : "0x40"
4333 }
4334 ],
4335 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004336 "filename" : "include/control/../define.p4",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004337 "line" : 111,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004338 "column" : 32,
4339 "source_fragment" : "64; ..."
4340 }
4341 },
4342 {
4343 "op" : "assign",
4344 "parameters" : [
4345 {
4346 "type" : "field",
4347 "value" : ["gtpu_ipv4", "protocol"]
4348 },
4349 {
4350 "type" : "hexstr",
4351 "value" : "0x11"
4352 }
4353 ],
4354 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004355 "filename" : "include/control/../define.p4",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004356 "line" : 98,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004357 "column" : 25,
4358 "source_fragment" : "17; ..."
4359 }
4360 },
4361 {
4362 "op" : "assign",
4363 "parameters" : [
4364 {
4365 "type" : "field",
4366 "value" : ["gtpu_ipv4", "dst_addr"]
4367 },
4368 {
4369 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004370 "value" : ["userMetadata.spgw", "s1u_enb_addr"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08004371 }
4372 ],
4373 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004374 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07004375 "line" : 197,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004376 "column" : 8,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004377 "source_fragment" : "gtpu_ipv4.dst_addr = spgw_meta.s1u_enb_addr"
Carmelo Cascone14cde402018-01-25 01:57:18 -08004378 }
4379 },
4380 {
4381 "op" : "assign",
4382 "parameters" : [
4383 {
4384 "type" : "field",
4385 "value" : ["gtpu_ipv4", "src_addr"]
4386 },
4387 {
4388 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004389 "value" : ["userMetadata.spgw", "s1u_sgw_addr"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08004390 }
4391 ],
4392 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004393 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07004394 "line" : 198,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004395 "column" : 8,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004396 "source_fragment" : "gtpu_ipv4.src_addr = spgw_meta.s1u_sgw_addr"
Carmelo Cascone14cde402018-01-25 01:57:18 -08004397 }
4398 },
4399 {
4400 "op" : "assign",
4401 "parameters" : [
4402 {
4403 "type" : "field",
4404 "value" : ["gtpu_ipv4", "hdr_checksum"]
4405 },
4406 {
4407 "type" : "hexstr",
4408 "value" : "0x0000"
4409 }
4410 ],
4411 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004412 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07004413 "line" : 199,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004414 "column" : 8,
4415 "source_fragment" : "gtpu_ipv4.hdr_checksum = 0"
4416 }
4417 },
4418 {
4419 "op" : "add_header",
4420 "parameters" : [
4421 {
4422 "type" : "header",
4423 "value" : "gtpu_udp"
4424 }
4425 ],
4426 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004427 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07004428 "line" : 201,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004429 "column" : 8,
4430 "source_fragment" : "gtpu_udp.setValid()"
4431 }
4432 },
4433 {
4434 "op" : "assign",
4435 "parameters" : [
4436 {
4437 "type" : "field",
4438 "value" : ["gtpu_udp", "src_port"]
4439 },
4440 {
4441 "type" : "hexstr",
4442 "value" : "0x0868"
4443 }
4444 ],
4445 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004446 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07004447 "line" : 202,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004448 "column" : 8,
4449 "source_fragment" : "gtpu_udp.src_port = 2152"
4450 }
4451 },
4452 {
4453 "op" : "assign",
4454 "parameters" : [
4455 {
4456 "type" : "field",
4457 "value" : ["gtpu_udp", "dst_port"]
4458 },
4459 {
4460 "type" : "hexstr",
4461 "value" : "0x0868"
4462 }
4463 ],
4464 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004465 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07004466 "line" : 203,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004467 "column" : 8,
4468 "source_fragment" : "gtpu_udp.dst_port = 2152"
4469 }
4470 },
4471 {
4472 "op" : "assign",
4473 "parameters" : [
4474 {
4475 "type" : "field",
4476 "value" : ["gtpu_udp", "len"]
4477 },
4478 {
4479 "type" : "expression",
4480 "value" : {
4481 "type" : "expression",
4482 "value" : {
4483 "op" : "&",
4484 "left" : {
4485 "type" : "expression",
4486 "value" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004487 "op" : "+",
Carmelo Cascone14cde402018-01-25 01:57:18 -08004488 "left" : {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004489 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004490 "value" : ["userMetadata.spgw", "ipv4_len"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004491 },
4492 "right" : {
4493 "type" : "hexstr",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004494 "value" : "0x0010"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004495 }
4496 }
4497 },
4498 "right" : {
4499 "type" : "hexstr",
4500 "value" : "0xffff"
4501 }
4502 }
4503 }
4504 }
4505 ],
4506 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004507 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07004508 "line" : 204,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004509 "column" : 8,
Yi Tseng27b9bc02018-04-12 14:52:40 +08004510 "source_fragment" : "gtpu_udp.len = spgw_meta.ipv4_len ..."
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004511 }
4512 },
4513 {
4514 "op" : "assign",
4515 "parameters" : [
4516 {
4517 "type" : "field",
4518 "value" : ["gtpu_udp", "checksum"]
4519 },
4520 {
4521 "type" : "hexstr",
4522 "value" : "0x0000"
4523 }
4524 ],
4525 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004526 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07004527 "line" : 206,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004528 "column" : 8,
4529 "source_fragment" : "gtpu_udp.checksum = 0"
4530 }
Carmelo Cascone14cde402018-01-25 01:57:18 -08004531 },
4532 {
4533 "op" : "add_header",
4534 "parameters" : [
4535 {
4536 "type" : "header",
4537 "value" : "gtpu"
4538 }
4539 ],
4540 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004541 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07004542 "line" : 208,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004543 "column" : 8,
4544 "source_fragment" : "gtpu.setValid()"
4545 }
4546 },
4547 {
4548 "op" : "assign",
4549 "parameters" : [
4550 {
4551 "type" : "field",
4552 "value" : ["gtpu", "version"]
4553 },
4554 {
4555 "type" : "hexstr",
4556 "value" : "0x01"
4557 }
4558 ],
4559 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004560 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07004561 "line" : 209,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004562 "column" : 8,
4563 "source_fragment" : "gtpu.version = 0x01"
4564 }
4565 },
4566 {
4567 "op" : "assign",
4568 "parameters" : [
4569 {
4570 "type" : "field",
4571 "value" : ["gtpu", "pt"]
4572 },
4573 {
4574 "type" : "hexstr",
4575 "value" : "0x01"
4576 }
4577 ],
4578 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004579 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07004580 "line" : 210,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004581 "column" : 8,
4582 "source_fragment" : "gtpu.pt = 0x01"
4583 }
4584 },
4585 {
4586 "op" : "assign",
4587 "parameters" : [
4588 {
4589 "type" : "field",
4590 "value" : ["gtpu", "spare"]
4591 },
4592 {
4593 "type" : "hexstr",
4594 "value" : "0x00"
4595 }
4596 ],
4597 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004598 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07004599 "line" : 211,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004600 "column" : 8,
4601 "source_fragment" : "gtpu.spare = 0"
4602 }
4603 },
4604 {
4605 "op" : "assign",
4606 "parameters" : [
4607 {
4608 "type" : "field",
4609 "value" : ["gtpu", "ex_flag"]
4610 },
4611 {
4612 "type" : "hexstr",
4613 "value" : "0x00"
4614 }
4615 ],
4616 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004617 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07004618 "line" : 212,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004619 "column" : 8,
4620 "source_fragment" : "gtpu.ex_flag = 0"
4621 }
4622 },
4623 {
4624 "op" : "assign",
4625 "parameters" : [
4626 {
4627 "type" : "field",
4628 "value" : ["gtpu", "seq_flag"]
4629 },
4630 {
4631 "type" : "hexstr",
4632 "value" : "0x00"
4633 }
4634 ],
4635 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004636 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07004637 "line" : 213,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004638 "column" : 8,
4639 "source_fragment" : "gtpu.seq_flag = 0"
4640 }
4641 },
4642 {
4643 "op" : "assign",
4644 "parameters" : [
4645 {
4646 "type" : "field",
4647 "value" : ["gtpu", "npdu_flag"]
4648 },
4649 {
4650 "type" : "hexstr",
4651 "value" : "0x00"
4652 }
4653 ],
4654 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004655 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07004656 "line" : 214,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004657 "column" : 8,
4658 "source_fragment" : "gtpu.npdu_flag = 0"
4659 }
4660 },
4661 {
4662 "op" : "assign",
4663 "parameters" : [
4664 {
4665 "type" : "field",
4666 "value" : ["gtpu", "msgtype"]
4667 },
4668 {
4669 "type" : "hexstr",
4670 "value" : "0xff"
4671 }
4672 ],
4673 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004674 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07004675 "line" : 215,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004676 "column" : 8,
4677 "source_fragment" : "gtpu.msgtype = 0xff"
4678 }
4679 },
4680 {
4681 "op" : "assign",
4682 "parameters" : [
4683 {
4684 "type" : "field",
4685 "value" : ["gtpu", "msglen"]
4686 },
4687 {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08004688 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004689 "value" : ["userMetadata.spgw", "ipv4_len"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08004690 }
4691 ],
4692 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004693 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07004694 "line" : 216,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004695 "column" : 8,
Yi Tseng27b9bc02018-04-12 14:52:40 +08004696 "source_fragment" : "gtpu.msglen = spgw_meta.ipv4_len"
Carmelo Cascone14cde402018-01-25 01:57:18 -08004697 }
4698 },
4699 {
4700 "op" : "assign",
4701 "parameters" : [
4702 {
4703 "type" : "field",
4704 "value" : ["gtpu", "teid"]
4705 },
4706 {
4707 "type" : "field",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004708 "value" : ["userMetadata.spgw", "teid"]
Carmelo Cascone14cde402018-01-25 01:57:18 -08004709 }
4710 ],
4711 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004712 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07004713 "line" : 217,
Carmelo Cascone14cde402018-01-25 01:57:18 -08004714 "column" : 8,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08004715 "source_fragment" : "gtpu.teid = spgw_meta.teid"
Carmelo Cascone14cde402018-01-25 01:57:18 -08004716 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004717 }
4718 ]
4719 },
4720 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004721 "name" : "FabricEgress.pkt_io_egress.pop_vlan",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004722 "id" : 67,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004723 "runtime_data" : [],
4724 "primitives" : [
4725 {
4726 "op" : "assign",
4727 "parameters" : [
4728 {
4729 "type" : "field",
4730 "value" : ["ethernet", "ether_type"]
4731 },
4732 {
4733 "type" : "field",
4734 "value" : ["vlan_tag", "ether_type"]
4735 }
4736 ],
4737 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004738 "filename" : "include/control/packetio.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08004739 "line" : 38,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004740 "column" : 8,
4741 "source_fragment" : "hdr.ethernet.ether_type = hdr.vlan_tag.ether_type"
4742 }
4743 },
4744 {
4745 "op" : "remove_header",
4746 "parameters" : [
4747 {
4748 "type" : "header",
4749 "value" : "vlan_tag"
4750 }
4751 ],
4752 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004753 "filename" : "include/control/packetio.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08004754 "line" : 39,
4755 "column" : 8,
4756 "source_fragment" : "hdr.vlan_tag.setInvalid()"
4757 }
4758 }
4759 ]
4760 },
4761 {
4762 "name" : "FabricEgress.egress_next.pop_vlan",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004763 "id" : 68,
Yi Tseng47eac892018-07-11 02:17:04 +08004764 "runtime_data" : [],
4765 "primitives" : [
4766 {
4767 "op" : "assign",
4768 "parameters" : [
4769 {
4770 "type" : "field",
4771 "value" : ["ethernet", "ether_type"]
4772 },
4773 {
4774 "type" : "field",
4775 "value" : ["vlan_tag", "ether_type"]
4776 }
4777 ],
4778 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004779 "filename" : "include/control/next.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004780 "line" : 253,
Yi Tseng47eac892018-07-11 02:17:04 +08004781 "column" : 8,
4782 "source_fragment" : "hdr.ethernet.ether_type = hdr.vlan_tag.ether_type"
4783 }
4784 },
4785 {
4786 "op" : "remove_header",
4787 "parameters" : [
4788 {
4789 "type" : "header",
4790 "value" : "vlan_tag"
4791 }
4792 ],
4793 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004794 "filename" : "include/control/next.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004795 "line" : 254,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004796 "column" : 8,
4797 "source_fragment" : "hdr.vlan_tag.setInvalid()"
4798 }
4799 }
4800 ]
4801 },
4802 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004803 "name" : "act_26",
4804 "id" : 69,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004805 "runtime_data" : [],
4806 "primitives" : [
4807 {
4808 "op" : "add_header",
4809 "parameters" : [
4810 {
4811 "type" : "header",
4812 "value" : "packet_in"
4813 }
4814 ],
4815 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004816 "filename" : "include/control/packetio.p4",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02004817 "line" : 51,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004818 "column" : 12,
4819 "source_fragment" : "hdr.packet_in.setValid()"
4820 }
4821 },
4822 {
4823 "op" : "assign",
4824 "parameters" : [
4825 {
4826 "type" : "field",
4827 "value" : ["packet_in", "ingress_port"]
4828 },
4829 {
4830 "type" : "field",
4831 "value" : ["standard_metadata", "ingress_port"]
4832 }
4833 ],
4834 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004835 "filename" : "include/control/packetio.p4",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02004836 "line" : 52,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004837 "column" : 12,
4838 "source_fragment" : "hdr.packet_in.ingress_port = standard_metadata.ingress_port"
4839 }
4840 }
4841 ]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004842 }
4843 ],
4844 "pipelines" : [
4845 {
4846 "name" : "ingress",
4847 "id" : 0,
4848 "source_info" : {
4849 "filename" : "fabric.p4",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09004850 "line" : 40,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004851 "column" : 8,
4852 "source_fragment" : "FabricIngress"
4853 },
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004854 "init_table" : "tbl_act",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004855 "tables" : [
4856 {
4857 "name" : "tbl_act",
4858 "id" : 0,
4859 "key" : [],
4860 "match_type" : "exact",
4861 "type" : "simple",
4862 "max_size" : 1024,
4863 "with_counters" : false,
4864 "support_timeout" : false,
4865 "direct_meters" : null,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004866 "action_ids" : [37],
4867 "actions" : ["act_0"],
4868 "base_default_next" : "node_3",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004869 "next_tables" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004870 "act_0" : "node_3"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004871 },
4872 "default_entry" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004873 "action_id" : 37,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004874 "action_const" : true,
4875 "action_data" : [],
4876 "action_entry_const" : true
4877 }
4878 },
4879 {
4880 "name" : "tbl_act_0",
4881 "id" : 1,
4882 "key" : [],
4883 "match_type" : "exact",
4884 "type" : "simple",
4885 "max_size" : 1024,
4886 "with_counters" : false,
4887 "support_timeout" : false,
4888 "direct_meters" : null,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004889 "action_ids" : [36],
4890 "actions" : ["act"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004891 "base_default_next" : "node_5",
4892 "next_tables" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004893 "act" : "node_5"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004894 },
4895 "default_entry" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004896 "action_id" : 36,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004897 "action_const" : true,
4898 "action_data" : [],
4899 "action_entry_const" : true
4900 }
4901 },
4902 {
4903 "name" : "tbl_act_1",
4904 "id" : 2,
4905 "key" : [],
4906 "match_type" : "exact",
4907 "type" : "simple",
4908 "max_size" : 1024,
4909 "with_counters" : false,
4910 "support_timeout" : false,
4911 "direct_meters" : null,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004912 "action_ids" : [40],
4913 "actions" : ["act_3"],
4914 "base_default_next" : "node_7",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004915 "next_tables" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004916 "act_3" : "node_7"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08004917 },
4918 "default_entry" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004919 "action_id" : 40,
4920 "action_const" : true,
4921 "action_data" : [],
4922 "action_entry_const" : true
4923 }
4924 },
4925 {
4926 "name" : "tbl_act_2",
4927 "id" : 3,
4928 "key" : [],
4929 "match_type" : "exact",
4930 "type" : "simple",
4931 "max_size" : 1024,
4932 "with_counters" : false,
4933 "support_timeout" : false,
4934 "direct_meters" : null,
4935 "action_ids" : [38],
4936 "actions" : ["act_1"],
4937 "base_default_next" : "node_10",
4938 "next_tables" : {
4939 "act_1" : "node_10"
4940 },
4941 "default_entry" : {
4942 "action_id" : 38,
4943 "action_const" : true,
4944 "action_data" : [],
4945 "action_entry_const" : true
4946 }
4947 },
4948 {
4949 "name" : "tbl_act_3",
4950 "id" : 4,
4951 "key" : [],
4952 "match_type" : "exact",
4953 "type" : "simple",
4954 "max_size" : 1024,
4955 "with_counters" : false,
4956 "support_timeout" : false,
4957 "direct_meters" : null,
4958 "action_ids" : [39],
4959 "actions" : ["act_2"],
4960 "base_default_next" : "node_10",
4961 "next_tables" : {
4962 "act_2" : "node_10"
4963 },
4964 "default_entry" : {
4965 "action_id" : 39,
4966 "action_const" : true,
4967 "action_data" : [],
4968 "action_entry_const" : true
4969 }
4970 },
4971 {
4972 "name" : "tbl_act_4",
4973 "id" : 5,
4974 "key" : [],
4975 "match_type" : "exact",
4976 "type" : "simple",
4977 "max_size" : 1024,
4978 "with_counters" : false,
4979 "support_timeout" : false,
4980 "direct_meters" : null,
4981 "action_ids" : [41],
4982 "actions" : ["act_4"],
4983 "base_default_next" : null,
4984 "next_tables" : {
4985 "act_4" : null
4986 },
4987 "default_entry" : {
4988 "action_id" : 41,
4989 "action_const" : true,
4990 "action_data" : [],
4991 "action_entry_const" : true
4992 }
4993 },
4994 {
4995 "name" : "tbl_act_5",
4996 "id" : 6,
4997 "key" : [],
4998 "match_type" : "exact",
4999 "type" : "simple",
5000 "max_size" : 1024,
5001 "with_counters" : false,
5002 "support_timeout" : false,
5003 "direct_meters" : null,
5004 "action_ids" : [49],
5005 "actions" : ["act_12"],
5006 "base_default_next" : "node_13",
5007 "next_tables" : {
5008 "act_12" : "node_13"
5009 },
5010 "default_entry" : {
5011 "action_id" : 49,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005012 "action_const" : true,
5013 "action_data" : [],
5014 "action_entry_const" : true
5015 }
5016 },
5017 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005018 "name" : "FabricIngress.spgw_ingress.s1u_filter_table",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005019 "id" : 7,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005020 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005021 "filename" : "include/spgw.p4",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005022 "line" : 79,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005023 "column" : 10,
5024 "source_fragment" : "s1u_filter_table"
5025 },
5026 "key" : [
5027 {
5028 "match_type" : "exact",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005029 "name" : "gtpu_ipv4.dst_addr",
5030 "target" : ["gtpu_ipv4", "dst_addr"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005031 "mask" : null
5032 }
5033 ],
5034 "match_type" : "exact",
5035 "type" : "simple",
5036 "max_size" : 1024,
5037 "with_counters" : false,
5038 "support_timeout" : false,
5039 "direct_meters" : null,
5040 "action_ids" : [1],
5041 "actions" : ["NoAction"],
5042 "base_default_next" : null,
5043 "next_tables" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005044 "__HIT__" : "tbl_act_6",
5045 "__MISS__" : "tbl_act_7"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005046 },
5047 "default_entry" : {
5048 "action_id" : 1,
5049 "action_const" : false,
5050 "action_data" : [],
5051 "action_entry_const" : false
5052 }
5053 },
5054 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005055 "name" : "tbl_act_6",
5056 "id" : 8,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005057 "key" : [],
5058 "match_type" : "exact",
5059 "type" : "simple",
5060 "max_size" : 1024,
5061 "with_counters" : false,
5062 "support_timeout" : false,
5063 "direct_meters" : null,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005064 "action_ids" : [42],
5065 "actions" : ["act_5"],
5066 "base_default_next" : "node_17",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005067 "next_tables" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005068 "act_5" : "node_17"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005069 },
5070 "default_entry" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005071 "action_id" : 42,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005072 "action_const" : true,
5073 "action_data" : [],
5074 "action_entry_const" : true
5075 }
5076 },
5077 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005078 "name" : "tbl_act_7",
5079 "id" : 9,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005080 "key" : [],
5081 "match_type" : "exact",
5082 "type" : "simple",
5083 "max_size" : 1024,
5084 "with_counters" : false,
5085 "support_timeout" : false,
5086 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02005087 "action_ids" : [43],
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005088 "actions" : ["act_6"],
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005089 "base_default_next" : "node_17",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005090 "next_tables" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005091 "act_6" : "node_17"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005092 },
5093 "default_entry" : {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02005094 "action_id" : 43,
Carmelo Cascone14cde402018-01-25 01:57:18 -08005095 "action_const" : true,
5096 "action_data" : [],
5097 "action_entry_const" : true
5098 }
5099 },
5100 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005101 "name" : "tbl_drop_now",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005102 "id" : 10,
5103 "key" : [],
5104 "match_type" : "exact",
5105 "type" : "simple",
5106 "max_size" : 1024,
5107 "with_counters" : false,
5108 "support_timeout" : false,
5109 "direct_meters" : null,
Charles Chancf696e52018-08-16 16:25:13 -07005110 "action_ids" : [10],
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005111 "actions" : ["drop_now"],
5112 "base_default_next" : "tbl_act_8",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005113 "next_tables" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005114 "drop_now" : "tbl_act_8"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005115 },
5116 "default_entry" : {
Charles Chancf696e52018-08-16 16:25:13 -07005117 "action_id" : 10,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005118 "action_const" : true,
5119 "action_data" : [],
5120 "action_entry_const" : true
5121 }
5122 },
5123 {
5124 "name" : "tbl_act_8",
5125 "id" : 11,
5126 "key" : [],
5127 "match_type" : "exact",
5128 "type" : "simple",
5129 "max_size" : 1024,
5130 "with_counters" : false,
5131 "support_timeout" : false,
5132 "direct_meters" : null,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005133 "action_ids" : [44],
5134 "actions" : ["act_7"],
5135 "base_default_next" : "tbl_spgw_ingress_gtpu_decap",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005136 "next_tables" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005137 "act_7" : "tbl_spgw_ingress_gtpu_decap"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005138 },
5139 "default_entry" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005140 "action_id" : 44,
Carmelo Cascone14cde402018-01-25 01:57:18 -08005141 "action_const" : true,
5142 "action_data" : [],
5143 "action_entry_const" : true
5144 }
5145 },
5146 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005147 "name" : "tbl_spgw_ingress_gtpu_decap",
Carmelo Cascone14cde402018-01-25 01:57:18 -08005148 "id" : 12,
5149 "key" : [],
5150 "match_type" : "exact",
5151 "type" : "simple",
5152 "max_size" : 1024,
5153 "with_counters" : false,
5154 "support_timeout" : false,
5155 "direct_meters" : null,
Charles Chancf696e52018-08-16 16:25:13 -07005156 "action_ids" : [11],
Yi Tseng27b9bc02018-04-12 14:52:40 +08005157 "actions" : ["FabricIngress.spgw_ingress.gtpu_decap"],
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005158 "base_default_next" : "node_27",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005159 "next_tables" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005160 "FabricIngress.spgw_ingress.gtpu_decap" : "node_27"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005161 },
5162 "default_entry" : {
Charles Chancf696e52018-08-16 16:25:13 -07005163 "action_id" : 11,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005164 "action_const" : true,
5165 "action_data" : [],
5166 "action_entry_const" : true
5167 }
5168 },
5169 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005170 "name" : "FabricIngress.spgw_ingress.dl_sess_lookup",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005171 "id" : 13,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005172 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005173 "filename" : "include/spgw.p4",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005174 "line" : 68,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005175 "column" : 10,
5176 "source_fragment" : "dl_sess_lookup"
5177 },
5178 "key" : [
5179 {
5180 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005181 "name" : "ipv4.dst_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005182 "target" : ["ipv4", "dst_addr"],
5183 "mask" : null
5184 }
5185 ],
5186 "match_type" : "exact",
5187 "type" : "simple",
5188 "max_size" : 1024,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005189 "with_counters" : true,
5190 "support_timeout" : false,
5191 "direct_meters" : null,
Charles Chancf696e52018-08-16 16:25:13 -07005192 "action_ids" : [12, 0],
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005193 "actions" : ["FabricIngress.spgw_ingress.set_dl_sess_info", "NoAction"],
5194 "base_default_next" : null,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005195 "next_tables" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005196 "__HIT__" : "tbl_act_9",
5197 "__MISS__" : "tbl_act_10"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005198 },
5199 "default_entry" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005200 "action_id" : 0,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005201 "action_const" : false,
5202 "action_data" : [],
5203 "action_entry_const" : false
5204 }
5205 },
5206 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005207 "name" : "tbl_act_9",
5208 "id" : 14,
5209 "key" : [],
5210 "match_type" : "exact",
5211 "type" : "simple",
5212 "max_size" : 1024,
5213 "with_counters" : false,
5214 "support_timeout" : false,
5215 "direct_meters" : null,
5216 "action_ids" : [45],
5217 "actions" : ["act_8"],
5218 "base_default_next" : "node_24",
5219 "next_tables" : {
5220 "act_8" : "node_24"
5221 },
5222 "default_entry" : {
5223 "action_id" : 45,
5224 "action_const" : true,
5225 "action_data" : [],
5226 "action_entry_const" : true
5227 }
5228 },
5229 {
5230 "name" : "tbl_act_10",
5231 "id" : 15,
5232 "key" : [],
5233 "match_type" : "exact",
5234 "type" : "simple",
5235 "max_size" : 1024,
5236 "with_counters" : false,
5237 "support_timeout" : false,
5238 "direct_meters" : null,
5239 "action_ids" : [46],
5240 "actions" : ["act_9"],
5241 "base_default_next" : "node_24",
5242 "next_tables" : {
5243 "act_9" : "node_24"
5244 },
5245 "default_entry" : {
5246 "action_id" : 46,
5247 "action_const" : true,
5248 "action_data" : [],
5249 "action_entry_const" : true
5250 }
5251 },
5252 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005253 "name" : "tbl_act_11",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005254 "id" : 16,
5255 "key" : [],
5256 "match_type" : "exact",
5257 "type" : "simple",
5258 "max_size" : 1024,
5259 "with_counters" : false,
5260 "support_timeout" : false,
5261 "direct_meters" : null,
5262 "action_ids" : [47],
5263 "actions" : ["act_10"],
5264 "base_default_next" : "node_27",
5265 "next_tables" : {
5266 "act_10" : "node_27"
5267 },
5268 "default_entry" : {
5269 "action_id" : 47,
5270 "action_const" : true,
5271 "action_data" : [],
5272 "action_entry_const" : true
5273 }
5274 },
5275 {
5276 "name" : "tbl_act_12",
5277 "id" : 17,
5278 "key" : [],
5279 "match_type" : "exact",
5280 "type" : "simple",
5281 "max_size" : 1024,
5282 "with_counters" : false,
5283 "support_timeout" : false,
5284 "direct_meters" : null,
5285 "action_ids" : [48],
5286 "actions" : ["act_11"],
5287 "base_default_next" : "node_27",
5288 "next_tables" : {
5289 "act_11" : "node_27"
5290 },
5291 "default_entry" : {
5292 "action_id" : 48,
5293 "action_const" : true,
5294 "action_data" : [],
5295 "action_entry_const" : true
5296 }
5297 },
5298 {
5299 "name" : "tbl_act_13",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08005300 "id" : 18,
Yi Tseng27b9bc02018-04-12 14:52:40 +08005301 "key" : [],
5302 "match_type" : "exact",
5303 "type" : "simple",
5304 "max_size" : 1024,
5305 "with_counters" : false,
5306 "support_timeout" : false,
5307 "direct_meters" : null,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005308 "action_ids" : [50],
5309 "actions" : ["act_13"],
Yi Tseng27b9bc02018-04-12 14:52:40 +08005310 "base_default_next" : "FabricIngress.filtering.ingress_port_vlan",
5311 "next_tables" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005312 "act_13" : "FabricIngress.filtering.ingress_port_vlan"
Yi Tseng27b9bc02018-04-12 14:52:40 +08005313 },
5314 "default_entry" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005315 "action_id" : 50,
Yi Tseng27b9bc02018-04-12 14:52:40 +08005316 "action_const" : true,
5317 "action_data" : [],
5318 "action_entry_const" : true
5319 }
5320 },
5321 {
5322 "name" : "FabricIngress.filtering.ingress_port_vlan",
5323 "id" : 19,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005324 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005325 "filename" : "include/control/filtering.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08005326 "line" : 61,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005327 "column" : 10,
5328 "source_fragment" : "ingress_port_vlan"
5329 },
5330 "key" : [
5331 {
5332 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005333 "name" : "standard_metadata.ingress_port",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005334 "target" : ["standard_metadata", "ingress_port"],
5335 "mask" : null
5336 },
5337 {
5338 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005339 "name" : "hdr.vlan_tag.is_valid",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005340 "target" : ["vlan_tag", "$valid$"],
5341 "mask" : null
5342 },
5343 {
5344 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005345 "name" : "hdr.vlan_tag.vlan_id",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005346 "target" : ["vlan_tag", "vlan_id"],
5347 "mask" : null
5348 }
5349 ],
5350 "match_type" : "ternary",
5351 "type" : "simple",
5352 "max_size" : 1024,
5353 "with_counters" : true,
5354 "support_timeout" : false,
5355 "direct_meters" : null,
Charles Chancf696e52018-08-16 16:25:13 -07005356 "action_ids" : [15, 14, 8, 13],
Yi Tseng27b9bc02018-04-12 14:52:40 +08005357 "actions" : ["FabricIngress.filtering.push_internal_vlan", "FabricIngress.filtering.set_vlan", "nop", "FabricIngress.filtering.drop"],
5358 "base_default_next" : "FabricIngress.filtering.fwd_classifier",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005359 "next_tables" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005360 "FabricIngress.filtering.push_internal_vlan" : "FabricIngress.filtering.fwd_classifier",
5361 "FabricIngress.filtering.set_vlan" : "FabricIngress.filtering.fwd_classifier",
5362 "nop" : "FabricIngress.filtering.fwd_classifier",
5363 "FabricIngress.filtering.drop" : "FabricIngress.filtering.fwd_classifier"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005364 },
5365 "default_entry" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005366 "action_id" : 8,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005367 "action_const" : true,
5368 "action_data" : [],
5369 "action_entry_const" : true
5370 }
5371 },
5372 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005373 "name" : "FabricIngress.filtering.fwd_classifier",
5374 "id" : 20,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005375 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005376 "filename" : "include/control/filtering.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08005377 "line" : 98,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005378 "column" : 10,
5379 "source_fragment" : "fwd_classifier"
5380 },
5381 "key" : [
5382 {
5383 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005384 "name" : "standard_metadata.ingress_port",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005385 "target" : ["standard_metadata", "ingress_port"],
5386 "mask" : null
5387 },
5388 {
5389 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005390 "name" : "hdr.ethernet.dst_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005391 "target" : ["ethernet", "dst_addr"],
5392 "mask" : null
5393 },
5394 {
5395 "match_type" : "exact",
Yi Tseng8235a1a2018-07-24 20:57:28 +08005396 "name" : "hdr.vlan_tag.ether_type",
5397 "target" : ["vlan_tag", "ether_type"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005398 "mask" : null
5399 }
5400 ],
5401 "match_type" : "exact",
5402 "type" : "simple",
5403 "max_size" : 1024,
5404 "with_counters" : true,
5405 "support_timeout" : false,
5406 "direct_meters" : null,
Charles Chancf696e52018-08-16 16:25:13 -07005407 "action_ids" : [16],
Yi Tseng27b9bc02018-04-12 14:52:40 +08005408 "actions" : ["FabricIngress.filtering.set_forwarding_type"],
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005409 "base_default_next" : "node_31",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005410 "next_tables" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005411 "FabricIngress.filtering.set_forwarding_type" : "node_31"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005412 },
5413 "default_entry" : {
Charles Chancf696e52018-08-16 16:25:13 -07005414 "action_id" : 16,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005415 "action_const" : true,
5416 "action_data" : ["0x0"],
5417 "action_entry_const" : true
5418 }
5419 },
5420 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005421 "name" : "FabricIngress.forwarding.bridging",
5422 "id" : 21,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005423 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005424 "filename" : "include/control/forwarding.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08005425 "line" : 41,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005426 "column" : 10,
5427 "source_fragment" : "bridging"
5428 },
5429 "key" : [
5430 {
5431 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005432 "name" : "hdr.vlan_tag.vlan_id",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005433 "target" : ["vlan_tag", "vlan_id"],
5434 "mask" : null
5435 },
5436 {
5437 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005438 "name" : "hdr.ethernet.dst_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005439 "target" : ["ethernet", "dst_addr"],
5440 "mask" : null
5441 }
5442 ],
5443 "match_type" : "ternary",
5444 "type" : "simple",
5445 "max_size" : 1024,
5446 "with_counters" : true,
5447 "support_timeout" : false,
5448 "direct_meters" : null,
Charles Chancf696e52018-08-16 16:25:13 -07005449 "action_ids" : [17, 2],
Yi Tseng47eac892018-07-11 02:17:04 +08005450 "actions" : ["FabricIngress.forwarding.set_next_id_bridging", "NoAction"],
Yi Tseng27b9bc02018-04-12 14:52:40 +08005451 "base_default_next" : "FabricIngress.forwarding.acl",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005452 "next_tables" : {
Yi Tseng47eac892018-07-11 02:17:04 +08005453 "FabricIngress.forwarding.set_next_id_bridging" : "FabricIngress.forwarding.acl",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005454 "NoAction" : "FabricIngress.forwarding.acl"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005455 },
5456 "default_entry" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005457 "action_id" : 2,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005458 "action_const" : false,
5459 "action_data" : [],
5460 "action_entry_const" : false
5461 }
5462 },
5463 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005464 "name" : "FabricIngress.forwarding.mpls",
5465 "id" : 22,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005466 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005467 "filename" : "include/control/forwarding.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08005468 "line" : 65,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005469 "column" : 10,
5470 "source_fragment" : "mpls"
5471 },
5472 "key" : [
5473 {
5474 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005475 "name" : "hdr.mpls.label",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005476 "target" : ["mpls", "label"],
5477 "mask" : null
5478 }
5479 ],
5480 "match_type" : "exact",
5481 "type" : "simple",
5482 "max_size" : 1024,
5483 "with_counters" : true,
5484 "support_timeout" : false,
5485 "direct_meters" : null,
Charles Chancf696e52018-08-16 16:25:13 -07005486 "action_ids" : [18, 3],
Yi Tseng27b9bc02018-04-12 14:52:40 +08005487 "actions" : ["FabricIngress.forwarding.pop_mpls_and_next", "NoAction"],
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005488 "base_default_next" : "tbl_act_14",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005489 "next_tables" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005490 "FabricIngress.forwarding.pop_mpls_and_next" : "tbl_act_14",
5491 "NoAction" : "tbl_act_14"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005492 },
5493 "default_entry" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005494 "action_id" : 3,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005495 "action_const" : false,
5496 "action_data" : [],
5497 "action_entry_const" : false
5498 }
5499 },
5500 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005501 "name" : "tbl_act_14",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005502 "id" : 23,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005503 "key" : [],
5504 "match_type" : "exact",
5505 "type" : "simple",
5506 "max_size" : 1024,
5507 "with_counters" : false,
5508 "support_timeout" : false,
5509 "direct_meters" : null,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005510 "action_ids" : [51],
5511 "actions" : ["act_14"],
Yi Tseng27b9bc02018-04-12 14:52:40 +08005512 "base_default_next" : "FabricIngress.forwarding.acl",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005513 "next_tables" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005514 "act_14" : "FabricIngress.forwarding.acl"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005515 },
5516 "default_entry" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005517 "action_id" : 51,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005518 "action_const" : true,
5519 "action_data" : [],
5520 "action_entry_const" : true
5521 }
5522 },
5523 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08005524 "name" : "FabricIngress.forwarding.unicast_v4",
5525 "id" : 24,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005526 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005527 "filename" : "include/control/forwarding.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08005528 "line" : 87,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005529 "column" : 10,
5530 "source_fragment" : "unicast_v4"
5531 },
5532 "key" : [
5533 {
5534 "match_type" : "lpm",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005535 "name" : "hdr.ipv4.dst_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005536 "target" : ["ipv4", "dst_addr"],
5537 "mask" : null
5538 }
5539 ],
5540 "match_type" : "lpm",
5541 "type" : "simple",
5542 "max_size" : 1024,
5543 "with_counters" : true,
5544 "support_timeout" : false,
5545 "direct_meters" : null,
Charles Chancf696e52018-08-16 16:25:13 -07005546 "action_ids" : [19, 4],
Yi Tseng47eac892018-07-11 02:17:04 +08005547 "actions" : ["FabricIngress.forwarding.set_next_id_unicast_v4", "NoAction"],
Yi Tseng27b9bc02018-04-12 14:52:40 +08005548 "base_default_next" : "FabricIngress.forwarding.acl",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005549 "next_tables" : {
Yi Tseng47eac892018-07-11 02:17:04 +08005550 "FabricIngress.forwarding.set_next_id_unicast_v4" : "FabricIngress.forwarding.acl",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005551 "NoAction" : "FabricIngress.forwarding.acl"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005552 },
5553 "default_entry" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005554 "action_id" : 4,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005555 "action_const" : false,
5556 "action_data" : [],
5557 "action_entry_const" : false
5558 }
5559 },
5560 {
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005561 "name" : "FabricIngress.forwarding.acl",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005562 "id" : 25,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005563 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005564 "filename" : "include/control/forwarding.p4",
Charles Chancf696e52018-08-16 16:25:13 -07005565 "line" : 131,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005566 "column" : 10,
5567 "source_fragment" : "acl"
5568 },
5569 "key" : [
5570 {
5571 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005572 "name" : "standard_metadata.ingress_port",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005573 "target" : ["standard_metadata", "ingress_port"],
5574 "mask" : null
5575 },
5576 {
5577 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005578 "name" : "fabric_metadata.ip_proto",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005579 "target" : ["scalars", "fabric_metadata_t.ip_proto"],
5580 "mask" : null
5581 },
5582 {
5583 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005584 "name" : "fabric_metadata.l4_src_port",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005585 "target" : ["scalars", "fabric_metadata_t.l4_src_port"],
5586 "mask" : null
5587 },
5588 {
5589 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005590 "name" : "fabric_metadata.l4_dst_port",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005591 "target" : ["scalars", "fabric_metadata_t.l4_dst_port"],
5592 "mask" : null
5593 },
5594 {
5595 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005596 "name" : "hdr.ethernet.dst_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005597 "target" : ["ethernet", "dst_addr"],
5598 "mask" : null
5599 },
5600 {
5601 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005602 "name" : "hdr.ethernet.src_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005603 "target" : ["ethernet", "src_addr"],
5604 "mask" : null
5605 },
5606 {
5607 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005608 "name" : "hdr.vlan_tag.vlan_id",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005609 "target" : ["vlan_tag", "vlan_id"],
5610 "mask" : null
5611 },
5612 {
5613 "match_type" : "ternary",
Yi Tseng8235a1a2018-07-24 20:57:28 +08005614 "name" : "hdr.vlan_tag.ether_type",
5615 "target" : ["vlan_tag", "ether_type"],
5616 "mask" : null
5617 },
5618 {
5619 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005620 "name" : "hdr.ipv4.src_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005621 "target" : ["ipv4", "src_addr"],
5622 "mask" : null
5623 },
5624 {
5625 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005626 "name" : "hdr.ipv4.dst_addr",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005627 "target" : ["ipv4", "dst_addr"],
5628 "mask" : null
5629 },
5630 {
5631 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005632 "name" : "hdr.icmp.icmp_type",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005633 "target" : ["icmp", "icmp_type"],
5634 "mask" : null
5635 },
5636 {
5637 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005638 "name" : "hdr.icmp.icmp_code",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005639 "target" : ["icmp", "icmp_code"],
5640 "mask" : null
5641 }
5642 ],
5643 "match_type" : "ternary",
5644 "type" : "simple",
Yi Tseng8235a1a2018-07-24 20:57:28 +08005645 "max_size" : 128,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005646 "with_counters" : true,
5647 "support_timeout" : false,
5648 "direct_meters" : null,
Charles Chancf696e52018-08-16 16:25:13 -07005649 "action_ids" : [20, 21, 22, 23, 24],
5650 "actions" : ["FabricIngress.forwarding.set_next_id_acl", "FabricIngress.forwarding.punt_to_cpu", "FabricIngress.forwarding.clone_to_cpu", "FabricIngress.forwarding.drop", "FabricIngress.forwarding.nop_acl"],
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005651 "base_default_next" : "tbl_act_15",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005652 "next_tables" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005653 "FabricIngress.forwarding.set_next_id_acl" : "tbl_act_15",
5654 "FabricIngress.forwarding.punt_to_cpu" : "tbl_act_15",
5655 "FabricIngress.forwarding.clone_to_cpu" : "tbl_act_15",
5656 "FabricIngress.forwarding.drop" : "tbl_act_15",
Charles Chancf696e52018-08-16 16:25:13 -07005657 "FabricIngress.forwarding.nop_acl" : "tbl_act_15"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005658 },
5659 "default_entry" : {
Charles Chancf696e52018-08-16 16:25:13 -07005660 "action_id" : 24,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005661 "action_const" : true,
5662 "action_data" : [],
5663 "action_entry_const" : true
5664 }
5665 },
5666 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005667 "name" : "tbl_act_15",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005668 "id" : 26,
Carmelo Casconea5400af2018-07-17 22:11:54 +02005669 "key" : [],
5670 "match_type" : "exact",
5671 "type" : "simple",
5672 "max_size" : 1024,
5673 "with_counters" : false,
5674 "support_timeout" : false,
5675 "direct_meters" : null,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005676 "action_ids" : [52],
5677 "actions" : ["act_15"],
Carmelo Casconea5400af2018-07-17 22:11:54 +02005678 "base_default_next" : "FabricIngress.next.vlan_meta",
5679 "next_tables" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005680 "act_15" : "FabricIngress.next.vlan_meta"
Carmelo Casconea5400af2018-07-17 22:11:54 +02005681 },
5682 "default_entry" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005683 "action_id" : 52,
Carmelo Casconea5400af2018-07-17 22:11:54 +02005684 "action_const" : true,
5685 "action_data" : [],
5686 "action_entry_const" : true
5687 }
5688 },
5689 {
5690 "name" : "FabricIngress.next.vlan_meta",
5691 "id" : 27,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005692 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005693 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08005694 "line" : 65,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005695 "column" : 10,
5696 "source_fragment" : "vlan_meta"
5697 },
5698 "key" : [
5699 {
5700 "match_type" : "exact",
5701 "name" : "fabric_metadata.next_id",
5702 "target" : ["scalars", "fabric_metadata_t.next_id"],
5703 "mask" : null
5704 }
5705 ],
5706 "match_type" : "exact",
5707 "type" : "simple",
5708 "max_size" : 1024,
5709 "with_counters" : true,
5710 "support_timeout" : false,
5711 "direct_meters" : null,
Charles Chancf696e52018-08-16 16:25:13 -07005712 "action_ids" : [25, 9],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005713 "actions" : ["FabricIngress.next.set_vlan", "nop"],
5714 "base_default_next" : "FabricIngress.next.simple",
5715 "next_tables" : {
5716 "FabricIngress.next.set_vlan" : "FabricIngress.next.simple",
5717 "nop" : "FabricIngress.next.simple"
5718 },
5719 "default_entry" : {
Charles Chancf696e52018-08-16 16:25:13 -07005720 "action_id" : 9,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005721 "action_const" : false,
5722 "action_data" : [],
5723 "action_entry_const" : false
5724 }
5725 },
5726 {
5727 "name" : "FabricIngress.next.simple",
Carmelo Casconea5400af2018-07-17 22:11:54 +02005728 "id" : 28,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005729 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005730 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08005731 "line" : 122,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005732 "column" : 10,
5733 "source_fragment" : "simple"
5734 },
5735 "key" : [
5736 {
5737 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005738 "name" : "fabric_metadata.next_id",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005739 "target" : ["scalars", "fabric_metadata_t.next_id"],
5740 "mask" : null
5741 }
5742 ],
5743 "match_type" : "exact",
5744 "type" : "simple",
5745 "max_size" : 1024,
5746 "with_counters" : true,
5747 "support_timeout" : false,
5748 "direct_meters" : null,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005749 "action_ids" : [26, 27, 28, 29, 30, 31, 5],
Yi Tseng47eac892018-07-11 02:17:04 +08005750 "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 -08005751 "base_default_next" : null,
5752 "next_tables" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005753 "__HIT__" : "tbl_act_16",
5754 "__MISS__" : "tbl_act_17"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005755 },
5756 "default_entry" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005757 "action_id" : 5,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08005758 "action_const" : false,
5759 "action_data" : [],
5760 "action_entry_const" : false
5761 }
5762 },
5763 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005764 "name" : "tbl_act_16",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005765 "id" : 29,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005766 "key" : [],
5767 "match_type" : "exact",
5768 "type" : "simple",
5769 "max_size" : 1024,
5770 "with_counters" : false,
5771 "support_timeout" : false,
5772 "direct_meters" : null,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005773 "action_ids" : [53],
5774 "actions" : ["act_16"],
5775 "base_default_next" : "node_44",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005776 "next_tables" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005777 "act_16" : "node_44"
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005778 },
5779 "default_entry" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005780 "action_id" : 53,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005781 "action_const" : true,
5782 "action_data" : [],
5783 "action_entry_const" : true
5784 }
5785 },
5786 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005787 "name" : "tbl_act_17",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005788 "id" : 30,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005789 "key" : [],
5790 "match_type" : "exact",
5791 "type" : "simple",
5792 "max_size" : 1024,
5793 "with_counters" : false,
5794 "support_timeout" : false,
5795 "direct_meters" : null,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005796 "action_ids" : [54],
5797 "actions" : ["act_17"],
5798 "base_default_next" : "node_44",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005799 "next_tables" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005800 "act_17" : "node_44"
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005801 },
5802 "default_entry" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005803 "action_id" : 54,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005804 "action_const" : true,
5805 "action_data" : [],
5806 "action_entry_const" : true
5807 }
5808 },
5809 {
5810 "name" : "FabricIngress.next.hashed",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005811 "id" : 31,
Yi Tseng27b9bc02018-04-12 14:52:40 +08005812 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005813 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08005814 "line" : 175,
Yi Tseng27b9bc02018-04-12 14:52:40 +08005815 "column" : 10,
5816 "source_fragment" : "hashed"
5817 },
5818 "key" : [
5819 {
5820 "match_type" : "exact",
5821 "name" : "fabric_metadata.next_id",
5822 "target" : ["scalars", "fabric_metadata_t.next_id"],
5823 "mask" : null
5824 }
5825 ],
5826 "match_type" : "exact",
5827 "type" : "indirect_ws",
5828 "action_profile" : "FabricIngress.next.ecmp_selector",
5829 "max_size" : 1024,
5830 "with_counters" : true,
5831 "support_timeout" : false,
5832 "direct_meters" : null,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005833 "action_ids" : [32, 33, 34, 6],
Yi Tseng47eac892018-07-11 02:17:04 +08005834 "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 +02005835 "base_default_next" : null,
Yi Tseng27b9bc02018-04-12 14:52:40 +08005836 "next_tables" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005837 "__HIT__" : "tbl_act_18",
5838 "__MISS__" : "tbl_act_19"
Carmelo Casconea5400af2018-07-17 22:11:54 +02005839 }
5840 },
5841 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005842 "name" : "tbl_act_18",
Carmelo Casconea5400af2018-07-17 22:11:54 +02005843 "id" : 32,
5844 "key" : [],
5845 "match_type" : "exact",
5846 "type" : "simple",
5847 "max_size" : 1024,
5848 "with_counters" : false,
5849 "support_timeout" : false,
5850 "direct_meters" : null,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005851 "action_ids" : [55],
5852 "actions" : ["act_18"],
5853 "base_default_next" : "node_48",
Carmelo Casconea5400af2018-07-17 22:11:54 +02005854 "next_tables" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005855 "act_18" : "node_48"
Carmelo Casconea5400af2018-07-17 22:11:54 +02005856 },
5857 "default_entry" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005858 "action_id" : 55,
Carmelo Casconea5400af2018-07-17 22:11:54 +02005859 "action_const" : true,
5860 "action_data" : [],
5861 "action_entry_const" : true
5862 }
5863 },
5864 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005865 "name" : "tbl_act_19",
Carmelo Casconea5400af2018-07-17 22:11:54 +02005866 "id" : 33,
5867 "key" : [],
5868 "match_type" : "exact",
5869 "type" : "simple",
5870 "max_size" : 1024,
5871 "with_counters" : false,
5872 "support_timeout" : false,
5873 "direct_meters" : null,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005874 "action_ids" : [56],
5875 "actions" : ["act_19"],
5876 "base_default_next" : "node_48",
Carmelo Casconea5400af2018-07-17 22:11:54 +02005877 "next_tables" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005878 "act_19" : "node_48"
Carmelo Casconea5400af2018-07-17 22:11:54 +02005879 },
5880 "default_entry" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005881 "action_id" : 56,
Carmelo Casconea5400af2018-07-17 22:11:54 +02005882 "action_const" : true,
5883 "action_data" : [],
5884 "action_entry_const" : true
Esin Karaman971fb7f2017-12-28 13:44:52 +00005885 }
5886 },
5887 {
5888 "name" : "FabricIngress.next.multicast",
Carmelo Casconea5400af2018-07-17 22:11:54 +02005889 "id" : 34,
Esin Karaman971fb7f2017-12-28 13:44:52 +00005890 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005891 "filename" : "include/control/next.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02005892 "line" : 207,
Esin Karaman971fb7f2017-12-28 13:44:52 +00005893 "column" : 10,
5894 "source_fragment" : "multicast"
5895 },
5896 "key" : [
5897 {
5898 "match_type" : "exact",
5899 "name" : "fabric_metadata.next_id",
5900 "target" : ["scalars", "fabric_metadata_t.next_id"],
5901 "mask" : null
5902 }
5903 ],
5904 "match_type" : "exact",
5905 "type" : "simple",
5906 "max_size" : 1024,
5907 "with_counters" : true,
5908 "support_timeout" : false,
5909 "direct_meters" : null,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005910 "action_ids" : [35, 7],
Esin Karaman971fb7f2017-12-28 13:44:52 +00005911 "actions" : ["FabricIngress.next.set_mcast_group", "NoAction"],
Carmelo Casconea5400af2018-07-17 22:11:54 +02005912 "base_default_next" : null,
Esin Karaman971fb7f2017-12-28 13:44:52 +00005913 "next_tables" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005914 "__HIT__" : "tbl_act_20",
5915 "__MISS__" : "tbl_act_21"
Esin Karaman971fb7f2017-12-28 13:44:52 +00005916 },
5917 "default_entry" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005918 "action_id" : 7,
Esin Karaman971fb7f2017-12-28 13:44:52 +00005919 "action_const" : false,
5920 "action_data" : [],
5921 "action_entry_const" : false
Yi Tseng27b9bc02018-04-12 14:52:40 +08005922 }
5923 },
5924 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005925 "name" : "tbl_act_20",
Carmelo Casconea5400af2018-07-17 22:11:54 +02005926 "id" : 35,
Yi Tseng27b9bc02018-04-12 14:52:40 +08005927 "key" : [],
5928 "match_type" : "exact",
5929 "type" : "simple",
5930 "max_size" : 1024,
5931 "with_counters" : false,
5932 "support_timeout" : false,
5933 "direct_meters" : null,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005934 "action_ids" : [57],
5935 "actions" : ["act_20"],
5936 "base_default_next" : "node_52",
Esin Karaman971fb7f2017-12-28 13:44:52 +00005937 "next_tables" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005938 "act_20" : "node_52"
5939 },
5940 "default_entry" : {
5941 "action_id" : 57,
5942 "action_const" : true,
5943 "action_data" : [],
5944 "action_entry_const" : true
5945 }
5946 },
5947 {
5948 "name" : "tbl_act_21",
5949 "id" : 36,
5950 "key" : [],
5951 "match_type" : "exact",
5952 "type" : "simple",
5953 "max_size" : 1024,
5954 "with_counters" : false,
5955 "support_timeout" : false,
5956 "direct_meters" : null,
5957 "action_ids" : [58],
5958 "actions" : ["act_21"],
5959 "base_default_next" : "node_52",
5960 "next_tables" : {
5961 "act_21" : "node_52"
Esin Karaman971fb7f2017-12-28 13:44:52 +00005962 },
5963 "default_entry" : {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02005964 "action_id" : 58,
Esin Karaman971fb7f2017-12-28 13:44:52 +00005965 "action_const" : true,
5966 "action_data" : [],
5967 "action_entry_const" : true
5968 }
5969 },
5970 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005971 "name" : "tbl_act_22",
5972 "id" : 37,
Esin Karaman971fb7f2017-12-28 13:44:52 +00005973 "key" : [],
5974 "match_type" : "exact",
5975 "type" : "simple",
5976 "max_size" : 1024,
5977 "with_counters" : false,
5978 "support_timeout" : false,
5979 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02005980 "action_ids" : [59],
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005981 "actions" : ["act_22"],
5982 "base_default_next" : "node_54",
Yi Tseng27b9bc02018-04-12 14:52:40 +08005983 "next_tables" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005984 "act_22" : "node_54"
Yi Tseng27b9bc02018-04-12 14:52:40 +08005985 },
5986 "default_entry" : {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02005987 "action_id" : 59,
Carmelo Casconea5400af2018-07-17 22:11:54 +02005988 "action_const" : true,
5989 "action_data" : [],
5990 "action_entry_const" : true
5991 }
5992 },
5993 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07005994 "name" : "tbl_act_23",
5995 "id" : 38,
Carmelo Casconea5400af2018-07-17 22:11:54 +02005996 "key" : [],
5997 "match_type" : "exact",
5998 "type" : "simple",
5999 "max_size" : 1024,
6000 "with_counters" : false,
6001 "support_timeout" : false,
6002 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02006003 "action_ids" : [60],
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006004 "actions" : ["act_23"],
6005 "base_default_next" : "node_58",
Carmelo Casconea5400af2018-07-17 22:11:54 +02006006 "next_tables" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006007 "act_23" : "node_58"
Carmelo Casconea5400af2018-07-17 22:11:54 +02006008 },
6009 "default_entry" : {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02006010 "action_id" : 60,
Carmelo Casconea5400af2018-07-17 22:11:54 +02006011 "action_const" : true,
6012 "action_data" : [],
6013 "action_entry_const" : true
6014 }
6015 },
6016 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006017 "name" : "tbl_act_24",
6018 "id" : 39,
Carmelo Casconea5400af2018-07-17 22:11:54 +02006019 "key" : [],
6020 "match_type" : "exact",
6021 "type" : "simple",
6022 "max_size" : 1024,
6023 "with_counters" : false,
6024 "support_timeout" : false,
6025 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02006026 "action_ids" : [61],
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006027 "actions" : ["act_24"],
6028 "base_default_next" : "node_60",
Carmelo Casconea5400af2018-07-17 22:11:54 +02006029 "next_tables" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006030 "act_24" : "node_60"
Carmelo Casconea5400af2018-07-17 22:11:54 +02006031 },
6032 "default_entry" : {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02006033 "action_id" : 61,
Carmelo Casconea5400af2018-07-17 22:11:54 +02006034 "action_const" : true,
6035 "action_data" : [],
6036 "action_entry_const" : true
6037 }
6038 },
6039 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006040 "name" : "tbl_act_25",
Carmelo Casconea5400af2018-07-17 22:11:54 +02006041 "id" : 40,
6042 "key" : [],
6043 "match_type" : "exact",
6044 "type" : "simple",
6045 "max_size" : 1024,
6046 "with_counters" : false,
6047 "support_timeout" : false,
6048 "direct_meters" : null,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006049 "action_ids" : [62],
6050 "actions" : ["act_25"],
Carmelo Casconea5400af2018-07-17 22:11:54 +02006051 "base_default_next" : null,
6052 "next_tables" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006053 "act_25" : null
Carmelo Casconea5400af2018-07-17 22:11:54 +02006054 },
6055 "default_entry" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006056 "action_id" : 62,
Carmelo Cascone14cde402018-01-25 01:57:18 -08006057 "action_const" : true,
6058 "action_data" : [],
6059 "action_entry_const" : true
6060 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006061 }
6062 ],
6063 "action_profiles" : [
6064 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08006065 "name" : "FabricIngress.next.ecmp_selector",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006066 "id" : 0,
6067 "max_size" : 64,
6068 "selector" : {
6069 "algo" : "crc16",
6070 "input" : [
6071 {
6072 "type" : "field",
Yi Tseng3d3956d2018-01-31 17:28:05 -08006073 "value" : ["ipv4", "dst_addr"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006074 },
6075 {
6076 "type" : "field",
Yi Tseng3d3956d2018-01-31 17:28:05 -08006077 "value" : ["ipv4", "src_addr"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006078 },
6079 {
6080 "type" : "field",
6081 "value" : ["scalars", "fabric_metadata_t.ip_proto"]
6082 },
6083 {
6084 "type" : "field",
6085 "value" : ["scalars", "fabric_metadata_t.l4_src_port"]
6086 },
6087 {
6088 "type" : "field",
6089 "value" : ["scalars", "fabric_metadata_t.l4_dst_port"]
6090 }
6091 ]
6092 }
6093 }
6094 ],
6095 "conditionals" : [
6096 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006097 "name" : "node_3",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006098 "id" : 0,
6099 "source_info" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006100 "filename" : "include/spgw.p4",
6101 "line" : 30,
6102 "column" : 12,
6103 "source_fragment" : "! is_gtpu_encapped"
6104 },
6105 "expression" : {
6106 "type" : "expression",
6107 "value" : {
6108 "op" : "not",
6109 "left" : null,
6110 "right" : {
6111 "type" : "expression",
6112 "value" : {
6113 "op" : "d2b",
6114 "left" : null,
6115 "right" : {
6116 "type" : "field",
6117 "value" : ["gtpu", "$valid$"]
6118 }
6119 }
6120 }
6121 }
6122 },
6123 "true_next" : "tbl_act_0",
6124 "false_next" : "node_5"
6125 },
6126 {
6127 "name" : "node_5",
6128 "id" : 1,
6129 "expression" : {
6130 "type" : "expression",
6131 "value" : {
6132 "op" : "not",
6133 "left" : null,
6134 "right" : {
6135 "type" : "expression",
6136 "value" : {
6137 "op" : "d2b",
6138 "left" : null,
6139 "right" : {
6140 "type" : "field",
6141 "value" : ["scalars", "spgw_normalizer_hasReturned_0"]
6142 }
6143 }
6144 }
6145 }
6146 },
6147 "true_next" : "tbl_act_1",
6148 "false_next" : "node_10"
6149 },
6150 {
6151 "name" : "node_7",
6152 "id" : 2,
6153 "source_info" : {
6154 "filename" : "include/spgw.p4",
6155 "line" : 34,
6156 "column" : 12,
6157 "source_fragment" : "inner_udp.isValid()"
6158 },
6159 "expression" : {
6160 "type" : "expression",
6161 "value" : {
6162 "op" : "d2b",
6163 "left" : null,
6164 "right" : {
6165 "type" : "field",
6166 "value" : ["inner_udp", "$valid$"]
6167 }
6168 }
6169 },
6170 "true_next" : "tbl_act_2",
6171 "false_next" : "tbl_act_3"
6172 },
6173 {
6174 "name" : "node_10",
6175 "id" : 3,
6176 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006177 "filename" : "include/control/packetio.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006178 "line" : 25,
6179 "column" : 12,
6180 "source_fragment" : "hdr.packet_out.isValid()"
6181 },
6182 "expression" : {
6183 "type" : "expression",
6184 "value" : {
6185 "op" : "d2b",
6186 "left" : null,
6187 "right" : {
6188 "type" : "field",
6189 "value" : ["packet_out", "$valid$"]
6190 }
6191 }
6192 },
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006193 "true_next" : "tbl_act_4",
6194 "false_next" : "tbl_act_5"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006195 },
6196 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006197 "name" : "node_13",
6198 "id" : 4,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006199 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006200 "filename" : "include/spgw.p4",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006201 "line" : 139,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006202 "column" : 12,
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006203 "source_fragment" : "gtpu.isValid()"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006204 },
6205 "expression" : {
6206 "type" : "expression",
6207 "value" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006208 "op" : "d2b",
6209 "left" : null,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006210 "right" : {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006211 "type" : "field",
6212 "value" : ["gtpu", "$valid$"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006213 }
6214 }
6215 },
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006216 "true_next" : "FabricIngress.spgw_ingress.s1u_filter_table",
6217 "false_next" : "FabricIngress.spgw_ingress.dl_sess_lookup"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006218 },
6219 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006220 "name" : "node_17",
6221 "id" : 5,
6222 "source_info" : {
6223 "filename" : "include/spgw.p4",
6224 "line" : 143,
6225 "column" : 16,
6226 "source_fragment" : "!s1u_filter_table.apply().hit"
6227 },
6228 "expression" : {
6229 "type" : "expression",
6230 "value" : {
6231 "op" : "not",
6232 "left" : null,
6233 "right" : {
6234 "type" : "expression",
6235 "value" : {
6236 "op" : "d2b",
6237 "left" : null,
6238 "right" : {
6239 "type" : "field",
6240 "value" : ["scalars", "spgw_ingress_tmp_1"]
6241 }
6242 }
6243 }
6244 }
6245 },
6246 "true_next" : "tbl_drop_now",
6247 "false_next" : "tbl_act_8"
6248 },
6249 {
6250 "name" : "node_24",
6251 "id" : 6,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006252 "expression" : {
6253 "type" : "expression",
6254 "value" : {
6255 "op" : "d2b",
6256 "left" : null,
6257 "right" : {
6258 "type" : "field",
6259 "value" : ["scalars", "spgw_ingress_tmp_2"]
6260 }
6261 }
6262 },
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006263 "true_next" : "tbl_act_11",
6264 "false_next" : "tbl_act_12"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006265 },
6266 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006267 "name" : "node_27",
6268 "id" : 7,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006269 "expression" : {
6270 "type" : "expression",
6271 "value" : {
6272 "op" : "not",
6273 "left" : null,
6274 "right" : {
6275 "type" : "expression",
6276 "value" : {
6277 "op" : "d2b",
6278 "left" : null,
6279 "right" : {
6280 "type" : "field",
6281 "value" : ["scalars", "spgw_ingress_hasReturned_0"]
6282 }
6283 }
6284 }
6285 }
6286 },
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006287 "true_next" : "tbl_act_13",
Yi Tseng27b9bc02018-04-12 14:52:40 +08006288 "false_next" : "FabricIngress.filtering.ingress_port_vlan"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006289 },
6290 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006291 "name" : "node_31",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08006292 "id" : 8,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006293 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006294 "filename" : "include/control/forwarding.p4",
Charles Chancf696e52018-08-16 16:25:13 -07006295 "line" : 235,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006296 "column" : 11,
6297 "source_fragment" : "fabric_metadata.fwd_type == FWD_BRIDGING"
6298 },
6299 "expression" : {
6300 "type" : "expression",
6301 "value" : {
6302 "op" : "==",
6303 "left" : {
6304 "type" : "field",
6305 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
6306 },
6307 "right" : {
6308 "type" : "hexstr",
6309 "value" : "0x00"
6310 }
6311 }
6312 },
Yi Tseng27b9bc02018-04-12 14:52:40 +08006313 "true_next" : "FabricIngress.forwarding.bridging",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006314 "false_next" : "node_33"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006315 },
6316 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006317 "name" : "node_33",
6318 "id" : 9,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006319 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006320 "filename" : "include/control/forwarding.p4",
Charles Chancf696e52018-08-16 16:25:13 -07006321 "line" : 236,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006322 "column" : 17,
6323 "source_fragment" : "fabric_metadata.fwd_type == FWD_MPLS"
6324 },
6325 "expression" : {
6326 "type" : "expression",
6327 "value" : {
6328 "op" : "==",
6329 "left" : {
6330 "type" : "field",
6331 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
6332 },
6333 "right" : {
6334 "type" : "hexstr",
6335 "value" : "0x01"
6336 }
6337 }
6338 },
Yi Tseng27b9bc02018-04-12 14:52:40 +08006339 "true_next" : "FabricIngress.forwarding.mpls",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006340 "false_next" : "node_36"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006341 },
6342 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006343 "name" : "node_36",
6344 "id" : 10,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006345 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006346 "filename" : "include/control/forwarding.p4",
Charles Chancf696e52018-08-16 16:25:13 -07006347 "line" : 250,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006348 "column" : 17,
6349 "source_fragment" : "fabric_metadata.fwd_type == FWD_IPV4_UNICAST"
6350 },
6351 "expression" : {
6352 "type" : "expression",
6353 "value" : {
6354 "op" : "==",
6355 "left" : {
6356 "type" : "field",
6357 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
6358 },
6359 "right" : {
6360 "type" : "hexstr",
6361 "value" : "0x02"
6362 }
6363 }
6364 },
Yi Tseng27b9bc02018-04-12 14:52:40 +08006365 "true_next" : "FabricIngress.forwarding.unicast_v4",
Yi Tseng27b9bc02018-04-12 14:52:40 +08006366 "false_next" : "FabricIngress.forwarding.acl"
6367 },
6368 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006369 "name" : "node_44",
6370 "id" : 11,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006371 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006372 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08006373 "line" : 219,
Carmelo Casconea5400af2018-07-17 22:11:54 +02006374 "column" : 12,
6375 "source_fragment" : "!simple.apply().hit"
6376 },
6377 "expression" : {
6378 "type" : "expression",
6379 "value" : {
6380 "op" : "not",
6381 "left" : null,
6382 "right" : {
6383 "type" : "expression",
6384 "value" : {
6385 "op" : "d2b",
6386 "left" : null,
6387 "right" : {
6388 "type" : "field",
6389 "value" : ["scalars", "next_tmp_4"]
6390 }
6391 }
6392 }
6393 }
6394 },
6395 "true_next" : "FabricIngress.next.hashed",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006396 "false_next" : "node_54"
Carmelo Casconea5400af2018-07-17 22:11:54 +02006397 },
6398 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006399 "name" : "node_48",
6400 "id" : 12,
Carmelo Casconea5400af2018-07-17 22:11:54 +02006401 "source_info" : {
6402 "filename" : "include/control/next.p4",
6403 "line" : 220,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006404 "column" : 16,
Carmelo Casconea5400af2018-07-17 22:11:54 +02006405 "source_fragment" : "!hashed.apply().hit"
6406 },
6407 "expression" : {
6408 "type" : "expression",
6409 "value" : {
6410 "op" : "not",
6411 "left" : null,
6412 "right" : {
6413 "type" : "expression",
6414 "value" : {
6415 "op" : "d2b",
6416 "left" : null,
6417 "right" : {
6418 "type" : "field",
6419 "value" : ["scalars", "next_tmp_3"]
6420 }
6421 }
6422 }
6423 }
6424 },
6425 "true_next" : "FabricIngress.next.multicast",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006426 "false_next" : "node_54"
Carmelo Casconea5400af2018-07-17 22:11:54 +02006427 },
6428 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006429 "name" : "node_52",
6430 "id" : 13,
Carmelo Casconea5400af2018-07-17 22:11:54 +02006431 "source_info" : {
6432 "filename" : "include/control/next.p4",
6433 "line" : 221,
6434 "column" : 20,
6435 "source_fragment" : "!multicast.apply().hit"
6436 },
6437 "expression" : {
6438 "type" : "expression",
6439 "value" : {
6440 "op" : "not",
6441 "left" : null,
6442 "right" : {
6443 "type" : "expression",
6444 "value" : {
6445 "op" : "d2b",
6446 "left" : null,
6447 "right" : {
6448 "type" : "field",
6449 "value" : ["scalars", "next_tmp_2"]
6450 }
6451 }
6452 }
6453 }
6454 },
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006455 "true_next" : "tbl_act_22",
6456 "false_next" : "node_54"
Carmelo Casconea5400af2018-07-17 22:11:54 +02006457 },
6458 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006459 "name" : "node_54",
6460 "id" : 14,
Carmelo Casconea5400af2018-07-17 22:11:54 +02006461 "expression" : {
6462 "type" : "expression",
6463 "value" : {
6464 "op" : "not",
6465 "left" : null,
6466 "right" : {
6467 "type" : "expression",
6468 "value" : {
6469 "op" : "d2b",
6470 "left" : null,
6471 "right" : {
6472 "type" : "field",
6473 "value" : ["scalars", "next_hasReturned_0"]
6474 }
6475 }
6476 }
6477 }
6478 },
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006479 "true_next" : "node_55",
6480 "false_next" : "node_58"
Carmelo Casconea5400af2018-07-17 22:11:54 +02006481 },
6482 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006483 "name" : "node_55",
6484 "id" : 15,
Carmelo Casconea5400af2018-07-17 22:11:54 +02006485 "source_info" : {
6486 "filename" : "include/control/next.p4",
6487 "line" : 228,
6488 "column" : 12,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006489 "source_fragment" : "!hdr.mpls.isValid()"
6490 },
6491 "expression" : {
6492 "type" : "expression",
6493 "value" : {
6494 "op" : "not",
6495 "left" : null,
6496 "right" : {
6497 "type" : "expression",
6498 "value" : {
6499 "op" : "d2b",
6500 "left" : null,
6501 "right" : {
6502 "type" : "field",
6503 "value" : ["mpls", "$valid$"]
6504 }
6505 }
6506 }
6507 }
6508 },
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006509 "true_next" : "node_56",
6510 "false_next" : "node_58"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006511 },
6512 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006513 "name" : "node_56",
6514 "id" : 16,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006515 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006516 "filename" : "include/control/next.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02006517 "line" : 229,
6518 "column" : 15,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006519 "source_fragment" : "hdr.ipv4.isValid()"
6520 },
6521 "expression" : {
6522 "type" : "expression",
6523 "value" : {
6524 "op" : "d2b",
6525 "left" : null,
6526 "right" : {
6527 "type" : "field",
6528 "value" : ["ipv4", "$valid$"]
6529 }
6530 }
6531 },
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006532 "true_next" : "tbl_act_23",
6533 "false_next" : "node_58"
Yi Tseng27b9bc02018-04-12 14:52:40 +08006534 },
6535 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006536 "name" : "node_58",
6537 "id" : 17,
Yi Tseng27b9bc02018-04-12 14:52:40 +08006538 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006539 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006540 "line" : 27,
6541 "column" : 12,
6542 "source_fragment" : "standard_metadata.egress_spec < 511"
6543 },
6544 "expression" : {
6545 "type" : "expression",
6546 "value" : {
6547 "op" : "<",
6548 "left" : {
6549 "type" : "field",
6550 "value" : ["standard_metadata", "egress_spec"]
6551 },
6552 "right" : {
6553 "type" : "hexstr",
6554 "value" : "0x01ff"
6555 }
6556 }
6557 },
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006558 "true_next" : "tbl_act_24",
6559 "false_next" : "node_60"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006560 },
6561 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006562 "name" : "node_60",
6563 "id" : 18,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006564 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006565 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006566 "line" : 30,
6567 "column" : 12,
6568 "source_fragment" : "standard_metadata.ingress_port < 511"
6569 },
6570 "expression" : {
6571 "type" : "expression",
6572 "value" : {
6573 "op" : "<",
6574 "left" : {
6575 "type" : "field",
6576 "value" : ["standard_metadata", "ingress_port"]
6577 },
6578 "right" : {
6579 "type" : "hexstr",
6580 "value" : "0x01ff"
6581 }
6582 }
6583 },
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006584 "false_next" : null,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006585 "true_next" : "tbl_act_25"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006586 }
6587 ]
6588 },
6589 {
6590 "name" : "egress",
6591 "id" : 1,
6592 "source_info" : {
6593 "filename" : "fabric.p4",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006594 "line" : 80,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006595 "column" : 8,
6596 "source_fragment" : "FabricEgress"
6597 },
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006598 "init_table" : "node_64",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006599 "tables" : [
6600 {
Carmelo Casconea5400af2018-07-17 22:11:54 +02006601 "name" : "tbl_drop_now_0",
6602 "id" : 41,
6603 "key" : [],
6604 "match_type" : "exact",
6605 "type" : "simple",
6606 "max_size" : 1024,
6607 "with_counters" : false,
6608 "support_timeout" : false,
6609 "direct_meters" : null,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006610 "action_ids" : [64],
Carmelo Casconea5400af2018-07-17 22:11:54 +02006611 "actions" : ["drop_now"],
6612 "base_default_next" : "FabricEgress.egress_next.egress_vlan",
6613 "next_tables" : {
6614 "drop_now" : "FabricEgress.egress_next.egress_vlan"
6615 },
6616 "default_entry" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006617 "action_id" : 64,
Carmelo Casconea5400af2018-07-17 22:11:54 +02006618 "action_const" : true,
6619 "action_data" : [],
6620 "action_entry_const" : true
6621 }
6622 },
6623 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006624 "name" : "FabricEgress.egress_next.egress_vlan",
Carmelo Casconea5400af2018-07-17 22:11:54 +02006625 "id" : 42,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006626 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006627 "filename" : "include/control/next.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02006628 "line" : 258,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006629 "column" : 10,
6630 "source_fragment" : "egress_vlan"
6631 },
6632 "key" : [
6633 {
6634 "match_type" : "exact",
6635 "name" : "hdr.vlan_tag.vlan_id",
6636 "target" : ["vlan_tag", "vlan_id"],
6637 "mask" : null
6638 },
6639 {
6640 "match_type" : "exact",
6641 "name" : "standard_metadata.egress_port",
6642 "target" : ["standard_metadata", "egress_port"],
6643 "mask" : null
6644 }
6645 ],
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08006646 "match_type" : "exact",
6647 "type" : "simple",
6648 "max_size" : 1024,
Yi Tseng47eac892018-07-11 02:17:04 +08006649 "with_counters" : true,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08006650 "support_timeout" : false,
6651 "direct_meters" : null,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006652 "action_ids" : [68, 63],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006653 "actions" : ["FabricEgress.egress_next.pop_vlan", "nop"],
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006654 "base_default_next" : "node_67",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08006655 "next_tables" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006656 "FabricEgress.egress_next.pop_vlan" : "node_67",
6657 "nop" : "node_67"
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08006658 },
6659 "default_entry" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006660 "action_id" : 63,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006661 "action_const" : false,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08006662 "action_data" : [],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006663 "action_entry_const" : false
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08006664 }
6665 },
6666 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006667 "name" : "tbl_pkt_io_egress_pop_vlan",
Carmelo Casconea5400af2018-07-17 22:11:54 +02006668 "id" : 43,
Carmelo Cascone6af4e172018-06-15 16:01:30 +02006669 "key" : [],
6670 "match_type" : "exact",
6671 "type" : "simple",
6672 "max_size" : 1024,
6673 "with_counters" : false,
6674 "support_timeout" : false,
6675 "direct_meters" : null,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006676 "action_ids" : [67],
Esin Karaman971fb7f2017-12-28 13:44:52 +00006677 "actions" : ["FabricEgress.pkt_io_egress.pop_vlan"],
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006678 "base_default_next" : "node_70",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02006679 "next_tables" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006680 "FabricEgress.pkt_io_egress.pop_vlan" : "node_70"
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02006681 },
6682 "default_entry" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006683 "action_id" : 67,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02006684 "action_const" : true,
6685 "action_data" : [],
6686 "action_entry_const" : true
6687 }
6688 },
6689 {
6690 "name" : "tbl_drop_now_1",
6691 "id" : 44,
6692 "key" : [],
6693 "match_type" : "exact",
6694 "type" : "simple",
6695 "max_size" : 1024,
6696 "with_counters" : false,
6697 "support_timeout" : false,
6698 "direct_meters" : null,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006699 "action_ids" : [65],
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02006700 "actions" : ["drop_now"],
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006701 "base_default_next" : "tbl_act_26",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02006702 "next_tables" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006703 "drop_now" : "tbl_act_26"
Carmelo Cascone6af4e172018-06-15 16:01:30 +02006704 },
6705 "default_entry" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006706 "action_id" : 65,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08006707 "action_const" : true,
6708 "action_data" : [],
6709 "action_entry_const" : true
6710 }
6711 },
6712 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006713 "name" : "tbl_act_26",
Carmelo Casconea5400af2018-07-17 22:11:54 +02006714 "id" : 45,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006715 "key" : [],
6716 "match_type" : "exact",
6717 "type" : "simple",
6718 "max_size" : 1024,
6719 "with_counters" : false,
6720 "support_timeout" : false,
6721 "direct_meters" : null,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006722 "action_ids" : [69],
6723 "actions" : ["act_26"],
6724 "base_default_next" : "node_73",
Esin Karaman971fb7f2017-12-28 13:44:52 +00006725 "next_tables" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006726 "act_26" : "node_73"
Esin Karaman971fb7f2017-12-28 13:44:52 +00006727 },
6728 "default_entry" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006729 "action_id" : 69,
Esin Karaman971fb7f2017-12-28 13:44:52 +00006730 "action_const" : true,
6731 "action_data" : [],
6732 "action_entry_const" : true
6733 }
6734 },
6735 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006736 "name" : "tbl_spgw_egress_gtpu_encap",
Carmelo Casconea5400af2018-07-17 22:11:54 +02006737 "id" : 46,
Esin Karaman971fb7f2017-12-28 13:44:52 +00006738 "key" : [],
6739 "match_type" : "exact",
6740 "type" : "simple",
6741 "max_size" : 1024,
6742 "with_counters" : false,
6743 "support_timeout" : false,
6744 "direct_meters" : null,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006745 "action_ids" : [66],
Yi Tseng27b9bc02018-04-12 14:52:40 +08006746 "actions" : ["FabricEgress.spgw_egress.gtpu_encap"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006747 "base_default_next" : null,
6748 "next_tables" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08006749 "FabricEgress.spgw_egress.gtpu_encap" : null
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006750 },
6751 "default_entry" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006752 "action_id" : 66,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006753 "action_const" : true,
6754 "action_data" : [],
6755 "action_entry_const" : true
6756 }
6757 }
6758 ],
6759 "action_profiles" : [],
6760 "conditionals" : [
6761 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006762 "name" : "node_64",
6763 "id" : 19,
Carmelo Casconea5400af2018-07-17 22:11:54 +02006764 "source_info" : {
6765 "filename" : "include/control/next.p4",
6766 "line" : 272,
6767 "column" : 12,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02006768 "source_fragment" : "fabric_metadata.is_multicast == true ..."
Carmelo Casconea5400af2018-07-17 22:11:54 +02006769 },
6770 "expression" : {
6771 "type" : "expression",
6772 "value" : {
6773 "op" : "and",
6774 "left" : {
6775 "type" : "expression",
6776 "value" : {
6777 "op" : "==",
6778 "left" : {
6779 "type" : "expression",
6780 "value" : {
6781 "op" : "d2b",
6782 "left" : null,
6783 "right" : {
6784 "type" : "field",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02006785 "value" : ["scalars", "fabric_metadata_t.is_multicast"]
Carmelo Casconea5400af2018-07-17 22:11:54 +02006786 }
6787 }
6788 },
6789 "right" : {
6790 "type" : "bool",
6791 "value" : true
6792 }
6793 }
6794 },
6795 "right" : {
6796 "type" : "expression",
6797 "value" : {
6798 "op" : "==",
6799 "left" : {
6800 "type" : "field",
6801 "value" : ["standard_metadata", "ingress_port"]
6802 },
6803 "right" : {
6804 "type" : "field",
6805 "value" : ["standard_metadata", "egress_port"]
6806 }
6807 }
6808 }
6809 }
6810 },
6811 "true_next" : "tbl_drop_now_0",
6812 "false_next" : "FabricEgress.egress_next.egress_vlan"
6813 },
6814 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006815 "name" : "node_67",
6816 "id" : 20,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006817 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006818 "filename" : "include/control/packetio.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006819 "line" : 42,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006820 "column" : 12,
Carmelo Casconeb531b682018-01-30 17:55:56 -08006821 "source_fragment" : "standard_metadata.egress_port == 255"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006822 },
6823 "expression" : {
6824 "type" : "expression",
6825 "value" : {
6826 "op" : "==",
6827 "left" : {
6828 "type" : "field",
6829 "value" : ["standard_metadata", "egress_port"]
6830 },
6831 "right" : {
6832 "type" : "hexstr",
6833 "value" : "0x00ff"
6834 }
6835 }
6836 },
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006837 "true_next" : "node_68",
6838 "false_next" : "node_73"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006839 },
6840 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006841 "name" : "node_68",
6842 "id" : 21,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006843 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006844 "filename" : "include/control/packetio.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006845 "line" : 43,
6846 "column" : 16,
Carmelo Cascone228092b2018-06-15 20:41:10 +02006847 "source_fragment" : "hdr.vlan_tag.isValid() && fabric_metadata.pop_vlan_when_packet_in == true"
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006848 },
6849 "expression" : {
6850 "type" : "expression",
6851 "value" : {
6852 "op" : "and",
6853 "left" : {
6854 "type" : "expression",
6855 "value" : {
6856 "op" : "d2b",
6857 "left" : null,
6858 "right" : {
6859 "type" : "field",
6860 "value" : ["vlan_tag", "$valid$"]
6861 }
6862 }
6863 },
6864 "right" : {
6865 "type" : "expression",
6866 "value" : {
Carmelo Cascone228092b2018-06-15 20:41:10 +02006867 "op" : "==",
6868 "left" : {
6869 "type" : "expression",
6870 "value" : {
6871 "op" : "d2b",
6872 "left" : null,
6873 "right" : {
6874 "type" : "field",
6875 "value" : ["scalars", "fabric_metadata_t.pop_vlan_when_packet_in"]
6876 }
6877 }
6878 },
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006879 "right" : {
Carmelo Cascone228092b2018-06-15 20:41:10 +02006880 "type" : "bool",
6881 "value" : true
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006882 }
6883 }
6884 }
6885 }
6886 },
6887 "true_next" : "tbl_pkt_io_egress_pop_vlan",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006888 "false_next" : "node_70"
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02006889 },
6890 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006891 "name" : "node_70",
6892 "id" : 22,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02006893 "source_info" : {
6894 "filename" : "include/control/packetio.p4",
6895 "line" : 46,
6896 "column" : 16,
6897 "source_fragment" : "fabric_metadata.is_multicast == true && ..."
6898 },
6899 "expression" : {
6900 "type" : "expression",
6901 "value" : {
6902 "op" : "and",
6903 "left" : {
6904 "type" : "expression",
6905 "value" : {
6906 "op" : "==",
6907 "left" : {
6908 "type" : "expression",
6909 "value" : {
6910 "op" : "d2b",
6911 "left" : null,
6912 "right" : {
6913 "type" : "field",
6914 "value" : ["scalars", "fabric_metadata_t.is_multicast"]
6915 }
6916 }
6917 },
6918 "right" : {
6919 "type" : "bool",
6920 "value" : true
6921 }
6922 }
6923 },
6924 "right" : {
6925 "type" : "expression",
6926 "value" : {
6927 "op" : "==",
6928 "left" : {
6929 "type" : "expression",
6930 "value" : {
6931 "op" : "d2b",
6932 "left" : null,
6933 "right" : {
6934 "type" : "field",
6935 "value" : ["scalars", "fabric_metadata_t.clone_to_cpu"]
6936 }
6937 }
6938 },
6939 "right" : {
6940 "type" : "bool",
6941 "value" : false
6942 }
6943 }
6944 }
6945 }
6946 },
6947 "true_next" : "tbl_drop_now_1",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006948 "false_next" : "tbl_act_26"
Yi Tseng20f9e7b2018-05-24 23:27:39 +08006949 },
6950 {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006951 "name" : "node_73",
6952 "id" : 23,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006953 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02006954 "filename" : "include/spgw.p4",
Charles Chancf696e52018-08-16 16:25:13 -07006955 "line" : 221,
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006956 "column" : 12,
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006957 "source_fragment" : "spgw_meta.direction == SPGW_DIR_DOWNLINK"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006958 },
6959 "expression" : {
6960 "type" : "expression",
6961 "value" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006962 "op" : "==",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006963 "left" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006964 "type" : "field",
6965 "value" : ["userMetadata.spgw", "direction"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006966 },
6967 "right" : {
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07006968 "type" : "hexstr",
6969 "value" : "0x02"
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08006970 }
6971 }
6972 },
6973 "false_next" : null,
6974 "true_next" : "tbl_spgw_egress_gtpu_encap"
6975 }
6976 ]
6977 }
6978 ],
6979 "checksums" : [
6980 {
6981 "name" : "cksum",
6982 "id" : 0,
6983 "target" : ["ipv4", "hdr_checksum"],
6984 "type" : "generic",
6985 "calculation" : "calc",
6986 "if_cond" : {
6987 "type" : "expression",
6988 "value" : {
6989 "op" : "d2b",
6990 "left" : null,
6991 "right" : {
6992 "type" : "field",
6993 "value" : ["ipv4", "$valid$"]
6994 }
6995 }
6996 }
6997 },
6998 {
6999 "name" : "cksum_0",
7000 "id" : 1,
Carmelo Cascone6af4e172018-06-15 16:01:30 +02007001 "target" : ["gtpu_ipv4", "hdr_checksum"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007002 "type" : "generic",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08007003 "calculation" : "calc_0",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007004 "if_cond" : {
7005 "type" : "expression",
7006 "value" : {
7007 "op" : "d2b",
7008 "left" : null,
7009 "right" : {
7010 "type" : "field",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02007011 "value" : ["gtpu_ipv4", "$valid$"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007012 }
7013 }
7014 }
7015 },
7016 {
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08007017 "name" : "cksum_1",
7018 "id" : 2,
Carmelo Cascone6af4e172018-06-15 16:01:30 +02007019 "target" : ["ipv4", "hdr_checksum"],
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007020 "type" : "generic",
Carmelo Casconeb757dbc2018-01-25 17:53:17 -08007021 "calculation" : "calc_1",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007022 "if_cond" : {
7023 "type" : "expression",
7024 "value" : {
7025 "op" : "d2b",
7026 "left" : null,
7027 "right" : {
7028 "type" : "field",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02007029 "value" : ["ipv4", "$valid$"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007030 }
7031 }
7032 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007033 }
7034 ],
7035 "force_arith" : [],
7036 "extern_instances" : [],
7037 "field_aliases" : [
7038 [
7039 "queueing_metadata.enq_timestamp",
7040 ["standard_metadata", "enq_timestamp"]
7041 ],
7042 [
7043 "queueing_metadata.enq_qdepth",
7044 ["standard_metadata", "enq_qdepth"]
7045 ],
7046 [
7047 "queueing_metadata.deq_timedelta",
7048 ["standard_metadata", "deq_timedelta"]
7049 ],
7050 [
7051 "queueing_metadata.deq_qdepth",
7052 ["standard_metadata", "deq_qdepth"]
7053 ],
7054 [
7055 "intrinsic_metadata.ingress_global_timestamp",
7056 ["standard_metadata", "ingress_global_timestamp"]
7057 ],
7058 [
Yi Tseng27b9bc02018-04-12 14:52:40 +08007059 "intrinsic_metadata.egress_global_timestamp",
7060 ["standard_metadata", "egress_global_timestamp"]
7061 ],
7062 [
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007063 "intrinsic_metadata.lf_field_list",
7064 ["standard_metadata", "lf_field_list"]
7065 ],
7066 [
7067 "intrinsic_metadata.mcast_grp",
7068 ["standard_metadata", "mcast_grp"]
7069 ],
7070 [
7071 "intrinsic_metadata.resubmit_flag",
7072 ["standard_metadata", "resubmit_flag"]
7073 ],
7074 [
7075 "intrinsic_metadata.egress_rid",
7076 ["standard_metadata", "egress_rid"]
Yi Tseng27b9bc02018-04-12 14:52:40 +08007077 ],
7078 [
7079 "intrinsic_metadata.recirculate_flag",
7080 ["standard_metadata", "recirculate_flag"]
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007081 ]
Carmelo Cascone6af4e172018-06-15 16:01:30 +02007082 ],
7083 "program" : "fabric.p4",
7084 "__meta__" : {
7085 "version" : [2, 18],
7086 "compiler" : "https://github.com/p4lang/p4c"
7087 }
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08007088}