blob: 32e5f336a26ce07bb90c4aac13e809ee94615d9a [file] [log] [blame]
Yi Tsengbe342052017-11-03 10:21:23 -07001{
Yi Tsengbe342052017-11-03 10:21:23 -07002 "header_types" : [
3 {
4 "name" : "scalars_0",
5 "id" : 0,
6 "fields" : [
Yi Tsengc6844f52017-12-19 11:58:25 -08007 ["tmp", 4, false],
8 ["tmp_0", 32, false],
Yi Tsengbe342052017-11-03 10:21:23 -07009 ["tmp_1", 32, false],
Carmelo Cascone8a715f82018-08-20 23:16:27 -070010 ["filtering_tmp_0", 1, false],
Carmelo Casconea5400af2018-07-17 22:11:54 +020011 ["next_tmp_2", 1, false],
12 ["next_tmp_3", 1, false],
13 ["next_tmp_4", 1, false],
14 ["next_hasReturned_0", 1, false],
Yi Tsengbe342052017-11-03 10:21:23 -070015 ["fabric_metadata_t.fwd_type", 3, false],
16 ["fabric_metadata_t.next_id", 32, false],
Yi Tseng20f9e7b2018-05-24 23:27:39 +080017 ["fabric_metadata_t.pop_vlan_when_packet_in", 1, false],
Carmelo Cascone1e8843f2018-07-19 19:01:12 +020018 ["fabric_metadata_t.is_multicast", 1, false],
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -070019 ["fabric_metadata_t.is_controller_packet_out", 1, false],
Carmelo Cascone1e8843f2018-07-19 19:01:12 +020020 ["fabric_metadata_t.clone_to_cpu", 1, false],
Yi Tsengbe342052017-11-03 10:21:23 -070021 ["fabric_metadata_t.ip_proto", 8, false],
22 ["fabric_metadata_t.l4_src_port", 16, false],
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -070023 ["fabric_metadata_t.l4_dst_port", 16, false]
Yi Tsengc6844f52017-12-19 11:58:25 -080024 ]
25 },
26 {
Carmelo Cascone6af4e172018-06-15 16:01:30 +020027 "name" : "standard_metadata",
Yi Tsengc6844f52017-12-19 11:58:25 -080028 "id" : 1,
29 "fields" : [
Carmelo Cascone6af4e172018-06-15 16:01:30 +020030 ["ingress_port", 9, false],
31 ["egress_spec", 9, false],
32 ["egress_port", 9, false],
33 ["clone_spec", 32, false],
34 ["instance_type", 32, false],
35 ["drop", 1, false],
36 ["recirculate_port", 16, false],
37 ["packet_length", 32, false],
38 ["enq_timestamp", 32, false],
39 ["enq_qdepth", 19, false],
40 ["deq_timedelta", 32, false],
41 ["deq_qdepth", 19, false],
42 ["ingress_global_timestamp", 48, false],
43 ["egress_global_timestamp", 48, false],
44 ["lf_field_list", 32, false],
45 ["mcast_grp", 16, false],
46 ["resubmit_flag", 32, false],
47 ["egress_rid", 16, false],
48 ["checksum_error", 1, false],
49 ["recirculate_flag", 32, false],
50 ["_padding", 5, false]
51 ]
52 },
53 {
54 "name" : "ethernet_t",
55 "id" : 2,
56 "fields" : [
Yi Tsengc6844f52017-12-19 11:58:25 -080057 ["dst_addr", 48, false],
58 ["src_addr", 48, false],
59 ["ether_type", 16, false]
60 ]
61 },
62 {
63 "name" : "vlan_tag_t",
Carmelo Cascone6af4e172018-06-15 16:01:30 +020064 "id" : 3,
Yi Tsengc6844f52017-12-19 11:58:25 -080065 "fields" : [
66 ["pri", 3, false],
67 ["cfi", 1, false],
68 ["vlan_id", 12, false],
69 ["ether_type", 16, false]
70 ]
71 },
72 {
73 "name" : "mpls_t",
Carmelo Cascone6af4e172018-06-15 16:01:30 +020074 "id" : 4,
Yi Tsengc6844f52017-12-19 11:58:25 -080075 "fields" : [
76 ["label", 20, false],
77 ["tc", 3, false],
78 ["bos", 1, false],
79 ["ttl", 8, false]
Yi Tsengbe342052017-11-03 10:21:23 -070080 ]
81 },
82 {
83 "name" : "ipv4_t",
Carmelo Cascone6af4e172018-06-15 16:01:30 +020084 "id" : 5,
Yi Tsengbe342052017-11-03 10:21:23 -070085 "fields" : [
86 ["version", 4, false],
87 ["ihl", 4, false],
Jonghwan Hyuned478dc2018-08-06 15:35:18 +090088 ["dscp", 6, false],
89 ["ecn", 2, false],
Yi Tsengbe342052017-11-03 10:21:23 -070090 ["total_len", 16, false],
91 ["identification", 16, false],
92 ["flags", 3, false],
93 ["frag_offset", 13, false],
94 ["ttl", 8, false],
95 ["protocol", 8, false],
96 ["hdr_checksum", 16, false],
97 ["src_addr", 32, false],
98 ["dst_addr", 32, false]
99 ]
100 },
101 {
Yi Tseng47eac892018-07-11 02:17:04 +0800102 "name" : "arp_t",
Carmelo Casconef645e842018-07-16 18:31:52 +0200103 "id" : 6,
Yi Tseng47eac892018-07-11 02:17:04 +0800104 "fields" : [
Yi Tsengbe342052017-11-03 10:21:23 -0700105 ["hw_type", 16, false],
106 ["proto_type", 16, false],
107 ["hw_addr_len", 8, false],
108 ["proto_addr_len", 8, false],
109 ["opcode", 16, false]
110 ]
111 },
112 {
113 "name" : "tcp_t",
Carmelo Casconef645e842018-07-16 18:31:52 +0200114 "id" : 7,
Yi Tsengbe342052017-11-03 10:21:23 -0700115 "fields" : [
116 ["src_port", 16, false],
117 ["dst_port", 16, false],
118 ["seq_no", 32, false],
119 ["ack_no", 32, false],
120 ["data_offset", 4, false],
121 ["res", 3, false],
122 ["ecn", 3, false],
123 ["ctrl", 6, false],
124 ["window", 16, false],
125 ["checksum", 16, false],
126 ["urgent_ptr", 16, false]
127 ]
128 },
129 {
130 "name" : "udp_t",
Carmelo Casconef645e842018-07-16 18:31:52 +0200131 "id" : 8,
Yi Tsengbe342052017-11-03 10:21:23 -0700132 "fields" : [
133 ["src_port", 16, false],
134 ["dst_port", 16, false],
135 ["len", 16, false],
136 ["checksum", 16, false]
137 ]
138 },
139 {
140 "name" : "icmp_t",
Carmelo Casconef645e842018-07-16 18:31:52 +0200141 "id" : 9,
Yi Tsengbe342052017-11-03 10:21:23 -0700142 "fields" : [
143 ["icmp_type", 8, false],
144 ["icmp_code", 8, false],
Yi Tsengf73a5532017-11-17 15:58:57 -0800145 ["checksum", 16, false],
146 ["identifier", 16, false],
147 ["sequence_number", 16, false],
148 ["timestamp", 64, false]
Yi Tsengbe342052017-11-03 10:21:23 -0700149 ]
150 },
151 {
152 "name" : "packet_out_header_t",
Carmelo Casconef645e842018-07-16 18:31:52 +0200153 "id" : 10,
Yi Tsengbe342052017-11-03 10:21:23 -0700154 "fields" : [
155 ["egress_port", 9, false],
Yi Tseng1d842672017-11-28 16:06:52 -0800156 ["_pad", 7, false]
Yi Tsengbe342052017-11-03 10:21:23 -0700157 ]
158 },
159 {
160 "name" : "packet_in_header_t",
Carmelo Casconef645e842018-07-16 18:31:52 +0200161 "id" : 11,
Yi Tsengbe342052017-11-03 10:21:23 -0700162 "fields" : [
163 ["ingress_port", 9, false],
Yi Tseng1d842672017-11-28 16:06:52 -0800164 ["_pad", 7, false]
Yi Tsengbe342052017-11-03 10:21:23 -0700165 ]
Yi Tsengbe342052017-11-03 10:21:23 -0700166 }
167 ],
168 "headers" : [
169 {
Yi Tsengbe342052017-11-03 10:21:23 -0700170 "name" : "scalars",
Yi Tsengc6844f52017-12-19 11:58:25 -0800171 "id" : 0,
Yi Tsengbe342052017-11-03 10:21:23 -0700172 "header_type" : "scalars_0",
173 "metadata" : true,
174 "pi_omit" : true
175 },
176 {
177 "name" : "standard_metadata",
Yi Tsengc6844f52017-12-19 11:58:25 -0800178 "id" : 1,
Yi Tsengbe342052017-11-03 10:21:23 -0700179 "header_type" : "standard_metadata",
180 "metadata" : true,
181 "pi_omit" : true
182 },
183 {
184 "name" : "ethernet",
Yi Tsengc6844f52017-12-19 11:58:25 -0800185 "id" : 2,
Yi Tsengbe342052017-11-03 10:21:23 -0700186 "header_type" : "ethernet_t",
187 "metadata" : false,
188 "pi_omit" : true
189 },
190 {
191 "name" : "vlan_tag",
Yi Tsengc6844f52017-12-19 11:58:25 -0800192 "id" : 3,
Yi Tsengbe342052017-11-03 10:21:23 -0700193 "header_type" : "vlan_tag_t",
194 "metadata" : false,
195 "pi_omit" : true
196 },
197 {
Yi Tsengbe342052017-11-03 10:21:23 -0700198 "name" : "mpls",
Yi Tsengbd46d052018-01-22 17:18:16 -0800199 "id" : 4,
Yi Tsengbe342052017-11-03 10:21:23 -0700200 "header_type" : "mpls_t",
201 "metadata" : false,
202 "pi_omit" : true
203 },
204 {
205 "name" : "ipv4",
Yi Tsengbd46d052018-01-22 17:18:16 -0800206 "id" : 5,
Yi Tsengbe342052017-11-03 10:21:23 -0700207 "header_type" : "ipv4_t",
208 "metadata" : false,
209 "pi_omit" : true
210 },
211 {
Yi Tseng47eac892018-07-11 02:17:04 +0800212 "name" : "arp",
Carmelo Casconef645e842018-07-16 18:31:52 +0200213 "id" : 6,
Yi Tsengbe342052017-11-03 10:21:23 -0700214 "header_type" : "arp_t",
215 "metadata" : false,
216 "pi_omit" : true
217 },
218 {
219 "name" : "tcp",
Carmelo Casconef645e842018-07-16 18:31:52 +0200220 "id" : 7,
Yi Tsengbe342052017-11-03 10:21:23 -0700221 "header_type" : "tcp_t",
222 "metadata" : false,
223 "pi_omit" : true
224 },
225 {
226 "name" : "udp",
Carmelo Casconef645e842018-07-16 18:31:52 +0200227 "id" : 8,
Yi Tsengbe342052017-11-03 10:21:23 -0700228 "header_type" : "udp_t",
229 "metadata" : false,
230 "pi_omit" : true
231 },
232 {
233 "name" : "icmp",
Carmelo Casconef645e842018-07-16 18:31:52 +0200234 "id" : 9,
Yi Tsengbe342052017-11-03 10:21:23 -0700235 "header_type" : "icmp_t",
236 "metadata" : false,
237 "pi_omit" : true
238 },
239 {
240 "name" : "packet_out",
Carmelo Casconef645e842018-07-16 18:31:52 +0200241 "id" : 10,
Yi Tsengbe342052017-11-03 10:21:23 -0700242 "header_type" : "packet_out_header_t",
243 "metadata" : false,
244 "pi_omit" : true
245 },
246 {
247 "name" : "packet_in",
Carmelo Casconef645e842018-07-16 18:31:52 +0200248 "id" : 11,
Yi Tsengbe342052017-11-03 10:21:23 -0700249 "header_type" : "packet_in_header_t",
250 "metadata" : false,
251 "pi_omit" : true
252 }
253 ],
254 "header_stacks" : [],
255 "header_union_types" : [],
256 "header_unions" : [],
257 "header_union_stacks" : [],
258 "field_lists" : [],
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200259 "errors" : [],
Yi Tsengbe342052017-11-03 10:21:23 -0700260 "enums" : [],
261 "parsers" : [
262 {
263 "name" : "parser",
264 "id" : 0,
265 "init_state" : "start",
266 "parse_states" : [
267 {
268 "name" : "start",
269 "id" : 0,
270 "parser_ops" : [],
271 "transitions" : [
272 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800273 "type" : "hexstr",
Yi Tsengbe342052017-11-03 10:21:23 -0700274 "value" : "0x00ff",
275 "mask" : null,
276 "next_state" : "parse_packet_out"
277 },
278 {
279 "value" : "default",
280 "mask" : null,
281 "next_state" : "parse_ethernet"
282 }
283 ],
284 "transition_key" : [
285 {
286 "type" : "field",
287 "value" : ["standard_metadata", "ingress_port"]
288 }
289 ]
290 },
291 {
292 "name" : "parse_packet_out",
293 "id" : 1,
294 "parser_ops" : [
295 {
296 "parameters" : [
297 {
298 "type" : "regular",
299 "value" : "packet_out"
300 }
301 ],
302 "op" : "extract"
303 }
304 ],
305 "transitions" : [
306 {
307 "value" : "default",
308 "mask" : null,
309 "next_state" : "parse_ethernet"
310 }
311 ],
312 "transition_key" : []
313 },
314 {
315 "name" : "parse_ethernet",
316 "id" : 2,
317 "parser_ops" : [
318 {
319 "parameters" : [
320 {
321 "type" : "regular",
322 "value" : "ethernet"
323 }
324 ],
325 "op" : "extract"
326 }
327 ],
328 "transitions" : [
329 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800330 "type" : "hexstr",
Yi Tsengbe342052017-11-03 10:21:23 -0700331 "value" : "0x8100",
332 "mask" : null,
333 "next_state" : "parse_vlan_tag"
334 },
335 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800336 "type" : "hexstr",
Yi Tsengbe342052017-11-03 10:21:23 -0700337 "value" : "0x8847",
338 "mask" : null,
339 "next_state" : "parse_mpls"
340 },
341 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800342 "type" : "hexstr",
Yi Tsengbe342052017-11-03 10:21:23 -0700343 "value" : "0x0806",
344 "mask" : null,
345 "next_state" : "parse_arp"
346 },
347 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800348 "type" : "hexstr",
Yi Tsengbe342052017-11-03 10:21:23 -0700349 "value" : "0x0800",
350 "mask" : null,
351 "next_state" : "parse_ipv4"
352 },
353 {
Yi Tsengbe342052017-11-03 10:21:23 -0700354 "value" : "default",
355 "mask" : null,
356 "next_state" : null
357 }
358 ],
359 "transition_key" : [
360 {
361 "type" : "field",
362 "value" : ["ethernet", "ether_type"]
363 }
364 ]
365 },
366 {
367 "name" : "parse_vlan_tag",
368 "id" : 3,
369 "parser_ops" : [
370 {
371 "parameters" : [
372 {
373 "type" : "regular",
374 "value" : "vlan_tag"
375 }
376 ],
377 "op" : "extract"
378 }
379 ],
380 "transitions" : [
381 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800382 "type" : "hexstr",
Yi Tsengbe342052017-11-03 10:21:23 -0700383 "value" : "0x0806",
384 "mask" : null,
385 "next_state" : "parse_arp"
386 },
387 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800388 "type" : "hexstr",
Yi Tsengbe342052017-11-03 10:21:23 -0700389 "value" : "0x0800",
390 "mask" : null,
391 "next_state" : "parse_ipv4"
392 },
393 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800394 "type" : "hexstr",
Yi Tsengbd46d052018-01-22 17:18:16 -0800395 "value" : "0x8847",
Yi Tsengbe342052017-11-03 10:21:23 -0700396 "mask" : null,
Yi Tsengbd46d052018-01-22 17:18:16 -0800397 "next_state" : "parse_mpls"
Yi Tsengbe342052017-11-03 10:21:23 -0700398 },
399 {
400 "value" : "default",
401 "mask" : null,
402 "next_state" : null
403 }
404 ],
405 "transition_key" : [
406 {
407 "type" : "field",
408 "value" : ["vlan_tag", "ether_type"]
409 }
410 ]
411 },
412 {
413 "name" : "parse_mpls",
Yi Tsengbd46d052018-01-22 17:18:16 -0800414 "id" : 4,
Yi Tsengbe342052017-11-03 10:21:23 -0700415 "parser_ops" : [
416 {
417 "parameters" : [
418 {
419 "type" : "regular",
420 "value" : "mpls"
421 }
422 ],
423 "op" : "extract"
424 },
425 {
426 "parameters" : [
427 {
428 "type" : "field",
Yi Tsengc6844f52017-12-19 11:58:25 -0800429 "value" : ["scalars", "tmp"]
Yi Tsengbe342052017-11-03 10:21:23 -0700430 },
431 {
432 "type" : "lookahead",
Yi Tsengc6844f52017-12-19 11:58:25 -0800433 "value" : [0, 4]
Yi Tsengbe342052017-11-03 10:21:23 -0700434 }
435 ],
436 "op" : "set"
437 }
438 ],
439 "transitions" : [
440 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800441 "type" : "hexstr",
Yi Tsengbe342052017-11-03 10:21:23 -0700442 "value" : "0x04",
443 "mask" : null,
444 "next_state" : "parse_ipv4"
445 },
446 {
Yi Tsengbe342052017-11-03 10:21:23 -0700447 "value" : "default",
448 "mask" : null,
449 "next_state" : "parse_ethernet"
450 }
451 ],
452 "transition_key" : [
453 {
454 "type" : "field",
Yi Tsengc6844f52017-12-19 11:58:25 -0800455 "value" : ["scalars", "tmp"]
Yi Tsengbe342052017-11-03 10:21:23 -0700456 }
457 ]
458 },
459 {
460 "name" : "parse_ipv4",
Yi Tsengbd46d052018-01-22 17:18:16 -0800461 "id" : 5,
Yi Tsengbe342052017-11-03 10:21:23 -0700462 "parser_ops" : [
463 {
464 "parameters" : [
465 {
466 "type" : "regular",
467 "value" : "ipv4"
468 }
469 ],
470 "op" : "extract"
471 },
472 {
473 "parameters" : [
474 {
475 "type" : "field",
476 "value" : ["scalars", "fabric_metadata_t.ip_proto"]
477 },
478 {
479 "type" : "field",
480 "value" : ["ipv4", "protocol"]
481 }
482 ],
483 "op" : "set"
484 }
485 ],
486 "transitions" : [
487 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800488 "type" : "hexstr",
Yi Tsengbe342052017-11-03 10:21:23 -0700489 "value" : "0x06",
490 "mask" : null,
491 "next_state" : "parse_tcp"
492 },
493 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800494 "type" : "hexstr",
Yi Tsengbe342052017-11-03 10:21:23 -0700495 "value" : "0x11",
496 "mask" : null,
497 "next_state" : "parse_udp"
498 },
499 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800500 "type" : "hexstr",
Yi Tsengbe342052017-11-03 10:21:23 -0700501 "value" : "0x01",
502 "mask" : null,
503 "next_state" : "parse_icmp"
504 },
505 {
506 "value" : "default",
507 "mask" : null,
508 "next_state" : null
509 }
510 ],
511 "transition_key" : [
512 {
513 "type" : "field",
514 "value" : ["ipv4", "protocol"]
515 }
516 ]
517 },
518 {
Yi Tseng47eac892018-07-11 02:17:04 +0800519 "name" : "parse_arp",
Carmelo Casconef645e842018-07-16 18:31:52 +0200520 "id" : 6,
Yi Tseng47eac892018-07-11 02:17:04 +0800521 "parser_ops" : [
522 {
523 "parameters" : [
524 {
525 "type" : "regular",
Yi Tsengbe342052017-11-03 10:21:23 -0700526 "value" : "arp"
527 }
528 ],
529 "op" : "extract"
530 }
531 ],
532 "transitions" : [
533 {
534 "value" : "default",
535 "mask" : null,
536 "next_state" : null
537 }
538 ],
539 "transition_key" : []
540 },
541 {
542 "name" : "parse_tcp",
Carmelo Casconef645e842018-07-16 18:31:52 +0200543 "id" : 7,
Yi Tsengbe342052017-11-03 10:21:23 -0700544 "parser_ops" : [
545 {
546 "parameters" : [
547 {
548 "type" : "regular",
549 "value" : "tcp"
550 }
551 ],
552 "op" : "extract"
553 },
554 {
555 "parameters" : [
556 {
557 "type" : "field",
558 "value" : ["scalars", "fabric_metadata_t.l4_src_port"]
559 },
560 {
561 "type" : "field",
562 "value" : ["tcp", "src_port"]
563 }
564 ],
565 "op" : "set"
566 },
567 {
568 "parameters" : [
569 {
570 "type" : "field",
571 "value" : ["scalars", "fabric_metadata_t.l4_dst_port"]
572 },
573 {
574 "type" : "field",
575 "value" : ["tcp", "dst_port"]
576 }
577 ],
578 "op" : "set"
579 }
580 ],
581 "transitions" : [
582 {
583 "value" : "default",
584 "mask" : null,
585 "next_state" : null
586 }
587 ],
588 "transition_key" : []
589 },
590 {
591 "name" : "parse_udp",
Carmelo Casconef645e842018-07-16 18:31:52 +0200592 "id" : 8,
Yi Tsengbe342052017-11-03 10:21:23 -0700593 "parser_ops" : [
594 {
595 "parameters" : [
596 {
597 "type" : "regular",
598 "value" : "udp"
599 }
600 ],
601 "op" : "extract"
602 },
603 {
604 "parameters" : [
605 {
606 "type" : "field",
607 "value" : ["scalars", "fabric_metadata_t.l4_src_port"]
608 },
609 {
610 "type" : "field",
611 "value" : ["udp", "src_port"]
612 }
613 ],
614 "op" : "set"
615 },
616 {
617 "parameters" : [
618 {
619 "type" : "field",
620 "value" : ["scalars", "fabric_metadata_t.l4_dst_port"]
621 },
622 {
623 "type" : "field",
624 "value" : ["udp", "dst_port"]
625 }
626 ],
627 "op" : "set"
628 }
629 ],
630 "transitions" : [
631 {
632 "value" : "default",
633 "mask" : null,
634 "next_state" : null
635 }
636 ],
637 "transition_key" : []
638 },
639 {
640 "name" : "parse_icmp",
Carmelo Casconef645e842018-07-16 18:31:52 +0200641 "id" : 9,
Yi Tsengbe342052017-11-03 10:21:23 -0700642 "parser_ops" : [
643 {
644 "parameters" : [
645 {
646 "type" : "regular",
647 "value" : "icmp"
648 }
649 ],
650 "op" : "extract"
651 }
652 ],
653 "transitions" : [
654 {
655 "value" : "default",
656 "mask" : null,
657 "next_state" : null
658 }
659 ],
660 "transition_key" : []
661 }
662 ]
663 }
664 ],
Yi Tseng27b9bc02018-04-12 14:52:40 +0800665 "parse_vsets" : [],
Yi Tsengbe342052017-11-03 10:21:23 -0700666 "deparsers" : [
667 {
668 "name" : "deparser",
669 "id" : 0,
670 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +0200671 "filename" : "include/parser.p4",
Charles Chancf696e52018-08-16 16:25:13 -0700672 "line" : 223,
Yi Tsengbe342052017-11-03 10:21:23 -0700673 "column" : 8,
674 "source_fragment" : "FabricDeparser"
675 },
Carmelo Casconef645e842018-07-16 18:31:52 +0200676 "order" : ["packet_in", "ethernet", "vlan_tag", "mpls", "arp", "ipv4", "tcp", "udp", "icmp"]
Yi Tsengbe342052017-11-03 10:21:23 -0700677 }
678 ],
679 "meter_arrays" : [],
680 "counter_arrays" : [
681 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800682 "name" : "FabricIngress.filtering.ingress_port_vlan_counter",
Yi Tseng1d842672017-11-28 16:06:52 -0800683 "id" : 0,
Yi Tseng3a5731e2018-01-22 11:38:58 -0800684 "is_direct" : true,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800685 "binding" : "FabricIngress.filtering.ingress_port_vlan"
Yi Tseng3a5731e2018-01-22 11:38:58 -0800686 },
687 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800688 "name" : "FabricIngress.filtering.fwd_classifier_counter",
Yi Tseng3a5731e2018-01-22 11:38:58 -0800689 "id" : 1,
690 "is_direct" : true,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800691 "binding" : "FabricIngress.filtering.fwd_classifier"
Yi Tseng3a5731e2018-01-22 11:38:58 -0800692 },
693 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800694 "name" : "FabricIngress.forwarding.bridging_counter",
Yi Tseng3a5731e2018-01-22 11:38:58 -0800695 "id" : 2,
696 "is_direct" : true,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800697 "binding" : "FabricIngress.forwarding.bridging"
Yi Tseng3a5731e2018-01-22 11:38:58 -0800698 },
699 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800700 "name" : "FabricIngress.forwarding.mpls_counter",
Yi Tseng3a5731e2018-01-22 11:38:58 -0800701 "id" : 3,
702 "is_direct" : true,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800703 "binding" : "FabricIngress.forwarding.mpls"
Yi Tseng3a5731e2018-01-22 11:38:58 -0800704 },
705 {
Charles Chan384aea22018-08-23 22:08:02 -0700706 "name" : "FabricIngress.forwarding.routing_v4_counter",
Yi Tseng3a5731e2018-01-22 11:38:58 -0800707 "id" : 4,
708 "is_direct" : true,
Charles Chan384aea22018-08-23 22:08:02 -0700709 "binding" : "FabricIngress.forwarding.routing_v4"
Yi Tseng3a5731e2018-01-22 11:38:58 -0800710 },
711 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800712 "name" : "FabricIngress.forwarding.acl_counter",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -0800713 "id" : 5,
Yi Tseng3a5731e2018-01-22 11:38:58 -0800714 "is_direct" : true,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800715 "binding" : "FabricIngress.forwarding.acl"
Yi Tseng3a5731e2018-01-22 11:38:58 -0800716 },
717 {
Yi Tseng47eac892018-07-11 02:17:04 +0800718 "name" : "FabricIngress.next.vlan_meta_counter",
Carmelo Casconef645e842018-07-16 18:31:52 +0200719 "id" : 6,
Yi Tseng47eac892018-07-11 02:17:04 +0800720 "is_direct" : true,
Yi Tseng20f9e7b2018-05-24 23:27:39 +0800721 "binding" : "FabricIngress.next.vlan_meta"
722 },
723 {
724 "name" : "FabricIngress.next.simple_counter",
Carmelo Casconef645e842018-07-16 18:31:52 +0200725 "id" : 7,
Yi Tseng20f9e7b2018-05-24 23:27:39 +0800726 "is_direct" : true,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800727 "binding" : "FabricIngress.next.simple"
728 },
729 {
730 "name" : "FabricIngress.next.hashed_counter",
Carmelo Casconef645e842018-07-16 18:31:52 +0200731 "id" : 8,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800732 "is_direct" : true,
733 "binding" : "FabricIngress.next.hashed"
734 },
735 {
Esin Karaman971fb7f2017-12-28 13:44:52 +0000736 "name" : "FabricIngress.next.multicast_counter",
Carmelo Casconef645e842018-07-16 18:31:52 +0200737 "id" : 9,
Esin Karaman971fb7f2017-12-28 13:44:52 +0000738 "is_direct" : true,
739 "binding" : "FabricIngress.next.multicast"
740 },
741 {
742 "name" : "FabricIngress.port_counters_control.egress_port_counter",
Carmelo Casconef645e842018-07-16 18:31:52 +0200743 "id" : 10,
Yi Tsengbe342052017-11-03 10:21:23 -0700744 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +0200745 "filename" : "include/control/port_counter.p4",
Yi Tsengbe342052017-11-03 10:21:23 -0700746 "line" : 23,
Yi Tseng3d3956d2018-01-31 17:28:05 -0800747 "column" : 48,
Yi Tsengbe342052017-11-03 10:21:23 -0700748 "source_fragment" : "egress_port_counter"
749 },
750 "size" : 511,
751 "is_direct" : false
752 },
753 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800754 "name" : "FabricIngress.port_counters_control.ingress_port_counter",
Carmelo Casconef645e842018-07-16 18:31:52 +0200755 "id" : 11,
Yi Tsengbe342052017-11-03 10:21:23 -0700756 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +0200757 "filename" : "include/control/port_counter.p4",
Yi Tsengbe342052017-11-03 10:21:23 -0700758 "line" : 24,
Yi Tseng3d3956d2018-01-31 17:28:05 -0800759 "column" : 48,
Yi Tsengbe342052017-11-03 10:21:23 -0700760 "source_fragment" : "ingress_port_counter"
761 },
762 "size" : 511,
763 "is_direct" : false
Yi Tseng47eac892018-07-11 02:17:04 +0800764 },
765 {
766 "name" : "FabricEgress.egress_next.egress_vlan_counter",
Carmelo Casconef645e842018-07-16 18:31:52 +0200767 "id" : 12,
Yi Tseng47eac892018-07-11 02:17:04 +0800768 "is_direct" : true,
769 "binding" : "FabricEgress.egress_next.egress_vlan"
Yi Tsengbe342052017-11-03 10:21:23 -0700770 }
771 ],
772 "register_arrays" : [],
773 "calculations" : [
774 {
775 "name" : "calc",
776 "id" : 0,
777 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +0200778 "filename" : "include/checksum.p4",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200779 "line" : 28,
Yi Tsengbe342052017-11-03 10:21:23 -0700780 "column" : 8,
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200781 "source_fragment" : "update_checksum(hdr.ipv4.isValid(), ..."
Yi Tsengbe342052017-11-03 10:21:23 -0700782 },
783 "algo" : "csum16",
784 "input" : [
785 {
786 "type" : "field",
787 "value" : ["ipv4", "version"]
788 },
789 {
790 "type" : "field",
791 "value" : ["ipv4", "ihl"]
792 },
793 {
794 "type" : "field",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +0900795 "value" : ["ipv4", "dscp"]
796 },
797 {
798 "type" : "field",
799 "value" : ["ipv4", "ecn"]
Yi Tsengbe342052017-11-03 10:21:23 -0700800 },
801 {
802 "type" : "field",
803 "value" : ["ipv4", "total_len"]
804 },
805 {
806 "type" : "field",
807 "value" : ["ipv4", "identification"]
808 },
809 {
810 "type" : "field",
811 "value" : ["ipv4", "flags"]
812 },
813 {
814 "type" : "field",
815 "value" : ["ipv4", "frag_offset"]
816 },
817 {
818 "type" : "field",
819 "value" : ["ipv4", "ttl"]
820 },
821 {
822 "type" : "field",
823 "value" : ["ipv4", "protocol"]
824 },
825 {
826 "type" : "field",
827 "value" : ["ipv4", "src_addr"]
828 },
829 {
830 "type" : "field",
831 "value" : ["ipv4", "dst_addr"]
832 }
833 ]
834 },
835 {
836 "name" : "calc_0",
837 "id" : 1,
838 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +0200839 "filename" : "include/checksum.p4",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +0900840 "line" : 57,
Yi Tsengbe342052017-11-03 10:21:23 -0700841 "column" : 8,
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200842 "source_fragment" : "verify_checksum(hdr.ipv4.isValid(), ..."
Yi Tsengbe342052017-11-03 10:21:23 -0700843 },
844 "algo" : "csum16",
845 "input" : [
846 {
847 "type" : "field",
848 "value" : ["ipv4", "version"]
849 },
850 {
851 "type" : "field",
852 "value" : ["ipv4", "ihl"]
853 },
854 {
855 "type" : "field",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +0900856 "value" : ["ipv4", "dscp"]
857 },
858 {
859 "type" : "field",
860 "value" : ["ipv4", "ecn"]
Yi Tsengbe342052017-11-03 10:21:23 -0700861 },
862 {
863 "type" : "field",
864 "value" : ["ipv4", "total_len"]
865 },
866 {
867 "type" : "field",
868 "value" : ["ipv4", "identification"]
869 },
870 {
871 "type" : "field",
872 "value" : ["ipv4", "flags"]
873 },
874 {
875 "type" : "field",
876 "value" : ["ipv4", "frag_offset"]
877 },
878 {
879 "type" : "field",
880 "value" : ["ipv4", "ttl"]
881 },
882 {
883 "type" : "field",
884 "value" : ["ipv4", "protocol"]
885 },
886 {
887 "type" : "field",
888 "value" : ["ipv4", "src_addr"]
889 },
890 {
891 "type" : "field",
892 "value" : ["ipv4", "dst_addr"]
893 }
894 ]
Yi Tsengbe342052017-11-03 10:21:23 -0700895 }
896 ],
897 "learn_lists" : [],
898 "actions" : [
899 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -0700900 "name" : "NoAction",
Yi Tsengbe342052017-11-03 10:21:23 -0700901 "id" : 0,
902 "runtime_data" : [],
903 "primitives" : []
904 },
905 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -0700906 "name" : "NoAction",
Yi Tsengbe342052017-11-03 10:21:23 -0700907 "id" : 1,
908 "runtime_data" : [],
909 "primitives" : []
910 },
911 {
Charles Chancf696e52018-08-16 16:25:13 -0700912 "name" : "NoAction",
Yi Tsengbe342052017-11-03 10:21:23 -0700913 "id" : 2,
914 "runtime_data" : [],
Yi Tseng1d842672017-11-28 16:06:52 -0800915 "primitives" : []
Yi Tsengbe342052017-11-03 10:21:23 -0700916 },
917 {
Yi Tseng1d842672017-11-28 16:06:52 -0800918 "name" : "NoAction",
Yi Tsengbe342052017-11-03 10:21:23 -0700919 "id" : 3,
920 "runtime_data" : [],
Yi Tseng1d842672017-11-28 16:06:52 -0800921 "primitives" : []
Yi Tsengbe342052017-11-03 10:21:23 -0700922 },
923 {
924 "name" : "NoAction",
925 "id" : 4,
926 "runtime_data" : [],
927 "primitives" : []
928 },
929 {
930 "name" : "NoAction",
931 "id" : 5,
932 "runtime_data" : [],
933 "primitives" : []
934 },
935 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -0700936 "name" : "nop",
Yi Tsengbe342052017-11-03 10:21:23 -0700937 "id" : 6,
938 "runtime_data" : [],
939 "primitives" : []
940 },
941 {
Yi Tseng47eac892018-07-11 02:17:04 +0800942 "name" : "FabricIngress.filtering.drop",
Carmelo Cascone8a715f82018-08-20 23:16:27 -0700943 "id" : 7,
Yi Tseng47eac892018-07-11 02:17:04 +0800944 "runtime_data" : [],
Yi Tseng1d842672017-11-28 16:06:52 -0800945 "primitives" : [
946 {
947 "op" : "drop",
948 "parameters" : [],
949 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +0200950 "filename" : "include/control/filtering.p4",
Yi Tseng47eac892018-07-11 02:17:04 +0800951 "line" : 37,
Yi Tseng1d842672017-11-28 16:06:52 -0800952 "column" : 8,
953 "source_fragment" : "mark_to_drop()"
954 }
955 }
956 ]
Yi Tsengbe342052017-11-03 10:21:23 -0700957 },
958 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800959 "name" : "FabricIngress.filtering.set_vlan",
Carmelo Cascone8a715f82018-08-20 23:16:27 -0700960 "id" : 8,
Yi Tsengbe342052017-11-03 10:21:23 -0700961 "runtime_data" : [
962 {
963 "name" : "new_vlan_id",
964 "bitwidth" : 12
965 }
966 ],
967 "primitives" : [
968 {
969 "op" : "assign",
970 "parameters" : [
971 {
972 "type" : "field",
973 "value" : ["vlan_tag", "vlan_id"]
974 },
975 {
976 "type" : "runtime_data",
977 "value" : 0
978 }
979 ],
980 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +0200981 "filename" : "include/control/filtering.p4",
Yi Tseng47eac892018-07-11 02:17:04 +0800982 "line" : 42,
Yi Tsengbe342052017-11-03 10:21:23 -0700983 "column" : 8,
984 "source_fragment" : "hdr.vlan_tag.vlan_id = new_vlan_id"
985 }
986 }
987 ]
988 },
989 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800990 "name" : "FabricIngress.filtering.push_internal_vlan",
Carmelo Cascone8a715f82018-08-20 23:16:27 -0700991 "id" : 9,
Yi Tsengbe342052017-11-03 10:21:23 -0700992 "runtime_data" : [
993 {
994 "name" : "new_vlan_id",
995 "bitwidth" : 12
996 }
997 ],
998 "primitives" : [
999 {
1000 "op" : "add_header",
1001 "parameters" : [
1002 {
1003 "type" : "header",
1004 "value" : "vlan_tag"
1005 }
1006 ],
1007 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001008 "filename" : "include/control/filtering.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001009 "line" : 49,
Yi Tsengbe342052017-11-03 10:21:23 -07001010 "column" : 8,
1011 "source_fragment" : "hdr.vlan_tag.setValid()"
1012 }
1013 },
1014 {
1015 "op" : "assign",
1016 "parameters" : [
1017 {
1018 "type" : "field",
1019 "value" : ["vlan_tag", "cfi"]
1020 },
1021 {
1022 "type" : "hexstr",
1023 "value" : "0x00"
1024 }
1025 ],
1026 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001027 "filename" : "include/control/filtering.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001028 "line" : 50,
Yi Tsengbe342052017-11-03 10:21:23 -07001029 "column" : 8,
1030 "source_fragment" : "hdr.vlan_tag.cfi = 0"
1031 }
1032 },
1033 {
1034 "op" : "assign",
1035 "parameters" : [
1036 {
1037 "type" : "field",
1038 "value" : ["vlan_tag", "pri"]
1039 },
1040 {
1041 "type" : "hexstr",
1042 "value" : "0x00"
1043 }
1044 ],
1045 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001046 "filename" : "include/control/filtering.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001047 "line" : 51,
Yi Tsengbe342052017-11-03 10:21:23 -07001048 "column" : 8,
1049 "source_fragment" : "hdr.vlan_tag.pri = 0"
1050 }
1051 },
1052 {
1053 "op" : "assign",
1054 "parameters" : [
1055 {
1056 "type" : "field",
1057 "value" : ["vlan_tag", "ether_type"]
1058 },
1059 {
Yi Tseng1d842672017-11-28 16:06:52 -08001060 "type" : "field",
1061 "value" : ["ethernet", "ether_type"]
1062 }
1063 ],
1064 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001065 "filename" : "include/control/filtering.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001066 "line" : 52,
Yi Tseng1d842672017-11-28 16:06:52 -08001067 "column" : 8,
1068 "source_fragment" : "hdr.vlan_tag.ether_type = hdr.ethernet.ether_type"
1069 }
1070 },
1071 {
1072 "op" : "assign",
1073 "parameters" : [
1074 {
1075 "type" : "field",
1076 "value" : ["ethernet", "ether_type"]
1077 },
1078 {
Yi Tsengbe342052017-11-03 10:21:23 -07001079 "type" : "hexstr",
1080 "value" : "0x8100"
1081 }
1082 ],
1083 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001084 "filename" : "include/control/../define.p4",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07001085 "line" : 89,
Yi Tsengbe342052017-11-03 10:21:23 -07001086 "column" : 31,
1087 "source_fragment" : "0x8100; ..."
1088 }
1089 },
1090 {
1091 "op" : "assign",
1092 "parameters" : [
1093 {
1094 "type" : "field",
1095 "value" : ["vlan_tag", "vlan_id"]
1096 },
1097 {
1098 "type" : "runtime_data",
1099 "value" : 0
1100 }
1101 ],
1102 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001103 "filename" : "include/control/filtering.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001104 "line" : 54,
Yi Tsengbe342052017-11-03 10:21:23 -07001105 "column" : 8,
Yi Tseng47eac892018-07-11 02:17:04 +08001106 "source_fragment" : "hdr.vlan_tag.vlan_id = new_vlan_id"
Yi Tsengbe342052017-11-03 10:21:23 -07001107 }
1108 },
1109 {
1110 "op" : "assign",
1111 "parameters" : [
1112 {
1113 "type" : "field",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001114 "value" : ["scalars", "fabric_metadata_t.pop_vlan_when_packet_in"]
Yi Tsengbe342052017-11-03 10:21:23 -07001115 },
1116 {
1117 "type" : "expression",
1118 "value" : {
1119 "type" : "expression",
1120 "value" : {
1121 "op" : "b2d",
1122 "left" : null,
1123 "right" : {
1124 "type" : "bool",
1125 "value" : true
1126 }
1127 }
1128 }
1129 }
1130 ],
1131 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001132 "filename" : "include/control/filtering.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001133 "line" : 57,
Yi Tsengbe342052017-11-03 10:21:23 -07001134 "column" : 8,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001135 "source_fragment" : "fabric_metadata.pop_vlan_when_packet_in = true"
Yi Tsengbe342052017-11-03 10:21:23 -07001136 }
1137 }
1138 ]
1139 },
1140 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07001141 "name" : "FabricIngress.filtering.nop_ingress_port_vlan",
1142 "id" : 10,
1143 "runtime_data" : [],
1144 "primitives" : []
1145 },
1146 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001147 "name" : "FabricIngress.filtering.set_forwarding_type",
Charles Chancf696e52018-08-16 16:25:13 -07001148 "id" : 11,
Yi Tsengbe342052017-11-03 10:21:23 -07001149 "runtime_data" : [
1150 {
1151 "name" : "fwd_type",
1152 "bitwidth" : 3
1153 }
1154 ],
1155 "primitives" : [
1156 {
1157 "op" : "assign",
1158 "parameters" : [
1159 {
1160 "type" : "field",
1161 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
1162 },
1163 {
1164 "type" : "runtime_data",
1165 "value" : 0
1166 }
1167 ],
1168 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001169 "filename" : "include/control/filtering.p4",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07001170 "line" : 99,
Yi Tsengbe342052017-11-03 10:21:23 -07001171 "column" : 8,
1172 "source_fragment" : "fabric_metadata.fwd_type = fwd_type"
1173 }
1174 }
1175 ]
1176 },
1177 {
Yi Tseng47eac892018-07-11 02:17:04 +08001178 "name" : "FabricIngress.forwarding.set_next_id_bridging",
Charles Chancf696e52018-08-16 16:25:13 -07001179 "id" : 12,
Carmelo Casconef645e842018-07-16 18:31:52 +02001180 "runtime_data" : [
1181 {
1182 "name" : "next_id",
1183 "bitwidth" : 32
1184 }
1185 ],
1186 "primitives" : [
1187 {
1188 "op" : "assign",
1189 "parameters" : [
1190 {
1191 "type" : "field",
1192 "value" : ["scalars", "fabric_metadata_t.next_id"]
1193 },
1194 {
1195 "type" : "runtime_data",
1196 "value" : 0
1197 }
1198 ],
1199 "source_info" : {
1200 "filename" : "include/control/forwarding.p4",
1201 "line" : 37,
1202 "column" : 8,
1203 "source_fragment" : "fabric_metadata.next_id = next_id"
1204 }
1205 }
1206 ]
1207 },
1208 {
1209 "name" : "FabricIngress.forwarding.pop_mpls_and_next",
Charles Chancf696e52018-08-16 16:25:13 -07001210 "id" : 13,
Carmelo Casconef645e842018-07-16 18:31:52 +02001211 "runtime_data" : [
1212 {
1213 "name" : "next_id",
1214 "bitwidth" : 32
1215 }
1216 ],
1217 "primitives" : [
1218 {
1219 "op" : "remove_header",
1220 "parameters" : [
1221 {
1222 "type" : "header",
1223 "value" : "mpls"
1224 }
1225 ],
1226 "source_info" : {
1227 "filename" : "include/control/forwarding.p4",
1228 "line" : 60,
1229 "column" : 8,
1230 "source_fragment" : "hdr.mpls.setInvalid()"
1231 }
1232 },
1233 {
1234 "op" : "assign",
1235 "parameters" : [
1236 {
1237 "type" : "field",
1238 "value" : ["scalars", "fabric_metadata_t.next_id"]
1239 },
1240 {
1241 "type" : "runtime_data",
1242 "value" : 0
1243 }
1244 ],
1245 "source_info" : {
1246 "filename" : "include/control/forwarding.p4",
1247 "line" : 61,
1248 "column" : 8,
1249 "source_fragment" : "fabric_metadata.next_id = next_id"
1250 }
1251 }
1252 ]
1253 },
1254 {
Charles Chan384aea22018-08-23 22:08:02 -07001255 "name" : "FabricIngress.forwarding.set_next_id_routing_v4",
Charles Chancf696e52018-08-16 16:25:13 -07001256 "id" : 14,
Carmelo Casconef645e842018-07-16 18:31:52 +02001257 "runtime_data" : [
1258 {
1259 "name" : "next_id",
1260 "bitwidth" : 32
1261 }
1262 ],
1263 "primitives" : [
1264 {
1265 "op" : "assign",
1266 "parameters" : [
1267 {
1268 "type" : "field",
1269 "value" : ["scalars", "fabric_metadata_t.next_id"]
1270 },
1271 {
1272 "type" : "runtime_data",
1273 "value" : 0
1274 }
1275 ],
1276 "source_info" : {
1277 "filename" : "include/control/forwarding.p4",
1278 "line" : 83,
1279 "column" : 8,
1280 "source_fragment" : "fabric_metadata.next_id = next_id"
1281 }
1282 }
1283 ]
1284 },
1285 {
Charles Chancd03f072018-08-31 17:46:37 -07001286 "name" : "FabricIngress.forwarding.nop_routing_v4",
Charles Chancf696e52018-08-16 16:25:13 -07001287 "id" : 15,
Charles Chancd03f072018-08-31 17:46:37 -07001288 "runtime_data" : [],
1289 "primitives" : []
1290 },
1291 {
1292 "name" : "FabricIngress.forwarding.set_next_id_acl",
1293 "id" : 16,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001294 "runtime_data" : [
1295 {
1296 "name" : "next_id",
1297 "bitwidth" : 32
1298 }
1299 ],
1300 "primitives" : [
1301 {
Esin Karaman971fb7f2017-12-28 13:44:52 +00001302 "op" : "assign",
1303 "parameters" : [
1304 {
1305 "type" : "field",
1306 "value" : ["scalars", "fabric_metadata_t.next_id"]
1307 },
1308 {
1309 "type" : "runtime_data",
1310 "value" : 0
1311 }
1312 ],
1313 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001314 "filename" : "include/control/forwarding.p4",
Charles Chancd03f072018-08-31 17:46:37 -07001315 "line" : 110,
Yi Tseng47eac892018-07-11 02:17:04 +08001316 "column" : 8,
1317 "source_fragment" : "fabric_metadata.next_id = next_id"
1318 }
1319 }
1320 ]
1321 },
1322 {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001323 "name" : "FabricIngress.forwarding.punt_to_cpu",
Charles Chancd03f072018-08-31 17:46:37 -07001324 "id" : 17,
Yi Tsengbe342052017-11-03 10:21:23 -07001325 "runtime_data" : [],
1326 "primitives" : [
1327 {
1328 "op" : "assign",
1329 "parameters" : [
1330 {
1331 "type" : "field",
Yi Tsengbe342052017-11-03 10:21:23 -07001332 "value" : ["standard_metadata", "egress_spec"]
1333 },
1334 {
1335 "type" : "hexstr",
1336 "value" : "0x00ff"
1337 }
1338 ],
1339 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001340 "filename" : "include/control/forwarding.p4",
Charles Chancd03f072018-08-31 17:46:37 -07001341 "line" : 116,
Carmelo Casconeb531b682018-01-30 17:55:56 -08001342 "column" : 8,
1343 "source_fragment" : "standard_metadata.egress_spec = 255"
Yi Tsengbe342052017-11-03 10:21:23 -07001344 }
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001345 },
1346 {
1347 "op" : "exit",
1348 "parameters" : [],
1349 "source_info" : {
1350 "filename" : "include/control/forwarding.p4",
Charles Chancd03f072018-08-31 17:46:37 -07001351 "line" : 118,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001352 "column" : 8,
1353 "source_fragment" : "exit"
1354 }
1355 }
1356 ]
1357 },
1358 {
1359 "name" : "FabricIngress.forwarding.clone_to_cpu",
Charles Chancd03f072018-08-31 17:46:37 -07001360 "id" : 18,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001361 "runtime_data" : [],
1362 "primitives" : [
1363 {
1364 "op" : "assign",
1365 "parameters" : [
1366 {
1367 "type" : "field",
1368 "value" : ["scalars", "fabric_metadata_t.clone_to_cpu"]
1369 },
1370 {
1371 "type" : "expression",
1372 "value" : {
1373 "type" : "expression",
1374 "value" : {
1375 "op" : "b2d",
1376 "left" : null,
1377 "right" : {
1378 "type" : "bool",
1379 "value" : true
1380 }
1381 }
1382 }
1383 }
1384 ],
1385 "source_info" : {
1386 "filename" : "include/control/forwarding.p4",
Charles Chancd03f072018-08-31 17:46:37 -07001387 "line" : 123,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001388 "column" : 8,
1389 "source_fragment" : "fabric_metadata.clone_to_cpu = true"
1390 }
Yi Tsengbe342052017-11-03 10:21:23 -07001391 }
1392 ]
1393 },
1394 {
Yi Tseng47eac892018-07-11 02:17:04 +08001395 "name" : "FabricIngress.forwarding.drop",
Charles Chancd03f072018-08-31 17:46:37 -07001396 "id" : 19,
Yi Tseng47eac892018-07-11 02:17:04 +08001397 "runtime_data" : [],
1398 "primitives" : [
1399 {
1400 "op" : "drop",
1401 "parameters" : [],
1402 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001403 "filename" : "include/control/forwarding.p4",
Charles Chancd03f072018-08-31 17:46:37 -07001404 "line" : 128,
Yi Tseng47eac892018-07-11 02:17:04 +08001405 "column" : 8,
1406 "source_fragment" : "mark_to_drop()"
1407 }
1408 }
1409 ]
1410 },
1411 {
Charles Chancf696e52018-08-16 16:25:13 -07001412 "name" : "FabricIngress.forwarding.nop_acl",
Charles Chancd03f072018-08-31 17:46:37 -07001413 "id" : 20,
Charles Chancf696e52018-08-16 16:25:13 -07001414 "runtime_data" : [],
1415 "primitives" : []
1416 },
1417 {
Yi Tseng47eac892018-07-11 02:17:04 +08001418 "name" : "FabricIngress.next.set_vlan",
Charles Chancd03f072018-08-31 17:46:37 -07001419 "id" : 21,
Yi Tseng47eac892018-07-11 02:17:04 +08001420 "runtime_data" : [
1421 {
1422 "name" : "new_vlan_id",
1423 "bitwidth" : 12
1424 }
1425 ],
1426 "primitives" : [
1427 {
1428 "op" : "assign",
1429 "parameters" : [
1430 {
1431 "type" : "field",
1432 "value" : ["vlan_tag", "vlan_id"]
1433 },
1434 {
1435 "type" : "runtime_data",
1436 "value" : 0
1437 }
1438 ],
1439 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001440 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001441 "line" : 61,
1442 "column" : 8,
1443 "source_fragment" : "hdr.vlan_tag.vlan_id = new_vlan_id"
1444 }
1445 }
1446 ]
1447 },
1448 {
1449 "name" : "FabricIngress.next.output_simple",
Charles Chancd03f072018-08-31 17:46:37 -07001450 "id" : 22,
Yi Tsengbe342052017-11-03 10:21:23 -07001451 "runtime_data" : [
1452 {
1453 "name" : "port_num",
1454 "bitwidth" : 9
1455 }
1456 ],
1457 "primitives" : [
1458 {
1459 "op" : "assign",
1460 "parameters" : [
1461 {
1462 "type" : "field",
1463 "value" : ["standard_metadata", "egress_spec"]
1464 },
1465 {
1466 "type" : "runtime_data",
1467 "value" : 0
1468 }
1469 ],
1470 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001471 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001472 "line" : 85,
Yi Tsengbe342052017-11-03 10:21:23 -07001473 "column" : 8,
1474 "source_fragment" : "standard_metadata.egress_spec = port_num"
1475 }
Yi Tsengbe342052017-11-03 10:21:23 -07001476 }
1477 ]
1478 },
1479 {
Yi Tseng47eac892018-07-11 02:17:04 +08001480 "name" : "FabricIngress.next.set_vlan_output",
Charles Chancd03f072018-08-31 17:46:37 -07001481 "id" : 23,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001482 "runtime_data" : [
1483 {
1484 "name" : "new_vlan_id",
1485 "bitwidth" : 12
Yi Tseng47eac892018-07-11 02:17:04 +08001486 },
1487 {
1488 "name" : "port_num",
1489 "bitwidth" : 9
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001490 }
1491 ],
1492 "primitives" : [
1493 {
1494 "op" : "assign",
1495 "parameters" : [
1496 {
1497 "type" : "field",
1498 "value" : ["vlan_tag", "vlan_id"]
1499 },
1500 {
1501 "type" : "runtime_data",
1502 "value" : 0
1503 }
1504 ],
1505 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001506 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001507 "line" : 90,
1508 "column" : 8,
1509 "source_fragment" : "hdr.vlan_tag.vlan_id = new_vlan_id"
1510 }
1511 },
1512 {
1513 "op" : "assign",
1514 "parameters" : [
1515 {
1516 "type" : "field",
1517 "value" : ["standard_metadata", "egress_spec"]
1518 },
1519 {
1520 "type" : "runtime_data",
1521 "value" : 1
1522 }
1523 ],
1524 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001525 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001526 "line" : 85,
1527 "column" : 8,
1528 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
1529 }
1530 }
1531 ]
1532 },
1533 {
1534 "name" : "FabricIngress.next.l3_routing_simple",
Charles Chancd03f072018-08-31 17:46:37 -07001535 "id" : 24,
Yi Tseng47eac892018-07-11 02:17:04 +08001536 "runtime_data" : [
1537 {
1538 "name" : "port_num",
1539 "bitwidth" : 9
1540 },
1541 {
1542 "name" : "smac",
1543 "bitwidth" : 48
1544 },
1545 {
1546 "name" : "dmac",
1547 "bitwidth" : 48
1548 }
1549 ],
1550 "primitives" : [
1551 {
1552 "op" : "assign",
1553 "parameters" : [
1554 {
1555 "type" : "field",
1556 "value" : ["ethernet", "src_addr"]
1557 },
1558 {
1559 "type" : "runtime_data",
1560 "value" : 1
1561 }
1562 ],
1563 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001564 "filename" : "include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001565 "line" : 37,
1566 "column" : 8,
Yi Tseng47eac892018-07-11 02:17:04 +08001567 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
1568 }
1569 },
1570 {
1571 "op" : "assign",
1572 "parameters" : [
1573 {
1574 "type" : "field",
1575 "value" : ["ethernet", "dst_addr"]
1576 },
1577 {
1578 "type" : "runtime_data",
1579 "value" : 2
1580 }
1581 ],
1582 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001583 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001584 "line" : 41,
1585 "column" : 8,
1586 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
1587 }
1588 },
1589 {
1590 "op" : "assign",
1591 "parameters" : [
1592 {
1593 "type" : "field",
1594 "value" : ["standard_metadata", "egress_spec"]
1595 },
1596 {
1597 "type" : "runtime_data",
1598 "value" : 0
1599 }
1600 ],
1601 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001602 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001603 "line" : 85,
1604 "column" : 8,
1605 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001606 }
1607 }
1608 ]
1609 },
1610 {
Yi Tseng47eac892018-07-11 02:17:04 +08001611 "name" : "FabricIngress.next.mpls_routing_v4_simple",
Carmelo Casconef645e842018-07-16 18:31:52 +02001612 "id" : 25,
Esin Karaman971fb7f2017-12-28 13:44:52 +00001613 "runtime_data" : [
1614 {
1615 "name" : "port_num",
1616 "bitwidth" : 9
1617 },
1618 {
1619 "name" : "smac",
1620 "bitwidth" : 48
1621 },
1622 {
1623 "name" : "dmac",
1624 "bitwidth" : 48
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001625 },
1626 {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001627 "name" : "label",
1628 "bitwidth" : 20
Yi Tsengbe342052017-11-03 10:21:23 -07001629 }
1630 ],
1631 "primitives" : [
1632 {
1633 "op" : "assign",
1634 "parameters" : [
1635 {
1636 "type" : "field",
1637 "value" : ["ethernet", "src_addr"]
1638 },
1639 {
1640 "type" : "runtime_data",
1641 "value" : 1
1642 }
1643 ],
1644 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001645 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001646 "line" : 37,
Yi Tsengbe342052017-11-03 10:21:23 -07001647 "column" : 8,
1648 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
1649 }
1650 },
1651 {
1652 "op" : "assign",
1653 "parameters" : [
1654 {
1655 "type" : "field",
1656 "value" : ["ethernet", "dst_addr"]
1657 },
1658 {
1659 "type" : "runtime_data",
1660 "value" : 2
1661 }
1662 ],
1663 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001664 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001665 "line" : 41,
Yi Tsengbe342052017-11-03 10:21:23 -07001666 "column" : 8,
1667 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
1668 }
1669 },
1670 {
1671 "op" : "assign",
1672 "parameters" : [
1673 {
1674 "type" : "field",
1675 "value" : ["standard_metadata", "egress_spec"]
1676 },
1677 {
1678 "type" : "runtime_data",
1679 "value" : 0
1680 }
1681 ],
1682 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001683 "filename" : "include/control/next.p4",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001684 "line" : 85,
Yi Tsengbe342052017-11-03 10:21:23 -07001685 "column" : 8,
1686 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
1687 }
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001688 },
1689 {
1690 "op" : "add_header",
1691 "parameters" : [
1692 {
1693 "type" : "header",
1694 "value" : "mpls"
1695 }
1696 ],
1697 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001698 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001699 "line" : 46,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001700 "column" : 8,
1701 "source_fragment" : "hdr.mpls.setValid()"
1702 }
1703 },
1704 {
1705 "op" : "assign",
1706 "parameters" : [
1707 {
1708 "type" : "field",
1709 "value" : ["vlan_tag", "ether_type"]
1710 },
1711 {
1712 "type" : "hexstr",
1713 "value" : "0x8847"
1714 }
1715 ],
1716 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001717 "filename" : "include/control/../define.p4",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07001718 "line" : 90,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001719 "column" : 31,
1720 "source_fragment" : "0x8847; ..."
1721 }
1722 },
1723 {
1724 "op" : "assign",
1725 "parameters" : [
1726 {
1727 "type" : "field",
1728 "value" : ["mpls", "label"]
1729 },
1730 {
1731 "type" : "runtime_data",
1732 "value" : 3
1733 }
1734 ],
1735 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001736 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001737 "line" : 48,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001738 "column" : 8,
1739 "source_fragment" : "hdr.mpls.label = label; ..."
1740 }
1741 },
1742 {
1743 "op" : "assign",
1744 "parameters" : [
1745 {
1746 "type" : "field",
1747 "value" : ["mpls", "tc"]
1748 },
1749 {
1750 "type" : "hexstr",
1751 "value" : "0x00"
1752 }
1753 ],
1754 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001755 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001756 "line" : 49,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001757 "column" : 8,
1758 "source_fragment" : "hdr.mpls.tc = tc; ..."
1759 }
1760 },
1761 {
1762 "op" : "assign",
1763 "parameters" : [
1764 {
1765 "type" : "field",
1766 "value" : ["mpls", "bos"]
1767 },
1768 {
1769 "type" : "hexstr",
1770 "value" : "0x01"
1771 }
1772 ],
1773 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001774 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001775 "line" : 50,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001776 "column" : 8,
1777 "source_fragment" : "hdr.mpls.bos = 1w1"
1778 }
1779 },
1780 {
1781 "op" : "assign",
1782 "parameters" : [
1783 {
1784 "type" : "field",
1785 "value" : ["mpls", "ttl"]
1786 },
1787 {
1788 "type" : "hexstr",
1789 "value" : "0x40"
1790 }
1791 ],
1792 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001793 "filename" : "include/control/../define.p4",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07001794 "line" : 113,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001795 "column" : 32,
1796 "source_fragment" : "64; ..."
1797 }
Yi Tsengbe342052017-11-03 10:21:23 -07001798 }
1799 ]
1800 },
1801 {
Charles Chancd03f072018-08-31 17:46:37 -07001802 "name" : "FabricIngress.next.mpls_routing_v6_simple",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001803 "id" : 26,
1804 "runtime_data" : [
1805 {
1806 "name" : "port_num",
1807 "bitwidth" : 9
1808 },
1809 {
1810 "name" : "smac",
1811 "bitwidth" : 48
1812 },
1813 {
1814 "name" : "dmac",
1815 "bitwidth" : 48
1816 },
1817 {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001818 "name" : "label",
1819 "bitwidth" : 20
Yi Tsengbe342052017-11-03 10:21:23 -07001820 }
1821 ],
1822 "primitives" : [
1823 {
1824 "op" : "assign",
1825 "parameters" : [
1826 {
1827 "type" : "field",
1828 "value" : ["ethernet", "src_addr"]
1829 },
1830 {
1831 "type" : "runtime_data",
1832 "value" : 1
1833 }
1834 ],
1835 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001836 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001837 "line" : 37,
Yi Tsengbe342052017-11-03 10:21:23 -07001838 "column" : 8,
1839 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
1840 }
1841 },
1842 {
1843 "op" : "assign",
1844 "parameters" : [
1845 {
1846 "type" : "field",
1847 "value" : ["ethernet", "dst_addr"]
1848 },
1849 {
1850 "type" : "runtime_data",
1851 "value" : 2
1852 }
1853 ],
1854 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001855 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001856 "line" : 41,
Yi Tsengbe342052017-11-03 10:21:23 -07001857 "column" : 8,
1858 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
1859 }
1860 },
1861 {
1862 "op" : "assign",
1863 "parameters" : [
1864 {
1865 "type" : "field",
1866 "value" : ["standard_metadata", "egress_spec"]
1867 },
1868 {
1869 "type" : "runtime_data",
1870 "value" : 0
1871 }
1872 ],
1873 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001874 "filename" : "include/control/next.p4",
Charles Chancd03f072018-08-31 17:46:37 -07001875 "line" : 85,
Yi Tsengbe342052017-11-03 10:21:23 -07001876 "column" : 8,
1877 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
1878 }
Yi Tsengbe342052017-11-03 10:21:23 -07001879 },
1880 {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001881 "op" : "add_header",
Yi Tsengbe342052017-11-03 10:21:23 -07001882 "parameters" : [
1883 {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001884 "type" : "header",
1885 "value" : "mpls"
Yi Tsengbe342052017-11-03 10:21:23 -07001886 }
1887 ],
1888 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001889 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001890 "line" : 46,
Yi Tsengbe342052017-11-03 10:21:23 -07001891 "column" : 8,
Yi Tseng1b154bd2017-11-20 17:48:19 -08001892 "source_fragment" : "hdr.mpls.setValid()"
1893 }
1894 },
1895 {
1896 "op" : "assign",
1897 "parameters" : [
1898 {
1899 "type" : "field",
Yi Tsengbd46d052018-01-22 17:18:16 -08001900 "value" : ["vlan_tag", "ether_type"]
Yi Tseng1b154bd2017-11-20 17:48:19 -08001901 },
1902 {
1903 "type" : "hexstr",
1904 "value" : "0x8847"
1905 }
1906 ],
1907 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001908 "filename" : "include/control/../define.p4",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07001909 "line" : 90,
Yi Tseng1b154bd2017-11-20 17:48:19 -08001910 "column" : 31,
1911 "source_fragment" : "0x8847; ..."
1912 }
1913 },
1914 {
1915 "op" : "assign",
1916 "parameters" : [
1917 {
1918 "type" : "field",
1919 "value" : ["mpls", "label"]
1920 },
1921 {
1922 "type" : "runtime_data",
1923 "value" : 3
1924 }
1925 ],
1926 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001927 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001928 "line" : 48,
Yi Tseng1b154bd2017-11-20 17:48:19 -08001929 "column" : 8,
1930 "source_fragment" : "hdr.mpls.label = label; ..."
1931 }
1932 },
1933 {
1934 "op" : "assign",
1935 "parameters" : [
1936 {
1937 "type" : "field",
1938 "value" : ["mpls", "tc"]
1939 },
1940 {
Yi Tseng1d842672017-11-28 16:06:52 -08001941 "type" : "hexstr",
1942 "value" : "0x00"
Yi Tseng1b154bd2017-11-20 17:48:19 -08001943 }
1944 ],
1945 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001946 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001947 "line" : 49,
Yi Tseng1b154bd2017-11-20 17:48:19 -08001948 "column" : 8,
1949 "source_fragment" : "hdr.mpls.tc = tc; ..."
1950 }
1951 },
1952 {
1953 "op" : "assign",
1954 "parameters" : [
1955 {
1956 "type" : "field",
1957 "value" : ["mpls", "bos"]
1958 },
1959 {
1960 "type" : "hexstr",
1961 "value" : "0x01"
1962 }
1963 ],
1964 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001965 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001966 "line" : 50,
Yi Tseng1b154bd2017-11-20 17:48:19 -08001967 "column" : 8,
Yi Tseng1d842672017-11-28 16:06:52 -08001968 "source_fragment" : "hdr.mpls.bos = 1w1"
Yi Tseng1b154bd2017-11-20 17:48:19 -08001969 }
1970 },
1971 {
1972 "op" : "assign",
1973 "parameters" : [
1974 {
1975 "type" : "field",
1976 "value" : ["mpls", "ttl"]
1977 },
1978 {
1979 "type" : "hexstr",
1980 "value" : "0x40"
1981 }
1982 ],
1983 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001984 "filename" : "include/control/../define.p4",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07001985 "line" : 113,
Esin Karaman971fb7f2017-12-28 13:44:52 +00001986 "column" : 32,
1987 "source_fragment" : "64; ..."
1988 }
1989 }
1990 ]
1991 },
1992 {
Charles Chancd03f072018-08-31 17:46:37 -07001993 "name" : "FabricIngress.next.l3_routing_vlan",
1994 "id" : 27,
1995 "runtime_data" : [
1996 {
1997 "name" : "port_num",
1998 "bitwidth" : 9
1999 },
2000 {
2001 "name" : "smac",
2002 "bitwidth" : 48
2003 },
2004 {
2005 "name" : "dmac",
2006 "bitwidth" : 48
2007 },
2008 {
2009 "name" : "new_vlan_id",
2010 "bitwidth" : 12
2011 }
2012 ],
2013 "primitives" : [
2014 {
2015 "op" : "assign",
2016 "parameters" : [
2017 {
2018 "type" : "field",
2019 "value" : ["ethernet", "src_addr"]
2020 },
2021 {
2022 "type" : "runtime_data",
2023 "value" : 1
2024 }
2025 ],
2026 "source_info" : {
2027 "filename" : "include/control/next.p4",
2028 "line" : 37,
2029 "column" : 8,
2030 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2031 }
2032 },
2033 {
2034 "op" : "assign",
2035 "parameters" : [
2036 {
2037 "type" : "field",
2038 "value" : ["ethernet", "dst_addr"]
2039 },
2040 {
2041 "type" : "runtime_data",
2042 "value" : 2
2043 }
2044 ],
2045 "source_info" : {
2046 "filename" : "include/control/next.p4",
2047 "line" : 41,
2048 "column" : 8,
2049 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2050 }
2051 },
2052 {
2053 "op" : "assign",
2054 "parameters" : [
2055 {
2056 "type" : "field",
2057 "value" : ["vlan_tag", "vlan_id"]
2058 },
2059 {
2060 "type" : "runtime_data",
2061 "value" : 3
2062 }
2063 ],
2064 "source_info" : {
2065 "filename" : "include/control/next.p4",
2066 "line" : 90,
2067 "column" : 8,
2068 "source_fragment" : "hdr.vlan_tag.vlan_id = new_vlan_id; ..."
2069 }
2070 },
2071 {
2072 "op" : "assign",
2073 "parameters" : [
2074 {
2075 "type" : "field",
2076 "value" : ["standard_metadata", "egress_spec"]
2077 },
2078 {
2079 "type" : "runtime_data",
2080 "value" : 0
2081 }
2082 ],
2083 "source_info" : {
2084 "filename" : "include/control/next.p4",
2085 "line" : 85,
2086 "column" : 8,
2087 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2088 }
2089 }
2090 ]
2091 },
2092 {
2093 "name" : "FabricIngress.next.l3_routing_hashed",
2094 "id" : 28,
2095 "runtime_data" : [
2096 {
2097 "name" : "port_num",
2098 "bitwidth" : 9
2099 },
2100 {
2101 "name" : "smac",
2102 "bitwidth" : 48
2103 },
2104 {
2105 "name" : "dmac",
2106 "bitwidth" : 48
2107 }
2108 ],
2109 "primitives" : [
2110 {
2111 "op" : "assign",
2112 "parameters" : [
2113 {
2114 "type" : "field",
2115 "value" : ["ethernet", "src_addr"]
2116 },
2117 {
2118 "type" : "runtime_data",
2119 "value" : 1
2120 }
2121 ],
2122 "source_info" : {
2123 "filename" : "include/control/next.p4",
2124 "line" : 37,
2125 "column" : 8,
2126 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2127 }
2128 },
2129 {
2130 "op" : "assign",
2131 "parameters" : [
2132 {
2133 "type" : "field",
2134 "value" : ["ethernet", "dst_addr"]
2135 },
2136 {
2137 "type" : "runtime_data",
2138 "value" : 2
2139 }
2140 ],
2141 "source_info" : {
2142 "filename" : "include/control/next.p4",
2143 "line" : 41,
2144 "column" : 8,
2145 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2146 }
2147 },
2148 {
2149 "op" : "assign",
2150 "parameters" : [
2151 {
2152 "type" : "field",
2153 "value" : ["standard_metadata", "egress_spec"]
2154 },
2155 {
2156 "type" : "runtime_data",
2157 "value" : 0
2158 }
2159 ],
2160 "source_info" : {
2161 "filename" : "include/control/next.p4",
2162 "line" : 149,
2163 "column" : 8,
2164 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2165 }
2166 }
2167 ]
2168 },
2169 {
2170 "name" : "FabricIngress.next.mpls_routing_v4_hashed",
Carmelo Casconef645e842018-07-16 18:31:52 +02002171 "id" : 29,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002172 "runtime_data" : [
2173 {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002174 "name" : "port_num",
2175 "bitwidth" : 9
2176 },
2177 {
2178 "name" : "smac",
2179 "bitwidth" : 48
2180 },
2181 {
2182 "name" : "dmac",
2183 "bitwidth" : 48
2184 },
2185 {
2186 "name" : "label",
2187 "bitwidth" : 20
2188 }
2189 ],
2190 "primitives" : [
2191 {
2192 "op" : "assign",
2193 "parameters" : [
2194 {
2195 "type" : "field",
2196 "value" : ["ethernet", "src_addr"]
2197 },
2198 {
2199 "type" : "runtime_data",
2200 "value" : 1
2201 }
2202 ],
2203 "source_info" : {
2204 "filename" : "include/control/next.p4",
2205 "line" : 37,
2206 "column" : 8,
2207 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2208 }
2209 },
2210 {
2211 "op" : "assign",
2212 "parameters" : [
2213 {
2214 "type" : "field",
2215 "value" : ["ethernet", "dst_addr"]
2216 },
2217 {
2218 "type" : "runtime_data",
2219 "value" : 2
2220 }
2221 ],
2222 "source_info" : {
2223 "filename" : "include/control/next.p4",
2224 "line" : 41,
2225 "column" : 8,
2226 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2227 }
2228 },
2229 {
2230 "op" : "assign",
2231 "parameters" : [
2232 {
2233 "type" : "field",
2234 "value" : ["standard_metadata", "egress_spec"]
2235 },
2236 {
2237 "type" : "runtime_data",
2238 "value" : 0
2239 }
2240 ],
2241 "source_info" : {
2242 "filename" : "include/control/next.p4",
2243 "line" : 149,
2244 "column" : 8,
2245 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2246 }
2247 },
2248 {
2249 "op" : "add_header",
2250 "parameters" : [
2251 {
2252 "type" : "header",
2253 "value" : "mpls"
2254 }
2255 ],
2256 "source_info" : {
2257 "filename" : "include/control/next.p4",
2258 "line" : 46,
2259 "column" : 8,
2260 "source_fragment" : "hdr.mpls.setValid()"
2261 }
2262 },
2263 {
2264 "op" : "assign",
2265 "parameters" : [
2266 {
2267 "type" : "field",
2268 "value" : ["vlan_tag", "ether_type"]
2269 },
2270 {
2271 "type" : "hexstr",
2272 "value" : "0x8847"
2273 }
2274 ],
2275 "source_info" : {
2276 "filename" : "include/control/../define.p4",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07002277 "line" : 90,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002278 "column" : 31,
2279 "source_fragment" : "0x8847; ..."
2280 }
2281 },
2282 {
2283 "op" : "assign",
2284 "parameters" : [
2285 {
2286 "type" : "field",
2287 "value" : ["mpls", "label"]
2288 },
2289 {
2290 "type" : "runtime_data",
2291 "value" : 3
2292 }
2293 ],
2294 "source_info" : {
2295 "filename" : "include/control/next.p4",
2296 "line" : 48,
2297 "column" : 8,
2298 "source_fragment" : "hdr.mpls.label = label; ..."
2299 }
2300 },
2301 {
2302 "op" : "assign",
2303 "parameters" : [
2304 {
2305 "type" : "field",
2306 "value" : ["mpls", "tc"]
2307 },
2308 {
2309 "type" : "hexstr",
2310 "value" : "0x00"
2311 }
2312 ],
2313 "source_info" : {
2314 "filename" : "include/control/next.p4",
2315 "line" : 49,
2316 "column" : 8,
2317 "source_fragment" : "hdr.mpls.tc = tc; ..."
2318 }
2319 },
2320 {
2321 "op" : "assign",
2322 "parameters" : [
2323 {
2324 "type" : "field",
2325 "value" : ["mpls", "bos"]
2326 },
2327 {
2328 "type" : "hexstr",
2329 "value" : "0x01"
2330 }
2331 ],
2332 "source_info" : {
2333 "filename" : "include/control/next.p4",
2334 "line" : 50,
2335 "column" : 8,
2336 "source_fragment" : "hdr.mpls.bos = 1w1"
2337 }
2338 },
2339 {
2340 "op" : "assign",
2341 "parameters" : [
2342 {
2343 "type" : "field",
2344 "value" : ["mpls", "ttl"]
2345 },
2346 {
2347 "type" : "hexstr",
2348 "value" : "0x40"
2349 }
2350 ],
2351 "source_info" : {
2352 "filename" : "include/control/../define.p4",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002353 "line" : 113,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002354 "column" : 32,
2355 "source_fragment" : "64; ..."
2356 }
2357 }
2358 ]
2359 },
2360 {
Charles Chancd03f072018-08-31 17:46:37 -07002361 "name" : "FabricIngress.next.mpls_routing_v6_hashed",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002362 "id" : 30,
2363 "runtime_data" : [
2364 {
Charles Chancd03f072018-08-31 17:46:37 -07002365 "name" : "port_num",
2366 "bitwidth" : 9
2367 },
2368 {
2369 "name" : "smac",
2370 "bitwidth" : 48
2371 },
2372 {
2373 "name" : "dmac",
2374 "bitwidth" : 48
2375 },
2376 {
2377 "name" : "label",
2378 "bitwidth" : 20
2379 }
2380 ],
2381 "primitives" : [
2382 {
2383 "op" : "assign",
2384 "parameters" : [
2385 {
2386 "type" : "field",
2387 "value" : ["ethernet", "src_addr"]
2388 },
2389 {
2390 "type" : "runtime_data",
2391 "value" : 1
2392 }
2393 ],
2394 "source_info" : {
2395 "filename" : "include/control/next.p4",
2396 "line" : 37,
2397 "column" : 8,
2398 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2399 }
2400 },
2401 {
2402 "op" : "assign",
2403 "parameters" : [
2404 {
2405 "type" : "field",
2406 "value" : ["ethernet", "dst_addr"]
2407 },
2408 {
2409 "type" : "runtime_data",
2410 "value" : 2
2411 }
2412 ],
2413 "source_info" : {
2414 "filename" : "include/control/next.p4",
2415 "line" : 41,
2416 "column" : 8,
2417 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2418 }
2419 },
2420 {
2421 "op" : "assign",
2422 "parameters" : [
2423 {
2424 "type" : "field",
2425 "value" : ["standard_metadata", "egress_spec"]
2426 },
2427 {
2428 "type" : "runtime_data",
2429 "value" : 0
2430 }
2431 ],
2432 "source_info" : {
2433 "filename" : "include/control/next.p4",
2434 "line" : 149,
2435 "column" : 8,
2436 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2437 }
2438 },
2439 {
2440 "op" : "add_header",
2441 "parameters" : [
2442 {
2443 "type" : "header",
2444 "value" : "mpls"
2445 }
2446 ],
2447 "source_info" : {
2448 "filename" : "include/control/next.p4",
2449 "line" : 46,
2450 "column" : 8,
2451 "source_fragment" : "hdr.mpls.setValid()"
2452 }
2453 },
2454 {
2455 "op" : "assign",
2456 "parameters" : [
2457 {
2458 "type" : "field",
2459 "value" : ["vlan_tag", "ether_type"]
2460 },
2461 {
2462 "type" : "hexstr",
2463 "value" : "0x8847"
2464 }
2465 ],
2466 "source_info" : {
2467 "filename" : "include/control/../define.p4",
2468 "line" : 90,
2469 "column" : 31,
2470 "source_fragment" : "0x8847; ..."
2471 }
2472 },
2473 {
2474 "op" : "assign",
2475 "parameters" : [
2476 {
2477 "type" : "field",
2478 "value" : ["mpls", "label"]
2479 },
2480 {
2481 "type" : "runtime_data",
2482 "value" : 3
2483 }
2484 ],
2485 "source_info" : {
2486 "filename" : "include/control/next.p4",
2487 "line" : 48,
2488 "column" : 8,
2489 "source_fragment" : "hdr.mpls.label = label; ..."
2490 }
2491 },
2492 {
2493 "op" : "assign",
2494 "parameters" : [
2495 {
2496 "type" : "field",
2497 "value" : ["mpls", "tc"]
2498 },
2499 {
2500 "type" : "hexstr",
2501 "value" : "0x00"
2502 }
2503 ],
2504 "source_info" : {
2505 "filename" : "include/control/next.p4",
2506 "line" : 49,
2507 "column" : 8,
2508 "source_fragment" : "hdr.mpls.tc = tc; ..."
2509 }
2510 },
2511 {
2512 "op" : "assign",
2513 "parameters" : [
2514 {
2515 "type" : "field",
2516 "value" : ["mpls", "bos"]
2517 },
2518 {
2519 "type" : "hexstr",
2520 "value" : "0x01"
2521 }
2522 ],
2523 "source_info" : {
2524 "filename" : "include/control/next.p4",
2525 "line" : 50,
2526 "column" : 8,
2527 "source_fragment" : "hdr.mpls.bos = 1w1"
2528 }
2529 },
2530 {
2531 "op" : "assign",
2532 "parameters" : [
2533 {
2534 "type" : "field",
2535 "value" : ["mpls", "ttl"]
2536 },
2537 {
2538 "type" : "hexstr",
2539 "value" : "0x40"
2540 }
2541 ],
2542 "source_info" : {
2543 "filename" : "include/control/../define.p4",
2544 "line" : 113,
2545 "column" : 32,
2546 "source_fragment" : "64; ..."
2547 }
2548 }
2549 ]
2550 },
2551 {
2552 "name" : "FabricIngress.next.set_mcast_group",
2553 "id" : 31,
2554 "runtime_data" : [
2555 {
Esin Karaman971fb7f2017-12-28 13:44:52 +00002556 "name" : "gid",
2557 "bitwidth" : 16
2558 }
2559 ],
2560 "primitives" : [
2561 {
2562 "op" : "assign",
2563 "parameters" : [
2564 {
2565 "type" : "field",
2566 "value" : ["standard_metadata", "mcast_grp"]
2567 },
2568 {
2569 "type" : "runtime_data",
2570 "value" : 0
2571 }
2572 ],
2573 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002574 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002575 "line" : 202,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002576 "column" : 8,
2577 "source_fragment" : "standard_metadata.mcast_grp = gid"
2578 }
Carmelo Casconea5400af2018-07-17 22:11:54 +02002579 },
2580 {
2581 "op" : "assign",
2582 "parameters" : [
2583 {
2584 "type" : "field",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002585 "value" : ["scalars", "fabric_metadata_t.is_multicast"]
Carmelo Casconea5400af2018-07-17 22:11:54 +02002586 },
2587 {
2588 "type" : "expression",
2589 "value" : {
2590 "type" : "expression",
2591 "value" : {
2592 "op" : "b2d",
2593 "left" : null,
2594 "right" : {
2595 "type" : "bool",
2596 "value" : true
2597 }
2598 }
2599 }
2600 }
2601 ],
2602 "source_info" : {
2603 "filename" : "include/control/next.p4",
2604 "line" : 203,
2605 "column" : 8,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002606 "source_fragment" : "fabric_metadata.is_multicast = true"
Carmelo Casconea5400af2018-07-17 22:11:54 +02002607 }
Esin Karaman971fb7f2017-12-28 13:44:52 +00002608 }
2609 ]
2610 },
2611 {
2612 "name" : "act",
Charles Chancd03f072018-08-31 17:46:37 -07002613 "id" : 32,
Yi Tsengbe342052017-11-03 10:21:23 -07002614 "runtime_data" : [],
2615 "primitives" : [
2616 {
2617 "op" : "assign",
2618 "parameters" : [
2619 {
2620 "type" : "field",
2621 "value" : ["standard_metadata", "egress_spec"]
2622 },
2623 {
2624 "type" : "field",
2625 "value" : ["packet_out", "egress_port"]
2626 }
2627 ],
2628 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002629 "filename" : "include/control/packetio.p4",
Yi Tsengbe342052017-11-03 10:21:23 -07002630 "line" : 26,
2631 "column" : 12,
2632 "source_fragment" : "standard_metadata.egress_spec = hdr.packet_out.egress_port"
2633 }
Yi Tseng1d842672017-11-28 16:06:52 -08002634 },
2635 {
2636 "op" : "remove_header",
2637 "parameters" : [
2638 {
2639 "type" : "header",
2640 "value" : "packet_out"
2641 }
2642 ],
2643 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002644 "filename" : "include/control/packetio.p4",
Yi Tseng1d842672017-11-28 16:06:52 -08002645 "line" : 27,
2646 "column" : 12,
2647 "source_fragment" : "hdr.packet_out.setInvalid()"
2648 }
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07002649 },
2650 {
2651 "op" : "assign",
2652 "parameters" : [
2653 {
2654 "type" : "field",
2655 "value" : ["scalars", "fabric_metadata_t.is_controller_packet_out"]
2656 },
2657 {
2658 "type" : "expression",
2659 "value" : {
2660 "type" : "expression",
2661 "value" : {
2662 "op" : "b2d",
2663 "left" : null,
2664 "right" : {
2665 "type" : "bool",
2666 "value" : true
2667 }
2668 }
2669 }
2670 }
2671 ],
2672 "source_info" : {
2673 "filename" : "include/control/packetio.p4",
2674 "line" : 28,
2675 "column" : 12,
2676 "source_fragment" : "fabric_metadata.is_controller_packet_out = true"
2677 }
Yi Tsengbe342052017-11-03 10:21:23 -07002678 }
2679 ]
2680 },
2681 {
2682 "name" : "act_0",
Charles Chancd03f072018-08-31 17:46:37 -07002683 "id" : 33,
Yi Tsengbe342052017-11-03 10:21:23 -07002684 "runtime_data" : [],
2685 "primitives" : [
2686 {
2687 "op" : "assign",
2688 "parameters" : [
2689 {
2690 "type" : "field",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002691 "value" : ["scalars", "filtering_tmp_0"]
Yi Tseng1d842672017-11-28 16:06:52 -08002692 },
2693 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002694 "type" : "expression",
2695 "value" : {
2696 "type" : "expression",
2697 "value" : {
2698 "op" : "b2d",
2699 "left" : null,
2700 "right" : {
2701 "type" : "bool",
2702 "value" : true
2703 }
2704 }
2705 }
Yi Tseng1d842672017-11-28 16:06:52 -08002706 }
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002707 ]
Yi Tseng1d842672017-11-28 16:06:52 -08002708 }
2709 ]
2710 },
2711 {
2712 "name" : "act_1",
Charles Chancd03f072018-08-31 17:46:37 -07002713 "id" : 34,
Yi Tseng1d842672017-11-28 16:06:52 -08002714 "runtime_data" : [],
2715 "primitives" : [
2716 {
2717 "op" : "assign",
2718 "parameters" : [
2719 {
2720 "type" : "field",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002721 "value" : ["scalars", "filtering_tmp_0"]
Yi Tseng1d842672017-11-28 16:06:52 -08002722 },
2723 {
2724 "type" : "expression",
2725 "value" : {
2726 "type" : "expression",
2727 "value" : {
2728 "op" : "b2d",
2729 "left" : null,
2730 "right" : {
2731 "type" : "bool",
2732 "value" : false
2733 }
2734 }
2735 }
2736 }
2737 ]
2738 }
2739 ]
2740 },
2741 {
Carmelo Casconea5400af2018-07-17 22:11:54 +02002742 "name" : "act_2",
Charles Chancd03f072018-08-31 17:46:37 -07002743 "id" : 35,
Carmelo Casconea5400af2018-07-17 22:11:54 +02002744 "runtime_data" : [],
2745 "primitives" : [
2746 {
2747 "op" : "assign",
2748 "parameters" : [
2749 {
2750 "type" : "field",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002751 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
Carmelo Casconea5400af2018-07-17 22:11:54 +02002752 },
2753 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002754 "type" : "hexstr",
2755 "value" : "0x07"
Carmelo Casconea5400af2018-07-17 22:11:54 +02002756 }
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002757 ],
2758 "source_info" : {
2759 "filename" : "include/control/../define.p4",
2760 "line" : 109,
2761 "column" : 31,
2762 "source_fragment" : "7; ..."
2763 }
Carmelo Casconea5400af2018-07-17 22:11:54 +02002764 }
2765 ]
2766 },
2767 {
Yi Tsengbd46d052018-01-22 17:18:16 -08002768 "name" : "act_3",
Charles Chancd03f072018-08-31 17:46:37 -07002769 "id" : 36,
Yi Tseng1d842672017-11-28 16:06:52 -08002770 "runtime_data" : [],
2771 "primitives" : [
2772 {
2773 "op" : "assign",
2774 "parameters" : [
2775 {
2776 "type" : "field",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002777 "value" : ["vlan_tag", "ether_type"]
Carmelo Casconea5400af2018-07-17 22:11:54 +02002778 },
2779 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002780 "type" : "hexstr",
2781 "value" : "0x0800"
Carmelo Casconea5400af2018-07-17 22:11:54 +02002782 }
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002783 ],
2784 "source_info" : {
2785 "filename" : "include/control/../define.p4",
2786 "line" : 92,
2787 "column" : 31,
2788 "source_fragment" : "0x0800; ..."
2789 }
Carmelo Casconea5400af2018-07-17 22:11:54 +02002790 }
2791 ]
2792 },
2793 {
2794 "name" : "act_4",
Charles Chancd03f072018-08-31 17:46:37 -07002795 "id" : 37,
Carmelo Casconea5400af2018-07-17 22:11:54 +02002796 "runtime_data" : [],
2797 "primitives" : [
2798 {
2799 "op" : "assign",
2800 "parameters" : [
2801 {
2802 "type" : "field",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002803 "value" : ["scalars", "next_hasReturned_0"]
Carmelo Casconea5400af2018-07-17 22:11:54 +02002804 },
2805 {
2806 "type" : "expression",
2807 "value" : {
2808 "type" : "expression",
2809 "value" : {
2810 "op" : "b2d",
2811 "left" : null,
2812 "right" : {
2813 "type" : "bool",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002814 "value" : false
Carmelo Casconea5400af2018-07-17 22:11:54 +02002815 }
2816 }
2817 }
2818 }
2819 ]
2820 }
2821 ]
2822 },
2823 {
2824 "name" : "act_5",
Charles Chancd03f072018-08-31 17:46:37 -07002825 "id" : 38,
Carmelo Casconea5400af2018-07-17 22:11:54 +02002826 "runtime_data" : [],
2827 "primitives" : [
2828 {
2829 "op" : "assign",
2830 "parameters" : [
2831 {
2832 "type" : "field",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002833 "value" : ["scalars", "next_tmp_4"]
2834 },
2835 {
2836 "type" : "expression",
2837 "value" : {
2838 "type" : "expression",
2839 "value" : {
2840 "op" : "b2d",
2841 "left" : null,
2842 "right" : {
2843 "type" : "bool",
2844 "value" : true
2845 }
2846 }
2847 }
2848 }
2849 ]
2850 }
2851 ]
2852 },
2853 {
2854 "name" : "act_6",
Charles Chancd03f072018-08-31 17:46:37 -07002855 "id" : 39,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002856 "runtime_data" : [],
2857 "primitives" : [
2858 {
2859 "op" : "assign",
2860 "parameters" : [
2861 {
2862 "type" : "field",
2863 "value" : ["scalars", "next_tmp_4"]
2864 },
2865 {
2866 "type" : "expression",
2867 "value" : {
2868 "type" : "expression",
2869 "value" : {
2870 "op" : "b2d",
2871 "left" : null,
2872 "right" : {
2873 "type" : "bool",
2874 "value" : false
2875 }
2876 }
2877 }
2878 }
2879 ]
2880 }
2881 ]
2882 },
2883 {
2884 "name" : "act_7",
Charles Chancd03f072018-08-31 17:46:37 -07002885 "id" : 40,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002886 "runtime_data" : [],
2887 "primitives" : [
2888 {
2889 "op" : "assign",
2890 "parameters" : [
2891 {
2892 "type" : "field",
2893 "value" : ["scalars", "next_tmp_3"]
2894 },
2895 {
2896 "type" : "expression",
2897 "value" : {
2898 "type" : "expression",
2899 "value" : {
2900 "op" : "b2d",
2901 "left" : null,
2902 "right" : {
2903 "type" : "bool",
2904 "value" : true
2905 }
2906 }
2907 }
2908 }
2909 ]
2910 }
2911 ]
2912 },
2913 {
2914 "name" : "act_8",
Charles Chancd03f072018-08-31 17:46:37 -07002915 "id" : 41,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002916 "runtime_data" : [],
2917 "primitives" : [
2918 {
2919 "op" : "assign",
2920 "parameters" : [
2921 {
2922 "type" : "field",
Carmelo Casconea5400af2018-07-17 22:11:54 +02002923 "value" : ["scalars", "next_tmp_3"]
2924 },
2925 {
2926 "type" : "expression",
2927 "value" : {
2928 "type" : "expression",
2929 "value" : {
2930 "op" : "b2d",
2931 "left" : null,
2932 "right" : {
2933 "type" : "bool",
2934 "value" : false
2935 }
2936 }
2937 }
2938 }
2939 ]
2940 }
2941 ]
2942 },
2943 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002944 "name" : "act_9",
Charles Chancd03f072018-08-31 17:46:37 -07002945 "id" : 42,
Carmelo Casconea5400af2018-07-17 22:11:54 +02002946 "runtime_data" : [],
2947 "primitives" : [
2948 {
2949 "op" : "assign",
2950 "parameters" : [
2951 {
2952 "type" : "field",
2953 "value" : ["scalars", "next_tmp_2"]
2954 },
2955 {
2956 "type" : "expression",
2957 "value" : {
2958 "type" : "expression",
2959 "value" : {
2960 "op" : "b2d",
2961 "left" : null,
2962 "right" : {
2963 "type" : "bool",
2964 "value" : true
2965 }
2966 }
2967 }
2968 }
2969 ]
2970 }
2971 ]
2972 },
2973 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002974 "name" : "act_10",
Charles Chancd03f072018-08-31 17:46:37 -07002975 "id" : 43,
Carmelo Casconea5400af2018-07-17 22:11:54 +02002976 "runtime_data" : [],
2977 "primitives" : [
2978 {
2979 "op" : "assign",
2980 "parameters" : [
2981 {
2982 "type" : "field",
2983 "value" : ["scalars", "next_tmp_2"]
2984 },
2985 {
2986 "type" : "expression",
2987 "value" : {
2988 "type" : "expression",
2989 "value" : {
2990 "op" : "b2d",
2991 "left" : null,
2992 "right" : {
2993 "type" : "bool",
2994 "value" : false
2995 }
2996 }
2997 }
2998 }
2999 ]
3000 }
3001 ]
3002 },
3003 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003004 "name" : "act_11",
Charles Chancd03f072018-08-31 17:46:37 -07003005 "id" : 44,
Carmelo Casconea5400af2018-07-17 22:11:54 +02003006 "runtime_data" : [],
3007 "primitives" : [
3008 {
3009 "op" : "assign",
3010 "parameters" : [
3011 {
3012 "type" : "field",
3013 "value" : ["scalars", "next_hasReturned_0"]
3014 },
3015 {
3016 "type" : "expression",
3017 "value" : {
3018 "type" : "expression",
3019 "value" : {
3020 "op" : "b2d",
3021 "left" : null,
3022 "right" : {
3023 "type" : "bool",
3024 "value" : true
3025 }
3026 }
3027 }
3028 }
3029 ],
3030 "source_info" : {
3031 "filename" : "include/control/next.p4",
3032 "line" : 223,
3033 "column" : 20,
3034 "source_fragment" : "return"
3035 }
3036 }
3037 ]
3038 },
3039 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003040 "name" : "act_12",
Charles Chancd03f072018-08-31 17:46:37 -07003041 "id" : 45,
Carmelo Casconea5400af2018-07-17 22:11:54 +02003042 "runtime_data" : [],
3043 "primitives" : [
3044 {
3045 "op" : "assign",
3046 "parameters" : [
3047 {
3048 "type" : "field",
Yi Tseng1d842672017-11-28 16:06:52 -08003049 "value" : ["ipv4", "ttl"]
3050 },
3051 {
3052 "type" : "expression",
3053 "value" : {
3054 "type" : "expression",
3055 "value" : {
3056 "op" : "&",
3057 "left" : {
3058 "type" : "expression",
3059 "value" : {
3060 "op" : "+",
3061 "left" : {
3062 "type" : "field",
3063 "value" : ["ipv4", "ttl"]
3064 },
3065 "right" : {
3066 "type" : "hexstr",
3067 "value" : "0xff"
3068 }
3069 }
3070 },
3071 "right" : {
3072 "type" : "hexstr",
3073 "value" : "0xff"
3074 }
3075 }
3076 }
3077 }
3078 ],
3079 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003080 "filename" : "include/control/next.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02003081 "line" : 230,
3082 "column" : 16,
Yi Tseng1d842672017-11-28 16:06:52 -08003083 "source_fragment" : "hdr.ipv4.ttl = hdr.ipv4.ttl - 1"
3084 }
3085 }
3086 ]
3087 },
3088 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003089 "name" : "act_13",
Charles Chancd03f072018-08-31 17:46:37 -07003090 "id" : 46,
Yi Tseng1d842672017-11-28 16:06:52 -08003091 "runtime_data" : [],
3092 "primitives" : [
3093 {
3094 "op" : "assign",
3095 "parameters" : [
3096 {
3097 "type" : "field",
Yi Tsengc6844f52017-12-19 11:58:25 -08003098 "value" : ["scalars", "tmp_0"]
Yi Tsengbe342052017-11-03 10:21:23 -07003099 },
3100 {
3101 "type" : "expression",
3102 "value" : {
3103 "type" : "expression",
3104 "value" : {
3105 "op" : "&",
3106 "left" : {
3107 "type" : "field",
3108 "value" : ["standard_metadata", "egress_spec"]
3109 },
3110 "right" : {
3111 "type" : "hexstr",
3112 "value" : "0xffffffff"
3113 }
3114 }
3115 }
3116 }
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003117 ],
3118 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003119 "filename" : "include/control/port_counter.p4",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003120 "line" : 28,
3121 "column" : 38,
3122 "source_fragment" : "(bit<32>)standard_metadata.egress_spec"
3123 }
Yi Tsengbe342052017-11-03 10:21:23 -07003124 },
3125 {
3126 "op" : "count",
3127 "parameters" : [
3128 {
3129 "type" : "counter_array",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003130 "value" : "FabricIngress.port_counters_control.egress_port_counter"
Yi Tsengbe342052017-11-03 10:21:23 -07003131 },
3132 {
3133 "type" : "field",
Yi Tsengc6844f52017-12-19 11:58:25 -08003134 "value" : ["scalars", "tmp_0"]
Yi Tsengbe342052017-11-03 10:21:23 -07003135 }
3136 ],
3137 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003138 "filename" : "include/control/port_counter.p4",
Yi Tsengbe342052017-11-03 10:21:23 -07003139 "line" : 28,
3140 "column" : 12,
3141 "source_fragment" : "egress_port_counter.count((bit<32>)standard_metadata.egress_spec)"
3142 }
3143 }
3144 ]
3145 },
3146 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003147 "name" : "act_14",
Charles Chancd03f072018-08-31 17:46:37 -07003148 "id" : 47,
Yi Tsengbe342052017-11-03 10:21:23 -07003149 "runtime_data" : [],
3150 "primitives" : [
3151 {
3152 "op" : "assign",
3153 "parameters" : [
3154 {
3155 "type" : "field",
Yi Tsengc6844f52017-12-19 11:58:25 -08003156 "value" : ["scalars", "tmp_1"]
Yi Tsengbe342052017-11-03 10:21:23 -07003157 },
3158 {
3159 "type" : "expression",
3160 "value" : {
3161 "type" : "expression",
3162 "value" : {
3163 "op" : "&",
3164 "left" : {
3165 "type" : "field",
3166 "value" : ["standard_metadata", "ingress_port"]
3167 },
3168 "right" : {
3169 "type" : "hexstr",
3170 "value" : "0xffffffff"
3171 }
3172 }
3173 }
3174 }
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003175 ],
3176 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003177 "filename" : "include/control/port_counter.p4",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003178 "line" : 31,
3179 "column" : 39,
3180 "source_fragment" : "(bit<32>)standard_metadata.ingress_port"
3181 }
Yi Tsengbe342052017-11-03 10:21:23 -07003182 },
3183 {
3184 "op" : "count",
3185 "parameters" : [
3186 {
3187 "type" : "counter_array",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003188 "value" : "FabricIngress.port_counters_control.ingress_port_counter"
Yi Tsengbe342052017-11-03 10:21:23 -07003189 },
3190 {
3191 "type" : "field",
Yi Tsengc6844f52017-12-19 11:58:25 -08003192 "value" : ["scalars", "tmp_1"]
Yi Tsengbe342052017-11-03 10:21:23 -07003193 }
3194 ],
3195 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003196 "filename" : "include/control/port_counter.p4",
Yi Tsengbe342052017-11-03 10:21:23 -07003197 "line" : 31,
3198 "column" : 12,
3199 "source_fragment" : "ingress_port_counter.count((bit<32>)standard_metadata.ingress_port)"
3200 }
3201 }
3202 ]
3203 },
3204 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003205 "name" : "nop",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003206 "id" : 48,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003207 "runtime_data" : [],
Charles Chancd03f072018-08-31 17:46:37 -07003208 "primitives" : []
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003209 },
3210 {
3211 "name" : "drop_now",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003212 "id" : 49,
Carmelo Casconea5400af2018-07-17 22:11:54 +02003213 "runtime_data" : [],
3214 "primitives" : [
3215 {
3216 "op" : "drop",
3217 "parameters" : [],
3218 "source_info" : {
3219 "filename" : "include/control/../action.p4",
3220 "line" : 24,
3221 "column" : 4,
3222 "source_fragment" : "mark_to_drop()"
3223 }
3224 },
3225 {
3226 "op" : "exit",
3227 "parameters" : [],
3228 "source_info" : {
3229 "filename" : "include/control/../action.p4",
3230 "line" : 25,
3231 "column" : 4,
3232 "source_fragment" : "exit"
3233 }
3234 }
3235 ]
3236 },
3237 {
Charles Chancd03f072018-08-31 17:46:37 -07003238 "name" : "drop_now",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003239 "id" : 50,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003240 "runtime_data" : [],
3241 "primitives" : [
3242 {
Charles Chancd03f072018-08-31 17:46:37 -07003243 "op" : "drop",
3244 "parameters" : [],
3245 "source_info" : {
3246 "filename" : "include/control/../action.p4",
3247 "line" : 24,
3248 "column" : 4,
3249 "source_fragment" : "mark_to_drop()"
3250 }
3251 },
3252 {
3253 "op" : "exit",
3254 "parameters" : [],
3255 "source_info" : {
3256 "filename" : "include/control/../action.p4",
3257 "line" : 25,
3258 "column" : 4,
3259 "source_fragment" : "exit"
3260 }
3261 }
3262 ]
3263 },
3264 {
3265 "name" : "FabricEgress.pkt_io_egress.pop_vlan",
3266 "id" : 51,
3267 "runtime_data" : [],
3268 "primitives" : [
3269 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003270 "op" : "assign",
3271 "parameters" : [
3272 {
3273 "type" : "field",
3274 "value" : ["ethernet", "ether_type"]
3275 },
3276 {
3277 "type" : "field",
3278 "value" : ["vlan_tag", "ether_type"]
3279 }
3280 ],
3281 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003282 "filename" : "include/control/packetio.p4",
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07003283 "line" : 39,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003284 "column" : 8,
3285 "source_fragment" : "hdr.ethernet.ether_type = hdr.vlan_tag.ether_type"
3286 }
3287 },
3288 {
3289 "op" : "remove_header",
3290 "parameters" : [
3291 {
3292 "type" : "header",
3293 "value" : "vlan_tag"
3294 }
3295 ],
3296 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003297 "filename" : "include/control/packetio.p4",
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07003298 "line" : 40,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003299 "column" : 8,
3300 "source_fragment" : "hdr.vlan_tag.setInvalid()"
3301 }
3302 }
3303 ]
3304 },
3305 {
3306 "name" : "FabricEgress.egress_next.pop_vlan",
Charles Chancd03f072018-08-31 17:46:37 -07003307 "id" : 52,
Yi Tseng1d842672017-11-28 16:06:52 -08003308 "runtime_data" : [],
3309 "primitives" : [
3310 {
3311 "op" : "assign",
3312 "parameters" : [
3313 {
3314 "type" : "field",
3315 "value" : ["ethernet", "ether_type"]
3316 },
3317 {
3318 "type" : "field",
Yi Tsengbd46d052018-01-22 17:18:16 -08003319 "value" : ["vlan_tag", "ether_type"]
Yi Tseng1d842672017-11-28 16:06:52 -08003320 }
3321 ],
3322 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003323 "filename" : "include/control/next.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02003324 "line" : 253,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003325 "column" : 8,
Yi Tsengbd46d052018-01-22 17:18:16 -08003326 "source_fragment" : "hdr.ethernet.ether_type = hdr.vlan_tag.ether_type"
Yi Tseng1d842672017-11-28 16:06:52 -08003327 }
Yi Tsengbd46d052018-01-22 17:18:16 -08003328 },
Yi Tsengbe342052017-11-03 10:21:23 -07003329 {
3330 "op" : "remove_header",
3331 "parameters" : [
3332 {
3333 "type" : "header",
3334 "value" : "vlan_tag"
3335 }
3336 ],
3337 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003338 "filename" : "include/control/next.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02003339 "line" : 254,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003340 "column" : 8,
Yi Tsengbe342052017-11-03 10:21:23 -07003341 "source_fragment" : "hdr.vlan_tag.setInvalid()"
3342 }
3343 }
3344 ]
3345 },
3346 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003347 "name" : "act_15",
Charles Chancd03f072018-08-31 17:46:37 -07003348 "id" : 53,
Yi Tsengbe342052017-11-03 10:21:23 -07003349 "runtime_data" : [],
3350 "primitives" : [
3351 {
3352 "op" : "add_header",
3353 "parameters" : [
3354 {
3355 "type" : "header",
3356 "value" : "packet_in"
3357 }
3358 ],
3359 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003360 "filename" : "include/control/packetio.p4",
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07003361 "line" : 56,
Yi Tsengbe342052017-11-03 10:21:23 -07003362 "column" : 12,
3363 "source_fragment" : "hdr.packet_in.setValid()"
3364 }
3365 },
3366 {
3367 "op" : "assign",
3368 "parameters" : [
3369 {
3370 "type" : "field",
3371 "value" : ["packet_in", "ingress_port"]
3372 },
3373 {
3374 "type" : "field",
3375 "value" : ["standard_metadata", "ingress_port"]
3376 }
3377 ],
3378 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003379 "filename" : "include/control/packetio.p4",
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07003380 "line" : 57,
Yi Tsengbe342052017-11-03 10:21:23 -07003381 "column" : 12,
3382 "source_fragment" : "hdr.packet_in.ingress_port = standard_metadata.ingress_port"
3383 }
3384 }
3385 ]
Yi Tsengbe342052017-11-03 10:21:23 -07003386 }
3387 ],
3388 "pipelines" : [
3389 {
3390 "name" : "ingress",
3391 "id" : 0,
3392 "source_info" : {
3393 "filename" : "fabric.p4",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09003394 "line" : 40,
Yi Tsengbe342052017-11-03 10:21:23 -07003395 "column" : 8,
3396 "source_fragment" : "FabricIngress"
3397 },
3398 "init_table" : "node_2",
3399 "tables" : [
3400 {
3401 "name" : "tbl_act",
3402 "id" : 0,
3403 "key" : [],
3404 "match_type" : "exact",
3405 "type" : "simple",
3406 "max_size" : 1024,
3407 "with_counters" : false,
3408 "support_timeout" : false,
3409 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07003410 "action_ids" : [32],
Yi Tsengbe342052017-11-03 10:21:23 -07003411 "actions" : ["act"],
3412 "base_default_next" : null,
3413 "next_tables" : {
3414 "act" : null
3415 },
3416 "default_entry" : {
Charles Chancd03f072018-08-31 17:46:37 -07003417 "action_id" : 32,
Yi Tsengbe342052017-11-03 10:21:23 -07003418 "action_const" : true,
3419 "action_data" : [],
3420 "action_entry_const" : true
3421 }
3422 },
3423 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003424 "name" : "FabricIngress.filtering.ingress_port_vlan",
Yi Tsengbe342052017-11-03 10:21:23 -07003425 "id" : 1,
3426 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003427 "filename" : "include/control/filtering.p4",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003428 "line" : 66,
Yi Tsengbe342052017-11-03 10:21:23 -07003429 "column" : 10,
3430 "source_fragment" : "ingress_port_vlan"
3431 },
3432 "key" : [
3433 {
3434 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003435 "name" : "standard_metadata.ingress_port",
Yi Tsengbe342052017-11-03 10:21:23 -07003436 "target" : ["standard_metadata", "ingress_port"],
3437 "mask" : null
3438 },
3439 {
3440 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003441 "name" : "hdr.vlan_tag.is_valid",
Yi Tsengbe342052017-11-03 10:21:23 -07003442 "target" : ["vlan_tag", "$valid$"],
3443 "mask" : null
3444 },
3445 {
3446 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003447 "name" : "hdr.vlan_tag.vlan_id",
Yi Tsengbe342052017-11-03 10:21:23 -07003448 "target" : ["vlan_tag", "vlan_id"],
3449 "mask" : null
3450 }
3451 ],
3452 "match_type" : "ternary",
3453 "type" : "simple",
3454 "max_size" : 1024,
Yi Tsengbd46d052018-01-22 17:18:16 -08003455 "with_counters" : true,
Yi Tsengbe342052017-11-03 10:21:23 -07003456 "support_timeout" : false,
3457 "direct_meters" : null,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003458 "action_ids" : [9, 8, 7, 10],
3459 "actions" : ["FabricIngress.filtering.push_internal_vlan", "FabricIngress.filtering.set_vlan", "FabricIngress.filtering.drop", "FabricIngress.filtering.nop_ingress_port_vlan"],
3460 "base_default_next" : null,
Yi Tsengbe342052017-11-03 10:21:23 -07003461 "next_tables" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003462 "__HIT__" : "tbl_act_0",
3463 "__MISS__" : "tbl_act_1"
Yi Tsengbe342052017-11-03 10:21:23 -07003464 },
3465 "default_entry" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003466 "action_id" : 9,
3467 "action_const" : true,
3468 "action_data" : ["0xffe"],
3469 "action_entry_const" : true
3470 }
3471 },
3472 {
3473 "name" : "tbl_act_0",
3474 "id" : 2,
3475 "key" : [],
3476 "match_type" : "exact",
3477 "type" : "simple",
3478 "max_size" : 1024,
3479 "with_counters" : false,
3480 "support_timeout" : false,
3481 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07003482 "action_ids" : [33],
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003483 "actions" : ["act_0"],
3484 "base_default_next" : "node_7",
3485 "next_tables" : {
3486 "act_0" : "node_7"
3487 },
3488 "default_entry" : {
Charles Chancd03f072018-08-31 17:46:37 -07003489 "action_id" : 33,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003490 "action_const" : true,
3491 "action_data" : [],
3492 "action_entry_const" : true
3493 }
3494 },
3495 {
3496 "name" : "tbl_act_1",
3497 "id" : 3,
3498 "key" : [],
3499 "match_type" : "exact",
3500 "type" : "simple",
3501 "max_size" : 1024,
3502 "with_counters" : false,
3503 "support_timeout" : false,
3504 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07003505 "action_ids" : [34],
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003506 "actions" : ["act_1"],
3507 "base_default_next" : "node_7",
3508 "next_tables" : {
3509 "act_1" : "node_7"
3510 },
3511 "default_entry" : {
Charles Chancd03f072018-08-31 17:46:37 -07003512 "action_id" : 34,
Yi Tsengbe342052017-11-03 10:21:23 -07003513 "action_const" : true,
3514 "action_data" : [],
3515 "action_entry_const" : true
3516 }
3517 },
3518 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003519 "name" : "FabricIngress.filtering.fwd_classifier",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003520 "id" : 4,
Yi Tsengbe342052017-11-03 10:21:23 -07003521 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003522 "filename" : "include/control/filtering.p4",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003523 "line" : 103,
Yi Tsengbe342052017-11-03 10:21:23 -07003524 "column" : 10,
3525 "source_fragment" : "fwd_classifier"
3526 },
3527 "key" : [
3528 {
3529 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003530 "name" : "standard_metadata.ingress_port",
Yi Tsengbe342052017-11-03 10:21:23 -07003531 "target" : ["standard_metadata", "ingress_port"],
3532 "mask" : null
3533 },
3534 {
Charles Chan384aea22018-08-23 22:08:02 -07003535 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003536 "name" : "hdr.ethernet.dst_addr",
Yi Tsengbe342052017-11-03 10:21:23 -07003537 "target" : ["ethernet", "dst_addr"],
3538 "mask" : null
3539 },
3540 {
3541 "match_type" : "exact",
Yi Tseng8235a1a2018-07-24 20:57:28 +08003542 "name" : "hdr.vlan_tag.ether_type",
3543 "target" : ["vlan_tag", "ether_type"],
Yi Tsengbe342052017-11-03 10:21:23 -07003544 "mask" : null
3545 }
3546 ],
Charles Chan384aea22018-08-23 22:08:02 -07003547 "match_type" : "ternary",
Yi Tsengbe342052017-11-03 10:21:23 -07003548 "type" : "simple",
3549 "max_size" : 1024,
Yi Tsengbd46d052018-01-22 17:18:16 -08003550 "with_counters" : true,
Yi Tsengbe342052017-11-03 10:21:23 -07003551 "support_timeout" : false,
3552 "direct_meters" : null,
Charles Chancf696e52018-08-16 16:25:13 -07003553 "action_ids" : [11],
Yi Tseng27b9bc02018-04-12 14:52:40 +08003554 "actions" : ["FabricIngress.filtering.set_forwarding_type"],
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003555 "base_default_next" : "node_10",
Yi Tsengbe342052017-11-03 10:21:23 -07003556 "next_tables" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003557 "FabricIngress.filtering.set_forwarding_type" : "node_10"
Yi Tsengbe342052017-11-03 10:21:23 -07003558 },
3559 "default_entry" : {
Charles Chancf696e52018-08-16 16:25:13 -07003560 "action_id" : 11,
Yi Tsengbe342052017-11-03 10:21:23 -07003561 "action_const" : true,
3562 "action_data" : ["0x0"],
3563 "action_entry_const" : true
3564 }
3565 },
3566 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003567 "name" : "tbl_act_2",
3568 "id" : 5,
3569 "key" : [],
3570 "match_type" : "exact",
3571 "type" : "simple",
3572 "max_size" : 1024,
3573 "with_counters" : false,
3574 "support_timeout" : false,
3575 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07003576 "action_ids" : [35],
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003577 "actions" : ["act_2"],
3578 "base_default_next" : "node_10",
3579 "next_tables" : {
3580 "act_2" : "node_10"
3581 },
3582 "default_entry" : {
Charles Chancd03f072018-08-31 17:46:37 -07003583 "action_id" : 35,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003584 "action_const" : true,
3585 "action_data" : [],
3586 "action_entry_const" : true
3587 }
3588 },
3589 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003590 "name" : "FabricIngress.forwarding.bridging",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003591 "id" : 6,
Yi Tsengbe342052017-11-03 10:21:23 -07003592 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003593 "filename" : "include/control/forwarding.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08003594 "line" : 41,
Yi Tsengbe342052017-11-03 10:21:23 -07003595 "column" : 10,
3596 "source_fragment" : "bridging"
3597 },
3598 "key" : [
3599 {
3600 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003601 "name" : "hdr.vlan_tag.vlan_id",
Yi Tsengbe342052017-11-03 10:21:23 -07003602 "target" : ["vlan_tag", "vlan_id"],
3603 "mask" : null
3604 },
3605 {
3606 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003607 "name" : "hdr.ethernet.dst_addr",
Yi Tsengbe342052017-11-03 10:21:23 -07003608 "target" : ["ethernet", "dst_addr"],
3609 "mask" : null
3610 }
3611 ],
3612 "match_type" : "ternary",
3613 "type" : "simple",
3614 "max_size" : 1024,
Yi Tsengbd46d052018-01-22 17:18:16 -08003615 "with_counters" : true,
Yi Tsengbe342052017-11-03 10:21:23 -07003616 "support_timeout" : false,
3617 "direct_meters" : null,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003618 "action_ids" : [12, 0],
Yi Tseng47eac892018-07-11 02:17:04 +08003619 "actions" : ["FabricIngress.forwarding.set_next_id_bridging", "NoAction"],
Yi Tseng27b9bc02018-04-12 14:52:40 +08003620 "base_default_next" : "FabricIngress.forwarding.acl",
Yi Tseng1d842672017-11-28 16:06:52 -08003621 "next_tables" : {
Yi Tseng47eac892018-07-11 02:17:04 +08003622 "FabricIngress.forwarding.set_next_id_bridging" : "FabricIngress.forwarding.acl",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003623 "NoAction" : "FabricIngress.forwarding.acl"
Yi Tseng1d842672017-11-28 16:06:52 -08003624 },
3625 "default_entry" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003626 "action_id" : 0,
Yi Tseng1d842672017-11-28 16:06:52 -08003627 "action_const" : false,
3628 "action_data" : [],
3629 "action_entry_const" : false
3630 }
3631 },
3632 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003633 "name" : "FabricIngress.forwarding.mpls",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003634 "id" : 7,
Yi Tseng1d842672017-11-28 16:06:52 -08003635 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003636 "filename" : "include/control/forwarding.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08003637 "line" : 65,
Yi Tseng1d842672017-11-28 16:06:52 -08003638 "column" : 10,
3639 "source_fragment" : "mpls"
3640 },
3641 "key" : [
3642 {
3643 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003644 "name" : "hdr.mpls.label",
Yi Tseng1d842672017-11-28 16:06:52 -08003645 "target" : ["mpls", "label"],
3646 "mask" : null
3647 }
3648 ],
3649 "match_type" : "exact",
3650 "type" : "simple",
3651 "max_size" : 1024,
Yi Tsengbd46d052018-01-22 17:18:16 -08003652 "with_counters" : true,
Yi Tseng1d842672017-11-28 16:06:52 -08003653 "support_timeout" : false,
3654 "direct_meters" : null,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003655 "action_ids" : [13, 1],
Yi Tseng27b9bc02018-04-12 14:52:40 +08003656 "actions" : ["FabricIngress.forwarding.pop_mpls_and_next", "NoAction"],
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003657 "base_default_next" : "tbl_act_3",
Yi Tseng1d842672017-11-28 16:06:52 -08003658 "next_tables" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003659 "FabricIngress.forwarding.pop_mpls_and_next" : "tbl_act_3",
3660 "NoAction" : "tbl_act_3"
Yi Tseng1d842672017-11-28 16:06:52 -08003661 },
3662 "default_entry" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003663 "action_id" : 1,
Yi Tseng1d842672017-11-28 16:06:52 -08003664 "action_const" : false,
3665 "action_data" : [],
3666 "action_entry_const" : false
3667 }
3668 },
3669 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003670 "name" : "tbl_act_3",
3671 "id" : 8,
Yi Tseng1d842672017-11-28 16:06:52 -08003672 "key" : [],
3673 "match_type" : "exact",
3674 "type" : "simple",
3675 "max_size" : 1024,
3676 "with_counters" : false,
3677 "support_timeout" : false,
3678 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07003679 "action_ids" : [36],
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003680 "actions" : ["act_3"],
Yi Tseng27b9bc02018-04-12 14:52:40 +08003681 "base_default_next" : "FabricIngress.forwarding.acl",
Yi Tseng1d842672017-11-28 16:06:52 -08003682 "next_tables" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003683 "act_3" : "FabricIngress.forwarding.acl"
Yi Tseng1d842672017-11-28 16:06:52 -08003684 },
3685 "default_entry" : {
Charles Chancd03f072018-08-31 17:46:37 -07003686 "action_id" : 36,
Yi Tseng1d842672017-11-28 16:06:52 -08003687 "action_const" : true,
3688 "action_data" : [],
3689 "action_entry_const" : true
3690 }
3691 },
3692 {
Charles Chan384aea22018-08-23 22:08:02 -07003693 "name" : "FabricIngress.forwarding.routing_v4",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003694 "id" : 9,
Yi Tseng1d842672017-11-28 16:06:52 -08003695 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003696 "filename" : "include/control/forwarding.p4",
Charles Chancd03f072018-08-31 17:46:37 -07003697 "line" : 91,
Yi Tseng1d842672017-11-28 16:06:52 -08003698 "column" : 10,
Charles Chan384aea22018-08-23 22:08:02 -07003699 "source_fragment" : "routing_v4"
Yi Tseng1d842672017-11-28 16:06:52 -08003700 },
3701 "key" : [
3702 {
3703 "match_type" : "lpm",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003704 "name" : "hdr.ipv4.dst_addr",
Yi Tseng1d842672017-11-28 16:06:52 -08003705 "target" : ["ipv4", "dst_addr"],
3706 "mask" : null
3707 }
3708 ],
3709 "match_type" : "lpm",
3710 "type" : "simple",
3711 "max_size" : 1024,
Yi Tsengbd46d052018-01-22 17:18:16 -08003712 "with_counters" : true,
Yi Tseng1d842672017-11-28 16:06:52 -08003713 "support_timeout" : false,
3714 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07003715 "action_ids" : [14, 15, 2],
3716 "actions" : ["FabricIngress.forwarding.set_next_id_routing_v4", "FabricIngress.forwarding.nop_routing_v4", "NoAction"],
Yi Tseng27b9bc02018-04-12 14:52:40 +08003717 "base_default_next" : "FabricIngress.forwarding.acl",
Yi Tsengbe342052017-11-03 10:21:23 -07003718 "next_tables" : {
Charles Chan384aea22018-08-23 22:08:02 -07003719 "FabricIngress.forwarding.set_next_id_routing_v4" : "FabricIngress.forwarding.acl",
Charles Chancd03f072018-08-31 17:46:37 -07003720 "FabricIngress.forwarding.nop_routing_v4" : "FabricIngress.forwarding.acl",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003721 "NoAction" : "FabricIngress.forwarding.acl"
Yi Tsengbe342052017-11-03 10:21:23 -07003722 },
3723 "default_entry" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003724 "action_id" : 2,
Yi Tsengbe342052017-11-03 10:21:23 -07003725 "action_const" : false,
3726 "action_data" : [],
3727 "action_entry_const" : false
3728 }
3729 },
3730 {
Carmelo Casconef645e842018-07-16 18:31:52 +02003731 "name" : "FabricIngress.forwarding.acl",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003732 "id" : 10,
Yi Tsengbe342052017-11-03 10:21:23 -07003733 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003734 "filename" : "include/control/forwarding.p4",
Charles Chancd03f072018-08-31 17:46:37 -07003735 "line" : 136,
Yi Tsengbe342052017-11-03 10:21:23 -07003736 "column" : 10,
Yi Tsengbe342052017-11-03 10:21:23 -07003737 "source_fragment" : "acl"
3738 },
3739 "key" : [
3740 {
3741 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003742 "name" : "standard_metadata.ingress_port",
Yi Tsengbe342052017-11-03 10:21:23 -07003743 "target" : ["standard_metadata", "ingress_port"],
3744 "mask" : null
3745 },
3746 {
3747 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003748 "name" : "fabric_metadata.ip_proto",
Yi Tsengbe342052017-11-03 10:21:23 -07003749 "target" : ["scalars", "fabric_metadata_t.ip_proto"],
3750 "mask" : null
3751 },
3752 {
3753 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003754 "name" : "fabric_metadata.l4_src_port",
Yi Tseng1d842672017-11-28 16:06:52 -08003755 "target" : ["scalars", "fabric_metadata_t.l4_src_port"],
3756 "mask" : null
3757 },
3758 {
3759 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003760 "name" : "fabric_metadata.l4_dst_port",
Yi Tseng1d842672017-11-28 16:06:52 -08003761 "target" : ["scalars", "fabric_metadata_t.l4_dst_port"],
3762 "mask" : null
3763 },
3764 {
3765 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003766 "name" : "hdr.ethernet.dst_addr",
Yi Tsengbe342052017-11-03 10:21:23 -07003767 "target" : ["ethernet", "dst_addr"],
3768 "mask" : null
3769 },
3770 {
3771 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003772 "name" : "hdr.ethernet.src_addr",
Yi Tsengbe342052017-11-03 10:21:23 -07003773 "target" : ["ethernet", "src_addr"],
3774 "mask" : null
3775 },
3776 {
3777 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003778 "name" : "hdr.vlan_tag.vlan_id",
Yi Tsengbe342052017-11-03 10:21:23 -07003779 "target" : ["vlan_tag", "vlan_id"],
3780 "mask" : null
3781 },
3782 {
3783 "match_type" : "ternary",
Yi Tseng8235a1a2018-07-24 20:57:28 +08003784 "name" : "hdr.vlan_tag.ether_type",
3785 "target" : ["vlan_tag", "ether_type"],
3786 "mask" : null
3787 },
3788 {
3789 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003790 "name" : "hdr.ipv4.src_addr",
Yi Tsengbe342052017-11-03 10:21:23 -07003791 "target" : ["ipv4", "src_addr"],
3792 "mask" : null
3793 },
3794 {
3795 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003796 "name" : "hdr.ipv4.dst_addr",
Yi Tsengbe342052017-11-03 10:21:23 -07003797 "target" : ["ipv4", "dst_addr"],
3798 "mask" : null
3799 },
3800 {
3801 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003802 "name" : "hdr.icmp.icmp_type",
Yi Tsengbe342052017-11-03 10:21:23 -07003803 "target" : ["icmp", "icmp_type"],
3804 "mask" : null
3805 },
3806 {
3807 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003808 "name" : "hdr.icmp.icmp_code",
Yi Tsengbe342052017-11-03 10:21:23 -07003809 "target" : ["icmp", "icmp_code"],
3810 "mask" : null
3811 }
3812 ],
3813 "match_type" : "ternary",
3814 "type" : "simple",
Yi Tseng8235a1a2018-07-24 20:57:28 +08003815 "max_size" : 128,
Yi Tsengbd46d052018-01-22 17:18:16 -08003816 "with_counters" : true,
Yi Tsengbe342052017-11-03 10:21:23 -07003817 "support_timeout" : false,
3818 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07003819 "action_ids" : [16, 17, 18, 19, 20],
Charles Chancf696e52018-08-16 16:25:13 -07003820 "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 -07003821 "base_default_next" : "tbl_act_4",
Yi Tsengbe342052017-11-03 10:21:23 -07003822 "next_tables" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003823 "FabricIngress.forwarding.set_next_id_acl" : "tbl_act_4",
3824 "FabricIngress.forwarding.punt_to_cpu" : "tbl_act_4",
3825 "FabricIngress.forwarding.clone_to_cpu" : "tbl_act_4",
3826 "FabricIngress.forwarding.drop" : "tbl_act_4",
3827 "FabricIngress.forwarding.nop_acl" : "tbl_act_4"
Yi Tsengbe342052017-11-03 10:21:23 -07003828 },
3829 "default_entry" : {
Charles Chancd03f072018-08-31 17:46:37 -07003830 "action_id" : 20,
Yi Tsengbe342052017-11-03 10:21:23 -07003831 "action_const" : true,
3832 "action_data" : [],
3833 "action_entry_const" : true
3834 }
3835 },
3836 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003837 "name" : "tbl_act_4",
3838 "id" : 11,
Carmelo Casconea5400af2018-07-17 22:11:54 +02003839 "key" : [],
3840 "match_type" : "exact",
3841 "type" : "simple",
3842 "max_size" : 1024,
3843 "with_counters" : false,
3844 "support_timeout" : false,
3845 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07003846 "action_ids" : [37],
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003847 "actions" : ["act_4"],
Carmelo Casconea5400af2018-07-17 22:11:54 +02003848 "base_default_next" : "FabricIngress.next.vlan_meta",
3849 "next_tables" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003850 "act_4" : "FabricIngress.next.vlan_meta"
Carmelo Casconea5400af2018-07-17 22:11:54 +02003851 },
3852 "default_entry" : {
Charles Chancd03f072018-08-31 17:46:37 -07003853 "action_id" : 37,
Carmelo Casconea5400af2018-07-17 22:11:54 +02003854 "action_const" : true,
3855 "action_data" : [],
3856 "action_entry_const" : true
3857 }
3858 },
3859 {
3860 "name" : "FabricIngress.next.vlan_meta",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003861 "id" : 12,
Yi Tsengbe342052017-11-03 10:21:23 -07003862 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003863 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08003864 "line" : 65,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003865 "column" : 10,
3866 "source_fragment" : "vlan_meta"
3867 },
3868 "key" : [
3869 {
3870 "match_type" : "exact",
3871 "name" : "fabric_metadata.next_id",
3872 "target" : ["scalars", "fabric_metadata_t.next_id"],
3873 "mask" : null
3874 }
3875 ],
3876 "match_type" : "exact",
3877 "type" : "simple",
3878 "max_size" : 1024,
3879 "with_counters" : true,
3880 "support_timeout" : false,
3881 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07003882 "action_ids" : [21, 6],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003883 "actions" : ["FabricIngress.next.set_vlan", "nop"],
3884 "base_default_next" : "FabricIngress.next.simple",
3885 "next_tables" : {
3886 "FabricIngress.next.set_vlan" : "FabricIngress.next.simple",
3887 "nop" : "FabricIngress.next.simple"
3888 },
3889 "default_entry" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003890 "action_id" : 6,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003891 "action_const" : false,
3892 "action_data" : [],
3893 "action_entry_const" : false
3894 }
3895 },
3896 {
3897 "name" : "FabricIngress.next.simple",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003898 "id" : 13,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003899 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003900 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08003901 "line" : 122,
Yi Tsengbe342052017-11-03 10:21:23 -07003902 "column" : 10,
3903 "source_fragment" : "simple"
3904 },
3905 "key" : [
3906 {
3907 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003908 "name" : "fabric_metadata.next_id",
Yi Tsengbe342052017-11-03 10:21:23 -07003909 "target" : ["scalars", "fabric_metadata_t.next_id"],
3910 "mask" : null
3911 }
3912 ],
3913 "match_type" : "exact",
3914 "type" : "simple",
3915 "max_size" : 1024,
Yi Tsengbd46d052018-01-22 17:18:16 -08003916 "with_counters" : true,
Yi Tsengbe342052017-11-03 10:21:23 -07003917 "support_timeout" : false,
3918 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07003919 "action_ids" : [22, 23, 24, 25, 26, 27, 3],
Yi Tseng47eac892018-07-11 02:17:04 +08003920 "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 -08003921 "base_default_next" : null,
Yi Tsengbe342052017-11-03 10:21:23 -07003922 "next_tables" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003923 "__HIT__" : "tbl_act_5",
3924 "__MISS__" : "tbl_act_6"
Yi Tsengbe342052017-11-03 10:21:23 -07003925 },
3926 "default_entry" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003927 "action_id" : 3,
Yi Tsengbe342052017-11-03 10:21:23 -07003928 "action_const" : false,
3929 "action_data" : [],
3930 "action_entry_const" : false
3931 }
3932 },
3933 {
Carmelo Casconea5400af2018-07-17 22:11:54 +02003934 "name" : "tbl_act_5",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003935 "id" : 14,
Carmelo Casconea5400af2018-07-17 22:11:54 +02003936 "key" : [],
3937 "match_type" : "exact",
3938 "type" : "simple",
3939 "max_size" : 1024,
3940 "with_counters" : false,
3941 "support_timeout" : false,
3942 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07003943 "action_ids" : [38],
Carmelo Casconea5400af2018-07-17 22:11:54 +02003944 "actions" : ["act_5"],
3945 "base_default_next" : "node_23",
3946 "next_tables" : {
3947 "act_5" : "node_23"
3948 },
3949 "default_entry" : {
Charles Chancd03f072018-08-31 17:46:37 -07003950 "action_id" : 38,
Carmelo Casconea5400af2018-07-17 22:11:54 +02003951 "action_const" : true,
3952 "action_data" : [],
3953 "action_entry_const" : true
Esin Karaman971fb7f2017-12-28 13:44:52 +00003954 }
3955 },
3956 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003957 "name" : "tbl_act_6",
3958 "id" : 15,
3959 "key" : [],
3960 "match_type" : "exact",
3961 "type" : "simple",
3962 "max_size" : 1024,
3963 "with_counters" : false,
3964 "support_timeout" : false,
3965 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07003966 "action_ids" : [39],
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003967 "actions" : ["act_6"],
3968 "base_default_next" : "node_23",
3969 "next_tables" : {
3970 "act_6" : "node_23"
3971 },
3972 "default_entry" : {
Charles Chancd03f072018-08-31 17:46:37 -07003973 "action_id" : 39,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003974 "action_const" : true,
3975 "action_data" : [],
3976 "action_entry_const" : true
3977 }
3978 },
3979 {
3980 "name" : "FabricIngress.next.hashed",
Carmelo Casconea5400af2018-07-17 22:11:54 +02003981 "id" : 16,
Esin Karaman971fb7f2017-12-28 13:44:52 +00003982 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003983 "filename" : "include/control/next.p4",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003984 "line" : 175,
Esin Karaman971fb7f2017-12-28 13:44:52 +00003985 "column" : 10,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003986 "source_fragment" : "hashed"
Esin Karaman971fb7f2017-12-28 13:44:52 +00003987 },
3988 "key" : [
3989 {
3990 "match_type" : "exact",
3991 "name" : "fabric_metadata.next_id",
3992 "target" : ["scalars", "fabric_metadata_t.next_id"],
3993 "mask" : null
3994 }
3995 ],
3996 "match_type" : "exact",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003997 "type" : "indirect_ws",
3998 "action_profile" : "FabricIngress.next.ecmp_selector",
Esin Karaman971fb7f2017-12-28 13:44:52 +00003999 "max_size" : 1024,
4000 "with_counters" : true,
4001 "support_timeout" : false,
4002 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07004003 "action_ids" : [28, 29, 30, 4],
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004004 "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 +02004005 "base_default_next" : null,
Esin Karaman971fb7f2017-12-28 13:44:52 +00004006 "next_tables" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004007 "__HIT__" : "tbl_act_7",
4008 "__MISS__" : "tbl_act_8"
Esin Karaman971fb7f2017-12-28 13:44:52 +00004009 }
4010 },
4011 {
Carmelo Casconea5400af2018-07-17 22:11:54 +02004012 "name" : "tbl_act_7",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004013 "id" : 17,
Esin Karaman971fb7f2017-12-28 13:44:52 +00004014 "key" : [],
4015 "match_type" : "exact",
4016 "type" : "simple",
4017 "max_size" : 1024,
4018 "with_counters" : false,
4019 "support_timeout" : false,
4020 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07004021 "action_ids" : [40],
Carmelo Casconea5400af2018-07-17 22:11:54 +02004022 "actions" : ["act_7"],
4023 "base_default_next" : "node_27",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004024 "next_tables" : {
Carmelo Casconea5400af2018-07-17 22:11:54 +02004025 "act_7" : "node_27"
Yi Tseng27b9bc02018-04-12 14:52:40 +08004026 },
4027 "default_entry" : {
Charles Chancd03f072018-08-31 17:46:37 -07004028 "action_id" : 40,
Carmelo Casconea5400af2018-07-17 22:11:54 +02004029 "action_const" : true,
4030 "action_data" : [],
4031 "action_entry_const" : true
4032 }
4033 },
4034 {
4035 "name" : "tbl_act_8",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004036 "id" : 18,
Carmelo Casconea5400af2018-07-17 22:11:54 +02004037 "key" : [],
4038 "match_type" : "exact",
4039 "type" : "simple",
4040 "max_size" : 1024,
4041 "with_counters" : false,
4042 "support_timeout" : false,
4043 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07004044 "action_ids" : [41],
Carmelo Casconea5400af2018-07-17 22:11:54 +02004045 "actions" : ["act_8"],
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004046 "base_default_next" : "node_27",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004047 "next_tables" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004048 "act_8" : "node_27"
Carmelo Casconea5400af2018-07-17 22:11:54 +02004049 },
4050 "default_entry" : {
Charles Chancd03f072018-08-31 17:46:37 -07004051 "action_id" : 41,
Carmelo Casconea5400af2018-07-17 22:11:54 +02004052 "action_const" : true,
4053 "action_data" : [],
4054 "action_entry_const" : true
4055 }
4056 },
4057 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004058 "name" : "FabricIngress.next.multicast",
4059 "id" : 19,
4060 "source_info" : {
4061 "filename" : "include/control/next.p4",
4062 "line" : 207,
4063 "column" : 10,
4064 "source_fragment" : "multicast"
4065 },
4066 "key" : [
4067 {
4068 "match_type" : "exact",
4069 "name" : "fabric_metadata.next_id",
4070 "target" : ["scalars", "fabric_metadata_t.next_id"],
4071 "mask" : null
4072 }
4073 ],
4074 "match_type" : "exact",
4075 "type" : "simple",
4076 "max_size" : 1024,
4077 "with_counters" : true,
4078 "support_timeout" : false,
4079 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07004080 "action_ids" : [31, 5],
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004081 "actions" : ["FabricIngress.next.set_mcast_group", "NoAction"],
4082 "base_default_next" : null,
4083 "next_tables" : {
4084 "__HIT__" : "tbl_act_9",
4085 "__MISS__" : "tbl_act_10"
4086 },
4087 "default_entry" : {
4088 "action_id" : 5,
4089 "action_const" : false,
4090 "action_data" : [],
4091 "action_entry_const" : false
4092 }
4093 },
4094 {
Carmelo Casconea5400af2018-07-17 22:11:54 +02004095 "name" : "tbl_act_9",
4096 "id" : 20,
4097 "key" : [],
4098 "match_type" : "exact",
4099 "type" : "simple",
4100 "max_size" : 1024,
4101 "with_counters" : false,
4102 "support_timeout" : false,
4103 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07004104 "action_ids" : [42],
Carmelo Casconea5400af2018-07-17 22:11:54 +02004105 "actions" : ["act_9"],
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004106 "base_default_next" : "node_31",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004107 "next_tables" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004108 "act_9" : "node_31"
Carmelo Casconea5400af2018-07-17 22:11:54 +02004109 },
4110 "default_entry" : {
Charles Chancd03f072018-08-31 17:46:37 -07004111 "action_id" : 42,
Carmelo Casconea5400af2018-07-17 22:11:54 +02004112 "action_const" : true,
4113 "action_data" : [],
4114 "action_entry_const" : true
4115 }
4116 },
4117 {
4118 "name" : "tbl_act_10",
4119 "id" : 21,
4120 "key" : [],
4121 "match_type" : "exact",
4122 "type" : "simple",
4123 "max_size" : 1024,
4124 "with_counters" : false,
4125 "support_timeout" : false,
4126 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07004127 "action_ids" : [43],
Carmelo Casconea5400af2018-07-17 22:11:54 +02004128 "actions" : ["act_10"],
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004129 "base_default_next" : "node_31",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004130 "next_tables" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004131 "act_10" : "node_31"
Carmelo Casconea5400af2018-07-17 22:11:54 +02004132 },
4133 "default_entry" : {
Charles Chancd03f072018-08-31 17:46:37 -07004134 "action_id" : 43,
Carmelo Casconea5400af2018-07-17 22:11:54 +02004135 "action_const" : true,
4136 "action_data" : [],
4137 "action_entry_const" : true
4138 }
4139 },
4140 {
4141 "name" : "tbl_act_11",
4142 "id" : 22,
4143 "key" : [],
4144 "match_type" : "exact",
4145 "type" : "simple",
4146 "max_size" : 1024,
4147 "with_counters" : false,
4148 "support_timeout" : false,
4149 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07004150 "action_ids" : [44],
Carmelo Casconea5400af2018-07-17 22:11:54 +02004151 "actions" : ["act_11"],
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004152 "base_default_next" : "node_33",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004153 "next_tables" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004154 "act_11" : "node_33"
Carmelo Casconea5400af2018-07-17 22:11:54 +02004155 },
4156 "default_entry" : {
Charles Chancd03f072018-08-31 17:46:37 -07004157 "action_id" : 44,
Yi Tseng3a5731e2018-01-22 11:38:58 -08004158 "action_const" : true,
4159 "action_data" : [],
4160 "action_entry_const" : true
4161 }
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004162 },
4163 {
4164 "name" : "tbl_act_12",
4165 "id" : 23,
4166 "key" : [],
4167 "match_type" : "exact",
4168 "type" : "simple",
4169 "max_size" : 1024,
4170 "with_counters" : false,
4171 "support_timeout" : false,
4172 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07004173 "action_ids" : [45],
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004174 "actions" : ["act_12"],
4175 "base_default_next" : "node_37",
4176 "next_tables" : {
4177 "act_12" : "node_37"
4178 },
4179 "default_entry" : {
Charles Chancd03f072018-08-31 17:46:37 -07004180 "action_id" : 45,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004181 "action_const" : true,
4182 "action_data" : [],
4183 "action_entry_const" : true
4184 }
4185 },
4186 {
4187 "name" : "tbl_act_13",
4188 "id" : 24,
4189 "key" : [],
4190 "match_type" : "exact",
4191 "type" : "simple",
4192 "max_size" : 1024,
4193 "with_counters" : false,
4194 "support_timeout" : false,
4195 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07004196 "action_ids" : [46],
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004197 "actions" : ["act_13"],
4198 "base_default_next" : "node_39",
4199 "next_tables" : {
4200 "act_13" : "node_39"
4201 },
4202 "default_entry" : {
Charles Chancd03f072018-08-31 17:46:37 -07004203 "action_id" : 46,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004204 "action_const" : true,
4205 "action_data" : [],
4206 "action_entry_const" : true
4207 }
4208 },
4209 {
4210 "name" : "tbl_act_14",
4211 "id" : 25,
4212 "key" : [],
4213 "match_type" : "exact",
4214 "type" : "simple",
4215 "max_size" : 1024,
4216 "with_counters" : false,
4217 "support_timeout" : false,
4218 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07004219 "action_ids" : [47],
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004220 "actions" : ["act_14"],
4221 "base_default_next" : null,
4222 "next_tables" : {
4223 "act_14" : null
4224 },
4225 "default_entry" : {
Charles Chancd03f072018-08-31 17:46:37 -07004226 "action_id" : 47,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004227 "action_const" : true,
4228 "action_data" : [],
4229 "action_entry_const" : true
4230 }
Yi Tsengbe342052017-11-03 10:21:23 -07004231 }
4232 ],
4233 "action_profiles" : [
4234 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004235 "name" : "FabricIngress.next.ecmp_selector",
Yi Tsengbe342052017-11-03 10:21:23 -07004236 "id" : 0,
4237 "max_size" : 64,
4238 "selector" : {
4239 "algo" : "crc16",
4240 "input" : [
4241 {
4242 "type" : "field",
Yi Tseng3d3956d2018-01-31 17:28:05 -08004243 "value" : ["ipv4", "dst_addr"]
Yi Tsengbe342052017-11-03 10:21:23 -07004244 },
4245 {
4246 "type" : "field",
Yi Tseng3d3956d2018-01-31 17:28:05 -08004247 "value" : ["ipv4", "src_addr"]
Yi Tsengbe342052017-11-03 10:21:23 -07004248 },
4249 {
4250 "type" : "field",
Yi Tseng1d842672017-11-28 16:06:52 -08004251 "value" : ["scalars", "fabric_metadata_t.ip_proto"]
Yi Tsengbe342052017-11-03 10:21:23 -07004252 },
4253 {
4254 "type" : "field",
4255 "value" : ["scalars", "fabric_metadata_t.l4_src_port"]
4256 },
4257 {
4258 "type" : "field",
4259 "value" : ["scalars", "fabric_metadata_t.l4_dst_port"]
4260 }
4261 ]
4262 }
4263 }
4264 ],
4265 "conditionals" : [
4266 {
4267 "name" : "node_2",
4268 "id" : 0,
4269 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004270 "filename" : "include/control/packetio.p4",
Yi Tsengbe342052017-11-03 10:21:23 -07004271 "line" : 25,
4272 "column" : 12,
4273 "source_fragment" : "hdr.packet_out.isValid()"
4274 },
4275 "expression" : {
4276 "type" : "expression",
4277 "value" : {
Yi Tsengbd46d052018-01-22 17:18:16 -08004278 "op" : "d2b",
4279 "left" : null,
4280 "right" : {
Yi Tsengbe342052017-11-03 10:21:23 -07004281 "type" : "field",
4282 "value" : ["packet_out", "$valid$"]
Yi Tsengbe342052017-11-03 10:21:23 -07004283 }
4284 }
4285 },
4286 "true_next" : "tbl_act",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004287 "false_next" : "FabricIngress.filtering.ingress_port_vlan"
Yi Tsengbe342052017-11-03 10:21:23 -07004288 },
4289 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004290 "name" : "node_7",
Yi Tsengbe342052017-11-03 10:21:23 -07004291 "id" : 1,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004292 "expression" : {
4293 "type" : "expression",
4294 "value" : {
4295 "op" : "d2b",
4296 "left" : null,
4297 "right" : {
4298 "type" : "field",
4299 "value" : ["scalars", "filtering_tmp_0"]
4300 }
4301 }
4302 },
4303 "true_next" : "FabricIngress.filtering.fwd_classifier",
4304 "false_next" : "tbl_act_2"
4305 },
4306 {
4307 "name" : "node_10",
4308 "id" : 2,
Yi Tsengbe342052017-11-03 10:21:23 -07004309 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004310 "filename" : "include/control/forwarding.p4",
Charles Chancd03f072018-08-31 17:46:37 -07004311 "line" : 191,
Yi Tsengbe342052017-11-03 10:21:23 -07004312 "column" : 11,
4313 "source_fragment" : "fabric_metadata.fwd_type == FWD_BRIDGING"
4314 },
4315 "expression" : {
4316 "type" : "expression",
4317 "value" : {
4318 "op" : "==",
4319 "left" : {
4320 "type" : "field",
4321 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
4322 },
4323 "right" : {
4324 "type" : "hexstr",
4325 "value" : "0x00"
4326 }
4327 }
4328 },
Yi Tseng27b9bc02018-04-12 14:52:40 +08004329 "true_next" : "FabricIngress.forwarding.bridging",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004330 "false_next" : "node_12"
Yi Tsengbe342052017-11-03 10:21:23 -07004331 },
4332 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004333 "name" : "node_12",
4334 "id" : 3,
Yi Tsengbe342052017-11-03 10:21:23 -07004335 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004336 "filename" : "include/control/forwarding.p4",
Charles Chancd03f072018-08-31 17:46:37 -07004337 "line" : 192,
Yi Tsengbe342052017-11-03 10:21:23 -07004338 "column" : 17,
4339 "source_fragment" : "fabric_metadata.fwd_type == FWD_MPLS"
4340 },
4341 "expression" : {
4342 "type" : "expression",
4343 "value" : {
4344 "op" : "==",
4345 "left" : {
4346 "type" : "field",
4347 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
4348 },
4349 "right" : {
4350 "type" : "hexstr",
4351 "value" : "0x01"
4352 }
4353 }
4354 },
Yi Tseng27b9bc02018-04-12 14:52:40 +08004355 "true_next" : "FabricIngress.forwarding.mpls",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004356 "false_next" : "node_15"
Yi Tsengbe342052017-11-03 10:21:23 -07004357 },
4358 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004359 "name" : "node_15",
4360 "id" : 4,
Yi Tsengbe342052017-11-03 10:21:23 -07004361 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004362 "filename" : "include/control/forwarding.p4",
Charles Chancd03f072018-08-31 17:46:37 -07004363 "line" : 198,
Yi Tsengbe342052017-11-03 10:21:23 -07004364 "column" : 17,
4365 "source_fragment" : "fabric_metadata.fwd_type == FWD_IPV4_UNICAST"
4366 },
4367 "expression" : {
4368 "type" : "expression",
4369 "value" : {
4370 "op" : "==",
4371 "left" : {
4372 "type" : "field",
4373 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
4374 },
4375 "right" : {
4376 "type" : "hexstr",
4377 "value" : "0x02"
4378 }
4379 }
4380 },
Charles Chan384aea22018-08-23 22:08:02 -07004381 "true_next" : "FabricIngress.forwarding.routing_v4",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004382 "false_next" : "FabricIngress.forwarding.acl"
4383 },
4384 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004385 "name" : "node_23",
4386 "id" : 5,
Yi Tseng1d842672017-11-28 16:06:52 -08004387 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004388 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08004389 "line" : 219,
Carmelo Casconea5400af2018-07-17 22:11:54 +02004390 "column" : 12,
4391 "source_fragment" : "!simple.apply().hit"
4392 },
4393 "expression" : {
4394 "type" : "expression",
4395 "value" : {
4396 "op" : "not",
4397 "left" : null,
4398 "right" : {
4399 "type" : "expression",
4400 "value" : {
4401 "op" : "d2b",
4402 "left" : null,
4403 "right" : {
4404 "type" : "field",
4405 "value" : ["scalars", "next_tmp_4"]
4406 }
4407 }
4408 }
4409 }
4410 },
4411 "true_next" : "FabricIngress.next.hashed",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004412 "false_next" : "node_33"
Carmelo Casconea5400af2018-07-17 22:11:54 +02004413 },
4414 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004415 "name" : "node_27",
4416 "id" : 6,
Carmelo Casconea5400af2018-07-17 22:11:54 +02004417 "source_info" : {
4418 "filename" : "include/control/next.p4",
4419 "line" : 220,
Yi Tsengbd46d052018-01-22 17:18:16 -08004420 "column" : 16,
Carmelo Casconea5400af2018-07-17 22:11:54 +02004421 "source_fragment" : "!hashed.apply().hit"
4422 },
4423 "expression" : {
4424 "type" : "expression",
4425 "value" : {
4426 "op" : "not",
4427 "left" : null,
4428 "right" : {
4429 "type" : "expression",
4430 "value" : {
4431 "op" : "d2b",
4432 "left" : null,
4433 "right" : {
4434 "type" : "field",
4435 "value" : ["scalars", "next_tmp_3"]
4436 }
4437 }
4438 }
4439 }
4440 },
4441 "true_next" : "FabricIngress.next.multicast",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004442 "false_next" : "node_33"
Carmelo Casconea5400af2018-07-17 22:11:54 +02004443 },
4444 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004445 "name" : "node_31",
4446 "id" : 7,
Carmelo Casconea5400af2018-07-17 22:11:54 +02004447 "source_info" : {
4448 "filename" : "include/control/next.p4",
4449 "line" : 221,
4450 "column" : 20,
4451 "source_fragment" : "!multicast.apply().hit"
4452 },
4453 "expression" : {
4454 "type" : "expression",
4455 "value" : {
4456 "op" : "not",
4457 "left" : null,
4458 "right" : {
4459 "type" : "expression",
4460 "value" : {
4461 "op" : "d2b",
4462 "left" : null,
4463 "right" : {
4464 "type" : "field",
4465 "value" : ["scalars", "next_tmp_2"]
4466 }
4467 }
4468 }
4469 }
4470 },
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004471 "true_next" : "tbl_act_11",
4472 "false_next" : "node_33"
Carmelo Casconea5400af2018-07-17 22:11:54 +02004473 },
4474 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004475 "name" : "node_33",
4476 "id" : 8,
Carmelo Casconea5400af2018-07-17 22:11:54 +02004477 "expression" : {
4478 "type" : "expression",
4479 "value" : {
4480 "op" : "not",
4481 "left" : null,
4482 "right" : {
4483 "type" : "expression",
4484 "value" : {
4485 "op" : "d2b",
4486 "left" : null,
4487 "right" : {
4488 "type" : "field",
4489 "value" : ["scalars", "next_hasReturned_0"]
4490 }
4491 }
4492 }
4493 }
4494 },
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004495 "true_next" : "node_34",
4496 "false_next" : "node_37"
Carmelo Casconea5400af2018-07-17 22:11:54 +02004497 },
4498 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004499 "name" : "node_34",
4500 "id" : 9,
Carmelo Casconea5400af2018-07-17 22:11:54 +02004501 "source_info" : {
4502 "filename" : "include/control/next.p4",
4503 "line" : 228,
4504 "column" : 12,
Yi Tsengbd46d052018-01-22 17:18:16 -08004505 "source_fragment" : "!hdr.mpls.isValid()"
Yi Tseng1d842672017-11-28 16:06:52 -08004506 },
4507 "expression" : {
4508 "type" : "expression",
4509 "value" : {
Yi Tsengbd46d052018-01-22 17:18:16 -08004510 "op" : "not",
4511 "left" : null,
Yi Tseng1d842672017-11-28 16:06:52 -08004512 "right" : {
Yi Tsengbd46d052018-01-22 17:18:16 -08004513 "type" : "expression",
4514 "value" : {
4515 "op" : "d2b",
4516 "left" : null,
4517 "right" : {
4518 "type" : "field",
4519 "value" : ["mpls", "$valid$"]
4520 }
4521 }
Yi Tseng1d842672017-11-28 16:06:52 -08004522 }
4523 }
4524 },
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004525 "true_next" : "node_35",
4526 "false_next" : "node_37"
Yi Tseng1d842672017-11-28 16:06:52 -08004527 },
4528 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004529 "name" : "node_35",
4530 "id" : 10,
Yi Tseng1d842672017-11-28 16:06:52 -08004531 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004532 "filename" : "include/control/next.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004533 "line" : 229,
4534 "column" : 15,
Yi Tseng1d842672017-11-28 16:06:52 -08004535 "source_fragment" : "hdr.ipv4.isValid()"
4536 },
4537 "expression" : {
4538 "type" : "expression",
4539 "value" : {
Yi Tsengbd46d052018-01-22 17:18:16 -08004540 "op" : "d2b",
4541 "left" : null,
4542 "right" : {
Yi Tseng1d842672017-11-28 16:06:52 -08004543 "type" : "field",
4544 "value" : ["ipv4", "$valid$"]
Yi Tseng1d842672017-11-28 16:06:52 -08004545 }
4546 }
4547 },
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004548 "true_next" : "tbl_act_12",
4549 "false_next" : "node_37"
Yi Tseng27b9bc02018-04-12 14:52:40 +08004550 },
4551 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004552 "name" : "node_37",
4553 "id" : 11,
Yi Tseng27b9bc02018-04-12 14:52:40 +08004554 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004555 "filename" : "include/control/port_counter.p4",
Yi Tsengbe342052017-11-03 10:21:23 -07004556 "line" : 27,
4557 "column" : 12,
4558 "source_fragment" : "standard_metadata.egress_spec < 511"
4559 },
4560 "expression" : {
4561 "type" : "expression",
4562 "value" : {
4563 "op" : "<",
4564 "left" : {
4565 "type" : "field",
4566 "value" : ["standard_metadata", "egress_spec"]
4567 },
4568 "right" : {
4569 "type" : "hexstr",
4570 "value" : "0x01ff"
4571 }
4572 }
4573 },
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004574 "true_next" : "tbl_act_13",
4575 "false_next" : "node_39"
Yi Tsengbe342052017-11-03 10:21:23 -07004576 },
4577 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004578 "name" : "node_39",
4579 "id" : 12,
Yi Tsengbe342052017-11-03 10:21:23 -07004580 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004581 "filename" : "include/control/port_counter.p4",
Yi Tsengbe342052017-11-03 10:21:23 -07004582 "line" : 30,
4583 "column" : 12,
4584 "source_fragment" : "standard_metadata.ingress_port < 511"
4585 },
4586 "expression" : {
4587 "type" : "expression",
4588 "value" : {
4589 "op" : "<",
4590 "left" : {
4591 "type" : "field",
4592 "value" : ["standard_metadata", "ingress_port"]
4593 },
4594 "right" : {
4595 "type" : "hexstr",
4596 "value" : "0x01ff"
4597 }
4598 }
4599 },
Yi Tseng3a5731e2018-01-22 11:38:58 -08004600 "false_next" : null,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004601 "true_next" : "tbl_act_14"
Yi Tseng3a5731e2018-01-22 11:38:58 -08004602 }
4603 ]
4604 },
4605 {
4606 "name" : "egress",
4607 "id" : 1,
4608 "source_info" : {
4609 "filename" : "fabric.p4",
Carmelo Cascone9b0171b2018-08-14 01:43:57 -07004610 "line" : 80,
Yi Tseng3a5731e2018-01-22 11:38:58 -08004611 "column" : 8,
4612 "source_fragment" : "FabricEgress"
4613 },
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004614 "init_table" : "node_43",
Yi Tseng3a5731e2018-01-22 11:38:58 -08004615 "tables" : [
4616 {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004617 "name" : "tbl_pkt_io_egress_pop_vlan",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004618 "id" : 26,
Carmelo Casconea5400af2018-07-17 22:11:54 +02004619 "key" : [],
4620 "match_type" : "exact",
4621 "type" : "simple",
4622 "max_size" : 1024,
4623 "with_counters" : false,
4624 "support_timeout" : false,
4625 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07004626 "action_ids" : [51],
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004627 "actions" : ["FabricEgress.pkt_io_egress.pop_vlan"],
4628 "base_default_next" : "node_47",
4629 "next_tables" : {
4630 "FabricEgress.pkt_io_egress.pop_vlan" : "node_47"
4631 },
4632 "default_entry" : {
Charles Chancd03f072018-08-31 17:46:37 -07004633 "action_id" : 51,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004634 "action_const" : true,
4635 "action_data" : [],
4636 "action_entry_const" : true
4637 }
4638 },
4639 {
4640 "name" : "tbl_drop_now",
4641 "id" : 27,
4642 "key" : [],
4643 "match_type" : "exact",
4644 "type" : "simple",
4645 "max_size" : 1024,
4646 "with_counters" : false,
4647 "support_timeout" : false,
4648 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07004649 "action_ids" : [49],
Carmelo Casconea5400af2018-07-17 22:11:54 +02004650 "actions" : ["drop_now"],
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004651 "base_default_next" : "tbl_act_15",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004652 "next_tables" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004653 "drop_now" : "tbl_act_15"
Carmelo Casconea5400af2018-07-17 22:11:54 +02004654 },
4655 "default_entry" : {
Charles Chancd03f072018-08-31 17:46:37 -07004656 "action_id" : 49,
Carmelo Casconea5400af2018-07-17 22:11:54 +02004657 "action_const" : true,
4658 "action_data" : [],
4659 "action_entry_const" : true
4660 }
4661 },
4662 {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004663 "name" : "tbl_act_15",
4664 "id" : 28,
4665 "key" : [],
4666 "match_type" : "exact",
4667 "type" : "simple",
4668 "max_size" : 1024,
4669 "with_counters" : false,
4670 "support_timeout" : false,
4671 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07004672 "action_ids" : [53],
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004673 "actions" : ["act_15"],
4674 "base_default_next" : null,
4675 "next_tables" : {
4676 "act_15" : null
4677 },
4678 "default_entry" : {
Charles Chancd03f072018-08-31 17:46:37 -07004679 "action_id" : 53,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004680 "action_const" : true,
4681 "action_data" : [],
4682 "action_entry_const" : true
4683 }
4684 },
4685 {
4686 "name" : "tbl_drop_now_0",
4687 "id" : 29,
4688 "key" : [],
4689 "match_type" : "exact",
4690 "type" : "simple",
4691 "max_size" : 1024,
4692 "with_counters" : false,
4693 "support_timeout" : false,
4694 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07004695 "action_ids" : [50],
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004696 "actions" : ["drop_now"],
4697 "base_default_next" : "FabricEgress.egress_next.egress_vlan",
4698 "next_tables" : {
4699 "drop_now" : "FabricEgress.egress_next.egress_vlan"
4700 },
4701 "default_entry" : {
Charles Chancd03f072018-08-31 17:46:37 -07004702 "action_id" : 50,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004703 "action_const" : true,
4704 "action_data" : [],
4705 "action_entry_const" : true
4706 }
4707 },
4708 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004709 "name" : "FabricEgress.egress_next.egress_vlan",
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004710 "id" : 30,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004711 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004712 "filename" : "include/control/next.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004713 "line" : 258,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004714 "column" : 10,
4715 "source_fragment" : "egress_vlan"
4716 },
4717 "key" : [
4718 {
4719 "match_type" : "exact",
4720 "name" : "hdr.vlan_tag.vlan_id",
4721 "target" : ["vlan_tag", "vlan_id"],
4722 "mask" : null
4723 },
4724 {
4725 "match_type" : "exact",
4726 "name" : "standard_metadata.egress_port",
4727 "target" : ["standard_metadata", "egress_port"],
4728 "mask" : null
4729 }
4730 ],
4731 "match_type" : "exact",
4732 "type" : "simple",
4733 "max_size" : 1024,
Yi Tseng47eac892018-07-11 02:17:04 +08004734 "with_counters" : true,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004735 "support_timeout" : false,
4736 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07004737 "action_ids" : [52, 48],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004738 "actions" : ["FabricEgress.egress_next.pop_vlan", "nop"],
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004739 "base_default_next" : null,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004740 "next_tables" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004741 "FabricEgress.egress_next.pop_vlan" : null,
4742 "nop" : null
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004743 },
4744 "default_entry" : {
Charles Chancd03f072018-08-31 17:46:37 -07004745 "action_id" : 48,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004746 "action_const" : false,
4747 "action_data" : [],
4748 "action_entry_const" : false
4749 }
Yi Tseng3a5731e2018-01-22 11:38:58 -08004750 }
4751 ],
4752 "action_profiles" : [],
4753 "conditionals" : [
Yi Tseng1d842672017-11-28 16:06:52 -08004754 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004755 "name" : "node_43",
4756 "id" : 13,
Carmelo Casconea5400af2018-07-17 22:11:54 +02004757 "source_info" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004758 "filename" : "include/control/packetio.p4",
4759 "line" : 43,
Carmelo Casconea5400af2018-07-17 22:11:54 +02004760 "column" : 12,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004761 "source_fragment" : "fabric_metadata.is_controller_packet_out == true"
Carmelo Casconea5400af2018-07-17 22:11:54 +02004762 },
4763 "expression" : {
4764 "type" : "expression",
4765 "value" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004766 "op" : "==",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004767 "left" : {
4768 "type" : "expression",
4769 "value" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004770 "op" : "d2b",
4771 "left" : null,
Carmelo Casconea5400af2018-07-17 22:11:54 +02004772 "right" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004773 "type" : "field",
4774 "value" : ["scalars", "fabric_metadata_t.is_controller_packet_out"]
Carmelo Casconea5400af2018-07-17 22:11:54 +02004775 }
4776 }
4777 },
4778 "right" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004779 "type" : "bool",
4780 "value" : true
Carmelo Casconea5400af2018-07-17 22:11:54 +02004781 }
4782 }
4783 },
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004784 "true_next" : null,
4785 "false_next" : "node_44"
Carmelo Casconea5400af2018-07-17 22:11:54 +02004786 },
4787 {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004788 "name" : "node_44",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004789 "id" : 14,
Yi Tsengbe342052017-11-03 10:21:23 -07004790 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004791 "filename" : "include/control/packetio.p4",
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004792 "line" : 47,
Yi Tsengbe342052017-11-03 10:21:23 -07004793 "column" : 12,
Carmelo Casconeb531b682018-01-30 17:55:56 -08004794 "source_fragment" : "standard_metadata.egress_port == 255"
Yi Tsengbe342052017-11-03 10:21:23 -07004795 },
4796 "expression" : {
4797 "type" : "expression",
4798 "value" : {
4799 "op" : "==",
4800 "left" : {
4801 "type" : "field",
4802 "value" : ["standard_metadata", "egress_port"]
4803 },
4804 "right" : {
4805 "type" : "hexstr",
4806 "value" : "0x00ff"
4807 }
4808 }
4809 },
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004810 "true_next" : "node_45",
4811 "false_next" : "node_50"
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004812 },
4813 {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004814 "name" : "node_45",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004815 "id" : 15,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004816 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004817 "filename" : "include/control/packetio.p4",
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004818 "line" : 48,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004819 "column" : 16,
Carmelo Cascone228092b2018-06-15 20:41:10 +02004820 "source_fragment" : "hdr.vlan_tag.isValid() && fabric_metadata.pop_vlan_when_packet_in == true"
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004821 },
4822 "expression" : {
4823 "type" : "expression",
4824 "value" : {
4825 "op" : "and",
4826 "left" : {
4827 "type" : "expression",
4828 "value" : {
4829 "op" : "d2b",
4830 "left" : null,
4831 "right" : {
4832 "type" : "field",
4833 "value" : ["vlan_tag", "$valid$"]
4834 }
4835 }
4836 },
4837 "right" : {
4838 "type" : "expression",
4839 "value" : {
Carmelo Cascone228092b2018-06-15 20:41:10 +02004840 "op" : "==",
4841 "left" : {
4842 "type" : "expression",
4843 "value" : {
4844 "op" : "d2b",
4845 "left" : null,
4846 "right" : {
4847 "type" : "field",
4848 "value" : ["scalars", "fabric_metadata_t.pop_vlan_when_packet_in"]
4849 }
4850 }
4851 },
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004852 "right" : {
Carmelo Cascone228092b2018-06-15 20:41:10 +02004853 "type" : "bool",
4854 "value" : true
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004855 }
4856 }
4857 }
4858 }
4859 },
4860 "true_next" : "tbl_pkt_io_egress_pop_vlan",
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004861 "false_next" : "node_47"
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02004862 },
4863 {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004864 "name" : "node_47",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004865 "id" : 16,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02004866 "source_info" : {
4867 "filename" : "include/control/packetio.p4",
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004868 "line" : 51,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02004869 "column" : 16,
4870 "source_fragment" : "fabric_metadata.is_multicast == true && ..."
4871 },
4872 "expression" : {
4873 "type" : "expression",
4874 "value" : {
4875 "op" : "and",
4876 "left" : {
4877 "type" : "expression",
4878 "value" : {
4879 "op" : "==",
4880 "left" : {
4881 "type" : "expression",
4882 "value" : {
4883 "op" : "d2b",
4884 "left" : null,
4885 "right" : {
4886 "type" : "field",
4887 "value" : ["scalars", "fabric_metadata_t.is_multicast"]
4888 }
4889 }
4890 },
4891 "right" : {
4892 "type" : "bool",
4893 "value" : true
4894 }
4895 }
4896 },
4897 "right" : {
4898 "type" : "expression",
4899 "value" : {
4900 "op" : "==",
4901 "left" : {
4902 "type" : "expression",
4903 "value" : {
4904 "op" : "d2b",
4905 "left" : null,
4906 "right" : {
4907 "type" : "field",
4908 "value" : ["scalars", "fabric_metadata_t.clone_to_cpu"]
4909 }
4910 }
4911 },
4912 "right" : {
4913 "type" : "bool",
4914 "value" : false
4915 }
4916 }
4917 }
4918 }
4919 },
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004920 "true_next" : "tbl_drop_now",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004921 "false_next" : "tbl_act_15"
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004922 },
4923 {
4924 "name" : "node_50",
4925 "id" : 17,
4926 "source_info" : {
4927 "filename" : "include/control/next.p4",
4928 "line" : 272,
4929 "column" : 12,
4930 "source_fragment" : "fabric_metadata.is_multicast == true ..."
4931 },
4932 "expression" : {
4933 "type" : "expression",
4934 "value" : {
4935 "op" : "and",
4936 "left" : {
4937 "type" : "expression",
4938 "value" : {
4939 "op" : "==",
4940 "left" : {
4941 "type" : "expression",
4942 "value" : {
4943 "op" : "d2b",
4944 "left" : null,
4945 "right" : {
4946 "type" : "field",
4947 "value" : ["scalars", "fabric_metadata_t.is_multicast"]
4948 }
4949 }
4950 },
4951 "right" : {
4952 "type" : "bool",
4953 "value" : true
4954 }
4955 }
4956 },
4957 "right" : {
4958 "type" : "expression",
4959 "value" : {
4960 "op" : "==",
4961 "left" : {
4962 "type" : "field",
4963 "value" : ["standard_metadata", "ingress_port"]
4964 },
4965 "right" : {
4966 "type" : "field",
4967 "value" : ["standard_metadata", "egress_port"]
4968 }
4969 }
4970 }
4971 }
4972 },
4973 "true_next" : "tbl_drop_now_0",
4974 "false_next" : "FabricEgress.egress_next.egress_vlan"
Yi Tsengbe342052017-11-03 10:21:23 -07004975 }
4976 ]
4977 }
4978 ],
4979 "checksums" : [
4980 {
4981 "name" : "cksum",
4982 "id" : 0,
4983 "target" : ["ipv4", "hdr_checksum"],
4984 "type" : "generic",
Yi Tsengbd46d052018-01-22 17:18:16 -08004985 "calculation" : "calc",
4986 "if_cond" : {
4987 "type" : "expression",
4988 "value" : {
4989 "op" : "d2b",
4990 "left" : null,
4991 "right" : {
4992 "type" : "field",
4993 "value" : ["ipv4", "$valid$"]
4994 }
4995 }
4996 }
Yi Tsengbe342052017-11-03 10:21:23 -07004997 },
4998 {
4999 "name" : "cksum_0",
5000 "id" : 1,
Yi Tsengbe342052017-11-03 10:21:23 -07005001 "target" : ["ipv4", "hdr_checksum"],
5002 "type" : "generic",
Yi Tsengbd46d052018-01-22 17:18:16 -08005003 "calculation" : "calc_0",
5004 "if_cond" : {
5005 "type" : "expression",
5006 "value" : {
5007 "op" : "d2b",
5008 "left" : null,
5009 "right" : {
5010 "type" : "field",
5011 "value" : ["ipv4", "$valid$"]
5012 }
5013 }
5014 }
Yi Tsengbe342052017-11-03 10:21:23 -07005015 }
5016 ],
5017 "force_arith" : [],
5018 "extern_instances" : [],
5019 "field_aliases" : [
5020 [
5021 "queueing_metadata.enq_timestamp",
5022 ["standard_metadata", "enq_timestamp"]
5023 ],
5024 [
5025 "queueing_metadata.enq_qdepth",
5026 ["standard_metadata", "enq_qdepth"]
5027 ],
5028 [
5029 "queueing_metadata.deq_timedelta",
5030 ["standard_metadata", "deq_timedelta"]
5031 ],
5032 [
5033 "queueing_metadata.deq_qdepth",
5034 ["standard_metadata", "deq_qdepth"]
5035 ],
5036 [
5037 "intrinsic_metadata.ingress_global_timestamp",
5038 ["standard_metadata", "ingress_global_timestamp"]
5039 ],
5040 [
Yi Tseng27b9bc02018-04-12 14:52:40 +08005041 "intrinsic_metadata.egress_global_timestamp",
5042 ["standard_metadata", "egress_global_timestamp"]
5043 ],
5044 [
Yi Tsengbe342052017-11-03 10:21:23 -07005045 "intrinsic_metadata.lf_field_list",
5046 ["standard_metadata", "lf_field_list"]
5047 ],
5048 [
5049 "intrinsic_metadata.mcast_grp",
5050 ["standard_metadata", "mcast_grp"]
5051 ],
5052 [
5053 "intrinsic_metadata.resubmit_flag",
5054 ["standard_metadata", "resubmit_flag"]
5055 ],
5056 [
5057 "intrinsic_metadata.egress_rid",
5058 ["standard_metadata", "egress_rid"]
Yi Tseng27b9bc02018-04-12 14:52:40 +08005059 ],
5060 [
5061 "intrinsic_metadata.recirculate_flag",
5062 ["standard_metadata", "recirculate_flag"]
Yi Tsengbe342052017-11-03 10:21:23 -07005063 ]
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005064 ],
5065 "program" : "fabric.p4",
5066 "__meta__" : {
5067 "version" : [2, 18],
5068 "compiler" : "https://github.com/p4lang/p4c"
5069 }
Yi Tsengbe342052017-11-03 10:21:23 -07005070}