blob: cd54f59b0f664b0f40c7ae7310def7c02fd87692 [file] [log] [blame]
Yi Tsengbe342052017-11-03 10:21:23 -07001{
Yi Tsengbe342052017-11-03 10:21:23 -07002 "header_types" : [
3 {
4 "name" : "scalars_0",
5 "id" : 0,
6 "fields" : [
Yi Tsengc6844f52017-12-19 11:58:25 -08007 ["tmp", 4, false],
8 ["tmp_0", 32, false],
Yi Tsengbe342052017-11-03 10:21:23 -07009 ["tmp_1", 32, false],
Carmelo Cascone8a715f82018-08-20 23:16:27 -070010 ["filtering_tmp_0", 1, false],
Carmelo Casconea5400af2018-07-17 22:11:54 +020011 ["next_tmp_2", 1, false],
12 ["next_tmp_3", 1, false],
13 ["next_tmp_4", 1, false],
14 ["next_hasReturned_0", 1, false],
Yi Tsengbe342052017-11-03 10:21:23 -070015 ["fabric_metadata_t.fwd_type", 3, false],
16 ["fabric_metadata_t.next_id", 32, false],
Yi Tseng20f9e7b2018-05-24 23:27:39 +080017 ["fabric_metadata_t.pop_vlan_when_packet_in", 1, false],
Carmelo Cascone1e8843f2018-07-19 19:01:12 +020018 ["fabric_metadata_t.is_multicast", 1, false],
19 ["fabric_metadata_t.clone_to_cpu", 1, false],
Yi Tsengbe342052017-11-03 10:21:23 -070020 ["fabric_metadata_t.ip_proto", 8, false],
21 ["fabric_metadata_t.l4_src_port", 16, false],
Yi Tsengf55eaa82017-11-29 15:51:28 -080022 ["fabric_metadata_t.l4_dst_port", 16, false],
Carmelo Cascone8a715f82018-08-20 23:16:27 -070023 ["_padding_0", 1, false]
Yi Tsengc6844f52017-12-19 11:58:25 -080024 ]
25 },
26 {
Carmelo Cascone6af4e172018-06-15 16:01:30 +020027 "name" : "standard_metadata",
Yi Tsengc6844f52017-12-19 11:58:25 -080028 "id" : 1,
29 "fields" : [
Carmelo Cascone6af4e172018-06-15 16:01:30 +020030 ["ingress_port", 9, false],
31 ["egress_spec", 9, false],
32 ["egress_port", 9, false],
33 ["clone_spec", 32, false],
34 ["instance_type", 32, false],
35 ["drop", 1, false],
36 ["recirculate_port", 16, false],
37 ["packet_length", 32, false],
38 ["enq_timestamp", 32, false],
39 ["enq_qdepth", 19, false],
40 ["deq_timedelta", 32, false],
41 ["deq_qdepth", 19, false],
42 ["ingress_global_timestamp", 48, false],
43 ["egress_global_timestamp", 48, false],
44 ["lf_field_list", 32, false],
45 ["mcast_grp", 16, false],
46 ["resubmit_flag", 32, false],
47 ["egress_rid", 16, false],
48 ["checksum_error", 1, false],
49 ["recirculate_flag", 32, false],
50 ["_padding", 5, false]
51 ]
52 },
53 {
54 "name" : "ethernet_t",
55 "id" : 2,
56 "fields" : [
Yi Tsengc6844f52017-12-19 11:58:25 -080057 ["dst_addr", 48, false],
58 ["src_addr", 48, false],
59 ["ether_type", 16, false]
60 ]
61 },
62 {
63 "name" : "vlan_tag_t",
Carmelo Cascone6af4e172018-06-15 16:01:30 +020064 "id" : 3,
Yi Tsengc6844f52017-12-19 11:58:25 -080065 "fields" : [
66 ["pri", 3, false],
67 ["cfi", 1, false],
68 ["vlan_id", 12, false],
69 ["ether_type", 16, false]
70 ]
71 },
72 {
73 "name" : "mpls_t",
Carmelo Cascone6af4e172018-06-15 16:01:30 +020074 "id" : 4,
Yi Tsengc6844f52017-12-19 11:58:25 -080075 "fields" : [
76 ["label", 20, false],
77 ["tc", 3, false],
78 ["bos", 1, false],
79 ["ttl", 8, false]
Yi Tsengbe342052017-11-03 10:21:23 -070080 ]
81 },
82 {
83 "name" : "ipv4_t",
Carmelo Cascone6af4e172018-06-15 16:01:30 +020084 "id" : 5,
Yi Tsengbe342052017-11-03 10:21:23 -070085 "fields" : [
86 ["version", 4, false],
87 ["ihl", 4, false],
Jonghwan Hyuned478dc2018-08-06 15:35:18 +090088 ["dscp", 6, false],
89 ["ecn", 2, false],
Yi Tsengbe342052017-11-03 10:21:23 -070090 ["total_len", 16, false],
91 ["identification", 16, false],
92 ["flags", 3, false],
93 ["frag_offset", 13, false],
94 ["ttl", 8, false],
95 ["protocol", 8, false],
96 ["hdr_checksum", 16, false],
97 ["src_addr", 32, false],
98 ["dst_addr", 32, false]
99 ]
100 },
101 {
Yi Tseng47eac892018-07-11 02:17:04 +0800102 "name" : "arp_t",
Carmelo Casconef645e842018-07-16 18:31:52 +0200103 "id" : 6,
Yi Tseng47eac892018-07-11 02:17:04 +0800104 "fields" : [
Yi Tsengbe342052017-11-03 10:21:23 -0700105 ["hw_type", 16, false],
106 ["proto_type", 16, false],
107 ["hw_addr_len", 8, false],
108 ["proto_addr_len", 8, false],
109 ["opcode", 16, false]
110 ]
111 },
112 {
113 "name" : "tcp_t",
Carmelo Casconef645e842018-07-16 18:31:52 +0200114 "id" : 7,
Yi Tsengbe342052017-11-03 10:21:23 -0700115 "fields" : [
116 ["src_port", 16, false],
117 ["dst_port", 16, false],
118 ["seq_no", 32, false],
119 ["ack_no", 32, false],
120 ["data_offset", 4, false],
121 ["res", 3, false],
122 ["ecn", 3, false],
123 ["ctrl", 6, false],
124 ["window", 16, false],
125 ["checksum", 16, false],
126 ["urgent_ptr", 16, false]
127 ]
128 },
129 {
130 "name" : "udp_t",
Carmelo Casconef645e842018-07-16 18:31:52 +0200131 "id" : 8,
Yi Tsengbe342052017-11-03 10:21:23 -0700132 "fields" : [
133 ["src_port", 16, false],
134 ["dst_port", 16, false],
135 ["len", 16, false],
136 ["checksum", 16, false]
137 ]
138 },
139 {
140 "name" : "icmp_t",
Carmelo Casconef645e842018-07-16 18:31:52 +0200141 "id" : 9,
Yi Tsengbe342052017-11-03 10:21:23 -0700142 "fields" : [
143 ["icmp_type", 8, false],
144 ["icmp_code", 8, false],
Yi Tsengf73a5532017-11-17 15:58:57 -0800145 ["checksum", 16, false],
146 ["identifier", 16, false],
147 ["sequence_number", 16, false],
148 ["timestamp", 64, false]
Yi Tsengbe342052017-11-03 10:21:23 -0700149 ]
150 },
151 {
152 "name" : "packet_out_header_t",
Carmelo Casconef645e842018-07-16 18:31:52 +0200153 "id" : 10,
Yi Tsengbe342052017-11-03 10:21:23 -0700154 "fields" : [
155 ["egress_port", 9, false],
Yi Tseng1d842672017-11-28 16:06:52 -0800156 ["_pad", 7, false]
Yi Tsengbe342052017-11-03 10:21:23 -0700157 ]
158 },
159 {
160 "name" : "packet_in_header_t",
Carmelo Casconef645e842018-07-16 18:31:52 +0200161 "id" : 11,
Yi Tsengbe342052017-11-03 10:21:23 -0700162 "fields" : [
163 ["ingress_port", 9, false],
Yi Tseng1d842672017-11-28 16:06:52 -0800164 ["_pad", 7, false]
Yi Tsengbe342052017-11-03 10:21:23 -0700165 ]
Yi Tsengbe342052017-11-03 10:21:23 -0700166 }
167 ],
168 "headers" : [
169 {
Yi Tsengbe342052017-11-03 10:21:23 -0700170 "name" : "scalars",
Yi Tsengc6844f52017-12-19 11:58:25 -0800171 "id" : 0,
Yi Tsengbe342052017-11-03 10:21:23 -0700172 "header_type" : "scalars_0",
173 "metadata" : true,
174 "pi_omit" : true
175 },
176 {
177 "name" : "standard_metadata",
Yi Tsengc6844f52017-12-19 11:58:25 -0800178 "id" : 1,
Yi Tsengbe342052017-11-03 10:21:23 -0700179 "header_type" : "standard_metadata",
180 "metadata" : true,
181 "pi_omit" : true
182 },
183 {
184 "name" : "ethernet",
Yi Tsengc6844f52017-12-19 11:58:25 -0800185 "id" : 2,
Yi Tsengbe342052017-11-03 10:21:23 -0700186 "header_type" : "ethernet_t",
187 "metadata" : false,
188 "pi_omit" : true
189 },
190 {
191 "name" : "vlan_tag",
Yi Tsengc6844f52017-12-19 11:58:25 -0800192 "id" : 3,
Yi Tsengbe342052017-11-03 10:21:23 -0700193 "header_type" : "vlan_tag_t",
194 "metadata" : false,
195 "pi_omit" : true
196 },
197 {
Yi Tsengbe342052017-11-03 10:21:23 -0700198 "name" : "mpls",
Yi Tsengbd46d052018-01-22 17:18:16 -0800199 "id" : 4,
Yi Tsengbe342052017-11-03 10:21:23 -0700200 "header_type" : "mpls_t",
201 "metadata" : false,
202 "pi_omit" : true
203 },
204 {
205 "name" : "ipv4",
Yi Tsengbd46d052018-01-22 17:18:16 -0800206 "id" : 5,
Yi Tsengbe342052017-11-03 10:21:23 -0700207 "header_type" : "ipv4_t",
208 "metadata" : false,
209 "pi_omit" : true
210 },
211 {
Yi Tseng47eac892018-07-11 02:17:04 +0800212 "name" : "arp",
Carmelo Casconef645e842018-07-16 18:31:52 +0200213 "id" : 6,
Yi Tsengbe342052017-11-03 10:21:23 -0700214 "header_type" : "arp_t",
215 "metadata" : false,
216 "pi_omit" : true
217 },
218 {
219 "name" : "tcp",
Carmelo Casconef645e842018-07-16 18:31:52 +0200220 "id" : 7,
Yi Tsengbe342052017-11-03 10:21:23 -0700221 "header_type" : "tcp_t",
222 "metadata" : false,
223 "pi_omit" : true
224 },
225 {
226 "name" : "udp",
Carmelo Casconef645e842018-07-16 18:31:52 +0200227 "id" : 8,
Yi Tsengbe342052017-11-03 10:21:23 -0700228 "header_type" : "udp_t",
229 "metadata" : false,
230 "pi_omit" : true
231 },
232 {
233 "name" : "icmp",
Carmelo Casconef645e842018-07-16 18:31:52 +0200234 "id" : 9,
Yi Tsengbe342052017-11-03 10:21:23 -0700235 "header_type" : "icmp_t",
236 "metadata" : false,
237 "pi_omit" : true
238 },
239 {
240 "name" : "packet_out",
Carmelo Casconef645e842018-07-16 18:31:52 +0200241 "id" : 10,
Yi Tsengbe342052017-11-03 10:21:23 -0700242 "header_type" : "packet_out_header_t",
243 "metadata" : false,
244 "pi_omit" : true
245 },
246 {
247 "name" : "packet_in",
Carmelo Casconef645e842018-07-16 18:31:52 +0200248 "id" : 11,
Yi Tsengbe342052017-11-03 10:21:23 -0700249 "header_type" : "packet_in_header_t",
250 "metadata" : false,
251 "pi_omit" : true
252 }
253 ],
254 "header_stacks" : [],
255 "header_union_types" : [],
256 "header_unions" : [],
257 "header_union_stacks" : [],
258 "field_lists" : [],
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200259 "errors" : [],
Yi Tsengbe342052017-11-03 10:21:23 -0700260 "enums" : [],
261 "parsers" : [
262 {
263 "name" : "parser",
264 "id" : 0,
265 "init_state" : "start",
266 "parse_states" : [
267 {
268 "name" : "start",
269 "id" : 0,
270 "parser_ops" : [],
271 "transitions" : [
272 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800273 "type" : "hexstr",
Yi Tsengbe342052017-11-03 10:21:23 -0700274 "value" : "0x00ff",
275 "mask" : null,
276 "next_state" : "parse_packet_out"
277 },
278 {
279 "value" : "default",
280 "mask" : null,
281 "next_state" : "parse_ethernet"
282 }
283 ],
284 "transition_key" : [
285 {
286 "type" : "field",
287 "value" : ["standard_metadata", "ingress_port"]
288 }
289 ]
290 },
291 {
292 "name" : "parse_packet_out",
293 "id" : 1,
294 "parser_ops" : [
295 {
296 "parameters" : [
297 {
298 "type" : "regular",
299 "value" : "packet_out"
300 }
301 ],
302 "op" : "extract"
303 }
304 ],
305 "transitions" : [
306 {
307 "value" : "default",
308 "mask" : null,
309 "next_state" : "parse_ethernet"
310 }
311 ],
312 "transition_key" : []
313 },
314 {
315 "name" : "parse_ethernet",
316 "id" : 2,
317 "parser_ops" : [
318 {
319 "parameters" : [
320 {
321 "type" : "regular",
322 "value" : "ethernet"
323 }
324 ],
325 "op" : "extract"
326 }
327 ],
328 "transitions" : [
329 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800330 "type" : "hexstr",
Yi Tsengbe342052017-11-03 10:21:23 -0700331 "value" : "0x8100",
332 "mask" : null,
333 "next_state" : "parse_vlan_tag"
334 },
335 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800336 "type" : "hexstr",
Yi Tsengbe342052017-11-03 10:21:23 -0700337 "value" : "0x8847",
338 "mask" : null,
339 "next_state" : "parse_mpls"
340 },
341 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800342 "type" : "hexstr",
Yi Tsengbe342052017-11-03 10:21:23 -0700343 "value" : "0x0806",
344 "mask" : null,
345 "next_state" : "parse_arp"
346 },
347 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800348 "type" : "hexstr",
Yi Tsengbe342052017-11-03 10:21:23 -0700349 "value" : "0x0800",
350 "mask" : null,
351 "next_state" : "parse_ipv4"
352 },
353 {
Yi Tsengbe342052017-11-03 10:21:23 -0700354 "value" : "default",
355 "mask" : null,
356 "next_state" : null
357 }
358 ],
359 "transition_key" : [
360 {
361 "type" : "field",
362 "value" : ["ethernet", "ether_type"]
363 }
364 ]
365 },
366 {
367 "name" : "parse_vlan_tag",
368 "id" : 3,
369 "parser_ops" : [
370 {
371 "parameters" : [
372 {
373 "type" : "regular",
374 "value" : "vlan_tag"
375 }
376 ],
377 "op" : "extract"
378 }
379 ],
380 "transitions" : [
381 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800382 "type" : "hexstr",
Yi Tsengbe342052017-11-03 10:21:23 -0700383 "value" : "0x0806",
384 "mask" : null,
385 "next_state" : "parse_arp"
386 },
387 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800388 "type" : "hexstr",
Yi Tsengbe342052017-11-03 10:21:23 -0700389 "value" : "0x0800",
390 "mask" : null,
391 "next_state" : "parse_ipv4"
392 },
393 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800394 "type" : "hexstr",
Yi Tsengbd46d052018-01-22 17:18:16 -0800395 "value" : "0x8847",
Yi Tsengbe342052017-11-03 10:21:23 -0700396 "mask" : null,
Yi Tsengbd46d052018-01-22 17:18:16 -0800397 "next_state" : "parse_mpls"
Yi Tsengbe342052017-11-03 10:21:23 -0700398 },
399 {
400 "value" : "default",
401 "mask" : null,
402 "next_state" : null
403 }
404 ],
405 "transition_key" : [
406 {
407 "type" : "field",
408 "value" : ["vlan_tag", "ether_type"]
409 }
410 ]
411 },
412 {
413 "name" : "parse_mpls",
Yi Tsengbd46d052018-01-22 17:18:16 -0800414 "id" : 4,
Yi Tsengbe342052017-11-03 10:21:23 -0700415 "parser_ops" : [
416 {
417 "parameters" : [
418 {
419 "type" : "regular",
420 "value" : "mpls"
421 }
422 ],
423 "op" : "extract"
424 },
425 {
426 "parameters" : [
427 {
428 "type" : "field",
Yi Tsengc6844f52017-12-19 11:58:25 -0800429 "value" : ["scalars", "tmp"]
Yi Tsengbe342052017-11-03 10:21:23 -0700430 },
431 {
432 "type" : "lookahead",
Yi Tsengc6844f52017-12-19 11:58:25 -0800433 "value" : [0, 4]
Yi Tsengbe342052017-11-03 10:21:23 -0700434 }
435 ],
436 "op" : "set"
437 }
438 ],
439 "transitions" : [
440 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800441 "type" : "hexstr",
Yi Tsengbe342052017-11-03 10:21:23 -0700442 "value" : "0x04",
443 "mask" : null,
444 "next_state" : "parse_ipv4"
445 },
446 {
Yi Tsengbe342052017-11-03 10:21:23 -0700447 "value" : "default",
448 "mask" : null,
449 "next_state" : "parse_ethernet"
450 }
451 ],
452 "transition_key" : [
453 {
454 "type" : "field",
Yi Tsengc6844f52017-12-19 11:58:25 -0800455 "value" : ["scalars", "tmp"]
Yi Tsengbe342052017-11-03 10:21:23 -0700456 }
457 ]
458 },
459 {
460 "name" : "parse_ipv4",
Yi Tsengbd46d052018-01-22 17:18:16 -0800461 "id" : 5,
Yi Tsengbe342052017-11-03 10:21:23 -0700462 "parser_ops" : [
463 {
464 "parameters" : [
465 {
466 "type" : "regular",
467 "value" : "ipv4"
468 }
469 ],
470 "op" : "extract"
471 },
472 {
473 "parameters" : [
474 {
475 "type" : "field",
476 "value" : ["scalars", "fabric_metadata_t.ip_proto"]
477 },
478 {
479 "type" : "field",
480 "value" : ["ipv4", "protocol"]
481 }
482 ],
483 "op" : "set"
484 }
485 ],
486 "transitions" : [
487 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800488 "type" : "hexstr",
Yi Tsengbe342052017-11-03 10:21:23 -0700489 "value" : "0x06",
490 "mask" : null,
491 "next_state" : "parse_tcp"
492 },
493 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800494 "type" : "hexstr",
Yi Tsengbe342052017-11-03 10:21:23 -0700495 "value" : "0x11",
496 "mask" : null,
497 "next_state" : "parse_udp"
498 },
499 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800500 "type" : "hexstr",
Yi Tsengbe342052017-11-03 10:21:23 -0700501 "value" : "0x01",
502 "mask" : null,
503 "next_state" : "parse_icmp"
504 },
505 {
506 "value" : "default",
507 "mask" : null,
508 "next_state" : null
509 }
510 ],
511 "transition_key" : [
512 {
513 "type" : "field",
514 "value" : ["ipv4", "protocol"]
515 }
516 ]
517 },
518 {
Yi Tseng47eac892018-07-11 02:17:04 +0800519 "name" : "parse_arp",
Carmelo Casconef645e842018-07-16 18:31:52 +0200520 "id" : 6,
Yi Tseng47eac892018-07-11 02:17:04 +0800521 "parser_ops" : [
522 {
523 "parameters" : [
524 {
525 "type" : "regular",
Yi Tsengbe342052017-11-03 10:21:23 -0700526 "value" : "arp"
527 }
528 ],
529 "op" : "extract"
530 }
531 ],
532 "transitions" : [
533 {
534 "value" : "default",
535 "mask" : null,
536 "next_state" : null
537 }
538 ],
539 "transition_key" : []
540 },
541 {
542 "name" : "parse_tcp",
Carmelo Casconef645e842018-07-16 18:31:52 +0200543 "id" : 7,
Yi Tsengbe342052017-11-03 10:21:23 -0700544 "parser_ops" : [
545 {
546 "parameters" : [
547 {
548 "type" : "regular",
549 "value" : "tcp"
550 }
551 ],
552 "op" : "extract"
553 },
554 {
555 "parameters" : [
556 {
557 "type" : "field",
558 "value" : ["scalars", "fabric_metadata_t.l4_src_port"]
559 },
560 {
561 "type" : "field",
562 "value" : ["tcp", "src_port"]
563 }
564 ],
565 "op" : "set"
566 },
567 {
568 "parameters" : [
569 {
570 "type" : "field",
571 "value" : ["scalars", "fabric_metadata_t.l4_dst_port"]
572 },
573 {
574 "type" : "field",
575 "value" : ["tcp", "dst_port"]
576 }
577 ],
578 "op" : "set"
579 }
580 ],
581 "transitions" : [
582 {
583 "value" : "default",
584 "mask" : null,
585 "next_state" : null
586 }
587 ],
588 "transition_key" : []
589 },
590 {
591 "name" : "parse_udp",
Carmelo Casconef645e842018-07-16 18:31:52 +0200592 "id" : 8,
Yi Tsengbe342052017-11-03 10:21:23 -0700593 "parser_ops" : [
594 {
595 "parameters" : [
596 {
597 "type" : "regular",
598 "value" : "udp"
599 }
600 ],
601 "op" : "extract"
602 },
603 {
604 "parameters" : [
605 {
606 "type" : "field",
607 "value" : ["scalars", "fabric_metadata_t.l4_src_port"]
608 },
609 {
610 "type" : "field",
611 "value" : ["udp", "src_port"]
612 }
613 ],
614 "op" : "set"
615 },
616 {
617 "parameters" : [
618 {
619 "type" : "field",
620 "value" : ["scalars", "fabric_metadata_t.l4_dst_port"]
621 },
622 {
623 "type" : "field",
624 "value" : ["udp", "dst_port"]
625 }
626 ],
627 "op" : "set"
628 }
629 ],
630 "transitions" : [
631 {
632 "value" : "default",
633 "mask" : null,
634 "next_state" : null
635 }
636 ],
637 "transition_key" : []
638 },
639 {
640 "name" : "parse_icmp",
Carmelo Casconef645e842018-07-16 18:31:52 +0200641 "id" : 9,
Yi Tsengbe342052017-11-03 10:21:23 -0700642 "parser_ops" : [
643 {
644 "parameters" : [
645 {
646 "type" : "regular",
647 "value" : "icmp"
648 }
649 ],
650 "op" : "extract"
651 }
652 ],
653 "transitions" : [
654 {
655 "value" : "default",
656 "mask" : null,
657 "next_state" : null
658 }
659 ],
660 "transition_key" : []
661 }
662 ]
663 }
664 ],
Yi Tseng27b9bc02018-04-12 14:52:40 +0800665 "parse_vsets" : [],
Yi Tsengbe342052017-11-03 10:21:23 -0700666 "deparsers" : [
667 {
668 "name" : "deparser",
669 "id" : 0,
670 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +0200671 "filename" : "include/parser.p4",
Charles Chancf696e52018-08-16 16:25:13 -0700672 "line" : 223,
Yi Tsengbe342052017-11-03 10:21:23 -0700673 "column" : 8,
674 "source_fragment" : "FabricDeparser"
675 },
Carmelo Casconef645e842018-07-16 18:31:52 +0200676 "order" : ["packet_in", "ethernet", "vlan_tag", "mpls", "arp", "ipv4", "tcp", "udp", "icmp"]
Yi Tsengbe342052017-11-03 10:21:23 -0700677 }
678 ],
679 "meter_arrays" : [],
680 "counter_arrays" : [
681 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800682 "name" : "FabricIngress.filtering.ingress_port_vlan_counter",
Yi Tseng1d842672017-11-28 16:06:52 -0800683 "id" : 0,
Yi Tseng3a5731e2018-01-22 11:38:58 -0800684 "is_direct" : true,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800685 "binding" : "FabricIngress.filtering.ingress_port_vlan"
Yi Tseng3a5731e2018-01-22 11:38:58 -0800686 },
687 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800688 "name" : "FabricIngress.filtering.fwd_classifier_counter",
Yi Tseng3a5731e2018-01-22 11:38:58 -0800689 "id" : 1,
690 "is_direct" : true,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800691 "binding" : "FabricIngress.filtering.fwd_classifier"
Yi Tseng3a5731e2018-01-22 11:38:58 -0800692 },
693 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800694 "name" : "FabricIngress.forwarding.bridging_counter",
Yi Tseng3a5731e2018-01-22 11:38:58 -0800695 "id" : 2,
696 "is_direct" : true,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800697 "binding" : "FabricIngress.forwarding.bridging"
Yi Tseng3a5731e2018-01-22 11:38:58 -0800698 },
699 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800700 "name" : "FabricIngress.forwarding.mpls_counter",
Yi Tseng3a5731e2018-01-22 11:38:58 -0800701 "id" : 3,
702 "is_direct" : true,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800703 "binding" : "FabricIngress.forwarding.mpls"
Yi Tseng3a5731e2018-01-22 11:38:58 -0800704 },
705 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800706 "name" : "FabricIngress.forwarding.unicast_v4_counter",
Yi Tseng3a5731e2018-01-22 11:38:58 -0800707 "id" : 4,
708 "is_direct" : true,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800709 "binding" : "FabricIngress.forwarding.unicast_v4"
Yi Tseng3a5731e2018-01-22 11:38:58 -0800710 },
711 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800712 "name" : "FabricIngress.forwarding.acl_counter",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -0800713 "id" : 5,
Yi Tseng3a5731e2018-01-22 11:38:58 -0800714 "is_direct" : true,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800715 "binding" : "FabricIngress.forwarding.acl"
Yi Tseng3a5731e2018-01-22 11:38:58 -0800716 },
717 {
Yi Tseng47eac892018-07-11 02:17:04 +0800718 "name" : "FabricIngress.next.vlan_meta_counter",
Carmelo Casconef645e842018-07-16 18:31:52 +0200719 "id" : 6,
Yi Tseng47eac892018-07-11 02:17:04 +0800720 "is_direct" : true,
Yi Tseng20f9e7b2018-05-24 23:27:39 +0800721 "binding" : "FabricIngress.next.vlan_meta"
722 },
723 {
724 "name" : "FabricIngress.next.simple_counter",
Carmelo Casconef645e842018-07-16 18:31:52 +0200725 "id" : 7,
Yi Tseng20f9e7b2018-05-24 23:27:39 +0800726 "is_direct" : true,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800727 "binding" : "FabricIngress.next.simple"
728 },
729 {
730 "name" : "FabricIngress.next.hashed_counter",
Carmelo Casconef645e842018-07-16 18:31:52 +0200731 "id" : 8,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800732 "is_direct" : true,
733 "binding" : "FabricIngress.next.hashed"
734 },
735 {
Esin Karaman971fb7f2017-12-28 13:44:52 +0000736 "name" : "FabricIngress.next.multicast_counter",
Carmelo Casconef645e842018-07-16 18:31:52 +0200737 "id" : 9,
Esin Karaman971fb7f2017-12-28 13:44:52 +0000738 "is_direct" : true,
739 "binding" : "FabricIngress.next.multicast"
740 },
741 {
742 "name" : "FabricIngress.port_counters_control.egress_port_counter",
Carmelo Casconef645e842018-07-16 18:31:52 +0200743 "id" : 10,
Yi Tsengbe342052017-11-03 10:21:23 -0700744 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +0200745 "filename" : "include/control/port_counter.p4",
Yi Tsengbe342052017-11-03 10:21:23 -0700746 "line" : 23,
Yi Tseng3d3956d2018-01-31 17:28:05 -0800747 "column" : 48,
Yi Tsengbe342052017-11-03 10:21:23 -0700748 "source_fragment" : "egress_port_counter"
749 },
750 "size" : 511,
751 "is_direct" : false
752 },
753 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800754 "name" : "FabricIngress.port_counters_control.ingress_port_counter",
Carmelo Casconef645e842018-07-16 18:31:52 +0200755 "id" : 11,
Yi Tsengbe342052017-11-03 10:21:23 -0700756 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +0200757 "filename" : "include/control/port_counter.p4",
Yi Tsengbe342052017-11-03 10:21:23 -0700758 "line" : 24,
Yi Tseng3d3956d2018-01-31 17:28:05 -0800759 "column" : 48,
Yi Tsengbe342052017-11-03 10:21:23 -0700760 "source_fragment" : "ingress_port_counter"
761 },
762 "size" : 511,
763 "is_direct" : false
Yi Tseng47eac892018-07-11 02:17:04 +0800764 },
765 {
766 "name" : "FabricEgress.egress_next.egress_vlan_counter",
Carmelo Casconef645e842018-07-16 18:31:52 +0200767 "id" : 12,
Yi Tseng47eac892018-07-11 02:17:04 +0800768 "is_direct" : true,
769 "binding" : "FabricEgress.egress_next.egress_vlan"
Yi Tsengbe342052017-11-03 10:21:23 -0700770 }
771 ],
772 "register_arrays" : [],
773 "calculations" : [
774 {
775 "name" : "calc",
776 "id" : 0,
777 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +0200778 "filename" : "include/checksum.p4",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200779 "line" : 28,
Yi Tsengbe342052017-11-03 10:21:23 -0700780 "column" : 8,
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200781 "source_fragment" : "update_checksum(hdr.ipv4.isValid(), ..."
Yi Tsengbe342052017-11-03 10:21:23 -0700782 },
783 "algo" : "csum16",
784 "input" : [
785 {
786 "type" : "field",
787 "value" : ["ipv4", "version"]
788 },
789 {
790 "type" : "field",
791 "value" : ["ipv4", "ihl"]
792 },
793 {
794 "type" : "field",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +0900795 "value" : ["ipv4", "dscp"]
796 },
797 {
798 "type" : "field",
799 "value" : ["ipv4", "ecn"]
Yi Tsengbe342052017-11-03 10:21:23 -0700800 },
801 {
802 "type" : "field",
803 "value" : ["ipv4", "total_len"]
804 },
805 {
806 "type" : "field",
807 "value" : ["ipv4", "identification"]
808 },
809 {
810 "type" : "field",
811 "value" : ["ipv4", "flags"]
812 },
813 {
814 "type" : "field",
815 "value" : ["ipv4", "frag_offset"]
816 },
817 {
818 "type" : "field",
819 "value" : ["ipv4", "ttl"]
820 },
821 {
822 "type" : "field",
823 "value" : ["ipv4", "protocol"]
824 },
825 {
826 "type" : "field",
827 "value" : ["ipv4", "src_addr"]
828 },
829 {
830 "type" : "field",
831 "value" : ["ipv4", "dst_addr"]
832 }
833 ]
834 },
835 {
836 "name" : "calc_0",
837 "id" : 1,
838 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +0200839 "filename" : "include/checksum.p4",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +0900840 "line" : 57,
Yi Tsengbe342052017-11-03 10:21:23 -0700841 "column" : 8,
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200842 "source_fragment" : "verify_checksum(hdr.ipv4.isValid(), ..."
Yi Tsengbe342052017-11-03 10:21:23 -0700843 },
844 "algo" : "csum16",
845 "input" : [
846 {
847 "type" : "field",
848 "value" : ["ipv4", "version"]
849 },
850 {
851 "type" : "field",
852 "value" : ["ipv4", "ihl"]
853 },
854 {
855 "type" : "field",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +0900856 "value" : ["ipv4", "dscp"]
857 },
858 {
859 "type" : "field",
860 "value" : ["ipv4", "ecn"]
Yi Tsengbe342052017-11-03 10:21:23 -0700861 },
862 {
863 "type" : "field",
864 "value" : ["ipv4", "total_len"]
865 },
866 {
867 "type" : "field",
868 "value" : ["ipv4", "identification"]
869 },
870 {
871 "type" : "field",
872 "value" : ["ipv4", "flags"]
873 },
874 {
875 "type" : "field",
876 "value" : ["ipv4", "frag_offset"]
877 },
878 {
879 "type" : "field",
880 "value" : ["ipv4", "ttl"]
881 },
882 {
883 "type" : "field",
884 "value" : ["ipv4", "protocol"]
885 },
886 {
887 "type" : "field",
888 "value" : ["ipv4", "src_addr"]
889 },
890 {
891 "type" : "field",
892 "value" : ["ipv4", "dst_addr"]
893 }
894 ]
Yi Tsengbe342052017-11-03 10:21:23 -0700895 }
896 ],
897 "learn_lists" : [],
898 "actions" : [
899 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -0700900 "name" : "NoAction",
Yi Tsengbe342052017-11-03 10:21:23 -0700901 "id" : 0,
902 "runtime_data" : [],
903 "primitives" : []
904 },
905 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -0700906 "name" : "NoAction",
Yi Tsengbe342052017-11-03 10:21:23 -0700907 "id" : 1,
908 "runtime_data" : [],
909 "primitives" : []
910 },
911 {
Charles Chancf696e52018-08-16 16:25:13 -0700912 "name" : "NoAction",
Yi Tsengbe342052017-11-03 10:21:23 -0700913 "id" : 2,
914 "runtime_data" : [],
Yi Tseng1d842672017-11-28 16:06:52 -0800915 "primitives" : []
Yi Tsengbe342052017-11-03 10:21:23 -0700916 },
917 {
Yi Tseng1d842672017-11-28 16:06:52 -0800918 "name" : "NoAction",
Yi Tsengbe342052017-11-03 10:21:23 -0700919 "id" : 3,
920 "runtime_data" : [],
Yi Tseng1d842672017-11-28 16:06:52 -0800921 "primitives" : []
Yi Tsengbe342052017-11-03 10:21:23 -0700922 },
923 {
924 "name" : "NoAction",
925 "id" : 4,
926 "runtime_data" : [],
927 "primitives" : []
928 },
929 {
930 "name" : "NoAction",
931 "id" : 5,
932 "runtime_data" : [],
933 "primitives" : []
934 },
935 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -0700936 "name" : "nop",
Yi Tsengbe342052017-11-03 10:21:23 -0700937 "id" : 6,
938 "runtime_data" : [],
939 "primitives" : []
940 },
941 {
Yi Tseng47eac892018-07-11 02:17:04 +0800942 "name" : "FabricIngress.filtering.drop",
Carmelo Cascone8a715f82018-08-20 23:16:27 -0700943 "id" : 7,
Yi Tseng47eac892018-07-11 02:17:04 +0800944 "runtime_data" : [],
Yi Tseng1d842672017-11-28 16:06:52 -0800945 "primitives" : [
946 {
947 "op" : "drop",
948 "parameters" : [],
949 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +0200950 "filename" : "include/control/filtering.p4",
Yi Tseng47eac892018-07-11 02:17:04 +0800951 "line" : 37,
Yi Tseng1d842672017-11-28 16:06:52 -0800952 "column" : 8,
953 "source_fragment" : "mark_to_drop()"
954 }
955 }
956 ]
Yi Tsengbe342052017-11-03 10:21:23 -0700957 },
958 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800959 "name" : "FabricIngress.filtering.set_vlan",
Carmelo Cascone8a715f82018-08-20 23:16:27 -0700960 "id" : 8,
Yi Tsengbe342052017-11-03 10:21:23 -0700961 "runtime_data" : [
962 {
963 "name" : "new_vlan_id",
964 "bitwidth" : 12
965 }
966 ],
967 "primitives" : [
968 {
969 "op" : "assign",
970 "parameters" : [
971 {
972 "type" : "field",
973 "value" : ["vlan_tag", "vlan_id"]
974 },
975 {
976 "type" : "runtime_data",
977 "value" : 0
978 }
979 ],
980 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +0200981 "filename" : "include/control/filtering.p4",
Yi Tseng47eac892018-07-11 02:17:04 +0800982 "line" : 42,
Yi Tsengbe342052017-11-03 10:21:23 -0700983 "column" : 8,
984 "source_fragment" : "hdr.vlan_tag.vlan_id = new_vlan_id"
985 }
986 }
987 ]
988 },
989 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800990 "name" : "FabricIngress.filtering.push_internal_vlan",
Carmelo Cascone8a715f82018-08-20 23:16:27 -0700991 "id" : 9,
Yi Tsengbe342052017-11-03 10:21:23 -0700992 "runtime_data" : [
993 {
994 "name" : "new_vlan_id",
995 "bitwidth" : 12
996 }
997 ],
998 "primitives" : [
999 {
1000 "op" : "add_header",
1001 "parameters" : [
1002 {
1003 "type" : "header",
1004 "value" : "vlan_tag"
1005 }
1006 ],
1007 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001008 "filename" : "include/control/filtering.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001009 "line" : 49,
Yi Tsengbe342052017-11-03 10:21:23 -07001010 "column" : 8,
1011 "source_fragment" : "hdr.vlan_tag.setValid()"
1012 }
1013 },
1014 {
1015 "op" : "assign",
1016 "parameters" : [
1017 {
1018 "type" : "field",
1019 "value" : ["vlan_tag", "cfi"]
1020 },
1021 {
1022 "type" : "hexstr",
1023 "value" : "0x00"
1024 }
1025 ],
1026 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001027 "filename" : "include/control/filtering.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001028 "line" : 50,
Yi Tsengbe342052017-11-03 10:21:23 -07001029 "column" : 8,
1030 "source_fragment" : "hdr.vlan_tag.cfi = 0"
1031 }
1032 },
1033 {
1034 "op" : "assign",
1035 "parameters" : [
1036 {
1037 "type" : "field",
1038 "value" : ["vlan_tag", "pri"]
1039 },
1040 {
1041 "type" : "hexstr",
1042 "value" : "0x00"
1043 }
1044 ],
1045 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001046 "filename" : "include/control/filtering.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001047 "line" : 51,
Yi Tsengbe342052017-11-03 10:21:23 -07001048 "column" : 8,
1049 "source_fragment" : "hdr.vlan_tag.pri = 0"
1050 }
1051 },
1052 {
1053 "op" : "assign",
1054 "parameters" : [
1055 {
1056 "type" : "field",
1057 "value" : ["vlan_tag", "ether_type"]
1058 },
1059 {
Yi Tseng1d842672017-11-28 16:06:52 -08001060 "type" : "field",
1061 "value" : ["ethernet", "ether_type"]
1062 }
1063 ],
1064 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001065 "filename" : "include/control/filtering.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001066 "line" : 52,
Yi Tseng1d842672017-11-28 16:06:52 -08001067 "column" : 8,
1068 "source_fragment" : "hdr.vlan_tag.ether_type = hdr.ethernet.ether_type"
1069 }
1070 },
1071 {
1072 "op" : "assign",
1073 "parameters" : [
1074 {
1075 "type" : "field",
1076 "value" : ["ethernet", "ether_type"]
1077 },
1078 {
Yi Tsengbe342052017-11-03 10:21:23 -07001079 "type" : "hexstr",
1080 "value" : "0x8100"
1081 }
1082 ],
1083 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001084 "filename" : "include/control/../define.p4",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07001085 "line" : 89,
Yi Tsengbe342052017-11-03 10:21:23 -07001086 "column" : 31,
1087 "source_fragment" : "0x8100; ..."
1088 }
1089 },
1090 {
1091 "op" : "assign",
1092 "parameters" : [
1093 {
1094 "type" : "field",
1095 "value" : ["vlan_tag", "vlan_id"]
1096 },
1097 {
1098 "type" : "runtime_data",
1099 "value" : 0
1100 }
1101 ],
1102 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001103 "filename" : "include/control/filtering.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001104 "line" : 54,
Yi Tsengbe342052017-11-03 10:21:23 -07001105 "column" : 8,
Yi Tseng47eac892018-07-11 02:17:04 +08001106 "source_fragment" : "hdr.vlan_tag.vlan_id = new_vlan_id"
Yi Tsengbe342052017-11-03 10:21:23 -07001107 }
1108 },
1109 {
1110 "op" : "assign",
1111 "parameters" : [
1112 {
1113 "type" : "field",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001114 "value" : ["scalars", "fabric_metadata_t.pop_vlan_when_packet_in"]
Yi Tsengbe342052017-11-03 10:21:23 -07001115 },
1116 {
1117 "type" : "expression",
1118 "value" : {
1119 "type" : "expression",
1120 "value" : {
1121 "op" : "b2d",
1122 "left" : null,
1123 "right" : {
1124 "type" : "bool",
1125 "value" : true
1126 }
1127 }
1128 }
1129 }
1130 ],
1131 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001132 "filename" : "include/control/filtering.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001133 "line" : 57,
Yi Tsengbe342052017-11-03 10:21:23 -07001134 "column" : 8,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001135 "source_fragment" : "fabric_metadata.pop_vlan_when_packet_in = true"
Yi Tsengbe342052017-11-03 10:21:23 -07001136 }
1137 }
1138 ]
1139 },
1140 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07001141 "name" : "FabricIngress.filtering.nop_ingress_port_vlan",
1142 "id" : 10,
1143 "runtime_data" : [],
1144 "primitives" : []
1145 },
1146 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001147 "name" : "FabricIngress.filtering.set_forwarding_type",
Charles Chancf696e52018-08-16 16:25:13 -07001148 "id" : 11,
Yi Tsengbe342052017-11-03 10:21:23 -07001149 "runtime_data" : [
1150 {
1151 "name" : "fwd_type",
1152 "bitwidth" : 3
1153 }
1154 ],
1155 "primitives" : [
1156 {
1157 "op" : "assign",
1158 "parameters" : [
1159 {
1160 "type" : "field",
1161 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
1162 },
1163 {
1164 "type" : "runtime_data",
1165 "value" : 0
1166 }
1167 ],
1168 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001169 "filename" : "include/control/filtering.p4",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07001170 "line" : 99,
Yi Tsengbe342052017-11-03 10:21:23 -07001171 "column" : 8,
1172 "source_fragment" : "fabric_metadata.fwd_type = fwd_type"
1173 }
1174 }
1175 ]
1176 },
1177 {
Yi Tseng47eac892018-07-11 02:17:04 +08001178 "name" : "FabricIngress.forwarding.set_next_id_bridging",
Charles Chancf696e52018-08-16 16:25:13 -07001179 "id" : 12,
Carmelo Casconef645e842018-07-16 18:31:52 +02001180 "runtime_data" : [
1181 {
1182 "name" : "next_id",
1183 "bitwidth" : 32
1184 }
1185 ],
1186 "primitives" : [
1187 {
1188 "op" : "assign",
1189 "parameters" : [
1190 {
1191 "type" : "field",
1192 "value" : ["scalars", "fabric_metadata_t.next_id"]
1193 },
1194 {
1195 "type" : "runtime_data",
1196 "value" : 0
1197 }
1198 ],
1199 "source_info" : {
1200 "filename" : "include/control/forwarding.p4",
1201 "line" : 37,
1202 "column" : 8,
1203 "source_fragment" : "fabric_metadata.next_id = next_id"
1204 }
1205 }
1206 ]
1207 },
1208 {
1209 "name" : "FabricIngress.forwarding.pop_mpls_and_next",
Charles Chancf696e52018-08-16 16:25:13 -07001210 "id" : 13,
Carmelo Casconef645e842018-07-16 18:31:52 +02001211 "runtime_data" : [
1212 {
1213 "name" : "next_id",
1214 "bitwidth" : 32
1215 }
1216 ],
1217 "primitives" : [
1218 {
1219 "op" : "remove_header",
1220 "parameters" : [
1221 {
1222 "type" : "header",
1223 "value" : "mpls"
1224 }
1225 ],
1226 "source_info" : {
1227 "filename" : "include/control/forwarding.p4",
1228 "line" : 60,
1229 "column" : 8,
1230 "source_fragment" : "hdr.mpls.setInvalid()"
1231 }
1232 },
1233 {
1234 "op" : "assign",
1235 "parameters" : [
1236 {
1237 "type" : "field",
1238 "value" : ["scalars", "fabric_metadata_t.next_id"]
1239 },
1240 {
1241 "type" : "runtime_data",
1242 "value" : 0
1243 }
1244 ],
1245 "source_info" : {
1246 "filename" : "include/control/forwarding.p4",
1247 "line" : 61,
1248 "column" : 8,
1249 "source_fragment" : "fabric_metadata.next_id = next_id"
1250 }
1251 }
1252 ]
1253 },
1254 {
1255 "name" : "FabricIngress.forwarding.set_next_id_unicast_v4",
Charles Chancf696e52018-08-16 16:25:13 -07001256 "id" : 14,
Carmelo Casconef645e842018-07-16 18:31:52 +02001257 "runtime_data" : [
1258 {
1259 "name" : "next_id",
1260 "bitwidth" : 32
1261 }
1262 ],
1263 "primitives" : [
1264 {
1265 "op" : "assign",
1266 "parameters" : [
1267 {
1268 "type" : "field",
1269 "value" : ["scalars", "fabric_metadata_t.next_id"]
1270 },
1271 {
1272 "type" : "runtime_data",
1273 "value" : 0
1274 }
1275 ],
1276 "source_info" : {
1277 "filename" : "include/control/forwarding.p4",
1278 "line" : 83,
1279 "column" : 8,
1280 "source_fragment" : "fabric_metadata.next_id = next_id"
1281 }
1282 }
1283 ]
1284 },
1285 {
1286 "name" : "FabricIngress.forwarding.set_next_id_acl",
Charles Chancf696e52018-08-16 16:25:13 -07001287 "id" : 15,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001288 "runtime_data" : [
1289 {
1290 "name" : "next_id",
1291 "bitwidth" : 32
1292 }
1293 ],
1294 "primitives" : [
1295 {
Esin Karaman971fb7f2017-12-28 13:44:52 +00001296 "op" : "assign",
1297 "parameters" : [
1298 {
1299 "type" : "field",
1300 "value" : ["scalars", "fabric_metadata_t.next_id"]
1301 },
1302 {
1303 "type" : "runtime_data",
1304 "value" : 0
1305 }
1306 ],
1307 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001308 "filename" : "include/control/forwarding.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001309 "line" : 105,
1310 "column" : 8,
1311 "source_fragment" : "fabric_metadata.next_id = next_id"
1312 }
1313 }
1314 ]
1315 },
1316 {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001317 "name" : "FabricIngress.forwarding.punt_to_cpu",
Charles Chancf696e52018-08-16 16:25:13 -07001318 "id" : 16,
Yi Tsengbe342052017-11-03 10:21:23 -07001319 "runtime_data" : [],
1320 "primitives" : [
1321 {
1322 "op" : "assign",
1323 "parameters" : [
1324 {
1325 "type" : "field",
Yi Tsengbe342052017-11-03 10:21:23 -07001326 "value" : ["standard_metadata", "egress_spec"]
1327 },
1328 {
1329 "type" : "hexstr",
1330 "value" : "0x00ff"
1331 }
1332 ],
1333 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001334 "filename" : "include/control/forwarding.p4",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001335 "line" : 111,
Carmelo Casconeb531b682018-01-30 17:55:56 -08001336 "column" : 8,
1337 "source_fragment" : "standard_metadata.egress_spec = 255"
Yi Tsengbe342052017-11-03 10:21:23 -07001338 }
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001339 },
1340 {
1341 "op" : "exit",
1342 "parameters" : [],
1343 "source_info" : {
1344 "filename" : "include/control/forwarding.p4",
1345 "line" : 113,
1346 "column" : 8,
1347 "source_fragment" : "exit"
1348 }
1349 }
1350 ]
1351 },
1352 {
1353 "name" : "FabricIngress.forwarding.clone_to_cpu",
Charles Chancf696e52018-08-16 16:25:13 -07001354 "id" : 17,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001355 "runtime_data" : [],
1356 "primitives" : [
1357 {
1358 "op" : "assign",
1359 "parameters" : [
1360 {
1361 "type" : "field",
1362 "value" : ["scalars", "fabric_metadata_t.clone_to_cpu"]
1363 },
1364 {
1365 "type" : "expression",
1366 "value" : {
1367 "type" : "expression",
1368 "value" : {
1369 "op" : "b2d",
1370 "left" : null,
1371 "right" : {
1372 "type" : "bool",
1373 "value" : true
1374 }
1375 }
1376 }
1377 }
1378 ],
1379 "source_info" : {
1380 "filename" : "include/control/forwarding.p4",
1381 "line" : 118,
1382 "column" : 8,
1383 "source_fragment" : "fabric_metadata.clone_to_cpu = true"
1384 }
Yi Tsengbe342052017-11-03 10:21:23 -07001385 }
1386 ]
1387 },
1388 {
Yi Tseng47eac892018-07-11 02:17:04 +08001389 "name" : "FabricIngress.forwarding.drop",
Charles Chancf696e52018-08-16 16:25:13 -07001390 "id" : 18,
Yi Tseng47eac892018-07-11 02:17:04 +08001391 "runtime_data" : [],
1392 "primitives" : [
1393 {
1394 "op" : "drop",
1395 "parameters" : [],
1396 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001397 "filename" : "include/control/forwarding.p4",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001398 "line" : 123,
Yi Tseng47eac892018-07-11 02:17:04 +08001399 "column" : 8,
1400 "source_fragment" : "mark_to_drop()"
1401 }
1402 }
1403 ]
1404 },
1405 {
Charles Chancf696e52018-08-16 16:25:13 -07001406 "name" : "FabricIngress.forwarding.nop_acl",
1407 "id" : 19,
1408 "runtime_data" : [],
1409 "primitives" : []
1410 },
1411 {
Yi Tseng47eac892018-07-11 02:17:04 +08001412 "name" : "FabricIngress.next.set_vlan",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001413 "id" : 20,
Yi Tseng47eac892018-07-11 02:17:04 +08001414 "runtime_data" : [
1415 {
1416 "name" : "new_vlan_id",
1417 "bitwidth" : 12
1418 }
1419 ],
1420 "primitives" : [
1421 {
1422 "op" : "assign",
1423 "parameters" : [
1424 {
1425 "type" : "field",
1426 "value" : ["vlan_tag", "vlan_id"]
1427 },
1428 {
1429 "type" : "runtime_data",
1430 "value" : 0
1431 }
1432 ],
1433 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001434 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001435 "line" : 61,
1436 "column" : 8,
1437 "source_fragment" : "hdr.vlan_tag.vlan_id = new_vlan_id"
1438 }
1439 }
1440 ]
1441 },
1442 {
1443 "name" : "FabricIngress.next.output_simple",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001444 "id" : 21,
Yi Tsengbe342052017-11-03 10:21:23 -07001445 "runtime_data" : [
1446 {
1447 "name" : "port_num",
1448 "bitwidth" : 9
1449 }
1450 ],
1451 "primitives" : [
1452 {
1453 "op" : "assign",
1454 "parameters" : [
1455 {
1456 "type" : "field",
1457 "value" : ["standard_metadata", "egress_spec"]
1458 },
1459 {
1460 "type" : "runtime_data",
1461 "value" : 0
1462 }
1463 ],
1464 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001465 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001466 "line" : 85,
Yi Tsengbe342052017-11-03 10:21:23 -07001467 "column" : 8,
1468 "source_fragment" : "standard_metadata.egress_spec = port_num"
1469 }
Yi Tsengbe342052017-11-03 10:21:23 -07001470 }
1471 ]
1472 },
1473 {
Yi Tseng47eac892018-07-11 02:17:04 +08001474 "name" : "FabricIngress.next.set_vlan_output",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001475 "id" : 22,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001476 "runtime_data" : [
1477 {
1478 "name" : "new_vlan_id",
1479 "bitwidth" : 12
Yi Tseng47eac892018-07-11 02:17:04 +08001480 },
1481 {
1482 "name" : "port_num",
1483 "bitwidth" : 9
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001484 }
1485 ],
1486 "primitives" : [
1487 {
1488 "op" : "assign",
1489 "parameters" : [
1490 {
1491 "type" : "field",
1492 "value" : ["vlan_tag", "vlan_id"]
1493 },
1494 {
1495 "type" : "runtime_data",
1496 "value" : 0
1497 }
1498 ],
1499 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001500 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001501 "line" : 90,
1502 "column" : 8,
1503 "source_fragment" : "hdr.vlan_tag.vlan_id = new_vlan_id"
1504 }
1505 },
1506 {
1507 "op" : "assign",
1508 "parameters" : [
1509 {
1510 "type" : "field",
1511 "value" : ["standard_metadata", "egress_spec"]
1512 },
1513 {
1514 "type" : "runtime_data",
1515 "value" : 1
1516 }
1517 ],
1518 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001519 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001520 "line" : 85,
1521 "column" : 8,
1522 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
1523 }
1524 }
1525 ]
1526 },
1527 {
1528 "name" : "FabricIngress.next.l3_routing_simple",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001529 "id" : 23,
Yi Tseng47eac892018-07-11 02:17:04 +08001530 "runtime_data" : [
1531 {
1532 "name" : "port_num",
1533 "bitwidth" : 9
1534 },
1535 {
1536 "name" : "smac",
1537 "bitwidth" : 48
1538 },
1539 {
1540 "name" : "dmac",
1541 "bitwidth" : 48
1542 }
1543 ],
1544 "primitives" : [
1545 {
1546 "op" : "assign",
1547 "parameters" : [
1548 {
1549 "type" : "field",
1550 "value" : ["ethernet", "src_addr"]
1551 },
1552 {
1553 "type" : "runtime_data",
1554 "value" : 1
1555 }
1556 ],
1557 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001558 "filename" : "include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001559 "line" : 37,
1560 "column" : 8,
Yi Tseng47eac892018-07-11 02:17:04 +08001561 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
1562 }
1563 },
1564 {
1565 "op" : "assign",
1566 "parameters" : [
1567 {
1568 "type" : "field",
1569 "value" : ["ethernet", "dst_addr"]
1570 },
1571 {
1572 "type" : "runtime_data",
1573 "value" : 2
1574 }
1575 ],
1576 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001577 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001578 "line" : 41,
1579 "column" : 8,
1580 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
1581 }
1582 },
1583 {
1584 "op" : "assign",
1585 "parameters" : [
1586 {
1587 "type" : "field",
1588 "value" : ["standard_metadata", "egress_spec"]
1589 },
1590 {
1591 "type" : "runtime_data",
1592 "value" : 0
1593 }
1594 ],
1595 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001596 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001597 "line" : 85,
1598 "column" : 8,
1599 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001600 }
1601 }
1602 ]
1603 },
1604 {
Yi Tseng47eac892018-07-11 02:17:04 +08001605 "name" : "FabricIngress.next.mpls_routing_v4_simple",
Carmelo Casconef645e842018-07-16 18:31:52 +02001606 "id" : 24,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001607 "runtime_data" : [
1608 {
1609 "name" : "port_num",
1610 "bitwidth" : 9
1611 },
1612 {
1613 "name" : "smac",
1614 "bitwidth" : 48
1615 },
1616 {
1617 "name" : "dmac",
1618 "bitwidth" : 48
Yi Tseng47eac892018-07-11 02:17:04 +08001619 },
1620 {
1621 "name" : "label",
1622 "bitwidth" : 20
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001623 }
1624 ],
1625 "primitives" : [
1626 {
1627 "op" : "assign",
1628 "parameters" : [
1629 {
1630 "type" : "field",
1631 "value" : ["ethernet", "src_addr"]
1632 },
1633 {
1634 "type" : "runtime_data",
1635 "value" : 1
1636 }
1637 ],
1638 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001639 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001640 "line" : 37,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001641 "column" : 8,
1642 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
1643 }
1644 },
1645 {
1646 "op" : "assign",
1647 "parameters" : [
1648 {
1649 "type" : "field",
1650 "value" : ["ethernet", "dst_addr"]
1651 },
1652 {
1653 "type" : "runtime_data",
1654 "value" : 2
1655 }
1656 ],
1657 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001658 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001659 "line" : 41,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001660 "column" : 8,
1661 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
1662 }
1663 },
1664 {
1665 "op" : "assign",
1666 "parameters" : [
1667 {
1668 "type" : "field",
1669 "value" : ["standard_metadata", "egress_spec"]
1670 },
1671 {
1672 "type" : "runtime_data",
1673 "value" : 0
1674 }
1675 ],
1676 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001677 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001678 "line" : 85,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001679 "column" : 8,
1680 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
1681 }
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001682 },
1683 {
Yi Tseng47eac892018-07-11 02:17:04 +08001684 "op" : "add_header",
Esin Karaman971fb7f2017-12-28 13:44:52 +00001685 "parameters" : [
1686 {
Yi Tseng47eac892018-07-11 02:17:04 +08001687 "type" : "header",
1688 "value" : "mpls"
Esin Karaman971fb7f2017-12-28 13:44:52 +00001689 }
1690 ],
1691 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001692 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001693 "line" : 46,
Esin Karaman971fb7f2017-12-28 13:44:52 +00001694 "column" : 8,
Yi Tseng47eac892018-07-11 02:17:04 +08001695 "source_fragment" : "hdr.mpls.setValid()"
Esin Karaman971fb7f2017-12-28 13:44:52 +00001696 }
1697 },
1698 {
1699 "op" : "assign",
1700 "parameters" : [
1701 {
1702 "type" : "field",
Yi Tseng47eac892018-07-11 02:17:04 +08001703 "value" : ["vlan_tag", "ether_type"]
Esin Karaman971fb7f2017-12-28 13:44:52 +00001704 },
1705 {
Yi Tseng47eac892018-07-11 02:17:04 +08001706 "type" : "hexstr",
1707 "value" : "0x8847"
Esin Karaman971fb7f2017-12-28 13:44:52 +00001708 }
1709 ],
1710 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001711 "filename" : "include/control/../define.p4",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07001712 "line" : 90,
Yi Tseng47eac892018-07-11 02:17:04 +08001713 "column" : 31,
1714 "source_fragment" : "0x8847; ..."
Esin Karaman971fb7f2017-12-28 13:44:52 +00001715 }
1716 },
1717 {
1718 "op" : "assign",
1719 "parameters" : [
1720 {
1721 "type" : "field",
Yi Tseng47eac892018-07-11 02:17:04 +08001722 "value" : ["mpls", "label"]
Esin Karaman971fb7f2017-12-28 13:44:52 +00001723 },
1724 {
1725 "type" : "runtime_data",
Yi Tseng47eac892018-07-11 02:17:04 +08001726 "value" : 3
Esin Karaman971fb7f2017-12-28 13:44:52 +00001727 }
1728 ],
1729 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001730 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001731 "line" : 48,
Esin Karaman971fb7f2017-12-28 13:44:52 +00001732 "column" : 8,
Yi Tseng47eac892018-07-11 02:17:04 +08001733 "source_fragment" : "hdr.mpls.label = label; ..."
1734 }
1735 },
1736 {
1737 "op" : "assign",
1738 "parameters" : [
1739 {
1740 "type" : "field",
1741 "value" : ["mpls", "tc"]
1742 },
1743 {
1744 "type" : "hexstr",
1745 "value" : "0x00"
1746 }
1747 ],
1748 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001749 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001750 "line" : 49,
1751 "column" : 8,
1752 "source_fragment" : "hdr.mpls.tc = tc; ..."
1753 }
1754 },
1755 {
1756 "op" : "assign",
1757 "parameters" : [
1758 {
1759 "type" : "field",
1760 "value" : ["mpls", "bos"]
1761 },
1762 {
1763 "type" : "hexstr",
1764 "value" : "0x01"
1765 }
1766 ],
1767 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001768 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001769 "line" : 50,
1770 "column" : 8,
1771 "source_fragment" : "hdr.mpls.bos = 1w1"
1772 }
1773 },
1774 {
1775 "op" : "assign",
1776 "parameters" : [
1777 {
1778 "type" : "field",
1779 "value" : ["mpls", "ttl"]
1780 },
1781 {
1782 "type" : "hexstr",
1783 "value" : "0x40"
1784 }
1785 ],
1786 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001787 "filename" : "include/control/../define.p4",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07001788 "line" : 113,
Yi Tseng47eac892018-07-11 02:17:04 +08001789 "column" : 32,
1790 "source_fragment" : "64; ..."
Esin Karaman971fb7f2017-12-28 13:44:52 +00001791 }
1792 }
1793 ]
1794 },
1795 {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001796 "name" : "FabricIngress.next.mpls_routing_v6_simple",
Carmelo Casconef645e842018-07-16 18:31:52 +02001797 "id" : 25,
Esin Karaman971fb7f2017-12-28 13:44:52 +00001798 "runtime_data" : [
1799 {
1800 "name" : "port_num",
1801 "bitwidth" : 9
1802 },
1803 {
1804 "name" : "smac",
1805 "bitwidth" : 48
1806 },
1807 {
1808 "name" : "dmac",
1809 "bitwidth" : 48
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001810 },
1811 {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001812 "name" : "label",
1813 "bitwidth" : 20
Yi Tsengbe342052017-11-03 10:21:23 -07001814 }
1815 ],
1816 "primitives" : [
1817 {
1818 "op" : "assign",
1819 "parameters" : [
1820 {
1821 "type" : "field",
1822 "value" : ["ethernet", "src_addr"]
1823 },
1824 {
1825 "type" : "runtime_data",
1826 "value" : 1
1827 }
1828 ],
1829 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001830 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001831 "line" : 37,
Yi Tsengbe342052017-11-03 10:21:23 -07001832 "column" : 8,
1833 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
1834 }
1835 },
1836 {
1837 "op" : "assign",
1838 "parameters" : [
1839 {
1840 "type" : "field",
1841 "value" : ["ethernet", "dst_addr"]
1842 },
1843 {
1844 "type" : "runtime_data",
1845 "value" : 2
1846 }
1847 ],
1848 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001849 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001850 "line" : 41,
Yi Tsengbe342052017-11-03 10:21:23 -07001851 "column" : 8,
1852 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
1853 }
1854 },
1855 {
1856 "op" : "assign",
1857 "parameters" : [
1858 {
1859 "type" : "field",
1860 "value" : ["standard_metadata", "egress_spec"]
1861 },
1862 {
1863 "type" : "runtime_data",
1864 "value" : 0
1865 }
1866 ],
1867 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001868 "filename" : "include/control/next.p4",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001869 "line" : 85,
Yi Tsengbe342052017-11-03 10:21:23 -07001870 "column" : 8,
1871 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
1872 }
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001873 },
1874 {
1875 "op" : "add_header",
1876 "parameters" : [
1877 {
1878 "type" : "header",
1879 "value" : "mpls"
1880 }
1881 ],
1882 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001883 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001884 "line" : 46,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001885 "column" : 8,
1886 "source_fragment" : "hdr.mpls.setValid()"
1887 }
1888 },
1889 {
1890 "op" : "assign",
1891 "parameters" : [
1892 {
1893 "type" : "field",
1894 "value" : ["vlan_tag", "ether_type"]
1895 },
1896 {
1897 "type" : "hexstr",
1898 "value" : "0x8847"
1899 }
1900 ],
1901 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001902 "filename" : "include/control/../define.p4",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07001903 "line" : 90,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001904 "column" : 31,
1905 "source_fragment" : "0x8847; ..."
1906 }
1907 },
1908 {
1909 "op" : "assign",
1910 "parameters" : [
1911 {
1912 "type" : "field",
1913 "value" : ["mpls", "label"]
1914 },
1915 {
1916 "type" : "runtime_data",
1917 "value" : 3
1918 }
1919 ],
1920 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001921 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001922 "line" : 48,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001923 "column" : 8,
1924 "source_fragment" : "hdr.mpls.label = label; ..."
1925 }
1926 },
1927 {
1928 "op" : "assign",
1929 "parameters" : [
1930 {
1931 "type" : "field",
1932 "value" : ["mpls", "tc"]
1933 },
1934 {
1935 "type" : "hexstr",
1936 "value" : "0x00"
1937 }
1938 ],
1939 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001940 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001941 "line" : 49,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001942 "column" : 8,
1943 "source_fragment" : "hdr.mpls.tc = tc; ..."
1944 }
1945 },
1946 {
1947 "op" : "assign",
1948 "parameters" : [
1949 {
1950 "type" : "field",
1951 "value" : ["mpls", "bos"]
1952 },
1953 {
1954 "type" : "hexstr",
1955 "value" : "0x01"
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" : 50,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001961 "column" : 8,
1962 "source_fragment" : "hdr.mpls.bos = 1w1"
1963 }
1964 },
1965 {
1966 "op" : "assign",
1967 "parameters" : [
1968 {
1969 "type" : "field",
1970 "value" : ["mpls", "ttl"]
1971 },
1972 {
1973 "type" : "hexstr",
1974 "value" : "0x40"
1975 }
1976 ],
1977 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001978 "filename" : "include/control/../define.p4",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07001979 "line" : 113,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001980 "column" : 32,
1981 "source_fragment" : "64; ..."
1982 }
Yi Tsengbe342052017-11-03 10:21:23 -07001983 }
1984 ]
1985 },
1986 {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001987 "name" : "FabricIngress.next.l3_routing_vlan",
1988 "id" : 26,
1989 "runtime_data" : [
1990 {
1991 "name" : "port_num",
1992 "bitwidth" : 9
1993 },
1994 {
1995 "name" : "smac",
1996 "bitwidth" : 48
1997 },
1998 {
1999 "name" : "dmac",
2000 "bitwidth" : 48
2001 },
2002 {
2003 "name" : "new_vlan_id",
2004 "bitwidth" : 12
2005 }
2006 ],
2007 "primitives" : [
2008 {
2009 "op" : "assign",
2010 "parameters" : [
2011 {
2012 "type" : "field",
2013 "value" : ["ethernet", "src_addr"]
2014 },
2015 {
2016 "type" : "runtime_data",
2017 "value" : 1
2018 }
2019 ],
2020 "source_info" : {
2021 "filename" : "include/control/next.p4",
2022 "line" : 37,
2023 "column" : 8,
2024 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2025 }
2026 },
2027 {
2028 "op" : "assign",
2029 "parameters" : [
2030 {
2031 "type" : "field",
2032 "value" : ["ethernet", "dst_addr"]
2033 },
2034 {
2035 "type" : "runtime_data",
2036 "value" : 2
2037 }
2038 ],
2039 "source_info" : {
2040 "filename" : "include/control/next.p4",
2041 "line" : 41,
2042 "column" : 8,
2043 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2044 }
2045 },
2046 {
2047 "op" : "assign",
2048 "parameters" : [
2049 {
2050 "type" : "field",
2051 "value" : ["vlan_tag", "vlan_id"]
2052 },
2053 {
2054 "type" : "runtime_data",
2055 "value" : 3
2056 }
2057 ],
2058 "source_info" : {
2059 "filename" : "include/control/next.p4",
2060 "line" : 90,
2061 "column" : 8,
2062 "source_fragment" : "hdr.vlan_tag.vlan_id = new_vlan_id; ..."
2063 }
2064 },
2065 {
2066 "op" : "assign",
2067 "parameters" : [
2068 {
2069 "type" : "field",
2070 "value" : ["standard_metadata", "egress_spec"]
2071 },
2072 {
2073 "type" : "runtime_data",
2074 "value" : 0
2075 }
2076 ],
2077 "source_info" : {
2078 "filename" : "include/control/next.p4",
2079 "line" : 85,
2080 "column" : 8,
2081 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2082 }
2083 }
2084 ]
2085 },
2086 {
2087 "name" : "FabricIngress.next.l3_routing_hashed",
2088 "id" : 27,
2089 "runtime_data" : [
2090 {
2091 "name" : "port_num",
2092 "bitwidth" : 9
2093 },
2094 {
2095 "name" : "smac",
2096 "bitwidth" : 48
2097 },
2098 {
2099 "name" : "dmac",
2100 "bitwidth" : 48
2101 }
2102 ],
2103 "primitives" : [
2104 {
2105 "op" : "assign",
2106 "parameters" : [
2107 {
2108 "type" : "field",
2109 "value" : ["ethernet", "src_addr"]
2110 },
2111 {
2112 "type" : "runtime_data",
2113 "value" : 1
2114 }
2115 ],
2116 "source_info" : {
2117 "filename" : "include/control/next.p4",
2118 "line" : 37,
2119 "column" : 8,
2120 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2121 }
2122 },
2123 {
2124 "op" : "assign",
2125 "parameters" : [
2126 {
2127 "type" : "field",
2128 "value" : ["ethernet", "dst_addr"]
2129 },
2130 {
2131 "type" : "runtime_data",
2132 "value" : 2
2133 }
2134 ],
2135 "source_info" : {
2136 "filename" : "include/control/next.p4",
2137 "line" : 41,
2138 "column" : 8,
2139 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2140 }
2141 },
2142 {
2143 "op" : "assign",
2144 "parameters" : [
2145 {
2146 "type" : "field",
2147 "value" : ["standard_metadata", "egress_spec"]
2148 },
2149 {
2150 "type" : "runtime_data",
2151 "value" : 0
2152 }
2153 ],
2154 "source_info" : {
2155 "filename" : "include/control/next.p4",
2156 "line" : 149,
2157 "column" : 8,
2158 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2159 }
2160 }
2161 ]
2162 },
2163 {
2164 "name" : "FabricIngress.next.mpls_routing_v4_hashed",
Carmelo Casconef645e842018-07-16 18:31:52 +02002165 "id" : 28,
Yi Tsengbe342052017-11-03 10:21:23 -07002166 "runtime_data" : [
2167 {
2168 "name" : "port_num",
2169 "bitwidth" : 9
2170 },
2171 {
2172 "name" : "smac",
2173 "bitwidth" : 48
2174 },
2175 {
2176 "name" : "dmac",
2177 "bitwidth" : 48
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002178 },
2179 {
2180 "name" : "label",
2181 "bitwidth" : 20
Yi Tsengbe342052017-11-03 10:21:23 -07002182 }
2183 ],
2184 "primitives" : [
2185 {
2186 "op" : "assign",
2187 "parameters" : [
2188 {
2189 "type" : "field",
2190 "value" : ["ethernet", "src_addr"]
2191 },
2192 {
2193 "type" : "runtime_data",
2194 "value" : 1
2195 }
2196 ],
2197 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002198 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002199 "line" : 37,
Yi Tsengbe342052017-11-03 10:21:23 -07002200 "column" : 8,
2201 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2202 }
2203 },
2204 {
2205 "op" : "assign",
2206 "parameters" : [
2207 {
2208 "type" : "field",
2209 "value" : ["ethernet", "dst_addr"]
2210 },
2211 {
2212 "type" : "runtime_data",
2213 "value" : 2
2214 }
2215 ],
2216 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002217 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002218 "line" : 41,
Yi Tsengbe342052017-11-03 10:21:23 -07002219 "column" : 8,
2220 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2221 }
2222 },
2223 {
2224 "op" : "assign",
2225 "parameters" : [
2226 {
2227 "type" : "field",
2228 "value" : ["standard_metadata", "egress_spec"]
2229 },
2230 {
2231 "type" : "runtime_data",
2232 "value" : 0
2233 }
2234 ],
2235 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002236 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002237 "line" : 149,
Yi Tsengbe342052017-11-03 10:21:23 -07002238 "column" : 8,
2239 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2240 }
Yi Tsengbe342052017-11-03 10:21:23 -07002241 },
2242 {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002243 "op" : "add_header",
Yi Tsengbe342052017-11-03 10:21:23 -07002244 "parameters" : [
2245 {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002246 "type" : "header",
2247 "value" : "mpls"
Yi Tsengbe342052017-11-03 10:21:23 -07002248 }
2249 ],
2250 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002251 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002252 "line" : 46,
Yi Tsengbe342052017-11-03 10:21:23 -07002253 "column" : 8,
Yi Tseng1b154bd2017-11-20 17:48:19 -08002254 "source_fragment" : "hdr.mpls.setValid()"
2255 }
2256 },
2257 {
2258 "op" : "assign",
2259 "parameters" : [
2260 {
2261 "type" : "field",
Yi Tsengbd46d052018-01-22 17:18:16 -08002262 "value" : ["vlan_tag", "ether_type"]
Yi Tseng1b154bd2017-11-20 17:48:19 -08002263 },
2264 {
2265 "type" : "hexstr",
2266 "value" : "0x8847"
2267 }
2268 ],
2269 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002270 "filename" : "include/control/../define.p4",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002271 "line" : 90,
Yi Tseng1b154bd2017-11-20 17:48:19 -08002272 "column" : 31,
2273 "source_fragment" : "0x8847; ..."
2274 }
2275 },
2276 {
2277 "op" : "assign",
2278 "parameters" : [
2279 {
2280 "type" : "field",
2281 "value" : ["mpls", "label"]
2282 },
2283 {
2284 "type" : "runtime_data",
2285 "value" : 3
2286 }
2287 ],
2288 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002289 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002290 "line" : 48,
Yi Tseng1b154bd2017-11-20 17:48:19 -08002291 "column" : 8,
2292 "source_fragment" : "hdr.mpls.label = label; ..."
2293 }
2294 },
2295 {
2296 "op" : "assign",
2297 "parameters" : [
2298 {
2299 "type" : "field",
2300 "value" : ["mpls", "tc"]
2301 },
2302 {
Yi Tseng1d842672017-11-28 16:06:52 -08002303 "type" : "hexstr",
2304 "value" : "0x00"
Yi Tseng1b154bd2017-11-20 17:48:19 -08002305 }
2306 ],
2307 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002308 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002309 "line" : 49,
Yi Tseng1b154bd2017-11-20 17:48:19 -08002310 "column" : 8,
2311 "source_fragment" : "hdr.mpls.tc = tc; ..."
2312 }
2313 },
2314 {
2315 "op" : "assign",
2316 "parameters" : [
2317 {
2318 "type" : "field",
2319 "value" : ["mpls", "bos"]
2320 },
2321 {
2322 "type" : "hexstr",
2323 "value" : "0x01"
2324 }
2325 ],
2326 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002327 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002328 "line" : 50,
Yi Tseng1b154bd2017-11-20 17:48:19 -08002329 "column" : 8,
Yi Tseng1d842672017-11-28 16:06:52 -08002330 "source_fragment" : "hdr.mpls.bos = 1w1"
Yi Tseng1b154bd2017-11-20 17:48:19 -08002331 }
2332 },
2333 {
2334 "op" : "assign",
2335 "parameters" : [
2336 {
2337 "type" : "field",
2338 "value" : ["mpls", "ttl"]
2339 },
2340 {
2341 "type" : "hexstr",
2342 "value" : "0x40"
2343 }
2344 ],
2345 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002346 "filename" : "include/control/../define.p4",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002347 "line" : 113,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002348 "column" : 32,
2349 "source_fragment" : "64; ..."
2350 }
2351 }
2352 ]
2353 },
2354 {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002355 "name" : "FabricIngress.next.mpls_routing_v6_hashed",
Carmelo Casconef645e842018-07-16 18:31:52 +02002356 "id" : 29,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002357 "runtime_data" : [
2358 {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002359 "name" : "port_num",
2360 "bitwidth" : 9
2361 },
2362 {
2363 "name" : "smac",
2364 "bitwidth" : 48
2365 },
2366 {
2367 "name" : "dmac",
2368 "bitwidth" : 48
2369 },
2370 {
2371 "name" : "label",
2372 "bitwidth" : 20
2373 }
2374 ],
2375 "primitives" : [
2376 {
2377 "op" : "assign",
2378 "parameters" : [
2379 {
2380 "type" : "field",
2381 "value" : ["ethernet", "src_addr"]
2382 },
2383 {
2384 "type" : "runtime_data",
2385 "value" : 1
2386 }
2387 ],
2388 "source_info" : {
2389 "filename" : "include/control/next.p4",
2390 "line" : 37,
2391 "column" : 8,
2392 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2393 }
2394 },
2395 {
2396 "op" : "assign",
2397 "parameters" : [
2398 {
2399 "type" : "field",
2400 "value" : ["ethernet", "dst_addr"]
2401 },
2402 {
2403 "type" : "runtime_data",
2404 "value" : 2
2405 }
2406 ],
2407 "source_info" : {
2408 "filename" : "include/control/next.p4",
2409 "line" : 41,
2410 "column" : 8,
2411 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2412 }
2413 },
2414 {
2415 "op" : "assign",
2416 "parameters" : [
2417 {
2418 "type" : "field",
2419 "value" : ["standard_metadata", "egress_spec"]
2420 },
2421 {
2422 "type" : "runtime_data",
2423 "value" : 0
2424 }
2425 ],
2426 "source_info" : {
2427 "filename" : "include/control/next.p4",
2428 "line" : 149,
2429 "column" : 8,
2430 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2431 }
2432 },
2433 {
2434 "op" : "add_header",
2435 "parameters" : [
2436 {
2437 "type" : "header",
2438 "value" : "mpls"
2439 }
2440 ],
2441 "source_info" : {
2442 "filename" : "include/control/next.p4",
2443 "line" : 46,
2444 "column" : 8,
2445 "source_fragment" : "hdr.mpls.setValid()"
2446 }
2447 },
2448 {
2449 "op" : "assign",
2450 "parameters" : [
2451 {
2452 "type" : "field",
2453 "value" : ["vlan_tag", "ether_type"]
2454 },
2455 {
2456 "type" : "hexstr",
2457 "value" : "0x8847"
2458 }
2459 ],
2460 "source_info" : {
2461 "filename" : "include/control/../define.p4",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002462 "line" : 90,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002463 "column" : 31,
2464 "source_fragment" : "0x8847; ..."
2465 }
2466 },
2467 {
2468 "op" : "assign",
2469 "parameters" : [
2470 {
2471 "type" : "field",
2472 "value" : ["mpls", "label"]
2473 },
2474 {
2475 "type" : "runtime_data",
2476 "value" : 3
2477 }
2478 ],
2479 "source_info" : {
2480 "filename" : "include/control/next.p4",
2481 "line" : 48,
2482 "column" : 8,
2483 "source_fragment" : "hdr.mpls.label = label; ..."
2484 }
2485 },
2486 {
2487 "op" : "assign",
2488 "parameters" : [
2489 {
2490 "type" : "field",
2491 "value" : ["mpls", "tc"]
2492 },
2493 {
2494 "type" : "hexstr",
2495 "value" : "0x00"
2496 }
2497 ],
2498 "source_info" : {
2499 "filename" : "include/control/next.p4",
2500 "line" : 49,
2501 "column" : 8,
2502 "source_fragment" : "hdr.mpls.tc = tc; ..."
2503 }
2504 },
2505 {
2506 "op" : "assign",
2507 "parameters" : [
2508 {
2509 "type" : "field",
2510 "value" : ["mpls", "bos"]
2511 },
2512 {
2513 "type" : "hexstr",
2514 "value" : "0x01"
2515 }
2516 ],
2517 "source_info" : {
2518 "filename" : "include/control/next.p4",
2519 "line" : 50,
2520 "column" : 8,
2521 "source_fragment" : "hdr.mpls.bos = 1w1"
2522 }
2523 },
2524 {
2525 "op" : "assign",
2526 "parameters" : [
2527 {
2528 "type" : "field",
2529 "value" : ["mpls", "ttl"]
2530 },
2531 {
2532 "type" : "hexstr",
2533 "value" : "0x40"
2534 }
2535 ],
2536 "source_info" : {
2537 "filename" : "include/control/../define.p4",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002538 "line" : 113,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002539 "column" : 32,
2540 "source_fragment" : "64; ..."
2541 }
2542 }
2543 ]
2544 },
2545 {
2546 "name" : "FabricIngress.next.set_mcast_group",
2547 "id" : 30,
2548 "runtime_data" : [
2549 {
Esin Karaman971fb7f2017-12-28 13:44:52 +00002550 "name" : "gid",
2551 "bitwidth" : 16
2552 }
2553 ],
2554 "primitives" : [
2555 {
2556 "op" : "assign",
2557 "parameters" : [
2558 {
2559 "type" : "field",
2560 "value" : ["standard_metadata", "mcast_grp"]
2561 },
2562 {
2563 "type" : "runtime_data",
2564 "value" : 0
2565 }
2566 ],
2567 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002568 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002569 "line" : 202,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002570 "column" : 8,
2571 "source_fragment" : "standard_metadata.mcast_grp = gid"
2572 }
Carmelo Casconea5400af2018-07-17 22:11:54 +02002573 },
2574 {
2575 "op" : "assign",
2576 "parameters" : [
2577 {
2578 "type" : "field",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002579 "value" : ["scalars", "fabric_metadata_t.is_multicast"]
Carmelo Casconea5400af2018-07-17 22:11:54 +02002580 },
2581 {
2582 "type" : "expression",
2583 "value" : {
2584 "type" : "expression",
2585 "value" : {
2586 "op" : "b2d",
2587 "left" : null,
2588 "right" : {
2589 "type" : "bool",
2590 "value" : true
2591 }
2592 }
2593 }
2594 }
2595 ],
2596 "source_info" : {
2597 "filename" : "include/control/next.p4",
2598 "line" : 203,
2599 "column" : 8,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002600 "source_fragment" : "fabric_metadata.is_multicast = true"
Carmelo Casconea5400af2018-07-17 22:11:54 +02002601 }
Esin Karaman971fb7f2017-12-28 13:44:52 +00002602 }
2603 ]
2604 },
2605 {
2606 "name" : "act",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002607 "id" : 31,
Yi Tsengbe342052017-11-03 10:21:23 -07002608 "runtime_data" : [],
2609 "primitives" : [
2610 {
2611 "op" : "assign",
2612 "parameters" : [
2613 {
2614 "type" : "field",
2615 "value" : ["standard_metadata", "egress_spec"]
2616 },
2617 {
2618 "type" : "field",
2619 "value" : ["packet_out", "egress_port"]
2620 }
2621 ],
2622 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002623 "filename" : "include/control/packetio.p4",
Yi Tsengbe342052017-11-03 10:21:23 -07002624 "line" : 26,
2625 "column" : 12,
2626 "source_fragment" : "standard_metadata.egress_spec = hdr.packet_out.egress_port"
2627 }
Yi Tseng1d842672017-11-28 16:06:52 -08002628 },
2629 {
2630 "op" : "remove_header",
2631 "parameters" : [
2632 {
2633 "type" : "header",
2634 "value" : "packet_out"
2635 }
2636 ],
2637 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002638 "filename" : "include/control/packetio.p4",
Yi Tseng1d842672017-11-28 16:06:52 -08002639 "line" : 27,
2640 "column" : 12,
2641 "source_fragment" : "hdr.packet_out.setInvalid()"
2642 }
Yi Tsengbe342052017-11-03 10:21:23 -07002643 }
2644 ]
2645 },
2646 {
2647 "name" : "act_0",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002648 "id" : 32,
Yi Tsengbe342052017-11-03 10:21:23 -07002649 "runtime_data" : [],
2650 "primitives" : [
2651 {
2652 "op" : "assign",
2653 "parameters" : [
2654 {
2655 "type" : "field",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002656 "value" : ["scalars", "filtering_tmp_0"]
Yi Tseng1d842672017-11-28 16:06:52 -08002657 },
2658 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002659 "type" : "expression",
2660 "value" : {
2661 "type" : "expression",
2662 "value" : {
2663 "op" : "b2d",
2664 "left" : null,
2665 "right" : {
2666 "type" : "bool",
2667 "value" : true
2668 }
2669 }
2670 }
Yi Tseng1d842672017-11-28 16:06:52 -08002671 }
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002672 ]
Yi Tseng1d842672017-11-28 16:06:52 -08002673 }
2674 ]
2675 },
2676 {
2677 "name" : "act_1",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002678 "id" : 33,
Yi Tseng1d842672017-11-28 16:06:52 -08002679 "runtime_data" : [],
2680 "primitives" : [
2681 {
2682 "op" : "assign",
2683 "parameters" : [
2684 {
2685 "type" : "field",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002686 "value" : ["scalars", "filtering_tmp_0"]
Yi Tseng1d842672017-11-28 16:06:52 -08002687 },
2688 {
2689 "type" : "expression",
2690 "value" : {
2691 "type" : "expression",
2692 "value" : {
2693 "op" : "b2d",
2694 "left" : null,
2695 "right" : {
2696 "type" : "bool",
2697 "value" : false
2698 }
2699 }
2700 }
2701 }
2702 ]
2703 }
2704 ]
2705 },
2706 {
Carmelo Casconea5400af2018-07-17 22:11:54 +02002707 "name" : "act_2",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002708 "id" : 34,
Carmelo Casconea5400af2018-07-17 22:11:54 +02002709 "runtime_data" : [],
2710 "primitives" : [
2711 {
2712 "op" : "assign",
2713 "parameters" : [
2714 {
2715 "type" : "field",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002716 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
Carmelo Casconea5400af2018-07-17 22:11:54 +02002717 },
2718 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002719 "type" : "hexstr",
2720 "value" : "0x07"
Carmelo Casconea5400af2018-07-17 22:11:54 +02002721 }
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002722 ],
2723 "source_info" : {
2724 "filename" : "include/control/../define.p4",
2725 "line" : 109,
2726 "column" : 31,
2727 "source_fragment" : "7; ..."
2728 }
Carmelo Casconea5400af2018-07-17 22:11:54 +02002729 }
2730 ]
2731 },
2732 {
Yi Tsengbd46d052018-01-22 17:18:16 -08002733 "name" : "act_3",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002734 "id" : 35,
Yi Tseng1d842672017-11-28 16:06:52 -08002735 "runtime_data" : [],
2736 "primitives" : [
2737 {
2738 "op" : "assign",
2739 "parameters" : [
2740 {
2741 "type" : "field",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002742 "value" : ["vlan_tag", "ether_type"]
Carmelo Casconea5400af2018-07-17 22:11:54 +02002743 },
2744 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002745 "type" : "hexstr",
2746 "value" : "0x0800"
Carmelo Casconea5400af2018-07-17 22:11:54 +02002747 }
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002748 ],
2749 "source_info" : {
2750 "filename" : "include/control/../define.p4",
2751 "line" : 92,
2752 "column" : 31,
2753 "source_fragment" : "0x0800; ..."
2754 }
Carmelo Casconea5400af2018-07-17 22:11:54 +02002755 }
2756 ]
2757 },
2758 {
2759 "name" : "act_4",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002760 "id" : 36,
Carmelo Casconea5400af2018-07-17 22:11:54 +02002761 "runtime_data" : [],
2762 "primitives" : [
2763 {
2764 "op" : "assign",
2765 "parameters" : [
2766 {
2767 "type" : "field",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002768 "value" : ["scalars", "next_hasReturned_0"]
Carmelo Casconea5400af2018-07-17 22:11:54 +02002769 },
2770 {
2771 "type" : "expression",
2772 "value" : {
2773 "type" : "expression",
2774 "value" : {
2775 "op" : "b2d",
2776 "left" : null,
2777 "right" : {
2778 "type" : "bool",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002779 "value" : false
Carmelo Casconea5400af2018-07-17 22:11:54 +02002780 }
2781 }
2782 }
2783 }
2784 ]
2785 }
2786 ]
2787 },
2788 {
2789 "name" : "act_5",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002790 "id" : 37,
Carmelo Casconea5400af2018-07-17 22:11:54 +02002791 "runtime_data" : [],
2792 "primitives" : [
2793 {
2794 "op" : "assign",
2795 "parameters" : [
2796 {
2797 "type" : "field",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002798 "value" : ["scalars", "next_tmp_4"]
2799 },
2800 {
2801 "type" : "expression",
2802 "value" : {
2803 "type" : "expression",
2804 "value" : {
2805 "op" : "b2d",
2806 "left" : null,
2807 "right" : {
2808 "type" : "bool",
2809 "value" : true
2810 }
2811 }
2812 }
2813 }
2814 ]
2815 }
2816 ]
2817 },
2818 {
2819 "name" : "act_6",
2820 "id" : 38,
2821 "runtime_data" : [],
2822 "primitives" : [
2823 {
2824 "op" : "assign",
2825 "parameters" : [
2826 {
2827 "type" : "field",
2828 "value" : ["scalars", "next_tmp_4"]
2829 },
2830 {
2831 "type" : "expression",
2832 "value" : {
2833 "type" : "expression",
2834 "value" : {
2835 "op" : "b2d",
2836 "left" : null,
2837 "right" : {
2838 "type" : "bool",
2839 "value" : false
2840 }
2841 }
2842 }
2843 }
2844 ]
2845 }
2846 ]
2847 },
2848 {
2849 "name" : "act_7",
2850 "id" : 39,
2851 "runtime_data" : [],
2852 "primitives" : [
2853 {
2854 "op" : "assign",
2855 "parameters" : [
2856 {
2857 "type" : "field",
2858 "value" : ["scalars", "next_tmp_3"]
2859 },
2860 {
2861 "type" : "expression",
2862 "value" : {
2863 "type" : "expression",
2864 "value" : {
2865 "op" : "b2d",
2866 "left" : null,
2867 "right" : {
2868 "type" : "bool",
2869 "value" : true
2870 }
2871 }
2872 }
2873 }
2874 ]
2875 }
2876 ]
2877 },
2878 {
2879 "name" : "act_8",
2880 "id" : 40,
2881 "runtime_data" : [],
2882 "primitives" : [
2883 {
2884 "op" : "assign",
2885 "parameters" : [
2886 {
2887 "type" : "field",
Carmelo Casconea5400af2018-07-17 22:11:54 +02002888 "value" : ["scalars", "next_tmp_3"]
2889 },
2890 {
2891 "type" : "expression",
2892 "value" : {
2893 "type" : "expression",
2894 "value" : {
2895 "op" : "b2d",
2896 "left" : null,
2897 "right" : {
2898 "type" : "bool",
2899 "value" : false
2900 }
2901 }
2902 }
2903 }
2904 ]
2905 }
2906 ]
2907 },
2908 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002909 "name" : "act_9",
2910 "id" : 41,
Carmelo Casconea5400af2018-07-17 22:11:54 +02002911 "runtime_data" : [],
2912 "primitives" : [
2913 {
2914 "op" : "assign",
2915 "parameters" : [
2916 {
2917 "type" : "field",
2918 "value" : ["scalars", "next_tmp_2"]
2919 },
2920 {
2921 "type" : "expression",
2922 "value" : {
2923 "type" : "expression",
2924 "value" : {
2925 "op" : "b2d",
2926 "left" : null,
2927 "right" : {
2928 "type" : "bool",
2929 "value" : true
2930 }
2931 }
2932 }
2933 }
2934 ]
2935 }
2936 ]
2937 },
2938 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002939 "name" : "act_10",
2940 "id" : 42,
Carmelo Casconea5400af2018-07-17 22:11:54 +02002941 "runtime_data" : [],
2942 "primitives" : [
2943 {
2944 "op" : "assign",
2945 "parameters" : [
2946 {
2947 "type" : "field",
2948 "value" : ["scalars", "next_tmp_2"]
2949 },
2950 {
2951 "type" : "expression",
2952 "value" : {
2953 "type" : "expression",
2954 "value" : {
2955 "op" : "b2d",
2956 "left" : null,
2957 "right" : {
2958 "type" : "bool",
2959 "value" : false
2960 }
2961 }
2962 }
2963 }
2964 ]
2965 }
2966 ]
2967 },
2968 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002969 "name" : "act_11",
2970 "id" : 43,
Carmelo Casconea5400af2018-07-17 22:11:54 +02002971 "runtime_data" : [],
2972 "primitives" : [
2973 {
2974 "op" : "assign",
2975 "parameters" : [
2976 {
2977 "type" : "field",
2978 "value" : ["scalars", "next_hasReturned_0"]
2979 },
2980 {
2981 "type" : "expression",
2982 "value" : {
2983 "type" : "expression",
2984 "value" : {
2985 "op" : "b2d",
2986 "left" : null,
2987 "right" : {
2988 "type" : "bool",
2989 "value" : true
2990 }
2991 }
2992 }
2993 }
2994 ],
2995 "source_info" : {
2996 "filename" : "include/control/next.p4",
2997 "line" : 223,
2998 "column" : 20,
2999 "source_fragment" : "return"
3000 }
3001 }
3002 ]
3003 },
3004 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003005 "name" : "act_12",
3006 "id" : 44,
Carmelo Casconea5400af2018-07-17 22:11:54 +02003007 "runtime_data" : [],
3008 "primitives" : [
3009 {
3010 "op" : "assign",
3011 "parameters" : [
3012 {
3013 "type" : "field",
Yi Tseng1d842672017-11-28 16:06:52 -08003014 "value" : ["ipv4", "ttl"]
3015 },
3016 {
3017 "type" : "expression",
3018 "value" : {
3019 "type" : "expression",
3020 "value" : {
3021 "op" : "&",
3022 "left" : {
3023 "type" : "expression",
3024 "value" : {
3025 "op" : "+",
3026 "left" : {
3027 "type" : "field",
3028 "value" : ["ipv4", "ttl"]
3029 },
3030 "right" : {
3031 "type" : "hexstr",
3032 "value" : "0xff"
3033 }
3034 }
3035 },
3036 "right" : {
3037 "type" : "hexstr",
3038 "value" : "0xff"
3039 }
3040 }
3041 }
3042 }
3043 ],
3044 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003045 "filename" : "include/control/next.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02003046 "line" : 230,
3047 "column" : 16,
Yi Tseng1d842672017-11-28 16:06:52 -08003048 "source_fragment" : "hdr.ipv4.ttl = hdr.ipv4.ttl - 1"
3049 }
3050 }
3051 ]
3052 },
3053 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003054 "name" : "act_13",
3055 "id" : 45,
Yi Tseng1d842672017-11-28 16:06:52 -08003056 "runtime_data" : [],
3057 "primitives" : [
3058 {
3059 "op" : "assign",
3060 "parameters" : [
3061 {
3062 "type" : "field",
Yi Tsengc6844f52017-12-19 11:58:25 -08003063 "value" : ["scalars", "tmp_0"]
Yi Tsengbe342052017-11-03 10:21:23 -07003064 },
3065 {
3066 "type" : "expression",
3067 "value" : {
3068 "type" : "expression",
3069 "value" : {
3070 "op" : "&",
3071 "left" : {
3072 "type" : "field",
3073 "value" : ["standard_metadata", "egress_spec"]
3074 },
3075 "right" : {
3076 "type" : "hexstr",
3077 "value" : "0xffffffff"
3078 }
3079 }
3080 }
3081 }
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003082 ],
3083 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003084 "filename" : "include/control/port_counter.p4",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003085 "line" : 28,
3086 "column" : 38,
3087 "source_fragment" : "(bit<32>)standard_metadata.egress_spec"
3088 }
Yi Tsengbe342052017-11-03 10:21:23 -07003089 },
3090 {
3091 "op" : "count",
3092 "parameters" : [
3093 {
3094 "type" : "counter_array",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003095 "value" : "FabricIngress.port_counters_control.egress_port_counter"
Yi Tsengbe342052017-11-03 10:21:23 -07003096 },
3097 {
3098 "type" : "field",
Yi Tsengc6844f52017-12-19 11:58:25 -08003099 "value" : ["scalars", "tmp_0"]
Yi Tsengbe342052017-11-03 10:21:23 -07003100 }
3101 ],
3102 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003103 "filename" : "include/control/port_counter.p4",
Yi Tsengbe342052017-11-03 10:21:23 -07003104 "line" : 28,
3105 "column" : 12,
3106 "source_fragment" : "egress_port_counter.count((bit<32>)standard_metadata.egress_spec)"
3107 }
3108 }
3109 ]
3110 },
3111 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003112 "name" : "act_14",
3113 "id" : 46,
Yi Tsengbe342052017-11-03 10:21:23 -07003114 "runtime_data" : [],
3115 "primitives" : [
3116 {
3117 "op" : "assign",
3118 "parameters" : [
3119 {
3120 "type" : "field",
Yi Tsengc6844f52017-12-19 11:58:25 -08003121 "value" : ["scalars", "tmp_1"]
Yi Tsengbe342052017-11-03 10:21:23 -07003122 },
3123 {
3124 "type" : "expression",
3125 "value" : {
3126 "type" : "expression",
3127 "value" : {
3128 "op" : "&",
3129 "left" : {
3130 "type" : "field",
3131 "value" : ["standard_metadata", "ingress_port"]
3132 },
3133 "right" : {
3134 "type" : "hexstr",
3135 "value" : "0xffffffff"
3136 }
3137 }
3138 }
3139 }
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003140 ],
3141 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003142 "filename" : "include/control/port_counter.p4",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003143 "line" : 31,
3144 "column" : 39,
3145 "source_fragment" : "(bit<32>)standard_metadata.ingress_port"
3146 }
Yi Tsengbe342052017-11-03 10:21:23 -07003147 },
3148 {
3149 "op" : "count",
3150 "parameters" : [
3151 {
3152 "type" : "counter_array",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003153 "value" : "FabricIngress.port_counters_control.ingress_port_counter"
Yi Tsengbe342052017-11-03 10:21:23 -07003154 },
3155 {
3156 "type" : "field",
Yi Tsengc6844f52017-12-19 11:58:25 -08003157 "value" : ["scalars", "tmp_1"]
Yi Tsengbe342052017-11-03 10:21:23 -07003158 }
3159 ],
3160 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003161 "filename" : "include/control/port_counter.p4",
Yi Tsengbe342052017-11-03 10:21:23 -07003162 "line" : 31,
3163 "column" : 12,
3164 "source_fragment" : "ingress_port_counter.count((bit<32>)standard_metadata.ingress_port)"
3165 }
3166 }
3167 ]
3168 },
3169 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003170 "name" : "nop",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003171 "id" : 47,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003172 "runtime_data" : [],
3173 "primitives" : []
3174 },
3175 {
Carmelo Casconea5400af2018-07-17 22:11:54 +02003176 "name" : "drop_now",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003177 "id" : 48,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003178 "runtime_data" : [],
3179 "primitives" : [
3180 {
3181 "op" : "drop",
3182 "parameters" : [],
3183 "source_info" : {
3184 "filename" : "include/control/../action.p4",
3185 "line" : 24,
3186 "column" : 4,
3187 "source_fragment" : "mark_to_drop()"
3188 }
3189 },
3190 {
3191 "op" : "exit",
3192 "parameters" : [],
3193 "source_info" : {
3194 "filename" : "include/control/../action.p4",
3195 "line" : 25,
3196 "column" : 4,
3197 "source_fragment" : "exit"
3198 }
3199 }
3200 ]
3201 },
3202 {
3203 "name" : "drop_now",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003204 "id" : 49,
Carmelo Casconea5400af2018-07-17 22:11:54 +02003205 "runtime_data" : [],
3206 "primitives" : [
3207 {
3208 "op" : "drop",
3209 "parameters" : [],
3210 "source_info" : {
3211 "filename" : "include/control/../action.p4",
3212 "line" : 24,
3213 "column" : 4,
3214 "source_fragment" : "mark_to_drop()"
3215 }
3216 },
3217 {
3218 "op" : "exit",
3219 "parameters" : [],
3220 "source_info" : {
3221 "filename" : "include/control/../action.p4",
3222 "line" : 25,
3223 "column" : 4,
3224 "source_fragment" : "exit"
3225 }
3226 }
3227 ]
3228 },
3229 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003230 "name" : "FabricEgress.pkt_io_egress.pop_vlan",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003231 "id" : 50,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003232 "runtime_data" : [],
3233 "primitives" : [
3234 {
3235 "op" : "assign",
3236 "parameters" : [
3237 {
3238 "type" : "field",
3239 "value" : ["ethernet", "ether_type"]
3240 },
3241 {
3242 "type" : "field",
3243 "value" : ["vlan_tag", "ether_type"]
3244 }
3245 ],
3246 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003247 "filename" : "include/control/packetio.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003248 "line" : 38,
3249 "column" : 8,
3250 "source_fragment" : "hdr.ethernet.ether_type = hdr.vlan_tag.ether_type"
3251 }
3252 },
3253 {
3254 "op" : "remove_header",
3255 "parameters" : [
3256 {
3257 "type" : "header",
3258 "value" : "vlan_tag"
3259 }
3260 ],
3261 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003262 "filename" : "include/control/packetio.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003263 "line" : 39,
3264 "column" : 8,
3265 "source_fragment" : "hdr.vlan_tag.setInvalid()"
3266 }
3267 }
3268 ]
3269 },
3270 {
3271 "name" : "FabricEgress.egress_next.pop_vlan",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003272 "id" : 51,
Yi Tseng1d842672017-11-28 16:06:52 -08003273 "runtime_data" : [],
3274 "primitives" : [
3275 {
3276 "op" : "assign",
3277 "parameters" : [
3278 {
3279 "type" : "field",
3280 "value" : ["ethernet", "ether_type"]
3281 },
3282 {
3283 "type" : "field",
Yi Tsengbd46d052018-01-22 17:18:16 -08003284 "value" : ["vlan_tag", "ether_type"]
Yi Tseng1d842672017-11-28 16:06:52 -08003285 }
3286 ],
3287 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003288 "filename" : "include/control/next.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02003289 "line" : 253,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003290 "column" : 8,
Yi Tsengbd46d052018-01-22 17:18:16 -08003291 "source_fragment" : "hdr.ethernet.ether_type = hdr.vlan_tag.ether_type"
Yi Tseng1d842672017-11-28 16:06:52 -08003292 }
Yi Tsengbd46d052018-01-22 17:18:16 -08003293 },
Yi Tsengbe342052017-11-03 10:21:23 -07003294 {
3295 "op" : "remove_header",
3296 "parameters" : [
3297 {
3298 "type" : "header",
3299 "value" : "vlan_tag"
3300 }
3301 ],
3302 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003303 "filename" : "include/control/next.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02003304 "line" : 254,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003305 "column" : 8,
Yi Tsengbe342052017-11-03 10:21:23 -07003306 "source_fragment" : "hdr.vlan_tag.setInvalid()"
3307 }
3308 }
3309 ]
3310 },
3311 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003312 "name" : "act_15",
3313 "id" : 52,
Yi Tsengbe342052017-11-03 10:21:23 -07003314 "runtime_data" : [],
3315 "primitives" : [
3316 {
3317 "op" : "add_header",
3318 "parameters" : [
3319 {
3320 "type" : "header",
3321 "value" : "packet_in"
3322 }
3323 ],
3324 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003325 "filename" : "include/control/packetio.p4",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003326 "line" : 51,
Yi Tsengbe342052017-11-03 10:21:23 -07003327 "column" : 12,
3328 "source_fragment" : "hdr.packet_in.setValid()"
3329 }
3330 },
3331 {
3332 "op" : "assign",
3333 "parameters" : [
3334 {
3335 "type" : "field",
3336 "value" : ["packet_in", "ingress_port"]
3337 },
3338 {
3339 "type" : "field",
3340 "value" : ["standard_metadata", "ingress_port"]
3341 }
3342 ],
3343 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003344 "filename" : "include/control/packetio.p4",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003345 "line" : 52,
Yi Tsengbe342052017-11-03 10:21:23 -07003346 "column" : 12,
3347 "source_fragment" : "hdr.packet_in.ingress_port = standard_metadata.ingress_port"
3348 }
3349 }
3350 ]
Yi Tsengbe342052017-11-03 10:21:23 -07003351 }
3352 ],
3353 "pipelines" : [
3354 {
3355 "name" : "ingress",
3356 "id" : 0,
3357 "source_info" : {
3358 "filename" : "fabric.p4",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09003359 "line" : 40,
Yi Tsengbe342052017-11-03 10:21:23 -07003360 "column" : 8,
3361 "source_fragment" : "FabricIngress"
3362 },
3363 "init_table" : "node_2",
3364 "tables" : [
3365 {
3366 "name" : "tbl_act",
3367 "id" : 0,
3368 "key" : [],
3369 "match_type" : "exact",
3370 "type" : "simple",
3371 "max_size" : 1024,
3372 "with_counters" : false,
3373 "support_timeout" : false,
3374 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003375 "action_ids" : [31],
Yi Tsengbe342052017-11-03 10:21:23 -07003376 "actions" : ["act"],
3377 "base_default_next" : null,
3378 "next_tables" : {
3379 "act" : null
3380 },
3381 "default_entry" : {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003382 "action_id" : 31,
Yi Tsengbe342052017-11-03 10:21:23 -07003383 "action_const" : true,
3384 "action_data" : [],
3385 "action_entry_const" : true
3386 }
3387 },
3388 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003389 "name" : "FabricIngress.filtering.ingress_port_vlan",
Yi Tsengbe342052017-11-03 10:21:23 -07003390 "id" : 1,
3391 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003392 "filename" : "include/control/filtering.p4",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003393 "line" : 66,
Yi Tsengbe342052017-11-03 10:21:23 -07003394 "column" : 10,
3395 "source_fragment" : "ingress_port_vlan"
3396 },
3397 "key" : [
3398 {
3399 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003400 "name" : "standard_metadata.ingress_port",
Yi Tsengbe342052017-11-03 10:21:23 -07003401 "target" : ["standard_metadata", "ingress_port"],
3402 "mask" : null
3403 },
3404 {
3405 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003406 "name" : "hdr.vlan_tag.is_valid",
Yi Tsengbe342052017-11-03 10:21:23 -07003407 "target" : ["vlan_tag", "$valid$"],
3408 "mask" : null
3409 },
3410 {
3411 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003412 "name" : "hdr.vlan_tag.vlan_id",
Yi Tsengbe342052017-11-03 10:21:23 -07003413 "target" : ["vlan_tag", "vlan_id"],
3414 "mask" : null
3415 }
3416 ],
3417 "match_type" : "ternary",
3418 "type" : "simple",
3419 "max_size" : 1024,
Yi Tsengbd46d052018-01-22 17:18:16 -08003420 "with_counters" : true,
Yi Tsengbe342052017-11-03 10:21:23 -07003421 "support_timeout" : false,
3422 "direct_meters" : null,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003423 "action_ids" : [9, 8, 7, 10],
3424 "actions" : ["FabricIngress.filtering.push_internal_vlan", "FabricIngress.filtering.set_vlan", "FabricIngress.filtering.drop", "FabricIngress.filtering.nop_ingress_port_vlan"],
3425 "base_default_next" : null,
Yi Tsengbe342052017-11-03 10:21:23 -07003426 "next_tables" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003427 "__HIT__" : "tbl_act_0",
3428 "__MISS__" : "tbl_act_1"
Yi Tsengbe342052017-11-03 10:21:23 -07003429 },
3430 "default_entry" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003431 "action_id" : 9,
3432 "action_const" : true,
3433 "action_data" : ["0xffe"],
3434 "action_entry_const" : true
3435 }
3436 },
3437 {
3438 "name" : "tbl_act_0",
3439 "id" : 2,
3440 "key" : [],
3441 "match_type" : "exact",
3442 "type" : "simple",
3443 "max_size" : 1024,
3444 "with_counters" : false,
3445 "support_timeout" : false,
3446 "direct_meters" : null,
3447 "action_ids" : [32],
3448 "actions" : ["act_0"],
3449 "base_default_next" : "node_7",
3450 "next_tables" : {
3451 "act_0" : "node_7"
3452 },
3453 "default_entry" : {
3454 "action_id" : 32,
3455 "action_const" : true,
3456 "action_data" : [],
3457 "action_entry_const" : true
3458 }
3459 },
3460 {
3461 "name" : "tbl_act_1",
3462 "id" : 3,
3463 "key" : [],
3464 "match_type" : "exact",
3465 "type" : "simple",
3466 "max_size" : 1024,
3467 "with_counters" : false,
3468 "support_timeout" : false,
3469 "direct_meters" : null,
3470 "action_ids" : [33],
3471 "actions" : ["act_1"],
3472 "base_default_next" : "node_7",
3473 "next_tables" : {
3474 "act_1" : "node_7"
3475 },
3476 "default_entry" : {
3477 "action_id" : 33,
Yi Tsengbe342052017-11-03 10:21:23 -07003478 "action_const" : true,
3479 "action_data" : [],
3480 "action_entry_const" : true
3481 }
3482 },
3483 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003484 "name" : "FabricIngress.filtering.fwd_classifier",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003485 "id" : 4,
Yi Tsengbe342052017-11-03 10:21:23 -07003486 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003487 "filename" : "include/control/filtering.p4",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003488 "line" : 103,
Yi Tsengbe342052017-11-03 10:21:23 -07003489 "column" : 10,
3490 "source_fragment" : "fwd_classifier"
3491 },
3492 "key" : [
3493 {
3494 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003495 "name" : "standard_metadata.ingress_port",
Yi Tsengbe342052017-11-03 10:21:23 -07003496 "target" : ["standard_metadata", "ingress_port"],
3497 "mask" : null
3498 },
3499 {
3500 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003501 "name" : "hdr.ethernet.dst_addr",
Yi Tsengbe342052017-11-03 10:21:23 -07003502 "target" : ["ethernet", "dst_addr"],
3503 "mask" : null
3504 },
3505 {
3506 "match_type" : "exact",
Yi Tseng8235a1a2018-07-24 20:57:28 +08003507 "name" : "hdr.vlan_tag.ether_type",
3508 "target" : ["vlan_tag", "ether_type"],
Yi Tsengbe342052017-11-03 10:21:23 -07003509 "mask" : null
3510 }
3511 ],
3512 "match_type" : "exact",
3513 "type" : "simple",
3514 "max_size" : 1024,
Yi Tsengbd46d052018-01-22 17:18:16 -08003515 "with_counters" : true,
Yi Tsengbe342052017-11-03 10:21:23 -07003516 "support_timeout" : false,
3517 "direct_meters" : null,
Charles Chancf696e52018-08-16 16:25:13 -07003518 "action_ids" : [11],
Yi Tseng27b9bc02018-04-12 14:52:40 +08003519 "actions" : ["FabricIngress.filtering.set_forwarding_type"],
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003520 "base_default_next" : "node_10",
Yi Tsengbe342052017-11-03 10:21:23 -07003521 "next_tables" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003522 "FabricIngress.filtering.set_forwarding_type" : "node_10"
Yi Tsengbe342052017-11-03 10:21:23 -07003523 },
3524 "default_entry" : {
Charles Chancf696e52018-08-16 16:25:13 -07003525 "action_id" : 11,
Yi Tsengbe342052017-11-03 10:21:23 -07003526 "action_const" : true,
3527 "action_data" : ["0x0"],
3528 "action_entry_const" : true
3529 }
3530 },
3531 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003532 "name" : "tbl_act_2",
3533 "id" : 5,
3534 "key" : [],
3535 "match_type" : "exact",
3536 "type" : "simple",
3537 "max_size" : 1024,
3538 "with_counters" : false,
3539 "support_timeout" : false,
3540 "direct_meters" : null,
3541 "action_ids" : [34],
3542 "actions" : ["act_2"],
3543 "base_default_next" : "node_10",
3544 "next_tables" : {
3545 "act_2" : "node_10"
3546 },
3547 "default_entry" : {
3548 "action_id" : 34,
3549 "action_const" : true,
3550 "action_data" : [],
3551 "action_entry_const" : true
3552 }
3553 },
3554 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003555 "name" : "FabricIngress.forwarding.bridging",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003556 "id" : 6,
Yi Tsengbe342052017-11-03 10:21:23 -07003557 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003558 "filename" : "include/control/forwarding.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08003559 "line" : 41,
Yi Tsengbe342052017-11-03 10:21:23 -07003560 "column" : 10,
3561 "source_fragment" : "bridging"
3562 },
3563 "key" : [
3564 {
3565 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003566 "name" : "hdr.vlan_tag.vlan_id",
Yi Tsengbe342052017-11-03 10:21:23 -07003567 "target" : ["vlan_tag", "vlan_id"],
3568 "mask" : null
3569 },
3570 {
3571 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003572 "name" : "hdr.ethernet.dst_addr",
Yi Tsengbe342052017-11-03 10:21:23 -07003573 "target" : ["ethernet", "dst_addr"],
3574 "mask" : null
3575 }
3576 ],
3577 "match_type" : "ternary",
3578 "type" : "simple",
3579 "max_size" : 1024,
Yi Tsengbd46d052018-01-22 17:18:16 -08003580 "with_counters" : true,
Yi Tsengbe342052017-11-03 10:21:23 -07003581 "support_timeout" : false,
3582 "direct_meters" : null,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003583 "action_ids" : [12, 0],
Yi Tseng47eac892018-07-11 02:17:04 +08003584 "actions" : ["FabricIngress.forwarding.set_next_id_bridging", "NoAction"],
Yi Tseng27b9bc02018-04-12 14:52:40 +08003585 "base_default_next" : "FabricIngress.forwarding.acl",
Yi Tseng1d842672017-11-28 16:06:52 -08003586 "next_tables" : {
Yi Tseng47eac892018-07-11 02:17:04 +08003587 "FabricIngress.forwarding.set_next_id_bridging" : "FabricIngress.forwarding.acl",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003588 "NoAction" : "FabricIngress.forwarding.acl"
Yi Tseng1d842672017-11-28 16:06:52 -08003589 },
3590 "default_entry" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003591 "action_id" : 0,
Yi Tseng1d842672017-11-28 16:06:52 -08003592 "action_const" : false,
3593 "action_data" : [],
3594 "action_entry_const" : false
3595 }
3596 },
3597 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003598 "name" : "FabricIngress.forwarding.mpls",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003599 "id" : 7,
Yi Tseng1d842672017-11-28 16:06:52 -08003600 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003601 "filename" : "include/control/forwarding.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08003602 "line" : 65,
Yi Tseng1d842672017-11-28 16:06:52 -08003603 "column" : 10,
3604 "source_fragment" : "mpls"
3605 },
3606 "key" : [
3607 {
3608 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003609 "name" : "hdr.mpls.label",
Yi Tseng1d842672017-11-28 16:06:52 -08003610 "target" : ["mpls", "label"],
3611 "mask" : null
3612 }
3613 ],
3614 "match_type" : "exact",
3615 "type" : "simple",
3616 "max_size" : 1024,
Yi Tsengbd46d052018-01-22 17:18:16 -08003617 "with_counters" : true,
Yi Tseng1d842672017-11-28 16:06:52 -08003618 "support_timeout" : false,
3619 "direct_meters" : null,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003620 "action_ids" : [13, 1],
Yi Tseng27b9bc02018-04-12 14:52:40 +08003621 "actions" : ["FabricIngress.forwarding.pop_mpls_and_next", "NoAction"],
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003622 "base_default_next" : "tbl_act_3",
Yi Tseng1d842672017-11-28 16:06:52 -08003623 "next_tables" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003624 "FabricIngress.forwarding.pop_mpls_and_next" : "tbl_act_3",
3625 "NoAction" : "tbl_act_3"
Yi Tseng1d842672017-11-28 16:06:52 -08003626 },
3627 "default_entry" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003628 "action_id" : 1,
Yi Tseng1d842672017-11-28 16:06:52 -08003629 "action_const" : false,
3630 "action_data" : [],
3631 "action_entry_const" : false
3632 }
3633 },
3634 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003635 "name" : "tbl_act_3",
3636 "id" : 8,
Yi Tseng1d842672017-11-28 16:06:52 -08003637 "key" : [],
3638 "match_type" : "exact",
3639 "type" : "simple",
3640 "max_size" : 1024,
3641 "with_counters" : false,
3642 "support_timeout" : false,
3643 "direct_meters" : null,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003644 "action_ids" : [35],
3645 "actions" : ["act_3"],
Yi Tseng27b9bc02018-04-12 14:52:40 +08003646 "base_default_next" : "FabricIngress.forwarding.acl",
Yi Tseng1d842672017-11-28 16:06:52 -08003647 "next_tables" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003648 "act_3" : "FabricIngress.forwarding.acl"
Yi Tseng1d842672017-11-28 16:06:52 -08003649 },
3650 "default_entry" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003651 "action_id" : 35,
Yi Tseng1d842672017-11-28 16:06:52 -08003652 "action_const" : true,
3653 "action_data" : [],
3654 "action_entry_const" : true
3655 }
3656 },
3657 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003658 "name" : "FabricIngress.forwarding.unicast_v4",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003659 "id" : 9,
Yi Tseng1d842672017-11-28 16:06:52 -08003660 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003661 "filename" : "include/control/forwarding.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08003662 "line" : 87,
Yi Tseng1d842672017-11-28 16:06:52 -08003663 "column" : 10,
3664 "source_fragment" : "unicast_v4"
3665 },
3666 "key" : [
3667 {
3668 "match_type" : "lpm",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003669 "name" : "hdr.ipv4.dst_addr",
Yi Tseng1d842672017-11-28 16:06:52 -08003670 "target" : ["ipv4", "dst_addr"],
3671 "mask" : null
3672 }
3673 ],
3674 "match_type" : "lpm",
3675 "type" : "simple",
3676 "max_size" : 1024,
Yi Tsengbd46d052018-01-22 17:18:16 -08003677 "with_counters" : true,
Yi Tseng1d842672017-11-28 16:06:52 -08003678 "support_timeout" : false,
3679 "direct_meters" : null,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003680 "action_ids" : [14, 2],
Yi Tseng47eac892018-07-11 02:17:04 +08003681 "actions" : ["FabricIngress.forwarding.set_next_id_unicast_v4", "NoAction"],
Yi Tseng27b9bc02018-04-12 14:52:40 +08003682 "base_default_next" : "FabricIngress.forwarding.acl",
Yi Tsengbe342052017-11-03 10:21:23 -07003683 "next_tables" : {
Yi Tseng47eac892018-07-11 02:17:04 +08003684 "FabricIngress.forwarding.set_next_id_unicast_v4" : "FabricIngress.forwarding.acl",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003685 "NoAction" : "FabricIngress.forwarding.acl"
Yi Tsengbe342052017-11-03 10:21:23 -07003686 },
3687 "default_entry" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003688 "action_id" : 2,
Yi Tsengbe342052017-11-03 10:21:23 -07003689 "action_const" : false,
3690 "action_data" : [],
3691 "action_entry_const" : false
3692 }
3693 },
3694 {
Carmelo Casconef645e842018-07-16 18:31:52 +02003695 "name" : "FabricIngress.forwarding.acl",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003696 "id" : 10,
Yi Tsengbe342052017-11-03 10:21:23 -07003697 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003698 "filename" : "include/control/forwarding.p4",
Charles Chancf696e52018-08-16 16:25:13 -07003699 "line" : 131,
Yi Tsengbe342052017-11-03 10:21:23 -07003700 "column" : 10,
Yi Tsengbe342052017-11-03 10:21:23 -07003701 "source_fragment" : "acl"
3702 },
3703 "key" : [
3704 {
3705 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003706 "name" : "standard_metadata.ingress_port",
Yi Tsengbe342052017-11-03 10:21:23 -07003707 "target" : ["standard_metadata", "ingress_port"],
3708 "mask" : null
3709 },
3710 {
3711 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003712 "name" : "fabric_metadata.ip_proto",
Yi Tsengbe342052017-11-03 10:21:23 -07003713 "target" : ["scalars", "fabric_metadata_t.ip_proto"],
3714 "mask" : null
3715 },
3716 {
3717 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003718 "name" : "fabric_metadata.l4_src_port",
Yi Tseng1d842672017-11-28 16:06:52 -08003719 "target" : ["scalars", "fabric_metadata_t.l4_src_port"],
3720 "mask" : null
3721 },
3722 {
3723 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003724 "name" : "fabric_metadata.l4_dst_port",
Yi Tseng1d842672017-11-28 16:06:52 -08003725 "target" : ["scalars", "fabric_metadata_t.l4_dst_port"],
3726 "mask" : null
3727 },
3728 {
3729 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003730 "name" : "hdr.ethernet.dst_addr",
Yi Tsengbe342052017-11-03 10:21:23 -07003731 "target" : ["ethernet", "dst_addr"],
3732 "mask" : null
3733 },
3734 {
3735 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003736 "name" : "hdr.ethernet.src_addr",
Yi Tsengbe342052017-11-03 10:21:23 -07003737 "target" : ["ethernet", "src_addr"],
3738 "mask" : null
3739 },
3740 {
3741 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003742 "name" : "hdr.vlan_tag.vlan_id",
Yi Tsengbe342052017-11-03 10:21:23 -07003743 "target" : ["vlan_tag", "vlan_id"],
3744 "mask" : null
3745 },
3746 {
3747 "match_type" : "ternary",
Yi Tseng8235a1a2018-07-24 20:57:28 +08003748 "name" : "hdr.vlan_tag.ether_type",
3749 "target" : ["vlan_tag", "ether_type"],
3750 "mask" : null
3751 },
3752 {
3753 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003754 "name" : "hdr.ipv4.src_addr",
Yi Tsengbe342052017-11-03 10:21:23 -07003755 "target" : ["ipv4", "src_addr"],
3756 "mask" : null
3757 },
3758 {
3759 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003760 "name" : "hdr.ipv4.dst_addr",
Yi Tsengbe342052017-11-03 10:21:23 -07003761 "target" : ["ipv4", "dst_addr"],
3762 "mask" : null
3763 },
3764 {
3765 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003766 "name" : "hdr.icmp.icmp_type",
Yi Tsengbe342052017-11-03 10:21:23 -07003767 "target" : ["icmp", "icmp_type"],
3768 "mask" : null
3769 },
3770 {
3771 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003772 "name" : "hdr.icmp.icmp_code",
Yi Tsengbe342052017-11-03 10:21:23 -07003773 "target" : ["icmp", "icmp_code"],
3774 "mask" : null
3775 }
3776 ],
3777 "match_type" : "ternary",
3778 "type" : "simple",
Yi Tseng8235a1a2018-07-24 20:57:28 +08003779 "max_size" : 128,
Yi Tsengbd46d052018-01-22 17:18:16 -08003780 "with_counters" : true,
Yi Tsengbe342052017-11-03 10:21:23 -07003781 "support_timeout" : false,
3782 "direct_meters" : null,
Charles Chancf696e52018-08-16 16:25:13 -07003783 "action_ids" : [15, 16, 17, 18, 19],
3784 "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 Cascone8a715f82018-08-20 23:16:27 -07003785 "base_default_next" : "tbl_act_4",
Yi Tsengbe342052017-11-03 10:21:23 -07003786 "next_tables" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003787 "FabricIngress.forwarding.set_next_id_acl" : "tbl_act_4",
3788 "FabricIngress.forwarding.punt_to_cpu" : "tbl_act_4",
3789 "FabricIngress.forwarding.clone_to_cpu" : "tbl_act_4",
3790 "FabricIngress.forwarding.drop" : "tbl_act_4",
3791 "FabricIngress.forwarding.nop_acl" : "tbl_act_4"
Yi Tsengbe342052017-11-03 10:21:23 -07003792 },
3793 "default_entry" : {
Charles Chancf696e52018-08-16 16:25:13 -07003794 "action_id" : 19,
Yi Tsengbe342052017-11-03 10:21:23 -07003795 "action_const" : true,
3796 "action_data" : [],
3797 "action_entry_const" : true
3798 }
3799 },
3800 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003801 "name" : "tbl_act_4",
3802 "id" : 11,
Carmelo Casconea5400af2018-07-17 22:11:54 +02003803 "key" : [],
3804 "match_type" : "exact",
3805 "type" : "simple",
3806 "max_size" : 1024,
3807 "with_counters" : false,
3808 "support_timeout" : false,
3809 "direct_meters" : null,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003810 "action_ids" : [36],
3811 "actions" : ["act_4"],
Carmelo Casconea5400af2018-07-17 22:11:54 +02003812 "base_default_next" : "FabricIngress.next.vlan_meta",
3813 "next_tables" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003814 "act_4" : "FabricIngress.next.vlan_meta"
Carmelo Casconea5400af2018-07-17 22:11:54 +02003815 },
3816 "default_entry" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003817 "action_id" : 36,
Carmelo Casconea5400af2018-07-17 22:11:54 +02003818 "action_const" : true,
3819 "action_data" : [],
3820 "action_entry_const" : true
3821 }
3822 },
3823 {
3824 "name" : "FabricIngress.next.vlan_meta",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003825 "id" : 12,
Yi Tsengbe342052017-11-03 10:21:23 -07003826 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003827 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08003828 "line" : 65,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003829 "column" : 10,
3830 "source_fragment" : "vlan_meta"
3831 },
3832 "key" : [
3833 {
3834 "match_type" : "exact",
3835 "name" : "fabric_metadata.next_id",
3836 "target" : ["scalars", "fabric_metadata_t.next_id"],
3837 "mask" : null
3838 }
3839 ],
3840 "match_type" : "exact",
3841 "type" : "simple",
3842 "max_size" : 1024,
3843 "with_counters" : true,
3844 "support_timeout" : false,
3845 "direct_meters" : null,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003846 "action_ids" : [20, 6],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003847 "actions" : ["FabricIngress.next.set_vlan", "nop"],
3848 "base_default_next" : "FabricIngress.next.simple",
3849 "next_tables" : {
3850 "FabricIngress.next.set_vlan" : "FabricIngress.next.simple",
3851 "nop" : "FabricIngress.next.simple"
3852 },
3853 "default_entry" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003854 "action_id" : 6,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003855 "action_const" : false,
3856 "action_data" : [],
3857 "action_entry_const" : false
3858 }
3859 },
3860 {
3861 "name" : "FabricIngress.next.simple",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003862 "id" : 13,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003863 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003864 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08003865 "line" : 122,
Yi Tsengbe342052017-11-03 10:21:23 -07003866 "column" : 10,
3867 "source_fragment" : "simple"
3868 },
3869 "key" : [
3870 {
3871 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003872 "name" : "fabric_metadata.next_id",
Yi Tsengbe342052017-11-03 10:21:23 -07003873 "target" : ["scalars", "fabric_metadata_t.next_id"],
3874 "mask" : null
3875 }
3876 ],
3877 "match_type" : "exact",
3878 "type" : "simple",
3879 "max_size" : 1024,
Yi Tsengbd46d052018-01-22 17:18:16 -08003880 "with_counters" : true,
Yi Tsengbe342052017-11-03 10:21:23 -07003881 "support_timeout" : false,
3882 "direct_meters" : null,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003883 "action_ids" : [21, 22, 23, 24, 25, 26, 3],
Yi Tseng47eac892018-07-11 02:17:04 +08003884 "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"],
Yi Tseng1d842672017-11-28 16:06:52 -08003885 "base_default_next" : null,
Yi Tsengbe342052017-11-03 10:21:23 -07003886 "next_tables" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003887 "__HIT__" : "tbl_act_5",
3888 "__MISS__" : "tbl_act_6"
Yi Tsengbe342052017-11-03 10:21:23 -07003889 },
3890 "default_entry" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003891 "action_id" : 3,
Yi Tsengbe342052017-11-03 10:21:23 -07003892 "action_const" : false,
3893 "action_data" : [],
3894 "action_entry_const" : false
3895 }
3896 },
3897 {
Carmelo Casconea5400af2018-07-17 22:11:54 +02003898 "name" : "tbl_act_5",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003899 "id" : 14,
Carmelo Casconea5400af2018-07-17 22:11:54 +02003900 "key" : [],
3901 "match_type" : "exact",
3902 "type" : "simple",
3903 "max_size" : 1024,
3904 "with_counters" : false,
3905 "support_timeout" : false,
3906 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003907 "action_ids" : [37],
Carmelo Casconea5400af2018-07-17 22:11:54 +02003908 "actions" : ["act_5"],
3909 "base_default_next" : "node_23",
3910 "next_tables" : {
3911 "act_5" : "node_23"
3912 },
3913 "default_entry" : {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003914 "action_id" : 37,
Carmelo Casconea5400af2018-07-17 22:11:54 +02003915 "action_const" : true,
3916 "action_data" : [],
3917 "action_entry_const" : true
Esin Karaman971fb7f2017-12-28 13:44:52 +00003918 }
3919 },
3920 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003921 "name" : "tbl_act_6",
3922 "id" : 15,
3923 "key" : [],
3924 "match_type" : "exact",
3925 "type" : "simple",
3926 "max_size" : 1024,
3927 "with_counters" : false,
3928 "support_timeout" : false,
3929 "direct_meters" : null,
3930 "action_ids" : [38],
3931 "actions" : ["act_6"],
3932 "base_default_next" : "node_23",
3933 "next_tables" : {
3934 "act_6" : "node_23"
3935 },
3936 "default_entry" : {
3937 "action_id" : 38,
3938 "action_const" : true,
3939 "action_data" : [],
3940 "action_entry_const" : true
3941 }
3942 },
3943 {
3944 "name" : "FabricIngress.next.hashed",
Carmelo Casconea5400af2018-07-17 22:11:54 +02003945 "id" : 16,
Esin Karaman971fb7f2017-12-28 13:44:52 +00003946 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003947 "filename" : "include/control/next.p4",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003948 "line" : 175,
Esin Karaman971fb7f2017-12-28 13:44:52 +00003949 "column" : 10,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003950 "source_fragment" : "hashed"
Esin Karaman971fb7f2017-12-28 13:44:52 +00003951 },
3952 "key" : [
3953 {
3954 "match_type" : "exact",
3955 "name" : "fabric_metadata.next_id",
3956 "target" : ["scalars", "fabric_metadata_t.next_id"],
3957 "mask" : null
3958 }
3959 ],
3960 "match_type" : "exact",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003961 "type" : "indirect_ws",
3962 "action_profile" : "FabricIngress.next.ecmp_selector",
Esin Karaman971fb7f2017-12-28 13:44:52 +00003963 "max_size" : 1024,
3964 "with_counters" : true,
3965 "support_timeout" : false,
3966 "direct_meters" : null,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003967 "action_ids" : [27, 28, 29, 4],
3968 "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 +02003969 "base_default_next" : null,
Esin Karaman971fb7f2017-12-28 13:44:52 +00003970 "next_tables" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003971 "__HIT__" : "tbl_act_7",
3972 "__MISS__" : "tbl_act_8"
Esin Karaman971fb7f2017-12-28 13:44:52 +00003973 }
3974 },
3975 {
Carmelo Casconea5400af2018-07-17 22:11:54 +02003976 "name" : "tbl_act_7",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003977 "id" : 17,
Esin Karaman971fb7f2017-12-28 13:44:52 +00003978 "key" : [],
3979 "match_type" : "exact",
3980 "type" : "simple",
3981 "max_size" : 1024,
3982 "with_counters" : false,
3983 "support_timeout" : false,
3984 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003985 "action_ids" : [39],
Carmelo Casconea5400af2018-07-17 22:11:54 +02003986 "actions" : ["act_7"],
3987 "base_default_next" : "node_27",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003988 "next_tables" : {
Carmelo Casconea5400af2018-07-17 22:11:54 +02003989 "act_7" : "node_27"
Yi Tseng27b9bc02018-04-12 14:52:40 +08003990 },
3991 "default_entry" : {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003992 "action_id" : 39,
Carmelo Casconea5400af2018-07-17 22:11:54 +02003993 "action_const" : true,
3994 "action_data" : [],
3995 "action_entry_const" : true
3996 }
3997 },
3998 {
3999 "name" : "tbl_act_8",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004000 "id" : 18,
Carmelo Casconea5400af2018-07-17 22:11:54 +02004001 "key" : [],
4002 "match_type" : "exact",
4003 "type" : "simple",
4004 "max_size" : 1024,
4005 "with_counters" : false,
4006 "support_timeout" : false,
4007 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02004008 "action_ids" : [40],
Carmelo Casconea5400af2018-07-17 22:11:54 +02004009 "actions" : ["act_8"],
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004010 "base_default_next" : "node_27",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004011 "next_tables" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004012 "act_8" : "node_27"
Carmelo Casconea5400af2018-07-17 22:11:54 +02004013 },
4014 "default_entry" : {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02004015 "action_id" : 40,
Carmelo Casconea5400af2018-07-17 22:11:54 +02004016 "action_const" : true,
4017 "action_data" : [],
4018 "action_entry_const" : true
4019 }
4020 },
4021 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004022 "name" : "FabricIngress.next.multicast",
4023 "id" : 19,
4024 "source_info" : {
4025 "filename" : "include/control/next.p4",
4026 "line" : 207,
4027 "column" : 10,
4028 "source_fragment" : "multicast"
4029 },
4030 "key" : [
4031 {
4032 "match_type" : "exact",
4033 "name" : "fabric_metadata.next_id",
4034 "target" : ["scalars", "fabric_metadata_t.next_id"],
4035 "mask" : null
4036 }
4037 ],
4038 "match_type" : "exact",
4039 "type" : "simple",
4040 "max_size" : 1024,
4041 "with_counters" : true,
4042 "support_timeout" : false,
4043 "direct_meters" : null,
4044 "action_ids" : [30, 5],
4045 "actions" : ["FabricIngress.next.set_mcast_group", "NoAction"],
4046 "base_default_next" : null,
4047 "next_tables" : {
4048 "__HIT__" : "tbl_act_9",
4049 "__MISS__" : "tbl_act_10"
4050 },
4051 "default_entry" : {
4052 "action_id" : 5,
4053 "action_const" : false,
4054 "action_data" : [],
4055 "action_entry_const" : false
4056 }
4057 },
4058 {
Carmelo Casconea5400af2018-07-17 22:11:54 +02004059 "name" : "tbl_act_9",
4060 "id" : 20,
4061 "key" : [],
4062 "match_type" : "exact",
4063 "type" : "simple",
4064 "max_size" : 1024,
4065 "with_counters" : false,
4066 "support_timeout" : false,
4067 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02004068 "action_ids" : [41],
Carmelo Casconea5400af2018-07-17 22:11:54 +02004069 "actions" : ["act_9"],
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004070 "base_default_next" : "node_31",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004071 "next_tables" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004072 "act_9" : "node_31"
Carmelo Casconea5400af2018-07-17 22:11:54 +02004073 },
4074 "default_entry" : {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02004075 "action_id" : 41,
Carmelo Casconea5400af2018-07-17 22:11:54 +02004076 "action_const" : true,
4077 "action_data" : [],
4078 "action_entry_const" : true
4079 }
4080 },
4081 {
4082 "name" : "tbl_act_10",
4083 "id" : 21,
4084 "key" : [],
4085 "match_type" : "exact",
4086 "type" : "simple",
4087 "max_size" : 1024,
4088 "with_counters" : false,
4089 "support_timeout" : false,
4090 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02004091 "action_ids" : [42],
Carmelo Casconea5400af2018-07-17 22:11:54 +02004092 "actions" : ["act_10"],
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004093 "base_default_next" : "node_31",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004094 "next_tables" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004095 "act_10" : "node_31"
Carmelo Casconea5400af2018-07-17 22:11:54 +02004096 },
4097 "default_entry" : {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02004098 "action_id" : 42,
Carmelo Casconea5400af2018-07-17 22:11:54 +02004099 "action_const" : true,
4100 "action_data" : [],
4101 "action_entry_const" : true
4102 }
4103 },
4104 {
4105 "name" : "tbl_act_11",
4106 "id" : 22,
4107 "key" : [],
4108 "match_type" : "exact",
4109 "type" : "simple",
4110 "max_size" : 1024,
4111 "with_counters" : false,
4112 "support_timeout" : false,
4113 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02004114 "action_ids" : [43],
Carmelo Casconea5400af2018-07-17 22:11:54 +02004115 "actions" : ["act_11"],
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004116 "base_default_next" : "node_33",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004117 "next_tables" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004118 "act_11" : "node_33"
Carmelo Casconea5400af2018-07-17 22:11:54 +02004119 },
4120 "default_entry" : {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02004121 "action_id" : 43,
Yi Tseng3a5731e2018-01-22 11:38:58 -08004122 "action_const" : true,
4123 "action_data" : [],
4124 "action_entry_const" : true
4125 }
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004126 },
4127 {
4128 "name" : "tbl_act_12",
4129 "id" : 23,
4130 "key" : [],
4131 "match_type" : "exact",
4132 "type" : "simple",
4133 "max_size" : 1024,
4134 "with_counters" : false,
4135 "support_timeout" : false,
4136 "direct_meters" : null,
4137 "action_ids" : [44],
4138 "actions" : ["act_12"],
4139 "base_default_next" : "node_37",
4140 "next_tables" : {
4141 "act_12" : "node_37"
4142 },
4143 "default_entry" : {
4144 "action_id" : 44,
4145 "action_const" : true,
4146 "action_data" : [],
4147 "action_entry_const" : true
4148 }
4149 },
4150 {
4151 "name" : "tbl_act_13",
4152 "id" : 24,
4153 "key" : [],
4154 "match_type" : "exact",
4155 "type" : "simple",
4156 "max_size" : 1024,
4157 "with_counters" : false,
4158 "support_timeout" : false,
4159 "direct_meters" : null,
4160 "action_ids" : [45],
4161 "actions" : ["act_13"],
4162 "base_default_next" : "node_39",
4163 "next_tables" : {
4164 "act_13" : "node_39"
4165 },
4166 "default_entry" : {
4167 "action_id" : 45,
4168 "action_const" : true,
4169 "action_data" : [],
4170 "action_entry_const" : true
4171 }
4172 },
4173 {
4174 "name" : "tbl_act_14",
4175 "id" : 25,
4176 "key" : [],
4177 "match_type" : "exact",
4178 "type" : "simple",
4179 "max_size" : 1024,
4180 "with_counters" : false,
4181 "support_timeout" : false,
4182 "direct_meters" : null,
4183 "action_ids" : [46],
4184 "actions" : ["act_14"],
4185 "base_default_next" : null,
4186 "next_tables" : {
4187 "act_14" : null
4188 },
4189 "default_entry" : {
4190 "action_id" : 46,
4191 "action_const" : true,
4192 "action_data" : [],
4193 "action_entry_const" : true
4194 }
Yi Tsengbe342052017-11-03 10:21:23 -07004195 }
4196 ],
4197 "action_profiles" : [
4198 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004199 "name" : "FabricIngress.next.ecmp_selector",
Yi Tsengbe342052017-11-03 10:21:23 -07004200 "id" : 0,
4201 "max_size" : 64,
4202 "selector" : {
4203 "algo" : "crc16",
4204 "input" : [
4205 {
4206 "type" : "field",
Yi Tseng3d3956d2018-01-31 17:28:05 -08004207 "value" : ["ipv4", "dst_addr"]
Yi Tsengbe342052017-11-03 10:21:23 -07004208 },
4209 {
4210 "type" : "field",
Yi Tseng3d3956d2018-01-31 17:28:05 -08004211 "value" : ["ipv4", "src_addr"]
Yi Tsengbe342052017-11-03 10:21:23 -07004212 },
4213 {
4214 "type" : "field",
Yi Tseng1d842672017-11-28 16:06:52 -08004215 "value" : ["scalars", "fabric_metadata_t.ip_proto"]
Yi Tsengbe342052017-11-03 10:21:23 -07004216 },
4217 {
4218 "type" : "field",
4219 "value" : ["scalars", "fabric_metadata_t.l4_src_port"]
4220 },
4221 {
4222 "type" : "field",
4223 "value" : ["scalars", "fabric_metadata_t.l4_dst_port"]
4224 }
4225 ]
4226 }
4227 }
4228 ],
4229 "conditionals" : [
4230 {
4231 "name" : "node_2",
4232 "id" : 0,
4233 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004234 "filename" : "include/control/packetio.p4",
Yi Tsengbe342052017-11-03 10:21:23 -07004235 "line" : 25,
4236 "column" : 12,
4237 "source_fragment" : "hdr.packet_out.isValid()"
4238 },
4239 "expression" : {
4240 "type" : "expression",
4241 "value" : {
Yi Tsengbd46d052018-01-22 17:18:16 -08004242 "op" : "d2b",
4243 "left" : null,
4244 "right" : {
Yi Tsengbe342052017-11-03 10:21:23 -07004245 "type" : "field",
4246 "value" : ["packet_out", "$valid$"]
Yi Tsengbe342052017-11-03 10:21:23 -07004247 }
4248 }
4249 },
4250 "true_next" : "tbl_act",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004251 "false_next" : "FabricIngress.filtering.ingress_port_vlan"
Yi Tsengbe342052017-11-03 10:21:23 -07004252 },
4253 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004254 "name" : "node_7",
Yi Tsengbe342052017-11-03 10:21:23 -07004255 "id" : 1,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004256 "expression" : {
4257 "type" : "expression",
4258 "value" : {
4259 "op" : "d2b",
4260 "left" : null,
4261 "right" : {
4262 "type" : "field",
4263 "value" : ["scalars", "filtering_tmp_0"]
4264 }
4265 }
4266 },
4267 "true_next" : "FabricIngress.filtering.fwd_classifier",
4268 "false_next" : "tbl_act_2"
4269 },
4270 {
4271 "name" : "node_10",
4272 "id" : 2,
Yi Tsengbe342052017-11-03 10:21:23 -07004273 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004274 "filename" : "include/control/forwarding.p4",
Charles Chancf696e52018-08-16 16:25:13 -07004275 "line" : 235,
Yi Tsengbe342052017-11-03 10:21:23 -07004276 "column" : 11,
4277 "source_fragment" : "fabric_metadata.fwd_type == FWD_BRIDGING"
4278 },
4279 "expression" : {
4280 "type" : "expression",
4281 "value" : {
4282 "op" : "==",
4283 "left" : {
4284 "type" : "field",
4285 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
4286 },
4287 "right" : {
4288 "type" : "hexstr",
4289 "value" : "0x00"
4290 }
4291 }
4292 },
Yi Tseng27b9bc02018-04-12 14:52:40 +08004293 "true_next" : "FabricIngress.forwarding.bridging",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004294 "false_next" : "node_12"
Yi Tsengbe342052017-11-03 10:21:23 -07004295 },
4296 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004297 "name" : "node_12",
4298 "id" : 3,
Yi Tsengbe342052017-11-03 10:21:23 -07004299 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004300 "filename" : "include/control/forwarding.p4",
Charles Chancf696e52018-08-16 16:25:13 -07004301 "line" : 236,
Yi Tsengbe342052017-11-03 10:21:23 -07004302 "column" : 17,
4303 "source_fragment" : "fabric_metadata.fwd_type == FWD_MPLS"
4304 },
4305 "expression" : {
4306 "type" : "expression",
4307 "value" : {
4308 "op" : "==",
4309 "left" : {
4310 "type" : "field",
4311 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
4312 },
4313 "right" : {
4314 "type" : "hexstr",
4315 "value" : "0x01"
4316 }
4317 }
4318 },
Yi Tseng27b9bc02018-04-12 14:52:40 +08004319 "true_next" : "FabricIngress.forwarding.mpls",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004320 "false_next" : "node_15"
Yi Tsengbe342052017-11-03 10:21:23 -07004321 },
4322 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004323 "name" : "node_15",
4324 "id" : 4,
Yi Tsengbe342052017-11-03 10:21:23 -07004325 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004326 "filename" : "include/control/forwarding.p4",
Charles Chancf696e52018-08-16 16:25:13 -07004327 "line" : 250,
Yi Tsengbe342052017-11-03 10:21:23 -07004328 "column" : 17,
4329 "source_fragment" : "fabric_metadata.fwd_type == FWD_IPV4_UNICAST"
4330 },
4331 "expression" : {
4332 "type" : "expression",
4333 "value" : {
4334 "op" : "==",
4335 "left" : {
4336 "type" : "field",
4337 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
4338 },
4339 "right" : {
4340 "type" : "hexstr",
4341 "value" : "0x02"
4342 }
4343 }
4344 },
Yi Tseng27b9bc02018-04-12 14:52:40 +08004345 "true_next" : "FabricIngress.forwarding.unicast_v4",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004346 "false_next" : "FabricIngress.forwarding.acl"
4347 },
4348 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004349 "name" : "node_23",
4350 "id" : 5,
Yi Tseng1d842672017-11-28 16:06:52 -08004351 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004352 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08004353 "line" : 219,
Carmelo Casconea5400af2018-07-17 22:11:54 +02004354 "column" : 12,
4355 "source_fragment" : "!simple.apply().hit"
4356 },
4357 "expression" : {
4358 "type" : "expression",
4359 "value" : {
4360 "op" : "not",
4361 "left" : null,
4362 "right" : {
4363 "type" : "expression",
4364 "value" : {
4365 "op" : "d2b",
4366 "left" : null,
4367 "right" : {
4368 "type" : "field",
4369 "value" : ["scalars", "next_tmp_4"]
4370 }
4371 }
4372 }
4373 }
4374 },
4375 "true_next" : "FabricIngress.next.hashed",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004376 "false_next" : "node_33"
Carmelo Casconea5400af2018-07-17 22:11:54 +02004377 },
4378 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004379 "name" : "node_27",
4380 "id" : 6,
Carmelo Casconea5400af2018-07-17 22:11:54 +02004381 "source_info" : {
4382 "filename" : "include/control/next.p4",
4383 "line" : 220,
Yi Tsengbd46d052018-01-22 17:18:16 -08004384 "column" : 16,
Carmelo Casconea5400af2018-07-17 22:11:54 +02004385 "source_fragment" : "!hashed.apply().hit"
4386 },
4387 "expression" : {
4388 "type" : "expression",
4389 "value" : {
4390 "op" : "not",
4391 "left" : null,
4392 "right" : {
4393 "type" : "expression",
4394 "value" : {
4395 "op" : "d2b",
4396 "left" : null,
4397 "right" : {
4398 "type" : "field",
4399 "value" : ["scalars", "next_tmp_3"]
4400 }
4401 }
4402 }
4403 }
4404 },
4405 "true_next" : "FabricIngress.next.multicast",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004406 "false_next" : "node_33"
Carmelo Casconea5400af2018-07-17 22:11:54 +02004407 },
4408 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004409 "name" : "node_31",
4410 "id" : 7,
Carmelo Casconea5400af2018-07-17 22:11:54 +02004411 "source_info" : {
4412 "filename" : "include/control/next.p4",
4413 "line" : 221,
4414 "column" : 20,
4415 "source_fragment" : "!multicast.apply().hit"
4416 },
4417 "expression" : {
4418 "type" : "expression",
4419 "value" : {
4420 "op" : "not",
4421 "left" : null,
4422 "right" : {
4423 "type" : "expression",
4424 "value" : {
4425 "op" : "d2b",
4426 "left" : null,
4427 "right" : {
4428 "type" : "field",
4429 "value" : ["scalars", "next_tmp_2"]
4430 }
4431 }
4432 }
4433 }
4434 },
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004435 "true_next" : "tbl_act_11",
4436 "false_next" : "node_33"
Carmelo Casconea5400af2018-07-17 22:11:54 +02004437 },
4438 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004439 "name" : "node_33",
4440 "id" : 8,
Carmelo Casconea5400af2018-07-17 22:11:54 +02004441 "expression" : {
4442 "type" : "expression",
4443 "value" : {
4444 "op" : "not",
4445 "left" : null,
4446 "right" : {
4447 "type" : "expression",
4448 "value" : {
4449 "op" : "d2b",
4450 "left" : null,
4451 "right" : {
4452 "type" : "field",
4453 "value" : ["scalars", "next_hasReturned_0"]
4454 }
4455 }
4456 }
4457 }
4458 },
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004459 "true_next" : "node_34",
4460 "false_next" : "node_37"
Carmelo Casconea5400af2018-07-17 22:11:54 +02004461 },
4462 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004463 "name" : "node_34",
4464 "id" : 9,
Carmelo Casconea5400af2018-07-17 22:11:54 +02004465 "source_info" : {
4466 "filename" : "include/control/next.p4",
4467 "line" : 228,
4468 "column" : 12,
Yi Tsengbd46d052018-01-22 17:18:16 -08004469 "source_fragment" : "!hdr.mpls.isValid()"
Yi Tseng1d842672017-11-28 16:06:52 -08004470 },
4471 "expression" : {
4472 "type" : "expression",
4473 "value" : {
Yi Tsengbd46d052018-01-22 17:18:16 -08004474 "op" : "not",
4475 "left" : null,
Yi Tseng1d842672017-11-28 16:06:52 -08004476 "right" : {
Yi Tsengbd46d052018-01-22 17:18:16 -08004477 "type" : "expression",
4478 "value" : {
4479 "op" : "d2b",
4480 "left" : null,
4481 "right" : {
4482 "type" : "field",
4483 "value" : ["mpls", "$valid$"]
4484 }
4485 }
Yi Tseng1d842672017-11-28 16:06:52 -08004486 }
4487 }
4488 },
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004489 "true_next" : "node_35",
4490 "false_next" : "node_37"
Yi Tseng1d842672017-11-28 16:06:52 -08004491 },
4492 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004493 "name" : "node_35",
4494 "id" : 10,
Yi Tseng1d842672017-11-28 16:06:52 -08004495 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004496 "filename" : "include/control/next.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004497 "line" : 229,
4498 "column" : 15,
Yi Tseng1d842672017-11-28 16:06:52 -08004499 "source_fragment" : "hdr.ipv4.isValid()"
4500 },
4501 "expression" : {
4502 "type" : "expression",
4503 "value" : {
Yi Tsengbd46d052018-01-22 17:18:16 -08004504 "op" : "d2b",
4505 "left" : null,
4506 "right" : {
Yi Tseng1d842672017-11-28 16:06:52 -08004507 "type" : "field",
4508 "value" : ["ipv4", "$valid$"]
Yi Tseng1d842672017-11-28 16:06:52 -08004509 }
4510 }
4511 },
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004512 "true_next" : "tbl_act_12",
4513 "false_next" : "node_37"
Yi Tseng27b9bc02018-04-12 14:52:40 +08004514 },
4515 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004516 "name" : "node_37",
4517 "id" : 11,
Yi Tseng27b9bc02018-04-12 14:52:40 +08004518 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004519 "filename" : "include/control/port_counter.p4",
Yi Tsengbe342052017-11-03 10:21:23 -07004520 "line" : 27,
4521 "column" : 12,
4522 "source_fragment" : "standard_metadata.egress_spec < 511"
4523 },
4524 "expression" : {
4525 "type" : "expression",
4526 "value" : {
4527 "op" : "<",
4528 "left" : {
4529 "type" : "field",
4530 "value" : ["standard_metadata", "egress_spec"]
4531 },
4532 "right" : {
4533 "type" : "hexstr",
4534 "value" : "0x01ff"
4535 }
4536 }
4537 },
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004538 "true_next" : "tbl_act_13",
4539 "false_next" : "node_39"
Yi Tsengbe342052017-11-03 10:21:23 -07004540 },
4541 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004542 "name" : "node_39",
4543 "id" : 12,
Yi Tsengbe342052017-11-03 10:21:23 -07004544 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004545 "filename" : "include/control/port_counter.p4",
Yi Tsengbe342052017-11-03 10:21:23 -07004546 "line" : 30,
4547 "column" : 12,
4548 "source_fragment" : "standard_metadata.ingress_port < 511"
4549 },
4550 "expression" : {
4551 "type" : "expression",
4552 "value" : {
4553 "op" : "<",
4554 "left" : {
4555 "type" : "field",
4556 "value" : ["standard_metadata", "ingress_port"]
4557 },
4558 "right" : {
4559 "type" : "hexstr",
4560 "value" : "0x01ff"
4561 }
4562 }
4563 },
Yi Tseng3a5731e2018-01-22 11:38:58 -08004564 "false_next" : null,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004565 "true_next" : "tbl_act_14"
Yi Tseng3a5731e2018-01-22 11:38:58 -08004566 }
4567 ]
4568 },
4569 {
4570 "name" : "egress",
4571 "id" : 1,
4572 "source_info" : {
4573 "filename" : "fabric.p4",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004574 "line" : 80,
Yi Tseng3a5731e2018-01-22 11:38:58 -08004575 "column" : 8,
4576 "source_fragment" : "FabricEgress"
4577 },
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004578 "init_table" : "node_43",
Yi Tseng3a5731e2018-01-22 11:38:58 -08004579 "tables" : [
4580 {
Carmelo Casconea5400af2018-07-17 22:11:54 +02004581 "name" : "tbl_drop_now",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004582 "id" : 26,
Carmelo Casconea5400af2018-07-17 22:11:54 +02004583 "key" : [],
4584 "match_type" : "exact",
4585 "type" : "simple",
4586 "max_size" : 1024,
4587 "with_counters" : false,
4588 "support_timeout" : false,
4589 "direct_meters" : null,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004590 "action_ids" : [48],
Carmelo Casconea5400af2018-07-17 22:11:54 +02004591 "actions" : ["drop_now"],
4592 "base_default_next" : "FabricEgress.egress_next.egress_vlan",
4593 "next_tables" : {
4594 "drop_now" : "FabricEgress.egress_next.egress_vlan"
4595 },
4596 "default_entry" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004597 "action_id" : 48,
Carmelo Casconea5400af2018-07-17 22:11:54 +02004598 "action_const" : true,
4599 "action_data" : [],
4600 "action_entry_const" : true
4601 }
4602 },
4603 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004604 "name" : "FabricEgress.egress_next.egress_vlan",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004605 "id" : 27,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004606 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004607 "filename" : "include/control/next.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004608 "line" : 258,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004609 "column" : 10,
4610 "source_fragment" : "egress_vlan"
4611 },
4612 "key" : [
4613 {
4614 "match_type" : "exact",
4615 "name" : "hdr.vlan_tag.vlan_id",
4616 "target" : ["vlan_tag", "vlan_id"],
4617 "mask" : null
4618 },
4619 {
4620 "match_type" : "exact",
4621 "name" : "standard_metadata.egress_port",
4622 "target" : ["standard_metadata", "egress_port"],
4623 "mask" : null
4624 }
4625 ],
4626 "match_type" : "exact",
4627 "type" : "simple",
4628 "max_size" : 1024,
Yi Tseng47eac892018-07-11 02:17:04 +08004629 "with_counters" : true,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004630 "support_timeout" : false,
4631 "direct_meters" : null,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004632 "action_ids" : [51, 47],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004633 "actions" : ["FabricEgress.egress_next.pop_vlan", "nop"],
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004634 "base_default_next" : "node_46",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004635 "next_tables" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004636 "FabricEgress.egress_next.pop_vlan" : "node_46",
4637 "nop" : "node_46"
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004638 },
4639 "default_entry" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004640 "action_id" : 47,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004641 "action_const" : false,
4642 "action_data" : [],
4643 "action_entry_const" : false
4644 }
4645 },
4646 {
4647 "name" : "tbl_pkt_io_egress_pop_vlan",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004648 "id" : 28,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004649 "key" : [],
4650 "match_type" : "exact",
4651 "type" : "simple",
4652 "max_size" : 1024,
4653 "with_counters" : false,
4654 "support_timeout" : false,
4655 "direct_meters" : null,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004656 "action_ids" : [50],
Esin Karaman971fb7f2017-12-28 13:44:52 +00004657 "actions" : ["FabricEgress.pkt_io_egress.pop_vlan"],
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004658 "base_default_next" : "node_49",
Esin Karaman971fb7f2017-12-28 13:44:52 +00004659 "next_tables" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004660 "FabricEgress.pkt_io_egress.pop_vlan" : "node_49"
Esin Karaman971fb7f2017-12-28 13:44:52 +00004661 },
4662 "default_entry" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004663 "action_id" : 50,
Esin Karaman971fb7f2017-12-28 13:44:52 +00004664 "action_const" : true,
4665 "action_data" : [],
4666 "action_entry_const" : true
4667 }
4668 },
4669 {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02004670 "name" : "tbl_drop_now_0",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004671 "id" : 29,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02004672 "key" : [],
4673 "match_type" : "exact",
4674 "type" : "simple",
4675 "max_size" : 1024,
4676 "with_counters" : false,
4677 "support_timeout" : false,
4678 "direct_meters" : null,
4679 "action_ids" : [49],
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004680 "actions" : ["drop_now"],
4681 "base_default_next" : "tbl_act_15",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004682 "next_tables" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004683 "drop_now" : "tbl_act_15"
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004684 },
4685 "default_entry" : {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02004686 "action_id" : 49,
Yi Tseng3a5731e2018-01-22 11:38:58 -08004687 "action_const" : true,
4688 "action_data" : [],
4689 "action_entry_const" : true
4690 }
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004691 },
4692 {
4693 "name" : "tbl_act_15",
4694 "id" : 30,
4695 "key" : [],
4696 "match_type" : "exact",
4697 "type" : "simple",
4698 "max_size" : 1024,
4699 "with_counters" : false,
4700 "support_timeout" : false,
4701 "direct_meters" : null,
4702 "action_ids" : [52],
4703 "actions" : ["act_15"],
4704 "base_default_next" : null,
4705 "next_tables" : {
4706 "act_15" : null
4707 },
4708 "default_entry" : {
4709 "action_id" : 52,
4710 "action_const" : true,
4711 "action_data" : [],
4712 "action_entry_const" : true
4713 }
Yi Tseng3a5731e2018-01-22 11:38:58 -08004714 }
4715 ],
4716 "action_profiles" : [],
4717 "conditionals" : [
Yi Tseng1d842672017-11-28 16:06:52 -08004718 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004719 "name" : "node_43",
4720 "id" : 13,
Carmelo Casconea5400af2018-07-17 22:11:54 +02004721 "source_info" : {
4722 "filename" : "include/control/next.p4",
4723 "line" : 272,
4724 "column" : 12,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02004725 "source_fragment" : "fabric_metadata.is_multicast == true ..."
Carmelo Casconea5400af2018-07-17 22:11:54 +02004726 },
4727 "expression" : {
4728 "type" : "expression",
4729 "value" : {
4730 "op" : "and",
4731 "left" : {
4732 "type" : "expression",
4733 "value" : {
4734 "op" : "==",
4735 "left" : {
4736 "type" : "expression",
4737 "value" : {
4738 "op" : "d2b",
4739 "left" : null,
4740 "right" : {
4741 "type" : "field",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02004742 "value" : ["scalars", "fabric_metadata_t.is_multicast"]
Carmelo Casconea5400af2018-07-17 22:11:54 +02004743 }
4744 }
4745 },
4746 "right" : {
4747 "type" : "bool",
4748 "value" : true
4749 }
4750 }
4751 },
4752 "right" : {
4753 "type" : "expression",
4754 "value" : {
4755 "op" : "==",
4756 "left" : {
4757 "type" : "field",
4758 "value" : ["standard_metadata", "ingress_port"]
4759 },
4760 "right" : {
4761 "type" : "field",
4762 "value" : ["standard_metadata", "egress_port"]
4763 }
4764 }
4765 }
4766 }
4767 },
4768 "true_next" : "tbl_drop_now",
4769 "false_next" : "FabricEgress.egress_next.egress_vlan"
4770 },
4771 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004772 "name" : "node_46",
4773 "id" : 14,
Yi Tsengbe342052017-11-03 10:21:23 -07004774 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004775 "filename" : "include/control/packetio.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004776 "line" : 42,
Yi Tsengbe342052017-11-03 10:21:23 -07004777 "column" : 12,
Carmelo Casconeb531b682018-01-30 17:55:56 -08004778 "source_fragment" : "standard_metadata.egress_port == 255"
Yi Tsengbe342052017-11-03 10:21:23 -07004779 },
4780 "expression" : {
4781 "type" : "expression",
4782 "value" : {
4783 "op" : "==",
4784 "left" : {
4785 "type" : "field",
4786 "value" : ["standard_metadata", "egress_port"]
4787 },
4788 "right" : {
4789 "type" : "hexstr",
4790 "value" : "0x00ff"
4791 }
4792 }
4793 },
4794 "false_next" : null,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004795 "true_next" : "node_47"
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004796 },
4797 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004798 "name" : "node_47",
4799 "id" : 15,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004800 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004801 "filename" : "include/control/packetio.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004802 "line" : 43,
4803 "column" : 16,
Carmelo Cascone228092b2018-06-15 20:41:10 +02004804 "source_fragment" : "hdr.vlan_tag.isValid() && fabric_metadata.pop_vlan_when_packet_in == true"
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004805 },
4806 "expression" : {
4807 "type" : "expression",
4808 "value" : {
4809 "op" : "and",
4810 "left" : {
4811 "type" : "expression",
4812 "value" : {
4813 "op" : "d2b",
4814 "left" : null,
4815 "right" : {
4816 "type" : "field",
4817 "value" : ["vlan_tag", "$valid$"]
4818 }
4819 }
4820 },
4821 "right" : {
4822 "type" : "expression",
4823 "value" : {
Carmelo Cascone228092b2018-06-15 20:41:10 +02004824 "op" : "==",
4825 "left" : {
4826 "type" : "expression",
4827 "value" : {
4828 "op" : "d2b",
4829 "left" : null,
4830 "right" : {
4831 "type" : "field",
4832 "value" : ["scalars", "fabric_metadata_t.pop_vlan_when_packet_in"]
4833 }
4834 }
4835 },
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004836 "right" : {
Carmelo Cascone228092b2018-06-15 20:41:10 +02004837 "type" : "bool",
4838 "value" : true
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004839 }
4840 }
4841 }
4842 }
4843 },
4844 "true_next" : "tbl_pkt_io_egress_pop_vlan",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004845 "false_next" : "node_49"
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02004846 },
4847 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004848 "name" : "node_49",
4849 "id" : 16,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02004850 "source_info" : {
4851 "filename" : "include/control/packetio.p4",
4852 "line" : 46,
4853 "column" : 16,
4854 "source_fragment" : "fabric_metadata.is_multicast == true && ..."
4855 },
4856 "expression" : {
4857 "type" : "expression",
4858 "value" : {
4859 "op" : "and",
4860 "left" : {
4861 "type" : "expression",
4862 "value" : {
4863 "op" : "==",
4864 "left" : {
4865 "type" : "expression",
4866 "value" : {
4867 "op" : "d2b",
4868 "left" : null,
4869 "right" : {
4870 "type" : "field",
4871 "value" : ["scalars", "fabric_metadata_t.is_multicast"]
4872 }
4873 }
4874 },
4875 "right" : {
4876 "type" : "bool",
4877 "value" : true
4878 }
4879 }
4880 },
4881 "right" : {
4882 "type" : "expression",
4883 "value" : {
4884 "op" : "==",
4885 "left" : {
4886 "type" : "expression",
4887 "value" : {
4888 "op" : "d2b",
4889 "left" : null,
4890 "right" : {
4891 "type" : "field",
4892 "value" : ["scalars", "fabric_metadata_t.clone_to_cpu"]
4893 }
4894 }
4895 },
4896 "right" : {
4897 "type" : "bool",
4898 "value" : false
4899 }
4900 }
4901 }
4902 }
4903 },
4904 "true_next" : "tbl_drop_now_0",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004905 "false_next" : "tbl_act_15"
Yi Tsengbe342052017-11-03 10:21:23 -07004906 }
4907 ]
4908 }
4909 ],
4910 "checksums" : [
4911 {
4912 "name" : "cksum",
4913 "id" : 0,
4914 "target" : ["ipv4", "hdr_checksum"],
4915 "type" : "generic",
Yi Tsengbd46d052018-01-22 17:18:16 -08004916 "calculation" : "calc",
4917 "if_cond" : {
4918 "type" : "expression",
4919 "value" : {
4920 "op" : "d2b",
4921 "left" : null,
4922 "right" : {
4923 "type" : "field",
4924 "value" : ["ipv4", "$valid$"]
4925 }
4926 }
4927 }
Yi Tsengbe342052017-11-03 10:21:23 -07004928 },
4929 {
4930 "name" : "cksum_0",
4931 "id" : 1,
Yi Tsengbe342052017-11-03 10:21:23 -07004932 "target" : ["ipv4", "hdr_checksum"],
4933 "type" : "generic",
Yi Tsengbd46d052018-01-22 17:18:16 -08004934 "calculation" : "calc_0",
4935 "if_cond" : {
4936 "type" : "expression",
4937 "value" : {
4938 "op" : "d2b",
4939 "left" : null,
4940 "right" : {
4941 "type" : "field",
4942 "value" : ["ipv4", "$valid$"]
4943 }
4944 }
4945 }
Yi Tsengbe342052017-11-03 10:21:23 -07004946 }
4947 ],
4948 "force_arith" : [],
4949 "extern_instances" : [],
4950 "field_aliases" : [
4951 [
4952 "queueing_metadata.enq_timestamp",
4953 ["standard_metadata", "enq_timestamp"]
4954 ],
4955 [
4956 "queueing_metadata.enq_qdepth",
4957 ["standard_metadata", "enq_qdepth"]
4958 ],
4959 [
4960 "queueing_metadata.deq_timedelta",
4961 ["standard_metadata", "deq_timedelta"]
4962 ],
4963 [
4964 "queueing_metadata.deq_qdepth",
4965 ["standard_metadata", "deq_qdepth"]
4966 ],
4967 [
4968 "intrinsic_metadata.ingress_global_timestamp",
4969 ["standard_metadata", "ingress_global_timestamp"]
4970 ],
4971 [
Yi Tseng27b9bc02018-04-12 14:52:40 +08004972 "intrinsic_metadata.egress_global_timestamp",
4973 ["standard_metadata", "egress_global_timestamp"]
4974 ],
4975 [
Yi Tsengbe342052017-11-03 10:21:23 -07004976 "intrinsic_metadata.lf_field_list",
4977 ["standard_metadata", "lf_field_list"]
4978 ],
4979 [
4980 "intrinsic_metadata.mcast_grp",
4981 ["standard_metadata", "mcast_grp"]
4982 ],
4983 [
4984 "intrinsic_metadata.resubmit_flag",
4985 ["standard_metadata", "resubmit_flag"]
4986 ],
4987 [
4988 "intrinsic_metadata.egress_rid",
4989 ["standard_metadata", "egress_rid"]
Yi Tseng27b9bc02018-04-12 14:52:40 +08004990 ],
4991 [
4992 "intrinsic_metadata.recirculate_flag",
4993 ["standard_metadata", "recirculate_flag"]
Yi Tsengbe342052017-11-03 10:21:23 -07004994 ]
Carmelo Cascone6af4e172018-06-15 16:01:30 +02004995 ],
4996 "program" : "fabric.p4",
4997 "__meta__" : {
4998 "version" : [2, 18],
4999 "compiler" : "https://github.com/p4lang/p4c"
5000 }
Yi Tsengbe342052017-11-03 10:21:23 -07005001}