blob: 3c76283335351ae23a0a5a7affc91d934f9c40cf [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],
Carmelo Cascone2a308ff2021-06-01 18:31:57 -07008 ["tmp_2", 3, false],
9 ["tmp_4", 8, false],
Carmelo Cascone2388cc12021-05-26 19:30:30 +020010 ["tmp_1", 16, false],
11 ["tmp_3", 16, false],
12 ["tmp_5", 4, false],
13 ["tmp_6", 16, false],
Carmelo Cascone2a308ff2021-06-01 18:31:57 -070014 ["tmp_7", 64, false],
15 ["tmp_8", 32, false],
16 ["tmp_9", 32, false],
Carmelo Cascone2388cc12021-05-26 19:30:30 +020017 ["userMetadata.ip_eth_type", 16, false],
18 ["userMetadata.vlan_id", 12, false],
19 ["userMetadata.vlan_pri", 3, false],
20 ["userMetadata.vlan_cfi", 1, false],
21 ["userMetadata.mpls_label", 20, false],
22 ["userMetadata.mpls_ttl", 8, false],
23 ["userMetadata.skip_forwarding", 1, false],
24 ["userMetadata.skip_next", 1, false],
25 ["userMetadata.fwd_type", 3, false],
26 ["userMetadata.next_id", 32, false],
27 ["userMetadata.is_multicast", 1, false],
28 ["userMetadata.is_controller_packet_out", 1, false],
29 ["userMetadata.ip_proto", 8, false],
30 ["userMetadata.l4_sport", 16, false],
31 ["userMetadata.l4_dport", 16, false],
32 ["userMetadata.ipv4_src_addr", 32, false],
Carmelo Cascone2a308ff2021-06-01 18:31:57 -070033 ["userMetadata.ipv4_dst_addr", 32, false],
34 ["_padding_0", 5, false]
Carmelo Cascone2388cc12021-05-26 19:30:30 +020035 ]
36 },
37 {
38 "name" : "packet_out_header_t",
39 "id" : 1,
40 "fields" : [
41 ["egress_port", 9, false],
42 ["do_forwarding", 1, false],
43 ["_pad", 6, false]
Yi Tsengc6844f52017-12-19 11:58:25 -080044 ]
45 },
46 {
Carmelo Cascone2a308ff2021-06-01 18:31:57 -070047 "name" : "gtpu_t",
Carmelo Cascone2388cc12021-05-26 19:30:30 +020048 "id" : 2,
Yi Tsengc6844f52017-12-19 11:58:25 -080049 "fields" : [
Carmelo Cascone2a308ff2021-06-01 18:31:57 -070050 ["version", 3, false],
51 ["pt", 1, false],
52 ["spare", 1, false],
53 ["ex_flag", 1, false],
54 ["seq_flag", 1, false],
55 ["npdu_flag", 1, false],
56 ["msgtype", 8, false],
57 ["msglen", 16, false],
58 ["teid", 32, false]
59 ]
60 },
61 {
62 "name" : "standard_metadata",
63 "id" : 3,
64 "fields" : [
Carmelo Cascone6af4e172018-06-15 16:01:30 +020065 ["ingress_port", 9, false],
66 ["egress_spec", 9, false],
67 ["egress_port", 9, false],
Carmelo Cascone6af4e172018-06-15 16:01:30 +020068 ["instance_type", 32, false],
Carmelo Cascone6af4e172018-06-15 16:01:30 +020069 ["packet_length", 32, false],
70 ["enq_timestamp", 32, false],
71 ["enq_qdepth", 19, false],
72 ["deq_timedelta", 32, false],
73 ["deq_qdepth", 19, false],
74 ["ingress_global_timestamp", 48, false],
75 ["egress_global_timestamp", 48, false],
Carmelo Cascone6af4e172018-06-15 16:01:30 +020076 ["mcast_grp", 16, false],
Carmelo Cascone6af4e172018-06-15 16:01:30 +020077 ["egress_rid", 16, false],
Carmelo Cascone9b607da2019-05-08 14:03:01 -070078 ["checksum_error", 1, false],
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -070079 ["parser_error", 32, false],
Carmelo Cascone9b607da2019-05-08 14:03:01 -070080 ["priority", 3, false],
Carmelo Cascone2388cc12021-05-26 19:30:30 +020081 ["_padding", 3, false]
Carmelo Cascone6af4e172018-06-15 16:01:30 +020082 ]
83 },
84 {
85 "name" : "ethernet_t",
Carmelo Cascone2a308ff2021-06-01 18:31:57 -070086 "id" : 4,
Carmelo Cascone6af4e172018-06-15 16:01:30 +020087 "fields" : [
Yi Tsengc6844f52017-12-19 11:58:25 -080088 ["dst_addr", 48, false],
Daniele Moro5a2de712019-09-24 14:34:07 -070089 ["src_addr", 48, false]
Yi Tsengc6844f52017-12-19 11:58:25 -080090 ]
91 },
92 {
93 "name" : "vlan_tag_t",
Carmelo Cascone2a308ff2021-06-01 18:31:57 -070094 "id" : 5,
Yi Tsengc6844f52017-12-19 11:58:25 -080095 "fields" : [
Daniele Moro5a2de712019-09-24 14:34:07 -070096 ["eth_type", 16, false],
Yi Tsengc6844f52017-12-19 11:58:25 -080097 ["pri", 3, false],
98 ["cfi", 1, false],
Daniele Moro5a2de712019-09-24 14:34:07 -070099 ["vlan_id", 12, false]
100 ]
101 },
102 {
103 "name" : "eth_type_t",
Carmelo Cascone2a308ff2021-06-01 18:31:57 -0700104 "id" : 6,
Daniele Moro5a2de712019-09-24 14:34:07 -0700105 "fields" : [
106 ["value", 16, false]
Yi Tsengc6844f52017-12-19 11:58:25 -0800107 ]
108 },
109 {
110 "name" : "mpls_t",
Carmelo Cascone2a308ff2021-06-01 18:31:57 -0700111 "id" : 7,
Yi Tsengc6844f52017-12-19 11:58:25 -0800112 "fields" : [
113 ["label", 20, false],
114 ["tc", 3, false],
115 ["bos", 1, false],
116 ["ttl", 8, false]
Yi Tsengbe342052017-11-03 10:21:23 -0700117 ]
118 },
119 {
120 "name" : "ipv4_t",
Carmelo Cascone2a308ff2021-06-01 18:31:57 -0700121 "id" : 8,
Yi Tsengbe342052017-11-03 10:21:23 -0700122 "fields" : [
123 ["version", 4, false],
124 ["ihl", 4, false],
Jonghwan Hyuned478dc2018-08-06 15:35:18 +0900125 ["dscp", 6, false],
126 ["ecn", 2, false],
Yi Tsengbe342052017-11-03 10:21:23 -0700127 ["total_len", 16, false],
128 ["identification", 16, false],
129 ["flags", 3, false],
130 ["frag_offset", 13, false],
131 ["ttl", 8, false],
132 ["protocol", 8, false],
133 ["hdr_checksum", 16, false],
134 ["src_addr", 32, false],
135 ["dst_addr", 32, false]
136 ]
137 },
138 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800139 "name" : "tcp_t",
Carmelo Cascone2a308ff2021-06-01 18:31:57 -0700140 "id" : 9,
Yi Tseng47eac892018-07-11 02:17:04 +0800141 "fields" : [
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800142 ["sport", 16, false],
143 ["dport", 16, false],
Yi Tsengbe342052017-11-03 10:21:23 -0700144 ["seq_no", 32, false],
145 ["ack_no", 32, false],
146 ["data_offset", 4, false],
147 ["res", 3, false],
148 ["ecn", 3, false],
149 ["ctrl", 6, false],
150 ["window", 16, false],
151 ["checksum", 16, false],
152 ["urgent_ptr", 16, false]
153 ]
154 },
155 {
156 "name" : "udp_t",
Carmelo Cascone2a308ff2021-06-01 18:31:57 -0700157 "id" : 10,
Yi Tsengbe342052017-11-03 10:21:23 -0700158 "fields" : [
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800159 ["sport", 16, false],
160 ["dport", 16, false],
Yi Tsengbe342052017-11-03 10:21:23 -0700161 ["len", 16, false],
162 ["checksum", 16, false]
163 ]
164 },
165 {
166 "name" : "icmp_t",
Carmelo Cascone2a308ff2021-06-01 18:31:57 -0700167 "id" : 11,
Yi Tsengbe342052017-11-03 10:21:23 -0700168 "fields" : [
169 ["icmp_type", 8, false],
170 ["icmp_code", 8, false],
Yi Tsengf73a5532017-11-17 15:58:57 -0800171 ["checksum", 16, false],
172 ["identifier", 16, false],
173 ["sequence_number", 16, false],
174 ["timestamp", 64, false]
Yi Tsengbe342052017-11-03 10:21:23 -0700175 ]
176 },
177 {
Yi Tsengbe342052017-11-03 10:21:23 -0700178 "name" : "packet_in_header_t",
Carmelo Cascone2a308ff2021-06-01 18:31:57 -0700179 "id" : 12,
Yi Tsengbe342052017-11-03 10:21:23 -0700180 "fields" : [
181 ["ingress_port", 9, false],
Yi Tseng1d842672017-11-28 16:06:52 -0800182 ["_pad", 7, false]
Yi Tsengbe342052017-11-03 10:21:23 -0700183 ]
Yi Tsengbe342052017-11-03 10:21:23 -0700184 }
185 ],
186 "headers" : [
187 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200188 "name" : "tmp",
Yi Tsengc6844f52017-12-19 11:58:25 -0800189 "id" : 0,
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200190 "header_type" : "packet_out_header_t",
191 "metadata" : false,
192 "pi_omit" : true
193 },
194 {
Carmelo Cascone2a308ff2021-06-01 18:31:57 -0700195 "name" : "gtpu_0",
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200196 "id" : 1,
Carmelo Cascone2a308ff2021-06-01 18:31:57 -0700197 "header_type" : "gtpu_t",
198 "metadata" : false,
199 "pi_omit" : true
200 },
201 {
202 "name" : "scalars",
203 "id" : 2,
Yi Tsengbe342052017-11-03 10:21:23 -0700204 "header_type" : "scalars_0",
205 "metadata" : true,
206 "pi_omit" : true
207 },
208 {
209 "name" : "standard_metadata",
Carmelo Cascone2a308ff2021-06-01 18:31:57 -0700210 "id" : 3,
Yi Tsengbe342052017-11-03 10:21:23 -0700211 "header_type" : "standard_metadata",
212 "metadata" : true,
213 "pi_omit" : true
214 },
215 {
216 "name" : "ethernet",
Carmelo Cascone2a308ff2021-06-01 18:31:57 -0700217 "id" : 4,
Yi Tsengbe342052017-11-03 10:21:23 -0700218 "header_type" : "ethernet_t",
219 "metadata" : false,
220 "pi_omit" : true
221 },
222 {
223 "name" : "vlan_tag",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800224 "id" : 5,
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200225 "header_type" : "vlan_tag_t",
226 "metadata" : false,
227 "pi_omit" : true
228 },
229 {
Carmelo Cascone2a308ff2021-06-01 18:31:57 -0700230 "name" : "inner_vlan_tag",
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200231 "id" : 6,
Carmelo Cascone2a308ff2021-06-01 18:31:57 -0700232 "header_type" : "vlan_tag_t",
233 "metadata" : false,
234 "pi_omit" : true
235 },
236 {
237 "name" : "eth_type",
238 "id" : 7,
Daniele Moro5a2de712019-09-24 14:34:07 -0700239 "header_type" : "eth_type_t",
240 "metadata" : false,
241 "pi_omit" : true
242 },
243 {
244 "name" : "mpls",
Carmelo Cascone2a308ff2021-06-01 18:31:57 -0700245 "id" : 8,
Yi Tsengbe342052017-11-03 10:21:23 -0700246 "header_type" : "mpls_t",
247 "metadata" : false,
248 "pi_omit" : true
249 },
250 {
251 "name" : "ipv4",
Carmelo Cascone2a308ff2021-06-01 18:31:57 -0700252 "id" : 9,
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800253 "header_type" : "ipv4_t",
Yi Tsengbe342052017-11-03 10:21:23 -0700254 "metadata" : false,
255 "pi_omit" : true
256 },
257 {
258 "name" : "tcp",
Carmelo Cascone2a308ff2021-06-01 18:31:57 -0700259 "id" : 10,
Yi Tsengbe342052017-11-03 10:21:23 -0700260 "header_type" : "tcp_t",
261 "metadata" : false,
262 "pi_omit" : true
263 },
264 {
265 "name" : "udp",
Carmelo Cascone2a308ff2021-06-01 18:31:57 -0700266 "id" : 11,
Yi Tsengbe342052017-11-03 10:21:23 -0700267 "header_type" : "udp_t",
268 "metadata" : false,
269 "pi_omit" : true
270 },
271 {
272 "name" : "icmp",
Carmelo Cascone2a308ff2021-06-01 18:31:57 -0700273 "id" : 12,
Yi Tsengbe342052017-11-03 10:21:23 -0700274 "header_type" : "icmp_t",
275 "metadata" : false,
276 "pi_omit" : true
277 },
278 {
279 "name" : "packet_out",
Carmelo Cascone2a308ff2021-06-01 18:31:57 -0700280 "id" : 13,
Yi Tsengbe342052017-11-03 10:21:23 -0700281 "header_type" : "packet_out_header_t",
282 "metadata" : false,
283 "pi_omit" : true
284 },
285 {
286 "name" : "packet_in",
Carmelo Cascone2a308ff2021-06-01 18:31:57 -0700287 "id" : 14,
Yi Tsengbe342052017-11-03 10:21:23 -0700288 "header_type" : "packet_in_header_t",
289 "metadata" : false,
290 "pi_omit" : true
291 }
292 ],
293 "header_stacks" : [],
294 "header_union_types" : [],
295 "header_unions" : [],
296 "header_union_stacks" : [],
Daniele Moro01ca2ab2019-06-25 11:48:48 -0700297 "field_lists" : [
298 {
299 "id" : 1,
300 "name" : "fl",
301 "source_info" : {
Daniele Moro3b7a21b2019-06-25 17:33:40 -0700302 "filename" : "include/control/acl.p4",
303 "line" : 46,
Daniele Moro01ca2ab2019-06-25 11:48:48 -0700304 "column" : 40,
Daniele Moro3b7a21b2019-06-25 17:33:40 -0700305 "source_fragment" : "{standard_metadata.ingress_port}"
Daniele Moro01ca2ab2019-06-25 11:48:48 -0700306 },
307 "elements" : [
308 {
309 "type" : "field",
310 "value" : ["standard_metadata", "ingress_port"]
Daniele Moro01ca2ab2019-06-25 11:48:48 -0700311 }
312 ]
313 }
314 ],
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700315 "errors" : [
Carmelo Cascone4d8785b2019-05-31 17:11:26 -0700316 ["NoError", 1],
317 ["PacketTooShort", 2],
318 ["NoMatch", 3],
319 ["StackOutOfBounds", 4],
320 ["HeaderTooShort", 5],
321 ["ParserTimeout", 6],
322 ["ParserInvalidArgument", 7]
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700323 ],
Yi Tsengbe342052017-11-03 10:21:23 -0700324 "enums" : [],
325 "parsers" : [
326 {
327 "name" : "parser",
328 "id" : 0,
329 "init_state" : "start",
330 "parse_states" : [
331 {
332 "name" : "start",
333 "id" : 0,
334 "parser_ops" : [],
335 "transitions" : [
336 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800337 "type" : "hexstr",
Yi Tsengbe342052017-11-03 10:21:23 -0700338 "value" : "0x00ff",
339 "mask" : null,
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200340 "next_state" : "check_packet_out"
Yi Tsengbe342052017-11-03 10:21:23 -0700341 },
342 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200343 "type" : "default",
344 "value" : null,
Yi Tsengbe342052017-11-03 10:21:23 -0700345 "mask" : null,
346 "next_state" : "parse_ethernet"
347 }
348 ],
349 "transition_key" : [
350 {
351 "type" : "field",
352 "value" : ["standard_metadata", "ingress_port"]
353 }
354 ]
355 },
356 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200357 "name" : "check_packet_out",
Yi Tsengbe342052017-11-03 10:21:23 -0700358 "id" : 1,
359 "parser_ops" : [
360 {
361 "parameters" : [
362 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200363 "type" : "field",
364 "value" : ["scalars", "tmp_6"]
365 },
366 {
367 "type" : "lookahead",
368 "value" : [0, 16]
369 }
370 ],
371 "op" : "set"
372 },
373 {
374 "parameters" : [
375 {
376 "parameters" : [
377 {
378 "type" : "header",
379 "value" : "tmp"
380 }
381 ],
382 "op" : "add_header"
383 }
384 ],
385 "op" : "primitive"
386 },
387 {
388 "parameters" : [
389 {
390 "type" : "field",
391 "value" : ["tmp", "egress_port"]
392 },
393 {
394 "type" : "expression",
395 "value" : {
396 "type" : "expression",
397 "value" : {
398 "op" : "&",
399 "left" : {
400 "type" : "expression",
401 "value" : {
402 "op" : "&",
403 "left" : {
404 "type" : "expression",
405 "value" : {
406 "op" : ">>",
407 "left" : {
408 "type" : "field",
409 "value" : ["scalars", "tmp_6"]
410 },
411 "right" : {
412 "type" : "hexstr",
413 "value" : "0x7"
414 }
415 }
416 },
417 "right" : {
418 "type" : "hexstr",
419 "value" : "0xffff"
420 }
421 }
422 },
423 "right" : {
424 "type" : "hexstr",
425 "value" : "0x01ff"
426 }
427 }
428 }
429 }
430 ],
431 "op" : "set"
432 },
433 {
434 "parameters" : [
435 {
436 "type" : "field",
437 "value" : ["tmp", "do_forwarding"]
438 },
439 {
440 "type" : "expression",
441 "value" : {
442 "type" : "expression",
443 "value" : {
444 "op" : "&",
445 "left" : {
446 "type" : "expression",
447 "value" : {
448 "op" : "&",
449 "left" : {
450 "type" : "expression",
451 "value" : {
452 "op" : ">>",
453 "left" : {
454 "type" : "field",
455 "value" : ["scalars", "tmp_6"]
456 },
457 "right" : {
458 "type" : "hexstr",
459 "value" : "0x6"
460 }
461 }
462 },
463 "right" : {
464 "type" : "hexstr",
465 "value" : "0xffff"
466 }
467 }
468 },
469 "right" : {
470 "type" : "hexstr",
471 "value" : "0x01"
472 }
473 }
474 }
475 }
476 ],
477 "op" : "set"
478 },
479 {
480 "parameters" : [
481 {
482 "type" : "field",
483 "value" : ["tmp", "_pad"]
484 },
485 {
486 "type" : "expression",
487 "value" : {
488 "type" : "expression",
489 "value" : {
490 "op" : "&",
491 "left" : {
492 "type" : "field",
493 "value" : ["scalars", "tmp_6"]
494 },
495 "right" : {
496 "type" : "hexstr",
497 "value" : "0x3f"
498 }
499 }
500 }
501 }
502 ],
503 "op" : "set"
504 },
505 {
506 "parameters" : [
507 {
508 "type" : "field",
509 "value" : ["scalars", "tmp_0"]
510 },
511 {
512 "type" : "expression",
513 "value" : {
514 "type" : "expression",
515 "value" : {
516 "op" : "&",
517 "left" : {
518 "type" : "expression",
519 "value" : {
520 "op" : "&",
521 "left" : {
522 "type" : "expression",
523 "value" : {
524 "op" : ">>",
525 "left" : {
526 "type" : "field",
527 "value" : ["scalars", "tmp_6"]
528 },
529 "right" : {
530 "type" : "hexstr",
531 "value" : "0x6"
532 }
533 }
534 },
535 "right" : {
536 "type" : "hexstr",
537 "value" : "0xffff"
538 }
539 }
540 },
541 "right" : {
542 "type" : "hexstr",
543 "value" : "0x01"
544 }
545 }
546 }
547 }
548 ],
549 "op" : "set"
550 }
551 ],
552 "transitions" : [
553 {
554 "type" : "hexstr",
555 "value" : "0x00",
556 "mask" : null,
557 "next_state" : "parse_packet_out_and_accept"
558 },
559 {
560 "type" : "default",
561 "value" : null,
562 "mask" : null,
563 "next_state" : "strip_packet_out"
564 }
565 ],
566 "transition_key" : [
567 {
568 "type" : "field",
569 "value" : ["scalars", "tmp_0"]
570 }
571 ]
572 },
573 {
574 "name" : "parse_packet_out_and_accept",
575 "id" : 2,
576 "parser_ops" : [
577 {
578 "parameters" : [
579 {
Yi Tsengbe342052017-11-03 10:21:23 -0700580 "type" : "regular",
581 "value" : "packet_out"
582 }
583 ],
584 "op" : "extract"
585 }
586 ],
587 "transitions" : [
588 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200589 "type" : "default",
590 "value" : null,
591 "mask" : null,
592 "next_state" : null
593 }
594 ],
595 "transition_key" : []
596 },
597 {
598 "name" : "strip_packet_out",
599 "id" : 3,
600 "parser_ops" : [
601 {
602 "parameters" : [
603 {
604 "type" : "hexstr",
605 "value" : "0x00000010"
606 }
607 ],
608 "op" : "advance"
609 }
610 ],
611 "transitions" : [
612 {
613 "type" : "default",
614 "value" : null,
Yi Tsengbe342052017-11-03 10:21:23 -0700615 "mask" : null,
616 "next_state" : "parse_ethernet"
617 }
618 ],
619 "transition_key" : []
620 },
621 {
622 "name" : "parse_ethernet",
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200623 "id" : 4,
Yi Tsengbe342052017-11-03 10:21:23 -0700624 "parser_ops" : [
625 {
626 "parameters" : [
627 {
628 "type" : "regular",
629 "value" : "ethernet"
630 }
631 ],
632 "op" : "extract"
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800633 },
634 {
635 "parameters" : [
636 {
637 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200638 "value" : ["scalars", "userMetadata.vlan_id"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800639 },
640 {
Daniele Moro5a2de712019-09-24 14:34:07 -0700641 "type" : "hexstr",
642 "value" : "0x0ffe"
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800643 }
644 ],
645 "op" : "set"
646 },
647 {
648 "parameters" : [
649 {
650 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200651 "value" : ["scalars", "tmp_1"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800652 },
653 {
Daniele Moro5a2de712019-09-24 14:34:07 -0700654 "type" : "lookahead",
655 "value" : [0, 16]
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800656 }
657 ],
658 "op" : "set"
Yi Tsengbe342052017-11-03 10:21:23 -0700659 }
660 ],
661 "transitions" : [
662 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800663 "type" : "hexstr",
Daniele Moro77654f92019-07-30 10:29:54 -0700664 "value" : "0x88a8",
665 "mask" : null,
666 "next_state" : "parse_vlan_tag"
667 },
668 {
669 "type" : "hexstr",
670 "value" : "0x9100",
671 "mask" : null,
672 "next_state" : "parse_vlan_tag"
673 },
674 {
675 "type" : "hexstr",
Yi Tsengbe342052017-11-03 10:21:23 -0700676 "value" : "0x8100",
677 "mask" : null,
678 "next_state" : "parse_vlan_tag"
679 },
680 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200681 "type" : "default",
682 "value" : null,
Yi Tsengbe342052017-11-03 10:21:23 -0700683 "mask" : null,
Daniele Moro5a2de712019-09-24 14:34:07 -0700684 "next_state" : "parse_eth_type"
Yi Tsengbe342052017-11-03 10:21:23 -0700685 }
686 ],
687 "transition_key" : [
688 {
689 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200690 "value" : ["scalars", "tmp_1"]
Yi Tsengbe342052017-11-03 10:21:23 -0700691 }
692 ]
693 },
694 {
695 "name" : "parse_vlan_tag",
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200696 "id" : 5,
Yi Tsengbe342052017-11-03 10:21:23 -0700697 "parser_ops" : [
698 {
699 "parameters" : [
700 {
701 "type" : "regular",
702 "value" : "vlan_tag"
703 }
704 ],
705 "op" : "extract"
Daniele Moro5a2de712019-09-24 14:34:07 -0700706 },
707 {
708 "parameters" : [
709 {
710 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200711 "value" : ["scalars", "tmp_3"]
Daniele Moro5a2de712019-09-24 14:34:07 -0700712 },
713 {
714 "type" : "lookahead",
715 "value" : [0, 16]
716 }
717 ],
718 "op" : "set"
Yi Tsengbe342052017-11-03 10:21:23 -0700719 }
720 ],
721 "transitions" : [
722 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800723 "type" : "hexstr",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800724 "value" : "0x8100",
725 "mask" : null,
726 "next_state" : "parse_inner_vlan_tag"
727 },
728 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200729 "type" : "default",
730 "value" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800731 "mask" : null,
Daniele Moro5a2de712019-09-24 14:34:07 -0700732 "next_state" : "parse_eth_type"
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800733 }
734 ],
735 "transition_key" : [
736 {
737 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200738 "value" : ["scalars", "tmp_3"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800739 }
740 ]
741 },
742 {
743 "name" : "parse_inner_vlan_tag",
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200744 "id" : 6,
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800745 "parser_ops" : [
746 {
747 "parameters" : [
748 {
749 "type" : "regular",
750 "value" : "inner_vlan_tag"
751 }
752 ],
753 "op" : "extract"
754 }
755 ],
756 "transitions" : [
757 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200758 "type" : "default",
759 "value" : null,
Yi Tsengbe342052017-11-03 10:21:23 -0700760 "mask" : null,
Daniele Moro5a2de712019-09-24 14:34:07 -0700761 "next_state" : "parse_eth_type"
762 }
763 ],
764 "transition_key" : []
765 },
766 {
767 "name" : "parse_eth_type",
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200768 "id" : 7,
Daniele Moro5a2de712019-09-24 14:34:07 -0700769 "parser_ops" : [
770 {
771 "parameters" : [
772 {
773 "type" : "regular",
774 "value" : "eth_type"
775 }
776 ],
777 "op" : "extract"
778 }
779 ],
780 "transitions" : [
Yi Tsengbe342052017-11-03 10:21:23 -0700781 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800782 "type" : "hexstr",
Yi Tsengbd46d052018-01-22 17:18:16 -0800783 "value" : "0x8847",
Yi Tsengbe342052017-11-03 10:21:23 -0700784 "mask" : null,
Yi Tsengbd46d052018-01-22 17:18:16 -0800785 "next_state" : "parse_mpls"
Yi Tsengbe342052017-11-03 10:21:23 -0700786 },
787 {
Daniele Moro5a2de712019-09-24 14:34:07 -0700788 "type" : "hexstr",
789 "value" : "0x0800",
790 "mask" : null,
791 "next_state" : "parse_ipv4"
792 },
793 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200794 "type" : "default",
795 "value" : null,
Yi Tsengbe342052017-11-03 10:21:23 -0700796 "mask" : null,
797 "next_state" : null
798 }
799 ],
800 "transition_key" : [
801 {
802 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -0700803 "value" : ["eth_type", "value"]
Yi Tsengbe342052017-11-03 10:21:23 -0700804 }
805 ]
806 },
807 {
808 "name" : "parse_mpls",
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200809 "id" : 8,
Yi Tsengbe342052017-11-03 10:21:23 -0700810 "parser_ops" : [
811 {
812 "parameters" : [
813 {
814 "type" : "regular",
815 "value" : "mpls"
816 }
817 ],
818 "op" : "extract"
819 },
820 {
821 "parameters" : [
822 {
823 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200824 "value" : ["scalars", "userMetadata.mpls_label"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800825 },
826 {
827 "type" : "field",
828 "value" : ["mpls", "label"]
829 }
830 ],
831 "op" : "set"
832 },
833 {
834 "parameters" : [
835 {
836 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200837 "value" : ["scalars", "userMetadata.mpls_ttl"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800838 },
839 {
840 "type" : "field",
841 "value" : ["mpls", "ttl"]
842 }
843 ],
844 "op" : "set"
845 },
846 {
847 "parameters" : [
848 {
849 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200850 "value" : ["scalars", "tmp_5"]
Yi Tsengbe342052017-11-03 10:21:23 -0700851 },
852 {
853 "type" : "lookahead",
Yi Tsengc6844f52017-12-19 11:58:25 -0800854 "value" : [0, 4]
Yi Tsengbe342052017-11-03 10:21:23 -0700855 }
856 ],
857 "op" : "set"
858 }
859 ],
860 "transitions" : [
861 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800862 "type" : "hexstr",
Yi Tsengbe342052017-11-03 10:21:23 -0700863 "value" : "0x04",
864 "mask" : null,
865 "next_state" : "parse_ipv4"
866 },
867 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200868 "type" : "default",
869 "value" : null,
Yi Tsengbe342052017-11-03 10:21:23 -0700870 "mask" : null,
871 "next_state" : "parse_ethernet"
872 }
873 ],
874 "transition_key" : [
875 {
876 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200877 "value" : ["scalars", "tmp_5"]
Yi Tsengbe342052017-11-03 10:21:23 -0700878 }
879 ]
880 },
881 {
Daniele Moro7c3a0022019-07-12 13:38:34 -0700882 "name" : "parse_ipv4",
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200883 "id" : 9,
Daniele Moro7c3a0022019-07-12 13:38:34 -0700884 "parser_ops" : [
885 {
886 "parameters" : [
887 {
Yi Tsengbe342052017-11-03 10:21:23 -0700888 "type" : "regular",
889 "value" : "ipv4"
890 }
891 ],
892 "op" : "extract"
893 },
894 {
895 "parameters" : [
896 {
897 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200898 "value" : ["scalars", "userMetadata.ip_proto"]
Yi Tsengbe342052017-11-03 10:21:23 -0700899 },
900 {
901 "type" : "field",
902 "value" : ["ipv4", "protocol"]
903 }
904 ],
905 "op" : "set"
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800906 },
907 {
908 "parameters" : [
909 {
910 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200911 "value" : ["scalars", "userMetadata.ip_eth_type"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800912 },
913 {
914 "type" : "hexstr",
915 "value" : "0x0800"
916 }
917 ],
918 "op" : "set"
Robert MacDavidbec6b6a2020-05-21 21:32:38 -0400919 },
920 {
921 "parameters" : [
922 {
923 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200924 "value" : ["scalars", "userMetadata.ipv4_src_addr"]
Robert MacDavidbec6b6a2020-05-21 21:32:38 -0400925 },
926 {
927 "type" : "field",
928 "value" : ["ipv4", "src_addr"]
929 }
930 ],
931 "op" : "set"
932 },
933 {
934 "parameters" : [
935 {
936 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200937 "value" : ["scalars", "userMetadata.ipv4_dst_addr"]
Robert MacDavidbec6b6a2020-05-21 21:32:38 -0400938 },
939 {
940 "type" : "field",
941 "value" : ["ipv4", "dst_addr"]
942 }
943 ],
944 "op" : "set"
Yi Tsengbe342052017-11-03 10:21:23 -0700945 }
946 ],
947 "transitions" : [
948 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800949 "type" : "hexstr",
Yi Tsengbe342052017-11-03 10:21:23 -0700950 "value" : "0x06",
951 "mask" : null,
952 "next_state" : "parse_tcp"
953 },
954 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800955 "type" : "hexstr",
Yi Tsengbe342052017-11-03 10:21:23 -0700956 "value" : "0x11",
957 "mask" : null,
958 "next_state" : "parse_udp"
959 },
960 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800961 "type" : "hexstr",
Yi Tsengbe342052017-11-03 10:21:23 -0700962 "value" : "0x01",
963 "mask" : null,
964 "next_state" : "parse_icmp"
965 },
966 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200967 "type" : "default",
968 "value" : null,
Yi Tsengbe342052017-11-03 10:21:23 -0700969 "mask" : null,
970 "next_state" : null
971 }
972 ],
973 "transition_key" : [
974 {
975 "type" : "field",
976 "value" : ["ipv4", "protocol"]
977 }
978 ]
979 },
980 {
Yi Tsengbe342052017-11-03 10:21:23 -0700981 "name" : "parse_tcp",
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200982 "id" : 10,
Yi Tsengbe342052017-11-03 10:21:23 -0700983 "parser_ops" : [
984 {
985 "parameters" : [
986 {
987 "type" : "regular",
988 "value" : "tcp"
989 }
990 ],
991 "op" : "extract"
992 },
993 {
994 "parameters" : [
995 {
996 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200997 "value" : ["scalars", "userMetadata.l4_sport"]
Yi Tsengbe342052017-11-03 10:21:23 -0700998 },
999 {
1000 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001001 "value" : ["tcp", "sport"]
Yi Tsengbe342052017-11-03 10:21:23 -07001002 }
1003 ],
1004 "op" : "set"
1005 },
1006 {
1007 "parameters" : [
1008 {
1009 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02001010 "value" : ["scalars", "userMetadata.l4_dport"]
Yi Tsengbe342052017-11-03 10:21:23 -07001011 },
1012 {
1013 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001014 "value" : ["tcp", "dport"]
Yi Tsengbe342052017-11-03 10:21:23 -07001015 }
1016 ],
1017 "op" : "set"
1018 }
1019 ],
1020 "transitions" : [
1021 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02001022 "type" : "default",
1023 "value" : null,
Yi Tsengbe342052017-11-03 10:21:23 -07001024 "mask" : null,
1025 "next_state" : null
1026 }
1027 ],
1028 "transition_key" : []
1029 },
1030 {
1031 "name" : "parse_udp",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02001032 "id" : 11,
Yi Tsengbe342052017-11-03 10:21:23 -07001033 "parser_ops" : [
1034 {
1035 "parameters" : [
1036 {
1037 "type" : "regular",
1038 "value" : "udp"
1039 }
1040 ],
1041 "op" : "extract"
1042 },
1043 {
1044 "parameters" : [
1045 {
1046 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02001047 "value" : ["scalars", "userMetadata.l4_sport"]
Yi Tsengbe342052017-11-03 10:21:23 -07001048 },
1049 {
1050 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001051 "value" : ["udp", "sport"]
Yi Tsengbe342052017-11-03 10:21:23 -07001052 }
1053 ],
1054 "op" : "set"
1055 },
1056 {
1057 "parameters" : [
1058 {
1059 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02001060 "value" : ["scalars", "userMetadata.l4_dport"]
Yi Tsengbe342052017-11-03 10:21:23 -07001061 },
1062 {
1063 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001064 "value" : ["udp", "dport"]
Yi Tsengbe342052017-11-03 10:21:23 -07001065 }
1066 ],
1067 "op" : "set"
Carmelo Cascone2a308ff2021-06-01 18:31:57 -07001068 },
1069 {
1070 "parameters" : [
1071 {
1072 "type" : "field",
1073 "value" : ["scalars", "tmp_7"]
1074 },
1075 {
1076 "type" : "lookahead",
1077 "value" : [0, 64]
1078 }
1079 ],
1080 "op" : "set"
1081 },
1082 {
1083 "parameters" : [
1084 {
1085 "parameters" : [
1086 {
1087 "type" : "header",
1088 "value" : "gtpu_0"
1089 }
1090 ],
1091 "op" : "add_header"
1092 }
1093 ],
1094 "op" : "primitive"
1095 },
1096 {
1097 "parameters" : [
1098 {
1099 "type" : "field",
1100 "value" : ["gtpu_0", "version"]
1101 },
1102 {
1103 "type" : "expression",
1104 "value" : {
1105 "type" : "expression",
1106 "value" : {
1107 "op" : "&",
1108 "left" : {
1109 "type" : "expression",
1110 "value" : {
1111 "op" : "&",
1112 "left" : {
1113 "type" : "expression",
1114 "value" : {
1115 "op" : ">>",
1116 "left" : {
1117 "type" : "field",
1118 "value" : ["scalars", "tmp_7"]
1119 },
1120 "right" : {
1121 "type" : "hexstr",
1122 "value" : "0x3d"
1123 }
1124 }
1125 },
1126 "right" : {
1127 "type" : "hexstr",
1128 "value" : "0xffffffffffffffff"
1129 }
1130 }
1131 },
1132 "right" : {
1133 "type" : "hexstr",
1134 "value" : "0x07"
1135 }
1136 }
1137 }
1138 }
1139 ],
1140 "op" : "set"
1141 },
1142 {
1143 "parameters" : [
1144 {
1145 "type" : "field",
1146 "value" : ["gtpu_0", "pt"]
1147 },
1148 {
1149 "type" : "expression",
1150 "value" : {
1151 "type" : "expression",
1152 "value" : {
1153 "op" : "&",
1154 "left" : {
1155 "type" : "expression",
1156 "value" : {
1157 "op" : "&",
1158 "left" : {
1159 "type" : "expression",
1160 "value" : {
1161 "op" : ">>",
1162 "left" : {
1163 "type" : "field",
1164 "value" : ["scalars", "tmp_7"]
1165 },
1166 "right" : {
1167 "type" : "hexstr",
1168 "value" : "0x3c"
1169 }
1170 }
1171 },
1172 "right" : {
1173 "type" : "hexstr",
1174 "value" : "0xffffffffffffffff"
1175 }
1176 }
1177 },
1178 "right" : {
1179 "type" : "hexstr",
1180 "value" : "0x01"
1181 }
1182 }
1183 }
1184 }
1185 ],
1186 "op" : "set"
1187 },
1188 {
1189 "parameters" : [
1190 {
1191 "type" : "field",
1192 "value" : ["gtpu_0", "spare"]
1193 },
1194 {
1195 "type" : "expression",
1196 "value" : {
1197 "type" : "expression",
1198 "value" : {
1199 "op" : "&",
1200 "left" : {
1201 "type" : "expression",
1202 "value" : {
1203 "op" : "&",
1204 "left" : {
1205 "type" : "expression",
1206 "value" : {
1207 "op" : ">>",
1208 "left" : {
1209 "type" : "field",
1210 "value" : ["scalars", "tmp_7"]
1211 },
1212 "right" : {
1213 "type" : "hexstr",
1214 "value" : "0x3b"
1215 }
1216 }
1217 },
1218 "right" : {
1219 "type" : "hexstr",
1220 "value" : "0xffffffffffffffff"
1221 }
1222 }
1223 },
1224 "right" : {
1225 "type" : "hexstr",
1226 "value" : "0x01"
1227 }
1228 }
1229 }
1230 }
1231 ],
1232 "op" : "set"
1233 },
1234 {
1235 "parameters" : [
1236 {
1237 "type" : "field",
1238 "value" : ["gtpu_0", "ex_flag"]
1239 },
1240 {
1241 "type" : "expression",
1242 "value" : {
1243 "type" : "expression",
1244 "value" : {
1245 "op" : "&",
1246 "left" : {
1247 "type" : "expression",
1248 "value" : {
1249 "op" : "&",
1250 "left" : {
1251 "type" : "expression",
1252 "value" : {
1253 "op" : ">>",
1254 "left" : {
1255 "type" : "field",
1256 "value" : ["scalars", "tmp_7"]
1257 },
1258 "right" : {
1259 "type" : "hexstr",
1260 "value" : "0x3a"
1261 }
1262 }
1263 },
1264 "right" : {
1265 "type" : "hexstr",
1266 "value" : "0xffffffffffffffff"
1267 }
1268 }
1269 },
1270 "right" : {
1271 "type" : "hexstr",
1272 "value" : "0x01"
1273 }
1274 }
1275 }
1276 }
1277 ],
1278 "op" : "set"
1279 },
1280 {
1281 "parameters" : [
1282 {
1283 "type" : "field",
1284 "value" : ["gtpu_0", "seq_flag"]
1285 },
1286 {
1287 "type" : "expression",
1288 "value" : {
1289 "type" : "expression",
1290 "value" : {
1291 "op" : "&",
1292 "left" : {
1293 "type" : "expression",
1294 "value" : {
1295 "op" : "&",
1296 "left" : {
1297 "type" : "expression",
1298 "value" : {
1299 "op" : ">>",
1300 "left" : {
1301 "type" : "field",
1302 "value" : ["scalars", "tmp_7"]
1303 },
1304 "right" : {
1305 "type" : "hexstr",
1306 "value" : "0x39"
1307 }
1308 }
1309 },
1310 "right" : {
1311 "type" : "hexstr",
1312 "value" : "0xffffffffffffffff"
1313 }
1314 }
1315 },
1316 "right" : {
1317 "type" : "hexstr",
1318 "value" : "0x01"
1319 }
1320 }
1321 }
1322 }
1323 ],
1324 "op" : "set"
1325 },
1326 {
1327 "parameters" : [
1328 {
1329 "type" : "field",
1330 "value" : ["gtpu_0", "npdu_flag"]
1331 },
1332 {
1333 "type" : "expression",
1334 "value" : {
1335 "type" : "expression",
1336 "value" : {
1337 "op" : "&",
1338 "left" : {
1339 "type" : "expression",
1340 "value" : {
1341 "op" : "&",
1342 "left" : {
1343 "type" : "expression",
1344 "value" : {
1345 "op" : ">>",
1346 "left" : {
1347 "type" : "field",
1348 "value" : ["scalars", "tmp_7"]
1349 },
1350 "right" : {
1351 "type" : "hexstr",
1352 "value" : "0x38"
1353 }
1354 }
1355 },
1356 "right" : {
1357 "type" : "hexstr",
1358 "value" : "0xffffffffffffffff"
1359 }
1360 }
1361 },
1362 "right" : {
1363 "type" : "hexstr",
1364 "value" : "0x01"
1365 }
1366 }
1367 }
1368 }
1369 ],
1370 "op" : "set"
1371 },
1372 {
1373 "parameters" : [
1374 {
1375 "type" : "field",
1376 "value" : ["gtpu_0", "msgtype"]
1377 },
1378 {
1379 "type" : "expression",
1380 "value" : {
1381 "type" : "expression",
1382 "value" : {
1383 "op" : "&",
1384 "left" : {
1385 "type" : "expression",
1386 "value" : {
1387 "op" : "&",
1388 "left" : {
1389 "type" : "expression",
1390 "value" : {
1391 "op" : ">>",
1392 "left" : {
1393 "type" : "field",
1394 "value" : ["scalars", "tmp_7"]
1395 },
1396 "right" : {
1397 "type" : "hexstr",
1398 "value" : "0x30"
1399 }
1400 }
1401 },
1402 "right" : {
1403 "type" : "hexstr",
1404 "value" : "0xffffffffffffffff"
1405 }
1406 }
1407 },
1408 "right" : {
1409 "type" : "hexstr",
1410 "value" : "0xff"
1411 }
1412 }
1413 }
1414 }
1415 ],
1416 "op" : "set"
1417 },
1418 {
1419 "parameters" : [
1420 {
1421 "type" : "field",
1422 "value" : ["gtpu_0", "msglen"]
1423 },
1424 {
1425 "type" : "expression",
1426 "value" : {
1427 "type" : "expression",
1428 "value" : {
1429 "op" : "&",
1430 "left" : {
1431 "type" : "expression",
1432 "value" : {
1433 "op" : "&",
1434 "left" : {
1435 "type" : "expression",
1436 "value" : {
1437 "op" : ">>",
1438 "left" : {
1439 "type" : "field",
1440 "value" : ["scalars", "tmp_7"]
1441 },
1442 "right" : {
1443 "type" : "hexstr",
1444 "value" : "0x20"
1445 }
1446 }
1447 },
1448 "right" : {
1449 "type" : "hexstr",
1450 "value" : "0xffffffffffffffff"
1451 }
1452 }
1453 },
1454 "right" : {
1455 "type" : "hexstr",
1456 "value" : "0xffff"
1457 }
1458 }
1459 }
1460 }
1461 ],
1462 "op" : "set"
1463 },
1464 {
1465 "parameters" : [
1466 {
1467 "type" : "field",
1468 "value" : ["gtpu_0", "teid"]
1469 },
1470 {
1471 "type" : "expression",
1472 "value" : {
1473 "type" : "expression",
1474 "value" : {
1475 "op" : "&",
1476 "left" : {
1477 "type" : "field",
1478 "value" : ["scalars", "tmp_7"]
1479 },
1480 "right" : {
1481 "type" : "hexstr",
1482 "value" : "0xffffffff"
1483 }
1484 }
1485 }
1486 }
1487 ],
1488 "op" : "set"
1489 },
1490 {
1491 "parameters" : [
1492 {
1493 "type" : "field",
1494 "value" : ["scalars", "tmp_2"]
1495 },
1496 {
1497 "type" : "expression",
1498 "value" : {
1499 "type" : "expression",
1500 "value" : {
1501 "op" : "&",
1502 "left" : {
1503 "type" : "expression",
1504 "value" : {
1505 "op" : "&",
1506 "left" : {
1507 "type" : "expression",
1508 "value" : {
1509 "op" : ">>",
1510 "left" : {
1511 "type" : "field",
1512 "value" : ["scalars", "tmp_7"]
1513 },
1514 "right" : {
1515 "type" : "hexstr",
1516 "value" : "0x3d"
1517 }
1518 }
1519 },
1520 "right" : {
1521 "type" : "hexstr",
1522 "value" : "0xffffffffffffffff"
1523 }
1524 }
1525 },
1526 "right" : {
1527 "type" : "hexstr",
1528 "value" : "0x07"
1529 }
1530 }
1531 }
1532 }
1533 ],
1534 "op" : "set"
1535 },
1536 {
1537 "parameters" : [
1538 {
1539 "type" : "field",
1540 "value" : ["scalars", "tmp_4"]
1541 },
1542 {
1543 "type" : "expression",
1544 "value" : {
1545 "type" : "expression",
1546 "value" : {
1547 "op" : "&",
1548 "left" : {
1549 "type" : "expression",
1550 "value" : {
1551 "op" : "&",
1552 "left" : {
1553 "type" : "expression",
1554 "value" : {
1555 "op" : ">>",
1556 "left" : {
1557 "type" : "field",
1558 "value" : ["scalars", "tmp_7"]
1559 },
1560 "right" : {
1561 "type" : "hexstr",
1562 "value" : "0x30"
1563 }
1564 }
1565 },
1566 "right" : {
1567 "type" : "hexstr",
1568 "value" : "0xffffffffffffffff"
1569 }
1570 }
1571 },
1572 "right" : {
1573 "type" : "hexstr",
1574 "value" : "0xff"
1575 }
1576 }
1577 }
1578 }
1579 ],
1580 "op" : "set"
Yi Tsengbe342052017-11-03 10:21:23 -07001581 }
1582 ],
1583 "transitions" : [
1584 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02001585 "type" : "default",
1586 "value" : null,
Yi Tsengbe342052017-11-03 10:21:23 -07001587 "mask" : null,
1588 "next_state" : null
1589 }
1590 ],
Carmelo Cascone79a3a312018-08-16 17:14:43 -07001591 "transition_key" : [
1592 {
1593 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001594 "value" : ["udp", "dport"]
Carmelo Cascone2a308ff2021-06-01 18:31:57 -07001595 },
1596 {
1597 "type" : "field",
1598 "value" : ["scalars", "tmp_2"]
1599 },
1600 {
1601 "type" : "field",
1602 "value" : ["scalars", "tmp_4"]
Carmelo Cascone79a3a312018-08-16 17:14:43 -07001603 }
1604 ]
Yi Tsengbe342052017-11-03 10:21:23 -07001605 },
1606 {
1607 "name" : "parse_icmp",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02001608 "id" : 12,
Yi Tsengbe342052017-11-03 10:21:23 -07001609 "parser_ops" : [
1610 {
1611 "parameters" : [
1612 {
1613 "type" : "regular",
1614 "value" : "icmp"
1615 }
1616 ],
1617 "op" : "extract"
1618 }
1619 ],
1620 "transitions" : [
1621 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02001622 "type" : "default",
1623 "value" : null,
Yi Tsengbe342052017-11-03 10:21:23 -07001624 "mask" : null,
1625 "next_state" : null
1626 }
1627 ],
1628 "transition_key" : []
1629 }
1630 ]
1631 }
1632 ],
Yi Tseng27b9bc02018-04-12 14:52:40 +08001633 "parse_vsets" : [],
Yi Tsengbe342052017-11-03 10:21:23 -07001634 "deparsers" : [
1635 {
1636 "name" : "deparser",
1637 "id" : 0,
1638 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001639 "filename" : "include/parser.p4",
Carmelo Cascone2a308ff2021-06-01 18:31:57 -07001640 "line" : 285,
Yi Tsengbe342052017-11-03 10:21:23 -07001641 "column" : 8,
1642 "source_fragment" : "FabricDeparser"
1643 },
Carmelo Cascone2388cc12021-05-26 19:30:30 +02001644 "order" : ["packet_in", "ethernet", "vlan_tag", "inner_vlan_tag", "eth_type", "mpls", "ipv4", "tcp", "udp", "icmp"],
1645 "primitives" : []
Yi Tsengbe342052017-11-03 10:21:23 -07001646 }
1647 ],
1648 "meter_arrays" : [],
1649 "counter_arrays" : [
1650 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001651 "name" : "FabricIngress.filtering.ingress_port_vlan_counter",
Yi Tseng1d842672017-11-28 16:06:52 -08001652 "id" : 0,
Yi Tseng3a5731e2018-01-22 11:38:58 -08001653 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001654 "binding" : "FabricIngress.filtering.ingress_port_vlan",
1655 "source_info" : {
1656 "filename" : "include/control/filtering.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001657 "line" : 31,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001658 "column" : 50,
1659 "source_fragment" : "ingress_port_vlan_counter"
1660 }
Yi Tseng3a5731e2018-01-22 11:38:58 -08001661 },
1662 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001663 "name" : "FabricIngress.filtering.fwd_classifier_counter",
Yi Tseng3a5731e2018-01-22 11:38:58 -08001664 "id" : 1,
1665 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001666 "binding" : "FabricIngress.filtering.fwd_classifier",
1667 "source_info" : {
1668 "filename" : "include/control/filtering.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07001669 "line" : 85,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001670 "column" : 50,
1671 "source_fragment" : "fwd_classifier_counter"
1672 }
Yi Tseng3a5731e2018-01-22 11:38:58 -08001673 },
1674 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001675 "name" : "FabricIngress.forwarding.bridging_counter",
Yi Tseng3a5731e2018-01-22 11:38:58 -08001676 "id" : 2,
1677 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001678 "binding" : "FabricIngress.forwarding.bridging",
1679 "source_info" : {
1680 "filename" : "include/control/forwarding.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001681 "line" : 36,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001682 "column" : 50,
1683 "source_fragment" : "bridging_counter"
1684 }
Yi Tseng3a5731e2018-01-22 11:38:58 -08001685 },
1686 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001687 "name" : "FabricIngress.forwarding.mpls_counter",
Yi Tseng3a5731e2018-01-22 11:38:58 -08001688 "id" : 3,
1689 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001690 "binding" : "FabricIngress.forwarding.mpls",
1691 "source_info" : {
1692 "filename" : "include/control/forwarding.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07001693 "line" : 63,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001694 "column" : 50,
1695 "source_fragment" : "mpls_counter"
1696 }
Yi Tseng3a5731e2018-01-22 11:38:58 -08001697 },
1698 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001699 "name" : "FabricIngress.acl.acl_counter",
Daniele Moro5a2de712019-09-24 14:34:07 -07001700 "id" : 4,
Yi Tseng3a5731e2018-01-22 11:38:58 -08001701 "is_direct" : true,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001702 "binding" : "FabricIngress.acl.acl",
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001703 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001704 "filename" : "include/control/acl.p4",
1705 "line" : 30,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001706 "column" : 50,
1707 "source_fragment" : "acl_counter"
1708 }
Yi Tseng3a5731e2018-01-22 11:38:58 -08001709 },
1710 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001711 "name" : "FabricIngress.next.next_vlan_counter",
Daniele Moro5a2de712019-09-24 14:34:07 -07001712 "id" : 5,
Yi Tseng47eac892018-07-11 02:17:04 +08001713 "is_direct" : true,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001714 "binding" : "FabricIngress.next.next_vlan",
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001715 "source_info" : {
1716 "filename" : "include/control/next.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001717 "line" : 67,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001718 "column" : 50,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001719 "source_fragment" : "next_vlan_counter"
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001720 }
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001721 },
1722 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001723 "name" : "FabricIngress.next.xconnect_counter",
Daniele Moro5a2de712019-09-24 14:34:07 -07001724 "id" : 6,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001725 "is_direct" : true,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001726 "binding" : "FabricIngress.next.xconnect",
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001727 "source_info" : {
1728 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07001729 "line" : 107,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001730 "column" : 50,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001731 "source_fragment" : "xconnect_counter"
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001732 }
Yi Tseng27b9bc02018-04-12 14:52:40 +08001733 },
1734 {
1735 "name" : "FabricIngress.next.hashed_counter",
Daniele Moro5a2de712019-09-24 14:34:07 -07001736 "id" : 7,
Yi Tseng27b9bc02018-04-12 14:52:40 +08001737 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001738 "binding" : "FabricIngress.next.hashed",
1739 "source_info" : {
1740 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07001741 "line" : 184,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001742 "column" : 50,
1743 "source_fragment" : "hashed_counter"
1744 }
Yi Tseng27b9bc02018-04-12 14:52:40 +08001745 },
1746 {
Esin Karaman971fb7f2017-12-28 13:44:52 +00001747 "name" : "FabricIngress.next.multicast_counter",
Daniele Moro5a2de712019-09-24 14:34:07 -07001748 "id" : 8,
Esin Karaman971fb7f2017-12-28 13:44:52 +00001749 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001750 "binding" : "FabricIngress.next.multicast",
1751 "source_info" : {
1752 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07001753 "line" : 228,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001754 "column" : 50,
1755 "source_fragment" : "multicast_counter"
1756 }
Esin Karaman971fb7f2017-12-28 13:44:52 +00001757 },
1758 {
1759 "name" : "FabricIngress.port_counters_control.egress_port_counter",
Daniele Moro5a2de712019-09-24 14:34:07 -07001760 "id" : 9,
Yi Tsengbe342052017-11-03 10:21:23 -07001761 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001762 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001763 "line" : 26,
Yi Tseng3d3956d2018-01-31 17:28:05 -08001764 "column" : 48,
Yi Tsengbe342052017-11-03 10:21:23 -07001765 "source_fragment" : "egress_port_counter"
1766 },
1767 "size" : 511,
1768 "is_direct" : false
1769 },
1770 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001771 "name" : "FabricIngress.port_counters_control.ingress_port_counter",
Daniele Moro5a2de712019-09-24 14:34:07 -07001772 "id" : 10,
Yi Tsengbe342052017-11-03 10:21:23 -07001773 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001774 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001775 "line" : 27,
Yi Tseng3d3956d2018-01-31 17:28:05 -08001776 "column" : 48,
Yi Tsengbe342052017-11-03 10:21:23 -07001777 "source_fragment" : "ingress_port_counter"
1778 },
1779 "size" : 511,
1780 "is_direct" : false
Yi Tseng47eac892018-07-11 02:17:04 +08001781 },
1782 {
1783 "name" : "FabricEgress.egress_next.egress_vlan_counter",
Daniele Moro5a2de712019-09-24 14:34:07 -07001784 "id" : 11,
Yi Tseng47eac892018-07-11 02:17:04 +08001785 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001786 "binding" : "FabricEgress.egress_next.egress_vlan",
1787 "source_info" : {
1788 "filename" : "include/control/next.p4",
pierventre48e78822020-12-15 17:34:54 +01001789 "line" : 314,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001790 "column" : 50,
1791 "source_fragment" : "egress_vlan_counter"
1792 }
Yi Tsengbe342052017-11-03 10:21:23 -07001793 }
1794 ],
1795 "register_arrays" : [],
1796 "calculations" : [
1797 {
1798 "name" : "calc",
1799 "id" : 0,
1800 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001801 "filename" : "include/checksum.p4",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001802 "line" : 28,
Yi Tsengbe342052017-11-03 10:21:23 -07001803 "column" : 8,
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001804 "source_fragment" : "update_checksum(hdr.ipv4.isValid(), ..."
Yi Tsengbe342052017-11-03 10:21:23 -07001805 },
1806 "algo" : "csum16",
1807 "input" : [
1808 {
1809 "type" : "field",
1810 "value" : ["ipv4", "version"]
1811 },
1812 {
1813 "type" : "field",
1814 "value" : ["ipv4", "ihl"]
1815 },
1816 {
1817 "type" : "field",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09001818 "value" : ["ipv4", "dscp"]
1819 },
1820 {
1821 "type" : "field",
1822 "value" : ["ipv4", "ecn"]
Yi Tsengbe342052017-11-03 10:21:23 -07001823 },
1824 {
1825 "type" : "field",
1826 "value" : ["ipv4", "total_len"]
1827 },
1828 {
1829 "type" : "field",
1830 "value" : ["ipv4", "identification"]
1831 },
1832 {
1833 "type" : "field",
1834 "value" : ["ipv4", "flags"]
1835 },
1836 {
1837 "type" : "field",
1838 "value" : ["ipv4", "frag_offset"]
1839 },
1840 {
1841 "type" : "field",
1842 "value" : ["ipv4", "ttl"]
1843 },
1844 {
1845 "type" : "field",
1846 "value" : ["ipv4", "protocol"]
1847 },
1848 {
1849 "type" : "field",
1850 "value" : ["ipv4", "src_addr"]
1851 },
1852 {
1853 "type" : "field",
1854 "value" : ["ipv4", "dst_addr"]
1855 }
1856 ]
1857 },
1858 {
1859 "name" : "calc_0",
1860 "id" : 1,
1861 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001862 "filename" : "include/checksum.p4",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09001863 "line" : 57,
Yi Tsengbe342052017-11-03 10:21:23 -07001864 "column" : 8,
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001865 "source_fragment" : "verify_checksum(hdr.ipv4.isValid(), ..."
Yi Tsengbe342052017-11-03 10:21:23 -07001866 },
1867 "algo" : "csum16",
1868 "input" : [
1869 {
1870 "type" : "field",
1871 "value" : ["ipv4", "version"]
1872 },
1873 {
1874 "type" : "field",
1875 "value" : ["ipv4", "ihl"]
1876 },
1877 {
1878 "type" : "field",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09001879 "value" : ["ipv4", "dscp"]
1880 },
1881 {
1882 "type" : "field",
1883 "value" : ["ipv4", "ecn"]
Yi Tsengbe342052017-11-03 10:21:23 -07001884 },
1885 {
1886 "type" : "field",
1887 "value" : ["ipv4", "total_len"]
1888 },
1889 {
1890 "type" : "field",
1891 "value" : ["ipv4", "identification"]
1892 },
1893 {
1894 "type" : "field",
1895 "value" : ["ipv4", "flags"]
1896 },
1897 {
1898 "type" : "field",
1899 "value" : ["ipv4", "frag_offset"]
1900 },
1901 {
1902 "type" : "field",
1903 "value" : ["ipv4", "ttl"]
1904 },
1905 {
1906 "type" : "field",
1907 "value" : ["ipv4", "protocol"]
1908 },
1909 {
1910 "type" : "field",
1911 "value" : ["ipv4", "src_addr"]
1912 },
1913 {
1914 "type" : "field",
1915 "value" : ["ipv4", "dst_addr"]
1916 }
1917 ]
Yi Tsengbe342052017-11-03 10:21:23 -07001918 }
1919 ],
1920 "learn_lists" : [],
1921 "actions" : [
1922 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001923 "name" : "nop",
Yi Tsengbe342052017-11-03 10:21:23 -07001924 "id" : 0,
1925 "runtime_data" : [],
1926 "primitives" : []
1927 },
1928 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001929 "name" : "nop",
Yi Tsengbe342052017-11-03 10:21:23 -07001930 "id" : 1,
1931 "runtime_data" : [],
1932 "primitives" : []
1933 },
1934 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001935 "name" : "nop",
Yi Tsengbe342052017-11-03 10:21:23 -07001936 "id" : 2,
1937 "runtime_data" : [],
Yi Tseng1d842672017-11-28 16:06:52 -08001938 "primitives" : []
Yi Tsengbe342052017-11-03 10:21:23 -07001939 },
1940 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001941 "name" : "nop",
Yi Tsengbe342052017-11-03 10:21:23 -07001942 "id" : 3,
1943 "runtime_data" : [],
Yi Tseng1d842672017-11-28 16:06:52 -08001944 "primitives" : []
Yi Tsengbe342052017-11-03 10:21:23 -07001945 },
1946 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001947 "name" : "nop",
Yi Tsengbe342052017-11-03 10:21:23 -07001948 "id" : 4,
1949 "runtime_data" : [],
1950 "primitives" : []
1951 },
1952 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001953 "name" : "nop",
Yi Tsengbe342052017-11-03 10:21:23 -07001954 "id" : 5,
1955 "runtime_data" : [],
1956 "primitives" : []
1957 },
1958 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07001959 "name" : "nop",
Yi Tsengbe342052017-11-03 10:21:23 -07001960 "id" : 6,
1961 "runtime_data" : [],
1962 "primitives" : []
1963 },
1964 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001965 "name" : "FabricIngress.filtering.deny",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07001966 "id" : 7,
Yi Tseng47eac892018-07-11 02:17:04 +08001967 "runtime_data" : [],
Yi Tseng1d842672017-11-28 16:06:52 -08001968 "primitives" : [
1969 {
Yi Tsengbe342052017-11-03 10:21:23 -07001970 "op" : "assign",
1971 "parameters" : [
1972 {
1973 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02001974 "value" : ["scalars", "userMetadata.skip_forwarding"]
Yi Tsengbe342052017-11-03 10:21:23 -07001975 },
1976 {
1977 "type" : "expression",
1978 "value" : {
1979 "type" : "expression",
1980 "value" : {
1981 "op" : "b2d",
1982 "left" : null,
1983 "right" : {
1984 "type" : "bool",
1985 "value" : true
1986 }
1987 }
1988 }
1989 }
1990 ],
1991 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001992 "filename" : "include/control/filtering.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001993 "line" : 36,
Yi Tsengbe342052017-11-03 10:21:23 -07001994 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001995 "source_fragment" : "fabric_metadata.skip_forwarding = true"
1996 }
1997 },
1998 {
1999 "op" : "assign",
2000 "parameters" : [
2001 {
2002 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02002003 "value" : ["scalars", "userMetadata.skip_next"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002004 },
2005 {
2006 "type" : "expression",
2007 "value" : {
2008 "type" : "expression",
2009 "value" : {
2010 "op" : "b2d",
2011 "left" : null,
2012 "right" : {
2013 "type" : "bool",
2014 "value" : true
2015 }
2016 }
2017 }
2018 }
2019 ],
2020 "source_info" : {
2021 "filename" : "include/control/filtering.p4",
2022 "line" : 37,
2023 "column" : 8,
2024 "source_fragment" : "fabric_metadata.skip_next = true"
Yi Tsengbe342052017-11-03 10:21:23 -07002025 }
2026 }
2027 ]
2028 },
2029 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002030 "name" : "FabricIngress.filtering.permit",
2031 "id" : 8,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002032 "runtime_data" : [],
2033 "primitives" : []
2034 },
2035 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002036 "name" : "FabricIngress.filtering.permit_with_internal_vlan",
2037 "id" : 9,
2038 "runtime_data" : [
2039 {
2040 "name" : "vlan_id",
2041 "bitwidth" : 12
2042 }
2043 ],
2044 "primitives" : [
2045 {
2046 "op" : "assign",
2047 "parameters" : [
2048 {
2049 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02002050 "value" : ["scalars", "userMetadata.vlan_id"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002051 },
2052 {
2053 "type" : "runtime_data",
2054 "value" : 0
2055 }
2056 ],
2057 "source_info" : {
2058 "filename" : "include/control/filtering.p4",
2059 "line" : 47,
2060 "column" : 8,
2061 "source_fragment" : "fabric_metadata.vlan_id = vlan_id"
2062 }
2063 }
2064 ]
2065 },
2066 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002067 "name" : "FabricIngress.filtering.set_forwarding_type",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002068 "id" : 10,
Yi Tsengbe342052017-11-03 10:21:23 -07002069 "runtime_data" : [
2070 {
2071 "name" : "fwd_type",
2072 "bitwidth" : 3
2073 }
2074 ],
2075 "primitives" : [
2076 {
2077 "op" : "assign",
2078 "parameters" : [
2079 {
2080 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02002081 "value" : ["scalars", "userMetadata.fwd_type"]
Yi Tsengbe342052017-11-03 10:21:23 -07002082 },
2083 {
2084 "type" : "runtime_data",
2085 "value" : 0
2086 }
2087 ],
2088 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002089 "filename" : "include/control/filtering.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07002090 "line" : 88,
Yi Tsengbe342052017-11-03 10:21:23 -07002091 "column" : 8,
2092 "source_fragment" : "fabric_metadata.fwd_type = fwd_type"
2093 }
2094 }
2095 ]
2096 },
2097 {
Yi Tseng47eac892018-07-11 02:17:04 +08002098 "name" : "FabricIngress.forwarding.set_next_id_bridging",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002099 "id" : 11,
Carmelo Casconef645e842018-07-16 18:31:52 +02002100 "runtime_data" : [
2101 {
2102 "name" : "next_id",
2103 "bitwidth" : 32
2104 }
2105 ],
2106 "primitives" : [
2107 {
2108 "op" : "assign",
2109 "parameters" : [
2110 {
2111 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02002112 "value" : ["scalars", "userMetadata.next_id"]
Carmelo Casconef645e842018-07-16 18:31:52 +02002113 },
2114 {
2115 "type" : "runtime_data",
2116 "value" : 0
2117 }
2118 ],
2119 "source_info" : {
2120 "filename" : "include/control/forwarding.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002121 "line" : 30,
Carmelo Casconef645e842018-07-16 18:31:52 +02002122 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002123 "source_fragment" : "fabric_metadata.next_id = next_id; ..."
Carmelo Casconef645e842018-07-16 18:31:52 +02002124 }
2125 }
2126 ]
2127 },
2128 {
2129 "name" : "FabricIngress.forwarding.pop_mpls_and_next",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002130 "id" : 12,
Carmelo Casconef645e842018-07-16 18:31:52 +02002131 "runtime_data" : [
2132 {
2133 "name" : "next_id",
2134 "bitwidth" : 32
2135 }
2136 ],
2137 "primitives" : [
2138 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002139 "op" : "assign",
Carmelo Casconef645e842018-07-16 18:31:52 +02002140 "parameters" : [
2141 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002142 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02002143 "value" : ["scalars", "userMetadata.mpls_label"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002144 },
2145 {
2146 "type" : "hexstr",
2147 "value" : "0x000000"
Carmelo Casconef645e842018-07-16 18:31:52 +02002148 }
2149 ],
2150 "source_info" : {
2151 "filename" : "include/control/forwarding.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07002152 "line" : 66,
Carmelo Casconef645e842018-07-16 18:31:52 +02002153 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002154 "source_fragment" : "fabric_metadata.mpls_label = 0"
Carmelo Casconef645e842018-07-16 18:31:52 +02002155 }
2156 },
2157 {
2158 "op" : "assign",
2159 "parameters" : [
2160 {
2161 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02002162 "value" : ["scalars", "userMetadata.next_id"]
Carmelo Casconef645e842018-07-16 18:31:52 +02002163 },
2164 {
2165 "type" : "runtime_data",
2166 "value" : 0
2167 }
2168 ],
2169 "source_info" : {
2170 "filename" : "include/control/forwarding.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002171 "line" : 30,
Carmelo Casconef645e842018-07-16 18:31:52 +02002172 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002173 "source_fragment" : "fabric_metadata.next_id = next_id; ..."
Carmelo Casconef645e842018-07-16 18:31:52 +02002174 }
2175 }
2176 ]
2177 },
2178 {
Charles Chan384aea22018-08-23 22:08:02 -07002179 "name" : "FabricIngress.forwarding.set_next_id_routing_v4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002180 "id" : 13,
Carmelo Casconef645e842018-07-16 18:31:52 +02002181 "runtime_data" : [
2182 {
2183 "name" : "next_id",
2184 "bitwidth" : 32
2185 }
2186 ],
2187 "primitives" : [
2188 {
2189 "op" : "assign",
2190 "parameters" : [
2191 {
2192 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02002193 "value" : ["scalars", "userMetadata.next_id"]
Carmelo Casconef645e842018-07-16 18:31:52 +02002194 },
2195 {
2196 "type" : "runtime_data",
2197 "value" : 0
2198 }
2199 ],
2200 "source_info" : {
2201 "filename" : "include/control/forwarding.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002202 "line" : 30,
Carmelo Casconef645e842018-07-16 18:31:52 +02002203 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002204 "source_fragment" : "fabric_metadata.next_id = next_id; ..."
Carmelo Casconef645e842018-07-16 18:31:52 +02002205 }
2206 }
2207 ]
2208 },
2209 {
Charles Chancd03f072018-08-31 17:46:37 -07002210 "name" : "FabricIngress.forwarding.nop_routing_v4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002211 "id" : 14,
Charles Chancd03f072018-08-31 17:46:37 -07002212 "runtime_data" : [],
2213 "primitives" : []
2214 },
2215 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002216 "name" : "FabricIngress.acl.set_next_id_acl",
2217 "id" : 15,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002218 "runtime_data" : [
2219 {
2220 "name" : "next_id",
2221 "bitwidth" : 32
2222 }
2223 ],
2224 "primitives" : [
2225 {
Esin Karaman971fb7f2017-12-28 13:44:52 +00002226 "op" : "assign",
2227 "parameters" : [
2228 {
2229 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02002230 "value" : ["scalars", "userMetadata.next_id"]
Esin Karaman971fb7f2017-12-28 13:44:52 +00002231 },
2232 {
2233 "type" : "runtime_data",
2234 "value" : 0
2235 }
2236 ],
2237 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002238 "filename" : "include/control/acl.p4",
2239 "line" : 33,
Yi Tseng47eac892018-07-11 02:17:04 +08002240 "column" : 8,
2241 "source_fragment" : "fabric_metadata.next_id = next_id"
2242 }
2243 }
2244 ]
2245 },
2246 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002247 "name" : "FabricIngress.acl.punt_to_cpu",
2248 "id" : 16,
Yi Tsengbe342052017-11-03 10:21:23 -07002249 "runtime_data" : [],
2250 "primitives" : [
2251 {
2252 "op" : "assign",
2253 "parameters" : [
2254 {
2255 "type" : "field",
Yi Tsengbe342052017-11-03 10:21:23 -07002256 "value" : ["standard_metadata", "egress_spec"]
2257 },
2258 {
2259 "type" : "hexstr",
2260 "value" : "0x00ff"
2261 }
2262 ],
2263 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002264 "filename" : "include/control/acl.p4",
2265 "line" : 39,
Carmelo Casconeb531b682018-01-30 17:55:56 -08002266 "column" : 8,
2267 "source_fragment" : "standard_metadata.egress_spec = 255"
Yi Tsengbe342052017-11-03 10:21:23 -07002268 }
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002269 },
2270 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002271 "op" : "assign",
2272 "parameters" : [
2273 {
2274 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02002275 "value" : ["scalars", "userMetadata.skip_next"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002276 },
2277 {
2278 "type" : "expression",
2279 "value" : {
2280 "type" : "expression",
2281 "value" : {
2282 "op" : "b2d",
2283 "left" : null,
2284 "right" : {
2285 "type" : "bool",
2286 "value" : true
2287 }
2288 }
2289 }
2290 }
2291 ],
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002292 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002293 "filename" : "include/control/acl.p4",
2294 "line" : 40,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002295 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002296 "source_fragment" : "fabric_metadata.skip_next = true"
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002297 }
2298 }
2299 ]
2300 },
2301 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07002302 "name" : "FabricIngress.acl.set_clone_session_id",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002303 "id" : 17,
Daniele Moro01ca2ab2019-06-25 11:48:48 -07002304 "runtime_data" : [
2305 {
2306 "name" : "clone_id",
2307 "bitwidth" : 32
2308 }
2309 ],
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002310 "primitives" : [
2311 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07002312 "op" : "clone_ingress_pkt_to_egress",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002313 "parameters" : [
2314 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07002315 "type" : "runtime_data",
2316 "value" : 0
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002317 },
2318 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07002319 "type" : "hexstr",
2320 "value" : "0x1"
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002321 }
2322 ],
2323 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002324 "filename" : "include/control/acl.p4",
2325 "line" : 46,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002326 "column" : 8,
Daniele Moro3b7a21b2019-06-25 17:33:40 -07002327 "source_fragment" : "clone3(CloneType.I2E, clone_id, {standard_metadata.ingress_port})"
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002328 }
Yi Tsengbe342052017-11-03 10:21:23 -07002329 }
2330 ]
2331 },
2332 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002333 "name" : "FabricIngress.acl.drop",
2334 "id" : 18,
Yi Tseng47eac892018-07-11 02:17:04 +08002335 "runtime_data" : [],
2336 "primitives" : [
2337 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07002338 "op" : "mark_to_drop",
2339 "parameters" : [
2340 {
2341 "type" : "header",
2342 "value" : "standard_metadata"
2343 }
2344 ],
Yi Tseng47eac892018-07-11 02:17:04 +08002345 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002346 "filename" : "include/control/acl.p4",
2347 "line" : 51,
Yi Tseng47eac892018-07-11 02:17:04 +08002348 "column" : 8,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07002349 "source_fragment" : "mark_to_drop(standard_metadata)"
Yi Tseng47eac892018-07-11 02:17:04 +08002350 }
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002351 },
2352 {
2353 "op" : "assign",
2354 "parameters" : [
2355 {
2356 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02002357 "value" : ["scalars", "userMetadata.skip_next"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002358 },
2359 {
2360 "type" : "expression",
2361 "value" : {
2362 "type" : "expression",
2363 "value" : {
2364 "op" : "b2d",
2365 "left" : null,
2366 "right" : {
2367 "type" : "bool",
2368 "value" : true
2369 }
2370 }
2371 }
2372 }
2373 ],
2374 "source_info" : {
2375 "filename" : "include/control/acl.p4",
2376 "line" : 52,
2377 "column" : 8,
2378 "source_fragment" : "fabric_metadata.skip_next = true"
2379 }
Yi Tseng47eac892018-07-11 02:17:04 +08002380 }
2381 ]
2382 },
2383 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002384 "name" : "FabricIngress.acl.nop_acl",
2385 "id" : 19,
Charles Chancf696e52018-08-16 16:25:13 -07002386 "runtime_data" : [],
2387 "primitives" : []
2388 },
2389 {
Yi Tseng47eac892018-07-11 02:17:04 +08002390 "name" : "FabricIngress.next.set_vlan",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002391 "id" : 20,
2392 "runtime_data" : [
2393 {
2394 "name" : "vlan_id",
2395 "bitwidth" : 12
2396 }
2397 ],
2398 "primitives" : [
2399 {
2400 "op" : "assign",
2401 "parameters" : [
2402 {
2403 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02002404 "value" : ["scalars", "userMetadata.vlan_id"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002405 },
2406 {
2407 "type" : "runtime_data",
2408 "value" : 0
2409 }
2410 ],
2411 "source_info" : {
2412 "filename" : "include/control/next.p4",
2413 "line" : 70,
2414 "column" : 8,
2415 "source_fragment" : "fabric_metadata.vlan_id = vlan_id"
2416 }
2417 }
2418 ]
2419 },
2420 {
2421 "name" : "FabricIngress.next.output_xconnect",
Charles Chancd03f072018-08-31 17:46:37 -07002422 "id" : 21,
Yi Tseng47eac892018-07-11 02:17:04 +08002423 "runtime_data" : [
2424 {
Yi Tsengbe342052017-11-03 10:21:23 -07002425 "name" : "port_num",
2426 "bitwidth" : 9
2427 }
2428 ],
2429 "primitives" : [
2430 {
2431 "op" : "assign",
2432 "parameters" : [
2433 {
2434 "type" : "field",
2435 "value" : ["standard_metadata", "egress_spec"]
2436 },
2437 {
2438 "type" : "runtime_data",
2439 "value" : 0
2440 }
2441 ],
2442 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002443 "filename" : "include/control/next.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002444 "line" : 31,
2445 "column" : 5,
Yi Tseng47eac892018-07-11 02:17:04 +08002446 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2447 }
2448 }
2449 ]
2450 },
2451 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002452 "name" : "FabricIngress.next.set_next_id_xconnect",
2453 "id" : 22,
2454 "runtime_data" : [
2455 {
2456 "name" : "next_id",
2457 "bitwidth" : 32
2458 }
2459 ],
2460 "primitives" : [
2461 {
2462 "op" : "assign",
2463 "parameters" : [
2464 {
2465 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02002466 "value" : ["scalars", "userMetadata.next_id"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002467 },
2468 {
2469 "type" : "runtime_data",
2470 "value" : 0
2471 }
2472 ],
2473 "source_info" : {
2474 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07002475 "line" : 115,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002476 "column" : 8,
2477 "source_fragment" : "fabric_metadata.next_id = next_id"
2478 }
2479 }
2480 ]
2481 },
2482 {
2483 "name" : "FabricIngress.next.output_hashed",
2484 "id" : 23,
2485 "runtime_data" : [
2486 {
2487 "name" : "port_num",
2488 "bitwidth" : 9
2489 }
2490 ],
2491 "primitives" : [
2492 {
2493 "op" : "assign",
2494 "parameters" : [
2495 {
2496 "type" : "field",
2497 "value" : ["standard_metadata", "egress_spec"]
2498 },
2499 {
2500 "type" : "runtime_data",
2501 "value" : 0
2502 }
2503 ],
2504 "source_info" : {
2505 "filename" : "include/control/next.p4",
2506 "line" : 31,
2507 "column" : 5,
2508 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2509 }
2510 }
2511 ]
2512 },
2513 {
2514 "name" : "FabricIngress.next.routing_hashed",
Charles Chancd03f072018-08-31 17:46:37 -07002515 "id" : 24,
Yi Tseng47eac892018-07-11 02:17:04 +08002516 "runtime_data" : [
2517 {
2518 "name" : "port_num",
2519 "bitwidth" : 9
2520 },
2521 {
2522 "name" : "smac",
2523 "bitwidth" : 48
2524 },
2525 {
2526 "name" : "dmac",
2527 "bitwidth" : 48
2528 }
2529 ],
2530 "primitives" : [
2531 {
2532 "op" : "assign",
2533 "parameters" : [
2534 {
2535 "type" : "field",
2536 "value" : ["ethernet", "src_addr"]
2537 },
2538 {
2539 "type" : "runtime_data",
2540 "value" : 1
2541 }
2542 ],
2543 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002544 "filename" : "include/control/next.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002545 "line" : 36,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002546 "column" : 8,
Yi Tseng47eac892018-07-11 02:17:04 +08002547 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2548 }
2549 },
2550 {
2551 "op" : "assign",
2552 "parameters" : [
2553 {
2554 "type" : "field",
2555 "value" : ["ethernet", "dst_addr"]
2556 },
2557 {
2558 "type" : "runtime_data",
2559 "value" : 2
2560 }
2561 ],
2562 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002563 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002564 "line" : 41,
2565 "column" : 8,
2566 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2567 }
2568 },
2569 {
2570 "op" : "assign",
2571 "parameters" : [
2572 {
2573 "type" : "field",
2574 "value" : ["standard_metadata", "egress_spec"]
2575 },
2576 {
2577 "type" : "runtime_data",
2578 "value" : 0
2579 }
2580 ],
2581 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002582 "filename" : "include/control/next.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002583 "line" : 31,
2584 "column" : 5,
Yi Tseng47eac892018-07-11 02:17:04 +08002585 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002586 }
2587 }
2588 ]
2589 },
2590 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002591 "name" : "FabricIngress.next.mpls_routing_hashed",
Carmelo Casconef645e842018-07-16 18:31:52 +02002592 "id" : 25,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002593 "runtime_data" : [
2594 {
2595 "name" : "port_num",
2596 "bitwidth" : 9
2597 },
2598 {
2599 "name" : "smac",
2600 "bitwidth" : 48
2601 },
2602 {
2603 "name" : "dmac",
2604 "bitwidth" : 48
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002605 },
2606 {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002607 "name" : "label",
2608 "bitwidth" : 20
Yi Tsengbe342052017-11-03 10:21:23 -07002609 }
2610 ],
2611 "primitives" : [
2612 {
2613 "op" : "assign",
2614 "parameters" : [
2615 {
2616 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02002617 "value" : ["scalars", "userMetadata.mpls_label"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002618 },
2619 {
2620 "type" : "runtime_data",
2621 "value" : 3
2622 }
2623 ],
2624 "source_info" : {
2625 "filename" : "include/control/next.p4",
2626 "line" : 46,
2627 "column" : 8,
2628 "source_fragment" : "fabric_metadata.mpls_label = label; ..."
2629 }
2630 },
2631 {
2632 "op" : "assign",
2633 "parameters" : [
2634 {
2635 "type" : "field",
Yi Tsengbe342052017-11-03 10:21:23 -07002636 "value" : ["ethernet", "src_addr"]
2637 },
2638 {
2639 "type" : "runtime_data",
2640 "value" : 1
2641 }
2642 ],
2643 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002644 "filename" : "include/control/next.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002645 "line" : 36,
Yi Tsengbe342052017-11-03 10:21:23 -07002646 "column" : 8,
2647 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2648 }
2649 },
2650 {
2651 "op" : "assign",
2652 "parameters" : [
2653 {
2654 "type" : "field",
2655 "value" : ["ethernet", "dst_addr"]
2656 },
2657 {
2658 "type" : "runtime_data",
2659 "value" : 2
2660 }
2661 ],
2662 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002663 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002664 "line" : 41,
Yi Tsengbe342052017-11-03 10:21:23 -07002665 "column" : 8,
2666 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2667 }
2668 },
2669 {
2670 "op" : "assign",
2671 "parameters" : [
2672 {
2673 "type" : "field",
2674 "value" : ["standard_metadata", "egress_spec"]
2675 },
2676 {
2677 "type" : "runtime_data",
2678 "value" : 0
2679 }
2680 ],
2681 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002682 "filename" : "include/control/next.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002683 "line" : 31,
2684 "column" : 5,
Yi Tsengbe342052017-11-03 10:21:23 -07002685 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2686 }
Yi Tsengbe342052017-11-03 10:21:23 -07002687 }
2688 ]
2689 },
2690 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002691 "name" : "FabricIngress.next.set_mcast_group_id",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002692 "id" : 26,
2693 "runtime_data" : [
2694 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002695 "name" : "group_id",
Esin Karaman971fb7f2017-12-28 13:44:52 +00002696 "bitwidth" : 16
2697 }
2698 ],
2699 "primitives" : [
2700 {
2701 "op" : "assign",
2702 "parameters" : [
2703 {
2704 "type" : "field",
2705 "value" : ["standard_metadata", "mcast_grp"]
2706 },
2707 {
2708 "type" : "runtime_data",
2709 "value" : 0
2710 }
2711 ],
2712 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002713 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07002714 "line" : 231,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002715 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002716 "source_fragment" : "standard_metadata.mcast_grp = group_id"
Esin Karaman971fb7f2017-12-28 13:44:52 +00002717 }
Carmelo Casconea5400af2018-07-17 22:11:54 +02002718 },
2719 {
2720 "op" : "assign",
2721 "parameters" : [
2722 {
2723 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02002724 "value" : ["scalars", "userMetadata.is_multicast"]
Carmelo Casconea5400af2018-07-17 22:11:54 +02002725 },
2726 {
2727 "type" : "expression",
2728 "value" : {
2729 "type" : "expression",
2730 "value" : {
2731 "op" : "b2d",
2732 "left" : null,
2733 "right" : {
2734 "type" : "bool",
2735 "value" : true
2736 }
2737 }
2738 }
2739 }
2740 ],
2741 "source_info" : {
2742 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07002743 "line" : 232,
Carmelo Casconea5400af2018-07-17 22:11:54 +02002744 "column" : 8,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002745 "source_fragment" : "fabric_metadata.is_multicast = true"
Carmelo Casconea5400af2018-07-17 22:11:54 +02002746 }
Esin Karaman971fb7f2017-12-28 13:44:52 +00002747 }
2748 ]
2749 },
2750 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02002751 "name" : "packetio25",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002752 "id" : 27,
Yi Tsengbe342052017-11-03 10:21:23 -07002753 "runtime_data" : [],
2754 "primitives" : [
2755 {
2756 "op" : "assign",
2757 "parameters" : [
2758 {
2759 "type" : "field",
2760 "value" : ["standard_metadata", "egress_spec"]
2761 },
2762 {
2763 "type" : "field",
2764 "value" : ["packet_out", "egress_port"]
2765 }
2766 ],
2767 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002768 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002769 "line" : 25,
Yi Tsengbe342052017-11-03 10:21:23 -07002770 "column" : 12,
2771 "source_fragment" : "standard_metadata.egress_spec = hdr.packet_out.egress_port"
2772 }
Yi Tseng1d842672017-11-28 16:06:52 -08002773 },
2774 {
2775 "op" : "remove_header",
2776 "parameters" : [
2777 {
2778 "type" : "header",
2779 "value" : "packet_out"
2780 }
2781 ],
2782 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002783 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002784 "line" : 26,
Yi Tseng1d842672017-11-28 16:06:52 -08002785 "column" : 12,
2786 "source_fragment" : "hdr.packet_out.setInvalid()"
2787 }
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07002788 },
2789 {
2790 "op" : "assign",
2791 "parameters" : [
2792 {
2793 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02002794 "value" : ["scalars", "userMetadata.is_controller_packet_out"]
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07002795 },
2796 {
2797 "type" : "expression",
2798 "value" : {
2799 "type" : "expression",
2800 "value" : {
2801 "op" : "b2d",
2802 "left" : null,
2803 "right" : {
2804 "type" : "bool",
2805 "value" : true
2806 }
2807 }
2808 }
2809 }
2810 ],
2811 "source_info" : {
2812 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002813 "line" : 27,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07002814 "column" : 12,
2815 "source_fragment" : "fabric_metadata.is_controller_packet_out = true"
2816 }
Carmelo Cascone9b607da2019-05-08 14:03:01 -07002817 },
2818 {
2819 "op" : "exit",
2820 "parameters" : [],
2821 "source_info" : {
2822 "filename" : "include/control/packetio.p4",
2823 "line" : 29,
2824 "column" : 12,
2825 "source_fragment" : "exit"
2826 }
Yi Tsengbe342052017-11-03 10:21:23 -07002827 }
2828 ]
2829 },
2830 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02002831 "name" : "filtering111",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002832 "id" : 28,
Yi Tsengbe342052017-11-03 10:21:23 -07002833 "runtime_data" : [],
2834 "primitives" : [
2835 {
2836 "op" : "assign",
2837 "parameters" : [
2838 {
2839 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02002840 "value" : ["scalars", "userMetadata.vlan_id"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002841 },
2842 {
2843 "type" : "field",
2844 "value" : ["vlan_tag", "vlan_id"]
2845 }
2846 ],
2847 "source_info" : {
2848 "filename" : "include/control/filtering.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07002849 "line" : 111,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002850 "column" : 12,
2851 "source_fragment" : "fabric_metadata.vlan_id = hdr.vlan_tag.vlan_id"
2852 }
2853 },
2854 {
2855 "op" : "assign",
2856 "parameters" : [
2857 {
2858 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02002859 "value" : ["scalars", "userMetadata.vlan_pri"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002860 },
2861 {
2862 "type" : "field",
2863 "value" : ["vlan_tag", "pri"]
2864 }
2865 ],
2866 "source_info" : {
2867 "filename" : "include/control/filtering.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07002868 "line" : 112,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002869 "column" : 12,
2870 "source_fragment" : "fabric_metadata.vlan_pri = hdr.vlan_tag.pri"
2871 }
2872 },
2873 {
2874 "op" : "assign",
2875 "parameters" : [
2876 {
2877 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02002878 "value" : ["scalars", "userMetadata.vlan_cfi"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002879 },
2880 {
2881 "type" : "field",
2882 "value" : ["vlan_tag", "cfi"]
2883 }
2884 ],
2885 "source_info" : {
2886 "filename" : "include/control/filtering.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07002887 "line" : 113,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002888 "column" : 12,
2889 "source_fragment" : "fabric_metadata.vlan_cfi = hdr.vlan_tag.cfi"
2890 }
Yi Tseng1d842672017-11-28 16:06:52 -08002891 }
2892 ]
2893 },
2894 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02002895 "name" : "filtering127",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002896 "id" : 29,
Yi Tseng1d842672017-11-28 16:06:52 -08002897 "runtime_data" : [],
2898 "primitives" : [
2899 {
2900 "op" : "assign",
2901 "parameters" : [
2902 {
2903 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02002904 "value" : ["scalars", "userMetadata.mpls_ttl"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002905 },
2906 {
2907 "type" : "hexstr",
2908 "value" : "0x41"
2909 }
2910 ],
2911 "source_info" : {
2912 "filename" : "include/control/filtering.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07002913 "line" : 127,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002914 "column" : 12,
2915 "source_fragment" : "fabric_metadata.mpls_ttl = DEFAULT_MPLS_TTL + 1"
2916 }
2917 }
2918 ]
2919 },
2920 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02002921 "name" : "port_counter31",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002922 "id" : 30,
2923 "runtime_data" : [],
2924 "primitives" : [
2925 {
2926 "op" : "assign",
2927 "parameters" : [
2928 {
2929 "type" : "field",
Carmelo Cascone2a308ff2021-06-01 18:31:57 -07002930 "value" : ["scalars", "tmp_8"]
Yi Tseng1d842672017-11-28 16:06:52 -08002931 },
2932 {
2933 "type" : "expression",
2934 "value" : {
2935 "type" : "expression",
2936 "value" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002937 "op" : "&",
2938 "left" : {
2939 "type" : "field",
2940 "value" : ["standard_metadata", "egress_spec"]
2941 },
Yi Tseng1d842672017-11-28 16:06:52 -08002942 "right" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002943 "type" : "hexstr",
2944 "value" : "0xffffffff"
Yi Tseng1d842672017-11-28 16:06:52 -08002945 }
2946 }
2947 }
2948 }
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002949 ],
2950 "source_info" : {
2951 "filename" : "include/control/port_counter.p4",
2952 "line" : 31,
2953 "column" : 38,
2954 "source_fragment" : "(bit<32>)standard_metadata.egress_spec"
2955 }
2956 },
Carmelo Casconea5400af2018-07-17 22:11:54 +02002957 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002958 "op" : "count",
Carmelo Casconea5400af2018-07-17 22:11:54 +02002959 "parameters" : [
2960 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002961 "type" : "counter_array",
2962 "value" : "FabricIngress.port_counters_control.egress_port_counter"
Carmelo Casconea5400af2018-07-17 22:11:54 +02002963 },
2964 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002965 "type" : "field",
Carmelo Cascone2a308ff2021-06-01 18:31:57 -07002966 "value" : ["scalars", "tmp_8"]
Carmelo Casconea5400af2018-07-17 22:11:54 +02002967 }
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002968 ],
2969 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002970 "filename" : "include/control/port_counter.p4",
2971 "line" : 31,
2972 "column" : 12,
2973 "source_fragment" : "egress_port_counter.count((bit<32>)standard_metadata.egress_spec)"
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002974 }
Carmelo Casconea5400af2018-07-17 22:11:54 +02002975 }
2976 ]
2977 },
2978 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02002979 "name" : "port_counter34",
Daniele Moro5a2de712019-09-24 14:34:07 -07002980 "id" : 31,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002981 "runtime_data" : [],
2982 "primitives" : [
2983 {
2984 "op" : "assign",
2985 "parameters" : [
2986 {
2987 "type" : "field",
Carmelo Cascone2a308ff2021-06-01 18:31:57 -07002988 "value" : ["scalars", "tmp_9"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002989 },
2990 {
2991 "type" : "expression",
2992 "value" : {
2993 "type" : "expression",
2994 "value" : {
2995 "op" : "&",
2996 "left" : {
2997 "type" : "field",
2998 "value" : ["standard_metadata", "ingress_port"]
2999 },
3000 "right" : {
3001 "type" : "hexstr",
3002 "value" : "0xffffffff"
3003 }
3004 }
3005 }
3006 }
3007 ],
3008 "source_info" : {
3009 "filename" : "include/control/port_counter.p4",
3010 "line" : 34,
3011 "column" : 39,
3012 "source_fragment" : "(bit<32>)standard_metadata.ingress_port"
3013 }
3014 },
3015 {
3016 "op" : "count",
3017 "parameters" : [
3018 {
3019 "type" : "counter_array",
3020 "value" : "FabricIngress.port_counters_control.ingress_port_counter"
3021 },
3022 {
3023 "type" : "field",
Carmelo Cascone2a308ff2021-06-01 18:31:57 -07003024 "value" : ["scalars", "tmp_9"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003025 }
3026 ],
3027 "source_info" : {
3028 "filename" : "include/control/port_counter.p4",
3029 "line" : 34,
3030 "column" : 12,
3031 "source_fragment" : "ingress_port_counter.count((bit<32>)standard_metadata.ingress_port)"
3032 }
3033 }
3034 ]
3035 },
3036 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003037 "name" : "FabricEgress.egress_next.pop_mpls_if_present",
pierventre48e78822020-12-15 17:34:54 +01003038 "id" : 32,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003039 "runtime_data" : [],
3040 "primitives" : [
3041 {
3042 "op" : "remove_header",
3043 "parameters" : [
3044 {
3045 "type" : "header",
3046 "value" : "mpls"
3047 }
3048 ],
3049 "source_info" : {
3050 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07003051 "line" : 270,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003052 "column" : 8,
3053 "source_fragment" : "hdr.mpls.setInvalid()"
3054 }
3055 },
3056 {
3057 "op" : "assign",
3058 "parameters" : [
3059 {
3060 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07003061 "value" : ["eth_type", "value"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003062 },
3063 {
3064 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02003065 "value" : ["scalars", "userMetadata.ip_eth_type"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003066 }
3067 ],
3068 "source_info" : {
3069 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07003070 "line" : 272,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003071 "column" : 8,
Daniele Moro5a2de712019-09-24 14:34:07 -07003072 "source_fragment" : "hdr.eth_type.value = fabric_metadata.ip_eth_type"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003073 }
3074 }
3075 ]
3076 },
3077 {
3078 "name" : "FabricEgress.egress_next.set_mpls",
pierventre48e78822020-12-15 17:34:54 +01003079 "id" : 33,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003080 "runtime_data" : [],
3081 "primitives" : [
3082 {
3083 "op" : "add_header",
3084 "parameters" : [
3085 {
3086 "type" : "header",
3087 "value" : "mpls"
3088 }
3089 ],
3090 "source_info" : {
3091 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07003092 "line" : 277,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003093 "column" : 8,
3094 "source_fragment" : "hdr.mpls.setValid()"
3095 }
3096 },
3097 {
3098 "op" : "assign",
3099 "parameters" : [
3100 {
3101 "type" : "field",
3102 "value" : ["mpls", "label"]
3103 },
3104 {
3105 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02003106 "value" : ["scalars", "userMetadata.mpls_label"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003107 }
3108 ],
3109 "source_info" : {
3110 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07003111 "line" : 278,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003112 "column" : 8,
3113 "source_fragment" : "hdr.mpls.label = fabric_metadata.mpls_label"
3114 }
3115 },
3116 {
3117 "op" : "assign",
3118 "parameters" : [
3119 {
3120 "type" : "field",
3121 "value" : ["mpls", "tc"]
3122 },
3123 {
3124 "type" : "hexstr",
3125 "value" : "0x00"
3126 }
3127 ],
3128 "source_info" : {
3129 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07003130 "line" : 279,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003131 "column" : 8,
3132 "source_fragment" : "hdr.mpls.tc = 3w0"
3133 }
3134 },
3135 {
3136 "op" : "assign",
3137 "parameters" : [
3138 {
3139 "type" : "field",
3140 "value" : ["mpls", "bos"]
3141 },
3142 {
3143 "type" : "hexstr",
3144 "value" : "0x01"
3145 }
3146 ],
3147 "source_info" : {
3148 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07003149 "line" : 280,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003150 "column" : 8,
3151 "source_fragment" : "hdr.mpls.bos = 1w1"
3152 }
3153 },
3154 {
3155 "op" : "assign",
3156 "parameters" : [
3157 {
3158 "type" : "field",
3159 "value" : ["mpls", "ttl"]
3160 },
3161 {
3162 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02003163 "value" : ["scalars", "userMetadata.mpls_ttl"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003164 }
3165 ],
3166 "source_info" : {
3167 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07003168 "line" : 281,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003169 "column" : 8,
3170 "source_fragment" : "hdr.mpls.ttl = fabric_metadata.mpls_ttl"
3171 }
3172 },
3173 {
3174 "op" : "assign",
3175 "parameters" : [
3176 {
3177 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07003178 "value" : ["eth_type", "value"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003179 },
3180 {
3181 "type" : "hexstr",
3182 "value" : "0x8847"
3183 }
3184 ],
3185 "source_info" : {
3186 "filename" : "include/control/../define.p4",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02003187 "line" : 118,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003188 "column" : 31,
3189 "source_fragment" : "0x8847; ..."
3190 }
3191 }
3192 ]
3193 },
3194 {
3195 "name" : "FabricEgress.egress_next.push_vlan",
pierventre48e78822020-12-15 17:34:54 +01003196 "id" : 34,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003197 "runtime_data" : [],
3198 "primitives" : [
3199 {
3200 "op" : "add_header",
3201 "parameters" : [
3202 {
3203 "type" : "header",
3204 "value" : "vlan_tag"
3205 }
3206 ],
3207 "source_info" : {
3208 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07003209 "line" : 289,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003210 "column" : 8,
3211 "source_fragment" : "hdr.vlan_tag.setValid()"
3212 }
3213 },
3214 {
3215 "op" : "assign",
3216 "parameters" : [
3217 {
3218 "type" : "field",
3219 "value" : ["vlan_tag", "cfi"]
3220 },
3221 {
3222 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02003223 "value" : ["scalars", "userMetadata.vlan_cfi"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003224 }
3225 ],
3226 "source_info" : {
3227 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07003228 "line" : 290,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003229 "column" : 8,
3230 "source_fragment" : "hdr.vlan_tag.cfi = fabric_metadata.vlan_cfi"
3231 }
3232 },
3233 {
3234 "op" : "assign",
3235 "parameters" : [
3236 {
3237 "type" : "field",
3238 "value" : ["vlan_tag", "pri"]
3239 },
3240 {
3241 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02003242 "value" : ["scalars", "userMetadata.vlan_pri"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003243 }
3244 ],
3245 "source_info" : {
3246 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07003247 "line" : 291,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003248 "column" : 8,
3249 "source_fragment" : "hdr.vlan_tag.pri = fabric_metadata.vlan_pri"
3250 }
3251 },
3252 {
3253 "op" : "assign",
3254 "parameters" : [
3255 {
3256 "type" : "field",
3257 "value" : ["vlan_tag", "eth_type"]
3258 },
3259 {
Daniele Moro5a2de712019-09-24 14:34:07 -07003260 "type" : "hexstr",
3261 "value" : "0x8100"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003262 }
3263 ],
3264 "source_info" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07003265 "filename" : "include/control/../define.p4",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02003266 "line" : 117,
Daniele Moro5a2de712019-09-24 14:34:07 -07003267 "column" : 31,
3268 "source_fragment" : "0x8100; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003269 }
3270 },
3271 {
3272 "op" : "assign",
3273 "parameters" : [
3274 {
3275 "type" : "field",
3276 "value" : ["vlan_tag", "vlan_id"]
3277 },
3278 {
3279 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02003280 "value" : ["scalars", "userMetadata.vlan_id"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003281 }
3282 ],
3283 "source_info" : {
3284 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07003285 "line" : 293,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003286 "column" : 8,
3287 "source_fragment" : "hdr.vlan_tag.vlan_id = fabric_metadata.vlan_id"
3288 }
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003289 }
3290 ]
3291 },
3292 {
3293 "name" : "FabricEgress.egress_next.pop_vlan",
pierventre48e78822020-12-15 17:34:54 +01003294 "id" : 35,
Yi Tseng1d842672017-11-28 16:06:52 -08003295 "runtime_data" : [],
3296 "primitives" : [
3297 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003298 "op" : "remove_header",
3299 "parameters" : [
3300 {
3301 "type" : "header",
3302 "value" : "vlan_tag"
3303 }
3304 ],
3305 "source_info" : {
3306 "filename" : "include/control/next.p4",
pierventre48e78822020-12-15 17:34:54 +01003307 "line" : 322,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003308 "column" : 8,
3309 "source_fragment" : "hdr.vlan_tag.setInvalid()"
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003310 }
Carmelo Casconea5400af2018-07-17 22:11:54 +02003311 }
3312 ]
3313 },
3314 {
pierventre48e78822020-12-15 17:34:54 +01003315 "name" : "FabricEgress.egress_next.drop",
3316 "id" : 36,
3317 "runtime_data" : [],
3318 "primitives" : [
3319 {
3320 "op" : "mark_to_drop",
3321 "parameters" : [
3322 {
3323 "type" : "header",
3324 "value" : "standard_metadata"
3325 }
3326 ],
3327 "source_info" : {
3328 "filename" : "include/control/next.p4",
3329 "line" : 327,
3330 "column" : 8,
3331 "source_fragment" : "mark_to_drop(standard_metadata)"
3332 }
3333 }
3334 ]
3335 },
3336 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02003337 "name" : "packetio41",
Daniele Moro5a2de712019-09-24 14:34:07 -07003338 "id" : 37,
Carmelo Casconea5400af2018-07-17 22:11:54 +02003339 "runtime_data" : [],
3340 "primitives" : [
3341 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003342 "op" : "exit",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003343 "parameters" : [],
3344 "source_info" : {
3345 "filename" : "include/control/packetio.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003346 "line" : 41,
3347 "column" : 12,
3348 "source_fragment" : "exit"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003349 }
Carmelo Casconea5400af2018-07-17 22:11:54 +02003350 }
3351 ]
3352 },
3353 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02003354 "name" : "packetio44",
Daniele Moro5a2de712019-09-24 14:34:07 -07003355 "id" : 38,
Carmelo Casconea5400af2018-07-17 22:11:54 +02003356 "runtime_data" : [],
3357 "primitives" : [
3358 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003359 "op" : "add_header",
3360 "parameters" : [
3361 {
3362 "type" : "header",
3363 "value" : "packet_in"
3364 }
3365 ],
3366 "source_info" : {
3367 "filename" : "include/control/packetio.p4",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07003368 "line" : 44,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003369 "column" : 12,
3370 "source_fragment" : "hdr.packet_in.setValid()"
3371 }
3372 },
3373 {
Carmelo Casconea5400af2018-07-17 22:11:54 +02003374 "op" : "assign",
3375 "parameters" : [
3376 {
3377 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003378 "value" : ["packet_in", "ingress_port"]
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003379 },
3380 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003381 "type" : "field",
3382 "value" : ["standard_metadata", "ingress_port"]
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003383 }
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003384 ],
3385 "source_info" : {
3386 "filename" : "include/control/packetio.p4",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07003387 "line" : 45,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003388 "column" : 12,
3389 "source_fragment" : "hdr.packet_in.ingress_port = standard_metadata.ingress_port"
3390 }
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003391 },
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003392 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003393 "op" : "exit",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003394 "parameters" : [],
3395 "source_info" : {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003396 "filename" : "include/control/packetio.p4",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07003397 "line" : 47,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003398 "column" : 12,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003399 "source_fragment" : "exit"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003400 }
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003401 }
3402 ]
3403 },
3404 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02003405 "name" : "next349",
Daniele Moro5a2de712019-09-24 14:34:07 -07003406 "id" : 39,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003407 "runtime_data" : [],
3408 "primitives" : [
3409 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003410 "op" : "mark_to_drop",
3411 "parameters" : [
3412 {
3413 "type" : "header",
3414 "value" : "standard_metadata"
3415 }
3416 ],
3417 "source_info" : {
3418 "filename" : "include/control/next.p4",
pierventre48e78822020-12-15 17:34:54 +01003419 "line" : 349,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003420 "column" : 12,
3421 "source_fragment" : "mark_to_drop(standard_metadata)"
3422 }
3423 }
3424 ]
3425 },
3426 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02003427 "name" : "next376",
Daniele Moro5a2de712019-09-24 14:34:07 -07003428 "id" : 40,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003429 "runtime_data" : [],
3430 "primitives" : [
3431 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003432 "op" : "mark_to_drop",
3433 "parameters" : [
3434 {
3435 "type" : "header",
3436 "value" : "standard_metadata"
3437 }
3438 ],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003439 "source_info" : {
3440 "filename" : "include/control/next.p4",
pierventre48e78822020-12-15 17:34:54 +01003441 "line" : 376,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003442 "column" : 35,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003443 "source_fragment" : "mark_to_drop(standard_metadata)"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003444 }
Carmelo Casconea5400af2018-07-17 22:11:54 +02003445 }
3446 ]
3447 },
3448 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02003449 "name" : "next375",
pierventre48e78822020-12-15 17:34:54 +01003450 "id" : 41,
Carmelo Casconea5400af2018-07-17 22:11:54 +02003451 "runtime_data" : [],
3452 "primitives" : [
3453 {
3454 "op" : "assign",
3455 "parameters" : [
3456 {
3457 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003458 "value" : ["mpls", "ttl"]
Carmelo Casconea5400af2018-07-17 22:11:54 +02003459 },
3460 {
3461 "type" : "expression",
3462 "value" : {
3463 "type" : "expression",
3464 "value" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003465 "op" : "&",
3466 "left" : {
3467 "type" : "expression",
3468 "value" : {
3469 "op" : "+",
3470 "left" : {
3471 "type" : "field",
3472 "value" : ["mpls", "ttl"]
3473 },
3474 "right" : {
3475 "type" : "hexstr",
3476 "value" : "0xff"
3477 }
3478 }
3479 },
Carmelo Casconea5400af2018-07-17 22:11:54 +02003480 "right" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003481 "type" : "hexstr",
3482 "value" : "0xff"
Carmelo Casconea5400af2018-07-17 22:11:54 +02003483 }
3484 }
3485 }
3486 }
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003487 ],
3488 "source_info" : {
3489 "filename" : "include/control/next.p4",
pierventre48e78822020-12-15 17:34:54 +01003490 "line" : 375,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003491 "column" : 12,
3492 "source_fragment" : "hdr.mpls.ttl = hdr.mpls.ttl - 1"
3493 }
Carmelo Casconea5400af2018-07-17 22:11:54 +02003494 }
3495 ]
3496 },
3497 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02003498 "name" : "next380",
pierventre48e78822020-12-15 17:34:54 +01003499 "id" : 42,
Carmelo Casconea5400af2018-07-17 22:11:54 +02003500 "runtime_data" : [],
3501 "primitives" : [
3502 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003503 "op" : "mark_to_drop",
3504 "parameters" : [
3505 {
3506 "type" : "header",
3507 "value" : "standard_metadata"
3508 }
3509 ],
Carmelo Casconea5400af2018-07-17 22:11:54 +02003510 "source_info" : {
3511 "filename" : "include/control/next.p4",
pierventre48e78822020-12-15 17:34:54 +01003512 "line" : 380,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003513 "column" : 39,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003514 "source_fragment" : "mark_to_drop(standard_metadata)"
Carmelo Casconea5400af2018-07-17 22:11:54 +02003515 }
3516 }
3517 ]
3518 },
3519 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02003520 "name" : "next379",
pierventre48e78822020-12-15 17:34:54 +01003521 "id" : 43,
Carmelo Casconea5400af2018-07-17 22:11:54 +02003522 "runtime_data" : [],
3523 "primitives" : [
3524 {
3525 "op" : "assign",
3526 "parameters" : [
3527 {
3528 "type" : "field",
Yi Tseng1d842672017-11-28 16:06:52 -08003529 "value" : ["ipv4", "ttl"]
3530 },
3531 {
3532 "type" : "expression",
3533 "value" : {
3534 "type" : "expression",
3535 "value" : {
3536 "op" : "&",
3537 "left" : {
3538 "type" : "expression",
3539 "value" : {
3540 "op" : "+",
3541 "left" : {
3542 "type" : "field",
3543 "value" : ["ipv4", "ttl"]
3544 },
3545 "right" : {
3546 "type" : "hexstr",
3547 "value" : "0xff"
3548 }
3549 }
3550 },
3551 "right" : {
3552 "type" : "hexstr",
3553 "value" : "0xff"
3554 }
3555 }
3556 }
3557 }
3558 ],
3559 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003560 "filename" : "include/control/next.p4",
pierventre48e78822020-12-15 17:34:54 +01003561 "line" : 379,
Carmelo Casconea5400af2018-07-17 22:11:54 +02003562 "column" : 16,
Yi Tseng1d842672017-11-28 16:06:52 -08003563 "source_fragment" : "hdr.ipv4.ttl = hdr.ipv4.ttl - 1"
3564 }
3565 }
3566 ]
Yi Tsengbe342052017-11-03 10:21:23 -07003567 }
3568 ],
3569 "pipelines" : [
3570 {
3571 "name" : "ingress",
3572 "id" : 0,
3573 "source_info" : {
3574 "filename" : "fabric.p4",
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07003575 "line" : 46,
Yi Tsengbe342052017-11-03 10:21:23 -07003576 "column" : 8,
3577 "source_fragment" : "FabricIngress"
3578 },
3579 "init_table" : "node_2",
3580 "tables" : [
3581 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02003582 "name" : "tbl_packetio25",
Yi Tsengbe342052017-11-03 10:21:23 -07003583 "id" : 0,
Carmelo Cascone3032b872019-04-13 01:23:54 -07003584 "source_info" : {
3585 "filename" : "include/control/packetio.p4",
3586 "line" : 25,
3587 "column" : 42,
3588 "source_fragment" : "= hdr.packet_out.egress_port; ..."
3589 },
Yi Tsengbe342052017-11-03 10:21:23 -07003590 "key" : [],
3591 "match_type" : "exact",
3592 "type" : "simple",
3593 "max_size" : 1024,
3594 "with_counters" : false,
3595 "support_timeout" : false,
3596 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003597 "action_ids" : [27],
Carmelo Cascone2388cc12021-05-26 19:30:30 +02003598 "actions" : ["packetio25"],
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003599 "base_default_next" : "node_4",
Yi Tsengbe342052017-11-03 10:21:23 -07003600 "next_tables" : {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02003601 "packetio25" : "node_4"
Yi Tsengbe342052017-11-03 10:21:23 -07003602 },
3603 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003604 "action_id" : 27,
3605 "action_const" : true,
3606 "action_data" : [],
3607 "action_entry_const" : true
3608 }
3609 },
3610 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02003611 "name" : "tbl_filtering111",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003612 "id" : 1,
Carmelo Cascone3032b872019-04-13 01:23:54 -07003613 "source_info" : {
3614 "filename" : "include/control/filtering.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07003615 "line" : 111,
Daniele Moro7c3a0022019-07-12 13:38:34 -07003616 "column" : 36,
3617 "source_fragment" : "= hdr.vlan_tag.vlan_id; ..."
Carmelo Cascone3032b872019-04-13 01:23:54 -07003618 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003619 "key" : [],
3620 "match_type" : "exact",
3621 "type" : "simple",
3622 "max_size" : 1024,
3623 "with_counters" : false,
3624 "support_timeout" : false,
3625 "direct_meters" : null,
3626 "action_ids" : [28],
Carmelo Cascone2388cc12021-05-26 19:30:30 +02003627 "actions" : ["filtering111"],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003628 "base_default_next" : "node_6",
3629 "next_tables" : {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02003630 "filtering111" : "node_6"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003631 },
3632 "default_entry" : {
3633 "action_id" : 28,
3634 "action_const" : true,
3635 "action_data" : [],
3636 "action_entry_const" : true
3637 }
3638 },
3639 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02003640 "name" : "tbl_filtering127",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003641 "id" : 2,
Carmelo Cascone3032b872019-04-13 01:23:54 -07003642 "source_info" : {
3643 "filename" : "include/control/filtering.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07003644 "line" : 127,
Carmelo Cascone3032b872019-04-13 01:23:54 -07003645 "column" : 37,
3646 "source_fragment" : "="
3647 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003648 "key" : [],
3649 "match_type" : "exact",
3650 "type" : "simple",
3651 "max_size" : 1024,
3652 "with_counters" : false,
3653 "support_timeout" : false,
3654 "direct_meters" : null,
3655 "action_ids" : [29],
Carmelo Cascone2388cc12021-05-26 19:30:30 +02003656 "actions" : ["filtering127"],
Daniele Moro5a2de712019-09-24 14:34:07 -07003657 "base_default_next" : "FabricIngress.filtering.ingress_port_vlan",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003658 "next_tables" : {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02003659 "filtering127" : "FabricIngress.filtering.ingress_port_vlan"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003660 },
3661 "default_entry" : {
3662 "action_id" : 29,
Yi Tsengbe342052017-11-03 10:21:23 -07003663 "action_const" : true,
3664 "action_data" : [],
3665 "action_entry_const" : true
3666 }
3667 },
3668 {
Daniele Moro7c3a0022019-07-12 13:38:34 -07003669 "name" : "FabricIngress.filtering.ingress_port_vlan",
Daniele Moro5a2de712019-09-24 14:34:07 -07003670 "id" : 3,
Daniele Moro7c3a0022019-07-12 13:38:34 -07003671 "source_info" : {
3672 "filename" : "include/control/filtering.p4",
3673 "line" : 53,
Yi Tsengbe342052017-11-03 10:21:23 -07003674 "column" : 10,
3675 "source_fragment" : "ingress_port_vlan"
3676 },
3677 "key" : [
3678 {
3679 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003680 "name" : "ig_port",
Yi Tsengbe342052017-11-03 10:21:23 -07003681 "target" : ["standard_metadata", "ingress_port"],
3682 "mask" : null
3683 },
3684 {
3685 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003686 "name" : "vlan_is_valid",
Yi Tsengbe342052017-11-03 10:21:23 -07003687 "target" : ["vlan_tag", "$valid$"],
3688 "mask" : null
3689 },
3690 {
3691 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003692 "name" : "vlan_id",
Yi Tsengbe342052017-11-03 10:21:23 -07003693 "target" : ["vlan_tag", "vlan_id"],
3694 "mask" : null
3695 }
3696 ],
3697 "match_type" : "ternary",
3698 "type" : "simple",
3699 "max_size" : 1024,
Yi Tsengbd46d052018-01-22 17:18:16 -08003700 "with_counters" : true,
Yi Tsengbe342052017-11-03 10:21:23 -07003701 "support_timeout" : false,
3702 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003703 "action_ids" : [7, 8, 9],
3704 "actions" : ["FabricIngress.filtering.deny", "FabricIngress.filtering.permit", "FabricIngress.filtering.permit_with_internal_vlan"],
3705 "base_default_next" : "FabricIngress.filtering.fwd_classifier",
Yi Tsengbe342052017-11-03 10:21:23 -07003706 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003707 "FabricIngress.filtering.deny" : "FabricIngress.filtering.fwd_classifier",
3708 "FabricIngress.filtering.permit" : "FabricIngress.filtering.fwd_classifier",
3709 "FabricIngress.filtering.permit_with_internal_vlan" : "FabricIngress.filtering.fwd_classifier"
Yi Tsengbe342052017-11-03 10:21:23 -07003710 },
3711 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003712 "action_id" : 7,
Yi Tsengbe342052017-11-03 10:21:23 -07003713 "action_const" : true,
3714 "action_data" : [],
3715 "action_entry_const" : true
3716 }
3717 },
3718 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003719 "name" : "FabricIngress.filtering.fwd_classifier",
Daniele Moro5a2de712019-09-24 14:34:07 -07003720 "id" : 4,
Yi Tsengbe342052017-11-03 10:21:23 -07003721 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003722 "filename" : "include/control/filtering.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07003723 "line" : 92,
Yi Tsengbe342052017-11-03 10:21:23 -07003724 "column" : 10,
3725 "source_fragment" : "fwd_classifier"
3726 },
3727 "key" : [
3728 {
3729 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003730 "name" : "ig_port",
Yi Tsengbe342052017-11-03 10:21:23 -07003731 "target" : ["standard_metadata", "ingress_port"],
3732 "mask" : null
3733 },
3734 {
Charles Chan384aea22018-08-23 22:08:02 -07003735 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003736 "name" : "eth_dst",
Yi Tsengbe342052017-11-03 10:21:23 -07003737 "target" : ["ethernet", "dst_addr"],
3738 "mask" : null
3739 },
3740 {
Daniele Moro5a2de712019-09-24 14:34:07 -07003741 "match_type" : "ternary",
3742 "name" : "eth_type",
3743 "target" : ["eth_type", "value"],
Daniele Moro7c3a0022019-07-12 13:38:34 -07003744 "mask" : null
3745 },
3746 {
3747 "match_type" : "exact",
Daniele Moro5a2de712019-09-24 14:34:07 -07003748 "name" : "ip_eth_type",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02003749 "target" : ["scalars", "userMetadata.ip_eth_type"],
Yi Tsengbe342052017-11-03 10:21:23 -07003750 "mask" : null
3751 }
3752 ],
Charles Chan384aea22018-08-23 22:08:02 -07003753 "match_type" : "ternary",
Yi Tsengbe342052017-11-03 10:21:23 -07003754 "type" : "simple",
3755 "max_size" : 1024,
Yi Tsengbd46d052018-01-22 17:18:16 -08003756 "with_counters" : true,
Yi Tsengbe342052017-11-03 10:21:23 -07003757 "support_timeout" : false,
3758 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003759 "action_ids" : [10],
Yi Tseng27b9bc02018-04-12 14:52:40 +08003760 "actions" : ["FabricIngress.filtering.set_forwarding_type"],
Daniele Moro5a2de712019-09-24 14:34:07 -07003761 "base_default_next" : "node_10",
Yi Tsengbe342052017-11-03 10:21:23 -07003762 "next_tables" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07003763 "FabricIngress.filtering.set_forwarding_type" : "node_10"
Yi Tsengbe342052017-11-03 10:21:23 -07003764 },
3765 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003766 "action_id" : 10,
Yi Tsengbe342052017-11-03 10:21:23 -07003767 "action_const" : true,
3768 "action_data" : ["0x0"],
3769 "action_entry_const" : true
3770 }
3771 },
3772 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003773 "name" : "FabricIngress.forwarding.bridging",
Daniele Moro5a2de712019-09-24 14:34:07 -07003774 "id" : 5,
Yi Tsengbe342052017-11-03 10:21:23 -07003775 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003776 "filename" : "include/control/forwarding.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07003777 "line" : 46,
Yi Tsengbe342052017-11-03 10:21:23 -07003778 "column" : 10,
3779 "source_fragment" : "bridging"
3780 },
3781 "key" : [
3782 {
3783 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003784 "name" : "vlan_id",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02003785 "target" : ["scalars", "userMetadata.vlan_id"],
Yi Tsengbe342052017-11-03 10:21:23 -07003786 "mask" : null
3787 },
3788 {
3789 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003790 "name" : "eth_dst",
Yi Tsengbe342052017-11-03 10:21:23 -07003791 "target" : ["ethernet", "dst_addr"],
3792 "mask" : null
3793 }
3794 ],
3795 "match_type" : "ternary",
3796 "type" : "simple",
3797 "max_size" : 1024,
Yi Tsengbd46d052018-01-22 17:18:16 -08003798 "with_counters" : true,
Yi Tsengbe342052017-11-03 10:21:23 -07003799 "support_timeout" : false,
3800 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003801 "action_ids" : [11, 0],
3802 "actions" : ["FabricIngress.forwarding.set_next_id_bridging", "nop"],
3803 "base_default_next" : "FabricIngress.acl.acl",
Yi Tseng1d842672017-11-28 16:06:52 -08003804 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003805 "FabricIngress.forwarding.set_next_id_bridging" : "FabricIngress.acl.acl",
3806 "nop" : "FabricIngress.acl.acl"
Yi Tseng1d842672017-11-28 16:06:52 -08003807 },
3808 "default_entry" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003809 "action_id" : 0,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003810 "action_const" : true,
Yi Tseng1d842672017-11-28 16:06:52 -08003811 "action_data" : [],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003812 "action_entry_const" : true
Yi Tseng1d842672017-11-28 16:06:52 -08003813 }
3814 },
3815 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003816 "name" : "FabricIngress.forwarding.mpls",
Daniele Moro5a2de712019-09-24 14:34:07 -07003817 "id" : 6,
Yi Tseng1d842672017-11-28 16:06:52 -08003818 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003819 "filename" : "include/control/forwarding.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07003820 "line" : 71,
Yi Tseng1d842672017-11-28 16:06:52 -08003821 "column" : 10,
3822 "source_fragment" : "mpls"
3823 },
3824 "key" : [
3825 {
3826 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003827 "name" : "mpls_label",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02003828 "target" : ["scalars", "userMetadata.mpls_label"],
Yi Tseng1d842672017-11-28 16:06:52 -08003829 "mask" : null
3830 }
3831 ],
3832 "match_type" : "exact",
3833 "type" : "simple",
3834 "max_size" : 1024,
Yi Tsengbd46d052018-01-22 17:18:16 -08003835 "with_counters" : true,
Yi Tseng1d842672017-11-28 16:06:52 -08003836 "support_timeout" : false,
3837 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003838 "action_ids" : [12, 1],
3839 "actions" : ["FabricIngress.forwarding.pop_mpls_and_next", "nop"],
3840 "base_default_next" : "FabricIngress.acl.acl",
Yi Tseng1d842672017-11-28 16:06:52 -08003841 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003842 "FabricIngress.forwarding.pop_mpls_and_next" : "FabricIngress.acl.acl",
3843 "nop" : "FabricIngress.acl.acl"
Yi Tseng1d842672017-11-28 16:06:52 -08003844 },
3845 "default_entry" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003846 "action_id" : 1,
Yi Tseng1d842672017-11-28 16:06:52 -08003847 "action_const" : true,
3848 "action_data" : [],
3849 "action_entry_const" : true
3850 }
3851 },
3852 {
Charles Chan384aea22018-08-23 22:08:02 -07003853 "name" : "FabricIngress.forwarding.routing_v4",
Daniele Moro5a2de712019-09-24 14:34:07 -07003854 "id" : 7,
Yi Tseng1d842672017-11-28 16:06:52 -08003855 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003856 "filename" : "include/control/forwarding.p4",
Daniele Moro5a2de712019-09-24 14:34:07 -07003857 "line" : 108,
Yi Tseng1d842672017-11-28 16:06:52 -08003858 "column" : 10,
Charles Chan384aea22018-08-23 22:08:02 -07003859 "source_fragment" : "routing_v4"
Yi Tseng1d842672017-11-28 16:06:52 -08003860 },
3861 "key" : [
3862 {
3863 "match_type" : "lpm",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003864 "name" : "ipv4_dst",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02003865 "target" : ["scalars", "userMetadata.ipv4_dst_addr"],
Yi Tseng1d842672017-11-28 16:06:52 -08003866 "mask" : null
3867 }
3868 ],
3869 "match_type" : "lpm",
3870 "type" : "simple",
3871 "max_size" : 1024,
Daniele Moro5a2de712019-09-24 14:34:07 -07003872 "with_counters" : false,
Yi Tseng1d842672017-11-28 16:06:52 -08003873 "support_timeout" : false,
3874 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003875 "action_ids" : [13, 14, 2],
3876 "actions" : ["FabricIngress.forwarding.set_next_id_routing_v4", "FabricIngress.forwarding.nop_routing_v4", "nop"],
3877 "base_default_next" : "FabricIngress.acl.acl",
Yi Tsengbe342052017-11-03 10:21:23 -07003878 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003879 "FabricIngress.forwarding.set_next_id_routing_v4" : "FabricIngress.acl.acl",
3880 "FabricIngress.forwarding.nop_routing_v4" : "FabricIngress.acl.acl",
3881 "nop" : "FabricIngress.acl.acl"
Yi Tsengbe342052017-11-03 10:21:23 -07003882 },
3883 "default_entry" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003884 "action_id" : 2,
CyberHasHe9ba39c2019-10-11 05:59:12 +08003885 "action_const" : false,
Yi Tsengbe342052017-11-03 10:21:23 -07003886 "action_data" : [],
CyberHasHe9ba39c2019-10-11 05:59:12 +08003887 "action_entry_const" : false
Yi Tsengbe342052017-11-03 10:21:23 -07003888 }
3889 },
3890 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003891 "name" : "FabricIngress.acl.acl",
Daniele Moro5a2de712019-09-24 14:34:07 -07003892 "id" : 8,
Yi Tsengbe342052017-11-03 10:21:23 -07003893 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003894 "filename" : "include/control/acl.p4",
3895 "line" : 60,
Yi Tsengbe342052017-11-03 10:21:23 -07003896 "column" : 10,
Yi Tsengbe342052017-11-03 10:21:23 -07003897 "source_fragment" : "acl"
3898 },
3899 "key" : [
3900 {
3901 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003902 "name" : "ig_port",
Yi Tsengbe342052017-11-03 10:21:23 -07003903 "target" : ["standard_metadata", "ingress_port"],
3904 "mask" : null
3905 },
3906 {
3907 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003908 "name" : "ip_proto",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02003909 "target" : ["scalars", "userMetadata.ip_proto"],
Yi Tsengbe342052017-11-03 10:21:23 -07003910 "mask" : null
3911 },
3912 {
3913 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003914 "name" : "l4_sport",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02003915 "target" : ["scalars", "userMetadata.l4_sport"],
Yi Tseng1d842672017-11-28 16:06:52 -08003916 "mask" : null
3917 },
3918 {
3919 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003920 "name" : "l4_dport",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02003921 "target" : ["scalars", "userMetadata.l4_dport"],
Yi Tseng1d842672017-11-28 16:06:52 -08003922 "mask" : null
3923 },
3924 {
3925 "match_type" : "ternary",
Daniele Moro0cecfe12019-12-13 17:24:33 -08003926 "name" : "eth_dst",
Yi Tsengbe342052017-11-03 10:21:23 -07003927 "target" : ["ethernet", "dst_addr"],
3928 "mask" : null
3929 },
3930 {
3931 "match_type" : "ternary",
Daniele Moro0cecfe12019-12-13 17:24:33 -08003932 "name" : "eth_src",
Yi Tsengbe342052017-11-03 10:21:23 -07003933 "target" : ["ethernet", "src_addr"],
3934 "mask" : null
3935 },
3936 {
3937 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003938 "name" : "vlan_id",
Yi Tsengbe342052017-11-03 10:21:23 -07003939 "target" : ["vlan_tag", "vlan_id"],
3940 "mask" : null
3941 },
3942 {
3943 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003944 "name" : "eth_type",
Daniele Moro5a2de712019-09-24 14:34:07 -07003945 "target" : ["eth_type", "value"],
Yi Tseng8235a1a2018-07-24 20:57:28 +08003946 "mask" : null
3947 },
3948 {
3949 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003950 "name" : "ipv4_src",
Yi Tsengbe342052017-11-03 10:21:23 -07003951 "target" : ["ipv4", "src_addr"],
3952 "mask" : null
3953 },
3954 {
3955 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003956 "name" : "ipv4_dst",
Yi Tsengbe342052017-11-03 10:21:23 -07003957 "target" : ["ipv4", "dst_addr"],
3958 "mask" : null
3959 },
3960 {
3961 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003962 "name" : "icmp_type",
Yi Tsengbe342052017-11-03 10:21:23 -07003963 "target" : ["icmp", "icmp_type"],
3964 "mask" : null
3965 },
3966 {
3967 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003968 "name" : "icmp_code",
Yi Tsengbe342052017-11-03 10:21:23 -07003969 "target" : ["icmp", "icmp_code"],
3970 "mask" : null
3971 }
3972 ],
3973 "match_type" : "ternary",
3974 "type" : "simple",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07003975 "max_size" : 1024,
Yi Tsengbd46d052018-01-22 17:18:16 -08003976 "with_counters" : true,
Yi Tsengbe342052017-11-03 10:21:23 -07003977 "support_timeout" : false,
3978 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003979 "action_ids" : [15, 16, 17, 18, 19],
Daniele Moro01ca2ab2019-06-25 11:48:48 -07003980 "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 -07003981 "base_default_next" : "node_18",
Yi Tsengbe342052017-11-03 10:21:23 -07003982 "next_tables" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07003983 "FabricIngress.acl.set_next_id_acl" : "node_18",
3984 "FabricIngress.acl.punt_to_cpu" : "node_18",
3985 "FabricIngress.acl.set_clone_session_id" : "node_18",
3986 "FabricIngress.acl.drop" : "node_18",
3987 "FabricIngress.acl.nop_acl" : "node_18"
Yi Tsengbe342052017-11-03 10:21:23 -07003988 },
3989 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003990 "action_id" : 19,
Yi Tsengbe342052017-11-03 10:21:23 -07003991 "action_const" : true,
3992 "action_data" : [],
3993 "action_entry_const" : true
3994 }
3995 },
3996 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003997 "name" : "FabricIngress.next.xconnect",
Daniele Moro5a2de712019-09-24 14:34:07 -07003998 "id" : 9,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003999 "source_info" : {
4000 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07004001 "line" : 119,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004002 "column" : 10,
4003 "source_fragment" : "xconnect"
4004 },
4005 "key" : [
4006 {
4007 "match_type" : "exact",
4008 "name" : "ig_port",
4009 "target" : ["standard_metadata", "ingress_port"],
4010 "mask" : null
4011 },
4012 {
4013 "match_type" : "exact",
4014 "name" : "next_id",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004015 "target" : ["scalars", "userMetadata.next_id"],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004016 "mask" : null
4017 }
4018 ],
4019 "match_type" : "exact",
4020 "type" : "simple",
4021 "max_size" : 1024,
4022 "with_counters" : true,
4023 "support_timeout" : false,
4024 "direct_meters" : null,
4025 "action_ids" : [21, 22, 4],
4026 "actions" : ["FabricIngress.next.output_xconnect", "FabricIngress.next.set_next_id_xconnect", "nop"],
4027 "base_default_next" : "FabricIngress.next.hashed",
4028 "next_tables" : {
4029 "FabricIngress.next.output_xconnect" : "FabricIngress.next.hashed",
4030 "FabricIngress.next.set_next_id_xconnect" : "FabricIngress.next.hashed",
4031 "nop" : "FabricIngress.next.hashed"
4032 },
4033 "default_entry" : {
4034 "action_id" : 4,
4035 "action_const" : true,
4036 "action_data" : [],
4037 "action_entry_const" : true
4038 }
4039 },
4040 {
4041 "name" : "FabricIngress.next.hashed",
Daniele Moro5a2de712019-09-24 14:34:07 -07004042 "id" : 10,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004043 "source_info" : {
4044 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07004045 "line" : 202,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004046 "column" : 10,
4047 "source_fragment" : "hashed"
4048 },
4049 "key" : [
4050 {
4051 "match_type" : "exact",
4052 "name" : "next_id",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004053 "target" : ["scalars", "userMetadata.next_id"],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004054 "mask" : null
4055 }
4056 ],
4057 "match_type" : "exact",
4058 "type" : "indirect_ws",
4059 "action_profile" : "FabricIngress.next.hashed_selector",
4060 "max_size" : 1024,
4061 "with_counters" : true,
4062 "support_timeout" : false,
4063 "direct_meters" : null,
4064 "action_ids" : [23, 24, 25, 5],
4065 "actions" : ["FabricIngress.next.output_hashed", "FabricIngress.next.routing_hashed", "FabricIngress.next.mpls_routing_hashed", "nop"],
4066 "base_default_next" : "FabricIngress.next.multicast",
4067 "next_tables" : {
4068 "FabricIngress.next.output_hashed" : "FabricIngress.next.multicast",
4069 "FabricIngress.next.routing_hashed" : "FabricIngress.next.multicast",
4070 "FabricIngress.next.mpls_routing_hashed" : "FabricIngress.next.multicast",
4071 "nop" : "FabricIngress.next.multicast"
4072 }
4073 },
4074 {
4075 "name" : "FabricIngress.next.multicast",
Daniele Moro5a2de712019-09-24 14:34:07 -07004076 "id" : 11,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004077 "source_info" : {
4078 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07004079 "line" : 236,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004080 "column" : 10,
4081 "source_fragment" : "multicast"
4082 },
4083 "key" : [
4084 {
4085 "match_type" : "exact",
4086 "name" : "next_id",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004087 "target" : ["scalars", "userMetadata.next_id"],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004088 "mask" : null
4089 }
4090 ],
4091 "match_type" : "exact",
4092 "type" : "simple",
4093 "max_size" : 1024,
4094 "with_counters" : true,
4095 "support_timeout" : false,
4096 "direct_meters" : null,
4097 "action_ids" : [26, 6],
4098 "actions" : ["FabricIngress.next.set_mcast_group_id", "nop"],
4099 "base_default_next" : "FabricIngress.next.next_vlan",
4100 "next_tables" : {
4101 "FabricIngress.next.set_mcast_group_id" : "FabricIngress.next.next_vlan",
4102 "nop" : "FabricIngress.next.next_vlan"
4103 },
4104 "default_entry" : {
4105 "action_id" : 6,
4106 "action_const" : true,
4107 "action_data" : [],
4108 "action_entry_const" : true
4109 }
4110 },
4111 {
4112 "name" : "FabricIngress.next.next_vlan",
Daniele Moro5a2de712019-09-24 14:34:07 -07004113 "id" : 12,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004114 "source_info" : {
4115 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07004116 "line" : 86,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004117 "column" : 10,
4118 "source_fragment" : "next_vlan"
4119 },
4120 "key" : [
4121 {
4122 "match_type" : "exact",
4123 "name" : "next_id",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004124 "target" : ["scalars", "userMetadata.next_id"],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004125 "mask" : null
4126 }
4127 ],
4128 "match_type" : "exact",
4129 "type" : "simple",
4130 "max_size" : 1024,
4131 "with_counters" : true,
4132 "support_timeout" : false,
4133 "direct_meters" : null,
4134 "action_ids" : [20, 3],
4135 "actions" : ["FabricIngress.next.set_vlan", "nop"],
Daniele Moro5a2de712019-09-24 14:34:07 -07004136 "base_default_next" : "node_23",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004137 "next_tables" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07004138 "FabricIngress.next.set_vlan" : "node_23",
4139 "nop" : "node_23"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004140 },
4141 "default_entry" : {
4142 "action_id" : 3,
4143 "action_const" : true,
4144 "action_data" : [],
4145 "action_entry_const" : true
4146 }
4147 },
4148 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004149 "name" : "tbl_port_counter31",
Daniele Moro5a2de712019-09-24 14:34:07 -07004150 "id" : 13,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004151 "source_info" : {
4152 "filename" : "include/control/port_counter.p4",
4153 "line" : 31,
4154 "column" : 12,
4155 "source_fragment" : "egress_port_counter.count((bit<32>)standard_metadata.egress_spec)"
4156 },
Carmelo Casconea5400af2018-07-17 22:11:54 +02004157 "key" : [],
4158 "match_type" : "exact",
4159 "type" : "simple",
4160 "max_size" : 1024,
4161 "with_counters" : false,
4162 "support_timeout" : false,
4163 "direct_meters" : null,
Daniele Moro5a2de712019-09-24 14:34:07 -07004164 "action_ids" : [30],
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004165 "actions" : ["port_counter31"],
Daniele Moro5a2de712019-09-24 14:34:07 -07004166 "base_default_next" : "node_25",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004167 "next_tables" : {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004168 "port_counter31" : "node_25"
Carmelo Casconea5400af2018-07-17 22:11:54 +02004169 },
4170 "default_entry" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07004171 "action_id" : 30,
Carmelo Casconea5400af2018-07-17 22:11:54 +02004172 "action_const" : true,
4173 "action_data" : [],
4174 "action_entry_const" : true
4175 }
4176 },
4177 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004178 "name" : "tbl_port_counter34",
Daniele Moro5a2de712019-09-24 14:34:07 -07004179 "id" : 14,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004180 "source_info" : {
4181 "filename" : "include/control/port_counter.p4",
4182 "line" : 34,
4183 "column" : 12,
4184 "source_fragment" : "ingress_port_counter.count((bit<32>)standard_metadata.ingress_port)"
4185 },
Carmelo Casconea5400af2018-07-17 22:11:54 +02004186 "key" : [],
4187 "match_type" : "exact",
4188 "type" : "simple",
4189 "max_size" : 1024,
4190 "with_counters" : false,
4191 "support_timeout" : false,
4192 "direct_meters" : null,
Daniele Moro5a2de712019-09-24 14:34:07 -07004193 "action_ids" : [31],
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004194 "actions" : ["port_counter34"],
Carmelo Casconea5400af2018-07-17 22:11:54 +02004195 "base_default_next" : null,
Esin Karaman971fb7f2017-12-28 13:44:52 +00004196 "next_tables" : {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004197 "port_counter34" : null
Yi Tseng27b9bc02018-04-12 14:52:40 +08004198 },
4199 "default_entry" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07004200 "action_id" : 31,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004201 "action_const" : true,
4202 "action_data" : [],
4203 "action_entry_const" : true
4204 }
Yi Tsengbe342052017-11-03 10:21:23 -07004205 }
4206 ],
4207 "action_profiles" : [
4208 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004209 "name" : "FabricIngress.next.hashed_selector",
Yi Tsengbe342052017-11-03 10:21:23 -07004210 "id" : 0,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07004211 "source_info" : {
4212 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07004213 "line" : 183,
Carmelo Cascone70e816b2019-03-19 16:15:47 -07004214 "column" : 57,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004215 "source_fragment" : "hashed_selector"
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07004216 },
Carmelo Cascone70e816b2019-03-19 16:15:47 -07004217 "max_size" : 1024,
Yi Tsengbe342052017-11-03 10:21:23 -07004218 "selector" : {
4219 "algo" : "crc16",
4220 "input" : [
4221 {
4222 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004223 "value" : ["scalars", "userMetadata.ipv4_src_addr"]
Yi Tsengbe342052017-11-03 10:21:23 -07004224 },
4225 {
4226 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004227 "value" : ["scalars", "userMetadata.ipv4_dst_addr"]
Yi Tsengbe342052017-11-03 10:21:23 -07004228 },
4229 {
4230 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004231 "value" : ["scalars", "userMetadata.ip_proto"]
Yi Tsengbe342052017-11-03 10:21:23 -07004232 },
4233 {
4234 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004235 "value" : ["scalars", "userMetadata.l4_sport"]
Yi Tsengbe342052017-11-03 10:21:23 -07004236 },
4237 {
4238 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004239 "value" : ["scalars", "userMetadata.l4_dport"]
Yi Tsengbe342052017-11-03 10:21:23 -07004240 }
4241 ]
4242 }
4243 }
4244 ],
4245 "conditionals" : [
4246 {
4247 "name" : "node_2",
4248 "id" : 0,
4249 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004250 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004251 "line" : 24,
Yi Tsengbe342052017-11-03 10:21:23 -07004252 "column" : 12,
4253 "source_fragment" : "hdr.packet_out.isValid()"
4254 },
4255 "expression" : {
4256 "type" : "expression",
4257 "value" : {
Yi Tsengbd46d052018-01-22 17:18:16 -08004258 "op" : "d2b",
4259 "left" : null,
4260 "right" : {
Yi Tsengbe342052017-11-03 10:21:23 -07004261 "type" : "field",
4262 "value" : ["packet_out", "$valid$"]
Yi Tsengbe342052017-11-03 10:21:23 -07004263 }
4264 }
4265 },
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004266 "true_next" : "tbl_packetio25",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004267 "false_next" : "node_4"
Yi Tsengbe342052017-11-03 10:21:23 -07004268 },
4269 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004270 "name" : "node_4",
Yi Tsengbe342052017-11-03 10:21:23 -07004271 "id" : 1,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004272 "source_info" : {
4273 "filename" : "include/control/filtering.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07004274 "line" : 110,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004275 "column" : 12,
4276 "source_fragment" : "hdr.vlan_tag.isValid()"
4277 },
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004278 "expression" : {
4279 "type" : "expression",
4280 "value" : {
4281 "op" : "d2b",
4282 "left" : null,
4283 "right" : {
4284 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004285 "value" : ["vlan_tag", "$valid$"]
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004286 }
4287 }
4288 },
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004289 "true_next" : "tbl_filtering111",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004290 "false_next" : "node_6"
4291 },
4292 {
4293 "name" : "node_6",
4294 "id" : 2,
4295 "source_info" : {
4296 "filename" : "include/control/filtering.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07004297 "line" : 122,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004298 "column" : 12,
4299 "source_fragment" : "!hdr.mpls.isValid()"
4300 },
4301 "expression" : {
4302 "type" : "expression",
4303 "value" : {
4304 "op" : "not",
4305 "left" : null,
4306 "right" : {
4307 "type" : "expression",
4308 "value" : {
4309 "op" : "d2b",
4310 "left" : null,
4311 "right" : {
4312 "type" : "field",
4313 "value" : ["mpls", "$valid$"]
4314 }
4315 }
4316 }
4317 }
4318 },
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004319 "true_next" : "tbl_filtering127",
Daniele Moro5a2de712019-09-24 14:34:07 -07004320 "false_next" : "FabricIngress.filtering.ingress_port_vlan"
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004321 },
4322 {
4323 "name" : "node_10",
Daniele Moro5a2de712019-09-24 14:34:07 -07004324 "id" : 3,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004325 "source_info" : {
4326 "filename" : "fabric.p4",
Robert MacDavidde12b982020-07-15 18:38:59 -07004327 "line" : 69,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004328 "column" : 12,
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004329 "source_fragment" : "fabric_metadata.skip_forwarding"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004330 },
4331 "expression" : {
4332 "type" : "expression",
4333 "value" : {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004334 "op" : "not",
4335 "left" : null,
4336 "right" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004337 "type" : "expression",
4338 "value" : {
4339 "op" : "d2b",
4340 "left" : null,
4341 "right" : {
4342 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004343 "value" : ["scalars", "userMetadata.skip_forwarding"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004344 }
4345 }
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004346 }
4347 }
4348 },
Daniele Moro5a2de712019-09-24 14:34:07 -07004349 "true_next" : "node_11",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004350 "false_next" : "FabricIngress.acl.acl"
4351 },
4352 {
Daniele Moro5a2de712019-09-24 14:34:07 -07004353 "name" : "node_11",
4354 "id" : 4,
Yi Tsengbe342052017-11-03 10:21:23 -07004355 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004356 "filename" : "include/control/forwarding.p4",
Daniele Moro5a2de712019-09-24 14:34:07 -07004357 "line" : 150,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004358 "column" : 12,
Yi Tsengbe342052017-11-03 10:21:23 -07004359 "source_fragment" : "fabric_metadata.fwd_type == FWD_BRIDGING"
4360 },
4361 "expression" : {
4362 "type" : "expression",
4363 "value" : {
4364 "op" : "==",
4365 "left" : {
4366 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004367 "value" : ["scalars", "userMetadata.fwd_type"]
Yi Tsengbe342052017-11-03 10:21:23 -07004368 },
4369 "right" : {
4370 "type" : "hexstr",
4371 "value" : "0x00"
4372 }
4373 }
4374 },
Yi Tseng27b9bc02018-04-12 14:52:40 +08004375 "true_next" : "FabricIngress.forwarding.bridging",
Daniele Moro5a2de712019-09-24 14:34:07 -07004376 "false_next" : "node_13"
Yi Tsengbe342052017-11-03 10:21:23 -07004377 },
4378 {
Daniele Moro5a2de712019-09-24 14:34:07 -07004379 "name" : "node_13",
4380 "id" : 5,
Yi Tsengbe342052017-11-03 10:21:23 -07004381 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004382 "filename" : "include/control/forwarding.p4",
Daniele Moro5a2de712019-09-24 14:34:07 -07004383 "line" : 151,
Yi Tsengbe342052017-11-03 10:21:23 -07004384 "column" : 17,
4385 "source_fragment" : "fabric_metadata.fwd_type == FWD_MPLS"
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.fwd_type"]
Yi Tsengbe342052017-11-03 10:21:23 -07004394 },
4395 "right" : {
4396 "type" : "hexstr",
4397 "value" : "0x01"
4398 }
4399 }
4400 },
Yi Tseng27b9bc02018-04-12 14:52:40 +08004401 "true_next" : "FabricIngress.forwarding.mpls",
Daniele Moro5a2de712019-09-24 14:34:07 -07004402 "false_next" : "node_15"
Yi Tsengbe342052017-11-03 10:21:23 -07004403 },
4404 {
Daniele Moro5a2de712019-09-24 14:34:07 -07004405 "name" : "node_15",
4406 "id" : 6,
Yi Tsengbe342052017-11-03 10:21:23 -07004407 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004408 "filename" : "include/control/forwarding.p4",
Daniele Moro5a2de712019-09-24 14:34:07 -07004409 "line" : 152,
Yi Tsengbe342052017-11-03 10:21:23 -07004410 "column" : 17,
4411 "source_fragment" : "fabric_metadata.fwd_type == FWD_IPV4_UNICAST"
4412 },
4413 "expression" : {
4414 "type" : "expression",
4415 "value" : {
4416 "op" : "==",
4417 "left" : {
4418 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004419 "value" : ["scalars", "userMetadata.fwd_type"]
Yi Tsengbe342052017-11-03 10:21:23 -07004420 },
4421 "right" : {
4422 "type" : "hexstr",
4423 "value" : "0x02"
4424 }
4425 }
4426 },
Charles Chan384aea22018-08-23 22:08:02 -07004427 "true_next" : "FabricIngress.forwarding.routing_v4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004428 "false_next" : "FabricIngress.acl.acl"
4429 },
4430 {
Daniele Moro5a2de712019-09-24 14:34:07 -07004431 "name" : "node_18",
4432 "id" : 7,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004433 "source_info" : {
4434 "filename" : "fabric.p4",
Robert MacDavidde12b982020-07-15 18:38:59 -07004435 "line" : 73,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004436 "column" : 12,
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004437 "source_fragment" : "fabric_metadata.skip_next"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004438 },
4439 "expression" : {
4440 "type" : "expression",
4441 "value" : {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004442 "op" : "not",
4443 "left" : null,
4444 "right" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004445 "type" : "expression",
4446 "value" : {
4447 "op" : "d2b",
4448 "left" : null,
4449 "right" : {
4450 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004451 "value" : ["scalars", "userMetadata.skip_next"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004452 }
4453 }
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004454 }
4455 }
4456 },
4457 "false_next" : null,
4458 "true_next" : "FabricIngress.next.xconnect"
Yi Tseng27b9bc02018-04-12 14:52:40 +08004459 },
4460 {
Daniele Moro5a2de712019-09-24 14:34:07 -07004461 "name" : "node_23",
4462 "id" : 8,
Yi Tseng27b9bc02018-04-12 14:52:40 +08004463 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004464 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004465 "line" : 30,
Yi Tsengbe342052017-11-03 10:21:23 -07004466 "column" : 12,
4467 "source_fragment" : "standard_metadata.egress_spec < 511"
4468 },
4469 "expression" : {
4470 "type" : "expression",
4471 "value" : {
4472 "op" : "<",
4473 "left" : {
4474 "type" : "field",
4475 "value" : ["standard_metadata", "egress_spec"]
4476 },
4477 "right" : {
4478 "type" : "hexstr",
4479 "value" : "0x01ff"
4480 }
4481 }
4482 },
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004483 "true_next" : "tbl_port_counter31",
Daniele Moro5a2de712019-09-24 14:34:07 -07004484 "false_next" : "node_25"
Yi Tsengbe342052017-11-03 10:21:23 -07004485 },
4486 {
Daniele Moro5a2de712019-09-24 14:34:07 -07004487 "name" : "node_25",
4488 "id" : 9,
Yi Tsengbe342052017-11-03 10:21:23 -07004489 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004490 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004491 "line" : 33,
Yi Tsengbe342052017-11-03 10:21:23 -07004492 "column" : 12,
4493 "source_fragment" : "standard_metadata.ingress_port < 511"
4494 },
4495 "expression" : {
4496 "type" : "expression",
4497 "value" : {
4498 "op" : "<",
4499 "left" : {
4500 "type" : "field",
4501 "value" : ["standard_metadata", "ingress_port"]
4502 },
4503 "right" : {
4504 "type" : "hexstr",
4505 "value" : "0x01ff"
4506 }
4507 }
4508 },
Yi Tseng3a5731e2018-01-22 11:38:58 -08004509 "false_next" : null,
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004510 "true_next" : "tbl_port_counter34"
Yi Tseng3a5731e2018-01-22 11:38:58 -08004511 }
4512 ]
4513 },
4514 {
4515 "name" : "egress",
4516 "id" : 1,
4517 "source_info" : {
4518 "filename" : "fabric.p4",
Robert MacDavidde12b982020-07-15 18:38:59 -07004519 "line" : 91,
Yi Tseng3a5731e2018-01-22 11:38:58 -08004520 "column" : 8,
4521 "source_fragment" : "FabricEgress"
4522 },
Daniele Moro5a2de712019-09-24 14:34:07 -07004523 "init_table" : "node_29",
Yi Tseng3a5731e2018-01-22 11:38:58 -08004524 "tables" : [
4525 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004526 "name" : "tbl_packetio41",
Daniele Moro5a2de712019-09-24 14:34:07 -07004527 "id" : 15,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004528 "source_info" : {
4529 "filename" : "include/control/packetio.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004530 "line" : 41,
4531 "column" : 12,
4532 "source_fragment" : "exit"
Carmelo Cascone3032b872019-04-13 01:23:54 -07004533 },
Carmelo Casconea5400af2018-07-17 22:11:54 +02004534 "key" : [],
4535 "match_type" : "exact",
4536 "type" : "simple",
4537 "max_size" : 1024,
4538 "with_counters" : false,
4539 "support_timeout" : false,
4540 "direct_meters" : null,
Daniele Moro5a2de712019-09-24 14:34:07 -07004541 "action_ids" : [37],
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004542 "actions" : ["packetio41"],
Daniele Moro5a2de712019-09-24 14:34:07 -07004543 "base_default_next" : "node_31",
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004544 "next_tables" : {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004545 "packetio41" : "node_31"
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004546 },
4547 "default_entry" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07004548 "action_id" : 37,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004549 "action_const" : true,
4550 "action_data" : [],
4551 "action_entry_const" : true
4552 }
4553 },
4554 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004555 "name" : "tbl_packetio44",
Daniele Moro5a2de712019-09-24 14:34:07 -07004556 "id" : 16,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004557 "source_info" : {
4558 "filename" : "include/control/packetio.p4",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07004559 "line" : 44,
4560 "column" : 12,
4561 "source_fragment" : "hdr.packet_in.setValid(); ..."
Carmelo Cascone3032b872019-04-13 01:23:54 -07004562 },
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004563 "key" : [],
4564 "match_type" : "exact",
4565 "type" : "simple",
4566 "max_size" : 1024,
4567 "with_counters" : false,
4568 "support_timeout" : false,
4569 "direct_meters" : null,
Daniele Moro5a2de712019-09-24 14:34:07 -07004570 "action_ids" : [38],
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004571 "actions" : ["packetio44"],
Daniele Moro5a2de712019-09-24 14:34:07 -07004572 "base_default_next" : "node_33",
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004573 "next_tables" : {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004574 "packetio44" : "node_33"
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004575 },
4576 "default_entry" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07004577 "action_id" : 38,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004578 "action_const" : true,
4579 "action_data" : [],
4580 "action_entry_const" : true
4581 }
4582 },
4583 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004584 "name" : "tbl_next349",
Daniele Moro5a2de712019-09-24 14:34:07 -07004585 "id" : 17,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004586 "source_info" : {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07004587 "filename" : "include/control/next.p4",
pierventre48e78822020-12-15 17:34:54 +01004588 "line" : 349,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004589 "column" : 12,
Daniele Moro01ca2ab2019-06-25 11:48:48 -07004590 "source_fragment" : "mark_to_drop(standard_metadata)"
Carmelo Cascone3032b872019-04-13 01:23:54 -07004591 },
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004592 "key" : [],
4593 "match_type" : "exact",
4594 "type" : "simple",
4595 "max_size" : 1024,
4596 "with_counters" : false,
4597 "support_timeout" : false,
4598 "direct_meters" : null,
Daniele Moro5a2de712019-09-24 14:34:07 -07004599 "action_ids" : [39],
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004600 "actions" : ["next349"],
Daniele Moro5a2de712019-09-24 14:34:07 -07004601 "base_default_next" : "node_35",
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004602 "next_tables" : {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004603 "next349" : "node_35"
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004604 },
4605 "default_entry" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07004606 "action_id" : 39,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004607 "action_const" : true,
4608 "action_data" : [],
4609 "action_entry_const" : true
4610 }
4611 },
4612 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004613 "name" : "tbl_egress_next_pop_mpls_if_present",
Daniele Moro5a2de712019-09-24 14:34:07 -07004614 "id" : 18,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004615 "source_info" : {
4616 "filename" : "include/control/next.p4",
pierventre48e78822020-12-15 17:34:54 +01004617 "line" : 353,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004618 "column" : 36,
4619 "source_fragment" : "pop_mpls_if_present()"
4620 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004621 "key" : [],
4622 "match_type" : "exact",
4623 "type" : "simple",
4624 "max_size" : 1024,
4625 "with_counters" : false,
4626 "support_timeout" : false,
4627 "direct_meters" : null,
pierventre48e78822020-12-15 17:34:54 +01004628 "action_ids" : [32],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004629 "actions" : ["FabricEgress.egress_next.pop_mpls_if_present"],
4630 "base_default_next" : "FabricEgress.egress_next.egress_vlan",
4631 "next_tables" : {
4632 "FabricEgress.egress_next.pop_mpls_if_present" : "FabricEgress.egress_next.egress_vlan"
4633 },
4634 "default_entry" : {
pierventre48e78822020-12-15 17:34:54 +01004635 "action_id" : 32,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004636 "action_const" : true,
4637 "action_data" : [],
4638 "action_entry_const" : true
4639 }
4640 },
4641 {
4642 "name" : "tbl_egress_next_set_mpls",
Daniele Moro5a2de712019-09-24 14:34:07 -07004643 "id" : 19,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004644 "source_info" : {
4645 "filename" : "include/control/next.p4",
pierventre48e78822020-12-15 17:34:54 +01004646 "line" : 355,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004647 "column" : 12,
4648 "source_fragment" : "set_mpls()"
4649 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004650 "key" : [],
4651 "match_type" : "exact",
4652 "type" : "simple",
4653 "max_size" : 1024,
4654 "with_counters" : false,
4655 "support_timeout" : false,
4656 "direct_meters" : null,
pierventre48e78822020-12-15 17:34:54 +01004657 "action_ids" : [33],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004658 "actions" : ["FabricEgress.egress_next.set_mpls"],
4659 "base_default_next" : "FabricEgress.egress_next.egress_vlan",
4660 "next_tables" : {
4661 "FabricEgress.egress_next.set_mpls" : "FabricEgress.egress_next.egress_vlan"
4662 },
4663 "default_entry" : {
pierventre48e78822020-12-15 17:34:54 +01004664 "action_id" : 33,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004665 "action_const" : true,
4666 "action_data" : [],
4667 "action_entry_const" : true
4668 }
4669 },
4670 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004671 "name" : "FabricEgress.egress_next.egress_vlan",
Daniele Moro5a2de712019-09-24 14:34:07 -07004672 "id" : 20,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004673 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004674 "filename" : "include/control/next.p4",
pierventre48e78822020-12-15 17:34:54 +01004675 "line" : 331,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004676 "column" : 10,
4677 "source_fragment" : "egress_vlan"
4678 },
4679 "key" : [
4680 {
4681 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004682 "name" : "vlan_id",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004683 "target" : ["scalars", "userMetadata.vlan_id"],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004684 "mask" : null
4685 },
4686 {
4687 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004688 "name" : "eg_port",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004689 "target" : ["standard_metadata", "egress_port"],
4690 "mask" : null
4691 }
4692 ],
4693 "match_type" : "exact",
4694 "type" : "simple",
4695 "max_size" : 1024,
Yi Tseng47eac892018-07-11 02:17:04 +08004696 "with_counters" : true,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004697 "support_timeout" : false,
4698 "direct_meters" : null,
pierventre48e78822020-12-15 17:34:54 +01004699 "action_ids" : [34, 35, 36],
4700 "actions" : ["FabricEgress.egress_next.push_vlan", "FabricEgress.egress_next.pop_vlan", "FabricEgress.egress_next.drop"],
4701 "base_default_next" : "node_40",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004702 "next_tables" : {
pierventre48e78822020-12-15 17:34:54 +01004703 "FabricEgress.egress_next.push_vlan" : "node_40",
4704 "FabricEgress.egress_next.pop_vlan" : "node_40",
4705 "FabricEgress.egress_next.drop" : "node_40"
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004706 },
4707 "default_entry" : {
pierventre48e78822020-12-15 17:34:54 +01004708 "action_id" : 36,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004709 "action_const" : true,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004710 "action_data" : [],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004711 "action_entry_const" : true
4712 }
4713 },
4714 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004715 "name" : "tbl_next375",
Daniele Moro5a2de712019-09-24 14:34:07 -07004716 "id" : 21,
pierventre48e78822020-12-15 17:34:54 +01004717 "source_info" : {
4718 "filename" : "include/control/next.p4",
4719 "line" : 375,
4720 "column" : 25,
4721 "source_fragment" : "="
Daniele Moro01ca2ab2019-06-25 11:48:48 -07004722 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004723 "key" : [],
4724 "match_type" : "exact",
4725 "type" : "simple",
4726 "max_size" : 1024,
4727 "with_counters" : false,
4728 "support_timeout" : false,
4729 "direct_meters" : null,
Daniele Moro5a2de712019-09-24 14:34:07 -07004730 "action_ids" : [41],
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004731 "actions" : ["next375"],
Daniele Moro5a2de712019-09-24 14:34:07 -07004732 "base_default_next" : "node_42",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004733 "next_tables" : {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004734 "next375" : "node_42"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004735 },
4736 "default_entry" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07004737 "action_id" : 41,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004738 "action_const" : true,
4739 "action_data" : [],
4740 "action_entry_const" : true
4741 }
4742 },
4743 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004744 "name" : "tbl_next376",
pierventre48e78822020-12-15 17:34:54 +01004745 "id" : 22,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004746 "source_info" : {
4747 "filename" : "include/control/next.p4",
pierventre48e78822020-12-15 17:34:54 +01004748 "line" : 376,
4749 "column" : 35,
4750 "source_fragment" : "mark_to_drop(standard_metadata)"
Carmelo Cascone3032b872019-04-13 01:23:54 -07004751 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004752 "key" : [],
4753 "match_type" : "exact",
4754 "type" : "simple",
4755 "max_size" : 1024,
4756 "with_counters" : false,
4757 "support_timeout" : false,
4758 "direct_meters" : null,
pierventre48e78822020-12-15 17:34:54 +01004759 "action_ids" : [40],
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004760 "actions" : ["next376"],
pierventre48e78822020-12-15 17:34:54 +01004761 "base_default_next" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004762 "next_tables" : {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004763 "next376" : null
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004764 },
4765 "default_entry" : {
pierventre48e78822020-12-15 17:34:54 +01004766 "action_id" : 40,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004767 "action_const" : true,
4768 "action_data" : [],
4769 "action_entry_const" : true
4770 }
4771 },
4772 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004773 "name" : "tbl_next379",
pierventre48e78822020-12-15 17:34:54 +01004774 "id" : 23,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004775 "source_info" : {
4776 "filename" : "include/control/next.p4",
pierventre48e78822020-12-15 17:34:54 +01004777 "line" : 379,
4778 "column" : 29,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004779 "source_fragment" : "="
4780 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004781 "key" : [],
4782 "match_type" : "exact",
4783 "type" : "simple",
4784 "max_size" : 1024,
4785 "with_counters" : false,
4786 "support_timeout" : false,
4787 "direct_meters" : null,
Daniele Moro5a2de712019-09-24 14:34:07 -07004788 "action_ids" : [43],
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004789 "actions" : ["next379"],
pierventre48e78822020-12-15 17:34:54 +01004790 "base_default_next" : "node_46",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004791 "next_tables" : {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004792 "next379" : "node_46"
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004793 },
4794 "default_entry" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07004795 "action_id" : 43,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004796 "action_const" : true,
4797 "action_data" : [],
4798 "action_entry_const" : true
4799 }
4800 },
4801 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004802 "name" : "tbl_next380",
pierventre48e78822020-12-15 17:34:54 +01004803 "id" : 24,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004804 "source_info" : {
4805 "filename" : "include/control/next.p4",
pierventre48e78822020-12-15 17:34:54 +01004806 "line" : 380,
4807 "column" : 39,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004808 "source_fragment" : "mark_to_drop(standard_metadata)"
4809 },
4810 "key" : [],
4811 "match_type" : "exact",
4812 "type" : "simple",
4813 "max_size" : 1024,
4814 "with_counters" : false,
4815 "support_timeout" : false,
4816 "direct_meters" : null,
Daniele Moro5a2de712019-09-24 14:34:07 -07004817 "action_ids" : [42],
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004818 "actions" : ["next380"],
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004819 "base_default_next" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004820 "next_tables" : {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004821 "next380" : null
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004822 },
4823 "default_entry" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07004824 "action_id" : 42,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004825 "action_const" : true,
4826 "action_data" : [],
4827 "action_entry_const" : true
4828 }
Yi Tseng3a5731e2018-01-22 11:38:58 -08004829 }
4830 ],
4831 "action_profiles" : [],
4832 "conditionals" : [
Yi Tseng1d842672017-11-28 16:06:52 -08004833 {
Daniele Moro5a2de712019-09-24 14:34:07 -07004834 "name" : "node_29",
4835 "id" : 10,
Carmelo Casconea5400af2018-07-17 22:11:54 +02004836 "source_info" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004837 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004838 "line" : 39,
Carmelo Casconea5400af2018-07-17 22:11:54 +02004839 "column" : 12,
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004840 "source_fragment" : "fabric_metadata.is_controller_packet_out"
Carmelo Casconea5400af2018-07-17 22:11:54 +02004841 },
4842 "expression" : {
4843 "type" : "expression",
4844 "value" : {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004845 "op" : "d2b",
4846 "left" : null,
Carmelo Casconea5400af2018-07-17 22:11:54 +02004847 "right" : {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004848 "type" : "field",
4849 "value" : ["scalars", "userMetadata.is_controller_packet_out"]
Carmelo Casconea5400af2018-07-17 22:11:54 +02004850 }
4851 }
4852 },
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004853 "true_next" : "tbl_packetio41",
Daniele Moro5a2de712019-09-24 14:34:07 -07004854 "false_next" : "node_31"
Carmelo Casconea5400af2018-07-17 22:11:54 +02004855 },
4856 {
Daniele Moro5a2de712019-09-24 14:34:07 -07004857 "name" : "node_31",
4858 "id" : 11,
Yi Tsengbe342052017-11-03 10:21:23 -07004859 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004860 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004861 "line" : 43,
Yi Tsengbe342052017-11-03 10:21:23 -07004862 "column" : 12,
Carmelo Casconeb531b682018-01-30 17:55:56 -08004863 "source_fragment" : "standard_metadata.egress_port == 255"
Yi Tsengbe342052017-11-03 10:21:23 -07004864 },
4865 "expression" : {
4866 "type" : "expression",
4867 "value" : {
4868 "op" : "==",
4869 "left" : {
4870 "type" : "field",
4871 "value" : ["standard_metadata", "egress_port"]
4872 },
4873 "right" : {
4874 "type" : "hexstr",
4875 "value" : "0x00ff"
4876 }
4877 }
4878 },
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004879 "true_next" : "tbl_packetio44",
Daniele Moro5a2de712019-09-24 14:34:07 -07004880 "false_next" : "node_33"
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004881 },
4882 {
Daniele Moro5a2de712019-09-24 14:34:07 -07004883 "name" : "node_33",
4884 "id" : 12,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004885 "source_info" : {
4886 "filename" : "include/control/next.p4",
pierventre48e78822020-12-15 17:34:54 +01004887 "line" : 347,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004888 "column" : 12,
4889 "source_fragment" : "fabric_metadata.is_multicast == true ..."
4890 },
4891 "expression" : {
4892 "type" : "expression",
4893 "value" : {
4894 "op" : "and",
4895 "left" : {
4896 "type" : "expression",
4897 "value" : {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004898 "op" : "d2b",
4899 "left" : null,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004900 "right" : {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004901 "type" : "field",
4902 "value" : ["scalars", "userMetadata.is_multicast"]
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004903 }
4904 }
4905 },
4906 "right" : {
4907 "type" : "expression",
4908 "value" : {
4909 "op" : "==",
4910 "left" : {
4911 "type" : "field",
4912 "value" : ["standard_metadata", "ingress_port"]
4913 },
4914 "right" : {
4915 "type" : "field",
4916 "value" : ["standard_metadata", "egress_port"]
4917 }
4918 }
4919 }
4920 }
4921 },
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004922 "true_next" : "tbl_next349",
Daniele Moro5a2de712019-09-24 14:34:07 -07004923 "false_next" : "node_35"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004924 },
4925 {
Daniele Moro5a2de712019-09-24 14:34:07 -07004926 "name" : "node_35",
4927 "id" : 13,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004928 "source_info" : {
4929 "filename" : "include/control/next.p4",
pierventre48e78822020-12-15 17:34:54 +01004930 "line" : 352,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004931 "column" : 12,
4932 "source_fragment" : "fabric_metadata.mpls_label == 0"
4933 },
4934 "expression" : {
4935 "type" : "expression",
4936 "value" : {
4937 "op" : "==",
4938 "left" : {
4939 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004940 "value" : ["scalars", "userMetadata.mpls_label"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004941 },
4942 "right" : {
4943 "type" : "hexstr",
4944 "value" : "0x000000"
4945 }
4946 }
4947 },
Daniele Moro5a2de712019-09-24 14:34:07 -07004948 "true_next" : "node_36",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004949 "false_next" : "tbl_egress_next_set_mpls"
4950 },
4951 {
Daniele Moro5a2de712019-09-24 14:34:07 -07004952 "name" : "node_36",
4953 "id" : 14,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004954 "source_info" : {
4955 "filename" : "include/control/next.p4",
pierventre48e78822020-12-15 17:34:54 +01004956 "line" : 353,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004957 "column" : 16,
4958 "source_fragment" : "hdr.mpls.isValid()"
4959 },
4960 "expression" : {
4961 "type" : "expression",
4962 "value" : {
4963 "op" : "d2b",
4964 "left" : null,
4965 "right" : {
4966 "type" : "field",
4967 "value" : ["mpls", "$valid$"]
4968 }
4969 }
4970 },
4971 "true_next" : "tbl_egress_next_pop_mpls_if_present",
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004972 "false_next" : "FabricEgress.egress_next.egress_vlan"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004973 },
4974 {
pierventre48e78822020-12-15 17:34:54 +01004975 "name" : "node_40",
Daniele Moro5a2de712019-09-24 14:34:07 -07004976 "id" : 15,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004977 "source_info" : {
4978 "filename" : "include/control/next.p4",
pierventre48e78822020-12-15 17:34:54 +01004979 "line" : 374,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004980 "column" : 12,
4981 "source_fragment" : "hdr.mpls.isValid()"
4982 },
4983 "expression" : {
4984 "type" : "expression",
4985 "value" : {
4986 "op" : "d2b",
4987 "left" : null,
4988 "right" : {
4989 "type" : "field",
4990 "value" : ["mpls", "$valid$"]
4991 }
4992 }
4993 },
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004994 "true_next" : "tbl_next375",
pierventre48e78822020-12-15 17:34:54 +01004995 "false_next" : "node_44"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004996 },
4997 {
pierventre48e78822020-12-15 17:34:54 +01004998 "name" : "node_42",
4999 "id" : 16,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005000 "source_info" : {
5001 "filename" : "include/control/next.p4",
pierventre48e78822020-12-15 17:34:54 +01005002 "line" : 376,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005003 "column" : 16,
5004 "source_fragment" : "hdr.mpls.ttl == 0"
5005 },
5006 "expression" : {
5007 "type" : "expression",
5008 "value" : {
5009 "op" : "==",
5010 "left" : {
5011 "type" : "field",
5012 "value" : ["mpls", "ttl"]
5013 },
5014 "right" : {
5015 "type" : "hexstr",
5016 "value" : "0x00"
5017 }
5018 }
5019 },
5020 "false_next" : null,
Carmelo Cascone2388cc12021-05-26 19:30:30 +02005021 "true_next" : "tbl_next376"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005022 },
5023 {
pierventre48e78822020-12-15 17:34:54 +01005024 "name" : "node_44",
5025 "id" : 17,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005026 "source_info" : {
5027 "filename" : "include/control/next.p4",
pierventre48e78822020-12-15 17:34:54 +01005028 "line" : 378,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005029 "column" : 15,
Charles Chan74ad51e2020-09-12 19:05:42 -07005030 "source_fragment" : "hdr.ipv4.isValid() && fabric_metadata.fwd_type != FWD_BRIDGING"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005031 },
5032 "expression" : {
5033 "type" : "expression",
5034 "value" : {
Charles Chan74ad51e2020-09-12 19:05:42 -07005035 "op" : "and",
5036 "left" : {
5037 "type" : "expression",
5038 "value" : {
5039 "op" : "d2b",
5040 "left" : null,
5041 "right" : {
5042 "type" : "field",
5043 "value" : ["ipv4", "$valid$"]
5044 }
5045 }
5046 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005047 "right" : {
Charles Chan74ad51e2020-09-12 19:05:42 -07005048 "type" : "expression",
5049 "value" : {
5050 "op" : "!=",
5051 "left" : {
5052 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02005053 "value" : ["scalars", "userMetadata.fwd_type"]
Charles Chan74ad51e2020-09-12 19:05:42 -07005054 },
5055 "right" : {
5056 "type" : "hexstr",
5057 "value" : "0x00"
5058 }
5059 }
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005060 }
5061 }
5062 },
5063 "false_next" : null,
Carmelo Cascone2388cc12021-05-26 19:30:30 +02005064 "true_next" : "tbl_next379"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005065 },
5066 {
pierventre48e78822020-12-15 17:34:54 +01005067 "name" : "node_46",
5068 "id" : 18,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005069 "source_info" : {
5070 "filename" : "include/control/next.p4",
pierventre48e78822020-12-15 17:34:54 +01005071 "line" : 380,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005072 "column" : 20,
5073 "source_fragment" : "hdr.ipv4.ttl == 0"
5074 },
5075 "expression" : {
5076 "type" : "expression",
5077 "value" : {
5078 "op" : "==",
5079 "left" : {
5080 "type" : "field",
5081 "value" : ["ipv4", "ttl"]
5082 },
5083 "right" : {
5084 "type" : "hexstr",
5085 "value" : "0x00"
5086 }
5087 }
5088 },
5089 "false_next" : null,
Carmelo Cascone2388cc12021-05-26 19:30:30 +02005090 "true_next" : "tbl_next380"
Yi Tsengbe342052017-11-03 10:21:23 -07005091 }
5092 ]
5093 }
5094 ],
5095 "checksums" : [
5096 {
5097 "name" : "cksum",
5098 "id" : 0,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07005099 "source_info" : {
5100 "filename" : "include/checksum.p4",
5101 "line" : 28,
5102 "column" : 8,
5103 "source_fragment" : "update_checksum(hdr.ipv4.isValid(), ..."
5104 },
Yi Tsengbe342052017-11-03 10:21:23 -07005105 "target" : ["ipv4", "hdr_checksum"],
5106 "type" : "generic",
Yi Tsengbd46d052018-01-22 17:18:16 -08005107 "calculation" : "calc",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08005108 "verify" : false,
5109 "update" : true,
Yi Tsengbd46d052018-01-22 17:18:16 -08005110 "if_cond" : {
5111 "type" : "expression",
5112 "value" : {
5113 "op" : "d2b",
5114 "left" : null,
5115 "right" : {
5116 "type" : "field",
5117 "value" : ["ipv4", "$valid$"]
5118 }
5119 }
5120 }
Yi Tsengbe342052017-11-03 10:21:23 -07005121 },
5122 {
5123 "name" : "cksum_0",
5124 "id" : 1,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07005125 "source_info" : {
5126 "filename" : "include/checksum.p4",
5127 "line" : 57,
5128 "column" : 8,
5129 "source_fragment" : "verify_checksum(hdr.ipv4.isValid(), ..."
5130 },
Yi Tsengbe342052017-11-03 10:21:23 -07005131 "target" : ["ipv4", "hdr_checksum"],
5132 "type" : "generic",
Yi Tsengbd46d052018-01-22 17:18:16 -08005133 "calculation" : "calc_0",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08005134 "verify" : true,
5135 "update" : false,
Yi Tsengbd46d052018-01-22 17:18:16 -08005136 "if_cond" : {
5137 "type" : "expression",
5138 "value" : {
5139 "op" : "d2b",
5140 "left" : null,
5141 "right" : {
5142 "type" : "field",
5143 "value" : ["ipv4", "$valid$"]
5144 }
5145 }
5146 }
Yi Tsengbe342052017-11-03 10:21:23 -07005147 }
5148 ],
5149 "force_arith" : [],
5150 "extern_instances" : [],
5151 "field_aliases" : [
5152 [
5153 "queueing_metadata.enq_timestamp",
5154 ["standard_metadata", "enq_timestamp"]
5155 ],
5156 [
5157 "queueing_metadata.enq_qdepth",
5158 ["standard_metadata", "enq_qdepth"]
5159 ],
5160 [
5161 "queueing_metadata.deq_timedelta",
5162 ["standard_metadata", "deq_timedelta"]
5163 ],
5164 [
5165 "queueing_metadata.deq_qdepth",
5166 ["standard_metadata", "deq_qdepth"]
5167 ],
5168 [
5169 "intrinsic_metadata.ingress_global_timestamp",
5170 ["standard_metadata", "ingress_global_timestamp"]
5171 ],
5172 [
Yi Tseng27b9bc02018-04-12 14:52:40 +08005173 "intrinsic_metadata.egress_global_timestamp",
5174 ["standard_metadata", "egress_global_timestamp"]
5175 ],
5176 [
Yi Tsengbe342052017-11-03 10:21:23 -07005177 "intrinsic_metadata.mcast_grp",
5178 ["standard_metadata", "mcast_grp"]
5179 ],
5180 [
Yi Tsengbe342052017-11-03 10:21:23 -07005181 "intrinsic_metadata.egress_rid",
5182 ["standard_metadata", "egress_rid"]
Yi Tseng27b9bc02018-04-12 14:52:40 +08005183 ],
5184 [
Carmelo Cascone9b607da2019-05-08 14:03:01 -07005185 "intrinsic_metadata.priority",
5186 ["standard_metadata", "priority"]
Yi Tsengbe342052017-11-03 10:21:23 -07005187 ]
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005188 ],
5189 "program" : "fabric.p4",
5190 "__meta__" : {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02005191 "version" : [2, 23],
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005192 "compiler" : "https://github.com/p4lang/p4c"
5193 }
Carmelo Cascone25243d62019-02-21 15:37:31 -08005194}