blob: 0623d6cb2c4edcbaa233446bb0c08ed944ddbf1f [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 ],
Carmelo Cascone79a3a312018-08-16 17:14:43 -0700637 "transition_key" : [
638 {
639 "type" : "field",
640 "value" : ["udp", "dst_port"]
641 }
642 ]
Yi Tsengbe342052017-11-03 10:21:23 -0700643 },
644 {
645 "name" : "parse_icmp",
Carmelo Casconef645e842018-07-16 18:31:52 +0200646 "id" : 9,
Yi Tsengbe342052017-11-03 10:21:23 -0700647 "parser_ops" : [
648 {
649 "parameters" : [
650 {
651 "type" : "regular",
652 "value" : "icmp"
653 }
654 ],
655 "op" : "extract"
656 }
657 ],
658 "transitions" : [
659 {
660 "value" : "default",
661 "mask" : null,
662 "next_state" : null
663 }
664 ],
665 "transition_key" : []
666 }
667 ]
668 }
669 ],
Yi Tseng27b9bc02018-04-12 14:52:40 +0800670 "parse_vsets" : [],
Yi Tsengbe342052017-11-03 10:21:23 -0700671 "deparsers" : [
672 {
673 "name" : "deparser",
674 "id" : 0,
675 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +0200676 "filename" : "include/parser.p4",
Carmelo Cascone79a3a312018-08-16 17:14:43 -0700677 "line" : 228,
Yi Tsengbe342052017-11-03 10:21:23 -0700678 "column" : 8,
679 "source_fragment" : "FabricDeparser"
680 },
Carmelo Casconef645e842018-07-16 18:31:52 +0200681 "order" : ["packet_in", "ethernet", "vlan_tag", "mpls", "arp", "ipv4", "tcp", "udp", "icmp"]
Yi Tsengbe342052017-11-03 10:21:23 -0700682 }
683 ],
684 "meter_arrays" : [],
685 "counter_arrays" : [
686 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800687 "name" : "FabricIngress.filtering.ingress_port_vlan_counter",
Yi Tseng1d842672017-11-28 16:06:52 -0800688 "id" : 0,
Yi Tseng3a5731e2018-01-22 11:38:58 -0800689 "is_direct" : true,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800690 "binding" : "FabricIngress.filtering.ingress_port_vlan"
Yi Tseng3a5731e2018-01-22 11:38:58 -0800691 },
692 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800693 "name" : "FabricIngress.filtering.fwd_classifier_counter",
Yi Tseng3a5731e2018-01-22 11:38:58 -0800694 "id" : 1,
695 "is_direct" : true,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800696 "binding" : "FabricIngress.filtering.fwd_classifier"
Yi Tseng3a5731e2018-01-22 11:38:58 -0800697 },
698 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800699 "name" : "FabricIngress.forwarding.bridging_counter",
Yi Tseng3a5731e2018-01-22 11:38:58 -0800700 "id" : 2,
701 "is_direct" : true,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800702 "binding" : "FabricIngress.forwarding.bridging"
Yi Tseng3a5731e2018-01-22 11:38:58 -0800703 },
704 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800705 "name" : "FabricIngress.forwarding.mpls_counter",
Yi Tseng3a5731e2018-01-22 11:38:58 -0800706 "id" : 3,
707 "is_direct" : true,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800708 "binding" : "FabricIngress.forwarding.mpls"
Yi Tseng3a5731e2018-01-22 11:38:58 -0800709 },
710 {
Charles Chan384aea22018-08-23 22:08:02 -0700711 "name" : "FabricIngress.forwarding.routing_v4_counter",
Yi Tseng3a5731e2018-01-22 11:38:58 -0800712 "id" : 4,
713 "is_direct" : true,
Charles Chan384aea22018-08-23 22:08:02 -0700714 "binding" : "FabricIngress.forwarding.routing_v4"
Yi Tseng3a5731e2018-01-22 11:38:58 -0800715 },
716 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800717 "name" : "FabricIngress.forwarding.acl_counter",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -0800718 "id" : 5,
Yi Tseng3a5731e2018-01-22 11:38:58 -0800719 "is_direct" : true,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800720 "binding" : "FabricIngress.forwarding.acl"
Yi Tseng3a5731e2018-01-22 11:38:58 -0800721 },
722 {
Yi Tseng47eac892018-07-11 02:17:04 +0800723 "name" : "FabricIngress.next.vlan_meta_counter",
Carmelo Casconef645e842018-07-16 18:31:52 +0200724 "id" : 6,
Yi Tseng47eac892018-07-11 02:17:04 +0800725 "is_direct" : true,
Yi Tseng20f9e7b2018-05-24 23:27:39 +0800726 "binding" : "FabricIngress.next.vlan_meta"
727 },
728 {
729 "name" : "FabricIngress.next.simple_counter",
Carmelo Casconef645e842018-07-16 18:31:52 +0200730 "id" : 7,
Yi Tseng20f9e7b2018-05-24 23:27:39 +0800731 "is_direct" : true,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800732 "binding" : "FabricIngress.next.simple"
733 },
734 {
735 "name" : "FabricIngress.next.hashed_counter",
Carmelo Casconef645e842018-07-16 18:31:52 +0200736 "id" : 8,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800737 "is_direct" : true,
738 "binding" : "FabricIngress.next.hashed"
739 },
740 {
Esin Karaman971fb7f2017-12-28 13:44:52 +0000741 "name" : "FabricIngress.next.multicast_counter",
Carmelo Casconef645e842018-07-16 18:31:52 +0200742 "id" : 9,
Esin Karaman971fb7f2017-12-28 13:44:52 +0000743 "is_direct" : true,
744 "binding" : "FabricIngress.next.multicast"
745 },
746 {
747 "name" : "FabricIngress.port_counters_control.egress_port_counter",
Carmelo Casconef645e842018-07-16 18:31:52 +0200748 "id" : 10,
Yi Tsengbe342052017-11-03 10:21:23 -0700749 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +0200750 "filename" : "include/control/port_counter.p4",
Yi Tsengbe342052017-11-03 10:21:23 -0700751 "line" : 23,
Yi Tseng3d3956d2018-01-31 17:28:05 -0800752 "column" : 48,
Yi Tsengbe342052017-11-03 10:21:23 -0700753 "source_fragment" : "egress_port_counter"
754 },
755 "size" : 511,
756 "is_direct" : false
757 },
758 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800759 "name" : "FabricIngress.port_counters_control.ingress_port_counter",
Carmelo Casconef645e842018-07-16 18:31:52 +0200760 "id" : 11,
Yi Tsengbe342052017-11-03 10:21:23 -0700761 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +0200762 "filename" : "include/control/port_counter.p4",
Yi Tsengbe342052017-11-03 10:21:23 -0700763 "line" : 24,
Yi Tseng3d3956d2018-01-31 17:28:05 -0800764 "column" : 48,
Yi Tsengbe342052017-11-03 10:21:23 -0700765 "source_fragment" : "ingress_port_counter"
766 },
767 "size" : 511,
768 "is_direct" : false
Yi Tseng47eac892018-07-11 02:17:04 +0800769 },
770 {
771 "name" : "FabricEgress.egress_next.egress_vlan_counter",
Carmelo Casconef645e842018-07-16 18:31:52 +0200772 "id" : 12,
Yi Tseng47eac892018-07-11 02:17:04 +0800773 "is_direct" : true,
774 "binding" : "FabricEgress.egress_next.egress_vlan"
Yi Tsengbe342052017-11-03 10:21:23 -0700775 }
776 ],
777 "register_arrays" : [],
778 "calculations" : [
779 {
780 "name" : "calc",
781 "id" : 0,
782 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +0200783 "filename" : "include/checksum.p4",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200784 "line" : 28,
Yi Tsengbe342052017-11-03 10:21:23 -0700785 "column" : 8,
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200786 "source_fragment" : "update_checksum(hdr.ipv4.isValid(), ..."
Yi Tsengbe342052017-11-03 10:21:23 -0700787 },
788 "algo" : "csum16",
789 "input" : [
790 {
791 "type" : "field",
792 "value" : ["ipv4", "version"]
793 },
794 {
795 "type" : "field",
796 "value" : ["ipv4", "ihl"]
797 },
798 {
799 "type" : "field",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +0900800 "value" : ["ipv4", "dscp"]
801 },
802 {
803 "type" : "field",
804 "value" : ["ipv4", "ecn"]
Yi Tsengbe342052017-11-03 10:21:23 -0700805 },
806 {
807 "type" : "field",
808 "value" : ["ipv4", "total_len"]
809 },
810 {
811 "type" : "field",
812 "value" : ["ipv4", "identification"]
813 },
814 {
815 "type" : "field",
816 "value" : ["ipv4", "flags"]
817 },
818 {
819 "type" : "field",
820 "value" : ["ipv4", "frag_offset"]
821 },
822 {
823 "type" : "field",
824 "value" : ["ipv4", "ttl"]
825 },
826 {
827 "type" : "field",
828 "value" : ["ipv4", "protocol"]
829 },
830 {
831 "type" : "field",
832 "value" : ["ipv4", "src_addr"]
833 },
834 {
835 "type" : "field",
836 "value" : ["ipv4", "dst_addr"]
837 }
838 ]
839 },
840 {
841 "name" : "calc_0",
842 "id" : 1,
843 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +0200844 "filename" : "include/checksum.p4",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +0900845 "line" : 57,
Yi Tsengbe342052017-11-03 10:21:23 -0700846 "column" : 8,
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200847 "source_fragment" : "verify_checksum(hdr.ipv4.isValid(), ..."
Yi Tsengbe342052017-11-03 10:21:23 -0700848 },
849 "algo" : "csum16",
850 "input" : [
851 {
852 "type" : "field",
853 "value" : ["ipv4", "version"]
854 },
855 {
856 "type" : "field",
857 "value" : ["ipv4", "ihl"]
858 },
859 {
860 "type" : "field",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +0900861 "value" : ["ipv4", "dscp"]
862 },
863 {
864 "type" : "field",
865 "value" : ["ipv4", "ecn"]
Yi Tsengbe342052017-11-03 10:21:23 -0700866 },
867 {
868 "type" : "field",
869 "value" : ["ipv4", "total_len"]
870 },
871 {
872 "type" : "field",
873 "value" : ["ipv4", "identification"]
874 },
875 {
876 "type" : "field",
877 "value" : ["ipv4", "flags"]
878 },
879 {
880 "type" : "field",
881 "value" : ["ipv4", "frag_offset"]
882 },
883 {
884 "type" : "field",
885 "value" : ["ipv4", "ttl"]
886 },
887 {
888 "type" : "field",
889 "value" : ["ipv4", "protocol"]
890 },
891 {
892 "type" : "field",
893 "value" : ["ipv4", "src_addr"]
894 },
895 {
896 "type" : "field",
897 "value" : ["ipv4", "dst_addr"]
898 }
899 ]
Yi Tsengbe342052017-11-03 10:21:23 -0700900 }
901 ],
902 "learn_lists" : [],
903 "actions" : [
904 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -0700905 "name" : "NoAction",
Yi Tsengbe342052017-11-03 10:21:23 -0700906 "id" : 0,
907 "runtime_data" : [],
908 "primitives" : []
909 },
910 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -0700911 "name" : "NoAction",
Yi Tsengbe342052017-11-03 10:21:23 -0700912 "id" : 1,
913 "runtime_data" : [],
914 "primitives" : []
915 },
916 {
Charles Chancf696e52018-08-16 16:25:13 -0700917 "name" : "NoAction",
Yi Tsengbe342052017-11-03 10:21:23 -0700918 "id" : 2,
919 "runtime_data" : [],
Yi Tseng1d842672017-11-28 16:06:52 -0800920 "primitives" : []
Yi Tsengbe342052017-11-03 10:21:23 -0700921 },
922 {
Yi Tseng1d842672017-11-28 16:06:52 -0800923 "name" : "NoAction",
Yi Tsengbe342052017-11-03 10:21:23 -0700924 "id" : 3,
925 "runtime_data" : [],
Yi Tseng1d842672017-11-28 16:06:52 -0800926 "primitives" : []
Yi Tsengbe342052017-11-03 10:21:23 -0700927 },
928 {
929 "name" : "NoAction",
930 "id" : 4,
931 "runtime_data" : [],
932 "primitives" : []
933 },
934 {
935 "name" : "NoAction",
936 "id" : 5,
937 "runtime_data" : [],
938 "primitives" : []
939 },
940 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -0700941 "name" : "nop",
Yi Tsengbe342052017-11-03 10:21:23 -0700942 "id" : 6,
943 "runtime_data" : [],
944 "primitives" : []
945 },
946 {
Yi Tseng47eac892018-07-11 02:17:04 +0800947 "name" : "FabricIngress.filtering.drop",
Carmelo Cascone8a715f82018-08-20 23:16:27 -0700948 "id" : 7,
Yi Tseng47eac892018-07-11 02:17:04 +0800949 "runtime_data" : [],
Yi Tseng1d842672017-11-28 16:06:52 -0800950 "primitives" : [
951 {
952 "op" : "drop",
953 "parameters" : [],
954 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +0200955 "filename" : "include/control/filtering.p4",
Yi Tseng47eac892018-07-11 02:17:04 +0800956 "line" : 37,
Yi Tseng1d842672017-11-28 16:06:52 -0800957 "column" : 8,
958 "source_fragment" : "mark_to_drop()"
959 }
960 }
961 ]
Yi Tsengbe342052017-11-03 10:21:23 -0700962 },
963 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800964 "name" : "FabricIngress.filtering.set_vlan",
Carmelo Cascone8a715f82018-08-20 23:16:27 -0700965 "id" : 8,
Yi Tsengbe342052017-11-03 10:21:23 -0700966 "runtime_data" : [
967 {
968 "name" : "new_vlan_id",
969 "bitwidth" : 12
970 }
971 ],
972 "primitives" : [
973 {
974 "op" : "assign",
975 "parameters" : [
976 {
977 "type" : "field",
978 "value" : ["vlan_tag", "vlan_id"]
979 },
980 {
981 "type" : "runtime_data",
982 "value" : 0
983 }
984 ],
985 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +0200986 "filename" : "include/control/filtering.p4",
Yi Tseng47eac892018-07-11 02:17:04 +0800987 "line" : 42,
Yi Tsengbe342052017-11-03 10:21:23 -0700988 "column" : 8,
989 "source_fragment" : "hdr.vlan_tag.vlan_id = new_vlan_id"
990 }
991 }
992 ]
993 },
994 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800995 "name" : "FabricIngress.filtering.push_internal_vlan",
Carmelo Cascone8a715f82018-08-20 23:16:27 -0700996 "id" : 9,
Yi Tsengbe342052017-11-03 10:21:23 -0700997 "runtime_data" : [
998 {
999 "name" : "new_vlan_id",
1000 "bitwidth" : 12
1001 }
1002 ],
1003 "primitives" : [
1004 {
1005 "op" : "add_header",
1006 "parameters" : [
1007 {
1008 "type" : "header",
1009 "value" : "vlan_tag"
1010 }
1011 ],
1012 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001013 "filename" : "include/control/filtering.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001014 "line" : 49,
Yi Tsengbe342052017-11-03 10:21:23 -07001015 "column" : 8,
1016 "source_fragment" : "hdr.vlan_tag.setValid()"
1017 }
1018 },
1019 {
1020 "op" : "assign",
1021 "parameters" : [
1022 {
1023 "type" : "field",
1024 "value" : ["vlan_tag", "cfi"]
1025 },
1026 {
1027 "type" : "hexstr",
1028 "value" : "0x00"
1029 }
1030 ],
1031 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001032 "filename" : "include/control/filtering.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001033 "line" : 50,
Yi Tsengbe342052017-11-03 10:21:23 -07001034 "column" : 8,
1035 "source_fragment" : "hdr.vlan_tag.cfi = 0"
1036 }
1037 },
1038 {
1039 "op" : "assign",
1040 "parameters" : [
1041 {
1042 "type" : "field",
1043 "value" : ["vlan_tag", "pri"]
1044 },
1045 {
1046 "type" : "hexstr",
1047 "value" : "0x00"
1048 }
1049 ],
1050 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001051 "filename" : "include/control/filtering.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001052 "line" : 51,
Yi Tsengbe342052017-11-03 10:21:23 -07001053 "column" : 8,
1054 "source_fragment" : "hdr.vlan_tag.pri = 0"
1055 }
1056 },
1057 {
1058 "op" : "assign",
1059 "parameters" : [
1060 {
1061 "type" : "field",
1062 "value" : ["vlan_tag", "ether_type"]
1063 },
1064 {
Yi Tseng1d842672017-11-28 16:06:52 -08001065 "type" : "field",
1066 "value" : ["ethernet", "ether_type"]
1067 }
1068 ],
1069 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001070 "filename" : "include/control/filtering.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001071 "line" : 52,
Yi Tseng1d842672017-11-28 16:06:52 -08001072 "column" : 8,
1073 "source_fragment" : "hdr.vlan_tag.ether_type = hdr.ethernet.ether_type"
1074 }
1075 },
1076 {
1077 "op" : "assign",
1078 "parameters" : [
1079 {
1080 "type" : "field",
1081 "value" : ["ethernet", "ether_type"]
1082 },
1083 {
Yi Tsengbe342052017-11-03 10:21:23 -07001084 "type" : "hexstr",
1085 "value" : "0x8100"
1086 }
1087 ],
1088 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001089 "filename" : "include/control/../define.p4",
Carmelo Cascone79a3a312018-08-16 17:14:43 -07001090 "line" : 91,
Yi Tsengbe342052017-11-03 10:21:23 -07001091 "column" : 31,
1092 "source_fragment" : "0x8100; ..."
1093 }
1094 },
1095 {
1096 "op" : "assign",
1097 "parameters" : [
1098 {
1099 "type" : "field",
1100 "value" : ["vlan_tag", "vlan_id"]
1101 },
1102 {
1103 "type" : "runtime_data",
1104 "value" : 0
1105 }
1106 ],
1107 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001108 "filename" : "include/control/filtering.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001109 "line" : 54,
Yi Tsengbe342052017-11-03 10:21:23 -07001110 "column" : 8,
Yi Tseng47eac892018-07-11 02:17:04 +08001111 "source_fragment" : "hdr.vlan_tag.vlan_id = new_vlan_id"
Yi Tsengbe342052017-11-03 10:21:23 -07001112 }
1113 },
1114 {
1115 "op" : "assign",
1116 "parameters" : [
1117 {
1118 "type" : "field",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001119 "value" : ["scalars", "fabric_metadata_t.pop_vlan_when_packet_in"]
Yi Tsengbe342052017-11-03 10:21:23 -07001120 },
1121 {
1122 "type" : "expression",
1123 "value" : {
1124 "type" : "expression",
1125 "value" : {
1126 "op" : "b2d",
1127 "left" : null,
1128 "right" : {
1129 "type" : "bool",
1130 "value" : true
1131 }
1132 }
1133 }
1134 }
1135 ],
1136 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001137 "filename" : "include/control/filtering.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001138 "line" : 57,
Yi Tsengbe342052017-11-03 10:21:23 -07001139 "column" : 8,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001140 "source_fragment" : "fabric_metadata.pop_vlan_when_packet_in = true"
Yi Tsengbe342052017-11-03 10:21:23 -07001141 }
1142 }
1143 ]
1144 },
1145 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07001146 "name" : "FabricIngress.filtering.nop_ingress_port_vlan",
1147 "id" : 10,
1148 "runtime_data" : [],
1149 "primitives" : []
1150 },
1151 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001152 "name" : "FabricIngress.filtering.set_forwarding_type",
Charles Chancf696e52018-08-16 16:25:13 -07001153 "id" : 11,
Yi Tsengbe342052017-11-03 10:21:23 -07001154 "runtime_data" : [
1155 {
1156 "name" : "fwd_type",
1157 "bitwidth" : 3
1158 }
1159 ],
1160 "primitives" : [
1161 {
1162 "op" : "assign",
1163 "parameters" : [
1164 {
1165 "type" : "field",
1166 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
1167 },
1168 {
1169 "type" : "runtime_data",
1170 "value" : 0
1171 }
1172 ],
1173 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001174 "filename" : "include/control/filtering.p4",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07001175 "line" : 99,
Yi Tsengbe342052017-11-03 10:21:23 -07001176 "column" : 8,
1177 "source_fragment" : "fabric_metadata.fwd_type = fwd_type"
1178 }
1179 }
1180 ]
1181 },
1182 {
Yi Tseng47eac892018-07-11 02:17:04 +08001183 "name" : "FabricIngress.forwarding.set_next_id_bridging",
Charles Chancf696e52018-08-16 16:25:13 -07001184 "id" : 12,
Carmelo Casconef645e842018-07-16 18:31:52 +02001185 "runtime_data" : [
1186 {
1187 "name" : "next_id",
1188 "bitwidth" : 32
1189 }
1190 ],
1191 "primitives" : [
1192 {
1193 "op" : "assign",
1194 "parameters" : [
1195 {
1196 "type" : "field",
1197 "value" : ["scalars", "fabric_metadata_t.next_id"]
1198 },
1199 {
1200 "type" : "runtime_data",
1201 "value" : 0
1202 }
1203 ],
1204 "source_info" : {
1205 "filename" : "include/control/forwarding.p4",
1206 "line" : 37,
1207 "column" : 8,
1208 "source_fragment" : "fabric_metadata.next_id = next_id"
1209 }
1210 }
1211 ]
1212 },
1213 {
1214 "name" : "FabricIngress.forwarding.pop_mpls_and_next",
Charles Chancf696e52018-08-16 16:25:13 -07001215 "id" : 13,
Carmelo Casconef645e842018-07-16 18:31:52 +02001216 "runtime_data" : [
1217 {
1218 "name" : "next_id",
1219 "bitwidth" : 32
1220 }
1221 ],
1222 "primitives" : [
1223 {
1224 "op" : "remove_header",
1225 "parameters" : [
1226 {
1227 "type" : "header",
1228 "value" : "mpls"
1229 }
1230 ],
1231 "source_info" : {
1232 "filename" : "include/control/forwarding.p4",
1233 "line" : 60,
1234 "column" : 8,
1235 "source_fragment" : "hdr.mpls.setInvalid()"
1236 }
1237 },
1238 {
1239 "op" : "assign",
1240 "parameters" : [
1241 {
1242 "type" : "field",
1243 "value" : ["scalars", "fabric_metadata_t.next_id"]
1244 },
1245 {
1246 "type" : "runtime_data",
1247 "value" : 0
1248 }
1249 ],
1250 "source_info" : {
1251 "filename" : "include/control/forwarding.p4",
1252 "line" : 61,
1253 "column" : 8,
1254 "source_fragment" : "fabric_metadata.next_id = next_id"
1255 }
1256 }
1257 ]
1258 },
1259 {
Charles Chan384aea22018-08-23 22:08:02 -07001260 "name" : "FabricIngress.forwarding.set_next_id_routing_v4",
Charles Chancf696e52018-08-16 16:25:13 -07001261 "id" : 14,
Carmelo Casconef645e842018-07-16 18:31:52 +02001262 "runtime_data" : [
1263 {
1264 "name" : "next_id",
1265 "bitwidth" : 32
1266 }
1267 ],
1268 "primitives" : [
1269 {
1270 "op" : "assign",
1271 "parameters" : [
1272 {
1273 "type" : "field",
1274 "value" : ["scalars", "fabric_metadata_t.next_id"]
1275 },
1276 {
1277 "type" : "runtime_data",
1278 "value" : 0
1279 }
1280 ],
1281 "source_info" : {
1282 "filename" : "include/control/forwarding.p4",
1283 "line" : 83,
1284 "column" : 8,
1285 "source_fragment" : "fabric_metadata.next_id = next_id"
1286 }
1287 }
1288 ]
1289 },
1290 {
Charles Chancd03f072018-08-31 17:46:37 -07001291 "name" : "FabricIngress.forwarding.nop_routing_v4",
Charles Chancf696e52018-08-16 16:25:13 -07001292 "id" : 15,
Charles Chancd03f072018-08-31 17:46:37 -07001293 "runtime_data" : [],
1294 "primitives" : []
1295 },
1296 {
1297 "name" : "FabricIngress.forwarding.set_next_id_acl",
1298 "id" : 16,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001299 "runtime_data" : [
1300 {
1301 "name" : "next_id",
1302 "bitwidth" : 32
1303 }
1304 ],
1305 "primitives" : [
1306 {
Esin Karaman971fb7f2017-12-28 13:44:52 +00001307 "op" : "assign",
1308 "parameters" : [
1309 {
1310 "type" : "field",
1311 "value" : ["scalars", "fabric_metadata_t.next_id"]
1312 },
1313 {
1314 "type" : "runtime_data",
1315 "value" : 0
1316 }
1317 ],
1318 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001319 "filename" : "include/control/forwarding.p4",
Charles Chancd03f072018-08-31 17:46:37 -07001320 "line" : 110,
Yi Tseng47eac892018-07-11 02:17:04 +08001321 "column" : 8,
1322 "source_fragment" : "fabric_metadata.next_id = next_id"
1323 }
1324 }
1325 ]
1326 },
1327 {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001328 "name" : "FabricIngress.forwarding.punt_to_cpu",
Charles Chancd03f072018-08-31 17:46:37 -07001329 "id" : 17,
Yi Tsengbe342052017-11-03 10:21:23 -07001330 "runtime_data" : [],
1331 "primitives" : [
1332 {
1333 "op" : "assign",
1334 "parameters" : [
1335 {
1336 "type" : "field",
Yi Tsengbe342052017-11-03 10:21:23 -07001337 "value" : ["standard_metadata", "egress_spec"]
1338 },
1339 {
1340 "type" : "hexstr",
1341 "value" : "0x00ff"
1342 }
1343 ],
1344 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001345 "filename" : "include/control/forwarding.p4",
Charles Chancd03f072018-08-31 17:46:37 -07001346 "line" : 116,
Carmelo Casconeb531b682018-01-30 17:55:56 -08001347 "column" : 8,
1348 "source_fragment" : "standard_metadata.egress_spec = 255"
Yi Tsengbe342052017-11-03 10:21:23 -07001349 }
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001350 },
1351 {
1352 "op" : "exit",
1353 "parameters" : [],
1354 "source_info" : {
1355 "filename" : "include/control/forwarding.p4",
Charles Chancd03f072018-08-31 17:46:37 -07001356 "line" : 118,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001357 "column" : 8,
1358 "source_fragment" : "exit"
1359 }
1360 }
1361 ]
1362 },
1363 {
1364 "name" : "FabricIngress.forwarding.clone_to_cpu",
Charles Chancd03f072018-08-31 17:46:37 -07001365 "id" : 18,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001366 "runtime_data" : [],
1367 "primitives" : [
1368 {
1369 "op" : "assign",
1370 "parameters" : [
1371 {
1372 "type" : "field",
1373 "value" : ["scalars", "fabric_metadata_t.clone_to_cpu"]
1374 },
1375 {
1376 "type" : "expression",
1377 "value" : {
1378 "type" : "expression",
1379 "value" : {
1380 "op" : "b2d",
1381 "left" : null,
1382 "right" : {
1383 "type" : "bool",
1384 "value" : true
1385 }
1386 }
1387 }
1388 }
1389 ],
1390 "source_info" : {
1391 "filename" : "include/control/forwarding.p4",
Charles Chancd03f072018-08-31 17:46:37 -07001392 "line" : 123,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001393 "column" : 8,
1394 "source_fragment" : "fabric_metadata.clone_to_cpu = true"
1395 }
Yi Tsengbe342052017-11-03 10:21:23 -07001396 }
1397 ]
1398 },
1399 {
Yi Tseng47eac892018-07-11 02:17:04 +08001400 "name" : "FabricIngress.forwarding.drop",
Charles Chancd03f072018-08-31 17:46:37 -07001401 "id" : 19,
Yi Tseng47eac892018-07-11 02:17:04 +08001402 "runtime_data" : [],
1403 "primitives" : [
1404 {
1405 "op" : "drop",
1406 "parameters" : [],
1407 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001408 "filename" : "include/control/forwarding.p4",
Charles Chancd03f072018-08-31 17:46:37 -07001409 "line" : 128,
Yi Tseng47eac892018-07-11 02:17:04 +08001410 "column" : 8,
1411 "source_fragment" : "mark_to_drop()"
1412 }
1413 }
1414 ]
1415 },
1416 {
Charles Chancf696e52018-08-16 16:25:13 -07001417 "name" : "FabricIngress.forwarding.nop_acl",
Charles Chancd03f072018-08-31 17:46:37 -07001418 "id" : 20,
Charles Chancf696e52018-08-16 16:25:13 -07001419 "runtime_data" : [],
1420 "primitives" : []
1421 },
1422 {
Yi Tseng47eac892018-07-11 02:17:04 +08001423 "name" : "FabricIngress.next.set_vlan",
Charles Chancd03f072018-08-31 17:46:37 -07001424 "id" : 21,
Yi Tseng47eac892018-07-11 02:17:04 +08001425 "runtime_data" : [
1426 {
1427 "name" : "new_vlan_id",
1428 "bitwidth" : 12
1429 }
1430 ],
1431 "primitives" : [
1432 {
1433 "op" : "assign",
1434 "parameters" : [
1435 {
1436 "type" : "field",
1437 "value" : ["vlan_tag", "vlan_id"]
1438 },
1439 {
1440 "type" : "runtime_data",
1441 "value" : 0
1442 }
1443 ],
1444 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001445 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001446 "line" : 61,
1447 "column" : 8,
1448 "source_fragment" : "hdr.vlan_tag.vlan_id = new_vlan_id"
1449 }
1450 }
1451 ]
1452 },
1453 {
1454 "name" : "FabricIngress.next.output_simple",
Charles Chancd03f072018-08-31 17:46:37 -07001455 "id" : 22,
Yi Tsengbe342052017-11-03 10:21:23 -07001456 "runtime_data" : [
1457 {
1458 "name" : "port_num",
1459 "bitwidth" : 9
1460 }
1461 ],
1462 "primitives" : [
1463 {
1464 "op" : "assign",
1465 "parameters" : [
1466 {
1467 "type" : "field",
1468 "value" : ["standard_metadata", "egress_spec"]
1469 },
1470 {
1471 "type" : "runtime_data",
1472 "value" : 0
1473 }
1474 ],
1475 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001476 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001477 "line" : 85,
Yi Tsengbe342052017-11-03 10:21:23 -07001478 "column" : 8,
1479 "source_fragment" : "standard_metadata.egress_spec = port_num"
1480 }
Yi Tsengbe342052017-11-03 10:21:23 -07001481 }
1482 ]
1483 },
1484 {
Yi Tseng47eac892018-07-11 02:17:04 +08001485 "name" : "FabricIngress.next.set_vlan_output",
Charles Chancd03f072018-08-31 17:46:37 -07001486 "id" : 23,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001487 "runtime_data" : [
1488 {
1489 "name" : "new_vlan_id",
1490 "bitwidth" : 12
Yi Tseng47eac892018-07-11 02:17:04 +08001491 },
1492 {
1493 "name" : "port_num",
1494 "bitwidth" : 9
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001495 }
1496 ],
1497 "primitives" : [
1498 {
1499 "op" : "assign",
1500 "parameters" : [
1501 {
1502 "type" : "field",
1503 "value" : ["vlan_tag", "vlan_id"]
1504 },
1505 {
1506 "type" : "runtime_data",
1507 "value" : 0
1508 }
1509 ],
1510 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001511 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001512 "line" : 90,
1513 "column" : 8,
1514 "source_fragment" : "hdr.vlan_tag.vlan_id = new_vlan_id"
1515 }
1516 },
1517 {
1518 "op" : "assign",
1519 "parameters" : [
1520 {
1521 "type" : "field",
1522 "value" : ["standard_metadata", "egress_spec"]
1523 },
1524 {
1525 "type" : "runtime_data",
1526 "value" : 1
1527 }
1528 ],
1529 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001530 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001531 "line" : 85,
1532 "column" : 8,
1533 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
1534 }
1535 }
1536 ]
1537 },
1538 {
1539 "name" : "FabricIngress.next.l3_routing_simple",
Charles Chancd03f072018-08-31 17:46:37 -07001540 "id" : 24,
Yi Tseng47eac892018-07-11 02:17:04 +08001541 "runtime_data" : [
1542 {
1543 "name" : "port_num",
1544 "bitwidth" : 9
1545 },
1546 {
1547 "name" : "smac",
1548 "bitwidth" : 48
1549 },
1550 {
1551 "name" : "dmac",
1552 "bitwidth" : 48
1553 }
1554 ],
1555 "primitives" : [
1556 {
1557 "op" : "assign",
1558 "parameters" : [
1559 {
1560 "type" : "field",
1561 "value" : ["ethernet", "src_addr"]
1562 },
1563 {
1564 "type" : "runtime_data",
1565 "value" : 1
1566 }
1567 ],
1568 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001569 "filename" : "include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001570 "line" : 37,
1571 "column" : 8,
Yi Tseng47eac892018-07-11 02:17:04 +08001572 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
1573 }
1574 },
1575 {
1576 "op" : "assign",
1577 "parameters" : [
1578 {
1579 "type" : "field",
1580 "value" : ["ethernet", "dst_addr"]
1581 },
1582 {
1583 "type" : "runtime_data",
1584 "value" : 2
1585 }
1586 ],
1587 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001588 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001589 "line" : 41,
1590 "column" : 8,
1591 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
1592 }
1593 },
1594 {
1595 "op" : "assign",
1596 "parameters" : [
1597 {
1598 "type" : "field",
1599 "value" : ["standard_metadata", "egress_spec"]
1600 },
1601 {
1602 "type" : "runtime_data",
1603 "value" : 0
1604 }
1605 ],
1606 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001607 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001608 "line" : 85,
1609 "column" : 8,
1610 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001611 }
1612 }
1613 ]
1614 },
1615 {
Yi Tseng47eac892018-07-11 02:17:04 +08001616 "name" : "FabricIngress.next.mpls_routing_v4_simple",
Carmelo Casconef645e842018-07-16 18:31:52 +02001617 "id" : 25,
Esin Karaman971fb7f2017-12-28 13:44:52 +00001618 "runtime_data" : [
1619 {
1620 "name" : "port_num",
1621 "bitwidth" : 9
1622 },
1623 {
1624 "name" : "smac",
1625 "bitwidth" : 48
1626 },
1627 {
1628 "name" : "dmac",
1629 "bitwidth" : 48
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001630 },
1631 {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001632 "name" : "label",
1633 "bitwidth" : 20
Yi Tsengbe342052017-11-03 10:21:23 -07001634 }
1635 ],
1636 "primitives" : [
1637 {
1638 "op" : "assign",
1639 "parameters" : [
1640 {
1641 "type" : "field",
1642 "value" : ["ethernet", "src_addr"]
1643 },
1644 {
1645 "type" : "runtime_data",
1646 "value" : 1
1647 }
1648 ],
1649 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001650 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001651 "line" : 37,
Yi Tsengbe342052017-11-03 10:21:23 -07001652 "column" : 8,
1653 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
1654 }
1655 },
1656 {
1657 "op" : "assign",
1658 "parameters" : [
1659 {
1660 "type" : "field",
1661 "value" : ["ethernet", "dst_addr"]
1662 },
1663 {
1664 "type" : "runtime_data",
1665 "value" : 2
1666 }
1667 ],
1668 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001669 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001670 "line" : 41,
Yi Tsengbe342052017-11-03 10:21:23 -07001671 "column" : 8,
1672 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
1673 }
1674 },
1675 {
1676 "op" : "assign",
1677 "parameters" : [
1678 {
1679 "type" : "field",
1680 "value" : ["standard_metadata", "egress_spec"]
1681 },
1682 {
1683 "type" : "runtime_data",
1684 "value" : 0
1685 }
1686 ],
1687 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001688 "filename" : "include/control/next.p4",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001689 "line" : 85,
Yi Tsengbe342052017-11-03 10:21:23 -07001690 "column" : 8,
1691 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
1692 }
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001693 },
1694 {
1695 "op" : "add_header",
1696 "parameters" : [
1697 {
1698 "type" : "header",
1699 "value" : "mpls"
1700 }
1701 ],
1702 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001703 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001704 "line" : 46,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001705 "column" : 8,
1706 "source_fragment" : "hdr.mpls.setValid()"
1707 }
1708 },
1709 {
1710 "op" : "assign",
1711 "parameters" : [
1712 {
1713 "type" : "field",
1714 "value" : ["vlan_tag", "ether_type"]
1715 },
1716 {
1717 "type" : "hexstr",
1718 "value" : "0x8847"
1719 }
1720 ],
1721 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001722 "filename" : "include/control/../define.p4",
Carmelo Cascone79a3a312018-08-16 17:14:43 -07001723 "line" : 92,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001724 "column" : 31,
1725 "source_fragment" : "0x8847; ..."
1726 }
1727 },
1728 {
1729 "op" : "assign",
1730 "parameters" : [
1731 {
1732 "type" : "field",
1733 "value" : ["mpls", "label"]
1734 },
1735 {
1736 "type" : "runtime_data",
1737 "value" : 3
1738 }
1739 ],
1740 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001741 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001742 "line" : 48,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001743 "column" : 8,
1744 "source_fragment" : "hdr.mpls.label = label; ..."
1745 }
1746 },
1747 {
1748 "op" : "assign",
1749 "parameters" : [
1750 {
1751 "type" : "field",
1752 "value" : ["mpls", "tc"]
1753 },
1754 {
1755 "type" : "hexstr",
1756 "value" : "0x00"
1757 }
1758 ],
1759 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001760 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001761 "line" : 49,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001762 "column" : 8,
1763 "source_fragment" : "hdr.mpls.tc = tc; ..."
1764 }
1765 },
1766 {
1767 "op" : "assign",
1768 "parameters" : [
1769 {
1770 "type" : "field",
1771 "value" : ["mpls", "bos"]
1772 },
1773 {
1774 "type" : "hexstr",
1775 "value" : "0x01"
1776 }
1777 ],
1778 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001779 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001780 "line" : 50,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001781 "column" : 8,
1782 "source_fragment" : "hdr.mpls.bos = 1w1"
1783 }
1784 },
1785 {
1786 "op" : "assign",
1787 "parameters" : [
1788 {
1789 "type" : "field",
1790 "value" : ["mpls", "ttl"]
1791 },
1792 {
1793 "type" : "hexstr",
1794 "value" : "0x40"
1795 }
1796 ],
1797 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001798 "filename" : "include/control/../define.p4",
Carmelo Cascone79a3a312018-08-16 17:14:43 -07001799 "line" : 115,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001800 "column" : 32,
1801 "source_fragment" : "64; ..."
1802 }
Yi Tsengbe342052017-11-03 10:21:23 -07001803 }
1804 ]
1805 },
1806 {
Charles Chancd03f072018-08-31 17:46:37 -07001807 "name" : "FabricIngress.next.mpls_routing_v6_simple",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001808 "id" : 26,
1809 "runtime_data" : [
1810 {
1811 "name" : "port_num",
1812 "bitwidth" : 9
1813 },
1814 {
1815 "name" : "smac",
1816 "bitwidth" : 48
1817 },
1818 {
1819 "name" : "dmac",
1820 "bitwidth" : 48
1821 },
1822 {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001823 "name" : "label",
1824 "bitwidth" : 20
Yi Tsengbe342052017-11-03 10:21:23 -07001825 }
1826 ],
1827 "primitives" : [
1828 {
1829 "op" : "assign",
1830 "parameters" : [
1831 {
1832 "type" : "field",
1833 "value" : ["ethernet", "src_addr"]
1834 },
1835 {
1836 "type" : "runtime_data",
1837 "value" : 1
1838 }
1839 ],
1840 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001841 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001842 "line" : 37,
Yi Tsengbe342052017-11-03 10:21:23 -07001843 "column" : 8,
1844 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
1845 }
1846 },
1847 {
1848 "op" : "assign",
1849 "parameters" : [
1850 {
1851 "type" : "field",
1852 "value" : ["ethernet", "dst_addr"]
1853 },
1854 {
1855 "type" : "runtime_data",
1856 "value" : 2
1857 }
1858 ],
1859 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001860 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001861 "line" : 41,
Yi Tsengbe342052017-11-03 10:21:23 -07001862 "column" : 8,
1863 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
1864 }
1865 },
1866 {
1867 "op" : "assign",
1868 "parameters" : [
1869 {
1870 "type" : "field",
1871 "value" : ["standard_metadata", "egress_spec"]
1872 },
1873 {
1874 "type" : "runtime_data",
1875 "value" : 0
1876 }
1877 ],
1878 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001879 "filename" : "include/control/next.p4",
Charles Chancd03f072018-08-31 17:46:37 -07001880 "line" : 85,
Yi Tsengbe342052017-11-03 10:21:23 -07001881 "column" : 8,
1882 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
1883 }
Yi Tsengbe342052017-11-03 10:21:23 -07001884 },
1885 {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001886 "op" : "add_header",
Yi Tsengbe342052017-11-03 10:21:23 -07001887 "parameters" : [
1888 {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001889 "type" : "header",
1890 "value" : "mpls"
Yi Tsengbe342052017-11-03 10:21:23 -07001891 }
1892 ],
1893 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001894 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001895 "line" : 46,
Yi Tsengbe342052017-11-03 10:21:23 -07001896 "column" : 8,
Yi Tseng1b154bd2017-11-20 17:48:19 -08001897 "source_fragment" : "hdr.mpls.setValid()"
1898 }
1899 },
1900 {
1901 "op" : "assign",
1902 "parameters" : [
1903 {
1904 "type" : "field",
Yi Tsengbd46d052018-01-22 17:18:16 -08001905 "value" : ["vlan_tag", "ether_type"]
Yi Tseng1b154bd2017-11-20 17:48:19 -08001906 },
1907 {
1908 "type" : "hexstr",
1909 "value" : "0x8847"
1910 }
1911 ],
1912 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001913 "filename" : "include/control/../define.p4",
Carmelo Cascone79a3a312018-08-16 17:14:43 -07001914 "line" : 92,
Yi Tseng1b154bd2017-11-20 17:48:19 -08001915 "column" : 31,
1916 "source_fragment" : "0x8847; ..."
1917 }
1918 },
1919 {
1920 "op" : "assign",
1921 "parameters" : [
1922 {
1923 "type" : "field",
1924 "value" : ["mpls", "label"]
1925 },
1926 {
1927 "type" : "runtime_data",
1928 "value" : 3
1929 }
1930 ],
1931 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001932 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001933 "line" : 48,
Yi Tseng1b154bd2017-11-20 17:48:19 -08001934 "column" : 8,
1935 "source_fragment" : "hdr.mpls.label = label; ..."
1936 }
1937 },
1938 {
1939 "op" : "assign",
1940 "parameters" : [
1941 {
1942 "type" : "field",
1943 "value" : ["mpls", "tc"]
1944 },
1945 {
Yi Tseng1d842672017-11-28 16:06:52 -08001946 "type" : "hexstr",
1947 "value" : "0x00"
Yi Tseng1b154bd2017-11-20 17:48:19 -08001948 }
1949 ],
1950 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001951 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001952 "line" : 49,
Yi Tseng1b154bd2017-11-20 17:48:19 -08001953 "column" : 8,
1954 "source_fragment" : "hdr.mpls.tc = tc; ..."
1955 }
1956 },
1957 {
1958 "op" : "assign",
1959 "parameters" : [
1960 {
1961 "type" : "field",
1962 "value" : ["mpls", "bos"]
1963 },
1964 {
1965 "type" : "hexstr",
1966 "value" : "0x01"
1967 }
1968 ],
1969 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001970 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001971 "line" : 50,
Yi Tseng1b154bd2017-11-20 17:48:19 -08001972 "column" : 8,
Yi Tseng1d842672017-11-28 16:06:52 -08001973 "source_fragment" : "hdr.mpls.bos = 1w1"
Yi Tseng1b154bd2017-11-20 17:48:19 -08001974 }
1975 },
1976 {
1977 "op" : "assign",
1978 "parameters" : [
1979 {
1980 "type" : "field",
1981 "value" : ["mpls", "ttl"]
1982 },
1983 {
1984 "type" : "hexstr",
1985 "value" : "0x40"
1986 }
1987 ],
1988 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001989 "filename" : "include/control/../define.p4",
Carmelo Cascone79a3a312018-08-16 17:14:43 -07001990 "line" : 115,
Esin Karaman971fb7f2017-12-28 13:44:52 +00001991 "column" : 32,
1992 "source_fragment" : "64; ..."
1993 }
1994 }
1995 ]
1996 },
1997 {
Charles Chancd03f072018-08-31 17:46:37 -07001998 "name" : "FabricIngress.next.l3_routing_vlan",
1999 "id" : 27,
2000 "runtime_data" : [
2001 {
2002 "name" : "port_num",
2003 "bitwidth" : 9
2004 },
2005 {
2006 "name" : "smac",
2007 "bitwidth" : 48
2008 },
2009 {
2010 "name" : "dmac",
2011 "bitwidth" : 48
2012 },
2013 {
2014 "name" : "new_vlan_id",
2015 "bitwidth" : 12
2016 }
2017 ],
2018 "primitives" : [
2019 {
2020 "op" : "assign",
2021 "parameters" : [
2022 {
2023 "type" : "field",
2024 "value" : ["ethernet", "src_addr"]
2025 },
2026 {
2027 "type" : "runtime_data",
2028 "value" : 1
2029 }
2030 ],
2031 "source_info" : {
2032 "filename" : "include/control/next.p4",
2033 "line" : 37,
2034 "column" : 8,
2035 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2036 }
2037 },
2038 {
2039 "op" : "assign",
2040 "parameters" : [
2041 {
2042 "type" : "field",
2043 "value" : ["ethernet", "dst_addr"]
2044 },
2045 {
2046 "type" : "runtime_data",
2047 "value" : 2
2048 }
2049 ],
2050 "source_info" : {
2051 "filename" : "include/control/next.p4",
2052 "line" : 41,
2053 "column" : 8,
2054 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2055 }
2056 },
2057 {
2058 "op" : "assign",
2059 "parameters" : [
2060 {
2061 "type" : "field",
2062 "value" : ["vlan_tag", "vlan_id"]
2063 },
2064 {
2065 "type" : "runtime_data",
2066 "value" : 3
2067 }
2068 ],
2069 "source_info" : {
2070 "filename" : "include/control/next.p4",
2071 "line" : 90,
2072 "column" : 8,
2073 "source_fragment" : "hdr.vlan_tag.vlan_id = new_vlan_id; ..."
2074 }
2075 },
2076 {
2077 "op" : "assign",
2078 "parameters" : [
2079 {
2080 "type" : "field",
2081 "value" : ["standard_metadata", "egress_spec"]
2082 },
2083 {
2084 "type" : "runtime_data",
2085 "value" : 0
2086 }
2087 ],
2088 "source_info" : {
2089 "filename" : "include/control/next.p4",
2090 "line" : 85,
2091 "column" : 8,
2092 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2093 }
2094 }
2095 ]
2096 },
2097 {
2098 "name" : "FabricIngress.next.l3_routing_hashed",
2099 "id" : 28,
2100 "runtime_data" : [
2101 {
2102 "name" : "port_num",
2103 "bitwidth" : 9
2104 },
2105 {
2106 "name" : "smac",
2107 "bitwidth" : 48
2108 },
2109 {
2110 "name" : "dmac",
2111 "bitwidth" : 48
2112 }
2113 ],
2114 "primitives" : [
2115 {
2116 "op" : "assign",
2117 "parameters" : [
2118 {
2119 "type" : "field",
2120 "value" : ["ethernet", "src_addr"]
2121 },
2122 {
2123 "type" : "runtime_data",
2124 "value" : 1
2125 }
2126 ],
2127 "source_info" : {
2128 "filename" : "include/control/next.p4",
2129 "line" : 37,
2130 "column" : 8,
2131 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2132 }
2133 },
2134 {
2135 "op" : "assign",
2136 "parameters" : [
2137 {
2138 "type" : "field",
2139 "value" : ["ethernet", "dst_addr"]
2140 },
2141 {
2142 "type" : "runtime_data",
2143 "value" : 2
2144 }
2145 ],
2146 "source_info" : {
2147 "filename" : "include/control/next.p4",
2148 "line" : 41,
2149 "column" : 8,
2150 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2151 }
2152 },
2153 {
2154 "op" : "assign",
2155 "parameters" : [
2156 {
2157 "type" : "field",
2158 "value" : ["standard_metadata", "egress_spec"]
2159 },
2160 {
2161 "type" : "runtime_data",
2162 "value" : 0
2163 }
2164 ],
2165 "source_info" : {
2166 "filename" : "include/control/next.p4",
2167 "line" : 149,
2168 "column" : 8,
2169 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2170 }
2171 }
2172 ]
2173 },
2174 {
2175 "name" : "FabricIngress.next.mpls_routing_v4_hashed",
Carmelo Casconef645e842018-07-16 18:31:52 +02002176 "id" : 29,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002177 "runtime_data" : [
2178 {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002179 "name" : "port_num",
2180 "bitwidth" : 9
2181 },
2182 {
2183 "name" : "smac",
2184 "bitwidth" : 48
2185 },
2186 {
2187 "name" : "dmac",
2188 "bitwidth" : 48
2189 },
2190 {
2191 "name" : "label",
2192 "bitwidth" : 20
2193 }
2194 ],
2195 "primitives" : [
2196 {
2197 "op" : "assign",
2198 "parameters" : [
2199 {
2200 "type" : "field",
2201 "value" : ["ethernet", "src_addr"]
2202 },
2203 {
2204 "type" : "runtime_data",
2205 "value" : 1
2206 }
2207 ],
2208 "source_info" : {
2209 "filename" : "include/control/next.p4",
2210 "line" : 37,
2211 "column" : 8,
2212 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2213 }
2214 },
2215 {
2216 "op" : "assign",
2217 "parameters" : [
2218 {
2219 "type" : "field",
2220 "value" : ["ethernet", "dst_addr"]
2221 },
2222 {
2223 "type" : "runtime_data",
2224 "value" : 2
2225 }
2226 ],
2227 "source_info" : {
2228 "filename" : "include/control/next.p4",
2229 "line" : 41,
2230 "column" : 8,
2231 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2232 }
2233 },
2234 {
2235 "op" : "assign",
2236 "parameters" : [
2237 {
2238 "type" : "field",
2239 "value" : ["standard_metadata", "egress_spec"]
2240 },
2241 {
2242 "type" : "runtime_data",
2243 "value" : 0
2244 }
2245 ],
2246 "source_info" : {
2247 "filename" : "include/control/next.p4",
2248 "line" : 149,
2249 "column" : 8,
2250 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2251 }
2252 },
2253 {
2254 "op" : "add_header",
2255 "parameters" : [
2256 {
2257 "type" : "header",
2258 "value" : "mpls"
2259 }
2260 ],
2261 "source_info" : {
2262 "filename" : "include/control/next.p4",
2263 "line" : 46,
2264 "column" : 8,
2265 "source_fragment" : "hdr.mpls.setValid()"
2266 }
2267 },
2268 {
2269 "op" : "assign",
2270 "parameters" : [
2271 {
2272 "type" : "field",
2273 "value" : ["vlan_tag", "ether_type"]
2274 },
2275 {
2276 "type" : "hexstr",
2277 "value" : "0x8847"
2278 }
2279 ],
2280 "source_info" : {
2281 "filename" : "include/control/../define.p4",
Carmelo Cascone79a3a312018-08-16 17:14:43 -07002282 "line" : 92,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002283 "column" : 31,
2284 "source_fragment" : "0x8847; ..."
2285 }
2286 },
2287 {
2288 "op" : "assign",
2289 "parameters" : [
2290 {
2291 "type" : "field",
2292 "value" : ["mpls", "label"]
2293 },
2294 {
2295 "type" : "runtime_data",
2296 "value" : 3
2297 }
2298 ],
2299 "source_info" : {
2300 "filename" : "include/control/next.p4",
2301 "line" : 48,
2302 "column" : 8,
2303 "source_fragment" : "hdr.mpls.label = label; ..."
2304 }
2305 },
2306 {
2307 "op" : "assign",
2308 "parameters" : [
2309 {
2310 "type" : "field",
2311 "value" : ["mpls", "tc"]
2312 },
2313 {
2314 "type" : "hexstr",
2315 "value" : "0x00"
2316 }
2317 ],
2318 "source_info" : {
2319 "filename" : "include/control/next.p4",
2320 "line" : 49,
2321 "column" : 8,
2322 "source_fragment" : "hdr.mpls.tc = tc; ..."
2323 }
2324 },
2325 {
2326 "op" : "assign",
2327 "parameters" : [
2328 {
2329 "type" : "field",
2330 "value" : ["mpls", "bos"]
2331 },
2332 {
2333 "type" : "hexstr",
2334 "value" : "0x01"
2335 }
2336 ],
2337 "source_info" : {
2338 "filename" : "include/control/next.p4",
2339 "line" : 50,
2340 "column" : 8,
2341 "source_fragment" : "hdr.mpls.bos = 1w1"
2342 }
2343 },
2344 {
2345 "op" : "assign",
2346 "parameters" : [
2347 {
2348 "type" : "field",
2349 "value" : ["mpls", "ttl"]
2350 },
2351 {
2352 "type" : "hexstr",
2353 "value" : "0x40"
2354 }
2355 ],
2356 "source_info" : {
2357 "filename" : "include/control/../define.p4",
Carmelo Cascone79a3a312018-08-16 17:14:43 -07002358 "line" : 115,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002359 "column" : 32,
2360 "source_fragment" : "64; ..."
2361 }
2362 }
2363 ]
2364 },
2365 {
Charles Chancd03f072018-08-31 17:46:37 -07002366 "name" : "FabricIngress.next.mpls_routing_v6_hashed",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002367 "id" : 30,
2368 "runtime_data" : [
2369 {
Charles Chancd03f072018-08-31 17:46:37 -07002370 "name" : "port_num",
2371 "bitwidth" : 9
2372 },
2373 {
2374 "name" : "smac",
2375 "bitwidth" : 48
2376 },
2377 {
2378 "name" : "dmac",
2379 "bitwidth" : 48
2380 },
2381 {
2382 "name" : "label",
2383 "bitwidth" : 20
2384 }
2385 ],
2386 "primitives" : [
2387 {
2388 "op" : "assign",
2389 "parameters" : [
2390 {
2391 "type" : "field",
2392 "value" : ["ethernet", "src_addr"]
2393 },
2394 {
2395 "type" : "runtime_data",
2396 "value" : 1
2397 }
2398 ],
2399 "source_info" : {
2400 "filename" : "include/control/next.p4",
2401 "line" : 37,
2402 "column" : 8,
2403 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2404 }
2405 },
2406 {
2407 "op" : "assign",
2408 "parameters" : [
2409 {
2410 "type" : "field",
2411 "value" : ["ethernet", "dst_addr"]
2412 },
2413 {
2414 "type" : "runtime_data",
2415 "value" : 2
2416 }
2417 ],
2418 "source_info" : {
2419 "filename" : "include/control/next.p4",
2420 "line" : 41,
2421 "column" : 8,
2422 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2423 }
2424 },
2425 {
2426 "op" : "assign",
2427 "parameters" : [
2428 {
2429 "type" : "field",
2430 "value" : ["standard_metadata", "egress_spec"]
2431 },
2432 {
2433 "type" : "runtime_data",
2434 "value" : 0
2435 }
2436 ],
2437 "source_info" : {
2438 "filename" : "include/control/next.p4",
2439 "line" : 149,
2440 "column" : 8,
2441 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2442 }
2443 },
2444 {
2445 "op" : "add_header",
2446 "parameters" : [
2447 {
2448 "type" : "header",
2449 "value" : "mpls"
2450 }
2451 ],
2452 "source_info" : {
2453 "filename" : "include/control/next.p4",
2454 "line" : 46,
2455 "column" : 8,
2456 "source_fragment" : "hdr.mpls.setValid()"
2457 }
2458 },
2459 {
2460 "op" : "assign",
2461 "parameters" : [
2462 {
2463 "type" : "field",
2464 "value" : ["vlan_tag", "ether_type"]
2465 },
2466 {
2467 "type" : "hexstr",
2468 "value" : "0x8847"
2469 }
2470 ],
2471 "source_info" : {
2472 "filename" : "include/control/../define.p4",
Carmelo Cascone79a3a312018-08-16 17:14:43 -07002473 "line" : 92,
Charles Chancd03f072018-08-31 17:46:37 -07002474 "column" : 31,
2475 "source_fragment" : "0x8847; ..."
2476 }
2477 },
2478 {
2479 "op" : "assign",
2480 "parameters" : [
2481 {
2482 "type" : "field",
2483 "value" : ["mpls", "label"]
2484 },
2485 {
2486 "type" : "runtime_data",
2487 "value" : 3
2488 }
2489 ],
2490 "source_info" : {
2491 "filename" : "include/control/next.p4",
2492 "line" : 48,
2493 "column" : 8,
2494 "source_fragment" : "hdr.mpls.label = label; ..."
2495 }
2496 },
2497 {
2498 "op" : "assign",
2499 "parameters" : [
2500 {
2501 "type" : "field",
2502 "value" : ["mpls", "tc"]
2503 },
2504 {
2505 "type" : "hexstr",
2506 "value" : "0x00"
2507 }
2508 ],
2509 "source_info" : {
2510 "filename" : "include/control/next.p4",
2511 "line" : 49,
2512 "column" : 8,
2513 "source_fragment" : "hdr.mpls.tc = tc; ..."
2514 }
2515 },
2516 {
2517 "op" : "assign",
2518 "parameters" : [
2519 {
2520 "type" : "field",
2521 "value" : ["mpls", "bos"]
2522 },
2523 {
2524 "type" : "hexstr",
2525 "value" : "0x01"
2526 }
2527 ],
2528 "source_info" : {
2529 "filename" : "include/control/next.p4",
2530 "line" : 50,
2531 "column" : 8,
2532 "source_fragment" : "hdr.mpls.bos = 1w1"
2533 }
2534 },
2535 {
2536 "op" : "assign",
2537 "parameters" : [
2538 {
2539 "type" : "field",
2540 "value" : ["mpls", "ttl"]
2541 },
2542 {
2543 "type" : "hexstr",
2544 "value" : "0x40"
2545 }
2546 ],
2547 "source_info" : {
2548 "filename" : "include/control/../define.p4",
Carmelo Cascone79a3a312018-08-16 17:14:43 -07002549 "line" : 115,
Charles Chancd03f072018-08-31 17:46:37 -07002550 "column" : 32,
2551 "source_fragment" : "64; ..."
2552 }
2553 }
2554 ]
2555 },
2556 {
2557 "name" : "FabricIngress.next.set_mcast_group",
2558 "id" : 31,
2559 "runtime_data" : [
2560 {
Esin Karaman971fb7f2017-12-28 13:44:52 +00002561 "name" : "gid",
2562 "bitwidth" : 16
2563 }
2564 ],
2565 "primitives" : [
2566 {
2567 "op" : "assign",
2568 "parameters" : [
2569 {
2570 "type" : "field",
2571 "value" : ["standard_metadata", "mcast_grp"]
2572 },
2573 {
2574 "type" : "runtime_data",
2575 "value" : 0
2576 }
2577 ],
2578 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002579 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002580 "line" : 202,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002581 "column" : 8,
2582 "source_fragment" : "standard_metadata.mcast_grp = gid"
2583 }
Carmelo Casconea5400af2018-07-17 22:11:54 +02002584 },
2585 {
2586 "op" : "assign",
2587 "parameters" : [
2588 {
2589 "type" : "field",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002590 "value" : ["scalars", "fabric_metadata_t.is_multicast"]
Carmelo Casconea5400af2018-07-17 22:11:54 +02002591 },
2592 {
2593 "type" : "expression",
2594 "value" : {
2595 "type" : "expression",
2596 "value" : {
2597 "op" : "b2d",
2598 "left" : null,
2599 "right" : {
2600 "type" : "bool",
2601 "value" : true
2602 }
2603 }
2604 }
2605 }
2606 ],
2607 "source_info" : {
2608 "filename" : "include/control/next.p4",
2609 "line" : 203,
2610 "column" : 8,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002611 "source_fragment" : "fabric_metadata.is_multicast = true"
Carmelo Casconea5400af2018-07-17 22:11:54 +02002612 }
Esin Karaman971fb7f2017-12-28 13:44:52 +00002613 }
2614 ]
2615 },
2616 {
2617 "name" : "act",
Charles Chancd03f072018-08-31 17:46:37 -07002618 "id" : 32,
Yi Tsengbe342052017-11-03 10:21:23 -07002619 "runtime_data" : [],
2620 "primitives" : [
2621 {
2622 "op" : "assign",
2623 "parameters" : [
2624 {
2625 "type" : "field",
2626 "value" : ["standard_metadata", "egress_spec"]
2627 },
2628 {
2629 "type" : "field",
2630 "value" : ["packet_out", "egress_port"]
2631 }
2632 ],
2633 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002634 "filename" : "include/control/packetio.p4",
Yi Tsengbe342052017-11-03 10:21:23 -07002635 "line" : 26,
2636 "column" : 12,
2637 "source_fragment" : "standard_metadata.egress_spec = hdr.packet_out.egress_port"
2638 }
Yi Tseng1d842672017-11-28 16:06:52 -08002639 },
2640 {
2641 "op" : "remove_header",
2642 "parameters" : [
2643 {
2644 "type" : "header",
2645 "value" : "packet_out"
2646 }
2647 ],
2648 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002649 "filename" : "include/control/packetio.p4",
Yi Tseng1d842672017-11-28 16:06:52 -08002650 "line" : 27,
2651 "column" : 12,
2652 "source_fragment" : "hdr.packet_out.setInvalid()"
2653 }
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07002654 },
2655 {
2656 "op" : "assign",
2657 "parameters" : [
2658 {
2659 "type" : "field",
2660 "value" : ["scalars", "fabric_metadata_t.is_controller_packet_out"]
2661 },
2662 {
2663 "type" : "expression",
2664 "value" : {
2665 "type" : "expression",
2666 "value" : {
2667 "op" : "b2d",
2668 "left" : null,
2669 "right" : {
2670 "type" : "bool",
2671 "value" : true
2672 }
2673 }
2674 }
2675 }
2676 ],
2677 "source_info" : {
2678 "filename" : "include/control/packetio.p4",
2679 "line" : 28,
2680 "column" : 12,
2681 "source_fragment" : "fabric_metadata.is_controller_packet_out = true"
2682 }
Yi Tsengbe342052017-11-03 10:21:23 -07002683 }
2684 ]
2685 },
2686 {
2687 "name" : "act_0",
Charles Chancd03f072018-08-31 17:46:37 -07002688 "id" : 33,
Yi Tsengbe342052017-11-03 10:21:23 -07002689 "runtime_data" : [],
2690 "primitives" : [
2691 {
2692 "op" : "assign",
2693 "parameters" : [
2694 {
2695 "type" : "field",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002696 "value" : ["scalars", "filtering_tmp_0"]
Yi Tseng1d842672017-11-28 16:06:52 -08002697 },
2698 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002699 "type" : "expression",
2700 "value" : {
2701 "type" : "expression",
2702 "value" : {
2703 "op" : "b2d",
2704 "left" : null,
2705 "right" : {
2706 "type" : "bool",
2707 "value" : true
2708 }
2709 }
2710 }
Yi Tseng1d842672017-11-28 16:06:52 -08002711 }
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002712 ]
Yi Tseng1d842672017-11-28 16:06:52 -08002713 }
2714 ]
2715 },
2716 {
2717 "name" : "act_1",
Charles Chancd03f072018-08-31 17:46:37 -07002718 "id" : 34,
Yi Tseng1d842672017-11-28 16:06:52 -08002719 "runtime_data" : [],
2720 "primitives" : [
2721 {
2722 "op" : "assign",
2723 "parameters" : [
2724 {
2725 "type" : "field",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002726 "value" : ["scalars", "filtering_tmp_0"]
Yi Tseng1d842672017-11-28 16:06:52 -08002727 },
2728 {
2729 "type" : "expression",
2730 "value" : {
2731 "type" : "expression",
2732 "value" : {
2733 "op" : "b2d",
2734 "left" : null,
2735 "right" : {
2736 "type" : "bool",
2737 "value" : false
2738 }
2739 }
2740 }
2741 }
2742 ]
2743 }
2744 ]
2745 },
2746 {
Carmelo Casconea5400af2018-07-17 22:11:54 +02002747 "name" : "act_2",
Charles Chancd03f072018-08-31 17:46:37 -07002748 "id" : 35,
Carmelo Casconea5400af2018-07-17 22:11:54 +02002749 "runtime_data" : [],
2750 "primitives" : [
2751 {
2752 "op" : "assign",
2753 "parameters" : [
2754 {
2755 "type" : "field",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002756 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
Carmelo Casconea5400af2018-07-17 22:11:54 +02002757 },
2758 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002759 "type" : "hexstr",
2760 "value" : "0x07"
Carmelo Casconea5400af2018-07-17 22:11:54 +02002761 }
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002762 ],
2763 "source_info" : {
2764 "filename" : "include/control/../define.p4",
Carmelo Cascone79a3a312018-08-16 17:14:43 -07002765 "line" : 111,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002766 "column" : 31,
2767 "source_fragment" : "7; ..."
2768 }
Carmelo Casconea5400af2018-07-17 22:11:54 +02002769 }
2770 ]
2771 },
2772 {
Yi Tsengbd46d052018-01-22 17:18:16 -08002773 "name" : "act_3",
Charles Chancd03f072018-08-31 17:46:37 -07002774 "id" : 36,
Yi Tseng1d842672017-11-28 16:06:52 -08002775 "runtime_data" : [],
2776 "primitives" : [
2777 {
2778 "op" : "assign",
2779 "parameters" : [
2780 {
2781 "type" : "field",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002782 "value" : ["vlan_tag", "ether_type"]
Carmelo Casconea5400af2018-07-17 22:11:54 +02002783 },
2784 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002785 "type" : "hexstr",
2786 "value" : "0x0800"
Carmelo Casconea5400af2018-07-17 22:11:54 +02002787 }
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002788 ],
2789 "source_info" : {
2790 "filename" : "include/control/../define.p4",
Carmelo Cascone79a3a312018-08-16 17:14:43 -07002791 "line" : 94,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002792 "column" : 31,
2793 "source_fragment" : "0x0800; ..."
2794 }
Carmelo Casconea5400af2018-07-17 22:11:54 +02002795 }
2796 ]
2797 },
2798 {
2799 "name" : "act_4",
Charles Chancd03f072018-08-31 17:46:37 -07002800 "id" : 37,
Carmelo Casconea5400af2018-07-17 22:11:54 +02002801 "runtime_data" : [],
2802 "primitives" : [
2803 {
2804 "op" : "assign",
2805 "parameters" : [
2806 {
2807 "type" : "field",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002808 "value" : ["scalars", "next_hasReturned_0"]
Carmelo Casconea5400af2018-07-17 22:11:54 +02002809 },
2810 {
2811 "type" : "expression",
2812 "value" : {
2813 "type" : "expression",
2814 "value" : {
2815 "op" : "b2d",
2816 "left" : null,
2817 "right" : {
2818 "type" : "bool",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002819 "value" : false
Carmelo Casconea5400af2018-07-17 22:11:54 +02002820 }
2821 }
2822 }
2823 }
2824 ]
2825 }
2826 ]
2827 },
2828 {
2829 "name" : "act_5",
Charles Chancd03f072018-08-31 17:46:37 -07002830 "id" : 38,
Carmelo Casconea5400af2018-07-17 22:11:54 +02002831 "runtime_data" : [],
2832 "primitives" : [
2833 {
2834 "op" : "assign",
2835 "parameters" : [
2836 {
2837 "type" : "field",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002838 "value" : ["scalars", "next_tmp_4"]
2839 },
2840 {
2841 "type" : "expression",
2842 "value" : {
2843 "type" : "expression",
2844 "value" : {
2845 "op" : "b2d",
2846 "left" : null,
2847 "right" : {
2848 "type" : "bool",
2849 "value" : true
2850 }
2851 }
2852 }
2853 }
2854 ]
2855 }
2856 ]
2857 },
2858 {
2859 "name" : "act_6",
Charles Chancd03f072018-08-31 17:46:37 -07002860 "id" : 39,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002861 "runtime_data" : [],
2862 "primitives" : [
2863 {
2864 "op" : "assign",
2865 "parameters" : [
2866 {
2867 "type" : "field",
2868 "value" : ["scalars", "next_tmp_4"]
2869 },
2870 {
2871 "type" : "expression",
2872 "value" : {
2873 "type" : "expression",
2874 "value" : {
2875 "op" : "b2d",
2876 "left" : null,
2877 "right" : {
2878 "type" : "bool",
2879 "value" : false
2880 }
2881 }
2882 }
2883 }
2884 ]
2885 }
2886 ]
2887 },
2888 {
2889 "name" : "act_7",
Charles Chancd03f072018-08-31 17:46:37 -07002890 "id" : 40,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002891 "runtime_data" : [],
2892 "primitives" : [
2893 {
2894 "op" : "assign",
2895 "parameters" : [
2896 {
2897 "type" : "field",
2898 "value" : ["scalars", "next_tmp_3"]
2899 },
2900 {
2901 "type" : "expression",
2902 "value" : {
2903 "type" : "expression",
2904 "value" : {
2905 "op" : "b2d",
2906 "left" : null,
2907 "right" : {
2908 "type" : "bool",
2909 "value" : true
2910 }
2911 }
2912 }
2913 }
2914 ]
2915 }
2916 ]
2917 },
2918 {
2919 "name" : "act_8",
Charles Chancd03f072018-08-31 17:46:37 -07002920 "id" : 41,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002921 "runtime_data" : [],
2922 "primitives" : [
2923 {
2924 "op" : "assign",
2925 "parameters" : [
2926 {
2927 "type" : "field",
Carmelo Casconea5400af2018-07-17 22:11:54 +02002928 "value" : ["scalars", "next_tmp_3"]
2929 },
2930 {
2931 "type" : "expression",
2932 "value" : {
2933 "type" : "expression",
2934 "value" : {
2935 "op" : "b2d",
2936 "left" : null,
2937 "right" : {
2938 "type" : "bool",
2939 "value" : false
2940 }
2941 }
2942 }
2943 }
2944 ]
2945 }
2946 ]
2947 },
2948 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002949 "name" : "act_9",
Charles Chancd03f072018-08-31 17:46:37 -07002950 "id" : 42,
Carmelo Casconea5400af2018-07-17 22:11:54 +02002951 "runtime_data" : [],
2952 "primitives" : [
2953 {
2954 "op" : "assign",
2955 "parameters" : [
2956 {
2957 "type" : "field",
2958 "value" : ["scalars", "next_tmp_2"]
2959 },
2960 {
2961 "type" : "expression",
2962 "value" : {
2963 "type" : "expression",
2964 "value" : {
2965 "op" : "b2d",
2966 "left" : null,
2967 "right" : {
2968 "type" : "bool",
2969 "value" : true
2970 }
2971 }
2972 }
2973 }
2974 ]
2975 }
2976 ]
2977 },
2978 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002979 "name" : "act_10",
Charles Chancd03f072018-08-31 17:46:37 -07002980 "id" : 43,
Carmelo Casconea5400af2018-07-17 22:11:54 +02002981 "runtime_data" : [],
2982 "primitives" : [
2983 {
2984 "op" : "assign",
2985 "parameters" : [
2986 {
2987 "type" : "field",
2988 "value" : ["scalars", "next_tmp_2"]
2989 },
2990 {
2991 "type" : "expression",
2992 "value" : {
2993 "type" : "expression",
2994 "value" : {
2995 "op" : "b2d",
2996 "left" : null,
2997 "right" : {
2998 "type" : "bool",
2999 "value" : false
3000 }
3001 }
3002 }
3003 }
3004 ]
3005 }
3006 ]
3007 },
3008 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003009 "name" : "act_11",
Charles Chancd03f072018-08-31 17:46:37 -07003010 "id" : 44,
Carmelo Casconea5400af2018-07-17 22:11:54 +02003011 "runtime_data" : [],
3012 "primitives" : [
3013 {
3014 "op" : "assign",
3015 "parameters" : [
3016 {
3017 "type" : "field",
3018 "value" : ["scalars", "next_hasReturned_0"]
3019 },
3020 {
3021 "type" : "expression",
3022 "value" : {
3023 "type" : "expression",
3024 "value" : {
3025 "op" : "b2d",
3026 "left" : null,
3027 "right" : {
3028 "type" : "bool",
3029 "value" : true
3030 }
3031 }
3032 }
3033 }
3034 ],
3035 "source_info" : {
3036 "filename" : "include/control/next.p4",
3037 "line" : 223,
3038 "column" : 20,
3039 "source_fragment" : "return"
3040 }
3041 }
3042 ]
3043 },
3044 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003045 "name" : "act_12",
Charles Chancd03f072018-08-31 17:46:37 -07003046 "id" : 45,
Carmelo Casconea5400af2018-07-17 22:11:54 +02003047 "runtime_data" : [],
3048 "primitives" : [
3049 {
3050 "op" : "assign",
3051 "parameters" : [
3052 {
3053 "type" : "field",
Yi Tseng1d842672017-11-28 16:06:52 -08003054 "value" : ["ipv4", "ttl"]
3055 },
3056 {
3057 "type" : "expression",
3058 "value" : {
3059 "type" : "expression",
3060 "value" : {
3061 "op" : "&",
3062 "left" : {
3063 "type" : "expression",
3064 "value" : {
3065 "op" : "+",
3066 "left" : {
3067 "type" : "field",
3068 "value" : ["ipv4", "ttl"]
3069 },
3070 "right" : {
3071 "type" : "hexstr",
3072 "value" : "0xff"
3073 }
3074 }
3075 },
3076 "right" : {
3077 "type" : "hexstr",
3078 "value" : "0xff"
3079 }
3080 }
3081 }
3082 }
3083 ],
3084 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003085 "filename" : "include/control/next.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02003086 "line" : 230,
3087 "column" : 16,
Yi Tseng1d842672017-11-28 16:06:52 -08003088 "source_fragment" : "hdr.ipv4.ttl = hdr.ipv4.ttl - 1"
3089 }
3090 }
3091 ]
3092 },
3093 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003094 "name" : "act_13",
Charles Chancd03f072018-08-31 17:46:37 -07003095 "id" : 46,
Yi Tseng1d842672017-11-28 16:06:52 -08003096 "runtime_data" : [],
3097 "primitives" : [
3098 {
3099 "op" : "assign",
3100 "parameters" : [
3101 {
3102 "type" : "field",
Yi Tsengc6844f52017-12-19 11:58:25 -08003103 "value" : ["scalars", "tmp_0"]
Yi Tsengbe342052017-11-03 10:21:23 -07003104 },
3105 {
3106 "type" : "expression",
3107 "value" : {
3108 "type" : "expression",
3109 "value" : {
3110 "op" : "&",
3111 "left" : {
3112 "type" : "field",
3113 "value" : ["standard_metadata", "egress_spec"]
3114 },
3115 "right" : {
3116 "type" : "hexstr",
3117 "value" : "0xffffffff"
3118 }
3119 }
3120 }
3121 }
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003122 ],
3123 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003124 "filename" : "include/control/port_counter.p4",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003125 "line" : 28,
3126 "column" : 38,
3127 "source_fragment" : "(bit<32>)standard_metadata.egress_spec"
3128 }
Yi Tsengbe342052017-11-03 10:21:23 -07003129 },
3130 {
3131 "op" : "count",
3132 "parameters" : [
3133 {
3134 "type" : "counter_array",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003135 "value" : "FabricIngress.port_counters_control.egress_port_counter"
Yi Tsengbe342052017-11-03 10:21:23 -07003136 },
3137 {
3138 "type" : "field",
Yi Tsengc6844f52017-12-19 11:58:25 -08003139 "value" : ["scalars", "tmp_0"]
Yi Tsengbe342052017-11-03 10:21:23 -07003140 }
3141 ],
3142 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003143 "filename" : "include/control/port_counter.p4",
Yi Tsengbe342052017-11-03 10:21:23 -07003144 "line" : 28,
3145 "column" : 12,
3146 "source_fragment" : "egress_port_counter.count((bit<32>)standard_metadata.egress_spec)"
3147 }
3148 }
3149 ]
3150 },
3151 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003152 "name" : "act_14",
Charles Chancd03f072018-08-31 17:46:37 -07003153 "id" : 47,
Yi Tsengbe342052017-11-03 10:21:23 -07003154 "runtime_data" : [],
3155 "primitives" : [
3156 {
3157 "op" : "assign",
3158 "parameters" : [
3159 {
3160 "type" : "field",
Yi Tsengc6844f52017-12-19 11:58:25 -08003161 "value" : ["scalars", "tmp_1"]
Yi Tsengbe342052017-11-03 10:21:23 -07003162 },
3163 {
3164 "type" : "expression",
3165 "value" : {
3166 "type" : "expression",
3167 "value" : {
3168 "op" : "&",
3169 "left" : {
3170 "type" : "field",
3171 "value" : ["standard_metadata", "ingress_port"]
3172 },
3173 "right" : {
3174 "type" : "hexstr",
3175 "value" : "0xffffffff"
3176 }
3177 }
3178 }
3179 }
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003180 ],
3181 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003182 "filename" : "include/control/port_counter.p4",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003183 "line" : 31,
3184 "column" : 39,
3185 "source_fragment" : "(bit<32>)standard_metadata.ingress_port"
3186 }
Yi Tsengbe342052017-11-03 10:21:23 -07003187 },
3188 {
3189 "op" : "count",
3190 "parameters" : [
3191 {
3192 "type" : "counter_array",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003193 "value" : "FabricIngress.port_counters_control.ingress_port_counter"
Yi Tsengbe342052017-11-03 10:21:23 -07003194 },
3195 {
3196 "type" : "field",
Yi Tsengc6844f52017-12-19 11:58:25 -08003197 "value" : ["scalars", "tmp_1"]
Yi Tsengbe342052017-11-03 10:21:23 -07003198 }
3199 ],
3200 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003201 "filename" : "include/control/port_counter.p4",
Yi Tsengbe342052017-11-03 10:21:23 -07003202 "line" : 31,
3203 "column" : 12,
3204 "source_fragment" : "ingress_port_counter.count((bit<32>)standard_metadata.ingress_port)"
3205 }
3206 }
3207 ]
3208 },
3209 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003210 "name" : "nop",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003211 "id" : 48,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003212 "runtime_data" : [],
Charles Chancd03f072018-08-31 17:46:37 -07003213 "primitives" : []
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003214 },
3215 {
3216 "name" : "drop_now",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003217 "id" : 49,
Carmelo Casconea5400af2018-07-17 22:11:54 +02003218 "runtime_data" : [],
3219 "primitives" : [
3220 {
3221 "op" : "drop",
3222 "parameters" : [],
3223 "source_info" : {
3224 "filename" : "include/control/../action.p4",
3225 "line" : 24,
3226 "column" : 4,
3227 "source_fragment" : "mark_to_drop()"
3228 }
3229 },
3230 {
3231 "op" : "exit",
3232 "parameters" : [],
3233 "source_info" : {
3234 "filename" : "include/control/../action.p4",
3235 "line" : 25,
3236 "column" : 4,
3237 "source_fragment" : "exit"
3238 }
3239 }
3240 ]
3241 },
3242 {
Charles Chancd03f072018-08-31 17:46:37 -07003243 "name" : "drop_now",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003244 "id" : 50,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003245 "runtime_data" : [],
3246 "primitives" : [
3247 {
Charles Chancd03f072018-08-31 17:46:37 -07003248 "op" : "drop",
3249 "parameters" : [],
3250 "source_info" : {
3251 "filename" : "include/control/../action.p4",
3252 "line" : 24,
3253 "column" : 4,
3254 "source_fragment" : "mark_to_drop()"
3255 }
3256 },
3257 {
3258 "op" : "exit",
3259 "parameters" : [],
3260 "source_info" : {
3261 "filename" : "include/control/../action.p4",
3262 "line" : 25,
3263 "column" : 4,
3264 "source_fragment" : "exit"
3265 }
3266 }
3267 ]
3268 },
3269 {
3270 "name" : "FabricEgress.pkt_io_egress.pop_vlan",
3271 "id" : 51,
3272 "runtime_data" : [],
3273 "primitives" : [
3274 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003275 "op" : "assign",
3276 "parameters" : [
3277 {
3278 "type" : "field",
3279 "value" : ["ethernet", "ether_type"]
3280 },
3281 {
3282 "type" : "field",
3283 "value" : ["vlan_tag", "ether_type"]
3284 }
3285 ],
3286 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003287 "filename" : "include/control/packetio.p4",
Carmelo Cascone79a3a312018-08-16 17:14:43 -07003288 "line" : 40,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003289 "column" : 8,
3290 "source_fragment" : "hdr.ethernet.ether_type = hdr.vlan_tag.ether_type"
3291 }
3292 },
3293 {
3294 "op" : "remove_header",
3295 "parameters" : [
3296 {
3297 "type" : "header",
3298 "value" : "vlan_tag"
3299 }
3300 ],
3301 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003302 "filename" : "include/control/packetio.p4",
Carmelo Cascone79a3a312018-08-16 17:14:43 -07003303 "line" : 41,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003304 "column" : 8,
3305 "source_fragment" : "hdr.vlan_tag.setInvalid()"
3306 }
3307 }
3308 ]
3309 },
3310 {
3311 "name" : "FabricEgress.egress_next.pop_vlan",
Charles Chancd03f072018-08-31 17:46:37 -07003312 "id" : 52,
Yi Tseng1d842672017-11-28 16:06:52 -08003313 "runtime_data" : [],
3314 "primitives" : [
3315 {
3316 "op" : "assign",
3317 "parameters" : [
3318 {
3319 "type" : "field",
3320 "value" : ["ethernet", "ether_type"]
3321 },
3322 {
3323 "type" : "field",
Yi Tsengbd46d052018-01-22 17:18:16 -08003324 "value" : ["vlan_tag", "ether_type"]
Yi Tseng1d842672017-11-28 16:06:52 -08003325 }
3326 ],
3327 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003328 "filename" : "include/control/next.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02003329 "line" : 253,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003330 "column" : 8,
Yi Tsengbd46d052018-01-22 17:18:16 -08003331 "source_fragment" : "hdr.ethernet.ether_type = hdr.vlan_tag.ether_type"
Yi Tseng1d842672017-11-28 16:06:52 -08003332 }
Yi Tsengbd46d052018-01-22 17:18:16 -08003333 },
Yi Tsengbe342052017-11-03 10:21:23 -07003334 {
3335 "op" : "remove_header",
3336 "parameters" : [
3337 {
3338 "type" : "header",
3339 "value" : "vlan_tag"
3340 }
3341 ],
3342 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003343 "filename" : "include/control/next.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02003344 "line" : 254,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003345 "column" : 8,
Yi Tsengbe342052017-11-03 10:21:23 -07003346 "source_fragment" : "hdr.vlan_tag.setInvalid()"
3347 }
3348 }
3349 ]
3350 },
3351 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003352 "name" : "act_15",
Charles Chancd03f072018-08-31 17:46:37 -07003353 "id" : 53,
Yi Tsengbe342052017-11-03 10:21:23 -07003354 "runtime_data" : [],
3355 "primitives" : [
3356 {
3357 "op" : "add_header",
3358 "parameters" : [
3359 {
3360 "type" : "header",
3361 "value" : "packet_in"
3362 }
3363 ],
3364 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003365 "filename" : "include/control/packetio.p4",
Carmelo Cascone79a3a312018-08-16 17:14:43 -07003366 "line" : 57,
Yi Tsengbe342052017-11-03 10:21:23 -07003367 "column" : 12,
3368 "source_fragment" : "hdr.packet_in.setValid()"
3369 }
3370 },
3371 {
3372 "op" : "assign",
3373 "parameters" : [
3374 {
3375 "type" : "field",
3376 "value" : ["packet_in", "ingress_port"]
3377 },
3378 {
3379 "type" : "field",
3380 "value" : ["standard_metadata", "ingress_port"]
3381 }
3382 ],
3383 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003384 "filename" : "include/control/packetio.p4",
Carmelo Cascone79a3a312018-08-16 17:14:43 -07003385 "line" : 58,
Yi Tsengbe342052017-11-03 10:21:23 -07003386 "column" : 12,
3387 "source_fragment" : "hdr.packet_in.ingress_port = standard_metadata.ingress_port"
3388 }
3389 }
3390 ]
Yi Tsengbe342052017-11-03 10:21:23 -07003391 }
3392 ],
3393 "pipelines" : [
3394 {
3395 "name" : "ingress",
3396 "id" : 0,
3397 "source_info" : {
3398 "filename" : "fabric.p4",
Carmelo Cascone79a3a312018-08-16 17:14:43 -07003399 "line" : 40,
Yi Tsengbe342052017-11-03 10:21:23 -07003400 "column" : 8,
3401 "source_fragment" : "FabricIngress"
3402 },
3403 "init_table" : "node_2",
3404 "tables" : [
3405 {
3406 "name" : "tbl_act",
3407 "id" : 0,
3408 "key" : [],
3409 "match_type" : "exact",
3410 "type" : "simple",
3411 "max_size" : 1024,
3412 "with_counters" : false,
3413 "support_timeout" : false,
3414 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07003415 "action_ids" : [32],
Yi Tsengbe342052017-11-03 10:21:23 -07003416 "actions" : ["act"],
3417 "base_default_next" : null,
3418 "next_tables" : {
3419 "act" : null
3420 },
3421 "default_entry" : {
Charles Chancd03f072018-08-31 17:46:37 -07003422 "action_id" : 32,
Yi Tsengbe342052017-11-03 10:21:23 -07003423 "action_const" : true,
3424 "action_data" : [],
3425 "action_entry_const" : true
3426 }
3427 },
3428 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003429 "name" : "FabricIngress.filtering.ingress_port_vlan",
Yi Tsengbe342052017-11-03 10:21:23 -07003430 "id" : 1,
3431 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003432 "filename" : "include/control/filtering.p4",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003433 "line" : 66,
Yi Tsengbe342052017-11-03 10:21:23 -07003434 "column" : 10,
3435 "source_fragment" : "ingress_port_vlan"
3436 },
3437 "key" : [
3438 {
3439 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003440 "name" : "standard_metadata.ingress_port",
Yi Tsengbe342052017-11-03 10:21:23 -07003441 "target" : ["standard_metadata", "ingress_port"],
3442 "mask" : null
3443 },
3444 {
3445 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003446 "name" : "hdr.vlan_tag.is_valid",
Yi Tsengbe342052017-11-03 10:21:23 -07003447 "target" : ["vlan_tag", "$valid$"],
3448 "mask" : null
3449 },
3450 {
3451 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003452 "name" : "hdr.vlan_tag.vlan_id",
Yi Tsengbe342052017-11-03 10:21:23 -07003453 "target" : ["vlan_tag", "vlan_id"],
3454 "mask" : null
3455 }
3456 ],
3457 "match_type" : "ternary",
3458 "type" : "simple",
3459 "max_size" : 1024,
Yi Tsengbd46d052018-01-22 17:18:16 -08003460 "with_counters" : true,
Yi Tsengbe342052017-11-03 10:21:23 -07003461 "support_timeout" : false,
3462 "direct_meters" : null,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003463 "action_ids" : [9, 8, 7, 10],
3464 "actions" : ["FabricIngress.filtering.push_internal_vlan", "FabricIngress.filtering.set_vlan", "FabricIngress.filtering.drop", "FabricIngress.filtering.nop_ingress_port_vlan"],
3465 "base_default_next" : null,
Yi Tsengbe342052017-11-03 10:21:23 -07003466 "next_tables" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003467 "__HIT__" : "tbl_act_0",
3468 "__MISS__" : "tbl_act_1"
Yi Tsengbe342052017-11-03 10:21:23 -07003469 },
3470 "default_entry" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003471 "action_id" : 9,
3472 "action_const" : true,
3473 "action_data" : ["0xffe"],
3474 "action_entry_const" : true
3475 }
3476 },
3477 {
3478 "name" : "tbl_act_0",
3479 "id" : 2,
3480 "key" : [],
3481 "match_type" : "exact",
3482 "type" : "simple",
3483 "max_size" : 1024,
3484 "with_counters" : false,
3485 "support_timeout" : false,
3486 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07003487 "action_ids" : [33],
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003488 "actions" : ["act_0"],
3489 "base_default_next" : "node_7",
3490 "next_tables" : {
3491 "act_0" : "node_7"
3492 },
3493 "default_entry" : {
Charles Chancd03f072018-08-31 17:46:37 -07003494 "action_id" : 33,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003495 "action_const" : true,
3496 "action_data" : [],
3497 "action_entry_const" : true
3498 }
3499 },
3500 {
3501 "name" : "tbl_act_1",
3502 "id" : 3,
3503 "key" : [],
3504 "match_type" : "exact",
3505 "type" : "simple",
3506 "max_size" : 1024,
3507 "with_counters" : false,
3508 "support_timeout" : false,
3509 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07003510 "action_ids" : [34],
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003511 "actions" : ["act_1"],
3512 "base_default_next" : "node_7",
3513 "next_tables" : {
3514 "act_1" : "node_7"
3515 },
3516 "default_entry" : {
Charles Chancd03f072018-08-31 17:46:37 -07003517 "action_id" : 34,
Yi Tsengbe342052017-11-03 10:21:23 -07003518 "action_const" : true,
3519 "action_data" : [],
3520 "action_entry_const" : true
3521 }
3522 },
3523 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003524 "name" : "FabricIngress.filtering.fwd_classifier",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003525 "id" : 4,
Yi Tsengbe342052017-11-03 10:21:23 -07003526 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003527 "filename" : "include/control/filtering.p4",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003528 "line" : 103,
Yi Tsengbe342052017-11-03 10:21:23 -07003529 "column" : 10,
3530 "source_fragment" : "fwd_classifier"
3531 },
3532 "key" : [
3533 {
3534 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003535 "name" : "standard_metadata.ingress_port",
Yi Tsengbe342052017-11-03 10:21:23 -07003536 "target" : ["standard_metadata", "ingress_port"],
3537 "mask" : null
3538 },
3539 {
Charles Chan384aea22018-08-23 22:08:02 -07003540 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003541 "name" : "hdr.ethernet.dst_addr",
Yi Tsengbe342052017-11-03 10:21:23 -07003542 "target" : ["ethernet", "dst_addr"],
3543 "mask" : null
3544 },
3545 {
3546 "match_type" : "exact",
Yi Tseng8235a1a2018-07-24 20:57:28 +08003547 "name" : "hdr.vlan_tag.ether_type",
3548 "target" : ["vlan_tag", "ether_type"],
Yi Tsengbe342052017-11-03 10:21:23 -07003549 "mask" : null
3550 }
3551 ],
Charles Chan384aea22018-08-23 22:08:02 -07003552 "match_type" : "ternary",
Yi Tsengbe342052017-11-03 10:21:23 -07003553 "type" : "simple",
3554 "max_size" : 1024,
Yi Tsengbd46d052018-01-22 17:18:16 -08003555 "with_counters" : true,
Yi Tsengbe342052017-11-03 10:21:23 -07003556 "support_timeout" : false,
3557 "direct_meters" : null,
Charles Chancf696e52018-08-16 16:25:13 -07003558 "action_ids" : [11],
Yi Tseng27b9bc02018-04-12 14:52:40 +08003559 "actions" : ["FabricIngress.filtering.set_forwarding_type"],
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003560 "base_default_next" : "node_10",
Yi Tsengbe342052017-11-03 10:21:23 -07003561 "next_tables" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003562 "FabricIngress.filtering.set_forwarding_type" : "node_10"
Yi Tsengbe342052017-11-03 10:21:23 -07003563 },
3564 "default_entry" : {
Charles Chancf696e52018-08-16 16:25:13 -07003565 "action_id" : 11,
Yi Tsengbe342052017-11-03 10:21:23 -07003566 "action_const" : true,
3567 "action_data" : ["0x0"],
3568 "action_entry_const" : true
3569 }
3570 },
3571 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003572 "name" : "tbl_act_2",
3573 "id" : 5,
3574 "key" : [],
3575 "match_type" : "exact",
3576 "type" : "simple",
3577 "max_size" : 1024,
3578 "with_counters" : false,
3579 "support_timeout" : false,
3580 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07003581 "action_ids" : [35],
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003582 "actions" : ["act_2"],
3583 "base_default_next" : "node_10",
3584 "next_tables" : {
3585 "act_2" : "node_10"
3586 },
3587 "default_entry" : {
Charles Chancd03f072018-08-31 17:46:37 -07003588 "action_id" : 35,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003589 "action_const" : true,
3590 "action_data" : [],
3591 "action_entry_const" : true
3592 }
3593 },
3594 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003595 "name" : "FabricIngress.forwarding.bridging",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003596 "id" : 6,
Yi Tsengbe342052017-11-03 10:21:23 -07003597 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003598 "filename" : "include/control/forwarding.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08003599 "line" : 41,
Yi Tsengbe342052017-11-03 10:21:23 -07003600 "column" : 10,
3601 "source_fragment" : "bridging"
3602 },
3603 "key" : [
3604 {
3605 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003606 "name" : "hdr.vlan_tag.vlan_id",
Yi Tsengbe342052017-11-03 10:21:23 -07003607 "target" : ["vlan_tag", "vlan_id"],
3608 "mask" : null
3609 },
3610 {
3611 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003612 "name" : "hdr.ethernet.dst_addr",
Yi Tsengbe342052017-11-03 10:21:23 -07003613 "target" : ["ethernet", "dst_addr"],
3614 "mask" : null
3615 }
3616 ],
3617 "match_type" : "ternary",
3618 "type" : "simple",
3619 "max_size" : 1024,
Yi Tsengbd46d052018-01-22 17:18:16 -08003620 "with_counters" : true,
Yi Tsengbe342052017-11-03 10:21:23 -07003621 "support_timeout" : false,
3622 "direct_meters" : null,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003623 "action_ids" : [12, 0],
Yi Tseng47eac892018-07-11 02:17:04 +08003624 "actions" : ["FabricIngress.forwarding.set_next_id_bridging", "NoAction"],
Yi Tseng27b9bc02018-04-12 14:52:40 +08003625 "base_default_next" : "FabricIngress.forwarding.acl",
Yi Tseng1d842672017-11-28 16:06:52 -08003626 "next_tables" : {
Yi Tseng47eac892018-07-11 02:17:04 +08003627 "FabricIngress.forwarding.set_next_id_bridging" : "FabricIngress.forwarding.acl",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003628 "NoAction" : "FabricIngress.forwarding.acl"
Yi Tseng1d842672017-11-28 16:06:52 -08003629 },
3630 "default_entry" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003631 "action_id" : 0,
Yi Tseng1d842672017-11-28 16:06:52 -08003632 "action_const" : false,
3633 "action_data" : [],
3634 "action_entry_const" : false
3635 }
3636 },
3637 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003638 "name" : "FabricIngress.forwarding.mpls",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003639 "id" : 7,
Yi Tseng1d842672017-11-28 16:06:52 -08003640 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003641 "filename" : "include/control/forwarding.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08003642 "line" : 65,
Yi Tseng1d842672017-11-28 16:06:52 -08003643 "column" : 10,
3644 "source_fragment" : "mpls"
3645 },
3646 "key" : [
3647 {
3648 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003649 "name" : "hdr.mpls.label",
Yi Tseng1d842672017-11-28 16:06:52 -08003650 "target" : ["mpls", "label"],
3651 "mask" : null
3652 }
3653 ],
3654 "match_type" : "exact",
3655 "type" : "simple",
3656 "max_size" : 1024,
Yi Tsengbd46d052018-01-22 17:18:16 -08003657 "with_counters" : true,
Yi Tseng1d842672017-11-28 16:06:52 -08003658 "support_timeout" : false,
3659 "direct_meters" : null,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003660 "action_ids" : [13, 1],
Yi Tseng27b9bc02018-04-12 14:52:40 +08003661 "actions" : ["FabricIngress.forwarding.pop_mpls_and_next", "NoAction"],
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003662 "base_default_next" : "tbl_act_3",
Yi Tseng1d842672017-11-28 16:06:52 -08003663 "next_tables" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003664 "FabricIngress.forwarding.pop_mpls_and_next" : "tbl_act_3",
3665 "NoAction" : "tbl_act_3"
Yi Tseng1d842672017-11-28 16:06:52 -08003666 },
3667 "default_entry" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003668 "action_id" : 1,
Yi Tseng1d842672017-11-28 16:06:52 -08003669 "action_const" : false,
3670 "action_data" : [],
3671 "action_entry_const" : false
3672 }
3673 },
3674 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003675 "name" : "tbl_act_3",
3676 "id" : 8,
Yi Tseng1d842672017-11-28 16:06:52 -08003677 "key" : [],
3678 "match_type" : "exact",
3679 "type" : "simple",
3680 "max_size" : 1024,
3681 "with_counters" : false,
3682 "support_timeout" : false,
3683 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07003684 "action_ids" : [36],
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003685 "actions" : ["act_3"],
Yi Tseng27b9bc02018-04-12 14:52:40 +08003686 "base_default_next" : "FabricIngress.forwarding.acl",
Yi Tseng1d842672017-11-28 16:06:52 -08003687 "next_tables" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003688 "act_3" : "FabricIngress.forwarding.acl"
Yi Tseng1d842672017-11-28 16:06:52 -08003689 },
3690 "default_entry" : {
Charles Chancd03f072018-08-31 17:46:37 -07003691 "action_id" : 36,
Yi Tseng1d842672017-11-28 16:06:52 -08003692 "action_const" : true,
3693 "action_data" : [],
3694 "action_entry_const" : true
3695 }
3696 },
3697 {
Charles Chan384aea22018-08-23 22:08:02 -07003698 "name" : "FabricIngress.forwarding.routing_v4",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003699 "id" : 9,
Yi Tseng1d842672017-11-28 16:06:52 -08003700 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003701 "filename" : "include/control/forwarding.p4",
Charles Chancd03f072018-08-31 17:46:37 -07003702 "line" : 91,
Yi Tseng1d842672017-11-28 16:06:52 -08003703 "column" : 10,
Charles Chan384aea22018-08-23 22:08:02 -07003704 "source_fragment" : "routing_v4"
Yi Tseng1d842672017-11-28 16:06:52 -08003705 },
3706 "key" : [
3707 {
3708 "match_type" : "lpm",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003709 "name" : "hdr.ipv4.dst_addr",
Yi Tseng1d842672017-11-28 16:06:52 -08003710 "target" : ["ipv4", "dst_addr"],
3711 "mask" : null
3712 }
3713 ],
3714 "match_type" : "lpm",
3715 "type" : "simple",
3716 "max_size" : 1024,
Yi Tsengbd46d052018-01-22 17:18:16 -08003717 "with_counters" : true,
Yi Tseng1d842672017-11-28 16:06:52 -08003718 "support_timeout" : false,
3719 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07003720 "action_ids" : [14, 15, 2],
3721 "actions" : ["FabricIngress.forwarding.set_next_id_routing_v4", "FabricIngress.forwarding.nop_routing_v4", "NoAction"],
Yi Tseng27b9bc02018-04-12 14:52:40 +08003722 "base_default_next" : "FabricIngress.forwarding.acl",
Yi Tsengbe342052017-11-03 10:21:23 -07003723 "next_tables" : {
Charles Chan384aea22018-08-23 22:08:02 -07003724 "FabricIngress.forwarding.set_next_id_routing_v4" : "FabricIngress.forwarding.acl",
Charles Chancd03f072018-08-31 17:46:37 -07003725 "FabricIngress.forwarding.nop_routing_v4" : "FabricIngress.forwarding.acl",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003726 "NoAction" : "FabricIngress.forwarding.acl"
Yi Tsengbe342052017-11-03 10:21:23 -07003727 },
3728 "default_entry" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003729 "action_id" : 2,
Yi Tsengbe342052017-11-03 10:21:23 -07003730 "action_const" : false,
3731 "action_data" : [],
3732 "action_entry_const" : false
3733 }
3734 },
3735 {
Carmelo Casconef645e842018-07-16 18:31:52 +02003736 "name" : "FabricIngress.forwarding.acl",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003737 "id" : 10,
Yi Tsengbe342052017-11-03 10:21:23 -07003738 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003739 "filename" : "include/control/forwarding.p4",
Charles Chancd03f072018-08-31 17:46:37 -07003740 "line" : 136,
Yi Tsengbe342052017-11-03 10:21:23 -07003741 "column" : 10,
Yi Tsengbe342052017-11-03 10:21:23 -07003742 "source_fragment" : "acl"
3743 },
3744 "key" : [
3745 {
3746 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003747 "name" : "standard_metadata.ingress_port",
Yi Tsengbe342052017-11-03 10:21:23 -07003748 "target" : ["standard_metadata", "ingress_port"],
3749 "mask" : null
3750 },
3751 {
3752 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003753 "name" : "fabric_metadata.ip_proto",
Yi Tsengbe342052017-11-03 10:21:23 -07003754 "target" : ["scalars", "fabric_metadata_t.ip_proto"],
3755 "mask" : null
3756 },
3757 {
3758 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003759 "name" : "fabric_metadata.l4_src_port",
Yi Tseng1d842672017-11-28 16:06:52 -08003760 "target" : ["scalars", "fabric_metadata_t.l4_src_port"],
3761 "mask" : null
3762 },
3763 {
3764 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003765 "name" : "fabric_metadata.l4_dst_port",
Yi Tseng1d842672017-11-28 16:06:52 -08003766 "target" : ["scalars", "fabric_metadata_t.l4_dst_port"],
3767 "mask" : null
3768 },
3769 {
3770 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003771 "name" : "hdr.ethernet.dst_addr",
Yi Tsengbe342052017-11-03 10:21:23 -07003772 "target" : ["ethernet", "dst_addr"],
3773 "mask" : null
3774 },
3775 {
3776 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003777 "name" : "hdr.ethernet.src_addr",
Yi Tsengbe342052017-11-03 10:21:23 -07003778 "target" : ["ethernet", "src_addr"],
3779 "mask" : null
3780 },
3781 {
3782 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003783 "name" : "hdr.vlan_tag.vlan_id",
Yi Tsengbe342052017-11-03 10:21:23 -07003784 "target" : ["vlan_tag", "vlan_id"],
3785 "mask" : null
3786 },
3787 {
3788 "match_type" : "ternary",
Yi Tseng8235a1a2018-07-24 20:57:28 +08003789 "name" : "hdr.vlan_tag.ether_type",
3790 "target" : ["vlan_tag", "ether_type"],
3791 "mask" : null
3792 },
3793 {
3794 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003795 "name" : "hdr.ipv4.src_addr",
Yi Tsengbe342052017-11-03 10:21:23 -07003796 "target" : ["ipv4", "src_addr"],
3797 "mask" : null
3798 },
3799 {
3800 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003801 "name" : "hdr.ipv4.dst_addr",
Yi Tsengbe342052017-11-03 10:21:23 -07003802 "target" : ["ipv4", "dst_addr"],
3803 "mask" : null
3804 },
3805 {
3806 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003807 "name" : "hdr.icmp.icmp_type",
Yi Tsengbe342052017-11-03 10:21:23 -07003808 "target" : ["icmp", "icmp_type"],
3809 "mask" : null
3810 },
3811 {
3812 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003813 "name" : "hdr.icmp.icmp_code",
Yi Tsengbe342052017-11-03 10:21:23 -07003814 "target" : ["icmp", "icmp_code"],
3815 "mask" : null
3816 }
3817 ],
3818 "match_type" : "ternary",
3819 "type" : "simple",
Yi Tseng8235a1a2018-07-24 20:57:28 +08003820 "max_size" : 128,
Yi Tsengbd46d052018-01-22 17:18:16 -08003821 "with_counters" : true,
Yi Tsengbe342052017-11-03 10:21:23 -07003822 "support_timeout" : false,
3823 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07003824 "action_ids" : [16, 17, 18, 19, 20],
Charles Chancf696e52018-08-16 16:25:13 -07003825 "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 -07003826 "base_default_next" : "tbl_act_4",
Yi Tsengbe342052017-11-03 10:21:23 -07003827 "next_tables" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003828 "FabricIngress.forwarding.set_next_id_acl" : "tbl_act_4",
3829 "FabricIngress.forwarding.punt_to_cpu" : "tbl_act_4",
3830 "FabricIngress.forwarding.clone_to_cpu" : "tbl_act_4",
3831 "FabricIngress.forwarding.drop" : "tbl_act_4",
3832 "FabricIngress.forwarding.nop_acl" : "tbl_act_4"
Yi Tsengbe342052017-11-03 10:21:23 -07003833 },
3834 "default_entry" : {
Charles Chancd03f072018-08-31 17:46:37 -07003835 "action_id" : 20,
Yi Tsengbe342052017-11-03 10:21:23 -07003836 "action_const" : true,
3837 "action_data" : [],
3838 "action_entry_const" : true
3839 }
3840 },
3841 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003842 "name" : "tbl_act_4",
3843 "id" : 11,
Carmelo Casconea5400af2018-07-17 22:11:54 +02003844 "key" : [],
3845 "match_type" : "exact",
3846 "type" : "simple",
3847 "max_size" : 1024,
3848 "with_counters" : false,
3849 "support_timeout" : false,
3850 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07003851 "action_ids" : [37],
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003852 "actions" : ["act_4"],
Carmelo Casconea5400af2018-07-17 22:11:54 +02003853 "base_default_next" : "FabricIngress.next.vlan_meta",
3854 "next_tables" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003855 "act_4" : "FabricIngress.next.vlan_meta"
Carmelo Casconea5400af2018-07-17 22:11:54 +02003856 },
3857 "default_entry" : {
Charles Chancd03f072018-08-31 17:46:37 -07003858 "action_id" : 37,
Carmelo Casconea5400af2018-07-17 22:11:54 +02003859 "action_const" : true,
3860 "action_data" : [],
3861 "action_entry_const" : true
3862 }
3863 },
3864 {
3865 "name" : "FabricIngress.next.vlan_meta",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003866 "id" : 12,
Yi Tsengbe342052017-11-03 10:21:23 -07003867 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003868 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08003869 "line" : 65,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003870 "column" : 10,
3871 "source_fragment" : "vlan_meta"
3872 },
3873 "key" : [
3874 {
3875 "match_type" : "exact",
3876 "name" : "fabric_metadata.next_id",
3877 "target" : ["scalars", "fabric_metadata_t.next_id"],
3878 "mask" : null
3879 }
3880 ],
3881 "match_type" : "exact",
3882 "type" : "simple",
3883 "max_size" : 1024,
3884 "with_counters" : true,
3885 "support_timeout" : false,
3886 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07003887 "action_ids" : [21, 6],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003888 "actions" : ["FabricIngress.next.set_vlan", "nop"],
3889 "base_default_next" : "FabricIngress.next.simple",
3890 "next_tables" : {
3891 "FabricIngress.next.set_vlan" : "FabricIngress.next.simple",
3892 "nop" : "FabricIngress.next.simple"
3893 },
3894 "default_entry" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003895 "action_id" : 6,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003896 "action_const" : false,
3897 "action_data" : [],
3898 "action_entry_const" : false
3899 }
3900 },
3901 {
3902 "name" : "FabricIngress.next.simple",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003903 "id" : 13,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003904 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003905 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08003906 "line" : 122,
Yi Tsengbe342052017-11-03 10:21:23 -07003907 "column" : 10,
3908 "source_fragment" : "simple"
3909 },
3910 "key" : [
3911 {
3912 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003913 "name" : "fabric_metadata.next_id",
Yi Tsengbe342052017-11-03 10:21:23 -07003914 "target" : ["scalars", "fabric_metadata_t.next_id"],
3915 "mask" : null
3916 }
3917 ],
3918 "match_type" : "exact",
3919 "type" : "simple",
3920 "max_size" : 1024,
Yi Tsengbd46d052018-01-22 17:18:16 -08003921 "with_counters" : true,
Yi Tsengbe342052017-11-03 10:21:23 -07003922 "support_timeout" : false,
3923 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07003924 "action_ids" : [22, 23, 24, 25, 26, 27, 3],
Yi Tseng47eac892018-07-11 02:17:04 +08003925 "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 -08003926 "base_default_next" : null,
Yi Tsengbe342052017-11-03 10:21:23 -07003927 "next_tables" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003928 "__HIT__" : "tbl_act_5",
3929 "__MISS__" : "tbl_act_6"
Yi Tsengbe342052017-11-03 10:21:23 -07003930 },
3931 "default_entry" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003932 "action_id" : 3,
Yi Tsengbe342052017-11-03 10:21:23 -07003933 "action_const" : false,
3934 "action_data" : [],
3935 "action_entry_const" : false
3936 }
3937 },
3938 {
Carmelo Casconea5400af2018-07-17 22:11:54 +02003939 "name" : "tbl_act_5",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003940 "id" : 14,
Carmelo Casconea5400af2018-07-17 22:11:54 +02003941 "key" : [],
3942 "match_type" : "exact",
3943 "type" : "simple",
3944 "max_size" : 1024,
3945 "with_counters" : false,
3946 "support_timeout" : false,
3947 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07003948 "action_ids" : [38],
Carmelo Casconea5400af2018-07-17 22:11:54 +02003949 "actions" : ["act_5"],
3950 "base_default_next" : "node_23",
3951 "next_tables" : {
3952 "act_5" : "node_23"
3953 },
3954 "default_entry" : {
Charles Chancd03f072018-08-31 17:46:37 -07003955 "action_id" : 38,
Carmelo Casconea5400af2018-07-17 22:11:54 +02003956 "action_const" : true,
3957 "action_data" : [],
3958 "action_entry_const" : true
Esin Karaman971fb7f2017-12-28 13:44:52 +00003959 }
3960 },
3961 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003962 "name" : "tbl_act_6",
3963 "id" : 15,
3964 "key" : [],
3965 "match_type" : "exact",
3966 "type" : "simple",
3967 "max_size" : 1024,
3968 "with_counters" : false,
3969 "support_timeout" : false,
3970 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07003971 "action_ids" : [39],
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003972 "actions" : ["act_6"],
3973 "base_default_next" : "node_23",
3974 "next_tables" : {
3975 "act_6" : "node_23"
3976 },
3977 "default_entry" : {
Charles Chancd03f072018-08-31 17:46:37 -07003978 "action_id" : 39,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003979 "action_const" : true,
3980 "action_data" : [],
3981 "action_entry_const" : true
3982 }
3983 },
3984 {
3985 "name" : "FabricIngress.next.hashed",
Carmelo Casconea5400af2018-07-17 22:11:54 +02003986 "id" : 16,
Esin Karaman971fb7f2017-12-28 13:44:52 +00003987 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003988 "filename" : "include/control/next.p4",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003989 "line" : 175,
Esin Karaman971fb7f2017-12-28 13:44:52 +00003990 "column" : 10,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003991 "source_fragment" : "hashed"
Esin Karaman971fb7f2017-12-28 13:44:52 +00003992 },
3993 "key" : [
3994 {
3995 "match_type" : "exact",
3996 "name" : "fabric_metadata.next_id",
3997 "target" : ["scalars", "fabric_metadata_t.next_id"],
3998 "mask" : null
3999 }
4000 ],
4001 "match_type" : "exact",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004002 "type" : "indirect_ws",
4003 "action_profile" : "FabricIngress.next.ecmp_selector",
Esin Karaman971fb7f2017-12-28 13:44:52 +00004004 "max_size" : 1024,
4005 "with_counters" : true,
4006 "support_timeout" : false,
4007 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07004008 "action_ids" : [28, 29, 30, 4],
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004009 "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 +02004010 "base_default_next" : null,
Esin Karaman971fb7f2017-12-28 13:44:52 +00004011 "next_tables" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004012 "__HIT__" : "tbl_act_7",
4013 "__MISS__" : "tbl_act_8"
Esin Karaman971fb7f2017-12-28 13:44:52 +00004014 }
4015 },
4016 {
Carmelo Casconea5400af2018-07-17 22:11:54 +02004017 "name" : "tbl_act_7",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004018 "id" : 17,
Esin Karaman971fb7f2017-12-28 13:44:52 +00004019 "key" : [],
4020 "match_type" : "exact",
4021 "type" : "simple",
4022 "max_size" : 1024,
4023 "with_counters" : false,
4024 "support_timeout" : false,
4025 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07004026 "action_ids" : [40],
Carmelo Casconea5400af2018-07-17 22:11:54 +02004027 "actions" : ["act_7"],
4028 "base_default_next" : "node_27",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004029 "next_tables" : {
Carmelo Casconea5400af2018-07-17 22:11:54 +02004030 "act_7" : "node_27"
Yi Tseng27b9bc02018-04-12 14:52:40 +08004031 },
4032 "default_entry" : {
Charles Chancd03f072018-08-31 17:46:37 -07004033 "action_id" : 40,
Carmelo Casconea5400af2018-07-17 22:11:54 +02004034 "action_const" : true,
4035 "action_data" : [],
4036 "action_entry_const" : true
4037 }
4038 },
4039 {
4040 "name" : "tbl_act_8",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004041 "id" : 18,
Carmelo Casconea5400af2018-07-17 22:11:54 +02004042 "key" : [],
4043 "match_type" : "exact",
4044 "type" : "simple",
4045 "max_size" : 1024,
4046 "with_counters" : false,
4047 "support_timeout" : false,
4048 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07004049 "action_ids" : [41],
Carmelo Casconea5400af2018-07-17 22:11:54 +02004050 "actions" : ["act_8"],
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004051 "base_default_next" : "node_27",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004052 "next_tables" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004053 "act_8" : "node_27"
Carmelo Casconea5400af2018-07-17 22:11:54 +02004054 },
4055 "default_entry" : {
Charles Chancd03f072018-08-31 17:46:37 -07004056 "action_id" : 41,
Carmelo Casconea5400af2018-07-17 22:11:54 +02004057 "action_const" : true,
4058 "action_data" : [],
4059 "action_entry_const" : true
4060 }
4061 },
4062 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004063 "name" : "FabricIngress.next.multicast",
4064 "id" : 19,
4065 "source_info" : {
4066 "filename" : "include/control/next.p4",
4067 "line" : 207,
4068 "column" : 10,
4069 "source_fragment" : "multicast"
4070 },
4071 "key" : [
4072 {
4073 "match_type" : "exact",
4074 "name" : "fabric_metadata.next_id",
4075 "target" : ["scalars", "fabric_metadata_t.next_id"],
4076 "mask" : null
4077 }
4078 ],
4079 "match_type" : "exact",
4080 "type" : "simple",
4081 "max_size" : 1024,
4082 "with_counters" : true,
4083 "support_timeout" : false,
4084 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07004085 "action_ids" : [31, 5],
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004086 "actions" : ["FabricIngress.next.set_mcast_group", "NoAction"],
4087 "base_default_next" : null,
4088 "next_tables" : {
4089 "__HIT__" : "tbl_act_9",
4090 "__MISS__" : "tbl_act_10"
4091 },
4092 "default_entry" : {
4093 "action_id" : 5,
4094 "action_const" : false,
4095 "action_data" : [],
4096 "action_entry_const" : false
4097 }
4098 },
4099 {
Carmelo Casconea5400af2018-07-17 22:11:54 +02004100 "name" : "tbl_act_9",
4101 "id" : 20,
4102 "key" : [],
4103 "match_type" : "exact",
4104 "type" : "simple",
4105 "max_size" : 1024,
4106 "with_counters" : false,
4107 "support_timeout" : false,
4108 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07004109 "action_ids" : [42],
Carmelo Casconea5400af2018-07-17 22:11:54 +02004110 "actions" : ["act_9"],
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004111 "base_default_next" : "node_31",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004112 "next_tables" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004113 "act_9" : "node_31"
Carmelo Casconea5400af2018-07-17 22:11:54 +02004114 },
4115 "default_entry" : {
Charles Chancd03f072018-08-31 17:46:37 -07004116 "action_id" : 42,
Carmelo Casconea5400af2018-07-17 22:11:54 +02004117 "action_const" : true,
4118 "action_data" : [],
4119 "action_entry_const" : true
4120 }
4121 },
4122 {
4123 "name" : "tbl_act_10",
4124 "id" : 21,
4125 "key" : [],
4126 "match_type" : "exact",
4127 "type" : "simple",
4128 "max_size" : 1024,
4129 "with_counters" : false,
4130 "support_timeout" : false,
4131 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07004132 "action_ids" : [43],
Carmelo Casconea5400af2018-07-17 22:11:54 +02004133 "actions" : ["act_10"],
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004134 "base_default_next" : "node_31",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004135 "next_tables" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004136 "act_10" : "node_31"
Carmelo Casconea5400af2018-07-17 22:11:54 +02004137 },
4138 "default_entry" : {
Charles Chancd03f072018-08-31 17:46:37 -07004139 "action_id" : 43,
Carmelo Casconea5400af2018-07-17 22:11:54 +02004140 "action_const" : true,
4141 "action_data" : [],
4142 "action_entry_const" : true
4143 }
4144 },
4145 {
4146 "name" : "tbl_act_11",
4147 "id" : 22,
4148 "key" : [],
4149 "match_type" : "exact",
4150 "type" : "simple",
4151 "max_size" : 1024,
4152 "with_counters" : false,
4153 "support_timeout" : false,
4154 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07004155 "action_ids" : [44],
Carmelo Casconea5400af2018-07-17 22:11:54 +02004156 "actions" : ["act_11"],
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004157 "base_default_next" : "node_33",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004158 "next_tables" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004159 "act_11" : "node_33"
Carmelo Casconea5400af2018-07-17 22:11:54 +02004160 },
4161 "default_entry" : {
Charles Chancd03f072018-08-31 17:46:37 -07004162 "action_id" : 44,
Yi Tseng3a5731e2018-01-22 11:38:58 -08004163 "action_const" : true,
4164 "action_data" : [],
4165 "action_entry_const" : true
4166 }
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004167 },
4168 {
4169 "name" : "tbl_act_12",
4170 "id" : 23,
4171 "key" : [],
4172 "match_type" : "exact",
4173 "type" : "simple",
4174 "max_size" : 1024,
4175 "with_counters" : false,
4176 "support_timeout" : false,
4177 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07004178 "action_ids" : [45],
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004179 "actions" : ["act_12"],
4180 "base_default_next" : "node_37",
4181 "next_tables" : {
4182 "act_12" : "node_37"
4183 },
4184 "default_entry" : {
Charles Chancd03f072018-08-31 17:46:37 -07004185 "action_id" : 45,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004186 "action_const" : true,
4187 "action_data" : [],
4188 "action_entry_const" : true
4189 }
4190 },
4191 {
4192 "name" : "tbl_act_13",
4193 "id" : 24,
4194 "key" : [],
4195 "match_type" : "exact",
4196 "type" : "simple",
4197 "max_size" : 1024,
4198 "with_counters" : false,
4199 "support_timeout" : false,
4200 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07004201 "action_ids" : [46],
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004202 "actions" : ["act_13"],
4203 "base_default_next" : "node_39",
4204 "next_tables" : {
4205 "act_13" : "node_39"
4206 },
4207 "default_entry" : {
Charles Chancd03f072018-08-31 17:46:37 -07004208 "action_id" : 46,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004209 "action_const" : true,
4210 "action_data" : [],
4211 "action_entry_const" : true
4212 }
4213 },
4214 {
4215 "name" : "tbl_act_14",
4216 "id" : 25,
4217 "key" : [],
4218 "match_type" : "exact",
4219 "type" : "simple",
4220 "max_size" : 1024,
4221 "with_counters" : false,
4222 "support_timeout" : false,
4223 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07004224 "action_ids" : [47],
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004225 "actions" : ["act_14"],
4226 "base_default_next" : null,
4227 "next_tables" : {
4228 "act_14" : null
4229 },
4230 "default_entry" : {
Charles Chancd03f072018-08-31 17:46:37 -07004231 "action_id" : 47,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004232 "action_const" : true,
4233 "action_data" : [],
4234 "action_entry_const" : true
4235 }
Yi Tsengbe342052017-11-03 10:21:23 -07004236 }
4237 ],
4238 "action_profiles" : [
4239 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004240 "name" : "FabricIngress.next.ecmp_selector",
Yi Tsengbe342052017-11-03 10:21:23 -07004241 "id" : 0,
4242 "max_size" : 64,
4243 "selector" : {
4244 "algo" : "crc16",
4245 "input" : [
4246 {
4247 "type" : "field",
Yi Tseng3d3956d2018-01-31 17:28:05 -08004248 "value" : ["ipv4", "dst_addr"]
Yi Tsengbe342052017-11-03 10:21:23 -07004249 },
4250 {
4251 "type" : "field",
Yi Tseng3d3956d2018-01-31 17:28:05 -08004252 "value" : ["ipv4", "src_addr"]
Yi Tsengbe342052017-11-03 10:21:23 -07004253 },
4254 {
4255 "type" : "field",
Yi Tseng1d842672017-11-28 16:06:52 -08004256 "value" : ["scalars", "fabric_metadata_t.ip_proto"]
Yi Tsengbe342052017-11-03 10:21:23 -07004257 },
4258 {
4259 "type" : "field",
4260 "value" : ["scalars", "fabric_metadata_t.l4_src_port"]
4261 },
4262 {
4263 "type" : "field",
4264 "value" : ["scalars", "fabric_metadata_t.l4_dst_port"]
4265 }
4266 ]
4267 }
4268 }
4269 ],
4270 "conditionals" : [
4271 {
4272 "name" : "node_2",
4273 "id" : 0,
4274 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004275 "filename" : "include/control/packetio.p4",
Yi Tsengbe342052017-11-03 10:21:23 -07004276 "line" : 25,
4277 "column" : 12,
4278 "source_fragment" : "hdr.packet_out.isValid()"
4279 },
4280 "expression" : {
4281 "type" : "expression",
4282 "value" : {
Yi Tsengbd46d052018-01-22 17:18:16 -08004283 "op" : "d2b",
4284 "left" : null,
4285 "right" : {
Yi Tsengbe342052017-11-03 10:21:23 -07004286 "type" : "field",
4287 "value" : ["packet_out", "$valid$"]
Yi Tsengbe342052017-11-03 10:21:23 -07004288 }
4289 }
4290 },
4291 "true_next" : "tbl_act",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004292 "false_next" : "FabricIngress.filtering.ingress_port_vlan"
Yi Tsengbe342052017-11-03 10:21:23 -07004293 },
4294 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004295 "name" : "node_7",
Yi Tsengbe342052017-11-03 10:21:23 -07004296 "id" : 1,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004297 "expression" : {
4298 "type" : "expression",
4299 "value" : {
4300 "op" : "d2b",
4301 "left" : null,
4302 "right" : {
4303 "type" : "field",
4304 "value" : ["scalars", "filtering_tmp_0"]
4305 }
4306 }
4307 },
4308 "true_next" : "FabricIngress.filtering.fwd_classifier",
4309 "false_next" : "tbl_act_2"
4310 },
4311 {
4312 "name" : "node_10",
4313 "id" : 2,
Yi Tsengbe342052017-11-03 10:21:23 -07004314 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004315 "filename" : "include/control/forwarding.p4",
Charles Chancd03f072018-08-31 17:46:37 -07004316 "line" : 191,
Yi Tsengbe342052017-11-03 10:21:23 -07004317 "column" : 11,
4318 "source_fragment" : "fabric_metadata.fwd_type == FWD_BRIDGING"
4319 },
4320 "expression" : {
4321 "type" : "expression",
4322 "value" : {
4323 "op" : "==",
4324 "left" : {
4325 "type" : "field",
4326 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
4327 },
4328 "right" : {
4329 "type" : "hexstr",
4330 "value" : "0x00"
4331 }
4332 }
4333 },
Yi Tseng27b9bc02018-04-12 14:52:40 +08004334 "true_next" : "FabricIngress.forwarding.bridging",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004335 "false_next" : "node_12"
Yi Tsengbe342052017-11-03 10:21:23 -07004336 },
4337 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004338 "name" : "node_12",
4339 "id" : 3,
Yi Tsengbe342052017-11-03 10:21:23 -07004340 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004341 "filename" : "include/control/forwarding.p4",
Charles Chancd03f072018-08-31 17:46:37 -07004342 "line" : 192,
Yi Tsengbe342052017-11-03 10:21:23 -07004343 "column" : 17,
4344 "source_fragment" : "fabric_metadata.fwd_type == FWD_MPLS"
4345 },
4346 "expression" : {
4347 "type" : "expression",
4348 "value" : {
4349 "op" : "==",
4350 "left" : {
4351 "type" : "field",
4352 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
4353 },
4354 "right" : {
4355 "type" : "hexstr",
4356 "value" : "0x01"
4357 }
4358 }
4359 },
Yi Tseng27b9bc02018-04-12 14:52:40 +08004360 "true_next" : "FabricIngress.forwarding.mpls",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004361 "false_next" : "node_15"
Yi Tsengbe342052017-11-03 10:21:23 -07004362 },
4363 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004364 "name" : "node_15",
4365 "id" : 4,
Yi Tsengbe342052017-11-03 10:21:23 -07004366 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004367 "filename" : "include/control/forwarding.p4",
Charles Chancd03f072018-08-31 17:46:37 -07004368 "line" : 198,
Yi Tsengbe342052017-11-03 10:21:23 -07004369 "column" : 17,
4370 "source_fragment" : "fabric_metadata.fwd_type == FWD_IPV4_UNICAST"
4371 },
4372 "expression" : {
4373 "type" : "expression",
4374 "value" : {
4375 "op" : "==",
4376 "left" : {
4377 "type" : "field",
4378 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
4379 },
4380 "right" : {
4381 "type" : "hexstr",
4382 "value" : "0x02"
4383 }
4384 }
4385 },
Charles Chan384aea22018-08-23 22:08:02 -07004386 "true_next" : "FabricIngress.forwarding.routing_v4",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004387 "false_next" : "FabricIngress.forwarding.acl"
4388 },
4389 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004390 "name" : "node_23",
4391 "id" : 5,
Yi Tseng1d842672017-11-28 16:06:52 -08004392 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004393 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08004394 "line" : 219,
Carmelo Casconea5400af2018-07-17 22:11:54 +02004395 "column" : 12,
4396 "source_fragment" : "!simple.apply().hit"
4397 },
4398 "expression" : {
4399 "type" : "expression",
4400 "value" : {
4401 "op" : "not",
4402 "left" : null,
4403 "right" : {
4404 "type" : "expression",
4405 "value" : {
4406 "op" : "d2b",
4407 "left" : null,
4408 "right" : {
4409 "type" : "field",
4410 "value" : ["scalars", "next_tmp_4"]
4411 }
4412 }
4413 }
4414 }
4415 },
4416 "true_next" : "FabricIngress.next.hashed",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004417 "false_next" : "node_33"
Carmelo Casconea5400af2018-07-17 22:11:54 +02004418 },
4419 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004420 "name" : "node_27",
4421 "id" : 6,
Carmelo Casconea5400af2018-07-17 22:11:54 +02004422 "source_info" : {
4423 "filename" : "include/control/next.p4",
4424 "line" : 220,
Yi Tsengbd46d052018-01-22 17:18:16 -08004425 "column" : 16,
Carmelo Casconea5400af2018-07-17 22:11:54 +02004426 "source_fragment" : "!hashed.apply().hit"
4427 },
4428 "expression" : {
4429 "type" : "expression",
4430 "value" : {
4431 "op" : "not",
4432 "left" : null,
4433 "right" : {
4434 "type" : "expression",
4435 "value" : {
4436 "op" : "d2b",
4437 "left" : null,
4438 "right" : {
4439 "type" : "field",
4440 "value" : ["scalars", "next_tmp_3"]
4441 }
4442 }
4443 }
4444 }
4445 },
4446 "true_next" : "FabricIngress.next.multicast",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004447 "false_next" : "node_33"
Carmelo Casconea5400af2018-07-17 22:11:54 +02004448 },
4449 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004450 "name" : "node_31",
4451 "id" : 7,
Carmelo Casconea5400af2018-07-17 22:11:54 +02004452 "source_info" : {
4453 "filename" : "include/control/next.p4",
4454 "line" : 221,
4455 "column" : 20,
4456 "source_fragment" : "!multicast.apply().hit"
4457 },
4458 "expression" : {
4459 "type" : "expression",
4460 "value" : {
4461 "op" : "not",
4462 "left" : null,
4463 "right" : {
4464 "type" : "expression",
4465 "value" : {
4466 "op" : "d2b",
4467 "left" : null,
4468 "right" : {
4469 "type" : "field",
4470 "value" : ["scalars", "next_tmp_2"]
4471 }
4472 }
4473 }
4474 }
4475 },
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004476 "true_next" : "tbl_act_11",
4477 "false_next" : "node_33"
Carmelo Casconea5400af2018-07-17 22:11:54 +02004478 },
4479 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004480 "name" : "node_33",
4481 "id" : 8,
Carmelo Casconea5400af2018-07-17 22:11:54 +02004482 "expression" : {
4483 "type" : "expression",
4484 "value" : {
4485 "op" : "not",
4486 "left" : null,
4487 "right" : {
4488 "type" : "expression",
4489 "value" : {
4490 "op" : "d2b",
4491 "left" : null,
4492 "right" : {
4493 "type" : "field",
4494 "value" : ["scalars", "next_hasReturned_0"]
4495 }
4496 }
4497 }
4498 }
4499 },
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004500 "true_next" : "node_34",
4501 "false_next" : "node_37"
Carmelo Casconea5400af2018-07-17 22:11:54 +02004502 },
4503 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004504 "name" : "node_34",
4505 "id" : 9,
Carmelo Casconea5400af2018-07-17 22:11:54 +02004506 "source_info" : {
4507 "filename" : "include/control/next.p4",
4508 "line" : 228,
4509 "column" : 12,
Yi Tsengbd46d052018-01-22 17:18:16 -08004510 "source_fragment" : "!hdr.mpls.isValid()"
Yi Tseng1d842672017-11-28 16:06:52 -08004511 },
4512 "expression" : {
4513 "type" : "expression",
4514 "value" : {
Yi Tsengbd46d052018-01-22 17:18:16 -08004515 "op" : "not",
4516 "left" : null,
Yi Tseng1d842672017-11-28 16:06:52 -08004517 "right" : {
Yi Tsengbd46d052018-01-22 17:18:16 -08004518 "type" : "expression",
4519 "value" : {
4520 "op" : "d2b",
4521 "left" : null,
4522 "right" : {
4523 "type" : "field",
4524 "value" : ["mpls", "$valid$"]
4525 }
4526 }
Yi Tseng1d842672017-11-28 16:06:52 -08004527 }
4528 }
4529 },
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004530 "true_next" : "node_35",
4531 "false_next" : "node_37"
Yi Tseng1d842672017-11-28 16:06:52 -08004532 },
4533 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004534 "name" : "node_35",
4535 "id" : 10,
Yi Tseng1d842672017-11-28 16:06:52 -08004536 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004537 "filename" : "include/control/next.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004538 "line" : 229,
4539 "column" : 15,
Yi Tseng1d842672017-11-28 16:06:52 -08004540 "source_fragment" : "hdr.ipv4.isValid()"
4541 },
4542 "expression" : {
4543 "type" : "expression",
4544 "value" : {
Yi Tsengbd46d052018-01-22 17:18:16 -08004545 "op" : "d2b",
4546 "left" : null,
4547 "right" : {
Yi Tseng1d842672017-11-28 16:06:52 -08004548 "type" : "field",
4549 "value" : ["ipv4", "$valid$"]
Yi Tseng1d842672017-11-28 16:06:52 -08004550 }
4551 }
4552 },
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004553 "true_next" : "tbl_act_12",
4554 "false_next" : "node_37"
Yi Tseng27b9bc02018-04-12 14:52:40 +08004555 },
4556 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004557 "name" : "node_37",
4558 "id" : 11,
Yi Tseng27b9bc02018-04-12 14:52:40 +08004559 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004560 "filename" : "include/control/port_counter.p4",
Yi Tsengbe342052017-11-03 10:21:23 -07004561 "line" : 27,
4562 "column" : 12,
4563 "source_fragment" : "standard_metadata.egress_spec < 511"
4564 },
4565 "expression" : {
4566 "type" : "expression",
4567 "value" : {
4568 "op" : "<",
4569 "left" : {
4570 "type" : "field",
4571 "value" : ["standard_metadata", "egress_spec"]
4572 },
4573 "right" : {
4574 "type" : "hexstr",
4575 "value" : "0x01ff"
4576 }
4577 }
4578 },
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004579 "true_next" : "tbl_act_13",
4580 "false_next" : "node_39"
Yi Tsengbe342052017-11-03 10:21:23 -07004581 },
4582 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004583 "name" : "node_39",
4584 "id" : 12,
Yi Tsengbe342052017-11-03 10:21:23 -07004585 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004586 "filename" : "include/control/port_counter.p4",
Yi Tsengbe342052017-11-03 10:21:23 -07004587 "line" : 30,
4588 "column" : 12,
4589 "source_fragment" : "standard_metadata.ingress_port < 511"
4590 },
4591 "expression" : {
4592 "type" : "expression",
4593 "value" : {
4594 "op" : "<",
4595 "left" : {
4596 "type" : "field",
4597 "value" : ["standard_metadata", "ingress_port"]
4598 },
4599 "right" : {
4600 "type" : "hexstr",
4601 "value" : "0x01ff"
4602 }
4603 }
4604 },
Yi Tseng3a5731e2018-01-22 11:38:58 -08004605 "false_next" : null,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004606 "true_next" : "tbl_act_14"
Yi Tseng3a5731e2018-01-22 11:38:58 -08004607 }
4608 ]
4609 },
4610 {
4611 "name" : "egress",
4612 "id" : 1,
4613 "source_info" : {
4614 "filename" : "fabric.p4",
Carmelo Cascone79a3a312018-08-16 17:14:43 -07004615 "line" : 79,
Yi Tseng3a5731e2018-01-22 11:38:58 -08004616 "column" : 8,
4617 "source_fragment" : "FabricEgress"
4618 },
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004619 "init_table" : "node_43",
Yi Tseng3a5731e2018-01-22 11:38:58 -08004620 "tables" : [
4621 {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004622 "name" : "tbl_pkt_io_egress_pop_vlan",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004623 "id" : 26,
Carmelo Casconea5400af2018-07-17 22:11:54 +02004624 "key" : [],
4625 "match_type" : "exact",
4626 "type" : "simple",
4627 "max_size" : 1024,
4628 "with_counters" : false,
4629 "support_timeout" : false,
4630 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07004631 "action_ids" : [51],
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004632 "actions" : ["FabricEgress.pkt_io_egress.pop_vlan"],
4633 "base_default_next" : "node_47",
4634 "next_tables" : {
4635 "FabricEgress.pkt_io_egress.pop_vlan" : "node_47"
4636 },
4637 "default_entry" : {
Charles Chancd03f072018-08-31 17:46:37 -07004638 "action_id" : 51,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004639 "action_const" : true,
4640 "action_data" : [],
4641 "action_entry_const" : true
4642 }
4643 },
4644 {
4645 "name" : "tbl_drop_now",
4646 "id" : 27,
4647 "key" : [],
4648 "match_type" : "exact",
4649 "type" : "simple",
4650 "max_size" : 1024,
4651 "with_counters" : false,
4652 "support_timeout" : false,
4653 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07004654 "action_ids" : [49],
Carmelo Casconea5400af2018-07-17 22:11:54 +02004655 "actions" : ["drop_now"],
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004656 "base_default_next" : "tbl_act_15",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004657 "next_tables" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004658 "drop_now" : "tbl_act_15"
Carmelo Casconea5400af2018-07-17 22:11:54 +02004659 },
4660 "default_entry" : {
Charles Chancd03f072018-08-31 17:46:37 -07004661 "action_id" : 49,
Carmelo Casconea5400af2018-07-17 22:11:54 +02004662 "action_const" : true,
4663 "action_data" : [],
4664 "action_entry_const" : true
4665 }
4666 },
4667 {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004668 "name" : "tbl_act_15",
4669 "id" : 28,
4670 "key" : [],
4671 "match_type" : "exact",
4672 "type" : "simple",
4673 "max_size" : 1024,
4674 "with_counters" : false,
4675 "support_timeout" : false,
4676 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07004677 "action_ids" : [53],
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004678 "actions" : ["act_15"],
4679 "base_default_next" : null,
4680 "next_tables" : {
4681 "act_15" : null
4682 },
4683 "default_entry" : {
Charles Chancd03f072018-08-31 17:46:37 -07004684 "action_id" : 53,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004685 "action_const" : true,
4686 "action_data" : [],
4687 "action_entry_const" : true
4688 }
4689 },
4690 {
4691 "name" : "tbl_drop_now_0",
4692 "id" : 29,
4693 "key" : [],
4694 "match_type" : "exact",
4695 "type" : "simple",
4696 "max_size" : 1024,
4697 "with_counters" : false,
4698 "support_timeout" : false,
4699 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07004700 "action_ids" : [50],
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004701 "actions" : ["drop_now"],
4702 "base_default_next" : "FabricEgress.egress_next.egress_vlan",
4703 "next_tables" : {
4704 "drop_now" : "FabricEgress.egress_next.egress_vlan"
4705 },
4706 "default_entry" : {
Charles Chancd03f072018-08-31 17:46:37 -07004707 "action_id" : 50,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004708 "action_const" : true,
4709 "action_data" : [],
4710 "action_entry_const" : true
4711 }
4712 },
4713 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004714 "name" : "FabricEgress.egress_next.egress_vlan",
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004715 "id" : 30,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004716 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004717 "filename" : "include/control/next.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004718 "line" : 258,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004719 "column" : 10,
4720 "source_fragment" : "egress_vlan"
4721 },
4722 "key" : [
4723 {
4724 "match_type" : "exact",
4725 "name" : "hdr.vlan_tag.vlan_id",
4726 "target" : ["vlan_tag", "vlan_id"],
4727 "mask" : null
4728 },
4729 {
4730 "match_type" : "exact",
4731 "name" : "standard_metadata.egress_port",
4732 "target" : ["standard_metadata", "egress_port"],
4733 "mask" : null
4734 }
4735 ],
4736 "match_type" : "exact",
4737 "type" : "simple",
4738 "max_size" : 1024,
Yi Tseng47eac892018-07-11 02:17:04 +08004739 "with_counters" : true,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004740 "support_timeout" : false,
4741 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07004742 "action_ids" : [52, 48],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004743 "actions" : ["FabricEgress.egress_next.pop_vlan", "nop"],
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004744 "base_default_next" : null,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004745 "next_tables" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004746 "FabricEgress.egress_next.pop_vlan" : null,
4747 "nop" : null
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004748 },
4749 "default_entry" : {
Charles Chancd03f072018-08-31 17:46:37 -07004750 "action_id" : 48,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004751 "action_const" : false,
4752 "action_data" : [],
4753 "action_entry_const" : false
4754 }
Yi Tseng3a5731e2018-01-22 11:38:58 -08004755 }
4756 ],
4757 "action_profiles" : [],
4758 "conditionals" : [
Yi Tseng1d842672017-11-28 16:06:52 -08004759 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004760 "name" : "node_43",
4761 "id" : 13,
Carmelo Casconea5400af2018-07-17 22:11:54 +02004762 "source_info" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004763 "filename" : "include/control/packetio.p4",
Carmelo Cascone79a3a312018-08-16 17:14:43 -07004764 "line" : 44,
Carmelo Casconea5400af2018-07-17 22:11:54 +02004765 "column" : 12,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004766 "source_fragment" : "fabric_metadata.is_controller_packet_out == true"
Carmelo Casconea5400af2018-07-17 22:11:54 +02004767 },
4768 "expression" : {
4769 "type" : "expression",
4770 "value" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004771 "op" : "==",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004772 "left" : {
4773 "type" : "expression",
4774 "value" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004775 "op" : "d2b",
4776 "left" : null,
Carmelo Casconea5400af2018-07-17 22:11:54 +02004777 "right" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004778 "type" : "field",
4779 "value" : ["scalars", "fabric_metadata_t.is_controller_packet_out"]
Carmelo Casconea5400af2018-07-17 22:11:54 +02004780 }
4781 }
4782 },
4783 "right" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004784 "type" : "bool",
4785 "value" : true
Carmelo Casconea5400af2018-07-17 22:11:54 +02004786 }
4787 }
4788 },
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004789 "true_next" : null,
4790 "false_next" : "node_44"
Carmelo Casconea5400af2018-07-17 22:11:54 +02004791 },
4792 {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004793 "name" : "node_44",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004794 "id" : 14,
Yi Tsengbe342052017-11-03 10:21:23 -07004795 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004796 "filename" : "include/control/packetio.p4",
Carmelo Cascone79a3a312018-08-16 17:14:43 -07004797 "line" : 48,
Yi Tsengbe342052017-11-03 10:21:23 -07004798 "column" : 12,
Carmelo Casconeb531b682018-01-30 17:55:56 -08004799 "source_fragment" : "standard_metadata.egress_port == 255"
Yi Tsengbe342052017-11-03 10:21:23 -07004800 },
4801 "expression" : {
4802 "type" : "expression",
4803 "value" : {
4804 "op" : "==",
4805 "left" : {
4806 "type" : "field",
4807 "value" : ["standard_metadata", "egress_port"]
4808 },
4809 "right" : {
4810 "type" : "hexstr",
4811 "value" : "0x00ff"
4812 }
4813 }
4814 },
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004815 "true_next" : "node_45",
4816 "false_next" : "node_50"
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004817 },
4818 {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004819 "name" : "node_45",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004820 "id" : 15,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004821 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004822 "filename" : "include/control/packetio.p4",
Carmelo Cascone79a3a312018-08-16 17:14:43 -07004823 "line" : 49,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004824 "column" : 16,
Carmelo Cascone228092b2018-06-15 20:41:10 +02004825 "source_fragment" : "hdr.vlan_tag.isValid() && fabric_metadata.pop_vlan_when_packet_in == true"
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004826 },
4827 "expression" : {
4828 "type" : "expression",
4829 "value" : {
4830 "op" : "and",
4831 "left" : {
4832 "type" : "expression",
4833 "value" : {
4834 "op" : "d2b",
4835 "left" : null,
4836 "right" : {
4837 "type" : "field",
4838 "value" : ["vlan_tag", "$valid$"]
4839 }
4840 }
4841 },
4842 "right" : {
4843 "type" : "expression",
4844 "value" : {
Carmelo Cascone228092b2018-06-15 20:41:10 +02004845 "op" : "==",
4846 "left" : {
4847 "type" : "expression",
4848 "value" : {
4849 "op" : "d2b",
4850 "left" : null,
4851 "right" : {
4852 "type" : "field",
4853 "value" : ["scalars", "fabric_metadata_t.pop_vlan_when_packet_in"]
4854 }
4855 }
4856 },
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004857 "right" : {
Carmelo Cascone228092b2018-06-15 20:41:10 +02004858 "type" : "bool",
4859 "value" : true
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004860 }
4861 }
4862 }
4863 }
4864 },
4865 "true_next" : "tbl_pkt_io_egress_pop_vlan",
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004866 "false_next" : "node_47"
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02004867 },
4868 {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004869 "name" : "node_47",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004870 "id" : 16,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02004871 "source_info" : {
4872 "filename" : "include/control/packetio.p4",
Carmelo Cascone79a3a312018-08-16 17:14:43 -07004873 "line" : 52,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02004874 "column" : 16,
4875 "source_fragment" : "fabric_metadata.is_multicast == true && ..."
4876 },
4877 "expression" : {
4878 "type" : "expression",
4879 "value" : {
4880 "op" : "and",
4881 "left" : {
4882 "type" : "expression",
4883 "value" : {
4884 "op" : "==",
4885 "left" : {
4886 "type" : "expression",
4887 "value" : {
4888 "op" : "d2b",
4889 "left" : null,
4890 "right" : {
4891 "type" : "field",
4892 "value" : ["scalars", "fabric_metadata_t.is_multicast"]
4893 }
4894 }
4895 },
4896 "right" : {
4897 "type" : "bool",
4898 "value" : true
4899 }
4900 }
4901 },
4902 "right" : {
4903 "type" : "expression",
4904 "value" : {
4905 "op" : "==",
4906 "left" : {
4907 "type" : "expression",
4908 "value" : {
4909 "op" : "d2b",
4910 "left" : null,
4911 "right" : {
4912 "type" : "field",
4913 "value" : ["scalars", "fabric_metadata_t.clone_to_cpu"]
4914 }
4915 }
4916 },
4917 "right" : {
4918 "type" : "bool",
4919 "value" : false
4920 }
4921 }
4922 }
4923 }
4924 },
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004925 "true_next" : "tbl_drop_now",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004926 "false_next" : "tbl_act_15"
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004927 },
4928 {
4929 "name" : "node_50",
4930 "id" : 17,
4931 "source_info" : {
4932 "filename" : "include/control/next.p4",
4933 "line" : 272,
4934 "column" : 12,
4935 "source_fragment" : "fabric_metadata.is_multicast == true ..."
4936 },
4937 "expression" : {
4938 "type" : "expression",
4939 "value" : {
4940 "op" : "and",
4941 "left" : {
4942 "type" : "expression",
4943 "value" : {
4944 "op" : "==",
4945 "left" : {
4946 "type" : "expression",
4947 "value" : {
4948 "op" : "d2b",
4949 "left" : null,
4950 "right" : {
4951 "type" : "field",
4952 "value" : ["scalars", "fabric_metadata_t.is_multicast"]
4953 }
4954 }
4955 },
4956 "right" : {
4957 "type" : "bool",
4958 "value" : true
4959 }
4960 }
4961 },
4962 "right" : {
4963 "type" : "expression",
4964 "value" : {
4965 "op" : "==",
4966 "left" : {
4967 "type" : "field",
4968 "value" : ["standard_metadata", "ingress_port"]
4969 },
4970 "right" : {
4971 "type" : "field",
4972 "value" : ["standard_metadata", "egress_port"]
4973 }
4974 }
4975 }
4976 }
4977 },
4978 "true_next" : "tbl_drop_now_0",
4979 "false_next" : "FabricEgress.egress_next.egress_vlan"
Yi Tsengbe342052017-11-03 10:21:23 -07004980 }
4981 ]
4982 }
4983 ],
4984 "checksums" : [
4985 {
4986 "name" : "cksum",
4987 "id" : 0,
4988 "target" : ["ipv4", "hdr_checksum"],
4989 "type" : "generic",
Yi Tsengbd46d052018-01-22 17:18:16 -08004990 "calculation" : "calc",
4991 "if_cond" : {
4992 "type" : "expression",
4993 "value" : {
4994 "op" : "d2b",
4995 "left" : null,
4996 "right" : {
4997 "type" : "field",
4998 "value" : ["ipv4", "$valid$"]
4999 }
5000 }
5001 }
Yi Tsengbe342052017-11-03 10:21:23 -07005002 },
5003 {
5004 "name" : "cksum_0",
5005 "id" : 1,
Yi Tsengbe342052017-11-03 10:21:23 -07005006 "target" : ["ipv4", "hdr_checksum"],
5007 "type" : "generic",
Yi Tsengbd46d052018-01-22 17:18:16 -08005008 "calculation" : "calc_0",
5009 "if_cond" : {
5010 "type" : "expression",
5011 "value" : {
5012 "op" : "d2b",
5013 "left" : null,
5014 "right" : {
5015 "type" : "field",
5016 "value" : ["ipv4", "$valid$"]
5017 }
5018 }
5019 }
Yi Tsengbe342052017-11-03 10:21:23 -07005020 }
5021 ],
5022 "force_arith" : [],
5023 "extern_instances" : [],
5024 "field_aliases" : [
5025 [
5026 "queueing_metadata.enq_timestamp",
5027 ["standard_metadata", "enq_timestamp"]
5028 ],
5029 [
5030 "queueing_metadata.enq_qdepth",
5031 ["standard_metadata", "enq_qdepth"]
5032 ],
5033 [
5034 "queueing_metadata.deq_timedelta",
5035 ["standard_metadata", "deq_timedelta"]
5036 ],
5037 [
5038 "queueing_metadata.deq_qdepth",
5039 ["standard_metadata", "deq_qdepth"]
5040 ],
5041 [
5042 "intrinsic_metadata.ingress_global_timestamp",
5043 ["standard_metadata", "ingress_global_timestamp"]
5044 ],
5045 [
Yi Tseng27b9bc02018-04-12 14:52:40 +08005046 "intrinsic_metadata.egress_global_timestamp",
5047 ["standard_metadata", "egress_global_timestamp"]
5048 ],
5049 [
Yi Tsengbe342052017-11-03 10:21:23 -07005050 "intrinsic_metadata.lf_field_list",
5051 ["standard_metadata", "lf_field_list"]
5052 ],
5053 [
5054 "intrinsic_metadata.mcast_grp",
5055 ["standard_metadata", "mcast_grp"]
5056 ],
5057 [
5058 "intrinsic_metadata.resubmit_flag",
5059 ["standard_metadata", "resubmit_flag"]
5060 ],
5061 [
5062 "intrinsic_metadata.egress_rid",
5063 ["standard_metadata", "egress_rid"]
Yi Tseng27b9bc02018-04-12 14:52:40 +08005064 ],
5065 [
5066 "intrinsic_metadata.recirculate_flag",
5067 ["standard_metadata", "recirculate_flag"]
Yi Tsengbe342052017-11-03 10:21:23 -07005068 ]
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005069 ],
5070 "program" : "fabric.p4",
5071 "__meta__" : {
5072 "version" : [2, 18],
5073 "compiler" : "https://github.com/p4lang/p4c"
5074 }
Yi Tsengbe342052017-11-03 10:21:23 -07005075}