blob: d5bc748d1651ba95b16a711f3f2338808bc69810 [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 Casconea5400af2018-07-17 22:11:54 +020010 ["next_tmp_2", 1, false],
11 ["next_tmp_3", 1, false],
12 ["next_tmp_4", 1, false],
13 ["next_hasReturned_0", 1, false],
Yi Tsengbe342052017-11-03 10:21:23 -070014 ["fabric_metadata_t.fwd_type", 3, false],
15 ["fabric_metadata_t.next_id", 32, false],
Yi Tseng20f9e7b2018-05-24 23:27:39 +080016 ["fabric_metadata_t.pop_vlan_when_packet_in", 1, false],
Carmelo Cascone1e8843f2018-07-19 19:01:12 +020017 ["fabric_metadata_t.is_multicast", 1, false],
18 ["fabric_metadata_t.clone_to_cpu", 1, false],
Yi Tsengbe342052017-11-03 10:21:23 -070019 ["fabric_metadata_t.ip_proto", 8, false],
20 ["fabric_metadata_t.l4_src_port", 16, false],
Yi Tsengf55eaa82017-11-29 15:51:28 -080021 ["fabric_metadata_t.l4_dst_port", 16, false],
Carmelo Cascone1e8843f2018-07-19 19:01:12 +020022 ["_padding_0", 2, false]
Yi Tsengc6844f52017-12-19 11:58:25 -080023 ]
24 },
25 {
Carmelo Cascone6af4e172018-06-15 16:01:30 +020026 "name" : "standard_metadata",
Yi Tsengc6844f52017-12-19 11:58:25 -080027 "id" : 1,
28 "fields" : [
Carmelo Cascone6af4e172018-06-15 16:01:30 +020029 ["ingress_port", 9, false],
30 ["egress_spec", 9, false],
31 ["egress_port", 9, false],
32 ["clone_spec", 32, false],
33 ["instance_type", 32, false],
34 ["drop", 1, false],
35 ["recirculate_port", 16, false],
36 ["packet_length", 32, false],
37 ["enq_timestamp", 32, false],
38 ["enq_qdepth", 19, false],
39 ["deq_timedelta", 32, false],
40 ["deq_qdepth", 19, false],
41 ["ingress_global_timestamp", 48, false],
42 ["egress_global_timestamp", 48, false],
43 ["lf_field_list", 32, false],
44 ["mcast_grp", 16, false],
45 ["resubmit_flag", 32, false],
46 ["egress_rid", 16, false],
47 ["checksum_error", 1, false],
48 ["recirculate_flag", 32, false],
49 ["_padding", 5, false]
50 ]
51 },
52 {
53 "name" : "ethernet_t",
54 "id" : 2,
55 "fields" : [
Yi Tsengc6844f52017-12-19 11:58:25 -080056 ["dst_addr", 48, false],
57 ["src_addr", 48, false],
58 ["ether_type", 16, false]
59 ]
60 },
61 {
62 "name" : "vlan_tag_t",
Carmelo Cascone6af4e172018-06-15 16:01:30 +020063 "id" : 3,
Yi Tsengc6844f52017-12-19 11:58:25 -080064 "fields" : [
65 ["pri", 3, false],
66 ["cfi", 1, false],
67 ["vlan_id", 12, false],
68 ["ether_type", 16, false]
69 ]
70 },
71 {
72 "name" : "mpls_t",
Carmelo Cascone6af4e172018-06-15 16:01:30 +020073 "id" : 4,
Yi Tsengc6844f52017-12-19 11:58:25 -080074 "fields" : [
75 ["label", 20, false],
76 ["tc", 3, false],
77 ["bos", 1, false],
78 ["ttl", 8, false]
Yi Tsengbe342052017-11-03 10:21:23 -070079 ]
80 },
81 {
82 "name" : "ipv4_t",
Carmelo Cascone6af4e172018-06-15 16:01:30 +020083 "id" : 5,
Yi Tsengbe342052017-11-03 10:21:23 -070084 "fields" : [
85 ["version", 4, false],
86 ["ihl", 4, false],
Jonghwan Hyuned478dc2018-08-06 15:35:18 +090087 ["dscp", 6, false],
88 ["ecn", 2, false],
Yi Tsengbe342052017-11-03 10:21:23 -070089 ["total_len", 16, false],
90 ["identification", 16, false],
91 ["flags", 3, false],
92 ["frag_offset", 13, false],
93 ["ttl", 8, false],
94 ["protocol", 8, false],
95 ["hdr_checksum", 16, false],
96 ["src_addr", 32, false],
97 ["dst_addr", 32, false]
98 ]
99 },
100 {
Yi Tseng47eac892018-07-11 02:17:04 +0800101 "name" : "arp_t",
Carmelo Casconef645e842018-07-16 18:31:52 +0200102 "id" : 6,
Yi Tseng47eac892018-07-11 02:17:04 +0800103 "fields" : [
Yi Tsengbe342052017-11-03 10:21:23 -0700104 ["hw_type", 16, false],
105 ["proto_type", 16, false],
106 ["hw_addr_len", 8, false],
107 ["proto_addr_len", 8, false],
108 ["opcode", 16, false]
109 ]
110 },
111 {
112 "name" : "tcp_t",
Carmelo Casconef645e842018-07-16 18:31:52 +0200113 "id" : 7,
Yi Tsengbe342052017-11-03 10:21:23 -0700114 "fields" : [
115 ["src_port", 16, false],
116 ["dst_port", 16, false],
117 ["seq_no", 32, false],
118 ["ack_no", 32, false],
119 ["data_offset", 4, false],
120 ["res", 3, false],
121 ["ecn", 3, false],
122 ["ctrl", 6, false],
123 ["window", 16, false],
124 ["checksum", 16, false],
125 ["urgent_ptr", 16, false]
126 ]
127 },
128 {
129 "name" : "udp_t",
Carmelo Casconef645e842018-07-16 18:31:52 +0200130 "id" : 8,
Yi Tsengbe342052017-11-03 10:21:23 -0700131 "fields" : [
132 ["src_port", 16, false],
133 ["dst_port", 16, false],
134 ["len", 16, false],
135 ["checksum", 16, false]
136 ]
137 },
138 {
139 "name" : "icmp_t",
Carmelo Casconef645e842018-07-16 18:31:52 +0200140 "id" : 9,
Yi Tsengbe342052017-11-03 10:21:23 -0700141 "fields" : [
142 ["icmp_type", 8, false],
143 ["icmp_code", 8, false],
Yi Tsengf73a5532017-11-17 15:58:57 -0800144 ["checksum", 16, false],
145 ["identifier", 16, false],
146 ["sequence_number", 16, false],
147 ["timestamp", 64, false]
Yi Tsengbe342052017-11-03 10:21:23 -0700148 ]
149 },
150 {
151 "name" : "packet_out_header_t",
Carmelo Casconef645e842018-07-16 18:31:52 +0200152 "id" : 10,
Yi Tsengbe342052017-11-03 10:21:23 -0700153 "fields" : [
154 ["egress_port", 9, false],
Yi Tseng1d842672017-11-28 16:06:52 -0800155 ["_pad", 7, false]
Yi Tsengbe342052017-11-03 10:21:23 -0700156 ]
157 },
158 {
159 "name" : "packet_in_header_t",
Carmelo Casconef645e842018-07-16 18:31:52 +0200160 "id" : 11,
Yi Tsengbe342052017-11-03 10:21:23 -0700161 "fields" : [
162 ["ingress_port", 9, false],
Yi Tseng1d842672017-11-28 16:06:52 -0800163 ["_pad", 7, false]
Yi Tsengbe342052017-11-03 10:21:23 -0700164 ]
Yi Tsengbe342052017-11-03 10:21:23 -0700165 }
166 ],
167 "headers" : [
168 {
Yi Tsengbe342052017-11-03 10:21:23 -0700169 "name" : "scalars",
Yi Tsengc6844f52017-12-19 11:58:25 -0800170 "id" : 0,
Yi Tsengbe342052017-11-03 10:21:23 -0700171 "header_type" : "scalars_0",
172 "metadata" : true,
173 "pi_omit" : true
174 },
175 {
176 "name" : "standard_metadata",
Yi Tsengc6844f52017-12-19 11:58:25 -0800177 "id" : 1,
Yi Tsengbe342052017-11-03 10:21:23 -0700178 "header_type" : "standard_metadata",
179 "metadata" : true,
180 "pi_omit" : true
181 },
182 {
183 "name" : "ethernet",
Yi Tsengc6844f52017-12-19 11:58:25 -0800184 "id" : 2,
Yi Tsengbe342052017-11-03 10:21:23 -0700185 "header_type" : "ethernet_t",
186 "metadata" : false,
187 "pi_omit" : true
188 },
189 {
190 "name" : "vlan_tag",
Yi Tsengc6844f52017-12-19 11:58:25 -0800191 "id" : 3,
Yi Tsengbe342052017-11-03 10:21:23 -0700192 "header_type" : "vlan_tag_t",
193 "metadata" : false,
194 "pi_omit" : true
195 },
196 {
Yi Tsengbe342052017-11-03 10:21:23 -0700197 "name" : "mpls",
Yi Tsengbd46d052018-01-22 17:18:16 -0800198 "id" : 4,
Yi Tsengbe342052017-11-03 10:21:23 -0700199 "header_type" : "mpls_t",
200 "metadata" : false,
201 "pi_omit" : true
202 },
203 {
204 "name" : "ipv4",
Yi Tsengbd46d052018-01-22 17:18:16 -0800205 "id" : 5,
Yi Tsengbe342052017-11-03 10:21:23 -0700206 "header_type" : "ipv4_t",
207 "metadata" : false,
208 "pi_omit" : true
209 },
210 {
Yi Tseng47eac892018-07-11 02:17:04 +0800211 "name" : "arp",
Carmelo Casconef645e842018-07-16 18:31:52 +0200212 "id" : 6,
Yi Tsengbe342052017-11-03 10:21:23 -0700213 "header_type" : "arp_t",
214 "metadata" : false,
215 "pi_omit" : true
216 },
217 {
218 "name" : "tcp",
Carmelo Casconef645e842018-07-16 18:31:52 +0200219 "id" : 7,
Yi Tsengbe342052017-11-03 10:21:23 -0700220 "header_type" : "tcp_t",
221 "metadata" : false,
222 "pi_omit" : true
223 },
224 {
225 "name" : "udp",
Carmelo Casconef645e842018-07-16 18:31:52 +0200226 "id" : 8,
Yi Tsengbe342052017-11-03 10:21:23 -0700227 "header_type" : "udp_t",
228 "metadata" : false,
229 "pi_omit" : true
230 },
231 {
232 "name" : "icmp",
Carmelo Casconef645e842018-07-16 18:31:52 +0200233 "id" : 9,
Yi Tsengbe342052017-11-03 10:21:23 -0700234 "header_type" : "icmp_t",
235 "metadata" : false,
236 "pi_omit" : true
237 },
238 {
239 "name" : "packet_out",
Carmelo Casconef645e842018-07-16 18:31:52 +0200240 "id" : 10,
Yi Tsengbe342052017-11-03 10:21:23 -0700241 "header_type" : "packet_out_header_t",
242 "metadata" : false,
243 "pi_omit" : true
244 },
245 {
246 "name" : "packet_in",
Carmelo Casconef645e842018-07-16 18:31:52 +0200247 "id" : 11,
Yi Tsengbe342052017-11-03 10:21:23 -0700248 "header_type" : "packet_in_header_t",
249 "metadata" : false,
250 "pi_omit" : true
251 }
252 ],
253 "header_stacks" : [],
254 "header_union_types" : [],
255 "header_unions" : [],
256 "header_union_stacks" : [],
257 "field_lists" : [],
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200258 "errors" : [],
Yi Tsengbe342052017-11-03 10:21:23 -0700259 "enums" : [],
260 "parsers" : [
261 {
262 "name" : "parser",
263 "id" : 0,
264 "init_state" : "start",
265 "parse_states" : [
266 {
267 "name" : "start",
268 "id" : 0,
269 "parser_ops" : [],
270 "transitions" : [
271 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800272 "type" : "hexstr",
Yi Tsengbe342052017-11-03 10:21:23 -0700273 "value" : "0x00ff",
274 "mask" : null,
275 "next_state" : "parse_packet_out"
276 },
277 {
278 "value" : "default",
279 "mask" : null,
280 "next_state" : "parse_ethernet"
281 }
282 ],
283 "transition_key" : [
284 {
285 "type" : "field",
286 "value" : ["standard_metadata", "ingress_port"]
287 }
288 ]
289 },
290 {
291 "name" : "parse_packet_out",
292 "id" : 1,
293 "parser_ops" : [
294 {
295 "parameters" : [
296 {
297 "type" : "regular",
298 "value" : "packet_out"
299 }
300 ],
301 "op" : "extract"
302 }
303 ],
304 "transitions" : [
305 {
306 "value" : "default",
307 "mask" : null,
308 "next_state" : "parse_ethernet"
309 }
310 ],
311 "transition_key" : []
312 },
313 {
314 "name" : "parse_ethernet",
315 "id" : 2,
316 "parser_ops" : [
317 {
318 "parameters" : [
319 {
320 "type" : "regular",
321 "value" : "ethernet"
322 }
323 ],
324 "op" : "extract"
325 }
326 ],
327 "transitions" : [
328 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800329 "type" : "hexstr",
Yi Tsengbe342052017-11-03 10:21:23 -0700330 "value" : "0x8100",
331 "mask" : null,
332 "next_state" : "parse_vlan_tag"
333 },
334 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800335 "type" : "hexstr",
Yi Tsengbe342052017-11-03 10:21:23 -0700336 "value" : "0x8847",
337 "mask" : null,
338 "next_state" : "parse_mpls"
339 },
340 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800341 "type" : "hexstr",
Yi Tsengbe342052017-11-03 10:21:23 -0700342 "value" : "0x0806",
343 "mask" : null,
344 "next_state" : "parse_arp"
345 },
346 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800347 "type" : "hexstr",
Yi Tsengbe342052017-11-03 10:21:23 -0700348 "value" : "0x0800",
349 "mask" : null,
350 "next_state" : "parse_ipv4"
351 },
352 {
Yi Tsengbe342052017-11-03 10:21:23 -0700353 "value" : "default",
354 "mask" : null,
355 "next_state" : null
356 }
357 ],
358 "transition_key" : [
359 {
360 "type" : "field",
361 "value" : ["ethernet", "ether_type"]
362 }
363 ]
364 },
365 {
366 "name" : "parse_vlan_tag",
367 "id" : 3,
368 "parser_ops" : [
369 {
370 "parameters" : [
371 {
372 "type" : "regular",
373 "value" : "vlan_tag"
374 }
375 ],
376 "op" : "extract"
377 }
378 ],
379 "transitions" : [
380 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800381 "type" : "hexstr",
Yi Tsengbe342052017-11-03 10:21:23 -0700382 "value" : "0x0806",
383 "mask" : null,
384 "next_state" : "parse_arp"
385 },
386 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800387 "type" : "hexstr",
Yi Tsengbe342052017-11-03 10:21:23 -0700388 "value" : "0x0800",
389 "mask" : null,
390 "next_state" : "parse_ipv4"
391 },
392 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800393 "type" : "hexstr",
Yi Tsengbd46d052018-01-22 17:18:16 -0800394 "value" : "0x8847",
Yi Tsengbe342052017-11-03 10:21:23 -0700395 "mask" : null,
Yi Tsengbd46d052018-01-22 17:18:16 -0800396 "next_state" : "parse_mpls"
Yi Tsengbe342052017-11-03 10:21:23 -0700397 },
398 {
399 "value" : "default",
400 "mask" : null,
401 "next_state" : null
402 }
403 ],
404 "transition_key" : [
405 {
406 "type" : "field",
407 "value" : ["vlan_tag", "ether_type"]
408 }
409 ]
410 },
411 {
412 "name" : "parse_mpls",
Yi Tsengbd46d052018-01-22 17:18:16 -0800413 "id" : 4,
Yi Tsengbe342052017-11-03 10:21:23 -0700414 "parser_ops" : [
415 {
416 "parameters" : [
417 {
418 "type" : "regular",
419 "value" : "mpls"
420 }
421 ],
422 "op" : "extract"
423 },
424 {
425 "parameters" : [
426 {
427 "type" : "field",
Yi Tsengc6844f52017-12-19 11:58:25 -0800428 "value" : ["scalars", "tmp"]
Yi Tsengbe342052017-11-03 10:21:23 -0700429 },
430 {
431 "type" : "lookahead",
Yi Tsengc6844f52017-12-19 11:58:25 -0800432 "value" : [0, 4]
Yi Tsengbe342052017-11-03 10:21:23 -0700433 }
434 ],
435 "op" : "set"
436 }
437 ],
438 "transitions" : [
439 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800440 "type" : "hexstr",
Yi Tsengbe342052017-11-03 10:21:23 -0700441 "value" : "0x04",
442 "mask" : null,
443 "next_state" : "parse_ipv4"
444 },
445 {
Yi Tsengbe342052017-11-03 10:21:23 -0700446 "value" : "default",
447 "mask" : null,
448 "next_state" : "parse_ethernet"
449 }
450 ],
451 "transition_key" : [
452 {
453 "type" : "field",
Yi Tsengc6844f52017-12-19 11:58:25 -0800454 "value" : ["scalars", "tmp"]
Yi Tsengbe342052017-11-03 10:21:23 -0700455 }
456 ]
457 },
458 {
459 "name" : "parse_ipv4",
Yi Tsengbd46d052018-01-22 17:18:16 -0800460 "id" : 5,
Yi Tsengbe342052017-11-03 10:21:23 -0700461 "parser_ops" : [
462 {
463 "parameters" : [
464 {
465 "type" : "regular",
466 "value" : "ipv4"
467 }
468 ],
469 "op" : "extract"
470 },
471 {
472 "parameters" : [
473 {
474 "type" : "field",
475 "value" : ["scalars", "fabric_metadata_t.ip_proto"]
476 },
477 {
478 "type" : "field",
479 "value" : ["ipv4", "protocol"]
480 }
481 ],
482 "op" : "set"
483 }
484 ],
485 "transitions" : [
486 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800487 "type" : "hexstr",
Yi Tsengbe342052017-11-03 10:21:23 -0700488 "value" : "0x06",
489 "mask" : null,
490 "next_state" : "parse_tcp"
491 },
492 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800493 "type" : "hexstr",
Yi Tsengbe342052017-11-03 10:21:23 -0700494 "value" : "0x11",
495 "mask" : null,
496 "next_state" : "parse_udp"
497 },
498 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800499 "type" : "hexstr",
Yi Tsengbe342052017-11-03 10:21:23 -0700500 "value" : "0x01",
501 "mask" : null,
502 "next_state" : "parse_icmp"
503 },
504 {
505 "value" : "default",
506 "mask" : null,
507 "next_state" : null
508 }
509 ],
510 "transition_key" : [
511 {
512 "type" : "field",
513 "value" : ["ipv4", "protocol"]
514 }
515 ]
516 },
517 {
Yi Tseng47eac892018-07-11 02:17:04 +0800518 "name" : "parse_arp",
Carmelo Casconef645e842018-07-16 18:31:52 +0200519 "id" : 6,
Yi Tseng47eac892018-07-11 02:17:04 +0800520 "parser_ops" : [
521 {
522 "parameters" : [
523 {
524 "type" : "regular",
Yi Tsengbe342052017-11-03 10:21:23 -0700525 "value" : "arp"
526 }
527 ],
528 "op" : "extract"
529 }
530 ],
531 "transitions" : [
532 {
533 "value" : "default",
534 "mask" : null,
535 "next_state" : null
536 }
537 ],
538 "transition_key" : []
539 },
540 {
541 "name" : "parse_tcp",
Carmelo Casconef645e842018-07-16 18:31:52 +0200542 "id" : 7,
Yi Tsengbe342052017-11-03 10:21:23 -0700543 "parser_ops" : [
544 {
545 "parameters" : [
546 {
547 "type" : "regular",
548 "value" : "tcp"
549 }
550 ],
551 "op" : "extract"
552 },
553 {
554 "parameters" : [
555 {
556 "type" : "field",
557 "value" : ["scalars", "fabric_metadata_t.l4_src_port"]
558 },
559 {
560 "type" : "field",
561 "value" : ["tcp", "src_port"]
562 }
563 ],
564 "op" : "set"
565 },
566 {
567 "parameters" : [
568 {
569 "type" : "field",
570 "value" : ["scalars", "fabric_metadata_t.l4_dst_port"]
571 },
572 {
573 "type" : "field",
574 "value" : ["tcp", "dst_port"]
575 }
576 ],
577 "op" : "set"
578 }
579 ],
580 "transitions" : [
581 {
582 "value" : "default",
583 "mask" : null,
584 "next_state" : null
585 }
586 ],
587 "transition_key" : []
588 },
589 {
590 "name" : "parse_udp",
Carmelo Casconef645e842018-07-16 18:31:52 +0200591 "id" : 8,
Yi Tsengbe342052017-11-03 10:21:23 -0700592 "parser_ops" : [
593 {
594 "parameters" : [
595 {
596 "type" : "regular",
597 "value" : "udp"
598 }
599 ],
600 "op" : "extract"
601 },
602 {
603 "parameters" : [
604 {
605 "type" : "field",
606 "value" : ["scalars", "fabric_metadata_t.l4_src_port"]
607 },
608 {
609 "type" : "field",
610 "value" : ["udp", "src_port"]
611 }
612 ],
613 "op" : "set"
614 },
615 {
616 "parameters" : [
617 {
618 "type" : "field",
619 "value" : ["scalars", "fabric_metadata_t.l4_dst_port"]
620 },
621 {
622 "type" : "field",
623 "value" : ["udp", "dst_port"]
624 }
625 ],
626 "op" : "set"
627 }
628 ],
629 "transitions" : [
630 {
631 "value" : "default",
632 "mask" : null,
633 "next_state" : null
634 }
635 ],
636 "transition_key" : []
637 },
638 {
639 "name" : "parse_icmp",
Carmelo Casconef645e842018-07-16 18:31:52 +0200640 "id" : 9,
Yi Tsengbe342052017-11-03 10:21:23 -0700641 "parser_ops" : [
642 {
643 "parameters" : [
644 {
645 "type" : "regular",
646 "value" : "icmp"
647 }
648 ],
649 "op" : "extract"
650 }
651 ],
652 "transitions" : [
653 {
654 "value" : "default",
655 "mask" : null,
656 "next_state" : null
657 }
658 ],
659 "transition_key" : []
660 }
661 ]
662 }
663 ],
Yi Tseng27b9bc02018-04-12 14:52:40 +0800664 "parse_vsets" : [],
Yi Tsengbe342052017-11-03 10:21:23 -0700665 "deparsers" : [
666 {
667 "name" : "deparser",
668 "id" : 0,
669 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +0200670 "filename" : "include/parser.p4",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +0900671 "line" : 212,
Yi Tsengbe342052017-11-03 10:21:23 -0700672 "column" : 8,
673 "source_fragment" : "FabricDeparser"
674 },
Carmelo Casconef645e842018-07-16 18:31:52 +0200675 "order" : ["packet_in", "ethernet", "vlan_tag", "mpls", "arp", "ipv4", "tcp", "udp", "icmp"]
Yi Tsengbe342052017-11-03 10:21:23 -0700676 }
677 ],
678 "meter_arrays" : [],
679 "counter_arrays" : [
680 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800681 "name" : "FabricIngress.filtering.ingress_port_vlan_counter",
Yi Tseng1d842672017-11-28 16:06:52 -0800682 "id" : 0,
Yi Tseng3a5731e2018-01-22 11:38:58 -0800683 "is_direct" : true,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800684 "binding" : "FabricIngress.filtering.ingress_port_vlan"
Yi Tseng3a5731e2018-01-22 11:38:58 -0800685 },
686 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800687 "name" : "FabricIngress.filtering.fwd_classifier_counter",
Yi Tseng3a5731e2018-01-22 11:38:58 -0800688 "id" : 1,
689 "is_direct" : true,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800690 "binding" : "FabricIngress.filtering.fwd_classifier"
Yi Tseng3a5731e2018-01-22 11:38:58 -0800691 },
692 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800693 "name" : "FabricIngress.forwarding.bridging_counter",
Yi Tseng3a5731e2018-01-22 11:38:58 -0800694 "id" : 2,
695 "is_direct" : true,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800696 "binding" : "FabricIngress.forwarding.bridging"
Yi Tseng3a5731e2018-01-22 11:38:58 -0800697 },
698 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800699 "name" : "FabricIngress.forwarding.mpls_counter",
Yi Tseng3a5731e2018-01-22 11:38:58 -0800700 "id" : 3,
701 "is_direct" : true,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800702 "binding" : "FabricIngress.forwarding.mpls"
Yi Tseng3a5731e2018-01-22 11:38:58 -0800703 },
704 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800705 "name" : "FabricIngress.forwarding.unicast_v4_counter",
Yi Tseng3a5731e2018-01-22 11:38:58 -0800706 "id" : 4,
707 "is_direct" : true,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800708 "binding" : "FabricIngress.forwarding.unicast_v4"
Yi Tseng3a5731e2018-01-22 11:38:58 -0800709 },
710 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800711 "name" : "FabricIngress.forwarding.acl_counter",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -0800712 "id" : 5,
Yi Tseng3a5731e2018-01-22 11:38:58 -0800713 "is_direct" : true,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800714 "binding" : "FabricIngress.forwarding.acl"
Yi Tseng3a5731e2018-01-22 11:38:58 -0800715 },
716 {
Yi Tseng47eac892018-07-11 02:17:04 +0800717 "name" : "FabricIngress.next.vlan_meta_counter",
Carmelo Casconef645e842018-07-16 18:31:52 +0200718 "id" : 6,
Yi Tseng47eac892018-07-11 02:17:04 +0800719 "is_direct" : true,
Yi Tseng20f9e7b2018-05-24 23:27:39 +0800720 "binding" : "FabricIngress.next.vlan_meta"
721 },
722 {
723 "name" : "FabricIngress.next.simple_counter",
Carmelo Casconef645e842018-07-16 18:31:52 +0200724 "id" : 7,
Yi Tseng20f9e7b2018-05-24 23:27:39 +0800725 "is_direct" : true,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800726 "binding" : "FabricIngress.next.simple"
727 },
728 {
729 "name" : "FabricIngress.next.hashed_counter",
Carmelo Casconef645e842018-07-16 18:31:52 +0200730 "id" : 8,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800731 "is_direct" : true,
732 "binding" : "FabricIngress.next.hashed"
733 },
734 {
Esin Karaman971fb7f2017-12-28 13:44:52 +0000735 "name" : "FabricIngress.next.multicast_counter",
Carmelo Casconef645e842018-07-16 18:31:52 +0200736 "id" : 9,
Esin Karaman971fb7f2017-12-28 13:44:52 +0000737 "is_direct" : true,
738 "binding" : "FabricIngress.next.multicast"
739 },
740 {
741 "name" : "FabricIngress.port_counters_control.egress_port_counter",
Carmelo Casconef645e842018-07-16 18:31:52 +0200742 "id" : 10,
Yi Tsengbe342052017-11-03 10:21:23 -0700743 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +0200744 "filename" : "include/control/port_counter.p4",
Yi Tsengbe342052017-11-03 10:21:23 -0700745 "line" : 23,
Yi Tseng3d3956d2018-01-31 17:28:05 -0800746 "column" : 48,
Yi Tsengbe342052017-11-03 10:21:23 -0700747 "source_fragment" : "egress_port_counter"
748 },
749 "size" : 511,
750 "is_direct" : false
751 },
752 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800753 "name" : "FabricIngress.port_counters_control.ingress_port_counter",
Carmelo Casconef645e842018-07-16 18:31:52 +0200754 "id" : 11,
Yi Tsengbe342052017-11-03 10:21:23 -0700755 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +0200756 "filename" : "include/control/port_counter.p4",
Yi Tsengbe342052017-11-03 10:21:23 -0700757 "line" : 24,
Yi Tseng3d3956d2018-01-31 17:28:05 -0800758 "column" : 48,
Yi Tsengbe342052017-11-03 10:21:23 -0700759 "source_fragment" : "ingress_port_counter"
760 },
761 "size" : 511,
762 "is_direct" : false
Yi Tseng47eac892018-07-11 02:17:04 +0800763 },
764 {
765 "name" : "FabricEgress.egress_next.egress_vlan_counter",
Carmelo Casconef645e842018-07-16 18:31:52 +0200766 "id" : 12,
Yi Tseng47eac892018-07-11 02:17:04 +0800767 "is_direct" : true,
768 "binding" : "FabricEgress.egress_next.egress_vlan"
Yi Tsengbe342052017-11-03 10:21:23 -0700769 }
770 ],
771 "register_arrays" : [],
772 "calculations" : [
773 {
774 "name" : "calc",
775 "id" : 0,
776 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +0200777 "filename" : "include/checksum.p4",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200778 "line" : 28,
Yi Tsengbe342052017-11-03 10:21:23 -0700779 "column" : 8,
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200780 "source_fragment" : "update_checksum(hdr.ipv4.isValid(), ..."
Yi Tsengbe342052017-11-03 10:21:23 -0700781 },
782 "algo" : "csum16",
783 "input" : [
784 {
785 "type" : "field",
786 "value" : ["ipv4", "version"]
787 },
788 {
789 "type" : "field",
790 "value" : ["ipv4", "ihl"]
791 },
792 {
793 "type" : "field",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +0900794 "value" : ["ipv4", "dscp"]
795 },
796 {
797 "type" : "field",
798 "value" : ["ipv4", "ecn"]
Yi Tsengbe342052017-11-03 10:21:23 -0700799 },
800 {
801 "type" : "field",
802 "value" : ["ipv4", "total_len"]
803 },
804 {
805 "type" : "field",
806 "value" : ["ipv4", "identification"]
807 },
808 {
809 "type" : "field",
810 "value" : ["ipv4", "flags"]
811 },
812 {
813 "type" : "field",
814 "value" : ["ipv4", "frag_offset"]
815 },
816 {
817 "type" : "field",
818 "value" : ["ipv4", "ttl"]
819 },
820 {
821 "type" : "field",
822 "value" : ["ipv4", "protocol"]
823 },
824 {
825 "type" : "field",
826 "value" : ["ipv4", "src_addr"]
827 },
828 {
829 "type" : "field",
830 "value" : ["ipv4", "dst_addr"]
831 }
832 ]
833 },
834 {
835 "name" : "calc_0",
836 "id" : 1,
837 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +0200838 "filename" : "include/checksum.p4",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +0900839 "line" : 57,
Yi Tsengbe342052017-11-03 10:21:23 -0700840 "column" : 8,
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200841 "source_fragment" : "verify_checksum(hdr.ipv4.isValid(), ..."
Yi Tsengbe342052017-11-03 10:21:23 -0700842 },
843 "algo" : "csum16",
844 "input" : [
845 {
846 "type" : "field",
847 "value" : ["ipv4", "version"]
848 },
849 {
850 "type" : "field",
851 "value" : ["ipv4", "ihl"]
852 },
853 {
854 "type" : "field",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +0900855 "value" : ["ipv4", "dscp"]
856 },
857 {
858 "type" : "field",
859 "value" : ["ipv4", "ecn"]
Yi Tsengbe342052017-11-03 10:21:23 -0700860 },
861 {
862 "type" : "field",
863 "value" : ["ipv4", "total_len"]
864 },
865 {
866 "type" : "field",
867 "value" : ["ipv4", "identification"]
868 },
869 {
870 "type" : "field",
871 "value" : ["ipv4", "flags"]
872 },
873 {
874 "type" : "field",
875 "value" : ["ipv4", "frag_offset"]
876 },
877 {
878 "type" : "field",
879 "value" : ["ipv4", "ttl"]
880 },
881 {
882 "type" : "field",
883 "value" : ["ipv4", "protocol"]
884 },
885 {
886 "type" : "field",
887 "value" : ["ipv4", "src_addr"]
888 },
889 {
890 "type" : "field",
891 "value" : ["ipv4", "dst_addr"]
892 }
893 ]
Yi Tsengbe342052017-11-03 10:21:23 -0700894 }
895 ],
896 "learn_lists" : [],
897 "actions" : [
898 {
899 "name" : "nop",
900 "id" : 0,
901 "runtime_data" : [],
902 "primitives" : []
903 },
904 {
905 "name" : "nop",
906 "id" : 1,
907 "runtime_data" : [],
908 "primitives" : []
909 },
910 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +0800911 "name" : "nop",
Yi Tsengbe342052017-11-03 10:21:23 -0700912 "id" : 2,
913 "runtime_data" : [],
Yi Tseng1d842672017-11-28 16:06:52 -0800914 "primitives" : []
Yi Tsengbe342052017-11-03 10:21:23 -0700915 },
916 {
Yi Tseng1d842672017-11-28 16:06:52 -0800917 "name" : "NoAction",
Yi Tsengbe342052017-11-03 10:21:23 -0700918 "id" : 3,
919 "runtime_data" : [],
Yi Tseng1d842672017-11-28 16:06:52 -0800920 "primitives" : []
Yi Tsengbe342052017-11-03 10:21:23 -0700921 },
922 {
923 "name" : "NoAction",
924 "id" : 4,
925 "runtime_data" : [],
926 "primitives" : []
927 },
928 {
929 "name" : "NoAction",
930 "id" : 5,
931 "runtime_data" : [],
932 "primitives" : []
933 },
934 {
935 "name" : "NoAction",
936 "id" : 6,
937 "runtime_data" : [],
938 "primitives" : []
939 },
940 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800941 "name" : "NoAction",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -0800942 "id" : 7,
Yi Tsengbe342052017-11-03 10:21:23 -0700943 "runtime_data" : [],
Yi Tseng27b9bc02018-04-12 14:52:40 +0800944 "primitives" : []
945 },
946 {
Esin Karaman971fb7f2017-12-28 13:44:52 +0000947 "name" : "NoAction",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200948 "id" : 8,
Yi Tseng20f9e7b2018-05-24 23:27:39 +0800949 "runtime_data" : [],
Esin Karaman971fb7f2017-12-28 13:44:52 +0000950 "primitives" : []
951 },
952 {
Yi Tseng47eac892018-07-11 02:17:04 +0800953 "name" : "FabricIngress.filtering.drop",
Carmelo Casconef645e842018-07-16 18:31:52 +0200954 "id" : 9,
Yi Tseng47eac892018-07-11 02:17:04 +0800955 "runtime_data" : [],
Yi Tseng1d842672017-11-28 16:06:52 -0800956 "primitives" : [
957 {
958 "op" : "drop",
959 "parameters" : [],
960 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +0200961 "filename" : "include/control/filtering.p4",
Yi Tseng47eac892018-07-11 02:17:04 +0800962 "line" : 37,
Yi Tseng1d842672017-11-28 16:06:52 -0800963 "column" : 8,
964 "source_fragment" : "mark_to_drop()"
965 }
966 }
967 ]
Yi Tsengbe342052017-11-03 10:21:23 -0700968 },
969 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800970 "name" : "FabricIngress.filtering.set_vlan",
Carmelo Casconef645e842018-07-16 18:31:52 +0200971 "id" : 10,
Yi Tsengbe342052017-11-03 10:21:23 -0700972 "runtime_data" : [
973 {
974 "name" : "new_vlan_id",
975 "bitwidth" : 12
976 }
977 ],
978 "primitives" : [
979 {
980 "op" : "assign",
981 "parameters" : [
982 {
983 "type" : "field",
984 "value" : ["vlan_tag", "vlan_id"]
985 },
986 {
987 "type" : "runtime_data",
988 "value" : 0
989 }
990 ],
991 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +0200992 "filename" : "include/control/filtering.p4",
Yi Tseng47eac892018-07-11 02:17:04 +0800993 "line" : 42,
Yi Tsengbe342052017-11-03 10:21:23 -0700994 "column" : 8,
995 "source_fragment" : "hdr.vlan_tag.vlan_id = new_vlan_id"
996 }
997 }
998 ]
999 },
1000 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001001 "name" : "FabricIngress.filtering.push_internal_vlan",
Carmelo Casconef645e842018-07-16 18:31:52 +02001002 "id" : 11,
Yi Tsengbe342052017-11-03 10:21:23 -07001003 "runtime_data" : [
1004 {
1005 "name" : "new_vlan_id",
1006 "bitwidth" : 12
1007 }
1008 ],
1009 "primitives" : [
1010 {
1011 "op" : "add_header",
1012 "parameters" : [
1013 {
1014 "type" : "header",
1015 "value" : "vlan_tag"
1016 }
1017 ],
1018 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001019 "filename" : "include/control/filtering.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001020 "line" : 49,
Yi Tsengbe342052017-11-03 10:21:23 -07001021 "column" : 8,
1022 "source_fragment" : "hdr.vlan_tag.setValid()"
1023 }
1024 },
1025 {
1026 "op" : "assign",
1027 "parameters" : [
1028 {
1029 "type" : "field",
1030 "value" : ["vlan_tag", "cfi"]
1031 },
1032 {
1033 "type" : "hexstr",
1034 "value" : "0x00"
1035 }
1036 ],
1037 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001038 "filename" : "include/control/filtering.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001039 "line" : 50,
Yi Tsengbe342052017-11-03 10:21:23 -07001040 "column" : 8,
1041 "source_fragment" : "hdr.vlan_tag.cfi = 0"
1042 }
1043 },
1044 {
1045 "op" : "assign",
1046 "parameters" : [
1047 {
1048 "type" : "field",
1049 "value" : ["vlan_tag", "pri"]
1050 },
1051 {
1052 "type" : "hexstr",
1053 "value" : "0x00"
1054 }
1055 ],
1056 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001057 "filename" : "include/control/filtering.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001058 "line" : 51,
Yi Tsengbe342052017-11-03 10:21:23 -07001059 "column" : 8,
1060 "source_fragment" : "hdr.vlan_tag.pri = 0"
1061 }
1062 },
1063 {
1064 "op" : "assign",
1065 "parameters" : [
1066 {
1067 "type" : "field",
1068 "value" : ["vlan_tag", "ether_type"]
1069 },
1070 {
Yi Tseng1d842672017-11-28 16:06:52 -08001071 "type" : "field",
1072 "value" : ["ethernet", "ether_type"]
1073 }
1074 ],
1075 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001076 "filename" : "include/control/filtering.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001077 "line" : 52,
Yi Tseng1d842672017-11-28 16:06:52 -08001078 "column" : 8,
1079 "source_fragment" : "hdr.vlan_tag.ether_type = hdr.ethernet.ether_type"
1080 }
1081 },
1082 {
1083 "op" : "assign",
1084 "parameters" : [
1085 {
1086 "type" : "field",
1087 "value" : ["ethernet", "ether_type"]
1088 },
1089 {
Yi Tsengbe342052017-11-03 10:21:23 -07001090 "type" : "hexstr",
1091 "value" : "0x8100"
1092 }
1093 ],
1094 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001095 "filename" : "include/control/../define.p4",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09001096 "line" : 74,
Yi Tsengbe342052017-11-03 10:21:23 -07001097 "column" : 31,
1098 "source_fragment" : "0x8100; ..."
1099 }
1100 },
1101 {
1102 "op" : "assign",
1103 "parameters" : [
1104 {
1105 "type" : "field",
1106 "value" : ["vlan_tag", "vlan_id"]
1107 },
1108 {
1109 "type" : "runtime_data",
1110 "value" : 0
1111 }
1112 ],
1113 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001114 "filename" : "include/control/filtering.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001115 "line" : 54,
Yi Tsengbe342052017-11-03 10:21:23 -07001116 "column" : 8,
Yi Tseng47eac892018-07-11 02:17:04 +08001117 "source_fragment" : "hdr.vlan_tag.vlan_id = new_vlan_id"
Yi Tsengbe342052017-11-03 10:21:23 -07001118 }
1119 },
1120 {
1121 "op" : "assign",
1122 "parameters" : [
1123 {
1124 "type" : "field",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001125 "value" : ["scalars", "fabric_metadata_t.pop_vlan_when_packet_in"]
Yi Tsengbe342052017-11-03 10:21:23 -07001126 },
1127 {
1128 "type" : "expression",
1129 "value" : {
1130 "type" : "expression",
1131 "value" : {
1132 "op" : "b2d",
1133 "left" : null,
1134 "right" : {
1135 "type" : "bool",
1136 "value" : true
1137 }
1138 }
1139 }
1140 }
1141 ],
1142 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001143 "filename" : "include/control/filtering.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001144 "line" : 57,
Yi Tsengbe342052017-11-03 10:21:23 -07001145 "column" : 8,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001146 "source_fragment" : "fabric_metadata.pop_vlan_when_packet_in = true"
Yi Tsengbe342052017-11-03 10:21:23 -07001147 }
1148 }
1149 ]
1150 },
1151 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001152 "name" : "FabricIngress.filtering.set_forwarding_type",
Carmelo Casconef645e842018-07-16 18:31:52 +02001153 "id" : 12,
Yi Tsengbe342052017-11-03 10:21:23 -07001154 "runtime_data" : [
1155 {
1156 "name" : "fwd_type",
1157 "bitwidth" : 3
1158 }
1159 ],
1160 "primitives" : [
1161 {
1162 "op" : "assign",
1163 "parameters" : [
1164 {
1165 "type" : "field",
1166 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
1167 },
1168 {
1169 "type" : "runtime_data",
1170 "value" : 0
1171 }
1172 ],
1173 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001174 "filename" : "include/control/filtering.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001175 "line" : 94,
Yi Tsengbe342052017-11-03 10:21:23 -07001176 "column" : 8,
1177 "source_fragment" : "fabric_metadata.fwd_type = fwd_type"
1178 }
1179 }
1180 ]
1181 },
1182 {
Yi Tseng47eac892018-07-11 02:17:04 +08001183 "name" : "FabricIngress.forwarding.set_next_id_bridging",
Carmelo Casconef645e842018-07-16 18:31:52 +02001184 "id" : 13,
1185 "runtime_data" : [
1186 {
1187 "name" : "next_id",
1188 "bitwidth" : 32
1189 }
1190 ],
1191 "primitives" : [
1192 {
1193 "op" : "assign",
1194 "parameters" : [
1195 {
1196 "type" : "field",
1197 "value" : ["scalars", "fabric_metadata_t.next_id"]
1198 },
1199 {
1200 "type" : "runtime_data",
1201 "value" : 0
1202 }
1203 ],
1204 "source_info" : {
1205 "filename" : "include/control/forwarding.p4",
1206 "line" : 37,
1207 "column" : 8,
1208 "source_fragment" : "fabric_metadata.next_id = next_id"
1209 }
1210 }
1211 ]
1212 },
1213 {
1214 "name" : "FabricIngress.forwarding.pop_mpls_and_next",
1215 "id" : 14,
1216 "runtime_data" : [
1217 {
1218 "name" : "next_id",
1219 "bitwidth" : 32
1220 }
1221 ],
1222 "primitives" : [
1223 {
1224 "op" : "remove_header",
1225 "parameters" : [
1226 {
1227 "type" : "header",
1228 "value" : "mpls"
1229 }
1230 ],
1231 "source_info" : {
1232 "filename" : "include/control/forwarding.p4",
1233 "line" : 60,
1234 "column" : 8,
1235 "source_fragment" : "hdr.mpls.setInvalid()"
1236 }
1237 },
1238 {
1239 "op" : "assign",
1240 "parameters" : [
1241 {
1242 "type" : "field",
1243 "value" : ["scalars", "fabric_metadata_t.next_id"]
1244 },
1245 {
1246 "type" : "runtime_data",
1247 "value" : 0
1248 }
1249 ],
1250 "source_info" : {
1251 "filename" : "include/control/forwarding.p4",
1252 "line" : 61,
1253 "column" : 8,
1254 "source_fragment" : "fabric_metadata.next_id = next_id"
1255 }
1256 }
1257 ]
1258 },
1259 {
1260 "name" : "FabricIngress.forwarding.set_next_id_unicast_v4",
1261 "id" : 15,
1262 "runtime_data" : [
1263 {
1264 "name" : "next_id",
1265 "bitwidth" : 32
1266 }
1267 ],
1268 "primitives" : [
1269 {
1270 "op" : "assign",
1271 "parameters" : [
1272 {
1273 "type" : "field",
1274 "value" : ["scalars", "fabric_metadata_t.next_id"]
1275 },
1276 {
1277 "type" : "runtime_data",
1278 "value" : 0
1279 }
1280 ],
1281 "source_info" : {
1282 "filename" : "include/control/forwarding.p4",
1283 "line" : 83,
1284 "column" : 8,
1285 "source_fragment" : "fabric_metadata.next_id = next_id"
1286 }
1287 }
1288 ]
1289 },
1290 {
1291 "name" : "FabricIngress.forwarding.set_next_id_acl",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001292 "id" : 16,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001293 "runtime_data" : [
1294 {
1295 "name" : "next_id",
1296 "bitwidth" : 32
1297 }
1298 ],
1299 "primitives" : [
1300 {
Esin Karaman971fb7f2017-12-28 13:44:52 +00001301 "op" : "assign",
1302 "parameters" : [
1303 {
1304 "type" : "field",
1305 "value" : ["scalars", "fabric_metadata_t.next_id"]
1306 },
1307 {
1308 "type" : "runtime_data",
1309 "value" : 0
1310 }
1311 ],
1312 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001313 "filename" : "include/control/forwarding.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001314 "line" : 105,
1315 "column" : 8,
1316 "source_fragment" : "fabric_metadata.next_id = next_id"
1317 }
1318 }
1319 ]
1320 },
1321 {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001322 "name" : "FabricIngress.forwarding.punt_to_cpu",
Carmelo Casconef645e842018-07-16 18:31:52 +02001323 "id" : 17,
Yi Tsengbe342052017-11-03 10:21:23 -07001324 "runtime_data" : [],
1325 "primitives" : [
1326 {
1327 "op" : "assign",
1328 "parameters" : [
1329 {
1330 "type" : "field",
Yi Tsengbe342052017-11-03 10:21:23 -07001331 "value" : ["standard_metadata", "egress_spec"]
1332 },
1333 {
1334 "type" : "hexstr",
1335 "value" : "0x00ff"
1336 }
1337 ],
1338 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001339 "filename" : "include/control/forwarding.p4",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001340 "line" : 111,
Carmelo Casconeb531b682018-01-30 17:55:56 -08001341 "column" : 8,
1342 "source_fragment" : "standard_metadata.egress_spec = 255"
Yi Tsengbe342052017-11-03 10:21:23 -07001343 }
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001344 },
1345 {
1346 "op" : "exit",
1347 "parameters" : [],
1348 "source_info" : {
1349 "filename" : "include/control/forwarding.p4",
1350 "line" : 113,
1351 "column" : 8,
1352 "source_fragment" : "exit"
1353 }
1354 }
1355 ]
1356 },
1357 {
1358 "name" : "FabricIngress.forwarding.clone_to_cpu",
1359 "id" : 18,
1360 "runtime_data" : [],
1361 "primitives" : [
1362 {
1363 "op" : "assign",
1364 "parameters" : [
1365 {
1366 "type" : "field",
1367 "value" : ["scalars", "fabric_metadata_t.clone_to_cpu"]
1368 },
1369 {
1370 "type" : "expression",
1371 "value" : {
1372 "type" : "expression",
1373 "value" : {
1374 "op" : "b2d",
1375 "left" : null,
1376 "right" : {
1377 "type" : "bool",
1378 "value" : true
1379 }
1380 }
1381 }
1382 }
1383 ],
1384 "source_info" : {
1385 "filename" : "include/control/forwarding.p4",
1386 "line" : 118,
1387 "column" : 8,
1388 "source_fragment" : "fabric_metadata.clone_to_cpu = true"
1389 }
Yi Tsengbe342052017-11-03 10:21:23 -07001390 }
1391 ]
1392 },
1393 {
Yi Tseng47eac892018-07-11 02:17:04 +08001394 "name" : "FabricIngress.forwarding.drop",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001395 "id" : 19,
Yi Tseng47eac892018-07-11 02:17:04 +08001396 "runtime_data" : [],
1397 "primitives" : [
1398 {
1399 "op" : "drop",
1400 "parameters" : [],
1401 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001402 "filename" : "include/control/forwarding.p4",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001403 "line" : 123,
Yi Tseng47eac892018-07-11 02:17:04 +08001404 "column" : 8,
1405 "source_fragment" : "mark_to_drop()"
1406 }
1407 }
1408 ]
1409 },
1410 {
Yi Tseng47eac892018-07-11 02:17:04 +08001411 "name" : "FabricIngress.next.set_vlan",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001412 "id" : 20,
Yi Tseng47eac892018-07-11 02:17:04 +08001413 "runtime_data" : [
1414 {
1415 "name" : "new_vlan_id",
1416 "bitwidth" : 12
1417 }
1418 ],
1419 "primitives" : [
1420 {
1421 "op" : "assign",
1422 "parameters" : [
1423 {
1424 "type" : "field",
1425 "value" : ["vlan_tag", "vlan_id"]
1426 },
1427 {
1428 "type" : "runtime_data",
1429 "value" : 0
1430 }
1431 ],
1432 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001433 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001434 "line" : 61,
1435 "column" : 8,
1436 "source_fragment" : "hdr.vlan_tag.vlan_id = new_vlan_id"
1437 }
1438 }
1439 ]
1440 },
1441 {
1442 "name" : "FabricIngress.next.output_simple",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001443 "id" : 21,
Yi Tsengbe342052017-11-03 10:21:23 -07001444 "runtime_data" : [
1445 {
1446 "name" : "port_num",
1447 "bitwidth" : 9
1448 }
1449 ],
1450 "primitives" : [
1451 {
1452 "op" : "assign",
1453 "parameters" : [
1454 {
1455 "type" : "field",
1456 "value" : ["standard_metadata", "egress_spec"]
1457 },
1458 {
1459 "type" : "runtime_data",
1460 "value" : 0
1461 }
1462 ],
1463 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001464 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001465 "line" : 85,
Yi Tsengbe342052017-11-03 10:21:23 -07001466 "column" : 8,
1467 "source_fragment" : "standard_metadata.egress_spec = port_num"
1468 }
Yi Tsengbe342052017-11-03 10:21:23 -07001469 }
1470 ]
1471 },
1472 {
Yi Tseng47eac892018-07-11 02:17:04 +08001473 "name" : "FabricIngress.next.set_vlan_output",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001474 "id" : 22,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001475 "runtime_data" : [
1476 {
1477 "name" : "new_vlan_id",
1478 "bitwidth" : 12
Yi Tseng47eac892018-07-11 02:17:04 +08001479 },
1480 {
1481 "name" : "port_num",
1482 "bitwidth" : 9
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001483 }
1484 ],
1485 "primitives" : [
1486 {
1487 "op" : "assign",
1488 "parameters" : [
1489 {
1490 "type" : "field",
1491 "value" : ["vlan_tag", "vlan_id"]
1492 },
1493 {
1494 "type" : "runtime_data",
1495 "value" : 0
1496 }
1497 ],
1498 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001499 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001500 "line" : 90,
1501 "column" : 8,
1502 "source_fragment" : "hdr.vlan_tag.vlan_id = new_vlan_id"
1503 }
1504 },
1505 {
1506 "op" : "assign",
1507 "parameters" : [
1508 {
1509 "type" : "field",
1510 "value" : ["standard_metadata", "egress_spec"]
1511 },
1512 {
1513 "type" : "runtime_data",
1514 "value" : 1
1515 }
1516 ],
1517 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001518 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001519 "line" : 85,
1520 "column" : 8,
1521 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
1522 }
1523 }
1524 ]
1525 },
1526 {
1527 "name" : "FabricIngress.next.l3_routing_simple",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001528 "id" : 23,
Yi Tseng47eac892018-07-11 02:17:04 +08001529 "runtime_data" : [
1530 {
1531 "name" : "port_num",
1532 "bitwidth" : 9
1533 },
1534 {
1535 "name" : "smac",
1536 "bitwidth" : 48
1537 },
1538 {
1539 "name" : "dmac",
1540 "bitwidth" : 48
1541 }
1542 ],
1543 "primitives" : [
1544 {
1545 "op" : "assign",
1546 "parameters" : [
1547 {
1548 "type" : "field",
1549 "value" : ["ethernet", "src_addr"]
1550 },
1551 {
1552 "type" : "runtime_data",
1553 "value" : 1
1554 }
1555 ],
1556 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001557 "filename" : "include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001558 "line" : 37,
1559 "column" : 8,
Yi Tseng47eac892018-07-11 02:17:04 +08001560 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
1561 }
1562 },
1563 {
1564 "op" : "assign",
1565 "parameters" : [
1566 {
1567 "type" : "field",
1568 "value" : ["ethernet", "dst_addr"]
1569 },
1570 {
1571 "type" : "runtime_data",
1572 "value" : 2
1573 }
1574 ],
1575 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001576 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001577 "line" : 41,
1578 "column" : 8,
1579 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
1580 }
1581 },
1582 {
1583 "op" : "assign",
1584 "parameters" : [
1585 {
1586 "type" : "field",
1587 "value" : ["standard_metadata", "egress_spec"]
1588 },
1589 {
1590 "type" : "runtime_data",
1591 "value" : 0
1592 }
1593 ],
1594 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001595 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001596 "line" : 85,
1597 "column" : 8,
1598 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001599 }
1600 }
1601 ]
1602 },
1603 {
Yi Tseng47eac892018-07-11 02:17:04 +08001604 "name" : "FabricIngress.next.mpls_routing_v4_simple",
Carmelo Casconef645e842018-07-16 18:31:52 +02001605 "id" : 24,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001606 "runtime_data" : [
1607 {
1608 "name" : "port_num",
1609 "bitwidth" : 9
1610 },
1611 {
1612 "name" : "smac",
1613 "bitwidth" : 48
1614 },
1615 {
1616 "name" : "dmac",
1617 "bitwidth" : 48
Yi Tseng47eac892018-07-11 02:17:04 +08001618 },
1619 {
1620 "name" : "label",
1621 "bitwidth" : 20
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001622 }
1623 ],
1624 "primitives" : [
1625 {
1626 "op" : "assign",
1627 "parameters" : [
1628 {
1629 "type" : "field",
1630 "value" : ["ethernet", "src_addr"]
1631 },
1632 {
1633 "type" : "runtime_data",
1634 "value" : 1
1635 }
1636 ],
1637 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001638 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001639 "line" : 37,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001640 "column" : 8,
1641 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
1642 }
1643 },
1644 {
1645 "op" : "assign",
1646 "parameters" : [
1647 {
1648 "type" : "field",
1649 "value" : ["ethernet", "dst_addr"]
1650 },
1651 {
1652 "type" : "runtime_data",
1653 "value" : 2
1654 }
1655 ],
1656 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001657 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001658 "line" : 41,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001659 "column" : 8,
1660 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
1661 }
1662 },
1663 {
1664 "op" : "assign",
1665 "parameters" : [
1666 {
1667 "type" : "field",
1668 "value" : ["standard_metadata", "egress_spec"]
1669 },
1670 {
1671 "type" : "runtime_data",
1672 "value" : 0
1673 }
1674 ],
1675 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001676 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001677 "line" : 85,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001678 "column" : 8,
1679 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
1680 }
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001681 },
1682 {
Yi Tseng47eac892018-07-11 02:17:04 +08001683 "op" : "add_header",
Esin Karaman971fb7f2017-12-28 13:44:52 +00001684 "parameters" : [
1685 {
Yi Tseng47eac892018-07-11 02:17:04 +08001686 "type" : "header",
1687 "value" : "mpls"
Esin Karaman971fb7f2017-12-28 13:44:52 +00001688 }
1689 ],
1690 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001691 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001692 "line" : 46,
Esin Karaman971fb7f2017-12-28 13:44:52 +00001693 "column" : 8,
Yi Tseng47eac892018-07-11 02:17:04 +08001694 "source_fragment" : "hdr.mpls.setValid()"
Esin Karaman971fb7f2017-12-28 13:44:52 +00001695 }
1696 },
1697 {
1698 "op" : "assign",
1699 "parameters" : [
1700 {
1701 "type" : "field",
Yi Tseng47eac892018-07-11 02:17:04 +08001702 "value" : ["vlan_tag", "ether_type"]
Esin Karaman971fb7f2017-12-28 13:44:52 +00001703 },
1704 {
Yi Tseng47eac892018-07-11 02:17:04 +08001705 "type" : "hexstr",
1706 "value" : "0x8847"
Esin Karaman971fb7f2017-12-28 13:44:52 +00001707 }
1708 ],
1709 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001710 "filename" : "include/control/../define.p4",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09001711 "line" : 75,
Yi Tseng47eac892018-07-11 02:17:04 +08001712 "column" : 31,
1713 "source_fragment" : "0x8847; ..."
Esin Karaman971fb7f2017-12-28 13:44:52 +00001714 }
1715 },
1716 {
1717 "op" : "assign",
1718 "parameters" : [
1719 {
1720 "type" : "field",
Yi Tseng47eac892018-07-11 02:17:04 +08001721 "value" : ["mpls", "label"]
Esin Karaman971fb7f2017-12-28 13:44:52 +00001722 },
1723 {
1724 "type" : "runtime_data",
Yi Tseng47eac892018-07-11 02:17:04 +08001725 "value" : 3
Esin Karaman971fb7f2017-12-28 13:44:52 +00001726 }
1727 ],
1728 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001729 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001730 "line" : 48,
Esin Karaman971fb7f2017-12-28 13:44:52 +00001731 "column" : 8,
Yi Tseng47eac892018-07-11 02:17:04 +08001732 "source_fragment" : "hdr.mpls.label = label; ..."
1733 }
1734 },
1735 {
1736 "op" : "assign",
1737 "parameters" : [
1738 {
1739 "type" : "field",
1740 "value" : ["mpls", "tc"]
1741 },
1742 {
1743 "type" : "hexstr",
1744 "value" : "0x00"
1745 }
1746 ],
1747 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001748 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001749 "line" : 49,
1750 "column" : 8,
1751 "source_fragment" : "hdr.mpls.tc = tc; ..."
1752 }
1753 },
1754 {
1755 "op" : "assign",
1756 "parameters" : [
1757 {
1758 "type" : "field",
1759 "value" : ["mpls", "bos"]
1760 },
1761 {
1762 "type" : "hexstr",
1763 "value" : "0x01"
1764 }
1765 ],
1766 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001767 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001768 "line" : 50,
1769 "column" : 8,
1770 "source_fragment" : "hdr.mpls.bos = 1w1"
1771 }
1772 },
1773 {
1774 "op" : "assign",
1775 "parameters" : [
1776 {
1777 "type" : "field",
1778 "value" : ["mpls", "ttl"]
1779 },
1780 {
1781 "type" : "hexstr",
1782 "value" : "0x40"
1783 }
1784 ],
1785 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001786 "filename" : "include/control/../define.p4",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09001787 "line" : 95,
Yi Tseng47eac892018-07-11 02:17:04 +08001788 "column" : 32,
1789 "source_fragment" : "64; ..."
Esin Karaman971fb7f2017-12-28 13:44:52 +00001790 }
1791 }
1792 ]
1793 },
1794 {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001795 "name" : "FabricIngress.next.mpls_routing_v6_simple",
Carmelo Casconef645e842018-07-16 18:31:52 +02001796 "id" : 25,
Esin Karaman971fb7f2017-12-28 13:44:52 +00001797 "runtime_data" : [
1798 {
1799 "name" : "port_num",
1800 "bitwidth" : 9
1801 },
1802 {
1803 "name" : "smac",
1804 "bitwidth" : 48
1805 },
1806 {
1807 "name" : "dmac",
1808 "bitwidth" : 48
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001809 },
1810 {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001811 "name" : "label",
1812 "bitwidth" : 20
Yi Tsengbe342052017-11-03 10:21:23 -07001813 }
1814 ],
1815 "primitives" : [
1816 {
1817 "op" : "assign",
1818 "parameters" : [
1819 {
1820 "type" : "field",
1821 "value" : ["ethernet", "src_addr"]
1822 },
1823 {
1824 "type" : "runtime_data",
1825 "value" : 1
1826 }
1827 ],
1828 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001829 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001830 "line" : 37,
Yi Tsengbe342052017-11-03 10:21:23 -07001831 "column" : 8,
1832 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
1833 }
1834 },
1835 {
1836 "op" : "assign",
1837 "parameters" : [
1838 {
1839 "type" : "field",
1840 "value" : ["ethernet", "dst_addr"]
1841 },
1842 {
1843 "type" : "runtime_data",
1844 "value" : 2
1845 }
1846 ],
1847 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001848 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001849 "line" : 41,
Yi Tsengbe342052017-11-03 10:21:23 -07001850 "column" : 8,
1851 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
1852 }
1853 },
1854 {
1855 "op" : "assign",
1856 "parameters" : [
1857 {
1858 "type" : "field",
1859 "value" : ["standard_metadata", "egress_spec"]
1860 },
1861 {
1862 "type" : "runtime_data",
1863 "value" : 0
1864 }
1865 ],
1866 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001867 "filename" : "include/control/next.p4",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001868 "line" : 85,
Yi Tsengbe342052017-11-03 10:21:23 -07001869 "column" : 8,
1870 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
1871 }
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001872 },
1873 {
1874 "op" : "add_header",
1875 "parameters" : [
1876 {
1877 "type" : "header",
1878 "value" : "mpls"
1879 }
1880 ],
1881 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001882 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001883 "line" : 46,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001884 "column" : 8,
1885 "source_fragment" : "hdr.mpls.setValid()"
1886 }
1887 },
1888 {
1889 "op" : "assign",
1890 "parameters" : [
1891 {
1892 "type" : "field",
1893 "value" : ["vlan_tag", "ether_type"]
1894 },
1895 {
1896 "type" : "hexstr",
1897 "value" : "0x8847"
1898 }
1899 ],
1900 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001901 "filename" : "include/control/../define.p4",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09001902 "line" : 75,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001903 "column" : 31,
1904 "source_fragment" : "0x8847; ..."
1905 }
1906 },
1907 {
1908 "op" : "assign",
1909 "parameters" : [
1910 {
1911 "type" : "field",
1912 "value" : ["mpls", "label"]
1913 },
1914 {
1915 "type" : "runtime_data",
1916 "value" : 3
1917 }
1918 ],
1919 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001920 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001921 "line" : 48,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001922 "column" : 8,
1923 "source_fragment" : "hdr.mpls.label = label; ..."
1924 }
1925 },
1926 {
1927 "op" : "assign",
1928 "parameters" : [
1929 {
1930 "type" : "field",
1931 "value" : ["mpls", "tc"]
1932 },
1933 {
1934 "type" : "hexstr",
1935 "value" : "0x00"
1936 }
1937 ],
1938 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001939 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001940 "line" : 49,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001941 "column" : 8,
1942 "source_fragment" : "hdr.mpls.tc = tc; ..."
1943 }
1944 },
1945 {
1946 "op" : "assign",
1947 "parameters" : [
1948 {
1949 "type" : "field",
1950 "value" : ["mpls", "bos"]
1951 },
1952 {
1953 "type" : "hexstr",
1954 "value" : "0x01"
1955 }
1956 ],
1957 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001958 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001959 "line" : 50,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001960 "column" : 8,
1961 "source_fragment" : "hdr.mpls.bos = 1w1"
1962 }
1963 },
1964 {
1965 "op" : "assign",
1966 "parameters" : [
1967 {
1968 "type" : "field",
1969 "value" : ["mpls", "ttl"]
1970 },
1971 {
1972 "type" : "hexstr",
1973 "value" : "0x40"
1974 }
1975 ],
1976 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001977 "filename" : "include/control/../define.p4",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09001978 "line" : 95,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001979 "column" : 32,
1980 "source_fragment" : "64; ..."
1981 }
Yi Tsengbe342052017-11-03 10:21:23 -07001982 }
1983 ]
1984 },
1985 {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001986 "name" : "FabricIngress.next.l3_routing_vlan",
1987 "id" : 26,
1988 "runtime_data" : [
1989 {
1990 "name" : "port_num",
1991 "bitwidth" : 9
1992 },
1993 {
1994 "name" : "smac",
1995 "bitwidth" : 48
1996 },
1997 {
1998 "name" : "dmac",
1999 "bitwidth" : 48
2000 },
2001 {
2002 "name" : "new_vlan_id",
2003 "bitwidth" : 12
2004 }
2005 ],
2006 "primitives" : [
2007 {
2008 "op" : "assign",
2009 "parameters" : [
2010 {
2011 "type" : "field",
2012 "value" : ["ethernet", "src_addr"]
2013 },
2014 {
2015 "type" : "runtime_data",
2016 "value" : 1
2017 }
2018 ],
2019 "source_info" : {
2020 "filename" : "include/control/next.p4",
2021 "line" : 37,
2022 "column" : 8,
2023 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2024 }
2025 },
2026 {
2027 "op" : "assign",
2028 "parameters" : [
2029 {
2030 "type" : "field",
2031 "value" : ["ethernet", "dst_addr"]
2032 },
2033 {
2034 "type" : "runtime_data",
2035 "value" : 2
2036 }
2037 ],
2038 "source_info" : {
2039 "filename" : "include/control/next.p4",
2040 "line" : 41,
2041 "column" : 8,
2042 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2043 }
2044 },
2045 {
2046 "op" : "assign",
2047 "parameters" : [
2048 {
2049 "type" : "field",
2050 "value" : ["vlan_tag", "vlan_id"]
2051 },
2052 {
2053 "type" : "runtime_data",
2054 "value" : 3
2055 }
2056 ],
2057 "source_info" : {
2058 "filename" : "include/control/next.p4",
2059 "line" : 90,
2060 "column" : 8,
2061 "source_fragment" : "hdr.vlan_tag.vlan_id = new_vlan_id; ..."
2062 }
2063 },
2064 {
2065 "op" : "assign",
2066 "parameters" : [
2067 {
2068 "type" : "field",
2069 "value" : ["standard_metadata", "egress_spec"]
2070 },
2071 {
2072 "type" : "runtime_data",
2073 "value" : 0
2074 }
2075 ],
2076 "source_info" : {
2077 "filename" : "include/control/next.p4",
2078 "line" : 85,
2079 "column" : 8,
2080 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2081 }
2082 }
2083 ]
2084 },
2085 {
2086 "name" : "FabricIngress.next.l3_routing_hashed",
2087 "id" : 27,
2088 "runtime_data" : [
2089 {
2090 "name" : "port_num",
2091 "bitwidth" : 9
2092 },
2093 {
2094 "name" : "smac",
2095 "bitwidth" : 48
2096 },
2097 {
2098 "name" : "dmac",
2099 "bitwidth" : 48
2100 }
2101 ],
2102 "primitives" : [
2103 {
2104 "op" : "assign",
2105 "parameters" : [
2106 {
2107 "type" : "field",
2108 "value" : ["ethernet", "src_addr"]
2109 },
2110 {
2111 "type" : "runtime_data",
2112 "value" : 1
2113 }
2114 ],
2115 "source_info" : {
2116 "filename" : "include/control/next.p4",
2117 "line" : 37,
2118 "column" : 8,
2119 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2120 }
2121 },
2122 {
2123 "op" : "assign",
2124 "parameters" : [
2125 {
2126 "type" : "field",
2127 "value" : ["ethernet", "dst_addr"]
2128 },
2129 {
2130 "type" : "runtime_data",
2131 "value" : 2
2132 }
2133 ],
2134 "source_info" : {
2135 "filename" : "include/control/next.p4",
2136 "line" : 41,
2137 "column" : 8,
2138 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2139 }
2140 },
2141 {
2142 "op" : "assign",
2143 "parameters" : [
2144 {
2145 "type" : "field",
2146 "value" : ["standard_metadata", "egress_spec"]
2147 },
2148 {
2149 "type" : "runtime_data",
2150 "value" : 0
2151 }
2152 ],
2153 "source_info" : {
2154 "filename" : "include/control/next.p4",
2155 "line" : 149,
2156 "column" : 8,
2157 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2158 }
2159 }
2160 ]
2161 },
2162 {
2163 "name" : "FabricIngress.next.mpls_routing_v4_hashed",
Carmelo Casconef645e842018-07-16 18:31:52 +02002164 "id" : 28,
Yi Tsengbe342052017-11-03 10:21:23 -07002165 "runtime_data" : [
2166 {
2167 "name" : "port_num",
2168 "bitwidth" : 9
2169 },
2170 {
2171 "name" : "smac",
2172 "bitwidth" : 48
2173 },
2174 {
2175 "name" : "dmac",
2176 "bitwidth" : 48
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002177 },
2178 {
2179 "name" : "label",
2180 "bitwidth" : 20
Yi Tsengbe342052017-11-03 10:21:23 -07002181 }
2182 ],
2183 "primitives" : [
2184 {
2185 "op" : "assign",
2186 "parameters" : [
2187 {
2188 "type" : "field",
2189 "value" : ["ethernet", "src_addr"]
2190 },
2191 {
2192 "type" : "runtime_data",
2193 "value" : 1
2194 }
2195 ],
2196 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002197 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002198 "line" : 37,
Yi Tsengbe342052017-11-03 10:21:23 -07002199 "column" : 8,
2200 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2201 }
2202 },
2203 {
2204 "op" : "assign",
2205 "parameters" : [
2206 {
2207 "type" : "field",
2208 "value" : ["ethernet", "dst_addr"]
2209 },
2210 {
2211 "type" : "runtime_data",
2212 "value" : 2
2213 }
2214 ],
2215 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002216 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002217 "line" : 41,
Yi Tsengbe342052017-11-03 10:21:23 -07002218 "column" : 8,
2219 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2220 }
2221 },
2222 {
2223 "op" : "assign",
2224 "parameters" : [
2225 {
2226 "type" : "field",
2227 "value" : ["standard_metadata", "egress_spec"]
2228 },
2229 {
2230 "type" : "runtime_data",
2231 "value" : 0
2232 }
2233 ],
2234 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002235 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002236 "line" : 149,
Yi Tsengbe342052017-11-03 10:21:23 -07002237 "column" : 8,
2238 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2239 }
Yi Tsengbe342052017-11-03 10:21:23 -07002240 },
2241 {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002242 "op" : "add_header",
Yi Tsengbe342052017-11-03 10:21:23 -07002243 "parameters" : [
2244 {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002245 "type" : "header",
2246 "value" : "mpls"
Yi Tsengbe342052017-11-03 10:21:23 -07002247 }
2248 ],
2249 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002250 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002251 "line" : 46,
Yi Tsengbe342052017-11-03 10:21:23 -07002252 "column" : 8,
Yi Tseng1b154bd2017-11-20 17:48:19 -08002253 "source_fragment" : "hdr.mpls.setValid()"
2254 }
2255 },
2256 {
2257 "op" : "assign",
2258 "parameters" : [
2259 {
2260 "type" : "field",
Yi Tsengbd46d052018-01-22 17:18:16 -08002261 "value" : ["vlan_tag", "ether_type"]
Yi Tseng1b154bd2017-11-20 17:48:19 -08002262 },
2263 {
2264 "type" : "hexstr",
2265 "value" : "0x8847"
2266 }
2267 ],
2268 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002269 "filename" : "include/control/../define.p4",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09002270 "line" : 75,
Yi Tseng1b154bd2017-11-20 17:48:19 -08002271 "column" : 31,
2272 "source_fragment" : "0x8847; ..."
2273 }
2274 },
2275 {
2276 "op" : "assign",
2277 "parameters" : [
2278 {
2279 "type" : "field",
2280 "value" : ["mpls", "label"]
2281 },
2282 {
2283 "type" : "runtime_data",
2284 "value" : 3
2285 }
2286 ],
2287 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002288 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002289 "line" : 48,
Yi Tseng1b154bd2017-11-20 17:48:19 -08002290 "column" : 8,
2291 "source_fragment" : "hdr.mpls.label = label; ..."
2292 }
2293 },
2294 {
2295 "op" : "assign",
2296 "parameters" : [
2297 {
2298 "type" : "field",
2299 "value" : ["mpls", "tc"]
2300 },
2301 {
Yi Tseng1d842672017-11-28 16:06:52 -08002302 "type" : "hexstr",
2303 "value" : "0x00"
Yi Tseng1b154bd2017-11-20 17:48:19 -08002304 }
2305 ],
2306 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002307 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002308 "line" : 49,
Yi Tseng1b154bd2017-11-20 17:48:19 -08002309 "column" : 8,
2310 "source_fragment" : "hdr.mpls.tc = tc; ..."
2311 }
2312 },
2313 {
2314 "op" : "assign",
2315 "parameters" : [
2316 {
2317 "type" : "field",
2318 "value" : ["mpls", "bos"]
2319 },
2320 {
2321 "type" : "hexstr",
2322 "value" : "0x01"
2323 }
2324 ],
2325 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002326 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002327 "line" : 50,
Yi Tseng1b154bd2017-11-20 17:48:19 -08002328 "column" : 8,
Yi Tseng1d842672017-11-28 16:06:52 -08002329 "source_fragment" : "hdr.mpls.bos = 1w1"
Yi Tseng1b154bd2017-11-20 17:48:19 -08002330 }
2331 },
2332 {
2333 "op" : "assign",
2334 "parameters" : [
2335 {
2336 "type" : "field",
2337 "value" : ["mpls", "ttl"]
2338 },
2339 {
2340 "type" : "hexstr",
2341 "value" : "0x40"
2342 }
2343 ],
2344 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002345 "filename" : "include/control/../define.p4",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09002346 "line" : 95,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002347 "column" : 32,
2348 "source_fragment" : "64; ..."
2349 }
2350 }
2351 ]
2352 },
2353 {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002354 "name" : "FabricIngress.next.mpls_routing_v6_hashed",
Carmelo Casconef645e842018-07-16 18:31:52 +02002355 "id" : 29,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002356 "runtime_data" : [
2357 {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002358 "name" : "port_num",
2359 "bitwidth" : 9
2360 },
2361 {
2362 "name" : "smac",
2363 "bitwidth" : 48
2364 },
2365 {
2366 "name" : "dmac",
2367 "bitwidth" : 48
2368 },
2369 {
2370 "name" : "label",
2371 "bitwidth" : 20
2372 }
2373 ],
2374 "primitives" : [
2375 {
2376 "op" : "assign",
2377 "parameters" : [
2378 {
2379 "type" : "field",
2380 "value" : ["ethernet", "src_addr"]
2381 },
2382 {
2383 "type" : "runtime_data",
2384 "value" : 1
2385 }
2386 ],
2387 "source_info" : {
2388 "filename" : "include/control/next.p4",
2389 "line" : 37,
2390 "column" : 8,
2391 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2392 }
2393 },
2394 {
2395 "op" : "assign",
2396 "parameters" : [
2397 {
2398 "type" : "field",
2399 "value" : ["ethernet", "dst_addr"]
2400 },
2401 {
2402 "type" : "runtime_data",
2403 "value" : 2
2404 }
2405 ],
2406 "source_info" : {
2407 "filename" : "include/control/next.p4",
2408 "line" : 41,
2409 "column" : 8,
2410 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2411 }
2412 },
2413 {
2414 "op" : "assign",
2415 "parameters" : [
2416 {
2417 "type" : "field",
2418 "value" : ["standard_metadata", "egress_spec"]
2419 },
2420 {
2421 "type" : "runtime_data",
2422 "value" : 0
2423 }
2424 ],
2425 "source_info" : {
2426 "filename" : "include/control/next.p4",
2427 "line" : 149,
2428 "column" : 8,
2429 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2430 }
2431 },
2432 {
2433 "op" : "add_header",
2434 "parameters" : [
2435 {
2436 "type" : "header",
2437 "value" : "mpls"
2438 }
2439 ],
2440 "source_info" : {
2441 "filename" : "include/control/next.p4",
2442 "line" : 46,
2443 "column" : 8,
2444 "source_fragment" : "hdr.mpls.setValid()"
2445 }
2446 },
2447 {
2448 "op" : "assign",
2449 "parameters" : [
2450 {
2451 "type" : "field",
2452 "value" : ["vlan_tag", "ether_type"]
2453 },
2454 {
2455 "type" : "hexstr",
2456 "value" : "0x8847"
2457 }
2458 ],
2459 "source_info" : {
2460 "filename" : "include/control/../define.p4",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09002461 "line" : 75,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002462 "column" : 31,
2463 "source_fragment" : "0x8847; ..."
2464 }
2465 },
2466 {
2467 "op" : "assign",
2468 "parameters" : [
2469 {
2470 "type" : "field",
2471 "value" : ["mpls", "label"]
2472 },
2473 {
2474 "type" : "runtime_data",
2475 "value" : 3
2476 }
2477 ],
2478 "source_info" : {
2479 "filename" : "include/control/next.p4",
2480 "line" : 48,
2481 "column" : 8,
2482 "source_fragment" : "hdr.mpls.label = label; ..."
2483 }
2484 },
2485 {
2486 "op" : "assign",
2487 "parameters" : [
2488 {
2489 "type" : "field",
2490 "value" : ["mpls", "tc"]
2491 },
2492 {
2493 "type" : "hexstr",
2494 "value" : "0x00"
2495 }
2496 ],
2497 "source_info" : {
2498 "filename" : "include/control/next.p4",
2499 "line" : 49,
2500 "column" : 8,
2501 "source_fragment" : "hdr.mpls.tc = tc; ..."
2502 }
2503 },
2504 {
2505 "op" : "assign",
2506 "parameters" : [
2507 {
2508 "type" : "field",
2509 "value" : ["mpls", "bos"]
2510 },
2511 {
2512 "type" : "hexstr",
2513 "value" : "0x01"
2514 }
2515 ],
2516 "source_info" : {
2517 "filename" : "include/control/next.p4",
2518 "line" : 50,
2519 "column" : 8,
2520 "source_fragment" : "hdr.mpls.bos = 1w1"
2521 }
2522 },
2523 {
2524 "op" : "assign",
2525 "parameters" : [
2526 {
2527 "type" : "field",
2528 "value" : ["mpls", "ttl"]
2529 },
2530 {
2531 "type" : "hexstr",
2532 "value" : "0x40"
2533 }
2534 ],
2535 "source_info" : {
2536 "filename" : "include/control/../define.p4",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09002537 "line" : 95,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002538 "column" : 32,
2539 "source_fragment" : "64; ..."
2540 }
2541 }
2542 ]
2543 },
2544 {
2545 "name" : "FabricIngress.next.set_mcast_group",
2546 "id" : 30,
2547 "runtime_data" : [
2548 {
Esin Karaman971fb7f2017-12-28 13:44:52 +00002549 "name" : "gid",
2550 "bitwidth" : 16
2551 }
2552 ],
2553 "primitives" : [
2554 {
2555 "op" : "assign",
2556 "parameters" : [
2557 {
2558 "type" : "field",
2559 "value" : ["standard_metadata", "mcast_grp"]
2560 },
2561 {
2562 "type" : "runtime_data",
2563 "value" : 0
2564 }
2565 ],
2566 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002567 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002568 "line" : 202,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002569 "column" : 8,
2570 "source_fragment" : "standard_metadata.mcast_grp = gid"
2571 }
Carmelo Casconea5400af2018-07-17 22:11:54 +02002572 },
2573 {
2574 "op" : "assign",
2575 "parameters" : [
2576 {
2577 "type" : "field",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002578 "value" : ["scalars", "fabric_metadata_t.is_multicast"]
Carmelo Casconea5400af2018-07-17 22:11:54 +02002579 },
2580 {
2581 "type" : "expression",
2582 "value" : {
2583 "type" : "expression",
2584 "value" : {
2585 "op" : "b2d",
2586 "left" : null,
2587 "right" : {
2588 "type" : "bool",
2589 "value" : true
2590 }
2591 }
2592 }
2593 }
2594 ],
2595 "source_info" : {
2596 "filename" : "include/control/next.p4",
2597 "line" : 203,
2598 "column" : 8,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002599 "source_fragment" : "fabric_metadata.is_multicast = true"
Carmelo Casconea5400af2018-07-17 22:11:54 +02002600 }
Esin Karaman971fb7f2017-12-28 13:44:52 +00002601 }
2602 ]
2603 },
2604 {
2605 "name" : "act",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002606 "id" : 31,
Yi Tsengbe342052017-11-03 10:21:23 -07002607 "runtime_data" : [],
2608 "primitives" : [
2609 {
2610 "op" : "assign",
2611 "parameters" : [
2612 {
2613 "type" : "field",
2614 "value" : ["standard_metadata", "egress_spec"]
2615 },
2616 {
2617 "type" : "field",
2618 "value" : ["packet_out", "egress_port"]
2619 }
2620 ],
2621 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002622 "filename" : "include/control/packetio.p4",
Yi Tsengbe342052017-11-03 10:21:23 -07002623 "line" : 26,
2624 "column" : 12,
2625 "source_fragment" : "standard_metadata.egress_spec = hdr.packet_out.egress_port"
2626 }
Yi Tseng1d842672017-11-28 16:06:52 -08002627 },
2628 {
2629 "op" : "remove_header",
2630 "parameters" : [
2631 {
2632 "type" : "header",
2633 "value" : "packet_out"
2634 }
2635 ],
2636 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002637 "filename" : "include/control/packetio.p4",
Yi Tseng1d842672017-11-28 16:06:52 -08002638 "line" : 27,
2639 "column" : 12,
2640 "source_fragment" : "hdr.packet_out.setInvalid()"
2641 }
Yi Tsengbe342052017-11-03 10:21:23 -07002642 }
2643 ]
2644 },
2645 {
2646 "name" : "act_0",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002647 "id" : 32,
Yi Tsengbe342052017-11-03 10:21:23 -07002648 "runtime_data" : [],
2649 "primitives" : [
2650 {
2651 "op" : "assign",
2652 "parameters" : [
2653 {
2654 "type" : "field",
Yi Tsengbd46d052018-01-22 17:18:16 -08002655 "value" : ["vlan_tag", "ether_type"]
Yi Tseng1d842672017-11-28 16:06:52 -08002656 },
2657 {
2658 "type" : "hexstr",
2659 "value" : "0x0800"
2660 }
2661 ],
2662 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002663 "filename" : "include/control/../define.p4",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09002664 "line" : 77,
Yi Tseng1d842672017-11-28 16:06:52 -08002665 "column" : 31,
2666 "source_fragment" : "0x0800; ..."
2667 }
Yi Tseng1d842672017-11-28 16:06:52 -08002668 }
2669 ]
2670 },
2671 {
2672 "name" : "act_1",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002673 "id" : 33,
Yi Tseng1d842672017-11-28 16:06:52 -08002674 "runtime_data" : [],
2675 "primitives" : [
2676 {
2677 "op" : "assign",
2678 "parameters" : [
2679 {
2680 "type" : "field",
Carmelo Casconea5400af2018-07-17 22:11:54 +02002681 "value" : ["scalars", "next_hasReturned_0"]
Yi Tseng1d842672017-11-28 16:06:52 -08002682 },
2683 {
2684 "type" : "expression",
2685 "value" : {
2686 "type" : "expression",
2687 "value" : {
2688 "op" : "b2d",
2689 "left" : null,
2690 "right" : {
2691 "type" : "bool",
2692 "value" : false
2693 }
2694 }
2695 }
2696 }
2697 ]
2698 }
2699 ]
2700 },
2701 {
Carmelo Casconea5400af2018-07-17 22:11:54 +02002702 "name" : "act_2",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002703 "id" : 34,
Carmelo Casconea5400af2018-07-17 22:11:54 +02002704 "runtime_data" : [],
2705 "primitives" : [
2706 {
2707 "op" : "assign",
2708 "parameters" : [
2709 {
2710 "type" : "field",
2711 "value" : ["scalars", "next_tmp_4"]
2712 },
2713 {
2714 "type" : "expression",
2715 "value" : {
2716 "type" : "expression",
2717 "value" : {
2718 "op" : "b2d",
2719 "left" : null,
2720 "right" : {
2721 "type" : "bool",
2722 "value" : true
2723 }
2724 }
2725 }
2726 }
2727 ]
2728 }
2729 ]
2730 },
2731 {
Yi Tsengbd46d052018-01-22 17:18:16 -08002732 "name" : "act_3",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002733 "id" : 35,
Yi Tseng1d842672017-11-28 16:06:52 -08002734 "runtime_data" : [],
2735 "primitives" : [
2736 {
2737 "op" : "assign",
2738 "parameters" : [
2739 {
2740 "type" : "field",
Carmelo Casconea5400af2018-07-17 22:11:54 +02002741 "value" : ["scalars", "next_tmp_4"]
2742 },
2743 {
2744 "type" : "expression",
2745 "value" : {
2746 "type" : "expression",
2747 "value" : {
2748 "op" : "b2d",
2749 "left" : null,
2750 "right" : {
2751 "type" : "bool",
2752 "value" : false
2753 }
2754 }
2755 }
2756 }
2757 ]
2758 }
2759 ]
2760 },
2761 {
2762 "name" : "act_4",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002763 "id" : 36,
Carmelo Casconea5400af2018-07-17 22:11:54 +02002764 "runtime_data" : [],
2765 "primitives" : [
2766 {
2767 "op" : "assign",
2768 "parameters" : [
2769 {
2770 "type" : "field",
2771 "value" : ["scalars", "next_tmp_3"]
2772 },
2773 {
2774 "type" : "expression",
2775 "value" : {
2776 "type" : "expression",
2777 "value" : {
2778 "op" : "b2d",
2779 "left" : null,
2780 "right" : {
2781 "type" : "bool",
2782 "value" : true
2783 }
2784 }
2785 }
2786 }
2787 ]
2788 }
2789 ]
2790 },
2791 {
2792 "name" : "act_5",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002793 "id" : 37,
Carmelo Casconea5400af2018-07-17 22:11:54 +02002794 "runtime_data" : [],
2795 "primitives" : [
2796 {
2797 "op" : "assign",
2798 "parameters" : [
2799 {
2800 "type" : "field",
2801 "value" : ["scalars", "next_tmp_3"]
2802 },
2803 {
2804 "type" : "expression",
2805 "value" : {
2806 "type" : "expression",
2807 "value" : {
2808 "op" : "b2d",
2809 "left" : null,
2810 "right" : {
2811 "type" : "bool",
2812 "value" : false
2813 }
2814 }
2815 }
2816 }
2817 ]
2818 }
2819 ]
2820 },
2821 {
2822 "name" : "act_6",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002823 "id" : 38,
Carmelo Casconea5400af2018-07-17 22:11:54 +02002824 "runtime_data" : [],
2825 "primitives" : [
2826 {
2827 "op" : "assign",
2828 "parameters" : [
2829 {
2830 "type" : "field",
2831 "value" : ["scalars", "next_tmp_2"]
2832 },
2833 {
2834 "type" : "expression",
2835 "value" : {
2836 "type" : "expression",
2837 "value" : {
2838 "op" : "b2d",
2839 "left" : null,
2840 "right" : {
2841 "type" : "bool",
2842 "value" : true
2843 }
2844 }
2845 }
2846 }
2847 ]
2848 }
2849 ]
2850 },
2851 {
2852 "name" : "act_7",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002853 "id" : 39,
Carmelo Casconea5400af2018-07-17 22:11:54 +02002854 "runtime_data" : [],
2855 "primitives" : [
2856 {
2857 "op" : "assign",
2858 "parameters" : [
2859 {
2860 "type" : "field",
2861 "value" : ["scalars", "next_tmp_2"]
2862 },
2863 {
2864 "type" : "expression",
2865 "value" : {
2866 "type" : "expression",
2867 "value" : {
2868 "op" : "b2d",
2869 "left" : null,
2870 "right" : {
2871 "type" : "bool",
2872 "value" : false
2873 }
2874 }
2875 }
2876 }
2877 ]
2878 }
2879 ]
2880 },
2881 {
2882 "name" : "act_8",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002883 "id" : 40,
Carmelo Casconea5400af2018-07-17 22:11:54 +02002884 "runtime_data" : [],
2885 "primitives" : [
2886 {
2887 "op" : "assign",
2888 "parameters" : [
2889 {
2890 "type" : "field",
2891 "value" : ["scalars", "next_hasReturned_0"]
2892 },
2893 {
2894 "type" : "expression",
2895 "value" : {
2896 "type" : "expression",
2897 "value" : {
2898 "op" : "b2d",
2899 "left" : null,
2900 "right" : {
2901 "type" : "bool",
2902 "value" : true
2903 }
2904 }
2905 }
2906 }
2907 ],
2908 "source_info" : {
2909 "filename" : "include/control/next.p4",
2910 "line" : 223,
2911 "column" : 20,
2912 "source_fragment" : "return"
2913 }
2914 }
2915 ]
2916 },
2917 {
2918 "name" : "act_9",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002919 "id" : 41,
Carmelo Casconea5400af2018-07-17 22:11:54 +02002920 "runtime_data" : [],
2921 "primitives" : [
2922 {
2923 "op" : "assign",
2924 "parameters" : [
2925 {
2926 "type" : "field",
Yi Tseng1d842672017-11-28 16:06:52 -08002927 "value" : ["ipv4", "ttl"]
2928 },
2929 {
2930 "type" : "expression",
2931 "value" : {
2932 "type" : "expression",
2933 "value" : {
2934 "op" : "&",
2935 "left" : {
2936 "type" : "expression",
2937 "value" : {
2938 "op" : "+",
2939 "left" : {
2940 "type" : "field",
2941 "value" : ["ipv4", "ttl"]
2942 },
2943 "right" : {
2944 "type" : "hexstr",
2945 "value" : "0xff"
2946 }
2947 }
2948 },
2949 "right" : {
2950 "type" : "hexstr",
2951 "value" : "0xff"
2952 }
2953 }
2954 }
2955 }
2956 ],
2957 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002958 "filename" : "include/control/next.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02002959 "line" : 230,
2960 "column" : 16,
Yi Tseng1d842672017-11-28 16:06:52 -08002961 "source_fragment" : "hdr.ipv4.ttl = hdr.ipv4.ttl - 1"
2962 }
2963 }
2964 ]
2965 },
2966 {
Carmelo Casconea5400af2018-07-17 22:11:54 +02002967 "name" : "act_10",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002968 "id" : 42,
Yi Tseng1d842672017-11-28 16:06:52 -08002969 "runtime_data" : [],
2970 "primitives" : [
2971 {
2972 "op" : "assign",
2973 "parameters" : [
2974 {
2975 "type" : "field",
Yi Tsengc6844f52017-12-19 11:58:25 -08002976 "value" : ["scalars", "tmp_0"]
Yi Tsengbe342052017-11-03 10:21:23 -07002977 },
2978 {
2979 "type" : "expression",
2980 "value" : {
2981 "type" : "expression",
2982 "value" : {
2983 "op" : "&",
2984 "left" : {
2985 "type" : "field",
2986 "value" : ["standard_metadata", "egress_spec"]
2987 },
2988 "right" : {
2989 "type" : "hexstr",
2990 "value" : "0xffffffff"
2991 }
2992 }
2993 }
2994 }
Carmelo Cascone6af4e172018-06-15 16:01:30 +02002995 ],
2996 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002997 "filename" : "include/control/port_counter.p4",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02002998 "line" : 28,
2999 "column" : 38,
3000 "source_fragment" : "(bit<32>)standard_metadata.egress_spec"
3001 }
Yi Tsengbe342052017-11-03 10:21:23 -07003002 },
3003 {
3004 "op" : "count",
3005 "parameters" : [
3006 {
3007 "type" : "counter_array",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003008 "value" : "FabricIngress.port_counters_control.egress_port_counter"
Yi Tsengbe342052017-11-03 10:21:23 -07003009 },
3010 {
3011 "type" : "field",
Yi Tsengc6844f52017-12-19 11:58:25 -08003012 "value" : ["scalars", "tmp_0"]
Yi Tsengbe342052017-11-03 10:21:23 -07003013 }
3014 ],
3015 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003016 "filename" : "include/control/port_counter.p4",
Yi Tsengbe342052017-11-03 10:21:23 -07003017 "line" : 28,
3018 "column" : 12,
3019 "source_fragment" : "egress_port_counter.count((bit<32>)standard_metadata.egress_spec)"
3020 }
3021 }
3022 ]
3023 },
3024 {
Carmelo Casconea5400af2018-07-17 22:11:54 +02003025 "name" : "act_11",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003026 "id" : 43,
Yi Tsengbe342052017-11-03 10:21:23 -07003027 "runtime_data" : [],
3028 "primitives" : [
3029 {
3030 "op" : "assign",
3031 "parameters" : [
3032 {
3033 "type" : "field",
Yi Tsengc6844f52017-12-19 11:58:25 -08003034 "value" : ["scalars", "tmp_1"]
Yi Tsengbe342052017-11-03 10:21:23 -07003035 },
3036 {
3037 "type" : "expression",
3038 "value" : {
3039 "type" : "expression",
3040 "value" : {
3041 "op" : "&",
3042 "left" : {
3043 "type" : "field",
3044 "value" : ["standard_metadata", "ingress_port"]
3045 },
3046 "right" : {
3047 "type" : "hexstr",
3048 "value" : "0xffffffff"
3049 }
3050 }
3051 }
3052 }
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003053 ],
3054 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003055 "filename" : "include/control/port_counter.p4",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003056 "line" : 31,
3057 "column" : 39,
3058 "source_fragment" : "(bit<32>)standard_metadata.ingress_port"
3059 }
Yi Tsengbe342052017-11-03 10:21:23 -07003060 },
3061 {
3062 "op" : "count",
3063 "parameters" : [
3064 {
3065 "type" : "counter_array",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003066 "value" : "FabricIngress.port_counters_control.ingress_port_counter"
Yi Tsengbe342052017-11-03 10:21:23 -07003067 },
3068 {
3069 "type" : "field",
Yi Tsengc6844f52017-12-19 11:58:25 -08003070 "value" : ["scalars", "tmp_1"]
Yi Tsengbe342052017-11-03 10:21:23 -07003071 }
3072 ],
3073 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003074 "filename" : "include/control/port_counter.p4",
Yi Tsengbe342052017-11-03 10:21:23 -07003075 "line" : 31,
3076 "column" : 12,
3077 "source_fragment" : "ingress_port_counter.count((bit<32>)standard_metadata.ingress_port)"
3078 }
3079 }
3080 ]
3081 },
3082 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003083 "name" : "nop",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003084 "id" : 44,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003085 "runtime_data" : [],
3086 "primitives" : []
3087 },
3088 {
Carmelo Casconea5400af2018-07-17 22:11:54 +02003089 "name" : "drop_now",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003090 "id" : 45,
3091 "runtime_data" : [],
3092 "primitives" : [
3093 {
3094 "op" : "drop",
3095 "parameters" : [],
3096 "source_info" : {
3097 "filename" : "include/control/../action.p4",
3098 "line" : 24,
3099 "column" : 4,
3100 "source_fragment" : "mark_to_drop()"
3101 }
3102 },
3103 {
3104 "op" : "exit",
3105 "parameters" : [],
3106 "source_info" : {
3107 "filename" : "include/control/../action.p4",
3108 "line" : 25,
3109 "column" : 4,
3110 "source_fragment" : "exit"
3111 }
3112 }
3113 ]
3114 },
3115 {
3116 "name" : "drop_now",
3117 "id" : 46,
Carmelo Casconea5400af2018-07-17 22:11:54 +02003118 "runtime_data" : [],
3119 "primitives" : [
3120 {
3121 "op" : "drop",
3122 "parameters" : [],
3123 "source_info" : {
3124 "filename" : "include/control/../action.p4",
3125 "line" : 24,
3126 "column" : 4,
3127 "source_fragment" : "mark_to_drop()"
3128 }
3129 },
3130 {
3131 "op" : "exit",
3132 "parameters" : [],
3133 "source_info" : {
3134 "filename" : "include/control/../action.p4",
3135 "line" : 25,
3136 "column" : 4,
3137 "source_fragment" : "exit"
3138 }
3139 }
3140 ]
3141 },
3142 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003143 "name" : "FabricEgress.pkt_io_egress.pop_vlan",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003144 "id" : 47,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003145 "runtime_data" : [],
3146 "primitives" : [
3147 {
3148 "op" : "assign",
3149 "parameters" : [
3150 {
3151 "type" : "field",
3152 "value" : ["ethernet", "ether_type"]
3153 },
3154 {
3155 "type" : "field",
3156 "value" : ["vlan_tag", "ether_type"]
3157 }
3158 ],
3159 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003160 "filename" : "include/control/packetio.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003161 "line" : 38,
3162 "column" : 8,
3163 "source_fragment" : "hdr.ethernet.ether_type = hdr.vlan_tag.ether_type"
3164 }
3165 },
3166 {
3167 "op" : "remove_header",
3168 "parameters" : [
3169 {
3170 "type" : "header",
3171 "value" : "vlan_tag"
3172 }
3173 ],
3174 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003175 "filename" : "include/control/packetio.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003176 "line" : 39,
3177 "column" : 8,
3178 "source_fragment" : "hdr.vlan_tag.setInvalid()"
3179 }
3180 }
3181 ]
3182 },
3183 {
3184 "name" : "FabricEgress.egress_next.pop_vlan",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003185 "id" : 48,
Yi Tseng1d842672017-11-28 16:06:52 -08003186 "runtime_data" : [],
3187 "primitives" : [
3188 {
3189 "op" : "assign",
3190 "parameters" : [
3191 {
3192 "type" : "field",
3193 "value" : ["ethernet", "ether_type"]
3194 },
3195 {
3196 "type" : "field",
Yi Tsengbd46d052018-01-22 17:18:16 -08003197 "value" : ["vlan_tag", "ether_type"]
Yi Tseng1d842672017-11-28 16:06:52 -08003198 }
3199 ],
3200 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003201 "filename" : "include/control/next.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02003202 "line" : 253,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003203 "column" : 8,
Yi Tsengbd46d052018-01-22 17:18:16 -08003204 "source_fragment" : "hdr.ethernet.ether_type = hdr.vlan_tag.ether_type"
Yi Tseng1d842672017-11-28 16:06:52 -08003205 }
Yi Tsengbd46d052018-01-22 17:18:16 -08003206 },
Yi Tsengbe342052017-11-03 10:21:23 -07003207 {
3208 "op" : "remove_header",
3209 "parameters" : [
3210 {
3211 "type" : "header",
3212 "value" : "vlan_tag"
3213 }
3214 ],
3215 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003216 "filename" : "include/control/next.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02003217 "line" : 254,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003218 "column" : 8,
Yi Tsengbe342052017-11-03 10:21:23 -07003219 "source_fragment" : "hdr.vlan_tag.setInvalid()"
3220 }
3221 }
3222 ]
3223 },
3224 {
Carmelo Casconea5400af2018-07-17 22:11:54 +02003225 "name" : "act_12",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003226 "id" : 49,
Yi Tsengbe342052017-11-03 10:21:23 -07003227 "runtime_data" : [],
3228 "primitives" : [
3229 {
3230 "op" : "add_header",
3231 "parameters" : [
3232 {
3233 "type" : "header",
3234 "value" : "packet_in"
3235 }
3236 ],
3237 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003238 "filename" : "include/control/packetio.p4",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003239 "line" : 51,
Yi Tsengbe342052017-11-03 10:21:23 -07003240 "column" : 12,
3241 "source_fragment" : "hdr.packet_in.setValid()"
3242 }
3243 },
3244 {
3245 "op" : "assign",
3246 "parameters" : [
3247 {
3248 "type" : "field",
3249 "value" : ["packet_in", "ingress_port"]
3250 },
3251 {
3252 "type" : "field",
3253 "value" : ["standard_metadata", "ingress_port"]
3254 }
3255 ],
3256 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003257 "filename" : "include/control/packetio.p4",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003258 "line" : 52,
Yi Tsengbe342052017-11-03 10:21:23 -07003259 "column" : 12,
3260 "source_fragment" : "hdr.packet_in.ingress_port = standard_metadata.ingress_port"
3261 }
3262 }
3263 ]
Yi Tsengbe342052017-11-03 10:21:23 -07003264 }
3265 ],
3266 "pipelines" : [
3267 {
3268 "name" : "ingress",
3269 "id" : 0,
3270 "source_info" : {
3271 "filename" : "fabric.p4",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09003272 "line" : 40,
Yi Tsengbe342052017-11-03 10:21:23 -07003273 "column" : 8,
3274 "source_fragment" : "FabricIngress"
3275 },
3276 "init_table" : "node_2",
3277 "tables" : [
3278 {
3279 "name" : "tbl_act",
3280 "id" : 0,
3281 "key" : [],
3282 "match_type" : "exact",
3283 "type" : "simple",
3284 "max_size" : 1024,
3285 "with_counters" : false,
3286 "support_timeout" : false,
3287 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003288 "action_ids" : [31],
Yi Tsengbe342052017-11-03 10:21:23 -07003289 "actions" : ["act"],
3290 "base_default_next" : null,
3291 "next_tables" : {
3292 "act" : null
3293 },
3294 "default_entry" : {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003295 "action_id" : 31,
Yi Tsengbe342052017-11-03 10:21:23 -07003296 "action_const" : true,
3297 "action_data" : [],
3298 "action_entry_const" : true
3299 }
3300 },
3301 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003302 "name" : "FabricIngress.filtering.ingress_port_vlan",
Yi Tsengbe342052017-11-03 10:21:23 -07003303 "id" : 1,
3304 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003305 "filename" : "include/control/filtering.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08003306 "line" : 61,
Yi Tsengbe342052017-11-03 10:21:23 -07003307 "column" : 10,
3308 "source_fragment" : "ingress_port_vlan"
3309 },
3310 "key" : [
3311 {
3312 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003313 "name" : "standard_metadata.ingress_port",
Yi Tsengbe342052017-11-03 10:21:23 -07003314 "target" : ["standard_metadata", "ingress_port"],
3315 "mask" : null
3316 },
3317 {
3318 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003319 "name" : "hdr.vlan_tag.is_valid",
Yi Tsengbe342052017-11-03 10:21:23 -07003320 "target" : ["vlan_tag", "$valid$"],
3321 "mask" : null
3322 },
3323 {
3324 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003325 "name" : "hdr.vlan_tag.vlan_id",
Yi Tsengbe342052017-11-03 10:21:23 -07003326 "target" : ["vlan_tag", "vlan_id"],
3327 "mask" : null
3328 }
3329 ],
3330 "match_type" : "ternary",
3331 "type" : "simple",
3332 "max_size" : 1024,
Yi Tsengbd46d052018-01-22 17:18:16 -08003333 "with_counters" : true,
Yi Tsengbe342052017-11-03 10:21:23 -07003334 "support_timeout" : false,
3335 "direct_meters" : null,
Carmelo Casconef645e842018-07-16 18:31:52 +02003336 "action_ids" : [11, 10, 0, 9],
Yi Tseng27b9bc02018-04-12 14:52:40 +08003337 "actions" : ["FabricIngress.filtering.push_internal_vlan", "FabricIngress.filtering.set_vlan", "nop", "FabricIngress.filtering.drop"],
3338 "base_default_next" : "FabricIngress.filtering.fwd_classifier",
Yi Tsengbe342052017-11-03 10:21:23 -07003339 "next_tables" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003340 "FabricIngress.filtering.push_internal_vlan" : "FabricIngress.filtering.fwd_classifier",
3341 "FabricIngress.filtering.set_vlan" : "FabricIngress.filtering.fwd_classifier",
3342 "nop" : "FabricIngress.filtering.fwd_classifier",
3343 "FabricIngress.filtering.drop" : "FabricIngress.filtering.fwd_classifier"
Yi Tsengbe342052017-11-03 10:21:23 -07003344 },
3345 "default_entry" : {
Yi Tseng3a5731e2018-01-22 11:38:58 -08003346 "action_id" : 0,
Yi Tsengbe342052017-11-03 10:21:23 -07003347 "action_const" : true,
3348 "action_data" : [],
3349 "action_entry_const" : true
3350 }
3351 },
3352 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003353 "name" : "FabricIngress.filtering.fwd_classifier",
Yi Tsengbe342052017-11-03 10:21:23 -07003354 "id" : 2,
3355 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003356 "filename" : "include/control/filtering.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08003357 "line" : 98,
Yi Tsengbe342052017-11-03 10:21:23 -07003358 "column" : 10,
3359 "source_fragment" : "fwd_classifier"
3360 },
3361 "key" : [
3362 {
3363 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003364 "name" : "standard_metadata.ingress_port",
Yi Tsengbe342052017-11-03 10:21:23 -07003365 "target" : ["standard_metadata", "ingress_port"],
3366 "mask" : null
3367 },
3368 {
3369 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003370 "name" : "hdr.ethernet.dst_addr",
Yi Tsengbe342052017-11-03 10:21:23 -07003371 "target" : ["ethernet", "dst_addr"],
3372 "mask" : null
3373 },
3374 {
3375 "match_type" : "exact",
Yi Tseng8235a1a2018-07-24 20:57:28 +08003376 "name" : "hdr.vlan_tag.ether_type",
3377 "target" : ["vlan_tag", "ether_type"],
Yi Tsengbe342052017-11-03 10:21:23 -07003378 "mask" : null
3379 }
3380 ],
3381 "match_type" : "exact",
3382 "type" : "simple",
3383 "max_size" : 1024,
Yi Tsengbd46d052018-01-22 17:18:16 -08003384 "with_counters" : true,
Yi Tsengbe342052017-11-03 10:21:23 -07003385 "support_timeout" : false,
3386 "direct_meters" : null,
Carmelo Casconef645e842018-07-16 18:31:52 +02003387 "action_ids" : [12],
Yi Tseng27b9bc02018-04-12 14:52:40 +08003388 "actions" : ["FabricIngress.filtering.set_forwarding_type"],
Yi Tsengbe342052017-11-03 10:21:23 -07003389 "base_default_next" : "node_6",
3390 "next_tables" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003391 "FabricIngress.filtering.set_forwarding_type" : "node_6"
Yi Tsengbe342052017-11-03 10:21:23 -07003392 },
3393 "default_entry" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003394 "action_id" : 12,
Yi Tsengbe342052017-11-03 10:21:23 -07003395 "action_const" : true,
3396 "action_data" : ["0x0"],
3397 "action_entry_const" : true
3398 }
3399 },
3400 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003401 "name" : "FabricIngress.forwarding.bridging",
Yi Tsengbe342052017-11-03 10:21:23 -07003402 "id" : 3,
3403 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003404 "filename" : "include/control/forwarding.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08003405 "line" : 41,
Yi Tsengbe342052017-11-03 10:21:23 -07003406 "column" : 10,
3407 "source_fragment" : "bridging"
3408 },
3409 "key" : [
3410 {
3411 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003412 "name" : "hdr.vlan_tag.vlan_id",
Yi Tsengbe342052017-11-03 10:21:23 -07003413 "target" : ["vlan_tag", "vlan_id"],
3414 "mask" : null
3415 },
3416 {
3417 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003418 "name" : "hdr.ethernet.dst_addr",
Yi Tsengbe342052017-11-03 10:21:23 -07003419 "target" : ["ethernet", "dst_addr"],
3420 "mask" : null
3421 }
3422 ],
3423 "match_type" : "ternary",
3424 "type" : "simple",
3425 "max_size" : 1024,
Yi Tsengbd46d052018-01-22 17:18:16 -08003426 "with_counters" : true,
Yi Tsengbe342052017-11-03 10:21:23 -07003427 "support_timeout" : false,
3428 "direct_meters" : null,
Carmelo Casconef645e842018-07-16 18:31:52 +02003429 "action_ids" : [13, 3],
Yi Tseng47eac892018-07-11 02:17:04 +08003430 "actions" : ["FabricIngress.forwarding.set_next_id_bridging", "NoAction"],
Yi Tseng27b9bc02018-04-12 14:52:40 +08003431 "base_default_next" : "FabricIngress.forwarding.acl",
Yi Tseng1d842672017-11-28 16:06:52 -08003432 "next_tables" : {
Yi Tseng47eac892018-07-11 02:17:04 +08003433 "FabricIngress.forwarding.set_next_id_bridging" : "FabricIngress.forwarding.acl",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003434 "NoAction" : "FabricIngress.forwarding.acl"
Yi Tseng1d842672017-11-28 16:06:52 -08003435 },
3436 "default_entry" : {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003437 "action_id" : 3,
Yi Tseng1d842672017-11-28 16:06:52 -08003438 "action_const" : false,
3439 "action_data" : [],
3440 "action_entry_const" : false
3441 }
3442 },
3443 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003444 "name" : "FabricIngress.forwarding.mpls",
Yi Tseng1d842672017-11-28 16:06:52 -08003445 "id" : 4,
3446 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003447 "filename" : "include/control/forwarding.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08003448 "line" : 65,
Yi Tseng1d842672017-11-28 16:06:52 -08003449 "column" : 10,
3450 "source_fragment" : "mpls"
3451 },
3452 "key" : [
3453 {
3454 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003455 "name" : "hdr.mpls.label",
Yi Tseng1d842672017-11-28 16:06:52 -08003456 "target" : ["mpls", "label"],
3457 "mask" : null
3458 }
3459 ],
3460 "match_type" : "exact",
3461 "type" : "simple",
3462 "max_size" : 1024,
Yi Tsengbd46d052018-01-22 17:18:16 -08003463 "with_counters" : true,
Yi Tseng1d842672017-11-28 16:06:52 -08003464 "support_timeout" : false,
3465 "direct_meters" : null,
Carmelo Casconef645e842018-07-16 18:31:52 +02003466 "action_ids" : [14, 4],
Yi Tseng27b9bc02018-04-12 14:52:40 +08003467 "actions" : ["FabricIngress.forwarding.pop_mpls_and_next", "NoAction"],
Yi Tsengbd46d052018-01-22 17:18:16 -08003468 "base_default_next" : "tbl_act_0",
Yi Tseng1d842672017-11-28 16:06:52 -08003469 "next_tables" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003470 "FabricIngress.forwarding.pop_mpls_and_next" : "tbl_act_0",
Yi Tsengbd46d052018-01-22 17:18:16 -08003471 "NoAction" : "tbl_act_0"
Yi Tseng1d842672017-11-28 16:06:52 -08003472 },
3473 "default_entry" : {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003474 "action_id" : 4,
Yi Tseng1d842672017-11-28 16:06:52 -08003475 "action_const" : false,
3476 "action_data" : [],
3477 "action_entry_const" : false
3478 }
3479 },
3480 {
3481 "name" : "tbl_act_0",
3482 "id" : 5,
3483 "key" : [],
3484 "match_type" : "exact",
3485 "type" : "simple",
3486 "max_size" : 1024,
3487 "with_counters" : false,
3488 "support_timeout" : false,
3489 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003490 "action_ids" : [32],
Yi Tseng1d842672017-11-28 16:06:52 -08003491 "actions" : ["act_0"],
Yi Tseng27b9bc02018-04-12 14:52:40 +08003492 "base_default_next" : "FabricIngress.forwarding.acl",
Yi Tseng1d842672017-11-28 16:06:52 -08003493 "next_tables" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003494 "act_0" : "FabricIngress.forwarding.acl"
Yi Tseng1d842672017-11-28 16:06:52 -08003495 },
3496 "default_entry" : {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003497 "action_id" : 32,
Yi Tseng1d842672017-11-28 16:06:52 -08003498 "action_const" : true,
3499 "action_data" : [],
3500 "action_entry_const" : true
3501 }
3502 },
3503 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003504 "name" : "FabricIngress.forwarding.unicast_v4",
Yi Tsengbd46d052018-01-22 17:18:16 -08003505 "id" : 6,
Yi Tseng1d842672017-11-28 16:06:52 -08003506 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003507 "filename" : "include/control/forwarding.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08003508 "line" : 87,
Yi Tseng1d842672017-11-28 16:06:52 -08003509 "column" : 10,
3510 "source_fragment" : "unicast_v4"
3511 },
3512 "key" : [
3513 {
3514 "match_type" : "lpm",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003515 "name" : "hdr.ipv4.dst_addr",
Yi Tseng1d842672017-11-28 16:06:52 -08003516 "target" : ["ipv4", "dst_addr"],
3517 "mask" : null
3518 }
3519 ],
3520 "match_type" : "lpm",
3521 "type" : "simple",
3522 "max_size" : 1024,
Yi Tsengbd46d052018-01-22 17:18:16 -08003523 "with_counters" : true,
Yi Tseng1d842672017-11-28 16:06:52 -08003524 "support_timeout" : false,
3525 "direct_meters" : null,
Carmelo Casconef645e842018-07-16 18:31:52 +02003526 "action_ids" : [15, 5],
Yi Tseng47eac892018-07-11 02:17:04 +08003527 "actions" : ["FabricIngress.forwarding.set_next_id_unicast_v4", "NoAction"],
Yi Tseng27b9bc02018-04-12 14:52:40 +08003528 "base_default_next" : "FabricIngress.forwarding.acl",
Yi Tsengbe342052017-11-03 10:21:23 -07003529 "next_tables" : {
Yi Tseng47eac892018-07-11 02:17:04 +08003530 "FabricIngress.forwarding.set_next_id_unicast_v4" : "FabricIngress.forwarding.acl",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003531 "NoAction" : "FabricIngress.forwarding.acl"
Yi Tsengbe342052017-11-03 10:21:23 -07003532 },
3533 "default_entry" : {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003534 "action_id" : 5,
Yi Tsengbe342052017-11-03 10:21:23 -07003535 "action_const" : false,
3536 "action_data" : [],
3537 "action_entry_const" : false
3538 }
3539 },
3540 {
Carmelo Casconef645e842018-07-16 18:31:52 +02003541 "name" : "FabricIngress.forwarding.acl",
Yi Tsengbd46d052018-01-22 17:18:16 -08003542 "id" : 7,
Yi Tsengbe342052017-11-03 10:21:23 -07003543 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003544 "filename" : "include/control/forwarding.p4",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003545 "line" : 127,
Yi Tsengbe342052017-11-03 10:21:23 -07003546 "column" : 10,
Yi Tsengbe342052017-11-03 10:21:23 -07003547 "source_fragment" : "acl"
3548 },
3549 "key" : [
3550 {
3551 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003552 "name" : "standard_metadata.ingress_port",
Yi Tsengbe342052017-11-03 10:21:23 -07003553 "target" : ["standard_metadata", "ingress_port"],
3554 "mask" : null
3555 },
3556 {
3557 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003558 "name" : "fabric_metadata.ip_proto",
Yi Tsengbe342052017-11-03 10:21:23 -07003559 "target" : ["scalars", "fabric_metadata_t.ip_proto"],
3560 "mask" : null
3561 },
3562 {
3563 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003564 "name" : "fabric_metadata.l4_src_port",
Yi Tseng1d842672017-11-28 16:06:52 -08003565 "target" : ["scalars", "fabric_metadata_t.l4_src_port"],
3566 "mask" : null
3567 },
3568 {
3569 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003570 "name" : "fabric_metadata.l4_dst_port",
Yi Tseng1d842672017-11-28 16:06:52 -08003571 "target" : ["scalars", "fabric_metadata_t.l4_dst_port"],
3572 "mask" : null
3573 },
3574 {
3575 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003576 "name" : "hdr.ethernet.dst_addr",
Yi Tsengbe342052017-11-03 10:21:23 -07003577 "target" : ["ethernet", "dst_addr"],
3578 "mask" : null
3579 },
3580 {
3581 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003582 "name" : "hdr.ethernet.src_addr",
Yi Tsengbe342052017-11-03 10:21:23 -07003583 "target" : ["ethernet", "src_addr"],
3584 "mask" : null
3585 },
3586 {
3587 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003588 "name" : "hdr.vlan_tag.vlan_id",
Yi Tsengbe342052017-11-03 10:21:23 -07003589 "target" : ["vlan_tag", "vlan_id"],
3590 "mask" : null
3591 },
3592 {
3593 "match_type" : "ternary",
Yi Tseng8235a1a2018-07-24 20:57:28 +08003594 "name" : "hdr.vlan_tag.ether_type",
3595 "target" : ["vlan_tag", "ether_type"],
3596 "mask" : null
3597 },
3598 {
3599 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003600 "name" : "hdr.ipv4.src_addr",
Yi Tsengbe342052017-11-03 10:21:23 -07003601 "target" : ["ipv4", "src_addr"],
3602 "mask" : null
3603 },
3604 {
3605 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003606 "name" : "hdr.ipv4.dst_addr",
Yi Tsengbe342052017-11-03 10:21:23 -07003607 "target" : ["ipv4", "dst_addr"],
3608 "mask" : null
3609 },
3610 {
3611 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003612 "name" : "hdr.icmp.icmp_type",
Yi Tsengbe342052017-11-03 10:21:23 -07003613 "target" : ["icmp", "icmp_type"],
3614 "mask" : null
3615 },
3616 {
3617 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003618 "name" : "hdr.icmp.icmp_code",
Yi Tsengbe342052017-11-03 10:21:23 -07003619 "target" : ["icmp", "icmp_code"],
3620 "mask" : null
3621 }
3622 ],
3623 "match_type" : "ternary",
3624 "type" : "simple",
Yi Tseng8235a1a2018-07-24 20:57:28 +08003625 "max_size" : 128,
Yi Tsengbd46d052018-01-22 17:18:16 -08003626 "with_counters" : true,
Yi Tsengbe342052017-11-03 10:21:23 -07003627 "support_timeout" : false,
3628 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003629 "action_ids" : [16, 17, 18, 19, 1],
3630 "actions" : ["FabricIngress.forwarding.set_next_id_acl", "FabricIngress.forwarding.punt_to_cpu", "FabricIngress.forwarding.clone_to_cpu", "FabricIngress.forwarding.drop", "nop"],
Carmelo Casconea5400af2018-07-17 22:11:54 +02003631 "base_default_next" : "tbl_act_1",
Yi Tsengbe342052017-11-03 10:21:23 -07003632 "next_tables" : {
Carmelo Casconea5400af2018-07-17 22:11:54 +02003633 "FabricIngress.forwarding.set_next_id_acl" : "tbl_act_1",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003634 "FabricIngress.forwarding.punt_to_cpu" : "tbl_act_1",
3635 "FabricIngress.forwarding.clone_to_cpu" : "tbl_act_1",
Carmelo Casconea5400af2018-07-17 22:11:54 +02003636 "FabricIngress.forwarding.drop" : "tbl_act_1",
3637 "nop" : "tbl_act_1"
Yi Tsengbe342052017-11-03 10:21:23 -07003638 },
3639 "default_entry" : {
3640 "action_id" : 1,
3641 "action_const" : true,
3642 "action_data" : [],
3643 "action_entry_const" : true
3644 }
3645 },
3646 {
Carmelo Casconea5400af2018-07-17 22:11:54 +02003647 "name" : "tbl_act_1",
Carmelo Casconef645e842018-07-16 18:31:52 +02003648 "id" : 8,
Carmelo Casconea5400af2018-07-17 22:11:54 +02003649 "key" : [],
3650 "match_type" : "exact",
3651 "type" : "simple",
3652 "max_size" : 1024,
3653 "with_counters" : false,
3654 "support_timeout" : false,
3655 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003656 "action_ids" : [33],
Carmelo Casconea5400af2018-07-17 22:11:54 +02003657 "actions" : ["act_1"],
3658 "base_default_next" : "FabricIngress.next.vlan_meta",
3659 "next_tables" : {
3660 "act_1" : "FabricIngress.next.vlan_meta"
3661 },
3662 "default_entry" : {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003663 "action_id" : 33,
Carmelo Casconea5400af2018-07-17 22:11:54 +02003664 "action_const" : true,
3665 "action_data" : [],
3666 "action_entry_const" : true
3667 }
3668 },
3669 {
3670 "name" : "FabricIngress.next.vlan_meta",
3671 "id" : 9,
Yi Tsengbe342052017-11-03 10:21:23 -07003672 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003673 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08003674 "line" : 65,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003675 "column" : 10,
3676 "source_fragment" : "vlan_meta"
3677 },
3678 "key" : [
3679 {
3680 "match_type" : "exact",
3681 "name" : "fabric_metadata.next_id",
3682 "target" : ["scalars", "fabric_metadata_t.next_id"],
3683 "mask" : null
3684 }
3685 ],
3686 "match_type" : "exact",
3687 "type" : "simple",
3688 "max_size" : 1024,
3689 "with_counters" : true,
3690 "support_timeout" : false,
3691 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003692 "action_ids" : [20, 2],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003693 "actions" : ["FabricIngress.next.set_vlan", "nop"],
3694 "base_default_next" : "FabricIngress.next.simple",
3695 "next_tables" : {
3696 "FabricIngress.next.set_vlan" : "FabricIngress.next.simple",
3697 "nop" : "FabricIngress.next.simple"
3698 },
3699 "default_entry" : {
3700 "action_id" : 2,
3701 "action_const" : false,
3702 "action_data" : [],
3703 "action_entry_const" : false
3704 }
3705 },
3706 {
3707 "name" : "FabricIngress.next.simple",
Carmelo Casconea5400af2018-07-17 22:11:54 +02003708 "id" : 10,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003709 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003710 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08003711 "line" : 122,
Yi Tsengbe342052017-11-03 10:21:23 -07003712 "column" : 10,
3713 "source_fragment" : "simple"
3714 },
3715 "key" : [
3716 {
3717 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003718 "name" : "fabric_metadata.next_id",
Yi Tsengbe342052017-11-03 10:21:23 -07003719 "target" : ["scalars", "fabric_metadata_t.next_id"],
3720 "mask" : null
3721 }
3722 ],
3723 "match_type" : "exact",
3724 "type" : "simple",
3725 "max_size" : 1024,
Yi Tsengbd46d052018-01-22 17:18:16 -08003726 "with_counters" : true,
Yi Tsengbe342052017-11-03 10:21:23 -07003727 "support_timeout" : false,
3728 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003729 "action_ids" : [21, 22, 23, 24, 25, 26, 6],
Yi Tseng47eac892018-07-11 02:17:04 +08003730 "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 -08003731 "base_default_next" : null,
Yi Tsengbe342052017-11-03 10:21:23 -07003732 "next_tables" : {
Carmelo Casconea5400af2018-07-17 22:11:54 +02003733 "__HIT__" : "tbl_act_2",
3734 "__MISS__" : "tbl_act_3"
Yi Tsengbe342052017-11-03 10:21:23 -07003735 },
3736 "default_entry" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003737 "action_id" : 6,
Yi Tsengbe342052017-11-03 10:21:23 -07003738 "action_const" : false,
3739 "action_data" : [],
3740 "action_entry_const" : false
3741 }
3742 },
3743 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003744 "name" : "tbl_act_2",
Carmelo Casconef645e842018-07-16 18:31:52 +02003745 "id" : 11,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003746 "key" : [],
3747 "match_type" : "exact",
3748 "type" : "simple",
3749 "max_size" : 1024,
3750 "with_counters" : false,
3751 "support_timeout" : false,
3752 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003753 "action_ids" : [34],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003754 "actions" : ["act_2"],
Carmelo Casconea5400af2018-07-17 22:11:54 +02003755 "base_default_next" : "node_19",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003756 "next_tables" : {
Carmelo Casconea5400af2018-07-17 22:11:54 +02003757 "act_2" : "node_19"
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003758 },
3759 "default_entry" : {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003760 "action_id" : 34,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003761 "action_const" : true,
3762 "action_data" : [],
3763 "action_entry_const" : true
3764 }
3765 },
3766 {
3767 "name" : "tbl_act_3",
Carmelo Casconef645e842018-07-16 18:31:52 +02003768 "id" : 12,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003769 "key" : [],
3770 "match_type" : "exact",
3771 "type" : "simple",
3772 "max_size" : 1024,
3773 "with_counters" : false,
3774 "support_timeout" : false,
3775 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003776 "action_ids" : [35],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003777 "actions" : ["act_3"],
Carmelo Casconea5400af2018-07-17 22:11:54 +02003778 "base_default_next" : "node_19",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003779 "next_tables" : {
Carmelo Casconea5400af2018-07-17 22:11:54 +02003780 "act_3" : "node_19"
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003781 },
3782 "default_entry" : {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003783 "action_id" : 35,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003784 "action_const" : true,
3785 "action_data" : [],
3786 "action_entry_const" : true
3787 }
3788 },
3789 {
3790 "name" : "FabricIngress.next.hashed",
Carmelo Casconef645e842018-07-16 18:31:52 +02003791 "id" : 13,
Yi Tseng27b9bc02018-04-12 14:52:40 +08003792 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003793 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08003794 "line" : 175,
Yi Tseng27b9bc02018-04-12 14:52:40 +08003795 "column" : 10,
3796 "source_fragment" : "hashed"
3797 },
3798 "key" : [
3799 {
3800 "match_type" : "exact",
3801 "name" : "fabric_metadata.next_id",
3802 "target" : ["scalars", "fabric_metadata_t.next_id"],
3803 "mask" : null
3804 }
3805 ],
3806 "match_type" : "exact",
3807 "type" : "indirect_ws",
3808 "action_profile" : "FabricIngress.next.ecmp_selector",
3809 "max_size" : 1024,
3810 "with_counters" : true,
3811 "support_timeout" : false,
3812 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003813 "action_ids" : [27, 28, 29, 7],
Yi Tseng47eac892018-07-11 02:17:04 +08003814 "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 +02003815 "base_default_next" : null,
Yi Tseng27b9bc02018-04-12 14:52:40 +08003816 "next_tables" : {
Carmelo Casconea5400af2018-07-17 22:11:54 +02003817 "__HIT__" : "tbl_act_4",
3818 "__MISS__" : "tbl_act_5"
3819 }
3820 },
3821 {
3822 "name" : "tbl_act_4",
3823 "id" : 14,
3824 "key" : [],
3825 "match_type" : "exact",
3826 "type" : "simple",
3827 "max_size" : 1024,
3828 "with_counters" : false,
3829 "support_timeout" : false,
3830 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003831 "action_ids" : [36],
Carmelo Casconea5400af2018-07-17 22:11:54 +02003832 "actions" : ["act_4"],
3833 "base_default_next" : "node_23",
3834 "next_tables" : {
3835 "act_4" : "node_23"
3836 },
3837 "default_entry" : {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003838 "action_id" : 36,
Carmelo Casconea5400af2018-07-17 22:11:54 +02003839 "action_const" : true,
3840 "action_data" : [],
3841 "action_entry_const" : true
3842 }
3843 },
3844 {
3845 "name" : "tbl_act_5",
3846 "id" : 15,
3847 "key" : [],
3848 "match_type" : "exact",
3849 "type" : "simple",
3850 "max_size" : 1024,
3851 "with_counters" : false,
3852 "support_timeout" : false,
3853 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003854 "action_ids" : [37],
Carmelo Casconea5400af2018-07-17 22:11:54 +02003855 "actions" : ["act_5"],
3856 "base_default_next" : "node_23",
3857 "next_tables" : {
3858 "act_5" : "node_23"
3859 },
3860 "default_entry" : {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003861 "action_id" : 37,
Carmelo Casconea5400af2018-07-17 22:11:54 +02003862 "action_const" : true,
3863 "action_data" : [],
3864 "action_entry_const" : true
Esin Karaman971fb7f2017-12-28 13:44:52 +00003865 }
3866 },
3867 {
3868 "name" : "FabricIngress.next.multicast",
Carmelo Casconea5400af2018-07-17 22:11:54 +02003869 "id" : 16,
Esin Karaman971fb7f2017-12-28 13:44:52 +00003870 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003871 "filename" : "include/control/next.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02003872 "line" : 207,
Esin Karaman971fb7f2017-12-28 13:44:52 +00003873 "column" : 10,
3874 "source_fragment" : "multicast"
3875 },
3876 "key" : [
3877 {
3878 "match_type" : "exact",
3879 "name" : "fabric_metadata.next_id",
3880 "target" : ["scalars", "fabric_metadata_t.next_id"],
3881 "mask" : null
3882 }
3883 ],
3884 "match_type" : "exact",
3885 "type" : "simple",
3886 "max_size" : 1024,
3887 "with_counters" : true,
3888 "support_timeout" : false,
3889 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003890 "action_ids" : [30, 8],
Esin Karaman971fb7f2017-12-28 13:44:52 +00003891 "actions" : ["FabricIngress.next.set_mcast_group", "NoAction"],
Carmelo Casconea5400af2018-07-17 22:11:54 +02003892 "base_default_next" : null,
Esin Karaman971fb7f2017-12-28 13:44:52 +00003893 "next_tables" : {
Carmelo Casconea5400af2018-07-17 22:11:54 +02003894 "__HIT__" : "tbl_act_6",
3895 "__MISS__" : "tbl_act_7"
Esin Karaman971fb7f2017-12-28 13:44:52 +00003896 },
3897 "default_entry" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003898 "action_id" : 8,
Esin Karaman971fb7f2017-12-28 13:44:52 +00003899 "action_const" : false,
3900 "action_data" : [],
3901 "action_entry_const" : false
Yi Tseng27b9bc02018-04-12 14:52:40 +08003902 }
3903 },
3904 {
Carmelo Casconea5400af2018-07-17 22:11:54 +02003905 "name" : "tbl_act_6",
3906 "id" : 17,
Yi Tseng27b9bc02018-04-12 14:52:40 +08003907 "key" : [],
3908 "match_type" : "exact",
3909 "type" : "simple",
3910 "max_size" : 1024,
3911 "with_counters" : false,
3912 "support_timeout" : false,
3913 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003914 "action_ids" : [38],
Carmelo Casconea5400af2018-07-17 22:11:54 +02003915 "actions" : ["act_6"],
3916 "base_default_next" : "node_27",
Esin Karaman971fb7f2017-12-28 13:44:52 +00003917 "next_tables" : {
Carmelo Casconea5400af2018-07-17 22:11:54 +02003918 "act_6" : "node_27"
Esin Karaman971fb7f2017-12-28 13:44:52 +00003919 },
3920 "default_entry" : {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003921 "action_id" : 38,
Esin Karaman971fb7f2017-12-28 13:44:52 +00003922 "action_const" : true,
3923 "action_data" : [],
3924 "action_entry_const" : true
3925 }
3926 },
3927 {
Carmelo Casconea5400af2018-07-17 22:11:54 +02003928 "name" : "tbl_act_7",
3929 "id" : 18,
Esin Karaman971fb7f2017-12-28 13:44:52 +00003930 "key" : [],
3931 "match_type" : "exact",
3932 "type" : "simple",
3933 "max_size" : 1024,
3934 "with_counters" : false,
3935 "support_timeout" : false,
3936 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003937 "action_ids" : [39],
Carmelo Casconea5400af2018-07-17 22:11:54 +02003938 "actions" : ["act_7"],
3939 "base_default_next" : "node_27",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003940 "next_tables" : {
Carmelo Casconea5400af2018-07-17 22:11:54 +02003941 "act_7" : "node_27"
Yi Tseng27b9bc02018-04-12 14:52:40 +08003942 },
3943 "default_entry" : {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003944 "action_id" : 39,
Carmelo Casconea5400af2018-07-17 22:11:54 +02003945 "action_const" : true,
3946 "action_data" : [],
3947 "action_entry_const" : true
3948 }
3949 },
3950 {
3951 "name" : "tbl_act_8",
3952 "id" : 19,
3953 "key" : [],
3954 "match_type" : "exact",
3955 "type" : "simple",
3956 "max_size" : 1024,
3957 "with_counters" : false,
3958 "support_timeout" : false,
3959 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003960 "action_ids" : [40],
Carmelo Casconea5400af2018-07-17 22:11:54 +02003961 "actions" : ["act_8"],
3962 "base_default_next" : "node_29",
3963 "next_tables" : {
3964 "act_8" : "node_29"
3965 },
3966 "default_entry" : {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003967 "action_id" : 40,
Carmelo Casconea5400af2018-07-17 22:11:54 +02003968 "action_const" : true,
3969 "action_data" : [],
3970 "action_entry_const" : true
3971 }
3972 },
3973 {
3974 "name" : "tbl_act_9",
3975 "id" : 20,
3976 "key" : [],
3977 "match_type" : "exact",
3978 "type" : "simple",
3979 "max_size" : 1024,
3980 "with_counters" : false,
3981 "support_timeout" : false,
3982 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003983 "action_ids" : [41],
Carmelo Casconea5400af2018-07-17 22:11:54 +02003984 "actions" : ["act_9"],
3985 "base_default_next" : "node_33",
3986 "next_tables" : {
3987 "act_9" : "node_33"
3988 },
3989 "default_entry" : {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003990 "action_id" : 41,
Carmelo Casconea5400af2018-07-17 22:11:54 +02003991 "action_const" : true,
3992 "action_data" : [],
3993 "action_entry_const" : true
3994 }
3995 },
3996 {
3997 "name" : "tbl_act_10",
3998 "id" : 21,
3999 "key" : [],
4000 "match_type" : "exact",
4001 "type" : "simple",
4002 "max_size" : 1024,
4003 "with_counters" : false,
4004 "support_timeout" : false,
4005 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02004006 "action_ids" : [42],
Carmelo Casconea5400af2018-07-17 22:11:54 +02004007 "actions" : ["act_10"],
4008 "base_default_next" : "node_35",
4009 "next_tables" : {
4010 "act_10" : "node_35"
4011 },
4012 "default_entry" : {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02004013 "action_id" : 42,
Carmelo Casconea5400af2018-07-17 22:11:54 +02004014 "action_const" : true,
4015 "action_data" : [],
4016 "action_entry_const" : true
4017 }
4018 },
4019 {
4020 "name" : "tbl_act_11",
4021 "id" : 22,
4022 "key" : [],
4023 "match_type" : "exact",
4024 "type" : "simple",
4025 "max_size" : 1024,
4026 "with_counters" : false,
4027 "support_timeout" : false,
4028 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02004029 "action_ids" : [43],
Carmelo Casconea5400af2018-07-17 22:11:54 +02004030 "actions" : ["act_11"],
4031 "base_default_next" : null,
4032 "next_tables" : {
4033 "act_11" : null
4034 },
4035 "default_entry" : {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02004036 "action_id" : 43,
Yi Tseng3a5731e2018-01-22 11:38:58 -08004037 "action_const" : true,
4038 "action_data" : [],
4039 "action_entry_const" : true
4040 }
Yi Tsengbe342052017-11-03 10:21:23 -07004041 }
4042 ],
4043 "action_profiles" : [
4044 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004045 "name" : "FabricIngress.next.ecmp_selector",
Yi Tsengbe342052017-11-03 10:21:23 -07004046 "id" : 0,
4047 "max_size" : 64,
4048 "selector" : {
4049 "algo" : "crc16",
4050 "input" : [
4051 {
4052 "type" : "field",
Yi Tseng3d3956d2018-01-31 17:28:05 -08004053 "value" : ["ipv4", "dst_addr"]
Yi Tsengbe342052017-11-03 10:21:23 -07004054 },
4055 {
4056 "type" : "field",
Yi Tseng3d3956d2018-01-31 17:28:05 -08004057 "value" : ["ipv4", "src_addr"]
Yi Tsengbe342052017-11-03 10:21:23 -07004058 },
4059 {
4060 "type" : "field",
Yi Tseng1d842672017-11-28 16:06:52 -08004061 "value" : ["scalars", "fabric_metadata_t.ip_proto"]
Yi Tsengbe342052017-11-03 10:21:23 -07004062 },
4063 {
4064 "type" : "field",
4065 "value" : ["scalars", "fabric_metadata_t.l4_src_port"]
4066 },
4067 {
4068 "type" : "field",
4069 "value" : ["scalars", "fabric_metadata_t.l4_dst_port"]
4070 }
4071 ]
4072 }
4073 }
4074 ],
4075 "conditionals" : [
4076 {
4077 "name" : "node_2",
4078 "id" : 0,
4079 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004080 "filename" : "include/control/packetio.p4",
Yi Tsengbe342052017-11-03 10:21:23 -07004081 "line" : 25,
4082 "column" : 12,
4083 "source_fragment" : "hdr.packet_out.isValid()"
4084 },
4085 "expression" : {
4086 "type" : "expression",
4087 "value" : {
Yi Tsengbd46d052018-01-22 17:18:16 -08004088 "op" : "d2b",
4089 "left" : null,
4090 "right" : {
Yi Tsengbe342052017-11-03 10:21:23 -07004091 "type" : "field",
4092 "value" : ["packet_out", "$valid$"]
Yi Tsengbe342052017-11-03 10:21:23 -07004093 }
4094 }
4095 },
4096 "true_next" : "tbl_act",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004097 "false_next" : "FabricIngress.filtering.ingress_port_vlan"
Yi Tsengbe342052017-11-03 10:21:23 -07004098 },
4099 {
4100 "name" : "node_6",
4101 "id" : 1,
4102 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004103 "filename" : "include/control/forwarding.p4",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02004104 "line" : 231,
Yi Tsengbe342052017-11-03 10:21:23 -07004105 "column" : 11,
4106 "source_fragment" : "fabric_metadata.fwd_type == FWD_BRIDGING"
4107 },
4108 "expression" : {
4109 "type" : "expression",
4110 "value" : {
4111 "op" : "==",
4112 "left" : {
4113 "type" : "field",
4114 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
4115 },
4116 "right" : {
4117 "type" : "hexstr",
4118 "value" : "0x00"
4119 }
4120 }
4121 },
Yi Tseng27b9bc02018-04-12 14:52:40 +08004122 "true_next" : "FabricIngress.forwarding.bridging",
Yi Tsengbe342052017-11-03 10:21:23 -07004123 "false_next" : "node_8"
4124 },
4125 {
4126 "name" : "node_8",
4127 "id" : 2,
4128 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004129 "filename" : "include/control/forwarding.p4",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02004130 "line" : 232,
Yi Tsengbe342052017-11-03 10:21:23 -07004131 "column" : 17,
4132 "source_fragment" : "fabric_metadata.fwd_type == FWD_MPLS"
4133 },
4134 "expression" : {
4135 "type" : "expression",
4136 "value" : {
4137 "op" : "==",
4138 "left" : {
4139 "type" : "field",
4140 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
4141 },
4142 "right" : {
4143 "type" : "hexstr",
4144 "value" : "0x01"
4145 }
4146 }
4147 },
Yi Tseng27b9bc02018-04-12 14:52:40 +08004148 "true_next" : "FabricIngress.forwarding.mpls",
Yi Tsengbd46d052018-01-22 17:18:16 -08004149 "false_next" : "node_11"
Yi Tsengbe342052017-11-03 10:21:23 -07004150 },
4151 {
Yi Tsengbd46d052018-01-22 17:18:16 -08004152 "name" : "node_11",
Yi Tsengbe342052017-11-03 10:21:23 -07004153 "id" : 3,
4154 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004155 "filename" : "include/control/forwarding.p4",
Yi Tseng8235a1a2018-07-24 20:57:28 +08004156 "line" : 246,
Yi Tsengbe342052017-11-03 10:21:23 -07004157 "column" : 17,
4158 "source_fragment" : "fabric_metadata.fwd_type == FWD_IPV4_UNICAST"
4159 },
4160 "expression" : {
4161 "type" : "expression",
4162 "value" : {
4163 "op" : "==",
4164 "left" : {
4165 "type" : "field",
4166 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
4167 },
4168 "right" : {
4169 "type" : "hexstr",
4170 "value" : "0x02"
4171 }
4172 }
4173 },
Yi Tseng27b9bc02018-04-12 14:52:40 +08004174 "true_next" : "FabricIngress.forwarding.unicast_v4",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004175 "false_next" : "FabricIngress.forwarding.acl"
4176 },
4177 {
Carmelo Casconef645e842018-07-16 18:31:52 +02004178 "name" : "node_19",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004179 "id" : 4,
Yi Tseng1d842672017-11-28 16:06:52 -08004180 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004181 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08004182 "line" : 219,
Carmelo Casconea5400af2018-07-17 22:11:54 +02004183 "column" : 12,
4184 "source_fragment" : "!simple.apply().hit"
4185 },
4186 "expression" : {
4187 "type" : "expression",
4188 "value" : {
4189 "op" : "not",
4190 "left" : null,
4191 "right" : {
4192 "type" : "expression",
4193 "value" : {
4194 "op" : "d2b",
4195 "left" : null,
4196 "right" : {
4197 "type" : "field",
4198 "value" : ["scalars", "next_tmp_4"]
4199 }
4200 }
4201 }
4202 }
4203 },
4204 "true_next" : "FabricIngress.next.hashed",
4205 "false_next" : "node_29"
4206 },
4207 {
4208 "name" : "node_23",
4209 "id" : 5,
4210 "source_info" : {
4211 "filename" : "include/control/next.p4",
4212 "line" : 220,
Yi Tsengbd46d052018-01-22 17:18:16 -08004213 "column" : 16,
Carmelo Casconea5400af2018-07-17 22:11:54 +02004214 "source_fragment" : "!hashed.apply().hit"
4215 },
4216 "expression" : {
4217 "type" : "expression",
4218 "value" : {
4219 "op" : "not",
4220 "left" : null,
4221 "right" : {
4222 "type" : "expression",
4223 "value" : {
4224 "op" : "d2b",
4225 "left" : null,
4226 "right" : {
4227 "type" : "field",
4228 "value" : ["scalars", "next_tmp_3"]
4229 }
4230 }
4231 }
4232 }
4233 },
4234 "true_next" : "FabricIngress.next.multicast",
4235 "false_next" : "node_29"
4236 },
4237 {
4238 "name" : "node_27",
4239 "id" : 6,
4240 "source_info" : {
4241 "filename" : "include/control/next.p4",
4242 "line" : 221,
4243 "column" : 20,
4244 "source_fragment" : "!multicast.apply().hit"
4245 },
4246 "expression" : {
4247 "type" : "expression",
4248 "value" : {
4249 "op" : "not",
4250 "left" : null,
4251 "right" : {
4252 "type" : "expression",
4253 "value" : {
4254 "op" : "d2b",
4255 "left" : null,
4256 "right" : {
4257 "type" : "field",
4258 "value" : ["scalars", "next_tmp_2"]
4259 }
4260 }
4261 }
4262 }
4263 },
4264 "true_next" : "tbl_act_8",
4265 "false_next" : "node_29"
4266 },
4267 {
4268 "name" : "node_29",
4269 "id" : 7,
4270 "expression" : {
4271 "type" : "expression",
4272 "value" : {
4273 "op" : "not",
4274 "left" : null,
4275 "right" : {
4276 "type" : "expression",
4277 "value" : {
4278 "op" : "d2b",
4279 "left" : null,
4280 "right" : {
4281 "type" : "field",
4282 "value" : ["scalars", "next_hasReturned_0"]
4283 }
4284 }
4285 }
4286 }
4287 },
4288 "true_next" : "node_30",
4289 "false_next" : "node_33"
4290 },
4291 {
4292 "name" : "node_30",
4293 "id" : 8,
4294 "source_info" : {
4295 "filename" : "include/control/next.p4",
4296 "line" : 228,
4297 "column" : 12,
Yi Tsengbd46d052018-01-22 17:18:16 -08004298 "source_fragment" : "!hdr.mpls.isValid()"
Yi Tseng1d842672017-11-28 16:06:52 -08004299 },
4300 "expression" : {
4301 "type" : "expression",
4302 "value" : {
Yi Tsengbd46d052018-01-22 17:18:16 -08004303 "op" : "not",
4304 "left" : null,
Yi Tseng1d842672017-11-28 16:06:52 -08004305 "right" : {
Yi Tsengbd46d052018-01-22 17:18:16 -08004306 "type" : "expression",
4307 "value" : {
4308 "op" : "d2b",
4309 "left" : null,
4310 "right" : {
4311 "type" : "field",
4312 "value" : ["mpls", "$valid$"]
4313 }
4314 }
Yi Tseng1d842672017-11-28 16:06:52 -08004315 }
4316 }
4317 },
Carmelo Casconea5400af2018-07-17 22:11:54 +02004318 "true_next" : "node_31",
4319 "false_next" : "node_33"
Yi Tseng1d842672017-11-28 16:06:52 -08004320 },
4321 {
Carmelo Casconea5400af2018-07-17 22:11:54 +02004322 "name" : "node_31",
4323 "id" : 9,
Yi Tseng1d842672017-11-28 16:06:52 -08004324 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004325 "filename" : "include/control/next.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004326 "line" : 229,
4327 "column" : 15,
Yi Tseng1d842672017-11-28 16:06:52 -08004328 "source_fragment" : "hdr.ipv4.isValid()"
4329 },
4330 "expression" : {
4331 "type" : "expression",
4332 "value" : {
Yi Tsengbd46d052018-01-22 17:18:16 -08004333 "op" : "d2b",
4334 "left" : null,
4335 "right" : {
Yi Tseng1d842672017-11-28 16:06:52 -08004336 "type" : "field",
4337 "value" : ["ipv4", "$valid$"]
Yi Tseng1d842672017-11-28 16:06:52 -08004338 }
4339 }
4340 },
Carmelo Casconea5400af2018-07-17 22:11:54 +02004341 "true_next" : "tbl_act_9",
4342 "false_next" : "node_33"
Yi Tseng27b9bc02018-04-12 14:52:40 +08004343 },
4344 {
Carmelo Casconea5400af2018-07-17 22:11:54 +02004345 "name" : "node_33",
4346 "id" : 10,
Yi Tseng27b9bc02018-04-12 14:52:40 +08004347 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004348 "filename" : "include/control/port_counter.p4",
Yi Tsengbe342052017-11-03 10:21:23 -07004349 "line" : 27,
4350 "column" : 12,
4351 "source_fragment" : "standard_metadata.egress_spec < 511"
4352 },
4353 "expression" : {
4354 "type" : "expression",
4355 "value" : {
4356 "op" : "<",
4357 "left" : {
4358 "type" : "field",
4359 "value" : ["standard_metadata", "egress_spec"]
4360 },
4361 "right" : {
4362 "type" : "hexstr",
4363 "value" : "0x01ff"
4364 }
4365 }
4366 },
Carmelo Casconea5400af2018-07-17 22:11:54 +02004367 "true_next" : "tbl_act_10",
4368 "false_next" : "node_35"
Yi Tsengbe342052017-11-03 10:21:23 -07004369 },
4370 {
Carmelo Casconea5400af2018-07-17 22:11:54 +02004371 "name" : "node_35",
4372 "id" : 11,
Yi Tsengbe342052017-11-03 10:21:23 -07004373 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004374 "filename" : "include/control/port_counter.p4",
Yi Tsengbe342052017-11-03 10:21:23 -07004375 "line" : 30,
4376 "column" : 12,
4377 "source_fragment" : "standard_metadata.ingress_port < 511"
4378 },
4379 "expression" : {
4380 "type" : "expression",
4381 "value" : {
4382 "op" : "<",
4383 "left" : {
4384 "type" : "field",
4385 "value" : ["standard_metadata", "ingress_port"]
4386 },
4387 "right" : {
4388 "type" : "hexstr",
4389 "value" : "0x01ff"
4390 }
4391 }
4392 },
Yi Tseng3a5731e2018-01-22 11:38:58 -08004393 "false_next" : null,
Carmelo Casconea5400af2018-07-17 22:11:54 +02004394 "true_next" : "tbl_act_11"
Yi Tseng3a5731e2018-01-22 11:38:58 -08004395 }
4396 ]
4397 },
4398 {
4399 "name" : "egress",
4400 "id" : 1,
4401 "source_info" : {
4402 "filename" : "fabric.p4",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09004403 "line" : 76,
Yi Tseng3a5731e2018-01-22 11:38:58 -08004404 "column" : 8,
4405 "source_fragment" : "FabricEgress"
4406 },
Carmelo Casconea5400af2018-07-17 22:11:54 +02004407 "init_table" : "node_39",
Yi Tseng3a5731e2018-01-22 11:38:58 -08004408 "tables" : [
4409 {
Carmelo Casconea5400af2018-07-17 22:11:54 +02004410 "name" : "tbl_drop_now",
4411 "id" : 23,
4412 "key" : [],
4413 "match_type" : "exact",
4414 "type" : "simple",
4415 "max_size" : 1024,
4416 "with_counters" : false,
4417 "support_timeout" : false,
4418 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02004419 "action_ids" : [45],
Carmelo Casconea5400af2018-07-17 22:11:54 +02004420 "actions" : ["drop_now"],
4421 "base_default_next" : "FabricEgress.egress_next.egress_vlan",
4422 "next_tables" : {
4423 "drop_now" : "FabricEgress.egress_next.egress_vlan"
4424 },
4425 "default_entry" : {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02004426 "action_id" : 45,
Carmelo Casconea5400af2018-07-17 22:11:54 +02004427 "action_const" : true,
4428 "action_data" : [],
4429 "action_entry_const" : true
4430 }
4431 },
4432 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004433 "name" : "FabricEgress.egress_next.egress_vlan",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004434 "id" : 24,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004435 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004436 "filename" : "include/control/next.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004437 "line" : 258,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004438 "column" : 10,
4439 "source_fragment" : "egress_vlan"
4440 },
4441 "key" : [
4442 {
4443 "match_type" : "exact",
4444 "name" : "hdr.vlan_tag.vlan_id",
4445 "target" : ["vlan_tag", "vlan_id"],
4446 "mask" : null
4447 },
4448 {
4449 "match_type" : "exact",
4450 "name" : "standard_metadata.egress_port",
4451 "target" : ["standard_metadata", "egress_port"],
4452 "mask" : null
4453 }
4454 ],
4455 "match_type" : "exact",
4456 "type" : "simple",
4457 "max_size" : 1024,
Yi Tseng47eac892018-07-11 02:17:04 +08004458 "with_counters" : true,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004459 "support_timeout" : false,
4460 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02004461 "action_ids" : [48, 44],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004462 "actions" : ["FabricEgress.egress_next.pop_vlan", "nop"],
Carmelo Casconea5400af2018-07-17 22:11:54 +02004463 "base_default_next" : "node_42",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004464 "next_tables" : {
Carmelo Casconea5400af2018-07-17 22:11:54 +02004465 "FabricEgress.egress_next.pop_vlan" : "node_42",
4466 "nop" : "node_42"
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004467 },
4468 "default_entry" : {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02004469 "action_id" : 44,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004470 "action_const" : false,
4471 "action_data" : [],
4472 "action_entry_const" : false
4473 }
4474 },
4475 {
4476 "name" : "tbl_pkt_io_egress_pop_vlan",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004477 "id" : 25,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004478 "key" : [],
4479 "match_type" : "exact",
4480 "type" : "simple",
4481 "max_size" : 1024,
4482 "with_counters" : false,
4483 "support_timeout" : false,
4484 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02004485 "action_ids" : [47],
Esin Karaman971fb7f2017-12-28 13:44:52 +00004486 "actions" : ["FabricEgress.pkt_io_egress.pop_vlan"],
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02004487 "base_default_next" : "node_45",
Esin Karaman971fb7f2017-12-28 13:44:52 +00004488 "next_tables" : {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02004489 "FabricEgress.pkt_io_egress.pop_vlan" : "node_45"
Esin Karaman971fb7f2017-12-28 13:44:52 +00004490 },
4491 "default_entry" : {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02004492 "action_id" : 47,
Esin Karaman971fb7f2017-12-28 13:44:52 +00004493 "action_const" : true,
4494 "action_data" : [],
4495 "action_entry_const" : true
4496 }
4497 },
4498 {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02004499 "name" : "tbl_drop_now_0",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004500 "id" : 26,
Esin Karaman971fb7f2017-12-28 13:44:52 +00004501 "key" : [],
4502 "match_type" : "exact",
4503 "type" : "simple",
4504 "max_size" : 1024,
4505 "with_counters" : false,
4506 "support_timeout" : false,
4507 "direct_meters" : null,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02004508 "action_ids" : [46],
4509 "actions" : ["drop_now"],
4510 "base_default_next" : "tbl_act_12",
4511 "next_tables" : {
4512 "drop_now" : "tbl_act_12"
4513 },
4514 "default_entry" : {
4515 "action_id" : 46,
4516 "action_const" : true,
4517 "action_data" : [],
4518 "action_entry_const" : true
4519 }
4520 },
4521 {
4522 "name" : "tbl_act_12",
4523 "id" : 27,
4524 "key" : [],
4525 "match_type" : "exact",
4526 "type" : "simple",
4527 "max_size" : 1024,
4528 "with_counters" : false,
4529 "support_timeout" : false,
4530 "direct_meters" : null,
4531 "action_ids" : [49],
Carmelo Casconea5400af2018-07-17 22:11:54 +02004532 "actions" : ["act_12"],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004533 "base_default_next" : null,
4534 "next_tables" : {
Carmelo Casconea5400af2018-07-17 22:11:54 +02004535 "act_12" : null
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004536 },
4537 "default_entry" : {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02004538 "action_id" : 49,
Yi Tseng3a5731e2018-01-22 11:38:58 -08004539 "action_const" : true,
4540 "action_data" : [],
4541 "action_entry_const" : true
4542 }
4543 }
4544 ],
4545 "action_profiles" : [],
4546 "conditionals" : [
Yi Tseng1d842672017-11-28 16:06:52 -08004547 {
Carmelo Casconea5400af2018-07-17 22:11:54 +02004548 "name" : "node_39",
4549 "id" : 12,
4550 "source_info" : {
4551 "filename" : "include/control/next.p4",
4552 "line" : 272,
4553 "column" : 12,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02004554 "source_fragment" : "fabric_metadata.is_multicast == true ..."
Carmelo Casconea5400af2018-07-17 22:11:54 +02004555 },
4556 "expression" : {
4557 "type" : "expression",
4558 "value" : {
4559 "op" : "and",
4560 "left" : {
4561 "type" : "expression",
4562 "value" : {
4563 "op" : "==",
4564 "left" : {
4565 "type" : "expression",
4566 "value" : {
4567 "op" : "d2b",
4568 "left" : null,
4569 "right" : {
4570 "type" : "field",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02004571 "value" : ["scalars", "fabric_metadata_t.is_multicast"]
Carmelo Casconea5400af2018-07-17 22:11:54 +02004572 }
4573 }
4574 },
4575 "right" : {
4576 "type" : "bool",
4577 "value" : true
4578 }
4579 }
4580 },
4581 "right" : {
4582 "type" : "expression",
4583 "value" : {
4584 "op" : "==",
4585 "left" : {
4586 "type" : "field",
4587 "value" : ["standard_metadata", "ingress_port"]
4588 },
4589 "right" : {
4590 "type" : "field",
4591 "value" : ["standard_metadata", "egress_port"]
4592 }
4593 }
4594 }
4595 }
4596 },
4597 "true_next" : "tbl_drop_now",
4598 "false_next" : "FabricEgress.egress_next.egress_vlan"
4599 },
4600 {
4601 "name" : "node_42",
4602 "id" : 13,
Yi Tsengbe342052017-11-03 10:21:23 -07004603 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004604 "filename" : "include/control/packetio.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004605 "line" : 42,
Yi Tsengbe342052017-11-03 10:21:23 -07004606 "column" : 12,
Carmelo Casconeb531b682018-01-30 17:55:56 -08004607 "source_fragment" : "standard_metadata.egress_port == 255"
Yi Tsengbe342052017-11-03 10:21:23 -07004608 },
4609 "expression" : {
4610 "type" : "expression",
4611 "value" : {
4612 "op" : "==",
4613 "left" : {
4614 "type" : "field",
4615 "value" : ["standard_metadata", "egress_port"]
4616 },
4617 "right" : {
4618 "type" : "hexstr",
4619 "value" : "0x00ff"
4620 }
4621 }
4622 },
4623 "false_next" : null,
Carmelo Casconea5400af2018-07-17 22:11:54 +02004624 "true_next" : "node_43"
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004625 },
4626 {
Carmelo Casconea5400af2018-07-17 22:11:54 +02004627 "name" : "node_43",
4628 "id" : 14,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004629 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004630 "filename" : "include/control/packetio.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004631 "line" : 43,
4632 "column" : 16,
Carmelo Cascone228092b2018-06-15 20:41:10 +02004633 "source_fragment" : "hdr.vlan_tag.isValid() && fabric_metadata.pop_vlan_when_packet_in == true"
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004634 },
4635 "expression" : {
4636 "type" : "expression",
4637 "value" : {
4638 "op" : "and",
4639 "left" : {
4640 "type" : "expression",
4641 "value" : {
4642 "op" : "d2b",
4643 "left" : null,
4644 "right" : {
4645 "type" : "field",
4646 "value" : ["vlan_tag", "$valid$"]
4647 }
4648 }
4649 },
4650 "right" : {
4651 "type" : "expression",
4652 "value" : {
Carmelo Cascone228092b2018-06-15 20:41:10 +02004653 "op" : "==",
4654 "left" : {
4655 "type" : "expression",
4656 "value" : {
4657 "op" : "d2b",
4658 "left" : null,
4659 "right" : {
4660 "type" : "field",
4661 "value" : ["scalars", "fabric_metadata_t.pop_vlan_when_packet_in"]
4662 }
4663 }
4664 },
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004665 "right" : {
Carmelo Cascone228092b2018-06-15 20:41:10 +02004666 "type" : "bool",
4667 "value" : true
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004668 }
4669 }
4670 }
4671 }
4672 },
4673 "true_next" : "tbl_pkt_io_egress_pop_vlan",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02004674 "false_next" : "node_45"
4675 },
4676 {
4677 "name" : "node_45",
4678 "id" : 15,
4679 "source_info" : {
4680 "filename" : "include/control/packetio.p4",
4681 "line" : 46,
4682 "column" : 16,
4683 "source_fragment" : "fabric_metadata.is_multicast == true && ..."
4684 },
4685 "expression" : {
4686 "type" : "expression",
4687 "value" : {
4688 "op" : "and",
4689 "left" : {
4690 "type" : "expression",
4691 "value" : {
4692 "op" : "==",
4693 "left" : {
4694 "type" : "expression",
4695 "value" : {
4696 "op" : "d2b",
4697 "left" : null,
4698 "right" : {
4699 "type" : "field",
4700 "value" : ["scalars", "fabric_metadata_t.is_multicast"]
4701 }
4702 }
4703 },
4704 "right" : {
4705 "type" : "bool",
4706 "value" : true
4707 }
4708 }
4709 },
4710 "right" : {
4711 "type" : "expression",
4712 "value" : {
4713 "op" : "==",
4714 "left" : {
4715 "type" : "expression",
4716 "value" : {
4717 "op" : "d2b",
4718 "left" : null,
4719 "right" : {
4720 "type" : "field",
4721 "value" : ["scalars", "fabric_metadata_t.clone_to_cpu"]
4722 }
4723 }
4724 },
4725 "right" : {
4726 "type" : "bool",
4727 "value" : false
4728 }
4729 }
4730 }
4731 }
4732 },
4733 "true_next" : "tbl_drop_now_0",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004734 "false_next" : "tbl_act_12"
Yi Tsengbe342052017-11-03 10:21:23 -07004735 }
4736 ]
4737 }
4738 ],
4739 "checksums" : [
4740 {
4741 "name" : "cksum",
4742 "id" : 0,
4743 "target" : ["ipv4", "hdr_checksum"],
4744 "type" : "generic",
Yi Tsengbd46d052018-01-22 17:18:16 -08004745 "calculation" : "calc",
4746 "if_cond" : {
4747 "type" : "expression",
4748 "value" : {
4749 "op" : "d2b",
4750 "left" : null,
4751 "right" : {
4752 "type" : "field",
4753 "value" : ["ipv4", "$valid$"]
4754 }
4755 }
4756 }
Yi Tsengbe342052017-11-03 10:21:23 -07004757 },
4758 {
4759 "name" : "cksum_0",
4760 "id" : 1,
Yi Tsengbe342052017-11-03 10:21:23 -07004761 "target" : ["ipv4", "hdr_checksum"],
4762 "type" : "generic",
Yi Tsengbd46d052018-01-22 17:18:16 -08004763 "calculation" : "calc_0",
4764 "if_cond" : {
4765 "type" : "expression",
4766 "value" : {
4767 "op" : "d2b",
4768 "left" : null,
4769 "right" : {
4770 "type" : "field",
4771 "value" : ["ipv4", "$valid$"]
4772 }
4773 }
4774 }
Yi Tsengbe342052017-11-03 10:21:23 -07004775 }
4776 ],
4777 "force_arith" : [],
4778 "extern_instances" : [],
4779 "field_aliases" : [
4780 [
4781 "queueing_metadata.enq_timestamp",
4782 ["standard_metadata", "enq_timestamp"]
4783 ],
4784 [
4785 "queueing_metadata.enq_qdepth",
4786 ["standard_metadata", "enq_qdepth"]
4787 ],
4788 [
4789 "queueing_metadata.deq_timedelta",
4790 ["standard_metadata", "deq_timedelta"]
4791 ],
4792 [
4793 "queueing_metadata.deq_qdepth",
4794 ["standard_metadata", "deq_qdepth"]
4795 ],
4796 [
4797 "intrinsic_metadata.ingress_global_timestamp",
4798 ["standard_metadata", "ingress_global_timestamp"]
4799 ],
4800 [
Yi Tseng27b9bc02018-04-12 14:52:40 +08004801 "intrinsic_metadata.egress_global_timestamp",
4802 ["standard_metadata", "egress_global_timestamp"]
4803 ],
4804 [
Yi Tsengbe342052017-11-03 10:21:23 -07004805 "intrinsic_metadata.lf_field_list",
4806 ["standard_metadata", "lf_field_list"]
4807 ],
4808 [
4809 "intrinsic_metadata.mcast_grp",
4810 ["standard_metadata", "mcast_grp"]
4811 ],
4812 [
4813 "intrinsic_metadata.resubmit_flag",
4814 ["standard_metadata", "resubmit_flag"]
4815 ],
4816 [
4817 "intrinsic_metadata.egress_rid",
4818 ["standard_metadata", "egress_rid"]
Yi Tseng27b9bc02018-04-12 14:52:40 +08004819 ],
4820 [
4821 "intrinsic_metadata.recirculate_flag",
4822 ["standard_metadata", "recirculate_flag"]
Yi Tsengbe342052017-11-03 10:21:23 -07004823 ]
Carmelo Cascone6af4e172018-06-15 16:01:30 +02004824 ],
4825 "program" : "fabric.p4",
4826 "__meta__" : {
4827 "version" : [2, 18],
4828 "compiler" : "https://github.com/p4lang/p4c"
4829 }
Yi Tsengbe342052017-11-03 10:21:23 -07004830}