blob: 0b921cb36034396e8b00d2e83874cc5bf5d9a037 [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,
Daniele Moroae26f0a2021-07-08 12:53:26 +02001705 "next_state" : "parse_inner_tcp"
Wailok Shum4f51bde2021-06-11 22:48:41 +08001706 },
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,
Daniele Moroae26f0a2021-07-08 12:53:26 +02001717 "next_state" : "parse_inner_icmp"
Wailok Shum4f51bde2021-06-11 22:48:41 +08001718 },
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" : []
Daniele Moroae26f0a2021-07-08 12:53:26 +02001756 },
1757 {
1758 "name" : "parse_inner_tcp",
1759 "id" : 15,
1760 "parser_ops" : [
1761 {
1762 "parameters" : [
1763 {
1764 "type" : "regular",
1765 "value" : "inner_tcp"
1766 }
1767 ],
1768 "op" : "extract"
1769 }
1770 ],
1771 "transitions" : [
1772 {
1773 "type" : "default",
1774 "value" : null,
1775 "mask" : null,
1776 "next_state" : null
1777 }
1778 ],
1779 "transition_key" : []
1780 },
1781 {
1782 "name" : "parse_inner_icmp",
1783 "id" : 16,
1784 "parser_ops" : [
1785 {
1786 "parameters" : [
1787 {
1788 "type" : "regular",
1789 "value" : "inner_icmp"
1790 }
1791 ],
1792 "op" : "extract"
1793 }
1794 ],
1795 "transitions" : [
1796 {
1797 "type" : "default",
1798 "value" : null,
1799 "mask" : null,
1800 "next_state" : null
1801 }
1802 ],
1803 "transition_key" : []
Yi Tsengbe342052017-11-03 10:21:23 -07001804 }
1805 ]
1806 }
1807 ],
Yi Tseng27b9bc02018-04-12 14:52:40 +08001808 "parse_vsets" : [],
Yi Tsengbe342052017-11-03 10:21:23 -07001809 "deparsers" : [
1810 {
1811 "name" : "deparser",
1812 "id" : 0,
1813 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001814 "filename" : "include/parser.p4",
Carmelo Cascone2a308ff2021-06-01 18:31:57 -07001815 "line" : 285,
Yi Tsengbe342052017-11-03 10:21:23 -07001816 "column" : 8,
1817 "source_fragment" : "FabricDeparser"
1818 },
Wailok Shum4f51bde2021-06-11 22:48:41 +08001819 "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 +02001820 "primitives" : []
Yi Tsengbe342052017-11-03 10:21:23 -07001821 }
1822 ],
1823 "meter_arrays" : [],
1824 "counter_arrays" : [
1825 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001826 "name" : "FabricIngress.filtering.ingress_port_vlan_counter",
Yi Tseng1d842672017-11-28 16:06:52 -08001827 "id" : 0,
Yi Tseng3a5731e2018-01-22 11:38:58 -08001828 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001829 "binding" : "FabricIngress.filtering.ingress_port_vlan",
1830 "source_info" : {
1831 "filename" : "include/control/filtering.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001832 "line" : 31,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001833 "column" : 50,
1834 "source_fragment" : "ingress_port_vlan_counter"
1835 }
Yi Tseng3a5731e2018-01-22 11:38:58 -08001836 },
1837 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001838 "name" : "FabricIngress.filtering.fwd_classifier_counter",
Yi Tseng3a5731e2018-01-22 11:38:58 -08001839 "id" : 1,
1840 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001841 "binding" : "FabricIngress.filtering.fwd_classifier",
1842 "source_info" : {
1843 "filename" : "include/control/filtering.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08001844 "line" : 87,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001845 "column" : 50,
1846 "source_fragment" : "fwd_classifier_counter"
1847 }
Yi Tseng3a5731e2018-01-22 11:38:58 -08001848 },
1849 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001850 "name" : "FabricIngress.forwarding.bridging_counter",
Yi Tseng3a5731e2018-01-22 11:38:58 -08001851 "id" : 2,
1852 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001853 "binding" : "FabricIngress.forwarding.bridging",
1854 "source_info" : {
1855 "filename" : "include/control/forwarding.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001856 "line" : 36,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001857 "column" : 50,
1858 "source_fragment" : "bridging_counter"
1859 }
Yi Tseng3a5731e2018-01-22 11:38:58 -08001860 },
1861 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001862 "name" : "FabricIngress.forwarding.mpls_counter",
Yi Tseng3a5731e2018-01-22 11:38:58 -08001863 "id" : 3,
1864 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001865 "binding" : "FabricIngress.forwarding.mpls",
1866 "source_info" : {
1867 "filename" : "include/control/forwarding.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07001868 "line" : 63,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001869 "column" : 50,
1870 "source_fragment" : "mpls_counter"
1871 }
Yi Tseng3a5731e2018-01-22 11:38:58 -08001872 },
1873 {
Wailok Shumfb7e7872021-06-18 17:30:08 +08001874 "name" : "FabricIngress.pre_next.next_mpls_counter",
Daniele Moro5a2de712019-09-24 14:34:07 -07001875 "id" : 4,
Yi Tseng3a5731e2018-01-22 11:38:58 -08001876 "is_direct" : true,
Wailok Shumfb7e7872021-06-18 17:30:08 +08001877 "binding" : "FabricIngress.pre_next.next_mpls",
1878 "source_info" : {
1879 "filename" : "include/control/pre_next.p4",
1880 "line" : 29,
1881 "column" : 50,
1882 "source_fragment" : "next_mpls_counter"
1883 }
1884 },
1885 {
1886 "name" : "FabricIngress.pre_next.next_vlan_counter",
1887 "id" : 5,
1888 "is_direct" : true,
1889 "binding" : "FabricIngress.pre_next.next_vlan",
1890 "source_info" : {
1891 "filename" : "include/control/pre_next.p4",
1892 "line" : 54,
1893 "column" : 50,
1894 "source_fragment" : "next_vlan_counter"
1895 }
1896 },
1897 {
1898 "name" : "FabricIngress.acl.acl_counter",
1899 "id" : 6,
1900 "is_direct" : true,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001901 "binding" : "FabricIngress.acl.acl",
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001902 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001903 "filename" : "include/control/acl.p4",
Wailok Shum4f51bde2021-06-11 22:48:41 +08001904 "line" : 36,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001905 "column" : 50,
1906 "source_fragment" : "acl_counter"
1907 }
Yi Tseng3a5731e2018-01-22 11:38:58 -08001908 },
1909 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001910 "name" : "FabricIngress.next.xconnect_counter",
Wailok Shumfb7e7872021-06-18 17:30:08 +08001911 "id" : 7,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001912 "is_direct" : true,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001913 "binding" : "FabricIngress.next.xconnect",
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001914 "source_info" : {
1915 "filename" : "include/control/next.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08001916 "line" : 56,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001917 "column" : 50,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001918 "source_fragment" : "xconnect_counter"
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001919 }
Yi Tseng27b9bc02018-04-12 14:52:40 +08001920 },
1921 {
1922 "name" : "FabricIngress.next.hashed_counter",
Wailok Shumfb7e7872021-06-18 17:30:08 +08001923 "id" : 8,
Yi Tseng27b9bc02018-04-12 14:52:40 +08001924 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001925 "binding" : "FabricIngress.next.hashed",
1926 "source_info" : {
1927 "filename" : "include/control/next.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08001928 "line" : 126,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001929 "column" : 50,
1930 "source_fragment" : "hashed_counter"
1931 }
Yi Tseng27b9bc02018-04-12 14:52:40 +08001932 },
1933 {
Esin Karaman971fb7f2017-12-28 13:44:52 +00001934 "name" : "FabricIngress.next.multicast_counter",
Wailok Shumfb7e7872021-06-18 17:30:08 +08001935 "id" : 9,
Esin Karaman971fb7f2017-12-28 13:44:52 +00001936 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001937 "binding" : "FabricIngress.next.multicast",
1938 "source_info" : {
1939 "filename" : "include/control/next.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08001940 "line" : 163,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001941 "column" : 50,
1942 "source_fragment" : "multicast_counter"
1943 }
Esin Karaman971fb7f2017-12-28 13:44:52 +00001944 },
1945 {
1946 "name" : "FabricIngress.port_counters_control.egress_port_counter",
Wailok Shumfb7e7872021-06-18 17:30:08 +08001947 "id" : 10,
Yi Tsengbe342052017-11-03 10:21:23 -07001948 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001949 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001950 "line" : 26,
Yi Tseng3d3956d2018-01-31 17:28:05 -08001951 "column" : 48,
Yi Tsengbe342052017-11-03 10:21:23 -07001952 "source_fragment" : "egress_port_counter"
1953 },
1954 "size" : 511,
1955 "is_direct" : false
1956 },
1957 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001958 "name" : "FabricIngress.port_counters_control.ingress_port_counter",
Wailok Shumfb7e7872021-06-18 17:30:08 +08001959 "id" : 11,
Yi Tsengbe342052017-11-03 10:21:23 -07001960 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001961 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001962 "line" : 27,
Yi Tseng3d3956d2018-01-31 17:28:05 -08001963 "column" : 48,
Yi Tsengbe342052017-11-03 10:21:23 -07001964 "source_fragment" : "ingress_port_counter"
1965 },
1966 "size" : 511,
1967 "is_direct" : false
Yi Tseng47eac892018-07-11 02:17:04 +08001968 },
1969 {
1970 "name" : "FabricEgress.egress_next.egress_vlan_counter",
Wailok Shumfb7e7872021-06-18 17:30:08 +08001971 "id" : 12,
Yi Tseng47eac892018-07-11 02:17:04 +08001972 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001973 "binding" : "FabricEgress.egress_next.egress_vlan",
1974 "source_info" : {
1975 "filename" : "include/control/next.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08001976 "line" : 248,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001977 "column" : 50,
1978 "source_fragment" : "egress_vlan_counter"
1979 }
Yi Tsengbe342052017-11-03 10:21:23 -07001980 }
1981 ],
1982 "register_arrays" : [],
1983 "calculations" : [
1984 {
1985 "name" : "calc",
1986 "id" : 0,
1987 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001988 "filename" : "include/checksum.p4",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001989 "line" : 28,
Yi Tsengbe342052017-11-03 10:21:23 -07001990 "column" : 8,
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001991 "source_fragment" : "update_checksum(hdr.ipv4.isValid(), ..."
Yi Tsengbe342052017-11-03 10:21:23 -07001992 },
1993 "algo" : "csum16",
1994 "input" : [
1995 {
1996 "type" : "field",
1997 "value" : ["ipv4", "version"]
1998 },
1999 {
2000 "type" : "field",
2001 "value" : ["ipv4", "ihl"]
2002 },
2003 {
2004 "type" : "field",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09002005 "value" : ["ipv4", "dscp"]
2006 },
2007 {
2008 "type" : "field",
2009 "value" : ["ipv4", "ecn"]
Yi Tsengbe342052017-11-03 10:21:23 -07002010 },
2011 {
2012 "type" : "field",
2013 "value" : ["ipv4", "total_len"]
2014 },
2015 {
2016 "type" : "field",
2017 "value" : ["ipv4", "identification"]
2018 },
2019 {
2020 "type" : "field",
2021 "value" : ["ipv4", "flags"]
2022 },
2023 {
2024 "type" : "field",
2025 "value" : ["ipv4", "frag_offset"]
2026 },
2027 {
2028 "type" : "field",
2029 "value" : ["ipv4", "ttl"]
2030 },
2031 {
2032 "type" : "field",
2033 "value" : ["ipv4", "protocol"]
2034 },
2035 {
2036 "type" : "field",
2037 "value" : ["ipv4", "src_addr"]
2038 },
2039 {
2040 "type" : "field",
2041 "value" : ["ipv4", "dst_addr"]
2042 }
2043 ]
2044 },
2045 {
2046 "name" : "calc_0",
2047 "id" : 1,
2048 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002049 "filename" : "include/checksum.p4",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09002050 "line" : 57,
Yi Tsengbe342052017-11-03 10:21:23 -07002051 "column" : 8,
Carmelo Cascone6af4e172018-06-15 16:01:30 +02002052 "source_fragment" : "verify_checksum(hdr.ipv4.isValid(), ..."
Yi Tsengbe342052017-11-03 10:21:23 -07002053 },
2054 "algo" : "csum16",
2055 "input" : [
2056 {
2057 "type" : "field",
2058 "value" : ["ipv4", "version"]
2059 },
2060 {
2061 "type" : "field",
2062 "value" : ["ipv4", "ihl"]
2063 },
2064 {
2065 "type" : "field",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09002066 "value" : ["ipv4", "dscp"]
2067 },
2068 {
2069 "type" : "field",
2070 "value" : ["ipv4", "ecn"]
Yi Tsengbe342052017-11-03 10:21:23 -07002071 },
2072 {
2073 "type" : "field",
2074 "value" : ["ipv4", "total_len"]
2075 },
2076 {
2077 "type" : "field",
2078 "value" : ["ipv4", "identification"]
2079 },
2080 {
2081 "type" : "field",
2082 "value" : ["ipv4", "flags"]
2083 },
2084 {
2085 "type" : "field",
2086 "value" : ["ipv4", "frag_offset"]
2087 },
2088 {
2089 "type" : "field",
2090 "value" : ["ipv4", "ttl"]
2091 },
2092 {
2093 "type" : "field",
2094 "value" : ["ipv4", "protocol"]
2095 },
2096 {
2097 "type" : "field",
2098 "value" : ["ipv4", "src_addr"]
2099 },
2100 {
2101 "type" : "field",
2102 "value" : ["ipv4", "dst_addr"]
2103 }
2104 ]
Yi Tsengbe342052017-11-03 10:21:23 -07002105 }
2106 ],
2107 "learn_lists" : [],
2108 "actions" : [
2109 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002110 "name" : "nop",
Yi Tsengbe342052017-11-03 10:21:23 -07002111 "id" : 0,
2112 "runtime_data" : [],
2113 "primitives" : []
2114 },
2115 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002116 "name" : "nop",
Yi Tsengbe342052017-11-03 10:21:23 -07002117 "id" : 1,
2118 "runtime_data" : [],
2119 "primitives" : []
2120 },
2121 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002122 "name" : "nop",
Yi Tsengbe342052017-11-03 10:21:23 -07002123 "id" : 2,
2124 "runtime_data" : [],
Yi Tseng1d842672017-11-28 16:06:52 -08002125 "primitives" : []
Yi Tsengbe342052017-11-03 10:21:23 -07002126 },
2127 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002128 "name" : "nop",
Yi Tsengbe342052017-11-03 10:21:23 -07002129 "id" : 3,
2130 "runtime_data" : [],
Yi Tseng1d842672017-11-28 16:06:52 -08002131 "primitives" : []
Yi Tsengbe342052017-11-03 10:21:23 -07002132 },
2133 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002134 "name" : "nop",
Yi Tsengbe342052017-11-03 10:21:23 -07002135 "id" : 4,
2136 "runtime_data" : [],
2137 "primitives" : []
2138 },
2139 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002140 "name" : "nop",
Yi Tsengbe342052017-11-03 10:21:23 -07002141 "id" : 5,
2142 "runtime_data" : [],
2143 "primitives" : []
2144 },
2145 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002146 "name" : "nop",
Yi Tsengbe342052017-11-03 10:21:23 -07002147 "id" : 6,
2148 "runtime_data" : [],
2149 "primitives" : []
2150 },
2151 {
Wailok Shumfb7e7872021-06-18 17:30:08 +08002152 "name" : "nop",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002153 "id" : 7,
Yi Tseng47eac892018-07-11 02:17:04 +08002154 "runtime_data" : [],
Wailok Shumfb7e7872021-06-18 17:30:08 +08002155 "primitives" : []
2156 },
2157 {
2158 "name" : "FabricIngress.filtering.deny",
2159 "id" : 8,
2160 "runtime_data" : [],
Yi Tseng1d842672017-11-28 16:06:52 -08002161 "primitives" : [
2162 {
Yi Tsengbe342052017-11-03 10:21:23 -07002163 "op" : "assign",
2164 "parameters" : [
2165 {
2166 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02002167 "value" : ["scalars", "userMetadata.skip_forwarding"]
Yi Tsengbe342052017-11-03 10:21:23 -07002168 },
2169 {
2170 "type" : "expression",
2171 "value" : {
2172 "type" : "expression",
2173 "value" : {
2174 "op" : "b2d",
2175 "left" : null,
2176 "right" : {
2177 "type" : "bool",
2178 "value" : true
2179 }
2180 }
2181 }
2182 }
2183 ],
2184 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002185 "filename" : "include/control/filtering.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002186 "line" : 36,
Yi Tsengbe342052017-11-03 10:21:23 -07002187 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002188 "source_fragment" : "fabric_metadata.skip_forwarding = true"
2189 }
2190 },
2191 {
2192 "op" : "assign",
2193 "parameters" : [
2194 {
2195 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02002196 "value" : ["scalars", "userMetadata.skip_next"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002197 },
2198 {
2199 "type" : "expression",
2200 "value" : {
2201 "type" : "expression",
2202 "value" : {
2203 "op" : "b2d",
2204 "left" : null,
2205 "right" : {
2206 "type" : "bool",
2207 "value" : true
2208 }
2209 }
2210 }
2211 }
2212 ],
2213 "source_info" : {
2214 "filename" : "include/control/filtering.p4",
2215 "line" : 37,
2216 "column" : 8,
2217 "source_fragment" : "fabric_metadata.skip_next = true"
Yi Tsengbe342052017-11-03 10:21:23 -07002218 }
Wailok Shumfb7e7872021-06-18 17:30:08 +08002219 },
2220 {
2221 "op" : "assign",
2222 "parameters" : [
2223 {
2224 "type" : "field",
2225 "value" : ["scalars", "userMetadata.port_type"]
2226 },
2227 {
2228 "type" : "hexstr",
2229 "value" : "0x00"
2230 }
2231 ],
2232 "source_info" : {
2233 "filename" : "include/control/../define.p4",
2234 "line" : 119,
2235 "column" : 38,
2236 "source_fragment" : "0x0; ..."
2237 }
Yi Tsengbe342052017-11-03 10:21:23 -07002238 }
2239 ]
2240 },
2241 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002242 "name" : "FabricIngress.filtering.permit",
Wailok Shumfb7e7872021-06-18 17:30:08 +08002243 "id" : 9,
2244 "runtime_data" : [
2245 {
2246 "name" : "port_type",
2247 "bitwidth" : 2
2248 }
2249 ],
2250 "primitives" : [
2251 {
2252 "op" : "assign",
2253 "parameters" : [
2254 {
2255 "type" : "field",
2256 "value" : ["scalars", "userMetadata.port_type"]
2257 },
2258 {
2259 "type" : "runtime_data",
2260 "value" : 0
2261 }
2262 ],
2263 "source_info" : {
2264 "filename" : "include/control/filtering.p4",
2265 "line" : 44,
2266 "column" : 8,
2267 "source_fragment" : "fabric_metadata.port_type = port_type"
2268 }
2269 }
2270 ]
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002271 },
2272 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002273 "name" : "FabricIngress.filtering.permit_with_internal_vlan",
Wailok Shumfb7e7872021-06-18 17:30:08 +08002274 "id" : 10,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002275 "runtime_data" : [
2276 {
2277 "name" : "vlan_id",
2278 "bitwidth" : 12
Wailok Shumfb7e7872021-06-18 17:30:08 +08002279 },
2280 {
2281 "name" : "port_type",
2282 "bitwidth" : 2
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002283 }
2284 ],
2285 "primitives" : [
2286 {
2287 "op" : "assign",
2288 "parameters" : [
2289 {
2290 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02002291 "value" : ["scalars", "userMetadata.vlan_id"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002292 },
2293 {
2294 "type" : "runtime_data",
2295 "value" : 0
2296 }
2297 ],
2298 "source_info" : {
2299 "filename" : "include/control/filtering.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08002300 "line" : 49,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002301 "column" : 8,
2302 "source_fragment" : "fabric_metadata.vlan_id = vlan_id"
2303 }
Wailok Shumfb7e7872021-06-18 17:30:08 +08002304 },
2305 {
2306 "op" : "assign",
2307 "parameters" : [
2308 {
2309 "type" : "field",
2310 "value" : ["scalars", "userMetadata.port_type"]
2311 },
2312 {
2313 "type" : "runtime_data",
2314 "value" : 1
2315 }
2316 ],
2317 "source_info" : {
2318 "filename" : "include/control/filtering.p4",
2319 "line" : 44,
2320 "column" : 8,
2321 "source_fragment" : "fabric_metadata.port_type = port_type; ..."
2322 }
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002323 }
2324 ]
2325 },
2326 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002327 "name" : "FabricIngress.filtering.set_forwarding_type",
Wailok Shumfb7e7872021-06-18 17:30:08 +08002328 "id" : 11,
Yi Tsengbe342052017-11-03 10:21:23 -07002329 "runtime_data" : [
2330 {
2331 "name" : "fwd_type",
2332 "bitwidth" : 3
2333 }
2334 ],
2335 "primitives" : [
2336 {
2337 "op" : "assign",
2338 "parameters" : [
2339 {
2340 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02002341 "value" : ["scalars", "userMetadata.fwd_type"]
Yi Tsengbe342052017-11-03 10:21:23 -07002342 },
2343 {
2344 "type" : "runtime_data",
2345 "value" : 0
2346 }
2347 ],
2348 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002349 "filename" : "include/control/filtering.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08002350 "line" : 90,
Yi Tsengbe342052017-11-03 10:21:23 -07002351 "column" : 8,
2352 "source_fragment" : "fabric_metadata.fwd_type = fwd_type"
2353 }
2354 }
2355 ]
2356 },
2357 {
Yi Tseng47eac892018-07-11 02:17:04 +08002358 "name" : "FabricIngress.forwarding.set_next_id_bridging",
Wailok Shumfb7e7872021-06-18 17:30:08 +08002359 "id" : 12,
Carmelo Casconef645e842018-07-16 18:31:52 +02002360 "runtime_data" : [
2361 {
2362 "name" : "next_id",
2363 "bitwidth" : 32
2364 }
2365 ],
2366 "primitives" : [
2367 {
2368 "op" : "assign",
2369 "parameters" : [
2370 {
2371 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02002372 "value" : ["scalars", "userMetadata.next_id"]
Carmelo Casconef645e842018-07-16 18:31:52 +02002373 },
2374 {
2375 "type" : "runtime_data",
2376 "value" : 0
2377 }
2378 ],
2379 "source_info" : {
2380 "filename" : "include/control/forwarding.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002381 "line" : 30,
Carmelo Casconef645e842018-07-16 18:31:52 +02002382 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002383 "source_fragment" : "fabric_metadata.next_id = next_id; ..."
Carmelo Casconef645e842018-07-16 18:31:52 +02002384 }
2385 }
2386 ]
2387 },
2388 {
2389 "name" : "FabricIngress.forwarding.pop_mpls_and_next",
Wailok Shumfb7e7872021-06-18 17:30:08 +08002390 "id" : 13,
Carmelo Casconef645e842018-07-16 18:31:52 +02002391 "runtime_data" : [
2392 {
2393 "name" : "next_id",
2394 "bitwidth" : 32
2395 }
2396 ],
2397 "primitives" : [
2398 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002399 "op" : "assign",
Carmelo Casconef645e842018-07-16 18:31:52 +02002400 "parameters" : [
2401 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002402 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02002403 "value" : ["scalars", "userMetadata.mpls_label"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002404 },
2405 {
2406 "type" : "hexstr",
2407 "value" : "0x000000"
Carmelo Casconef645e842018-07-16 18:31:52 +02002408 }
2409 ],
2410 "source_info" : {
2411 "filename" : "include/control/forwarding.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07002412 "line" : 66,
Carmelo Casconef645e842018-07-16 18:31:52 +02002413 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002414 "source_fragment" : "fabric_metadata.mpls_label = 0"
Carmelo Casconef645e842018-07-16 18:31:52 +02002415 }
2416 },
2417 {
2418 "op" : "assign",
2419 "parameters" : [
2420 {
2421 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02002422 "value" : ["scalars", "userMetadata.next_id"]
Carmelo Casconef645e842018-07-16 18:31:52 +02002423 },
2424 {
2425 "type" : "runtime_data",
2426 "value" : 0
2427 }
2428 ],
2429 "source_info" : {
2430 "filename" : "include/control/forwarding.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002431 "line" : 30,
Carmelo Casconef645e842018-07-16 18:31:52 +02002432 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002433 "source_fragment" : "fabric_metadata.next_id = next_id; ..."
Carmelo Casconef645e842018-07-16 18:31:52 +02002434 }
2435 }
2436 ]
2437 },
2438 {
Charles Chan384aea22018-08-23 22:08:02 -07002439 "name" : "FabricIngress.forwarding.set_next_id_routing_v4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08002440 "id" : 14,
Carmelo Casconef645e842018-07-16 18:31:52 +02002441 "runtime_data" : [
2442 {
2443 "name" : "next_id",
2444 "bitwidth" : 32
2445 }
2446 ],
2447 "primitives" : [
2448 {
2449 "op" : "assign",
2450 "parameters" : [
2451 {
2452 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02002453 "value" : ["scalars", "userMetadata.next_id"]
Carmelo Casconef645e842018-07-16 18:31:52 +02002454 },
2455 {
2456 "type" : "runtime_data",
2457 "value" : 0
2458 }
2459 ],
2460 "source_info" : {
2461 "filename" : "include/control/forwarding.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002462 "line" : 30,
Carmelo Casconef645e842018-07-16 18:31:52 +02002463 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002464 "source_fragment" : "fabric_metadata.next_id = next_id; ..."
Carmelo Casconef645e842018-07-16 18:31:52 +02002465 }
2466 }
2467 ]
2468 },
2469 {
Charles Chancd03f072018-08-31 17:46:37 -07002470 "name" : "FabricIngress.forwarding.nop_routing_v4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08002471 "id" : 15,
Charles Chancd03f072018-08-31 17:46:37 -07002472 "runtime_data" : [],
2473 "primitives" : []
2474 },
2475 {
Wailok Shumfb7e7872021-06-18 17:30:08 +08002476 "name" : "FabricIngress.pre_next.set_mpls_label",
2477 "id" : 16,
2478 "runtime_data" : [
2479 {
2480 "name" : "label",
2481 "bitwidth" : 20
2482 }
2483 ],
2484 "primitives" : [
2485 {
2486 "op" : "assign",
2487 "parameters" : [
2488 {
2489 "type" : "field",
2490 "value" : ["scalars", "userMetadata.mpls_label"]
2491 },
2492 {
2493 "type" : "runtime_data",
2494 "value" : 0
2495 }
2496 ],
2497 "source_info" : {
2498 "filename" : "include/control/pre_next.p4",
2499 "line" : 32,
2500 "column" : 8,
2501 "source_fragment" : "fabric_metadata.mpls_label = label"
2502 }
2503 }
2504 ]
2505 },
2506 {
2507 "name" : "FabricIngress.pre_next.set_vlan",
2508 "id" : 17,
2509 "runtime_data" : [
2510 {
2511 "name" : "vlan_id",
2512 "bitwidth" : 12
2513 }
2514 ],
2515 "primitives" : [
2516 {
2517 "op" : "assign",
2518 "parameters" : [
2519 {
2520 "type" : "field",
2521 "value" : ["scalars", "userMetadata.vlan_id"]
2522 },
2523 {
2524 "type" : "runtime_data",
2525 "value" : 0
2526 }
2527 ],
2528 "source_info" : {
2529 "filename" : "include/control/pre_next.p4",
2530 "line" : 57,
2531 "column" : 8,
2532 "source_fragment" : "fabric_metadata.vlan_id = vlan_id"
2533 }
2534 }
2535 ]
2536 },
2537 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002538 "name" : "FabricIngress.acl.set_next_id_acl",
Wailok Shumfb7e7872021-06-18 17:30:08 +08002539 "id" : 18,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002540 "runtime_data" : [
2541 {
2542 "name" : "next_id",
2543 "bitwidth" : 32
2544 }
2545 ],
2546 "primitives" : [
2547 {
Esin Karaman971fb7f2017-12-28 13:44:52 +00002548 "op" : "assign",
2549 "parameters" : [
2550 {
2551 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02002552 "value" : ["scalars", "userMetadata.next_id"]
Esin Karaman971fb7f2017-12-28 13:44:52 +00002553 },
2554 {
2555 "type" : "runtime_data",
2556 "value" : 0
2557 }
2558 ],
2559 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002560 "filename" : "include/control/acl.p4",
Wailok Shum4f51bde2021-06-11 22:48:41 +08002561 "line" : 39,
Yi Tseng47eac892018-07-11 02:17:04 +08002562 "column" : 8,
2563 "source_fragment" : "fabric_metadata.next_id = next_id"
2564 }
2565 }
2566 ]
2567 },
2568 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002569 "name" : "FabricIngress.acl.punt_to_cpu",
Wailok Shumfb7e7872021-06-18 17:30:08 +08002570 "id" : 19,
Yi Tsengbe342052017-11-03 10:21:23 -07002571 "runtime_data" : [],
2572 "primitives" : [
2573 {
2574 "op" : "assign",
2575 "parameters" : [
2576 {
2577 "type" : "field",
Yi Tsengbe342052017-11-03 10:21:23 -07002578 "value" : ["standard_metadata", "egress_spec"]
2579 },
2580 {
2581 "type" : "hexstr",
2582 "value" : "0x00ff"
2583 }
2584 ],
2585 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002586 "filename" : "include/control/acl.p4",
Wailok Shum4f51bde2021-06-11 22:48:41 +08002587 "line" : 45,
Carmelo Casconeb531b682018-01-30 17:55:56 -08002588 "column" : 8,
2589 "source_fragment" : "standard_metadata.egress_spec = 255"
Yi Tsengbe342052017-11-03 10:21:23 -07002590 }
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002591 },
2592 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002593 "op" : "assign",
2594 "parameters" : [
2595 {
2596 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02002597 "value" : ["scalars", "userMetadata.skip_next"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002598 },
2599 {
2600 "type" : "expression",
2601 "value" : {
2602 "type" : "expression",
2603 "value" : {
2604 "op" : "b2d",
2605 "left" : null,
2606 "right" : {
2607 "type" : "bool",
2608 "value" : true
2609 }
2610 }
2611 }
2612 }
2613 ],
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002614 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002615 "filename" : "include/control/acl.p4",
Wailok Shum4f51bde2021-06-11 22:48:41 +08002616 "line" : 46,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002617 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002618 "source_fragment" : "fabric_metadata.skip_next = true"
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002619 }
2620 }
2621 ]
2622 },
2623 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07002624 "name" : "FabricIngress.acl.set_clone_session_id",
Wailok Shumfb7e7872021-06-18 17:30:08 +08002625 "id" : 20,
Daniele Moro01ca2ab2019-06-25 11:48:48 -07002626 "runtime_data" : [
2627 {
2628 "name" : "clone_id",
2629 "bitwidth" : 32
2630 }
2631 ],
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002632 "primitives" : [
2633 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07002634 "op" : "clone_ingress_pkt_to_egress",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002635 "parameters" : [
2636 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07002637 "type" : "runtime_data",
2638 "value" : 0
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002639 },
2640 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07002641 "type" : "hexstr",
2642 "value" : "0x1"
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002643 }
2644 ],
2645 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002646 "filename" : "include/control/acl.p4",
Wailok Shum4f51bde2021-06-11 22:48:41 +08002647 "line" : 52,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002648 "column" : 8,
Daniele Moro3b7a21b2019-06-25 17:33:40 -07002649 "source_fragment" : "clone3(CloneType.I2E, clone_id, {standard_metadata.ingress_port})"
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002650 }
Yi Tsengbe342052017-11-03 10:21:23 -07002651 }
2652 ]
2653 },
2654 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002655 "name" : "FabricIngress.acl.drop",
Wailok Shumfb7e7872021-06-18 17:30:08 +08002656 "id" : 21,
Yi Tseng47eac892018-07-11 02:17:04 +08002657 "runtime_data" : [],
2658 "primitives" : [
2659 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07002660 "op" : "mark_to_drop",
2661 "parameters" : [
2662 {
2663 "type" : "header",
2664 "value" : "standard_metadata"
2665 }
2666 ],
Yi Tseng47eac892018-07-11 02:17:04 +08002667 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002668 "filename" : "include/control/acl.p4",
Wailok Shum4f51bde2021-06-11 22:48:41 +08002669 "line" : 57,
Yi Tseng47eac892018-07-11 02:17:04 +08002670 "column" : 8,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07002671 "source_fragment" : "mark_to_drop(standard_metadata)"
Yi Tseng47eac892018-07-11 02:17:04 +08002672 }
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002673 },
2674 {
2675 "op" : "assign",
2676 "parameters" : [
2677 {
2678 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02002679 "value" : ["scalars", "userMetadata.skip_next"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002680 },
2681 {
2682 "type" : "expression",
2683 "value" : {
2684 "type" : "expression",
2685 "value" : {
2686 "op" : "b2d",
2687 "left" : null,
2688 "right" : {
2689 "type" : "bool",
2690 "value" : true
2691 }
2692 }
2693 }
2694 }
2695 ],
2696 "source_info" : {
2697 "filename" : "include/control/acl.p4",
Wailok Shum4f51bde2021-06-11 22:48:41 +08002698 "line" : 58,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002699 "column" : 8,
2700 "source_fragment" : "fabric_metadata.skip_next = true"
2701 }
Yi Tseng47eac892018-07-11 02:17:04 +08002702 }
2703 ]
2704 },
2705 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002706 "name" : "FabricIngress.acl.nop_acl",
Wailok Shumfb7e7872021-06-18 17:30:08 +08002707 "id" : 22,
Charles Chancf696e52018-08-16 16:25:13 -07002708 "runtime_data" : [],
2709 "primitives" : []
2710 },
2711 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002712 "name" : "FabricIngress.next.output_xconnect",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002713 "id" : 23,
2714 "runtime_data" : [
2715 {
2716 "name" : "port_num",
2717 "bitwidth" : 9
2718 }
2719 ],
2720 "primitives" : [
2721 {
2722 "op" : "assign",
2723 "parameters" : [
2724 {
2725 "type" : "field",
2726 "value" : ["standard_metadata", "egress_spec"]
2727 },
2728 {
2729 "type" : "runtime_data",
2730 "value" : 0
2731 }
2732 ],
2733 "source_info" : {
2734 "filename" : "include/control/next.p4",
2735 "line" : 31,
2736 "column" : 5,
2737 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2738 }
2739 }
2740 ]
2741 },
2742 {
Wailok Shumfb7e7872021-06-18 17:30:08 +08002743 "name" : "FabricIngress.next.set_next_id_xconnect",
Charles Chancd03f072018-08-31 17:46:37 -07002744 "id" : 24,
Yi Tseng47eac892018-07-11 02:17:04 +08002745 "runtime_data" : [
2746 {
Wailok Shumfb7e7872021-06-18 17:30:08 +08002747 "name" : "next_id",
2748 "bitwidth" : 32
Yi Tseng47eac892018-07-11 02:17:04 +08002749 }
2750 ],
2751 "primitives" : [
2752 {
2753 "op" : "assign",
2754 "parameters" : [
2755 {
2756 "type" : "field",
Wailok Shumfb7e7872021-06-18 17:30:08 +08002757 "value" : ["scalars", "userMetadata.next_id"]
Yi Tseng47eac892018-07-11 02:17:04 +08002758 },
2759 {
2760 "type" : "runtime_data",
Wailok Shumfb7e7872021-06-18 17:30:08 +08002761 "value" : 0
Yi Tseng47eac892018-07-11 02:17:04 +08002762 }
2763 ],
2764 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002765 "filename" : "include/control/next.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08002766 "line" : 64,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002767 "column" : 8,
Wailok Shumfb7e7872021-06-18 17:30:08 +08002768 "source_fragment" : "fabric_metadata.next_id = next_id"
Yi Tseng47eac892018-07-11 02:17:04 +08002769 }
Wailok Shumfb7e7872021-06-18 17:30:08 +08002770 }
2771 ]
2772 },
2773 {
2774 "name" : "FabricIngress.next.output_hashed",
2775 "id" : 25,
2776 "runtime_data" : [
Yi Tseng47eac892018-07-11 02:17:04 +08002777 {
Wailok Shumfb7e7872021-06-18 17:30:08 +08002778 "name" : "port_num",
2779 "bitwidth" : 9
2780 }
2781 ],
2782 "primitives" : [
Yi Tseng47eac892018-07-11 02:17:04 +08002783 {
2784 "op" : "assign",
2785 "parameters" : [
2786 {
2787 "type" : "field",
2788 "value" : ["standard_metadata", "egress_spec"]
2789 },
2790 {
2791 "type" : "runtime_data",
2792 "value" : 0
2793 }
2794 ],
2795 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002796 "filename" : "include/control/next.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002797 "line" : 31,
2798 "column" : 5,
Yi Tseng47eac892018-07-11 02:17:04 +08002799 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002800 }
2801 }
2802 ]
2803 },
2804 {
Wailok Shumfb7e7872021-06-18 17:30:08 +08002805 "name" : "FabricIngress.next.routing_hashed",
2806 "id" : 26,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002807 "runtime_data" : [
2808 {
2809 "name" : "port_num",
2810 "bitwidth" : 9
2811 },
2812 {
2813 "name" : "smac",
2814 "bitwidth" : 48
2815 },
2816 {
2817 "name" : "dmac",
2818 "bitwidth" : 48
Yi Tsengbe342052017-11-03 10:21:23 -07002819 }
2820 ],
2821 "primitives" : [
2822 {
2823 "op" : "assign",
2824 "parameters" : [
2825 {
2826 "type" : "field",
2827 "value" : ["ethernet", "src_addr"]
2828 },
2829 {
2830 "type" : "runtime_data",
2831 "value" : 1
2832 }
2833 ],
2834 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002835 "filename" : "include/control/next.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002836 "line" : 36,
Yi Tsengbe342052017-11-03 10:21:23 -07002837 "column" : 8,
2838 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2839 }
2840 },
2841 {
2842 "op" : "assign",
2843 "parameters" : [
2844 {
2845 "type" : "field",
2846 "value" : ["ethernet", "dst_addr"]
2847 },
2848 {
2849 "type" : "runtime_data",
2850 "value" : 2
2851 }
2852 ],
2853 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002854 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002855 "line" : 41,
Yi Tsengbe342052017-11-03 10:21:23 -07002856 "column" : 8,
2857 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2858 }
2859 },
2860 {
2861 "op" : "assign",
2862 "parameters" : [
2863 {
2864 "type" : "field",
2865 "value" : ["standard_metadata", "egress_spec"]
2866 },
2867 {
2868 "type" : "runtime_data",
2869 "value" : 0
2870 }
2871 ],
2872 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002873 "filename" : "include/control/next.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002874 "line" : 31,
2875 "column" : 5,
Yi Tsengbe342052017-11-03 10:21:23 -07002876 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2877 }
Yi Tsengbe342052017-11-03 10:21:23 -07002878 }
2879 ]
2880 },
2881 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002882 "name" : "FabricIngress.next.set_mcast_group_id",
Wailok Shumfb7e7872021-06-18 17:30:08 +08002883 "id" : 27,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002884 "runtime_data" : [
2885 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002886 "name" : "group_id",
Esin Karaman971fb7f2017-12-28 13:44:52 +00002887 "bitwidth" : 16
2888 }
2889 ],
2890 "primitives" : [
2891 {
2892 "op" : "assign",
2893 "parameters" : [
2894 {
2895 "type" : "field",
2896 "value" : ["standard_metadata", "mcast_grp"]
2897 },
2898 {
2899 "type" : "runtime_data",
2900 "value" : 0
2901 }
2902 ],
2903 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002904 "filename" : "include/control/next.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08002905 "line" : 166,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002906 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002907 "source_fragment" : "standard_metadata.mcast_grp = group_id"
Esin Karaman971fb7f2017-12-28 13:44:52 +00002908 }
Carmelo Casconea5400af2018-07-17 22:11:54 +02002909 },
2910 {
2911 "op" : "assign",
2912 "parameters" : [
2913 {
2914 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02002915 "value" : ["scalars", "userMetadata.is_multicast"]
Carmelo Casconea5400af2018-07-17 22:11:54 +02002916 },
2917 {
2918 "type" : "expression",
2919 "value" : {
2920 "type" : "expression",
2921 "value" : {
2922 "op" : "b2d",
2923 "left" : null,
2924 "right" : {
2925 "type" : "bool",
2926 "value" : true
2927 }
2928 }
2929 }
2930 }
2931 ],
2932 "source_info" : {
2933 "filename" : "include/control/next.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08002934 "line" : 167,
Carmelo Casconea5400af2018-07-17 22:11:54 +02002935 "column" : 8,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002936 "source_fragment" : "fabric_metadata.is_multicast = true"
Carmelo Casconea5400af2018-07-17 22:11:54 +02002937 }
Esin Karaman971fb7f2017-12-28 13:44:52 +00002938 }
2939 ]
2940 },
2941 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02002942 "name" : "packetio25",
Wailok Shumfb7e7872021-06-18 17:30:08 +08002943 "id" : 28,
Yi Tsengbe342052017-11-03 10:21:23 -07002944 "runtime_data" : [],
2945 "primitives" : [
2946 {
2947 "op" : "assign",
2948 "parameters" : [
2949 {
2950 "type" : "field",
2951 "value" : ["standard_metadata", "egress_spec"]
2952 },
2953 {
2954 "type" : "field",
2955 "value" : ["packet_out", "egress_port"]
2956 }
2957 ],
2958 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002959 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002960 "line" : 25,
Yi Tsengbe342052017-11-03 10:21:23 -07002961 "column" : 12,
2962 "source_fragment" : "standard_metadata.egress_spec = hdr.packet_out.egress_port"
2963 }
Yi Tseng1d842672017-11-28 16:06:52 -08002964 },
2965 {
2966 "op" : "remove_header",
2967 "parameters" : [
2968 {
2969 "type" : "header",
2970 "value" : "packet_out"
2971 }
2972 ],
2973 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002974 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002975 "line" : 26,
Yi Tseng1d842672017-11-28 16:06:52 -08002976 "column" : 12,
2977 "source_fragment" : "hdr.packet_out.setInvalid()"
2978 }
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07002979 },
2980 {
2981 "op" : "assign",
2982 "parameters" : [
2983 {
2984 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02002985 "value" : ["scalars", "userMetadata.is_controller_packet_out"]
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07002986 },
2987 {
2988 "type" : "expression",
2989 "value" : {
2990 "type" : "expression",
2991 "value" : {
2992 "op" : "b2d",
2993 "left" : null,
2994 "right" : {
2995 "type" : "bool",
2996 "value" : true
2997 }
2998 }
2999 }
3000 }
3001 ],
3002 "source_info" : {
3003 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003004 "line" : 27,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07003005 "column" : 12,
3006 "source_fragment" : "fabric_metadata.is_controller_packet_out = true"
3007 }
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003008 },
3009 {
3010 "op" : "exit",
3011 "parameters" : [],
3012 "source_info" : {
3013 "filename" : "include/control/packetio.p4",
3014 "line" : 29,
3015 "column" : 12,
3016 "source_fragment" : "exit"
3017 }
Yi Tsengbe342052017-11-03 10:21:23 -07003018 }
3019 ]
3020 },
3021 {
Wailok Shumfb7e7872021-06-18 17:30:08 +08003022 "name" : "filtering113",
3023 "id" : 29,
Yi Tsengbe342052017-11-03 10:21:23 -07003024 "runtime_data" : [],
3025 "primitives" : [
3026 {
3027 "op" : "assign",
3028 "parameters" : [
3029 {
3030 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02003031 "value" : ["scalars", "userMetadata.vlan_id"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003032 },
3033 {
3034 "type" : "field",
3035 "value" : ["vlan_tag", "vlan_id"]
3036 }
3037 ],
3038 "source_info" : {
3039 "filename" : "include/control/filtering.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08003040 "line" : 113,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003041 "column" : 12,
3042 "source_fragment" : "fabric_metadata.vlan_id = hdr.vlan_tag.vlan_id"
3043 }
3044 },
3045 {
3046 "op" : "assign",
3047 "parameters" : [
3048 {
3049 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02003050 "value" : ["scalars", "userMetadata.vlan_pri"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003051 },
3052 {
3053 "type" : "field",
3054 "value" : ["vlan_tag", "pri"]
3055 }
3056 ],
3057 "source_info" : {
3058 "filename" : "include/control/filtering.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08003059 "line" : 114,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003060 "column" : 12,
3061 "source_fragment" : "fabric_metadata.vlan_pri = hdr.vlan_tag.pri"
3062 }
3063 },
3064 {
3065 "op" : "assign",
3066 "parameters" : [
3067 {
3068 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02003069 "value" : ["scalars", "userMetadata.vlan_cfi"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003070 },
3071 {
3072 "type" : "field",
3073 "value" : ["vlan_tag", "cfi"]
3074 }
3075 ],
3076 "source_info" : {
3077 "filename" : "include/control/filtering.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08003078 "line" : 115,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003079 "column" : 12,
3080 "source_fragment" : "fabric_metadata.vlan_cfi = hdr.vlan_tag.cfi"
3081 }
Yi Tseng1d842672017-11-28 16:06:52 -08003082 }
3083 ]
3084 },
3085 {
Wailok Shumfb7e7872021-06-18 17:30:08 +08003086 "name" : "filtering129",
3087 "id" : 30,
Yi Tseng1d842672017-11-28 16:06:52 -08003088 "runtime_data" : [],
3089 "primitives" : [
3090 {
3091 "op" : "assign",
3092 "parameters" : [
3093 {
3094 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02003095 "value" : ["scalars", "userMetadata.mpls_ttl"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003096 },
3097 {
3098 "type" : "hexstr",
3099 "value" : "0x41"
3100 }
3101 ],
3102 "source_info" : {
3103 "filename" : "include/control/filtering.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08003104 "line" : 129,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003105 "column" : 12,
3106 "source_fragment" : "fabric_metadata.mpls_ttl = DEFAULT_MPLS_TTL + 1"
3107 }
3108 }
3109 ]
3110 },
3111 {
Wailok Shumfb7e7872021-06-18 17:30:08 +08003112 "name" : "acl102",
3113 "id" : 31,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003114 "runtime_data" : [],
3115 "primitives" : [
3116 {
3117 "op" : "assign",
3118 "parameters" : [
3119 {
3120 "type" : "field",
Wailok Shum4f51bde2021-06-11 22:48:41 +08003121 "value" : ["scalars", "acl_l4_sport"]
3122 },
3123 {
3124 "type" : "field",
3125 "value" : ["inner_tcp", "sport"]
3126 }
3127 ],
3128 "source_info" : {
3129 "filename" : "include/control/acl.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08003130 "line" : 102,
Wailok Shum4f51bde2021-06-11 22:48:41 +08003131 "column" : 16,
3132 "source_fragment" : "l4_sport = hdr.inner_tcp.sport"
3133 }
3134 },
3135 {
3136 "op" : "assign",
3137 "parameters" : [
3138 {
3139 "type" : "field",
3140 "value" : ["scalars", "acl_l4_dport"]
3141 },
3142 {
3143 "type" : "field",
3144 "value" : ["inner_tcp", "dport"]
3145 }
3146 ],
3147 "source_info" : {
3148 "filename" : "include/control/acl.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08003149 "line" : 103,
Wailok Shum4f51bde2021-06-11 22:48:41 +08003150 "column" : 16,
3151 "source_fragment" : "l4_dport = hdr.inner_tcp.dport"
3152 }
3153 }
3154 ]
3155 },
3156 {
Wailok Shumfb7e7872021-06-18 17:30:08 +08003157 "name" : "acl105",
3158 "id" : 32,
Wailok Shum4f51bde2021-06-11 22:48:41 +08003159 "runtime_data" : [],
3160 "primitives" : [
3161 {
3162 "op" : "assign",
3163 "parameters" : [
3164 {
3165 "type" : "field",
3166 "value" : ["scalars", "acl_l4_sport"]
3167 },
3168 {
3169 "type" : "field",
3170 "value" : ["inner_udp", "sport"]
3171 }
3172 ],
3173 "source_info" : {
3174 "filename" : "include/control/acl.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08003175 "line" : 105,
Wailok Shum4f51bde2021-06-11 22:48:41 +08003176 "column" : 16,
3177 "source_fragment" : "l4_sport = hdr.inner_udp.sport"
3178 }
3179 },
3180 {
3181 "op" : "assign",
3182 "parameters" : [
3183 {
3184 "type" : "field",
3185 "value" : ["scalars", "acl_l4_dport"]
3186 },
3187 {
3188 "type" : "field",
3189 "value" : ["inner_udp", "dport"]
3190 }
3191 ],
3192 "source_info" : {
3193 "filename" : "include/control/acl.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08003194 "line" : 106,
Wailok Shum4f51bde2021-06-11 22:48:41 +08003195 "column" : 16,
3196 "source_fragment" : "l4_dport = hdr.inner_udp.dport"
3197 }
3198 }
3199 ]
3200 },
3201 {
Wailok Shumfb7e7872021-06-18 17:30:08 +08003202 "name" : "acl98",
3203 "id" : 33,
Wailok Shum4f51bde2021-06-11 22:48:41 +08003204 "runtime_data" : [],
3205 "primitives" : [
3206 {
3207 "op" : "assign",
3208 "parameters" : [
3209 {
3210 "type" : "field",
3211 "value" : ["scalars", "acl_ipv4_src"]
3212 },
3213 {
3214 "type" : "field",
3215 "value" : ["inner_ipv4", "src_addr"]
3216 }
3217 ],
3218 "source_info" : {
3219 "filename" : "include/control/acl.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08003220 "line" : 98,
Wailok Shum4f51bde2021-06-11 22:48:41 +08003221 "column" : 12,
3222 "source_fragment" : "ipv4_src = hdr.inner_ipv4.src_addr"
3223 }
3224 },
3225 {
3226 "op" : "assign",
3227 "parameters" : [
3228 {
3229 "type" : "field",
3230 "value" : ["scalars", "acl_ipv4_dst"]
3231 },
3232 {
3233 "type" : "field",
3234 "value" : ["inner_ipv4", "dst_addr"]
3235 }
3236 ],
3237 "source_info" : {
3238 "filename" : "include/control/acl.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08003239 "line" : 99,
Wailok Shum4f51bde2021-06-11 22:48:41 +08003240 "column" : 12,
3241 "source_fragment" : "ipv4_dst = hdr.inner_ipv4.dst_addr"
3242 }
3243 },
3244 {
3245 "op" : "assign",
3246 "parameters" : [
3247 {
3248 "type" : "field",
3249 "value" : ["scalars", "acl_ip_proto"]
3250 },
3251 {
3252 "type" : "field",
3253 "value" : ["inner_ipv4", "protocol"]
3254 }
3255 ],
3256 "source_info" : {
3257 "filename" : "include/control/acl.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08003258 "line" : 100,
Wailok Shum4f51bde2021-06-11 22:48:41 +08003259 "column" : 12,
3260 "source_fragment" : "ip_proto = hdr.inner_ipv4.protocol"
3261 }
3262 }
3263 ]
3264 },
3265 {
Wailok Shumfb7e7872021-06-18 17:30:08 +08003266 "name" : "acl113",
3267 "id" : 34,
Wailok Shum4f51bde2021-06-11 22:48:41 +08003268 "runtime_data" : [],
3269 "primitives" : [
3270 {
3271 "op" : "assign",
3272 "parameters" : [
3273 {
3274 "type" : "field",
3275 "value" : ["scalars", "acl_l4_sport"]
3276 },
3277 {
3278 "type" : "field",
3279 "value" : ["tcp", "sport"]
3280 }
3281 ],
3282 "source_info" : {
3283 "filename" : "include/control/acl.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08003284 "line" : 113,
Wailok Shum4f51bde2021-06-11 22:48:41 +08003285 "column" : 16,
3286 "source_fragment" : "l4_sport = hdr.tcp.sport"
3287 }
3288 },
3289 {
3290 "op" : "assign",
3291 "parameters" : [
3292 {
3293 "type" : "field",
3294 "value" : ["scalars", "acl_l4_dport"]
3295 },
3296 {
3297 "type" : "field",
3298 "value" : ["tcp", "dport"]
3299 }
3300 ],
3301 "source_info" : {
3302 "filename" : "include/control/acl.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08003303 "line" : 114,
Wailok Shum4f51bde2021-06-11 22:48:41 +08003304 "column" : 16,
3305 "source_fragment" : "l4_dport = hdr.tcp.dport"
3306 }
3307 }
3308 ]
3309 },
3310 {
Wailok Shumfb7e7872021-06-18 17:30:08 +08003311 "name" : "acl116",
3312 "id" : 35,
Wailok Shum4f51bde2021-06-11 22:48:41 +08003313 "runtime_data" : [],
3314 "primitives" : [
3315 {
3316 "op" : "assign",
3317 "parameters" : [
3318 {
3319 "type" : "field",
3320 "value" : ["scalars", "acl_l4_sport"]
3321 },
3322 {
3323 "type" : "field",
3324 "value" : ["udp", "sport"]
3325 }
3326 ],
3327 "source_info" : {
3328 "filename" : "include/control/acl.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08003329 "line" : 116,
Wailok Shum4f51bde2021-06-11 22:48:41 +08003330 "column" : 16,
3331 "source_fragment" : "l4_sport = hdr.udp.sport"
3332 }
3333 },
3334 {
3335 "op" : "assign",
3336 "parameters" : [
3337 {
3338 "type" : "field",
3339 "value" : ["scalars", "acl_l4_dport"]
3340 },
3341 {
3342 "type" : "field",
3343 "value" : ["udp", "dport"]
3344 }
3345 ],
3346 "source_info" : {
3347 "filename" : "include/control/acl.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08003348 "line" : 117,
Wailok Shum4f51bde2021-06-11 22:48:41 +08003349 "column" : 16,
3350 "source_fragment" : "l4_dport = hdr.udp.dport"
3351 }
3352 }
3353 ]
3354 },
3355 {
Wailok Shumfb7e7872021-06-18 17:30:08 +08003356 "name" : "acl109",
3357 "id" : 36,
Wailok Shum4f51bde2021-06-11 22:48:41 +08003358 "runtime_data" : [],
3359 "primitives" : [
3360 {
3361 "op" : "assign",
3362 "parameters" : [
3363 {
3364 "type" : "field",
3365 "value" : ["scalars", "acl_ipv4_src"]
3366 },
3367 {
3368 "type" : "field",
3369 "value" : ["ipv4", "src_addr"]
3370 }
3371 ],
3372 "source_info" : {
3373 "filename" : "include/control/acl.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08003374 "line" : 109,
Wailok Shum4f51bde2021-06-11 22:48:41 +08003375 "column" : 12,
3376 "source_fragment" : "ipv4_src = hdr.ipv4.src_addr"
3377 }
3378 },
3379 {
3380 "op" : "assign",
3381 "parameters" : [
3382 {
3383 "type" : "field",
3384 "value" : ["scalars", "acl_ipv4_dst"]
3385 },
3386 {
3387 "type" : "field",
3388 "value" : ["ipv4", "dst_addr"]
3389 }
3390 ],
3391 "source_info" : {
3392 "filename" : "include/control/acl.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08003393 "line" : 110,
Wailok Shum4f51bde2021-06-11 22:48:41 +08003394 "column" : 12,
3395 "source_fragment" : "ipv4_dst = hdr.ipv4.dst_addr"
3396 }
3397 },
3398 {
3399 "op" : "assign",
3400 "parameters" : [
3401 {
3402 "type" : "field",
3403 "value" : ["scalars", "acl_ip_proto"]
3404 },
3405 {
3406 "type" : "field",
3407 "value" : ["ipv4", "protocol"]
3408 }
3409 ],
3410 "source_info" : {
3411 "filename" : "include/control/acl.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08003412 "line" : 111,
Wailok Shum4f51bde2021-06-11 22:48:41 +08003413 "column" : 12,
3414 "source_fragment" : "ip_proto = hdr.ipv4.protocol"
3415 }
3416 }
3417 ]
3418 },
3419 {
3420 "name" : "acl27",
Wailok Shumfb7e7872021-06-18 17:30:08 +08003421 "id" : 37,
Wailok Shum4f51bde2021-06-11 22:48:41 +08003422 "runtime_data" : [],
3423 "primitives" : [
3424 {
3425 "op" : "assign",
3426 "parameters" : [
3427 {
3428 "type" : "field",
3429 "value" : ["scalars", "acl_ipv4_src"]
3430 },
3431 {
3432 "type" : "hexstr",
3433 "value" : "0x00000000"
3434 }
3435 ],
3436 "source_info" : {
3437 "filename" : "include/control/acl.p4",
3438 "line" : 27,
3439 "column" : 4,
3440 "source_fragment" : "ipv4_addr_t ipv4_src = 0;"
3441 }
3442 },
3443 {
3444 "op" : "assign",
3445 "parameters" : [
3446 {
3447 "type" : "field",
3448 "value" : ["scalars", "acl_ipv4_dst"]
3449 },
3450 {
3451 "type" : "hexstr",
3452 "value" : "0x00000000"
3453 }
3454 ],
3455 "source_info" : {
3456 "filename" : "include/control/acl.p4",
3457 "line" : 28,
3458 "column" : 4,
3459 "source_fragment" : "ipv4_addr_t ipv4_dst = 0;"
3460 }
3461 },
3462 {
3463 "op" : "assign",
3464 "parameters" : [
3465 {
3466 "type" : "field",
3467 "value" : ["scalars", "acl_ip_proto"]
3468 },
3469 {
3470 "type" : "hexstr",
3471 "value" : "0x00"
3472 }
3473 ],
3474 "source_info" : {
3475 "filename" : "include/control/acl.p4",
3476 "line" : 29,
3477 "column" : 4,
3478 "source_fragment" : "bit<8> ip_proto = 0;"
3479 }
3480 },
3481 {
3482 "op" : "assign",
3483 "parameters" : [
3484 {
3485 "type" : "field",
3486 "value" : ["scalars", "acl_l4_sport"]
3487 },
3488 {
3489 "type" : "hexstr",
3490 "value" : "0x0000"
3491 }
3492 ],
3493 "source_info" : {
3494 "filename" : "include/control/acl.p4",
3495 "line" : 30,
3496 "column" : 4,
3497 "source_fragment" : "l4_port_t l4_sport = 0;"
3498 }
3499 },
3500 {
3501 "op" : "assign",
3502 "parameters" : [
3503 {
3504 "type" : "field",
3505 "value" : ["scalars", "acl_l4_dport"]
3506 },
3507 {
3508 "type" : "hexstr",
3509 "value" : "0x0000"
3510 }
3511 ],
3512 "source_info" : {
3513 "filename" : "include/control/acl.p4",
3514 "line" : 31,
3515 "column" : 4,
3516 "source_fragment" : "l4_port_t l4_dport = 0;"
3517 }
3518 }
3519 ]
3520 },
3521 {
3522 "name" : "port_counter31",
Wailok Shumfb7e7872021-06-18 17:30:08 +08003523 "id" : 38,
Wailok Shum4f51bde2021-06-11 22:48:41 +08003524 "runtime_data" : [],
3525 "primitives" : [
3526 {
3527 "op" : "assign",
3528 "parameters" : [
3529 {
3530 "type" : "field",
Carmelo Cascone2a308ff2021-06-01 18:31:57 -07003531 "value" : ["scalars", "tmp_8"]
Yi Tseng1d842672017-11-28 16:06:52 -08003532 },
3533 {
3534 "type" : "expression",
3535 "value" : {
3536 "type" : "expression",
3537 "value" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003538 "op" : "&",
3539 "left" : {
3540 "type" : "field",
3541 "value" : ["standard_metadata", "egress_spec"]
3542 },
Yi Tseng1d842672017-11-28 16:06:52 -08003543 "right" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003544 "type" : "hexstr",
3545 "value" : "0xffffffff"
Yi Tseng1d842672017-11-28 16:06:52 -08003546 }
3547 }
3548 }
3549 }
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003550 ],
3551 "source_info" : {
3552 "filename" : "include/control/port_counter.p4",
3553 "line" : 31,
3554 "column" : 38,
3555 "source_fragment" : "(bit<32>)standard_metadata.egress_spec"
3556 }
3557 },
Carmelo Casconea5400af2018-07-17 22:11:54 +02003558 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003559 "op" : "count",
Carmelo Casconea5400af2018-07-17 22:11:54 +02003560 "parameters" : [
3561 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003562 "type" : "counter_array",
3563 "value" : "FabricIngress.port_counters_control.egress_port_counter"
Carmelo Casconea5400af2018-07-17 22:11:54 +02003564 },
3565 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003566 "type" : "field",
Carmelo Cascone2a308ff2021-06-01 18:31:57 -07003567 "value" : ["scalars", "tmp_8"]
Carmelo Casconea5400af2018-07-17 22:11:54 +02003568 }
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003569 ],
3570 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003571 "filename" : "include/control/port_counter.p4",
3572 "line" : 31,
3573 "column" : 12,
3574 "source_fragment" : "egress_port_counter.count((bit<32>)standard_metadata.egress_spec)"
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003575 }
Carmelo Casconea5400af2018-07-17 22:11:54 +02003576 }
3577 ]
3578 },
3579 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02003580 "name" : "port_counter34",
Wailok Shumfb7e7872021-06-18 17:30:08 +08003581 "id" : 39,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003582 "runtime_data" : [],
3583 "primitives" : [
3584 {
3585 "op" : "assign",
3586 "parameters" : [
3587 {
3588 "type" : "field",
Carmelo Cascone2a308ff2021-06-01 18:31:57 -07003589 "value" : ["scalars", "tmp_9"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003590 },
3591 {
3592 "type" : "expression",
3593 "value" : {
3594 "type" : "expression",
3595 "value" : {
3596 "op" : "&",
3597 "left" : {
3598 "type" : "field",
3599 "value" : ["standard_metadata", "ingress_port"]
3600 },
3601 "right" : {
3602 "type" : "hexstr",
3603 "value" : "0xffffffff"
3604 }
3605 }
3606 }
3607 }
3608 ],
3609 "source_info" : {
3610 "filename" : "include/control/port_counter.p4",
3611 "line" : 34,
3612 "column" : 39,
3613 "source_fragment" : "(bit<32>)standard_metadata.ingress_port"
3614 }
3615 },
3616 {
3617 "op" : "count",
3618 "parameters" : [
3619 {
3620 "type" : "counter_array",
3621 "value" : "FabricIngress.port_counters_control.ingress_port_counter"
3622 },
3623 {
3624 "type" : "field",
Carmelo Cascone2a308ff2021-06-01 18:31:57 -07003625 "value" : ["scalars", "tmp_9"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003626 }
3627 ],
3628 "source_info" : {
3629 "filename" : "include/control/port_counter.p4",
3630 "line" : 34,
3631 "column" : 12,
3632 "source_fragment" : "ingress_port_counter.count((bit<32>)standard_metadata.ingress_port)"
3633 }
3634 }
3635 ]
3636 },
3637 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003638 "name" : "FabricEgress.egress_next.pop_mpls_if_present",
Wailok Shumfb7e7872021-06-18 17:30:08 +08003639 "id" : 40,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003640 "runtime_data" : [],
3641 "primitives" : [
3642 {
3643 "op" : "remove_header",
3644 "parameters" : [
3645 {
3646 "type" : "header",
3647 "value" : "mpls"
3648 }
3649 ],
3650 "source_info" : {
3651 "filename" : "include/control/next.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08003652 "line" : 204,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003653 "column" : 8,
3654 "source_fragment" : "hdr.mpls.setInvalid()"
3655 }
3656 },
3657 {
3658 "op" : "assign",
3659 "parameters" : [
3660 {
3661 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07003662 "value" : ["eth_type", "value"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003663 },
3664 {
3665 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02003666 "value" : ["scalars", "userMetadata.ip_eth_type"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003667 }
3668 ],
3669 "source_info" : {
3670 "filename" : "include/control/next.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08003671 "line" : 206,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003672 "column" : 8,
Daniele Moro5a2de712019-09-24 14:34:07 -07003673 "source_fragment" : "hdr.eth_type.value = fabric_metadata.ip_eth_type"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003674 }
3675 }
3676 ]
3677 },
3678 {
3679 "name" : "FabricEgress.egress_next.set_mpls",
Wailok Shumfb7e7872021-06-18 17:30:08 +08003680 "id" : 41,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003681 "runtime_data" : [],
3682 "primitives" : [
3683 {
3684 "op" : "add_header",
3685 "parameters" : [
3686 {
3687 "type" : "header",
3688 "value" : "mpls"
3689 }
3690 ],
3691 "source_info" : {
3692 "filename" : "include/control/next.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08003693 "line" : 211,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003694 "column" : 8,
3695 "source_fragment" : "hdr.mpls.setValid()"
3696 }
3697 },
3698 {
3699 "op" : "assign",
3700 "parameters" : [
3701 {
3702 "type" : "field",
3703 "value" : ["mpls", "label"]
3704 },
3705 {
3706 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02003707 "value" : ["scalars", "userMetadata.mpls_label"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003708 }
3709 ],
3710 "source_info" : {
3711 "filename" : "include/control/next.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08003712 "line" : 212,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003713 "column" : 8,
3714 "source_fragment" : "hdr.mpls.label = fabric_metadata.mpls_label"
3715 }
3716 },
3717 {
3718 "op" : "assign",
3719 "parameters" : [
3720 {
3721 "type" : "field",
3722 "value" : ["mpls", "tc"]
3723 },
3724 {
3725 "type" : "hexstr",
3726 "value" : "0x00"
3727 }
3728 ],
3729 "source_info" : {
3730 "filename" : "include/control/next.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08003731 "line" : 213,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003732 "column" : 8,
3733 "source_fragment" : "hdr.mpls.tc = 3w0"
3734 }
3735 },
3736 {
3737 "op" : "assign",
3738 "parameters" : [
3739 {
3740 "type" : "field",
3741 "value" : ["mpls", "bos"]
3742 },
3743 {
3744 "type" : "hexstr",
3745 "value" : "0x01"
3746 }
3747 ],
3748 "source_info" : {
3749 "filename" : "include/control/next.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08003750 "line" : 214,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003751 "column" : 8,
3752 "source_fragment" : "hdr.mpls.bos = 1w1"
3753 }
3754 },
3755 {
3756 "op" : "assign",
3757 "parameters" : [
3758 {
3759 "type" : "field",
3760 "value" : ["mpls", "ttl"]
3761 },
3762 {
3763 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02003764 "value" : ["scalars", "userMetadata.mpls_ttl"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003765 }
3766 ],
3767 "source_info" : {
3768 "filename" : "include/control/next.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08003769 "line" : 215,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003770 "column" : 8,
3771 "source_fragment" : "hdr.mpls.ttl = fabric_metadata.mpls_ttl"
3772 }
3773 },
3774 {
3775 "op" : "assign",
3776 "parameters" : [
3777 {
3778 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07003779 "value" : ["eth_type", "value"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003780 },
3781 {
3782 "type" : "hexstr",
3783 "value" : "0x8847"
3784 }
3785 ],
3786 "source_info" : {
3787 "filename" : "include/control/../define.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08003788 "line" : 130,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003789 "column" : 31,
3790 "source_fragment" : "0x8847; ..."
3791 }
3792 }
3793 ]
3794 },
3795 {
3796 "name" : "FabricEgress.egress_next.push_vlan",
Wailok Shumfb7e7872021-06-18 17:30:08 +08003797 "id" : 42,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003798 "runtime_data" : [],
3799 "primitives" : [
3800 {
3801 "op" : "add_header",
3802 "parameters" : [
3803 {
3804 "type" : "header",
3805 "value" : "vlan_tag"
3806 }
3807 ],
3808 "source_info" : {
3809 "filename" : "include/control/next.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08003810 "line" : 223,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003811 "column" : 8,
3812 "source_fragment" : "hdr.vlan_tag.setValid()"
3813 }
3814 },
3815 {
3816 "op" : "assign",
3817 "parameters" : [
3818 {
3819 "type" : "field",
3820 "value" : ["vlan_tag", "cfi"]
3821 },
3822 {
3823 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02003824 "value" : ["scalars", "userMetadata.vlan_cfi"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003825 }
3826 ],
3827 "source_info" : {
3828 "filename" : "include/control/next.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08003829 "line" : 224,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003830 "column" : 8,
3831 "source_fragment" : "hdr.vlan_tag.cfi = fabric_metadata.vlan_cfi"
3832 }
3833 },
3834 {
3835 "op" : "assign",
3836 "parameters" : [
3837 {
3838 "type" : "field",
3839 "value" : ["vlan_tag", "pri"]
3840 },
3841 {
3842 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02003843 "value" : ["scalars", "userMetadata.vlan_pri"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003844 }
3845 ],
3846 "source_info" : {
3847 "filename" : "include/control/next.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08003848 "line" : 225,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003849 "column" : 8,
3850 "source_fragment" : "hdr.vlan_tag.pri = fabric_metadata.vlan_pri"
3851 }
3852 },
3853 {
3854 "op" : "assign",
3855 "parameters" : [
3856 {
3857 "type" : "field",
3858 "value" : ["vlan_tag", "eth_type"]
3859 },
3860 {
Daniele Moro5a2de712019-09-24 14:34:07 -07003861 "type" : "hexstr",
3862 "value" : "0x8100"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003863 }
3864 ],
3865 "source_info" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07003866 "filename" : "include/control/../define.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08003867 "line" : 129,
Daniele Moro5a2de712019-09-24 14:34:07 -07003868 "column" : 31,
3869 "source_fragment" : "0x8100; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003870 }
3871 },
3872 {
3873 "op" : "assign",
3874 "parameters" : [
3875 {
3876 "type" : "field",
3877 "value" : ["vlan_tag", "vlan_id"]
3878 },
3879 {
3880 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02003881 "value" : ["scalars", "userMetadata.vlan_id"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003882 }
3883 ],
3884 "source_info" : {
3885 "filename" : "include/control/next.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08003886 "line" : 227,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003887 "column" : 8,
3888 "source_fragment" : "hdr.vlan_tag.vlan_id = fabric_metadata.vlan_id"
3889 }
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003890 }
3891 ]
3892 },
3893 {
3894 "name" : "FabricEgress.egress_next.pop_vlan",
Wailok Shumfb7e7872021-06-18 17:30:08 +08003895 "id" : 43,
Yi Tseng1d842672017-11-28 16:06:52 -08003896 "runtime_data" : [],
3897 "primitives" : [
3898 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003899 "op" : "remove_header",
3900 "parameters" : [
3901 {
3902 "type" : "header",
3903 "value" : "vlan_tag"
3904 }
3905 ],
3906 "source_info" : {
3907 "filename" : "include/control/next.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08003908 "line" : 256,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003909 "column" : 8,
3910 "source_fragment" : "hdr.vlan_tag.setInvalid()"
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003911 }
Carmelo Casconea5400af2018-07-17 22:11:54 +02003912 }
3913 ]
3914 },
3915 {
pierventre48e78822020-12-15 17:34:54 +01003916 "name" : "FabricEgress.egress_next.drop",
Wailok Shumfb7e7872021-06-18 17:30:08 +08003917 "id" : 44,
pierventre48e78822020-12-15 17:34:54 +01003918 "runtime_data" : [],
3919 "primitives" : [
3920 {
3921 "op" : "mark_to_drop",
3922 "parameters" : [
3923 {
3924 "type" : "header",
3925 "value" : "standard_metadata"
3926 }
3927 ],
3928 "source_info" : {
3929 "filename" : "include/control/next.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08003930 "line" : 261,
pierventre48e78822020-12-15 17:34:54 +01003931 "column" : 8,
3932 "source_fragment" : "mark_to_drop(standard_metadata)"
3933 }
3934 }
3935 ]
3936 },
3937 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02003938 "name" : "packetio41",
Wailok Shumfb7e7872021-06-18 17:30:08 +08003939 "id" : 45,
Carmelo Casconea5400af2018-07-17 22:11:54 +02003940 "runtime_data" : [],
3941 "primitives" : [
3942 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003943 "op" : "exit",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003944 "parameters" : [],
3945 "source_info" : {
3946 "filename" : "include/control/packetio.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003947 "line" : 41,
3948 "column" : 12,
3949 "source_fragment" : "exit"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003950 }
Carmelo Casconea5400af2018-07-17 22:11:54 +02003951 }
3952 ]
3953 },
3954 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02003955 "name" : "packetio44",
Wailok Shumfb7e7872021-06-18 17:30:08 +08003956 "id" : 46,
Carmelo Casconea5400af2018-07-17 22:11:54 +02003957 "runtime_data" : [],
3958 "primitives" : [
3959 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003960 "op" : "add_header",
3961 "parameters" : [
3962 {
3963 "type" : "header",
3964 "value" : "packet_in"
3965 }
3966 ],
3967 "source_info" : {
3968 "filename" : "include/control/packetio.p4",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07003969 "line" : 44,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003970 "column" : 12,
3971 "source_fragment" : "hdr.packet_in.setValid()"
3972 }
3973 },
3974 {
Carmelo Casconea5400af2018-07-17 22:11:54 +02003975 "op" : "assign",
3976 "parameters" : [
3977 {
3978 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003979 "value" : ["packet_in", "ingress_port"]
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003980 },
3981 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003982 "type" : "field",
3983 "value" : ["standard_metadata", "ingress_port"]
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003984 }
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003985 ],
3986 "source_info" : {
3987 "filename" : "include/control/packetio.p4",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07003988 "line" : 45,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003989 "column" : 12,
3990 "source_fragment" : "hdr.packet_in.ingress_port = standard_metadata.ingress_port"
3991 }
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003992 },
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003993 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003994 "op" : "exit",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003995 "parameters" : [],
3996 "source_info" : {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003997 "filename" : "include/control/packetio.p4",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07003998 "line" : 47,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003999 "column" : 12,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004000 "source_fragment" : "exit"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004001 }
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004002 }
4003 ]
4004 },
4005 {
Wailok Shumfb7e7872021-06-18 17:30:08 +08004006 "name" : "next283",
Wailok Shum4f51bde2021-06-11 22:48:41 +08004007 "id" : 47,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004008 "runtime_data" : [],
4009 "primitives" : [
4010 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004011 "op" : "mark_to_drop",
4012 "parameters" : [
4013 {
4014 "type" : "header",
4015 "value" : "standard_metadata"
4016 }
4017 ],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004018 "source_info" : {
4019 "filename" : "include/control/next.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08004020 "line" : 283,
4021 "column" : 12,
4022 "source_fragment" : "mark_to_drop(standard_metadata)"
4023 }
4024 }
4025 ]
4026 },
4027 {
4028 "name" : "next310",
4029 "id" : 48,
4030 "runtime_data" : [],
4031 "primitives" : [
4032 {
4033 "op" : "mark_to_drop",
4034 "parameters" : [
4035 {
4036 "type" : "header",
4037 "value" : "standard_metadata"
4038 }
4039 ],
4040 "source_info" : {
4041 "filename" : "include/control/next.p4",
4042 "line" : 310,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004043 "column" : 35,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004044 "source_fragment" : "mark_to_drop(standard_metadata)"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004045 }
Carmelo Casconea5400af2018-07-17 22:11:54 +02004046 }
4047 ]
4048 },
4049 {
Wailok Shumfb7e7872021-06-18 17:30:08 +08004050 "name" : "next309",
4051 "id" : 49,
Carmelo Casconea5400af2018-07-17 22:11:54 +02004052 "runtime_data" : [],
4053 "primitives" : [
4054 {
4055 "op" : "assign",
4056 "parameters" : [
4057 {
4058 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004059 "value" : ["mpls", "ttl"]
Carmelo Casconea5400af2018-07-17 22:11:54 +02004060 },
4061 {
4062 "type" : "expression",
4063 "value" : {
4064 "type" : "expression",
4065 "value" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004066 "op" : "&",
4067 "left" : {
4068 "type" : "expression",
4069 "value" : {
4070 "op" : "+",
4071 "left" : {
4072 "type" : "field",
4073 "value" : ["mpls", "ttl"]
4074 },
4075 "right" : {
4076 "type" : "hexstr",
4077 "value" : "0xff"
4078 }
4079 }
4080 },
Carmelo Casconea5400af2018-07-17 22:11:54 +02004081 "right" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004082 "type" : "hexstr",
4083 "value" : "0xff"
Carmelo Casconea5400af2018-07-17 22:11:54 +02004084 }
4085 }
4086 }
4087 }
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004088 ],
4089 "source_info" : {
4090 "filename" : "include/control/next.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08004091 "line" : 309,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004092 "column" : 12,
4093 "source_fragment" : "hdr.mpls.ttl = hdr.mpls.ttl - 1"
4094 }
Carmelo Casconea5400af2018-07-17 22:11:54 +02004095 }
4096 ]
4097 },
4098 {
Wailok Shumfb7e7872021-06-18 17:30:08 +08004099 "name" : "next314",
4100 "id" : 50,
Carmelo Casconea5400af2018-07-17 22:11:54 +02004101 "runtime_data" : [],
4102 "primitives" : [
4103 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004104 "op" : "mark_to_drop",
4105 "parameters" : [
4106 {
4107 "type" : "header",
4108 "value" : "standard_metadata"
4109 }
4110 ],
Carmelo Casconea5400af2018-07-17 22:11:54 +02004111 "source_info" : {
4112 "filename" : "include/control/next.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08004113 "line" : 314,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004114 "column" : 39,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004115 "source_fragment" : "mark_to_drop(standard_metadata)"
Carmelo Casconea5400af2018-07-17 22:11:54 +02004116 }
4117 }
4118 ]
4119 },
4120 {
Wailok Shumfb7e7872021-06-18 17:30:08 +08004121 "name" : "next313",
4122 "id" : 51,
Carmelo Casconea5400af2018-07-17 22:11:54 +02004123 "runtime_data" : [],
4124 "primitives" : [
4125 {
4126 "op" : "assign",
4127 "parameters" : [
4128 {
4129 "type" : "field",
Yi Tseng1d842672017-11-28 16:06:52 -08004130 "value" : ["ipv4", "ttl"]
4131 },
4132 {
4133 "type" : "expression",
4134 "value" : {
4135 "type" : "expression",
4136 "value" : {
4137 "op" : "&",
4138 "left" : {
4139 "type" : "expression",
4140 "value" : {
4141 "op" : "+",
4142 "left" : {
4143 "type" : "field",
4144 "value" : ["ipv4", "ttl"]
4145 },
4146 "right" : {
4147 "type" : "hexstr",
4148 "value" : "0xff"
4149 }
4150 }
4151 },
4152 "right" : {
4153 "type" : "hexstr",
4154 "value" : "0xff"
4155 }
4156 }
4157 }
4158 }
4159 ],
4160 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004161 "filename" : "include/control/next.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08004162 "line" : 313,
Carmelo Casconea5400af2018-07-17 22:11:54 +02004163 "column" : 16,
Yi Tseng1d842672017-11-28 16:06:52 -08004164 "source_fragment" : "hdr.ipv4.ttl = hdr.ipv4.ttl - 1"
4165 }
4166 }
4167 ]
Yi Tsengbe342052017-11-03 10:21:23 -07004168 }
4169 ],
4170 "pipelines" : [
4171 {
4172 "name" : "ingress",
4173 "id" : 0,
4174 "source_info" : {
4175 "filename" : "fabric.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08004176 "line" : 47,
Yi Tsengbe342052017-11-03 10:21:23 -07004177 "column" : 8,
4178 "source_fragment" : "FabricIngress"
4179 },
4180 "init_table" : "node_2",
4181 "tables" : [
4182 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004183 "name" : "tbl_packetio25",
Yi Tsengbe342052017-11-03 10:21:23 -07004184 "id" : 0,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004185 "source_info" : {
4186 "filename" : "include/control/packetio.p4",
4187 "line" : 25,
4188 "column" : 42,
4189 "source_fragment" : "= hdr.packet_out.egress_port; ..."
4190 },
Yi Tsengbe342052017-11-03 10:21:23 -07004191 "key" : [],
4192 "match_type" : "exact",
4193 "type" : "simple",
4194 "max_size" : 1024,
4195 "with_counters" : false,
4196 "support_timeout" : false,
4197 "direct_meters" : null,
Wailok Shumfb7e7872021-06-18 17:30:08 +08004198 "action_ids" : [28],
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004199 "actions" : ["packetio25"],
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004200 "base_default_next" : "node_4",
Yi Tsengbe342052017-11-03 10:21:23 -07004201 "next_tables" : {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004202 "packetio25" : "node_4"
Yi Tsengbe342052017-11-03 10:21:23 -07004203 },
4204 "default_entry" : {
Wailok Shumfb7e7872021-06-18 17:30:08 +08004205 "action_id" : 28,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004206 "action_const" : true,
4207 "action_data" : [],
4208 "action_entry_const" : true
4209 }
4210 },
4211 {
Wailok Shumfb7e7872021-06-18 17:30:08 +08004212 "name" : "tbl_filtering113",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004213 "id" : 1,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004214 "source_info" : {
4215 "filename" : "include/control/filtering.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08004216 "line" : 113,
Daniele Moro7c3a0022019-07-12 13:38:34 -07004217 "column" : 36,
4218 "source_fragment" : "= hdr.vlan_tag.vlan_id; ..."
Carmelo Cascone3032b872019-04-13 01:23:54 -07004219 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004220 "key" : [],
4221 "match_type" : "exact",
4222 "type" : "simple",
4223 "max_size" : 1024,
4224 "with_counters" : false,
4225 "support_timeout" : false,
4226 "direct_meters" : null,
Wailok Shumfb7e7872021-06-18 17:30:08 +08004227 "action_ids" : [29],
4228 "actions" : ["filtering113"],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004229 "base_default_next" : "node_6",
4230 "next_tables" : {
Wailok Shumfb7e7872021-06-18 17:30:08 +08004231 "filtering113" : "node_6"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004232 },
4233 "default_entry" : {
Wailok Shumfb7e7872021-06-18 17:30:08 +08004234 "action_id" : 29,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004235 "action_const" : true,
4236 "action_data" : [],
4237 "action_entry_const" : true
4238 }
4239 },
4240 {
Wailok Shumfb7e7872021-06-18 17:30:08 +08004241 "name" : "tbl_filtering129",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004242 "id" : 2,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004243 "source_info" : {
4244 "filename" : "include/control/filtering.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08004245 "line" : 129,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004246 "column" : 37,
4247 "source_fragment" : "="
4248 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004249 "key" : [],
4250 "match_type" : "exact",
4251 "type" : "simple",
4252 "max_size" : 1024,
4253 "with_counters" : false,
4254 "support_timeout" : false,
4255 "direct_meters" : null,
Wailok Shumfb7e7872021-06-18 17:30:08 +08004256 "action_ids" : [30],
4257 "actions" : ["filtering129"],
Daniele Moro5a2de712019-09-24 14:34:07 -07004258 "base_default_next" : "FabricIngress.filtering.ingress_port_vlan",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004259 "next_tables" : {
Wailok Shumfb7e7872021-06-18 17:30:08 +08004260 "filtering129" : "FabricIngress.filtering.ingress_port_vlan"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004261 },
4262 "default_entry" : {
Wailok Shumfb7e7872021-06-18 17:30:08 +08004263 "action_id" : 30,
Yi Tsengbe342052017-11-03 10:21:23 -07004264 "action_const" : true,
4265 "action_data" : [],
4266 "action_entry_const" : true
4267 }
4268 },
4269 {
Daniele Moro7c3a0022019-07-12 13:38:34 -07004270 "name" : "FabricIngress.filtering.ingress_port_vlan",
Daniele Moro5a2de712019-09-24 14:34:07 -07004271 "id" : 3,
Daniele Moro7c3a0022019-07-12 13:38:34 -07004272 "source_info" : {
4273 "filename" : "include/control/filtering.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08004274 "line" : 55,
Yi Tsengbe342052017-11-03 10:21:23 -07004275 "column" : 10,
4276 "source_fragment" : "ingress_port_vlan"
4277 },
4278 "key" : [
4279 {
4280 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004281 "name" : "ig_port",
Yi Tsengbe342052017-11-03 10:21:23 -07004282 "target" : ["standard_metadata", "ingress_port"],
4283 "mask" : null
4284 },
4285 {
4286 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004287 "name" : "vlan_is_valid",
Yi Tsengbe342052017-11-03 10:21:23 -07004288 "target" : ["vlan_tag", "$valid$"],
4289 "mask" : null
4290 },
4291 {
4292 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004293 "name" : "vlan_id",
Yi Tsengbe342052017-11-03 10:21:23 -07004294 "target" : ["vlan_tag", "vlan_id"],
4295 "mask" : null
4296 }
4297 ],
4298 "match_type" : "ternary",
4299 "type" : "simple",
4300 "max_size" : 1024,
Yi Tsengbd46d052018-01-22 17:18:16 -08004301 "with_counters" : true,
Yi Tsengbe342052017-11-03 10:21:23 -07004302 "support_timeout" : false,
4303 "direct_meters" : null,
Wailok Shumfb7e7872021-06-18 17:30:08 +08004304 "action_ids" : [8, 9, 10],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004305 "actions" : ["FabricIngress.filtering.deny", "FabricIngress.filtering.permit", "FabricIngress.filtering.permit_with_internal_vlan"],
4306 "base_default_next" : "FabricIngress.filtering.fwd_classifier",
Yi Tsengbe342052017-11-03 10:21:23 -07004307 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004308 "FabricIngress.filtering.deny" : "FabricIngress.filtering.fwd_classifier",
4309 "FabricIngress.filtering.permit" : "FabricIngress.filtering.fwd_classifier",
4310 "FabricIngress.filtering.permit_with_internal_vlan" : "FabricIngress.filtering.fwd_classifier"
Yi Tsengbe342052017-11-03 10:21:23 -07004311 },
4312 "default_entry" : {
Wailok Shumfb7e7872021-06-18 17:30:08 +08004313 "action_id" : 8,
Yi Tsengbe342052017-11-03 10:21:23 -07004314 "action_const" : true,
4315 "action_data" : [],
4316 "action_entry_const" : true
4317 }
4318 },
4319 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004320 "name" : "FabricIngress.filtering.fwd_classifier",
Daniele Moro5a2de712019-09-24 14:34:07 -07004321 "id" : 4,
Yi Tsengbe342052017-11-03 10:21:23 -07004322 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004323 "filename" : "include/control/filtering.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08004324 "line" : 94,
Yi Tsengbe342052017-11-03 10:21:23 -07004325 "column" : 10,
4326 "source_fragment" : "fwd_classifier"
4327 },
4328 "key" : [
4329 {
4330 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004331 "name" : "ig_port",
Yi Tsengbe342052017-11-03 10:21:23 -07004332 "target" : ["standard_metadata", "ingress_port"],
4333 "mask" : null
4334 },
4335 {
Charles Chan384aea22018-08-23 22:08:02 -07004336 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004337 "name" : "eth_dst",
Yi Tsengbe342052017-11-03 10:21:23 -07004338 "target" : ["ethernet", "dst_addr"],
4339 "mask" : null
4340 },
4341 {
Daniele Moro5a2de712019-09-24 14:34:07 -07004342 "match_type" : "ternary",
4343 "name" : "eth_type",
4344 "target" : ["eth_type", "value"],
Daniele Moro7c3a0022019-07-12 13:38:34 -07004345 "mask" : null
4346 },
4347 {
4348 "match_type" : "exact",
Daniele Moro5a2de712019-09-24 14:34:07 -07004349 "name" : "ip_eth_type",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004350 "target" : ["scalars", "userMetadata.ip_eth_type"],
Yi Tsengbe342052017-11-03 10:21:23 -07004351 "mask" : null
4352 }
4353 ],
Charles Chan384aea22018-08-23 22:08:02 -07004354 "match_type" : "ternary",
Yi Tsengbe342052017-11-03 10:21:23 -07004355 "type" : "simple",
4356 "max_size" : 1024,
Yi Tsengbd46d052018-01-22 17:18:16 -08004357 "with_counters" : true,
Yi Tsengbe342052017-11-03 10:21:23 -07004358 "support_timeout" : false,
4359 "direct_meters" : null,
Wailok Shumfb7e7872021-06-18 17:30:08 +08004360 "action_ids" : [11],
Yi Tseng27b9bc02018-04-12 14:52:40 +08004361 "actions" : ["FabricIngress.filtering.set_forwarding_type"],
Daniele Moro5a2de712019-09-24 14:34:07 -07004362 "base_default_next" : "node_10",
Yi Tsengbe342052017-11-03 10:21:23 -07004363 "next_tables" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07004364 "FabricIngress.filtering.set_forwarding_type" : "node_10"
Yi Tsengbe342052017-11-03 10:21:23 -07004365 },
4366 "default_entry" : {
Wailok Shumfb7e7872021-06-18 17:30:08 +08004367 "action_id" : 11,
Yi Tsengbe342052017-11-03 10:21:23 -07004368 "action_const" : true,
4369 "action_data" : ["0x0"],
4370 "action_entry_const" : true
4371 }
4372 },
4373 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004374 "name" : "FabricIngress.forwarding.bridging",
Daniele Moro5a2de712019-09-24 14:34:07 -07004375 "id" : 5,
Yi Tsengbe342052017-11-03 10:21:23 -07004376 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004377 "filename" : "include/control/forwarding.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07004378 "line" : 46,
Yi Tsengbe342052017-11-03 10:21:23 -07004379 "column" : 10,
4380 "source_fragment" : "bridging"
4381 },
4382 "key" : [
4383 {
4384 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004385 "name" : "vlan_id",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004386 "target" : ["scalars", "userMetadata.vlan_id"],
Yi Tsengbe342052017-11-03 10:21:23 -07004387 "mask" : null
4388 },
4389 {
4390 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004391 "name" : "eth_dst",
Yi Tsengbe342052017-11-03 10:21:23 -07004392 "target" : ["ethernet", "dst_addr"],
4393 "mask" : null
4394 }
4395 ],
4396 "match_type" : "ternary",
4397 "type" : "simple",
4398 "max_size" : 1024,
Yi Tsengbd46d052018-01-22 17:18:16 -08004399 "with_counters" : true,
Yi Tsengbe342052017-11-03 10:21:23 -07004400 "support_timeout" : false,
4401 "direct_meters" : null,
Wailok Shumfb7e7872021-06-18 17:30:08 +08004402 "action_ids" : [12, 0],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004403 "actions" : ["FabricIngress.forwarding.set_next_id_bridging", "nop"],
Wailok Shumfb7e7872021-06-18 17:30:08 +08004404 "base_default_next" : "node_17",
Yi Tseng1d842672017-11-28 16:06:52 -08004405 "next_tables" : {
Wailok Shumfb7e7872021-06-18 17:30:08 +08004406 "FabricIngress.forwarding.set_next_id_bridging" : "node_17",
4407 "nop" : "node_17"
Yi Tseng1d842672017-11-28 16:06:52 -08004408 },
4409 "default_entry" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004410 "action_id" : 0,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004411 "action_const" : true,
Yi Tseng1d842672017-11-28 16:06:52 -08004412 "action_data" : [],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004413 "action_entry_const" : true
Yi Tseng1d842672017-11-28 16:06:52 -08004414 }
4415 },
4416 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004417 "name" : "FabricIngress.forwarding.mpls",
Daniele Moro5a2de712019-09-24 14:34:07 -07004418 "id" : 6,
Yi Tseng1d842672017-11-28 16:06:52 -08004419 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004420 "filename" : "include/control/forwarding.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07004421 "line" : 71,
Yi Tseng1d842672017-11-28 16:06:52 -08004422 "column" : 10,
4423 "source_fragment" : "mpls"
4424 },
4425 "key" : [
4426 {
4427 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004428 "name" : "mpls_label",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004429 "target" : ["scalars", "userMetadata.mpls_label"],
Yi Tseng1d842672017-11-28 16:06:52 -08004430 "mask" : null
4431 }
4432 ],
4433 "match_type" : "exact",
4434 "type" : "simple",
4435 "max_size" : 1024,
Yi Tsengbd46d052018-01-22 17:18:16 -08004436 "with_counters" : true,
Yi Tseng1d842672017-11-28 16:06:52 -08004437 "support_timeout" : false,
4438 "direct_meters" : null,
Wailok Shumfb7e7872021-06-18 17:30:08 +08004439 "action_ids" : [13, 1],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004440 "actions" : ["FabricIngress.forwarding.pop_mpls_and_next", "nop"],
Wailok Shumfb7e7872021-06-18 17:30:08 +08004441 "base_default_next" : "node_17",
Yi Tseng1d842672017-11-28 16:06:52 -08004442 "next_tables" : {
Wailok Shumfb7e7872021-06-18 17:30:08 +08004443 "FabricIngress.forwarding.pop_mpls_and_next" : "node_17",
4444 "nop" : "node_17"
Yi Tseng1d842672017-11-28 16:06:52 -08004445 },
4446 "default_entry" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004447 "action_id" : 1,
Yi Tseng1d842672017-11-28 16:06:52 -08004448 "action_const" : true,
4449 "action_data" : [],
4450 "action_entry_const" : true
4451 }
4452 },
4453 {
Charles Chan384aea22018-08-23 22:08:02 -07004454 "name" : "FabricIngress.forwarding.routing_v4",
Daniele Moro5a2de712019-09-24 14:34:07 -07004455 "id" : 7,
Yi Tseng1d842672017-11-28 16:06:52 -08004456 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004457 "filename" : "include/control/forwarding.p4",
Daniele Moro5a2de712019-09-24 14:34:07 -07004458 "line" : 108,
Yi Tseng1d842672017-11-28 16:06:52 -08004459 "column" : 10,
Charles Chan384aea22018-08-23 22:08:02 -07004460 "source_fragment" : "routing_v4"
Yi Tseng1d842672017-11-28 16:06:52 -08004461 },
4462 "key" : [
4463 {
4464 "match_type" : "lpm",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004465 "name" : "ipv4_dst",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004466 "target" : ["scalars", "userMetadata.ipv4_dst_addr"],
Yi Tseng1d842672017-11-28 16:06:52 -08004467 "mask" : null
4468 }
4469 ],
4470 "match_type" : "lpm",
4471 "type" : "simple",
4472 "max_size" : 1024,
Daniele Moro5a2de712019-09-24 14:34:07 -07004473 "with_counters" : false,
Yi Tseng1d842672017-11-28 16:06:52 -08004474 "support_timeout" : false,
4475 "direct_meters" : null,
Wailok Shumfb7e7872021-06-18 17:30:08 +08004476 "action_ids" : [14, 15, 2],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004477 "actions" : ["FabricIngress.forwarding.set_next_id_routing_v4", "FabricIngress.forwarding.nop_routing_v4", "nop"],
Wailok Shumfb7e7872021-06-18 17:30:08 +08004478 "base_default_next" : "node_17",
Yi Tsengbe342052017-11-03 10:21:23 -07004479 "next_tables" : {
Wailok Shumfb7e7872021-06-18 17:30:08 +08004480 "FabricIngress.forwarding.set_next_id_routing_v4" : "node_17",
4481 "FabricIngress.forwarding.nop_routing_v4" : "node_17",
4482 "nop" : "node_17"
Yi Tsengbe342052017-11-03 10:21:23 -07004483 },
4484 "default_entry" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004485 "action_id" : 2,
CyberHasHe9ba39c2019-10-11 05:59:12 +08004486 "action_const" : false,
Yi Tsengbe342052017-11-03 10:21:23 -07004487 "action_data" : [],
CyberHasHe9ba39c2019-10-11 05:59:12 +08004488 "action_entry_const" : false
Yi Tsengbe342052017-11-03 10:21:23 -07004489 }
4490 },
4491 {
Wailok Shumfb7e7872021-06-18 17:30:08 +08004492 "name" : "FabricIngress.pre_next.next_mpls",
Daniele Moro5a2de712019-09-24 14:34:07 -07004493 "id" : 8,
Yi Tsengbe342052017-11-03 10:21:23 -07004494 "source_info" : {
Wailok Shumfb7e7872021-06-18 17:30:08 +08004495 "filename" : "include/control/pre_next.p4",
4496 "line" : 36,
4497 "column" : 10,
4498 "source_fragment" : "next_mpls"
4499 },
4500 "key" : [
4501 {
4502 "match_type" : "exact",
4503 "name" : "next_id",
4504 "target" : ["scalars", "userMetadata.next_id"],
4505 "mask" : null
4506 }
4507 ],
4508 "match_type" : "exact",
4509 "type" : "simple",
4510 "max_size" : 1024,
4511 "with_counters" : true,
4512 "support_timeout" : false,
4513 "direct_meters" : null,
4514 "action_ids" : [16, 3],
4515 "actions" : ["FabricIngress.pre_next.set_mpls_label", "nop"],
4516 "base_default_next" : "FabricIngress.pre_next.next_vlan",
4517 "next_tables" : {
4518 "FabricIngress.pre_next.set_mpls_label" : "FabricIngress.pre_next.next_vlan",
4519 "nop" : "FabricIngress.pre_next.next_vlan"
4520 },
4521 "default_entry" : {
4522 "action_id" : 3,
4523 "action_const" : true,
4524 "action_data" : [],
4525 "action_entry_const" : true
4526 }
4527 },
4528 {
4529 "name" : "FabricIngress.pre_next.next_vlan",
4530 "id" : 9,
4531 "source_info" : {
4532 "filename" : "include/control/pre_next.p4",
4533 "line" : 73,
4534 "column" : 10,
4535 "source_fragment" : "next_vlan"
4536 },
4537 "key" : [
4538 {
4539 "match_type" : "exact",
4540 "name" : "next_id",
4541 "target" : ["scalars", "userMetadata.next_id"],
4542 "mask" : null
4543 }
4544 ],
4545 "match_type" : "exact",
4546 "type" : "simple",
4547 "max_size" : 1024,
4548 "with_counters" : true,
4549 "support_timeout" : false,
4550 "direct_meters" : null,
4551 "action_ids" : [17, 4],
4552 "actions" : ["FabricIngress.pre_next.set_vlan", "nop"],
4553 "base_default_next" : "tbl_acl27",
4554 "next_tables" : {
4555 "FabricIngress.pre_next.set_vlan" : "tbl_acl27",
4556 "nop" : "tbl_acl27"
4557 },
4558 "default_entry" : {
4559 "action_id" : 4,
4560 "action_const" : true,
4561 "action_data" : [],
4562 "action_entry_const" : true
4563 }
4564 },
4565 {
4566 "name" : "tbl_acl27",
4567 "id" : 10,
4568 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004569 "filename" : "include/control/acl.p4",
Wailok Shum4f51bde2021-06-11 22:48:41 +08004570 "line" : 27,
4571 "column" : 4,
4572 "source_fragment" : "ipv4_addr_t ipv4_src = 0; ..."
4573 },
4574 "key" : [],
4575 "match_type" : "exact",
4576 "type" : "simple",
4577 "max_size" : 1024,
4578 "with_counters" : false,
4579 "support_timeout" : false,
4580 "direct_meters" : null,
Wailok Shumfb7e7872021-06-18 17:30:08 +08004581 "action_ids" : [37],
Wailok Shum4f51bde2021-06-11 22:48:41 +08004582 "actions" : ["acl27"],
Wailok Shumfb7e7872021-06-18 17:30:08 +08004583 "base_default_next" : "node_21",
Wailok Shum4f51bde2021-06-11 22:48:41 +08004584 "next_tables" : {
Wailok Shumfb7e7872021-06-18 17:30:08 +08004585 "acl27" : "node_21"
Wailok Shum4f51bde2021-06-11 22:48:41 +08004586 },
4587 "default_entry" : {
Wailok Shumfb7e7872021-06-18 17:30:08 +08004588 "action_id" : 37,
Wailok Shum4f51bde2021-06-11 22:48:41 +08004589 "action_const" : true,
4590 "action_data" : [],
4591 "action_entry_const" : true
4592 }
4593 },
4594 {
Wailok Shumfb7e7872021-06-18 17:30:08 +08004595 "name" : "tbl_acl98",
4596 "id" : 11,
Wailok Shum4f51bde2021-06-11 22:48:41 +08004597 "source_info" : {
4598 "filename" : "include/control/acl.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08004599 "line" : 98,
Wailok Shum4f51bde2021-06-11 22:48:41 +08004600 "column" : 21,
4601 "source_fragment" : "= hdr.inner_ipv4.src_addr; ..."
4602 },
4603 "key" : [],
4604 "match_type" : "exact",
4605 "type" : "simple",
4606 "max_size" : 1024,
4607 "with_counters" : false,
4608 "support_timeout" : false,
4609 "direct_meters" : null,
Wailok Shumfb7e7872021-06-18 17:30:08 +08004610 "action_ids" : [33],
4611 "actions" : ["acl98"],
4612 "base_default_next" : "node_23",
Wailok Shum4f51bde2021-06-11 22:48:41 +08004613 "next_tables" : {
Wailok Shumfb7e7872021-06-18 17:30:08 +08004614 "acl98" : "node_23"
Wailok Shum4f51bde2021-06-11 22:48:41 +08004615 },
4616 "default_entry" : {
Wailok Shumfb7e7872021-06-18 17:30:08 +08004617 "action_id" : 33,
Wailok Shum4f51bde2021-06-11 22:48:41 +08004618 "action_const" : true,
4619 "action_data" : [],
4620 "action_entry_const" : true
4621 }
4622 },
4623 {
Wailok Shumfb7e7872021-06-18 17:30:08 +08004624 "name" : "tbl_acl102",
4625 "id" : 12,
Wailok Shum4f51bde2021-06-11 22:48:41 +08004626 "source_info" : {
4627 "filename" : "include/control/acl.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08004628 "line" : 102,
Wailok Shum4f51bde2021-06-11 22:48:41 +08004629 "column" : 25,
4630 "source_fragment" : "= hdr.inner_tcp.sport; ..."
4631 },
4632 "key" : [],
4633 "match_type" : "exact",
4634 "type" : "simple",
4635 "max_size" : 1024,
4636 "with_counters" : false,
4637 "support_timeout" : false,
4638 "direct_meters" : null,
Wailok Shumfb7e7872021-06-18 17:30:08 +08004639 "action_ids" : [31],
4640 "actions" : ["acl102"],
Wailok Shum4f51bde2021-06-11 22:48:41 +08004641 "base_default_next" : "FabricIngress.acl.acl",
4642 "next_tables" : {
Wailok Shumfb7e7872021-06-18 17:30:08 +08004643 "acl102" : "FabricIngress.acl.acl"
Wailok Shum4f51bde2021-06-11 22:48:41 +08004644 },
4645 "default_entry" : {
Wailok Shumfb7e7872021-06-18 17:30:08 +08004646 "action_id" : 31,
Wailok Shum4f51bde2021-06-11 22:48:41 +08004647 "action_const" : true,
4648 "action_data" : [],
4649 "action_entry_const" : true
4650 }
4651 },
4652 {
Wailok Shumfb7e7872021-06-18 17:30:08 +08004653 "name" : "tbl_acl105",
4654 "id" : 13,
Wailok Shum4f51bde2021-06-11 22:48:41 +08004655 "source_info" : {
4656 "filename" : "include/control/acl.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08004657 "line" : 105,
Wailok Shum4f51bde2021-06-11 22:48:41 +08004658 "column" : 25,
4659 "source_fragment" : "= hdr.inner_udp.sport; ..."
4660 },
4661 "key" : [],
4662 "match_type" : "exact",
4663 "type" : "simple",
4664 "max_size" : 1024,
4665 "with_counters" : false,
4666 "support_timeout" : false,
4667 "direct_meters" : null,
Wailok Shumfb7e7872021-06-18 17:30:08 +08004668 "action_ids" : [32],
4669 "actions" : ["acl105"],
Wailok Shum4f51bde2021-06-11 22:48:41 +08004670 "base_default_next" : "FabricIngress.acl.acl",
4671 "next_tables" : {
Wailok Shumfb7e7872021-06-18 17:30:08 +08004672 "acl105" : "FabricIngress.acl.acl"
Wailok Shum4f51bde2021-06-11 22:48:41 +08004673 },
4674 "default_entry" : {
Wailok Shumfb7e7872021-06-18 17:30:08 +08004675 "action_id" : 32,
Wailok Shum4f51bde2021-06-11 22:48:41 +08004676 "action_const" : true,
4677 "action_data" : [],
4678 "action_entry_const" : true
4679 }
4680 },
4681 {
Wailok Shumfb7e7872021-06-18 17:30:08 +08004682 "name" : "tbl_acl109",
4683 "id" : 14,
Wailok Shum4f51bde2021-06-11 22:48:41 +08004684 "source_info" : {
4685 "filename" : "include/control/acl.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08004686 "line" : 109,
Wailok Shum4f51bde2021-06-11 22:48:41 +08004687 "column" : 21,
4688 "source_fragment" : "= hdr.ipv4.src_addr; ..."
4689 },
4690 "key" : [],
4691 "match_type" : "exact",
4692 "type" : "simple",
4693 "max_size" : 1024,
4694 "with_counters" : false,
4695 "support_timeout" : false,
4696 "direct_meters" : null,
Wailok Shumfb7e7872021-06-18 17:30:08 +08004697 "action_ids" : [36],
4698 "actions" : ["acl109"],
4699 "base_default_next" : "node_29",
Wailok Shum4f51bde2021-06-11 22:48:41 +08004700 "next_tables" : {
Wailok Shumfb7e7872021-06-18 17:30:08 +08004701 "acl109" : "node_29"
Wailok Shum4f51bde2021-06-11 22:48:41 +08004702 },
4703 "default_entry" : {
Wailok Shumfb7e7872021-06-18 17:30:08 +08004704 "action_id" : 36,
Wailok Shum4f51bde2021-06-11 22:48:41 +08004705 "action_const" : true,
4706 "action_data" : [],
4707 "action_entry_const" : true
4708 }
4709 },
4710 {
Wailok Shumfb7e7872021-06-18 17:30:08 +08004711 "name" : "tbl_acl113",
4712 "id" : 15,
Wailok Shum4f51bde2021-06-11 22:48:41 +08004713 "source_info" : {
4714 "filename" : "include/control/acl.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08004715 "line" : 113,
Wailok Shum4f51bde2021-06-11 22:48:41 +08004716 "column" : 25,
4717 "source_fragment" : "= hdr.tcp.sport; ..."
4718 },
4719 "key" : [],
4720 "match_type" : "exact",
4721 "type" : "simple",
4722 "max_size" : 1024,
4723 "with_counters" : false,
4724 "support_timeout" : false,
4725 "direct_meters" : null,
Wailok Shumfb7e7872021-06-18 17:30:08 +08004726 "action_ids" : [34],
4727 "actions" : ["acl113"],
Wailok Shum4f51bde2021-06-11 22:48:41 +08004728 "base_default_next" : "FabricIngress.acl.acl",
4729 "next_tables" : {
Wailok Shumfb7e7872021-06-18 17:30:08 +08004730 "acl113" : "FabricIngress.acl.acl"
Wailok Shum4f51bde2021-06-11 22:48:41 +08004731 },
4732 "default_entry" : {
Wailok Shumfb7e7872021-06-18 17:30:08 +08004733 "action_id" : 34,
Wailok Shum4f51bde2021-06-11 22:48:41 +08004734 "action_const" : true,
4735 "action_data" : [],
4736 "action_entry_const" : true
4737 }
4738 },
4739 {
Wailok Shumfb7e7872021-06-18 17:30:08 +08004740 "name" : "tbl_acl116",
4741 "id" : 16,
Wailok Shum4f51bde2021-06-11 22:48:41 +08004742 "source_info" : {
4743 "filename" : "include/control/acl.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08004744 "line" : 116,
Wailok Shum4f51bde2021-06-11 22:48:41 +08004745 "column" : 25,
4746 "source_fragment" : "= hdr.udp.sport; ..."
4747 },
4748 "key" : [],
4749 "match_type" : "exact",
4750 "type" : "simple",
4751 "max_size" : 1024,
4752 "with_counters" : false,
4753 "support_timeout" : false,
4754 "direct_meters" : null,
Wailok Shumfb7e7872021-06-18 17:30:08 +08004755 "action_ids" : [35],
4756 "actions" : ["acl116"],
Wailok Shum4f51bde2021-06-11 22:48:41 +08004757 "base_default_next" : "FabricIngress.acl.acl",
4758 "next_tables" : {
Wailok Shumfb7e7872021-06-18 17:30:08 +08004759 "acl116" : "FabricIngress.acl.acl"
Wailok Shum4f51bde2021-06-11 22:48:41 +08004760 },
4761 "default_entry" : {
Wailok Shumfb7e7872021-06-18 17:30:08 +08004762 "action_id" : 35,
Wailok Shum4f51bde2021-06-11 22:48:41 +08004763 "action_const" : true,
4764 "action_data" : [],
4765 "action_entry_const" : true
4766 }
4767 },
4768 {
4769 "name" : "FabricIngress.acl.acl",
Wailok Shumfb7e7872021-06-18 17:30:08 +08004770 "id" : 17,
Wailok Shum4f51bde2021-06-11 22:48:41 +08004771 "source_info" : {
4772 "filename" : "include/control/acl.p4",
4773 "line" : 66,
Yi Tsengbe342052017-11-03 10:21:23 -07004774 "column" : 10,
Yi Tsengbe342052017-11-03 10:21:23 -07004775 "source_fragment" : "acl"
4776 },
4777 "key" : [
4778 {
4779 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004780 "name" : "ig_port",
Yi Tsengbe342052017-11-03 10:21:23 -07004781 "target" : ["standard_metadata", "ingress_port"],
4782 "mask" : null
4783 },
4784 {
4785 "match_type" : "ternary",
Daniele Moro0cecfe12019-12-13 17:24:33 -08004786 "name" : "eth_dst",
Yi Tsengbe342052017-11-03 10:21:23 -07004787 "target" : ["ethernet", "dst_addr"],
4788 "mask" : null
4789 },
4790 {
4791 "match_type" : "ternary",
Daniele Moro0cecfe12019-12-13 17:24:33 -08004792 "name" : "eth_src",
Yi Tsengbe342052017-11-03 10:21:23 -07004793 "target" : ["ethernet", "src_addr"],
4794 "mask" : null
4795 },
4796 {
4797 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004798 "name" : "vlan_id",
Yi Tsengbe342052017-11-03 10:21:23 -07004799 "target" : ["vlan_tag", "vlan_id"],
4800 "mask" : null
4801 },
4802 {
4803 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004804 "name" : "eth_type",
Daniele Moro5a2de712019-09-24 14:34:07 -07004805 "target" : ["eth_type", "value"],
Yi Tseng8235a1a2018-07-24 20:57:28 +08004806 "mask" : null
4807 },
4808 {
4809 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004810 "name" : "ipv4_src",
Wailok Shum4f51bde2021-06-11 22:48:41 +08004811 "target" : ["scalars", "acl_ipv4_src"],
Yi Tsengbe342052017-11-03 10:21:23 -07004812 "mask" : null
4813 },
4814 {
4815 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004816 "name" : "ipv4_dst",
Wailok Shum4f51bde2021-06-11 22:48:41 +08004817 "target" : ["scalars", "acl_ipv4_dst"],
4818 "mask" : null
4819 },
4820 {
4821 "match_type" : "ternary",
4822 "name" : "ip_proto",
4823 "target" : ["scalars", "acl_ip_proto"],
Yi Tsengbe342052017-11-03 10:21:23 -07004824 "mask" : null
4825 },
4826 {
4827 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004828 "name" : "icmp_type",
Yi Tsengbe342052017-11-03 10:21:23 -07004829 "target" : ["icmp", "icmp_type"],
4830 "mask" : null
4831 },
4832 {
4833 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004834 "name" : "icmp_code",
Yi Tsengbe342052017-11-03 10:21:23 -07004835 "target" : ["icmp", "icmp_code"],
4836 "mask" : null
Wailok Shum4f51bde2021-06-11 22:48:41 +08004837 },
4838 {
4839 "match_type" : "ternary",
4840 "name" : "l4_sport",
4841 "target" : ["scalars", "acl_l4_sport"],
4842 "mask" : null
4843 },
4844 {
4845 "match_type" : "ternary",
4846 "name" : "l4_dport",
4847 "target" : ["scalars", "acl_l4_dport"],
4848 "mask" : null
Wailok Shumfb7e7872021-06-18 17:30:08 +08004849 },
4850 {
4851 "match_type" : "ternary",
4852 "name" : "port_type",
4853 "target" : ["scalars", "userMetadata.port_type"],
4854 "mask" : null
Yi Tsengbe342052017-11-03 10:21:23 -07004855 }
4856 ],
4857 "match_type" : "ternary",
4858 "type" : "simple",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07004859 "max_size" : 1024,
Yi Tsengbd46d052018-01-22 17:18:16 -08004860 "with_counters" : true,
Yi Tsengbe342052017-11-03 10:21:23 -07004861 "support_timeout" : false,
4862 "direct_meters" : null,
Wailok Shumfb7e7872021-06-18 17:30:08 +08004863 "action_ids" : [18, 19, 20, 21, 22],
Daniele Moro01ca2ab2019-06-25 11:48:48 -07004864 "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 +08004865 "base_default_next" : "node_34",
Yi Tsengbe342052017-11-03 10:21:23 -07004866 "next_tables" : {
Wailok Shumfb7e7872021-06-18 17:30:08 +08004867 "FabricIngress.acl.set_next_id_acl" : "node_34",
4868 "FabricIngress.acl.punt_to_cpu" : "node_34",
4869 "FabricIngress.acl.set_clone_session_id" : "node_34",
4870 "FabricIngress.acl.drop" : "node_34",
4871 "FabricIngress.acl.nop_acl" : "node_34"
Yi Tsengbe342052017-11-03 10:21:23 -07004872 },
4873 "default_entry" : {
Wailok Shumfb7e7872021-06-18 17:30:08 +08004874 "action_id" : 22,
Yi Tsengbe342052017-11-03 10:21:23 -07004875 "action_const" : true,
4876 "action_data" : [],
4877 "action_entry_const" : true
4878 }
4879 },
4880 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004881 "name" : "FabricIngress.next.xconnect",
Wailok Shumfb7e7872021-06-18 17:30:08 +08004882 "id" : 18,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004883 "source_info" : {
4884 "filename" : "include/control/next.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08004885 "line" : 68,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004886 "column" : 10,
4887 "source_fragment" : "xconnect"
4888 },
4889 "key" : [
4890 {
4891 "match_type" : "exact",
4892 "name" : "ig_port",
4893 "target" : ["standard_metadata", "ingress_port"],
4894 "mask" : null
4895 },
4896 {
4897 "match_type" : "exact",
4898 "name" : "next_id",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004899 "target" : ["scalars", "userMetadata.next_id"],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004900 "mask" : null
4901 }
4902 ],
4903 "match_type" : "exact",
4904 "type" : "simple",
4905 "max_size" : 1024,
4906 "with_counters" : true,
4907 "support_timeout" : false,
4908 "direct_meters" : null,
Wailok Shumfb7e7872021-06-18 17:30:08 +08004909 "action_ids" : [23, 24, 5],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004910 "actions" : ["FabricIngress.next.output_xconnect", "FabricIngress.next.set_next_id_xconnect", "nop"],
4911 "base_default_next" : "FabricIngress.next.hashed",
4912 "next_tables" : {
4913 "FabricIngress.next.output_xconnect" : "FabricIngress.next.hashed",
4914 "FabricIngress.next.set_next_id_xconnect" : "FabricIngress.next.hashed",
4915 "nop" : "FabricIngress.next.hashed"
4916 },
4917 "default_entry" : {
Wailok Shumfb7e7872021-06-18 17:30:08 +08004918 "action_id" : 5,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004919 "action_const" : true,
4920 "action_data" : [],
4921 "action_entry_const" : true
4922 }
4923 },
4924 {
4925 "name" : "FabricIngress.next.hashed",
Wailok Shumfb7e7872021-06-18 17:30:08 +08004926 "id" : 19,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004927 "source_info" : {
4928 "filename" : "include/control/next.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08004929 "line" : 138,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004930 "column" : 10,
4931 "source_fragment" : "hashed"
4932 },
4933 "key" : [
4934 {
4935 "match_type" : "exact",
4936 "name" : "next_id",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004937 "target" : ["scalars", "userMetadata.next_id"],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004938 "mask" : null
4939 }
4940 ],
4941 "match_type" : "exact",
4942 "type" : "indirect_ws",
4943 "action_profile" : "FabricIngress.next.hashed_selector",
4944 "max_size" : 1024,
4945 "with_counters" : true,
4946 "support_timeout" : false,
4947 "direct_meters" : null,
Wailok Shumfb7e7872021-06-18 17:30:08 +08004948 "action_ids" : [25, 26, 6],
4949 "actions" : ["FabricIngress.next.output_hashed", "FabricIngress.next.routing_hashed", "nop"],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004950 "base_default_next" : "FabricIngress.next.multicast",
4951 "next_tables" : {
4952 "FabricIngress.next.output_hashed" : "FabricIngress.next.multicast",
4953 "FabricIngress.next.routing_hashed" : "FabricIngress.next.multicast",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004954 "nop" : "FabricIngress.next.multicast"
4955 }
4956 },
4957 {
4958 "name" : "FabricIngress.next.multicast",
Wailok Shumfb7e7872021-06-18 17:30:08 +08004959 "id" : 20,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004960 "source_info" : {
4961 "filename" : "include/control/next.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08004962 "line" : 171,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004963 "column" : 10,
4964 "source_fragment" : "multicast"
4965 },
4966 "key" : [
4967 {
4968 "match_type" : "exact",
4969 "name" : "next_id",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004970 "target" : ["scalars", "userMetadata.next_id"],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004971 "mask" : null
4972 }
4973 ],
4974 "match_type" : "exact",
4975 "type" : "simple",
4976 "max_size" : 1024,
4977 "with_counters" : true,
4978 "support_timeout" : false,
4979 "direct_meters" : null,
Wailok Shumfb7e7872021-06-18 17:30:08 +08004980 "action_ids" : [27, 7],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004981 "actions" : ["FabricIngress.next.set_mcast_group_id", "nop"],
Wailok Shumfb7e7872021-06-18 17:30:08 +08004982 "base_default_next" : "node_38",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004983 "next_tables" : {
Wailok Shumfb7e7872021-06-18 17:30:08 +08004984 "FabricIngress.next.set_mcast_group_id" : "node_38",
4985 "nop" : "node_38"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004986 },
4987 "default_entry" : {
Wailok Shumfb7e7872021-06-18 17:30:08 +08004988 "action_id" : 7,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004989 "action_const" : true,
4990 "action_data" : [],
4991 "action_entry_const" : true
4992 }
4993 },
4994 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004995 "name" : "tbl_port_counter31",
Wailok Shumfb7e7872021-06-18 17:30:08 +08004996 "id" : 21,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004997 "source_info" : {
4998 "filename" : "include/control/port_counter.p4",
4999 "line" : 31,
5000 "column" : 12,
5001 "source_fragment" : "egress_port_counter.count((bit<32>)standard_metadata.egress_spec)"
5002 },
Carmelo Casconea5400af2018-07-17 22:11:54 +02005003 "key" : [],
5004 "match_type" : "exact",
5005 "type" : "simple",
5006 "max_size" : 1024,
5007 "with_counters" : false,
5008 "support_timeout" : false,
5009 "direct_meters" : null,
Wailok Shumfb7e7872021-06-18 17:30:08 +08005010 "action_ids" : [38],
Carmelo Cascone2388cc12021-05-26 19:30:30 +02005011 "actions" : ["port_counter31"],
Wailok Shumfb7e7872021-06-18 17:30:08 +08005012 "base_default_next" : "node_40",
Carmelo Casconea5400af2018-07-17 22:11:54 +02005013 "next_tables" : {
Wailok Shumfb7e7872021-06-18 17:30:08 +08005014 "port_counter31" : "node_40"
Carmelo Casconea5400af2018-07-17 22:11:54 +02005015 },
5016 "default_entry" : {
Wailok Shumfb7e7872021-06-18 17:30:08 +08005017 "action_id" : 38,
Carmelo Casconea5400af2018-07-17 22:11:54 +02005018 "action_const" : true,
5019 "action_data" : [],
5020 "action_entry_const" : true
5021 }
5022 },
5023 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02005024 "name" : "tbl_port_counter34",
Wailok Shumfb7e7872021-06-18 17:30:08 +08005025 "id" : 22,
Carmelo Cascone3032b872019-04-13 01:23:54 -07005026 "source_info" : {
5027 "filename" : "include/control/port_counter.p4",
5028 "line" : 34,
5029 "column" : 12,
5030 "source_fragment" : "ingress_port_counter.count((bit<32>)standard_metadata.ingress_port)"
5031 },
Carmelo Casconea5400af2018-07-17 22:11:54 +02005032 "key" : [],
5033 "match_type" : "exact",
5034 "type" : "simple",
5035 "max_size" : 1024,
5036 "with_counters" : false,
5037 "support_timeout" : false,
5038 "direct_meters" : null,
Wailok Shumfb7e7872021-06-18 17:30:08 +08005039 "action_ids" : [39],
Carmelo Cascone2388cc12021-05-26 19:30:30 +02005040 "actions" : ["port_counter34"],
Carmelo Casconea5400af2018-07-17 22:11:54 +02005041 "base_default_next" : null,
Esin Karaman971fb7f2017-12-28 13:44:52 +00005042 "next_tables" : {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02005043 "port_counter34" : null
Yi Tseng27b9bc02018-04-12 14:52:40 +08005044 },
5045 "default_entry" : {
Wailok Shumfb7e7872021-06-18 17:30:08 +08005046 "action_id" : 39,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005047 "action_const" : true,
5048 "action_data" : [],
5049 "action_entry_const" : true
5050 }
Yi Tsengbe342052017-11-03 10:21:23 -07005051 }
5052 ],
5053 "action_profiles" : [
5054 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005055 "name" : "FabricIngress.next.hashed_selector",
Yi Tsengbe342052017-11-03 10:21:23 -07005056 "id" : 0,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07005057 "source_info" : {
5058 "filename" : "include/control/next.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08005059 "line" : 125,
Carmelo Cascone70e816b2019-03-19 16:15:47 -07005060 "column" : 57,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005061 "source_fragment" : "hashed_selector"
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07005062 },
Carmelo Cascone70e816b2019-03-19 16:15:47 -07005063 "max_size" : 1024,
Yi Tsengbe342052017-11-03 10:21:23 -07005064 "selector" : {
5065 "algo" : "crc16",
5066 "input" : [
5067 {
5068 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02005069 "value" : ["scalars", "userMetadata.ipv4_src_addr"]
Yi Tsengbe342052017-11-03 10:21:23 -07005070 },
5071 {
5072 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02005073 "value" : ["scalars", "userMetadata.ipv4_dst_addr"]
Yi Tsengbe342052017-11-03 10:21:23 -07005074 },
5075 {
5076 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02005077 "value" : ["scalars", "userMetadata.ip_proto"]
Yi Tsengbe342052017-11-03 10:21:23 -07005078 },
5079 {
5080 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02005081 "value" : ["scalars", "userMetadata.l4_sport"]
Yi Tsengbe342052017-11-03 10:21:23 -07005082 },
5083 {
5084 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02005085 "value" : ["scalars", "userMetadata.l4_dport"]
Yi Tsengbe342052017-11-03 10:21:23 -07005086 }
5087 ]
5088 }
5089 }
5090 ],
5091 "conditionals" : [
5092 {
5093 "name" : "node_2",
5094 "id" : 0,
5095 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005096 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005097 "line" : 24,
Yi Tsengbe342052017-11-03 10:21:23 -07005098 "column" : 12,
5099 "source_fragment" : "hdr.packet_out.isValid()"
5100 },
5101 "expression" : {
5102 "type" : "expression",
5103 "value" : {
Yi Tsengbd46d052018-01-22 17:18:16 -08005104 "op" : "d2b",
5105 "left" : null,
5106 "right" : {
Yi Tsengbe342052017-11-03 10:21:23 -07005107 "type" : "field",
5108 "value" : ["packet_out", "$valid$"]
Yi Tsengbe342052017-11-03 10:21:23 -07005109 }
5110 }
5111 },
Carmelo Cascone2388cc12021-05-26 19:30:30 +02005112 "true_next" : "tbl_packetio25",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005113 "false_next" : "node_4"
Yi Tsengbe342052017-11-03 10:21:23 -07005114 },
5115 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005116 "name" : "node_4",
Yi Tsengbe342052017-11-03 10:21:23 -07005117 "id" : 1,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005118 "source_info" : {
5119 "filename" : "include/control/filtering.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08005120 "line" : 112,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005121 "column" : 12,
5122 "source_fragment" : "hdr.vlan_tag.isValid()"
5123 },
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005124 "expression" : {
5125 "type" : "expression",
5126 "value" : {
5127 "op" : "d2b",
5128 "left" : null,
5129 "right" : {
5130 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005131 "value" : ["vlan_tag", "$valid$"]
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005132 }
5133 }
5134 },
Wailok Shumfb7e7872021-06-18 17:30:08 +08005135 "true_next" : "tbl_filtering113",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005136 "false_next" : "node_6"
5137 },
5138 {
5139 "name" : "node_6",
5140 "id" : 2,
5141 "source_info" : {
5142 "filename" : "include/control/filtering.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08005143 "line" : 124,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005144 "column" : 12,
5145 "source_fragment" : "!hdr.mpls.isValid()"
5146 },
5147 "expression" : {
5148 "type" : "expression",
5149 "value" : {
5150 "op" : "not",
5151 "left" : null,
5152 "right" : {
5153 "type" : "expression",
5154 "value" : {
5155 "op" : "d2b",
5156 "left" : null,
5157 "right" : {
5158 "type" : "field",
5159 "value" : ["mpls", "$valid$"]
5160 }
5161 }
5162 }
5163 }
5164 },
Wailok Shumfb7e7872021-06-18 17:30:08 +08005165 "true_next" : "tbl_filtering129",
Daniele Moro5a2de712019-09-24 14:34:07 -07005166 "false_next" : "FabricIngress.filtering.ingress_port_vlan"
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005167 },
5168 {
5169 "name" : "node_10",
Daniele Moro5a2de712019-09-24 14:34:07 -07005170 "id" : 3,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005171 "source_info" : {
5172 "filename" : "fabric.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08005173 "line" : 71,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005174 "column" : 12,
Carmelo Cascone2388cc12021-05-26 19:30:30 +02005175 "source_fragment" : "fabric_metadata.skip_forwarding"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005176 },
5177 "expression" : {
5178 "type" : "expression",
5179 "value" : {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02005180 "op" : "not",
5181 "left" : null,
5182 "right" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005183 "type" : "expression",
5184 "value" : {
5185 "op" : "d2b",
5186 "left" : null,
5187 "right" : {
5188 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02005189 "value" : ["scalars", "userMetadata.skip_forwarding"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005190 }
5191 }
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005192 }
5193 }
5194 },
Daniele Moro5a2de712019-09-24 14:34:07 -07005195 "true_next" : "node_11",
Wailok Shumfb7e7872021-06-18 17:30:08 +08005196 "false_next" : "node_17"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005197 },
5198 {
Daniele Moro5a2de712019-09-24 14:34:07 -07005199 "name" : "node_11",
5200 "id" : 4,
Yi Tsengbe342052017-11-03 10:21:23 -07005201 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005202 "filename" : "include/control/forwarding.p4",
Daniele Moro5a2de712019-09-24 14:34:07 -07005203 "line" : 150,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005204 "column" : 12,
Yi Tsengbe342052017-11-03 10:21:23 -07005205 "source_fragment" : "fabric_metadata.fwd_type == FWD_BRIDGING"
5206 },
5207 "expression" : {
5208 "type" : "expression",
5209 "value" : {
5210 "op" : "==",
5211 "left" : {
5212 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02005213 "value" : ["scalars", "userMetadata.fwd_type"]
Yi Tsengbe342052017-11-03 10:21:23 -07005214 },
5215 "right" : {
5216 "type" : "hexstr",
5217 "value" : "0x00"
5218 }
5219 }
5220 },
Yi Tseng27b9bc02018-04-12 14:52:40 +08005221 "true_next" : "FabricIngress.forwarding.bridging",
Daniele Moro5a2de712019-09-24 14:34:07 -07005222 "false_next" : "node_13"
Yi Tsengbe342052017-11-03 10:21:23 -07005223 },
5224 {
Daniele Moro5a2de712019-09-24 14:34:07 -07005225 "name" : "node_13",
5226 "id" : 5,
Yi Tsengbe342052017-11-03 10:21:23 -07005227 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005228 "filename" : "include/control/forwarding.p4",
Daniele Moro5a2de712019-09-24 14:34:07 -07005229 "line" : 151,
Yi Tsengbe342052017-11-03 10:21:23 -07005230 "column" : 17,
5231 "source_fragment" : "fabric_metadata.fwd_type == FWD_MPLS"
5232 },
5233 "expression" : {
5234 "type" : "expression",
5235 "value" : {
5236 "op" : "==",
5237 "left" : {
5238 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02005239 "value" : ["scalars", "userMetadata.fwd_type"]
Yi Tsengbe342052017-11-03 10:21:23 -07005240 },
5241 "right" : {
5242 "type" : "hexstr",
5243 "value" : "0x01"
5244 }
5245 }
5246 },
Yi Tseng27b9bc02018-04-12 14:52:40 +08005247 "true_next" : "FabricIngress.forwarding.mpls",
Daniele Moro5a2de712019-09-24 14:34:07 -07005248 "false_next" : "node_15"
Yi Tsengbe342052017-11-03 10:21:23 -07005249 },
5250 {
Daniele Moro5a2de712019-09-24 14:34:07 -07005251 "name" : "node_15",
5252 "id" : 6,
Yi Tsengbe342052017-11-03 10:21:23 -07005253 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005254 "filename" : "include/control/forwarding.p4",
Daniele Moro5a2de712019-09-24 14:34:07 -07005255 "line" : 152,
Yi Tsengbe342052017-11-03 10:21:23 -07005256 "column" : 17,
5257 "source_fragment" : "fabric_metadata.fwd_type == FWD_IPV4_UNICAST"
5258 },
5259 "expression" : {
5260 "type" : "expression",
5261 "value" : {
5262 "op" : "==",
5263 "left" : {
5264 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02005265 "value" : ["scalars", "userMetadata.fwd_type"]
Yi Tsengbe342052017-11-03 10:21:23 -07005266 },
5267 "right" : {
5268 "type" : "hexstr",
5269 "value" : "0x02"
5270 }
5271 }
5272 },
Charles Chan384aea22018-08-23 22:08:02 -07005273 "true_next" : "FabricIngress.forwarding.routing_v4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08005274 "false_next" : "node_17"
5275 },
5276 {
5277 "name" : "node_17",
5278 "id" : 7,
5279 "source_info" : {
5280 "filename" : "fabric.p4",
5281 "line" : 74,
5282 "column" : 12,
5283 "source_fragment" : "fabric_metadata.skip_next"
5284 },
5285 "expression" : {
5286 "type" : "expression",
5287 "value" : {
5288 "op" : "not",
5289 "left" : null,
5290 "right" : {
5291 "type" : "expression",
5292 "value" : {
5293 "op" : "d2b",
5294 "left" : null,
5295 "right" : {
5296 "type" : "field",
5297 "value" : ["scalars", "userMetadata.skip_next"]
5298 }
5299 }
5300 }
5301 }
5302 },
5303 "true_next" : "FabricIngress.pre_next.next_mpls",
Wailok Shum4f51bde2021-06-11 22:48:41 +08005304 "false_next" : "tbl_acl27"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005305 },
5306 {
Wailok Shumfb7e7872021-06-18 17:30:08 +08005307 "name" : "node_21",
5308 "id" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005309 "source_info" : {
Wailok Shum4f51bde2021-06-11 22:48:41 +08005310 "filename" : "include/control/acl.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08005311 "line" : 97,
Wailok Shum4f51bde2021-06-11 22:48:41 +08005312 "column" : 12,
5313 "source_fragment" : "hdr.gtpu.isValid() && hdr.inner_ipv4.isValid()"
5314 },
5315 "expression" : {
5316 "type" : "expression",
5317 "value" : {
5318 "op" : "and",
5319 "left" : {
5320 "type" : "expression",
5321 "value" : {
5322 "op" : "d2b",
5323 "left" : null,
5324 "right" : {
5325 "type" : "field",
5326 "value" : ["gtpu", "$valid$"]
5327 }
5328 }
5329 },
5330 "right" : {
5331 "type" : "expression",
5332 "value" : {
5333 "op" : "d2b",
5334 "left" : null,
5335 "right" : {
5336 "type" : "field",
5337 "value" : ["inner_ipv4", "$valid$"]
5338 }
5339 }
5340 }
5341 }
5342 },
Wailok Shumfb7e7872021-06-18 17:30:08 +08005343 "true_next" : "tbl_acl98",
5344 "false_next" : "node_27"
Wailok Shum4f51bde2021-06-11 22:48:41 +08005345 },
5346 {
Wailok Shumfb7e7872021-06-18 17:30:08 +08005347 "name" : "node_23",
5348 "id" : 9,
Wailok Shum4f51bde2021-06-11 22:48:41 +08005349 "source_info" : {
5350 "filename" : "include/control/acl.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08005351 "line" : 101,
Wailok Shum4f51bde2021-06-11 22:48:41 +08005352 "column" : 16,
5353 "source_fragment" : "hdr.inner_tcp.isValid()"
5354 },
5355 "expression" : {
5356 "type" : "expression",
5357 "value" : {
5358 "op" : "d2b",
5359 "left" : null,
5360 "right" : {
5361 "type" : "field",
5362 "value" : ["inner_tcp", "$valid$"]
5363 }
5364 }
5365 },
Wailok Shumfb7e7872021-06-18 17:30:08 +08005366 "true_next" : "tbl_acl102",
5367 "false_next" : "node_25"
Wailok Shum4f51bde2021-06-11 22:48:41 +08005368 },
5369 {
Wailok Shumfb7e7872021-06-18 17:30:08 +08005370 "name" : "node_25",
5371 "id" : 10,
Wailok Shum4f51bde2021-06-11 22:48:41 +08005372 "source_info" : {
5373 "filename" : "include/control/acl.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08005374 "line" : 104,
Wailok Shum4f51bde2021-06-11 22:48:41 +08005375 "column" : 23,
5376 "source_fragment" : "hdr.inner_udp.isValid()"
5377 },
5378 "expression" : {
5379 "type" : "expression",
5380 "value" : {
5381 "op" : "d2b",
5382 "left" : null,
5383 "right" : {
5384 "type" : "field",
5385 "value" : ["inner_udp", "$valid$"]
5386 }
5387 }
5388 },
Wailok Shumfb7e7872021-06-18 17:30:08 +08005389 "true_next" : "tbl_acl105",
Wailok Shum4f51bde2021-06-11 22:48:41 +08005390 "false_next" : "FabricIngress.acl.acl"
5391 },
5392 {
Wailok Shumfb7e7872021-06-18 17:30:08 +08005393 "name" : "node_27",
5394 "id" : 11,
Wailok Shum4f51bde2021-06-11 22:48:41 +08005395 "source_info" : {
5396 "filename" : "include/control/acl.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08005397 "line" : 108,
Wailok Shum4f51bde2021-06-11 22:48:41 +08005398 "column" : 19,
5399 "source_fragment" : "hdr.ipv4.isValid()"
5400 },
5401 "expression" : {
5402 "type" : "expression",
5403 "value" : {
5404 "op" : "d2b",
5405 "left" : null,
5406 "right" : {
5407 "type" : "field",
5408 "value" : ["ipv4", "$valid$"]
5409 }
5410 }
5411 },
Wailok Shumfb7e7872021-06-18 17:30:08 +08005412 "true_next" : "tbl_acl109",
Wailok Shum4f51bde2021-06-11 22:48:41 +08005413 "false_next" : "FabricIngress.acl.acl"
5414 },
5415 {
Wailok Shumfb7e7872021-06-18 17:30:08 +08005416 "name" : "node_29",
5417 "id" : 12,
Wailok Shum4f51bde2021-06-11 22:48:41 +08005418 "source_info" : {
5419 "filename" : "include/control/acl.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08005420 "line" : 112,
Wailok Shum4f51bde2021-06-11 22:48:41 +08005421 "column" : 16,
5422 "source_fragment" : "hdr.tcp.isValid()"
5423 },
5424 "expression" : {
5425 "type" : "expression",
5426 "value" : {
5427 "op" : "d2b",
5428 "left" : null,
5429 "right" : {
5430 "type" : "field",
5431 "value" : ["tcp", "$valid$"]
5432 }
5433 }
5434 },
Wailok Shumfb7e7872021-06-18 17:30:08 +08005435 "true_next" : "tbl_acl113",
5436 "false_next" : "node_31"
Wailok Shum4f51bde2021-06-11 22:48:41 +08005437 },
5438 {
Wailok Shumfb7e7872021-06-18 17:30:08 +08005439 "name" : "node_31",
5440 "id" : 13,
Wailok Shum4f51bde2021-06-11 22:48:41 +08005441 "source_info" : {
5442 "filename" : "include/control/acl.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08005443 "line" : 115,
Wailok Shum4f51bde2021-06-11 22:48:41 +08005444 "column" : 23,
5445 "source_fragment" : "hdr.udp.isValid()"
5446 },
5447 "expression" : {
5448 "type" : "expression",
5449 "value" : {
5450 "op" : "d2b",
5451 "left" : null,
5452 "right" : {
5453 "type" : "field",
5454 "value" : ["udp", "$valid$"]
5455 }
5456 }
5457 },
Wailok Shumfb7e7872021-06-18 17:30:08 +08005458 "true_next" : "tbl_acl116",
Wailok Shum4f51bde2021-06-11 22:48:41 +08005459 "false_next" : "FabricIngress.acl.acl"
5460 },
5461 {
Wailok Shumfb7e7872021-06-18 17:30:08 +08005462 "name" : "node_34",
5463 "id" : 14,
Wailok Shum4f51bde2021-06-11 22:48:41 +08005464 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005465 "filename" : "fabric.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08005466 "line" : 78,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005467 "column" : 12,
Carmelo Cascone2388cc12021-05-26 19:30:30 +02005468 "source_fragment" : "fabric_metadata.skip_next"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005469 },
5470 "expression" : {
5471 "type" : "expression",
5472 "value" : {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02005473 "op" : "not",
5474 "left" : null,
5475 "right" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005476 "type" : "expression",
5477 "value" : {
5478 "op" : "d2b",
5479 "left" : null,
5480 "right" : {
5481 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02005482 "value" : ["scalars", "userMetadata.skip_next"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005483 }
5484 }
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005485 }
5486 }
5487 },
5488 "false_next" : null,
5489 "true_next" : "FabricIngress.next.xconnect"
Yi Tseng27b9bc02018-04-12 14:52:40 +08005490 },
5491 {
Wailok Shumfb7e7872021-06-18 17:30:08 +08005492 "name" : "node_38",
5493 "id" : 15,
Yi Tseng27b9bc02018-04-12 14:52:40 +08005494 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005495 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005496 "line" : 30,
Yi Tsengbe342052017-11-03 10:21:23 -07005497 "column" : 12,
5498 "source_fragment" : "standard_metadata.egress_spec < 511"
5499 },
5500 "expression" : {
5501 "type" : "expression",
5502 "value" : {
5503 "op" : "<",
5504 "left" : {
5505 "type" : "field",
5506 "value" : ["standard_metadata", "egress_spec"]
5507 },
5508 "right" : {
5509 "type" : "hexstr",
5510 "value" : "0x01ff"
5511 }
5512 }
5513 },
Carmelo Cascone2388cc12021-05-26 19:30:30 +02005514 "true_next" : "tbl_port_counter31",
Wailok Shumfb7e7872021-06-18 17:30:08 +08005515 "false_next" : "node_40"
Yi Tsengbe342052017-11-03 10:21:23 -07005516 },
5517 {
Wailok Shumfb7e7872021-06-18 17:30:08 +08005518 "name" : "node_40",
5519 "id" : 16,
Yi Tsengbe342052017-11-03 10:21:23 -07005520 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005521 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005522 "line" : 33,
Yi Tsengbe342052017-11-03 10:21:23 -07005523 "column" : 12,
5524 "source_fragment" : "standard_metadata.ingress_port < 511"
5525 },
5526 "expression" : {
5527 "type" : "expression",
5528 "value" : {
5529 "op" : "<",
5530 "left" : {
5531 "type" : "field",
5532 "value" : ["standard_metadata", "ingress_port"]
5533 },
5534 "right" : {
5535 "type" : "hexstr",
5536 "value" : "0x01ff"
5537 }
5538 }
5539 },
Yi Tseng3a5731e2018-01-22 11:38:58 -08005540 "false_next" : null,
Carmelo Cascone2388cc12021-05-26 19:30:30 +02005541 "true_next" : "tbl_port_counter34"
Yi Tseng3a5731e2018-01-22 11:38:58 -08005542 }
5543 ]
5544 },
5545 {
5546 "name" : "egress",
5547 "id" : 1,
5548 "source_info" : {
5549 "filename" : "fabric.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08005550 "line" : 96,
Yi Tseng3a5731e2018-01-22 11:38:58 -08005551 "column" : 8,
5552 "source_fragment" : "FabricEgress"
5553 },
Wailok Shumfb7e7872021-06-18 17:30:08 +08005554 "init_table" : "node_44",
Yi Tseng3a5731e2018-01-22 11:38:58 -08005555 "tables" : [
5556 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02005557 "name" : "tbl_packetio41",
Wailok Shumfb7e7872021-06-18 17:30:08 +08005558 "id" : 23,
Carmelo Cascone3032b872019-04-13 01:23:54 -07005559 "source_info" : {
5560 "filename" : "include/control/packetio.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07005561 "line" : 41,
5562 "column" : 12,
5563 "source_fragment" : "exit"
Carmelo Cascone3032b872019-04-13 01:23:54 -07005564 },
Carmelo Casconea5400af2018-07-17 22:11:54 +02005565 "key" : [],
5566 "match_type" : "exact",
5567 "type" : "simple",
5568 "max_size" : 1024,
5569 "with_counters" : false,
5570 "support_timeout" : false,
5571 "direct_meters" : null,
Wailok Shumfb7e7872021-06-18 17:30:08 +08005572 "action_ids" : [45],
Carmelo Cascone2388cc12021-05-26 19:30:30 +02005573 "actions" : ["packetio41"],
Wailok Shumfb7e7872021-06-18 17:30:08 +08005574 "base_default_next" : "node_46",
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07005575 "next_tables" : {
Wailok Shumfb7e7872021-06-18 17:30:08 +08005576 "packetio41" : "node_46"
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07005577 },
5578 "default_entry" : {
Wailok Shumfb7e7872021-06-18 17:30:08 +08005579 "action_id" : 45,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07005580 "action_const" : true,
5581 "action_data" : [],
5582 "action_entry_const" : true
5583 }
5584 },
5585 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02005586 "name" : "tbl_packetio44",
Wailok Shumfb7e7872021-06-18 17:30:08 +08005587 "id" : 24,
Carmelo Cascone3032b872019-04-13 01:23:54 -07005588 "source_info" : {
5589 "filename" : "include/control/packetio.p4",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07005590 "line" : 44,
5591 "column" : 12,
5592 "source_fragment" : "hdr.packet_in.setValid(); ..."
Carmelo Cascone3032b872019-04-13 01:23:54 -07005593 },
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07005594 "key" : [],
5595 "match_type" : "exact",
5596 "type" : "simple",
5597 "max_size" : 1024,
5598 "with_counters" : false,
5599 "support_timeout" : false,
5600 "direct_meters" : null,
Wailok Shumfb7e7872021-06-18 17:30:08 +08005601 "action_ids" : [46],
Carmelo Cascone2388cc12021-05-26 19:30:30 +02005602 "actions" : ["packetio44"],
Wailok Shumfb7e7872021-06-18 17:30:08 +08005603 "base_default_next" : "node_48",
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07005604 "next_tables" : {
Wailok Shumfb7e7872021-06-18 17:30:08 +08005605 "packetio44" : "node_48"
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07005606 },
5607 "default_entry" : {
Wailok Shumfb7e7872021-06-18 17:30:08 +08005608 "action_id" : 46,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07005609 "action_const" : true,
5610 "action_data" : [],
5611 "action_entry_const" : true
5612 }
5613 },
5614 {
Wailok Shumfb7e7872021-06-18 17:30:08 +08005615 "name" : "tbl_next283",
5616 "id" : 25,
Carmelo Cascone3032b872019-04-13 01:23:54 -07005617 "source_info" : {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07005618 "filename" : "include/control/next.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08005619 "line" : 283,
Carmelo Cascone3032b872019-04-13 01:23:54 -07005620 "column" : 12,
Daniele Moro01ca2ab2019-06-25 11:48:48 -07005621 "source_fragment" : "mark_to_drop(standard_metadata)"
Carmelo Cascone3032b872019-04-13 01:23:54 -07005622 },
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07005623 "key" : [],
5624 "match_type" : "exact",
5625 "type" : "simple",
5626 "max_size" : 1024,
5627 "with_counters" : false,
5628 "support_timeout" : false,
5629 "direct_meters" : null,
Wailok Shumfb7e7872021-06-18 17:30:08 +08005630 "action_ids" : [47],
5631 "actions" : ["next283"],
5632 "base_default_next" : "node_50",
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07005633 "next_tables" : {
Wailok Shumfb7e7872021-06-18 17:30:08 +08005634 "next283" : "node_50"
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07005635 },
5636 "default_entry" : {
Wailok Shumfb7e7872021-06-18 17:30:08 +08005637 "action_id" : 47,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005638 "action_const" : true,
5639 "action_data" : [],
5640 "action_entry_const" : true
5641 }
5642 },
5643 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07005644 "name" : "tbl_egress_next_pop_mpls_if_present",
Wailok Shumfb7e7872021-06-18 17:30:08 +08005645 "id" : 26,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07005646 "source_info" : {
5647 "filename" : "include/control/next.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08005648 "line" : 287,
Carmelo Cascone3032b872019-04-13 01:23:54 -07005649 "column" : 36,
5650 "source_fragment" : "pop_mpls_if_present()"
5651 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005652 "key" : [],
5653 "match_type" : "exact",
5654 "type" : "simple",
5655 "max_size" : 1024,
5656 "with_counters" : false,
5657 "support_timeout" : false,
5658 "direct_meters" : null,
Wailok Shumfb7e7872021-06-18 17:30:08 +08005659 "action_ids" : [40],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005660 "actions" : ["FabricEgress.egress_next.pop_mpls_if_present"],
5661 "base_default_next" : "FabricEgress.egress_next.egress_vlan",
5662 "next_tables" : {
5663 "FabricEgress.egress_next.pop_mpls_if_present" : "FabricEgress.egress_next.egress_vlan"
5664 },
5665 "default_entry" : {
Wailok Shumfb7e7872021-06-18 17:30:08 +08005666 "action_id" : 40,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005667 "action_const" : true,
5668 "action_data" : [],
5669 "action_entry_const" : true
5670 }
5671 },
5672 {
5673 "name" : "tbl_egress_next_set_mpls",
Wailok Shumfb7e7872021-06-18 17:30:08 +08005674 "id" : 27,
Carmelo Cascone3032b872019-04-13 01:23:54 -07005675 "source_info" : {
5676 "filename" : "include/control/next.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08005677 "line" : 289,
Carmelo Cascone3032b872019-04-13 01:23:54 -07005678 "column" : 12,
5679 "source_fragment" : "set_mpls()"
5680 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005681 "key" : [],
5682 "match_type" : "exact",
5683 "type" : "simple",
5684 "max_size" : 1024,
5685 "with_counters" : false,
5686 "support_timeout" : false,
5687 "direct_meters" : null,
Wailok Shumfb7e7872021-06-18 17:30:08 +08005688 "action_ids" : [41],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005689 "actions" : ["FabricEgress.egress_next.set_mpls"],
5690 "base_default_next" : "FabricEgress.egress_next.egress_vlan",
5691 "next_tables" : {
5692 "FabricEgress.egress_next.set_mpls" : "FabricEgress.egress_next.egress_vlan"
5693 },
5694 "default_entry" : {
Wailok Shumfb7e7872021-06-18 17:30:08 +08005695 "action_id" : 41,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07005696 "action_const" : true,
5697 "action_data" : [],
5698 "action_entry_const" : true
5699 }
5700 },
5701 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005702 "name" : "FabricEgress.egress_next.egress_vlan",
Wailok Shumfb7e7872021-06-18 17:30:08 +08005703 "id" : 28,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005704 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005705 "filename" : "include/control/next.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08005706 "line" : 265,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005707 "column" : 10,
5708 "source_fragment" : "egress_vlan"
5709 },
5710 "key" : [
5711 {
5712 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005713 "name" : "vlan_id",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02005714 "target" : ["scalars", "userMetadata.vlan_id"],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005715 "mask" : null
5716 },
5717 {
5718 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005719 "name" : "eg_port",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005720 "target" : ["standard_metadata", "egress_port"],
5721 "mask" : null
5722 }
5723 ],
5724 "match_type" : "exact",
5725 "type" : "simple",
5726 "max_size" : 1024,
Yi Tseng47eac892018-07-11 02:17:04 +08005727 "with_counters" : true,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005728 "support_timeout" : false,
5729 "direct_meters" : null,
Wailok Shumfb7e7872021-06-18 17:30:08 +08005730 "action_ids" : [42, 43, 44],
pierventre48e78822020-12-15 17:34:54 +01005731 "actions" : ["FabricEgress.egress_next.push_vlan", "FabricEgress.egress_next.pop_vlan", "FabricEgress.egress_next.drop"],
Wailok Shumfb7e7872021-06-18 17:30:08 +08005732 "base_default_next" : "node_55",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005733 "next_tables" : {
Wailok Shumfb7e7872021-06-18 17:30:08 +08005734 "FabricEgress.egress_next.push_vlan" : "node_55",
5735 "FabricEgress.egress_next.pop_vlan" : "node_55",
5736 "FabricEgress.egress_next.drop" : "node_55"
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005737 },
5738 "default_entry" : {
Wailok Shumfb7e7872021-06-18 17:30:08 +08005739 "action_id" : 44,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005740 "action_const" : true,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005741 "action_data" : [],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005742 "action_entry_const" : true
5743 }
5744 },
5745 {
Wailok Shumfb7e7872021-06-18 17:30:08 +08005746 "name" : "tbl_next309",
5747 "id" : 29,
pierventre48e78822020-12-15 17:34:54 +01005748 "source_info" : {
5749 "filename" : "include/control/next.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08005750 "line" : 309,
pierventre48e78822020-12-15 17:34:54 +01005751 "column" : 25,
5752 "source_fragment" : "="
Daniele Moro01ca2ab2019-06-25 11:48:48 -07005753 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005754 "key" : [],
5755 "match_type" : "exact",
5756 "type" : "simple",
5757 "max_size" : 1024,
5758 "with_counters" : false,
5759 "support_timeout" : false,
5760 "direct_meters" : null,
Wailok Shumfb7e7872021-06-18 17:30:08 +08005761 "action_ids" : [49],
5762 "actions" : ["next309"],
5763 "base_default_next" : "node_57",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005764 "next_tables" : {
Wailok Shumfb7e7872021-06-18 17:30:08 +08005765 "next309" : "node_57"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005766 },
5767 "default_entry" : {
Wailok Shumfb7e7872021-06-18 17:30:08 +08005768 "action_id" : 49,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005769 "action_const" : true,
5770 "action_data" : [],
5771 "action_entry_const" : true
5772 }
5773 },
5774 {
Wailok Shumfb7e7872021-06-18 17:30:08 +08005775 "name" : "tbl_next310",
5776 "id" : 30,
Carmelo Cascone3032b872019-04-13 01:23:54 -07005777 "source_info" : {
5778 "filename" : "include/control/next.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08005779 "line" : 310,
pierventre48e78822020-12-15 17:34:54 +01005780 "column" : 35,
5781 "source_fragment" : "mark_to_drop(standard_metadata)"
Carmelo Cascone3032b872019-04-13 01:23:54 -07005782 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005783 "key" : [],
5784 "match_type" : "exact",
5785 "type" : "simple",
5786 "max_size" : 1024,
5787 "with_counters" : false,
5788 "support_timeout" : false,
5789 "direct_meters" : null,
Wailok Shumfb7e7872021-06-18 17:30:08 +08005790 "action_ids" : [48],
5791 "actions" : ["next310"],
pierventre48e78822020-12-15 17:34:54 +01005792 "base_default_next" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005793 "next_tables" : {
Wailok Shumfb7e7872021-06-18 17:30:08 +08005794 "next310" : null
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005795 },
5796 "default_entry" : {
Wailok Shumfb7e7872021-06-18 17:30:08 +08005797 "action_id" : 48,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005798 "action_const" : true,
5799 "action_data" : [],
5800 "action_entry_const" : true
5801 }
5802 },
5803 {
Wailok Shumfb7e7872021-06-18 17:30:08 +08005804 "name" : "tbl_next313",
5805 "id" : 31,
Carmelo Cascone3032b872019-04-13 01:23:54 -07005806 "source_info" : {
5807 "filename" : "include/control/next.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08005808 "line" : 313,
pierventre48e78822020-12-15 17:34:54 +01005809 "column" : 29,
Carmelo Cascone3032b872019-04-13 01:23:54 -07005810 "source_fragment" : "="
5811 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005812 "key" : [],
5813 "match_type" : "exact",
5814 "type" : "simple",
5815 "max_size" : 1024,
5816 "with_counters" : false,
5817 "support_timeout" : false,
5818 "direct_meters" : null,
Wailok Shumfb7e7872021-06-18 17:30:08 +08005819 "action_ids" : [51],
5820 "actions" : ["next313"],
5821 "base_default_next" : "node_61",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07005822 "next_tables" : {
Wailok Shumfb7e7872021-06-18 17:30:08 +08005823 "next313" : "node_61"
Carmelo Cascone9b607da2019-05-08 14:03:01 -07005824 },
5825 "default_entry" : {
Wailok Shumfb7e7872021-06-18 17:30:08 +08005826 "action_id" : 51,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07005827 "action_const" : true,
5828 "action_data" : [],
5829 "action_entry_const" : true
5830 }
5831 },
5832 {
Wailok Shumfb7e7872021-06-18 17:30:08 +08005833 "name" : "tbl_next314",
5834 "id" : 32,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07005835 "source_info" : {
5836 "filename" : "include/control/next.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08005837 "line" : 314,
pierventre48e78822020-12-15 17:34:54 +01005838 "column" : 39,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07005839 "source_fragment" : "mark_to_drop(standard_metadata)"
5840 },
5841 "key" : [],
5842 "match_type" : "exact",
5843 "type" : "simple",
5844 "max_size" : 1024,
5845 "with_counters" : false,
5846 "support_timeout" : false,
5847 "direct_meters" : null,
Wailok Shumfb7e7872021-06-18 17:30:08 +08005848 "action_ids" : [50],
5849 "actions" : ["next314"],
Carmelo Cascone9b607da2019-05-08 14:03:01 -07005850 "base_default_next" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005851 "next_tables" : {
Wailok Shumfb7e7872021-06-18 17:30:08 +08005852 "next314" : null
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005853 },
5854 "default_entry" : {
Wailok Shumfb7e7872021-06-18 17:30:08 +08005855 "action_id" : 50,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005856 "action_const" : true,
5857 "action_data" : [],
5858 "action_entry_const" : true
5859 }
Yi Tseng3a5731e2018-01-22 11:38:58 -08005860 }
5861 ],
5862 "action_profiles" : [],
5863 "conditionals" : [
Yi Tseng1d842672017-11-28 16:06:52 -08005864 {
Wailok Shumfb7e7872021-06-18 17:30:08 +08005865 "name" : "node_44",
5866 "id" : 17,
Carmelo Casconea5400af2018-07-17 22:11:54 +02005867 "source_info" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07005868 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005869 "line" : 39,
Carmelo Casconea5400af2018-07-17 22:11:54 +02005870 "column" : 12,
Carmelo Cascone2388cc12021-05-26 19:30:30 +02005871 "source_fragment" : "fabric_metadata.is_controller_packet_out"
Carmelo Casconea5400af2018-07-17 22:11:54 +02005872 },
5873 "expression" : {
5874 "type" : "expression",
5875 "value" : {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02005876 "op" : "d2b",
5877 "left" : null,
Carmelo Casconea5400af2018-07-17 22:11:54 +02005878 "right" : {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02005879 "type" : "field",
5880 "value" : ["scalars", "userMetadata.is_controller_packet_out"]
Carmelo Casconea5400af2018-07-17 22:11:54 +02005881 }
5882 }
5883 },
Carmelo Cascone2388cc12021-05-26 19:30:30 +02005884 "true_next" : "tbl_packetio41",
Wailok Shumfb7e7872021-06-18 17:30:08 +08005885 "false_next" : "node_46"
Carmelo Casconea5400af2018-07-17 22:11:54 +02005886 },
5887 {
Wailok Shumfb7e7872021-06-18 17:30:08 +08005888 "name" : "node_46",
5889 "id" : 18,
Yi Tsengbe342052017-11-03 10:21:23 -07005890 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005891 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005892 "line" : 43,
Yi Tsengbe342052017-11-03 10:21:23 -07005893 "column" : 12,
Carmelo Casconeb531b682018-01-30 17:55:56 -08005894 "source_fragment" : "standard_metadata.egress_port == 255"
Yi Tsengbe342052017-11-03 10:21:23 -07005895 },
5896 "expression" : {
5897 "type" : "expression",
5898 "value" : {
5899 "op" : "==",
5900 "left" : {
5901 "type" : "field",
5902 "value" : ["standard_metadata", "egress_port"]
5903 },
5904 "right" : {
5905 "type" : "hexstr",
5906 "value" : "0x00ff"
5907 }
5908 }
5909 },
Carmelo Cascone2388cc12021-05-26 19:30:30 +02005910 "true_next" : "tbl_packetio44",
Wailok Shumfb7e7872021-06-18 17:30:08 +08005911 "false_next" : "node_48"
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07005912 },
5913 {
Wailok Shumfb7e7872021-06-18 17:30:08 +08005914 "name" : "node_48",
5915 "id" : 19,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07005916 "source_info" : {
5917 "filename" : "include/control/next.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08005918 "line" : 281,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07005919 "column" : 12,
5920 "source_fragment" : "fabric_metadata.is_multicast == true ..."
5921 },
5922 "expression" : {
5923 "type" : "expression",
5924 "value" : {
5925 "op" : "and",
5926 "left" : {
5927 "type" : "expression",
5928 "value" : {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02005929 "op" : "d2b",
5930 "left" : null,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07005931 "right" : {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02005932 "type" : "field",
5933 "value" : ["scalars", "userMetadata.is_multicast"]
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07005934 }
5935 }
5936 },
5937 "right" : {
5938 "type" : "expression",
5939 "value" : {
5940 "op" : "==",
5941 "left" : {
5942 "type" : "field",
5943 "value" : ["standard_metadata", "ingress_port"]
5944 },
5945 "right" : {
5946 "type" : "field",
5947 "value" : ["standard_metadata", "egress_port"]
5948 }
5949 }
5950 }
5951 }
5952 },
Wailok Shumfb7e7872021-06-18 17:30:08 +08005953 "true_next" : "tbl_next283",
5954 "false_next" : "node_50"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005955 },
5956 {
Wailok Shumfb7e7872021-06-18 17:30:08 +08005957 "name" : "node_50",
5958 "id" : 20,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005959 "source_info" : {
5960 "filename" : "include/control/next.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08005961 "line" : 286,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005962 "column" : 12,
5963 "source_fragment" : "fabric_metadata.mpls_label == 0"
5964 },
5965 "expression" : {
5966 "type" : "expression",
5967 "value" : {
5968 "op" : "==",
5969 "left" : {
5970 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02005971 "value" : ["scalars", "userMetadata.mpls_label"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005972 },
5973 "right" : {
5974 "type" : "hexstr",
5975 "value" : "0x000000"
5976 }
5977 }
5978 },
Wailok Shumfb7e7872021-06-18 17:30:08 +08005979 "true_next" : "node_51",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005980 "false_next" : "tbl_egress_next_set_mpls"
5981 },
5982 {
Wailok Shumfb7e7872021-06-18 17:30:08 +08005983 "name" : "node_51",
5984 "id" : 21,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005985 "source_info" : {
5986 "filename" : "include/control/next.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08005987 "line" : 287,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005988 "column" : 16,
5989 "source_fragment" : "hdr.mpls.isValid()"
5990 },
5991 "expression" : {
5992 "type" : "expression",
5993 "value" : {
5994 "op" : "d2b",
5995 "left" : null,
5996 "right" : {
5997 "type" : "field",
5998 "value" : ["mpls", "$valid$"]
5999 }
6000 }
6001 },
6002 "true_next" : "tbl_egress_next_pop_mpls_if_present",
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07006003 "false_next" : "FabricEgress.egress_next.egress_vlan"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006004 },
6005 {
Wailok Shumfb7e7872021-06-18 17:30:08 +08006006 "name" : "node_55",
6007 "id" : 22,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006008 "source_info" : {
6009 "filename" : "include/control/next.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08006010 "line" : 308,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006011 "column" : 12,
6012 "source_fragment" : "hdr.mpls.isValid()"
6013 },
6014 "expression" : {
6015 "type" : "expression",
6016 "value" : {
6017 "op" : "d2b",
6018 "left" : null,
6019 "right" : {
6020 "type" : "field",
6021 "value" : ["mpls", "$valid$"]
6022 }
6023 }
6024 },
Wailok Shumfb7e7872021-06-18 17:30:08 +08006025 "true_next" : "tbl_next309",
6026 "false_next" : "node_59"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006027 },
6028 {
Wailok Shumfb7e7872021-06-18 17:30:08 +08006029 "name" : "node_57",
6030 "id" : 23,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006031 "source_info" : {
6032 "filename" : "include/control/next.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08006033 "line" : 310,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006034 "column" : 16,
6035 "source_fragment" : "hdr.mpls.ttl == 0"
6036 },
6037 "expression" : {
6038 "type" : "expression",
6039 "value" : {
6040 "op" : "==",
6041 "left" : {
6042 "type" : "field",
6043 "value" : ["mpls", "ttl"]
6044 },
6045 "right" : {
6046 "type" : "hexstr",
6047 "value" : "0x00"
6048 }
6049 }
6050 },
6051 "false_next" : null,
Wailok Shumfb7e7872021-06-18 17:30:08 +08006052 "true_next" : "tbl_next310"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006053 },
6054 {
Wailok Shumfb7e7872021-06-18 17:30:08 +08006055 "name" : "node_59",
6056 "id" : 24,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006057 "source_info" : {
6058 "filename" : "include/control/next.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08006059 "line" : 312,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006060 "column" : 15,
Charles Chan74ad51e2020-09-12 19:05:42 -07006061 "source_fragment" : "hdr.ipv4.isValid() && fabric_metadata.fwd_type != FWD_BRIDGING"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006062 },
6063 "expression" : {
6064 "type" : "expression",
6065 "value" : {
Charles Chan74ad51e2020-09-12 19:05:42 -07006066 "op" : "and",
6067 "left" : {
6068 "type" : "expression",
6069 "value" : {
6070 "op" : "d2b",
6071 "left" : null,
6072 "right" : {
6073 "type" : "field",
6074 "value" : ["ipv4", "$valid$"]
6075 }
6076 }
6077 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006078 "right" : {
Charles Chan74ad51e2020-09-12 19:05:42 -07006079 "type" : "expression",
6080 "value" : {
6081 "op" : "!=",
6082 "left" : {
6083 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02006084 "value" : ["scalars", "userMetadata.fwd_type"]
Charles Chan74ad51e2020-09-12 19:05:42 -07006085 },
6086 "right" : {
6087 "type" : "hexstr",
6088 "value" : "0x00"
6089 }
6090 }
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006091 }
6092 }
6093 },
6094 "false_next" : null,
Wailok Shumfb7e7872021-06-18 17:30:08 +08006095 "true_next" : "tbl_next313"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006096 },
6097 {
Wailok Shumfb7e7872021-06-18 17:30:08 +08006098 "name" : "node_61",
6099 "id" : 25,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006100 "source_info" : {
6101 "filename" : "include/control/next.p4",
Wailok Shumfb7e7872021-06-18 17:30:08 +08006102 "line" : 314,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08006103 "column" : 20,
6104 "source_fragment" : "hdr.ipv4.ttl == 0"
6105 },
6106 "expression" : {
6107 "type" : "expression",
6108 "value" : {
6109 "op" : "==",
6110 "left" : {
6111 "type" : "field",
6112 "value" : ["ipv4", "ttl"]
6113 },
6114 "right" : {
6115 "type" : "hexstr",
6116 "value" : "0x00"
6117 }
6118 }
6119 },
6120 "false_next" : null,
Wailok Shumfb7e7872021-06-18 17:30:08 +08006121 "true_next" : "tbl_next314"
Yi Tsengbe342052017-11-03 10:21:23 -07006122 }
6123 ]
6124 }
6125 ],
6126 "checksums" : [
6127 {
6128 "name" : "cksum",
6129 "id" : 0,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07006130 "source_info" : {
6131 "filename" : "include/checksum.p4",
6132 "line" : 28,
6133 "column" : 8,
6134 "source_fragment" : "update_checksum(hdr.ipv4.isValid(), ..."
6135 },
Yi Tsengbe342052017-11-03 10:21:23 -07006136 "target" : ["ipv4", "hdr_checksum"],
6137 "type" : "generic",
Yi Tsengbd46d052018-01-22 17:18:16 -08006138 "calculation" : "calc",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08006139 "verify" : false,
6140 "update" : true,
Yi Tsengbd46d052018-01-22 17:18:16 -08006141 "if_cond" : {
6142 "type" : "expression",
6143 "value" : {
6144 "op" : "d2b",
6145 "left" : null,
6146 "right" : {
6147 "type" : "field",
6148 "value" : ["ipv4", "$valid$"]
6149 }
6150 }
6151 }
Yi Tsengbe342052017-11-03 10:21:23 -07006152 },
6153 {
6154 "name" : "cksum_0",
6155 "id" : 1,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07006156 "source_info" : {
6157 "filename" : "include/checksum.p4",
6158 "line" : 57,
6159 "column" : 8,
6160 "source_fragment" : "verify_checksum(hdr.ipv4.isValid(), ..."
6161 },
Yi Tsengbe342052017-11-03 10:21:23 -07006162 "target" : ["ipv4", "hdr_checksum"],
6163 "type" : "generic",
Yi Tsengbd46d052018-01-22 17:18:16 -08006164 "calculation" : "calc_0",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08006165 "verify" : true,
6166 "update" : false,
Yi Tsengbd46d052018-01-22 17:18:16 -08006167 "if_cond" : {
6168 "type" : "expression",
6169 "value" : {
6170 "op" : "d2b",
6171 "left" : null,
6172 "right" : {
6173 "type" : "field",
6174 "value" : ["ipv4", "$valid$"]
6175 }
6176 }
6177 }
Yi Tsengbe342052017-11-03 10:21:23 -07006178 }
6179 ],
6180 "force_arith" : [],
6181 "extern_instances" : [],
6182 "field_aliases" : [
6183 [
6184 "queueing_metadata.enq_timestamp",
6185 ["standard_metadata", "enq_timestamp"]
6186 ],
6187 [
6188 "queueing_metadata.enq_qdepth",
6189 ["standard_metadata", "enq_qdepth"]
6190 ],
6191 [
6192 "queueing_metadata.deq_timedelta",
6193 ["standard_metadata", "deq_timedelta"]
6194 ],
6195 [
6196 "queueing_metadata.deq_qdepth",
6197 ["standard_metadata", "deq_qdepth"]
6198 ],
6199 [
6200 "intrinsic_metadata.ingress_global_timestamp",
6201 ["standard_metadata", "ingress_global_timestamp"]
6202 ],
6203 [
Yi Tseng27b9bc02018-04-12 14:52:40 +08006204 "intrinsic_metadata.egress_global_timestamp",
6205 ["standard_metadata", "egress_global_timestamp"]
6206 ],
6207 [
Yi Tsengbe342052017-11-03 10:21:23 -07006208 "intrinsic_metadata.mcast_grp",
6209 ["standard_metadata", "mcast_grp"]
6210 ],
6211 [
Yi Tsengbe342052017-11-03 10:21:23 -07006212 "intrinsic_metadata.egress_rid",
6213 ["standard_metadata", "egress_rid"]
Yi Tseng27b9bc02018-04-12 14:52:40 +08006214 ],
6215 [
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006216 "intrinsic_metadata.priority",
6217 ["standard_metadata", "priority"]
Yi Tsengbe342052017-11-03 10:21:23 -07006218 ]
Carmelo Cascone6af4e172018-06-15 16:01:30 +02006219 ],
6220 "program" : "fabric.p4",
6221 "__meta__" : {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02006222 "version" : [2, 23],
Carmelo Cascone6af4e172018-06-15 16:01:30 +02006223 "compiler" : "https://github.com/p4lang/p4c"
6224 }
Carmelo Cascone25243d62019-02-21 15:37:31 -08006225}