blob: 43db30eeaee6cc53c41a1e72033d7934046a93fa [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" : [
Carmelo Cascone2388cc12021-05-26 19:30:30 +02007 ["tmp_0", 1, false],
8 ["tmp_1", 16, false],
9 ["tmp_3", 16, false],
10 ["tmp_5", 4, false],
11 ["tmp_6", 16, false],
pierventre48e78822020-12-15 17:34:54 +010012 ["tmp_2", 32, false],
Carmelo Cascone2388cc12021-05-26 19:30:30 +020013 ["tmp_4", 32, false],
14 ["userMetadata.ip_eth_type", 16, false],
15 ["userMetadata.vlan_id", 12, false],
16 ["userMetadata.vlan_pri", 3, false],
17 ["userMetadata.vlan_cfi", 1, false],
18 ["userMetadata.mpls_label", 20, false],
19 ["userMetadata.mpls_ttl", 8, false],
20 ["userMetadata.skip_forwarding", 1, false],
21 ["userMetadata.skip_next", 1, false],
22 ["userMetadata.fwd_type", 3, false],
23 ["userMetadata.next_id", 32, false],
24 ["userMetadata.is_multicast", 1, false],
25 ["userMetadata.is_controller_packet_out", 1, false],
26 ["userMetadata.ip_proto", 8, false],
27 ["userMetadata.l4_sport", 16, false],
28 ["userMetadata.l4_dport", 16, false],
29 ["userMetadata.ipv4_src_addr", 32, false],
30 ["userMetadata.ipv4_dst_addr", 32, false]
31 ]
32 },
33 {
34 "name" : "packet_out_header_t",
35 "id" : 1,
36 "fields" : [
37 ["egress_port", 9, false],
38 ["do_forwarding", 1, false],
39 ["_pad", 6, false]
Yi Tsengc6844f52017-12-19 11:58:25 -080040 ]
41 },
42 {
Carmelo Cascone6af4e172018-06-15 16:01:30 +020043 "name" : "standard_metadata",
Carmelo Cascone2388cc12021-05-26 19:30:30 +020044 "id" : 2,
Yi Tsengc6844f52017-12-19 11:58:25 -080045 "fields" : [
Carmelo Cascone6af4e172018-06-15 16:01:30 +020046 ["ingress_port", 9, false],
47 ["egress_spec", 9, false],
48 ["egress_port", 9, false],
Carmelo Cascone6af4e172018-06-15 16:01:30 +020049 ["instance_type", 32, false],
Carmelo Cascone6af4e172018-06-15 16:01:30 +020050 ["packet_length", 32, false],
51 ["enq_timestamp", 32, false],
52 ["enq_qdepth", 19, false],
53 ["deq_timedelta", 32, false],
54 ["deq_qdepth", 19, false],
55 ["ingress_global_timestamp", 48, false],
56 ["egress_global_timestamp", 48, false],
Carmelo Cascone6af4e172018-06-15 16:01:30 +020057 ["mcast_grp", 16, false],
Carmelo Cascone6af4e172018-06-15 16:01:30 +020058 ["egress_rid", 16, false],
Carmelo Cascone9b607da2019-05-08 14:03:01 -070059 ["checksum_error", 1, false],
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -070060 ["parser_error", 32, false],
Carmelo Cascone9b607da2019-05-08 14:03:01 -070061 ["priority", 3, false],
Carmelo Cascone2388cc12021-05-26 19:30:30 +020062 ["_padding", 3, false]
Carmelo Cascone6af4e172018-06-15 16:01:30 +020063 ]
64 },
65 {
66 "name" : "ethernet_t",
Carmelo Cascone2388cc12021-05-26 19:30:30 +020067 "id" : 3,
Carmelo Cascone6af4e172018-06-15 16:01:30 +020068 "fields" : [
Yi Tsengc6844f52017-12-19 11:58:25 -080069 ["dst_addr", 48, false],
Daniele Moro5a2de712019-09-24 14:34:07 -070070 ["src_addr", 48, false]
Yi Tsengc6844f52017-12-19 11:58:25 -080071 ]
72 },
73 {
74 "name" : "vlan_tag_t",
Carmelo Cascone2388cc12021-05-26 19:30:30 +020075 "id" : 4,
Yi Tsengc6844f52017-12-19 11:58:25 -080076 "fields" : [
Daniele Moro5a2de712019-09-24 14:34:07 -070077 ["eth_type", 16, false],
Yi Tsengc6844f52017-12-19 11:58:25 -080078 ["pri", 3, false],
79 ["cfi", 1, false],
Daniele Moro5a2de712019-09-24 14:34:07 -070080 ["vlan_id", 12, false]
81 ]
82 },
83 {
84 "name" : "eth_type_t",
Carmelo Cascone2388cc12021-05-26 19:30:30 +020085 "id" : 5,
Daniele Moro5a2de712019-09-24 14:34:07 -070086 "fields" : [
87 ["value", 16, false]
Yi Tsengc6844f52017-12-19 11:58:25 -080088 ]
89 },
90 {
91 "name" : "mpls_t",
Carmelo Cascone2388cc12021-05-26 19:30:30 +020092 "id" : 6,
Yi Tsengc6844f52017-12-19 11:58:25 -080093 "fields" : [
94 ["label", 20, false],
95 ["tc", 3, false],
96 ["bos", 1, false],
97 ["ttl", 8, false]
Yi Tsengbe342052017-11-03 10:21:23 -070098 ]
99 },
100 {
101 "name" : "ipv4_t",
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200102 "id" : 7,
Yi Tsengbe342052017-11-03 10:21:23 -0700103 "fields" : [
104 ["version", 4, false],
105 ["ihl", 4, false],
Jonghwan Hyuned478dc2018-08-06 15:35:18 +0900106 ["dscp", 6, false],
107 ["ecn", 2, false],
Yi Tsengbe342052017-11-03 10:21:23 -0700108 ["total_len", 16, false],
109 ["identification", 16, false],
110 ["flags", 3, false],
111 ["frag_offset", 13, false],
112 ["ttl", 8, false],
113 ["protocol", 8, false],
114 ["hdr_checksum", 16, false],
115 ["src_addr", 32, false],
116 ["dst_addr", 32, false]
117 ]
118 },
119 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800120 "name" : "tcp_t",
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200121 "id" : 8,
Yi Tseng47eac892018-07-11 02:17:04 +0800122 "fields" : [
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800123 ["sport", 16, false],
124 ["dport", 16, false],
Yi Tsengbe342052017-11-03 10:21:23 -0700125 ["seq_no", 32, false],
126 ["ack_no", 32, false],
127 ["data_offset", 4, false],
128 ["res", 3, false],
129 ["ecn", 3, false],
130 ["ctrl", 6, false],
131 ["window", 16, false],
132 ["checksum", 16, false],
133 ["urgent_ptr", 16, false]
134 ]
135 },
136 {
137 "name" : "udp_t",
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200138 "id" : 9,
Yi Tsengbe342052017-11-03 10:21:23 -0700139 "fields" : [
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800140 ["sport", 16, false],
141 ["dport", 16, false],
Yi Tsengbe342052017-11-03 10:21:23 -0700142 ["len", 16, false],
143 ["checksum", 16, false]
144 ]
145 },
146 {
147 "name" : "icmp_t",
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200148 "id" : 10,
Yi Tsengbe342052017-11-03 10:21:23 -0700149 "fields" : [
150 ["icmp_type", 8, false],
151 ["icmp_code", 8, false],
Yi Tsengf73a5532017-11-17 15:58:57 -0800152 ["checksum", 16, false],
153 ["identifier", 16, false],
154 ["sequence_number", 16, false],
155 ["timestamp", 64, false]
Yi Tsengbe342052017-11-03 10:21:23 -0700156 ]
157 },
158 {
Yi Tsengbe342052017-11-03 10:21:23 -0700159 "name" : "packet_in_header_t",
Daniele Moro5a2de712019-09-24 14:34:07 -0700160 "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 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200169 "name" : "tmp",
Yi Tsengc6844f52017-12-19 11:58:25 -0800170 "id" : 0,
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200171 "header_type" : "packet_out_header_t",
172 "metadata" : false,
173 "pi_omit" : true
174 },
175 {
176 "name" : "scalars",
177 "id" : 1,
Yi Tsengbe342052017-11-03 10:21:23 -0700178 "header_type" : "scalars_0",
179 "metadata" : true,
180 "pi_omit" : true
181 },
182 {
183 "name" : "standard_metadata",
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200184 "id" : 2,
Yi Tsengbe342052017-11-03 10:21:23 -0700185 "header_type" : "standard_metadata",
186 "metadata" : true,
187 "pi_omit" : true
188 },
189 {
190 "name" : "ethernet",
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200191 "id" : 3,
Yi Tsengbe342052017-11-03 10:21:23 -0700192 "header_type" : "ethernet_t",
193 "metadata" : false,
194 "pi_omit" : true
195 },
196 {
197 "name" : "vlan_tag",
Yi Tsengbd46d052018-01-22 17:18:16 -0800198 "id" : 4,
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800199 "header_type" : "vlan_tag_t",
200 "metadata" : false,
201 "pi_omit" : true
202 },
203 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200204 "name" : "inner_vlan_tag",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800205 "id" : 5,
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200206 "header_type" : "vlan_tag_t",
207 "metadata" : false,
208 "pi_omit" : true
209 },
210 {
211 "name" : "eth_type",
212 "id" : 6,
Daniele Moro5a2de712019-09-24 14:34:07 -0700213 "header_type" : "eth_type_t",
214 "metadata" : false,
215 "pi_omit" : true
216 },
217 {
218 "name" : "mpls",
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200219 "id" : 7,
Yi Tsengbe342052017-11-03 10:21:23 -0700220 "header_type" : "mpls_t",
221 "metadata" : false,
222 "pi_omit" : true
223 },
224 {
225 "name" : "ipv4",
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200226 "id" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800227 "header_type" : "ipv4_t",
Yi Tsengbe342052017-11-03 10:21:23 -0700228 "metadata" : false,
229 "pi_omit" : true
230 },
231 {
232 "name" : "tcp",
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200233 "id" : 9,
Yi Tsengbe342052017-11-03 10:21:23 -0700234 "header_type" : "tcp_t",
235 "metadata" : false,
236 "pi_omit" : true
237 },
238 {
239 "name" : "udp",
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200240 "id" : 10,
Yi Tsengbe342052017-11-03 10:21:23 -0700241 "header_type" : "udp_t",
242 "metadata" : false,
243 "pi_omit" : true
244 },
245 {
246 "name" : "icmp",
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200247 "id" : 11,
Yi Tsengbe342052017-11-03 10:21:23 -0700248 "header_type" : "icmp_t",
249 "metadata" : false,
250 "pi_omit" : true
251 },
252 {
253 "name" : "packet_out",
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200254 "id" : 12,
Yi Tsengbe342052017-11-03 10:21:23 -0700255 "header_type" : "packet_out_header_t",
256 "metadata" : false,
257 "pi_omit" : true
258 },
259 {
260 "name" : "packet_in",
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200261 "id" : 13,
Yi Tsengbe342052017-11-03 10:21:23 -0700262 "header_type" : "packet_in_header_t",
263 "metadata" : false,
264 "pi_omit" : true
265 }
266 ],
267 "header_stacks" : [],
268 "header_union_types" : [],
269 "header_unions" : [],
270 "header_union_stacks" : [],
Daniele Moro01ca2ab2019-06-25 11:48:48 -0700271 "field_lists" : [
272 {
273 "id" : 1,
274 "name" : "fl",
275 "source_info" : {
Daniele Moro3b7a21b2019-06-25 17:33:40 -0700276 "filename" : "include/control/acl.p4",
277 "line" : 46,
Daniele Moro01ca2ab2019-06-25 11:48:48 -0700278 "column" : 40,
Daniele Moro3b7a21b2019-06-25 17:33:40 -0700279 "source_fragment" : "{standard_metadata.ingress_port}"
Daniele Moro01ca2ab2019-06-25 11:48:48 -0700280 },
281 "elements" : [
282 {
283 "type" : "field",
284 "value" : ["standard_metadata", "ingress_port"]
Daniele Moro01ca2ab2019-06-25 11:48:48 -0700285 }
286 ]
287 }
288 ],
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700289 "errors" : [
Carmelo Cascone4d8785b2019-05-31 17:11:26 -0700290 ["NoError", 1],
291 ["PacketTooShort", 2],
292 ["NoMatch", 3],
293 ["StackOutOfBounds", 4],
294 ["HeaderTooShort", 5],
295 ["ParserTimeout", 6],
296 ["ParserInvalidArgument", 7]
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700297 ],
Yi Tsengbe342052017-11-03 10:21:23 -0700298 "enums" : [],
299 "parsers" : [
300 {
301 "name" : "parser",
302 "id" : 0,
303 "init_state" : "start",
304 "parse_states" : [
305 {
306 "name" : "start",
307 "id" : 0,
308 "parser_ops" : [],
309 "transitions" : [
310 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800311 "type" : "hexstr",
Yi Tsengbe342052017-11-03 10:21:23 -0700312 "value" : "0x00ff",
313 "mask" : null,
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200314 "next_state" : "check_packet_out"
Yi Tsengbe342052017-11-03 10:21:23 -0700315 },
316 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200317 "type" : "default",
318 "value" : null,
Yi Tsengbe342052017-11-03 10:21:23 -0700319 "mask" : null,
320 "next_state" : "parse_ethernet"
321 }
322 ],
323 "transition_key" : [
324 {
325 "type" : "field",
326 "value" : ["standard_metadata", "ingress_port"]
327 }
328 ]
329 },
330 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200331 "name" : "check_packet_out",
Yi Tsengbe342052017-11-03 10:21:23 -0700332 "id" : 1,
333 "parser_ops" : [
334 {
335 "parameters" : [
336 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200337 "type" : "field",
338 "value" : ["scalars", "tmp_6"]
339 },
340 {
341 "type" : "lookahead",
342 "value" : [0, 16]
343 }
344 ],
345 "op" : "set"
346 },
347 {
348 "parameters" : [
349 {
350 "parameters" : [
351 {
352 "type" : "header",
353 "value" : "tmp"
354 }
355 ],
356 "op" : "add_header"
357 }
358 ],
359 "op" : "primitive"
360 },
361 {
362 "parameters" : [
363 {
364 "type" : "field",
365 "value" : ["tmp", "egress_port"]
366 },
367 {
368 "type" : "expression",
369 "value" : {
370 "type" : "expression",
371 "value" : {
372 "op" : "&",
373 "left" : {
374 "type" : "expression",
375 "value" : {
376 "op" : "&",
377 "left" : {
378 "type" : "expression",
379 "value" : {
380 "op" : ">>",
381 "left" : {
382 "type" : "field",
383 "value" : ["scalars", "tmp_6"]
384 },
385 "right" : {
386 "type" : "hexstr",
387 "value" : "0x7"
388 }
389 }
390 },
391 "right" : {
392 "type" : "hexstr",
393 "value" : "0xffff"
394 }
395 }
396 },
397 "right" : {
398 "type" : "hexstr",
399 "value" : "0x01ff"
400 }
401 }
402 }
403 }
404 ],
405 "op" : "set"
406 },
407 {
408 "parameters" : [
409 {
410 "type" : "field",
411 "value" : ["tmp", "do_forwarding"]
412 },
413 {
414 "type" : "expression",
415 "value" : {
416 "type" : "expression",
417 "value" : {
418 "op" : "&",
419 "left" : {
420 "type" : "expression",
421 "value" : {
422 "op" : "&",
423 "left" : {
424 "type" : "expression",
425 "value" : {
426 "op" : ">>",
427 "left" : {
428 "type" : "field",
429 "value" : ["scalars", "tmp_6"]
430 },
431 "right" : {
432 "type" : "hexstr",
433 "value" : "0x6"
434 }
435 }
436 },
437 "right" : {
438 "type" : "hexstr",
439 "value" : "0xffff"
440 }
441 }
442 },
443 "right" : {
444 "type" : "hexstr",
445 "value" : "0x01"
446 }
447 }
448 }
449 }
450 ],
451 "op" : "set"
452 },
453 {
454 "parameters" : [
455 {
456 "type" : "field",
457 "value" : ["tmp", "_pad"]
458 },
459 {
460 "type" : "expression",
461 "value" : {
462 "type" : "expression",
463 "value" : {
464 "op" : "&",
465 "left" : {
466 "type" : "field",
467 "value" : ["scalars", "tmp_6"]
468 },
469 "right" : {
470 "type" : "hexstr",
471 "value" : "0x3f"
472 }
473 }
474 }
475 }
476 ],
477 "op" : "set"
478 },
479 {
480 "parameters" : [
481 {
482 "type" : "field",
483 "value" : ["scalars", "tmp_0"]
484 },
485 {
486 "type" : "expression",
487 "value" : {
488 "type" : "expression",
489 "value" : {
490 "op" : "&",
491 "left" : {
492 "type" : "expression",
493 "value" : {
494 "op" : "&",
495 "left" : {
496 "type" : "expression",
497 "value" : {
498 "op" : ">>",
499 "left" : {
500 "type" : "field",
501 "value" : ["scalars", "tmp_6"]
502 },
503 "right" : {
504 "type" : "hexstr",
505 "value" : "0x6"
506 }
507 }
508 },
509 "right" : {
510 "type" : "hexstr",
511 "value" : "0xffff"
512 }
513 }
514 },
515 "right" : {
516 "type" : "hexstr",
517 "value" : "0x01"
518 }
519 }
520 }
521 }
522 ],
523 "op" : "set"
524 }
525 ],
526 "transitions" : [
527 {
528 "type" : "hexstr",
529 "value" : "0x00",
530 "mask" : null,
531 "next_state" : "parse_packet_out_and_accept"
532 },
533 {
534 "type" : "default",
535 "value" : null,
536 "mask" : null,
537 "next_state" : "strip_packet_out"
538 }
539 ],
540 "transition_key" : [
541 {
542 "type" : "field",
543 "value" : ["scalars", "tmp_0"]
544 }
545 ]
546 },
547 {
548 "name" : "parse_packet_out_and_accept",
549 "id" : 2,
550 "parser_ops" : [
551 {
552 "parameters" : [
553 {
Yi Tsengbe342052017-11-03 10:21:23 -0700554 "type" : "regular",
555 "value" : "packet_out"
556 }
557 ],
558 "op" : "extract"
559 }
560 ],
561 "transitions" : [
562 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200563 "type" : "default",
564 "value" : null,
565 "mask" : null,
566 "next_state" : null
567 }
568 ],
569 "transition_key" : []
570 },
571 {
572 "name" : "strip_packet_out",
573 "id" : 3,
574 "parser_ops" : [
575 {
576 "parameters" : [
577 {
578 "type" : "hexstr",
579 "value" : "0x00000010"
580 }
581 ],
582 "op" : "advance"
583 }
584 ],
585 "transitions" : [
586 {
587 "type" : "default",
588 "value" : null,
Yi Tsengbe342052017-11-03 10:21:23 -0700589 "mask" : null,
590 "next_state" : "parse_ethernet"
591 }
592 ],
593 "transition_key" : []
594 },
595 {
596 "name" : "parse_ethernet",
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200597 "id" : 4,
Yi Tsengbe342052017-11-03 10:21:23 -0700598 "parser_ops" : [
599 {
600 "parameters" : [
601 {
602 "type" : "regular",
603 "value" : "ethernet"
604 }
605 ],
606 "op" : "extract"
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800607 },
608 {
609 "parameters" : [
610 {
611 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200612 "value" : ["scalars", "userMetadata.vlan_id"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800613 },
614 {
Daniele Moro5a2de712019-09-24 14:34:07 -0700615 "type" : "hexstr",
616 "value" : "0x0ffe"
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800617 }
618 ],
619 "op" : "set"
620 },
621 {
622 "parameters" : [
623 {
624 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200625 "value" : ["scalars", "tmp_1"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800626 },
627 {
Daniele Moro5a2de712019-09-24 14:34:07 -0700628 "type" : "lookahead",
629 "value" : [0, 16]
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800630 }
631 ],
632 "op" : "set"
Yi Tsengbe342052017-11-03 10:21:23 -0700633 }
634 ],
635 "transitions" : [
636 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800637 "type" : "hexstr",
Daniele Moro77654f92019-07-30 10:29:54 -0700638 "value" : "0x88a8",
639 "mask" : null,
640 "next_state" : "parse_vlan_tag"
641 },
642 {
643 "type" : "hexstr",
644 "value" : "0x9100",
645 "mask" : null,
646 "next_state" : "parse_vlan_tag"
647 },
648 {
649 "type" : "hexstr",
Yi Tsengbe342052017-11-03 10:21:23 -0700650 "value" : "0x8100",
651 "mask" : null,
652 "next_state" : "parse_vlan_tag"
653 },
654 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200655 "type" : "default",
656 "value" : null,
Yi Tsengbe342052017-11-03 10:21:23 -0700657 "mask" : null,
Daniele Moro5a2de712019-09-24 14:34:07 -0700658 "next_state" : "parse_eth_type"
Yi Tsengbe342052017-11-03 10:21:23 -0700659 }
660 ],
661 "transition_key" : [
662 {
663 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200664 "value" : ["scalars", "tmp_1"]
Yi Tsengbe342052017-11-03 10:21:23 -0700665 }
666 ]
667 },
668 {
669 "name" : "parse_vlan_tag",
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200670 "id" : 5,
Yi Tsengbe342052017-11-03 10:21:23 -0700671 "parser_ops" : [
672 {
673 "parameters" : [
674 {
675 "type" : "regular",
676 "value" : "vlan_tag"
677 }
678 ],
679 "op" : "extract"
Daniele Moro5a2de712019-09-24 14:34:07 -0700680 },
681 {
682 "parameters" : [
683 {
684 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200685 "value" : ["scalars", "tmp_3"]
Daniele Moro5a2de712019-09-24 14:34:07 -0700686 },
687 {
688 "type" : "lookahead",
689 "value" : [0, 16]
690 }
691 ],
692 "op" : "set"
Yi Tsengbe342052017-11-03 10:21:23 -0700693 }
694 ],
695 "transitions" : [
696 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800697 "type" : "hexstr",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800698 "value" : "0x8100",
699 "mask" : null,
700 "next_state" : "parse_inner_vlan_tag"
701 },
702 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200703 "type" : "default",
704 "value" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800705 "mask" : null,
Daniele Moro5a2de712019-09-24 14:34:07 -0700706 "next_state" : "parse_eth_type"
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800707 }
708 ],
709 "transition_key" : [
710 {
711 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200712 "value" : ["scalars", "tmp_3"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800713 }
714 ]
715 },
716 {
717 "name" : "parse_inner_vlan_tag",
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200718 "id" : 6,
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800719 "parser_ops" : [
720 {
721 "parameters" : [
722 {
723 "type" : "regular",
724 "value" : "inner_vlan_tag"
725 }
726 ],
727 "op" : "extract"
728 }
729 ],
730 "transitions" : [
731 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200732 "type" : "default",
733 "value" : null,
Yi Tsengbe342052017-11-03 10:21:23 -0700734 "mask" : null,
Daniele Moro5a2de712019-09-24 14:34:07 -0700735 "next_state" : "parse_eth_type"
736 }
737 ],
738 "transition_key" : []
739 },
740 {
741 "name" : "parse_eth_type",
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200742 "id" : 7,
Daniele Moro5a2de712019-09-24 14:34:07 -0700743 "parser_ops" : [
744 {
745 "parameters" : [
746 {
747 "type" : "regular",
748 "value" : "eth_type"
749 }
750 ],
751 "op" : "extract"
752 }
753 ],
754 "transitions" : [
Yi Tsengbe342052017-11-03 10:21:23 -0700755 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800756 "type" : "hexstr",
Yi Tsengbd46d052018-01-22 17:18:16 -0800757 "value" : "0x8847",
Yi Tsengbe342052017-11-03 10:21:23 -0700758 "mask" : null,
Yi Tsengbd46d052018-01-22 17:18:16 -0800759 "next_state" : "parse_mpls"
Yi Tsengbe342052017-11-03 10:21:23 -0700760 },
761 {
Daniele Moro5a2de712019-09-24 14:34:07 -0700762 "type" : "hexstr",
763 "value" : "0x0800",
764 "mask" : null,
765 "next_state" : "parse_ipv4"
766 },
767 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200768 "type" : "default",
769 "value" : null,
Yi Tsengbe342052017-11-03 10:21:23 -0700770 "mask" : null,
771 "next_state" : null
772 }
773 ],
774 "transition_key" : [
775 {
776 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -0700777 "value" : ["eth_type", "value"]
Yi Tsengbe342052017-11-03 10:21:23 -0700778 }
779 ]
780 },
781 {
782 "name" : "parse_mpls",
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200783 "id" : 8,
Yi Tsengbe342052017-11-03 10:21:23 -0700784 "parser_ops" : [
785 {
786 "parameters" : [
787 {
788 "type" : "regular",
789 "value" : "mpls"
790 }
791 ],
792 "op" : "extract"
793 },
794 {
795 "parameters" : [
796 {
797 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200798 "value" : ["scalars", "userMetadata.mpls_label"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800799 },
800 {
801 "type" : "field",
802 "value" : ["mpls", "label"]
803 }
804 ],
805 "op" : "set"
806 },
807 {
808 "parameters" : [
809 {
810 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200811 "value" : ["scalars", "userMetadata.mpls_ttl"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800812 },
813 {
814 "type" : "field",
815 "value" : ["mpls", "ttl"]
816 }
817 ],
818 "op" : "set"
819 },
820 {
821 "parameters" : [
822 {
823 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200824 "value" : ["scalars", "tmp_5"]
Yi Tsengbe342052017-11-03 10:21:23 -0700825 },
826 {
827 "type" : "lookahead",
Yi Tsengc6844f52017-12-19 11:58:25 -0800828 "value" : [0, 4]
Yi Tsengbe342052017-11-03 10:21:23 -0700829 }
830 ],
831 "op" : "set"
832 }
833 ],
834 "transitions" : [
835 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800836 "type" : "hexstr",
Yi Tsengbe342052017-11-03 10:21:23 -0700837 "value" : "0x04",
838 "mask" : null,
839 "next_state" : "parse_ipv4"
840 },
841 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200842 "type" : "default",
843 "value" : null,
Yi Tsengbe342052017-11-03 10:21:23 -0700844 "mask" : null,
845 "next_state" : "parse_ethernet"
846 }
847 ],
848 "transition_key" : [
849 {
850 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200851 "value" : ["scalars", "tmp_5"]
Yi Tsengbe342052017-11-03 10:21:23 -0700852 }
853 ]
854 },
855 {
Daniele Moro7c3a0022019-07-12 13:38:34 -0700856 "name" : "parse_ipv4",
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200857 "id" : 9,
Daniele Moro7c3a0022019-07-12 13:38:34 -0700858 "parser_ops" : [
859 {
860 "parameters" : [
861 {
Yi Tsengbe342052017-11-03 10:21:23 -0700862 "type" : "regular",
863 "value" : "ipv4"
864 }
865 ],
866 "op" : "extract"
867 },
868 {
869 "parameters" : [
870 {
871 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200872 "value" : ["scalars", "userMetadata.ip_proto"]
Yi Tsengbe342052017-11-03 10:21:23 -0700873 },
874 {
875 "type" : "field",
876 "value" : ["ipv4", "protocol"]
877 }
878 ],
879 "op" : "set"
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800880 },
881 {
882 "parameters" : [
883 {
884 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200885 "value" : ["scalars", "userMetadata.ip_eth_type"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800886 },
887 {
888 "type" : "hexstr",
889 "value" : "0x0800"
890 }
891 ],
892 "op" : "set"
Robert MacDavidbec6b6a2020-05-21 21:32:38 -0400893 },
894 {
895 "parameters" : [
896 {
897 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200898 "value" : ["scalars", "userMetadata.ipv4_src_addr"]
Robert MacDavidbec6b6a2020-05-21 21:32:38 -0400899 },
900 {
901 "type" : "field",
902 "value" : ["ipv4", "src_addr"]
903 }
904 ],
905 "op" : "set"
906 },
907 {
908 "parameters" : [
909 {
910 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200911 "value" : ["scalars", "userMetadata.ipv4_dst_addr"]
Robert MacDavidbec6b6a2020-05-21 21:32:38 -0400912 },
913 {
914 "type" : "field",
915 "value" : ["ipv4", "dst_addr"]
916 }
917 ],
918 "op" : "set"
Yi Tsengbe342052017-11-03 10:21:23 -0700919 }
920 ],
921 "transitions" : [
922 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800923 "type" : "hexstr",
Yi Tsengbe342052017-11-03 10:21:23 -0700924 "value" : "0x06",
925 "mask" : null,
926 "next_state" : "parse_tcp"
927 },
928 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800929 "type" : "hexstr",
Yi Tsengbe342052017-11-03 10:21:23 -0700930 "value" : "0x11",
931 "mask" : null,
932 "next_state" : "parse_udp"
933 },
934 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800935 "type" : "hexstr",
Yi Tsengbe342052017-11-03 10:21:23 -0700936 "value" : "0x01",
937 "mask" : null,
938 "next_state" : "parse_icmp"
939 },
940 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200941 "type" : "default",
942 "value" : null,
Yi Tsengbe342052017-11-03 10:21:23 -0700943 "mask" : null,
944 "next_state" : null
945 }
946 ],
947 "transition_key" : [
948 {
949 "type" : "field",
950 "value" : ["ipv4", "protocol"]
951 }
952 ]
953 },
954 {
Yi Tsengbe342052017-11-03 10:21:23 -0700955 "name" : "parse_tcp",
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200956 "id" : 10,
Yi Tsengbe342052017-11-03 10:21:23 -0700957 "parser_ops" : [
958 {
959 "parameters" : [
960 {
961 "type" : "regular",
962 "value" : "tcp"
963 }
964 ],
965 "op" : "extract"
966 },
967 {
968 "parameters" : [
969 {
970 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200971 "value" : ["scalars", "userMetadata.l4_sport"]
Yi Tsengbe342052017-11-03 10:21:23 -0700972 },
973 {
974 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800975 "value" : ["tcp", "sport"]
Yi Tsengbe342052017-11-03 10:21:23 -0700976 }
977 ],
978 "op" : "set"
979 },
980 {
981 "parameters" : [
982 {
983 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200984 "value" : ["scalars", "userMetadata.l4_dport"]
Yi Tsengbe342052017-11-03 10:21:23 -0700985 },
986 {
987 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800988 "value" : ["tcp", "dport"]
Yi Tsengbe342052017-11-03 10:21:23 -0700989 }
990 ],
991 "op" : "set"
992 }
993 ],
994 "transitions" : [
995 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200996 "type" : "default",
997 "value" : null,
Yi Tsengbe342052017-11-03 10:21:23 -0700998 "mask" : null,
999 "next_state" : null
1000 }
1001 ],
1002 "transition_key" : []
1003 },
1004 {
1005 "name" : "parse_udp",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02001006 "id" : 11,
Yi Tsengbe342052017-11-03 10:21:23 -07001007 "parser_ops" : [
1008 {
1009 "parameters" : [
1010 {
1011 "type" : "regular",
1012 "value" : "udp"
1013 }
1014 ],
1015 "op" : "extract"
1016 },
1017 {
1018 "parameters" : [
1019 {
1020 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02001021 "value" : ["scalars", "userMetadata.l4_sport"]
Yi Tsengbe342052017-11-03 10:21:23 -07001022 },
1023 {
1024 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001025 "value" : ["udp", "sport"]
Yi Tsengbe342052017-11-03 10:21:23 -07001026 }
1027 ],
1028 "op" : "set"
1029 },
1030 {
1031 "parameters" : [
1032 {
1033 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02001034 "value" : ["scalars", "userMetadata.l4_dport"]
Yi Tsengbe342052017-11-03 10:21:23 -07001035 },
1036 {
1037 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001038 "value" : ["udp", "dport"]
Yi Tsengbe342052017-11-03 10:21:23 -07001039 }
1040 ],
1041 "op" : "set"
1042 }
1043 ],
1044 "transitions" : [
1045 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02001046 "type" : "default",
1047 "value" : null,
Yi Tsengbe342052017-11-03 10:21:23 -07001048 "mask" : null,
1049 "next_state" : null
1050 }
1051 ],
Carmelo Cascone79a3a312018-08-16 17:14:43 -07001052 "transition_key" : [
1053 {
1054 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001055 "value" : ["udp", "dport"]
Carmelo Cascone79a3a312018-08-16 17:14:43 -07001056 }
1057 ]
Yi Tsengbe342052017-11-03 10:21:23 -07001058 },
1059 {
1060 "name" : "parse_icmp",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02001061 "id" : 12,
Yi Tsengbe342052017-11-03 10:21:23 -07001062 "parser_ops" : [
1063 {
1064 "parameters" : [
1065 {
1066 "type" : "regular",
1067 "value" : "icmp"
1068 }
1069 ],
1070 "op" : "extract"
1071 }
1072 ],
1073 "transitions" : [
1074 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02001075 "type" : "default",
1076 "value" : null,
Yi Tsengbe342052017-11-03 10:21:23 -07001077 "mask" : null,
1078 "next_state" : null
1079 }
1080 ],
1081 "transition_key" : []
1082 }
1083 ]
1084 }
1085 ],
Yi Tseng27b9bc02018-04-12 14:52:40 +08001086 "parse_vsets" : [],
Yi Tsengbe342052017-11-03 10:21:23 -07001087 "deparsers" : [
1088 {
1089 "name" : "deparser",
1090 "id" : 0,
1091 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001092 "filename" : "include/parser.p4",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02001093 "line" : 283,
Yi Tsengbe342052017-11-03 10:21:23 -07001094 "column" : 8,
1095 "source_fragment" : "FabricDeparser"
1096 },
Carmelo Cascone2388cc12021-05-26 19:30:30 +02001097 "order" : ["packet_in", "ethernet", "vlan_tag", "inner_vlan_tag", "eth_type", "mpls", "ipv4", "tcp", "udp", "icmp"],
1098 "primitives" : []
Yi Tsengbe342052017-11-03 10:21:23 -07001099 }
1100 ],
1101 "meter_arrays" : [],
1102 "counter_arrays" : [
1103 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001104 "name" : "FabricIngress.filtering.ingress_port_vlan_counter",
Yi Tseng1d842672017-11-28 16:06:52 -08001105 "id" : 0,
Yi Tseng3a5731e2018-01-22 11:38:58 -08001106 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001107 "binding" : "FabricIngress.filtering.ingress_port_vlan",
1108 "source_info" : {
1109 "filename" : "include/control/filtering.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001110 "line" : 31,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001111 "column" : 50,
1112 "source_fragment" : "ingress_port_vlan_counter"
1113 }
Yi Tseng3a5731e2018-01-22 11:38:58 -08001114 },
1115 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001116 "name" : "FabricIngress.filtering.fwd_classifier_counter",
Yi Tseng3a5731e2018-01-22 11:38:58 -08001117 "id" : 1,
1118 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001119 "binding" : "FabricIngress.filtering.fwd_classifier",
1120 "source_info" : {
1121 "filename" : "include/control/filtering.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07001122 "line" : 85,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001123 "column" : 50,
1124 "source_fragment" : "fwd_classifier_counter"
1125 }
Yi Tseng3a5731e2018-01-22 11:38:58 -08001126 },
1127 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001128 "name" : "FabricIngress.forwarding.bridging_counter",
Yi Tseng3a5731e2018-01-22 11:38:58 -08001129 "id" : 2,
1130 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001131 "binding" : "FabricIngress.forwarding.bridging",
1132 "source_info" : {
1133 "filename" : "include/control/forwarding.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001134 "line" : 36,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001135 "column" : 50,
1136 "source_fragment" : "bridging_counter"
1137 }
Yi Tseng3a5731e2018-01-22 11:38:58 -08001138 },
1139 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001140 "name" : "FabricIngress.forwarding.mpls_counter",
Yi Tseng3a5731e2018-01-22 11:38:58 -08001141 "id" : 3,
1142 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001143 "binding" : "FabricIngress.forwarding.mpls",
1144 "source_info" : {
1145 "filename" : "include/control/forwarding.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07001146 "line" : 63,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001147 "column" : 50,
1148 "source_fragment" : "mpls_counter"
1149 }
Yi Tseng3a5731e2018-01-22 11:38:58 -08001150 },
1151 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001152 "name" : "FabricIngress.acl.acl_counter",
Daniele Moro5a2de712019-09-24 14:34:07 -07001153 "id" : 4,
Yi Tseng3a5731e2018-01-22 11:38:58 -08001154 "is_direct" : true,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001155 "binding" : "FabricIngress.acl.acl",
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001156 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001157 "filename" : "include/control/acl.p4",
1158 "line" : 30,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001159 "column" : 50,
1160 "source_fragment" : "acl_counter"
1161 }
Yi Tseng3a5731e2018-01-22 11:38:58 -08001162 },
1163 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001164 "name" : "FabricIngress.next.next_vlan_counter",
Daniele Moro5a2de712019-09-24 14:34:07 -07001165 "id" : 5,
Yi Tseng47eac892018-07-11 02:17:04 +08001166 "is_direct" : true,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001167 "binding" : "FabricIngress.next.next_vlan",
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001168 "source_info" : {
1169 "filename" : "include/control/next.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001170 "line" : 67,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001171 "column" : 50,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001172 "source_fragment" : "next_vlan_counter"
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001173 }
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001174 },
1175 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001176 "name" : "FabricIngress.next.xconnect_counter",
Daniele Moro5a2de712019-09-24 14:34:07 -07001177 "id" : 6,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001178 "is_direct" : true,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001179 "binding" : "FabricIngress.next.xconnect",
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001180 "source_info" : {
1181 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07001182 "line" : 107,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001183 "column" : 50,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001184 "source_fragment" : "xconnect_counter"
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001185 }
Yi Tseng27b9bc02018-04-12 14:52:40 +08001186 },
1187 {
1188 "name" : "FabricIngress.next.hashed_counter",
Daniele Moro5a2de712019-09-24 14:34:07 -07001189 "id" : 7,
Yi Tseng27b9bc02018-04-12 14:52:40 +08001190 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001191 "binding" : "FabricIngress.next.hashed",
1192 "source_info" : {
1193 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07001194 "line" : 184,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001195 "column" : 50,
1196 "source_fragment" : "hashed_counter"
1197 }
Yi Tseng27b9bc02018-04-12 14:52:40 +08001198 },
1199 {
Esin Karaman971fb7f2017-12-28 13:44:52 +00001200 "name" : "FabricIngress.next.multicast_counter",
Daniele Moro5a2de712019-09-24 14:34:07 -07001201 "id" : 8,
Esin Karaman971fb7f2017-12-28 13:44:52 +00001202 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001203 "binding" : "FabricIngress.next.multicast",
1204 "source_info" : {
1205 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07001206 "line" : 228,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001207 "column" : 50,
1208 "source_fragment" : "multicast_counter"
1209 }
Esin Karaman971fb7f2017-12-28 13:44:52 +00001210 },
1211 {
1212 "name" : "FabricIngress.port_counters_control.egress_port_counter",
Daniele Moro5a2de712019-09-24 14:34:07 -07001213 "id" : 9,
Yi Tsengbe342052017-11-03 10:21:23 -07001214 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001215 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001216 "line" : 26,
Yi Tseng3d3956d2018-01-31 17:28:05 -08001217 "column" : 48,
Yi Tsengbe342052017-11-03 10:21:23 -07001218 "source_fragment" : "egress_port_counter"
1219 },
1220 "size" : 511,
1221 "is_direct" : false
1222 },
1223 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001224 "name" : "FabricIngress.port_counters_control.ingress_port_counter",
Daniele Moro5a2de712019-09-24 14:34:07 -07001225 "id" : 10,
Yi Tsengbe342052017-11-03 10:21:23 -07001226 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001227 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001228 "line" : 27,
Yi Tseng3d3956d2018-01-31 17:28:05 -08001229 "column" : 48,
Yi Tsengbe342052017-11-03 10:21:23 -07001230 "source_fragment" : "ingress_port_counter"
1231 },
1232 "size" : 511,
1233 "is_direct" : false
Yi Tseng47eac892018-07-11 02:17:04 +08001234 },
1235 {
1236 "name" : "FabricEgress.egress_next.egress_vlan_counter",
Daniele Moro5a2de712019-09-24 14:34:07 -07001237 "id" : 11,
Yi Tseng47eac892018-07-11 02:17:04 +08001238 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001239 "binding" : "FabricEgress.egress_next.egress_vlan",
1240 "source_info" : {
1241 "filename" : "include/control/next.p4",
pierventre48e78822020-12-15 17:34:54 +01001242 "line" : 314,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001243 "column" : 50,
1244 "source_fragment" : "egress_vlan_counter"
1245 }
Yi Tsengbe342052017-11-03 10:21:23 -07001246 }
1247 ],
1248 "register_arrays" : [],
1249 "calculations" : [
1250 {
1251 "name" : "calc",
1252 "id" : 0,
1253 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001254 "filename" : "include/checksum.p4",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001255 "line" : 28,
Yi Tsengbe342052017-11-03 10:21:23 -07001256 "column" : 8,
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001257 "source_fragment" : "update_checksum(hdr.ipv4.isValid(), ..."
Yi Tsengbe342052017-11-03 10:21:23 -07001258 },
1259 "algo" : "csum16",
1260 "input" : [
1261 {
1262 "type" : "field",
1263 "value" : ["ipv4", "version"]
1264 },
1265 {
1266 "type" : "field",
1267 "value" : ["ipv4", "ihl"]
1268 },
1269 {
1270 "type" : "field",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09001271 "value" : ["ipv4", "dscp"]
1272 },
1273 {
1274 "type" : "field",
1275 "value" : ["ipv4", "ecn"]
Yi Tsengbe342052017-11-03 10:21:23 -07001276 },
1277 {
1278 "type" : "field",
1279 "value" : ["ipv4", "total_len"]
1280 },
1281 {
1282 "type" : "field",
1283 "value" : ["ipv4", "identification"]
1284 },
1285 {
1286 "type" : "field",
1287 "value" : ["ipv4", "flags"]
1288 },
1289 {
1290 "type" : "field",
1291 "value" : ["ipv4", "frag_offset"]
1292 },
1293 {
1294 "type" : "field",
1295 "value" : ["ipv4", "ttl"]
1296 },
1297 {
1298 "type" : "field",
1299 "value" : ["ipv4", "protocol"]
1300 },
1301 {
1302 "type" : "field",
1303 "value" : ["ipv4", "src_addr"]
1304 },
1305 {
1306 "type" : "field",
1307 "value" : ["ipv4", "dst_addr"]
1308 }
1309 ]
1310 },
1311 {
1312 "name" : "calc_0",
1313 "id" : 1,
1314 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001315 "filename" : "include/checksum.p4",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09001316 "line" : 57,
Yi Tsengbe342052017-11-03 10:21:23 -07001317 "column" : 8,
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001318 "source_fragment" : "verify_checksum(hdr.ipv4.isValid(), ..."
Yi Tsengbe342052017-11-03 10:21:23 -07001319 },
1320 "algo" : "csum16",
1321 "input" : [
1322 {
1323 "type" : "field",
1324 "value" : ["ipv4", "version"]
1325 },
1326 {
1327 "type" : "field",
1328 "value" : ["ipv4", "ihl"]
1329 },
1330 {
1331 "type" : "field",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09001332 "value" : ["ipv4", "dscp"]
1333 },
1334 {
1335 "type" : "field",
1336 "value" : ["ipv4", "ecn"]
Yi Tsengbe342052017-11-03 10:21:23 -07001337 },
1338 {
1339 "type" : "field",
1340 "value" : ["ipv4", "total_len"]
1341 },
1342 {
1343 "type" : "field",
1344 "value" : ["ipv4", "identification"]
1345 },
1346 {
1347 "type" : "field",
1348 "value" : ["ipv4", "flags"]
1349 },
1350 {
1351 "type" : "field",
1352 "value" : ["ipv4", "frag_offset"]
1353 },
1354 {
1355 "type" : "field",
1356 "value" : ["ipv4", "ttl"]
1357 },
1358 {
1359 "type" : "field",
1360 "value" : ["ipv4", "protocol"]
1361 },
1362 {
1363 "type" : "field",
1364 "value" : ["ipv4", "src_addr"]
1365 },
1366 {
1367 "type" : "field",
1368 "value" : ["ipv4", "dst_addr"]
1369 }
1370 ]
Yi Tsengbe342052017-11-03 10:21:23 -07001371 }
1372 ],
1373 "learn_lists" : [],
1374 "actions" : [
1375 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001376 "name" : "nop",
Yi Tsengbe342052017-11-03 10:21:23 -07001377 "id" : 0,
1378 "runtime_data" : [],
1379 "primitives" : []
1380 },
1381 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001382 "name" : "nop",
Yi Tsengbe342052017-11-03 10:21:23 -07001383 "id" : 1,
1384 "runtime_data" : [],
1385 "primitives" : []
1386 },
1387 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001388 "name" : "nop",
Yi Tsengbe342052017-11-03 10:21:23 -07001389 "id" : 2,
1390 "runtime_data" : [],
Yi Tseng1d842672017-11-28 16:06:52 -08001391 "primitives" : []
Yi Tsengbe342052017-11-03 10:21:23 -07001392 },
1393 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001394 "name" : "nop",
Yi Tsengbe342052017-11-03 10:21:23 -07001395 "id" : 3,
1396 "runtime_data" : [],
Yi Tseng1d842672017-11-28 16:06:52 -08001397 "primitives" : []
Yi Tsengbe342052017-11-03 10:21:23 -07001398 },
1399 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001400 "name" : "nop",
Yi Tsengbe342052017-11-03 10:21:23 -07001401 "id" : 4,
1402 "runtime_data" : [],
1403 "primitives" : []
1404 },
1405 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001406 "name" : "nop",
Yi Tsengbe342052017-11-03 10:21:23 -07001407 "id" : 5,
1408 "runtime_data" : [],
1409 "primitives" : []
1410 },
1411 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07001412 "name" : "nop",
Yi Tsengbe342052017-11-03 10:21:23 -07001413 "id" : 6,
1414 "runtime_data" : [],
1415 "primitives" : []
1416 },
1417 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001418 "name" : "FabricIngress.filtering.deny",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07001419 "id" : 7,
Yi Tseng47eac892018-07-11 02:17:04 +08001420 "runtime_data" : [],
Yi Tseng1d842672017-11-28 16:06:52 -08001421 "primitives" : [
1422 {
Yi Tsengbe342052017-11-03 10:21:23 -07001423 "op" : "assign",
1424 "parameters" : [
1425 {
1426 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02001427 "value" : ["scalars", "userMetadata.skip_forwarding"]
Yi Tsengbe342052017-11-03 10:21:23 -07001428 },
1429 {
1430 "type" : "expression",
1431 "value" : {
1432 "type" : "expression",
1433 "value" : {
1434 "op" : "b2d",
1435 "left" : null,
1436 "right" : {
1437 "type" : "bool",
1438 "value" : true
1439 }
1440 }
1441 }
1442 }
1443 ],
1444 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001445 "filename" : "include/control/filtering.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001446 "line" : 36,
Yi Tsengbe342052017-11-03 10:21:23 -07001447 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001448 "source_fragment" : "fabric_metadata.skip_forwarding = true"
1449 }
1450 },
1451 {
1452 "op" : "assign",
1453 "parameters" : [
1454 {
1455 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02001456 "value" : ["scalars", "userMetadata.skip_next"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001457 },
1458 {
1459 "type" : "expression",
1460 "value" : {
1461 "type" : "expression",
1462 "value" : {
1463 "op" : "b2d",
1464 "left" : null,
1465 "right" : {
1466 "type" : "bool",
1467 "value" : true
1468 }
1469 }
1470 }
1471 }
1472 ],
1473 "source_info" : {
1474 "filename" : "include/control/filtering.p4",
1475 "line" : 37,
1476 "column" : 8,
1477 "source_fragment" : "fabric_metadata.skip_next = true"
Yi Tsengbe342052017-11-03 10:21:23 -07001478 }
1479 }
1480 ]
1481 },
1482 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001483 "name" : "FabricIngress.filtering.permit",
1484 "id" : 8,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07001485 "runtime_data" : [],
1486 "primitives" : []
1487 },
1488 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001489 "name" : "FabricIngress.filtering.permit_with_internal_vlan",
1490 "id" : 9,
1491 "runtime_data" : [
1492 {
1493 "name" : "vlan_id",
1494 "bitwidth" : 12
1495 }
1496 ],
1497 "primitives" : [
1498 {
1499 "op" : "assign",
1500 "parameters" : [
1501 {
1502 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02001503 "value" : ["scalars", "userMetadata.vlan_id"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001504 },
1505 {
1506 "type" : "runtime_data",
1507 "value" : 0
1508 }
1509 ],
1510 "source_info" : {
1511 "filename" : "include/control/filtering.p4",
1512 "line" : 47,
1513 "column" : 8,
1514 "source_fragment" : "fabric_metadata.vlan_id = vlan_id"
1515 }
1516 }
1517 ]
1518 },
1519 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001520 "name" : "FabricIngress.filtering.set_forwarding_type",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001521 "id" : 10,
Yi Tsengbe342052017-11-03 10:21:23 -07001522 "runtime_data" : [
1523 {
1524 "name" : "fwd_type",
1525 "bitwidth" : 3
1526 }
1527 ],
1528 "primitives" : [
1529 {
1530 "op" : "assign",
1531 "parameters" : [
1532 {
1533 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02001534 "value" : ["scalars", "userMetadata.fwd_type"]
Yi Tsengbe342052017-11-03 10:21:23 -07001535 },
1536 {
1537 "type" : "runtime_data",
1538 "value" : 0
1539 }
1540 ],
1541 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001542 "filename" : "include/control/filtering.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07001543 "line" : 88,
Yi Tsengbe342052017-11-03 10:21:23 -07001544 "column" : 8,
1545 "source_fragment" : "fabric_metadata.fwd_type = fwd_type"
1546 }
1547 }
1548 ]
1549 },
1550 {
Yi Tseng47eac892018-07-11 02:17:04 +08001551 "name" : "FabricIngress.forwarding.set_next_id_bridging",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001552 "id" : 11,
Carmelo Casconef645e842018-07-16 18:31:52 +02001553 "runtime_data" : [
1554 {
1555 "name" : "next_id",
1556 "bitwidth" : 32
1557 }
1558 ],
1559 "primitives" : [
1560 {
1561 "op" : "assign",
1562 "parameters" : [
1563 {
1564 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02001565 "value" : ["scalars", "userMetadata.next_id"]
Carmelo Casconef645e842018-07-16 18:31:52 +02001566 },
1567 {
1568 "type" : "runtime_data",
1569 "value" : 0
1570 }
1571 ],
1572 "source_info" : {
1573 "filename" : "include/control/forwarding.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001574 "line" : 30,
Carmelo Casconef645e842018-07-16 18:31:52 +02001575 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001576 "source_fragment" : "fabric_metadata.next_id = next_id; ..."
Carmelo Casconef645e842018-07-16 18:31:52 +02001577 }
1578 }
1579 ]
1580 },
1581 {
1582 "name" : "FabricIngress.forwarding.pop_mpls_and_next",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001583 "id" : 12,
Carmelo Casconef645e842018-07-16 18:31:52 +02001584 "runtime_data" : [
1585 {
1586 "name" : "next_id",
1587 "bitwidth" : 32
1588 }
1589 ],
1590 "primitives" : [
1591 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001592 "op" : "assign",
Carmelo Casconef645e842018-07-16 18:31:52 +02001593 "parameters" : [
1594 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001595 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02001596 "value" : ["scalars", "userMetadata.mpls_label"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001597 },
1598 {
1599 "type" : "hexstr",
1600 "value" : "0x000000"
Carmelo Casconef645e842018-07-16 18:31:52 +02001601 }
1602 ],
1603 "source_info" : {
1604 "filename" : "include/control/forwarding.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07001605 "line" : 66,
Carmelo Casconef645e842018-07-16 18:31:52 +02001606 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001607 "source_fragment" : "fabric_metadata.mpls_label = 0"
Carmelo Casconef645e842018-07-16 18:31:52 +02001608 }
1609 },
1610 {
1611 "op" : "assign",
1612 "parameters" : [
1613 {
1614 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02001615 "value" : ["scalars", "userMetadata.next_id"]
Carmelo Casconef645e842018-07-16 18:31:52 +02001616 },
1617 {
1618 "type" : "runtime_data",
1619 "value" : 0
1620 }
1621 ],
1622 "source_info" : {
1623 "filename" : "include/control/forwarding.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001624 "line" : 30,
Carmelo Casconef645e842018-07-16 18:31:52 +02001625 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001626 "source_fragment" : "fabric_metadata.next_id = next_id; ..."
Carmelo Casconef645e842018-07-16 18:31:52 +02001627 }
1628 }
1629 ]
1630 },
1631 {
Charles Chan384aea22018-08-23 22:08:02 -07001632 "name" : "FabricIngress.forwarding.set_next_id_routing_v4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001633 "id" : 13,
Carmelo Casconef645e842018-07-16 18:31:52 +02001634 "runtime_data" : [
1635 {
1636 "name" : "next_id",
1637 "bitwidth" : 32
1638 }
1639 ],
1640 "primitives" : [
1641 {
1642 "op" : "assign",
1643 "parameters" : [
1644 {
1645 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02001646 "value" : ["scalars", "userMetadata.next_id"]
Carmelo Casconef645e842018-07-16 18:31:52 +02001647 },
1648 {
1649 "type" : "runtime_data",
1650 "value" : 0
1651 }
1652 ],
1653 "source_info" : {
1654 "filename" : "include/control/forwarding.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001655 "line" : 30,
Carmelo Casconef645e842018-07-16 18:31:52 +02001656 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001657 "source_fragment" : "fabric_metadata.next_id = next_id; ..."
Carmelo Casconef645e842018-07-16 18:31:52 +02001658 }
1659 }
1660 ]
1661 },
1662 {
Charles Chancd03f072018-08-31 17:46:37 -07001663 "name" : "FabricIngress.forwarding.nop_routing_v4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001664 "id" : 14,
Charles Chancd03f072018-08-31 17:46:37 -07001665 "runtime_data" : [],
1666 "primitives" : []
1667 },
1668 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001669 "name" : "FabricIngress.acl.set_next_id_acl",
1670 "id" : 15,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001671 "runtime_data" : [
1672 {
1673 "name" : "next_id",
1674 "bitwidth" : 32
1675 }
1676 ],
1677 "primitives" : [
1678 {
Esin Karaman971fb7f2017-12-28 13:44:52 +00001679 "op" : "assign",
1680 "parameters" : [
1681 {
1682 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02001683 "value" : ["scalars", "userMetadata.next_id"]
Esin Karaman971fb7f2017-12-28 13:44:52 +00001684 },
1685 {
1686 "type" : "runtime_data",
1687 "value" : 0
1688 }
1689 ],
1690 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001691 "filename" : "include/control/acl.p4",
1692 "line" : 33,
Yi Tseng47eac892018-07-11 02:17:04 +08001693 "column" : 8,
1694 "source_fragment" : "fabric_metadata.next_id = next_id"
1695 }
1696 }
1697 ]
1698 },
1699 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001700 "name" : "FabricIngress.acl.punt_to_cpu",
1701 "id" : 16,
Yi Tsengbe342052017-11-03 10:21:23 -07001702 "runtime_data" : [],
1703 "primitives" : [
1704 {
1705 "op" : "assign",
1706 "parameters" : [
1707 {
1708 "type" : "field",
Yi Tsengbe342052017-11-03 10:21:23 -07001709 "value" : ["standard_metadata", "egress_spec"]
1710 },
1711 {
1712 "type" : "hexstr",
1713 "value" : "0x00ff"
1714 }
1715 ],
1716 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001717 "filename" : "include/control/acl.p4",
1718 "line" : 39,
Carmelo Casconeb531b682018-01-30 17:55:56 -08001719 "column" : 8,
1720 "source_fragment" : "standard_metadata.egress_spec = 255"
Yi Tsengbe342052017-11-03 10:21:23 -07001721 }
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001722 },
1723 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001724 "op" : "assign",
1725 "parameters" : [
1726 {
1727 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02001728 "value" : ["scalars", "userMetadata.skip_next"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001729 },
1730 {
1731 "type" : "expression",
1732 "value" : {
1733 "type" : "expression",
1734 "value" : {
1735 "op" : "b2d",
1736 "left" : null,
1737 "right" : {
1738 "type" : "bool",
1739 "value" : true
1740 }
1741 }
1742 }
1743 }
1744 ],
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001745 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001746 "filename" : "include/control/acl.p4",
1747 "line" : 40,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001748 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001749 "source_fragment" : "fabric_metadata.skip_next = true"
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001750 }
1751 }
1752 ]
1753 },
1754 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07001755 "name" : "FabricIngress.acl.set_clone_session_id",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001756 "id" : 17,
Daniele Moro01ca2ab2019-06-25 11:48:48 -07001757 "runtime_data" : [
1758 {
1759 "name" : "clone_id",
1760 "bitwidth" : 32
1761 }
1762 ],
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001763 "primitives" : [
1764 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07001765 "op" : "clone_ingress_pkt_to_egress",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001766 "parameters" : [
1767 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07001768 "type" : "runtime_data",
1769 "value" : 0
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001770 },
1771 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07001772 "type" : "hexstr",
1773 "value" : "0x1"
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001774 }
1775 ],
1776 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001777 "filename" : "include/control/acl.p4",
1778 "line" : 46,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001779 "column" : 8,
Daniele Moro3b7a21b2019-06-25 17:33:40 -07001780 "source_fragment" : "clone3(CloneType.I2E, clone_id, {standard_metadata.ingress_port})"
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001781 }
Yi Tsengbe342052017-11-03 10:21:23 -07001782 }
1783 ]
1784 },
1785 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001786 "name" : "FabricIngress.acl.drop",
1787 "id" : 18,
Yi Tseng47eac892018-07-11 02:17:04 +08001788 "runtime_data" : [],
1789 "primitives" : [
1790 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07001791 "op" : "mark_to_drop",
1792 "parameters" : [
1793 {
1794 "type" : "header",
1795 "value" : "standard_metadata"
1796 }
1797 ],
Yi Tseng47eac892018-07-11 02:17:04 +08001798 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001799 "filename" : "include/control/acl.p4",
1800 "line" : 51,
Yi Tseng47eac892018-07-11 02:17:04 +08001801 "column" : 8,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07001802 "source_fragment" : "mark_to_drop(standard_metadata)"
Yi Tseng47eac892018-07-11 02:17:04 +08001803 }
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001804 },
1805 {
1806 "op" : "assign",
1807 "parameters" : [
1808 {
1809 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02001810 "value" : ["scalars", "userMetadata.skip_next"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001811 },
1812 {
1813 "type" : "expression",
1814 "value" : {
1815 "type" : "expression",
1816 "value" : {
1817 "op" : "b2d",
1818 "left" : null,
1819 "right" : {
1820 "type" : "bool",
1821 "value" : true
1822 }
1823 }
1824 }
1825 }
1826 ],
1827 "source_info" : {
1828 "filename" : "include/control/acl.p4",
1829 "line" : 52,
1830 "column" : 8,
1831 "source_fragment" : "fabric_metadata.skip_next = true"
1832 }
Yi Tseng47eac892018-07-11 02:17:04 +08001833 }
1834 ]
1835 },
1836 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001837 "name" : "FabricIngress.acl.nop_acl",
1838 "id" : 19,
Charles Chancf696e52018-08-16 16:25:13 -07001839 "runtime_data" : [],
1840 "primitives" : []
1841 },
1842 {
Yi Tseng47eac892018-07-11 02:17:04 +08001843 "name" : "FabricIngress.next.set_vlan",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001844 "id" : 20,
1845 "runtime_data" : [
1846 {
1847 "name" : "vlan_id",
1848 "bitwidth" : 12
1849 }
1850 ],
1851 "primitives" : [
1852 {
1853 "op" : "assign",
1854 "parameters" : [
1855 {
1856 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02001857 "value" : ["scalars", "userMetadata.vlan_id"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001858 },
1859 {
1860 "type" : "runtime_data",
1861 "value" : 0
1862 }
1863 ],
1864 "source_info" : {
1865 "filename" : "include/control/next.p4",
1866 "line" : 70,
1867 "column" : 8,
1868 "source_fragment" : "fabric_metadata.vlan_id = vlan_id"
1869 }
1870 }
1871 ]
1872 },
1873 {
1874 "name" : "FabricIngress.next.output_xconnect",
Charles Chancd03f072018-08-31 17:46:37 -07001875 "id" : 21,
Yi Tseng47eac892018-07-11 02:17:04 +08001876 "runtime_data" : [
1877 {
Yi Tsengbe342052017-11-03 10:21:23 -07001878 "name" : "port_num",
1879 "bitwidth" : 9
1880 }
1881 ],
1882 "primitives" : [
1883 {
1884 "op" : "assign",
1885 "parameters" : [
1886 {
1887 "type" : "field",
1888 "value" : ["standard_metadata", "egress_spec"]
1889 },
1890 {
1891 "type" : "runtime_data",
1892 "value" : 0
1893 }
1894 ],
1895 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001896 "filename" : "include/control/next.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001897 "line" : 31,
1898 "column" : 5,
Yi Tseng47eac892018-07-11 02:17:04 +08001899 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
1900 }
1901 }
1902 ]
1903 },
1904 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001905 "name" : "FabricIngress.next.set_next_id_xconnect",
1906 "id" : 22,
1907 "runtime_data" : [
1908 {
1909 "name" : "next_id",
1910 "bitwidth" : 32
1911 }
1912 ],
1913 "primitives" : [
1914 {
1915 "op" : "assign",
1916 "parameters" : [
1917 {
1918 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02001919 "value" : ["scalars", "userMetadata.next_id"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001920 },
1921 {
1922 "type" : "runtime_data",
1923 "value" : 0
1924 }
1925 ],
1926 "source_info" : {
1927 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07001928 "line" : 115,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001929 "column" : 8,
1930 "source_fragment" : "fabric_metadata.next_id = next_id"
1931 }
1932 }
1933 ]
1934 },
1935 {
1936 "name" : "FabricIngress.next.output_hashed",
1937 "id" : 23,
1938 "runtime_data" : [
1939 {
1940 "name" : "port_num",
1941 "bitwidth" : 9
1942 }
1943 ],
1944 "primitives" : [
1945 {
1946 "op" : "assign",
1947 "parameters" : [
1948 {
1949 "type" : "field",
1950 "value" : ["standard_metadata", "egress_spec"]
1951 },
1952 {
1953 "type" : "runtime_data",
1954 "value" : 0
1955 }
1956 ],
1957 "source_info" : {
1958 "filename" : "include/control/next.p4",
1959 "line" : 31,
1960 "column" : 5,
1961 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
1962 }
1963 }
1964 ]
1965 },
1966 {
1967 "name" : "FabricIngress.next.routing_hashed",
Charles Chancd03f072018-08-31 17:46:37 -07001968 "id" : 24,
Yi Tseng47eac892018-07-11 02:17:04 +08001969 "runtime_data" : [
1970 {
1971 "name" : "port_num",
1972 "bitwidth" : 9
1973 },
1974 {
1975 "name" : "smac",
1976 "bitwidth" : 48
1977 },
1978 {
1979 "name" : "dmac",
1980 "bitwidth" : 48
1981 }
1982 ],
1983 "primitives" : [
1984 {
1985 "op" : "assign",
1986 "parameters" : [
1987 {
1988 "type" : "field",
1989 "value" : ["ethernet", "src_addr"]
1990 },
1991 {
1992 "type" : "runtime_data",
1993 "value" : 1
1994 }
1995 ],
1996 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001997 "filename" : "include/control/next.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001998 "line" : 36,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001999 "column" : 8,
Yi Tseng47eac892018-07-11 02:17:04 +08002000 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2001 }
2002 },
2003 {
2004 "op" : "assign",
2005 "parameters" : [
2006 {
2007 "type" : "field",
2008 "value" : ["ethernet", "dst_addr"]
2009 },
2010 {
2011 "type" : "runtime_data",
2012 "value" : 2
2013 }
2014 ],
2015 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002016 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002017 "line" : 41,
2018 "column" : 8,
2019 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2020 }
2021 },
2022 {
2023 "op" : "assign",
2024 "parameters" : [
2025 {
2026 "type" : "field",
2027 "value" : ["standard_metadata", "egress_spec"]
2028 },
2029 {
2030 "type" : "runtime_data",
2031 "value" : 0
2032 }
2033 ],
2034 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002035 "filename" : "include/control/next.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002036 "line" : 31,
2037 "column" : 5,
Yi Tseng47eac892018-07-11 02:17:04 +08002038 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002039 }
2040 }
2041 ]
2042 },
2043 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002044 "name" : "FabricIngress.next.mpls_routing_hashed",
Carmelo Casconef645e842018-07-16 18:31:52 +02002045 "id" : 25,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002046 "runtime_data" : [
2047 {
2048 "name" : "port_num",
2049 "bitwidth" : 9
2050 },
2051 {
2052 "name" : "smac",
2053 "bitwidth" : 48
2054 },
2055 {
2056 "name" : "dmac",
2057 "bitwidth" : 48
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002058 },
2059 {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002060 "name" : "label",
2061 "bitwidth" : 20
Yi Tsengbe342052017-11-03 10:21:23 -07002062 }
2063 ],
2064 "primitives" : [
2065 {
2066 "op" : "assign",
2067 "parameters" : [
2068 {
2069 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02002070 "value" : ["scalars", "userMetadata.mpls_label"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002071 },
2072 {
2073 "type" : "runtime_data",
2074 "value" : 3
2075 }
2076 ],
2077 "source_info" : {
2078 "filename" : "include/control/next.p4",
2079 "line" : 46,
2080 "column" : 8,
2081 "source_fragment" : "fabric_metadata.mpls_label = label; ..."
2082 }
2083 },
2084 {
2085 "op" : "assign",
2086 "parameters" : [
2087 {
2088 "type" : "field",
Yi Tsengbe342052017-11-03 10:21:23 -07002089 "value" : ["ethernet", "src_addr"]
2090 },
2091 {
2092 "type" : "runtime_data",
2093 "value" : 1
2094 }
2095 ],
2096 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002097 "filename" : "include/control/next.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002098 "line" : 36,
Yi Tsengbe342052017-11-03 10:21:23 -07002099 "column" : 8,
2100 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2101 }
2102 },
2103 {
2104 "op" : "assign",
2105 "parameters" : [
2106 {
2107 "type" : "field",
2108 "value" : ["ethernet", "dst_addr"]
2109 },
2110 {
2111 "type" : "runtime_data",
2112 "value" : 2
2113 }
2114 ],
2115 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002116 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002117 "line" : 41,
Yi Tsengbe342052017-11-03 10:21:23 -07002118 "column" : 8,
2119 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2120 }
2121 },
2122 {
2123 "op" : "assign",
2124 "parameters" : [
2125 {
2126 "type" : "field",
2127 "value" : ["standard_metadata", "egress_spec"]
2128 },
2129 {
2130 "type" : "runtime_data",
2131 "value" : 0
2132 }
2133 ],
2134 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002135 "filename" : "include/control/next.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002136 "line" : 31,
2137 "column" : 5,
Yi Tsengbe342052017-11-03 10:21:23 -07002138 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2139 }
Yi Tsengbe342052017-11-03 10:21:23 -07002140 }
2141 ]
2142 },
2143 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002144 "name" : "FabricIngress.next.set_mcast_group_id",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002145 "id" : 26,
2146 "runtime_data" : [
2147 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002148 "name" : "group_id",
Esin Karaman971fb7f2017-12-28 13:44:52 +00002149 "bitwidth" : 16
2150 }
2151 ],
2152 "primitives" : [
2153 {
2154 "op" : "assign",
2155 "parameters" : [
2156 {
2157 "type" : "field",
2158 "value" : ["standard_metadata", "mcast_grp"]
2159 },
2160 {
2161 "type" : "runtime_data",
2162 "value" : 0
2163 }
2164 ],
2165 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002166 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07002167 "line" : 231,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002168 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002169 "source_fragment" : "standard_metadata.mcast_grp = group_id"
Esin Karaman971fb7f2017-12-28 13:44:52 +00002170 }
Carmelo Casconea5400af2018-07-17 22:11:54 +02002171 },
2172 {
2173 "op" : "assign",
2174 "parameters" : [
2175 {
2176 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02002177 "value" : ["scalars", "userMetadata.is_multicast"]
Carmelo Casconea5400af2018-07-17 22:11:54 +02002178 },
2179 {
2180 "type" : "expression",
2181 "value" : {
2182 "type" : "expression",
2183 "value" : {
2184 "op" : "b2d",
2185 "left" : null,
2186 "right" : {
2187 "type" : "bool",
2188 "value" : true
2189 }
2190 }
2191 }
2192 }
2193 ],
2194 "source_info" : {
2195 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07002196 "line" : 232,
Carmelo Casconea5400af2018-07-17 22:11:54 +02002197 "column" : 8,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002198 "source_fragment" : "fabric_metadata.is_multicast = true"
Carmelo Casconea5400af2018-07-17 22:11:54 +02002199 }
Esin Karaman971fb7f2017-12-28 13:44:52 +00002200 }
2201 ]
2202 },
2203 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02002204 "name" : "packetio25",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002205 "id" : 27,
Yi Tsengbe342052017-11-03 10:21:23 -07002206 "runtime_data" : [],
2207 "primitives" : [
2208 {
2209 "op" : "assign",
2210 "parameters" : [
2211 {
2212 "type" : "field",
2213 "value" : ["standard_metadata", "egress_spec"]
2214 },
2215 {
2216 "type" : "field",
2217 "value" : ["packet_out", "egress_port"]
2218 }
2219 ],
2220 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002221 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002222 "line" : 25,
Yi Tsengbe342052017-11-03 10:21:23 -07002223 "column" : 12,
2224 "source_fragment" : "standard_metadata.egress_spec = hdr.packet_out.egress_port"
2225 }
Yi Tseng1d842672017-11-28 16:06:52 -08002226 },
2227 {
2228 "op" : "remove_header",
2229 "parameters" : [
2230 {
2231 "type" : "header",
2232 "value" : "packet_out"
2233 }
2234 ],
2235 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002236 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002237 "line" : 26,
Yi Tseng1d842672017-11-28 16:06:52 -08002238 "column" : 12,
2239 "source_fragment" : "hdr.packet_out.setInvalid()"
2240 }
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07002241 },
2242 {
2243 "op" : "assign",
2244 "parameters" : [
2245 {
2246 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02002247 "value" : ["scalars", "userMetadata.is_controller_packet_out"]
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07002248 },
2249 {
2250 "type" : "expression",
2251 "value" : {
2252 "type" : "expression",
2253 "value" : {
2254 "op" : "b2d",
2255 "left" : null,
2256 "right" : {
2257 "type" : "bool",
2258 "value" : true
2259 }
2260 }
2261 }
2262 }
2263 ],
2264 "source_info" : {
2265 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002266 "line" : 27,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07002267 "column" : 12,
2268 "source_fragment" : "fabric_metadata.is_controller_packet_out = true"
2269 }
Carmelo Cascone9b607da2019-05-08 14:03:01 -07002270 },
2271 {
2272 "op" : "exit",
2273 "parameters" : [],
2274 "source_info" : {
2275 "filename" : "include/control/packetio.p4",
2276 "line" : 29,
2277 "column" : 12,
2278 "source_fragment" : "exit"
2279 }
Yi Tsengbe342052017-11-03 10:21:23 -07002280 }
2281 ]
2282 },
2283 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02002284 "name" : "filtering111",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002285 "id" : 28,
Yi Tsengbe342052017-11-03 10:21:23 -07002286 "runtime_data" : [],
2287 "primitives" : [
2288 {
2289 "op" : "assign",
2290 "parameters" : [
2291 {
2292 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02002293 "value" : ["scalars", "userMetadata.vlan_id"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002294 },
2295 {
2296 "type" : "field",
2297 "value" : ["vlan_tag", "vlan_id"]
2298 }
2299 ],
2300 "source_info" : {
2301 "filename" : "include/control/filtering.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07002302 "line" : 111,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002303 "column" : 12,
2304 "source_fragment" : "fabric_metadata.vlan_id = hdr.vlan_tag.vlan_id"
2305 }
2306 },
2307 {
2308 "op" : "assign",
2309 "parameters" : [
2310 {
2311 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02002312 "value" : ["scalars", "userMetadata.vlan_pri"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002313 },
2314 {
2315 "type" : "field",
2316 "value" : ["vlan_tag", "pri"]
2317 }
2318 ],
2319 "source_info" : {
2320 "filename" : "include/control/filtering.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07002321 "line" : 112,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002322 "column" : 12,
2323 "source_fragment" : "fabric_metadata.vlan_pri = hdr.vlan_tag.pri"
2324 }
2325 },
2326 {
2327 "op" : "assign",
2328 "parameters" : [
2329 {
2330 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02002331 "value" : ["scalars", "userMetadata.vlan_cfi"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002332 },
2333 {
2334 "type" : "field",
2335 "value" : ["vlan_tag", "cfi"]
2336 }
2337 ],
2338 "source_info" : {
2339 "filename" : "include/control/filtering.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07002340 "line" : 113,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002341 "column" : 12,
2342 "source_fragment" : "fabric_metadata.vlan_cfi = hdr.vlan_tag.cfi"
2343 }
Yi Tseng1d842672017-11-28 16:06:52 -08002344 }
2345 ]
2346 },
2347 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02002348 "name" : "filtering127",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002349 "id" : 29,
Yi Tseng1d842672017-11-28 16:06:52 -08002350 "runtime_data" : [],
2351 "primitives" : [
2352 {
2353 "op" : "assign",
2354 "parameters" : [
2355 {
2356 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02002357 "value" : ["scalars", "userMetadata.mpls_ttl"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002358 },
2359 {
2360 "type" : "hexstr",
2361 "value" : "0x41"
2362 }
2363 ],
2364 "source_info" : {
2365 "filename" : "include/control/filtering.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07002366 "line" : 127,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002367 "column" : 12,
2368 "source_fragment" : "fabric_metadata.mpls_ttl = DEFAULT_MPLS_TTL + 1"
2369 }
2370 }
2371 ]
2372 },
2373 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02002374 "name" : "port_counter31",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002375 "id" : 30,
2376 "runtime_data" : [],
2377 "primitives" : [
2378 {
2379 "op" : "assign",
2380 "parameters" : [
2381 {
2382 "type" : "field",
pierventre48e78822020-12-15 17:34:54 +01002383 "value" : ["scalars", "tmp_2"]
Yi Tseng1d842672017-11-28 16:06:52 -08002384 },
2385 {
2386 "type" : "expression",
2387 "value" : {
2388 "type" : "expression",
2389 "value" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002390 "op" : "&",
2391 "left" : {
2392 "type" : "field",
2393 "value" : ["standard_metadata", "egress_spec"]
2394 },
Yi Tseng1d842672017-11-28 16:06:52 -08002395 "right" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002396 "type" : "hexstr",
2397 "value" : "0xffffffff"
Yi Tseng1d842672017-11-28 16:06:52 -08002398 }
2399 }
2400 }
2401 }
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002402 ],
2403 "source_info" : {
2404 "filename" : "include/control/port_counter.p4",
2405 "line" : 31,
2406 "column" : 38,
2407 "source_fragment" : "(bit<32>)standard_metadata.egress_spec"
2408 }
2409 },
Carmelo Casconea5400af2018-07-17 22:11:54 +02002410 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002411 "op" : "count",
Carmelo Casconea5400af2018-07-17 22:11:54 +02002412 "parameters" : [
2413 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002414 "type" : "counter_array",
2415 "value" : "FabricIngress.port_counters_control.egress_port_counter"
Carmelo Casconea5400af2018-07-17 22:11:54 +02002416 },
2417 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002418 "type" : "field",
pierventre48e78822020-12-15 17:34:54 +01002419 "value" : ["scalars", "tmp_2"]
Carmelo Casconea5400af2018-07-17 22:11:54 +02002420 }
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002421 ],
2422 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002423 "filename" : "include/control/port_counter.p4",
2424 "line" : 31,
2425 "column" : 12,
2426 "source_fragment" : "egress_port_counter.count((bit<32>)standard_metadata.egress_spec)"
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002427 }
Carmelo Casconea5400af2018-07-17 22:11:54 +02002428 }
2429 ]
2430 },
2431 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02002432 "name" : "port_counter34",
Daniele Moro5a2de712019-09-24 14:34:07 -07002433 "id" : 31,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002434 "runtime_data" : [],
2435 "primitives" : [
2436 {
2437 "op" : "assign",
2438 "parameters" : [
2439 {
2440 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02002441 "value" : ["scalars", "tmp_4"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002442 },
2443 {
2444 "type" : "expression",
2445 "value" : {
2446 "type" : "expression",
2447 "value" : {
2448 "op" : "&",
2449 "left" : {
2450 "type" : "field",
2451 "value" : ["standard_metadata", "ingress_port"]
2452 },
2453 "right" : {
2454 "type" : "hexstr",
2455 "value" : "0xffffffff"
2456 }
2457 }
2458 }
2459 }
2460 ],
2461 "source_info" : {
2462 "filename" : "include/control/port_counter.p4",
2463 "line" : 34,
2464 "column" : 39,
2465 "source_fragment" : "(bit<32>)standard_metadata.ingress_port"
2466 }
2467 },
2468 {
2469 "op" : "count",
2470 "parameters" : [
2471 {
2472 "type" : "counter_array",
2473 "value" : "FabricIngress.port_counters_control.ingress_port_counter"
2474 },
2475 {
2476 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02002477 "value" : ["scalars", "tmp_4"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002478 }
2479 ],
2480 "source_info" : {
2481 "filename" : "include/control/port_counter.p4",
2482 "line" : 34,
2483 "column" : 12,
2484 "source_fragment" : "ingress_port_counter.count((bit<32>)standard_metadata.ingress_port)"
2485 }
2486 }
2487 ]
2488 },
2489 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002490 "name" : "FabricEgress.egress_next.pop_mpls_if_present",
pierventre48e78822020-12-15 17:34:54 +01002491 "id" : 32,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002492 "runtime_data" : [],
2493 "primitives" : [
2494 {
2495 "op" : "remove_header",
2496 "parameters" : [
2497 {
2498 "type" : "header",
2499 "value" : "mpls"
2500 }
2501 ],
2502 "source_info" : {
2503 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07002504 "line" : 270,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002505 "column" : 8,
2506 "source_fragment" : "hdr.mpls.setInvalid()"
2507 }
2508 },
2509 {
2510 "op" : "assign",
2511 "parameters" : [
2512 {
2513 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07002514 "value" : ["eth_type", "value"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002515 },
2516 {
2517 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02002518 "value" : ["scalars", "userMetadata.ip_eth_type"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002519 }
2520 ],
2521 "source_info" : {
2522 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07002523 "line" : 272,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002524 "column" : 8,
Daniele Moro5a2de712019-09-24 14:34:07 -07002525 "source_fragment" : "hdr.eth_type.value = fabric_metadata.ip_eth_type"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002526 }
2527 }
2528 ]
2529 },
2530 {
2531 "name" : "FabricEgress.egress_next.set_mpls",
pierventre48e78822020-12-15 17:34:54 +01002532 "id" : 33,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002533 "runtime_data" : [],
2534 "primitives" : [
2535 {
2536 "op" : "add_header",
2537 "parameters" : [
2538 {
2539 "type" : "header",
2540 "value" : "mpls"
2541 }
2542 ],
2543 "source_info" : {
2544 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07002545 "line" : 277,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002546 "column" : 8,
2547 "source_fragment" : "hdr.mpls.setValid()"
2548 }
2549 },
2550 {
2551 "op" : "assign",
2552 "parameters" : [
2553 {
2554 "type" : "field",
2555 "value" : ["mpls", "label"]
2556 },
2557 {
2558 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02002559 "value" : ["scalars", "userMetadata.mpls_label"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002560 }
2561 ],
2562 "source_info" : {
2563 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07002564 "line" : 278,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002565 "column" : 8,
2566 "source_fragment" : "hdr.mpls.label = fabric_metadata.mpls_label"
2567 }
2568 },
2569 {
2570 "op" : "assign",
2571 "parameters" : [
2572 {
2573 "type" : "field",
2574 "value" : ["mpls", "tc"]
2575 },
2576 {
2577 "type" : "hexstr",
2578 "value" : "0x00"
2579 }
2580 ],
2581 "source_info" : {
2582 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07002583 "line" : 279,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002584 "column" : 8,
2585 "source_fragment" : "hdr.mpls.tc = 3w0"
2586 }
2587 },
2588 {
2589 "op" : "assign",
2590 "parameters" : [
2591 {
2592 "type" : "field",
2593 "value" : ["mpls", "bos"]
2594 },
2595 {
2596 "type" : "hexstr",
2597 "value" : "0x01"
2598 }
2599 ],
2600 "source_info" : {
2601 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07002602 "line" : 280,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002603 "column" : 8,
2604 "source_fragment" : "hdr.mpls.bos = 1w1"
2605 }
2606 },
2607 {
2608 "op" : "assign",
2609 "parameters" : [
2610 {
2611 "type" : "field",
2612 "value" : ["mpls", "ttl"]
2613 },
2614 {
2615 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02002616 "value" : ["scalars", "userMetadata.mpls_ttl"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002617 }
2618 ],
2619 "source_info" : {
2620 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07002621 "line" : 281,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002622 "column" : 8,
2623 "source_fragment" : "hdr.mpls.ttl = fabric_metadata.mpls_ttl"
2624 }
2625 },
2626 {
2627 "op" : "assign",
2628 "parameters" : [
2629 {
2630 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07002631 "value" : ["eth_type", "value"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002632 },
2633 {
2634 "type" : "hexstr",
2635 "value" : "0x8847"
2636 }
2637 ],
2638 "source_info" : {
2639 "filename" : "include/control/../define.p4",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02002640 "line" : 118,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002641 "column" : 31,
2642 "source_fragment" : "0x8847; ..."
2643 }
2644 }
2645 ]
2646 },
2647 {
2648 "name" : "FabricEgress.egress_next.push_vlan",
pierventre48e78822020-12-15 17:34:54 +01002649 "id" : 34,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002650 "runtime_data" : [],
2651 "primitives" : [
2652 {
2653 "op" : "add_header",
2654 "parameters" : [
2655 {
2656 "type" : "header",
2657 "value" : "vlan_tag"
2658 }
2659 ],
2660 "source_info" : {
2661 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07002662 "line" : 289,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002663 "column" : 8,
2664 "source_fragment" : "hdr.vlan_tag.setValid()"
2665 }
2666 },
2667 {
2668 "op" : "assign",
2669 "parameters" : [
2670 {
2671 "type" : "field",
2672 "value" : ["vlan_tag", "cfi"]
2673 },
2674 {
2675 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02002676 "value" : ["scalars", "userMetadata.vlan_cfi"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002677 }
2678 ],
2679 "source_info" : {
2680 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07002681 "line" : 290,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002682 "column" : 8,
2683 "source_fragment" : "hdr.vlan_tag.cfi = fabric_metadata.vlan_cfi"
2684 }
2685 },
2686 {
2687 "op" : "assign",
2688 "parameters" : [
2689 {
2690 "type" : "field",
2691 "value" : ["vlan_tag", "pri"]
2692 },
2693 {
2694 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02002695 "value" : ["scalars", "userMetadata.vlan_pri"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002696 }
2697 ],
2698 "source_info" : {
2699 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07002700 "line" : 291,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002701 "column" : 8,
2702 "source_fragment" : "hdr.vlan_tag.pri = fabric_metadata.vlan_pri"
2703 }
2704 },
2705 {
2706 "op" : "assign",
2707 "parameters" : [
2708 {
2709 "type" : "field",
2710 "value" : ["vlan_tag", "eth_type"]
2711 },
2712 {
Daniele Moro5a2de712019-09-24 14:34:07 -07002713 "type" : "hexstr",
2714 "value" : "0x8100"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002715 }
2716 ],
2717 "source_info" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07002718 "filename" : "include/control/../define.p4",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02002719 "line" : 117,
Daniele Moro5a2de712019-09-24 14:34:07 -07002720 "column" : 31,
2721 "source_fragment" : "0x8100; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002722 }
2723 },
2724 {
2725 "op" : "assign",
2726 "parameters" : [
2727 {
2728 "type" : "field",
2729 "value" : ["vlan_tag", "vlan_id"]
2730 },
2731 {
2732 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02002733 "value" : ["scalars", "userMetadata.vlan_id"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002734 }
2735 ],
2736 "source_info" : {
2737 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07002738 "line" : 293,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002739 "column" : 8,
2740 "source_fragment" : "hdr.vlan_tag.vlan_id = fabric_metadata.vlan_id"
2741 }
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002742 }
2743 ]
2744 },
2745 {
2746 "name" : "FabricEgress.egress_next.pop_vlan",
pierventre48e78822020-12-15 17:34:54 +01002747 "id" : 35,
Yi Tseng1d842672017-11-28 16:06:52 -08002748 "runtime_data" : [],
2749 "primitives" : [
2750 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002751 "op" : "remove_header",
2752 "parameters" : [
2753 {
2754 "type" : "header",
2755 "value" : "vlan_tag"
2756 }
2757 ],
2758 "source_info" : {
2759 "filename" : "include/control/next.p4",
pierventre48e78822020-12-15 17:34:54 +01002760 "line" : 322,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002761 "column" : 8,
2762 "source_fragment" : "hdr.vlan_tag.setInvalid()"
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002763 }
Carmelo Casconea5400af2018-07-17 22:11:54 +02002764 }
2765 ]
2766 },
2767 {
pierventre48e78822020-12-15 17:34:54 +01002768 "name" : "FabricEgress.egress_next.drop",
2769 "id" : 36,
2770 "runtime_data" : [],
2771 "primitives" : [
2772 {
2773 "op" : "mark_to_drop",
2774 "parameters" : [
2775 {
2776 "type" : "header",
2777 "value" : "standard_metadata"
2778 }
2779 ],
2780 "source_info" : {
2781 "filename" : "include/control/next.p4",
2782 "line" : 327,
2783 "column" : 8,
2784 "source_fragment" : "mark_to_drop(standard_metadata)"
2785 }
2786 }
2787 ]
2788 },
2789 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02002790 "name" : "packetio41",
Daniele Moro5a2de712019-09-24 14:34:07 -07002791 "id" : 37,
Carmelo Casconea5400af2018-07-17 22:11:54 +02002792 "runtime_data" : [],
2793 "primitives" : [
2794 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07002795 "op" : "exit",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002796 "parameters" : [],
2797 "source_info" : {
2798 "filename" : "include/control/packetio.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07002799 "line" : 41,
2800 "column" : 12,
2801 "source_fragment" : "exit"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002802 }
Carmelo Casconea5400af2018-07-17 22:11:54 +02002803 }
2804 ]
2805 },
2806 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02002807 "name" : "packetio44",
Daniele Moro5a2de712019-09-24 14:34:07 -07002808 "id" : 38,
Carmelo Casconea5400af2018-07-17 22:11:54 +02002809 "runtime_data" : [],
2810 "primitives" : [
2811 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002812 "op" : "add_header",
2813 "parameters" : [
2814 {
2815 "type" : "header",
2816 "value" : "packet_in"
2817 }
2818 ],
2819 "source_info" : {
2820 "filename" : "include/control/packetio.p4",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07002821 "line" : 44,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002822 "column" : 12,
2823 "source_fragment" : "hdr.packet_in.setValid()"
2824 }
2825 },
2826 {
Carmelo Casconea5400af2018-07-17 22:11:54 +02002827 "op" : "assign",
2828 "parameters" : [
2829 {
2830 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002831 "value" : ["packet_in", "ingress_port"]
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002832 },
2833 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002834 "type" : "field",
2835 "value" : ["standard_metadata", "ingress_port"]
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002836 }
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002837 ],
2838 "source_info" : {
2839 "filename" : "include/control/packetio.p4",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07002840 "line" : 45,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002841 "column" : 12,
2842 "source_fragment" : "hdr.packet_in.ingress_port = standard_metadata.ingress_port"
2843 }
Carmelo Cascone9b607da2019-05-08 14:03:01 -07002844 },
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002845 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07002846 "op" : "exit",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002847 "parameters" : [],
2848 "source_info" : {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07002849 "filename" : "include/control/packetio.p4",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07002850 "line" : 47,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002851 "column" : 12,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07002852 "source_fragment" : "exit"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002853 }
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002854 }
2855 ]
2856 },
2857 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02002858 "name" : "next349",
Daniele Moro5a2de712019-09-24 14:34:07 -07002859 "id" : 39,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002860 "runtime_data" : [],
2861 "primitives" : [
2862 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07002863 "op" : "mark_to_drop",
2864 "parameters" : [
2865 {
2866 "type" : "header",
2867 "value" : "standard_metadata"
2868 }
2869 ],
2870 "source_info" : {
2871 "filename" : "include/control/next.p4",
pierventre48e78822020-12-15 17:34:54 +01002872 "line" : 349,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07002873 "column" : 12,
2874 "source_fragment" : "mark_to_drop(standard_metadata)"
2875 }
2876 }
2877 ]
2878 },
2879 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02002880 "name" : "next376",
Daniele Moro5a2de712019-09-24 14:34:07 -07002881 "id" : 40,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07002882 "runtime_data" : [],
2883 "primitives" : [
2884 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07002885 "op" : "mark_to_drop",
2886 "parameters" : [
2887 {
2888 "type" : "header",
2889 "value" : "standard_metadata"
2890 }
2891 ],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002892 "source_info" : {
2893 "filename" : "include/control/next.p4",
pierventre48e78822020-12-15 17:34:54 +01002894 "line" : 376,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002895 "column" : 35,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07002896 "source_fragment" : "mark_to_drop(standard_metadata)"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002897 }
Carmelo Casconea5400af2018-07-17 22:11:54 +02002898 }
2899 ]
2900 },
2901 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02002902 "name" : "next375",
pierventre48e78822020-12-15 17:34:54 +01002903 "id" : 41,
Carmelo Casconea5400af2018-07-17 22:11:54 +02002904 "runtime_data" : [],
2905 "primitives" : [
2906 {
2907 "op" : "assign",
2908 "parameters" : [
2909 {
2910 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002911 "value" : ["mpls", "ttl"]
Carmelo Casconea5400af2018-07-17 22:11:54 +02002912 },
2913 {
2914 "type" : "expression",
2915 "value" : {
2916 "type" : "expression",
2917 "value" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002918 "op" : "&",
2919 "left" : {
2920 "type" : "expression",
2921 "value" : {
2922 "op" : "+",
2923 "left" : {
2924 "type" : "field",
2925 "value" : ["mpls", "ttl"]
2926 },
2927 "right" : {
2928 "type" : "hexstr",
2929 "value" : "0xff"
2930 }
2931 }
2932 },
Carmelo Casconea5400af2018-07-17 22:11:54 +02002933 "right" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002934 "type" : "hexstr",
2935 "value" : "0xff"
Carmelo Casconea5400af2018-07-17 22:11:54 +02002936 }
2937 }
2938 }
2939 }
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002940 ],
2941 "source_info" : {
2942 "filename" : "include/control/next.p4",
pierventre48e78822020-12-15 17:34:54 +01002943 "line" : 375,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002944 "column" : 12,
2945 "source_fragment" : "hdr.mpls.ttl = hdr.mpls.ttl - 1"
2946 }
Carmelo Casconea5400af2018-07-17 22:11:54 +02002947 }
2948 ]
2949 },
2950 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02002951 "name" : "next380",
pierventre48e78822020-12-15 17:34:54 +01002952 "id" : 42,
Carmelo Casconea5400af2018-07-17 22:11:54 +02002953 "runtime_data" : [],
2954 "primitives" : [
2955 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07002956 "op" : "mark_to_drop",
2957 "parameters" : [
2958 {
2959 "type" : "header",
2960 "value" : "standard_metadata"
2961 }
2962 ],
Carmelo Casconea5400af2018-07-17 22:11:54 +02002963 "source_info" : {
2964 "filename" : "include/control/next.p4",
pierventre48e78822020-12-15 17:34:54 +01002965 "line" : 380,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002966 "column" : 39,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07002967 "source_fragment" : "mark_to_drop(standard_metadata)"
Carmelo Casconea5400af2018-07-17 22:11:54 +02002968 }
2969 }
2970 ]
2971 },
2972 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02002973 "name" : "next379",
pierventre48e78822020-12-15 17:34:54 +01002974 "id" : 43,
Carmelo Casconea5400af2018-07-17 22:11:54 +02002975 "runtime_data" : [],
2976 "primitives" : [
2977 {
2978 "op" : "assign",
2979 "parameters" : [
2980 {
2981 "type" : "field",
Yi Tseng1d842672017-11-28 16:06:52 -08002982 "value" : ["ipv4", "ttl"]
2983 },
2984 {
2985 "type" : "expression",
2986 "value" : {
2987 "type" : "expression",
2988 "value" : {
2989 "op" : "&",
2990 "left" : {
2991 "type" : "expression",
2992 "value" : {
2993 "op" : "+",
2994 "left" : {
2995 "type" : "field",
2996 "value" : ["ipv4", "ttl"]
2997 },
2998 "right" : {
2999 "type" : "hexstr",
3000 "value" : "0xff"
3001 }
3002 }
3003 },
3004 "right" : {
3005 "type" : "hexstr",
3006 "value" : "0xff"
3007 }
3008 }
3009 }
3010 }
3011 ],
3012 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003013 "filename" : "include/control/next.p4",
pierventre48e78822020-12-15 17:34:54 +01003014 "line" : 379,
Carmelo Casconea5400af2018-07-17 22:11:54 +02003015 "column" : 16,
Yi Tseng1d842672017-11-28 16:06:52 -08003016 "source_fragment" : "hdr.ipv4.ttl = hdr.ipv4.ttl - 1"
3017 }
3018 }
3019 ]
Yi Tsengbe342052017-11-03 10:21:23 -07003020 }
3021 ],
3022 "pipelines" : [
3023 {
3024 "name" : "ingress",
3025 "id" : 0,
3026 "source_info" : {
3027 "filename" : "fabric.p4",
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07003028 "line" : 46,
Yi Tsengbe342052017-11-03 10:21:23 -07003029 "column" : 8,
3030 "source_fragment" : "FabricIngress"
3031 },
3032 "init_table" : "node_2",
3033 "tables" : [
3034 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02003035 "name" : "tbl_packetio25",
Yi Tsengbe342052017-11-03 10:21:23 -07003036 "id" : 0,
Carmelo Cascone3032b872019-04-13 01:23:54 -07003037 "source_info" : {
3038 "filename" : "include/control/packetio.p4",
3039 "line" : 25,
3040 "column" : 42,
3041 "source_fragment" : "= hdr.packet_out.egress_port; ..."
3042 },
Yi Tsengbe342052017-11-03 10:21:23 -07003043 "key" : [],
3044 "match_type" : "exact",
3045 "type" : "simple",
3046 "max_size" : 1024,
3047 "with_counters" : false,
3048 "support_timeout" : false,
3049 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003050 "action_ids" : [27],
Carmelo Cascone2388cc12021-05-26 19:30:30 +02003051 "actions" : ["packetio25"],
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003052 "base_default_next" : "node_4",
Yi Tsengbe342052017-11-03 10:21:23 -07003053 "next_tables" : {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02003054 "packetio25" : "node_4"
Yi Tsengbe342052017-11-03 10:21:23 -07003055 },
3056 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003057 "action_id" : 27,
3058 "action_const" : true,
3059 "action_data" : [],
3060 "action_entry_const" : true
3061 }
3062 },
3063 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02003064 "name" : "tbl_filtering111",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003065 "id" : 1,
Carmelo Cascone3032b872019-04-13 01:23:54 -07003066 "source_info" : {
3067 "filename" : "include/control/filtering.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07003068 "line" : 111,
Daniele Moro7c3a0022019-07-12 13:38:34 -07003069 "column" : 36,
3070 "source_fragment" : "= hdr.vlan_tag.vlan_id; ..."
Carmelo Cascone3032b872019-04-13 01:23:54 -07003071 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003072 "key" : [],
3073 "match_type" : "exact",
3074 "type" : "simple",
3075 "max_size" : 1024,
3076 "with_counters" : false,
3077 "support_timeout" : false,
3078 "direct_meters" : null,
3079 "action_ids" : [28],
Carmelo Cascone2388cc12021-05-26 19:30:30 +02003080 "actions" : ["filtering111"],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003081 "base_default_next" : "node_6",
3082 "next_tables" : {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02003083 "filtering111" : "node_6"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003084 },
3085 "default_entry" : {
3086 "action_id" : 28,
3087 "action_const" : true,
3088 "action_data" : [],
3089 "action_entry_const" : true
3090 }
3091 },
3092 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02003093 "name" : "tbl_filtering127",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003094 "id" : 2,
Carmelo Cascone3032b872019-04-13 01:23:54 -07003095 "source_info" : {
3096 "filename" : "include/control/filtering.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07003097 "line" : 127,
Carmelo Cascone3032b872019-04-13 01:23:54 -07003098 "column" : 37,
3099 "source_fragment" : "="
3100 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003101 "key" : [],
3102 "match_type" : "exact",
3103 "type" : "simple",
3104 "max_size" : 1024,
3105 "with_counters" : false,
3106 "support_timeout" : false,
3107 "direct_meters" : null,
3108 "action_ids" : [29],
Carmelo Cascone2388cc12021-05-26 19:30:30 +02003109 "actions" : ["filtering127"],
Daniele Moro5a2de712019-09-24 14:34:07 -07003110 "base_default_next" : "FabricIngress.filtering.ingress_port_vlan",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003111 "next_tables" : {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02003112 "filtering127" : "FabricIngress.filtering.ingress_port_vlan"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003113 },
3114 "default_entry" : {
3115 "action_id" : 29,
Yi Tsengbe342052017-11-03 10:21:23 -07003116 "action_const" : true,
3117 "action_data" : [],
3118 "action_entry_const" : true
3119 }
3120 },
3121 {
Daniele Moro7c3a0022019-07-12 13:38:34 -07003122 "name" : "FabricIngress.filtering.ingress_port_vlan",
Daniele Moro5a2de712019-09-24 14:34:07 -07003123 "id" : 3,
Daniele Moro7c3a0022019-07-12 13:38:34 -07003124 "source_info" : {
3125 "filename" : "include/control/filtering.p4",
3126 "line" : 53,
Yi Tsengbe342052017-11-03 10:21:23 -07003127 "column" : 10,
3128 "source_fragment" : "ingress_port_vlan"
3129 },
3130 "key" : [
3131 {
3132 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003133 "name" : "ig_port",
Yi Tsengbe342052017-11-03 10:21:23 -07003134 "target" : ["standard_metadata", "ingress_port"],
3135 "mask" : null
3136 },
3137 {
3138 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003139 "name" : "vlan_is_valid",
Yi Tsengbe342052017-11-03 10:21:23 -07003140 "target" : ["vlan_tag", "$valid$"],
3141 "mask" : null
3142 },
3143 {
3144 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003145 "name" : "vlan_id",
Yi Tsengbe342052017-11-03 10:21:23 -07003146 "target" : ["vlan_tag", "vlan_id"],
3147 "mask" : null
3148 }
3149 ],
3150 "match_type" : "ternary",
3151 "type" : "simple",
3152 "max_size" : 1024,
Yi Tsengbd46d052018-01-22 17:18:16 -08003153 "with_counters" : true,
Yi Tsengbe342052017-11-03 10:21:23 -07003154 "support_timeout" : false,
3155 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003156 "action_ids" : [7, 8, 9],
3157 "actions" : ["FabricIngress.filtering.deny", "FabricIngress.filtering.permit", "FabricIngress.filtering.permit_with_internal_vlan"],
3158 "base_default_next" : "FabricIngress.filtering.fwd_classifier",
Yi Tsengbe342052017-11-03 10:21:23 -07003159 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003160 "FabricIngress.filtering.deny" : "FabricIngress.filtering.fwd_classifier",
3161 "FabricIngress.filtering.permit" : "FabricIngress.filtering.fwd_classifier",
3162 "FabricIngress.filtering.permit_with_internal_vlan" : "FabricIngress.filtering.fwd_classifier"
Yi Tsengbe342052017-11-03 10:21:23 -07003163 },
3164 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003165 "action_id" : 7,
Yi Tsengbe342052017-11-03 10:21:23 -07003166 "action_const" : true,
3167 "action_data" : [],
3168 "action_entry_const" : true
3169 }
3170 },
3171 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003172 "name" : "FabricIngress.filtering.fwd_classifier",
Daniele Moro5a2de712019-09-24 14:34:07 -07003173 "id" : 4,
Yi Tsengbe342052017-11-03 10:21:23 -07003174 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003175 "filename" : "include/control/filtering.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07003176 "line" : 92,
Yi Tsengbe342052017-11-03 10:21:23 -07003177 "column" : 10,
3178 "source_fragment" : "fwd_classifier"
3179 },
3180 "key" : [
3181 {
3182 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003183 "name" : "ig_port",
Yi Tsengbe342052017-11-03 10:21:23 -07003184 "target" : ["standard_metadata", "ingress_port"],
3185 "mask" : null
3186 },
3187 {
Charles Chan384aea22018-08-23 22:08:02 -07003188 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003189 "name" : "eth_dst",
Yi Tsengbe342052017-11-03 10:21:23 -07003190 "target" : ["ethernet", "dst_addr"],
3191 "mask" : null
3192 },
3193 {
Daniele Moro5a2de712019-09-24 14:34:07 -07003194 "match_type" : "ternary",
3195 "name" : "eth_type",
3196 "target" : ["eth_type", "value"],
Daniele Moro7c3a0022019-07-12 13:38:34 -07003197 "mask" : null
3198 },
3199 {
3200 "match_type" : "exact",
Daniele Moro5a2de712019-09-24 14:34:07 -07003201 "name" : "ip_eth_type",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02003202 "target" : ["scalars", "userMetadata.ip_eth_type"],
Yi Tsengbe342052017-11-03 10:21:23 -07003203 "mask" : null
3204 }
3205 ],
Charles Chan384aea22018-08-23 22:08:02 -07003206 "match_type" : "ternary",
Yi Tsengbe342052017-11-03 10:21:23 -07003207 "type" : "simple",
3208 "max_size" : 1024,
Yi Tsengbd46d052018-01-22 17:18:16 -08003209 "with_counters" : true,
Yi Tsengbe342052017-11-03 10:21:23 -07003210 "support_timeout" : false,
3211 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003212 "action_ids" : [10],
Yi Tseng27b9bc02018-04-12 14:52:40 +08003213 "actions" : ["FabricIngress.filtering.set_forwarding_type"],
Daniele Moro5a2de712019-09-24 14:34:07 -07003214 "base_default_next" : "node_10",
Yi Tsengbe342052017-11-03 10:21:23 -07003215 "next_tables" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07003216 "FabricIngress.filtering.set_forwarding_type" : "node_10"
Yi Tsengbe342052017-11-03 10:21:23 -07003217 },
3218 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003219 "action_id" : 10,
Yi Tsengbe342052017-11-03 10:21:23 -07003220 "action_const" : true,
3221 "action_data" : ["0x0"],
3222 "action_entry_const" : true
3223 }
3224 },
3225 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003226 "name" : "FabricIngress.forwarding.bridging",
Daniele Moro5a2de712019-09-24 14:34:07 -07003227 "id" : 5,
Yi Tsengbe342052017-11-03 10:21:23 -07003228 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003229 "filename" : "include/control/forwarding.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07003230 "line" : 46,
Yi Tsengbe342052017-11-03 10:21:23 -07003231 "column" : 10,
3232 "source_fragment" : "bridging"
3233 },
3234 "key" : [
3235 {
3236 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003237 "name" : "vlan_id",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02003238 "target" : ["scalars", "userMetadata.vlan_id"],
Yi Tsengbe342052017-11-03 10:21:23 -07003239 "mask" : null
3240 },
3241 {
3242 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003243 "name" : "eth_dst",
Yi Tsengbe342052017-11-03 10:21:23 -07003244 "target" : ["ethernet", "dst_addr"],
3245 "mask" : null
3246 }
3247 ],
3248 "match_type" : "ternary",
3249 "type" : "simple",
3250 "max_size" : 1024,
Yi Tsengbd46d052018-01-22 17:18:16 -08003251 "with_counters" : true,
Yi Tsengbe342052017-11-03 10:21:23 -07003252 "support_timeout" : false,
3253 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003254 "action_ids" : [11, 0],
3255 "actions" : ["FabricIngress.forwarding.set_next_id_bridging", "nop"],
3256 "base_default_next" : "FabricIngress.acl.acl",
Yi Tseng1d842672017-11-28 16:06:52 -08003257 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003258 "FabricIngress.forwarding.set_next_id_bridging" : "FabricIngress.acl.acl",
3259 "nop" : "FabricIngress.acl.acl"
Yi Tseng1d842672017-11-28 16:06:52 -08003260 },
3261 "default_entry" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003262 "action_id" : 0,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003263 "action_const" : true,
Yi Tseng1d842672017-11-28 16:06:52 -08003264 "action_data" : [],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003265 "action_entry_const" : true
Yi Tseng1d842672017-11-28 16:06:52 -08003266 }
3267 },
3268 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003269 "name" : "FabricIngress.forwarding.mpls",
Daniele Moro5a2de712019-09-24 14:34:07 -07003270 "id" : 6,
Yi Tseng1d842672017-11-28 16:06:52 -08003271 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003272 "filename" : "include/control/forwarding.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07003273 "line" : 71,
Yi Tseng1d842672017-11-28 16:06:52 -08003274 "column" : 10,
3275 "source_fragment" : "mpls"
3276 },
3277 "key" : [
3278 {
3279 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003280 "name" : "mpls_label",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02003281 "target" : ["scalars", "userMetadata.mpls_label"],
Yi Tseng1d842672017-11-28 16:06:52 -08003282 "mask" : null
3283 }
3284 ],
3285 "match_type" : "exact",
3286 "type" : "simple",
3287 "max_size" : 1024,
Yi Tsengbd46d052018-01-22 17:18:16 -08003288 "with_counters" : true,
Yi Tseng1d842672017-11-28 16:06:52 -08003289 "support_timeout" : false,
3290 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003291 "action_ids" : [12, 1],
3292 "actions" : ["FabricIngress.forwarding.pop_mpls_and_next", "nop"],
3293 "base_default_next" : "FabricIngress.acl.acl",
Yi Tseng1d842672017-11-28 16:06:52 -08003294 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003295 "FabricIngress.forwarding.pop_mpls_and_next" : "FabricIngress.acl.acl",
3296 "nop" : "FabricIngress.acl.acl"
Yi Tseng1d842672017-11-28 16:06:52 -08003297 },
3298 "default_entry" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003299 "action_id" : 1,
Yi Tseng1d842672017-11-28 16:06:52 -08003300 "action_const" : true,
3301 "action_data" : [],
3302 "action_entry_const" : true
3303 }
3304 },
3305 {
Charles Chan384aea22018-08-23 22:08:02 -07003306 "name" : "FabricIngress.forwarding.routing_v4",
Daniele Moro5a2de712019-09-24 14:34:07 -07003307 "id" : 7,
Yi Tseng1d842672017-11-28 16:06:52 -08003308 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003309 "filename" : "include/control/forwarding.p4",
Daniele Moro5a2de712019-09-24 14:34:07 -07003310 "line" : 108,
Yi Tseng1d842672017-11-28 16:06:52 -08003311 "column" : 10,
Charles Chan384aea22018-08-23 22:08:02 -07003312 "source_fragment" : "routing_v4"
Yi Tseng1d842672017-11-28 16:06:52 -08003313 },
3314 "key" : [
3315 {
3316 "match_type" : "lpm",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003317 "name" : "ipv4_dst",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02003318 "target" : ["scalars", "userMetadata.ipv4_dst_addr"],
Yi Tseng1d842672017-11-28 16:06:52 -08003319 "mask" : null
3320 }
3321 ],
3322 "match_type" : "lpm",
3323 "type" : "simple",
3324 "max_size" : 1024,
Daniele Moro5a2de712019-09-24 14:34:07 -07003325 "with_counters" : false,
Yi Tseng1d842672017-11-28 16:06:52 -08003326 "support_timeout" : false,
3327 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003328 "action_ids" : [13, 14, 2],
3329 "actions" : ["FabricIngress.forwarding.set_next_id_routing_v4", "FabricIngress.forwarding.nop_routing_v4", "nop"],
3330 "base_default_next" : "FabricIngress.acl.acl",
Yi Tsengbe342052017-11-03 10:21:23 -07003331 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003332 "FabricIngress.forwarding.set_next_id_routing_v4" : "FabricIngress.acl.acl",
3333 "FabricIngress.forwarding.nop_routing_v4" : "FabricIngress.acl.acl",
3334 "nop" : "FabricIngress.acl.acl"
Yi Tsengbe342052017-11-03 10:21:23 -07003335 },
3336 "default_entry" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003337 "action_id" : 2,
CyberHasHe9ba39c2019-10-11 05:59:12 +08003338 "action_const" : false,
Yi Tsengbe342052017-11-03 10:21:23 -07003339 "action_data" : [],
CyberHasHe9ba39c2019-10-11 05:59:12 +08003340 "action_entry_const" : false
Yi Tsengbe342052017-11-03 10:21:23 -07003341 }
3342 },
3343 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003344 "name" : "FabricIngress.acl.acl",
Daniele Moro5a2de712019-09-24 14:34:07 -07003345 "id" : 8,
Yi Tsengbe342052017-11-03 10:21:23 -07003346 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003347 "filename" : "include/control/acl.p4",
3348 "line" : 60,
Yi Tsengbe342052017-11-03 10:21:23 -07003349 "column" : 10,
Yi Tsengbe342052017-11-03 10:21:23 -07003350 "source_fragment" : "acl"
3351 },
3352 "key" : [
3353 {
3354 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003355 "name" : "ig_port",
Yi Tsengbe342052017-11-03 10:21:23 -07003356 "target" : ["standard_metadata", "ingress_port"],
3357 "mask" : null
3358 },
3359 {
3360 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003361 "name" : "ip_proto",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02003362 "target" : ["scalars", "userMetadata.ip_proto"],
Yi Tsengbe342052017-11-03 10:21:23 -07003363 "mask" : null
3364 },
3365 {
3366 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003367 "name" : "l4_sport",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02003368 "target" : ["scalars", "userMetadata.l4_sport"],
Yi Tseng1d842672017-11-28 16:06:52 -08003369 "mask" : null
3370 },
3371 {
3372 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003373 "name" : "l4_dport",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02003374 "target" : ["scalars", "userMetadata.l4_dport"],
Yi Tseng1d842672017-11-28 16:06:52 -08003375 "mask" : null
3376 },
3377 {
3378 "match_type" : "ternary",
Daniele Moro0cecfe12019-12-13 17:24:33 -08003379 "name" : "eth_dst",
Yi Tsengbe342052017-11-03 10:21:23 -07003380 "target" : ["ethernet", "dst_addr"],
3381 "mask" : null
3382 },
3383 {
3384 "match_type" : "ternary",
Daniele Moro0cecfe12019-12-13 17:24:33 -08003385 "name" : "eth_src",
Yi Tsengbe342052017-11-03 10:21:23 -07003386 "target" : ["ethernet", "src_addr"],
3387 "mask" : null
3388 },
3389 {
3390 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003391 "name" : "vlan_id",
Yi Tsengbe342052017-11-03 10:21:23 -07003392 "target" : ["vlan_tag", "vlan_id"],
3393 "mask" : null
3394 },
3395 {
3396 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003397 "name" : "eth_type",
Daniele Moro5a2de712019-09-24 14:34:07 -07003398 "target" : ["eth_type", "value"],
Yi Tseng8235a1a2018-07-24 20:57:28 +08003399 "mask" : null
3400 },
3401 {
3402 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003403 "name" : "ipv4_src",
Yi Tsengbe342052017-11-03 10:21:23 -07003404 "target" : ["ipv4", "src_addr"],
3405 "mask" : null
3406 },
3407 {
3408 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003409 "name" : "ipv4_dst",
Yi Tsengbe342052017-11-03 10:21:23 -07003410 "target" : ["ipv4", "dst_addr"],
3411 "mask" : null
3412 },
3413 {
3414 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003415 "name" : "icmp_type",
Yi Tsengbe342052017-11-03 10:21:23 -07003416 "target" : ["icmp", "icmp_type"],
3417 "mask" : null
3418 },
3419 {
3420 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003421 "name" : "icmp_code",
Yi Tsengbe342052017-11-03 10:21:23 -07003422 "target" : ["icmp", "icmp_code"],
3423 "mask" : null
3424 }
3425 ],
3426 "match_type" : "ternary",
3427 "type" : "simple",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07003428 "max_size" : 1024,
Yi Tsengbd46d052018-01-22 17:18:16 -08003429 "with_counters" : true,
Yi Tsengbe342052017-11-03 10:21:23 -07003430 "support_timeout" : false,
3431 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003432 "action_ids" : [15, 16, 17, 18, 19],
Daniele Moro01ca2ab2019-06-25 11:48:48 -07003433 "actions" : ["FabricIngress.acl.set_next_id_acl", "FabricIngress.acl.punt_to_cpu", "FabricIngress.acl.set_clone_session_id", "FabricIngress.acl.drop", "FabricIngress.acl.nop_acl"],
Daniele Moro5a2de712019-09-24 14:34:07 -07003434 "base_default_next" : "node_18",
Yi Tsengbe342052017-11-03 10:21:23 -07003435 "next_tables" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07003436 "FabricIngress.acl.set_next_id_acl" : "node_18",
3437 "FabricIngress.acl.punt_to_cpu" : "node_18",
3438 "FabricIngress.acl.set_clone_session_id" : "node_18",
3439 "FabricIngress.acl.drop" : "node_18",
3440 "FabricIngress.acl.nop_acl" : "node_18"
Yi Tsengbe342052017-11-03 10:21:23 -07003441 },
3442 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003443 "action_id" : 19,
Yi Tsengbe342052017-11-03 10:21:23 -07003444 "action_const" : true,
3445 "action_data" : [],
3446 "action_entry_const" : true
3447 }
3448 },
3449 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003450 "name" : "FabricIngress.next.xconnect",
Daniele Moro5a2de712019-09-24 14:34:07 -07003451 "id" : 9,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003452 "source_info" : {
3453 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07003454 "line" : 119,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003455 "column" : 10,
3456 "source_fragment" : "xconnect"
3457 },
3458 "key" : [
3459 {
3460 "match_type" : "exact",
3461 "name" : "ig_port",
3462 "target" : ["standard_metadata", "ingress_port"],
3463 "mask" : null
3464 },
3465 {
3466 "match_type" : "exact",
3467 "name" : "next_id",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02003468 "target" : ["scalars", "userMetadata.next_id"],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003469 "mask" : null
3470 }
3471 ],
3472 "match_type" : "exact",
3473 "type" : "simple",
3474 "max_size" : 1024,
3475 "with_counters" : true,
3476 "support_timeout" : false,
3477 "direct_meters" : null,
3478 "action_ids" : [21, 22, 4],
3479 "actions" : ["FabricIngress.next.output_xconnect", "FabricIngress.next.set_next_id_xconnect", "nop"],
3480 "base_default_next" : "FabricIngress.next.hashed",
3481 "next_tables" : {
3482 "FabricIngress.next.output_xconnect" : "FabricIngress.next.hashed",
3483 "FabricIngress.next.set_next_id_xconnect" : "FabricIngress.next.hashed",
3484 "nop" : "FabricIngress.next.hashed"
3485 },
3486 "default_entry" : {
3487 "action_id" : 4,
3488 "action_const" : true,
3489 "action_data" : [],
3490 "action_entry_const" : true
3491 }
3492 },
3493 {
3494 "name" : "FabricIngress.next.hashed",
Daniele Moro5a2de712019-09-24 14:34:07 -07003495 "id" : 10,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003496 "source_info" : {
3497 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07003498 "line" : 202,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003499 "column" : 10,
3500 "source_fragment" : "hashed"
3501 },
3502 "key" : [
3503 {
3504 "match_type" : "exact",
3505 "name" : "next_id",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02003506 "target" : ["scalars", "userMetadata.next_id"],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003507 "mask" : null
3508 }
3509 ],
3510 "match_type" : "exact",
3511 "type" : "indirect_ws",
3512 "action_profile" : "FabricIngress.next.hashed_selector",
3513 "max_size" : 1024,
3514 "with_counters" : true,
3515 "support_timeout" : false,
3516 "direct_meters" : null,
3517 "action_ids" : [23, 24, 25, 5],
3518 "actions" : ["FabricIngress.next.output_hashed", "FabricIngress.next.routing_hashed", "FabricIngress.next.mpls_routing_hashed", "nop"],
3519 "base_default_next" : "FabricIngress.next.multicast",
3520 "next_tables" : {
3521 "FabricIngress.next.output_hashed" : "FabricIngress.next.multicast",
3522 "FabricIngress.next.routing_hashed" : "FabricIngress.next.multicast",
3523 "FabricIngress.next.mpls_routing_hashed" : "FabricIngress.next.multicast",
3524 "nop" : "FabricIngress.next.multicast"
3525 }
3526 },
3527 {
3528 "name" : "FabricIngress.next.multicast",
Daniele Moro5a2de712019-09-24 14:34:07 -07003529 "id" : 11,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003530 "source_info" : {
3531 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07003532 "line" : 236,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003533 "column" : 10,
3534 "source_fragment" : "multicast"
3535 },
3536 "key" : [
3537 {
3538 "match_type" : "exact",
3539 "name" : "next_id",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02003540 "target" : ["scalars", "userMetadata.next_id"],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003541 "mask" : null
3542 }
3543 ],
3544 "match_type" : "exact",
3545 "type" : "simple",
3546 "max_size" : 1024,
3547 "with_counters" : true,
3548 "support_timeout" : false,
3549 "direct_meters" : null,
3550 "action_ids" : [26, 6],
3551 "actions" : ["FabricIngress.next.set_mcast_group_id", "nop"],
3552 "base_default_next" : "FabricIngress.next.next_vlan",
3553 "next_tables" : {
3554 "FabricIngress.next.set_mcast_group_id" : "FabricIngress.next.next_vlan",
3555 "nop" : "FabricIngress.next.next_vlan"
3556 },
3557 "default_entry" : {
3558 "action_id" : 6,
3559 "action_const" : true,
3560 "action_data" : [],
3561 "action_entry_const" : true
3562 }
3563 },
3564 {
3565 "name" : "FabricIngress.next.next_vlan",
Daniele Moro5a2de712019-09-24 14:34:07 -07003566 "id" : 12,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003567 "source_info" : {
3568 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07003569 "line" : 86,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003570 "column" : 10,
3571 "source_fragment" : "next_vlan"
3572 },
3573 "key" : [
3574 {
3575 "match_type" : "exact",
3576 "name" : "next_id",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02003577 "target" : ["scalars", "userMetadata.next_id"],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003578 "mask" : null
3579 }
3580 ],
3581 "match_type" : "exact",
3582 "type" : "simple",
3583 "max_size" : 1024,
3584 "with_counters" : true,
3585 "support_timeout" : false,
3586 "direct_meters" : null,
3587 "action_ids" : [20, 3],
3588 "actions" : ["FabricIngress.next.set_vlan", "nop"],
Daniele Moro5a2de712019-09-24 14:34:07 -07003589 "base_default_next" : "node_23",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003590 "next_tables" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07003591 "FabricIngress.next.set_vlan" : "node_23",
3592 "nop" : "node_23"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003593 },
3594 "default_entry" : {
3595 "action_id" : 3,
3596 "action_const" : true,
3597 "action_data" : [],
3598 "action_entry_const" : true
3599 }
3600 },
3601 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02003602 "name" : "tbl_port_counter31",
Daniele Moro5a2de712019-09-24 14:34:07 -07003603 "id" : 13,
Carmelo Cascone3032b872019-04-13 01:23:54 -07003604 "source_info" : {
3605 "filename" : "include/control/port_counter.p4",
3606 "line" : 31,
3607 "column" : 12,
3608 "source_fragment" : "egress_port_counter.count((bit<32>)standard_metadata.egress_spec)"
3609 },
Carmelo Casconea5400af2018-07-17 22:11:54 +02003610 "key" : [],
3611 "match_type" : "exact",
3612 "type" : "simple",
3613 "max_size" : 1024,
3614 "with_counters" : false,
3615 "support_timeout" : false,
3616 "direct_meters" : null,
Daniele Moro5a2de712019-09-24 14:34:07 -07003617 "action_ids" : [30],
Carmelo Cascone2388cc12021-05-26 19:30:30 +02003618 "actions" : ["port_counter31"],
Daniele Moro5a2de712019-09-24 14:34:07 -07003619 "base_default_next" : "node_25",
Carmelo Casconea5400af2018-07-17 22:11:54 +02003620 "next_tables" : {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02003621 "port_counter31" : "node_25"
Carmelo Casconea5400af2018-07-17 22:11:54 +02003622 },
3623 "default_entry" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07003624 "action_id" : 30,
Carmelo Casconea5400af2018-07-17 22:11:54 +02003625 "action_const" : true,
3626 "action_data" : [],
3627 "action_entry_const" : true
3628 }
3629 },
3630 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02003631 "name" : "tbl_port_counter34",
Daniele Moro5a2de712019-09-24 14:34:07 -07003632 "id" : 14,
Carmelo Cascone3032b872019-04-13 01:23:54 -07003633 "source_info" : {
3634 "filename" : "include/control/port_counter.p4",
3635 "line" : 34,
3636 "column" : 12,
3637 "source_fragment" : "ingress_port_counter.count((bit<32>)standard_metadata.ingress_port)"
3638 },
Carmelo Casconea5400af2018-07-17 22:11:54 +02003639 "key" : [],
3640 "match_type" : "exact",
3641 "type" : "simple",
3642 "max_size" : 1024,
3643 "with_counters" : false,
3644 "support_timeout" : false,
3645 "direct_meters" : null,
Daniele Moro5a2de712019-09-24 14:34:07 -07003646 "action_ids" : [31],
Carmelo Cascone2388cc12021-05-26 19:30:30 +02003647 "actions" : ["port_counter34"],
Carmelo Casconea5400af2018-07-17 22:11:54 +02003648 "base_default_next" : null,
Esin Karaman971fb7f2017-12-28 13:44:52 +00003649 "next_tables" : {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02003650 "port_counter34" : null
Yi Tseng27b9bc02018-04-12 14:52:40 +08003651 },
3652 "default_entry" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07003653 "action_id" : 31,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003654 "action_const" : true,
3655 "action_data" : [],
3656 "action_entry_const" : true
3657 }
Yi Tsengbe342052017-11-03 10:21:23 -07003658 }
3659 ],
3660 "action_profiles" : [
3661 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003662 "name" : "FabricIngress.next.hashed_selector",
Yi Tsengbe342052017-11-03 10:21:23 -07003663 "id" : 0,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07003664 "source_info" : {
3665 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07003666 "line" : 183,
Carmelo Cascone70e816b2019-03-19 16:15:47 -07003667 "column" : 57,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003668 "source_fragment" : "hashed_selector"
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07003669 },
Carmelo Cascone70e816b2019-03-19 16:15:47 -07003670 "max_size" : 1024,
Yi Tsengbe342052017-11-03 10:21:23 -07003671 "selector" : {
3672 "algo" : "crc16",
3673 "input" : [
3674 {
3675 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02003676 "value" : ["scalars", "userMetadata.ipv4_src_addr"]
Yi Tsengbe342052017-11-03 10:21:23 -07003677 },
3678 {
3679 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02003680 "value" : ["scalars", "userMetadata.ipv4_dst_addr"]
Yi Tsengbe342052017-11-03 10:21:23 -07003681 },
3682 {
3683 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02003684 "value" : ["scalars", "userMetadata.ip_proto"]
Yi Tsengbe342052017-11-03 10:21:23 -07003685 },
3686 {
3687 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02003688 "value" : ["scalars", "userMetadata.l4_sport"]
Yi Tsengbe342052017-11-03 10:21:23 -07003689 },
3690 {
3691 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02003692 "value" : ["scalars", "userMetadata.l4_dport"]
Yi Tsengbe342052017-11-03 10:21:23 -07003693 }
3694 ]
3695 }
3696 }
3697 ],
3698 "conditionals" : [
3699 {
3700 "name" : "node_2",
3701 "id" : 0,
3702 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003703 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003704 "line" : 24,
Yi Tsengbe342052017-11-03 10:21:23 -07003705 "column" : 12,
3706 "source_fragment" : "hdr.packet_out.isValid()"
3707 },
3708 "expression" : {
3709 "type" : "expression",
3710 "value" : {
Yi Tsengbd46d052018-01-22 17:18:16 -08003711 "op" : "d2b",
3712 "left" : null,
3713 "right" : {
Yi Tsengbe342052017-11-03 10:21:23 -07003714 "type" : "field",
3715 "value" : ["packet_out", "$valid$"]
Yi Tsengbe342052017-11-03 10:21:23 -07003716 }
3717 }
3718 },
Carmelo Cascone2388cc12021-05-26 19:30:30 +02003719 "true_next" : "tbl_packetio25",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003720 "false_next" : "node_4"
Yi Tsengbe342052017-11-03 10:21:23 -07003721 },
3722 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003723 "name" : "node_4",
Yi Tsengbe342052017-11-03 10:21:23 -07003724 "id" : 1,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003725 "source_info" : {
3726 "filename" : "include/control/filtering.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07003727 "line" : 110,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003728 "column" : 12,
3729 "source_fragment" : "hdr.vlan_tag.isValid()"
3730 },
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003731 "expression" : {
3732 "type" : "expression",
3733 "value" : {
3734 "op" : "d2b",
3735 "left" : null,
3736 "right" : {
3737 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003738 "value" : ["vlan_tag", "$valid$"]
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003739 }
3740 }
3741 },
Carmelo Cascone2388cc12021-05-26 19:30:30 +02003742 "true_next" : "tbl_filtering111",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003743 "false_next" : "node_6"
3744 },
3745 {
3746 "name" : "node_6",
3747 "id" : 2,
3748 "source_info" : {
3749 "filename" : "include/control/filtering.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07003750 "line" : 122,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003751 "column" : 12,
3752 "source_fragment" : "!hdr.mpls.isValid()"
3753 },
3754 "expression" : {
3755 "type" : "expression",
3756 "value" : {
3757 "op" : "not",
3758 "left" : null,
3759 "right" : {
3760 "type" : "expression",
3761 "value" : {
3762 "op" : "d2b",
3763 "left" : null,
3764 "right" : {
3765 "type" : "field",
3766 "value" : ["mpls", "$valid$"]
3767 }
3768 }
3769 }
3770 }
3771 },
Carmelo Cascone2388cc12021-05-26 19:30:30 +02003772 "true_next" : "tbl_filtering127",
Daniele Moro5a2de712019-09-24 14:34:07 -07003773 "false_next" : "FabricIngress.filtering.ingress_port_vlan"
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003774 },
3775 {
3776 "name" : "node_10",
Daniele Moro5a2de712019-09-24 14:34:07 -07003777 "id" : 3,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003778 "source_info" : {
3779 "filename" : "fabric.p4",
Robert MacDavidde12b982020-07-15 18:38:59 -07003780 "line" : 69,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003781 "column" : 12,
Carmelo Cascone2388cc12021-05-26 19:30:30 +02003782 "source_fragment" : "fabric_metadata.skip_forwarding"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003783 },
3784 "expression" : {
3785 "type" : "expression",
3786 "value" : {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02003787 "op" : "not",
3788 "left" : null,
3789 "right" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003790 "type" : "expression",
3791 "value" : {
3792 "op" : "d2b",
3793 "left" : null,
3794 "right" : {
3795 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02003796 "value" : ["scalars", "userMetadata.skip_forwarding"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003797 }
3798 }
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003799 }
3800 }
3801 },
Daniele Moro5a2de712019-09-24 14:34:07 -07003802 "true_next" : "node_11",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003803 "false_next" : "FabricIngress.acl.acl"
3804 },
3805 {
Daniele Moro5a2de712019-09-24 14:34:07 -07003806 "name" : "node_11",
3807 "id" : 4,
Yi Tsengbe342052017-11-03 10:21:23 -07003808 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003809 "filename" : "include/control/forwarding.p4",
Daniele Moro5a2de712019-09-24 14:34:07 -07003810 "line" : 150,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003811 "column" : 12,
Yi Tsengbe342052017-11-03 10:21:23 -07003812 "source_fragment" : "fabric_metadata.fwd_type == FWD_BRIDGING"
3813 },
3814 "expression" : {
3815 "type" : "expression",
3816 "value" : {
3817 "op" : "==",
3818 "left" : {
3819 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02003820 "value" : ["scalars", "userMetadata.fwd_type"]
Yi Tsengbe342052017-11-03 10:21:23 -07003821 },
3822 "right" : {
3823 "type" : "hexstr",
3824 "value" : "0x00"
3825 }
3826 }
3827 },
Yi Tseng27b9bc02018-04-12 14:52:40 +08003828 "true_next" : "FabricIngress.forwarding.bridging",
Daniele Moro5a2de712019-09-24 14:34:07 -07003829 "false_next" : "node_13"
Yi Tsengbe342052017-11-03 10:21:23 -07003830 },
3831 {
Daniele Moro5a2de712019-09-24 14:34:07 -07003832 "name" : "node_13",
3833 "id" : 5,
Yi Tsengbe342052017-11-03 10:21:23 -07003834 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003835 "filename" : "include/control/forwarding.p4",
Daniele Moro5a2de712019-09-24 14:34:07 -07003836 "line" : 151,
Yi Tsengbe342052017-11-03 10:21:23 -07003837 "column" : 17,
3838 "source_fragment" : "fabric_metadata.fwd_type == FWD_MPLS"
3839 },
3840 "expression" : {
3841 "type" : "expression",
3842 "value" : {
3843 "op" : "==",
3844 "left" : {
3845 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02003846 "value" : ["scalars", "userMetadata.fwd_type"]
Yi Tsengbe342052017-11-03 10:21:23 -07003847 },
3848 "right" : {
3849 "type" : "hexstr",
3850 "value" : "0x01"
3851 }
3852 }
3853 },
Yi Tseng27b9bc02018-04-12 14:52:40 +08003854 "true_next" : "FabricIngress.forwarding.mpls",
Daniele Moro5a2de712019-09-24 14:34:07 -07003855 "false_next" : "node_15"
Yi Tsengbe342052017-11-03 10:21:23 -07003856 },
3857 {
Daniele Moro5a2de712019-09-24 14:34:07 -07003858 "name" : "node_15",
3859 "id" : 6,
Yi Tsengbe342052017-11-03 10:21:23 -07003860 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003861 "filename" : "include/control/forwarding.p4",
Daniele Moro5a2de712019-09-24 14:34:07 -07003862 "line" : 152,
Yi Tsengbe342052017-11-03 10:21:23 -07003863 "column" : 17,
3864 "source_fragment" : "fabric_metadata.fwd_type == FWD_IPV4_UNICAST"
3865 },
3866 "expression" : {
3867 "type" : "expression",
3868 "value" : {
3869 "op" : "==",
3870 "left" : {
3871 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02003872 "value" : ["scalars", "userMetadata.fwd_type"]
Yi Tsengbe342052017-11-03 10:21:23 -07003873 },
3874 "right" : {
3875 "type" : "hexstr",
3876 "value" : "0x02"
3877 }
3878 }
3879 },
Charles Chan384aea22018-08-23 22:08:02 -07003880 "true_next" : "FabricIngress.forwarding.routing_v4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003881 "false_next" : "FabricIngress.acl.acl"
3882 },
3883 {
Daniele Moro5a2de712019-09-24 14:34:07 -07003884 "name" : "node_18",
3885 "id" : 7,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003886 "source_info" : {
3887 "filename" : "fabric.p4",
Robert MacDavidde12b982020-07-15 18:38:59 -07003888 "line" : 73,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003889 "column" : 12,
Carmelo Cascone2388cc12021-05-26 19:30:30 +02003890 "source_fragment" : "fabric_metadata.skip_next"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003891 },
3892 "expression" : {
3893 "type" : "expression",
3894 "value" : {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02003895 "op" : "not",
3896 "left" : null,
3897 "right" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003898 "type" : "expression",
3899 "value" : {
3900 "op" : "d2b",
3901 "left" : null,
3902 "right" : {
3903 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02003904 "value" : ["scalars", "userMetadata.skip_next"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003905 }
3906 }
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003907 }
3908 }
3909 },
3910 "false_next" : null,
3911 "true_next" : "FabricIngress.next.xconnect"
Yi Tseng27b9bc02018-04-12 14:52:40 +08003912 },
3913 {
Daniele Moro5a2de712019-09-24 14:34:07 -07003914 "name" : "node_23",
3915 "id" : 8,
Yi Tseng27b9bc02018-04-12 14:52:40 +08003916 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003917 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003918 "line" : 30,
Yi Tsengbe342052017-11-03 10:21:23 -07003919 "column" : 12,
3920 "source_fragment" : "standard_metadata.egress_spec < 511"
3921 },
3922 "expression" : {
3923 "type" : "expression",
3924 "value" : {
3925 "op" : "<",
3926 "left" : {
3927 "type" : "field",
3928 "value" : ["standard_metadata", "egress_spec"]
3929 },
3930 "right" : {
3931 "type" : "hexstr",
3932 "value" : "0x01ff"
3933 }
3934 }
3935 },
Carmelo Cascone2388cc12021-05-26 19:30:30 +02003936 "true_next" : "tbl_port_counter31",
Daniele Moro5a2de712019-09-24 14:34:07 -07003937 "false_next" : "node_25"
Yi Tsengbe342052017-11-03 10:21:23 -07003938 },
3939 {
Daniele Moro5a2de712019-09-24 14:34:07 -07003940 "name" : "node_25",
3941 "id" : 9,
Yi Tsengbe342052017-11-03 10:21:23 -07003942 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003943 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003944 "line" : 33,
Yi Tsengbe342052017-11-03 10:21:23 -07003945 "column" : 12,
3946 "source_fragment" : "standard_metadata.ingress_port < 511"
3947 },
3948 "expression" : {
3949 "type" : "expression",
3950 "value" : {
3951 "op" : "<",
3952 "left" : {
3953 "type" : "field",
3954 "value" : ["standard_metadata", "ingress_port"]
3955 },
3956 "right" : {
3957 "type" : "hexstr",
3958 "value" : "0x01ff"
3959 }
3960 }
3961 },
Yi Tseng3a5731e2018-01-22 11:38:58 -08003962 "false_next" : null,
Carmelo Cascone2388cc12021-05-26 19:30:30 +02003963 "true_next" : "tbl_port_counter34"
Yi Tseng3a5731e2018-01-22 11:38:58 -08003964 }
3965 ]
3966 },
3967 {
3968 "name" : "egress",
3969 "id" : 1,
3970 "source_info" : {
3971 "filename" : "fabric.p4",
Robert MacDavidde12b982020-07-15 18:38:59 -07003972 "line" : 91,
Yi Tseng3a5731e2018-01-22 11:38:58 -08003973 "column" : 8,
3974 "source_fragment" : "FabricEgress"
3975 },
Daniele Moro5a2de712019-09-24 14:34:07 -07003976 "init_table" : "node_29",
Yi Tseng3a5731e2018-01-22 11:38:58 -08003977 "tables" : [
3978 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02003979 "name" : "tbl_packetio41",
Daniele Moro5a2de712019-09-24 14:34:07 -07003980 "id" : 15,
Carmelo Cascone3032b872019-04-13 01:23:54 -07003981 "source_info" : {
3982 "filename" : "include/control/packetio.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003983 "line" : 41,
3984 "column" : 12,
3985 "source_fragment" : "exit"
Carmelo Cascone3032b872019-04-13 01:23:54 -07003986 },
Carmelo Casconea5400af2018-07-17 22:11:54 +02003987 "key" : [],
3988 "match_type" : "exact",
3989 "type" : "simple",
3990 "max_size" : 1024,
3991 "with_counters" : false,
3992 "support_timeout" : false,
3993 "direct_meters" : null,
Daniele Moro5a2de712019-09-24 14:34:07 -07003994 "action_ids" : [37],
Carmelo Cascone2388cc12021-05-26 19:30:30 +02003995 "actions" : ["packetio41"],
Daniele Moro5a2de712019-09-24 14:34:07 -07003996 "base_default_next" : "node_31",
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07003997 "next_tables" : {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02003998 "packetio41" : "node_31"
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07003999 },
4000 "default_entry" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07004001 "action_id" : 37,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004002 "action_const" : true,
4003 "action_data" : [],
4004 "action_entry_const" : true
4005 }
4006 },
4007 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004008 "name" : "tbl_packetio44",
Daniele Moro5a2de712019-09-24 14:34:07 -07004009 "id" : 16,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004010 "source_info" : {
4011 "filename" : "include/control/packetio.p4",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07004012 "line" : 44,
4013 "column" : 12,
4014 "source_fragment" : "hdr.packet_in.setValid(); ..."
Carmelo Cascone3032b872019-04-13 01:23:54 -07004015 },
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004016 "key" : [],
4017 "match_type" : "exact",
4018 "type" : "simple",
4019 "max_size" : 1024,
4020 "with_counters" : false,
4021 "support_timeout" : false,
4022 "direct_meters" : null,
Daniele Moro5a2de712019-09-24 14:34:07 -07004023 "action_ids" : [38],
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004024 "actions" : ["packetio44"],
Daniele Moro5a2de712019-09-24 14:34:07 -07004025 "base_default_next" : "node_33",
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004026 "next_tables" : {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004027 "packetio44" : "node_33"
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004028 },
4029 "default_entry" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07004030 "action_id" : 38,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004031 "action_const" : true,
4032 "action_data" : [],
4033 "action_entry_const" : true
4034 }
4035 },
4036 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004037 "name" : "tbl_next349",
Daniele Moro5a2de712019-09-24 14:34:07 -07004038 "id" : 17,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004039 "source_info" : {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07004040 "filename" : "include/control/next.p4",
pierventre48e78822020-12-15 17:34:54 +01004041 "line" : 349,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004042 "column" : 12,
Daniele Moro01ca2ab2019-06-25 11:48:48 -07004043 "source_fragment" : "mark_to_drop(standard_metadata)"
Carmelo Cascone3032b872019-04-13 01:23:54 -07004044 },
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004045 "key" : [],
4046 "match_type" : "exact",
4047 "type" : "simple",
4048 "max_size" : 1024,
4049 "with_counters" : false,
4050 "support_timeout" : false,
4051 "direct_meters" : null,
Daniele Moro5a2de712019-09-24 14:34:07 -07004052 "action_ids" : [39],
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004053 "actions" : ["next349"],
Daniele Moro5a2de712019-09-24 14:34:07 -07004054 "base_default_next" : "node_35",
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004055 "next_tables" : {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004056 "next349" : "node_35"
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004057 },
4058 "default_entry" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07004059 "action_id" : 39,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004060 "action_const" : true,
4061 "action_data" : [],
4062 "action_entry_const" : true
4063 }
4064 },
4065 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004066 "name" : "tbl_egress_next_pop_mpls_if_present",
Daniele Moro5a2de712019-09-24 14:34:07 -07004067 "id" : 18,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004068 "source_info" : {
4069 "filename" : "include/control/next.p4",
pierventre48e78822020-12-15 17:34:54 +01004070 "line" : 353,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004071 "column" : 36,
4072 "source_fragment" : "pop_mpls_if_present()"
4073 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004074 "key" : [],
4075 "match_type" : "exact",
4076 "type" : "simple",
4077 "max_size" : 1024,
4078 "with_counters" : false,
4079 "support_timeout" : false,
4080 "direct_meters" : null,
pierventre48e78822020-12-15 17:34:54 +01004081 "action_ids" : [32],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004082 "actions" : ["FabricEgress.egress_next.pop_mpls_if_present"],
4083 "base_default_next" : "FabricEgress.egress_next.egress_vlan",
4084 "next_tables" : {
4085 "FabricEgress.egress_next.pop_mpls_if_present" : "FabricEgress.egress_next.egress_vlan"
4086 },
4087 "default_entry" : {
pierventre48e78822020-12-15 17:34:54 +01004088 "action_id" : 32,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004089 "action_const" : true,
4090 "action_data" : [],
4091 "action_entry_const" : true
4092 }
4093 },
4094 {
4095 "name" : "tbl_egress_next_set_mpls",
Daniele Moro5a2de712019-09-24 14:34:07 -07004096 "id" : 19,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004097 "source_info" : {
4098 "filename" : "include/control/next.p4",
pierventre48e78822020-12-15 17:34:54 +01004099 "line" : 355,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004100 "column" : 12,
4101 "source_fragment" : "set_mpls()"
4102 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004103 "key" : [],
4104 "match_type" : "exact",
4105 "type" : "simple",
4106 "max_size" : 1024,
4107 "with_counters" : false,
4108 "support_timeout" : false,
4109 "direct_meters" : null,
pierventre48e78822020-12-15 17:34:54 +01004110 "action_ids" : [33],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004111 "actions" : ["FabricEgress.egress_next.set_mpls"],
4112 "base_default_next" : "FabricEgress.egress_next.egress_vlan",
4113 "next_tables" : {
4114 "FabricEgress.egress_next.set_mpls" : "FabricEgress.egress_next.egress_vlan"
4115 },
4116 "default_entry" : {
pierventre48e78822020-12-15 17:34:54 +01004117 "action_id" : 33,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004118 "action_const" : true,
4119 "action_data" : [],
4120 "action_entry_const" : true
4121 }
4122 },
4123 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004124 "name" : "FabricEgress.egress_next.egress_vlan",
Daniele Moro5a2de712019-09-24 14:34:07 -07004125 "id" : 20,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004126 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004127 "filename" : "include/control/next.p4",
pierventre48e78822020-12-15 17:34:54 +01004128 "line" : 331,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004129 "column" : 10,
4130 "source_fragment" : "egress_vlan"
4131 },
4132 "key" : [
4133 {
4134 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004135 "name" : "vlan_id",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004136 "target" : ["scalars", "userMetadata.vlan_id"],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004137 "mask" : null
4138 },
4139 {
4140 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004141 "name" : "eg_port",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004142 "target" : ["standard_metadata", "egress_port"],
4143 "mask" : null
4144 }
4145 ],
4146 "match_type" : "exact",
4147 "type" : "simple",
4148 "max_size" : 1024,
Yi Tseng47eac892018-07-11 02:17:04 +08004149 "with_counters" : true,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004150 "support_timeout" : false,
4151 "direct_meters" : null,
pierventre48e78822020-12-15 17:34:54 +01004152 "action_ids" : [34, 35, 36],
4153 "actions" : ["FabricEgress.egress_next.push_vlan", "FabricEgress.egress_next.pop_vlan", "FabricEgress.egress_next.drop"],
4154 "base_default_next" : "node_40",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004155 "next_tables" : {
pierventre48e78822020-12-15 17:34:54 +01004156 "FabricEgress.egress_next.push_vlan" : "node_40",
4157 "FabricEgress.egress_next.pop_vlan" : "node_40",
4158 "FabricEgress.egress_next.drop" : "node_40"
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004159 },
4160 "default_entry" : {
pierventre48e78822020-12-15 17:34:54 +01004161 "action_id" : 36,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004162 "action_const" : true,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004163 "action_data" : [],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004164 "action_entry_const" : true
4165 }
4166 },
4167 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004168 "name" : "tbl_next375",
Daniele Moro5a2de712019-09-24 14:34:07 -07004169 "id" : 21,
pierventre48e78822020-12-15 17:34:54 +01004170 "source_info" : {
4171 "filename" : "include/control/next.p4",
4172 "line" : 375,
4173 "column" : 25,
4174 "source_fragment" : "="
Daniele Moro01ca2ab2019-06-25 11:48:48 -07004175 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004176 "key" : [],
4177 "match_type" : "exact",
4178 "type" : "simple",
4179 "max_size" : 1024,
4180 "with_counters" : false,
4181 "support_timeout" : false,
4182 "direct_meters" : null,
Daniele Moro5a2de712019-09-24 14:34:07 -07004183 "action_ids" : [41],
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004184 "actions" : ["next375"],
Daniele Moro5a2de712019-09-24 14:34:07 -07004185 "base_default_next" : "node_42",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004186 "next_tables" : {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004187 "next375" : "node_42"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004188 },
4189 "default_entry" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07004190 "action_id" : 41,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004191 "action_const" : true,
4192 "action_data" : [],
4193 "action_entry_const" : true
4194 }
4195 },
4196 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004197 "name" : "tbl_next376",
pierventre48e78822020-12-15 17:34:54 +01004198 "id" : 22,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004199 "source_info" : {
4200 "filename" : "include/control/next.p4",
pierventre48e78822020-12-15 17:34:54 +01004201 "line" : 376,
4202 "column" : 35,
4203 "source_fragment" : "mark_to_drop(standard_metadata)"
Carmelo Cascone3032b872019-04-13 01:23:54 -07004204 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004205 "key" : [],
4206 "match_type" : "exact",
4207 "type" : "simple",
4208 "max_size" : 1024,
4209 "with_counters" : false,
4210 "support_timeout" : false,
4211 "direct_meters" : null,
pierventre48e78822020-12-15 17:34:54 +01004212 "action_ids" : [40],
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004213 "actions" : ["next376"],
pierventre48e78822020-12-15 17:34:54 +01004214 "base_default_next" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004215 "next_tables" : {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004216 "next376" : null
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004217 },
4218 "default_entry" : {
pierventre48e78822020-12-15 17:34:54 +01004219 "action_id" : 40,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004220 "action_const" : true,
4221 "action_data" : [],
4222 "action_entry_const" : true
4223 }
4224 },
4225 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004226 "name" : "tbl_next379",
pierventre48e78822020-12-15 17:34:54 +01004227 "id" : 23,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004228 "source_info" : {
4229 "filename" : "include/control/next.p4",
pierventre48e78822020-12-15 17:34:54 +01004230 "line" : 379,
4231 "column" : 29,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004232 "source_fragment" : "="
4233 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004234 "key" : [],
4235 "match_type" : "exact",
4236 "type" : "simple",
4237 "max_size" : 1024,
4238 "with_counters" : false,
4239 "support_timeout" : false,
4240 "direct_meters" : null,
Daniele Moro5a2de712019-09-24 14:34:07 -07004241 "action_ids" : [43],
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004242 "actions" : ["next379"],
pierventre48e78822020-12-15 17:34:54 +01004243 "base_default_next" : "node_46",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004244 "next_tables" : {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004245 "next379" : "node_46"
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004246 },
4247 "default_entry" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07004248 "action_id" : 43,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004249 "action_const" : true,
4250 "action_data" : [],
4251 "action_entry_const" : true
4252 }
4253 },
4254 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004255 "name" : "tbl_next380",
pierventre48e78822020-12-15 17:34:54 +01004256 "id" : 24,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004257 "source_info" : {
4258 "filename" : "include/control/next.p4",
pierventre48e78822020-12-15 17:34:54 +01004259 "line" : 380,
4260 "column" : 39,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004261 "source_fragment" : "mark_to_drop(standard_metadata)"
4262 },
4263 "key" : [],
4264 "match_type" : "exact",
4265 "type" : "simple",
4266 "max_size" : 1024,
4267 "with_counters" : false,
4268 "support_timeout" : false,
4269 "direct_meters" : null,
Daniele Moro5a2de712019-09-24 14:34:07 -07004270 "action_ids" : [42],
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004271 "actions" : ["next380"],
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004272 "base_default_next" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004273 "next_tables" : {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004274 "next380" : null
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004275 },
4276 "default_entry" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07004277 "action_id" : 42,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004278 "action_const" : true,
4279 "action_data" : [],
4280 "action_entry_const" : true
4281 }
Yi Tseng3a5731e2018-01-22 11:38:58 -08004282 }
4283 ],
4284 "action_profiles" : [],
4285 "conditionals" : [
Yi Tseng1d842672017-11-28 16:06:52 -08004286 {
Daniele Moro5a2de712019-09-24 14:34:07 -07004287 "name" : "node_29",
4288 "id" : 10,
Carmelo Casconea5400af2018-07-17 22:11:54 +02004289 "source_info" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004290 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004291 "line" : 39,
Carmelo Casconea5400af2018-07-17 22:11:54 +02004292 "column" : 12,
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004293 "source_fragment" : "fabric_metadata.is_controller_packet_out"
Carmelo Casconea5400af2018-07-17 22:11:54 +02004294 },
4295 "expression" : {
4296 "type" : "expression",
4297 "value" : {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004298 "op" : "d2b",
4299 "left" : null,
Carmelo Casconea5400af2018-07-17 22:11:54 +02004300 "right" : {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004301 "type" : "field",
4302 "value" : ["scalars", "userMetadata.is_controller_packet_out"]
Carmelo Casconea5400af2018-07-17 22:11:54 +02004303 }
4304 }
4305 },
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004306 "true_next" : "tbl_packetio41",
Daniele Moro5a2de712019-09-24 14:34:07 -07004307 "false_next" : "node_31"
Carmelo Casconea5400af2018-07-17 22:11:54 +02004308 },
4309 {
Daniele Moro5a2de712019-09-24 14:34:07 -07004310 "name" : "node_31",
4311 "id" : 11,
Yi Tsengbe342052017-11-03 10:21:23 -07004312 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004313 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004314 "line" : 43,
Yi Tsengbe342052017-11-03 10:21:23 -07004315 "column" : 12,
Carmelo Casconeb531b682018-01-30 17:55:56 -08004316 "source_fragment" : "standard_metadata.egress_port == 255"
Yi Tsengbe342052017-11-03 10:21:23 -07004317 },
4318 "expression" : {
4319 "type" : "expression",
4320 "value" : {
4321 "op" : "==",
4322 "left" : {
4323 "type" : "field",
4324 "value" : ["standard_metadata", "egress_port"]
4325 },
4326 "right" : {
4327 "type" : "hexstr",
4328 "value" : "0x00ff"
4329 }
4330 }
4331 },
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004332 "true_next" : "tbl_packetio44",
Daniele Moro5a2de712019-09-24 14:34:07 -07004333 "false_next" : "node_33"
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004334 },
4335 {
Daniele Moro5a2de712019-09-24 14:34:07 -07004336 "name" : "node_33",
4337 "id" : 12,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004338 "source_info" : {
4339 "filename" : "include/control/next.p4",
pierventre48e78822020-12-15 17:34:54 +01004340 "line" : 347,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004341 "column" : 12,
4342 "source_fragment" : "fabric_metadata.is_multicast == true ..."
4343 },
4344 "expression" : {
4345 "type" : "expression",
4346 "value" : {
4347 "op" : "and",
4348 "left" : {
4349 "type" : "expression",
4350 "value" : {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004351 "op" : "d2b",
4352 "left" : null,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004353 "right" : {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004354 "type" : "field",
4355 "value" : ["scalars", "userMetadata.is_multicast"]
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004356 }
4357 }
4358 },
4359 "right" : {
4360 "type" : "expression",
4361 "value" : {
4362 "op" : "==",
4363 "left" : {
4364 "type" : "field",
4365 "value" : ["standard_metadata", "ingress_port"]
4366 },
4367 "right" : {
4368 "type" : "field",
4369 "value" : ["standard_metadata", "egress_port"]
4370 }
4371 }
4372 }
4373 }
4374 },
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004375 "true_next" : "tbl_next349",
Daniele Moro5a2de712019-09-24 14:34:07 -07004376 "false_next" : "node_35"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004377 },
4378 {
Daniele Moro5a2de712019-09-24 14:34:07 -07004379 "name" : "node_35",
4380 "id" : 13,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004381 "source_info" : {
4382 "filename" : "include/control/next.p4",
pierventre48e78822020-12-15 17:34:54 +01004383 "line" : 352,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004384 "column" : 12,
4385 "source_fragment" : "fabric_metadata.mpls_label == 0"
4386 },
4387 "expression" : {
4388 "type" : "expression",
4389 "value" : {
4390 "op" : "==",
4391 "left" : {
4392 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004393 "value" : ["scalars", "userMetadata.mpls_label"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004394 },
4395 "right" : {
4396 "type" : "hexstr",
4397 "value" : "0x000000"
4398 }
4399 }
4400 },
Daniele Moro5a2de712019-09-24 14:34:07 -07004401 "true_next" : "node_36",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004402 "false_next" : "tbl_egress_next_set_mpls"
4403 },
4404 {
Daniele Moro5a2de712019-09-24 14:34:07 -07004405 "name" : "node_36",
4406 "id" : 14,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004407 "source_info" : {
4408 "filename" : "include/control/next.p4",
pierventre48e78822020-12-15 17:34:54 +01004409 "line" : 353,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004410 "column" : 16,
4411 "source_fragment" : "hdr.mpls.isValid()"
4412 },
4413 "expression" : {
4414 "type" : "expression",
4415 "value" : {
4416 "op" : "d2b",
4417 "left" : null,
4418 "right" : {
4419 "type" : "field",
4420 "value" : ["mpls", "$valid$"]
4421 }
4422 }
4423 },
4424 "true_next" : "tbl_egress_next_pop_mpls_if_present",
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004425 "false_next" : "FabricEgress.egress_next.egress_vlan"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004426 },
4427 {
pierventre48e78822020-12-15 17:34:54 +01004428 "name" : "node_40",
Daniele Moro5a2de712019-09-24 14:34:07 -07004429 "id" : 15,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004430 "source_info" : {
4431 "filename" : "include/control/next.p4",
pierventre48e78822020-12-15 17:34:54 +01004432 "line" : 374,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004433 "column" : 12,
4434 "source_fragment" : "hdr.mpls.isValid()"
4435 },
4436 "expression" : {
4437 "type" : "expression",
4438 "value" : {
4439 "op" : "d2b",
4440 "left" : null,
4441 "right" : {
4442 "type" : "field",
4443 "value" : ["mpls", "$valid$"]
4444 }
4445 }
4446 },
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004447 "true_next" : "tbl_next375",
pierventre48e78822020-12-15 17:34:54 +01004448 "false_next" : "node_44"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004449 },
4450 {
pierventre48e78822020-12-15 17:34:54 +01004451 "name" : "node_42",
4452 "id" : 16,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004453 "source_info" : {
4454 "filename" : "include/control/next.p4",
pierventre48e78822020-12-15 17:34:54 +01004455 "line" : 376,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004456 "column" : 16,
4457 "source_fragment" : "hdr.mpls.ttl == 0"
4458 },
4459 "expression" : {
4460 "type" : "expression",
4461 "value" : {
4462 "op" : "==",
4463 "left" : {
4464 "type" : "field",
4465 "value" : ["mpls", "ttl"]
4466 },
4467 "right" : {
4468 "type" : "hexstr",
4469 "value" : "0x00"
4470 }
4471 }
4472 },
4473 "false_next" : null,
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004474 "true_next" : "tbl_next376"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004475 },
4476 {
pierventre48e78822020-12-15 17:34:54 +01004477 "name" : "node_44",
4478 "id" : 17,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004479 "source_info" : {
4480 "filename" : "include/control/next.p4",
pierventre48e78822020-12-15 17:34:54 +01004481 "line" : 378,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004482 "column" : 15,
Charles Chan74ad51e2020-09-12 19:05:42 -07004483 "source_fragment" : "hdr.ipv4.isValid() && fabric_metadata.fwd_type != FWD_BRIDGING"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004484 },
4485 "expression" : {
4486 "type" : "expression",
4487 "value" : {
Charles Chan74ad51e2020-09-12 19:05:42 -07004488 "op" : "and",
4489 "left" : {
4490 "type" : "expression",
4491 "value" : {
4492 "op" : "d2b",
4493 "left" : null,
4494 "right" : {
4495 "type" : "field",
4496 "value" : ["ipv4", "$valid$"]
4497 }
4498 }
4499 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004500 "right" : {
Charles Chan74ad51e2020-09-12 19:05:42 -07004501 "type" : "expression",
4502 "value" : {
4503 "op" : "!=",
4504 "left" : {
4505 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004506 "value" : ["scalars", "userMetadata.fwd_type"]
Charles Chan74ad51e2020-09-12 19:05:42 -07004507 },
4508 "right" : {
4509 "type" : "hexstr",
4510 "value" : "0x00"
4511 }
4512 }
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004513 }
4514 }
4515 },
4516 "false_next" : null,
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004517 "true_next" : "tbl_next379"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004518 },
4519 {
pierventre48e78822020-12-15 17:34:54 +01004520 "name" : "node_46",
4521 "id" : 18,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004522 "source_info" : {
4523 "filename" : "include/control/next.p4",
pierventre48e78822020-12-15 17:34:54 +01004524 "line" : 380,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004525 "column" : 20,
4526 "source_fragment" : "hdr.ipv4.ttl == 0"
4527 },
4528 "expression" : {
4529 "type" : "expression",
4530 "value" : {
4531 "op" : "==",
4532 "left" : {
4533 "type" : "field",
4534 "value" : ["ipv4", "ttl"]
4535 },
4536 "right" : {
4537 "type" : "hexstr",
4538 "value" : "0x00"
4539 }
4540 }
4541 },
4542 "false_next" : null,
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004543 "true_next" : "tbl_next380"
Yi Tsengbe342052017-11-03 10:21:23 -07004544 }
4545 ]
4546 }
4547 ],
4548 "checksums" : [
4549 {
4550 "name" : "cksum",
4551 "id" : 0,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07004552 "source_info" : {
4553 "filename" : "include/checksum.p4",
4554 "line" : 28,
4555 "column" : 8,
4556 "source_fragment" : "update_checksum(hdr.ipv4.isValid(), ..."
4557 },
Yi Tsengbe342052017-11-03 10:21:23 -07004558 "target" : ["ipv4", "hdr_checksum"],
4559 "type" : "generic",
Yi Tsengbd46d052018-01-22 17:18:16 -08004560 "calculation" : "calc",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08004561 "verify" : false,
4562 "update" : true,
Yi Tsengbd46d052018-01-22 17:18:16 -08004563 "if_cond" : {
4564 "type" : "expression",
4565 "value" : {
4566 "op" : "d2b",
4567 "left" : null,
4568 "right" : {
4569 "type" : "field",
4570 "value" : ["ipv4", "$valid$"]
4571 }
4572 }
4573 }
Yi Tsengbe342052017-11-03 10:21:23 -07004574 },
4575 {
4576 "name" : "cksum_0",
4577 "id" : 1,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07004578 "source_info" : {
4579 "filename" : "include/checksum.p4",
4580 "line" : 57,
4581 "column" : 8,
4582 "source_fragment" : "verify_checksum(hdr.ipv4.isValid(), ..."
4583 },
Yi Tsengbe342052017-11-03 10:21:23 -07004584 "target" : ["ipv4", "hdr_checksum"],
4585 "type" : "generic",
Yi Tsengbd46d052018-01-22 17:18:16 -08004586 "calculation" : "calc_0",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08004587 "verify" : true,
4588 "update" : false,
Yi Tsengbd46d052018-01-22 17:18:16 -08004589 "if_cond" : {
4590 "type" : "expression",
4591 "value" : {
4592 "op" : "d2b",
4593 "left" : null,
4594 "right" : {
4595 "type" : "field",
4596 "value" : ["ipv4", "$valid$"]
4597 }
4598 }
4599 }
Yi Tsengbe342052017-11-03 10:21:23 -07004600 }
4601 ],
4602 "force_arith" : [],
4603 "extern_instances" : [],
4604 "field_aliases" : [
4605 [
4606 "queueing_metadata.enq_timestamp",
4607 ["standard_metadata", "enq_timestamp"]
4608 ],
4609 [
4610 "queueing_metadata.enq_qdepth",
4611 ["standard_metadata", "enq_qdepth"]
4612 ],
4613 [
4614 "queueing_metadata.deq_timedelta",
4615 ["standard_metadata", "deq_timedelta"]
4616 ],
4617 [
4618 "queueing_metadata.deq_qdepth",
4619 ["standard_metadata", "deq_qdepth"]
4620 ],
4621 [
4622 "intrinsic_metadata.ingress_global_timestamp",
4623 ["standard_metadata", "ingress_global_timestamp"]
4624 ],
4625 [
Yi Tseng27b9bc02018-04-12 14:52:40 +08004626 "intrinsic_metadata.egress_global_timestamp",
4627 ["standard_metadata", "egress_global_timestamp"]
4628 ],
4629 [
Yi Tsengbe342052017-11-03 10:21:23 -07004630 "intrinsic_metadata.mcast_grp",
4631 ["standard_metadata", "mcast_grp"]
4632 ],
4633 [
Yi Tsengbe342052017-11-03 10:21:23 -07004634 "intrinsic_metadata.egress_rid",
4635 ["standard_metadata", "egress_rid"]
Yi Tseng27b9bc02018-04-12 14:52:40 +08004636 ],
4637 [
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004638 "intrinsic_metadata.priority",
4639 ["standard_metadata", "priority"]
Yi Tsengbe342052017-11-03 10:21:23 -07004640 ]
Carmelo Cascone6af4e172018-06-15 16:01:30 +02004641 ],
4642 "program" : "fabric.p4",
4643 "__meta__" : {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004644 "version" : [2, 23],
Carmelo Cascone6af4e172018-06-15 16:01:30 +02004645 "compiler" : "https://github.com/p4lang/p4c"
4646 }
Carmelo Cascone25243d62019-02-21 15:37:31 -08004647}