blob: 3b0151c64667a13fad9ccc7dba629e98fdd04e1a [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],
Wailok Shum4f51bde2021-06-11 22:48:41 +080017 ["acl_ipv4_src", 32, false],
18 ["acl_ipv4_dst", 32, false],
19 ["acl_ip_proto", 8, false],
20 ["acl_l4_sport", 16, false],
21 ["acl_l4_dport", 16, false],
Carmelo Cascone2388cc12021-05-26 19:30:30 +020022 ["userMetadata.ip_eth_type", 16, false],
23 ["userMetadata.vlan_id", 12, false],
24 ["userMetadata.vlan_pri", 3, false],
25 ["userMetadata.vlan_cfi", 1, false],
26 ["userMetadata.mpls_label", 20, false],
27 ["userMetadata.mpls_ttl", 8, false],
28 ["userMetadata.skip_forwarding", 1, false],
29 ["userMetadata.skip_next", 1, false],
30 ["userMetadata.fwd_type", 3, false],
31 ["userMetadata.next_id", 32, false],
32 ["userMetadata.is_multicast", 1, false],
33 ["userMetadata.is_controller_packet_out", 1, false],
34 ["userMetadata.ip_proto", 8, false],
35 ["userMetadata.l4_sport", 16, false],
36 ["userMetadata.l4_dport", 16, false],
37 ["userMetadata.ipv4_src_addr", 32, false],
Carmelo Cascone2a308ff2021-06-01 18:31:57 -070038 ["userMetadata.ipv4_dst_addr", 32, false],
Wailok Shumfb7e7872021-06-18 17:30:08 +080039 ["userMetadata.port_type", 2, false],
40 ["_padding_0", 3, false]
Carmelo Cascone2388cc12021-05-26 19:30:30 +020041 ]
42 },
43 {
44 "name" : "packet_out_header_t",
45 "id" : 1,
46 "fields" : [
47 ["egress_port", 9, false],
48 ["do_forwarding", 1, false],
49 ["_pad", 6, false]
Yi Tsengc6844f52017-12-19 11:58:25 -080050 ]
51 },
52 {
Carmelo Cascone2a308ff2021-06-01 18:31:57 -070053 "name" : "gtpu_t",
Carmelo Cascone2388cc12021-05-26 19:30:30 +020054 "id" : 2,
Yi Tsengc6844f52017-12-19 11:58:25 -080055 "fields" : [
Carmelo Cascone2a308ff2021-06-01 18:31:57 -070056 ["version", 3, false],
57 ["pt", 1, false],
58 ["spare", 1, false],
59 ["ex_flag", 1, false],
60 ["seq_flag", 1, false],
61 ["npdu_flag", 1, false],
62 ["msgtype", 8, false],
63 ["msglen", 16, false],
64 ["teid", 32, false]
65 ]
66 },
67 {
68 "name" : "standard_metadata",
69 "id" : 3,
70 "fields" : [
Carmelo Cascone6af4e172018-06-15 16:01:30 +020071 ["ingress_port", 9, false],
72 ["egress_spec", 9, false],
73 ["egress_port", 9, false],
Carmelo Cascone6af4e172018-06-15 16:01:30 +020074 ["instance_type", 32, false],
Carmelo Cascone6af4e172018-06-15 16:01:30 +020075 ["packet_length", 32, false],
76 ["enq_timestamp", 32, false],
77 ["enq_qdepth", 19, false],
78 ["deq_timedelta", 32, false],
79 ["deq_qdepth", 19, false],
80 ["ingress_global_timestamp", 48, false],
81 ["egress_global_timestamp", 48, false],
Carmelo Cascone6af4e172018-06-15 16:01:30 +020082 ["mcast_grp", 16, false],
Carmelo Cascone6af4e172018-06-15 16:01:30 +020083 ["egress_rid", 16, false],
Carmelo Cascone9b607da2019-05-08 14:03:01 -070084 ["checksum_error", 1, false],
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -070085 ["parser_error", 32, false],
Carmelo Cascone9b607da2019-05-08 14:03:01 -070086 ["priority", 3, false],
Carmelo Cascone2388cc12021-05-26 19:30:30 +020087 ["_padding", 3, false]
Carmelo Cascone6af4e172018-06-15 16:01:30 +020088 ]
89 },
90 {
91 "name" : "ethernet_t",
Carmelo Cascone2a308ff2021-06-01 18:31:57 -070092 "id" : 4,
Carmelo Cascone6af4e172018-06-15 16:01:30 +020093 "fields" : [
Yi Tsengc6844f52017-12-19 11:58:25 -080094 ["dst_addr", 48, false],
Daniele Moro5a2de712019-09-24 14:34:07 -070095 ["src_addr", 48, false]
Yi Tsengc6844f52017-12-19 11:58:25 -080096 ]
97 },
98 {
99 "name" : "vlan_tag_t",
Carmelo Cascone2a308ff2021-06-01 18:31:57 -0700100 "id" : 5,
Yi Tsengc6844f52017-12-19 11:58:25 -0800101 "fields" : [
Daniele Moro5a2de712019-09-24 14:34:07 -0700102 ["eth_type", 16, false],
Yi Tsengc6844f52017-12-19 11:58:25 -0800103 ["pri", 3, false],
104 ["cfi", 1, false],
Daniele Moro5a2de712019-09-24 14:34:07 -0700105 ["vlan_id", 12, false]
106 ]
107 },
108 {
109 "name" : "eth_type_t",
Carmelo Cascone2a308ff2021-06-01 18:31:57 -0700110 "id" : 6,
Daniele Moro5a2de712019-09-24 14:34:07 -0700111 "fields" : [
112 ["value", 16, false]
Yi Tsengc6844f52017-12-19 11:58:25 -0800113 ]
114 },
115 {
116 "name" : "mpls_t",
Carmelo Cascone2a308ff2021-06-01 18:31:57 -0700117 "id" : 7,
Yi Tsengc6844f52017-12-19 11:58:25 -0800118 "fields" : [
119 ["label", 20, false],
120 ["tc", 3, false],
121 ["bos", 1, false],
122 ["ttl", 8, false]
Yi Tsengbe342052017-11-03 10:21:23 -0700123 ]
124 },
125 {
126 "name" : "ipv4_t",
Carmelo Cascone2a308ff2021-06-01 18:31:57 -0700127 "id" : 8,
Yi Tsengbe342052017-11-03 10:21:23 -0700128 "fields" : [
129 ["version", 4, false],
130 ["ihl", 4, false],
Jonghwan Hyuned478dc2018-08-06 15:35:18 +0900131 ["dscp", 6, false],
132 ["ecn", 2, false],
Yi Tsengbe342052017-11-03 10:21:23 -0700133 ["total_len", 16, false],
134 ["identification", 16, false],
135 ["flags", 3, false],
136 ["frag_offset", 13, false],
137 ["ttl", 8, false],
138 ["protocol", 8, false],
139 ["hdr_checksum", 16, false],
140 ["src_addr", 32, false],
141 ["dst_addr", 32, false]
142 ]
143 },
144 {
Wailok Shum4f51bde2021-06-11 22:48:41 +0800145 "name" : "udp_t",
Carmelo Cascone2a308ff2021-06-01 18:31:57 -0700146 "id" : 9,
Yi Tseng47eac892018-07-11 02:17:04 +0800147 "fields" : [
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800148 ["sport", 16, false],
149 ["dport", 16, false],
Wailok Shum4f51bde2021-06-11 22:48:41 +0800150 ["len", 16, false],
151 ["checksum", 16, false]
152 ]
153 },
154 {
155 "name" : "tcp_t",
156 "id" : 10,
157 "fields" : [
158 ["sport", 16, false],
159 ["dport", 16, false],
Yi Tsengbe342052017-11-03 10:21:23 -0700160 ["seq_no", 32, false],
161 ["ack_no", 32, false],
162 ["data_offset", 4, false],
163 ["res", 3, false],
164 ["ecn", 3, false],
165 ["ctrl", 6, false],
166 ["window", 16, false],
167 ["checksum", 16, false],
168 ["urgent_ptr", 16, false]
169 ]
170 },
171 {
Yi Tsengbe342052017-11-03 10:21:23 -0700172 "name" : "icmp_t",
Carmelo Cascone2a308ff2021-06-01 18:31:57 -0700173 "id" : 11,
Yi Tsengbe342052017-11-03 10:21:23 -0700174 "fields" : [
175 ["icmp_type", 8, false],
176 ["icmp_code", 8, false],
Yi Tsengf73a5532017-11-17 15:58:57 -0800177 ["checksum", 16, false],
178 ["identifier", 16, false],
179 ["sequence_number", 16, false],
180 ["timestamp", 64, false]
Yi Tsengbe342052017-11-03 10:21:23 -0700181 ]
182 },
183 {
Yi Tsengbe342052017-11-03 10:21:23 -0700184 "name" : "packet_in_header_t",
Carmelo Cascone2a308ff2021-06-01 18:31:57 -0700185 "id" : 12,
Yi Tsengbe342052017-11-03 10:21:23 -0700186 "fields" : [
187 ["ingress_port", 9, false],
Yi Tseng1d842672017-11-28 16:06:52 -0800188 ["_pad", 7, false]
Yi Tsengbe342052017-11-03 10:21:23 -0700189 ]
Yi Tsengbe342052017-11-03 10:21:23 -0700190 }
191 ],
192 "headers" : [
193 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200194 "name" : "tmp",
Yi Tsengc6844f52017-12-19 11:58:25 -0800195 "id" : 0,
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200196 "header_type" : "packet_out_header_t",
197 "metadata" : false,
198 "pi_omit" : true
199 },
200 {
Carmelo Cascone2a308ff2021-06-01 18:31:57 -0700201 "name" : "gtpu_0",
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200202 "id" : 1,
Carmelo Cascone2a308ff2021-06-01 18:31:57 -0700203 "header_type" : "gtpu_t",
204 "metadata" : false,
205 "pi_omit" : true
206 },
207 {
208 "name" : "scalars",
209 "id" : 2,
Yi Tsengbe342052017-11-03 10:21:23 -0700210 "header_type" : "scalars_0",
211 "metadata" : true,
212 "pi_omit" : true
213 },
214 {
215 "name" : "standard_metadata",
Carmelo Cascone2a308ff2021-06-01 18:31:57 -0700216 "id" : 3,
Yi Tsengbe342052017-11-03 10:21:23 -0700217 "header_type" : "standard_metadata",
218 "metadata" : true,
219 "pi_omit" : true
220 },
221 {
222 "name" : "ethernet",
Carmelo Cascone2a308ff2021-06-01 18:31:57 -0700223 "id" : 4,
Yi Tsengbe342052017-11-03 10:21:23 -0700224 "header_type" : "ethernet_t",
225 "metadata" : false,
226 "pi_omit" : true
227 },
228 {
229 "name" : "vlan_tag",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800230 "id" : 5,
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200231 "header_type" : "vlan_tag_t",
232 "metadata" : false,
233 "pi_omit" : true
234 },
235 {
Carmelo Cascone2a308ff2021-06-01 18:31:57 -0700236 "name" : "inner_vlan_tag",
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200237 "id" : 6,
Carmelo Cascone2a308ff2021-06-01 18:31:57 -0700238 "header_type" : "vlan_tag_t",
239 "metadata" : false,
240 "pi_omit" : true
241 },
242 {
243 "name" : "eth_type",
244 "id" : 7,
Daniele Moro5a2de712019-09-24 14:34:07 -0700245 "header_type" : "eth_type_t",
246 "metadata" : false,
247 "pi_omit" : true
248 },
249 {
250 "name" : "mpls",
Carmelo Cascone2a308ff2021-06-01 18:31:57 -0700251 "id" : 8,
Yi Tsengbe342052017-11-03 10:21:23 -0700252 "header_type" : "mpls_t",
253 "metadata" : false,
254 "pi_omit" : true
255 },
256 {
Wailok Shum4f51bde2021-06-11 22:48:41 +0800257 "name" : "gtpu",
Carmelo Cascone2a308ff2021-06-01 18:31:57 -0700258 "id" : 9,
Wailok Shum4f51bde2021-06-11 22:48:41 +0800259 "header_type" : "gtpu_t",
260 "metadata" : false,
261 "pi_omit" : true
262 },
263 {
264 "name" : "inner_ipv4",
265 "id" : 10,
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800266 "header_type" : "ipv4_t",
Yi Tsengbe342052017-11-03 10:21:23 -0700267 "metadata" : false,
268 "pi_omit" : true
269 },
270 {
Wailok Shum4f51bde2021-06-11 22:48:41 +0800271 "name" : "inner_udp",
Carmelo Cascone2a308ff2021-06-01 18:31:57 -0700272 "id" : 11,
Yi Tsengbe342052017-11-03 10:21:23 -0700273 "header_type" : "udp_t",
274 "metadata" : false,
275 "pi_omit" : true
276 },
277 {
Wailok Shum4f51bde2021-06-11 22:48:41 +0800278 "name" : "inner_tcp",
Carmelo Cascone2a308ff2021-06-01 18:31:57 -0700279 "id" : 12,
Wailok Shum4f51bde2021-06-11 22:48:41 +0800280 "header_type" : "tcp_t",
281 "metadata" : false,
282 "pi_omit" : true
283 },
284 {
285 "name" : "inner_icmp",
286 "id" : 13,
287 "header_type" : "icmp_t",
288 "metadata" : false,
289 "pi_omit" : true
290 },
291 {
292 "name" : "ipv4",
293 "id" : 14,
294 "header_type" : "ipv4_t",
295 "metadata" : false,
296 "pi_omit" : true
297 },
298 {
299 "name" : "tcp",
300 "id" : 15,
301 "header_type" : "tcp_t",
302 "metadata" : false,
303 "pi_omit" : true
304 },
305 {
306 "name" : "udp",
307 "id" : 16,
308 "header_type" : "udp_t",
309 "metadata" : false,
310 "pi_omit" : true
311 },
312 {
313 "name" : "icmp",
314 "id" : 17,
Yi Tsengbe342052017-11-03 10:21:23 -0700315 "header_type" : "icmp_t",
316 "metadata" : false,
317 "pi_omit" : true
318 },
319 {
320 "name" : "packet_out",
Wailok Shum4f51bde2021-06-11 22:48:41 +0800321 "id" : 18,
Yi Tsengbe342052017-11-03 10:21:23 -0700322 "header_type" : "packet_out_header_t",
323 "metadata" : false,
324 "pi_omit" : true
325 },
326 {
327 "name" : "packet_in",
Wailok Shum4f51bde2021-06-11 22:48:41 +0800328 "id" : 19,
Yi Tsengbe342052017-11-03 10:21:23 -0700329 "header_type" : "packet_in_header_t",
330 "metadata" : false,
331 "pi_omit" : true
332 }
333 ],
334 "header_stacks" : [],
335 "header_union_types" : [],
336 "header_unions" : [],
337 "header_union_stacks" : [],
Daniele Moro01ca2ab2019-06-25 11:48:48 -0700338 "field_lists" : [
339 {
340 "id" : 1,
341 "name" : "fl",
342 "source_info" : {
Daniele Moro3b7a21b2019-06-25 17:33:40 -0700343 "filename" : "include/control/acl.p4",
Wailok Shum4f51bde2021-06-11 22:48:41 +0800344 "line" : 52,
Daniele Moro01ca2ab2019-06-25 11:48:48 -0700345 "column" : 40,
Daniele Moro3b7a21b2019-06-25 17:33:40 -0700346 "source_fragment" : "{standard_metadata.ingress_port}"
Daniele Moro01ca2ab2019-06-25 11:48:48 -0700347 },
348 "elements" : [
349 {
350 "type" : "field",
351 "value" : ["standard_metadata", "ingress_port"]
Daniele Moro01ca2ab2019-06-25 11:48:48 -0700352 }
353 ]
354 }
355 ],
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700356 "errors" : [
Carmelo Cascone4d8785b2019-05-31 17:11:26 -0700357 ["NoError", 1],
358 ["PacketTooShort", 2],
359 ["NoMatch", 3],
360 ["StackOutOfBounds", 4],
361 ["HeaderTooShort", 5],
362 ["ParserTimeout", 6],
363 ["ParserInvalidArgument", 7]
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700364 ],
Yi Tsengbe342052017-11-03 10:21:23 -0700365 "enums" : [],
366 "parsers" : [
367 {
368 "name" : "parser",
369 "id" : 0,
370 "init_state" : "start",
371 "parse_states" : [
372 {
373 "name" : "start",
374 "id" : 0,
375 "parser_ops" : [],
376 "transitions" : [
377 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800378 "type" : "hexstr",
Yi Tsengbe342052017-11-03 10:21:23 -0700379 "value" : "0x00ff",
380 "mask" : null,
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200381 "next_state" : "check_packet_out"
Yi Tsengbe342052017-11-03 10:21:23 -0700382 },
383 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200384 "type" : "default",
385 "value" : null,
Yi Tsengbe342052017-11-03 10:21:23 -0700386 "mask" : null,
387 "next_state" : "parse_ethernet"
388 }
389 ],
390 "transition_key" : [
391 {
392 "type" : "field",
393 "value" : ["standard_metadata", "ingress_port"]
394 }
395 ]
396 },
397 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200398 "name" : "check_packet_out",
Yi Tsengbe342052017-11-03 10:21:23 -0700399 "id" : 1,
400 "parser_ops" : [
401 {
402 "parameters" : [
403 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200404 "type" : "field",
405 "value" : ["scalars", "tmp_6"]
406 },
407 {
408 "type" : "lookahead",
409 "value" : [0, 16]
410 }
411 ],
412 "op" : "set"
413 },
414 {
415 "parameters" : [
416 {
417 "parameters" : [
418 {
419 "type" : "header",
420 "value" : "tmp"
421 }
422 ],
423 "op" : "add_header"
424 }
425 ],
426 "op" : "primitive"
427 },
428 {
429 "parameters" : [
430 {
431 "type" : "field",
432 "value" : ["tmp", "egress_port"]
433 },
434 {
435 "type" : "expression",
436 "value" : {
437 "type" : "expression",
438 "value" : {
439 "op" : "&",
440 "left" : {
441 "type" : "expression",
442 "value" : {
443 "op" : "&",
444 "left" : {
445 "type" : "expression",
446 "value" : {
447 "op" : ">>",
448 "left" : {
449 "type" : "field",
450 "value" : ["scalars", "tmp_6"]
451 },
452 "right" : {
453 "type" : "hexstr",
454 "value" : "0x7"
455 }
456 }
457 },
458 "right" : {
459 "type" : "hexstr",
460 "value" : "0xffff"
461 }
462 }
463 },
464 "right" : {
465 "type" : "hexstr",
466 "value" : "0x01ff"
467 }
468 }
469 }
470 }
471 ],
472 "op" : "set"
473 },
474 {
475 "parameters" : [
476 {
477 "type" : "field",
478 "value" : ["tmp", "do_forwarding"]
479 },
480 {
481 "type" : "expression",
482 "value" : {
483 "type" : "expression",
484 "value" : {
485 "op" : "&",
486 "left" : {
487 "type" : "expression",
488 "value" : {
489 "op" : "&",
490 "left" : {
491 "type" : "expression",
492 "value" : {
493 "op" : ">>",
494 "left" : {
495 "type" : "field",
496 "value" : ["scalars", "tmp_6"]
497 },
498 "right" : {
499 "type" : "hexstr",
500 "value" : "0x6"
501 }
502 }
503 },
504 "right" : {
505 "type" : "hexstr",
506 "value" : "0xffff"
507 }
508 }
509 },
510 "right" : {
511 "type" : "hexstr",
512 "value" : "0x01"
513 }
514 }
515 }
516 }
517 ],
518 "op" : "set"
519 },
520 {
521 "parameters" : [
522 {
523 "type" : "field",
524 "value" : ["tmp", "_pad"]
525 },
526 {
527 "type" : "expression",
528 "value" : {
529 "type" : "expression",
530 "value" : {
531 "op" : "&",
532 "left" : {
533 "type" : "field",
534 "value" : ["scalars", "tmp_6"]
535 },
536 "right" : {
537 "type" : "hexstr",
538 "value" : "0x3f"
539 }
540 }
541 }
542 }
543 ],
544 "op" : "set"
545 },
546 {
547 "parameters" : [
548 {
549 "type" : "field",
550 "value" : ["scalars", "tmp_0"]
551 },
552 {
553 "type" : "expression",
554 "value" : {
555 "type" : "expression",
556 "value" : {
557 "op" : "&",
558 "left" : {
559 "type" : "expression",
560 "value" : {
561 "op" : "&",
562 "left" : {
563 "type" : "expression",
564 "value" : {
565 "op" : ">>",
566 "left" : {
567 "type" : "field",
568 "value" : ["scalars", "tmp_6"]
569 },
570 "right" : {
571 "type" : "hexstr",
572 "value" : "0x6"
573 }
574 }
575 },
576 "right" : {
577 "type" : "hexstr",
578 "value" : "0xffff"
579 }
580 }
581 },
582 "right" : {
583 "type" : "hexstr",
584 "value" : "0x01"
585 }
586 }
587 }
588 }
589 ],
590 "op" : "set"
591 }
592 ],
593 "transitions" : [
594 {
595 "type" : "hexstr",
596 "value" : "0x00",
597 "mask" : null,
598 "next_state" : "parse_packet_out_and_accept"
599 },
600 {
601 "type" : "default",
602 "value" : null,
603 "mask" : null,
604 "next_state" : "strip_packet_out"
605 }
606 ],
607 "transition_key" : [
608 {
609 "type" : "field",
610 "value" : ["scalars", "tmp_0"]
611 }
612 ]
613 },
614 {
615 "name" : "parse_packet_out_and_accept",
616 "id" : 2,
617 "parser_ops" : [
618 {
619 "parameters" : [
620 {
Yi Tsengbe342052017-11-03 10:21:23 -0700621 "type" : "regular",
622 "value" : "packet_out"
623 }
624 ],
625 "op" : "extract"
626 }
627 ],
628 "transitions" : [
629 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200630 "type" : "default",
631 "value" : null,
632 "mask" : null,
633 "next_state" : null
634 }
635 ],
636 "transition_key" : []
637 },
638 {
639 "name" : "strip_packet_out",
640 "id" : 3,
641 "parser_ops" : [
642 {
643 "parameters" : [
644 {
645 "type" : "hexstr",
646 "value" : "0x00000010"
647 }
648 ],
649 "op" : "advance"
650 }
651 ],
652 "transitions" : [
653 {
654 "type" : "default",
655 "value" : null,
Yi Tsengbe342052017-11-03 10:21:23 -0700656 "mask" : null,
657 "next_state" : "parse_ethernet"
658 }
659 ],
660 "transition_key" : []
661 },
662 {
663 "name" : "parse_ethernet",
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200664 "id" : 4,
Yi Tsengbe342052017-11-03 10:21:23 -0700665 "parser_ops" : [
666 {
667 "parameters" : [
668 {
669 "type" : "regular",
670 "value" : "ethernet"
671 }
672 ],
673 "op" : "extract"
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800674 },
675 {
676 "parameters" : [
677 {
678 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200679 "value" : ["scalars", "userMetadata.vlan_id"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800680 },
681 {
Daniele Moro5a2de712019-09-24 14:34:07 -0700682 "type" : "hexstr",
683 "value" : "0x0ffe"
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800684 }
685 ],
686 "op" : "set"
687 },
688 {
689 "parameters" : [
690 {
691 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200692 "value" : ["scalars", "tmp_1"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800693 },
694 {
Daniele Moro5a2de712019-09-24 14:34:07 -0700695 "type" : "lookahead",
696 "value" : [0, 16]
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800697 }
698 ],
699 "op" : "set"
Yi Tsengbe342052017-11-03 10:21:23 -0700700 }
701 ],
702 "transitions" : [
703 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800704 "type" : "hexstr",
Daniele Moro77654f92019-07-30 10:29:54 -0700705 "value" : "0x88a8",
706 "mask" : null,
707 "next_state" : "parse_vlan_tag"
708 },
709 {
710 "type" : "hexstr",
711 "value" : "0x9100",
712 "mask" : null,
713 "next_state" : "parse_vlan_tag"
714 },
715 {
716 "type" : "hexstr",
Yi Tsengbe342052017-11-03 10:21:23 -0700717 "value" : "0x8100",
718 "mask" : null,
719 "next_state" : "parse_vlan_tag"
720 },
721 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200722 "type" : "default",
723 "value" : null,
Yi Tsengbe342052017-11-03 10:21:23 -0700724 "mask" : null,
Daniele Moro5a2de712019-09-24 14:34:07 -0700725 "next_state" : "parse_eth_type"
Yi Tsengbe342052017-11-03 10:21:23 -0700726 }
727 ],
728 "transition_key" : [
729 {
730 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200731 "value" : ["scalars", "tmp_1"]
Yi Tsengbe342052017-11-03 10:21:23 -0700732 }
733 ]
734 },
735 {
736 "name" : "parse_vlan_tag",
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200737 "id" : 5,
Yi Tsengbe342052017-11-03 10:21:23 -0700738 "parser_ops" : [
739 {
740 "parameters" : [
741 {
742 "type" : "regular",
743 "value" : "vlan_tag"
744 }
745 ],
746 "op" : "extract"
Daniele Moro5a2de712019-09-24 14:34:07 -0700747 },
748 {
749 "parameters" : [
750 {
751 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200752 "value" : ["scalars", "tmp_3"]
Daniele Moro5a2de712019-09-24 14:34:07 -0700753 },
754 {
755 "type" : "lookahead",
756 "value" : [0, 16]
757 }
758 ],
759 "op" : "set"
Yi Tsengbe342052017-11-03 10:21:23 -0700760 }
761 ],
762 "transitions" : [
763 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800764 "type" : "hexstr",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800765 "value" : "0x8100",
766 "mask" : null,
767 "next_state" : "parse_inner_vlan_tag"
768 },
769 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200770 "type" : "default",
771 "value" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800772 "mask" : null,
Daniele Moro5a2de712019-09-24 14:34:07 -0700773 "next_state" : "parse_eth_type"
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800774 }
775 ],
776 "transition_key" : [
777 {
778 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200779 "value" : ["scalars", "tmp_3"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800780 }
781 ]
782 },
783 {
784 "name" : "parse_inner_vlan_tag",
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200785 "id" : 6,
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800786 "parser_ops" : [
787 {
788 "parameters" : [
789 {
790 "type" : "regular",
791 "value" : "inner_vlan_tag"
792 }
793 ],
794 "op" : "extract"
795 }
796 ],
797 "transitions" : [
798 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200799 "type" : "default",
800 "value" : null,
Yi Tsengbe342052017-11-03 10:21:23 -0700801 "mask" : null,
Daniele Moro5a2de712019-09-24 14:34:07 -0700802 "next_state" : "parse_eth_type"
803 }
804 ],
805 "transition_key" : []
806 },
807 {
808 "name" : "parse_eth_type",
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200809 "id" : 7,
Daniele Moro5a2de712019-09-24 14:34:07 -0700810 "parser_ops" : [
811 {
812 "parameters" : [
813 {
814 "type" : "regular",
815 "value" : "eth_type"
816 }
817 ],
818 "op" : "extract"
819 }
820 ],
821 "transitions" : [
Yi Tsengbe342052017-11-03 10:21:23 -0700822 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800823 "type" : "hexstr",
Yi Tsengbd46d052018-01-22 17:18:16 -0800824 "value" : "0x8847",
Yi Tsengbe342052017-11-03 10:21:23 -0700825 "mask" : null,
Yi Tsengbd46d052018-01-22 17:18:16 -0800826 "next_state" : "parse_mpls"
Yi Tsengbe342052017-11-03 10:21:23 -0700827 },
828 {
Daniele Moro5a2de712019-09-24 14:34:07 -0700829 "type" : "hexstr",
830 "value" : "0x0800",
831 "mask" : null,
832 "next_state" : "parse_ipv4"
833 },
834 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200835 "type" : "default",
836 "value" : null,
Yi Tsengbe342052017-11-03 10:21:23 -0700837 "mask" : null,
838 "next_state" : null
839 }
840 ],
841 "transition_key" : [
842 {
843 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -0700844 "value" : ["eth_type", "value"]
Yi Tsengbe342052017-11-03 10:21:23 -0700845 }
846 ]
847 },
848 {
849 "name" : "parse_mpls",
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200850 "id" : 8,
Yi Tsengbe342052017-11-03 10:21:23 -0700851 "parser_ops" : [
852 {
853 "parameters" : [
854 {
855 "type" : "regular",
856 "value" : "mpls"
857 }
858 ],
859 "op" : "extract"
860 },
861 {
862 "parameters" : [
863 {
864 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200865 "value" : ["scalars", "userMetadata.mpls_label"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800866 },
867 {
868 "type" : "field",
869 "value" : ["mpls", "label"]
870 }
871 ],
872 "op" : "set"
873 },
874 {
875 "parameters" : [
876 {
877 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200878 "value" : ["scalars", "userMetadata.mpls_ttl"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800879 },
880 {
881 "type" : "field",
882 "value" : ["mpls", "ttl"]
883 }
884 ],
885 "op" : "set"
886 },
887 {
888 "parameters" : [
889 {
890 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200891 "value" : ["scalars", "tmp_5"]
Yi Tsengbe342052017-11-03 10:21:23 -0700892 },
893 {
894 "type" : "lookahead",
Yi Tsengc6844f52017-12-19 11:58:25 -0800895 "value" : [0, 4]
Yi Tsengbe342052017-11-03 10:21:23 -0700896 }
897 ],
898 "op" : "set"
899 }
900 ],
901 "transitions" : [
902 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800903 "type" : "hexstr",
Yi Tsengbe342052017-11-03 10:21:23 -0700904 "value" : "0x04",
905 "mask" : null,
906 "next_state" : "parse_ipv4"
907 },
908 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200909 "type" : "default",
910 "value" : null,
Yi Tsengbe342052017-11-03 10:21:23 -0700911 "mask" : null,
912 "next_state" : "parse_ethernet"
913 }
914 ],
915 "transition_key" : [
916 {
917 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200918 "value" : ["scalars", "tmp_5"]
Yi Tsengbe342052017-11-03 10:21:23 -0700919 }
920 ]
921 },
922 {
Daniele Moro7c3a0022019-07-12 13:38:34 -0700923 "name" : "parse_ipv4",
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200924 "id" : 9,
Daniele Moro7c3a0022019-07-12 13:38:34 -0700925 "parser_ops" : [
926 {
927 "parameters" : [
928 {
Yi Tsengbe342052017-11-03 10:21:23 -0700929 "type" : "regular",
930 "value" : "ipv4"
931 }
932 ],
933 "op" : "extract"
934 },
935 {
936 "parameters" : [
937 {
938 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200939 "value" : ["scalars", "userMetadata.ip_proto"]
Yi Tsengbe342052017-11-03 10:21:23 -0700940 },
941 {
942 "type" : "field",
943 "value" : ["ipv4", "protocol"]
944 }
945 ],
946 "op" : "set"
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800947 },
948 {
949 "parameters" : [
950 {
951 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200952 "value" : ["scalars", "userMetadata.ip_eth_type"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800953 },
954 {
955 "type" : "hexstr",
956 "value" : "0x0800"
957 }
958 ],
959 "op" : "set"
Robert MacDavidbec6b6a2020-05-21 21:32:38 -0400960 },
961 {
962 "parameters" : [
963 {
964 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200965 "value" : ["scalars", "userMetadata.ipv4_src_addr"]
Robert MacDavidbec6b6a2020-05-21 21:32:38 -0400966 },
967 {
968 "type" : "field",
969 "value" : ["ipv4", "src_addr"]
970 }
971 ],
972 "op" : "set"
973 },
974 {
975 "parameters" : [
976 {
977 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200978 "value" : ["scalars", "userMetadata.ipv4_dst_addr"]
Robert MacDavidbec6b6a2020-05-21 21:32:38 -0400979 },
980 {
981 "type" : "field",
982 "value" : ["ipv4", "dst_addr"]
983 }
984 ],
985 "op" : "set"
Yi Tsengbe342052017-11-03 10:21:23 -0700986 }
987 ],
988 "transitions" : [
989 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800990 "type" : "hexstr",
Yi Tsengbe342052017-11-03 10:21:23 -0700991 "value" : "0x06",
992 "mask" : null,
993 "next_state" : "parse_tcp"
994 },
995 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800996 "type" : "hexstr",
Yi Tsengbe342052017-11-03 10:21:23 -0700997 "value" : "0x11",
998 "mask" : null,
999 "next_state" : "parse_udp"
1000 },
1001 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001002 "type" : "hexstr",
Yi Tsengbe342052017-11-03 10:21:23 -07001003 "value" : "0x01",
1004 "mask" : null,
1005 "next_state" : "parse_icmp"
1006 },
1007 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02001008 "type" : "default",
1009 "value" : null,
Yi Tsengbe342052017-11-03 10:21:23 -07001010 "mask" : null,
1011 "next_state" : null
1012 }
1013 ],
1014 "transition_key" : [
1015 {
1016 "type" : "field",
1017 "value" : ["ipv4", "protocol"]
1018 }
1019 ]
1020 },
1021 {
Yi Tsengbe342052017-11-03 10:21:23 -07001022 "name" : "parse_tcp",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02001023 "id" : 10,
Yi Tsengbe342052017-11-03 10:21:23 -07001024 "parser_ops" : [
1025 {
1026 "parameters" : [
1027 {
1028 "type" : "regular",
1029 "value" : "tcp"
1030 }
1031 ],
1032 "op" : "extract"
1033 },
1034 {
1035 "parameters" : [
1036 {
1037 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02001038 "value" : ["scalars", "userMetadata.l4_sport"]
Yi Tsengbe342052017-11-03 10:21:23 -07001039 },
1040 {
1041 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001042 "value" : ["tcp", "sport"]
Yi Tsengbe342052017-11-03 10:21:23 -07001043 }
1044 ],
1045 "op" : "set"
1046 },
1047 {
1048 "parameters" : [
1049 {
1050 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02001051 "value" : ["scalars", "userMetadata.l4_dport"]
Yi Tsengbe342052017-11-03 10:21:23 -07001052 },
1053 {
1054 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001055 "value" : ["tcp", "dport"]
Yi Tsengbe342052017-11-03 10:21:23 -07001056 }
1057 ],
1058 "op" : "set"
1059 }
1060 ],
1061 "transitions" : [
1062 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02001063 "type" : "default",
1064 "value" : null,
Yi Tsengbe342052017-11-03 10:21:23 -07001065 "mask" : null,
1066 "next_state" : null
1067 }
1068 ],
1069 "transition_key" : []
1070 },
1071 {
1072 "name" : "parse_udp",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02001073 "id" : 11,
Yi Tsengbe342052017-11-03 10:21:23 -07001074 "parser_ops" : [
1075 {
1076 "parameters" : [
1077 {
1078 "type" : "regular",
1079 "value" : "udp"
1080 }
1081 ],
1082 "op" : "extract"
1083 },
1084 {
1085 "parameters" : [
1086 {
1087 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02001088 "value" : ["scalars", "userMetadata.l4_sport"]
Yi Tsengbe342052017-11-03 10:21:23 -07001089 },
1090 {
1091 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001092 "value" : ["udp", "sport"]
Yi Tsengbe342052017-11-03 10:21:23 -07001093 }
1094 ],
1095 "op" : "set"
1096 },
1097 {
1098 "parameters" : [
1099 {
1100 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02001101 "value" : ["scalars", "userMetadata.l4_dport"]
Yi Tsengbe342052017-11-03 10:21:23 -07001102 },
1103 {
1104 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001105 "value" : ["udp", "dport"]
Yi Tsengbe342052017-11-03 10:21:23 -07001106 }
1107 ],
1108 "op" : "set"
Carmelo Cascone2a308ff2021-06-01 18:31:57 -07001109 },
1110 {
1111 "parameters" : [
1112 {
1113 "type" : "field",
1114 "value" : ["scalars", "tmp_7"]
1115 },
1116 {
1117 "type" : "lookahead",
1118 "value" : [0, 64]
1119 }
1120 ],
1121 "op" : "set"
1122 },
1123 {
1124 "parameters" : [
1125 {
1126 "parameters" : [
1127 {
1128 "type" : "header",
1129 "value" : "gtpu_0"
1130 }
1131 ],
1132 "op" : "add_header"
1133 }
1134 ],
1135 "op" : "primitive"
1136 },
1137 {
1138 "parameters" : [
1139 {
1140 "type" : "field",
1141 "value" : ["gtpu_0", "version"]
1142 },
1143 {
1144 "type" : "expression",
1145 "value" : {
1146 "type" : "expression",
1147 "value" : {
1148 "op" : "&",
1149 "left" : {
1150 "type" : "expression",
1151 "value" : {
1152 "op" : "&",
1153 "left" : {
1154 "type" : "expression",
1155 "value" : {
1156 "op" : ">>",
1157 "left" : {
1158 "type" : "field",
1159 "value" : ["scalars", "tmp_7"]
1160 },
1161 "right" : {
1162 "type" : "hexstr",
1163 "value" : "0x3d"
1164 }
1165 }
1166 },
1167 "right" : {
1168 "type" : "hexstr",
1169 "value" : "0xffffffffffffffff"
1170 }
1171 }
1172 },
1173 "right" : {
1174 "type" : "hexstr",
1175 "value" : "0x07"
1176 }
1177 }
1178 }
1179 }
1180 ],
1181 "op" : "set"
1182 },
1183 {
1184 "parameters" : [
1185 {
1186 "type" : "field",
1187 "value" : ["gtpu_0", "pt"]
1188 },
1189 {
1190 "type" : "expression",
1191 "value" : {
1192 "type" : "expression",
1193 "value" : {
1194 "op" : "&",
1195 "left" : {
1196 "type" : "expression",
1197 "value" : {
1198 "op" : "&",
1199 "left" : {
1200 "type" : "expression",
1201 "value" : {
1202 "op" : ">>",
1203 "left" : {
1204 "type" : "field",
1205 "value" : ["scalars", "tmp_7"]
1206 },
1207 "right" : {
1208 "type" : "hexstr",
1209 "value" : "0x3c"
1210 }
1211 }
1212 },
1213 "right" : {
1214 "type" : "hexstr",
1215 "value" : "0xffffffffffffffff"
1216 }
1217 }
1218 },
1219 "right" : {
1220 "type" : "hexstr",
1221 "value" : "0x01"
1222 }
1223 }
1224 }
1225 }
1226 ],
1227 "op" : "set"
1228 },
1229 {
1230 "parameters" : [
1231 {
1232 "type" : "field",
1233 "value" : ["gtpu_0", "spare"]
1234 },
1235 {
1236 "type" : "expression",
1237 "value" : {
1238 "type" : "expression",
1239 "value" : {
1240 "op" : "&",
1241 "left" : {
1242 "type" : "expression",
1243 "value" : {
1244 "op" : "&",
1245 "left" : {
1246 "type" : "expression",
1247 "value" : {
1248 "op" : ">>",
1249 "left" : {
1250 "type" : "field",
1251 "value" : ["scalars", "tmp_7"]
1252 },
1253 "right" : {
1254 "type" : "hexstr",
1255 "value" : "0x3b"
1256 }
1257 }
1258 },
1259 "right" : {
1260 "type" : "hexstr",
1261 "value" : "0xffffffffffffffff"
1262 }
1263 }
1264 },
1265 "right" : {
1266 "type" : "hexstr",
1267 "value" : "0x01"
1268 }
1269 }
1270 }
1271 }
1272 ],
1273 "op" : "set"
1274 },
1275 {
1276 "parameters" : [
1277 {
1278 "type" : "field",
1279 "value" : ["gtpu_0", "ex_flag"]
1280 },
1281 {
1282 "type" : "expression",
1283 "value" : {
1284 "type" : "expression",
1285 "value" : {
1286 "op" : "&",
1287 "left" : {
1288 "type" : "expression",
1289 "value" : {
1290 "op" : "&",
1291 "left" : {
1292 "type" : "expression",
1293 "value" : {
1294 "op" : ">>",
1295 "left" : {
1296 "type" : "field",
1297 "value" : ["scalars", "tmp_7"]
1298 },
1299 "right" : {
1300 "type" : "hexstr",
1301 "value" : "0x3a"
1302 }
1303 }
1304 },
1305 "right" : {
1306 "type" : "hexstr",
1307 "value" : "0xffffffffffffffff"
1308 }
1309 }
1310 },
1311 "right" : {
1312 "type" : "hexstr",
1313 "value" : "0x01"
1314 }
1315 }
1316 }
1317 }
1318 ],
1319 "op" : "set"
1320 },
1321 {
1322 "parameters" : [
1323 {
1324 "type" : "field",
1325 "value" : ["gtpu_0", "seq_flag"]
1326 },
1327 {
1328 "type" : "expression",
1329 "value" : {
1330 "type" : "expression",
1331 "value" : {
1332 "op" : "&",
1333 "left" : {
1334 "type" : "expression",
1335 "value" : {
1336 "op" : "&",
1337 "left" : {
1338 "type" : "expression",
1339 "value" : {
1340 "op" : ">>",
1341 "left" : {
1342 "type" : "field",
1343 "value" : ["scalars", "tmp_7"]
1344 },
1345 "right" : {
1346 "type" : "hexstr",
1347 "value" : "0x39"
1348 }
1349 }
1350 },
1351 "right" : {
1352 "type" : "hexstr",
1353 "value" : "0xffffffffffffffff"
1354 }
1355 }
1356 },
1357 "right" : {
1358 "type" : "hexstr",
1359 "value" : "0x01"
1360 }
1361 }
1362 }
1363 }
1364 ],
1365 "op" : "set"
1366 },
1367 {
1368 "parameters" : [
1369 {
1370 "type" : "field",
1371 "value" : ["gtpu_0", "npdu_flag"]
1372 },
1373 {
1374 "type" : "expression",
1375 "value" : {
1376 "type" : "expression",
1377 "value" : {
1378 "op" : "&",
1379 "left" : {
1380 "type" : "expression",
1381 "value" : {
1382 "op" : "&",
1383 "left" : {
1384 "type" : "expression",
1385 "value" : {
1386 "op" : ">>",
1387 "left" : {
1388 "type" : "field",
1389 "value" : ["scalars", "tmp_7"]
1390 },
1391 "right" : {
1392 "type" : "hexstr",
1393 "value" : "0x38"
1394 }
1395 }
1396 },
1397 "right" : {
1398 "type" : "hexstr",
1399 "value" : "0xffffffffffffffff"
1400 }
1401 }
1402 },
1403 "right" : {
1404 "type" : "hexstr",
1405 "value" : "0x01"
1406 }
1407 }
1408 }
1409 }
1410 ],
1411 "op" : "set"
1412 },
1413 {
1414 "parameters" : [
1415 {
1416 "type" : "field",
1417 "value" : ["gtpu_0", "msgtype"]
1418 },
1419 {
1420 "type" : "expression",
1421 "value" : {
1422 "type" : "expression",
1423 "value" : {
1424 "op" : "&",
1425 "left" : {
1426 "type" : "expression",
1427 "value" : {
1428 "op" : "&",
1429 "left" : {
1430 "type" : "expression",
1431 "value" : {
1432 "op" : ">>",
1433 "left" : {
1434 "type" : "field",
1435 "value" : ["scalars", "tmp_7"]
1436 },
1437 "right" : {
1438 "type" : "hexstr",
1439 "value" : "0x30"
1440 }
1441 }
1442 },
1443 "right" : {
1444 "type" : "hexstr",
1445 "value" : "0xffffffffffffffff"
1446 }
1447 }
1448 },
1449 "right" : {
1450 "type" : "hexstr",
1451 "value" : "0xff"
1452 }
1453 }
1454 }
1455 }
1456 ],
1457 "op" : "set"
1458 },
1459 {
1460 "parameters" : [
1461 {
1462 "type" : "field",
1463 "value" : ["gtpu_0", "msglen"]
1464 },
1465 {
1466 "type" : "expression",
1467 "value" : {
1468 "type" : "expression",
1469 "value" : {
1470 "op" : "&",
1471 "left" : {
1472 "type" : "expression",
1473 "value" : {
1474 "op" : "&",
1475 "left" : {
1476 "type" : "expression",
1477 "value" : {
1478 "op" : ">>",
1479 "left" : {
1480 "type" : "field",
1481 "value" : ["scalars", "tmp_7"]
1482 },
1483 "right" : {
1484 "type" : "hexstr",
1485 "value" : "0x20"
1486 }
1487 }
1488 },
1489 "right" : {
1490 "type" : "hexstr",
1491 "value" : "0xffffffffffffffff"
1492 }
1493 }
1494 },
1495 "right" : {
1496 "type" : "hexstr",
1497 "value" : "0xffff"
1498 }
1499 }
1500 }
1501 }
1502 ],
1503 "op" : "set"
1504 },
1505 {
1506 "parameters" : [
1507 {
1508 "type" : "field",
1509 "value" : ["gtpu_0", "teid"]
1510 },
1511 {
1512 "type" : "expression",
1513 "value" : {
1514 "type" : "expression",
1515 "value" : {
1516 "op" : "&",
1517 "left" : {
1518 "type" : "field",
1519 "value" : ["scalars", "tmp_7"]
1520 },
1521 "right" : {
1522 "type" : "hexstr",
1523 "value" : "0xffffffff"
1524 }
1525 }
1526 }
1527 }
1528 ],
1529 "op" : "set"
1530 },
1531 {
1532 "parameters" : [
1533 {
1534 "type" : "field",
1535 "value" : ["scalars", "tmp_2"]
1536 },
1537 {
1538 "type" : "expression",
1539 "value" : {
1540 "type" : "expression",
1541 "value" : {
1542 "op" : "&",
1543 "left" : {
1544 "type" : "expression",
1545 "value" : {
1546 "op" : "&",
1547 "left" : {
1548 "type" : "expression",
1549 "value" : {
1550 "op" : ">>",
1551 "left" : {
1552 "type" : "field",
1553 "value" : ["scalars", "tmp_7"]
1554 },
1555 "right" : {
1556 "type" : "hexstr",
1557 "value" : "0x3d"
1558 }
1559 }
1560 },
1561 "right" : {
1562 "type" : "hexstr",
1563 "value" : "0xffffffffffffffff"
1564 }
1565 }
1566 },
1567 "right" : {
1568 "type" : "hexstr",
1569 "value" : "0x07"
1570 }
1571 }
1572 }
1573 }
1574 ],
1575 "op" : "set"
1576 },
1577 {
1578 "parameters" : [
1579 {
1580 "type" : "field",
1581 "value" : ["scalars", "tmp_4"]
1582 },
1583 {
1584 "type" : "expression",
1585 "value" : {
1586 "type" : "expression",
1587 "value" : {
1588 "op" : "&",
1589 "left" : {
1590 "type" : "expression",
1591 "value" : {
1592 "op" : "&",
1593 "left" : {
1594 "type" : "expression",
1595 "value" : {
1596 "op" : ">>",
1597 "left" : {
1598 "type" : "field",
1599 "value" : ["scalars", "tmp_7"]
1600 },
1601 "right" : {
1602 "type" : "hexstr",
1603 "value" : "0x30"
1604 }
1605 }
1606 },
1607 "right" : {
1608 "type" : "hexstr",
1609 "value" : "0xffffffffffffffff"
1610 }
1611 }
1612 },
1613 "right" : {
1614 "type" : "hexstr",
1615 "value" : "0xff"
1616 }
1617 }
1618 }
1619 }
1620 ],
1621 "op" : "set"
Yi Tsengbe342052017-11-03 10:21:23 -07001622 }
1623 ],
1624 "transitions" : [
1625 {
Wailok Shum4f51bde2021-06-11 22:48:41 +08001626 "type" : "hexstr",
1627 "value" : "0x086801ff",
1628 "mask" : null,
1629 "next_state" : "parse_gtpu"
1630 },
1631 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02001632 "type" : "default",
1633 "value" : null,
Yi Tsengbe342052017-11-03 10:21:23 -07001634 "mask" : null,
1635 "next_state" : null
1636 }
1637 ],
Carmelo Cascone79a3a312018-08-16 17:14:43 -07001638 "transition_key" : [
1639 {
1640 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001641 "value" : ["udp", "dport"]
Carmelo Cascone2a308ff2021-06-01 18:31:57 -07001642 },
1643 {
1644 "type" : "field",
1645 "value" : ["scalars", "tmp_2"]
1646 },
1647 {
1648 "type" : "field",
1649 "value" : ["scalars", "tmp_4"]
Carmelo Cascone79a3a312018-08-16 17:14:43 -07001650 }
1651 ]
Yi Tsengbe342052017-11-03 10:21:23 -07001652 },
1653 {
1654 "name" : "parse_icmp",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02001655 "id" : 12,
Yi Tsengbe342052017-11-03 10:21:23 -07001656 "parser_ops" : [
1657 {
1658 "parameters" : [
1659 {
1660 "type" : "regular",
1661 "value" : "icmp"
1662 }
1663 ],
1664 "op" : "extract"
1665 }
1666 ],
1667 "transitions" : [
1668 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02001669 "type" : "default",
1670 "value" : null,
Yi Tsengbe342052017-11-03 10:21:23 -07001671 "mask" : null,
1672 "next_state" : null
1673 }
1674 ],
1675 "transition_key" : []
Wailok Shum4f51bde2021-06-11 22:48:41 +08001676 },
1677 {
1678 "name" : "parse_gtpu",
1679 "id" : 13,
1680 "parser_ops" : [
1681 {
1682 "parameters" : [
1683 {
1684 "type" : "regular",
1685 "value" : "gtpu"
1686 }
1687 ],
1688 "op" : "extract"
1689 },
1690 {
1691 "parameters" : [
1692 {
1693 "type" : "regular",
1694 "value" : "inner_ipv4"
1695 }
1696 ],
1697 "op" : "extract"
1698 }
1699 ],
1700 "transitions" : [
1701 {
1702 "type" : "hexstr",
1703 "value" : "0x06",
1704 "mask" : null,
1705 "next_state" : "parse_tcp"
1706 },
1707 {
1708 "type" : "hexstr",
1709 "value" : "0x11",
1710 "mask" : null,
1711 "next_state" : "parse_inner_udp"
1712 },
1713 {
1714 "type" : "hexstr",
1715 "value" : "0x01",
1716 "mask" : null,
1717 "next_state" : "parse_icmp"
1718 },
1719 {
1720 "type" : "default",
1721 "value" : null,
1722 "mask" : null,
1723 "next_state" : null
1724 }
1725 ],
1726 "transition_key" : [
1727 {
1728 "type" : "field",
1729 "value" : ["inner_ipv4", "protocol"]
1730 }
1731 ]
1732 },
1733 {
1734 "name" : "parse_inner_udp",
1735 "id" : 14,
1736 "parser_ops" : [
1737 {
1738 "parameters" : [
1739 {
1740 "type" : "regular",
1741 "value" : "inner_udp"
1742 }
1743 ],
1744 "op" : "extract"
1745 }
1746 ],
1747 "transitions" : [
1748 {
1749 "type" : "default",
1750 "value" : null,
1751 "mask" : null,
1752 "next_state" : null
1753 }
1754 ],
1755 "transition_key" : []
Yi Tsengbe342052017-11-03 10:21:23 -07001756 }
1757 ]
1758 }
1759 ],
Yi Tseng27b9bc02018-04-12 14:52:40 +08001760 "parse_vsets" : [],
Yi Tsengbe342052017-11-03 10:21:23 -07001761 "deparsers" : [
1762 {
1763 "name" : "deparser",
1764 "id" : 0,
1765 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001766 "filename" : "include/parser.p4",
Carmelo Cascone2a308ff2021-06-01 18:31:57 -07001767 "line" : 285,
Yi Tsengbe342052017-11-03 10:21:23 -07001768 "column" : 8,
1769 "source_fragment" : "FabricDeparser"
1770 },
Wailok Shum4f51bde2021-06-11 22:48:41 +08001771 "order" : ["packet_in", "ethernet", "vlan_tag", "inner_vlan_tag", "eth_type", "mpls", "ipv4", "tcp", "udp", "icmp", "gtpu", "inner_ipv4", "inner_tcp", "inner_udp", "inner_icmp"],
Carmelo Cascone2388cc12021-05-26 19:30:30 +02001772 "primitives" : []
Yi Tsengbe342052017-11-03 10:21:23 -07001773 }
1774 ],
1775 "meter_arrays" : [],
1776 "counter_arrays" : [
1777 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001778 "name" : "FabricIngress.filtering.ingress_port_vlan_counter",
Yi Tseng1d842672017-11-28 16:06:52 -08001779 "id" : 0,
Yi Tseng3a5731e2018-01-22 11:38:58 -08001780 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001781 "binding" : "FabricIngress.filtering.ingress_port_vlan",
1782 "source_info" : {
1783 "filename" : "include/control/filtering.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001784 "line" : 31,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001785 "column" : 50,
1786 "source_fragment" : "ingress_port_vlan_counter"
1787 }
Yi Tseng3a5731e2018-01-22 11:38:58 -08001788 },
1789 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001790 "name" : "FabricIngress.filtering.fwd_classifier_counter",
Yi Tseng3a5731e2018-01-22 11:38:58 -08001791 "id" : 1,
1792 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001793 "binding" : "FabricIngress.filtering.fwd_classifier",
1794 "source_info" : {
1795 "filename" : "include/control/filtering.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08001796 "line" : 87,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001797 "column" : 50,
1798 "source_fragment" : "fwd_classifier_counter"
1799 }
Yi Tseng3a5731e2018-01-22 11:38:58 -08001800 },
1801 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001802 "name" : "FabricIngress.forwarding.bridging_counter",
Yi Tseng3a5731e2018-01-22 11:38:58 -08001803 "id" : 2,
1804 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001805 "binding" : "FabricIngress.forwarding.bridging",
1806 "source_info" : {
1807 "filename" : "include/control/forwarding.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001808 "line" : 36,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001809 "column" : 50,
1810 "source_fragment" : "bridging_counter"
1811 }
Yi Tseng3a5731e2018-01-22 11:38:58 -08001812 },
1813 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001814 "name" : "FabricIngress.forwarding.mpls_counter",
Yi Tseng3a5731e2018-01-22 11:38:58 -08001815 "id" : 3,
1816 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001817 "binding" : "FabricIngress.forwarding.mpls",
1818 "source_info" : {
1819 "filename" : "include/control/forwarding.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07001820 "line" : 63,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001821 "column" : 50,
1822 "source_fragment" : "mpls_counter"
1823 }
Yi Tseng3a5731e2018-01-22 11:38:58 -08001824 },
1825 {
Wailok Shumfb7e7872021-06-18 17:30:08 +08001826 "name" : "FabricIngress.pre_next.next_mpls_counter",
Daniele Moro5a2de712019-09-24 14:34:07 -07001827 "id" : 4,
Yi Tseng3a5731e2018-01-22 11:38:58 -08001828 "is_direct" : true,
Wailok Shumfb7e7872021-06-18 17:30:08 +08001829 "binding" : "FabricIngress.pre_next.next_mpls",
1830 "source_info" : {
1831 "filename" : "include/control/pre_next.p4",
1832 "line" : 29,
1833 "column" : 50,
1834 "source_fragment" : "next_mpls_counter"
1835 }
1836 },
1837 {
1838 "name" : "FabricIngress.pre_next.next_vlan_counter",
1839 "id" : 5,
1840 "is_direct" : true,
1841 "binding" : "FabricIngress.pre_next.next_vlan",
1842 "source_info" : {
1843 "filename" : "include/control/pre_next.p4",
1844 "line" : 54,
1845 "column" : 50,
1846 "source_fragment" : "next_vlan_counter"
1847 }
1848 },
1849 {
1850 "name" : "FabricIngress.acl.acl_counter",
1851 "id" : 6,
1852 "is_direct" : true,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001853 "binding" : "FabricIngress.acl.acl",
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001854 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001855 "filename" : "include/control/acl.p4",
Wailok Shum4f51bde2021-06-11 22:48:41 +08001856 "line" : 36,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001857 "column" : 50,
1858 "source_fragment" : "acl_counter"
1859 }
Yi Tseng3a5731e2018-01-22 11:38:58 -08001860 },
1861 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001862 "name" : "FabricIngress.next.xconnect_counter",
Wailok Shumfb7e7872021-06-18 17:30:08 +08001863 "id" : 7,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001864 "is_direct" : true,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001865 "binding" : "FabricIngress.next.xconnect",
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001866 "source_info" : {
1867 "filename" : "include/control/next.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08001868 "line" : 56,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001869 "column" : 50,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001870 "source_fragment" : "xconnect_counter"
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001871 }
Yi Tseng27b9bc02018-04-12 14:52:40 +08001872 },
1873 {
1874 "name" : "FabricIngress.next.hashed_counter",
Wailok Shumfb7e7872021-06-18 17:30:08 +08001875 "id" : 8,
Yi Tseng27b9bc02018-04-12 14:52:40 +08001876 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001877 "binding" : "FabricIngress.next.hashed",
1878 "source_info" : {
1879 "filename" : "include/control/next.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08001880 "line" : 126,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001881 "column" : 50,
1882 "source_fragment" : "hashed_counter"
1883 }
Yi Tseng27b9bc02018-04-12 14:52:40 +08001884 },
1885 {
Esin Karaman971fb7f2017-12-28 13:44:52 +00001886 "name" : "FabricIngress.next.multicast_counter",
Wailok Shumfb7e7872021-06-18 17:30:08 +08001887 "id" : 9,
Esin Karaman971fb7f2017-12-28 13:44:52 +00001888 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001889 "binding" : "FabricIngress.next.multicast",
1890 "source_info" : {
1891 "filename" : "include/control/next.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08001892 "line" : 163,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001893 "column" : 50,
1894 "source_fragment" : "multicast_counter"
1895 }
Esin Karaman971fb7f2017-12-28 13:44:52 +00001896 },
1897 {
1898 "name" : "FabricIngress.port_counters_control.egress_port_counter",
Wailok Shumfb7e7872021-06-18 17:30:08 +08001899 "id" : 10,
Yi Tsengbe342052017-11-03 10:21:23 -07001900 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001901 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001902 "line" : 26,
Yi Tseng3d3956d2018-01-31 17:28:05 -08001903 "column" : 48,
Yi Tsengbe342052017-11-03 10:21:23 -07001904 "source_fragment" : "egress_port_counter"
1905 },
1906 "size" : 511,
1907 "is_direct" : false
1908 },
1909 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001910 "name" : "FabricIngress.port_counters_control.ingress_port_counter",
Wailok Shumfb7e7872021-06-18 17:30:08 +08001911 "id" : 11,
Yi Tsengbe342052017-11-03 10:21:23 -07001912 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001913 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001914 "line" : 27,
Yi Tseng3d3956d2018-01-31 17:28:05 -08001915 "column" : 48,
Yi Tsengbe342052017-11-03 10:21:23 -07001916 "source_fragment" : "ingress_port_counter"
1917 },
1918 "size" : 511,
1919 "is_direct" : false
Yi Tseng47eac892018-07-11 02:17:04 +08001920 },
1921 {
1922 "name" : "FabricEgress.egress_next.egress_vlan_counter",
Wailok Shumfb7e7872021-06-18 17:30:08 +08001923 "id" : 12,
Yi Tseng47eac892018-07-11 02:17:04 +08001924 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001925 "binding" : "FabricEgress.egress_next.egress_vlan",
1926 "source_info" : {
1927 "filename" : "include/control/next.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08001928 "line" : 248,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001929 "column" : 50,
1930 "source_fragment" : "egress_vlan_counter"
1931 }
Yi Tsengbe342052017-11-03 10:21:23 -07001932 }
1933 ],
1934 "register_arrays" : [],
1935 "calculations" : [
1936 {
1937 "name" : "calc",
1938 "id" : 0,
1939 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001940 "filename" : "include/checksum.p4",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001941 "line" : 28,
Yi Tsengbe342052017-11-03 10:21:23 -07001942 "column" : 8,
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001943 "source_fragment" : "update_checksum(hdr.ipv4.isValid(), ..."
Yi Tsengbe342052017-11-03 10:21:23 -07001944 },
1945 "algo" : "csum16",
1946 "input" : [
1947 {
1948 "type" : "field",
1949 "value" : ["ipv4", "version"]
1950 },
1951 {
1952 "type" : "field",
1953 "value" : ["ipv4", "ihl"]
1954 },
1955 {
1956 "type" : "field",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09001957 "value" : ["ipv4", "dscp"]
1958 },
1959 {
1960 "type" : "field",
1961 "value" : ["ipv4", "ecn"]
Yi Tsengbe342052017-11-03 10:21:23 -07001962 },
1963 {
1964 "type" : "field",
1965 "value" : ["ipv4", "total_len"]
1966 },
1967 {
1968 "type" : "field",
1969 "value" : ["ipv4", "identification"]
1970 },
1971 {
1972 "type" : "field",
1973 "value" : ["ipv4", "flags"]
1974 },
1975 {
1976 "type" : "field",
1977 "value" : ["ipv4", "frag_offset"]
1978 },
1979 {
1980 "type" : "field",
1981 "value" : ["ipv4", "ttl"]
1982 },
1983 {
1984 "type" : "field",
1985 "value" : ["ipv4", "protocol"]
1986 },
1987 {
1988 "type" : "field",
1989 "value" : ["ipv4", "src_addr"]
1990 },
1991 {
1992 "type" : "field",
1993 "value" : ["ipv4", "dst_addr"]
1994 }
1995 ]
1996 },
1997 {
1998 "name" : "calc_0",
1999 "id" : 1,
2000 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002001 "filename" : "include/checksum.p4",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09002002 "line" : 57,
Yi Tsengbe342052017-11-03 10:21:23 -07002003 "column" : 8,
Carmelo Cascone6af4e172018-06-15 16:01:30 +02002004 "source_fragment" : "verify_checksum(hdr.ipv4.isValid(), ..."
Yi Tsengbe342052017-11-03 10:21:23 -07002005 },
2006 "algo" : "csum16",
2007 "input" : [
2008 {
2009 "type" : "field",
2010 "value" : ["ipv4", "version"]
2011 },
2012 {
2013 "type" : "field",
2014 "value" : ["ipv4", "ihl"]
2015 },
2016 {
2017 "type" : "field",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09002018 "value" : ["ipv4", "dscp"]
2019 },
2020 {
2021 "type" : "field",
2022 "value" : ["ipv4", "ecn"]
Yi Tsengbe342052017-11-03 10:21:23 -07002023 },
2024 {
2025 "type" : "field",
2026 "value" : ["ipv4", "total_len"]
2027 },
2028 {
2029 "type" : "field",
2030 "value" : ["ipv4", "identification"]
2031 },
2032 {
2033 "type" : "field",
2034 "value" : ["ipv4", "flags"]
2035 },
2036 {
2037 "type" : "field",
2038 "value" : ["ipv4", "frag_offset"]
2039 },
2040 {
2041 "type" : "field",
2042 "value" : ["ipv4", "ttl"]
2043 },
2044 {
2045 "type" : "field",
2046 "value" : ["ipv4", "protocol"]
2047 },
2048 {
2049 "type" : "field",
2050 "value" : ["ipv4", "src_addr"]
2051 },
2052 {
2053 "type" : "field",
2054 "value" : ["ipv4", "dst_addr"]
2055 }
2056 ]
Yi Tsengbe342052017-11-03 10:21:23 -07002057 }
2058 ],
2059 "learn_lists" : [],
2060 "actions" : [
2061 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002062 "name" : "nop",
Yi Tsengbe342052017-11-03 10:21:23 -07002063 "id" : 0,
2064 "runtime_data" : [],
2065 "primitives" : []
2066 },
2067 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002068 "name" : "nop",
Yi Tsengbe342052017-11-03 10:21:23 -07002069 "id" : 1,
2070 "runtime_data" : [],
2071 "primitives" : []
2072 },
2073 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002074 "name" : "nop",
Yi Tsengbe342052017-11-03 10:21:23 -07002075 "id" : 2,
2076 "runtime_data" : [],
Yi Tseng1d842672017-11-28 16:06:52 -08002077 "primitives" : []
Yi Tsengbe342052017-11-03 10:21:23 -07002078 },
2079 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002080 "name" : "nop",
Yi Tsengbe342052017-11-03 10:21:23 -07002081 "id" : 3,
2082 "runtime_data" : [],
Yi Tseng1d842672017-11-28 16:06:52 -08002083 "primitives" : []
Yi Tsengbe342052017-11-03 10:21:23 -07002084 },
2085 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002086 "name" : "nop",
Yi Tsengbe342052017-11-03 10:21:23 -07002087 "id" : 4,
2088 "runtime_data" : [],
2089 "primitives" : []
2090 },
2091 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002092 "name" : "nop",
Yi Tsengbe342052017-11-03 10:21:23 -07002093 "id" : 5,
2094 "runtime_data" : [],
2095 "primitives" : []
2096 },
2097 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002098 "name" : "nop",
Yi Tsengbe342052017-11-03 10:21:23 -07002099 "id" : 6,
2100 "runtime_data" : [],
2101 "primitives" : []
2102 },
2103 {
Wailok Shumfb7e7872021-06-18 17:30:08 +08002104 "name" : "nop",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002105 "id" : 7,
Yi Tseng47eac892018-07-11 02:17:04 +08002106 "runtime_data" : [],
Wailok Shumfb7e7872021-06-18 17:30:08 +08002107 "primitives" : []
2108 },
2109 {
2110 "name" : "FabricIngress.filtering.deny",
2111 "id" : 8,
2112 "runtime_data" : [],
Yi Tseng1d842672017-11-28 16:06:52 -08002113 "primitives" : [
2114 {
Yi Tsengbe342052017-11-03 10:21:23 -07002115 "op" : "assign",
2116 "parameters" : [
2117 {
2118 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02002119 "value" : ["scalars", "userMetadata.skip_forwarding"]
Yi Tsengbe342052017-11-03 10:21:23 -07002120 },
2121 {
2122 "type" : "expression",
2123 "value" : {
2124 "type" : "expression",
2125 "value" : {
2126 "op" : "b2d",
2127 "left" : null,
2128 "right" : {
2129 "type" : "bool",
2130 "value" : true
2131 }
2132 }
2133 }
2134 }
2135 ],
2136 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002137 "filename" : "include/control/filtering.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002138 "line" : 36,
Yi Tsengbe342052017-11-03 10:21:23 -07002139 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002140 "source_fragment" : "fabric_metadata.skip_forwarding = true"
2141 }
2142 },
2143 {
2144 "op" : "assign",
2145 "parameters" : [
2146 {
2147 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02002148 "value" : ["scalars", "userMetadata.skip_next"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002149 },
2150 {
2151 "type" : "expression",
2152 "value" : {
2153 "type" : "expression",
2154 "value" : {
2155 "op" : "b2d",
2156 "left" : null,
2157 "right" : {
2158 "type" : "bool",
2159 "value" : true
2160 }
2161 }
2162 }
2163 }
2164 ],
2165 "source_info" : {
2166 "filename" : "include/control/filtering.p4",
2167 "line" : 37,
2168 "column" : 8,
2169 "source_fragment" : "fabric_metadata.skip_next = true"
Yi Tsengbe342052017-11-03 10:21:23 -07002170 }
Wailok Shumfb7e7872021-06-18 17:30:08 +08002171 },
2172 {
2173 "op" : "assign",
2174 "parameters" : [
2175 {
2176 "type" : "field",
2177 "value" : ["scalars", "userMetadata.port_type"]
2178 },
2179 {
2180 "type" : "hexstr",
2181 "value" : "0x00"
2182 }
2183 ],
2184 "source_info" : {
2185 "filename" : "include/control/../define.p4",
2186 "line" : 119,
2187 "column" : 38,
2188 "source_fragment" : "0x0; ..."
2189 }
Yi Tsengbe342052017-11-03 10:21:23 -07002190 }
2191 ]
2192 },
2193 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002194 "name" : "FabricIngress.filtering.permit",
Wailok Shumfb7e7872021-06-18 17:30:08 +08002195 "id" : 9,
2196 "runtime_data" : [
2197 {
2198 "name" : "port_type",
2199 "bitwidth" : 2
2200 }
2201 ],
2202 "primitives" : [
2203 {
2204 "op" : "assign",
2205 "parameters" : [
2206 {
2207 "type" : "field",
2208 "value" : ["scalars", "userMetadata.port_type"]
2209 },
2210 {
2211 "type" : "runtime_data",
2212 "value" : 0
2213 }
2214 ],
2215 "source_info" : {
2216 "filename" : "include/control/filtering.p4",
2217 "line" : 44,
2218 "column" : 8,
2219 "source_fragment" : "fabric_metadata.port_type = port_type"
2220 }
2221 }
2222 ]
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002223 },
2224 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002225 "name" : "FabricIngress.filtering.permit_with_internal_vlan",
Wailok Shumfb7e7872021-06-18 17:30:08 +08002226 "id" : 10,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002227 "runtime_data" : [
2228 {
2229 "name" : "vlan_id",
2230 "bitwidth" : 12
Wailok Shumfb7e7872021-06-18 17:30:08 +08002231 },
2232 {
2233 "name" : "port_type",
2234 "bitwidth" : 2
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002235 }
2236 ],
2237 "primitives" : [
2238 {
2239 "op" : "assign",
2240 "parameters" : [
2241 {
2242 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02002243 "value" : ["scalars", "userMetadata.vlan_id"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002244 },
2245 {
2246 "type" : "runtime_data",
2247 "value" : 0
2248 }
2249 ],
2250 "source_info" : {
2251 "filename" : "include/control/filtering.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08002252 "line" : 49,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002253 "column" : 8,
2254 "source_fragment" : "fabric_metadata.vlan_id = vlan_id"
2255 }
Wailok Shumfb7e7872021-06-18 17:30:08 +08002256 },
2257 {
2258 "op" : "assign",
2259 "parameters" : [
2260 {
2261 "type" : "field",
2262 "value" : ["scalars", "userMetadata.port_type"]
2263 },
2264 {
2265 "type" : "runtime_data",
2266 "value" : 1
2267 }
2268 ],
2269 "source_info" : {
2270 "filename" : "include/control/filtering.p4",
2271 "line" : 44,
2272 "column" : 8,
2273 "source_fragment" : "fabric_metadata.port_type = port_type; ..."
2274 }
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002275 }
2276 ]
2277 },
2278 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002279 "name" : "FabricIngress.filtering.set_forwarding_type",
Wailok Shumfb7e7872021-06-18 17:30:08 +08002280 "id" : 11,
Yi Tsengbe342052017-11-03 10:21:23 -07002281 "runtime_data" : [
2282 {
2283 "name" : "fwd_type",
2284 "bitwidth" : 3
2285 }
2286 ],
2287 "primitives" : [
2288 {
2289 "op" : "assign",
2290 "parameters" : [
2291 {
2292 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02002293 "value" : ["scalars", "userMetadata.fwd_type"]
Yi Tsengbe342052017-11-03 10:21:23 -07002294 },
2295 {
2296 "type" : "runtime_data",
2297 "value" : 0
2298 }
2299 ],
2300 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002301 "filename" : "include/control/filtering.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08002302 "line" : 90,
Yi Tsengbe342052017-11-03 10:21:23 -07002303 "column" : 8,
2304 "source_fragment" : "fabric_metadata.fwd_type = fwd_type"
2305 }
2306 }
2307 ]
2308 },
2309 {
Yi Tseng47eac892018-07-11 02:17:04 +08002310 "name" : "FabricIngress.forwarding.set_next_id_bridging",
Wailok Shumfb7e7872021-06-18 17:30:08 +08002311 "id" : 12,
Carmelo Casconef645e842018-07-16 18:31:52 +02002312 "runtime_data" : [
2313 {
2314 "name" : "next_id",
2315 "bitwidth" : 32
2316 }
2317 ],
2318 "primitives" : [
2319 {
2320 "op" : "assign",
2321 "parameters" : [
2322 {
2323 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02002324 "value" : ["scalars", "userMetadata.next_id"]
Carmelo Casconef645e842018-07-16 18:31:52 +02002325 },
2326 {
2327 "type" : "runtime_data",
2328 "value" : 0
2329 }
2330 ],
2331 "source_info" : {
2332 "filename" : "include/control/forwarding.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002333 "line" : 30,
Carmelo Casconef645e842018-07-16 18:31:52 +02002334 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002335 "source_fragment" : "fabric_metadata.next_id = next_id; ..."
Carmelo Casconef645e842018-07-16 18:31:52 +02002336 }
2337 }
2338 ]
2339 },
2340 {
2341 "name" : "FabricIngress.forwarding.pop_mpls_and_next",
Wailok Shumfb7e7872021-06-18 17:30:08 +08002342 "id" : 13,
Carmelo Casconef645e842018-07-16 18:31:52 +02002343 "runtime_data" : [
2344 {
2345 "name" : "next_id",
2346 "bitwidth" : 32
2347 }
2348 ],
2349 "primitives" : [
2350 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002351 "op" : "assign",
Carmelo Casconef645e842018-07-16 18:31:52 +02002352 "parameters" : [
2353 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002354 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02002355 "value" : ["scalars", "userMetadata.mpls_label"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002356 },
2357 {
2358 "type" : "hexstr",
2359 "value" : "0x000000"
Carmelo Casconef645e842018-07-16 18:31:52 +02002360 }
2361 ],
2362 "source_info" : {
2363 "filename" : "include/control/forwarding.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07002364 "line" : 66,
Carmelo Casconef645e842018-07-16 18:31:52 +02002365 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002366 "source_fragment" : "fabric_metadata.mpls_label = 0"
Carmelo Casconef645e842018-07-16 18:31:52 +02002367 }
2368 },
2369 {
2370 "op" : "assign",
2371 "parameters" : [
2372 {
2373 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02002374 "value" : ["scalars", "userMetadata.next_id"]
Carmelo Casconef645e842018-07-16 18:31:52 +02002375 },
2376 {
2377 "type" : "runtime_data",
2378 "value" : 0
2379 }
2380 ],
2381 "source_info" : {
2382 "filename" : "include/control/forwarding.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002383 "line" : 30,
Carmelo Casconef645e842018-07-16 18:31:52 +02002384 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002385 "source_fragment" : "fabric_metadata.next_id = next_id; ..."
Carmelo Casconef645e842018-07-16 18:31:52 +02002386 }
2387 }
2388 ]
2389 },
2390 {
Charles Chan384aea22018-08-23 22:08:02 -07002391 "name" : "FabricIngress.forwarding.set_next_id_routing_v4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08002392 "id" : 14,
Carmelo Casconef645e842018-07-16 18:31:52 +02002393 "runtime_data" : [
2394 {
2395 "name" : "next_id",
2396 "bitwidth" : 32
2397 }
2398 ],
2399 "primitives" : [
2400 {
2401 "op" : "assign",
2402 "parameters" : [
2403 {
2404 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02002405 "value" : ["scalars", "userMetadata.next_id"]
Carmelo Casconef645e842018-07-16 18:31:52 +02002406 },
2407 {
2408 "type" : "runtime_data",
2409 "value" : 0
2410 }
2411 ],
2412 "source_info" : {
2413 "filename" : "include/control/forwarding.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002414 "line" : 30,
Carmelo Casconef645e842018-07-16 18:31:52 +02002415 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002416 "source_fragment" : "fabric_metadata.next_id = next_id; ..."
Carmelo Casconef645e842018-07-16 18:31:52 +02002417 }
2418 }
2419 ]
2420 },
2421 {
Charles Chancd03f072018-08-31 17:46:37 -07002422 "name" : "FabricIngress.forwarding.nop_routing_v4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08002423 "id" : 15,
Charles Chancd03f072018-08-31 17:46:37 -07002424 "runtime_data" : [],
2425 "primitives" : []
2426 },
2427 {
Wailok Shumfb7e7872021-06-18 17:30:08 +08002428 "name" : "FabricIngress.pre_next.set_mpls_label",
2429 "id" : 16,
2430 "runtime_data" : [
2431 {
2432 "name" : "label",
2433 "bitwidth" : 20
2434 }
2435 ],
2436 "primitives" : [
2437 {
2438 "op" : "assign",
2439 "parameters" : [
2440 {
2441 "type" : "field",
2442 "value" : ["scalars", "userMetadata.mpls_label"]
2443 },
2444 {
2445 "type" : "runtime_data",
2446 "value" : 0
2447 }
2448 ],
2449 "source_info" : {
2450 "filename" : "include/control/pre_next.p4",
2451 "line" : 32,
2452 "column" : 8,
2453 "source_fragment" : "fabric_metadata.mpls_label = label"
2454 }
2455 }
2456 ]
2457 },
2458 {
2459 "name" : "FabricIngress.pre_next.set_vlan",
2460 "id" : 17,
2461 "runtime_data" : [
2462 {
2463 "name" : "vlan_id",
2464 "bitwidth" : 12
2465 }
2466 ],
2467 "primitives" : [
2468 {
2469 "op" : "assign",
2470 "parameters" : [
2471 {
2472 "type" : "field",
2473 "value" : ["scalars", "userMetadata.vlan_id"]
2474 },
2475 {
2476 "type" : "runtime_data",
2477 "value" : 0
2478 }
2479 ],
2480 "source_info" : {
2481 "filename" : "include/control/pre_next.p4",
2482 "line" : 57,
2483 "column" : 8,
2484 "source_fragment" : "fabric_metadata.vlan_id = vlan_id"
2485 }
2486 }
2487 ]
2488 },
2489 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002490 "name" : "FabricIngress.acl.set_next_id_acl",
Wailok Shumfb7e7872021-06-18 17:30:08 +08002491 "id" : 18,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002492 "runtime_data" : [
2493 {
2494 "name" : "next_id",
2495 "bitwidth" : 32
2496 }
2497 ],
2498 "primitives" : [
2499 {
Esin Karaman971fb7f2017-12-28 13:44:52 +00002500 "op" : "assign",
2501 "parameters" : [
2502 {
2503 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02002504 "value" : ["scalars", "userMetadata.next_id"]
Esin Karaman971fb7f2017-12-28 13:44:52 +00002505 },
2506 {
2507 "type" : "runtime_data",
2508 "value" : 0
2509 }
2510 ],
2511 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002512 "filename" : "include/control/acl.p4",
Wailok Shum4f51bde2021-06-11 22:48:41 +08002513 "line" : 39,
Yi Tseng47eac892018-07-11 02:17:04 +08002514 "column" : 8,
2515 "source_fragment" : "fabric_metadata.next_id = next_id"
2516 }
2517 }
2518 ]
2519 },
2520 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002521 "name" : "FabricIngress.acl.punt_to_cpu",
Wailok Shumfb7e7872021-06-18 17:30:08 +08002522 "id" : 19,
Yi Tsengbe342052017-11-03 10:21:23 -07002523 "runtime_data" : [],
2524 "primitives" : [
2525 {
2526 "op" : "assign",
2527 "parameters" : [
2528 {
2529 "type" : "field",
Yi Tsengbe342052017-11-03 10:21:23 -07002530 "value" : ["standard_metadata", "egress_spec"]
2531 },
2532 {
2533 "type" : "hexstr",
2534 "value" : "0x00ff"
2535 }
2536 ],
2537 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002538 "filename" : "include/control/acl.p4",
Wailok Shum4f51bde2021-06-11 22:48:41 +08002539 "line" : 45,
Carmelo Casconeb531b682018-01-30 17:55:56 -08002540 "column" : 8,
2541 "source_fragment" : "standard_metadata.egress_spec = 255"
Yi Tsengbe342052017-11-03 10:21:23 -07002542 }
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002543 },
2544 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002545 "op" : "assign",
2546 "parameters" : [
2547 {
2548 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02002549 "value" : ["scalars", "userMetadata.skip_next"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002550 },
2551 {
2552 "type" : "expression",
2553 "value" : {
2554 "type" : "expression",
2555 "value" : {
2556 "op" : "b2d",
2557 "left" : null,
2558 "right" : {
2559 "type" : "bool",
2560 "value" : true
2561 }
2562 }
2563 }
2564 }
2565 ],
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002566 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002567 "filename" : "include/control/acl.p4",
Wailok Shum4f51bde2021-06-11 22:48:41 +08002568 "line" : 46,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002569 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002570 "source_fragment" : "fabric_metadata.skip_next = true"
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002571 }
2572 }
2573 ]
2574 },
2575 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07002576 "name" : "FabricIngress.acl.set_clone_session_id",
Wailok Shumfb7e7872021-06-18 17:30:08 +08002577 "id" : 20,
Daniele Moro01ca2ab2019-06-25 11:48:48 -07002578 "runtime_data" : [
2579 {
2580 "name" : "clone_id",
2581 "bitwidth" : 32
2582 }
2583 ],
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002584 "primitives" : [
2585 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07002586 "op" : "clone_ingress_pkt_to_egress",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002587 "parameters" : [
2588 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07002589 "type" : "runtime_data",
2590 "value" : 0
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002591 },
2592 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07002593 "type" : "hexstr",
2594 "value" : "0x1"
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002595 }
2596 ],
2597 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002598 "filename" : "include/control/acl.p4",
Wailok Shum4f51bde2021-06-11 22:48:41 +08002599 "line" : 52,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002600 "column" : 8,
Daniele Moro3b7a21b2019-06-25 17:33:40 -07002601 "source_fragment" : "clone3(CloneType.I2E, clone_id, {standard_metadata.ingress_port})"
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002602 }
Yi Tsengbe342052017-11-03 10:21:23 -07002603 }
2604 ]
2605 },
2606 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002607 "name" : "FabricIngress.acl.drop",
Wailok Shumfb7e7872021-06-18 17:30:08 +08002608 "id" : 21,
Yi Tseng47eac892018-07-11 02:17:04 +08002609 "runtime_data" : [],
2610 "primitives" : [
2611 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07002612 "op" : "mark_to_drop",
2613 "parameters" : [
2614 {
2615 "type" : "header",
2616 "value" : "standard_metadata"
2617 }
2618 ],
Yi Tseng47eac892018-07-11 02:17:04 +08002619 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002620 "filename" : "include/control/acl.p4",
Wailok Shum4f51bde2021-06-11 22:48:41 +08002621 "line" : 57,
Yi Tseng47eac892018-07-11 02:17:04 +08002622 "column" : 8,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07002623 "source_fragment" : "mark_to_drop(standard_metadata)"
Yi Tseng47eac892018-07-11 02:17:04 +08002624 }
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002625 },
2626 {
2627 "op" : "assign",
2628 "parameters" : [
2629 {
2630 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02002631 "value" : ["scalars", "userMetadata.skip_next"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002632 },
2633 {
2634 "type" : "expression",
2635 "value" : {
2636 "type" : "expression",
2637 "value" : {
2638 "op" : "b2d",
2639 "left" : null,
2640 "right" : {
2641 "type" : "bool",
2642 "value" : true
2643 }
2644 }
2645 }
2646 }
2647 ],
2648 "source_info" : {
2649 "filename" : "include/control/acl.p4",
Wailok Shum4f51bde2021-06-11 22:48:41 +08002650 "line" : 58,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002651 "column" : 8,
2652 "source_fragment" : "fabric_metadata.skip_next = true"
2653 }
Yi Tseng47eac892018-07-11 02:17:04 +08002654 }
2655 ]
2656 },
2657 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002658 "name" : "FabricIngress.acl.nop_acl",
Wailok Shumfb7e7872021-06-18 17:30:08 +08002659 "id" : 22,
Charles Chancf696e52018-08-16 16:25:13 -07002660 "runtime_data" : [],
2661 "primitives" : []
2662 },
2663 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002664 "name" : "FabricIngress.next.output_xconnect",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002665 "id" : 23,
2666 "runtime_data" : [
2667 {
2668 "name" : "port_num",
2669 "bitwidth" : 9
2670 }
2671 ],
2672 "primitives" : [
2673 {
2674 "op" : "assign",
2675 "parameters" : [
2676 {
2677 "type" : "field",
2678 "value" : ["standard_metadata", "egress_spec"]
2679 },
2680 {
2681 "type" : "runtime_data",
2682 "value" : 0
2683 }
2684 ],
2685 "source_info" : {
2686 "filename" : "include/control/next.p4",
2687 "line" : 31,
2688 "column" : 5,
2689 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2690 }
2691 }
2692 ]
2693 },
2694 {
Wailok Shumfb7e7872021-06-18 17:30:08 +08002695 "name" : "FabricIngress.next.set_next_id_xconnect",
Charles Chancd03f072018-08-31 17:46:37 -07002696 "id" : 24,
Yi Tseng47eac892018-07-11 02:17:04 +08002697 "runtime_data" : [
2698 {
Wailok Shumfb7e7872021-06-18 17:30:08 +08002699 "name" : "next_id",
2700 "bitwidth" : 32
Yi Tseng47eac892018-07-11 02:17:04 +08002701 }
2702 ],
2703 "primitives" : [
2704 {
2705 "op" : "assign",
2706 "parameters" : [
2707 {
2708 "type" : "field",
Wailok Shumfb7e7872021-06-18 17:30:08 +08002709 "value" : ["scalars", "userMetadata.next_id"]
Yi Tseng47eac892018-07-11 02:17:04 +08002710 },
2711 {
2712 "type" : "runtime_data",
Wailok Shumfb7e7872021-06-18 17:30:08 +08002713 "value" : 0
Yi Tseng47eac892018-07-11 02:17:04 +08002714 }
2715 ],
2716 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002717 "filename" : "include/control/next.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08002718 "line" : 64,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002719 "column" : 8,
Wailok Shumfb7e7872021-06-18 17:30:08 +08002720 "source_fragment" : "fabric_metadata.next_id = next_id"
Yi Tseng47eac892018-07-11 02:17:04 +08002721 }
Wailok Shumfb7e7872021-06-18 17:30:08 +08002722 }
2723 ]
2724 },
2725 {
2726 "name" : "FabricIngress.next.output_hashed",
2727 "id" : 25,
2728 "runtime_data" : [
Yi Tseng47eac892018-07-11 02:17:04 +08002729 {
Wailok Shumfb7e7872021-06-18 17:30:08 +08002730 "name" : "port_num",
2731 "bitwidth" : 9
2732 }
2733 ],
2734 "primitives" : [
Yi Tseng47eac892018-07-11 02:17:04 +08002735 {
2736 "op" : "assign",
2737 "parameters" : [
2738 {
2739 "type" : "field",
2740 "value" : ["standard_metadata", "egress_spec"]
2741 },
2742 {
2743 "type" : "runtime_data",
2744 "value" : 0
2745 }
2746 ],
2747 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002748 "filename" : "include/control/next.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002749 "line" : 31,
2750 "column" : 5,
Yi Tseng47eac892018-07-11 02:17:04 +08002751 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002752 }
2753 }
2754 ]
2755 },
2756 {
Wailok Shumfb7e7872021-06-18 17:30:08 +08002757 "name" : "FabricIngress.next.routing_hashed",
2758 "id" : 26,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002759 "runtime_data" : [
2760 {
2761 "name" : "port_num",
2762 "bitwidth" : 9
2763 },
2764 {
2765 "name" : "smac",
2766 "bitwidth" : 48
2767 },
2768 {
2769 "name" : "dmac",
2770 "bitwidth" : 48
Yi Tsengbe342052017-11-03 10:21:23 -07002771 }
2772 ],
2773 "primitives" : [
2774 {
2775 "op" : "assign",
2776 "parameters" : [
2777 {
2778 "type" : "field",
2779 "value" : ["ethernet", "src_addr"]
2780 },
2781 {
2782 "type" : "runtime_data",
2783 "value" : 1
2784 }
2785 ],
2786 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002787 "filename" : "include/control/next.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002788 "line" : 36,
Yi Tsengbe342052017-11-03 10:21:23 -07002789 "column" : 8,
2790 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2791 }
2792 },
2793 {
2794 "op" : "assign",
2795 "parameters" : [
2796 {
2797 "type" : "field",
2798 "value" : ["ethernet", "dst_addr"]
2799 },
2800 {
2801 "type" : "runtime_data",
2802 "value" : 2
2803 }
2804 ],
2805 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002806 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002807 "line" : 41,
Yi Tsengbe342052017-11-03 10:21:23 -07002808 "column" : 8,
2809 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2810 }
2811 },
2812 {
2813 "op" : "assign",
2814 "parameters" : [
2815 {
2816 "type" : "field",
2817 "value" : ["standard_metadata", "egress_spec"]
2818 },
2819 {
2820 "type" : "runtime_data",
2821 "value" : 0
2822 }
2823 ],
2824 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002825 "filename" : "include/control/next.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002826 "line" : 31,
2827 "column" : 5,
Yi Tsengbe342052017-11-03 10:21:23 -07002828 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2829 }
Yi Tsengbe342052017-11-03 10:21:23 -07002830 }
2831 ]
2832 },
2833 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002834 "name" : "FabricIngress.next.set_mcast_group_id",
Wailok Shumfb7e7872021-06-18 17:30:08 +08002835 "id" : 27,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002836 "runtime_data" : [
2837 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002838 "name" : "group_id",
Esin Karaman971fb7f2017-12-28 13:44:52 +00002839 "bitwidth" : 16
2840 }
2841 ],
2842 "primitives" : [
2843 {
2844 "op" : "assign",
2845 "parameters" : [
2846 {
2847 "type" : "field",
2848 "value" : ["standard_metadata", "mcast_grp"]
2849 },
2850 {
2851 "type" : "runtime_data",
2852 "value" : 0
2853 }
2854 ],
2855 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002856 "filename" : "include/control/next.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08002857 "line" : 166,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002858 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002859 "source_fragment" : "standard_metadata.mcast_grp = group_id"
Esin Karaman971fb7f2017-12-28 13:44:52 +00002860 }
Carmelo Casconea5400af2018-07-17 22:11:54 +02002861 },
2862 {
2863 "op" : "assign",
2864 "parameters" : [
2865 {
2866 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02002867 "value" : ["scalars", "userMetadata.is_multicast"]
Carmelo Casconea5400af2018-07-17 22:11:54 +02002868 },
2869 {
2870 "type" : "expression",
2871 "value" : {
2872 "type" : "expression",
2873 "value" : {
2874 "op" : "b2d",
2875 "left" : null,
2876 "right" : {
2877 "type" : "bool",
2878 "value" : true
2879 }
2880 }
2881 }
2882 }
2883 ],
2884 "source_info" : {
2885 "filename" : "include/control/next.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08002886 "line" : 167,
Carmelo Casconea5400af2018-07-17 22:11:54 +02002887 "column" : 8,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002888 "source_fragment" : "fabric_metadata.is_multicast = true"
Carmelo Casconea5400af2018-07-17 22:11:54 +02002889 }
Esin Karaman971fb7f2017-12-28 13:44:52 +00002890 }
2891 ]
2892 },
2893 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02002894 "name" : "packetio25",
Wailok Shumfb7e7872021-06-18 17:30:08 +08002895 "id" : 28,
Yi Tsengbe342052017-11-03 10:21:23 -07002896 "runtime_data" : [],
2897 "primitives" : [
2898 {
2899 "op" : "assign",
2900 "parameters" : [
2901 {
2902 "type" : "field",
2903 "value" : ["standard_metadata", "egress_spec"]
2904 },
2905 {
2906 "type" : "field",
2907 "value" : ["packet_out", "egress_port"]
2908 }
2909 ],
2910 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002911 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002912 "line" : 25,
Yi Tsengbe342052017-11-03 10:21:23 -07002913 "column" : 12,
2914 "source_fragment" : "standard_metadata.egress_spec = hdr.packet_out.egress_port"
2915 }
Yi Tseng1d842672017-11-28 16:06:52 -08002916 },
2917 {
2918 "op" : "remove_header",
2919 "parameters" : [
2920 {
2921 "type" : "header",
2922 "value" : "packet_out"
2923 }
2924 ],
2925 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002926 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002927 "line" : 26,
Yi Tseng1d842672017-11-28 16:06:52 -08002928 "column" : 12,
2929 "source_fragment" : "hdr.packet_out.setInvalid()"
2930 }
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07002931 },
2932 {
2933 "op" : "assign",
2934 "parameters" : [
2935 {
2936 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02002937 "value" : ["scalars", "userMetadata.is_controller_packet_out"]
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07002938 },
2939 {
2940 "type" : "expression",
2941 "value" : {
2942 "type" : "expression",
2943 "value" : {
2944 "op" : "b2d",
2945 "left" : null,
2946 "right" : {
2947 "type" : "bool",
2948 "value" : true
2949 }
2950 }
2951 }
2952 }
2953 ],
2954 "source_info" : {
2955 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002956 "line" : 27,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07002957 "column" : 12,
2958 "source_fragment" : "fabric_metadata.is_controller_packet_out = true"
2959 }
Carmelo Cascone9b607da2019-05-08 14:03:01 -07002960 },
2961 {
2962 "op" : "exit",
2963 "parameters" : [],
2964 "source_info" : {
2965 "filename" : "include/control/packetio.p4",
2966 "line" : 29,
2967 "column" : 12,
2968 "source_fragment" : "exit"
2969 }
Yi Tsengbe342052017-11-03 10:21:23 -07002970 }
2971 ]
2972 },
2973 {
Wailok Shumfb7e7872021-06-18 17:30:08 +08002974 "name" : "filtering113",
2975 "id" : 29,
Yi Tsengbe342052017-11-03 10:21:23 -07002976 "runtime_data" : [],
2977 "primitives" : [
2978 {
2979 "op" : "assign",
2980 "parameters" : [
2981 {
2982 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02002983 "value" : ["scalars", "userMetadata.vlan_id"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002984 },
2985 {
2986 "type" : "field",
2987 "value" : ["vlan_tag", "vlan_id"]
2988 }
2989 ],
2990 "source_info" : {
2991 "filename" : "include/control/filtering.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08002992 "line" : 113,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002993 "column" : 12,
2994 "source_fragment" : "fabric_metadata.vlan_id = hdr.vlan_tag.vlan_id"
2995 }
2996 },
2997 {
2998 "op" : "assign",
2999 "parameters" : [
3000 {
3001 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02003002 "value" : ["scalars", "userMetadata.vlan_pri"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003003 },
3004 {
3005 "type" : "field",
3006 "value" : ["vlan_tag", "pri"]
3007 }
3008 ],
3009 "source_info" : {
3010 "filename" : "include/control/filtering.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08003011 "line" : 114,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003012 "column" : 12,
3013 "source_fragment" : "fabric_metadata.vlan_pri = hdr.vlan_tag.pri"
3014 }
3015 },
3016 {
3017 "op" : "assign",
3018 "parameters" : [
3019 {
3020 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02003021 "value" : ["scalars", "userMetadata.vlan_cfi"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003022 },
3023 {
3024 "type" : "field",
3025 "value" : ["vlan_tag", "cfi"]
3026 }
3027 ],
3028 "source_info" : {
3029 "filename" : "include/control/filtering.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08003030 "line" : 115,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003031 "column" : 12,
3032 "source_fragment" : "fabric_metadata.vlan_cfi = hdr.vlan_tag.cfi"
3033 }
Yi Tseng1d842672017-11-28 16:06:52 -08003034 }
3035 ]
3036 },
3037 {
Wailok Shumfb7e7872021-06-18 17:30:08 +08003038 "name" : "filtering129",
3039 "id" : 30,
Yi Tseng1d842672017-11-28 16:06:52 -08003040 "runtime_data" : [],
3041 "primitives" : [
3042 {
3043 "op" : "assign",
3044 "parameters" : [
3045 {
3046 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02003047 "value" : ["scalars", "userMetadata.mpls_ttl"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003048 },
3049 {
3050 "type" : "hexstr",
3051 "value" : "0x41"
3052 }
3053 ],
3054 "source_info" : {
3055 "filename" : "include/control/filtering.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08003056 "line" : 129,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003057 "column" : 12,
3058 "source_fragment" : "fabric_metadata.mpls_ttl = DEFAULT_MPLS_TTL + 1"
3059 }
3060 }
3061 ]
3062 },
3063 {
Wailok Shumfb7e7872021-06-18 17:30:08 +08003064 "name" : "acl102",
3065 "id" : 31,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003066 "runtime_data" : [],
3067 "primitives" : [
3068 {
3069 "op" : "assign",
3070 "parameters" : [
3071 {
3072 "type" : "field",
Wailok Shum4f51bde2021-06-11 22:48:41 +08003073 "value" : ["scalars", "acl_l4_sport"]
3074 },
3075 {
3076 "type" : "field",
3077 "value" : ["inner_tcp", "sport"]
3078 }
3079 ],
3080 "source_info" : {
3081 "filename" : "include/control/acl.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08003082 "line" : 102,
Wailok Shum4f51bde2021-06-11 22:48:41 +08003083 "column" : 16,
3084 "source_fragment" : "l4_sport = hdr.inner_tcp.sport"
3085 }
3086 },
3087 {
3088 "op" : "assign",
3089 "parameters" : [
3090 {
3091 "type" : "field",
3092 "value" : ["scalars", "acl_l4_dport"]
3093 },
3094 {
3095 "type" : "field",
3096 "value" : ["inner_tcp", "dport"]
3097 }
3098 ],
3099 "source_info" : {
3100 "filename" : "include/control/acl.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08003101 "line" : 103,
Wailok Shum4f51bde2021-06-11 22:48:41 +08003102 "column" : 16,
3103 "source_fragment" : "l4_dport = hdr.inner_tcp.dport"
3104 }
3105 }
3106 ]
3107 },
3108 {
Wailok Shumfb7e7872021-06-18 17:30:08 +08003109 "name" : "acl105",
3110 "id" : 32,
Wailok Shum4f51bde2021-06-11 22:48:41 +08003111 "runtime_data" : [],
3112 "primitives" : [
3113 {
3114 "op" : "assign",
3115 "parameters" : [
3116 {
3117 "type" : "field",
3118 "value" : ["scalars", "acl_l4_sport"]
3119 },
3120 {
3121 "type" : "field",
3122 "value" : ["inner_udp", "sport"]
3123 }
3124 ],
3125 "source_info" : {
3126 "filename" : "include/control/acl.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08003127 "line" : 105,
Wailok Shum4f51bde2021-06-11 22:48:41 +08003128 "column" : 16,
3129 "source_fragment" : "l4_sport = hdr.inner_udp.sport"
3130 }
3131 },
3132 {
3133 "op" : "assign",
3134 "parameters" : [
3135 {
3136 "type" : "field",
3137 "value" : ["scalars", "acl_l4_dport"]
3138 },
3139 {
3140 "type" : "field",
3141 "value" : ["inner_udp", "dport"]
3142 }
3143 ],
3144 "source_info" : {
3145 "filename" : "include/control/acl.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08003146 "line" : 106,
Wailok Shum4f51bde2021-06-11 22:48:41 +08003147 "column" : 16,
3148 "source_fragment" : "l4_dport = hdr.inner_udp.dport"
3149 }
3150 }
3151 ]
3152 },
3153 {
Wailok Shumfb7e7872021-06-18 17:30:08 +08003154 "name" : "acl98",
3155 "id" : 33,
Wailok Shum4f51bde2021-06-11 22:48:41 +08003156 "runtime_data" : [],
3157 "primitives" : [
3158 {
3159 "op" : "assign",
3160 "parameters" : [
3161 {
3162 "type" : "field",
3163 "value" : ["scalars", "acl_ipv4_src"]
3164 },
3165 {
3166 "type" : "field",
3167 "value" : ["inner_ipv4", "src_addr"]
3168 }
3169 ],
3170 "source_info" : {
3171 "filename" : "include/control/acl.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08003172 "line" : 98,
Wailok Shum4f51bde2021-06-11 22:48:41 +08003173 "column" : 12,
3174 "source_fragment" : "ipv4_src = hdr.inner_ipv4.src_addr"
3175 }
3176 },
3177 {
3178 "op" : "assign",
3179 "parameters" : [
3180 {
3181 "type" : "field",
3182 "value" : ["scalars", "acl_ipv4_dst"]
3183 },
3184 {
3185 "type" : "field",
3186 "value" : ["inner_ipv4", "dst_addr"]
3187 }
3188 ],
3189 "source_info" : {
3190 "filename" : "include/control/acl.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08003191 "line" : 99,
Wailok Shum4f51bde2021-06-11 22:48:41 +08003192 "column" : 12,
3193 "source_fragment" : "ipv4_dst = hdr.inner_ipv4.dst_addr"
3194 }
3195 },
3196 {
3197 "op" : "assign",
3198 "parameters" : [
3199 {
3200 "type" : "field",
3201 "value" : ["scalars", "acl_ip_proto"]
3202 },
3203 {
3204 "type" : "field",
3205 "value" : ["inner_ipv4", "protocol"]
3206 }
3207 ],
3208 "source_info" : {
3209 "filename" : "include/control/acl.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08003210 "line" : 100,
Wailok Shum4f51bde2021-06-11 22:48:41 +08003211 "column" : 12,
3212 "source_fragment" : "ip_proto = hdr.inner_ipv4.protocol"
3213 }
3214 }
3215 ]
3216 },
3217 {
Wailok Shumfb7e7872021-06-18 17:30:08 +08003218 "name" : "acl113",
3219 "id" : 34,
Wailok Shum4f51bde2021-06-11 22:48:41 +08003220 "runtime_data" : [],
3221 "primitives" : [
3222 {
3223 "op" : "assign",
3224 "parameters" : [
3225 {
3226 "type" : "field",
3227 "value" : ["scalars", "acl_l4_sport"]
3228 },
3229 {
3230 "type" : "field",
3231 "value" : ["tcp", "sport"]
3232 }
3233 ],
3234 "source_info" : {
3235 "filename" : "include/control/acl.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08003236 "line" : 113,
Wailok Shum4f51bde2021-06-11 22:48:41 +08003237 "column" : 16,
3238 "source_fragment" : "l4_sport = hdr.tcp.sport"
3239 }
3240 },
3241 {
3242 "op" : "assign",
3243 "parameters" : [
3244 {
3245 "type" : "field",
3246 "value" : ["scalars", "acl_l4_dport"]
3247 },
3248 {
3249 "type" : "field",
3250 "value" : ["tcp", "dport"]
3251 }
3252 ],
3253 "source_info" : {
3254 "filename" : "include/control/acl.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08003255 "line" : 114,
Wailok Shum4f51bde2021-06-11 22:48:41 +08003256 "column" : 16,
3257 "source_fragment" : "l4_dport = hdr.tcp.dport"
3258 }
3259 }
3260 ]
3261 },
3262 {
Wailok Shumfb7e7872021-06-18 17:30:08 +08003263 "name" : "acl116",
3264 "id" : 35,
Wailok Shum4f51bde2021-06-11 22:48:41 +08003265 "runtime_data" : [],
3266 "primitives" : [
3267 {
3268 "op" : "assign",
3269 "parameters" : [
3270 {
3271 "type" : "field",
3272 "value" : ["scalars", "acl_l4_sport"]
3273 },
3274 {
3275 "type" : "field",
3276 "value" : ["udp", "sport"]
3277 }
3278 ],
3279 "source_info" : {
3280 "filename" : "include/control/acl.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08003281 "line" : 116,
Wailok Shum4f51bde2021-06-11 22:48:41 +08003282 "column" : 16,
3283 "source_fragment" : "l4_sport = hdr.udp.sport"
3284 }
3285 },
3286 {
3287 "op" : "assign",
3288 "parameters" : [
3289 {
3290 "type" : "field",
3291 "value" : ["scalars", "acl_l4_dport"]
3292 },
3293 {
3294 "type" : "field",
3295 "value" : ["udp", "dport"]
3296 }
3297 ],
3298 "source_info" : {
3299 "filename" : "include/control/acl.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08003300 "line" : 117,
Wailok Shum4f51bde2021-06-11 22:48:41 +08003301 "column" : 16,
3302 "source_fragment" : "l4_dport = hdr.udp.dport"
3303 }
3304 }
3305 ]
3306 },
3307 {
Wailok Shumfb7e7872021-06-18 17:30:08 +08003308 "name" : "acl109",
3309 "id" : 36,
Wailok Shum4f51bde2021-06-11 22:48:41 +08003310 "runtime_data" : [],
3311 "primitives" : [
3312 {
3313 "op" : "assign",
3314 "parameters" : [
3315 {
3316 "type" : "field",
3317 "value" : ["scalars", "acl_ipv4_src"]
3318 },
3319 {
3320 "type" : "field",
3321 "value" : ["ipv4", "src_addr"]
3322 }
3323 ],
3324 "source_info" : {
3325 "filename" : "include/control/acl.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08003326 "line" : 109,
Wailok Shum4f51bde2021-06-11 22:48:41 +08003327 "column" : 12,
3328 "source_fragment" : "ipv4_src = hdr.ipv4.src_addr"
3329 }
3330 },
3331 {
3332 "op" : "assign",
3333 "parameters" : [
3334 {
3335 "type" : "field",
3336 "value" : ["scalars", "acl_ipv4_dst"]
3337 },
3338 {
3339 "type" : "field",
3340 "value" : ["ipv4", "dst_addr"]
3341 }
3342 ],
3343 "source_info" : {
3344 "filename" : "include/control/acl.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08003345 "line" : 110,
Wailok Shum4f51bde2021-06-11 22:48:41 +08003346 "column" : 12,
3347 "source_fragment" : "ipv4_dst = hdr.ipv4.dst_addr"
3348 }
3349 },
3350 {
3351 "op" : "assign",
3352 "parameters" : [
3353 {
3354 "type" : "field",
3355 "value" : ["scalars", "acl_ip_proto"]
3356 },
3357 {
3358 "type" : "field",
3359 "value" : ["ipv4", "protocol"]
3360 }
3361 ],
3362 "source_info" : {
3363 "filename" : "include/control/acl.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08003364 "line" : 111,
Wailok Shum4f51bde2021-06-11 22:48:41 +08003365 "column" : 12,
3366 "source_fragment" : "ip_proto = hdr.ipv4.protocol"
3367 }
3368 }
3369 ]
3370 },
3371 {
3372 "name" : "acl27",
Wailok Shumfb7e7872021-06-18 17:30:08 +08003373 "id" : 37,
Wailok Shum4f51bde2021-06-11 22:48:41 +08003374 "runtime_data" : [],
3375 "primitives" : [
3376 {
3377 "op" : "assign",
3378 "parameters" : [
3379 {
3380 "type" : "field",
3381 "value" : ["scalars", "acl_ipv4_src"]
3382 },
3383 {
3384 "type" : "hexstr",
3385 "value" : "0x00000000"
3386 }
3387 ],
3388 "source_info" : {
3389 "filename" : "include/control/acl.p4",
3390 "line" : 27,
3391 "column" : 4,
3392 "source_fragment" : "ipv4_addr_t ipv4_src = 0;"
3393 }
3394 },
3395 {
3396 "op" : "assign",
3397 "parameters" : [
3398 {
3399 "type" : "field",
3400 "value" : ["scalars", "acl_ipv4_dst"]
3401 },
3402 {
3403 "type" : "hexstr",
3404 "value" : "0x00000000"
3405 }
3406 ],
3407 "source_info" : {
3408 "filename" : "include/control/acl.p4",
3409 "line" : 28,
3410 "column" : 4,
3411 "source_fragment" : "ipv4_addr_t ipv4_dst = 0;"
3412 }
3413 },
3414 {
3415 "op" : "assign",
3416 "parameters" : [
3417 {
3418 "type" : "field",
3419 "value" : ["scalars", "acl_ip_proto"]
3420 },
3421 {
3422 "type" : "hexstr",
3423 "value" : "0x00"
3424 }
3425 ],
3426 "source_info" : {
3427 "filename" : "include/control/acl.p4",
3428 "line" : 29,
3429 "column" : 4,
3430 "source_fragment" : "bit<8> ip_proto = 0;"
3431 }
3432 },
3433 {
3434 "op" : "assign",
3435 "parameters" : [
3436 {
3437 "type" : "field",
3438 "value" : ["scalars", "acl_l4_sport"]
3439 },
3440 {
3441 "type" : "hexstr",
3442 "value" : "0x0000"
3443 }
3444 ],
3445 "source_info" : {
3446 "filename" : "include/control/acl.p4",
3447 "line" : 30,
3448 "column" : 4,
3449 "source_fragment" : "l4_port_t l4_sport = 0;"
3450 }
3451 },
3452 {
3453 "op" : "assign",
3454 "parameters" : [
3455 {
3456 "type" : "field",
3457 "value" : ["scalars", "acl_l4_dport"]
3458 },
3459 {
3460 "type" : "hexstr",
3461 "value" : "0x0000"
3462 }
3463 ],
3464 "source_info" : {
3465 "filename" : "include/control/acl.p4",
3466 "line" : 31,
3467 "column" : 4,
3468 "source_fragment" : "l4_port_t l4_dport = 0;"
3469 }
3470 }
3471 ]
3472 },
3473 {
3474 "name" : "port_counter31",
Wailok Shumfb7e7872021-06-18 17:30:08 +08003475 "id" : 38,
Wailok Shum4f51bde2021-06-11 22:48:41 +08003476 "runtime_data" : [],
3477 "primitives" : [
3478 {
3479 "op" : "assign",
3480 "parameters" : [
3481 {
3482 "type" : "field",
Carmelo Cascone2a308ff2021-06-01 18:31:57 -07003483 "value" : ["scalars", "tmp_8"]
Yi Tseng1d842672017-11-28 16:06:52 -08003484 },
3485 {
3486 "type" : "expression",
3487 "value" : {
3488 "type" : "expression",
3489 "value" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003490 "op" : "&",
3491 "left" : {
3492 "type" : "field",
3493 "value" : ["standard_metadata", "egress_spec"]
3494 },
Yi Tseng1d842672017-11-28 16:06:52 -08003495 "right" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003496 "type" : "hexstr",
3497 "value" : "0xffffffff"
Yi Tseng1d842672017-11-28 16:06:52 -08003498 }
3499 }
3500 }
3501 }
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003502 ],
3503 "source_info" : {
3504 "filename" : "include/control/port_counter.p4",
3505 "line" : 31,
3506 "column" : 38,
3507 "source_fragment" : "(bit<32>)standard_metadata.egress_spec"
3508 }
3509 },
Carmelo Casconea5400af2018-07-17 22:11:54 +02003510 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003511 "op" : "count",
Carmelo Casconea5400af2018-07-17 22:11:54 +02003512 "parameters" : [
3513 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003514 "type" : "counter_array",
3515 "value" : "FabricIngress.port_counters_control.egress_port_counter"
Carmelo Casconea5400af2018-07-17 22:11:54 +02003516 },
3517 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003518 "type" : "field",
Carmelo Cascone2a308ff2021-06-01 18:31:57 -07003519 "value" : ["scalars", "tmp_8"]
Carmelo Casconea5400af2018-07-17 22:11:54 +02003520 }
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003521 ],
3522 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003523 "filename" : "include/control/port_counter.p4",
3524 "line" : 31,
3525 "column" : 12,
3526 "source_fragment" : "egress_port_counter.count((bit<32>)standard_metadata.egress_spec)"
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003527 }
Carmelo Casconea5400af2018-07-17 22:11:54 +02003528 }
3529 ]
3530 },
3531 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02003532 "name" : "port_counter34",
Wailok Shumfb7e7872021-06-18 17:30:08 +08003533 "id" : 39,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003534 "runtime_data" : [],
3535 "primitives" : [
3536 {
3537 "op" : "assign",
3538 "parameters" : [
3539 {
3540 "type" : "field",
Carmelo Cascone2a308ff2021-06-01 18:31:57 -07003541 "value" : ["scalars", "tmp_9"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003542 },
3543 {
3544 "type" : "expression",
3545 "value" : {
3546 "type" : "expression",
3547 "value" : {
3548 "op" : "&",
3549 "left" : {
3550 "type" : "field",
3551 "value" : ["standard_metadata", "ingress_port"]
3552 },
3553 "right" : {
3554 "type" : "hexstr",
3555 "value" : "0xffffffff"
3556 }
3557 }
3558 }
3559 }
3560 ],
3561 "source_info" : {
3562 "filename" : "include/control/port_counter.p4",
3563 "line" : 34,
3564 "column" : 39,
3565 "source_fragment" : "(bit<32>)standard_metadata.ingress_port"
3566 }
3567 },
3568 {
3569 "op" : "count",
3570 "parameters" : [
3571 {
3572 "type" : "counter_array",
3573 "value" : "FabricIngress.port_counters_control.ingress_port_counter"
3574 },
3575 {
3576 "type" : "field",
Carmelo Cascone2a308ff2021-06-01 18:31:57 -07003577 "value" : ["scalars", "tmp_9"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003578 }
3579 ],
3580 "source_info" : {
3581 "filename" : "include/control/port_counter.p4",
3582 "line" : 34,
3583 "column" : 12,
3584 "source_fragment" : "ingress_port_counter.count((bit<32>)standard_metadata.ingress_port)"
3585 }
3586 }
3587 ]
3588 },
3589 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003590 "name" : "FabricEgress.egress_next.pop_mpls_if_present",
Wailok Shumfb7e7872021-06-18 17:30:08 +08003591 "id" : 40,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003592 "runtime_data" : [],
3593 "primitives" : [
3594 {
3595 "op" : "remove_header",
3596 "parameters" : [
3597 {
3598 "type" : "header",
3599 "value" : "mpls"
3600 }
3601 ],
3602 "source_info" : {
3603 "filename" : "include/control/next.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08003604 "line" : 204,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003605 "column" : 8,
3606 "source_fragment" : "hdr.mpls.setInvalid()"
3607 }
3608 },
3609 {
3610 "op" : "assign",
3611 "parameters" : [
3612 {
3613 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07003614 "value" : ["eth_type", "value"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003615 },
3616 {
3617 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02003618 "value" : ["scalars", "userMetadata.ip_eth_type"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003619 }
3620 ],
3621 "source_info" : {
3622 "filename" : "include/control/next.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08003623 "line" : 206,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003624 "column" : 8,
Daniele Moro5a2de712019-09-24 14:34:07 -07003625 "source_fragment" : "hdr.eth_type.value = fabric_metadata.ip_eth_type"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003626 }
3627 }
3628 ]
3629 },
3630 {
3631 "name" : "FabricEgress.egress_next.set_mpls",
Wailok Shumfb7e7872021-06-18 17:30:08 +08003632 "id" : 41,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003633 "runtime_data" : [],
3634 "primitives" : [
3635 {
3636 "op" : "add_header",
3637 "parameters" : [
3638 {
3639 "type" : "header",
3640 "value" : "mpls"
3641 }
3642 ],
3643 "source_info" : {
3644 "filename" : "include/control/next.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08003645 "line" : 211,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003646 "column" : 8,
3647 "source_fragment" : "hdr.mpls.setValid()"
3648 }
3649 },
3650 {
3651 "op" : "assign",
3652 "parameters" : [
3653 {
3654 "type" : "field",
3655 "value" : ["mpls", "label"]
3656 },
3657 {
3658 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02003659 "value" : ["scalars", "userMetadata.mpls_label"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003660 }
3661 ],
3662 "source_info" : {
3663 "filename" : "include/control/next.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08003664 "line" : 212,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003665 "column" : 8,
3666 "source_fragment" : "hdr.mpls.label = fabric_metadata.mpls_label"
3667 }
3668 },
3669 {
3670 "op" : "assign",
3671 "parameters" : [
3672 {
3673 "type" : "field",
3674 "value" : ["mpls", "tc"]
3675 },
3676 {
3677 "type" : "hexstr",
3678 "value" : "0x00"
3679 }
3680 ],
3681 "source_info" : {
3682 "filename" : "include/control/next.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08003683 "line" : 213,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003684 "column" : 8,
3685 "source_fragment" : "hdr.mpls.tc = 3w0"
3686 }
3687 },
3688 {
3689 "op" : "assign",
3690 "parameters" : [
3691 {
3692 "type" : "field",
3693 "value" : ["mpls", "bos"]
3694 },
3695 {
3696 "type" : "hexstr",
3697 "value" : "0x01"
3698 }
3699 ],
3700 "source_info" : {
3701 "filename" : "include/control/next.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08003702 "line" : 214,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003703 "column" : 8,
3704 "source_fragment" : "hdr.mpls.bos = 1w1"
3705 }
3706 },
3707 {
3708 "op" : "assign",
3709 "parameters" : [
3710 {
3711 "type" : "field",
3712 "value" : ["mpls", "ttl"]
3713 },
3714 {
3715 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02003716 "value" : ["scalars", "userMetadata.mpls_ttl"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003717 }
3718 ],
3719 "source_info" : {
3720 "filename" : "include/control/next.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08003721 "line" : 215,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003722 "column" : 8,
3723 "source_fragment" : "hdr.mpls.ttl = fabric_metadata.mpls_ttl"
3724 }
3725 },
3726 {
3727 "op" : "assign",
3728 "parameters" : [
3729 {
3730 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07003731 "value" : ["eth_type", "value"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003732 },
3733 {
3734 "type" : "hexstr",
3735 "value" : "0x8847"
3736 }
3737 ],
3738 "source_info" : {
3739 "filename" : "include/control/../define.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08003740 "line" : 130,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003741 "column" : 31,
3742 "source_fragment" : "0x8847; ..."
3743 }
3744 }
3745 ]
3746 },
3747 {
3748 "name" : "FabricEgress.egress_next.push_vlan",
Wailok Shumfb7e7872021-06-18 17:30:08 +08003749 "id" : 42,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003750 "runtime_data" : [],
3751 "primitives" : [
3752 {
3753 "op" : "add_header",
3754 "parameters" : [
3755 {
3756 "type" : "header",
3757 "value" : "vlan_tag"
3758 }
3759 ],
3760 "source_info" : {
3761 "filename" : "include/control/next.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08003762 "line" : 223,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003763 "column" : 8,
3764 "source_fragment" : "hdr.vlan_tag.setValid()"
3765 }
3766 },
3767 {
3768 "op" : "assign",
3769 "parameters" : [
3770 {
3771 "type" : "field",
3772 "value" : ["vlan_tag", "cfi"]
3773 },
3774 {
3775 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02003776 "value" : ["scalars", "userMetadata.vlan_cfi"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003777 }
3778 ],
3779 "source_info" : {
3780 "filename" : "include/control/next.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08003781 "line" : 224,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003782 "column" : 8,
3783 "source_fragment" : "hdr.vlan_tag.cfi = fabric_metadata.vlan_cfi"
3784 }
3785 },
3786 {
3787 "op" : "assign",
3788 "parameters" : [
3789 {
3790 "type" : "field",
3791 "value" : ["vlan_tag", "pri"]
3792 },
3793 {
3794 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02003795 "value" : ["scalars", "userMetadata.vlan_pri"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003796 }
3797 ],
3798 "source_info" : {
3799 "filename" : "include/control/next.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08003800 "line" : 225,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003801 "column" : 8,
3802 "source_fragment" : "hdr.vlan_tag.pri = fabric_metadata.vlan_pri"
3803 }
3804 },
3805 {
3806 "op" : "assign",
3807 "parameters" : [
3808 {
3809 "type" : "field",
3810 "value" : ["vlan_tag", "eth_type"]
3811 },
3812 {
Daniele Moro5a2de712019-09-24 14:34:07 -07003813 "type" : "hexstr",
3814 "value" : "0x8100"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003815 }
3816 ],
3817 "source_info" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07003818 "filename" : "include/control/../define.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08003819 "line" : 129,
Daniele Moro5a2de712019-09-24 14:34:07 -07003820 "column" : 31,
3821 "source_fragment" : "0x8100; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003822 }
3823 },
3824 {
3825 "op" : "assign",
3826 "parameters" : [
3827 {
3828 "type" : "field",
3829 "value" : ["vlan_tag", "vlan_id"]
3830 },
3831 {
3832 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02003833 "value" : ["scalars", "userMetadata.vlan_id"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003834 }
3835 ],
3836 "source_info" : {
3837 "filename" : "include/control/next.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08003838 "line" : 227,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003839 "column" : 8,
3840 "source_fragment" : "hdr.vlan_tag.vlan_id = fabric_metadata.vlan_id"
3841 }
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003842 }
3843 ]
3844 },
3845 {
3846 "name" : "FabricEgress.egress_next.pop_vlan",
Wailok Shumfb7e7872021-06-18 17:30:08 +08003847 "id" : 43,
Yi Tseng1d842672017-11-28 16:06:52 -08003848 "runtime_data" : [],
3849 "primitives" : [
3850 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003851 "op" : "remove_header",
3852 "parameters" : [
3853 {
3854 "type" : "header",
3855 "value" : "vlan_tag"
3856 }
3857 ],
3858 "source_info" : {
3859 "filename" : "include/control/next.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08003860 "line" : 256,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003861 "column" : 8,
3862 "source_fragment" : "hdr.vlan_tag.setInvalid()"
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003863 }
Carmelo Casconea5400af2018-07-17 22:11:54 +02003864 }
3865 ]
3866 },
3867 {
pierventre48e78822020-12-15 17:34:54 +01003868 "name" : "FabricEgress.egress_next.drop",
Wailok Shumfb7e7872021-06-18 17:30:08 +08003869 "id" : 44,
pierventre48e78822020-12-15 17:34:54 +01003870 "runtime_data" : [],
3871 "primitives" : [
3872 {
3873 "op" : "mark_to_drop",
3874 "parameters" : [
3875 {
3876 "type" : "header",
3877 "value" : "standard_metadata"
3878 }
3879 ],
3880 "source_info" : {
3881 "filename" : "include/control/next.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08003882 "line" : 261,
pierventre48e78822020-12-15 17:34:54 +01003883 "column" : 8,
3884 "source_fragment" : "mark_to_drop(standard_metadata)"
3885 }
3886 }
3887 ]
3888 },
3889 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02003890 "name" : "packetio41",
Wailok Shumfb7e7872021-06-18 17:30:08 +08003891 "id" : 45,
Carmelo Casconea5400af2018-07-17 22:11:54 +02003892 "runtime_data" : [],
3893 "primitives" : [
3894 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003895 "op" : "exit",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003896 "parameters" : [],
3897 "source_info" : {
3898 "filename" : "include/control/packetio.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003899 "line" : 41,
3900 "column" : 12,
3901 "source_fragment" : "exit"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003902 }
Carmelo Casconea5400af2018-07-17 22:11:54 +02003903 }
3904 ]
3905 },
3906 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02003907 "name" : "packetio44",
Wailok Shumfb7e7872021-06-18 17:30:08 +08003908 "id" : 46,
Carmelo Casconea5400af2018-07-17 22:11:54 +02003909 "runtime_data" : [],
3910 "primitives" : [
3911 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003912 "op" : "add_header",
3913 "parameters" : [
3914 {
3915 "type" : "header",
3916 "value" : "packet_in"
3917 }
3918 ],
3919 "source_info" : {
3920 "filename" : "include/control/packetio.p4",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07003921 "line" : 44,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003922 "column" : 12,
3923 "source_fragment" : "hdr.packet_in.setValid()"
3924 }
3925 },
3926 {
Carmelo Casconea5400af2018-07-17 22:11:54 +02003927 "op" : "assign",
3928 "parameters" : [
3929 {
3930 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003931 "value" : ["packet_in", "ingress_port"]
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003932 },
3933 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003934 "type" : "field",
3935 "value" : ["standard_metadata", "ingress_port"]
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003936 }
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003937 ],
3938 "source_info" : {
3939 "filename" : "include/control/packetio.p4",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07003940 "line" : 45,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003941 "column" : 12,
3942 "source_fragment" : "hdr.packet_in.ingress_port = standard_metadata.ingress_port"
3943 }
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003944 },
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003945 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003946 "op" : "exit",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003947 "parameters" : [],
3948 "source_info" : {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003949 "filename" : "include/control/packetio.p4",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07003950 "line" : 47,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003951 "column" : 12,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003952 "source_fragment" : "exit"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003953 }
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003954 }
3955 ]
3956 },
3957 {
Wailok Shumfb7e7872021-06-18 17:30:08 +08003958 "name" : "next283",
Wailok Shum4f51bde2021-06-11 22:48:41 +08003959 "id" : 47,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003960 "runtime_data" : [],
3961 "primitives" : [
3962 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003963 "op" : "mark_to_drop",
3964 "parameters" : [
3965 {
3966 "type" : "header",
3967 "value" : "standard_metadata"
3968 }
3969 ],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003970 "source_info" : {
3971 "filename" : "include/control/next.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08003972 "line" : 283,
3973 "column" : 12,
3974 "source_fragment" : "mark_to_drop(standard_metadata)"
3975 }
3976 }
3977 ]
3978 },
3979 {
3980 "name" : "next310",
3981 "id" : 48,
3982 "runtime_data" : [],
3983 "primitives" : [
3984 {
3985 "op" : "mark_to_drop",
3986 "parameters" : [
3987 {
3988 "type" : "header",
3989 "value" : "standard_metadata"
3990 }
3991 ],
3992 "source_info" : {
3993 "filename" : "include/control/next.p4",
3994 "line" : 310,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003995 "column" : 35,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003996 "source_fragment" : "mark_to_drop(standard_metadata)"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003997 }
Carmelo Casconea5400af2018-07-17 22:11:54 +02003998 }
3999 ]
4000 },
4001 {
Wailok Shumfb7e7872021-06-18 17:30:08 +08004002 "name" : "next309",
4003 "id" : 49,
Carmelo Casconea5400af2018-07-17 22:11:54 +02004004 "runtime_data" : [],
4005 "primitives" : [
4006 {
4007 "op" : "assign",
4008 "parameters" : [
4009 {
4010 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004011 "value" : ["mpls", "ttl"]
Carmelo Casconea5400af2018-07-17 22:11:54 +02004012 },
4013 {
4014 "type" : "expression",
4015 "value" : {
4016 "type" : "expression",
4017 "value" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004018 "op" : "&",
4019 "left" : {
4020 "type" : "expression",
4021 "value" : {
4022 "op" : "+",
4023 "left" : {
4024 "type" : "field",
4025 "value" : ["mpls", "ttl"]
4026 },
4027 "right" : {
4028 "type" : "hexstr",
4029 "value" : "0xff"
4030 }
4031 }
4032 },
Carmelo Casconea5400af2018-07-17 22:11:54 +02004033 "right" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004034 "type" : "hexstr",
4035 "value" : "0xff"
Carmelo Casconea5400af2018-07-17 22:11:54 +02004036 }
4037 }
4038 }
4039 }
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004040 ],
4041 "source_info" : {
4042 "filename" : "include/control/next.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08004043 "line" : 309,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004044 "column" : 12,
4045 "source_fragment" : "hdr.mpls.ttl = hdr.mpls.ttl - 1"
4046 }
Carmelo Casconea5400af2018-07-17 22:11:54 +02004047 }
4048 ]
4049 },
4050 {
Wailok Shumfb7e7872021-06-18 17:30:08 +08004051 "name" : "next314",
4052 "id" : 50,
Carmelo Casconea5400af2018-07-17 22:11:54 +02004053 "runtime_data" : [],
4054 "primitives" : [
4055 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004056 "op" : "mark_to_drop",
4057 "parameters" : [
4058 {
4059 "type" : "header",
4060 "value" : "standard_metadata"
4061 }
4062 ],
Carmelo Casconea5400af2018-07-17 22:11:54 +02004063 "source_info" : {
4064 "filename" : "include/control/next.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08004065 "line" : 314,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004066 "column" : 39,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004067 "source_fragment" : "mark_to_drop(standard_metadata)"
Carmelo Casconea5400af2018-07-17 22:11:54 +02004068 }
4069 }
4070 ]
4071 },
4072 {
Wailok Shumfb7e7872021-06-18 17:30:08 +08004073 "name" : "next313",
4074 "id" : 51,
Carmelo Casconea5400af2018-07-17 22:11:54 +02004075 "runtime_data" : [],
4076 "primitives" : [
4077 {
4078 "op" : "assign",
4079 "parameters" : [
4080 {
4081 "type" : "field",
Yi Tseng1d842672017-11-28 16:06:52 -08004082 "value" : ["ipv4", "ttl"]
4083 },
4084 {
4085 "type" : "expression",
4086 "value" : {
4087 "type" : "expression",
4088 "value" : {
4089 "op" : "&",
4090 "left" : {
4091 "type" : "expression",
4092 "value" : {
4093 "op" : "+",
4094 "left" : {
4095 "type" : "field",
4096 "value" : ["ipv4", "ttl"]
4097 },
4098 "right" : {
4099 "type" : "hexstr",
4100 "value" : "0xff"
4101 }
4102 }
4103 },
4104 "right" : {
4105 "type" : "hexstr",
4106 "value" : "0xff"
4107 }
4108 }
4109 }
4110 }
4111 ],
4112 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004113 "filename" : "include/control/next.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08004114 "line" : 313,
Carmelo Casconea5400af2018-07-17 22:11:54 +02004115 "column" : 16,
Yi Tseng1d842672017-11-28 16:06:52 -08004116 "source_fragment" : "hdr.ipv4.ttl = hdr.ipv4.ttl - 1"
4117 }
4118 }
4119 ]
Yi Tsengbe342052017-11-03 10:21:23 -07004120 }
4121 ],
4122 "pipelines" : [
4123 {
4124 "name" : "ingress",
4125 "id" : 0,
4126 "source_info" : {
4127 "filename" : "fabric.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08004128 "line" : 47,
Yi Tsengbe342052017-11-03 10:21:23 -07004129 "column" : 8,
4130 "source_fragment" : "FabricIngress"
4131 },
4132 "init_table" : "node_2",
4133 "tables" : [
4134 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004135 "name" : "tbl_packetio25",
Yi Tsengbe342052017-11-03 10:21:23 -07004136 "id" : 0,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004137 "source_info" : {
4138 "filename" : "include/control/packetio.p4",
4139 "line" : 25,
4140 "column" : 42,
4141 "source_fragment" : "= hdr.packet_out.egress_port; ..."
4142 },
Yi Tsengbe342052017-11-03 10:21:23 -07004143 "key" : [],
4144 "match_type" : "exact",
4145 "type" : "simple",
4146 "max_size" : 1024,
4147 "with_counters" : false,
4148 "support_timeout" : false,
4149 "direct_meters" : null,
Wailok Shumfb7e7872021-06-18 17:30:08 +08004150 "action_ids" : [28],
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004151 "actions" : ["packetio25"],
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004152 "base_default_next" : "node_4",
Yi Tsengbe342052017-11-03 10:21:23 -07004153 "next_tables" : {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004154 "packetio25" : "node_4"
Yi Tsengbe342052017-11-03 10:21:23 -07004155 },
4156 "default_entry" : {
Wailok Shumfb7e7872021-06-18 17:30:08 +08004157 "action_id" : 28,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004158 "action_const" : true,
4159 "action_data" : [],
4160 "action_entry_const" : true
4161 }
4162 },
4163 {
Wailok Shumfb7e7872021-06-18 17:30:08 +08004164 "name" : "tbl_filtering113",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004165 "id" : 1,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004166 "source_info" : {
4167 "filename" : "include/control/filtering.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08004168 "line" : 113,
Daniele Moro7c3a0022019-07-12 13:38:34 -07004169 "column" : 36,
4170 "source_fragment" : "= hdr.vlan_tag.vlan_id; ..."
Carmelo Cascone3032b872019-04-13 01:23:54 -07004171 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004172 "key" : [],
4173 "match_type" : "exact",
4174 "type" : "simple",
4175 "max_size" : 1024,
4176 "with_counters" : false,
4177 "support_timeout" : false,
4178 "direct_meters" : null,
Wailok Shumfb7e7872021-06-18 17:30:08 +08004179 "action_ids" : [29],
4180 "actions" : ["filtering113"],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004181 "base_default_next" : "node_6",
4182 "next_tables" : {
Wailok Shumfb7e7872021-06-18 17:30:08 +08004183 "filtering113" : "node_6"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004184 },
4185 "default_entry" : {
Wailok Shumfb7e7872021-06-18 17:30:08 +08004186 "action_id" : 29,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004187 "action_const" : true,
4188 "action_data" : [],
4189 "action_entry_const" : true
4190 }
4191 },
4192 {
Wailok Shumfb7e7872021-06-18 17:30:08 +08004193 "name" : "tbl_filtering129",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004194 "id" : 2,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004195 "source_info" : {
4196 "filename" : "include/control/filtering.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08004197 "line" : 129,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004198 "column" : 37,
4199 "source_fragment" : "="
4200 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004201 "key" : [],
4202 "match_type" : "exact",
4203 "type" : "simple",
4204 "max_size" : 1024,
4205 "with_counters" : false,
4206 "support_timeout" : false,
4207 "direct_meters" : null,
Wailok Shumfb7e7872021-06-18 17:30:08 +08004208 "action_ids" : [30],
4209 "actions" : ["filtering129"],
Daniele Moro5a2de712019-09-24 14:34:07 -07004210 "base_default_next" : "FabricIngress.filtering.ingress_port_vlan",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004211 "next_tables" : {
Wailok Shumfb7e7872021-06-18 17:30:08 +08004212 "filtering129" : "FabricIngress.filtering.ingress_port_vlan"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004213 },
4214 "default_entry" : {
Wailok Shumfb7e7872021-06-18 17:30:08 +08004215 "action_id" : 30,
Yi Tsengbe342052017-11-03 10:21:23 -07004216 "action_const" : true,
4217 "action_data" : [],
4218 "action_entry_const" : true
4219 }
4220 },
4221 {
Daniele Moro7c3a0022019-07-12 13:38:34 -07004222 "name" : "FabricIngress.filtering.ingress_port_vlan",
Daniele Moro5a2de712019-09-24 14:34:07 -07004223 "id" : 3,
Daniele Moro7c3a0022019-07-12 13:38:34 -07004224 "source_info" : {
4225 "filename" : "include/control/filtering.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08004226 "line" : 55,
Yi Tsengbe342052017-11-03 10:21:23 -07004227 "column" : 10,
4228 "source_fragment" : "ingress_port_vlan"
4229 },
4230 "key" : [
4231 {
4232 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004233 "name" : "ig_port",
Yi Tsengbe342052017-11-03 10:21:23 -07004234 "target" : ["standard_metadata", "ingress_port"],
4235 "mask" : null
4236 },
4237 {
4238 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004239 "name" : "vlan_is_valid",
Yi Tsengbe342052017-11-03 10:21:23 -07004240 "target" : ["vlan_tag", "$valid$"],
4241 "mask" : null
4242 },
4243 {
4244 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004245 "name" : "vlan_id",
Yi Tsengbe342052017-11-03 10:21:23 -07004246 "target" : ["vlan_tag", "vlan_id"],
4247 "mask" : null
4248 }
4249 ],
4250 "match_type" : "ternary",
4251 "type" : "simple",
4252 "max_size" : 1024,
Yi Tsengbd46d052018-01-22 17:18:16 -08004253 "with_counters" : true,
Yi Tsengbe342052017-11-03 10:21:23 -07004254 "support_timeout" : false,
4255 "direct_meters" : null,
Wailok Shumfb7e7872021-06-18 17:30:08 +08004256 "action_ids" : [8, 9, 10],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004257 "actions" : ["FabricIngress.filtering.deny", "FabricIngress.filtering.permit", "FabricIngress.filtering.permit_with_internal_vlan"],
4258 "base_default_next" : "FabricIngress.filtering.fwd_classifier",
Yi Tsengbe342052017-11-03 10:21:23 -07004259 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004260 "FabricIngress.filtering.deny" : "FabricIngress.filtering.fwd_classifier",
4261 "FabricIngress.filtering.permit" : "FabricIngress.filtering.fwd_classifier",
4262 "FabricIngress.filtering.permit_with_internal_vlan" : "FabricIngress.filtering.fwd_classifier"
Yi Tsengbe342052017-11-03 10:21:23 -07004263 },
4264 "default_entry" : {
Wailok Shumfb7e7872021-06-18 17:30:08 +08004265 "action_id" : 8,
Yi Tsengbe342052017-11-03 10:21:23 -07004266 "action_const" : true,
4267 "action_data" : [],
4268 "action_entry_const" : true
4269 }
4270 },
4271 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004272 "name" : "FabricIngress.filtering.fwd_classifier",
Daniele Moro5a2de712019-09-24 14:34:07 -07004273 "id" : 4,
Yi Tsengbe342052017-11-03 10:21:23 -07004274 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004275 "filename" : "include/control/filtering.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08004276 "line" : 94,
Yi Tsengbe342052017-11-03 10:21:23 -07004277 "column" : 10,
4278 "source_fragment" : "fwd_classifier"
4279 },
4280 "key" : [
4281 {
4282 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004283 "name" : "ig_port",
Yi Tsengbe342052017-11-03 10:21:23 -07004284 "target" : ["standard_metadata", "ingress_port"],
4285 "mask" : null
4286 },
4287 {
Charles Chan384aea22018-08-23 22:08:02 -07004288 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004289 "name" : "eth_dst",
Yi Tsengbe342052017-11-03 10:21:23 -07004290 "target" : ["ethernet", "dst_addr"],
4291 "mask" : null
4292 },
4293 {
Daniele Moro5a2de712019-09-24 14:34:07 -07004294 "match_type" : "ternary",
4295 "name" : "eth_type",
4296 "target" : ["eth_type", "value"],
Daniele Moro7c3a0022019-07-12 13:38:34 -07004297 "mask" : null
4298 },
4299 {
4300 "match_type" : "exact",
Daniele Moro5a2de712019-09-24 14:34:07 -07004301 "name" : "ip_eth_type",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004302 "target" : ["scalars", "userMetadata.ip_eth_type"],
Yi Tsengbe342052017-11-03 10:21:23 -07004303 "mask" : null
4304 }
4305 ],
Charles Chan384aea22018-08-23 22:08:02 -07004306 "match_type" : "ternary",
Yi Tsengbe342052017-11-03 10:21:23 -07004307 "type" : "simple",
4308 "max_size" : 1024,
Yi Tsengbd46d052018-01-22 17:18:16 -08004309 "with_counters" : true,
Yi Tsengbe342052017-11-03 10:21:23 -07004310 "support_timeout" : false,
4311 "direct_meters" : null,
Wailok Shumfb7e7872021-06-18 17:30:08 +08004312 "action_ids" : [11],
Yi Tseng27b9bc02018-04-12 14:52:40 +08004313 "actions" : ["FabricIngress.filtering.set_forwarding_type"],
Daniele Moro5a2de712019-09-24 14:34:07 -07004314 "base_default_next" : "node_10",
Yi Tsengbe342052017-11-03 10:21:23 -07004315 "next_tables" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07004316 "FabricIngress.filtering.set_forwarding_type" : "node_10"
Yi Tsengbe342052017-11-03 10:21:23 -07004317 },
4318 "default_entry" : {
Wailok Shumfb7e7872021-06-18 17:30:08 +08004319 "action_id" : 11,
Yi Tsengbe342052017-11-03 10:21:23 -07004320 "action_const" : true,
4321 "action_data" : ["0x0"],
4322 "action_entry_const" : true
4323 }
4324 },
4325 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004326 "name" : "FabricIngress.forwarding.bridging",
Daniele Moro5a2de712019-09-24 14:34:07 -07004327 "id" : 5,
Yi Tsengbe342052017-11-03 10:21:23 -07004328 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004329 "filename" : "include/control/forwarding.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07004330 "line" : 46,
Yi Tsengbe342052017-11-03 10:21:23 -07004331 "column" : 10,
4332 "source_fragment" : "bridging"
4333 },
4334 "key" : [
4335 {
4336 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004337 "name" : "vlan_id",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004338 "target" : ["scalars", "userMetadata.vlan_id"],
Yi Tsengbe342052017-11-03 10:21:23 -07004339 "mask" : null
4340 },
4341 {
4342 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004343 "name" : "eth_dst",
Yi Tsengbe342052017-11-03 10:21:23 -07004344 "target" : ["ethernet", "dst_addr"],
4345 "mask" : null
4346 }
4347 ],
4348 "match_type" : "ternary",
4349 "type" : "simple",
4350 "max_size" : 1024,
Yi Tsengbd46d052018-01-22 17:18:16 -08004351 "with_counters" : true,
Yi Tsengbe342052017-11-03 10:21:23 -07004352 "support_timeout" : false,
4353 "direct_meters" : null,
Wailok Shumfb7e7872021-06-18 17:30:08 +08004354 "action_ids" : [12, 0],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004355 "actions" : ["FabricIngress.forwarding.set_next_id_bridging", "nop"],
Wailok Shumfb7e7872021-06-18 17:30:08 +08004356 "base_default_next" : "node_17",
Yi Tseng1d842672017-11-28 16:06:52 -08004357 "next_tables" : {
Wailok Shumfb7e7872021-06-18 17:30:08 +08004358 "FabricIngress.forwarding.set_next_id_bridging" : "node_17",
4359 "nop" : "node_17"
Yi Tseng1d842672017-11-28 16:06:52 -08004360 },
4361 "default_entry" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004362 "action_id" : 0,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004363 "action_const" : true,
Yi Tseng1d842672017-11-28 16:06:52 -08004364 "action_data" : [],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004365 "action_entry_const" : true
Yi Tseng1d842672017-11-28 16:06:52 -08004366 }
4367 },
4368 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004369 "name" : "FabricIngress.forwarding.mpls",
Daniele Moro5a2de712019-09-24 14:34:07 -07004370 "id" : 6,
Yi Tseng1d842672017-11-28 16:06:52 -08004371 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004372 "filename" : "include/control/forwarding.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07004373 "line" : 71,
Yi Tseng1d842672017-11-28 16:06:52 -08004374 "column" : 10,
4375 "source_fragment" : "mpls"
4376 },
4377 "key" : [
4378 {
4379 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004380 "name" : "mpls_label",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004381 "target" : ["scalars", "userMetadata.mpls_label"],
Yi Tseng1d842672017-11-28 16:06:52 -08004382 "mask" : null
4383 }
4384 ],
4385 "match_type" : "exact",
4386 "type" : "simple",
4387 "max_size" : 1024,
Yi Tsengbd46d052018-01-22 17:18:16 -08004388 "with_counters" : true,
Yi Tseng1d842672017-11-28 16:06:52 -08004389 "support_timeout" : false,
4390 "direct_meters" : null,
Wailok Shumfb7e7872021-06-18 17:30:08 +08004391 "action_ids" : [13, 1],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004392 "actions" : ["FabricIngress.forwarding.pop_mpls_and_next", "nop"],
Wailok Shumfb7e7872021-06-18 17:30:08 +08004393 "base_default_next" : "node_17",
Yi Tseng1d842672017-11-28 16:06:52 -08004394 "next_tables" : {
Wailok Shumfb7e7872021-06-18 17:30:08 +08004395 "FabricIngress.forwarding.pop_mpls_and_next" : "node_17",
4396 "nop" : "node_17"
Yi Tseng1d842672017-11-28 16:06:52 -08004397 },
4398 "default_entry" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004399 "action_id" : 1,
Yi Tseng1d842672017-11-28 16:06:52 -08004400 "action_const" : true,
4401 "action_data" : [],
4402 "action_entry_const" : true
4403 }
4404 },
4405 {
Charles Chan384aea22018-08-23 22:08:02 -07004406 "name" : "FabricIngress.forwarding.routing_v4",
Daniele Moro5a2de712019-09-24 14:34:07 -07004407 "id" : 7,
Yi Tseng1d842672017-11-28 16:06:52 -08004408 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004409 "filename" : "include/control/forwarding.p4",
Daniele Moro5a2de712019-09-24 14:34:07 -07004410 "line" : 108,
Yi Tseng1d842672017-11-28 16:06:52 -08004411 "column" : 10,
Charles Chan384aea22018-08-23 22:08:02 -07004412 "source_fragment" : "routing_v4"
Yi Tseng1d842672017-11-28 16:06:52 -08004413 },
4414 "key" : [
4415 {
4416 "match_type" : "lpm",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004417 "name" : "ipv4_dst",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004418 "target" : ["scalars", "userMetadata.ipv4_dst_addr"],
Yi Tseng1d842672017-11-28 16:06:52 -08004419 "mask" : null
4420 }
4421 ],
4422 "match_type" : "lpm",
4423 "type" : "simple",
4424 "max_size" : 1024,
Daniele Moro5a2de712019-09-24 14:34:07 -07004425 "with_counters" : false,
Yi Tseng1d842672017-11-28 16:06:52 -08004426 "support_timeout" : false,
4427 "direct_meters" : null,
Wailok Shumfb7e7872021-06-18 17:30:08 +08004428 "action_ids" : [14, 15, 2],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004429 "actions" : ["FabricIngress.forwarding.set_next_id_routing_v4", "FabricIngress.forwarding.nop_routing_v4", "nop"],
Wailok Shumfb7e7872021-06-18 17:30:08 +08004430 "base_default_next" : "node_17",
Yi Tsengbe342052017-11-03 10:21:23 -07004431 "next_tables" : {
Wailok Shumfb7e7872021-06-18 17:30:08 +08004432 "FabricIngress.forwarding.set_next_id_routing_v4" : "node_17",
4433 "FabricIngress.forwarding.nop_routing_v4" : "node_17",
4434 "nop" : "node_17"
Yi Tsengbe342052017-11-03 10:21:23 -07004435 },
4436 "default_entry" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004437 "action_id" : 2,
CyberHasHe9ba39c2019-10-11 05:59:12 +08004438 "action_const" : false,
Yi Tsengbe342052017-11-03 10:21:23 -07004439 "action_data" : [],
CyberHasHe9ba39c2019-10-11 05:59:12 +08004440 "action_entry_const" : false
Yi Tsengbe342052017-11-03 10:21:23 -07004441 }
4442 },
4443 {
Wailok Shumfb7e7872021-06-18 17:30:08 +08004444 "name" : "FabricIngress.pre_next.next_mpls",
Daniele Moro5a2de712019-09-24 14:34:07 -07004445 "id" : 8,
Yi Tsengbe342052017-11-03 10:21:23 -07004446 "source_info" : {
Wailok Shumfb7e7872021-06-18 17:30:08 +08004447 "filename" : "include/control/pre_next.p4",
4448 "line" : 36,
4449 "column" : 10,
4450 "source_fragment" : "next_mpls"
4451 },
4452 "key" : [
4453 {
4454 "match_type" : "exact",
4455 "name" : "next_id",
4456 "target" : ["scalars", "userMetadata.next_id"],
4457 "mask" : null
4458 }
4459 ],
4460 "match_type" : "exact",
4461 "type" : "simple",
4462 "max_size" : 1024,
4463 "with_counters" : true,
4464 "support_timeout" : false,
4465 "direct_meters" : null,
4466 "action_ids" : [16, 3],
4467 "actions" : ["FabricIngress.pre_next.set_mpls_label", "nop"],
4468 "base_default_next" : "FabricIngress.pre_next.next_vlan",
4469 "next_tables" : {
4470 "FabricIngress.pre_next.set_mpls_label" : "FabricIngress.pre_next.next_vlan",
4471 "nop" : "FabricIngress.pre_next.next_vlan"
4472 },
4473 "default_entry" : {
4474 "action_id" : 3,
4475 "action_const" : true,
4476 "action_data" : [],
4477 "action_entry_const" : true
4478 }
4479 },
4480 {
4481 "name" : "FabricIngress.pre_next.next_vlan",
4482 "id" : 9,
4483 "source_info" : {
4484 "filename" : "include/control/pre_next.p4",
4485 "line" : 73,
4486 "column" : 10,
4487 "source_fragment" : "next_vlan"
4488 },
4489 "key" : [
4490 {
4491 "match_type" : "exact",
4492 "name" : "next_id",
4493 "target" : ["scalars", "userMetadata.next_id"],
4494 "mask" : null
4495 }
4496 ],
4497 "match_type" : "exact",
4498 "type" : "simple",
4499 "max_size" : 1024,
4500 "with_counters" : true,
4501 "support_timeout" : false,
4502 "direct_meters" : null,
4503 "action_ids" : [17, 4],
4504 "actions" : ["FabricIngress.pre_next.set_vlan", "nop"],
4505 "base_default_next" : "tbl_acl27",
4506 "next_tables" : {
4507 "FabricIngress.pre_next.set_vlan" : "tbl_acl27",
4508 "nop" : "tbl_acl27"
4509 },
4510 "default_entry" : {
4511 "action_id" : 4,
4512 "action_const" : true,
4513 "action_data" : [],
4514 "action_entry_const" : true
4515 }
4516 },
4517 {
4518 "name" : "tbl_acl27",
4519 "id" : 10,
4520 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004521 "filename" : "include/control/acl.p4",
Wailok Shum4f51bde2021-06-11 22:48:41 +08004522 "line" : 27,
4523 "column" : 4,
4524 "source_fragment" : "ipv4_addr_t ipv4_src = 0; ..."
4525 },
4526 "key" : [],
4527 "match_type" : "exact",
4528 "type" : "simple",
4529 "max_size" : 1024,
4530 "with_counters" : false,
4531 "support_timeout" : false,
4532 "direct_meters" : null,
Wailok Shumfb7e7872021-06-18 17:30:08 +08004533 "action_ids" : [37],
Wailok Shum4f51bde2021-06-11 22:48:41 +08004534 "actions" : ["acl27"],
Wailok Shumfb7e7872021-06-18 17:30:08 +08004535 "base_default_next" : "node_21",
Wailok Shum4f51bde2021-06-11 22:48:41 +08004536 "next_tables" : {
Wailok Shumfb7e7872021-06-18 17:30:08 +08004537 "acl27" : "node_21"
Wailok Shum4f51bde2021-06-11 22:48:41 +08004538 },
4539 "default_entry" : {
Wailok Shumfb7e7872021-06-18 17:30:08 +08004540 "action_id" : 37,
Wailok Shum4f51bde2021-06-11 22:48:41 +08004541 "action_const" : true,
4542 "action_data" : [],
4543 "action_entry_const" : true
4544 }
4545 },
4546 {
Wailok Shumfb7e7872021-06-18 17:30:08 +08004547 "name" : "tbl_acl98",
4548 "id" : 11,
Wailok Shum4f51bde2021-06-11 22:48:41 +08004549 "source_info" : {
4550 "filename" : "include/control/acl.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08004551 "line" : 98,
Wailok Shum4f51bde2021-06-11 22:48:41 +08004552 "column" : 21,
4553 "source_fragment" : "= hdr.inner_ipv4.src_addr; ..."
4554 },
4555 "key" : [],
4556 "match_type" : "exact",
4557 "type" : "simple",
4558 "max_size" : 1024,
4559 "with_counters" : false,
4560 "support_timeout" : false,
4561 "direct_meters" : null,
Wailok Shumfb7e7872021-06-18 17:30:08 +08004562 "action_ids" : [33],
4563 "actions" : ["acl98"],
4564 "base_default_next" : "node_23",
Wailok Shum4f51bde2021-06-11 22:48:41 +08004565 "next_tables" : {
Wailok Shumfb7e7872021-06-18 17:30:08 +08004566 "acl98" : "node_23"
Wailok Shum4f51bde2021-06-11 22:48:41 +08004567 },
4568 "default_entry" : {
Wailok Shumfb7e7872021-06-18 17:30:08 +08004569 "action_id" : 33,
Wailok Shum4f51bde2021-06-11 22:48:41 +08004570 "action_const" : true,
4571 "action_data" : [],
4572 "action_entry_const" : true
4573 }
4574 },
4575 {
Wailok Shumfb7e7872021-06-18 17:30:08 +08004576 "name" : "tbl_acl102",
4577 "id" : 12,
Wailok Shum4f51bde2021-06-11 22:48:41 +08004578 "source_info" : {
4579 "filename" : "include/control/acl.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08004580 "line" : 102,
Wailok Shum4f51bde2021-06-11 22:48:41 +08004581 "column" : 25,
4582 "source_fragment" : "= hdr.inner_tcp.sport; ..."
4583 },
4584 "key" : [],
4585 "match_type" : "exact",
4586 "type" : "simple",
4587 "max_size" : 1024,
4588 "with_counters" : false,
4589 "support_timeout" : false,
4590 "direct_meters" : null,
Wailok Shumfb7e7872021-06-18 17:30:08 +08004591 "action_ids" : [31],
4592 "actions" : ["acl102"],
Wailok Shum4f51bde2021-06-11 22:48:41 +08004593 "base_default_next" : "FabricIngress.acl.acl",
4594 "next_tables" : {
Wailok Shumfb7e7872021-06-18 17:30:08 +08004595 "acl102" : "FabricIngress.acl.acl"
Wailok Shum4f51bde2021-06-11 22:48:41 +08004596 },
4597 "default_entry" : {
Wailok Shumfb7e7872021-06-18 17:30:08 +08004598 "action_id" : 31,
Wailok Shum4f51bde2021-06-11 22:48:41 +08004599 "action_const" : true,
4600 "action_data" : [],
4601 "action_entry_const" : true
4602 }
4603 },
4604 {
Wailok Shumfb7e7872021-06-18 17:30:08 +08004605 "name" : "tbl_acl105",
4606 "id" : 13,
Wailok Shum4f51bde2021-06-11 22:48:41 +08004607 "source_info" : {
4608 "filename" : "include/control/acl.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08004609 "line" : 105,
Wailok Shum4f51bde2021-06-11 22:48:41 +08004610 "column" : 25,
4611 "source_fragment" : "= hdr.inner_udp.sport; ..."
4612 },
4613 "key" : [],
4614 "match_type" : "exact",
4615 "type" : "simple",
4616 "max_size" : 1024,
4617 "with_counters" : false,
4618 "support_timeout" : false,
4619 "direct_meters" : null,
Wailok Shumfb7e7872021-06-18 17:30:08 +08004620 "action_ids" : [32],
4621 "actions" : ["acl105"],
Wailok Shum4f51bde2021-06-11 22:48:41 +08004622 "base_default_next" : "FabricIngress.acl.acl",
4623 "next_tables" : {
Wailok Shumfb7e7872021-06-18 17:30:08 +08004624 "acl105" : "FabricIngress.acl.acl"
Wailok Shum4f51bde2021-06-11 22:48:41 +08004625 },
4626 "default_entry" : {
Wailok Shumfb7e7872021-06-18 17:30:08 +08004627 "action_id" : 32,
Wailok Shum4f51bde2021-06-11 22:48:41 +08004628 "action_const" : true,
4629 "action_data" : [],
4630 "action_entry_const" : true
4631 }
4632 },
4633 {
Wailok Shumfb7e7872021-06-18 17:30:08 +08004634 "name" : "tbl_acl109",
4635 "id" : 14,
Wailok Shum4f51bde2021-06-11 22:48:41 +08004636 "source_info" : {
4637 "filename" : "include/control/acl.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08004638 "line" : 109,
Wailok Shum4f51bde2021-06-11 22:48:41 +08004639 "column" : 21,
4640 "source_fragment" : "= hdr.ipv4.src_addr; ..."
4641 },
4642 "key" : [],
4643 "match_type" : "exact",
4644 "type" : "simple",
4645 "max_size" : 1024,
4646 "with_counters" : false,
4647 "support_timeout" : false,
4648 "direct_meters" : null,
Wailok Shumfb7e7872021-06-18 17:30:08 +08004649 "action_ids" : [36],
4650 "actions" : ["acl109"],
4651 "base_default_next" : "node_29",
Wailok Shum4f51bde2021-06-11 22:48:41 +08004652 "next_tables" : {
Wailok Shumfb7e7872021-06-18 17:30:08 +08004653 "acl109" : "node_29"
Wailok Shum4f51bde2021-06-11 22:48:41 +08004654 },
4655 "default_entry" : {
Wailok Shumfb7e7872021-06-18 17:30:08 +08004656 "action_id" : 36,
Wailok Shum4f51bde2021-06-11 22:48:41 +08004657 "action_const" : true,
4658 "action_data" : [],
4659 "action_entry_const" : true
4660 }
4661 },
4662 {
Wailok Shumfb7e7872021-06-18 17:30:08 +08004663 "name" : "tbl_acl113",
4664 "id" : 15,
Wailok Shum4f51bde2021-06-11 22:48:41 +08004665 "source_info" : {
4666 "filename" : "include/control/acl.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08004667 "line" : 113,
Wailok Shum4f51bde2021-06-11 22:48:41 +08004668 "column" : 25,
4669 "source_fragment" : "= hdr.tcp.sport; ..."
4670 },
4671 "key" : [],
4672 "match_type" : "exact",
4673 "type" : "simple",
4674 "max_size" : 1024,
4675 "with_counters" : false,
4676 "support_timeout" : false,
4677 "direct_meters" : null,
Wailok Shumfb7e7872021-06-18 17:30:08 +08004678 "action_ids" : [34],
4679 "actions" : ["acl113"],
Wailok Shum4f51bde2021-06-11 22:48:41 +08004680 "base_default_next" : "FabricIngress.acl.acl",
4681 "next_tables" : {
Wailok Shumfb7e7872021-06-18 17:30:08 +08004682 "acl113" : "FabricIngress.acl.acl"
Wailok Shum4f51bde2021-06-11 22:48:41 +08004683 },
4684 "default_entry" : {
Wailok Shumfb7e7872021-06-18 17:30:08 +08004685 "action_id" : 34,
Wailok Shum4f51bde2021-06-11 22:48:41 +08004686 "action_const" : true,
4687 "action_data" : [],
4688 "action_entry_const" : true
4689 }
4690 },
4691 {
Wailok Shumfb7e7872021-06-18 17:30:08 +08004692 "name" : "tbl_acl116",
4693 "id" : 16,
Wailok Shum4f51bde2021-06-11 22:48:41 +08004694 "source_info" : {
4695 "filename" : "include/control/acl.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08004696 "line" : 116,
Wailok Shum4f51bde2021-06-11 22:48:41 +08004697 "column" : 25,
4698 "source_fragment" : "= hdr.udp.sport; ..."
4699 },
4700 "key" : [],
4701 "match_type" : "exact",
4702 "type" : "simple",
4703 "max_size" : 1024,
4704 "with_counters" : false,
4705 "support_timeout" : false,
4706 "direct_meters" : null,
Wailok Shumfb7e7872021-06-18 17:30:08 +08004707 "action_ids" : [35],
4708 "actions" : ["acl116"],
Wailok Shum4f51bde2021-06-11 22:48:41 +08004709 "base_default_next" : "FabricIngress.acl.acl",
4710 "next_tables" : {
Wailok Shumfb7e7872021-06-18 17:30:08 +08004711 "acl116" : "FabricIngress.acl.acl"
Wailok Shum4f51bde2021-06-11 22:48:41 +08004712 },
4713 "default_entry" : {
Wailok Shumfb7e7872021-06-18 17:30:08 +08004714 "action_id" : 35,
Wailok Shum4f51bde2021-06-11 22:48:41 +08004715 "action_const" : true,
4716 "action_data" : [],
4717 "action_entry_const" : true
4718 }
4719 },
4720 {
4721 "name" : "FabricIngress.acl.acl",
Wailok Shumfb7e7872021-06-18 17:30:08 +08004722 "id" : 17,
Wailok Shum4f51bde2021-06-11 22:48:41 +08004723 "source_info" : {
4724 "filename" : "include/control/acl.p4",
4725 "line" : 66,
Yi Tsengbe342052017-11-03 10:21:23 -07004726 "column" : 10,
Yi Tsengbe342052017-11-03 10:21:23 -07004727 "source_fragment" : "acl"
4728 },
4729 "key" : [
4730 {
4731 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004732 "name" : "ig_port",
Yi Tsengbe342052017-11-03 10:21:23 -07004733 "target" : ["standard_metadata", "ingress_port"],
4734 "mask" : null
4735 },
4736 {
4737 "match_type" : "ternary",
Daniele Moro0cecfe12019-12-13 17:24:33 -08004738 "name" : "eth_dst",
Yi Tsengbe342052017-11-03 10:21:23 -07004739 "target" : ["ethernet", "dst_addr"],
4740 "mask" : null
4741 },
4742 {
4743 "match_type" : "ternary",
Daniele Moro0cecfe12019-12-13 17:24:33 -08004744 "name" : "eth_src",
Yi Tsengbe342052017-11-03 10:21:23 -07004745 "target" : ["ethernet", "src_addr"],
4746 "mask" : null
4747 },
4748 {
4749 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004750 "name" : "vlan_id",
Yi Tsengbe342052017-11-03 10:21:23 -07004751 "target" : ["vlan_tag", "vlan_id"],
4752 "mask" : null
4753 },
4754 {
4755 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004756 "name" : "eth_type",
Daniele Moro5a2de712019-09-24 14:34:07 -07004757 "target" : ["eth_type", "value"],
Yi Tseng8235a1a2018-07-24 20:57:28 +08004758 "mask" : null
4759 },
4760 {
4761 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004762 "name" : "ipv4_src",
Wailok Shum4f51bde2021-06-11 22:48:41 +08004763 "target" : ["scalars", "acl_ipv4_src"],
Yi Tsengbe342052017-11-03 10:21:23 -07004764 "mask" : null
4765 },
4766 {
4767 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004768 "name" : "ipv4_dst",
Wailok Shum4f51bde2021-06-11 22:48:41 +08004769 "target" : ["scalars", "acl_ipv4_dst"],
4770 "mask" : null
4771 },
4772 {
4773 "match_type" : "ternary",
4774 "name" : "ip_proto",
4775 "target" : ["scalars", "acl_ip_proto"],
Yi Tsengbe342052017-11-03 10:21:23 -07004776 "mask" : null
4777 },
4778 {
4779 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004780 "name" : "icmp_type",
Yi Tsengbe342052017-11-03 10:21:23 -07004781 "target" : ["icmp", "icmp_type"],
4782 "mask" : null
4783 },
4784 {
4785 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004786 "name" : "icmp_code",
Yi Tsengbe342052017-11-03 10:21:23 -07004787 "target" : ["icmp", "icmp_code"],
4788 "mask" : null
Wailok Shum4f51bde2021-06-11 22:48:41 +08004789 },
4790 {
4791 "match_type" : "ternary",
4792 "name" : "l4_sport",
4793 "target" : ["scalars", "acl_l4_sport"],
4794 "mask" : null
4795 },
4796 {
4797 "match_type" : "ternary",
4798 "name" : "l4_dport",
4799 "target" : ["scalars", "acl_l4_dport"],
4800 "mask" : null
Wailok Shumfb7e7872021-06-18 17:30:08 +08004801 },
4802 {
4803 "match_type" : "ternary",
4804 "name" : "port_type",
4805 "target" : ["scalars", "userMetadata.port_type"],
4806 "mask" : null
Yi Tsengbe342052017-11-03 10:21:23 -07004807 }
4808 ],
4809 "match_type" : "ternary",
4810 "type" : "simple",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07004811 "max_size" : 1024,
Yi Tsengbd46d052018-01-22 17:18:16 -08004812 "with_counters" : true,
Yi Tsengbe342052017-11-03 10:21:23 -07004813 "support_timeout" : false,
4814 "direct_meters" : null,
Wailok Shumfb7e7872021-06-18 17:30:08 +08004815 "action_ids" : [18, 19, 20, 21, 22],
Daniele Moro01ca2ab2019-06-25 11:48:48 -07004816 "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"],
Wailok Shumfb7e7872021-06-18 17:30:08 +08004817 "base_default_next" : "node_34",
Yi Tsengbe342052017-11-03 10:21:23 -07004818 "next_tables" : {
Wailok Shumfb7e7872021-06-18 17:30:08 +08004819 "FabricIngress.acl.set_next_id_acl" : "node_34",
4820 "FabricIngress.acl.punt_to_cpu" : "node_34",
4821 "FabricIngress.acl.set_clone_session_id" : "node_34",
4822 "FabricIngress.acl.drop" : "node_34",
4823 "FabricIngress.acl.nop_acl" : "node_34"
Yi Tsengbe342052017-11-03 10:21:23 -07004824 },
4825 "default_entry" : {
Wailok Shumfb7e7872021-06-18 17:30:08 +08004826 "action_id" : 22,
Yi Tsengbe342052017-11-03 10:21:23 -07004827 "action_const" : true,
4828 "action_data" : [],
4829 "action_entry_const" : true
4830 }
4831 },
4832 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004833 "name" : "FabricIngress.next.xconnect",
Wailok Shumfb7e7872021-06-18 17:30:08 +08004834 "id" : 18,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004835 "source_info" : {
4836 "filename" : "include/control/next.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08004837 "line" : 68,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004838 "column" : 10,
4839 "source_fragment" : "xconnect"
4840 },
4841 "key" : [
4842 {
4843 "match_type" : "exact",
4844 "name" : "ig_port",
4845 "target" : ["standard_metadata", "ingress_port"],
4846 "mask" : null
4847 },
4848 {
4849 "match_type" : "exact",
4850 "name" : "next_id",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004851 "target" : ["scalars", "userMetadata.next_id"],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004852 "mask" : null
4853 }
4854 ],
4855 "match_type" : "exact",
4856 "type" : "simple",
4857 "max_size" : 1024,
4858 "with_counters" : true,
4859 "support_timeout" : false,
4860 "direct_meters" : null,
Wailok Shumfb7e7872021-06-18 17:30:08 +08004861 "action_ids" : [23, 24, 5],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004862 "actions" : ["FabricIngress.next.output_xconnect", "FabricIngress.next.set_next_id_xconnect", "nop"],
4863 "base_default_next" : "FabricIngress.next.hashed",
4864 "next_tables" : {
4865 "FabricIngress.next.output_xconnect" : "FabricIngress.next.hashed",
4866 "FabricIngress.next.set_next_id_xconnect" : "FabricIngress.next.hashed",
4867 "nop" : "FabricIngress.next.hashed"
4868 },
4869 "default_entry" : {
Wailok Shumfb7e7872021-06-18 17:30:08 +08004870 "action_id" : 5,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004871 "action_const" : true,
4872 "action_data" : [],
4873 "action_entry_const" : true
4874 }
4875 },
4876 {
4877 "name" : "FabricIngress.next.hashed",
Wailok Shumfb7e7872021-06-18 17:30:08 +08004878 "id" : 19,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004879 "source_info" : {
4880 "filename" : "include/control/next.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08004881 "line" : 138,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004882 "column" : 10,
4883 "source_fragment" : "hashed"
4884 },
4885 "key" : [
4886 {
4887 "match_type" : "exact",
4888 "name" : "next_id",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004889 "target" : ["scalars", "userMetadata.next_id"],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004890 "mask" : null
4891 }
4892 ],
4893 "match_type" : "exact",
4894 "type" : "indirect_ws",
4895 "action_profile" : "FabricIngress.next.hashed_selector",
4896 "max_size" : 1024,
4897 "with_counters" : true,
4898 "support_timeout" : false,
4899 "direct_meters" : null,
Wailok Shumfb7e7872021-06-18 17:30:08 +08004900 "action_ids" : [25, 26, 6],
4901 "actions" : ["FabricIngress.next.output_hashed", "FabricIngress.next.routing_hashed", "nop"],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004902 "base_default_next" : "FabricIngress.next.multicast",
4903 "next_tables" : {
4904 "FabricIngress.next.output_hashed" : "FabricIngress.next.multicast",
4905 "FabricIngress.next.routing_hashed" : "FabricIngress.next.multicast",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004906 "nop" : "FabricIngress.next.multicast"
4907 }
4908 },
4909 {
4910 "name" : "FabricIngress.next.multicast",
Wailok Shumfb7e7872021-06-18 17:30:08 +08004911 "id" : 20,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004912 "source_info" : {
4913 "filename" : "include/control/next.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08004914 "line" : 171,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004915 "column" : 10,
4916 "source_fragment" : "multicast"
4917 },
4918 "key" : [
4919 {
4920 "match_type" : "exact",
4921 "name" : "next_id",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004922 "target" : ["scalars", "userMetadata.next_id"],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004923 "mask" : null
4924 }
4925 ],
4926 "match_type" : "exact",
4927 "type" : "simple",
4928 "max_size" : 1024,
4929 "with_counters" : true,
4930 "support_timeout" : false,
4931 "direct_meters" : null,
Wailok Shumfb7e7872021-06-18 17:30:08 +08004932 "action_ids" : [27, 7],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004933 "actions" : ["FabricIngress.next.set_mcast_group_id", "nop"],
Wailok Shumfb7e7872021-06-18 17:30:08 +08004934 "base_default_next" : "node_38",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004935 "next_tables" : {
Wailok Shumfb7e7872021-06-18 17:30:08 +08004936 "FabricIngress.next.set_mcast_group_id" : "node_38",
4937 "nop" : "node_38"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004938 },
4939 "default_entry" : {
Wailok Shumfb7e7872021-06-18 17:30:08 +08004940 "action_id" : 7,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004941 "action_const" : true,
4942 "action_data" : [],
4943 "action_entry_const" : true
4944 }
4945 },
4946 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004947 "name" : "tbl_port_counter31",
Wailok Shumfb7e7872021-06-18 17:30:08 +08004948 "id" : 21,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004949 "source_info" : {
4950 "filename" : "include/control/port_counter.p4",
4951 "line" : 31,
4952 "column" : 12,
4953 "source_fragment" : "egress_port_counter.count((bit<32>)standard_metadata.egress_spec)"
4954 },
Carmelo Casconea5400af2018-07-17 22:11:54 +02004955 "key" : [],
4956 "match_type" : "exact",
4957 "type" : "simple",
4958 "max_size" : 1024,
4959 "with_counters" : false,
4960 "support_timeout" : false,
4961 "direct_meters" : null,
Wailok Shumfb7e7872021-06-18 17:30:08 +08004962 "action_ids" : [38],
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004963 "actions" : ["port_counter31"],
Wailok Shumfb7e7872021-06-18 17:30:08 +08004964 "base_default_next" : "node_40",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004965 "next_tables" : {
Wailok Shumfb7e7872021-06-18 17:30:08 +08004966 "port_counter31" : "node_40"
Carmelo Casconea5400af2018-07-17 22:11:54 +02004967 },
4968 "default_entry" : {
Wailok Shumfb7e7872021-06-18 17:30:08 +08004969 "action_id" : 38,
Carmelo Casconea5400af2018-07-17 22:11:54 +02004970 "action_const" : true,
4971 "action_data" : [],
4972 "action_entry_const" : true
4973 }
4974 },
4975 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004976 "name" : "tbl_port_counter34",
Wailok Shumfb7e7872021-06-18 17:30:08 +08004977 "id" : 22,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004978 "source_info" : {
4979 "filename" : "include/control/port_counter.p4",
4980 "line" : 34,
4981 "column" : 12,
4982 "source_fragment" : "ingress_port_counter.count((bit<32>)standard_metadata.ingress_port)"
4983 },
Carmelo Casconea5400af2018-07-17 22:11:54 +02004984 "key" : [],
4985 "match_type" : "exact",
4986 "type" : "simple",
4987 "max_size" : 1024,
4988 "with_counters" : false,
4989 "support_timeout" : false,
4990 "direct_meters" : null,
Wailok Shumfb7e7872021-06-18 17:30:08 +08004991 "action_ids" : [39],
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004992 "actions" : ["port_counter34"],
Carmelo Casconea5400af2018-07-17 22:11:54 +02004993 "base_default_next" : null,
Esin Karaman971fb7f2017-12-28 13:44:52 +00004994 "next_tables" : {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004995 "port_counter34" : null
Yi Tseng27b9bc02018-04-12 14:52:40 +08004996 },
4997 "default_entry" : {
Wailok Shumfb7e7872021-06-18 17:30:08 +08004998 "action_id" : 39,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004999 "action_const" : true,
5000 "action_data" : [],
5001 "action_entry_const" : true
5002 }
Yi Tsengbe342052017-11-03 10:21:23 -07005003 }
5004 ],
5005 "action_profiles" : [
5006 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005007 "name" : "FabricIngress.next.hashed_selector",
Yi Tsengbe342052017-11-03 10:21:23 -07005008 "id" : 0,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07005009 "source_info" : {
5010 "filename" : "include/control/next.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08005011 "line" : 125,
Carmelo Cascone70e816b2019-03-19 16:15:47 -07005012 "column" : 57,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005013 "source_fragment" : "hashed_selector"
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07005014 },
Carmelo Cascone70e816b2019-03-19 16:15:47 -07005015 "max_size" : 1024,
Yi Tsengbe342052017-11-03 10:21:23 -07005016 "selector" : {
5017 "algo" : "crc16",
5018 "input" : [
5019 {
5020 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02005021 "value" : ["scalars", "userMetadata.ipv4_src_addr"]
Yi Tsengbe342052017-11-03 10:21:23 -07005022 },
5023 {
5024 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02005025 "value" : ["scalars", "userMetadata.ipv4_dst_addr"]
Yi Tsengbe342052017-11-03 10:21:23 -07005026 },
5027 {
5028 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02005029 "value" : ["scalars", "userMetadata.ip_proto"]
Yi Tsengbe342052017-11-03 10:21:23 -07005030 },
5031 {
5032 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02005033 "value" : ["scalars", "userMetadata.l4_sport"]
Yi Tsengbe342052017-11-03 10:21:23 -07005034 },
5035 {
5036 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02005037 "value" : ["scalars", "userMetadata.l4_dport"]
Yi Tsengbe342052017-11-03 10:21:23 -07005038 }
5039 ]
5040 }
5041 }
5042 ],
5043 "conditionals" : [
5044 {
5045 "name" : "node_2",
5046 "id" : 0,
5047 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005048 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005049 "line" : 24,
Yi Tsengbe342052017-11-03 10:21:23 -07005050 "column" : 12,
5051 "source_fragment" : "hdr.packet_out.isValid()"
5052 },
5053 "expression" : {
5054 "type" : "expression",
5055 "value" : {
Yi Tsengbd46d052018-01-22 17:18:16 -08005056 "op" : "d2b",
5057 "left" : null,
5058 "right" : {
Yi Tsengbe342052017-11-03 10:21:23 -07005059 "type" : "field",
5060 "value" : ["packet_out", "$valid$"]
Yi Tsengbe342052017-11-03 10:21:23 -07005061 }
5062 }
5063 },
Carmelo Cascone2388cc12021-05-26 19:30:30 +02005064 "true_next" : "tbl_packetio25",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005065 "false_next" : "node_4"
Yi Tsengbe342052017-11-03 10:21:23 -07005066 },
5067 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005068 "name" : "node_4",
Yi Tsengbe342052017-11-03 10:21:23 -07005069 "id" : 1,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005070 "source_info" : {
5071 "filename" : "include/control/filtering.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08005072 "line" : 112,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005073 "column" : 12,
5074 "source_fragment" : "hdr.vlan_tag.isValid()"
5075 },
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005076 "expression" : {
5077 "type" : "expression",
5078 "value" : {
5079 "op" : "d2b",
5080 "left" : null,
5081 "right" : {
5082 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005083 "value" : ["vlan_tag", "$valid$"]
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005084 }
5085 }
5086 },
Wailok Shumfb7e7872021-06-18 17:30:08 +08005087 "true_next" : "tbl_filtering113",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005088 "false_next" : "node_6"
5089 },
5090 {
5091 "name" : "node_6",
5092 "id" : 2,
5093 "source_info" : {
5094 "filename" : "include/control/filtering.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08005095 "line" : 124,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005096 "column" : 12,
5097 "source_fragment" : "!hdr.mpls.isValid()"
5098 },
5099 "expression" : {
5100 "type" : "expression",
5101 "value" : {
5102 "op" : "not",
5103 "left" : null,
5104 "right" : {
5105 "type" : "expression",
5106 "value" : {
5107 "op" : "d2b",
5108 "left" : null,
5109 "right" : {
5110 "type" : "field",
5111 "value" : ["mpls", "$valid$"]
5112 }
5113 }
5114 }
5115 }
5116 },
Wailok Shumfb7e7872021-06-18 17:30:08 +08005117 "true_next" : "tbl_filtering129",
Daniele Moro5a2de712019-09-24 14:34:07 -07005118 "false_next" : "FabricIngress.filtering.ingress_port_vlan"
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005119 },
5120 {
5121 "name" : "node_10",
Daniele Moro5a2de712019-09-24 14:34:07 -07005122 "id" : 3,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005123 "source_info" : {
5124 "filename" : "fabric.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08005125 "line" : 71,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005126 "column" : 12,
Carmelo Cascone2388cc12021-05-26 19:30:30 +02005127 "source_fragment" : "fabric_metadata.skip_forwarding"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005128 },
5129 "expression" : {
5130 "type" : "expression",
5131 "value" : {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02005132 "op" : "not",
5133 "left" : null,
5134 "right" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005135 "type" : "expression",
5136 "value" : {
5137 "op" : "d2b",
5138 "left" : null,
5139 "right" : {
5140 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02005141 "value" : ["scalars", "userMetadata.skip_forwarding"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005142 }
5143 }
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005144 }
5145 }
5146 },
Daniele Moro5a2de712019-09-24 14:34:07 -07005147 "true_next" : "node_11",
Wailok Shumfb7e7872021-06-18 17:30:08 +08005148 "false_next" : "node_17"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005149 },
5150 {
Daniele Moro5a2de712019-09-24 14:34:07 -07005151 "name" : "node_11",
5152 "id" : 4,
Yi Tsengbe342052017-11-03 10:21:23 -07005153 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005154 "filename" : "include/control/forwarding.p4",
Daniele Moro5a2de712019-09-24 14:34:07 -07005155 "line" : 150,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005156 "column" : 12,
Yi Tsengbe342052017-11-03 10:21:23 -07005157 "source_fragment" : "fabric_metadata.fwd_type == FWD_BRIDGING"
5158 },
5159 "expression" : {
5160 "type" : "expression",
5161 "value" : {
5162 "op" : "==",
5163 "left" : {
5164 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02005165 "value" : ["scalars", "userMetadata.fwd_type"]
Yi Tsengbe342052017-11-03 10:21:23 -07005166 },
5167 "right" : {
5168 "type" : "hexstr",
5169 "value" : "0x00"
5170 }
5171 }
5172 },
Yi Tseng27b9bc02018-04-12 14:52:40 +08005173 "true_next" : "FabricIngress.forwarding.bridging",
Daniele Moro5a2de712019-09-24 14:34:07 -07005174 "false_next" : "node_13"
Yi Tsengbe342052017-11-03 10:21:23 -07005175 },
5176 {
Daniele Moro5a2de712019-09-24 14:34:07 -07005177 "name" : "node_13",
5178 "id" : 5,
Yi Tsengbe342052017-11-03 10:21:23 -07005179 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005180 "filename" : "include/control/forwarding.p4",
Daniele Moro5a2de712019-09-24 14:34:07 -07005181 "line" : 151,
Yi Tsengbe342052017-11-03 10:21:23 -07005182 "column" : 17,
5183 "source_fragment" : "fabric_metadata.fwd_type == FWD_MPLS"
5184 },
5185 "expression" : {
5186 "type" : "expression",
5187 "value" : {
5188 "op" : "==",
5189 "left" : {
5190 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02005191 "value" : ["scalars", "userMetadata.fwd_type"]
Yi Tsengbe342052017-11-03 10:21:23 -07005192 },
5193 "right" : {
5194 "type" : "hexstr",
5195 "value" : "0x01"
5196 }
5197 }
5198 },
Yi Tseng27b9bc02018-04-12 14:52:40 +08005199 "true_next" : "FabricIngress.forwarding.mpls",
Daniele Moro5a2de712019-09-24 14:34:07 -07005200 "false_next" : "node_15"
Yi Tsengbe342052017-11-03 10:21:23 -07005201 },
5202 {
Daniele Moro5a2de712019-09-24 14:34:07 -07005203 "name" : "node_15",
5204 "id" : 6,
Yi Tsengbe342052017-11-03 10:21:23 -07005205 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005206 "filename" : "include/control/forwarding.p4",
Daniele Moro5a2de712019-09-24 14:34:07 -07005207 "line" : 152,
Yi Tsengbe342052017-11-03 10:21:23 -07005208 "column" : 17,
5209 "source_fragment" : "fabric_metadata.fwd_type == FWD_IPV4_UNICAST"
5210 },
5211 "expression" : {
5212 "type" : "expression",
5213 "value" : {
5214 "op" : "==",
5215 "left" : {
5216 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02005217 "value" : ["scalars", "userMetadata.fwd_type"]
Yi Tsengbe342052017-11-03 10:21:23 -07005218 },
5219 "right" : {
5220 "type" : "hexstr",
5221 "value" : "0x02"
5222 }
5223 }
5224 },
Charles Chan384aea22018-08-23 22:08:02 -07005225 "true_next" : "FabricIngress.forwarding.routing_v4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08005226 "false_next" : "node_17"
5227 },
5228 {
5229 "name" : "node_17",
5230 "id" : 7,
5231 "source_info" : {
5232 "filename" : "fabric.p4",
5233 "line" : 74,
5234 "column" : 12,
5235 "source_fragment" : "fabric_metadata.skip_next"
5236 },
5237 "expression" : {
5238 "type" : "expression",
5239 "value" : {
5240 "op" : "not",
5241 "left" : null,
5242 "right" : {
5243 "type" : "expression",
5244 "value" : {
5245 "op" : "d2b",
5246 "left" : null,
5247 "right" : {
5248 "type" : "field",
5249 "value" : ["scalars", "userMetadata.skip_next"]
5250 }
5251 }
5252 }
5253 }
5254 },
5255 "true_next" : "FabricIngress.pre_next.next_mpls",
Wailok Shum4f51bde2021-06-11 22:48:41 +08005256 "false_next" : "tbl_acl27"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005257 },
5258 {
Wailok Shumfb7e7872021-06-18 17:30:08 +08005259 "name" : "node_21",
5260 "id" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005261 "source_info" : {
Wailok Shum4f51bde2021-06-11 22:48:41 +08005262 "filename" : "include/control/acl.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08005263 "line" : 97,
Wailok Shum4f51bde2021-06-11 22:48:41 +08005264 "column" : 12,
5265 "source_fragment" : "hdr.gtpu.isValid() && hdr.inner_ipv4.isValid()"
5266 },
5267 "expression" : {
5268 "type" : "expression",
5269 "value" : {
5270 "op" : "and",
5271 "left" : {
5272 "type" : "expression",
5273 "value" : {
5274 "op" : "d2b",
5275 "left" : null,
5276 "right" : {
5277 "type" : "field",
5278 "value" : ["gtpu", "$valid$"]
5279 }
5280 }
5281 },
5282 "right" : {
5283 "type" : "expression",
5284 "value" : {
5285 "op" : "d2b",
5286 "left" : null,
5287 "right" : {
5288 "type" : "field",
5289 "value" : ["inner_ipv4", "$valid$"]
5290 }
5291 }
5292 }
5293 }
5294 },
Wailok Shumfb7e7872021-06-18 17:30:08 +08005295 "true_next" : "tbl_acl98",
5296 "false_next" : "node_27"
Wailok Shum4f51bde2021-06-11 22:48:41 +08005297 },
5298 {
Wailok Shumfb7e7872021-06-18 17:30:08 +08005299 "name" : "node_23",
5300 "id" : 9,
Wailok Shum4f51bde2021-06-11 22:48:41 +08005301 "source_info" : {
5302 "filename" : "include/control/acl.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08005303 "line" : 101,
Wailok Shum4f51bde2021-06-11 22:48:41 +08005304 "column" : 16,
5305 "source_fragment" : "hdr.inner_tcp.isValid()"
5306 },
5307 "expression" : {
5308 "type" : "expression",
5309 "value" : {
5310 "op" : "d2b",
5311 "left" : null,
5312 "right" : {
5313 "type" : "field",
5314 "value" : ["inner_tcp", "$valid$"]
5315 }
5316 }
5317 },
Wailok Shumfb7e7872021-06-18 17:30:08 +08005318 "true_next" : "tbl_acl102",
5319 "false_next" : "node_25"
Wailok Shum4f51bde2021-06-11 22:48:41 +08005320 },
5321 {
Wailok Shumfb7e7872021-06-18 17:30:08 +08005322 "name" : "node_25",
5323 "id" : 10,
Wailok Shum4f51bde2021-06-11 22:48:41 +08005324 "source_info" : {
5325 "filename" : "include/control/acl.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08005326 "line" : 104,
Wailok Shum4f51bde2021-06-11 22:48:41 +08005327 "column" : 23,
5328 "source_fragment" : "hdr.inner_udp.isValid()"
5329 },
5330 "expression" : {
5331 "type" : "expression",
5332 "value" : {
5333 "op" : "d2b",
5334 "left" : null,
5335 "right" : {
5336 "type" : "field",
5337 "value" : ["inner_udp", "$valid$"]
5338 }
5339 }
5340 },
Wailok Shumfb7e7872021-06-18 17:30:08 +08005341 "true_next" : "tbl_acl105",
Wailok Shum4f51bde2021-06-11 22:48:41 +08005342 "false_next" : "FabricIngress.acl.acl"
5343 },
5344 {
Wailok Shumfb7e7872021-06-18 17:30:08 +08005345 "name" : "node_27",
5346 "id" : 11,
Wailok Shum4f51bde2021-06-11 22:48:41 +08005347 "source_info" : {
5348 "filename" : "include/control/acl.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08005349 "line" : 108,
Wailok Shum4f51bde2021-06-11 22:48:41 +08005350 "column" : 19,
5351 "source_fragment" : "hdr.ipv4.isValid()"
5352 },
5353 "expression" : {
5354 "type" : "expression",
5355 "value" : {
5356 "op" : "d2b",
5357 "left" : null,
5358 "right" : {
5359 "type" : "field",
5360 "value" : ["ipv4", "$valid$"]
5361 }
5362 }
5363 },
Wailok Shumfb7e7872021-06-18 17:30:08 +08005364 "true_next" : "tbl_acl109",
Wailok Shum4f51bde2021-06-11 22:48:41 +08005365 "false_next" : "FabricIngress.acl.acl"
5366 },
5367 {
Wailok Shumfb7e7872021-06-18 17:30:08 +08005368 "name" : "node_29",
5369 "id" : 12,
Wailok Shum4f51bde2021-06-11 22:48:41 +08005370 "source_info" : {
5371 "filename" : "include/control/acl.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08005372 "line" : 112,
Wailok Shum4f51bde2021-06-11 22:48:41 +08005373 "column" : 16,
5374 "source_fragment" : "hdr.tcp.isValid()"
5375 },
5376 "expression" : {
5377 "type" : "expression",
5378 "value" : {
5379 "op" : "d2b",
5380 "left" : null,
5381 "right" : {
5382 "type" : "field",
5383 "value" : ["tcp", "$valid$"]
5384 }
5385 }
5386 },
Wailok Shumfb7e7872021-06-18 17:30:08 +08005387 "true_next" : "tbl_acl113",
5388 "false_next" : "node_31"
Wailok Shum4f51bde2021-06-11 22:48:41 +08005389 },
5390 {
Wailok Shumfb7e7872021-06-18 17:30:08 +08005391 "name" : "node_31",
5392 "id" : 13,
Wailok Shum4f51bde2021-06-11 22:48:41 +08005393 "source_info" : {
5394 "filename" : "include/control/acl.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08005395 "line" : 115,
Wailok Shum4f51bde2021-06-11 22:48:41 +08005396 "column" : 23,
5397 "source_fragment" : "hdr.udp.isValid()"
5398 },
5399 "expression" : {
5400 "type" : "expression",
5401 "value" : {
5402 "op" : "d2b",
5403 "left" : null,
5404 "right" : {
5405 "type" : "field",
5406 "value" : ["udp", "$valid$"]
5407 }
5408 }
5409 },
Wailok Shumfb7e7872021-06-18 17:30:08 +08005410 "true_next" : "tbl_acl116",
Wailok Shum4f51bde2021-06-11 22:48:41 +08005411 "false_next" : "FabricIngress.acl.acl"
5412 },
5413 {
Wailok Shumfb7e7872021-06-18 17:30:08 +08005414 "name" : "node_34",
5415 "id" : 14,
Wailok Shum4f51bde2021-06-11 22:48:41 +08005416 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005417 "filename" : "fabric.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08005418 "line" : 78,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005419 "column" : 12,
Carmelo Cascone2388cc12021-05-26 19:30:30 +02005420 "source_fragment" : "fabric_metadata.skip_next"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005421 },
5422 "expression" : {
5423 "type" : "expression",
5424 "value" : {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02005425 "op" : "not",
5426 "left" : null,
5427 "right" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005428 "type" : "expression",
5429 "value" : {
5430 "op" : "d2b",
5431 "left" : null,
5432 "right" : {
5433 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02005434 "value" : ["scalars", "userMetadata.skip_next"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005435 }
5436 }
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005437 }
5438 }
5439 },
5440 "false_next" : null,
5441 "true_next" : "FabricIngress.next.xconnect"
Yi Tseng27b9bc02018-04-12 14:52:40 +08005442 },
5443 {
Wailok Shumfb7e7872021-06-18 17:30:08 +08005444 "name" : "node_38",
5445 "id" : 15,
Yi Tseng27b9bc02018-04-12 14:52:40 +08005446 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005447 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005448 "line" : 30,
Yi Tsengbe342052017-11-03 10:21:23 -07005449 "column" : 12,
5450 "source_fragment" : "standard_metadata.egress_spec < 511"
5451 },
5452 "expression" : {
5453 "type" : "expression",
5454 "value" : {
5455 "op" : "<",
5456 "left" : {
5457 "type" : "field",
5458 "value" : ["standard_metadata", "egress_spec"]
5459 },
5460 "right" : {
5461 "type" : "hexstr",
5462 "value" : "0x01ff"
5463 }
5464 }
5465 },
Carmelo Cascone2388cc12021-05-26 19:30:30 +02005466 "true_next" : "tbl_port_counter31",
Wailok Shumfb7e7872021-06-18 17:30:08 +08005467 "false_next" : "node_40"
Yi Tsengbe342052017-11-03 10:21:23 -07005468 },
5469 {
Wailok Shumfb7e7872021-06-18 17:30:08 +08005470 "name" : "node_40",
5471 "id" : 16,
Yi Tsengbe342052017-11-03 10:21:23 -07005472 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005473 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005474 "line" : 33,
Yi Tsengbe342052017-11-03 10:21:23 -07005475 "column" : 12,
5476 "source_fragment" : "standard_metadata.ingress_port < 511"
5477 },
5478 "expression" : {
5479 "type" : "expression",
5480 "value" : {
5481 "op" : "<",
5482 "left" : {
5483 "type" : "field",
5484 "value" : ["standard_metadata", "ingress_port"]
5485 },
5486 "right" : {
5487 "type" : "hexstr",
5488 "value" : "0x01ff"
5489 }
5490 }
5491 },
Yi Tseng3a5731e2018-01-22 11:38:58 -08005492 "false_next" : null,
Carmelo Cascone2388cc12021-05-26 19:30:30 +02005493 "true_next" : "tbl_port_counter34"
Yi Tseng3a5731e2018-01-22 11:38:58 -08005494 }
5495 ]
5496 },
5497 {
5498 "name" : "egress",
5499 "id" : 1,
5500 "source_info" : {
5501 "filename" : "fabric.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08005502 "line" : 96,
Yi Tseng3a5731e2018-01-22 11:38:58 -08005503 "column" : 8,
5504 "source_fragment" : "FabricEgress"
5505 },
Wailok Shumfb7e7872021-06-18 17:30:08 +08005506 "init_table" : "node_44",
Yi Tseng3a5731e2018-01-22 11:38:58 -08005507 "tables" : [
5508 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02005509 "name" : "tbl_packetio41",
Wailok Shumfb7e7872021-06-18 17:30:08 +08005510 "id" : 23,
Carmelo Cascone3032b872019-04-13 01:23:54 -07005511 "source_info" : {
5512 "filename" : "include/control/packetio.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07005513 "line" : 41,
5514 "column" : 12,
5515 "source_fragment" : "exit"
Carmelo Cascone3032b872019-04-13 01:23:54 -07005516 },
Carmelo Casconea5400af2018-07-17 22:11:54 +02005517 "key" : [],
5518 "match_type" : "exact",
5519 "type" : "simple",
5520 "max_size" : 1024,
5521 "with_counters" : false,
5522 "support_timeout" : false,
5523 "direct_meters" : null,
Wailok Shumfb7e7872021-06-18 17:30:08 +08005524 "action_ids" : [45],
Carmelo Cascone2388cc12021-05-26 19:30:30 +02005525 "actions" : ["packetio41"],
Wailok Shumfb7e7872021-06-18 17:30:08 +08005526 "base_default_next" : "node_46",
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07005527 "next_tables" : {
Wailok Shumfb7e7872021-06-18 17:30:08 +08005528 "packetio41" : "node_46"
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07005529 },
5530 "default_entry" : {
Wailok Shumfb7e7872021-06-18 17:30:08 +08005531 "action_id" : 45,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07005532 "action_const" : true,
5533 "action_data" : [],
5534 "action_entry_const" : true
5535 }
5536 },
5537 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02005538 "name" : "tbl_packetio44",
Wailok Shumfb7e7872021-06-18 17:30:08 +08005539 "id" : 24,
Carmelo Cascone3032b872019-04-13 01:23:54 -07005540 "source_info" : {
5541 "filename" : "include/control/packetio.p4",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07005542 "line" : 44,
5543 "column" : 12,
5544 "source_fragment" : "hdr.packet_in.setValid(); ..."
Carmelo Cascone3032b872019-04-13 01:23:54 -07005545 },
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07005546 "key" : [],
5547 "match_type" : "exact",
5548 "type" : "simple",
5549 "max_size" : 1024,
5550 "with_counters" : false,
5551 "support_timeout" : false,
5552 "direct_meters" : null,
Wailok Shumfb7e7872021-06-18 17:30:08 +08005553 "action_ids" : [46],
Carmelo Cascone2388cc12021-05-26 19:30:30 +02005554 "actions" : ["packetio44"],
Wailok Shumfb7e7872021-06-18 17:30:08 +08005555 "base_default_next" : "node_48",
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07005556 "next_tables" : {
Wailok Shumfb7e7872021-06-18 17:30:08 +08005557 "packetio44" : "node_48"
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07005558 },
5559 "default_entry" : {
Wailok Shumfb7e7872021-06-18 17:30:08 +08005560 "action_id" : 46,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07005561 "action_const" : true,
5562 "action_data" : [],
5563 "action_entry_const" : true
5564 }
5565 },
5566 {
Wailok Shumfb7e7872021-06-18 17:30:08 +08005567 "name" : "tbl_next283",
5568 "id" : 25,
Carmelo Cascone3032b872019-04-13 01:23:54 -07005569 "source_info" : {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07005570 "filename" : "include/control/next.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08005571 "line" : 283,
Carmelo Cascone3032b872019-04-13 01:23:54 -07005572 "column" : 12,
Daniele Moro01ca2ab2019-06-25 11:48:48 -07005573 "source_fragment" : "mark_to_drop(standard_metadata)"
Carmelo Cascone3032b872019-04-13 01:23:54 -07005574 },
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07005575 "key" : [],
5576 "match_type" : "exact",
5577 "type" : "simple",
5578 "max_size" : 1024,
5579 "with_counters" : false,
5580 "support_timeout" : false,
5581 "direct_meters" : null,
Wailok Shumfb7e7872021-06-18 17:30:08 +08005582 "action_ids" : [47],
5583 "actions" : ["next283"],
5584 "base_default_next" : "node_50",
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07005585 "next_tables" : {
Wailok Shumfb7e7872021-06-18 17:30:08 +08005586 "next283" : "node_50"
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07005587 },
5588 "default_entry" : {
Wailok Shumfb7e7872021-06-18 17:30:08 +08005589 "action_id" : 47,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005590 "action_const" : true,
5591 "action_data" : [],
5592 "action_entry_const" : true
5593 }
5594 },
5595 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07005596 "name" : "tbl_egress_next_pop_mpls_if_present",
Wailok Shumfb7e7872021-06-18 17:30:08 +08005597 "id" : 26,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07005598 "source_info" : {
5599 "filename" : "include/control/next.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08005600 "line" : 287,
Carmelo Cascone3032b872019-04-13 01:23:54 -07005601 "column" : 36,
5602 "source_fragment" : "pop_mpls_if_present()"
5603 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005604 "key" : [],
5605 "match_type" : "exact",
5606 "type" : "simple",
5607 "max_size" : 1024,
5608 "with_counters" : false,
5609 "support_timeout" : false,
5610 "direct_meters" : null,
Wailok Shumfb7e7872021-06-18 17:30:08 +08005611 "action_ids" : [40],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005612 "actions" : ["FabricEgress.egress_next.pop_mpls_if_present"],
5613 "base_default_next" : "FabricEgress.egress_next.egress_vlan",
5614 "next_tables" : {
5615 "FabricEgress.egress_next.pop_mpls_if_present" : "FabricEgress.egress_next.egress_vlan"
5616 },
5617 "default_entry" : {
Wailok Shumfb7e7872021-06-18 17:30:08 +08005618 "action_id" : 40,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005619 "action_const" : true,
5620 "action_data" : [],
5621 "action_entry_const" : true
5622 }
5623 },
5624 {
5625 "name" : "tbl_egress_next_set_mpls",
Wailok Shumfb7e7872021-06-18 17:30:08 +08005626 "id" : 27,
Carmelo Cascone3032b872019-04-13 01:23:54 -07005627 "source_info" : {
5628 "filename" : "include/control/next.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08005629 "line" : 289,
Carmelo Cascone3032b872019-04-13 01:23:54 -07005630 "column" : 12,
5631 "source_fragment" : "set_mpls()"
5632 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005633 "key" : [],
5634 "match_type" : "exact",
5635 "type" : "simple",
5636 "max_size" : 1024,
5637 "with_counters" : false,
5638 "support_timeout" : false,
5639 "direct_meters" : null,
Wailok Shumfb7e7872021-06-18 17:30:08 +08005640 "action_ids" : [41],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005641 "actions" : ["FabricEgress.egress_next.set_mpls"],
5642 "base_default_next" : "FabricEgress.egress_next.egress_vlan",
5643 "next_tables" : {
5644 "FabricEgress.egress_next.set_mpls" : "FabricEgress.egress_next.egress_vlan"
5645 },
5646 "default_entry" : {
Wailok Shumfb7e7872021-06-18 17:30:08 +08005647 "action_id" : 41,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07005648 "action_const" : true,
5649 "action_data" : [],
5650 "action_entry_const" : true
5651 }
5652 },
5653 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005654 "name" : "FabricEgress.egress_next.egress_vlan",
Wailok Shumfb7e7872021-06-18 17:30:08 +08005655 "id" : 28,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005656 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005657 "filename" : "include/control/next.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08005658 "line" : 265,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005659 "column" : 10,
5660 "source_fragment" : "egress_vlan"
5661 },
5662 "key" : [
5663 {
5664 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005665 "name" : "vlan_id",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02005666 "target" : ["scalars", "userMetadata.vlan_id"],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005667 "mask" : null
5668 },
5669 {
5670 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005671 "name" : "eg_port",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005672 "target" : ["standard_metadata", "egress_port"],
5673 "mask" : null
5674 }
5675 ],
5676 "match_type" : "exact",
5677 "type" : "simple",
5678 "max_size" : 1024,
Yi Tseng47eac892018-07-11 02:17:04 +08005679 "with_counters" : true,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005680 "support_timeout" : false,
5681 "direct_meters" : null,
Wailok Shumfb7e7872021-06-18 17:30:08 +08005682 "action_ids" : [42, 43, 44],
pierventre48e78822020-12-15 17:34:54 +01005683 "actions" : ["FabricEgress.egress_next.push_vlan", "FabricEgress.egress_next.pop_vlan", "FabricEgress.egress_next.drop"],
Wailok Shumfb7e7872021-06-18 17:30:08 +08005684 "base_default_next" : "node_55",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005685 "next_tables" : {
Wailok Shumfb7e7872021-06-18 17:30:08 +08005686 "FabricEgress.egress_next.push_vlan" : "node_55",
5687 "FabricEgress.egress_next.pop_vlan" : "node_55",
5688 "FabricEgress.egress_next.drop" : "node_55"
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005689 },
5690 "default_entry" : {
Wailok Shumfb7e7872021-06-18 17:30:08 +08005691 "action_id" : 44,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005692 "action_const" : true,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005693 "action_data" : [],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005694 "action_entry_const" : true
5695 }
5696 },
5697 {
Wailok Shumfb7e7872021-06-18 17:30:08 +08005698 "name" : "tbl_next309",
5699 "id" : 29,
pierventre48e78822020-12-15 17:34:54 +01005700 "source_info" : {
5701 "filename" : "include/control/next.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08005702 "line" : 309,
pierventre48e78822020-12-15 17:34:54 +01005703 "column" : 25,
5704 "source_fragment" : "="
Daniele Moro01ca2ab2019-06-25 11:48:48 -07005705 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005706 "key" : [],
5707 "match_type" : "exact",
5708 "type" : "simple",
5709 "max_size" : 1024,
5710 "with_counters" : false,
5711 "support_timeout" : false,
5712 "direct_meters" : null,
Wailok Shumfb7e7872021-06-18 17:30:08 +08005713 "action_ids" : [49],
5714 "actions" : ["next309"],
5715 "base_default_next" : "node_57",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005716 "next_tables" : {
Wailok Shumfb7e7872021-06-18 17:30:08 +08005717 "next309" : "node_57"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005718 },
5719 "default_entry" : {
Wailok Shumfb7e7872021-06-18 17:30:08 +08005720 "action_id" : 49,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005721 "action_const" : true,
5722 "action_data" : [],
5723 "action_entry_const" : true
5724 }
5725 },
5726 {
Wailok Shumfb7e7872021-06-18 17:30:08 +08005727 "name" : "tbl_next310",
5728 "id" : 30,
Carmelo Cascone3032b872019-04-13 01:23:54 -07005729 "source_info" : {
5730 "filename" : "include/control/next.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08005731 "line" : 310,
pierventre48e78822020-12-15 17:34:54 +01005732 "column" : 35,
5733 "source_fragment" : "mark_to_drop(standard_metadata)"
Carmelo Cascone3032b872019-04-13 01:23:54 -07005734 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005735 "key" : [],
5736 "match_type" : "exact",
5737 "type" : "simple",
5738 "max_size" : 1024,
5739 "with_counters" : false,
5740 "support_timeout" : false,
5741 "direct_meters" : null,
Wailok Shumfb7e7872021-06-18 17:30:08 +08005742 "action_ids" : [48],
5743 "actions" : ["next310"],
pierventre48e78822020-12-15 17:34:54 +01005744 "base_default_next" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005745 "next_tables" : {
Wailok Shumfb7e7872021-06-18 17:30:08 +08005746 "next310" : null
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005747 },
5748 "default_entry" : {
Wailok Shumfb7e7872021-06-18 17:30:08 +08005749 "action_id" : 48,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005750 "action_const" : true,
5751 "action_data" : [],
5752 "action_entry_const" : true
5753 }
5754 },
5755 {
Wailok Shumfb7e7872021-06-18 17:30:08 +08005756 "name" : "tbl_next313",
5757 "id" : 31,
Carmelo Cascone3032b872019-04-13 01:23:54 -07005758 "source_info" : {
5759 "filename" : "include/control/next.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08005760 "line" : 313,
pierventre48e78822020-12-15 17:34:54 +01005761 "column" : 29,
Carmelo Cascone3032b872019-04-13 01:23:54 -07005762 "source_fragment" : "="
5763 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005764 "key" : [],
5765 "match_type" : "exact",
5766 "type" : "simple",
5767 "max_size" : 1024,
5768 "with_counters" : false,
5769 "support_timeout" : false,
5770 "direct_meters" : null,
Wailok Shumfb7e7872021-06-18 17:30:08 +08005771 "action_ids" : [51],
5772 "actions" : ["next313"],
5773 "base_default_next" : "node_61",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07005774 "next_tables" : {
Wailok Shumfb7e7872021-06-18 17:30:08 +08005775 "next313" : "node_61"
Carmelo Cascone9b607da2019-05-08 14:03:01 -07005776 },
5777 "default_entry" : {
Wailok Shumfb7e7872021-06-18 17:30:08 +08005778 "action_id" : 51,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07005779 "action_const" : true,
5780 "action_data" : [],
5781 "action_entry_const" : true
5782 }
5783 },
5784 {
Wailok Shumfb7e7872021-06-18 17:30:08 +08005785 "name" : "tbl_next314",
5786 "id" : 32,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07005787 "source_info" : {
5788 "filename" : "include/control/next.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08005789 "line" : 314,
pierventre48e78822020-12-15 17:34:54 +01005790 "column" : 39,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07005791 "source_fragment" : "mark_to_drop(standard_metadata)"
5792 },
5793 "key" : [],
5794 "match_type" : "exact",
5795 "type" : "simple",
5796 "max_size" : 1024,
5797 "with_counters" : false,
5798 "support_timeout" : false,
5799 "direct_meters" : null,
Wailok Shumfb7e7872021-06-18 17:30:08 +08005800 "action_ids" : [50],
5801 "actions" : ["next314"],
Carmelo Cascone9b607da2019-05-08 14:03:01 -07005802 "base_default_next" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005803 "next_tables" : {
Wailok Shumfb7e7872021-06-18 17:30:08 +08005804 "next314" : null
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005805 },
5806 "default_entry" : {
Wailok Shumfb7e7872021-06-18 17:30:08 +08005807 "action_id" : 50,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005808 "action_const" : true,
5809 "action_data" : [],
5810 "action_entry_const" : true
5811 }
Yi Tseng3a5731e2018-01-22 11:38:58 -08005812 }
5813 ],
5814 "action_profiles" : [],
5815 "conditionals" : [
Yi Tseng1d842672017-11-28 16:06:52 -08005816 {
Wailok Shumfb7e7872021-06-18 17:30:08 +08005817 "name" : "node_44",
5818 "id" : 17,
Carmelo Casconea5400af2018-07-17 22:11:54 +02005819 "source_info" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07005820 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005821 "line" : 39,
Carmelo Casconea5400af2018-07-17 22:11:54 +02005822 "column" : 12,
Carmelo Cascone2388cc12021-05-26 19:30:30 +02005823 "source_fragment" : "fabric_metadata.is_controller_packet_out"
Carmelo Casconea5400af2018-07-17 22:11:54 +02005824 },
5825 "expression" : {
5826 "type" : "expression",
5827 "value" : {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02005828 "op" : "d2b",
5829 "left" : null,
Carmelo Casconea5400af2018-07-17 22:11:54 +02005830 "right" : {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02005831 "type" : "field",
5832 "value" : ["scalars", "userMetadata.is_controller_packet_out"]
Carmelo Casconea5400af2018-07-17 22:11:54 +02005833 }
5834 }
5835 },
Carmelo Cascone2388cc12021-05-26 19:30:30 +02005836 "true_next" : "tbl_packetio41",
Wailok Shumfb7e7872021-06-18 17:30:08 +08005837 "false_next" : "node_46"
Carmelo Casconea5400af2018-07-17 22:11:54 +02005838 },
5839 {
Wailok Shumfb7e7872021-06-18 17:30:08 +08005840 "name" : "node_46",
5841 "id" : 18,
Yi Tsengbe342052017-11-03 10:21:23 -07005842 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005843 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005844 "line" : 43,
Yi Tsengbe342052017-11-03 10:21:23 -07005845 "column" : 12,
Carmelo Casconeb531b682018-01-30 17:55:56 -08005846 "source_fragment" : "standard_metadata.egress_port == 255"
Yi Tsengbe342052017-11-03 10:21:23 -07005847 },
5848 "expression" : {
5849 "type" : "expression",
5850 "value" : {
5851 "op" : "==",
5852 "left" : {
5853 "type" : "field",
5854 "value" : ["standard_metadata", "egress_port"]
5855 },
5856 "right" : {
5857 "type" : "hexstr",
5858 "value" : "0x00ff"
5859 }
5860 }
5861 },
Carmelo Cascone2388cc12021-05-26 19:30:30 +02005862 "true_next" : "tbl_packetio44",
Wailok Shumfb7e7872021-06-18 17:30:08 +08005863 "false_next" : "node_48"
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07005864 },
5865 {
Wailok Shumfb7e7872021-06-18 17:30:08 +08005866 "name" : "node_48",
5867 "id" : 19,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07005868 "source_info" : {
5869 "filename" : "include/control/next.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08005870 "line" : 281,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07005871 "column" : 12,
5872 "source_fragment" : "fabric_metadata.is_multicast == true ..."
5873 },
5874 "expression" : {
5875 "type" : "expression",
5876 "value" : {
5877 "op" : "and",
5878 "left" : {
5879 "type" : "expression",
5880 "value" : {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02005881 "op" : "d2b",
5882 "left" : null,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07005883 "right" : {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02005884 "type" : "field",
5885 "value" : ["scalars", "userMetadata.is_multicast"]
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07005886 }
5887 }
5888 },
5889 "right" : {
5890 "type" : "expression",
5891 "value" : {
5892 "op" : "==",
5893 "left" : {
5894 "type" : "field",
5895 "value" : ["standard_metadata", "ingress_port"]
5896 },
5897 "right" : {
5898 "type" : "field",
5899 "value" : ["standard_metadata", "egress_port"]
5900 }
5901 }
5902 }
5903 }
5904 },
Wailok Shumfb7e7872021-06-18 17:30:08 +08005905 "true_next" : "tbl_next283",
5906 "false_next" : "node_50"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005907 },
5908 {
Wailok Shumfb7e7872021-06-18 17:30:08 +08005909 "name" : "node_50",
5910 "id" : 20,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005911 "source_info" : {
5912 "filename" : "include/control/next.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08005913 "line" : 286,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005914 "column" : 12,
5915 "source_fragment" : "fabric_metadata.mpls_label == 0"
5916 },
5917 "expression" : {
5918 "type" : "expression",
5919 "value" : {
5920 "op" : "==",
5921 "left" : {
5922 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02005923 "value" : ["scalars", "userMetadata.mpls_label"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005924 },
5925 "right" : {
5926 "type" : "hexstr",
5927 "value" : "0x000000"
5928 }
5929 }
5930 },
Wailok Shumfb7e7872021-06-18 17:30:08 +08005931 "true_next" : "node_51",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005932 "false_next" : "tbl_egress_next_set_mpls"
5933 },
5934 {
Wailok Shumfb7e7872021-06-18 17:30:08 +08005935 "name" : "node_51",
5936 "id" : 21,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005937 "source_info" : {
5938 "filename" : "include/control/next.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08005939 "line" : 287,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005940 "column" : 16,
5941 "source_fragment" : "hdr.mpls.isValid()"
5942 },
5943 "expression" : {
5944 "type" : "expression",
5945 "value" : {
5946 "op" : "d2b",
5947 "left" : null,
5948 "right" : {
5949 "type" : "field",
5950 "value" : ["mpls", "$valid$"]
5951 }
5952 }
5953 },
5954 "true_next" : "tbl_egress_next_pop_mpls_if_present",
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07005955 "false_next" : "FabricEgress.egress_next.egress_vlan"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005956 },
5957 {
Wailok Shumfb7e7872021-06-18 17:30:08 +08005958 "name" : "node_55",
5959 "id" : 22,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005960 "source_info" : {
5961 "filename" : "include/control/next.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08005962 "line" : 308,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005963 "column" : 12,
5964 "source_fragment" : "hdr.mpls.isValid()"
5965 },
5966 "expression" : {
5967 "type" : "expression",
5968 "value" : {
5969 "op" : "d2b",
5970 "left" : null,
5971 "right" : {
5972 "type" : "field",
5973 "value" : ["mpls", "$valid$"]
5974 }
5975 }
5976 },
Wailok Shumfb7e7872021-06-18 17:30:08 +08005977 "true_next" : "tbl_next309",
5978 "false_next" : "node_59"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005979 },
5980 {
Wailok Shumfb7e7872021-06-18 17:30:08 +08005981 "name" : "node_57",
5982 "id" : 23,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005983 "source_info" : {
5984 "filename" : "include/control/next.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08005985 "line" : 310,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005986 "column" : 16,
5987 "source_fragment" : "hdr.mpls.ttl == 0"
5988 },
5989 "expression" : {
5990 "type" : "expression",
5991 "value" : {
5992 "op" : "==",
5993 "left" : {
5994 "type" : "field",
5995 "value" : ["mpls", "ttl"]
5996 },
5997 "right" : {
5998 "type" : "hexstr",
5999 "value" : "0x00"
6000 }
6001 }
6002 },
6003 "false_next" : null,
Wailok Shumfb7e7872021-06-18 17:30:08 +08006004 "true_next" : "tbl_next310"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006005 },
6006 {
Wailok Shumfb7e7872021-06-18 17:30:08 +08006007 "name" : "node_59",
6008 "id" : 24,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006009 "source_info" : {
6010 "filename" : "include/control/next.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08006011 "line" : 312,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006012 "column" : 15,
Charles Chan74ad51e2020-09-12 19:05:42 -07006013 "source_fragment" : "hdr.ipv4.isValid() && fabric_metadata.fwd_type != FWD_BRIDGING"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006014 },
6015 "expression" : {
6016 "type" : "expression",
6017 "value" : {
Charles Chan74ad51e2020-09-12 19:05:42 -07006018 "op" : "and",
6019 "left" : {
6020 "type" : "expression",
6021 "value" : {
6022 "op" : "d2b",
6023 "left" : null,
6024 "right" : {
6025 "type" : "field",
6026 "value" : ["ipv4", "$valid$"]
6027 }
6028 }
6029 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006030 "right" : {
Charles Chan74ad51e2020-09-12 19:05:42 -07006031 "type" : "expression",
6032 "value" : {
6033 "op" : "!=",
6034 "left" : {
6035 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02006036 "value" : ["scalars", "userMetadata.fwd_type"]
Charles Chan74ad51e2020-09-12 19:05:42 -07006037 },
6038 "right" : {
6039 "type" : "hexstr",
6040 "value" : "0x00"
6041 }
6042 }
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006043 }
6044 }
6045 },
6046 "false_next" : null,
Wailok Shumfb7e7872021-06-18 17:30:08 +08006047 "true_next" : "tbl_next313"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006048 },
6049 {
Wailok Shumfb7e7872021-06-18 17:30:08 +08006050 "name" : "node_61",
6051 "id" : 25,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006052 "source_info" : {
6053 "filename" : "include/control/next.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08006054 "line" : 314,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006055 "column" : 20,
6056 "source_fragment" : "hdr.ipv4.ttl == 0"
6057 },
6058 "expression" : {
6059 "type" : "expression",
6060 "value" : {
6061 "op" : "==",
6062 "left" : {
6063 "type" : "field",
6064 "value" : ["ipv4", "ttl"]
6065 },
6066 "right" : {
6067 "type" : "hexstr",
6068 "value" : "0x00"
6069 }
6070 }
6071 },
6072 "false_next" : null,
Wailok Shumfb7e7872021-06-18 17:30:08 +08006073 "true_next" : "tbl_next314"
Yi Tsengbe342052017-11-03 10:21:23 -07006074 }
6075 ]
6076 }
6077 ],
6078 "checksums" : [
6079 {
6080 "name" : "cksum",
6081 "id" : 0,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07006082 "source_info" : {
6083 "filename" : "include/checksum.p4",
6084 "line" : 28,
6085 "column" : 8,
6086 "source_fragment" : "update_checksum(hdr.ipv4.isValid(), ..."
6087 },
Yi Tsengbe342052017-11-03 10:21:23 -07006088 "target" : ["ipv4", "hdr_checksum"],
6089 "type" : "generic",
Yi Tsengbd46d052018-01-22 17:18:16 -08006090 "calculation" : "calc",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08006091 "verify" : false,
6092 "update" : true,
Yi Tsengbd46d052018-01-22 17:18:16 -08006093 "if_cond" : {
6094 "type" : "expression",
6095 "value" : {
6096 "op" : "d2b",
6097 "left" : null,
6098 "right" : {
6099 "type" : "field",
6100 "value" : ["ipv4", "$valid$"]
6101 }
6102 }
6103 }
Yi Tsengbe342052017-11-03 10:21:23 -07006104 },
6105 {
6106 "name" : "cksum_0",
6107 "id" : 1,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07006108 "source_info" : {
6109 "filename" : "include/checksum.p4",
6110 "line" : 57,
6111 "column" : 8,
6112 "source_fragment" : "verify_checksum(hdr.ipv4.isValid(), ..."
6113 },
Yi Tsengbe342052017-11-03 10:21:23 -07006114 "target" : ["ipv4", "hdr_checksum"],
6115 "type" : "generic",
Yi Tsengbd46d052018-01-22 17:18:16 -08006116 "calculation" : "calc_0",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08006117 "verify" : true,
6118 "update" : false,
Yi Tsengbd46d052018-01-22 17:18:16 -08006119 "if_cond" : {
6120 "type" : "expression",
6121 "value" : {
6122 "op" : "d2b",
6123 "left" : null,
6124 "right" : {
6125 "type" : "field",
6126 "value" : ["ipv4", "$valid$"]
6127 }
6128 }
6129 }
Yi Tsengbe342052017-11-03 10:21:23 -07006130 }
6131 ],
6132 "force_arith" : [],
6133 "extern_instances" : [],
6134 "field_aliases" : [
6135 [
6136 "queueing_metadata.enq_timestamp",
6137 ["standard_metadata", "enq_timestamp"]
6138 ],
6139 [
6140 "queueing_metadata.enq_qdepth",
6141 ["standard_metadata", "enq_qdepth"]
6142 ],
6143 [
6144 "queueing_metadata.deq_timedelta",
6145 ["standard_metadata", "deq_timedelta"]
6146 ],
6147 [
6148 "queueing_metadata.deq_qdepth",
6149 ["standard_metadata", "deq_qdepth"]
6150 ],
6151 [
6152 "intrinsic_metadata.ingress_global_timestamp",
6153 ["standard_metadata", "ingress_global_timestamp"]
6154 ],
6155 [
Yi Tseng27b9bc02018-04-12 14:52:40 +08006156 "intrinsic_metadata.egress_global_timestamp",
6157 ["standard_metadata", "egress_global_timestamp"]
6158 ],
6159 [
Yi Tsengbe342052017-11-03 10:21:23 -07006160 "intrinsic_metadata.mcast_grp",
6161 ["standard_metadata", "mcast_grp"]
6162 ],
6163 [
Yi Tsengbe342052017-11-03 10:21:23 -07006164 "intrinsic_metadata.egress_rid",
6165 ["standard_metadata", "egress_rid"]
Yi Tseng27b9bc02018-04-12 14:52:40 +08006166 ],
6167 [
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006168 "intrinsic_metadata.priority",
6169 ["standard_metadata", "priority"]
Yi Tsengbe342052017-11-03 10:21:23 -07006170 ]
Carmelo Cascone6af4e172018-06-15 16:01:30 +02006171 ],
6172 "program" : "fabric.p4",
6173 "__meta__" : {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02006174 "version" : [2, 23],
Carmelo Cascone6af4e172018-06-15 16:01:30 +02006175 "compiler" : "https://github.com/p4lang/p4c"
6176 }
Carmelo Cascone25243d62019-02-21 15:37:31 -08006177}