blob: 4dbc6e89e695fc5cec2de2de39cfb73dfa752c71 [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],
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -070019 ["fabric_metadata_t.is_controller_packet_out", 1, false],
Carmelo Cascone1e8843f2018-07-19 19:01:12 +020020 ["fabric_metadata_t.clone_to_cpu", 1, false],
Yi Tsengbe342052017-11-03 10:21:23 -070021 ["fabric_metadata_t.ip_proto", 8, false],
22 ["fabric_metadata_t.l4_src_port", 16, false],
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -070023 ["fabric_metadata_t.l4_dst_port", 16, 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 {
Charles Chan384aea22018-08-23 22:08:02 -0700706 "name" : "FabricIngress.forwarding.routing_v4_counter",
Yi Tseng3a5731e2018-01-22 11:38:58 -0800707 "id" : 4,
708 "is_direct" : true,
Charles Chan384aea22018-08-23 22:08:02 -0700709 "binding" : "FabricIngress.forwarding.routing_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 {
Charles Chan384aea22018-08-23 22:08:02 -07001255 "name" : "FabricIngress.forwarding.set_next_id_routing_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 }
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07002643 },
2644 {
2645 "op" : "assign",
2646 "parameters" : [
2647 {
2648 "type" : "field",
2649 "value" : ["scalars", "fabric_metadata_t.is_controller_packet_out"]
2650 },
2651 {
2652 "type" : "expression",
2653 "value" : {
2654 "type" : "expression",
2655 "value" : {
2656 "op" : "b2d",
2657 "left" : null,
2658 "right" : {
2659 "type" : "bool",
2660 "value" : true
2661 }
2662 }
2663 }
2664 }
2665 ],
2666 "source_info" : {
2667 "filename" : "include/control/packetio.p4",
2668 "line" : 28,
2669 "column" : 12,
2670 "source_fragment" : "fabric_metadata.is_controller_packet_out = true"
2671 }
Yi Tsengbe342052017-11-03 10:21:23 -07002672 }
2673 ]
2674 },
2675 {
2676 "name" : "act_0",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002677 "id" : 32,
Yi Tsengbe342052017-11-03 10:21:23 -07002678 "runtime_data" : [],
2679 "primitives" : [
2680 {
2681 "op" : "assign",
2682 "parameters" : [
2683 {
2684 "type" : "field",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002685 "value" : ["scalars", "filtering_tmp_0"]
Yi Tseng1d842672017-11-28 16:06:52 -08002686 },
2687 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002688 "type" : "expression",
2689 "value" : {
2690 "type" : "expression",
2691 "value" : {
2692 "op" : "b2d",
2693 "left" : null,
2694 "right" : {
2695 "type" : "bool",
2696 "value" : true
2697 }
2698 }
2699 }
Yi Tseng1d842672017-11-28 16:06:52 -08002700 }
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002701 ]
Yi Tseng1d842672017-11-28 16:06:52 -08002702 }
2703 ]
2704 },
2705 {
2706 "name" : "act_1",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002707 "id" : 33,
Yi Tseng1d842672017-11-28 16:06:52 -08002708 "runtime_data" : [],
2709 "primitives" : [
2710 {
2711 "op" : "assign",
2712 "parameters" : [
2713 {
2714 "type" : "field",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002715 "value" : ["scalars", "filtering_tmp_0"]
Yi Tseng1d842672017-11-28 16:06:52 -08002716 },
2717 {
2718 "type" : "expression",
2719 "value" : {
2720 "type" : "expression",
2721 "value" : {
2722 "op" : "b2d",
2723 "left" : null,
2724 "right" : {
2725 "type" : "bool",
2726 "value" : false
2727 }
2728 }
2729 }
2730 }
2731 ]
2732 }
2733 ]
2734 },
2735 {
Carmelo Casconea5400af2018-07-17 22:11:54 +02002736 "name" : "act_2",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002737 "id" : 34,
Carmelo Casconea5400af2018-07-17 22:11:54 +02002738 "runtime_data" : [],
2739 "primitives" : [
2740 {
2741 "op" : "assign",
2742 "parameters" : [
2743 {
2744 "type" : "field",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002745 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
Carmelo Casconea5400af2018-07-17 22:11:54 +02002746 },
2747 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002748 "type" : "hexstr",
2749 "value" : "0x07"
Carmelo Casconea5400af2018-07-17 22:11:54 +02002750 }
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002751 ],
2752 "source_info" : {
2753 "filename" : "include/control/../define.p4",
2754 "line" : 109,
2755 "column" : 31,
2756 "source_fragment" : "7; ..."
2757 }
Carmelo Casconea5400af2018-07-17 22:11:54 +02002758 }
2759 ]
2760 },
2761 {
Yi Tsengbd46d052018-01-22 17:18:16 -08002762 "name" : "act_3",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002763 "id" : 35,
Yi Tseng1d842672017-11-28 16:06:52 -08002764 "runtime_data" : [],
2765 "primitives" : [
2766 {
2767 "op" : "assign",
2768 "parameters" : [
2769 {
2770 "type" : "field",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002771 "value" : ["vlan_tag", "ether_type"]
Carmelo Casconea5400af2018-07-17 22:11:54 +02002772 },
2773 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002774 "type" : "hexstr",
2775 "value" : "0x0800"
Carmelo Casconea5400af2018-07-17 22:11:54 +02002776 }
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002777 ],
2778 "source_info" : {
2779 "filename" : "include/control/../define.p4",
2780 "line" : 92,
2781 "column" : 31,
2782 "source_fragment" : "0x0800; ..."
2783 }
Carmelo Casconea5400af2018-07-17 22:11:54 +02002784 }
2785 ]
2786 },
2787 {
2788 "name" : "act_4",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002789 "id" : 36,
Carmelo Casconea5400af2018-07-17 22:11:54 +02002790 "runtime_data" : [],
2791 "primitives" : [
2792 {
2793 "op" : "assign",
2794 "parameters" : [
2795 {
2796 "type" : "field",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002797 "value" : ["scalars", "next_hasReturned_0"]
Carmelo Casconea5400af2018-07-17 22:11:54 +02002798 },
2799 {
2800 "type" : "expression",
2801 "value" : {
2802 "type" : "expression",
2803 "value" : {
2804 "op" : "b2d",
2805 "left" : null,
2806 "right" : {
2807 "type" : "bool",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002808 "value" : false
Carmelo Casconea5400af2018-07-17 22:11:54 +02002809 }
2810 }
2811 }
2812 }
2813 ]
2814 }
2815 ]
2816 },
2817 {
2818 "name" : "act_5",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002819 "id" : 37,
Carmelo Casconea5400af2018-07-17 22:11:54 +02002820 "runtime_data" : [],
2821 "primitives" : [
2822 {
2823 "op" : "assign",
2824 "parameters" : [
2825 {
2826 "type" : "field",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002827 "value" : ["scalars", "next_tmp_4"]
2828 },
2829 {
2830 "type" : "expression",
2831 "value" : {
2832 "type" : "expression",
2833 "value" : {
2834 "op" : "b2d",
2835 "left" : null,
2836 "right" : {
2837 "type" : "bool",
2838 "value" : true
2839 }
2840 }
2841 }
2842 }
2843 ]
2844 }
2845 ]
2846 },
2847 {
2848 "name" : "act_6",
2849 "id" : 38,
2850 "runtime_data" : [],
2851 "primitives" : [
2852 {
2853 "op" : "assign",
2854 "parameters" : [
2855 {
2856 "type" : "field",
2857 "value" : ["scalars", "next_tmp_4"]
2858 },
2859 {
2860 "type" : "expression",
2861 "value" : {
2862 "type" : "expression",
2863 "value" : {
2864 "op" : "b2d",
2865 "left" : null,
2866 "right" : {
2867 "type" : "bool",
2868 "value" : false
2869 }
2870 }
2871 }
2872 }
2873 ]
2874 }
2875 ]
2876 },
2877 {
2878 "name" : "act_7",
2879 "id" : 39,
2880 "runtime_data" : [],
2881 "primitives" : [
2882 {
2883 "op" : "assign",
2884 "parameters" : [
2885 {
2886 "type" : "field",
2887 "value" : ["scalars", "next_tmp_3"]
2888 },
2889 {
2890 "type" : "expression",
2891 "value" : {
2892 "type" : "expression",
2893 "value" : {
2894 "op" : "b2d",
2895 "left" : null,
2896 "right" : {
2897 "type" : "bool",
2898 "value" : true
2899 }
2900 }
2901 }
2902 }
2903 ]
2904 }
2905 ]
2906 },
2907 {
2908 "name" : "act_8",
2909 "id" : 40,
2910 "runtime_data" : [],
2911 "primitives" : [
2912 {
2913 "op" : "assign",
2914 "parameters" : [
2915 {
2916 "type" : "field",
Carmelo Casconea5400af2018-07-17 22:11:54 +02002917 "value" : ["scalars", "next_tmp_3"]
2918 },
2919 {
2920 "type" : "expression",
2921 "value" : {
2922 "type" : "expression",
2923 "value" : {
2924 "op" : "b2d",
2925 "left" : null,
2926 "right" : {
2927 "type" : "bool",
2928 "value" : false
2929 }
2930 }
2931 }
2932 }
2933 ]
2934 }
2935 ]
2936 },
2937 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002938 "name" : "act_9",
2939 "id" : 41,
Carmelo Casconea5400af2018-07-17 22:11:54 +02002940 "runtime_data" : [],
2941 "primitives" : [
2942 {
2943 "op" : "assign",
2944 "parameters" : [
2945 {
2946 "type" : "field",
2947 "value" : ["scalars", "next_tmp_2"]
2948 },
2949 {
2950 "type" : "expression",
2951 "value" : {
2952 "type" : "expression",
2953 "value" : {
2954 "op" : "b2d",
2955 "left" : null,
2956 "right" : {
2957 "type" : "bool",
2958 "value" : true
2959 }
2960 }
2961 }
2962 }
2963 ]
2964 }
2965 ]
2966 },
2967 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002968 "name" : "act_10",
2969 "id" : 42,
Carmelo Casconea5400af2018-07-17 22:11:54 +02002970 "runtime_data" : [],
2971 "primitives" : [
2972 {
2973 "op" : "assign",
2974 "parameters" : [
2975 {
2976 "type" : "field",
2977 "value" : ["scalars", "next_tmp_2"]
2978 },
2979 {
2980 "type" : "expression",
2981 "value" : {
2982 "type" : "expression",
2983 "value" : {
2984 "op" : "b2d",
2985 "left" : null,
2986 "right" : {
2987 "type" : "bool",
2988 "value" : false
2989 }
2990 }
2991 }
2992 }
2993 ]
2994 }
2995 ]
2996 },
2997 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002998 "name" : "act_11",
2999 "id" : 43,
Carmelo Casconea5400af2018-07-17 22:11:54 +02003000 "runtime_data" : [],
3001 "primitives" : [
3002 {
3003 "op" : "assign",
3004 "parameters" : [
3005 {
3006 "type" : "field",
3007 "value" : ["scalars", "next_hasReturned_0"]
3008 },
3009 {
3010 "type" : "expression",
3011 "value" : {
3012 "type" : "expression",
3013 "value" : {
3014 "op" : "b2d",
3015 "left" : null,
3016 "right" : {
3017 "type" : "bool",
3018 "value" : true
3019 }
3020 }
3021 }
3022 }
3023 ],
3024 "source_info" : {
3025 "filename" : "include/control/next.p4",
3026 "line" : 223,
3027 "column" : 20,
3028 "source_fragment" : "return"
3029 }
3030 }
3031 ]
3032 },
3033 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003034 "name" : "act_12",
3035 "id" : 44,
Carmelo Casconea5400af2018-07-17 22:11:54 +02003036 "runtime_data" : [],
3037 "primitives" : [
3038 {
3039 "op" : "assign",
3040 "parameters" : [
3041 {
3042 "type" : "field",
Yi Tseng1d842672017-11-28 16:06:52 -08003043 "value" : ["ipv4", "ttl"]
3044 },
3045 {
3046 "type" : "expression",
3047 "value" : {
3048 "type" : "expression",
3049 "value" : {
3050 "op" : "&",
3051 "left" : {
3052 "type" : "expression",
3053 "value" : {
3054 "op" : "+",
3055 "left" : {
3056 "type" : "field",
3057 "value" : ["ipv4", "ttl"]
3058 },
3059 "right" : {
3060 "type" : "hexstr",
3061 "value" : "0xff"
3062 }
3063 }
3064 },
3065 "right" : {
3066 "type" : "hexstr",
3067 "value" : "0xff"
3068 }
3069 }
3070 }
3071 }
3072 ],
3073 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003074 "filename" : "include/control/next.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02003075 "line" : 230,
3076 "column" : 16,
Yi Tseng1d842672017-11-28 16:06:52 -08003077 "source_fragment" : "hdr.ipv4.ttl = hdr.ipv4.ttl - 1"
3078 }
3079 }
3080 ]
3081 },
3082 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003083 "name" : "act_13",
3084 "id" : 45,
Yi Tseng1d842672017-11-28 16:06:52 -08003085 "runtime_data" : [],
3086 "primitives" : [
3087 {
3088 "op" : "assign",
3089 "parameters" : [
3090 {
3091 "type" : "field",
Yi Tsengc6844f52017-12-19 11:58:25 -08003092 "value" : ["scalars", "tmp_0"]
Yi Tsengbe342052017-11-03 10:21:23 -07003093 },
3094 {
3095 "type" : "expression",
3096 "value" : {
3097 "type" : "expression",
3098 "value" : {
3099 "op" : "&",
3100 "left" : {
3101 "type" : "field",
3102 "value" : ["standard_metadata", "egress_spec"]
3103 },
3104 "right" : {
3105 "type" : "hexstr",
3106 "value" : "0xffffffff"
3107 }
3108 }
3109 }
3110 }
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003111 ],
3112 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003113 "filename" : "include/control/port_counter.p4",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003114 "line" : 28,
3115 "column" : 38,
3116 "source_fragment" : "(bit<32>)standard_metadata.egress_spec"
3117 }
Yi Tsengbe342052017-11-03 10:21:23 -07003118 },
3119 {
3120 "op" : "count",
3121 "parameters" : [
3122 {
3123 "type" : "counter_array",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003124 "value" : "FabricIngress.port_counters_control.egress_port_counter"
Yi Tsengbe342052017-11-03 10:21:23 -07003125 },
3126 {
3127 "type" : "field",
Yi Tsengc6844f52017-12-19 11:58:25 -08003128 "value" : ["scalars", "tmp_0"]
Yi Tsengbe342052017-11-03 10:21:23 -07003129 }
3130 ],
3131 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003132 "filename" : "include/control/port_counter.p4",
Yi Tsengbe342052017-11-03 10:21:23 -07003133 "line" : 28,
3134 "column" : 12,
3135 "source_fragment" : "egress_port_counter.count((bit<32>)standard_metadata.egress_spec)"
3136 }
3137 }
3138 ]
3139 },
3140 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003141 "name" : "act_14",
3142 "id" : 46,
Yi Tsengbe342052017-11-03 10:21:23 -07003143 "runtime_data" : [],
3144 "primitives" : [
3145 {
3146 "op" : "assign",
3147 "parameters" : [
3148 {
3149 "type" : "field",
Yi Tsengc6844f52017-12-19 11:58:25 -08003150 "value" : ["scalars", "tmp_1"]
Yi Tsengbe342052017-11-03 10:21:23 -07003151 },
3152 {
3153 "type" : "expression",
3154 "value" : {
3155 "type" : "expression",
3156 "value" : {
3157 "op" : "&",
3158 "left" : {
3159 "type" : "field",
3160 "value" : ["standard_metadata", "ingress_port"]
3161 },
3162 "right" : {
3163 "type" : "hexstr",
3164 "value" : "0xffffffff"
3165 }
3166 }
3167 }
3168 }
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003169 ],
3170 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003171 "filename" : "include/control/port_counter.p4",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003172 "line" : 31,
3173 "column" : 39,
3174 "source_fragment" : "(bit<32>)standard_metadata.ingress_port"
3175 }
Yi Tsengbe342052017-11-03 10:21:23 -07003176 },
3177 {
3178 "op" : "count",
3179 "parameters" : [
3180 {
3181 "type" : "counter_array",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003182 "value" : "FabricIngress.port_counters_control.ingress_port_counter"
Yi Tsengbe342052017-11-03 10:21:23 -07003183 },
3184 {
3185 "type" : "field",
Yi Tsengc6844f52017-12-19 11:58:25 -08003186 "value" : ["scalars", "tmp_1"]
Yi Tsengbe342052017-11-03 10:21:23 -07003187 }
3188 ],
3189 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003190 "filename" : "include/control/port_counter.p4",
Yi Tsengbe342052017-11-03 10:21:23 -07003191 "line" : 31,
3192 "column" : 12,
3193 "source_fragment" : "ingress_port_counter.count((bit<32>)standard_metadata.ingress_port)"
3194 }
3195 }
3196 ]
3197 },
3198 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003199 "name" : "nop",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003200 "id" : 47,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003201 "runtime_data" : [],
3202 "primitives" : []
3203 },
3204 {
Carmelo Casconea5400af2018-07-17 22:11:54 +02003205 "name" : "drop_now",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003206 "id" : 48,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003207 "runtime_data" : [],
3208 "primitives" : [
3209 {
3210 "op" : "drop",
3211 "parameters" : [],
3212 "source_info" : {
3213 "filename" : "include/control/../action.p4",
3214 "line" : 24,
3215 "column" : 4,
3216 "source_fragment" : "mark_to_drop()"
3217 }
3218 },
3219 {
3220 "op" : "exit",
3221 "parameters" : [],
3222 "source_info" : {
3223 "filename" : "include/control/../action.p4",
3224 "line" : 25,
3225 "column" : 4,
3226 "source_fragment" : "exit"
3227 }
3228 }
3229 ]
3230 },
3231 {
3232 "name" : "drop_now",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003233 "id" : 49,
Carmelo Casconea5400af2018-07-17 22:11:54 +02003234 "runtime_data" : [],
3235 "primitives" : [
3236 {
3237 "op" : "drop",
3238 "parameters" : [],
3239 "source_info" : {
3240 "filename" : "include/control/../action.p4",
3241 "line" : 24,
3242 "column" : 4,
3243 "source_fragment" : "mark_to_drop()"
3244 }
3245 },
3246 {
3247 "op" : "exit",
3248 "parameters" : [],
3249 "source_info" : {
3250 "filename" : "include/control/../action.p4",
3251 "line" : 25,
3252 "column" : 4,
3253 "source_fragment" : "exit"
3254 }
3255 }
3256 ]
3257 },
3258 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003259 "name" : "FabricEgress.pkt_io_egress.pop_vlan",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003260 "id" : 50,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003261 "runtime_data" : [],
3262 "primitives" : [
3263 {
3264 "op" : "assign",
3265 "parameters" : [
3266 {
3267 "type" : "field",
3268 "value" : ["ethernet", "ether_type"]
3269 },
3270 {
3271 "type" : "field",
3272 "value" : ["vlan_tag", "ether_type"]
3273 }
3274 ],
3275 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003276 "filename" : "include/control/packetio.p4",
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07003277 "line" : 39,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003278 "column" : 8,
3279 "source_fragment" : "hdr.ethernet.ether_type = hdr.vlan_tag.ether_type"
3280 }
3281 },
3282 {
3283 "op" : "remove_header",
3284 "parameters" : [
3285 {
3286 "type" : "header",
3287 "value" : "vlan_tag"
3288 }
3289 ],
3290 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003291 "filename" : "include/control/packetio.p4",
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07003292 "line" : 40,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003293 "column" : 8,
3294 "source_fragment" : "hdr.vlan_tag.setInvalid()"
3295 }
3296 }
3297 ]
3298 },
3299 {
3300 "name" : "FabricEgress.egress_next.pop_vlan",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003301 "id" : 51,
Yi Tseng1d842672017-11-28 16:06:52 -08003302 "runtime_data" : [],
3303 "primitives" : [
3304 {
3305 "op" : "assign",
3306 "parameters" : [
3307 {
3308 "type" : "field",
3309 "value" : ["ethernet", "ether_type"]
3310 },
3311 {
3312 "type" : "field",
Yi Tsengbd46d052018-01-22 17:18:16 -08003313 "value" : ["vlan_tag", "ether_type"]
Yi Tseng1d842672017-11-28 16:06:52 -08003314 }
3315 ],
3316 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003317 "filename" : "include/control/next.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02003318 "line" : 253,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003319 "column" : 8,
Yi Tsengbd46d052018-01-22 17:18:16 -08003320 "source_fragment" : "hdr.ethernet.ether_type = hdr.vlan_tag.ether_type"
Yi Tseng1d842672017-11-28 16:06:52 -08003321 }
Yi Tsengbd46d052018-01-22 17:18:16 -08003322 },
Yi Tsengbe342052017-11-03 10:21:23 -07003323 {
3324 "op" : "remove_header",
3325 "parameters" : [
3326 {
3327 "type" : "header",
3328 "value" : "vlan_tag"
3329 }
3330 ],
3331 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003332 "filename" : "include/control/next.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02003333 "line" : 254,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003334 "column" : 8,
Yi Tsengbe342052017-11-03 10:21:23 -07003335 "source_fragment" : "hdr.vlan_tag.setInvalid()"
3336 }
3337 }
3338 ]
3339 },
3340 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003341 "name" : "act_15",
3342 "id" : 52,
Yi Tsengbe342052017-11-03 10:21:23 -07003343 "runtime_data" : [],
3344 "primitives" : [
3345 {
3346 "op" : "add_header",
3347 "parameters" : [
3348 {
3349 "type" : "header",
3350 "value" : "packet_in"
3351 }
3352 ],
3353 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003354 "filename" : "include/control/packetio.p4",
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07003355 "line" : 56,
Yi Tsengbe342052017-11-03 10:21:23 -07003356 "column" : 12,
3357 "source_fragment" : "hdr.packet_in.setValid()"
3358 }
3359 },
3360 {
3361 "op" : "assign",
3362 "parameters" : [
3363 {
3364 "type" : "field",
3365 "value" : ["packet_in", "ingress_port"]
3366 },
3367 {
3368 "type" : "field",
3369 "value" : ["standard_metadata", "ingress_port"]
3370 }
3371 ],
3372 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003373 "filename" : "include/control/packetio.p4",
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07003374 "line" : 57,
Yi Tsengbe342052017-11-03 10:21:23 -07003375 "column" : 12,
3376 "source_fragment" : "hdr.packet_in.ingress_port = standard_metadata.ingress_port"
3377 }
3378 }
3379 ]
Yi Tsengbe342052017-11-03 10:21:23 -07003380 }
3381 ],
3382 "pipelines" : [
3383 {
3384 "name" : "ingress",
3385 "id" : 0,
3386 "source_info" : {
3387 "filename" : "fabric.p4",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09003388 "line" : 40,
Yi Tsengbe342052017-11-03 10:21:23 -07003389 "column" : 8,
3390 "source_fragment" : "FabricIngress"
3391 },
3392 "init_table" : "node_2",
3393 "tables" : [
3394 {
3395 "name" : "tbl_act",
3396 "id" : 0,
3397 "key" : [],
3398 "match_type" : "exact",
3399 "type" : "simple",
3400 "max_size" : 1024,
3401 "with_counters" : false,
3402 "support_timeout" : false,
3403 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003404 "action_ids" : [31],
Yi Tsengbe342052017-11-03 10:21:23 -07003405 "actions" : ["act"],
3406 "base_default_next" : null,
3407 "next_tables" : {
3408 "act" : null
3409 },
3410 "default_entry" : {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003411 "action_id" : 31,
Yi Tsengbe342052017-11-03 10:21:23 -07003412 "action_const" : true,
3413 "action_data" : [],
3414 "action_entry_const" : true
3415 }
3416 },
3417 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003418 "name" : "FabricIngress.filtering.ingress_port_vlan",
Yi Tsengbe342052017-11-03 10:21:23 -07003419 "id" : 1,
3420 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003421 "filename" : "include/control/filtering.p4",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003422 "line" : 66,
Yi Tsengbe342052017-11-03 10:21:23 -07003423 "column" : 10,
3424 "source_fragment" : "ingress_port_vlan"
3425 },
3426 "key" : [
3427 {
3428 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003429 "name" : "standard_metadata.ingress_port",
Yi Tsengbe342052017-11-03 10:21:23 -07003430 "target" : ["standard_metadata", "ingress_port"],
3431 "mask" : null
3432 },
3433 {
3434 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003435 "name" : "hdr.vlan_tag.is_valid",
Yi Tsengbe342052017-11-03 10:21:23 -07003436 "target" : ["vlan_tag", "$valid$"],
3437 "mask" : null
3438 },
3439 {
3440 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003441 "name" : "hdr.vlan_tag.vlan_id",
Yi Tsengbe342052017-11-03 10:21:23 -07003442 "target" : ["vlan_tag", "vlan_id"],
3443 "mask" : null
3444 }
3445 ],
3446 "match_type" : "ternary",
3447 "type" : "simple",
3448 "max_size" : 1024,
Yi Tsengbd46d052018-01-22 17:18:16 -08003449 "with_counters" : true,
Yi Tsengbe342052017-11-03 10:21:23 -07003450 "support_timeout" : false,
3451 "direct_meters" : null,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003452 "action_ids" : [9, 8, 7, 10],
3453 "actions" : ["FabricIngress.filtering.push_internal_vlan", "FabricIngress.filtering.set_vlan", "FabricIngress.filtering.drop", "FabricIngress.filtering.nop_ingress_port_vlan"],
3454 "base_default_next" : null,
Yi Tsengbe342052017-11-03 10:21:23 -07003455 "next_tables" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003456 "__HIT__" : "tbl_act_0",
3457 "__MISS__" : "tbl_act_1"
Yi Tsengbe342052017-11-03 10:21:23 -07003458 },
3459 "default_entry" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003460 "action_id" : 9,
3461 "action_const" : true,
3462 "action_data" : ["0xffe"],
3463 "action_entry_const" : true
3464 }
3465 },
3466 {
3467 "name" : "tbl_act_0",
3468 "id" : 2,
3469 "key" : [],
3470 "match_type" : "exact",
3471 "type" : "simple",
3472 "max_size" : 1024,
3473 "with_counters" : false,
3474 "support_timeout" : false,
3475 "direct_meters" : null,
3476 "action_ids" : [32],
3477 "actions" : ["act_0"],
3478 "base_default_next" : "node_7",
3479 "next_tables" : {
3480 "act_0" : "node_7"
3481 },
3482 "default_entry" : {
3483 "action_id" : 32,
3484 "action_const" : true,
3485 "action_data" : [],
3486 "action_entry_const" : true
3487 }
3488 },
3489 {
3490 "name" : "tbl_act_1",
3491 "id" : 3,
3492 "key" : [],
3493 "match_type" : "exact",
3494 "type" : "simple",
3495 "max_size" : 1024,
3496 "with_counters" : false,
3497 "support_timeout" : false,
3498 "direct_meters" : null,
3499 "action_ids" : [33],
3500 "actions" : ["act_1"],
3501 "base_default_next" : "node_7",
3502 "next_tables" : {
3503 "act_1" : "node_7"
3504 },
3505 "default_entry" : {
3506 "action_id" : 33,
Yi Tsengbe342052017-11-03 10:21:23 -07003507 "action_const" : true,
3508 "action_data" : [],
3509 "action_entry_const" : true
3510 }
3511 },
3512 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003513 "name" : "FabricIngress.filtering.fwd_classifier",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003514 "id" : 4,
Yi Tsengbe342052017-11-03 10:21:23 -07003515 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003516 "filename" : "include/control/filtering.p4",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003517 "line" : 103,
Yi Tsengbe342052017-11-03 10:21:23 -07003518 "column" : 10,
3519 "source_fragment" : "fwd_classifier"
3520 },
3521 "key" : [
3522 {
3523 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003524 "name" : "standard_metadata.ingress_port",
Yi Tsengbe342052017-11-03 10:21:23 -07003525 "target" : ["standard_metadata", "ingress_port"],
3526 "mask" : null
3527 },
3528 {
Charles Chan384aea22018-08-23 22:08:02 -07003529 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003530 "name" : "hdr.ethernet.dst_addr",
Yi Tsengbe342052017-11-03 10:21:23 -07003531 "target" : ["ethernet", "dst_addr"],
3532 "mask" : null
3533 },
3534 {
3535 "match_type" : "exact",
Yi Tseng8235a1a2018-07-24 20:57:28 +08003536 "name" : "hdr.vlan_tag.ether_type",
3537 "target" : ["vlan_tag", "ether_type"],
Yi Tsengbe342052017-11-03 10:21:23 -07003538 "mask" : null
3539 }
3540 ],
Charles Chan384aea22018-08-23 22:08:02 -07003541 "match_type" : "ternary",
Yi Tsengbe342052017-11-03 10:21:23 -07003542 "type" : "simple",
3543 "max_size" : 1024,
Yi Tsengbd46d052018-01-22 17:18:16 -08003544 "with_counters" : true,
Yi Tsengbe342052017-11-03 10:21:23 -07003545 "support_timeout" : false,
3546 "direct_meters" : null,
Charles Chancf696e52018-08-16 16:25:13 -07003547 "action_ids" : [11],
Yi Tseng27b9bc02018-04-12 14:52:40 +08003548 "actions" : ["FabricIngress.filtering.set_forwarding_type"],
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003549 "base_default_next" : "node_10",
Yi Tsengbe342052017-11-03 10:21:23 -07003550 "next_tables" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003551 "FabricIngress.filtering.set_forwarding_type" : "node_10"
Yi Tsengbe342052017-11-03 10:21:23 -07003552 },
3553 "default_entry" : {
Charles Chancf696e52018-08-16 16:25:13 -07003554 "action_id" : 11,
Yi Tsengbe342052017-11-03 10:21:23 -07003555 "action_const" : true,
3556 "action_data" : ["0x0"],
3557 "action_entry_const" : true
3558 }
3559 },
3560 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003561 "name" : "tbl_act_2",
3562 "id" : 5,
3563 "key" : [],
3564 "match_type" : "exact",
3565 "type" : "simple",
3566 "max_size" : 1024,
3567 "with_counters" : false,
3568 "support_timeout" : false,
3569 "direct_meters" : null,
3570 "action_ids" : [34],
3571 "actions" : ["act_2"],
3572 "base_default_next" : "node_10",
3573 "next_tables" : {
3574 "act_2" : "node_10"
3575 },
3576 "default_entry" : {
3577 "action_id" : 34,
3578 "action_const" : true,
3579 "action_data" : [],
3580 "action_entry_const" : true
3581 }
3582 },
3583 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003584 "name" : "FabricIngress.forwarding.bridging",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003585 "id" : 6,
Yi Tsengbe342052017-11-03 10:21:23 -07003586 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003587 "filename" : "include/control/forwarding.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08003588 "line" : 41,
Yi Tsengbe342052017-11-03 10:21:23 -07003589 "column" : 10,
3590 "source_fragment" : "bridging"
3591 },
3592 "key" : [
3593 {
3594 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003595 "name" : "hdr.vlan_tag.vlan_id",
Yi Tsengbe342052017-11-03 10:21:23 -07003596 "target" : ["vlan_tag", "vlan_id"],
3597 "mask" : null
3598 },
3599 {
3600 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003601 "name" : "hdr.ethernet.dst_addr",
Yi Tsengbe342052017-11-03 10:21:23 -07003602 "target" : ["ethernet", "dst_addr"],
3603 "mask" : null
3604 }
3605 ],
3606 "match_type" : "ternary",
3607 "type" : "simple",
3608 "max_size" : 1024,
Yi Tsengbd46d052018-01-22 17:18:16 -08003609 "with_counters" : true,
Yi Tsengbe342052017-11-03 10:21:23 -07003610 "support_timeout" : false,
3611 "direct_meters" : null,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003612 "action_ids" : [12, 0],
Yi Tseng47eac892018-07-11 02:17:04 +08003613 "actions" : ["FabricIngress.forwarding.set_next_id_bridging", "NoAction"],
Yi Tseng27b9bc02018-04-12 14:52:40 +08003614 "base_default_next" : "FabricIngress.forwarding.acl",
Yi Tseng1d842672017-11-28 16:06:52 -08003615 "next_tables" : {
Yi Tseng47eac892018-07-11 02:17:04 +08003616 "FabricIngress.forwarding.set_next_id_bridging" : "FabricIngress.forwarding.acl",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003617 "NoAction" : "FabricIngress.forwarding.acl"
Yi Tseng1d842672017-11-28 16:06:52 -08003618 },
3619 "default_entry" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003620 "action_id" : 0,
Yi Tseng1d842672017-11-28 16:06:52 -08003621 "action_const" : false,
3622 "action_data" : [],
3623 "action_entry_const" : false
3624 }
3625 },
3626 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003627 "name" : "FabricIngress.forwarding.mpls",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003628 "id" : 7,
Yi Tseng1d842672017-11-28 16:06:52 -08003629 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003630 "filename" : "include/control/forwarding.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08003631 "line" : 65,
Yi Tseng1d842672017-11-28 16:06:52 -08003632 "column" : 10,
3633 "source_fragment" : "mpls"
3634 },
3635 "key" : [
3636 {
3637 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003638 "name" : "hdr.mpls.label",
Yi Tseng1d842672017-11-28 16:06:52 -08003639 "target" : ["mpls", "label"],
3640 "mask" : null
3641 }
3642 ],
3643 "match_type" : "exact",
3644 "type" : "simple",
3645 "max_size" : 1024,
Yi Tsengbd46d052018-01-22 17:18:16 -08003646 "with_counters" : true,
Yi Tseng1d842672017-11-28 16:06:52 -08003647 "support_timeout" : false,
3648 "direct_meters" : null,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003649 "action_ids" : [13, 1],
Yi Tseng27b9bc02018-04-12 14:52:40 +08003650 "actions" : ["FabricIngress.forwarding.pop_mpls_and_next", "NoAction"],
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003651 "base_default_next" : "tbl_act_3",
Yi Tseng1d842672017-11-28 16:06:52 -08003652 "next_tables" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003653 "FabricIngress.forwarding.pop_mpls_and_next" : "tbl_act_3",
3654 "NoAction" : "tbl_act_3"
Yi Tseng1d842672017-11-28 16:06:52 -08003655 },
3656 "default_entry" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003657 "action_id" : 1,
Yi Tseng1d842672017-11-28 16:06:52 -08003658 "action_const" : false,
3659 "action_data" : [],
3660 "action_entry_const" : false
3661 }
3662 },
3663 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003664 "name" : "tbl_act_3",
3665 "id" : 8,
Yi Tseng1d842672017-11-28 16:06:52 -08003666 "key" : [],
3667 "match_type" : "exact",
3668 "type" : "simple",
3669 "max_size" : 1024,
3670 "with_counters" : false,
3671 "support_timeout" : false,
3672 "direct_meters" : null,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003673 "action_ids" : [35],
3674 "actions" : ["act_3"],
Yi Tseng27b9bc02018-04-12 14:52:40 +08003675 "base_default_next" : "FabricIngress.forwarding.acl",
Yi Tseng1d842672017-11-28 16:06:52 -08003676 "next_tables" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003677 "act_3" : "FabricIngress.forwarding.acl"
Yi Tseng1d842672017-11-28 16:06:52 -08003678 },
3679 "default_entry" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003680 "action_id" : 35,
Yi Tseng1d842672017-11-28 16:06:52 -08003681 "action_const" : true,
3682 "action_data" : [],
3683 "action_entry_const" : true
3684 }
3685 },
3686 {
Charles Chan384aea22018-08-23 22:08:02 -07003687 "name" : "FabricIngress.forwarding.routing_v4",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003688 "id" : 9,
Yi Tseng1d842672017-11-28 16:06:52 -08003689 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003690 "filename" : "include/control/forwarding.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08003691 "line" : 87,
Yi Tseng1d842672017-11-28 16:06:52 -08003692 "column" : 10,
Charles Chan384aea22018-08-23 22:08:02 -07003693 "source_fragment" : "routing_v4"
Yi Tseng1d842672017-11-28 16:06:52 -08003694 },
3695 "key" : [
3696 {
3697 "match_type" : "lpm",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003698 "name" : "hdr.ipv4.dst_addr",
Yi Tseng1d842672017-11-28 16:06:52 -08003699 "target" : ["ipv4", "dst_addr"],
3700 "mask" : null
3701 }
3702 ],
3703 "match_type" : "lpm",
3704 "type" : "simple",
3705 "max_size" : 1024,
Yi Tsengbd46d052018-01-22 17:18:16 -08003706 "with_counters" : true,
Yi Tseng1d842672017-11-28 16:06:52 -08003707 "support_timeout" : false,
3708 "direct_meters" : null,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003709 "action_ids" : [14, 2],
Charles Chan384aea22018-08-23 22:08:02 -07003710 "actions" : ["FabricIngress.forwarding.set_next_id_routing_v4", "NoAction"],
Yi Tseng27b9bc02018-04-12 14:52:40 +08003711 "base_default_next" : "FabricIngress.forwarding.acl",
Yi Tsengbe342052017-11-03 10:21:23 -07003712 "next_tables" : {
Charles Chan384aea22018-08-23 22:08:02 -07003713 "FabricIngress.forwarding.set_next_id_routing_v4" : "FabricIngress.forwarding.acl",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003714 "NoAction" : "FabricIngress.forwarding.acl"
Yi Tsengbe342052017-11-03 10:21:23 -07003715 },
3716 "default_entry" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003717 "action_id" : 2,
Yi Tsengbe342052017-11-03 10:21:23 -07003718 "action_const" : false,
3719 "action_data" : [],
3720 "action_entry_const" : false
3721 }
3722 },
3723 {
Carmelo Casconef645e842018-07-16 18:31:52 +02003724 "name" : "FabricIngress.forwarding.acl",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003725 "id" : 10,
Yi Tsengbe342052017-11-03 10:21:23 -07003726 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003727 "filename" : "include/control/forwarding.p4",
Charles Chancf696e52018-08-16 16:25:13 -07003728 "line" : 131,
Yi Tsengbe342052017-11-03 10:21:23 -07003729 "column" : 10,
Yi Tsengbe342052017-11-03 10:21:23 -07003730 "source_fragment" : "acl"
3731 },
3732 "key" : [
3733 {
3734 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003735 "name" : "standard_metadata.ingress_port",
Yi Tsengbe342052017-11-03 10:21:23 -07003736 "target" : ["standard_metadata", "ingress_port"],
3737 "mask" : null
3738 },
3739 {
3740 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003741 "name" : "fabric_metadata.ip_proto",
Yi Tsengbe342052017-11-03 10:21:23 -07003742 "target" : ["scalars", "fabric_metadata_t.ip_proto"],
3743 "mask" : null
3744 },
3745 {
3746 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003747 "name" : "fabric_metadata.l4_src_port",
Yi Tseng1d842672017-11-28 16:06:52 -08003748 "target" : ["scalars", "fabric_metadata_t.l4_src_port"],
3749 "mask" : null
3750 },
3751 {
3752 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003753 "name" : "fabric_metadata.l4_dst_port",
Yi Tseng1d842672017-11-28 16:06:52 -08003754 "target" : ["scalars", "fabric_metadata_t.l4_dst_port"],
3755 "mask" : null
3756 },
3757 {
3758 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003759 "name" : "hdr.ethernet.dst_addr",
Yi Tsengbe342052017-11-03 10:21:23 -07003760 "target" : ["ethernet", "dst_addr"],
3761 "mask" : null
3762 },
3763 {
3764 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003765 "name" : "hdr.ethernet.src_addr",
Yi Tsengbe342052017-11-03 10:21:23 -07003766 "target" : ["ethernet", "src_addr"],
3767 "mask" : null
3768 },
3769 {
3770 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003771 "name" : "hdr.vlan_tag.vlan_id",
Yi Tsengbe342052017-11-03 10:21:23 -07003772 "target" : ["vlan_tag", "vlan_id"],
3773 "mask" : null
3774 },
3775 {
3776 "match_type" : "ternary",
Yi Tseng8235a1a2018-07-24 20:57:28 +08003777 "name" : "hdr.vlan_tag.ether_type",
3778 "target" : ["vlan_tag", "ether_type"],
3779 "mask" : null
3780 },
3781 {
3782 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003783 "name" : "hdr.ipv4.src_addr",
Yi Tsengbe342052017-11-03 10:21:23 -07003784 "target" : ["ipv4", "src_addr"],
3785 "mask" : null
3786 },
3787 {
3788 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003789 "name" : "hdr.ipv4.dst_addr",
Yi Tsengbe342052017-11-03 10:21:23 -07003790 "target" : ["ipv4", "dst_addr"],
3791 "mask" : null
3792 },
3793 {
3794 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003795 "name" : "hdr.icmp.icmp_type",
Yi Tsengbe342052017-11-03 10:21:23 -07003796 "target" : ["icmp", "icmp_type"],
3797 "mask" : null
3798 },
3799 {
3800 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003801 "name" : "hdr.icmp.icmp_code",
Yi Tsengbe342052017-11-03 10:21:23 -07003802 "target" : ["icmp", "icmp_code"],
3803 "mask" : null
3804 }
3805 ],
3806 "match_type" : "ternary",
3807 "type" : "simple",
Yi Tseng8235a1a2018-07-24 20:57:28 +08003808 "max_size" : 128,
Yi Tsengbd46d052018-01-22 17:18:16 -08003809 "with_counters" : true,
Yi Tsengbe342052017-11-03 10:21:23 -07003810 "support_timeout" : false,
3811 "direct_meters" : null,
Charles Chancf696e52018-08-16 16:25:13 -07003812 "action_ids" : [15, 16, 17, 18, 19],
3813 "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 -07003814 "base_default_next" : "tbl_act_4",
Yi Tsengbe342052017-11-03 10:21:23 -07003815 "next_tables" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003816 "FabricIngress.forwarding.set_next_id_acl" : "tbl_act_4",
3817 "FabricIngress.forwarding.punt_to_cpu" : "tbl_act_4",
3818 "FabricIngress.forwarding.clone_to_cpu" : "tbl_act_4",
3819 "FabricIngress.forwarding.drop" : "tbl_act_4",
3820 "FabricIngress.forwarding.nop_acl" : "tbl_act_4"
Yi Tsengbe342052017-11-03 10:21:23 -07003821 },
3822 "default_entry" : {
Charles Chancf696e52018-08-16 16:25:13 -07003823 "action_id" : 19,
Yi Tsengbe342052017-11-03 10:21:23 -07003824 "action_const" : true,
3825 "action_data" : [],
3826 "action_entry_const" : true
3827 }
3828 },
3829 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003830 "name" : "tbl_act_4",
3831 "id" : 11,
Carmelo Casconea5400af2018-07-17 22:11:54 +02003832 "key" : [],
3833 "match_type" : "exact",
3834 "type" : "simple",
3835 "max_size" : 1024,
3836 "with_counters" : false,
3837 "support_timeout" : false,
3838 "direct_meters" : null,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003839 "action_ids" : [36],
3840 "actions" : ["act_4"],
Carmelo Casconea5400af2018-07-17 22:11:54 +02003841 "base_default_next" : "FabricIngress.next.vlan_meta",
3842 "next_tables" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003843 "act_4" : "FabricIngress.next.vlan_meta"
Carmelo Casconea5400af2018-07-17 22:11:54 +02003844 },
3845 "default_entry" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003846 "action_id" : 36,
Carmelo Casconea5400af2018-07-17 22:11:54 +02003847 "action_const" : true,
3848 "action_data" : [],
3849 "action_entry_const" : true
3850 }
3851 },
3852 {
3853 "name" : "FabricIngress.next.vlan_meta",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003854 "id" : 12,
Yi Tsengbe342052017-11-03 10:21:23 -07003855 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003856 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08003857 "line" : 65,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003858 "column" : 10,
3859 "source_fragment" : "vlan_meta"
3860 },
3861 "key" : [
3862 {
3863 "match_type" : "exact",
3864 "name" : "fabric_metadata.next_id",
3865 "target" : ["scalars", "fabric_metadata_t.next_id"],
3866 "mask" : null
3867 }
3868 ],
3869 "match_type" : "exact",
3870 "type" : "simple",
3871 "max_size" : 1024,
3872 "with_counters" : true,
3873 "support_timeout" : false,
3874 "direct_meters" : null,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003875 "action_ids" : [20, 6],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003876 "actions" : ["FabricIngress.next.set_vlan", "nop"],
3877 "base_default_next" : "FabricIngress.next.simple",
3878 "next_tables" : {
3879 "FabricIngress.next.set_vlan" : "FabricIngress.next.simple",
3880 "nop" : "FabricIngress.next.simple"
3881 },
3882 "default_entry" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003883 "action_id" : 6,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003884 "action_const" : false,
3885 "action_data" : [],
3886 "action_entry_const" : false
3887 }
3888 },
3889 {
3890 "name" : "FabricIngress.next.simple",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003891 "id" : 13,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003892 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003893 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08003894 "line" : 122,
Yi Tsengbe342052017-11-03 10:21:23 -07003895 "column" : 10,
3896 "source_fragment" : "simple"
3897 },
3898 "key" : [
3899 {
3900 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003901 "name" : "fabric_metadata.next_id",
Yi Tsengbe342052017-11-03 10:21:23 -07003902 "target" : ["scalars", "fabric_metadata_t.next_id"],
3903 "mask" : null
3904 }
3905 ],
3906 "match_type" : "exact",
3907 "type" : "simple",
3908 "max_size" : 1024,
Yi Tsengbd46d052018-01-22 17:18:16 -08003909 "with_counters" : true,
Yi Tsengbe342052017-11-03 10:21:23 -07003910 "support_timeout" : false,
3911 "direct_meters" : null,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003912 "action_ids" : [21, 22, 23, 24, 25, 26, 3],
Yi Tseng47eac892018-07-11 02:17:04 +08003913 "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 -08003914 "base_default_next" : null,
Yi Tsengbe342052017-11-03 10:21:23 -07003915 "next_tables" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003916 "__HIT__" : "tbl_act_5",
3917 "__MISS__" : "tbl_act_6"
Yi Tsengbe342052017-11-03 10:21:23 -07003918 },
3919 "default_entry" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003920 "action_id" : 3,
Yi Tsengbe342052017-11-03 10:21:23 -07003921 "action_const" : false,
3922 "action_data" : [],
3923 "action_entry_const" : false
3924 }
3925 },
3926 {
Carmelo Casconea5400af2018-07-17 22:11:54 +02003927 "name" : "tbl_act_5",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003928 "id" : 14,
Carmelo Casconea5400af2018-07-17 22:11:54 +02003929 "key" : [],
3930 "match_type" : "exact",
3931 "type" : "simple",
3932 "max_size" : 1024,
3933 "with_counters" : false,
3934 "support_timeout" : false,
3935 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003936 "action_ids" : [37],
Carmelo Casconea5400af2018-07-17 22:11:54 +02003937 "actions" : ["act_5"],
3938 "base_default_next" : "node_23",
3939 "next_tables" : {
3940 "act_5" : "node_23"
3941 },
3942 "default_entry" : {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003943 "action_id" : 37,
Carmelo Casconea5400af2018-07-17 22:11:54 +02003944 "action_const" : true,
3945 "action_data" : [],
3946 "action_entry_const" : true
Esin Karaman971fb7f2017-12-28 13:44:52 +00003947 }
3948 },
3949 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003950 "name" : "tbl_act_6",
3951 "id" : 15,
3952 "key" : [],
3953 "match_type" : "exact",
3954 "type" : "simple",
3955 "max_size" : 1024,
3956 "with_counters" : false,
3957 "support_timeout" : false,
3958 "direct_meters" : null,
3959 "action_ids" : [38],
3960 "actions" : ["act_6"],
3961 "base_default_next" : "node_23",
3962 "next_tables" : {
3963 "act_6" : "node_23"
3964 },
3965 "default_entry" : {
3966 "action_id" : 38,
3967 "action_const" : true,
3968 "action_data" : [],
3969 "action_entry_const" : true
3970 }
3971 },
3972 {
3973 "name" : "FabricIngress.next.hashed",
Carmelo Casconea5400af2018-07-17 22:11:54 +02003974 "id" : 16,
Esin Karaman971fb7f2017-12-28 13:44:52 +00003975 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003976 "filename" : "include/control/next.p4",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003977 "line" : 175,
Esin Karaman971fb7f2017-12-28 13:44:52 +00003978 "column" : 10,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003979 "source_fragment" : "hashed"
Esin Karaman971fb7f2017-12-28 13:44:52 +00003980 },
3981 "key" : [
3982 {
3983 "match_type" : "exact",
3984 "name" : "fabric_metadata.next_id",
3985 "target" : ["scalars", "fabric_metadata_t.next_id"],
3986 "mask" : null
3987 }
3988 ],
3989 "match_type" : "exact",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003990 "type" : "indirect_ws",
3991 "action_profile" : "FabricIngress.next.ecmp_selector",
Esin Karaman971fb7f2017-12-28 13:44:52 +00003992 "max_size" : 1024,
3993 "with_counters" : true,
3994 "support_timeout" : false,
3995 "direct_meters" : null,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003996 "action_ids" : [27, 28, 29, 4],
3997 "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 +02003998 "base_default_next" : null,
Esin Karaman971fb7f2017-12-28 13:44:52 +00003999 "next_tables" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004000 "__HIT__" : "tbl_act_7",
4001 "__MISS__" : "tbl_act_8"
Esin Karaman971fb7f2017-12-28 13:44:52 +00004002 }
4003 },
4004 {
Carmelo Casconea5400af2018-07-17 22:11:54 +02004005 "name" : "tbl_act_7",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004006 "id" : 17,
Esin Karaman971fb7f2017-12-28 13:44:52 +00004007 "key" : [],
4008 "match_type" : "exact",
4009 "type" : "simple",
4010 "max_size" : 1024,
4011 "with_counters" : false,
4012 "support_timeout" : false,
4013 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02004014 "action_ids" : [39],
Carmelo Casconea5400af2018-07-17 22:11:54 +02004015 "actions" : ["act_7"],
4016 "base_default_next" : "node_27",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004017 "next_tables" : {
Carmelo Casconea5400af2018-07-17 22:11:54 +02004018 "act_7" : "node_27"
Yi Tseng27b9bc02018-04-12 14:52:40 +08004019 },
4020 "default_entry" : {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02004021 "action_id" : 39,
Carmelo Casconea5400af2018-07-17 22:11:54 +02004022 "action_const" : true,
4023 "action_data" : [],
4024 "action_entry_const" : true
4025 }
4026 },
4027 {
4028 "name" : "tbl_act_8",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004029 "id" : 18,
Carmelo Casconea5400af2018-07-17 22:11:54 +02004030 "key" : [],
4031 "match_type" : "exact",
4032 "type" : "simple",
4033 "max_size" : 1024,
4034 "with_counters" : false,
4035 "support_timeout" : false,
4036 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02004037 "action_ids" : [40],
Carmelo Casconea5400af2018-07-17 22:11:54 +02004038 "actions" : ["act_8"],
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004039 "base_default_next" : "node_27",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004040 "next_tables" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004041 "act_8" : "node_27"
Carmelo Casconea5400af2018-07-17 22:11:54 +02004042 },
4043 "default_entry" : {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02004044 "action_id" : 40,
Carmelo Casconea5400af2018-07-17 22:11:54 +02004045 "action_const" : true,
4046 "action_data" : [],
4047 "action_entry_const" : true
4048 }
4049 },
4050 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004051 "name" : "FabricIngress.next.multicast",
4052 "id" : 19,
4053 "source_info" : {
4054 "filename" : "include/control/next.p4",
4055 "line" : 207,
4056 "column" : 10,
4057 "source_fragment" : "multicast"
4058 },
4059 "key" : [
4060 {
4061 "match_type" : "exact",
4062 "name" : "fabric_metadata.next_id",
4063 "target" : ["scalars", "fabric_metadata_t.next_id"],
4064 "mask" : null
4065 }
4066 ],
4067 "match_type" : "exact",
4068 "type" : "simple",
4069 "max_size" : 1024,
4070 "with_counters" : true,
4071 "support_timeout" : false,
4072 "direct_meters" : null,
4073 "action_ids" : [30, 5],
4074 "actions" : ["FabricIngress.next.set_mcast_group", "NoAction"],
4075 "base_default_next" : null,
4076 "next_tables" : {
4077 "__HIT__" : "tbl_act_9",
4078 "__MISS__" : "tbl_act_10"
4079 },
4080 "default_entry" : {
4081 "action_id" : 5,
4082 "action_const" : false,
4083 "action_data" : [],
4084 "action_entry_const" : false
4085 }
4086 },
4087 {
Carmelo Casconea5400af2018-07-17 22:11:54 +02004088 "name" : "tbl_act_9",
4089 "id" : 20,
4090 "key" : [],
4091 "match_type" : "exact",
4092 "type" : "simple",
4093 "max_size" : 1024,
4094 "with_counters" : false,
4095 "support_timeout" : false,
4096 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02004097 "action_ids" : [41],
Carmelo Casconea5400af2018-07-17 22:11:54 +02004098 "actions" : ["act_9"],
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004099 "base_default_next" : "node_31",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004100 "next_tables" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004101 "act_9" : "node_31"
Carmelo Casconea5400af2018-07-17 22:11:54 +02004102 },
4103 "default_entry" : {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02004104 "action_id" : 41,
Carmelo Casconea5400af2018-07-17 22:11:54 +02004105 "action_const" : true,
4106 "action_data" : [],
4107 "action_entry_const" : true
4108 }
4109 },
4110 {
4111 "name" : "tbl_act_10",
4112 "id" : 21,
4113 "key" : [],
4114 "match_type" : "exact",
4115 "type" : "simple",
4116 "max_size" : 1024,
4117 "with_counters" : false,
4118 "support_timeout" : false,
4119 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02004120 "action_ids" : [42],
Carmelo Casconea5400af2018-07-17 22:11:54 +02004121 "actions" : ["act_10"],
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004122 "base_default_next" : "node_31",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004123 "next_tables" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004124 "act_10" : "node_31"
Carmelo Casconea5400af2018-07-17 22:11:54 +02004125 },
4126 "default_entry" : {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02004127 "action_id" : 42,
Carmelo Casconea5400af2018-07-17 22:11:54 +02004128 "action_const" : true,
4129 "action_data" : [],
4130 "action_entry_const" : true
4131 }
4132 },
4133 {
4134 "name" : "tbl_act_11",
4135 "id" : 22,
4136 "key" : [],
4137 "match_type" : "exact",
4138 "type" : "simple",
4139 "max_size" : 1024,
4140 "with_counters" : false,
4141 "support_timeout" : false,
4142 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02004143 "action_ids" : [43],
Carmelo Casconea5400af2018-07-17 22:11:54 +02004144 "actions" : ["act_11"],
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004145 "base_default_next" : "node_33",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004146 "next_tables" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004147 "act_11" : "node_33"
Carmelo Casconea5400af2018-07-17 22:11:54 +02004148 },
4149 "default_entry" : {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02004150 "action_id" : 43,
Yi Tseng3a5731e2018-01-22 11:38:58 -08004151 "action_const" : true,
4152 "action_data" : [],
4153 "action_entry_const" : true
4154 }
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004155 },
4156 {
4157 "name" : "tbl_act_12",
4158 "id" : 23,
4159 "key" : [],
4160 "match_type" : "exact",
4161 "type" : "simple",
4162 "max_size" : 1024,
4163 "with_counters" : false,
4164 "support_timeout" : false,
4165 "direct_meters" : null,
4166 "action_ids" : [44],
4167 "actions" : ["act_12"],
4168 "base_default_next" : "node_37",
4169 "next_tables" : {
4170 "act_12" : "node_37"
4171 },
4172 "default_entry" : {
4173 "action_id" : 44,
4174 "action_const" : true,
4175 "action_data" : [],
4176 "action_entry_const" : true
4177 }
4178 },
4179 {
4180 "name" : "tbl_act_13",
4181 "id" : 24,
4182 "key" : [],
4183 "match_type" : "exact",
4184 "type" : "simple",
4185 "max_size" : 1024,
4186 "with_counters" : false,
4187 "support_timeout" : false,
4188 "direct_meters" : null,
4189 "action_ids" : [45],
4190 "actions" : ["act_13"],
4191 "base_default_next" : "node_39",
4192 "next_tables" : {
4193 "act_13" : "node_39"
4194 },
4195 "default_entry" : {
4196 "action_id" : 45,
4197 "action_const" : true,
4198 "action_data" : [],
4199 "action_entry_const" : true
4200 }
4201 },
4202 {
4203 "name" : "tbl_act_14",
4204 "id" : 25,
4205 "key" : [],
4206 "match_type" : "exact",
4207 "type" : "simple",
4208 "max_size" : 1024,
4209 "with_counters" : false,
4210 "support_timeout" : false,
4211 "direct_meters" : null,
4212 "action_ids" : [46],
4213 "actions" : ["act_14"],
4214 "base_default_next" : null,
4215 "next_tables" : {
4216 "act_14" : null
4217 },
4218 "default_entry" : {
4219 "action_id" : 46,
4220 "action_const" : true,
4221 "action_data" : [],
4222 "action_entry_const" : true
4223 }
Yi Tsengbe342052017-11-03 10:21:23 -07004224 }
4225 ],
4226 "action_profiles" : [
4227 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004228 "name" : "FabricIngress.next.ecmp_selector",
Yi Tsengbe342052017-11-03 10:21:23 -07004229 "id" : 0,
4230 "max_size" : 64,
4231 "selector" : {
4232 "algo" : "crc16",
4233 "input" : [
4234 {
4235 "type" : "field",
Yi Tseng3d3956d2018-01-31 17:28:05 -08004236 "value" : ["ipv4", "dst_addr"]
Yi Tsengbe342052017-11-03 10:21:23 -07004237 },
4238 {
4239 "type" : "field",
Yi Tseng3d3956d2018-01-31 17:28:05 -08004240 "value" : ["ipv4", "src_addr"]
Yi Tsengbe342052017-11-03 10:21:23 -07004241 },
4242 {
4243 "type" : "field",
Yi Tseng1d842672017-11-28 16:06:52 -08004244 "value" : ["scalars", "fabric_metadata_t.ip_proto"]
Yi Tsengbe342052017-11-03 10:21:23 -07004245 },
4246 {
4247 "type" : "field",
4248 "value" : ["scalars", "fabric_metadata_t.l4_src_port"]
4249 },
4250 {
4251 "type" : "field",
4252 "value" : ["scalars", "fabric_metadata_t.l4_dst_port"]
4253 }
4254 ]
4255 }
4256 }
4257 ],
4258 "conditionals" : [
4259 {
4260 "name" : "node_2",
4261 "id" : 0,
4262 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004263 "filename" : "include/control/packetio.p4",
Yi Tsengbe342052017-11-03 10:21:23 -07004264 "line" : 25,
4265 "column" : 12,
4266 "source_fragment" : "hdr.packet_out.isValid()"
4267 },
4268 "expression" : {
4269 "type" : "expression",
4270 "value" : {
Yi Tsengbd46d052018-01-22 17:18:16 -08004271 "op" : "d2b",
4272 "left" : null,
4273 "right" : {
Yi Tsengbe342052017-11-03 10:21:23 -07004274 "type" : "field",
4275 "value" : ["packet_out", "$valid$"]
Yi Tsengbe342052017-11-03 10:21:23 -07004276 }
4277 }
4278 },
4279 "true_next" : "tbl_act",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004280 "false_next" : "FabricIngress.filtering.ingress_port_vlan"
Yi Tsengbe342052017-11-03 10:21:23 -07004281 },
4282 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004283 "name" : "node_7",
Yi Tsengbe342052017-11-03 10:21:23 -07004284 "id" : 1,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004285 "expression" : {
4286 "type" : "expression",
4287 "value" : {
4288 "op" : "d2b",
4289 "left" : null,
4290 "right" : {
4291 "type" : "field",
4292 "value" : ["scalars", "filtering_tmp_0"]
4293 }
4294 }
4295 },
4296 "true_next" : "FabricIngress.filtering.fwd_classifier",
4297 "false_next" : "tbl_act_2"
4298 },
4299 {
4300 "name" : "node_10",
4301 "id" : 2,
Yi Tsengbe342052017-11-03 10:21:23 -07004302 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004303 "filename" : "include/control/forwarding.p4",
Charles Chan384aea22018-08-23 22:08:02 -07004304 "line" : 186,
Yi Tsengbe342052017-11-03 10:21:23 -07004305 "column" : 11,
4306 "source_fragment" : "fabric_metadata.fwd_type == FWD_BRIDGING"
4307 },
4308 "expression" : {
4309 "type" : "expression",
4310 "value" : {
4311 "op" : "==",
4312 "left" : {
4313 "type" : "field",
4314 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
4315 },
4316 "right" : {
4317 "type" : "hexstr",
4318 "value" : "0x00"
4319 }
4320 }
4321 },
Yi Tseng27b9bc02018-04-12 14:52:40 +08004322 "true_next" : "FabricIngress.forwarding.bridging",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004323 "false_next" : "node_12"
Yi Tsengbe342052017-11-03 10:21:23 -07004324 },
4325 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004326 "name" : "node_12",
4327 "id" : 3,
Yi Tsengbe342052017-11-03 10:21:23 -07004328 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004329 "filename" : "include/control/forwarding.p4",
Charles Chan384aea22018-08-23 22:08:02 -07004330 "line" : 187,
Yi Tsengbe342052017-11-03 10:21:23 -07004331 "column" : 17,
4332 "source_fragment" : "fabric_metadata.fwd_type == FWD_MPLS"
4333 },
4334 "expression" : {
4335 "type" : "expression",
4336 "value" : {
4337 "op" : "==",
4338 "left" : {
4339 "type" : "field",
4340 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
4341 },
4342 "right" : {
4343 "type" : "hexstr",
4344 "value" : "0x01"
4345 }
4346 }
4347 },
Yi Tseng27b9bc02018-04-12 14:52:40 +08004348 "true_next" : "FabricIngress.forwarding.mpls",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004349 "false_next" : "node_15"
Yi Tsengbe342052017-11-03 10:21:23 -07004350 },
4351 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004352 "name" : "node_15",
4353 "id" : 4,
Yi Tsengbe342052017-11-03 10:21:23 -07004354 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004355 "filename" : "include/control/forwarding.p4",
Charles Chan384aea22018-08-23 22:08:02 -07004356 "line" : 193,
Yi Tsengbe342052017-11-03 10:21:23 -07004357 "column" : 17,
4358 "source_fragment" : "fabric_metadata.fwd_type == FWD_IPV4_UNICAST"
4359 },
4360 "expression" : {
4361 "type" : "expression",
4362 "value" : {
4363 "op" : "==",
4364 "left" : {
4365 "type" : "field",
4366 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
4367 },
4368 "right" : {
4369 "type" : "hexstr",
4370 "value" : "0x02"
4371 }
4372 }
4373 },
Charles Chan384aea22018-08-23 22:08:02 -07004374 "true_next" : "FabricIngress.forwarding.routing_v4",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004375 "false_next" : "FabricIngress.forwarding.acl"
4376 },
4377 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004378 "name" : "node_23",
4379 "id" : 5,
Yi Tseng1d842672017-11-28 16:06:52 -08004380 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004381 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08004382 "line" : 219,
Carmelo Casconea5400af2018-07-17 22:11:54 +02004383 "column" : 12,
4384 "source_fragment" : "!simple.apply().hit"
4385 },
4386 "expression" : {
4387 "type" : "expression",
4388 "value" : {
4389 "op" : "not",
4390 "left" : null,
4391 "right" : {
4392 "type" : "expression",
4393 "value" : {
4394 "op" : "d2b",
4395 "left" : null,
4396 "right" : {
4397 "type" : "field",
4398 "value" : ["scalars", "next_tmp_4"]
4399 }
4400 }
4401 }
4402 }
4403 },
4404 "true_next" : "FabricIngress.next.hashed",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004405 "false_next" : "node_33"
Carmelo Casconea5400af2018-07-17 22:11:54 +02004406 },
4407 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004408 "name" : "node_27",
4409 "id" : 6,
Carmelo Casconea5400af2018-07-17 22:11:54 +02004410 "source_info" : {
4411 "filename" : "include/control/next.p4",
4412 "line" : 220,
Yi Tsengbd46d052018-01-22 17:18:16 -08004413 "column" : 16,
Carmelo Casconea5400af2018-07-17 22:11:54 +02004414 "source_fragment" : "!hashed.apply().hit"
4415 },
4416 "expression" : {
4417 "type" : "expression",
4418 "value" : {
4419 "op" : "not",
4420 "left" : null,
4421 "right" : {
4422 "type" : "expression",
4423 "value" : {
4424 "op" : "d2b",
4425 "left" : null,
4426 "right" : {
4427 "type" : "field",
4428 "value" : ["scalars", "next_tmp_3"]
4429 }
4430 }
4431 }
4432 }
4433 },
4434 "true_next" : "FabricIngress.next.multicast",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004435 "false_next" : "node_33"
Carmelo Casconea5400af2018-07-17 22:11:54 +02004436 },
4437 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004438 "name" : "node_31",
4439 "id" : 7,
Carmelo Casconea5400af2018-07-17 22:11:54 +02004440 "source_info" : {
4441 "filename" : "include/control/next.p4",
4442 "line" : 221,
4443 "column" : 20,
4444 "source_fragment" : "!multicast.apply().hit"
4445 },
4446 "expression" : {
4447 "type" : "expression",
4448 "value" : {
4449 "op" : "not",
4450 "left" : null,
4451 "right" : {
4452 "type" : "expression",
4453 "value" : {
4454 "op" : "d2b",
4455 "left" : null,
4456 "right" : {
4457 "type" : "field",
4458 "value" : ["scalars", "next_tmp_2"]
4459 }
4460 }
4461 }
4462 }
4463 },
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004464 "true_next" : "tbl_act_11",
4465 "false_next" : "node_33"
Carmelo Casconea5400af2018-07-17 22:11:54 +02004466 },
4467 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004468 "name" : "node_33",
4469 "id" : 8,
Carmelo Casconea5400af2018-07-17 22:11:54 +02004470 "expression" : {
4471 "type" : "expression",
4472 "value" : {
4473 "op" : "not",
4474 "left" : null,
4475 "right" : {
4476 "type" : "expression",
4477 "value" : {
4478 "op" : "d2b",
4479 "left" : null,
4480 "right" : {
4481 "type" : "field",
4482 "value" : ["scalars", "next_hasReturned_0"]
4483 }
4484 }
4485 }
4486 }
4487 },
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004488 "true_next" : "node_34",
4489 "false_next" : "node_37"
Carmelo Casconea5400af2018-07-17 22:11:54 +02004490 },
4491 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004492 "name" : "node_34",
4493 "id" : 9,
Carmelo Casconea5400af2018-07-17 22:11:54 +02004494 "source_info" : {
4495 "filename" : "include/control/next.p4",
4496 "line" : 228,
4497 "column" : 12,
Yi Tsengbd46d052018-01-22 17:18:16 -08004498 "source_fragment" : "!hdr.mpls.isValid()"
Yi Tseng1d842672017-11-28 16:06:52 -08004499 },
4500 "expression" : {
4501 "type" : "expression",
4502 "value" : {
Yi Tsengbd46d052018-01-22 17:18:16 -08004503 "op" : "not",
4504 "left" : null,
Yi Tseng1d842672017-11-28 16:06:52 -08004505 "right" : {
Yi Tsengbd46d052018-01-22 17:18:16 -08004506 "type" : "expression",
4507 "value" : {
4508 "op" : "d2b",
4509 "left" : null,
4510 "right" : {
4511 "type" : "field",
4512 "value" : ["mpls", "$valid$"]
4513 }
4514 }
Yi Tseng1d842672017-11-28 16:06:52 -08004515 }
4516 }
4517 },
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004518 "true_next" : "node_35",
4519 "false_next" : "node_37"
Yi Tseng1d842672017-11-28 16:06:52 -08004520 },
4521 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004522 "name" : "node_35",
4523 "id" : 10,
Yi Tseng1d842672017-11-28 16:06:52 -08004524 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004525 "filename" : "include/control/next.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004526 "line" : 229,
4527 "column" : 15,
Yi Tseng1d842672017-11-28 16:06:52 -08004528 "source_fragment" : "hdr.ipv4.isValid()"
4529 },
4530 "expression" : {
4531 "type" : "expression",
4532 "value" : {
Yi Tsengbd46d052018-01-22 17:18:16 -08004533 "op" : "d2b",
4534 "left" : null,
4535 "right" : {
Yi Tseng1d842672017-11-28 16:06:52 -08004536 "type" : "field",
4537 "value" : ["ipv4", "$valid$"]
Yi Tseng1d842672017-11-28 16:06:52 -08004538 }
4539 }
4540 },
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004541 "true_next" : "tbl_act_12",
4542 "false_next" : "node_37"
Yi Tseng27b9bc02018-04-12 14:52:40 +08004543 },
4544 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004545 "name" : "node_37",
4546 "id" : 11,
Yi Tseng27b9bc02018-04-12 14:52:40 +08004547 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004548 "filename" : "include/control/port_counter.p4",
Yi Tsengbe342052017-11-03 10:21:23 -07004549 "line" : 27,
4550 "column" : 12,
4551 "source_fragment" : "standard_metadata.egress_spec < 511"
4552 },
4553 "expression" : {
4554 "type" : "expression",
4555 "value" : {
4556 "op" : "<",
4557 "left" : {
4558 "type" : "field",
4559 "value" : ["standard_metadata", "egress_spec"]
4560 },
4561 "right" : {
4562 "type" : "hexstr",
4563 "value" : "0x01ff"
4564 }
4565 }
4566 },
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004567 "true_next" : "tbl_act_13",
4568 "false_next" : "node_39"
Yi Tsengbe342052017-11-03 10:21:23 -07004569 },
4570 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004571 "name" : "node_39",
4572 "id" : 12,
Yi Tsengbe342052017-11-03 10:21:23 -07004573 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004574 "filename" : "include/control/port_counter.p4",
Yi Tsengbe342052017-11-03 10:21:23 -07004575 "line" : 30,
4576 "column" : 12,
4577 "source_fragment" : "standard_metadata.ingress_port < 511"
4578 },
4579 "expression" : {
4580 "type" : "expression",
4581 "value" : {
4582 "op" : "<",
4583 "left" : {
4584 "type" : "field",
4585 "value" : ["standard_metadata", "ingress_port"]
4586 },
4587 "right" : {
4588 "type" : "hexstr",
4589 "value" : "0x01ff"
4590 }
4591 }
4592 },
Yi Tseng3a5731e2018-01-22 11:38:58 -08004593 "false_next" : null,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004594 "true_next" : "tbl_act_14"
Yi Tseng3a5731e2018-01-22 11:38:58 -08004595 }
4596 ]
4597 },
4598 {
4599 "name" : "egress",
4600 "id" : 1,
4601 "source_info" : {
4602 "filename" : "fabric.p4",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004603 "line" : 80,
Yi Tseng3a5731e2018-01-22 11:38:58 -08004604 "column" : 8,
4605 "source_fragment" : "FabricEgress"
4606 },
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004607 "init_table" : "node_43",
Yi Tseng3a5731e2018-01-22 11:38:58 -08004608 "tables" : [
4609 {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004610 "name" : "tbl_pkt_io_egress_pop_vlan",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004611 "id" : 26,
Carmelo Casconea5400af2018-07-17 22:11:54 +02004612 "key" : [],
4613 "match_type" : "exact",
4614 "type" : "simple",
4615 "max_size" : 1024,
4616 "with_counters" : false,
4617 "support_timeout" : false,
4618 "direct_meters" : null,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004619 "action_ids" : [50],
4620 "actions" : ["FabricEgress.pkt_io_egress.pop_vlan"],
4621 "base_default_next" : "node_47",
4622 "next_tables" : {
4623 "FabricEgress.pkt_io_egress.pop_vlan" : "node_47"
4624 },
4625 "default_entry" : {
4626 "action_id" : 50,
4627 "action_const" : true,
4628 "action_data" : [],
4629 "action_entry_const" : true
4630 }
4631 },
4632 {
4633 "name" : "tbl_drop_now",
4634 "id" : 27,
4635 "key" : [],
4636 "match_type" : "exact",
4637 "type" : "simple",
4638 "max_size" : 1024,
4639 "with_counters" : false,
4640 "support_timeout" : false,
4641 "direct_meters" : null,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004642 "action_ids" : [48],
Carmelo Casconea5400af2018-07-17 22:11:54 +02004643 "actions" : ["drop_now"],
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004644 "base_default_next" : "tbl_act_15",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004645 "next_tables" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004646 "drop_now" : "tbl_act_15"
Carmelo Casconea5400af2018-07-17 22:11:54 +02004647 },
4648 "default_entry" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004649 "action_id" : 48,
Carmelo Casconea5400af2018-07-17 22:11:54 +02004650 "action_const" : true,
4651 "action_data" : [],
4652 "action_entry_const" : true
4653 }
4654 },
4655 {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004656 "name" : "tbl_act_15",
4657 "id" : 28,
4658 "key" : [],
4659 "match_type" : "exact",
4660 "type" : "simple",
4661 "max_size" : 1024,
4662 "with_counters" : false,
4663 "support_timeout" : false,
4664 "direct_meters" : null,
4665 "action_ids" : [52],
4666 "actions" : ["act_15"],
4667 "base_default_next" : null,
4668 "next_tables" : {
4669 "act_15" : null
4670 },
4671 "default_entry" : {
4672 "action_id" : 52,
4673 "action_const" : true,
4674 "action_data" : [],
4675 "action_entry_const" : true
4676 }
4677 },
4678 {
4679 "name" : "tbl_drop_now_0",
4680 "id" : 29,
4681 "key" : [],
4682 "match_type" : "exact",
4683 "type" : "simple",
4684 "max_size" : 1024,
4685 "with_counters" : false,
4686 "support_timeout" : false,
4687 "direct_meters" : null,
4688 "action_ids" : [49],
4689 "actions" : ["drop_now"],
4690 "base_default_next" : "FabricEgress.egress_next.egress_vlan",
4691 "next_tables" : {
4692 "drop_now" : "FabricEgress.egress_next.egress_vlan"
4693 },
4694 "default_entry" : {
4695 "action_id" : 49,
4696 "action_const" : true,
4697 "action_data" : [],
4698 "action_entry_const" : true
4699 }
4700 },
4701 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004702 "name" : "FabricEgress.egress_next.egress_vlan",
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004703 "id" : 30,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004704 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004705 "filename" : "include/control/next.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004706 "line" : 258,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004707 "column" : 10,
4708 "source_fragment" : "egress_vlan"
4709 },
4710 "key" : [
4711 {
4712 "match_type" : "exact",
4713 "name" : "hdr.vlan_tag.vlan_id",
4714 "target" : ["vlan_tag", "vlan_id"],
4715 "mask" : null
4716 },
4717 {
4718 "match_type" : "exact",
4719 "name" : "standard_metadata.egress_port",
4720 "target" : ["standard_metadata", "egress_port"],
4721 "mask" : null
4722 }
4723 ],
4724 "match_type" : "exact",
4725 "type" : "simple",
4726 "max_size" : 1024,
Yi Tseng47eac892018-07-11 02:17:04 +08004727 "with_counters" : true,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004728 "support_timeout" : false,
4729 "direct_meters" : null,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004730 "action_ids" : [51, 47],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004731 "actions" : ["FabricEgress.egress_next.pop_vlan", "nop"],
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004732 "base_default_next" : null,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004733 "next_tables" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004734 "FabricEgress.egress_next.pop_vlan" : null,
4735 "nop" : null
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004736 },
4737 "default_entry" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004738 "action_id" : 47,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004739 "action_const" : false,
4740 "action_data" : [],
4741 "action_entry_const" : false
4742 }
Yi Tseng3a5731e2018-01-22 11:38:58 -08004743 }
4744 ],
4745 "action_profiles" : [],
4746 "conditionals" : [
Yi Tseng1d842672017-11-28 16:06:52 -08004747 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004748 "name" : "node_43",
4749 "id" : 13,
Carmelo Casconea5400af2018-07-17 22:11:54 +02004750 "source_info" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004751 "filename" : "include/control/packetio.p4",
4752 "line" : 43,
Carmelo Casconea5400af2018-07-17 22:11:54 +02004753 "column" : 12,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004754 "source_fragment" : "fabric_metadata.is_controller_packet_out == true"
Carmelo Casconea5400af2018-07-17 22:11:54 +02004755 },
4756 "expression" : {
4757 "type" : "expression",
4758 "value" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004759 "op" : "==",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004760 "left" : {
4761 "type" : "expression",
4762 "value" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004763 "op" : "d2b",
4764 "left" : null,
Carmelo Casconea5400af2018-07-17 22:11:54 +02004765 "right" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004766 "type" : "field",
4767 "value" : ["scalars", "fabric_metadata_t.is_controller_packet_out"]
Carmelo Casconea5400af2018-07-17 22:11:54 +02004768 }
4769 }
4770 },
4771 "right" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004772 "type" : "bool",
4773 "value" : true
Carmelo Casconea5400af2018-07-17 22:11:54 +02004774 }
4775 }
4776 },
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004777 "true_next" : null,
4778 "false_next" : "node_44"
Carmelo Casconea5400af2018-07-17 22:11:54 +02004779 },
4780 {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004781 "name" : "node_44",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004782 "id" : 14,
Yi Tsengbe342052017-11-03 10:21:23 -07004783 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004784 "filename" : "include/control/packetio.p4",
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004785 "line" : 47,
Yi Tsengbe342052017-11-03 10:21:23 -07004786 "column" : 12,
Carmelo Casconeb531b682018-01-30 17:55:56 -08004787 "source_fragment" : "standard_metadata.egress_port == 255"
Yi Tsengbe342052017-11-03 10:21:23 -07004788 },
4789 "expression" : {
4790 "type" : "expression",
4791 "value" : {
4792 "op" : "==",
4793 "left" : {
4794 "type" : "field",
4795 "value" : ["standard_metadata", "egress_port"]
4796 },
4797 "right" : {
4798 "type" : "hexstr",
4799 "value" : "0x00ff"
4800 }
4801 }
4802 },
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004803 "true_next" : "node_45",
4804 "false_next" : "node_50"
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004805 },
4806 {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004807 "name" : "node_45",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004808 "id" : 15,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004809 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004810 "filename" : "include/control/packetio.p4",
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004811 "line" : 48,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004812 "column" : 16,
Carmelo Cascone228092b2018-06-15 20:41:10 +02004813 "source_fragment" : "hdr.vlan_tag.isValid() && fabric_metadata.pop_vlan_when_packet_in == true"
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004814 },
4815 "expression" : {
4816 "type" : "expression",
4817 "value" : {
4818 "op" : "and",
4819 "left" : {
4820 "type" : "expression",
4821 "value" : {
4822 "op" : "d2b",
4823 "left" : null,
4824 "right" : {
4825 "type" : "field",
4826 "value" : ["vlan_tag", "$valid$"]
4827 }
4828 }
4829 },
4830 "right" : {
4831 "type" : "expression",
4832 "value" : {
Carmelo Cascone228092b2018-06-15 20:41:10 +02004833 "op" : "==",
4834 "left" : {
4835 "type" : "expression",
4836 "value" : {
4837 "op" : "d2b",
4838 "left" : null,
4839 "right" : {
4840 "type" : "field",
4841 "value" : ["scalars", "fabric_metadata_t.pop_vlan_when_packet_in"]
4842 }
4843 }
4844 },
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004845 "right" : {
Carmelo Cascone228092b2018-06-15 20:41:10 +02004846 "type" : "bool",
4847 "value" : true
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004848 }
4849 }
4850 }
4851 }
4852 },
4853 "true_next" : "tbl_pkt_io_egress_pop_vlan",
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004854 "false_next" : "node_47"
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02004855 },
4856 {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004857 "name" : "node_47",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004858 "id" : 16,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02004859 "source_info" : {
4860 "filename" : "include/control/packetio.p4",
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004861 "line" : 51,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02004862 "column" : 16,
4863 "source_fragment" : "fabric_metadata.is_multicast == true && ..."
4864 },
4865 "expression" : {
4866 "type" : "expression",
4867 "value" : {
4868 "op" : "and",
4869 "left" : {
4870 "type" : "expression",
4871 "value" : {
4872 "op" : "==",
4873 "left" : {
4874 "type" : "expression",
4875 "value" : {
4876 "op" : "d2b",
4877 "left" : null,
4878 "right" : {
4879 "type" : "field",
4880 "value" : ["scalars", "fabric_metadata_t.is_multicast"]
4881 }
4882 }
4883 },
4884 "right" : {
4885 "type" : "bool",
4886 "value" : true
4887 }
4888 }
4889 },
4890 "right" : {
4891 "type" : "expression",
4892 "value" : {
4893 "op" : "==",
4894 "left" : {
4895 "type" : "expression",
4896 "value" : {
4897 "op" : "d2b",
4898 "left" : null,
4899 "right" : {
4900 "type" : "field",
4901 "value" : ["scalars", "fabric_metadata_t.clone_to_cpu"]
4902 }
4903 }
4904 },
4905 "right" : {
4906 "type" : "bool",
4907 "value" : false
4908 }
4909 }
4910 }
4911 }
4912 },
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004913 "true_next" : "tbl_drop_now",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004914 "false_next" : "tbl_act_15"
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004915 },
4916 {
4917 "name" : "node_50",
4918 "id" : 17,
4919 "source_info" : {
4920 "filename" : "include/control/next.p4",
4921 "line" : 272,
4922 "column" : 12,
4923 "source_fragment" : "fabric_metadata.is_multicast == true ..."
4924 },
4925 "expression" : {
4926 "type" : "expression",
4927 "value" : {
4928 "op" : "and",
4929 "left" : {
4930 "type" : "expression",
4931 "value" : {
4932 "op" : "==",
4933 "left" : {
4934 "type" : "expression",
4935 "value" : {
4936 "op" : "d2b",
4937 "left" : null,
4938 "right" : {
4939 "type" : "field",
4940 "value" : ["scalars", "fabric_metadata_t.is_multicast"]
4941 }
4942 }
4943 },
4944 "right" : {
4945 "type" : "bool",
4946 "value" : true
4947 }
4948 }
4949 },
4950 "right" : {
4951 "type" : "expression",
4952 "value" : {
4953 "op" : "==",
4954 "left" : {
4955 "type" : "field",
4956 "value" : ["standard_metadata", "ingress_port"]
4957 },
4958 "right" : {
4959 "type" : "field",
4960 "value" : ["standard_metadata", "egress_port"]
4961 }
4962 }
4963 }
4964 }
4965 },
4966 "true_next" : "tbl_drop_now_0",
4967 "false_next" : "FabricEgress.egress_next.egress_vlan"
Yi Tsengbe342052017-11-03 10:21:23 -07004968 }
4969 ]
4970 }
4971 ],
4972 "checksums" : [
4973 {
4974 "name" : "cksum",
4975 "id" : 0,
4976 "target" : ["ipv4", "hdr_checksum"],
4977 "type" : "generic",
Yi Tsengbd46d052018-01-22 17:18:16 -08004978 "calculation" : "calc",
4979 "if_cond" : {
4980 "type" : "expression",
4981 "value" : {
4982 "op" : "d2b",
4983 "left" : null,
4984 "right" : {
4985 "type" : "field",
4986 "value" : ["ipv4", "$valid$"]
4987 }
4988 }
4989 }
Yi Tsengbe342052017-11-03 10:21:23 -07004990 },
4991 {
4992 "name" : "cksum_0",
4993 "id" : 1,
Yi Tsengbe342052017-11-03 10:21:23 -07004994 "target" : ["ipv4", "hdr_checksum"],
4995 "type" : "generic",
Yi Tsengbd46d052018-01-22 17:18:16 -08004996 "calculation" : "calc_0",
4997 "if_cond" : {
4998 "type" : "expression",
4999 "value" : {
5000 "op" : "d2b",
5001 "left" : null,
5002 "right" : {
5003 "type" : "field",
5004 "value" : ["ipv4", "$valid$"]
5005 }
5006 }
5007 }
Yi Tsengbe342052017-11-03 10:21:23 -07005008 }
5009 ],
5010 "force_arith" : [],
5011 "extern_instances" : [],
5012 "field_aliases" : [
5013 [
5014 "queueing_metadata.enq_timestamp",
5015 ["standard_metadata", "enq_timestamp"]
5016 ],
5017 [
5018 "queueing_metadata.enq_qdepth",
5019 ["standard_metadata", "enq_qdepth"]
5020 ],
5021 [
5022 "queueing_metadata.deq_timedelta",
5023 ["standard_metadata", "deq_timedelta"]
5024 ],
5025 [
5026 "queueing_metadata.deq_qdepth",
5027 ["standard_metadata", "deq_qdepth"]
5028 ],
5029 [
5030 "intrinsic_metadata.ingress_global_timestamp",
5031 ["standard_metadata", "ingress_global_timestamp"]
5032 ],
5033 [
Yi Tseng27b9bc02018-04-12 14:52:40 +08005034 "intrinsic_metadata.egress_global_timestamp",
5035 ["standard_metadata", "egress_global_timestamp"]
5036 ],
5037 [
Yi Tsengbe342052017-11-03 10:21:23 -07005038 "intrinsic_metadata.lf_field_list",
5039 ["standard_metadata", "lf_field_list"]
5040 ],
5041 [
5042 "intrinsic_metadata.mcast_grp",
5043 ["standard_metadata", "mcast_grp"]
5044 ],
5045 [
5046 "intrinsic_metadata.resubmit_flag",
5047 ["standard_metadata", "resubmit_flag"]
5048 ],
5049 [
5050 "intrinsic_metadata.egress_rid",
5051 ["standard_metadata", "egress_rid"]
Yi Tseng27b9bc02018-04-12 14:52:40 +08005052 ],
5053 [
5054 "intrinsic_metadata.recirculate_flag",
5055 ["standard_metadata", "recirculate_flag"]
Yi Tsengbe342052017-11-03 10:21:23 -07005056 ]
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005057 ],
5058 "program" : "fabric.p4",
5059 "__meta__" : {
5060 "version" : [2, 18],
5061 "compiler" : "https://github.com/p4lang/p4c"
5062 }
Yi Tsengbe342052017-11-03 10:21:23 -07005063}