blob: f2edc556b7de9de77e1544d78587df6f06a5dfcd [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],
39 ["_padding_0", 5, false]
Carmelo Cascone2388cc12021-05-26 19:30:30 +020040 ]
41 },
42 {
43 "name" : "packet_out_header_t",
44 "id" : 1,
45 "fields" : [
46 ["egress_port", 9, false],
47 ["do_forwarding", 1, false],
48 ["_pad", 6, false]
Yi Tsengc6844f52017-12-19 11:58:25 -080049 ]
50 },
51 {
Carmelo Cascone2a308ff2021-06-01 18:31:57 -070052 "name" : "gtpu_t",
Carmelo Cascone2388cc12021-05-26 19:30:30 +020053 "id" : 2,
Yi Tsengc6844f52017-12-19 11:58:25 -080054 "fields" : [
Carmelo Cascone2a308ff2021-06-01 18:31:57 -070055 ["version", 3, false],
56 ["pt", 1, false],
57 ["spare", 1, false],
58 ["ex_flag", 1, false],
59 ["seq_flag", 1, false],
60 ["npdu_flag", 1, false],
61 ["msgtype", 8, false],
62 ["msglen", 16, false],
63 ["teid", 32, false]
64 ]
65 },
66 {
67 "name" : "standard_metadata",
68 "id" : 3,
69 "fields" : [
Carmelo Cascone6af4e172018-06-15 16:01:30 +020070 ["ingress_port", 9, false],
71 ["egress_spec", 9, false],
72 ["egress_port", 9, false],
Carmelo Cascone6af4e172018-06-15 16:01:30 +020073 ["instance_type", 32, false],
Carmelo Cascone6af4e172018-06-15 16:01:30 +020074 ["packet_length", 32, false],
75 ["enq_timestamp", 32, false],
76 ["enq_qdepth", 19, false],
77 ["deq_timedelta", 32, false],
78 ["deq_qdepth", 19, false],
79 ["ingress_global_timestamp", 48, false],
80 ["egress_global_timestamp", 48, false],
Carmelo Cascone6af4e172018-06-15 16:01:30 +020081 ["mcast_grp", 16, false],
Carmelo Cascone6af4e172018-06-15 16:01:30 +020082 ["egress_rid", 16, false],
Carmelo Cascone9b607da2019-05-08 14:03:01 -070083 ["checksum_error", 1, false],
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -070084 ["parser_error", 32, false],
Carmelo Cascone9b607da2019-05-08 14:03:01 -070085 ["priority", 3, false],
Carmelo Cascone2388cc12021-05-26 19:30:30 +020086 ["_padding", 3, false]
Carmelo Cascone6af4e172018-06-15 16:01:30 +020087 ]
88 },
89 {
90 "name" : "ethernet_t",
Carmelo Cascone2a308ff2021-06-01 18:31:57 -070091 "id" : 4,
Carmelo Cascone6af4e172018-06-15 16:01:30 +020092 "fields" : [
Yi Tsengc6844f52017-12-19 11:58:25 -080093 ["dst_addr", 48, false],
Daniele Moro5a2de712019-09-24 14:34:07 -070094 ["src_addr", 48, false]
Yi Tsengc6844f52017-12-19 11:58:25 -080095 ]
96 },
97 {
98 "name" : "vlan_tag_t",
Carmelo Cascone2a308ff2021-06-01 18:31:57 -070099 "id" : 5,
Yi Tsengc6844f52017-12-19 11:58:25 -0800100 "fields" : [
Daniele Moro5a2de712019-09-24 14:34:07 -0700101 ["eth_type", 16, false],
Yi Tsengc6844f52017-12-19 11:58:25 -0800102 ["pri", 3, false],
103 ["cfi", 1, false],
Daniele Moro5a2de712019-09-24 14:34:07 -0700104 ["vlan_id", 12, false]
105 ]
106 },
107 {
108 "name" : "eth_type_t",
Carmelo Cascone2a308ff2021-06-01 18:31:57 -0700109 "id" : 6,
Daniele Moro5a2de712019-09-24 14:34:07 -0700110 "fields" : [
111 ["value", 16, false]
Yi Tsengc6844f52017-12-19 11:58:25 -0800112 ]
113 },
114 {
115 "name" : "mpls_t",
Carmelo Cascone2a308ff2021-06-01 18:31:57 -0700116 "id" : 7,
Yi Tsengc6844f52017-12-19 11:58:25 -0800117 "fields" : [
118 ["label", 20, false],
119 ["tc", 3, false],
120 ["bos", 1, false],
121 ["ttl", 8, false]
Yi Tsengbe342052017-11-03 10:21:23 -0700122 ]
123 },
124 {
125 "name" : "ipv4_t",
Carmelo Cascone2a308ff2021-06-01 18:31:57 -0700126 "id" : 8,
Yi Tsengbe342052017-11-03 10:21:23 -0700127 "fields" : [
128 ["version", 4, false],
129 ["ihl", 4, false],
Jonghwan Hyuned478dc2018-08-06 15:35:18 +0900130 ["dscp", 6, false],
131 ["ecn", 2, false],
Yi Tsengbe342052017-11-03 10:21:23 -0700132 ["total_len", 16, false],
133 ["identification", 16, false],
134 ["flags", 3, false],
135 ["frag_offset", 13, false],
136 ["ttl", 8, false],
137 ["protocol", 8, false],
138 ["hdr_checksum", 16, false],
139 ["src_addr", 32, false],
140 ["dst_addr", 32, false]
141 ]
142 },
143 {
Wailok Shum4f51bde2021-06-11 22:48:41 +0800144 "name" : "udp_t",
Carmelo Cascone2a308ff2021-06-01 18:31:57 -0700145 "id" : 9,
Yi Tseng47eac892018-07-11 02:17:04 +0800146 "fields" : [
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800147 ["sport", 16, false],
148 ["dport", 16, false],
Wailok Shum4f51bde2021-06-11 22:48:41 +0800149 ["len", 16, false],
150 ["checksum", 16, false]
151 ]
152 },
153 {
154 "name" : "tcp_t",
155 "id" : 10,
156 "fields" : [
157 ["sport", 16, false],
158 ["dport", 16, false],
Yi Tsengbe342052017-11-03 10:21:23 -0700159 ["seq_no", 32, false],
160 ["ack_no", 32, false],
161 ["data_offset", 4, false],
162 ["res", 3, false],
163 ["ecn", 3, false],
164 ["ctrl", 6, false],
165 ["window", 16, false],
166 ["checksum", 16, false],
167 ["urgent_ptr", 16, false]
168 ]
169 },
170 {
Yi Tsengbe342052017-11-03 10:21:23 -0700171 "name" : "icmp_t",
Carmelo Cascone2a308ff2021-06-01 18:31:57 -0700172 "id" : 11,
Yi Tsengbe342052017-11-03 10:21:23 -0700173 "fields" : [
174 ["icmp_type", 8, false],
175 ["icmp_code", 8, false],
Yi Tsengf73a5532017-11-17 15:58:57 -0800176 ["checksum", 16, false],
177 ["identifier", 16, false],
178 ["sequence_number", 16, false],
179 ["timestamp", 64, false]
Yi Tsengbe342052017-11-03 10:21:23 -0700180 ]
181 },
182 {
Yi Tsengbe342052017-11-03 10:21:23 -0700183 "name" : "packet_in_header_t",
Carmelo Cascone2a308ff2021-06-01 18:31:57 -0700184 "id" : 12,
Yi Tsengbe342052017-11-03 10:21:23 -0700185 "fields" : [
186 ["ingress_port", 9, false],
Yi Tseng1d842672017-11-28 16:06:52 -0800187 ["_pad", 7, false]
Yi Tsengbe342052017-11-03 10:21:23 -0700188 ]
Yi Tsengbe342052017-11-03 10:21:23 -0700189 }
190 ],
191 "headers" : [
192 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200193 "name" : "tmp",
Yi Tsengc6844f52017-12-19 11:58:25 -0800194 "id" : 0,
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200195 "header_type" : "packet_out_header_t",
196 "metadata" : false,
197 "pi_omit" : true
198 },
199 {
Carmelo Cascone2a308ff2021-06-01 18:31:57 -0700200 "name" : "gtpu_0",
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200201 "id" : 1,
Carmelo Cascone2a308ff2021-06-01 18:31:57 -0700202 "header_type" : "gtpu_t",
203 "metadata" : false,
204 "pi_omit" : true
205 },
206 {
207 "name" : "scalars",
208 "id" : 2,
Yi Tsengbe342052017-11-03 10:21:23 -0700209 "header_type" : "scalars_0",
210 "metadata" : true,
211 "pi_omit" : true
212 },
213 {
214 "name" : "standard_metadata",
Carmelo Cascone2a308ff2021-06-01 18:31:57 -0700215 "id" : 3,
Yi Tsengbe342052017-11-03 10:21:23 -0700216 "header_type" : "standard_metadata",
217 "metadata" : true,
218 "pi_omit" : true
219 },
220 {
221 "name" : "ethernet",
Carmelo Cascone2a308ff2021-06-01 18:31:57 -0700222 "id" : 4,
Yi Tsengbe342052017-11-03 10:21:23 -0700223 "header_type" : "ethernet_t",
224 "metadata" : false,
225 "pi_omit" : true
226 },
227 {
228 "name" : "vlan_tag",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800229 "id" : 5,
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200230 "header_type" : "vlan_tag_t",
231 "metadata" : false,
232 "pi_omit" : true
233 },
234 {
Carmelo Cascone2a308ff2021-06-01 18:31:57 -0700235 "name" : "inner_vlan_tag",
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200236 "id" : 6,
Carmelo Cascone2a308ff2021-06-01 18:31:57 -0700237 "header_type" : "vlan_tag_t",
238 "metadata" : false,
239 "pi_omit" : true
240 },
241 {
242 "name" : "eth_type",
243 "id" : 7,
Daniele Moro5a2de712019-09-24 14:34:07 -0700244 "header_type" : "eth_type_t",
245 "metadata" : false,
246 "pi_omit" : true
247 },
248 {
249 "name" : "mpls",
Carmelo Cascone2a308ff2021-06-01 18:31:57 -0700250 "id" : 8,
Yi Tsengbe342052017-11-03 10:21:23 -0700251 "header_type" : "mpls_t",
252 "metadata" : false,
253 "pi_omit" : true
254 },
255 {
Wailok Shum4f51bde2021-06-11 22:48:41 +0800256 "name" : "gtpu",
Carmelo Cascone2a308ff2021-06-01 18:31:57 -0700257 "id" : 9,
Wailok Shum4f51bde2021-06-11 22:48:41 +0800258 "header_type" : "gtpu_t",
259 "metadata" : false,
260 "pi_omit" : true
261 },
262 {
263 "name" : "inner_ipv4",
264 "id" : 10,
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800265 "header_type" : "ipv4_t",
Yi Tsengbe342052017-11-03 10:21:23 -0700266 "metadata" : false,
267 "pi_omit" : true
268 },
269 {
Wailok Shum4f51bde2021-06-11 22:48:41 +0800270 "name" : "inner_udp",
Carmelo Cascone2a308ff2021-06-01 18:31:57 -0700271 "id" : 11,
Yi Tsengbe342052017-11-03 10:21:23 -0700272 "header_type" : "udp_t",
273 "metadata" : false,
274 "pi_omit" : true
275 },
276 {
Wailok Shum4f51bde2021-06-11 22:48:41 +0800277 "name" : "inner_tcp",
Carmelo Cascone2a308ff2021-06-01 18:31:57 -0700278 "id" : 12,
Wailok Shum4f51bde2021-06-11 22:48:41 +0800279 "header_type" : "tcp_t",
280 "metadata" : false,
281 "pi_omit" : true
282 },
283 {
284 "name" : "inner_icmp",
285 "id" : 13,
286 "header_type" : "icmp_t",
287 "metadata" : false,
288 "pi_omit" : true
289 },
290 {
291 "name" : "ipv4",
292 "id" : 14,
293 "header_type" : "ipv4_t",
294 "metadata" : false,
295 "pi_omit" : true
296 },
297 {
298 "name" : "tcp",
299 "id" : 15,
300 "header_type" : "tcp_t",
301 "metadata" : false,
302 "pi_omit" : true
303 },
304 {
305 "name" : "udp",
306 "id" : 16,
307 "header_type" : "udp_t",
308 "metadata" : false,
309 "pi_omit" : true
310 },
311 {
312 "name" : "icmp",
313 "id" : 17,
Yi Tsengbe342052017-11-03 10:21:23 -0700314 "header_type" : "icmp_t",
315 "metadata" : false,
316 "pi_omit" : true
317 },
318 {
319 "name" : "packet_out",
Wailok Shum4f51bde2021-06-11 22:48:41 +0800320 "id" : 18,
Yi Tsengbe342052017-11-03 10:21:23 -0700321 "header_type" : "packet_out_header_t",
322 "metadata" : false,
323 "pi_omit" : true
324 },
325 {
326 "name" : "packet_in",
Wailok Shum4f51bde2021-06-11 22:48:41 +0800327 "id" : 19,
Yi Tsengbe342052017-11-03 10:21:23 -0700328 "header_type" : "packet_in_header_t",
329 "metadata" : false,
330 "pi_omit" : true
331 }
332 ],
333 "header_stacks" : [],
334 "header_union_types" : [],
335 "header_unions" : [],
336 "header_union_stacks" : [],
Daniele Moro01ca2ab2019-06-25 11:48:48 -0700337 "field_lists" : [
338 {
339 "id" : 1,
340 "name" : "fl",
341 "source_info" : {
Daniele Moro3b7a21b2019-06-25 17:33:40 -0700342 "filename" : "include/control/acl.p4",
Wailok Shum4f51bde2021-06-11 22:48:41 +0800343 "line" : 52,
Daniele Moro01ca2ab2019-06-25 11:48:48 -0700344 "column" : 40,
Daniele Moro3b7a21b2019-06-25 17:33:40 -0700345 "source_fragment" : "{standard_metadata.ingress_port}"
Daniele Moro01ca2ab2019-06-25 11:48:48 -0700346 },
347 "elements" : [
348 {
349 "type" : "field",
350 "value" : ["standard_metadata", "ingress_port"]
Daniele Moro01ca2ab2019-06-25 11:48:48 -0700351 }
352 ]
353 }
354 ],
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700355 "errors" : [
Carmelo Cascone4d8785b2019-05-31 17:11:26 -0700356 ["NoError", 1],
357 ["PacketTooShort", 2],
358 ["NoMatch", 3],
359 ["StackOutOfBounds", 4],
360 ["HeaderTooShort", 5],
361 ["ParserTimeout", 6],
362 ["ParserInvalidArgument", 7]
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700363 ],
Yi Tsengbe342052017-11-03 10:21:23 -0700364 "enums" : [],
365 "parsers" : [
366 {
367 "name" : "parser",
368 "id" : 0,
369 "init_state" : "start",
370 "parse_states" : [
371 {
372 "name" : "start",
373 "id" : 0,
374 "parser_ops" : [],
375 "transitions" : [
376 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800377 "type" : "hexstr",
Yi Tsengbe342052017-11-03 10:21:23 -0700378 "value" : "0x00ff",
379 "mask" : null,
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200380 "next_state" : "check_packet_out"
Yi Tsengbe342052017-11-03 10:21:23 -0700381 },
382 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200383 "type" : "default",
384 "value" : null,
Yi Tsengbe342052017-11-03 10:21:23 -0700385 "mask" : null,
386 "next_state" : "parse_ethernet"
387 }
388 ],
389 "transition_key" : [
390 {
391 "type" : "field",
392 "value" : ["standard_metadata", "ingress_port"]
393 }
394 ]
395 },
396 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200397 "name" : "check_packet_out",
Yi Tsengbe342052017-11-03 10:21:23 -0700398 "id" : 1,
399 "parser_ops" : [
400 {
401 "parameters" : [
402 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200403 "type" : "field",
404 "value" : ["scalars", "tmp_6"]
405 },
406 {
407 "type" : "lookahead",
408 "value" : [0, 16]
409 }
410 ],
411 "op" : "set"
412 },
413 {
414 "parameters" : [
415 {
416 "parameters" : [
417 {
418 "type" : "header",
419 "value" : "tmp"
420 }
421 ],
422 "op" : "add_header"
423 }
424 ],
425 "op" : "primitive"
426 },
427 {
428 "parameters" : [
429 {
430 "type" : "field",
431 "value" : ["tmp", "egress_port"]
432 },
433 {
434 "type" : "expression",
435 "value" : {
436 "type" : "expression",
437 "value" : {
438 "op" : "&",
439 "left" : {
440 "type" : "expression",
441 "value" : {
442 "op" : "&",
443 "left" : {
444 "type" : "expression",
445 "value" : {
446 "op" : ">>",
447 "left" : {
448 "type" : "field",
449 "value" : ["scalars", "tmp_6"]
450 },
451 "right" : {
452 "type" : "hexstr",
453 "value" : "0x7"
454 }
455 }
456 },
457 "right" : {
458 "type" : "hexstr",
459 "value" : "0xffff"
460 }
461 }
462 },
463 "right" : {
464 "type" : "hexstr",
465 "value" : "0x01ff"
466 }
467 }
468 }
469 }
470 ],
471 "op" : "set"
472 },
473 {
474 "parameters" : [
475 {
476 "type" : "field",
477 "value" : ["tmp", "do_forwarding"]
478 },
479 {
480 "type" : "expression",
481 "value" : {
482 "type" : "expression",
483 "value" : {
484 "op" : "&",
485 "left" : {
486 "type" : "expression",
487 "value" : {
488 "op" : "&",
489 "left" : {
490 "type" : "expression",
491 "value" : {
492 "op" : ">>",
493 "left" : {
494 "type" : "field",
495 "value" : ["scalars", "tmp_6"]
496 },
497 "right" : {
498 "type" : "hexstr",
499 "value" : "0x6"
500 }
501 }
502 },
503 "right" : {
504 "type" : "hexstr",
505 "value" : "0xffff"
506 }
507 }
508 },
509 "right" : {
510 "type" : "hexstr",
511 "value" : "0x01"
512 }
513 }
514 }
515 }
516 ],
517 "op" : "set"
518 },
519 {
520 "parameters" : [
521 {
522 "type" : "field",
523 "value" : ["tmp", "_pad"]
524 },
525 {
526 "type" : "expression",
527 "value" : {
528 "type" : "expression",
529 "value" : {
530 "op" : "&",
531 "left" : {
532 "type" : "field",
533 "value" : ["scalars", "tmp_6"]
534 },
535 "right" : {
536 "type" : "hexstr",
537 "value" : "0x3f"
538 }
539 }
540 }
541 }
542 ],
543 "op" : "set"
544 },
545 {
546 "parameters" : [
547 {
548 "type" : "field",
549 "value" : ["scalars", "tmp_0"]
550 },
551 {
552 "type" : "expression",
553 "value" : {
554 "type" : "expression",
555 "value" : {
556 "op" : "&",
557 "left" : {
558 "type" : "expression",
559 "value" : {
560 "op" : "&",
561 "left" : {
562 "type" : "expression",
563 "value" : {
564 "op" : ">>",
565 "left" : {
566 "type" : "field",
567 "value" : ["scalars", "tmp_6"]
568 },
569 "right" : {
570 "type" : "hexstr",
571 "value" : "0x6"
572 }
573 }
574 },
575 "right" : {
576 "type" : "hexstr",
577 "value" : "0xffff"
578 }
579 }
580 },
581 "right" : {
582 "type" : "hexstr",
583 "value" : "0x01"
584 }
585 }
586 }
587 }
588 ],
589 "op" : "set"
590 }
591 ],
592 "transitions" : [
593 {
594 "type" : "hexstr",
595 "value" : "0x00",
596 "mask" : null,
597 "next_state" : "parse_packet_out_and_accept"
598 },
599 {
600 "type" : "default",
601 "value" : null,
602 "mask" : null,
603 "next_state" : "strip_packet_out"
604 }
605 ],
606 "transition_key" : [
607 {
608 "type" : "field",
609 "value" : ["scalars", "tmp_0"]
610 }
611 ]
612 },
613 {
614 "name" : "parse_packet_out_and_accept",
615 "id" : 2,
616 "parser_ops" : [
617 {
618 "parameters" : [
619 {
Yi Tsengbe342052017-11-03 10:21:23 -0700620 "type" : "regular",
621 "value" : "packet_out"
622 }
623 ],
624 "op" : "extract"
625 }
626 ],
627 "transitions" : [
628 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200629 "type" : "default",
630 "value" : null,
631 "mask" : null,
632 "next_state" : null
633 }
634 ],
635 "transition_key" : []
636 },
637 {
638 "name" : "strip_packet_out",
639 "id" : 3,
640 "parser_ops" : [
641 {
642 "parameters" : [
643 {
644 "type" : "hexstr",
645 "value" : "0x00000010"
646 }
647 ],
648 "op" : "advance"
649 }
650 ],
651 "transitions" : [
652 {
653 "type" : "default",
654 "value" : null,
Yi Tsengbe342052017-11-03 10:21:23 -0700655 "mask" : null,
656 "next_state" : "parse_ethernet"
657 }
658 ],
659 "transition_key" : []
660 },
661 {
662 "name" : "parse_ethernet",
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200663 "id" : 4,
Yi Tsengbe342052017-11-03 10:21:23 -0700664 "parser_ops" : [
665 {
666 "parameters" : [
667 {
668 "type" : "regular",
669 "value" : "ethernet"
670 }
671 ],
672 "op" : "extract"
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800673 },
674 {
675 "parameters" : [
676 {
677 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200678 "value" : ["scalars", "userMetadata.vlan_id"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800679 },
680 {
Daniele Moro5a2de712019-09-24 14:34:07 -0700681 "type" : "hexstr",
682 "value" : "0x0ffe"
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800683 }
684 ],
685 "op" : "set"
686 },
687 {
688 "parameters" : [
689 {
690 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200691 "value" : ["scalars", "tmp_1"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800692 },
693 {
Daniele Moro5a2de712019-09-24 14:34:07 -0700694 "type" : "lookahead",
695 "value" : [0, 16]
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800696 }
697 ],
698 "op" : "set"
Yi Tsengbe342052017-11-03 10:21:23 -0700699 }
700 ],
701 "transitions" : [
702 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800703 "type" : "hexstr",
Daniele Moro77654f92019-07-30 10:29:54 -0700704 "value" : "0x88a8",
705 "mask" : null,
706 "next_state" : "parse_vlan_tag"
707 },
708 {
709 "type" : "hexstr",
710 "value" : "0x9100",
711 "mask" : null,
712 "next_state" : "parse_vlan_tag"
713 },
714 {
715 "type" : "hexstr",
Yi Tsengbe342052017-11-03 10:21:23 -0700716 "value" : "0x8100",
717 "mask" : null,
718 "next_state" : "parse_vlan_tag"
719 },
720 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200721 "type" : "default",
722 "value" : null,
Yi Tsengbe342052017-11-03 10:21:23 -0700723 "mask" : null,
Daniele Moro5a2de712019-09-24 14:34:07 -0700724 "next_state" : "parse_eth_type"
Yi Tsengbe342052017-11-03 10:21:23 -0700725 }
726 ],
727 "transition_key" : [
728 {
729 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200730 "value" : ["scalars", "tmp_1"]
Yi Tsengbe342052017-11-03 10:21:23 -0700731 }
732 ]
733 },
734 {
735 "name" : "parse_vlan_tag",
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200736 "id" : 5,
Yi Tsengbe342052017-11-03 10:21:23 -0700737 "parser_ops" : [
738 {
739 "parameters" : [
740 {
741 "type" : "regular",
742 "value" : "vlan_tag"
743 }
744 ],
745 "op" : "extract"
Daniele Moro5a2de712019-09-24 14:34:07 -0700746 },
747 {
748 "parameters" : [
749 {
750 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200751 "value" : ["scalars", "tmp_3"]
Daniele Moro5a2de712019-09-24 14:34:07 -0700752 },
753 {
754 "type" : "lookahead",
755 "value" : [0, 16]
756 }
757 ],
758 "op" : "set"
Yi Tsengbe342052017-11-03 10:21:23 -0700759 }
760 ],
761 "transitions" : [
762 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800763 "type" : "hexstr",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800764 "value" : "0x8100",
765 "mask" : null,
766 "next_state" : "parse_inner_vlan_tag"
767 },
768 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200769 "type" : "default",
770 "value" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800771 "mask" : null,
Daniele Moro5a2de712019-09-24 14:34:07 -0700772 "next_state" : "parse_eth_type"
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800773 }
774 ],
775 "transition_key" : [
776 {
777 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200778 "value" : ["scalars", "tmp_3"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800779 }
780 ]
781 },
782 {
783 "name" : "parse_inner_vlan_tag",
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200784 "id" : 6,
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800785 "parser_ops" : [
786 {
787 "parameters" : [
788 {
789 "type" : "regular",
790 "value" : "inner_vlan_tag"
791 }
792 ],
793 "op" : "extract"
794 }
795 ],
796 "transitions" : [
797 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200798 "type" : "default",
799 "value" : null,
Yi Tsengbe342052017-11-03 10:21:23 -0700800 "mask" : null,
Daniele Moro5a2de712019-09-24 14:34:07 -0700801 "next_state" : "parse_eth_type"
802 }
803 ],
804 "transition_key" : []
805 },
806 {
807 "name" : "parse_eth_type",
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200808 "id" : 7,
Daniele Moro5a2de712019-09-24 14:34:07 -0700809 "parser_ops" : [
810 {
811 "parameters" : [
812 {
813 "type" : "regular",
814 "value" : "eth_type"
815 }
816 ],
817 "op" : "extract"
818 }
819 ],
820 "transitions" : [
Yi Tsengbe342052017-11-03 10:21:23 -0700821 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800822 "type" : "hexstr",
Yi Tsengbd46d052018-01-22 17:18:16 -0800823 "value" : "0x8847",
Yi Tsengbe342052017-11-03 10:21:23 -0700824 "mask" : null,
Yi Tsengbd46d052018-01-22 17:18:16 -0800825 "next_state" : "parse_mpls"
Yi Tsengbe342052017-11-03 10:21:23 -0700826 },
827 {
Daniele Moro5a2de712019-09-24 14:34:07 -0700828 "type" : "hexstr",
829 "value" : "0x0800",
830 "mask" : null,
831 "next_state" : "parse_ipv4"
832 },
833 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200834 "type" : "default",
835 "value" : null,
Yi Tsengbe342052017-11-03 10:21:23 -0700836 "mask" : null,
837 "next_state" : null
838 }
839 ],
840 "transition_key" : [
841 {
842 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -0700843 "value" : ["eth_type", "value"]
Yi Tsengbe342052017-11-03 10:21:23 -0700844 }
845 ]
846 },
847 {
848 "name" : "parse_mpls",
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200849 "id" : 8,
Yi Tsengbe342052017-11-03 10:21:23 -0700850 "parser_ops" : [
851 {
852 "parameters" : [
853 {
854 "type" : "regular",
855 "value" : "mpls"
856 }
857 ],
858 "op" : "extract"
859 },
860 {
861 "parameters" : [
862 {
863 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200864 "value" : ["scalars", "userMetadata.mpls_label"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800865 },
866 {
867 "type" : "field",
868 "value" : ["mpls", "label"]
869 }
870 ],
871 "op" : "set"
872 },
873 {
874 "parameters" : [
875 {
876 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200877 "value" : ["scalars", "userMetadata.mpls_ttl"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800878 },
879 {
880 "type" : "field",
881 "value" : ["mpls", "ttl"]
882 }
883 ],
884 "op" : "set"
885 },
886 {
887 "parameters" : [
888 {
889 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200890 "value" : ["scalars", "tmp_5"]
Yi Tsengbe342052017-11-03 10:21:23 -0700891 },
892 {
893 "type" : "lookahead",
Yi Tsengc6844f52017-12-19 11:58:25 -0800894 "value" : [0, 4]
Yi Tsengbe342052017-11-03 10:21:23 -0700895 }
896 ],
897 "op" : "set"
898 }
899 ],
900 "transitions" : [
901 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800902 "type" : "hexstr",
Yi Tsengbe342052017-11-03 10:21:23 -0700903 "value" : "0x04",
904 "mask" : null,
905 "next_state" : "parse_ipv4"
906 },
907 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200908 "type" : "default",
909 "value" : null,
Yi Tsengbe342052017-11-03 10:21:23 -0700910 "mask" : null,
911 "next_state" : "parse_ethernet"
912 }
913 ],
914 "transition_key" : [
915 {
916 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200917 "value" : ["scalars", "tmp_5"]
Yi Tsengbe342052017-11-03 10:21:23 -0700918 }
919 ]
920 },
921 {
Daniele Moro7c3a0022019-07-12 13:38:34 -0700922 "name" : "parse_ipv4",
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200923 "id" : 9,
Daniele Moro7c3a0022019-07-12 13:38:34 -0700924 "parser_ops" : [
925 {
926 "parameters" : [
927 {
Yi Tsengbe342052017-11-03 10:21:23 -0700928 "type" : "regular",
929 "value" : "ipv4"
930 }
931 ],
932 "op" : "extract"
933 },
934 {
935 "parameters" : [
936 {
937 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200938 "value" : ["scalars", "userMetadata.ip_proto"]
Yi Tsengbe342052017-11-03 10:21:23 -0700939 },
940 {
941 "type" : "field",
942 "value" : ["ipv4", "protocol"]
943 }
944 ],
945 "op" : "set"
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800946 },
947 {
948 "parameters" : [
949 {
950 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200951 "value" : ["scalars", "userMetadata.ip_eth_type"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800952 },
953 {
954 "type" : "hexstr",
955 "value" : "0x0800"
956 }
957 ],
958 "op" : "set"
Robert MacDavidbec6b6a2020-05-21 21:32:38 -0400959 },
960 {
961 "parameters" : [
962 {
963 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200964 "value" : ["scalars", "userMetadata.ipv4_src_addr"]
Robert MacDavidbec6b6a2020-05-21 21:32:38 -0400965 },
966 {
967 "type" : "field",
968 "value" : ["ipv4", "src_addr"]
969 }
970 ],
971 "op" : "set"
972 },
973 {
974 "parameters" : [
975 {
976 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +0200977 "value" : ["scalars", "userMetadata.ipv4_dst_addr"]
Robert MacDavidbec6b6a2020-05-21 21:32:38 -0400978 },
979 {
980 "type" : "field",
981 "value" : ["ipv4", "dst_addr"]
982 }
983 ],
984 "op" : "set"
Yi Tsengbe342052017-11-03 10:21:23 -0700985 }
986 ],
987 "transitions" : [
988 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800989 "type" : "hexstr",
Yi Tsengbe342052017-11-03 10:21:23 -0700990 "value" : "0x06",
991 "mask" : null,
992 "next_state" : "parse_tcp"
993 },
994 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800995 "type" : "hexstr",
Yi Tsengbe342052017-11-03 10:21:23 -0700996 "value" : "0x11",
997 "mask" : null,
998 "next_state" : "parse_udp"
999 },
1000 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001001 "type" : "hexstr",
Yi Tsengbe342052017-11-03 10:21:23 -07001002 "value" : "0x01",
1003 "mask" : null,
1004 "next_state" : "parse_icmp"
1005 },
1006 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02001007 "type" : "default",
1008 "value" : null,
Yi Tsengbe342052017-11-03 10:21:23 -07001009 "mask" : null,
1010 "next_state" : null
1011 }
1012 ],
1013 "transition_key" : [
1014 {
1015 "type" : "field",
1016 "value" : ["ipv4", "protocol"]
1017 }
1018 ]
1019 },
1020 {
Yi Tsengbe342052017-11-03 10:21:23 -07001021 "name" : "parse_tcp",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02001022 "id" : 10,
Yi Tsengbe342052017-11-03 10:21:23 -07001023 "parser_ops" : [
1024 {
1025 "parameters" : [
1026 {
1027 "type" : "regular",
1028 "value" : "tcp"
1029 }
1030 ],
1031 "op" : "extract"
1032 },
1033 {
1034 "parameters" : [
1035 {
1036 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02001037 "value" : ["scalars", "userMetadata.l4_sport"]
Yi Tsengbe342052017-11-03 10:21:23 -07001038 },
1039 {
1040 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001041 "value" : ["tcp", "sport"]
Yi Tsengbe342052017-11-03 10:21:23 -07001042 }
1043 ],
1044 "op" : "set"
1045 },
1046 {
1047 "parameters" : [
1048 {
1049 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02001050 "value" : ["scalars", "userMetadata.l4_dport"]
Yi Tsengbe342052017-11-03 10:21:23 -07001051 },
1052 {
1053 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001054 "value" : ["tcp", "dport"]
Yi Tsengbe342052017-11-03 10:21:23 -07001055 }
1056 ],
1057 "op" : "set"
1058 }
1059 ],
1060 "transitions" : [
1061 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02001062 "type" : "default",
1063 "value" : null,
Yi Tsengbe342052017-11-03 10:21:23 -07001064 "mask" : null,
1065 "next_state" : null
1066 }
1067 ],
1068 "transition_key" : []
1069 },
1070 {
1071 "name" : "parse_udp",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02001072 "id" : 11,
Yi Tsengbe342052017-11-03 10:21:23 -07001073 "parser_ops" : [
1074 {
1075 "parameters" : [
1076 {
1077 "type" : "regular",
1078 "value" : "udp"
1079 }
1080 ],
1081 "op" : "extract"
1082 },
1083 {
1084 "parameters" : [
1085 {
1086 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02001087 "value" : ["scalars", "userMetadata.l4_sport"]
Yi Tsengbe342052017-11-03 10:21:23 -07001088 },
1089 {
1090 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001091 "value" : ["udp", "sport"]
Yi Tsengbe342052017-11-03 10:21:23 -07001092 }
1093 ],
1094 "op" : "set"
1095 },
1096 {
1097 "parameters" : [
1098 {
1099 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02001100 "value" : ["scalars", "userMetadata.l4_dport"]
Yi Tsengbe342052017-11-03 10:21:23 -07001101 },
1102 {
1103 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001104 "value" : ["udp", "dport"]
Yi Tsengbe342052017-11-03 10:21:23 -07001105 }
1106 ],
1107 "op" : "set"
Carmelo Cascone2a308ff2021-06-01 18:31:57 -07001108 },
1109 {
1110 "parameters" : [
1111 {
1112 "type" : "field",
1113 "value" : ["scalars", "tmp_7"]
1114 },
1115 {
1116 "type" : "lookahead",
1117 "value" : [0, 64]
1118 }
1119 ],
1120 "op" : "set"
1121 },
1122 {
1123 "parameters" : [
1124 {
1125 "parameters" : [
1126 {
1127 "type" : "header",
1128 "value" : "gtpu_0"
1129 }
1130 ],
1131 "op" : "add_header"
1132 }
1133 ],
1134 "op" : "primitive"
1135 },
1136 {
1137 "parameters" : [
1138 {
1139 "type" : "field",
1140 "value" : ["gtpu_0", "version"]
1141 },
1142 {
1143 "type" : "expression",
1144 "value" : {
1145 "type" : "expression",
1146 "value" : {
1147 "op" : "&",
1148 "left" : {
1149 "type" : "expression",
1150 "value" : {
1151 "op" : "&",
1152 "left" : {
1153 "type" : "expression",
1154 "value" : {
1155 "op" : ">>",
1156 "left" : {
1157 "type" : "field",
1158 "value" : ["scalars", "tmp_7"]
1159 },
1160 "right" : {
1161 "type" : "hexstr",
1162 "value" : "0x3d"
1163 }
1164 }
1165 },
1166 "right" : {
1167 "type" : "hexstr",
1168 "value" : "0xffffffffffffffff"
1169 }
1170 }
1171 },
1172 "right" : {
1173 "type" : "hexstr",
1174 "value" : "0x07"
1175 }
1176 }
1177 }
1178 }
1179 ],
1180 "op" : "set"
1181 },
1182 {
1183 "parameters" : [
1184 {
1185 "type" : "field",
1186 "value" : ["gtpu_0", "pt"]
1187 },
1188 {
1189 "type" : "expression",
1190 "value" : {
1191 "type" : "expression",
1192 "value" : {
1193 "op" : "&",
1194 "left" : {
1195 "type" : "expression",
1196 "value" : {
1197 "op" : "&",
1198 "left" : {
1199 "type" : "expression",
1200 "value" : {
1201 "op" : ">>",
1202 "left" : {
1203 "type" : "field",
1204 "value" : ["scalars", "tmp_7"]
1205 },
1206 "right" : {
1207 "type" : "hexstr",
1208 "value" : "0x3c"
1209 }
1210 }
1211 },
1212 "right" : {
1213 "type" : "hexstr",
1214 "value" : "0xffffffffffffffff"
1215 }
1216 }
1217 },
1218 "right" : {
1219 "type" : "hexstr",
1220 "value" : "0x01"
1221 }
1222 }
1223 }
1224 }
1225 ],
1226 "op" : "set"
1227 },
1228 {
1229 "parameters" : [
1230 {
1231 "type" : "field",
1232 "value" : ["gtpu_0", "spare"]
1233 },
1234 {
1235 "type" : "expression",
1236 "value" : {
1237 "type" : "expression",
1238 "value" : {
1239 "op" : "&",
1240 "left" : {
1241 "type" : "expression",
1242 "value" : {
1243 "op" : "&",
1244 "left" : {
1245 "type" : "expression",
1246 "value" : {
1247 "op" : ">>",
1248 "left" : {
1249 "type" : "field",
1250 "value" : ["scalars", "tmp_7"]
1251 },
1252 "right" : {
1253 "type" : "hexstr",
1254 "value" : "0x3b"
1255 }
1256 }
1257 },
1258 "right" : {
1259 "type" : "hexstr",
1260 "value" : "0xffffffffffffffff"
1261 }
1262 }
1263 },
1264 "right" : {
1265 "type" : "hexstr",
1266 "value" : "0x01"
1267 }
1268 }
1269 }
1270 }
1271 ],
1272 "op" : "set"
1273 },
1274 {
1275 "parameters" : [
1276 {
1277 "type" : "field",
1278 "value" : ["gtpu_0", "ex_flag"]
1279 },
1280 {
1281 "type" : "expression",
1282 "value" : {
1283 "type" : "expression",
1284 "value" : {
1285 "op" : "&",
1286 "left" : {
1287 "type" : "expression",
1288 "value" : {
1289 "op" : "&",
1290 "left" : {
1291 "type" : "expression",
1292 "value" : {
1293 "op" : ">>",
1294 "left" : {
1295 "type" : "field",
1296 "value" : ["scalars", "tmp_7"]
1297 },
1298 "right" : {
1299 "type" : "hexstr",
1300 "value" : "0x3a"
1301 }
1302 }
1303 },
1304 "right" : {
1305 "type" : "hexstr",
1306 "value" : "0xffffffffffffffff"
1307 }
1308 }
1309 },
1310 "right" : {
1311 "type" : "hexstr",
1312 "value" : "0x01"
1313 }
1314 }
1315 }
1316 }
1317 ],
1318 "op" : "set"
1319 },
1320 {
1321 "parameters" : [
1322 {
1323 "type" : "field",
1324 "value" : ["gtpu_0", "seq_flag"]
1325 },
1326 {
1327 "type" : "expression",
1328 "value" : {
1329 "type" : "expression",
1330 "value" : {
1331 "op" : "&",
1332 "left" : {
1333 "type" : "expression",
1334 "value" : {
1335 "op" : "&",
1336 "left" : {
1337 "type" : "expression",
1338 "value" : {
1339 "op" : ">>",
1340 "left" : {
1341 "type" : "field",
1342 "value" : ["scalars", "tmp_7"]
1343 },
1344 "right" : {
1345 "type" : "hexstr",
1346 "value" : "0x39"
1347 }
1348 }
1349 },
1350 "right" : {
1351 "type" : "hexstr",
1352 "value" : "0xffffffffffffffff"
1353 }
1354 }
1355 },
1356 "right" : {
1357 "type" : "hexstr",
1358 "value" : "0x01"
1359 }
1360 }
1361 }
1362 }
1363 ],
1364 "op" : "set"
1365 },
1366 {
1367 "parameters" : [
1368 {
1369 "type" : "field",
1370 "value" : ["gtpu_0", "npdu_flag"]
1371 },
1372 {
1373 "type" : "expression",
1374 "value" : {
1375 "type" : "expression",
1376 "value" : {
1377 "op" : "&",
1378 "left" : {
1379 "type" : "expression",
1380 "value" : {
1381 "op" : "&",
1382 "left" : {
1383 "type" : "expression",
1384 "value" : {
1385 "op" : ">>",
1386 "left" : {
1387 "type" : "field",
1388 "value" : ["scalars", "tmp_7"]
1389 },
1390 "right" : {
1391 "type" : "hexstr",
1392 "value" : "0x38"
1393 }
1394 }
1395 },
1396 "right" : {
1397 "type" : "hexstr",
1398 "value" : "0xffffffffffffffff"
1399 }
1400 }
1401 },
1402 "right" : {
1403 "type" : "hexstr",
1404 "value" : "0x01"
1405 }
1406 }
1407 }
1408 }
1409 ],
1410 "op" : "set"
1411 },
1412 {
1413 "parameters" : [
1414 {
1415 "type" : "field",
1416 "value" : ["gtpu_0", "msgtype"]
1417 },
1418 {
1419 "type" : "expression",
1420 "value" : {
1421 "type" : "expression",
1422 "value" : {
1423 "op" : "&",
1424 "left" : {
1425 "type" : "expression",
1426 "value" : {
1427 "op" : "&",
1428 "left" : {
1429 "type" : "expression",
1430 "value" : {
1431 "op" : ">>",
1432 "left" : {
1433 "type" : "field",
1434 "value" : ["scalars", "tmp_7"]
1435 },
1436 "right" : {
1437 "type" : "hexstr",
1438 "value" : "0x30"
1439 }
1440 }
1441 },
1442 "right" : {
1443 "type" : "hexstr",
1444 "value" : "0xffffffffffffffff"
1445 }
1446 }
1447 },
1448 "right" : {
1449 "type" : "hexstr",
1450 "value" : "0xff"
1451 }
1452 }
1453 }
1454 }
1455 ],
1456 "op" : "set"
1457 },
1458 {
1459 "parameters" : [
1460 {
1461 "type" : "field",
1462 "value" : ["gtpu_0", "msglen"]
1463 },
1464 {
1465 "type" : "expression",
1466 "value" : {
1467 "type" : "expression",
1468 "value" : {
1469 "op" : "&",
1470 "left" : {
1471 "type" : "expression",
1472 "value" : {
1473 "op" : "&",
1474 "left" : {
1475 "type" : "expression",
1476 "value" : {
1477 "op" : ">>",
1478 "left" : {
1479 "type" : "field",
1480 "value" : ["scalars", "tmp_7"]
1481 },
1482 "right" : {
1483 "type" : "hexstr",
1484 "value" : "0x20"
1485 }
1486 }
1487 },
1488 "right" : {
1489 "type" : "hexstr",
1490 "value" : "0xffffffffffffffff"
1491 }
1492 }
1493 },
1494 "right" : {
1495 "type" : "hexstr",
1496 "value" : "0xffff"
1497 }
1498 }
1499 }
1500 }
1501 ],
1502 "op" : "set"
1503 },
1504 {
1505 "parameters" : [
1506 {
1507 "type" : "field",
1508 "value" : ["gtpu_0", "teid"]
1509 },
1510 {
1511 "type" : "expression",
1512 "value" : {
1513 "type" : "expression",
1514 "value" : {
1515 "op" : "&",
1516 "left" : {
1517 "type" : "field",
1518 "value" : ["scalars", "tmp_7"]
1519 },
1520 "right" : {
1521 "type" : "hexstr",
1522 "value" : "0xffffffff"
1523 }
1524 }
1525 }
1526 }
1527 ],
1528 "op" : "set"
1529 },
1530 {
1531 "parameters" : [
1532 {
1533 "type" : "field",
1534 "value" : ["scalars", "tmp_2"]
1535 },
1536 {
1537 "type" : "expression",
1538 "value" : {
1539 "type" : "expression",
1540 "value" : {
1541 "op" : "&",
1542 "left" : {
1543 "type" : "expression",
1544 "value" : {
1545 "op" : "&",
1546 "left" : {
1547 "type" : "expression",
1548 "value" : {
1549 "op" : ">>",
1550 "left" : {
1551 "type" : "field",
1552 "value" : ["scalars", "tmp_7"]
1553 },
1554 "right" : {
1555 "type" : "hexstr",
1556 "value" : "0x3d"
1557 }
1558 }
1559 },
1560 "right" : {
1561 "type" : "hexstr",
1562 "value" : "0xffffffffffffffff"
1563 }
1564 }
1565 },
1566 "right" : {
1567 "type" : "hexstr",
1568 "value" : "0x07"
1569 }
1570 }
1571 }
1572 }
1573 ],
1574 "op" : "set"
1575 },
1576 {
1577 "parameters" : [
1578 {
1579 "type" : "field",
1580 "value" : ["scalars", "tmp_4"]
1581 },
1582 {
1583 "type" : "expression",
1584 "value" : {
1585 "type" : "expression",
1586 "value" : {
1587 "op" : "&",
1588 "left" : {
1589 "type" : "expression",
1590 "value" : {
1591 "op" : "&",
1592 "left" : {
1593 "type" : "expression",
1594 "value" : {
1595 "op" : ">>",
1596 "left" : {
1597 "type" : "field",
1598 "value" : ["scalars", "tmp_7"]
1599 },
1600 "right" : {
1601 "type" : "hexstr",
1602 "value" : "0x30"
1603 }
1604 }
1605 },
1606 "right" : {
1607 "type" : "hexstr",
1608 "value" : "0xffffffffffffffff"
1609 }
1610 }
1611 },
1612 "right" : {
1613 "type" : "hexstr",
1614 "value" : "0xff"
1615 }
1616 }
1617 }
1618 }
1619 ],
1620 "op" : "set"
Yi Tsengbe342052017-11-03 10:21:23 -07001621 }
1622 ],
1623 "transitions" : [
1624 {
Wailok Shum4f51bde2021-06-11 22:48:41 +08001625 "type" : "hexstr",
1626 "value" : "0x086801ff",
1627 "mask" : null,
1628 "next_state" : "parse_gtpu"
1629 },
1630 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02001631 "type" : "default",
1632 "value" : null,
Yi Tsengbe342052017-11-03 10:21:23 -07001633 "mask" : null,
1634 "next_state" : null
1635 }
1636 ],
Carmelo Cascone79a3a312018-08-16 17:14:43 -07001637 "transition_key" : [
1638 {
1639 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001640 "value" : ["udp", "dport"]
Carmelo Cascone2a308ff2021-06-01 18:31:57 -07001641 },
1642 {
1643 "type" : "field",
1644 "value" : ["scalars", "tmp_2"]
1645 },
1646 {
1647 "type" : "field",
1648 "value" : ["scalars", "tmp_4"]
Carmelo Cascone79a3a312018-08-16 17:14:43 -07001649 }
1650 ]
Yi Tsengbe342052017-11-03 10:21:23 -07001651 },
1652 {
1653 "name" : "parse_icmp",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02001654 "id" : 12,
Yi Tsengbe342052017-11-03 10:21:23 -07001655 "parser_ops" : [
1656 {
1657 "parameters" : [
1658 {
1659 "type" : "regular",
1660 "value" : "icmp"
1661 }
1662 ],
1663 "op" : "extract"
1664 }
1665 ],
1666 "transitions" : [
1667 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02001668 "type" : "default",
1669 "value" : null,
Yi Tsengbe342052017-11-03 10:21:23 -07001670 "mask" : null,
1671 "next_state" : null
1672 }
1673 ],
1674 "transition_key" : []
Wailok Shum4f51bde2021-06-11 22:48:41 +08001675 },
1676 {
1677 "name" : "parse_gtpu",
1678 "id" : 13,
1679 "parser_ops" : [
1680 {
1681 "parameters" : [
1682 {
1683 "type" : "regular",
1684 "value" : "gtpu"
1685 }
1686 ],
1687 "op" : "extract"
1688 },
1689 {
1690 "parameters" : [
1691 {
1692 "type" : "regular",
1693 "value" : "inner_ipv4"
1694 }
1695 ],
1696 "op" : "extract"
1697 }
1698 ],
1699 "transitions" : [
1700 {
1701 "type" : "hexstr",
1702 "value" : "0x06",
1703 "mask" : null,
1704 "next_state" : "parse_tcp"
1705 },
1706 {
1707 "type" : "hexstr",
1708 "value" : "0x11",
1709 "mask" : null,
1710 "next_state" : "parse_inner_udp"
1711 },
1712 {
1713 "type" : "hexstr",
1714 "value" : "0x01",
1715 "mask" : null,
1716 "next_state" : "parse_icmp"
1717 },
1718 {
1719 "type" : "default",
1720 "value" : null,
1721 "mask" : null,
1722 "next_state" : null
1723 }
1724 ],
1725 "transition_key" : [
1726 {
1727 "type" : "field",
1728 "value" : ["inner_ipv4", "protocol"]
1729 }
1730 ]
1731 },
1732 {
1733 "name" : "parse_inner_udp",
1734 "id" : 14,
1735 "parser_ops" : [
1736 {
1737 "parameters" : [
1738 {
1739 "type" : "regular",
1740 "value" : "inner_udp"
1741 }
1742 ],
1743 "op" : "extract"
1744 }
1745 ],
1746 "transitions" : [
1747 {
1748 "type" : "default",
1749 "value" : null,
1750 "mask" : null,
1751 "next_state" : null
1752 }
1753 ],
1754 "transition_key" : []
Yi Tsengbe342052017-11-03 10:21:23 -07001755 }
1756 ]
1757 }
1758 ],
Yi Tseng27b9bc02018-04-12 14:52:40 +08001759 "parse_vsets" : [],
Yi Tsengbe342052017-11-03 10:21:23 -07001760 "deparsers" : [
1761 {
1762 "name" : "deparser",
1763 "id" : 0,
1764 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001765 "filename" : "include/parser.p4",
Carmelo Cascone2a308ff2021-06-01 18:31:57 -07001766 "line" : 285,
Yi Tsengbe342052017-11-03 10:21:23 -07001767 "column" : 8,
1768 "source_fragment" : "FabricDeparser"
1769 },
Wailok Shum4f51bde2021-06-11 22:48:41 +08001770 "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 +02001771 "primitives" : []
Yi Tsengbe342052017-11-03 10:21:23 -07001772 }
1773 ],
1774 "meter_arrays" : [],
1775 "counter_arrays" : [
1776 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001777 "name" : "FabricIngress.filtering.ingress_port_vlan_counter",
Yi Tseng1d842672017-11-28 16:06:52 -08001778 "id" : 0,
Yi Tseng3a5731e2018-01-22 11:38:58 -08001779 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001780 "binding" : "FabricIngress.filtering.ingress_port_vlan",
1781 "source_info" : {
1782 "filename" : "include/control/filtering.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001783 "line" : 31,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001784 "column" : 50,
1785 "source_fragment" : "ingress_port_vlan_counter"
1786 }
Yi Tseng3a5731e2018-01-22 11:38:58 -08001787 },
1788 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001789 "name" : "FabricIngress.filtering.fwd_classifier_counter",
Yi Tseng3a5731e2018-01-22 11:38:58 -08001790 "id" : 1,
1791 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001792 "binding" : "FabricIngress.filtering.fwd_classifier",
1793 "source_info" : {
1794 "filename" : "include/control/filtering.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07001795 "line" : 85,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001796 "column" : 50,
1797 "source_fragment" : "fwd_classifier_counter"
1798 }
Yi Tseng3a5731e2018-01-22 11:38:58 -08001799 },
1800 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001801 "name" : "FabricIngress.forwarding.bridging_counter",
Yi Tseng3a5731e2018-01-22 11:38:58 -08001802 "id" : 2,
1803 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001804 "binding" : "FabricIngress.forwarding.bridging",
1805 "source_info" : {
1806 "filename" : "include/control/forwarding.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001807 "line" : 36,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001808 "column" : 50,
1809 "source_fragment" : "bridging_counter"
1810 }
Yi Tseng3a5731e2018-01-22 11:38:58 -08001811 },
1812 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001813 "name" : "FabricIngress.forwarding.mpls_counter",
Yi Tseng3a5731e2018-01-22 11:38:58 -08001814 "id" : 3,
1815 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001816 "binding" : "FabricIngress.forwarding.mpls",
1817 "source_info" : {
1818 "filename" : "include/control/forwarding.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07001819 "line" : 63,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001820 "column" : 50,
1821 "source_fragment" : "mpls_counter"
1822 }
Yi Tseng3a5731e2018-01-22 11:38:58 -08001823 },
1824 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001825 "name" : "FabricIngress.acl.acl_counter",
Daniele Moro5a2de712019-09-24 14:34:07 -07001826 "id" : 4,
Yi Tseng3a5731e2018-01-22 11:38:58 -08001827 "is_direct" : true,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001828 "binding" : "FabricIngress.acl.acl",
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001829 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001830 "filename" : "include/control/acl.p4",
Wailok Shum4f51bde2021-06-11 22:48:41 +08001831 "line" : 36,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001832 "column" : 50,
1833 "source_fragment" : "acl_counter"
1834 }
Yi Tseng3a5731e2018-01-22 11:38:58 -08001835 },
1836 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001837 "name" : "FabricIngress.next.next_vlan_counter",
Daniele Moro5a2de712019-09-24 14:34:07 -07001838 "id" : 5,
Yi Tseng47eac892018-07-11 02:17:04 +08001839 "is_direct" : true,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001840 "binding" : "FabricIngress.next.next_vlan",
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001841 "source_info" : {
1842 "filename" : "include/control/next.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001843 "line" : 67,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001844 "column" : 50,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001845 "source_fragment" : "next_vlan_counter"
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001846 }
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001847 },
1848 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001849 "name" : "FabricIngress.next.xconnect_counter",
Daniele Moro5a2de712019-09-24 14:34:07 -07001850 "id" : 6,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001851 "is_direct" : true,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001852 "binding" : "FabricIngress.next.xconnect",
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001853 "source_info" : {
1854 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07001855 "line" : 107,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001856 "column" : 50,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001857 "source_fragment" : "xconnect_counter"
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001858 }
Yi Tseng27b9bc02018-04-12 14:52:40 +08001859 },
1860 {
1861 "name" : "FabricIngress.next.hashed_counter",
Daniele Moro5a2de712019-09-24 14:34:07 -07001862 "id" : 7,
Yi Tseng27b9bc02018-04-12 14:52:40 +08001863 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001864 "binding" : "FabricIngress.next.hashed",
1865 "source_info" : {
1866 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07001867 "line" : 184,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001868 "column" : 50,
1869 "source_fragment" : "hashed_counter"
1870 }
Yi Tseng27b9bc02018-04-12 14:52:40 +08001871 },
1872 {
Esin Karaman971fb7f2017-12-28 13:44:52 +00001873 "name" : "FabricIngress.next.multicast_counter",
Daniele Moro5a2de712019-09-24 14:34:07 -07001874 "id" : 8,
Esin Karaman971fb7f2017-12-28 13:44:52 +00001875 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001876 "binding" : "FabricIngress.next.multicast",
1877 "source_info" : {
1878 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07001879 "line" : 228,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001880 "column" : 50,
1881 "source_fragment" : "multicast_counter"
1882 }
Esin Karaman971fb7f2017-12-28 13:44:52 +00001883 },
1884 {
1885 "name" : "FabricIngress.port_counters_control.egress_port_counter",
Daniele Moro5a2de712019-09-24 14:34:07 -07001886 "id" : 9,
Yi Tsengbe342052017-11-03 10:21:23 -07001887 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001888 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001889 "line" : 26,
Yi Tseng3d3956d2018-01-31 17:28:05 -08001890 "column" : 48,
Yi Tsengbe342052017-11-03 10:21:23 -07001891 "source_fragment" : "egress_port_counter"
1892 },
1893 "size" : 511,
1894 "is_direct" : false
1895 },
1896 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001897 "name" : "FabricIngress.port_counters_control.ingress_port_counter",
Daniele Moro5a2de712019-09-24 14:34:07 -07001898 "id" : 10,
Yi Tsengbe342052017-11-03 10:21:23 -07001899 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001900 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001901 "line" : 27,
Yi Tseng3d3956d2018-01-31 17:28:05 -08001902 "column" : 48,
Yi Tsengbe342052017-11-03 10:21:23 -07001903 "source_fragment" : "ingress_port_counter"
1904 },
1905 "size" : 511,
1906 "is_direct" : false
Yi Tseng47eac892018-07-11 02:17:04 +08001907 },
1908 {
1909 "name" : "FabricEgress.egress_next.egress_vlan_counter",
Daniele Moro5a2de712019-09-24 14:34:07 -07001910 "id" : 11,
Yi Tseng47eac892018-07-11 02:17:04 +08001911 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001912 "binding" : "FabricEgress.egress_next.egress_vlan",
1913 "source_info" : {
1914 "filename" : "include/control/next.p4",
pierventre48e78822020-12-15 17:34:54 +01001915 "line" : 314,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001916 "column" : 50,
1917 "source_fragment" : "egress_vlan_counter"
1918 }
Yi Tsengbe342052017-11-03 10:21:23 -07001919 }
1920 ],
1921 "register_arrays" : [],
1922 "calculations" : [
1923 {
1924 "name" : "calc",
1925 "id" : 0,
1926 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001927 "filename" : "include/checksum.p4",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001928 "line" : 28,
Yi Tsengbe342052017-11-03 10:21:23 -07001929 "column" : 8,
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001930 "source_fragment" : "update_checksum(hdr.ipv4.isValid(), ..."
Yi Tsengbe342052017-11-03 10:21:23 -07001931 },
1932 "algo" : "csum16",
1933 "input" : [
1934 {
1935 "type" : "field",
1936 "value" : ["ipv4", "version"]
1937 },
1938 {
1939 "type" : "field",
1940 "value" : ["ipv4", "ihl"]
1941 },
1942 {
1943 "type" : "field",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09001944 "value" : ["ipv4", "dscp"]
1945 },
1946 {
1947 "type" : "field",
1948 "value" : ["ipv4", "ecn"]
Yi Tsengbe342052017-11-03 10:21:23 -07001949 },
1950 {
1951 "type" : "field",
1952 "value" : ["ipv4", "total_len"]
1953 },
1954 {
1955 "type" : "field",
1956 "value" : ["ipv4", "identification"]
1957 },
1958 {
1959 "type" : "field",
1960 "value" : ["ipv4", "flags"]
1961 },
1962 {
1963 "type" : "field",
1964 "value" : ["ipv4", "frag_offset"]
1965 },
1966 {
1967 "type" : "field",
1968 "value" : ["ipv4", "ttl"]
1969 },
1970 {
1971 "type" : "field",
1972 "value" : ["ipv4", "protocol"]
1973 },
1974 {
1975 "type" : "field",
1976 "value" : ["ipv4", "src_addr"]
1977 },
1978 {
1979 "type" : "field",
1980 "value" : ["ipv4", "dst_addr"]
1981 }
1982 ]
1983 },
1984 {
1985 "name" : "calc_0",
1986 "id" : 1,
1987 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001988 "filename" : "include/checksum.p4",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09001989 "line" : 57,
Yi Tsengbe342052017-11-03 10:21:23 -07001990 "column" : 8,
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001991 "source_fragment" : "verify_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 ]
Yi Tsengbe342052017-11-03 10:21:23 -07002044 }
2045 ],
2046 "learn_lists" : [],
2047 "actions" : [
2048 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002049 "name" : "nop",
Yi Tsengbe342052017-11-03 10:21:23 -07002050 "id" : 0,
2051 "runtime_data" : [],
2052 "primitives" : []
2053 },
2054 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002055 "name" : "nop",
Yi Tsengbe342052017-11-03 10:21:23 -07002056 "id" : 1,
2057 "runtime_data" : [],
2058 "primitives" : []
2059 },
2060 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002061 "name" : "nop",
Yi Tsengbe342052017-11-03 10:21:23 -07002062 "id" : 2,
2063 "runtime_data" : [],
Yi Tseng1d842672017-11-28 16:06:52 -08002064 "primitives" : []
Yi Tsengbe342052017-11-03 10:21:23 -07002065 },
2066 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002067 "name" : "nop",
Yi Tsengbe342052017-11-03 10:21:23 -07002068 "id" : 3,
2069 "runtime_data" : [],
Yi Tseng1d842672017-11-28 16:06:52 -08002070 "primitives" : []
Yi Tsengbe342052017-11-03 10:21:23 -07002071 },
2072 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002073 "name" : "nop",
Yi Tsengbe342052017-11-03 10:21:23 -07002074 "id" : 4,
2075 "runtime_data" : [],
2076 "primitives" : []
2077 },
2078 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002079 "name" : "nop",
Yi Tsengbe342052017-11-03 10:21:23 -07002080 "id" : 5,
2081 "runtime_data" : [],
2082 "primitives" : []
2083 },
2084 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002085 "name" : "nop",
Yi Tsengbe342052017-11-03 10:21:23 -07002086 "id" : 6,
2087 "runtime_data" : [],
2088 "primitives" : []
2089 },
2090 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002091 "name" : "FabricIngress.filtering.deny",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002092 "id" : 7,
Yi Tseng47eac892018-07-11 02:17:04 +08002093 "runtime_data" : [],
Yi Tseng1d842672017-11-28 16:06:52 -08002094 "primitives" : [
2095 {
Yi Tsengbe342052017-11-03 10:21:23 -07002096 "op" : "assign",
2097 "parameters" : [
2098 {
2099 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02002100 "value" : ["scalars", "userMetadata.skip_forwarding"]
Yi Tsengbe342052017-11-03 10:21:23 -07002101 },
2102 {
2103 "type" : "expression",
2104 "value" : {
2105 "type" : "expression",
2106 "value" : {
2107 "op" : "b2d",
2108 "left" : null,
2109 "right" : {
2110 "type" : "bool",
2111 "value" : true
2112 }
2113 }
2114 }
2115 }
2116 ],
2117 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002118 "filename" : "include/control/filtering.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002119 "line" : 36,
Yi Tsengbe342052017-11-03 10:21:23 -07002120 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002121 "source_fragment" : "fabric_metadata.skip_forwarding = true"
2122 }
2123 },
2124 {
2125 "op" : "assign",
2126 "parameters" : [
2127 {
2128 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02002129 "value" : ["scalars", "userMetadata.skip_next"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002130 },
2131 {
2132 "type" : "expression",
2133 "value" : {
2134 "type" : "expression",
2135 "value" : {
2136 "op" : "b2d",
2137 "left" : null,
2138 "right" : {
2139 "type" : "bool",
2140 "value" : true
2141 }
2142 }
2143 }
2144 }
2145 ],
2146 "source_info" : {
2147 "filename" : "include/control/filtering.p4",
2148 "line" : 37,
2149 "column" : 8,
2150 "source_fragment" : "fabric_metadata.skip_next = true"
Yi Tsengbe342052017-11-03 10:21:23 -07002151 }
2152 }
2153 ]
2154 },
2155 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002156 "name" : "FabricIngress.filtering.permit",
2157 "id" : 8,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002158 "runtime_data" : [],
2159 "primitives" : []
2160 },
2161 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002162 "name" : "FabricIngress.filtering.permit_with_internal_vlan",
2163 "id" : 9,
2164 "runtime_data" : [
2165 {
2166 "name" : "vlan_id",
2167 "bitwidth" : 12
2168 }
2169 ],
2170 "primitives" : [
2171 {
2172 "op" : "assign",
2173 "parameters" : [
2174 {
2175 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02002176 "value" : ["scalars", "userMetadata.vlan_id"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002177 },
2178 {
2179 "type" : "runtime_data",
2180 "value" : 0
2181 }
2182 ],
2183 "source_info" : {
2184 "filename" : "include/control/filtering.p4",
2185 "line" : 47,
2186 "column" : 8,
2187 "source_fragment" : "fabric_metadata.vlan_id = vlan_id"
2188 }
2189 }
2190 ]
2191 },
2192 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002193 "name" : "FabricIngress.filtering.set_forwarding_type",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002194 "id" : 10,
Yi Tsengbe342052017-11-03 10:21:23 -07002195 "runtime_data" : [
2196 {
2197 "name" : "fwd_type",
2198 "bitwidth" : 3
2199 }
2200 ],
2201 "primitives" : [
2202 {
2203 "op" : "assign",
2204 "parameters" : [
2205 {
2206 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02002207 "value" : ["scalars", "userMetadata.fwd_type"]
Yi Tsengbe342052017-11-03 10:21:23 -07002208 },
2209 {
2210 "type" : "runtime_data",
2211 "value" : 0
2212 }
2213 ],
2214 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002215 "filename" : "include/control/filtering.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07002216 "line" : 88,
Yi Tsengbe342052017-11-03 10:21:23 -07002217 "column" : 8,
2218 "source_fragment" : "fabric_metadata.fwd_type = fwd_type"
2219 }
2220 }
2221 ]
2222 },
2223 {
Yi Tseng47eac892018-07-11 02:17:04 +08002224 "name" : "FabricIngress.forwarding.set_next_id_bridging",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002225 "id" : 11,
Carmelo Casconef645e842018-07-16 18:31:52 +02002226 "runtime_data" : [
2227 {
2228 "name" : "next_id",
2229 "bitwidth" : 32
2230 }
2231 ],
2232 "primitives" : [
2233 {
2234 "op" : "assign",
2235 "parameters" : [
2236 {
2237 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02002238 "value" : ["scalars", "userMetadata.next_id"]
Carmelo Casconef645e842018-07-16 18:31:52 +02002239 },
2240 {
2241 "type" : "runtime_data",
2242 "value" : 0
2243 }
2244 ],
2245 "source_info" : {
2246 "filename" : "include/control/forwarding.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002247 "line" : 30,
Carmelo Casconef645e842018-07-16 18:31:52 +02002248 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002249 "source_fragment" : "fabric_metadata.next_id = next_id; ..."
Carmelo Casconef645e842018-07-16 18:31:52 +02002250 }
2251 }
2252 ]
2253 },
2254 {
2255 "name" : "FabricIngress.forwarding.pop_mpls_and_next",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002256 "id" : 12,
Carmelo Casconef645e842018-07-16 18:31:52 +02002257 "runtime_data" : [
2258 {
2259 "name" : "next_id",
2260 "bitwidth" : 32
2261 }
2262 ],
2263 "primitives" : [
2264 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002265 "op" : "assign",
Carmelo Casconef645e842018-07-16 18:31:52 +02002266 "parameters" : [
2267 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002268 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02002269 "value" : ["scalars", "userMetadata.mpls_label"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002270 },
2271 {
2272 "type" : "hexstr",
2273 "value" : "0x000000"
Carmelo Casconef645e842018-07-16 18:31:52 +02002274 }
2275 ],
2276 "source_info" : {
2277 "filename" : "include/control/forwarding.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07002278 "line" : 66,
Carmelo Casconef645e842018-07-16 18:31:52 +02002279 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002280 "source_fragment" : "fabric_metadata.mpls_label = 0"
Carmelo Casconef645e842018-07-16 18:31:52 +02002281 }
2282 },
2283 {
2284 "op" : "assign",
2285 "parameters" : [
2286 {
2287 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02002288 "value" : ["scalars", "userMetadata.next_id"]
Carmelo Casconef645e842018-07-16 18:31:52 +02002289 },
2290 {
2291 "type" : "runtime_data",
2292 "value" : 0
2293 }
2294 ],
2295 "source_info" : {
2296 "filename" : "include/control/forwarding.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002297 "line" : 30,
Carmelo Casconef645e842018-07-16 18:31:52 +02002298 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002299 "source_fragment" : "fabric_metadata.next_id = next_id; ..."
Carmelo Casconef645e842018-07-16 18:31:52 +02002300 }
2301 }
2302 ]
2303 },
2304 {
Charles Chan384aea22018-08-23 22:08:02 -07002305 "name" : "FabricIngress.forwarding.set_next_id_routing_v4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002306 "id" : 13,
Carmelo Casconef645e842018-07-16 18:31:52 +02002307 "runtime_data" : [
2308 {
2309 "name" : "next_id",
2310 "bitwidth" : 32
2311 }
2312 ],
2313 "primitives" : [
2314 {
2315 "op" : "assign",
2316 "parameters" : [
2317 {
2318 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02002319 "value" : ["scalars", "userMetadata.next_id"]
Carmelo Casconef645e842018-07-16 18:31:52 +02002320 },
2321 {
2322 "type" : "runtime_data",
2323 "value" : 0
2324 }
2325 ],
2326 "source_info" : {
2327 "filename" : "include/control/forwarding.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002328 "line" : 30,
Carmelo Casconef645e842018-07-16 18:31:52 +02002329 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002330 "source_fragment" : "fabric_metadata.next_id = next_id; ..."
Carmelo Casconef645e842018-07-16 18:31:52 +02002331 }
2332 }
2333 ]
2334 },
2335 {
Charles Chancd03f072018-08-31 17:46:37 -07002336 "name" : "FabricIngress.forwarding.nop_routing_v4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002337 "id" : 14,
Charles Chancd03f072018-08-31 17:46:37 -07002338 "runtime_data" : [],
2339 "primitives" : []
2340 },
2341 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002342 "name" : "FabricIngress.acl.set_next_id_acl",
2343 "id" : 15,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002344 "runtime_data" : [
2345 {
2346 "name" : "next_id",
2347 "bitwidth" : 32
2348 }
2349 ],
2350 "primitives" : [
2351 {
Esin Karaman971fb7f2017-12-28 13:44:52 +00002352 "op" : "assign",
2353 "parameters" : [
2354 {
2355 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02002356 "value" : ["scalars", "userMetadata.next_id"]
Esin Karaman971fb7f2017-12-28 13:44:52 +00002357 },
2358 {
2359 "type" : "runtime_data",
2360 "value" : 0
2361 }
2362 ],
2363 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002364 "filename" : "include/control/acl.p4",
Wailok Shum4f51bde2021-06-11 22:48:41 +08002365 "line" : 39,
Yi Tseng47eac892018-07-11 02:17:04 +08002366 "column" : 8,
2367 "source_fragment" : "fabric_metadata.next_id = next_id"
2368 }
2369 }
2370 ]
2371 },
2372 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002373 "name" : "FabricIngress.acl.punt_to_cpu",
2374 "id" : 16,
Yi Tsengbe342052017-11-03 10:21:23 -07002375 "runtime_data" : [],
2376 "primitives" : [
2377 {
2378 "op" : "assign",
2379 "parameters" : [
2380 {
2381 "type" : "field",
Yi Tsengbe342052017-11-03 10:21:23 -07002382 "value" : ["standard_metadata", "egress_spec"]
2383 },
2384 {
2385 "type" : "hexstr",
2386 "value" : "0x00ff"
2387 }
2388 ],
2389 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002390 "filename" : "include/control/acl.p4",
Wailok Shum4f51bde2021-06-11 22:48:41 +08002391 "line" : 45,
Carmelo Casconeb531b682018-01-30 17:55:56 -08002392 "column" : 8,
2393 "source_fragment" : "standard_metadata.egress_spec = 255"
Yi Tsengbe342052017-11-03 10:21:23 -07002394 }
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002395 },
2396 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002397 "op" : "assign",
2398 "parameters" : [
2399 {
2400 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02002401 "value" : ["scalars", "userMetadata.skip_next"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002402 },
2403 {
2404 "type" : "expression",
2405 "value" : {
2406 "type" : "expression",
2407 "value" : {
2408 "op" : "b2d",
2409 "left" : null,
2410 "right" : {
2411 "type" : "bool",
2412 "value" : true
2413 }
2414 }
2415 }
2416 }
2417 ],
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002418 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002419 "filename" : "include/control/acl.p4",
Wailok Shum4f51bde2021-06-11 22:48:41 +08002420 "line" : 46,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002421 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002422 "source_fragment" : "fabric_metadata.skip_next = true"
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002423 }
2424 }
2425 ]
2426 },
2427 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07002428 "name" : "FabricIngress.acl.set_clone_session_id",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002429 "id" : 17,
Daniele Moro01ca2ab2019-06-25 11:48:48 -07002430 "runtime_data" : [
2431 {
2432 "name" : "clone_id",
2433 "bitwidth" : 32
2434 }
2435 ],
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002436 "primitives" : [
2437 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07002438 "op" : "clone_ingress_pkt_to_egress",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002439 "parameters" : [
2440 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07002441 "type" : "runtime_data",
2442 "value" : 0
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002443 },
2444 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07002445 "type" : "hexstr",
2446 "value" : "0x1"
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002447 }
2448 ],
2449 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002450 "filename" : "include/control/acl.p4",
Wailok Shum4f51bde2021-06-11 22:48:41 +08002451 "line" : 52,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002452 "column" : 8,
Daniele Moro3b7a21b2019-06-25 17:33:40 -07002453 "source_fragment" : "clone3(CloneType.I2E, clone_id, {standard_metadata.ingress_port})"
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002454 }
Yi Tsengbe342052017-11-03 10:21:23 -07002455 }
2456 ]
2457 },
2458 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002459 "name" : "FabricIngress.acl.drop",
2460 "id" : 18,
Yi Tseng47eac892018-07-11 02:17:04 +08002461 "runtime_data" : [],
2462 "primitives" : [
2463 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07002464 "op" : "mark_to_drop",
2465 "parameters" : [
2466 {
2467 "type" : "header",
2468 "value" : "standard_metadata"
2469 }
2470 ],
Yi Tseng47eac892018-07-11 02:17:04 +08002471 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002472 "filename" : "include/control/acl.p4",
Wailok Shum4f51bde2021-06-11 22:48:41 +08002473 "line" : 57,
Yi Tseng47eac892018-07-11 02:17:04 +08002474 "column" : 8,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07002475 "source_fragment" : "mark_to_drop(standard_metadata)"
Yi Tseng47eac892018-07-11 02:17:04 +08002476 }
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002477 },
2478 {
2479 "op" : "assign",
2480 "parameters" : [
2481 {
2482 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02002483 "value" : ["scalars", "userMetadata.skip_next"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002484 },
2485 {
2486 "type" : "expression",
2487 "value" : {
2488 "type" : "expression",
2489 "value" : {
2490 "op" : "b2d",
2491 "left" : null,
2492 "right" : {
2493 "type" : "bool",
2494 "value" : true
2495 }
2496 }
2497 }
2498 }
2499 ],
2500 "source_info" : {
2501 "filename" : "include/control/acl.p4",
Wailok Shum4f51bde2021-06-11 22:48:41 +08002502 "line" : 58,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002503 "column" : 8,
2504 "source_fragment" : "fabric_metadata.skip_next = true"
2505 }
Yi Tseng47eac892018-07-11 02:17:04 +08002506 }
2507 ]
2508 },
2509 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002510 "name" : "FabricIngress.acl.nop_acl",
2511 "id" : 19,
Charles Chancf696e52018-08-16 16:25:13 -07002512 "runtime_data" : [],
2513 "primitives" : []
2514 },
2515 {
Yi Tseng47eac892018-07-11 02:17:04 +08002516 "name" : "FabricIngress.next.set_vlan",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002517 "id" : 20,
2518 "runtime_data" : [
2519 {
2520 "name" : "vlan_id",
2521 "bitwidth" : 12
2522 }
2523 ],
2524 "primitives" : [
2525 {
2526 "op" : "assign",
2527 "parameters" : [
2528 {
2529 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02002530 "value" : ["scalars", "userMetadata.vlan_id"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002531 },
2532 {
2533 "type" : "runtime_data",
2534 "value" : 0
2535 }
2536 ],
2537 "source_info" : {
2538 "filename" : "include/control/next.p4",
2539 "line" : 70,
2540 "column" : 8,
2541 "source_fragment" : "fabric_metadata.vlan_id = vlan_id"
2542 }
2543 }
2544 ]
2545 },
2546 {
2547 "name" : "FabricIngress.next.output_xconnect",
Charles Chancd03f072018-08-31 17:46:37 -07002548 "id" : 21,
Yi Tseng47eac892018-07-11 02:17:04 +08002549 "runtime_data" : [
2550 {
Yi Tsengbe342052017-11-03 10:21:23 -07002551 "name" : "port_num",
2552 "bitwidth" : 9
2553 }
2554 ],
2555 "primitives" : [
2556 {
2557 "op" : "assign",
2558 "parameters" : [
2559 {
2560 "type" : "field",
2561 "value" : ["standard_metadata", "egress_spec"]
2562 },
2563 {
2564 "type" : "runtime_data",
2565 "value" : 0
2566 }
2567 ],
2568 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002569 "filename" : "include/control/next.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002570 "line" : 31,
2571 "column" : 5,
Yi Tseng47eac892018-07-11 02:17:04 +08002572 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2573 }
2574 }
2575 ]
2576 },
2577 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002578 "name" : "FabricIngress.next.set_next_id_xconnect",
2579 "id" : 22,
2580 "runtime_data" : [
2581 {
2582 "name" : "next_id",
2583 "bitwidth" : 32
2584 }
2585 ],
2586 "primitives" : [
2587 {
2588 "op" : "assign",
2589 "parameters" : [
2590 {
2591 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02002592 "value" : ["scalars", "userMetadata.next_id"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002593 },
2594 {
2595 "type" : "runtime_data",
2596 "value" : 0
2597 }
2598 ],
2599 "source_info" : {
2600 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07002601 "line" : 115,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002602 "column" : 8,
2603 "source_fragment" : "fabric_metadata.next_id = next_id"
2604 }
2605 }
2606 ]
2607 },
2608 {
2609 "name" : "FabricIngress.next.output_hashed",
2610 "id" : 23,
2611 "runtime_data" : [
2612 {
2613 "name" : "port_num",
2614 "bitwidth" : 9
2615 }
2616 ],
2617 "primitives" : [
2618 {
2619 "op" : "assign",
2620 "parameters" : [
2621 {
2622 "type" : "field",
2623 "value" : ["standard_metadata", "egress_spec"]
2624 },
2625 {
2626 "type" : "runtime_data",
2627 "value" : 0
2628 }
2629 ],
2630 "source_info" : {
2631 "filename" : "include/control/next.p4",
2632 "line" : 31,
2633 "column" : 5,
2634 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2635 }
2636 }
2637 ]
2638 },
2639 {
2640 "name" : "FabricIngress.next.routing_hashed",
Charles Chancd03f072018-08-31 17:46:37 -07002641 "id" : 24,
Yi Tseng47eac892018-07-11 02:17:04 +08002642 "runtime_data" : [
2643 {
2644 "name" : "port_num",
2645 "bitwidth" : 9
2646 },
2647 {
2648 "name" : "smac",
2649 "bitwidth" : 48
2650 },
2651 {
2652 "name" : "dmac",
2653 "bitwidth" : 48
2654 }
2655 ],
2656 "primitives" : [
2657 {
2658 "op" : "assign",
2659 "parameters" : [
2660 {
2661 "type" : "field",
2662 "value" : ["ethernet", "src_addr"]
2663 },
2664 {
2665 "type" : "runtime_data",
2666 "value" : 1
2667 }
2668 ],
2669 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002670 "filename" : "include/control/next.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002671 "line" : 36,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002672 "column" : 8,
Yi Tseng47eac892018-07-11 02:17:04 +08002673 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2674 }
2675 },
2676 {
2677 "op" : "assign",
2678 "parameters" : [
2679 {
2680 "type" : "field",
2681 "value" : ["ethernet", "dst_addr"]
2682 },
2683 {
2684 "type" : "runtime_data",
2685 "value" : 2
2686 }
2687 ],
2688 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002689 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002690 "line" : 41,
2691 "column" : 8,
2692 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2693 }
2694 },
2695 {
2696 "op" : "assign",
2697 "parameters" : [
2698 {
2699 "type" : "field",
2700 "value" : ["standard_metadata", "egress_spec"]
2701 },
2702 {
2703 "type" : "runtime_data",
2704 "value" : 0
2705 }
2706 ],
2707 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002708 "filename" : "include/control/next.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002709 "line" : 31,
2710 "column" : 5,
Yi Tseng47eac892018-07-11 02:17:04 +08002711 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002712 }
2713 }
2714 ]
2715 },
2716 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002717 "name" : "FabricIngress.next.mpls_routing_hashed",
Carmelo Casconef645e842018-07-16 18:31:52 +02002718 "id" : 25,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002719 "runtime_data" : [
2720 {
2721 "name" : "port_num",
2722 "bitwidth" : 9
2723 },
2724 {
2725 "name" : "smac",
2726 "bitwidth" : 48
2727 },
2728 {
2729 "name" : "dmac",
2730 "bitwidth" : 48
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002731 },
2732 {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002733 "name" : "label",
2734 "bitwidth" : 20
Yi Tsengbe342052017-11-03 10:21:23 -07002735 }
2736 ],
2737 "primitives" : [
2738 {
2739 "op" : "assign",
2740 "parameters" : [
2741 {
2742 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02002743 "value" : ["scalars", "userMetadata.mpls_label"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002744 },
2745 {
2746 "type" : "runtime_data",
2747 "value" : 3
2748 }
2749 ],
2750 "source_info" : {
2751 "filename" : "include/control/next.p4",
2752 "line" : 46,
2753 "column" : 8,
2754 "source_fragment" : "fabric_metadata.mpls_label = label; ..."
2755 }
2756 },
2757 {
2758 "op" : "assign",
2759 "parameters" : [
2760 {
2761 "type" : "field",
Yi Tsengbe342052017-11-03 10:21:23 -07002762 "value" : ["ethernet", "src_addr"]
2763 },
2764 {
2765 "type" : "runtime_data",
2766 "value" : 1
2767 }
2768 ],
2769 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002770 "filename" : "include/control/next.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002771 "line" : 36,
Yi Tsengbe342052017-11-03 10:21:23 -07002772 "column" : 8,
2773 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2774 }
2775 },
2776 {
2777 "op" : "assign",
2778 "parameters" : [
2779 {
2780 "type" : "field",
2781 "value" : ["ethernet", "dst_addr"]
2782 },
2783 {
2784 "type" : "runtime_data",
2785 "value" : 2
2786 }
2787 ],
2788 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002789 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002790 "line" : 41,
Yi Tsengbe342052017-11-03 10:21:23 -07002791 "column" : 8,
2792 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2793 }
2794 },
2795 {
2796 "op" : "assign",
2797 "parameters" : [
2798 {
2799 "type" : "field",
2800 "value" : ["standard_metadata", "egress_spec"]
2801 },
2802 {
2803 "type" : "runtime_data",
2804 "value" : 0
2805 }
2806 ],
2807 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002808 "filename" : "include/control/next.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002809 "line" : 31,
2810 "column" : 5,
Yi Tsengbe342052017-11-03 10:21:23 -07002811 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2812 }
Yi Tsengbe342052017-11-03 10:21:23 -07002813 }
2814 ]
2815 },
2816 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002817 "name" : "FabricIngress.next.set_mcast_group_id",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002818 "id" : 26,
2819 "runtime_data" : [
2820 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002821 "name" : "group_id",
Esin Karaman971fb7f2017-12-28 13:44:52 +00002822 "bitwidth" : 16
2823 }
2824 ],
2825 "primitives" : [
2826 {
2827 "op" : "assign",
2828 "parameters" : [
2829 {
2830 "type" : "field",
2831 "value" : ["standard_metadata", "mcast_grp"]
2832 },
2833 {
2834 "type" : "runtime_data",
2835 "value" : 0
2836 }
2837 ],
2838 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002839 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07002840 "line" : 231,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002841 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002842 "source_fragment" : "standard_metadata.mcast_grp = group_id"
Esin Karaman971fb7f2017-12-28 13:44:52 +00002843 }
Carmelo Casconea5400af2018-07-17 22:11:54 +02002844 },
2845 {
2846 "op" : "assign",
2847 "parameters" : [
2848 {
2849 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02002850 "value" : ["scalars", "userMetadata.is_multicast"]
Carmelo Casconea5400af2018-07-17 22:11:54 +02002851 },
2852 {
2853 "type" : "expression",
2854 "value" : {
2855 "type" : "expression",
2856 "value" : {
2857 "op" : "b2d",
2858 "left" : null,
2859 "right" : {
2860 "type" : "bool",
2861 "value" : true
2862 }
2863 }
2864 }
2865 }
2866 ],
2867 "source_info" : {
2868 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07002869 "line" : 232,
Carmelo Casconea5400af2018-07-17 22:11:54 +02002870 "column" : 8,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002871 "source_fragment" : "fabric_metadata.is_multicast = true"
Carmelo Casconea5400af2018-07-17 22:11:54 +02002872 }
Esin Karaman971fb7f2017-12-28 13:44:52 +00002873 }
2874 ]
2875 },
2876 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02002877 "name" : "packetio25",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002878 "id" : 27,
Yi Tsengbe342052017-11-03 10:21:23 -07002879 "runtime_data" : [],
2880 "primitives" : [
2881 {
2882 "op" : "assign",
2883 "parameters" : [
2884 {
2885 "type" : "field",
2886 "value" : ["standard_metadata", "egress_spec"]
2887 },
2888 {
2889 "type" : "field",
2890 "value" : ["packet_out", "egress_port"]
2891 }
2892 ],
2893 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002894 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002895 "line" : 25,
Yi Tsengbe342052017-11-03 10:21:23 -07002896 "column" : 12,
2897 "source_fragment" : "standard_metadata.egress_spec = hdr.packet_out.egress_port"
2898 }
Yi Tseng1d842672017-11-28 16:06:52 -08002899 },
2900 {
2901 "op" : "remove_header",
2902 "parameters" : [
2903 {
2904 "type" : "header",
2905 "value" : "packet_out"
2906 }
2907 ],
2908 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002909 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002910 "line" : 26,
Yi Tseng1d842672017-11-28 16:06:52 -08002911 "column" : 12,
2912 "source_fragment" : "hdr.packet_out.setInvalid()"
2913 }
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07002914 },
2915 {
2916 "op" : "assign",
2917 "parameters" : [
2918 {
2919 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02002920 "value" : ["scalars", "userMetadata.is_controller_packet_out"]
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07002921 },
2922 {
2923 "type" : "expression",
2924 "value" : {
2925 "type" : "expression",
2926 "value" : {
2927 "op" : "b2d",
2928 "left" : null,
2929 "right" : {
2930 "type" : "bool",
2931 "value" : true
2932 }
2933 }
2934 }
2935 }
2936 ],
2937 "source_info" : {
2938 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002939 "line" : 27,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07002940 "column" : 12,
2941 "source_fragment" : "fabric_metadata.is_controller_packet_out = true"
2942 }
Carmelo Cascone9b607da2019-05-08 14:03:01 -07002943 },
2944 {
2945 "op" : "exit",
2946 "parameters" : [],
2947 "source_info" : {
2948 "filename" : "include/control/packetio.p4",
2949 "line" : 29,
2950 "column" : 12,
2951 "source_fragment" : "exit"
2952 }
Yi Tsengbe342052017-11-03 10:21:23 -07002953 }
2954 ]
2955 },
2956 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02002957 "name" : "filtering111",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002958 "id" : 28,
Yi Tsengbe342052017-11-03 10:21:23 -07002959 "runtime_data" : [],
2960 "primitives" : [
2961 {
2962 "op" : "assign",
2963 "parameters" : [
2964 {
2965 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02002966 "value" : ["scalars", "userMetadata.vlan_id"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002967 },
2968 {
2969 "type" : "field",
2970 "value" : ["vlan_tag", "vlan_id"]
2971 }
2972 ],
2973 "source_info" : {
2974 "filename" : "include/control/filtering.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07002975 "line" : 111,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002976 "column" : 12,
2977 "source_fragment" : "fabric_metadata.vlan_id = hdr.vlan_tag.vlan_id"
2978 }
2979 },
2980 {
2981 "op" : "assign",
2982 "parameters" : [
2983 {
2984 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02002985 "value" : ["scalars", "userMetadata.vlan_pri"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002986 },
2987 {
2988 "type" : "field",
2989 "value" : ["vlan_tag", "pri"]
2990 }
2991 ],
2992 "source_info" : {
2993 "filename" : "include/control/filtering.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07002994 "line" : 112,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002995 "column" : 12,
2996 "source_fragment" : "fabric_metadata.vlan_pri = hdr.vlan_tag.pri"
2997 }
2998 },
2999 {
3000 "op" : "assign",
3001 "parameters" : [
3002 {
3003 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02003004 "value" : ["scalars", "userMetadata.vlan_cfi"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003005 },
3006 {
3007 "type" : "field",
3008 "value" : ["vlan_tag", "cfi"]
3009 }
3010 ],
3011 "source_info" : {
3012 "filename" : "include/control/filtering.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07003013 "line" : 113,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003014 "column" : 12,
3015 "source_fragment" : "fabric_metadata.vlan_cfi = hdr.vlan_tag.cfi"
3016 }
Yi Tseng1d842672017-11-28 16:06:52 -08003017 }
3018 ]
3019 },
3020 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02003021 "name" : "filtering127",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003022 "id" : 29,
Yi Tseng1d842672017-11-28 16:06:52 -08003023 "runtime_data" : [],
3024 "primitives" : [
3025 {
3026 "op" : "assign",
3027 "parameters" : [
3028 {
3029 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02003030 "value" : ["scalars", "userMetadata.mpls_ttl"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003031 },
3032 {
3033 "type" : "hexstr",
3034 "value" : "0x41"
3035 }
3036 ],
3037 "source_info" : {
3038 "filename" : "include/control/filtering.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07003039 "line" : 127,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003040 "column" : 12,
3041 "source_fragment" : "fabric_metadata.mpls_ttl = DEFAULT_MPLS_TTL + 1"
3042 }
3043 }
3044 ]
3045 },
3046 {
Wailok Shum4f51bde2021-06-11 22:48:41 +08003047 "name" : "acl101",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003048 "id" : 30,
3049 "runtime_data" : [],
3050 "primitives" : [
3051 {
3052 "op" : "assign",
3053 "parameters" : [
3054 {
3055 "type" : "field",
Wailok Shum4f51bde2021-06-11 22:48:41 +08003056 "value" : ["scalars", "acl_l4_sport"]
3057 },
3058 {
3059 "type" : "field",
3060 "value" : ["inner_tcp", "sport"]
3061 }
3062 ],
3063 "source_info" : {
3064 "filename" : "include/control/acl.p4",
3065 "line" : 101,
3066 "column" : 16,
3067 "source_fragment" : "l4_sport = hdr.inner_tcp.sport"
3068 }
3069 },
3070 {
3071 "op" : "assign",
3072 "parameters" : [
3073 {
3074 "type" : "field",
3075 "value" : ["scalars", "acl_l4_dport"]
3076 },
3077 {
3078 "type" : "field",
3079 "value" : ["inner_tcp", "dport"]
3080 }
3081 ],
3082 "source_info" : {
3083 "filename" : "include/control/acl.p4",
3084 "line" : 102,
3085 "column" : 16,
3086 "source_fragment" : "l4_dport = hdr.inner_tcp.dport"
3087 }
3088 }
3089 ]
3090 },
3091 {
3092 "name" : "acl104",
3093 "id" : 31,
3094 "runtime_data" : [],
3095 "primitives" : [
3096 {
3097 "op" : "assign",
3098 "parameters" : [
3099 {
3100 "type" : "field",
3101 "value" : ["scalars", "acl_l4_sport"]
3102 },
3103 {
3104 "type" : "field",
3105 "value" : ["inner_udp", "sport"]
3106 }
3107 ],
3108 "source_info" : {
3109 "filename" : "include/control/acl.p4",
3110 "line" : 104,
3111 "column" : 16,
3112 "source_fragment" : "l4_sport = hdr.inner_udp.sport"
3113 }
3114 },
3115 {
3116 "op" : "assign",
3117 "parameters" : [
3118 {
3119 "type" : "field",
3120 "value" : ["scalars", "acl_l4_dport"]
3121 },
3122 {
3123 "type" : "field",
3124 "value" : ["inner_udp", "dport"]
3125 }
3126 ],
3127 "source_info" : {
3128 "filename" : "include/control/acl.p4",
3129 "line" : 105,
3130 "column" : 16,
3131 "source_fragment" : "l4_dport = hdr.inner_udp.dport"
3132 }
3133 }
3134 ]
3135 },
3136 {
3137 "name" : "acl97",
3138 "id" : 32,
3139 "runtime_data" : [],
3140 "primitives" : [
3141 {
3142 "op" : "assign",
3143 "parameters" : [
3144 {
3145 "type" : "field",
3146 "value" : ["scalars", "acl_ipv4_src"]
3147 },
3148 {
3149 "type" : "field",
3150 "value" : ["inner_ipv4", "src_addr"]
3151 }
3152 ],
3153 "source_info" : {
3154 "filename" : "include/control/acl.p4",
3155 "line" : 97,
3156 "column" : 12,
3157 "source_fragment" : "ipv4_src = hdr.inner_ipv4.src_addr"
3158 }
3159 },
3160 {
3161 "op" : "assign",
3162 "parameters" : [
3163 {
3164 "type" : "field",
3165 "value" : ["scalars", "acl_ipv4_dst"]
3166 },
3167 {
3168 "type" : "field",
3169 "value" : ["inner_ipv4", "dst_addr"]
3170 }
3171 ],
3172 "source_info" : {
3173 "filename" : "include/control/acl.p4",
3174 "line" : 98,
3175 "column" : 12,
3176 "source_fragment" : "ipv4_dst = hdr.inner_ipv4.dst_addr"
3177 }
3178 },
3179 {
3180 "op" : "assign",
3181 "parameters" : [
3182 {
3183 "type" : "field",
3184 "value" : ["scalars", "acl_ip_proto"]
3185 },
3186 {
3187 "type" : "field",
3188 "value" : ["inner_ipv4", "protocol"]
3189 }
3190 ],
3191 "source_info" : {
3192 "filename" : "include/control/acl.p4",
3193 "line" : 99,
3194 "column" : 12,
3195 "source_fragment" : "ip_proto = hdr.inner_ipv4.protocol"
3196 }
3197 }
3198 ]
3199 },
3200 {
3201 "name" : "acl112",
3202 "id" : 33,
3203 "runtime_data" : [],
3204 "primitives" : [
3205 {
3206 "op" : "assign",
3207 "parameters" : [
3208 {
3209 "type" : "field",
3210 "value" : ["scalars", "acl_l4_sport"]
3211 },
3212 {
3213 "type" : "field",
3214 "value" : ["tcp", "sport"]
3215 }
3216 ],
3217 "source_info" : {
3218 "filename" : "include/control/acl.p4",
3219 "line" : 112,
3220 "column" : 16,
3221 "source_fragment" : "l4_sport = hdr.tcp.sport"
3222 }
3223 },
3224 {
3225 "op" : "assign",
3226 "parameters" : [
3227 {
3228 "type" : "field",
3229 "value" : ["scalars", "acl_l4_dport"]
3230 },
3231 {
3232 "type" : "field",
3233 "value" : ["tcp", "dport"]
3234 }
3235 ],
3236 "source_info" : {
3237 "filename" : "include/control/acl.p4",
3238 "line" : 113,
3239 "column" : 16,
3240 "source_fragment" : "l4_dport = hdr.tcp.dport"
3241 }
3242 }
3243 ]
3244 },
3245 {
3246 "name" : "acl115",
3247 "id" : 34,
3248 "runtime_data" : [],
3249 "primitives" : [
3250 {
3251 "op" : "assign",
3252 "parameters" : [
3253 {
3254 "type" : "field",
3255 "value" : ["scalars", "acl_l4_sport"]
3256 },
3257 {
3258 "type" : "field",
3259 "value" : ["udp", "sport"]
3260 }
3261 ],
3262 "source_info" : {
3263 "filename" : "include/control/acl.p4",
3264 "line" : 115,
3265 "column" : 16,
3266 "source_fragment" : "l4_sport = hdr.udp.sport"
3267 }
3268 },
3269 {
3270 "op" : "assign",
3271 "parameters" : [
3272 {
3273 "type" : "field",
3274 "value" : ["scalars", "acl_l4_dport"]
3275 },
3276 {
3277 "type" : "field",
3278 "value" : ["udp", "dport"]
3279 }
3280 ],
3281 "source_info" : {
3282 "filename" : "include/control/acl.p4",
3283 "line" : 116,
3284 "column" : 16,
3285 "source_fragment" : "l4_dport = hdr.udp.dport"
3286 }
3287 }
3288 ]
3289 },
3290 {
3291 "name" : "acl108",
3292 "id" : 35,
3293 "runtime_data" : [],
3294 "primitives" : [
3295 {
3296 "op" : "assign",
3297 "parameters" : [
3298 {
3299 "type" : "field",
3300 "value" : ["scalars", "acl_ipv4_src"]
3301 },
3302 {
3303 "type" : "field",
3304 "value" : ["ipv4", "src_addr"]
3305 }
3306 ],
3307 "source_info" : {
3308 "filename" : "include/control/acl.p4",
3309 "line" : 108,
3310 "column" : 12,
3311 "source_fragment" : "ipv4_src = hdr.ipv4.src_addr"
3312 }
3313 },
3314 {
3315 "op" : "assign",
3316 "parameters" : [
3317 {
3318 "type" : "field",
3319 "value" : ["scalars", "acl_ipv4_dst"]
3320 },
3321 {
3322 "type" : "field",
3323 "value" : ["ipv4", "dst_addr"]
3324 }
3325 ],
3326 "source_info" : {
3327 "filename" : "include/control/acl.p4",
3328 "line" : 109,
3329 "column" : 12,
3330 "source_fragment" : "ipv4_dst = hdr.ipv4.dst_addr"
3331 }
3332 },
3333 {
3334 "op" : "assign",
3335 "parameters" : [
3336 {
3337 "type" : "field",
3338 "value" : ["scalars", "acl_ip_proto"]
3339 },
3340 {
3341 "type" : "field",
3342 "value" : ["ipv4", "protocol"]
3343 }
3344 ],
3345 "source_info" : {
3346 "filename" : "include/control/acl.p4",
3347 "line" : 110,
3348 "column" : 12,
3349 "source_fragment" : "ip_proto = hdr.ipv4.protocol"
3350 }
3351 }
3352 ]
3353 },
3354 {
3355 "name" : "acl27",
3356 "id" : 36,
3357 "runtime_data" : [],
3358 "primitives" : [
3359 {
3360 "op" : "assign",
3361 "parameters" : [
3362 {
3363 "type" : "field",
3364 "value" : ["scalars", "acl_ipv4_src"]
3365 },
3366 {
3367 "type" : "hexstr",
3368 "value" : "0x00000000"
3369 }
3370 ],
3371 "source_info" : {
3372 "filename" : "include/control/acl.p4",
3373 "line" : 27,
3374 "column" : 4,
3375 "source_fragment" : "ipv4_addr_t ipv4_src = 0;"
3376 }
3377 },
3378 {
3379 "op" : "assign",
3380 "parameters" : [
3381 {
3382 "type" : "field",
3383 "value" : ["scalars", "acl_ipv4_dst"]
3384 },
3385 {
3386 "type" : "hexstr",
3387 "value" : "0x00000000"
3388 }
3389 ],
3390 "source_info" : {
3391 "filename" : "include/control/acl.p4",
3392 "line" : 28,
3393 "column" : 4,
3394 "source_fragment" : "ipv4_addr_t ipv4_dst = 0;"
3395 }
3396 },
3397 {
3398 "op" : "assign",
3399 "parameters" : [
3400 {
3401 "type" : "field",
3402 "value" : ["scalars", "acl_ip_proto"]
3403 },
3404 {
3405 "type" : "hexstr",
3406 "value" : "0x00"
3407 }
3408 ],
3409 "source_info" : {
3410 "filename" : "include/control/acl.p4",
3411 "line" : 29,
3412 "column" : 4,
3413 "source_fragment" : "bit<8> ip_proto = 0;"
3414 }
3415 },
3416 {
3417 "op" : "assign",
3418 "parameters" : [
3419 {
3420 "type" : "field",
3421 "value" : ["scalars", "acl_l4_sport"]
3422 },
3423 {
3424 "type" : "hexstr",
3425 "value" : "0x0000"
3426 }
3427 ],
3428 "source_info" : {
3429 "filename" : "include/control/acl.p4",
3430 "line" : 30,
3431 "column" : 4,
3432 "source_fragment" : "l4_port_t l4_sport = 0;"
3433 }
3434 },
3435 {
3436 "op" : "assign",
3437 "parameters" : [
3438 {
3439 "type" : "field",
3440 "value" : ["scalars", "acl_l4_dport"]
3441 },
3442 {
3443 "type" : "hexstr",
3444 "value" : "0x0000"
3445 }
3446 ],
3447 "source_info" : {
3448 "filename" : "include/control/acl.p4",
3449 "line" : 31,
3450 "column" : 4,
3451 "source_fragment" : "l4_port_t l4_dport = 0;"
3452 }
3453 }
3454 ]
3455 },
3456 {
3457 "name" : "port_counter31",
3458 "id" : 37,
3459 "runtime_data" : [],
3460 "primitives" : [
3461 {
3462 "op" : "assign",
3463 "parameters" : [
3464 {
3465 "type" : "field",
Carmelo Cascone2a308ff2021-06-01 18:31:57 -07003466 "value" : ["scalars", "tmp_8"]
Yi Tseng1d842672017-11-28 16:06:52 -08003467 },
3468 {
3469 "type" : "expression",
3470 "value" : {
3471 "type" : "expression",
3472 "value" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003473 "op" : "&",
3474 "left" : {
3475 "type" : "field",
3476 "value" : ["standard_metadata", "egress_spec"]
3477 },
Yi Tseng1d842672017-11-28 16:06:52 -08003478 "right" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003479 "type" : "hexstr",
3480 "value" : "0xffffffff"
Yi Tseng1d842672017-11-28 16:06:52 -08003481 }
3482 }
3483 }
3484 }
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003485 ],
3486 "source_info" : {
3487 "filename" : "include/control/port_counter.p4",
3488 "line" : 31,
3489 "column" : 38,
3490 "source_fragment" : "(bit<32>)standard_metadata.egress_spec"
3491 }
3492 },
Carmelo Casconea5400af2018-07-17 22:11:54 +02003493 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003494 "op" : "count",
Carmelo Casconea5400af2018-07-17 22:11:54 +02003495 "parameters" : [
3496 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003497 "type" : "counter_array",
3498 "value" : "FabricIngress.port_counters_control.egress_port_counter"
Carmelo Casconea5400af2018-07-17 22:11:54 +02003499 },
3500 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003501 "type" : "field",
Carmelo Cascone2a308ff2021-06-01 18:31:57 -07003502 "value" : ["scalars", "tmp_8"]
Carmelo Casconea5400af2018-07-17 22:11:54 +02003503 }
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003504 ],
3505 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003506 "filename" : "include/control/port_counter.p4",
3507 "line" : 31,
3508 "column" : 12,
3509 "source_fragment" : "egress_port_counter.count((bit<32>)standard_metadata.egress_spec)"
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003510 }
Carmelo Casconea5400af2018-07-17 22:11:54 +02003511 }
3512 ]
3513 },
3514 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02003515 "name" : "port_counter34",
Wailok Shum4f51bde2021-06-11 22:48:41 +08003516 "id" : 38,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003517 "runtime_data" : [],
3518 "primitives" : [
3519 {
3520 "op" : "assign",
3521 "parameters" : [
3522 {
3523 "type" : "field",
Carmelo Cascone2a308ff2021-06-01 18:31:57 -07003524 "value" : ["scalars", "tmp_9"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003525 },
3526 {
3527 "type" : "expression",
3528 "value" : {
3529 "type" : "expression",
3530 "value" : {
3531 "op" : "&",
3532 "left" : {
3533 "type" : "field",
3534 "value" : ["standard_metadata", "ingress_port"]
3535 },
3536 "right" : {
3537 "type" : "hexstr",
3538 "value" : "0xffffffff"
3539 }
3540 }
3541 }
3542 }
3543 ],
3544 "source_info" : {
3545 "filename" : "include/control/port_counter.p4",
3546 "line" : 34,
3547 "column" : 39,
3548 "source_fragment" : "(bit<32>)standard_metadata.ingress_port"
3549 }
3550 },
3551 {
3552 "op" : "count",
3553 "parameters" : [
3554 {
3555 "type" : "counter_array",
3556 "value" : "FabricIngress.port_counters_control.ingress_port_counter"
3557 },
3558 {
3559 "type" : "field",
Carmelo Cascone2a308ff2021-06-01 18:31:57 -07003560 "value" : ["scalars", "tmp_9"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003561 }
3562 ],
3563 "source_info" : {
3564 "filename" : "include/control/port_counter.p4",
3565 "line" : 34,
3566 "column" : 12,
3567 "source_fragment" : "ingress_port_counter.count((bit<32>)standard_metadata.ingress_port)"
3568 }
3569 }
3570 ]
3571 },
3572 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003573 "name" : "FabricEgress.egress_next.pop_mpls_if_present",
Wailok Shum4f51bde2021-06-11 22:48:41 +08003574 "id" : 39,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003575 "runtime_data" : [],
3576 "primitives" : [
3577 {
3578 "op" : "remove_header",
3579 "parameters" : [
3580 {
3581 "type" : "header",
3582 "value" : "mpls"
3583 }
3584 ],
3585 "source_info" : {
3586 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07003587 "line" : 270,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003588 "column" : 8,
3589 "source_fragment" : "hdr.mpls.setInvalid()"
3590 }
3591 },
3592 {
3593 "op" : "assign",
3594 "parameters" : [
3595 {
3596 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07003597 "value" : ["eth_type", "value"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003598 },
3599 {
3600 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02003601 "value" : ["scalars", "userMetadata.ip_eth_type"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003602 }
3603 ],
3604 "source_info" : {
3605 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07003606 "line" : 272,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003607 "column" : 8,
Daniele Moro5a2de712019-09-24 14:34:07 -07003608 "source_fragment" : "hdr.eth_type.value = fabric_metadata.ip_eth_type"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003609 }
3610 }
3611 ]
3612 },
3613 {
3614 "name" : "FabricEgress.egress_next.set_mpls",
Wailok Shum4f51bde2021-06-11 22:48:41 +08003615 "id" : 40,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003616 "runtime_data" : [],
3617 "primitives" : [
3618 {
3619 "op" : "add_header",
3620 "parameters" : [
3621 {
3622 "type" : "header",
3623 "value" : "mpls"
3624 }
3625 ],
3626 "source_info" : {
3627 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07003628 "line" : 277,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003629 "column" : 8,
3630 "source_fragment" : "hdr.mpls.setValid()"
3631 }
3632 },
3633 {
3634 "op" : "assign",
3635 "parameters" : [
3636 {
3637 "type" : "field",
3638 "value" : ["mpls", "label"]
3639 },
3640 {
3641 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02003642 "value" : ["scalars", "userMetadata.mpls_label"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003643 }
3644 ],
3645 "source_info" : {
3646 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07003647 "line" : 278,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003648 "column" : 8,
3649 "source_fragment" : "hdr.mpls.label = fabric_metadata.mpls_label"
3650 }
3651 },
3652 {
3653 "op" : "assign",
3654 "parameters" : [
3655 {
3656 "type" : "field",
3657 "value" : ["mpls", "tc"]
3658 },
3659 {
3660 "type" : "hexstr",
3661 "value" : "0x00"
3662 }
3663 ],
3664 "source_info" : {
3665 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07003666 "line" : 279,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003667 "column" : 8,
3668 "source_fragment" : "hdr.mpls.tc = 3w0"
3669 }
3670 },
3671 {
3672 "op" : "assign",
3673 "parameters" : [
3674 {
3675 "type" : "field",
3676 "value" : ["mpls", "bos"]
3677 },
3678 {
3679 "type" : "hexstr",
3680 "value" : "0x01"
3681 }
3682 ],
3683 "source_info" : {
3684 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07003685 "line" : 280,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003686 "column" : 8,
3687 "source_fragment" : "hdr.mpls.bos = 1w1"
3688 }
3689 },
3690 {
3691 "op" : "assign",
3692 "parameters" : [
3693 {
3694 "type" : "field",
3695 "value" : ["mpls", "ttl"]
3696 },
3697 {
3698 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02003699 "value" : ["scalars", "userMetadata.mpls_ttl"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003700 }
3701 ],
3702 "source_info" : {
3703 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07003704 "line" : 281,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003705 "column" : 8,
3706 "source_fragment" : "hdr.mpls.ttl = fabric_metadata.mpls_ttl"
3707 }
3708 },
3709 {
3710 "op" : "assign",
3711 "parameters" : [
3712 {
3713 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07003714 "value" : ["eth_type", "value"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003715 },
3716 {
3717 "type" : "hexstr",
3718 "value" : "0x8847"
3719 }
3720 ],
3721 "source_info" : {
3722 "filename" : "include/control/../define.p4",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02003723 "line" : 118,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003724 "column" : 31,
3725 "source_fragment" : "0x8847; ..."
3726 }
3727 }
3728 ]
3729 },
3730 {
3731 "name" : "FabricEgress.egress_next.push_vlan",
Wailok Shum4f51bde2021-06-11 22:48:41 +08003732 "id" : 41,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003733 "runtime_data" : [],
3734 "primitives" : [
3735 {
3736 "op" : "add_header",
3737 "parameters" : [
3738 {
3739 "type" : "header",
3740 "value" : "vlan_tag"
3741 }
3742 ],
3743 "source_info" : {
3744 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07003745 "line" : 289,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003746 "column" : 8,
3747 "source_fragment" : "hdr.vlan_tag.setValid()"
3748 }
3749 },
3750 {
3751 "op" : "assign",
3752 "parameters" : [
3753 {
3754 "type" : "field",
3755 "value" : ["vlan_tag", "cfi"]
3756 },
3757 {
3758 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02003759 "value" : ["scalars", "userMetadata.vlan_cfi"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003760 }
3761 ],
3762 "source_info" : {
3763 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07003764 "line" : 290,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003765 "column" : 8,
3766 "source_fragment" : "hdr.vlan_tag.cfi = fabric_metadata.vlan_cfi"
3767 }
3768 },
3769 {
3770 "op" : "assign",
3771 "parameters" : [
3772 {
3773 "type" : "field",
3774 "value" : ["vlan_tag", "pri"]
3775 },
3776 {
3777 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02003778 "value" : ["scalars", "userMetadata.vlan_pri"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003779 }
3780 ],
3781 "source_info" : {
3782 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07003783 "line" : 291,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003784 "column" : 8,
3785 "source_fragment" : "hdr.vlan_tag.pri = fabric_metadata.vlan_pri"
3786 }
3787 },
3788 {
3789 "op" : "assign",
3790 "parameters" : [
3791 {
3792 "type" : "field",
3793 "value" : ["vlan_tag", "eth_type"]
3794 },
3795 {
Daniele Moro5a2de712019-09-24 14:34:07 -07003796 "type" : "hexstr",
3797 "value" : "0x8100"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003798 }
3799 ],
3800 "source_info" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07003801 "filename" : "include/control/../define.p4",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02003802 "line" : 117,
Daniele Moro5a2de712019-09-24 14:34:07 -07003803 "column" : 31,
3804 "source_fragment" : "0x8100; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003805 }
3806 },
3807 {
3808 "op" : "assign",
3809 "parameters" : [
3810 {
3811 "type" : "field",
3812 "value" : ["vlan_tag", "vlan_id"]
3813 },
3814 {
3815 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02003816 "value" : ["scalars", "userMetadata.vlan_id"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003817 }
3818 ],
3819 "source_info" : {
3820 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07003821 "line" : 293,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003822 "column" : 8,
3823 "source_fragment" : "hdr.vlan_tag.vlan_id = fabric_metadata.vlan_id"
3824 }
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003825 }
3826 ]
3827 },
3828 {
3829 "name" : "FabricEgress.egress_next.pop_vlan",
Wailok Shum4f51bde2021-06-11 22:48:41 +08003830 "id" : 42,
Yi Tseng1d842672017-11-28 16:06:52 -08003831 "runtime_data" : [],
3832 "primitives" : [
3833 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003834 "op" : "remove_header",
3835 "parameters" : [
3836 {
3837 "type" : "header",
3838 "value" : "vlan_tag"
3839 }
3840 ],
3841 "source_info" : {
3842 "filename" : "include/control/next.p4",
pierventre48e78822020-12-15 17:34:54 +01003843 "line" : 322,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003844 "column" : 8,
3845 "source_fragment" : "hdr.vlan_tag.setInvalid()"
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003846 }
Carmelo Casconea5400af2018-07-17 22:11:54 +02003847 }
3848 ]
3849 },
3850 {
pierventre48e78822020-12-15 17:34:54 +01003851 "name" : "FabricEgress.egress_next.drop",
Wailok Shum4f51bde2021-06-11 22:48:41 +08003852 "id" : 43,
pierventre48e78822020-12-15 17:34:54 +01003853 "runtime_data" : [],
3854 "primitives" : [
3855 {
3856 "op" : "mark_to_drop",
3857 "parameters" : [
3858 {
3859 "type" : "header",
3860 "value" : "standard_metadata"
3861 }
3862 ],
3863 "source_info" : {
3864 "filename" : "include/control/next.p4",
3865 "line" : 327,
3866 "column" : 8,
3867 "source_fragment" : "mark_to_drop(standard_metadata)"
3868 }
3869 }
3870 ]
3871 },
3872 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02003873 "name" : "packetio41",
Wailok Shum4f51bde2021-06-11 22:48:41 +08003874 "id" : 44,
Carmelo Casconea5400af2018-07-17 22:11:54 +02003875 "runtime_data" : [],
3876 "primitives" : [
3877 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003878 "op" : "exit",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003879 "parameters" : [],
3880 "source_info" : {
3881 "filename" : "include/control/packetio.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003882 "line" : 41,
3883 "column" : 12,
3884 "source_fragment" : "exit"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003885 }
Carmelo Casconea5400af2018-07-17 22:11:54 +02003886 }
3887 ]
3888 },
3889 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02003890 "name" : "packetio44",
Wailok Shum4f51bde2021-06-11 22:48:41 +08003891 "id" : 45,
Carmelo Casconea5400af2018-07-17 22:11:54 +02003892 "runtime_data" : [],
3893 "primitives" : [
3894 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003895 "op" : "add_header",
3896 "parameters" : [
3897 {
3898 "type" : "header",
3899 "value" : "packet_in"
3900 }
3901 ],
3902 "source_info" : {
3903 "filename" : "include/control/packetio.p4",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07003904 "line" : 44,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003905 "column" : 12,
3906 "source_fragment" : "hdr.packet_in.setValid()"
3907 }
3908 },
3909 {
Carmelo Casconea5400af2018-07-17 22:11:54 +02003910 "op" : "assign",
3911 "parameters" : [
3912 {
3913 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003914 "value" : ["packet_in", "ingress_port"]
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003915 },
3916 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003917 "type" : "field",
3918 "value" : ["standard_metadata", "ingress_port"]
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003919 }
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003920 ],
3921 "source_info" : {
3922 "filename" : "include/control/packetio.p4",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07003923 "line" : 45,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003924 "column" : 12,
3925 "source_fragment" : "hdr.packet_in.ingress_port = standard_metadata.ingress_port"
3926 }
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003927 },
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003928 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003929 "op" : "exit",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003930 "parameters" : [],
3931 "source_info" : {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003932 "filename" : "include/control/packetio.p4",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07003933 "line" : 47,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003934 "column" : 12,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003935 "source_fragment" : "exit"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003936 }
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003937 }
3938 ]
3939 },
3940 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02003941 "name" : "next349",
Wailok Shum4f51bde2021-06-11 22:48:41 +08003942 "id" : 46,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003943 "runtime_data" : [],
3944 "primitives" : [
3945 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003946 "op" : "mark_to_drop",
3947 "parameters" : [
3948 {
3949 "type" : "header",
3950 "value" : "standard_metadata"
3951 }
3952 ],
3953 "source_info" : {
3954 "filename" : "include/control/next.p4",
pierventre48e78822020-12-15 17:34:54 +01003955 "line" : 349,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003956 "column" : 12,
3957 "source_fragment" : "mark_to_drop(standard_metadata)"
3958 }
3959 }
3960 ]
3961 },
3962 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02003963 "name" : "next376",
Wailok Shum4f51bde2021-06-11 22:48:41 +08003964 "id" : 47,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003965 "runtime_data" : [],
3966 "primitives" : [
3967 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003968 "op" : "mark_to_drop",
3969 "parameters" : [
3970 {
3971 "type" : "header",
3972 "value" : "standard_metadata"
3973 }
3974 ],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003975 "source_info" : {
3976 "filename" : "include/control/next.p4",
pierventre48e78822020-12-15 17:34:54 +01003977 "line" : 376,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003978 "column" : 35,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003979 "source_fragment" : "mark_to_drop(standard_metadata)"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003980 }
Carmelo Casconea5400af2018-07-17 22:11:54 +02003981 }
3982 ]
3983 },
3984 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02003985 "name" : "next375",
Wailok Shum4f51bde2021-06-11 22:48:41 +08003986 "id" : 48,
Carmelo Casconea5400af2018-07-17 22:11:54 +02003987 "runtime_data" : [],
3988 "primitives" : [
3989 {
3990 "op" : "assign",
3991 "parameters" : [
3992 {
3993 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003994 "value" : ["mpls", "ttl"]
Carmelo Casconea5400af2018-07-17 22:11:54 +02003995 },
3996 {
3997 "type" : "expression",
3998 "value" : {
3999 "type" : "expression",
4000 "value" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004001 "op" : "&",
4002 "left" : {
4003 "type" : "expression",
4004 "value" : {
4005 "op" : "+",
4006 "left" : {
4007 "type" : "field",
4008 "value" : ["mpls", "ttl"]
4009 },
4010 "right" : {
4011 "type" : "hexstr",
4012 "value" : "0xff"
4013 }
4014 }
4015 },
Carmelo Casconea5400af2018-07-17 22:11:54 +02004016 "right" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004017 "type" : "hexstr",
4018 "value" : "0xff"
Carmelo Casconea5400af2018-07-17 22:11:54 +02004019 }
4020 }
4021 }
4022 }
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004023 ],
4024 "source_info" : {
4025 "filename" : "include/control/next.p4",
pierventre48e78822020-12-15 17:34:54 +01004026 "line" : 375,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004027 "column" : 12,
4028 "source_fragment" : "hdr.mpls.ttl = hdr.mpls.ttl - 1"
4029 }
Carmelo Casconea5400af2018-07-17 22:11:54 +02004030 }
4031 ]
4032 },
4033 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004034 "name" : "next380",
Wailok Shum4f51bde2021-06-11 22:48:41 +08004035 "id" : 49,
Carmelo Casconea5400af2018-07-17 22:11:54 +02004036 "runtime_data" : [],
4037 "primitives" : [
4038 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004039 "op" : "mark_to_drop",
4040 "parameters" : [
4041 {
4042 "type" : "header",
4043 "value" : "standard_metadata"
4044 }
4045 ],
Carmelo Casconea5400af2018-07-17 22:11:54 +02004046 "source_info" : {
4047 "filename" : "include/control/next.p4",
pierventre48e78822020-12-15 17:34:54 +01004048 "line" : 380,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004049 "column" : 39,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004050 "source_fragment" : "mark_to_drop(standard_metadata)"
Carmelo Casconea5400af2018-07-17 22:11:54 +02004051 }
4052 }
4053 ]
4054 },
4055 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004056 "name" : "next379",
Wailok Shum4f51bde2021-06-11 22:48:41 +08004057 "id" : 50,
Carmelo Casconea5400af2018-07-17 22:11:54 +02004058 "runtime_data" : [],
4059 "primitives" : [
4060 {
4061 "op" : "assign",
4062 "parameters" : [
4063 {
4064 "type" : "field",
Yi Tseng1d842672017-11-28 16:06:52 -08004065 "value" : ["ipv4", "ttl"]
4066 },
4067 {
4068 "type" : "expression",
4069 "value" : {
4070 "type" : "expression",
4071 "value" : {
4072 "op" : "&",
4073 "left" : {
4074 "type" : "expression",
4075 "value" : {
4076 "op" : "+",
4077 "left" : {
4078 "type" : "field",
4079 "value" : ["ipv4", "ttl"]
4080 },
4081 "right" : {
4082 "type" : "hexstr",
4083 "value" : "0xff"
4084 }
4085 }
4086 },
4087 "right" : {
4088 "type" : "hexstr",
4089 "value" : "0xff"
4090 }
4091 }
4092 }
4093 }
4094 ],
4095 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004096 "filename" : "include/control/next.p4",
pierventre48e78822020-12-15 17:34:54 +01004097 "line" : 379,
Carmelo Casconea5400af2018-07-17 22:11:54 +02004098 "column" : 16,
Yi Tseng1d842672017-11-28 16:06:52 -08004099 "source_fragment" : "hdr.ipv4.ttl = hdr.ipv4.ttl - 1"
4100 }
4101 }
4102 ]
Yi Tsengbe342052017-11-03 10:21:23 -07004103 }
4104 ],
4105 "pipelines" : [
4106 {
4107 "name" : "ingress",
4108 "id" : 0,
4109 "source_info" : {
4110 "filename" : "fabric.p4",
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07004111 "line" : 46,
Yi Tsengbe342052017-11-03 10:21:23 -07004112 "column" : 8,
4113 "source_fragment" : "FabricIngress"
4114 },
4115 "init_table" : "node_2",
4116 "tables" : [
4117 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004118 "name" : "tbl_packetio25",
Yi Tsengbe342052017-11-03 10:21:23 -07004119 "id" : 0,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004120 "source_info" : {
4121 "filename" : "include/control/packetio.p4",
4122 "line" : 25,
4123 "column" : 42,
4124 "source_fragment" : "= hdr.packet_out.egress_port; ..."
4125 },
Yi Tsengbe342052017-11-03 10:21:23 -07004126 "key" : [],
4127 "match_type" : "exact",
4128 "type" : "simple",
4129 "max_size" : 1024,
4130 "with_counters" : false,
4131 "support_timeout" : false,
4132 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004133 "action_ids" : [27],
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004134 "actions" : ["packetio25"],
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004135 "base_default_next" : "node_4",
Yi Tsengbe342052017-11-03 10:21:23 -07004136 "next_tables" : {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004137 "packetio25" : "node_4"
Yi Tsengbe342052017-11-03 10:21:23 -07004138 },
4139 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004140 "action_id" : 27,
4141 "action_const" : true,
4142 "action_data" : [],
4143 "action_entry_const" : true
4144 }
4145 },
4146 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004147 "name" : "tbl_filtering111",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004148 "id" : 1,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004149 "source_info" : {
4150 "filename" : "include/control/filtering.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07004151 "line" : 111,
Daniele Moro7c3a0022019-07-12 13:38:34 -07004152 "column" : 36,
4153 "source_fragment" : "= hdr.vlan_tag.vlan_id; ..."
Carmelo Cascone3032b872019-04-13 01:23:54 -07004154 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004155 "key" : [],
4156 "match_type" : "exact",
4157 "type" : "simple",
4158 "max_size" : 1024,
4159 "with_counters" : false,
4160 "support_timeout" : false,
4161 "direct_meters" : null,
4162 "action_ids" : [28],
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004163 "actions" : ["filtering111"],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004164 "base_default_next" : "node_6",
4165 "next_tables" : {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004166 "filtering111" : "node_6"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004167 },
4168 "default_entry" : {
4169 "action_id" : 28,
4170 "action_const" : true,
4171 "action_data" : [],
4172 "action_entry_const" : true
4173 }
4174 },
4175 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004176 "name" : "tbl_filtering127",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004177 "id" : 2,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004178 "source_info" : {
4179 "filename" : "include/control/filtering.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07004180 "line" : 127,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004181 "column" : 37,
4182 "source_fragment" : "="
4183 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004184 "key" : [],
4185 "match_type" : "exact",
4186 "type" : "simple",
4187 "max_size" : 1024,
4188 "with_counters" : false,
4189 "support_timeout" : false,
4190 "direct_meters" : null,
4191 "action_ids" : [29],
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004192 "actions" : ["filtering127"],
Daniele Moro5a2de712019-09-24 14:34:07 -07004193 "base_default_next" : "FabricIngress.filtering.ingress_port_vlan",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004194 "next_tables" : {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004195 "filtering127" : "FabricIngress.filtering.ingress_port_vlan"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004196 },
4197 "default_entry" : {
4198 "action_id" : 29,
Yi Tsengbe342052017-11-03 10:21:23 -07004199 "action_const" : true,
4200 "action_data" : [],
4201 "action_entry_const" : true
4202 }
4203 },
4204 {
Daniele Moro7c3a0022019-07-12 13:38:34 -07004205 "name" : "FabricIngress.filtering.ingress_port_vlan",
Daniele Moro5a2de712019-09-24 14:34:07 -07004206 "id" : 3,
Daniele Moro7c3a0022019-07-12 13:38:34 -07004207 "source_info" : {
4208 "filename" : "include/control/filtering.p4",
4209 "line" : 53,
Yi Tsengbe342052017-11-03 10:21:23 -07004210 "column" : 10,
4211 "source_fragment" : "ingress_port_vlan"
4212 },
4213 "key" : [
4214 {
4215 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004216 "name" : "ig_port",
Yi Tsengbe342052017-11-03 10:21:23 -07004217 "target" : ["standard_metadata", "ingress_port"],
4218 "mask" : null
4219 },
4220 {
4221 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004222 "name" : "vlan_is_valid",
Yi Tsengbe342052017-11-03 10:21:23 -07004223 "target" : ["vlan_tag", "$valid$"],
4224 "mask" : null
4225 },
4226 {
4227 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004228 "name" : "vlan_id",
Yi Tsengbe342052017-11-03 10:21:23 -07004229 "target" : ["vlan_tag", "vlan_id"],
4230 "mask" : null
4231 }
4232 ],
4233 "match_type" : "ternary",
4234 "type" : "simple",
4235 "max_size" : 1024,
Yi Tsengbd46d052018-01-22 17:18:16 -08004236 "with_counters" : true,
Yi Tsengbe342052017-11-03 10:21:23 -07004237 "support_timeout" : false,
4238 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004239 "action_ids" : [7, 8, 9],
4240 "actions" : ["FabricIngress.filtering.deny", "FabricIngress.filtering.permit", "FabricIngress.filtering.permit_with_internal_vlan"],
4241 "base_default_next" : "FabricIngress.filtering.fwd_classifier",
Yi Tsengbe342052017-11-03 10:21:23 -07004242 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004243 "FabricIngress.filtering.deny" : "FabricIngress.filtering.fwd_classifier",
4244 "FabricIngress.filtering.permit" : "FabricIngress.filtering.fwd_classifier",
4245 "FabricIngress.filtering.permit_with_internal_vlan" : "FabricIngress.filtering.fwd_classifier"
Yi Tsengbe342052017-11-03 10:21:23 -07004246 },
4247 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004248 "action_id" : 7,
Yi Tsengbe342052017-11-03 10:21:23 -07004249 "action_const" : true,
4250 "action_data" : [],
4251 "action_entry_const" : true
4252 }
4253 },
4254 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004255 "name" : "FabricIngress.filtering.fwd_classifier",
Daniele Moro5a2de712019-09-24 14:34:07 -07004256 "id" : 4,
Yi Tsengbe342052017-11-03 10:21:23 -07004257 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004258 "filename" : "include/control/filtering.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07004259 "line" : 92,
Yi Tsengbe342052017-11-03 10:21:23 -07004260 "column" : 10,
4261 "source_fragment" : "fwd_classifier"
4262 },
4263 "key" : [
4264 {
4265 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004266 "name" : "ig_port",
Yi Tsengbe342052017-11-03 10:21:23 -07004267 "target" : ["standard_metadata", "ingress_port"],
4268 "mask" : null
4269 },
4270 {
Charles Chan384aea22018-08-23 22:08:02 -07004271 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004272 "name" : "eth_dst",
Yi Tsengbe342052017-11-03 10:21:23 -07004273 "target" : ["ethernet", "dst_addr"],
4274 "mask" : null
4275 },
4276 {
Daniele Moro5a2de712019-09-24 14:34:07 -07004277 "match_type" : "ternary",
4278 "name" : "eth_type",
4279 "target" : ["eth_type", "value"],
Daniele Moro7c3a0022019-07-12 13:38:34 -07004280 "mask" : null
4281 },
4282 {
4283 "match_type" : "exact",
Daniele Moro5a2de712019-09-24 14:34:07 -07004284 "name" : "ip_eth_type",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004285 "target" : ["scalars", "userMetadata.ip_eth_type"],
Yi Tsengbe342052017-11-03 10:21:23 -07004286 "mask" : null
4287 }
4288 ],
Charles Chan384aea22018-08-23 22:08:02 -07004289 "match_type" : "ternary",
Yi Tsengbe342052017-11-03 10:21:23 -07004290 "type" : "simple",
4291 "max_size" : 1024,
Yi Tsengbd46d052018-01-22 17:18:16 -08004292 "with_counters" : true,
Yi Tsengbe342052017-11-03 10:21:23 -07004293 "support_timeout" : false,
4294 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004295 "action_ids" : [10],
Yi Tseng27b9bc02018-04-12 14:52:40 +08004296 "actions" : ["FabricIngress.filtering.set_forwarding_type"],
Daniele Moro5a2de712019-09-24 14:34:07 -07004297 "base_default_next" : "node_10",
Yi Tsengbe342052017-11-03 10:21:23 -07004298 "next_tables" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07004299 "FabricIngress.filtering.set_forwarding_type" : "node_10"
Yi Tsengbe342052017-11-03 10:21:23 -07004300 },
4301 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004302 "action_id" : 10,
Yi Tsengbe342052017-11-03 10:21:23 -07004303 "action_const" : true,
4304 "action_data" : ["0x0"],
4305 "action_entry_const" : true
4306 }
4307 },
4308 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004309 "name" : "FabricIngress.forwarding.bridging",
Daniele Moro5a2de712019-09-24 14:34:07 -07004310 "id" : 5,
Yi Tsengbe342052017-11-03 10:21:23 -07004311 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004312 "filename" : "include/control/forwarding.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07004313 "line" : 46,
Yi Tsengbe342052017-11-03 10:21:23 -07004314 "column" : 10,
4315 "source_fragment" : "bridging"
4316 },
4317 "key" : [
4318 {
4319 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004320 "name" : "vlan_id",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004321 "target" : ["scalars", "userMetadata.vlan_id"],
Yi Tsengbe342052017-11-03 10:21:23 -07004322 "mask" : null
4323 },
4324 {
4325 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004326 "name" : "eth_dst",
Yi Tsengbe342052017-11-03 10:21:23 -07004327 "target" : ["ethernet", "dst_addr"],
4328 "mask" : null
4329 }
4330 ],
4331 "match_type" : "ternary",
4332 "type" : "simple",
4333 "max_size" : 1024,
Yi Tsengbd46d052018-01-22 17:18:16 -08004334 "with_counters" : true,
Yi Tsengbe342052017-11-03 10:21:23 -07004335 "support_timeout" : false,
4336 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004337 "action_ids" : [11, 0],
4338 "actions" : ["FabricIngress.forwarding.set_next_id_bridging", "nop"],
Wailok Shum4f51bde2021-06-11 22:48:41 +08004339 "base_default_next" : "tbl_acl27",
Yi Tseng1d842672017-11-28 16:06:52 -08004340 "next_tables" : {
Wailok Shum4f51bde2021-06-11 22:48:41 +08004341 "FabricIngress.forwarding.set_next_id_bridging" : "tbl_acl27",
4342 "nop" : "tbl_acl27"
Yi Tseng1d842672017-11-28 16:06:52 -08004343 },
4344 "default_entry" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004345 "action_id" : 0,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004346 "action_const" : true,
Yi Tseng1d842672017-11-28 16:06:52 -08004347 "action_data" : [],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004348 "action_entry_const" : true
Yi Tseng1d842672017-11-28 16:06:52 -08004349 }
4350 },
4351 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004352 "name" : "FabricIngress.forwarding.mpls",
Daniele Moro5a2de712019-09-24 14:34:07 -07004353 "id" : 6,
Yi Tseng1d842672017-11-28 16:06:52 -08004354 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004355 "filename" : "include/control/forwarding.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07004356 "line" : 71,
Yi Tseng1d842672017-11-28 16:06:52 -08004357 "column" : 10,
4358 "source_fragment" : "mpls"
4359 },
4360 "key" : [
4361 {
4362 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004363 "name" : "mpls_label",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004364 "target" : ["scalars", "userMetadata.mpls_label"],
Yi Tseng1d842672017-11-28 16:06:52 -08004365 "mask" : null
4366 }
4367 ],
4368 "match_type" : "exact",
4369 "type" : "simple",
4370 "max_size" : 1024,
Yi Tsengbd46d052018-01-22 17:18:16 -08004371 "with_counters" : true,
Yi Tseng1d842672017-11-28 16:06:52 -08004372 "support_timeout" : false,
4373 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004374 "action_ids" : [12, 1],
4375 "actions" : ["FabricIngress.forwarding.pop_mpls_and_next", "nop"],
Wailok Shum4f51bde2021-06-11 22:48:41 +08004376 "base_default_next" : "tbl_acl27",
Yi Tseng1d842672017-11-28 16:06:52 -08004377 "next_tables" : {
Wailok Shum4f51bde2021-06-11 22:48:41 +08004378 "FabricIngress.forwarding.pop_mpls_and_next" : "tbl_acl27",
4379 "nop" : "tbl_acl27"
Yi Tseng1d842672017-11-28 16:06:52 -08004380 },
4381 "default_entry" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004382 "action_id" : 1,
Yi Tseng1d842672017-11-28 16:06:52 -08004383 "action_const" : true,
4384 "action_data" : [],
4385 "action_entry_const" : true
4386 }
4387 },
4388 {
Charles Chan384aea22018-08-23 22:08:02 -07004389 "name" : "FabricIngress.forwarding.routing_v4",
Daniele Moro5a2de712019-09-24 14:34:07 -07004390 "id" : 7,
Yi Tseng1d842672017-11-28 16:06:52 -08004391 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004392 "filename" : "include/control/forwarding.p4",
Daniele Moro5a2de712019-09-24 14:34:07 -07004393 "line" : 108,
Yi Tseng1d842672017-11-28 16:06:52 -08004394 "column" : 10,
Charles Chan384aea22018-08-23 22:08:02 -07004395 "source_fragment" : "routing_v4"
Yi Tseng1d842672017-11-28 16:06:52 -08004396 },
4397 "key" : [
4398 {
4399 "match_type" : "lpm",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004400 "name" : "ipv4_dst",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004401 "target" : ["scalars", "userMetadata.ipv4_dst_addr"],
Yi Tseng1d842672017-11-28 16:06:52 -08004402 "mask" : null
4403 }
4404 ],
4405 "match_type" : "lpm",
4406 "type" : "simple",
4407 "max_size" : 1024,
Daniele Moro5a2de712019-09-24 14:34:07 -07004408 "with_counters" : false,
Yi Tseng1d842672017-11-28 16:06:52 -08004409 "support_timeout" : false,
4410 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004411 "action_ids" : [13, 14, 2],
4412 "actions" : ["FabricIngress.forwarding.set_next_id_routing_v4", "FabricIngress.forwarding.nop_routing_v4", "nop"],
Wailok Shum4f51bde2021-06-11 22:48:41 +08004413 "base_default_next" : "tbl_acl27",
Yi Tsengbe342052017-11-03 10:21:23 -07004414 "next_tables" : {
Wailok Shum4f51bde2021-06-11 22:48:41 +08004415 "FabricIngress.forwarding.set_next_id_routing_v4" : "tbl_acl27",
4416 "FabricIngress.forwarding.nop_routing_v4" : "tbl_acl27",
4417 "nop" : "tbl_acl27"
Yi Tsengbe342052017-11-03 10:21:23 -07004418 },
4419 "default_entry" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004420 "action_id" : 2,
CyberHasHe9ba39c2019-10-11 05:59:12 +08004421 "action_const" : false,
Yi Tsengbe342052017-11-03 10:21:23 -07004422 "action_data" : [],
CyberHasHe9ba39c2019-10-11 05:59:12 +08004423 "action_entry_const" : false
Yi Tsengbe342052017-11-03 10:21:23 -07004424 }
4425 },
4426 {
Wailok Shum4f51bde2021-06-11 22:48:41 +08004427 "name" : "tbl_acl27",
Daniele Moro5a2de712019-09-24 14:34:07 -07004428 "id" : 8,
Yi Tsengbe342052017-11-03 10:21:23 -07004429 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004430 "filename" : "include/control/acl.p4",
Wailok Shum4f51bde2021-06-11 22:48:41 +08004431 "line" : 27,
4432 "column" : 4,
4433 "source_fragment" : "ipv4_addr_t ipv4_src = 0; ..."
4434 },
4435 "key" : [],
4436 "match_type" : "exact",
4437 "type" : "simple",
4438 "max_size" : 1024,
4439 "with_counters" : false,
4440 "support_timeout" : false,
4441 "direct_meters" : null,
4442 "action_ids" : [36],
4443 "actions" : ["acl27"],
4444 "base_default_next" : "node_18",
4445 "next_tables" : {
4446 "acl27" : "node_18"
4447 },
4448 "default_entry" : {
4449 "action_id" : 36,
4450 "action_const" : true,
4451 "action_data" : [],
4452 "action_entry_const" : true
4453 }
4454 },
4455 {
4456 "name" : "tbl_acl97",
4457 "id" : 9,
4458 "source_info" : {
4459 "filename" : "include/control/acl.p4",
4460 "line" : 97,
4461 "column" : 21,
4462 "source_fragment" : "= hdr.inner_ipv4.src_addr; ..."
4463 },
4464 "key" : [],
4465 "match_type" : "exact",
4466 "type" : "simple",
4467 "max_size" : 1024,
4468 "with_counters" : false,
4469 "support_timeout" : false,
4470 "direct_meters" : null,
4471 "action_ids" : [32],
4472 "actions" : ["acl97"],
4473 "base_default_next" : "node_20",
4474 "next_tables" : {
4475 "acl97" : "node_20"
4476 },
4477 "default_entry" : {
4478 "action_id" : 32,
4479 "action_const" : true,
4480 "action_data" : [],
4481 "action_entry_const" : true
4482 }
4483 },
4484 {
4485 "name" : "tbl_acl101",
4486 "id" : 10,
4487 "source_info" : {
4488 "filename" : "include/control/acl.p4",
4489 "line" : 101,
4490 "column" : 25,
4491 "source_fragment" : "= hdr.inner_tcp.sport; ..."
4492 },
4493 "key" : [],
4494 "match_type" : "exact",
4495 "type" : "simple",
4496 "max_size" : 1024,
4497 "with_counters" : false,
4498 "support_timeout" : false,
4499 "direct_meters" : null,
4500 "action_ids" : [30],
4501 "actions" : ["acl101"],
4502 "base_default_next" : "FabricIngress.acl.acl",
4503 "next_tables" : {
4504 "acl101" : "FabricIngress.acl.acl"
4505 },
4506 "default_entry" : {
4507 "action_id" : 30,
4508 "action_const" : true,
4509 "action_data" : [],
4510 "action_entry_const" : true
4511 }
4512 },
4513 {
4514 "name" : "tbl_acl104",
4515 "id" : 11,
4516 "source_info" : {
4517 "filename" : "include/control/acl.p4",
4518 "line" : 104,
4519 "column" : 25,
4520 "source_fragment" : "= hdr.inner_udp.sport; ..."
4521 },
4522 "key" : [],
4523 "match_type" : "exact",
4524 "type" : "simple",
4525 "max_size" : 1024,
4526 "with_counters" : false,
4527 "support_timeout" : false,
4528 "direct_meters" : null,
4529 "action_ids" : [31],
4530 "actions" : ["acl104"],
4531 "base_default_next" : "FabricIngress.acl.acl",
4532 "next_tables" : {
4533 "acl104" : "FabricIngress.acl.acl"
4534 },
4535 "default_entry" : {
4536 "action_id" : 31,
4537 "action_const" : true,
4538 "action_data" : [],
4539 "action_entry_const" : true
4540 }
4541 },
4542 {
4543 "name" : "tbl_acl108",
4544 "id" : 12,
4545 "source_info" : {
4546 "filename" : "include/control/acl.p4",
4547 "line" : 108,
4548 "column" : 21,
4549 "source_fragment" : "= hdr.ipv4.src_addr; ..."
4550 },
4551 "key" : [],
4552 "match_type" : "exact",
4553 "type" : "simple",
4554 "max_size" : 1024,
4555 "with_counters" : false,
4556 "support_timeout" : false,
4557 "direct_meters" : null,
4558 "action_ids" : [35],
4559 "actions" : ["acl108"],
4560 "base_default_next" : "node_26",
4561 "next_tables" : {
4562 "acl108" : "node_26"
4563 },
4564 "default_entry" : {
4565 "action_id" : 35,
4566 "action_const" : true,
4567 "action_data" : [],
4568 "action_entry_const" : true
4569 }
4570 },
4571 {
4572 "name" : "tbl_acl112",
4573 "id" : 13,
4574 "source_info" : {
4575 "filename" : "include/control/acl.p4",
4576 "line" : 112,
4577 "column" : 25,
4578 "source_fragment" : "= hdr.tcp.sport; ..."
4579 },
4580 "key" : [],
4581 "match_type" : "exact",
4582 "type" : "simple",
4583 "max_size" : 1024,
4584 "with_counters" : false,
4585 "support_timeout" : false,
4586 "direct_meters" : null,
4587 "action_ids" : [33],
4588 "actions" : ["acl112"],
4589 "base_default_next" : "FabricIngress.acl.acl",
4590 "next_tables" : {
4591 "acl112" : "FabricIngress.acl.acl"
4592 },
4593 "default_entry" : {
4594 "action_id" : 33,
4595 "action_const" : true,
4596 "action_data" : [],
4597 "action_entry_const" : true
4598 }
4599 },
4600 {
4601 "name" : "tbl_acl115",
4602 "id" : 14,
4603 "source_info" : {
4604 "filename" : "include/control/acl.p4",
4605 "line" : 115,
4606 "column" : 25,
4607 "source_fragment" : "= hdr.udp.sport; ..."
4608 },
4609 "key" : [],
4610 "match_type" : "exact",
4611 "type" : "simple",
4612 "max_size" : 1024,
4613 "with_counters" : false,
4614 "support_timeout" : false,
4615 "direct_meters" : null,
4616 "action_ids" : [34],
4617 "actions" : ["acl115"],
4618 "base_default_next" : "FabricIngress.acl.acl",
4619 "next_tables" : {
4620 "acl115" : "FabricIngress.acl.acl"
4621 },
4622 "default_entry" : {
4623 "action_id" : 34,
4624 "action_const" : true,
4625 "action_data" : [],
4626 "action_entry_const" : true
4627 }
4628 },
4629 {
4630 "name" : "FabricIngress.acl.acl",
4631 "id" : 15,
4632 "source_info" : {
4633 "filename" : "include/control/acl.p4",
4634 "line" : 66,
Yi Tsengbe342052017-11-03 10:21:23 -07004635 "column" : 10,
Yi Tsengbe342052017-11-03 10:21:23 -07004636 "source_fragment" : "acl"
4637 },
4638 "key" : [
4639 {
4640 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004641 "name" : "ig_port",
Yi Tsengbe342052017-11-03 10:21:23 -07004642 "target" : ["standard_metadata", "ingress_port"],
4643 "mask" : null
4644 },
4645 {
4646 "match_type" : "ternary",
Daniele Moro0cecfe12019-12-13 17:24:33 -08004647 "name" : "eth_dst",
Yi Tsengbe342052017-11-03 10:21:23 -07004648 "target" : ["ethernet", "dst_addr"],
4649 "mask" : null
4650 },
4651 {
4652 "match_type" : "ternary",
Daniele Moro0cecfe12019-12-13 17:24:33 -08004653 "name" : "eth_src",
Yi Tsengbe342052017-11-03 10:21:23 -07004654 "target" : ["ethernet", "src_addr"],
4655 "mask" : null
4656 },
4657 {
4658 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004659 "name" : "vlan_id",
Yi Tsengbe342052017-11-03 10:21:23 -07004660 "target" : ["vlan_tag", "vlan_id"],
4661 "mask" : null
4662 },
4663 {
4664 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004665 "name" : "eth_type",
Daniele Moro5a2de712019-09-24 14:34:07 -07004666 "target" : ["eth_type", "value"],
Yi Tseng8235a1a2018-07-24 20:57:28 +08004667 "mask" : null
4668 },
4669 {
4670 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004671 "name" : "ipv4_src",
Wailok Shum4f51bde2021-06-11 22:48:41 +08004672 "target" : ["scalars", "acl_ipv4_src"],
Yi Tsengbe342052017-11-03 10:21:23 -07004673 "mask" : null
4674 },
4675 {
4676 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004677 "name" : "ipv4_dst",
Wailok Shum4f51bde2021-06-11 22:48:41 +08004678 "target" : ["scalars", "acl_ipv4_dst"],
4679 "mask" : null
4680 },
4681 {
4682 "match_type" : "ternary",
4683 "name" : "ip_proto",
4684 "target" : ["scalars", "acl_ip_proto"],
Yi Tsengbe342052017-11-03 10:21:23 -07004685 "mask" : null
4686 },
4687 {
4688 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004689 "name" : "icmp_type",
Yi Tsengbe342052017-11-03 10:21:23 -07004690 "target" : ["icmp", "icmp_type"],
4691 "mask" : null
4692 },
4693 {
4694 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004695 "name" : "icmp_code",
Yi Tsengbe342052017-11-03 10:21:23 -07004696 "target" : ["icmp", "icmp_code"],
4697 "mask" : null
Wailok Shum4f51bde2021-06-11 22:48:41 +08004698 },
4699 {
4700 "match_type" : "ternary",
4701 "name" : "l4_sport",
4702 "target" : ["scalars", "acl_l4_sport"],
4703 "mask" : null
4704 },
4705 {
4706 "match_type" : "ternary",
4707 "name" : "l4_dport",
4708 "target" : ["scalars", "acl_l4_dport"],
4709 "mask" : null
Yi Tsengbe342052017-11-03 10:21:23 -07004710 }
4711 ],
4712 "match_type" : "ternary",
4713 "type" : "simple",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07004714 "max_size" : 1024,
Yi Tsengbd46d052018-01-22 17:18:16 -08004715 "with_counters" : true,
Yi Tsengbe342052017-11-03 10:21:23 -07004716 "support_timeout" : false,
4717 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004718 "action_ids" : [15, 16, 17, 18, 19],
Daniele Moro01ca2ab2019-06-25 11:48:48 -07004719 "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 Shum4f51bde2021-06-11 22:48:41 +08004720 "base_default_next" : "node_31",
Yi Tsengbe342052017-11-03 10:21:23 -07004721 "next_tables" : {
Wailok Shum4f51bde2021-06-11 22:48:41 +08004722 "FabricIngress.acl.set_next_id_acl" : "node_31",
4723 "FabricIngress.acl.punt_to_cpu" : "node_31",
4724 "FabricIngress.acl.set_clone_session_id" : "node_31",
4725 "FabricIngress.acl.drop" : "node_31",
4726 "FabricIngress.acl.nop_acl" : "node_31"
Yi Tsengbe342052017-11-03 10:21:23 -07004727 },
4728 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004729 "action_id" : 19,
Yi Tsengbe342052017-11-03 10:21:23 -07004730 "action_const" : true,
4731 "action_data" : [],
4732 "action_entry_const" : true
4733 }
4734 },
4735 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004736 "name" : "FabricIngress.next.xconnect",
Wailok Shum4f51bde2021-06-11 22:48:41 +08004737 "id" : 16,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004738 "source_info" : {
4739 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07004740 "line" : 119,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004741 "column" : 10,
4742 "source_fragment" : "xconnect"
4743 },
4744 "key" : [
4745 {
4746 "match_type" : "exact",
4747 "name" : "ig_port",
4748 "target" : ["standard_metadata", "ingress_port"],
4749 "mask" : null
4750 },
4751 {
4752 "match_type" : "exact",
4753 "name" : "next_id",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004754 "target" : ["scalars", "userMetadata.next_id"],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004755 "mask" : null
4756 }
4757 ],
4758 "match_type" : "exact",
4759 "type" : "simple",
4760 "max_size" : 1024,
4761 "with_counters" : true,
4762 "support_timeout" : false,
4763 "direct_meters" : null,
4764 "action_ids" : [21, 22, 4],
4765 "actions" : ["FabricIngress.next.output_xconnect", "FabricIngress.next.set_next_id_xconnect", "nop"],
4766 "base_default_next" : "FabricIngress.next.hashed",
4767 "next_tables" : {
4768 "FabricIngress.next.output_xconnect" : "FabricIngress.next.hashed",
4769 "FabricIngress.next.set_next_id_xconnect" : "FabricIngress.next.hashed",
4770 "nop" : "FabricIngress.next.hashed"
4771 },
4772 "default_entry" : {
4773 "action_id" : 4,
4774 "action_const" : true,
4775 "action_data" : [],
4776 "action_entry_const" : true
4777 }
4778 },
4779 {
4780 "name" : "FabricIngress.next.hashed",
Wailok Shum4f51bde2021-06-11 22:48:41 +08004781 "id" : 17,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004782 "source_info" : {
4783 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07004784 "line" : 202,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004785 "column" : 10,
4786 "source_fragment" : "hashed"
4787 },
4788 "key" : [
4789 {
4790 "match_type" : "exact",
4791 "name" : "next_id",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004792 "target" : ["scalars", "userMetadata.next_id"],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004793 "mask" : null
4794 }
4795 ],
4796 "match_type" : "exact",
4797 "type" : "indirect_ws",
4798 "action_profile" : "FabricIngress.next.hashed_selector",
4799 "max_size" : 1024,
4800 "with_counters" : true,
4801 "support_timeout" : false,
4802 "direct_meters" : null,
4803 "action_ids" : [23, 24, 25, 5],
4804 "actions" : ["FabricIngress.next.output_hashed", "FabricIngress.next.routing_hashed", "FabricIngress.next.mpls_routing_hashed", "nop"],
4805 "base_default_next" : "FabricIngress.next.multicast",
4806 "next_tables" : {
4807 "FabricIngress.next.output_hashed" : "FabricIngress.next.multicast",
4808 "FabricIngress.next.routing_hashed" : "FabricIngress.next.multicast",
4809 "FabricIngress.next.mpls_routing_hashed" : "FabricIngress.next.multicast",
4810 "nop" : "FabricIngress.next.multicast"
4811 }
4812 },
4813 {
4814 "name" : "FabricIngress.next.multicast",
Wailok Shum4f51bde2021-06-11 22:48:41 +08004815 "id" : 18,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004816 "source_info" : {
4817 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07004818 "line" : 236,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004819 "column" : 10,
4820 "source_fragment" : "multicast"
4821 },
4822 "key" : [
4823 {
4824 "match_type" : "exact",
4825 "name" : "next_id",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004826 "target" : ["scalars", "userMetadata.next_id"],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004827 "mask" : null
4828 }
4829 ],
4830 "match_type" : "exact",
4831 "type" : "simple",
4832 "max_size" : 1024,
4833 "with_counters" : true,
4834 "support_timeout" : false,
4835 "direct_meters" : null,
4836 "action_ids" : [26, 6],
4837 "actions" : ["FabricIngress.next.set_mcast_group_id", "nop"],
4838 "base_default_next" : "FabricIngress.next.next_vlan",
4839 "next_tables" : {
4840 "FabricIngress.next.set_mcast_group_id" : "FabricIngress.next.next_vlan",
4841 "nop" : "FabricIngress.next.next_vlan"
4842 },
4843 "default_entry" : {
4844 "action_id" : 6,
4845 "action_const" : true,
4846 "action_data" : [],
4847 "action_entry_const" : true
4848 }
4849 },
4850 {
4851 "name" : "FabricIngress.next.next_vlan",
Wailok Shum4f51bde2021-06-11 22:48:41 +08004852 "id" : 19,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004853 "source_info" : {
4854 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07004855 "line" : 86,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004856 "column" : 10,
4857 "source_fragment" : "next_vlan"
4858 },
4859 "key" : [
4860 {
4861 "match_type" : "exact",
4862 "name" : "next_id",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004863 "target" : ["scalars", "userMetadata.next_id"],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004864 "mask" : null
4865 }
4866 ],
4867 "match_type" : "exact",
4868 "type" : "simple",
4869 "max_size" : 1024,
4870 "with_counters" : true,
4871 "support_timeout" : false,
4872 "direct_meters" : null,
4873 "action_ids" : [20, 3],
4874 "actions" : ["FabricIngress.next.set_vlan", "nop"],
Wailok Shum4f51bde2021-06-11 22:48:41 +08004875 "base_default_next" : "node_36",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004876 "next_tables" : {
Wailok Shum4f51bde2021-06-11 22:48:41 +08004877 "FabricIngress.next.set_vlan" : "node_36",
4878 "nop" : "node_36"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004879 },
4880 "default_entry" : {
4881 "action_id" : 3,
4882 "action_const" : true,
4883 "action_data" : [],
4884 "action_entry_const" : true
4885 }
4886 },
4887 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004888 "name" : "tbl_port_counter31",
Wailok Shum4f51bde2021-06-11 22:48:41 +08004889 "id" : 20,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004890 "source_info" : {
4891 "filename" : "include/control/port_counter.p4",
4892 "line" : 31,
4893 "column" : 12,
4894 "source_fragment" : "egress_port_counter.count((bit<32>)standard_metadata.egress_spec)"
4895 },
Carmelo Casconea5400af2018-07-17 22:11:54 +02004896 "key" : [],
4897 "match_type" : "exact",
4898 "type" : "simple",
4899 "max_size" : 1024,
4900 "with_counters" : false,
4901 "support_timeout" : false,
4902 "direct_meters" : null,
Wailok Shum4f51bde2021-06-11 22:48:41 +08004903 "action_ids" : [37],
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004904 "actions" : ["port_counter31"],
Wailok Shum4f51bde2021-06-11 22:48:41 +08004905 "base_default_next" : "node_38",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004906 "next_tables" : {
Wailok Shum4f51bde2021-06-11 22:48:41 +08004907 "port_counter31" : "node_38"
Carmelo Casconea5400af2018-07-17 22:11:54 +02004908 },
4909 "default_entry" : {
Wailok Shum4f51bde2021-06-11 22:48:41 +08004910 "action_id" : 37,
Carmelo Casconea5400af2018-07-17 22:11:54 +02004911 "action_const" : true,
4912 "action_data" : [],
4913 "action_entry_const" : true
4914 }
4915 },
4916 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004917 "name" : "tbl_port_counter34",
Wailok Shum4f51bde2021-06-11 22:48:41 +08004918 "id" : 21,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004919 "source_info" : {
4920 "filename" : "include/control/port_counter.p4",
4921 "line" : 34,
4922 "column" : 12,
4923 "source_fragment" : "ingress_port_counter.count((bit<32>)standard_metadata.ingress_port)"
4924 },
Carmelo Casconea5400af2018-07-17 22:11:54 +02004925 "key" : [],
4926 "match_type" : "exact",
4927 "type" : "simple",
4928 "max_size" : 1024,
4929 "with_counters" : false,
4930 "support_timeout" : false,
4931 "direct_meters" : null,
Wailok Shum4f51bde2021-06-11 22:48:41 +08004932 "action_ids" : [38],
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004933 "actions" : ["port_counter34"],
Carmelo Casconea5400af2018-07-17 22:11:54 +02004934 "base_default_next" : null,
Esin Karaman971fb7f2017-12-28 13:44:52 +00004935 "next_tables" : {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004936 "port_counter34" : null
Yi Tseng27b9bc02018-04-12 14:52:40 +08004937 },
4938 "default_entry" : {
Wailok Shum4f51bde2021-06-11 22:48:41 +08004939 "action_id" : 38,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004940 "action_const" : true,
4941 "action_data" : [],
4942 "action_entry_const" : true
4943 }
Yi Tsengbe342052017-11-03 10:21:23 -07004944 }
4945 ],
4946 "action_profiles" : [
4947 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004948 "name" : "FabricIngress.next.hashed_selector",
Yi Tsengbe342052017-11-03 10:21:23 -07004949 "id" : 0,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07004950 "source_info" : {
4951 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07004952 "line" : 183,
Carmelo Cascone70e816b2019-03-19 16:15:47 -07004953 "column" : 57,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004954 "source_fragment" : "hashed_selector"
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07004955 },
Carmelo Cascone70e816b2019-03-19 16:15:47 -07004956 "max_size" : 1024,
Yi Tsengbe342052017-11-03 10:21:23 -07004957 "selector" : {
4958 "algo" : "crc16",
4959 "input" : [
4960 {
4961 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004962 "value" : ["scalars", "userMetadata.ipv4_src_addr"]
Yi Tsengbe342052017-11-03 10:21:23 -07004963 },
4964 {
4965 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004966 "value" : ["scalars", "userMetadata.ipv4_dst_addr"]
Yi Tsengbe342052017-11-03 10:21:23 -07004967 },
4968 {
4969 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004970 "value" : ["scalars", "userMetadata.ip_proto"]
Yi Tsengbe342052017-11-03 10:21:23 -07004971 },
4972 {
4973 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004974 "value" : ["scalars", "userMetadata.l4_sport"]
Yi Tsengbe342052017-11-03 10:21:23 -07004975 },
4976 {
4977 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02004978 "value" : ["scalars", "userMetadata.l4_dport"]
Yi Tsengbe342052017-11-03 10:21:23 -07004979 }
4980 ]
4981 }
4982 }
4983 ],
4984 "conditionals" : [
4985 {
4986 "name" : "node_2",
4987 "id" : 0,
4988 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004989 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004990 "line" : 24,
Yi Tsengbe342052017-11-03 10:21:23 -07004991 "column" : 12,
4992 "source_fragment" : "hdr.packet_out.isValid()"
4993 },
4994 "expression" : {
4995 "type" : "expression",
4996 "value" : {
Yi Tsengbd46d052018-01-22 17:18:16 -08004997 "op" : "d2b",
4998 "left" : null,
4999 "right" : {
Yi Tsengbe342052017-11-03 10:21:23 -07005000 "type" : "field",
5001 "value" : ["packet_out", "$valid$"]
Yi Tsengbe342052017-11-03 10:21:23 -07005002 }
5003 }
5004 },
Carmelo Cascone2388cc12021-05-26 19:30:30 +02005005 "true_next" : "tbl_packetio25",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005006 "false_next" : "node_4"
Yi Tsengbe342052017-11-03 10:21:23 -07005007 },
5008 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005009 "name" : "node_4",
Yi Tsengbe342052017-11-03 10:21:23 -07005010 "id" : 1,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005011 "source_info" : {
5012 "filename" : "include/control/filtering.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07005013 "line" : 110,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005014 "column" : 12,
5015 "source_fragment" : "hdr.vlan_tag.isValid()"
5016 },
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005017 "expression" : {
5018 "type" : "expression",
5019 "value" : {
5020 "op" : "d2b",
5021 "left" : null,
5022 "right" : {
5023 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005024 "value" : ["vlan_tag", "$valid$"]
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005025 }
5026 }
5027 },
Carmelo Cascone2388cc12021-05-26 19:30:30 +02005028 "true_next" : "tbl_filtering111",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005029 "false_next" : "node_6"
5030 },
5031 {
5032 "name" : "node_6",
5033 "id" : 2,
5034 "source_info" : {
5035 "filename" : "include/control/filtering.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07005036 "line" : 122,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005037 "column" : 12,
5038 "source_fragment" : "!hdr.mpls.isValid()"
5039 },
5040 "expression" : {
5041 "type" : "expression",
5042 "value" : {
5043 "op" : "not",
5044 "left" : null,
5045 "right" : {
5046 "type" : "expression",
5047 "value" : {
5048 "op" : "d2b",
5049 "left" : null,
5050 "right" : {
5051 "type" : "field",
5052 "value" : ["mpls", "$valid$"]
5053 }
5054 }
5055 }
5056 }
5057 },
Carmelo Cascone2388cc12021-05-26 19:30:30 +02005058 "true_next" : "tbl_filtering127",
Daniele Moro5a2de712019-09-24 14:34:07 -07005059 "false_next" : "FabricIngress.filtering.ingress_port_vlan"
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005060 },
5061 {
5062 "name" : "node_10",
Daniele Moro5a2de712019-09-24 14:34:07 -07005063 "id" : 3,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005064 "source_info" : {
5065 "filename" : "fabric.p4",
Robert MacDavidde12b982020-07-15 18:38:59 -07005066 "line" : 69,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005067 "column" : 12,
Carmelo Cascone2388cc12021-05-26 19:30:30 +02005068 "source_fragment" : "fabric_metadata.skip_forwarding"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005069 },
5070 "expression" : {
5071 "type" : "expression",
5072 "value" : {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02005073 "op" : "not",
5074 "left" : null,
5075 "right" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005076 "type" : "expression",
5077 "value" : {
5078 "op" : "d2b",
5079 "left" : null,
5080 "right" : {
5081 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02005082 "value" : ["scalars", "userMetadata.skip_forwarding"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005083 }
5084 }
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005085 }
5086 }
5087 },
Daniele Moro5a2de712019-09-24 14:34:07 -07005088 "true_next" : "node_11",
Wailok Shum4f51bde2021-06-11 22:48:41 +08005089 "false_next" : "tbl_acl27"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005090 },
5091 {
Daniele Moro5a2de712019-09-24 14:34:07 -07005092 "name" : "node_11",
5093 "id" : 4,
Yi Tsengbe342052017-11-03 10:21:23 -07005094 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005095 "filename" : "include/control/forwarding.p4",
Daniele Moro5a2de712019-09-24 14:34:07 -07005096 "line" : 150,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005097 "column" : 12,
Yi Tsengbe342052017-11-03 10:21:23 -07005098 "source_fragment" : "fabric_metadata.fwd_type == FWD_BRIDGING"
5099 },
5100 "expression" : {
5101 "type" : "expression",
5102 "value" : {
5103 "op" : "==",
5104 "left" : {
5105 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02005106 "value" : ["scalars", "userMetadata.fwd_type"]
Yi Tsengbe342052017-11-03 10:21:23 -07005107 },
5108 "right" : {
5109 "type" : "hexstr",
5110 "value" : "0x00"
5111 }
5112 }
5113 },
Yi Tseng27b9bc02018-04-12 14:52:40 +08005114 "true_next" : "FabricIngress.forwarding.bridging",
Daniele Moro5a2de712019-09-24 14:34:07 -07005115 "false_next" : "node_13"
Yi Tsengbe342052017-11-03 10:21:23 -07005116 },
5117 {
Daniele Moro5a2de712019-09-24 14:34:07 -07005118 "name" : "node_13",
5119 "id" : 5,
Yi Tsengbe342052017-11-03 10:21:23 -07005120 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005121 "filename" : "include/control/forwarding.p4",
Daniele Moro5a2de712019-09-24 14:34:07 -07005122 "line" : 151,
Yi Tsengbe342052017-11-03 10:21:23 -07005123 "column" : 17,
5124 "source_fragment" : "fabric_metadata.fwd_type == FWD_MPLS"
5125 },
5126 "expression" : {
5127 "type" : "expression",
5128 "value" : {
5129 "op" : "==",
5130 "left" : {
5131 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02005132 "value" : ["scalars", "userMetadata.fwd_type"]
Yi Tsengbe342052017-11-03 10:21:23 -07005133 },
5134 "right" : {
5135 "type" : "hexstr",
5136 "value" : "0x01"
5137 }
5138 }
5139 },
Yi Tseng27b9bc02018-04-12 14:52:40 +08005140 "true_next" : "FabricIngress.forwarding.mpls",
Daniele Moro5a2de712019-09-24 14:34:07 -07005141 "false_next" : "node_15"
Yi Tsengbe342052017-11-03 10:21:23 -07005142 },
5143 {
Daniele Moro5a2de712019-09-24 14:34:07 -07005144 "name" : "node_15",
5145 "id" : 6,
Yi Tsengbe342052017-11-03 10:21:23 -07005146 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005147 "filename" : "include/control/forwarding.p4",
Daniele Moro5a2de712019-09-24 14:34:07 -07005148 "line" : 152,
Yi Tsengbe342052017-11-03 10:21:23 -07005149 "column" : 17,
5150 "source_fragment" : "fabric_metadata.fwd_type == FWD_IPV4_UNICAST"
5151 },
5152 "expression" : {
5153 "type" : "expression",
5154 "value" : {
5155 "op" : "==",
5156 "left" : {
5157 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02005158 "value" : ["scalars", "userMetadata.fwd_type"]
Yi Tsengbe342052017-11-03 10:21:23 -07005159 },
5160 "right" : {
5161 "type" : "hexstr",
5162 "value" : "0x02"
5163 }
5164 }
5165 },
Charles Chan384aea22018-08-23 22:08:02 -07005166 "true_next" : "FabricIngress.forwarding.routing_v4",
Wailok Shum4f51bde2021-06-11 22:48:41 +08005167 "false_next" : "tbl_acl27"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005168 },
5169 {
Daniele Moro5a2de712019-09-24 14:34:07 -07005170 "name" : "node_18",
5171 "id" : 7,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005172 "source_info" : {
Wailok Shum4f51bde2021-06-11 22:48:41 +08005173 "filename" : "include/control/acl.p4",
5174 "line" : 96,
5175 "column" : 12,
5176 "source_fragment" : "hdr.gtpu.isValid() && hdr.inner_ipv4.isValid()"
5177 },
5178 "expression" : {
5179 "type" : "expression",
5180 "value" : {
5181 "op" : "and",
5182 "left" : {
5183 "type" : "expression",
5184 "value" : {
5185 "op" : "d2b",
5186 "left" : null,
5187 "right" : {
5188 "type" : "field",
5189 "value" : ["gtpu", "$valid$"]
5190 }
5191 }
5192 },
5193 "right" : {
5194 "type" : "expression",
5195 "value" : {
5196 "op" : "d2b",
5197 "left" : null,
5198 "right" : {
5199 "type" : "field",
5200 "value" : ["inner_ipv4", "$valid$"]
5201 }
5202 }
5203 }
5204 }
5205 },
5206 "true_next" : "tbl_acl97",
5207 "false_next" : "node_24"
5208 },
5209 {
5210 "name" : "node_20",
5211 "id" : 8,
5212 "source_info" : {
5213 "filename" : "include/control/acl.p4",
5214 "line" : 100,
5215 "column" : 16,
5216 "source_fragment" : "hdr.inner_tcp.isValid()"
5217 },
5218 "expression" : {
5219 "type" : "expression",
5220 "value" : {
5221 "op" : "d2b",
5222 "left" : null,
5223 "right" : {
5224 "type" : "field",
5225 "value" : ["inner_tcp", "$valid$"]
5226 }
5227 }
5228 },
5229 "true_next" : "tbl_acl101",
5230 "false_next" : "node_22"
5231 },
5232 {
5233 "name" : "node_22",
5234 "id" : 9,
5235 "source_info" : {
5236 "filename" : "include/control/acl.p4",
5237 "line" : 103,
5238 "column" : 23,
5239 "source_fragment" : "hdr.inner_udp.isValid()"
5240 },
5241 "expression" : {
5242 "type" : "expression",
5243 "value" : {
5244 "op" : "d2b",
5245 "left" : null,
5246 "right" : {
5247 "type" : "field",
5248 "value" : ["inner_udp", "$valid$"]
5249 }
5250 }
5251 },
5252 "true_next" : "tbl_acl104",
5253 "false_next" : "FabricIngress.acl.acl"
5254 },
5255 {
5256 "name" : "node_24",
5257 "id" : 10,
5258 "source_info" : {
5259 "filename" : "include/control/acl.p4",
5260 "line" : 107,
5261 "column" : 19,
5262 "source_fragment" : "hdr.ipv4.isValid()"
5263 },
5264 "expression" : {
5265 "type" : "expression",
5266 "value" : {
5267 "op" : "d2b",
5268 "left" : null,
5269 "right" : {
5270 "type" : "field",
5271 "value" : ["ipv4", "$valid$"]
5272 }
5273 }
5274 },
5275 "true_next" : "tbl_acl108",
5276 "false_next" : "FabricIngress.acl.acl"
5277 },
5278 {
5279 "name" : "node_26",
5280 "id" : 11,
5281 "source_info" : {
5282 "filename" : "include/control/acl.p4",
5283 "line" : 111,
5284 "column" : 16,
5285 "source_fragment" : "hdr.tcp.isValid()"
5286 },
5287 "expression" : {
5288 "type" : "expression",
5289 "value" : {
5290 "op" : "d2b",
5291 "left" : null,
5292 "right" : {
5293 "type" : "field",
5294 "value" : ["tcp", "$valid$"]
5295 }
5296 }
5297 },
5298 "true_next" : "tbl_acl112",
5299 "false_next" : "node_28"
5300 },
5301 {
5302 "name" : "node_28",
5303 "id" : 12,
5304 "source_info" : {
5305 "filename" : "include/control/acl.p4",
5306 "line" : 114,
5307 "column" : 23,
5308 "source_fragment" : "hdr.udp.isValid()"
5309 },
5310 "expression" : {
5311 "type" : "expression",
5312 "value" : {
5313 "op" : "d2b",
5314 "left" : null,
5315 "right" : {
5316 "type" : "field",
5317 "value" : ["udp", "$valid$"]
5318 }
5319 }
5320 },
5321 "true_next" : "tbl_acl115",
5322 "false_next" : "FabricIngress.acl.acl"
5323 },
5324 {
5325 "name" : "node_31",
5326 "id" : 13,
5327 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005328 "filename" : "fabric.p4",
Robert MacDavidde12b982020-07-15 18:38:59 -07005329 "line" : 73,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005330 "column" : 12,
Carmelo Cascone2388cc12021-05-26 19:30:30 +02005331 "source_fragment" : "fabric_metadata.skip_next"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005332 },
5333 "expression" : {
5334 "type" : "expression",
5335 "value" : {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02005336 "op" : "not",
5337 "left" : null,
5338 "right" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005339 "type" : "expression",
5340 "value" : {
5341 "op" : "d2b",
5342 "left" : null,
5343 "right" : {
5344 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02005345 "value" : ["scalars", "userMetadata.skip_next"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005346 }
5347 }
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005348 }
5349 }
5350 },
5351 "false_next" : null,
5352 "true_next" : "FabricIngress.next.xconnect"
Yi Tseng27b9bc02018-04-12 14:52:40 +08005353 },
5354 {
Wailok Shum4f51bde2021-06-11 22:48:41 +08005355 "name" : "node_36",
5356 "id" : 14,
Yi Tseng27b9bc02018-04-12 14:52:40 +08005357 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005358 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005359 "line" : 30,
Yi Tsengbe342052017-11-03 10:21:23 -07005360 "column" : 12,
5361 "source_fragment" : "standard_metadata.egress_spec < 511"
5362 },
5363 "expression" : {
5364 "type" : "expression",
5365 "value" : {
5366 "op" : "<",
5367 "left" : {
5368 "type" : "field",
5369 "value" : ["standard_metadata", "egress_spec"]
5370 },
5371 "right" : {
5372 "type" : "hexstr",
5373 "value" : "0x01ff"
5374 }
5375 }
5376 },
Carmelo Cascone2388cc12021-05-26 19:30:30 +02005377 "true_next" : "tbl_port_counter31",
Wailok Shum4f51bde2021-06-11 22:48:41 +08005378 "false_next" : "node_38"
Yi Tsengbe342052017-11-03 10:21:23 -07005379 },
5380 {
Wailok Shum4f51bde2021-06-11 22:48:41 +08005381 "name" : "node_38",
5382 "id" : 15,
Yi Tsengbe342052017-11-03 10:21:23 -07005383 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005384 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005385 "line" : 33,
Yi Tsengbe342052017-11-03 10:21:23 -07005386 "column" : 12,
5387 "source_fragment" : "standard_metadata.ingress_port < 511"
5388 },
5389 "expression" : {
5390 "type" : "expression",
5391 "value" : {
5392 "op" : "<",
5393 "left" : {
5394 "type" : "field",
5395 "value" : ["standard_metadata", "ingress_port"]
5396 },
5397 "right" : {
5398 "type" : "hexstr",
5399 "value" : "0x01ff"
5400 }
5401 }
5402 },
Yi Tseng3a5731e2018-01-22 11:38:58 -08005403 "false_next" : null,
Carmelo Cascone2388cc12021-05-26 19:30:30 +02005404 "true_next" : "tbl_port_counter34"
Yi Tseng3a5731e2018-01-22 11:38:58 -08005405 }
5406 ]
5407 },
5408 {
5409 "name" : "egress",
5410 "id" : 1,
5411 "source_info" : {
5412 "filename" : "fabric.p4",
Robert MacDavidde12b982020-07-15 18:38:59 -07005413 "line" : 91,
Yi Tseng3a5731e2018-01-22 11:38:58 -08005414 "column" : 8,
5415 "source_fragment" : "FabricEgress"
5416 },
Wailok Shum4f51bde2021-06-11 22:48:41 +08005417 "init_table" : "node_42",
Yi Tseng3a5731e2018-01-22 11:38:58 -08005418 "tables" : [
5419 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02005420 "name" : "tbl_packetio41",
Wailok Shum4f51bde2021-06-11 22:48:41 +08005421 "id" : 22,
Carmelo Cascone3032b872019-04-13 01:23:54 -07005422 "source_info" : {
5423 "filename" : "include/control/packetio.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07005424 "line" : 41,
5425 "column" : 12,
5426 "source_fragment" : "exit"
Carmelo Cascone3032b872019-04-13 01:23:54 -07005427 },
Carmelo Casconea5400af2018-07-17 22:11:54 +02005428 "key" : [],
5429 "match_type" : "exact",
5430 "type" : "simple",
5431 "max_size" : 1024,
5432 "with_counters" : false,
5433 "support_timeout" : false,
5434 "direct_meters" : null,
Wailok Shum4f51bde2021-06-11 22:48:41 +08005435 "action_ids" : [44],
Carmelo Cascone2388cc12021-05-26 19:30:30 +02005436 "actions" : ["packetio41"],
Wailok Shum4f51bde2021-06-11 22:48:41 +08005437 "base_default_next" : "node_44",
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07005438 "next_tables" : {
Wailok Shum4f51bde2021-06-11 22:48:41 +08005439 "packetio41" : "node_44"
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07005440 },
5441 "default_entry" : {
Wailok Shum4f51bde2021-06-11 22:48:41 +08005442 "action_id" : 44,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07005443 "action_const" : true,
5444 "action_data" : [],
5445 "action_entry_const" : true
5446 }
5447 },
5448 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02005449 "name" : "tbl_packetio44",
Wailok Shum4f51bde2021-06-11 22:48:41 +08005450 "id" : 23,
Carmelo Cascone3032b872019-04-13 01:23:54 -07005451 "source_info" : {
5452 "filename" : "include/control/packetio.p4",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07005453 "line" : 44,
5454 "column" : 12,
5455 "source_fragment" : "hdr.packet_in.setValid(); ..."
Carmelo Cascone3032b872019-04-13 01:23:54 -07005456 },
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07005457 "key" : [],
5458 "match_type" : "exact",
5459 "type" : "simple",
5460 "max_size" : 1024,
5461 "with_counters" : false,
5462 "support_timeout" : false,
5463 "direct_meters" : null,
Wailok Shum4f51bde2021-06-11 22:48:41 +08005464 "action_ids" : [45],
Carmelo Cascone2388cc12021-05-26 19:30:30 +02005465 "actions" : ["packetio44"],
Wailok Shum4f51bde2021-06-11 22:48:41 +08005466 "base_default_next" : "node_46",
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07005467 "next_tables" : {
Wailok Shum4f51bde2021-06-11 22:48:41 +08005468 "packetio44" : "node_46"
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07005469 },
5470 "default_entry" : {
Wailok Shum4f51bde2021-06-11 22:48:41 +08005471 "action_id" : 45,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07005472 "action_const" : true,
5473 "action_data" : [],
5474 "action_entry_const" : true
5475 }
5476 },
5477 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02005478 "name" : "tbl_next349",
Wailok Shum4f51bde2021-06-11 22:48:41 +08005479 "id" : 24,
Carmelo Cascone3032b872019-04-13 01:23:54 -07005480 "source_info" : {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07005481 "filename" : "include/control/next.p4",
pierventre48e78822020-12-15 17:34:54 +01005482 "line" : 349,
Carmelo Cascone3032b872019-04-13 01:23:54 -07005483 "column" : 12,
Daniele Moro01ca2ab2019-06-25 11:48:48 -07005484 "source_fragment" : "mark_to_drop(standard_metadata)"
Carmelo Cascone3032b872019-04-13 01:23:54 -07005485 },
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07005486 "key" : [],
5487 "match_type" : "exact",
5488 "type" : "simple",
5489 "max_size" : 1024,
5490 "with_counters" : false,
5491 "support_timeout" : false,
5492 "direct_meters" : null,
Wailok Shum4f51bde2021-06-11 22:48:41 +08005493 "action_ids" : [46],
Carmelo Cascone2388cc12021-05-26 19:30:30 +02005494 "actions" : ["next349"],
Wailok Shum4f51bde2021-06-11 22:48:41 +08005495 "base_default_next" : "node_48",
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07005496 "next_tables" : {
Wailok Shum4f51bde2021-06-11 22:48:41 +08005497 "next349" : "node_48"
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07005498 },
5499 "default_entry" : {
Wailok Shum4f51bde2021-06-11 22:48:41 +08005500 "action_id" : 46,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005501 "action_const" : true,
5502 "action_data" : [],
5503 "action_entry_const" : true
5504 }
5505 },
5506 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07005507 "name" : "tbl_egress_next_pop_mpls_if_present",
Wailok Shum4f51bde2021-06-11 22:48:41 +08005508 "id" : 25,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07005509 "source_info" : {
5510 "filename" : "include/control/next.p4",
pierventre48e78822020-12-15 17:34:54 +01005511 "line" : 353,
Carmelo Cascone3032b872019-04-13 01:23:54 -07005512 "column" : 36,
5513 "source_fragment" : "pop_mpls_if_present()"
5514 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005515 "key" : [],
5516 "match_type" : "exact",
5517 "type" : "simple",
5518 "max_size" : 1024,
5519 "with_counters" : false,
5520 "support_timeout" : false,
5521 "direct_meters" : null,
Wailok Shum4f51bde2021-06-11 22:48:41 +08005522 "action_ids" : [39],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005523 "actions" : ["FabricEgress.egress_next.pop_mpls_if_present"],
5524 "base_default_next" : "FabricEgress.egress_next.egress_vlan",
5525 "next_tables" : {
5526 "FabricEgress.egress_next.pop_mpls_if_present" : "FabricEgress.egress_next.egress_vlan"
5527 },
5528 "default_entry" : {
Wailok Shum4f51bde2021-06-11 22:48:41 +08005529 "action_id" : 39,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005530 "action_const" : true,
5531 "action_data" : [],
5532 "action_entry_const" : true
5533 }
5534 },
5535 {
5536 "name" : "tbl_egress_next_set_mpls",
Wailok Shum4f51bde2021-06-11 22:48:41 +08005537 "id" : 26,
Carmelo Cascone3032b872019-04-13 01:23:54 -07005538 "source_info" : {
5539 "filename" : "include/control/next.p4",
pierventre48e78822020-12-15 17:34:54 +01005540 "line" : 355,
Carmelo Cascone3032b872019-04-13 01:23:54 -07005541 "column" : 12,
5542 "source_fragment" : "set_mpls()"
5543 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005544 "key" : [],
5545 "match_type" : "exact",
5546 "type" : "simple",
5547 "max_size" : 1024,
5548 "with_counters" : false,
5549 "support_timeout" : false,
5550 "direct_meters" : null,
Wailok Shum4f51bde2021-06-11 22:48:41 +08005551 "action_ids" : [40],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005552 "actions" : ["FabricEgress.egress_next.set_mpls"],
5553 "base_default_next" : "FabricEgress.egress_next.egress_vlan",
5554 "next_tables" : {
5555 "FabricEgress.egress_next.set_mpls" : "FabricEgress.egress_next.egress_vlan"
5556 },
5557 "default_entry" : {
Wailok Shum4f51bde2021-06-11 22:48:41 +08005558 "action_id" : 40,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07005559 "action_const" : true,
5560 "action_data" : [],
5561 "action_entry_const" : true
5562 }
5563 },
5564 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005565 "name" : "FabricEgress.egress_next.egress_vlan",
Wailok Shum4f51bde2021-06-11 22:48:41 +08005566 "id" : 27,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005567 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005568 "filename" : "include/control/next.p4",
pierventre48e78822020-12-15 17:34:54 +01005569 "line" : 331,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005570 "column" : 10,
5571 "source_fragment" : "egress_vlan"
5572 },
5573 "key" : [
5574 {
5575 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005576 "name" : "vlan_id",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02005577 "target" : ["scalars", "userMetadata.vlan_id"],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005578 "mask" : null
5579 },
5580 {
5581 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005582 "name" : "eg_port",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005583 "target" : ["standard_metadata", "egress_port"],
5584 "mask" : null
5585 }
5586 ],
5587 "match_type" : "exact",
5588 "type" : "simple",
5589 "max_size" : 1024,
Yi Tseng47eac892018-07-11 02:17:04 +08005590 "with_counters" : true,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005591 "support_timeout" : false,
5592 "direct_meters" : null,
Wailok Shum4f51bde2021-06-11 22:48:41 +08005593 "action_ids" : [41, 42, 43],
pierventre48e78822020-12-15 17:34:54 +01005594 "actions" : ["FabricEgress.egress_next.push_vlan", "FabricEgress.egress_next.pop_vlan", "FabricEgress.egress_next.drop"],
Wailok Shum4f51bde2021-06-11 22:48:41 +08005595 "base_default_next" : "node_53",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005596 "next_tables" : {
Wailok Shum4f51bde2021-06-11 22:48:41 +08005597 "FabricEgress.egress_next.push_vlan" : "node_53",
5598 "FabricEgress.egress_next.pop_vlan" : "node_53",
5599 "FabricEgress.egress_next.drop" : "node_53"
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005600 },
5601 "default_entry" : {
Wailok Shum4f51bde2021-06-11 22:48:41 +08005602 "action_id" : 43,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005603 "action_const" : true,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08005604 "action_data" : [],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005605 "action_entry_const" : true
5606 }
5607 },
5608 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02005609 "name" : "tbl_next375",
Wailok Shum4f51bde2021-06-11 22:48:41 +08005610 "id" : 28,
pierventre48e78822020-12-15 17:34:54 +01005611 "source_info" : {
5612 "filename" : "include/control/next.p4",
5613 "line" : 375,
5614 "column" : 25,
5615 "source_fragment" : "="
Daniele Moro01ca2ab2019-06-25 11:48:48 -07005616 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005617 "key" : [],
5618 "match_type" : "exact",
5619 "type" : "simple",
5620 "max_size" : 1024,
5621 "with_counters" : false,
5622 "support_timeout" : false,
5623 "direct_meters" : null,
Wailok Shum4f51bde2021-06-11 22:48:41 +08005624 "action_ids" : [48],
Carmelo Cascone2388cc12021-05-26 19:30:30 +02005625 "actions" : ["next375"],
Wailok Shum4f51bde2021-06-11 22:48:41 +08005626 "base_default_next" : "node_55",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005627 "next_tables" : {
Wailok Shum4f51bde2021-06-11 22:48:41 +08005628 "next375" : "node_55"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005629 },
5630 "default_entry" : {
Wailok Shum4f51bde2021-06-11 22:48:41 +08005631 "action_id" : 48,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005632 "action_const" : true,
5633 "action_data" : [],
5634 "action_entry_const" : true
5635 }
5636 },
5637 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02005638 "name" : "tbl_next376",
Wailok Shum4f51bde2021-06-11 22:48:41 +08005639 "id" : 29,
Carmelo Cascone3032b872019-04-13 01:23:54 -07005640 "source_info" : {
5641 "filename" : "include/control/next.p4",
pierventre48e78822020-12-15 17:34:54 +01005642 "line" : 376,
5643 "column" : 35,
5644 "source_fragment" : "mark_to_drop(standard_metadata)"
Carmelo Cascone3032b872019-04-13 01:23:54 -07005645 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005646 "key" : [],
5647 "match_type" : "exact",
5648 "type" : "simple",
5649 "max_size" : 1024,
5650 "with_counters" : false,
5651 "support_timeout" : false,
5652 "direct_meters" : null,
Wailok Shum4f51bde2021-06-11 22:48:41 +08005653 "action_ids" : [47],
Carmelo Cascone2388cc12021-05-26 19:30:30 +02005654 "actions" : ["next376"],
pierventre48e78822020-12-15 17:34:54 +01005655 "base_default_next" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005656 "next_tables" : {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02005657 "next376" : null
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005658 },
5659 "default_entry" : {
Wailok Shum4f51bde2021-06-11 22:48:41 +08005660 "action_id" : 47,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005661 "action_const" : true,
5662 "action_data" : [],
5663 "action_entry_const" : true
5664 }
5665 },
5666 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02005667 "name" : "tbl_next379",
Wailok Shum4f51bde2021-06-11 22:48:41 +08005668 "id" : 30,
Carmelo Cascone3032b872019-04-13 01:23:54 -07005669 "source_info" : {
5670 "filename" : "include/control/next.p4",
pierventre48e78822020-12-15 17:34:54 +01005671 "line" : 379,
5672 "column" : 29,
Carmelo Cascone3032b872019-04-13 01:23:54 -07005673 "source_fragment" : "="
5674 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005675 "key" : [],
5676 "match_type" : "exact",
5677 "type" : "simple",
5678 "max_size" : 1024,
5679 "with_counters" : false,
5680 "support_timeout" : false,
5681 "direct_meters" : null,
Wailok Shum4f51bde2021-06-11 22:48:41 +08005682 "action_ids" : [50],
Carmelo Cascone2388cc12021-05-26 19:30:30 +02005683 "actions" : ["next379"],
Wailok Shum4f51bde2021-06-11 22:48:41 +08005684 "base_default_next" : "node_59",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07005685 "next_tables" : {
Wailok Shum4f51bde2021-06-11 22:48:41 +08005686 "next379" : "node_59"
Carmelo Cascone9b607da2019-05-08 14:03:01 -07005687 },
5688 "default_entry" : {
Wailok Shum4f51bde2021-06-11 22:48:41 +08005689 "action_id" : 50,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07005690 "action_const" : true,
5691 "action_data" : [],
5692 "action_entry_const" : true
5693 }
5694 },
5695 {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02005696 "name" : "tbl_next380",
Wailok Shum4f51bde2021-06-11 22:48:41 +08005697 "id" : 31,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07005698 "source_info" : {
5699 "filename" : "include/control/next.p4",
pierventre48e78822020-12-15 17:34:54 +01005700 "line" : 380,
5701 "column" : 39,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07005702 "source_fragment" : "mark_to_drop(standard_metadata)"
5703 },
5704 "key" : [],
5705 "match_type" : "exact",
5706 "type" : "simple",
5707 "max_size" : 1024,
5708 "with_counters" : false,
5709 "support_timeout" : false,
5710 "direct_meters" : null,
Wailok Shum4f51bde2021-06-11 22:48:41 +08005711 "action_ids" : [49],
Carmelo Cascone2388cc12021-05-26 19:30:30 +02005712 "actions" : ["next380"],
Carmelo Cascone9b607da2019-05-08 14:03:01 -07005713 "base_default_next" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005714 "next_tables" : {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02005715 "next380" : null
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005716 },
5717 "default_entry" : {
Wailok Shum4f51bde2021-06-11 22:48:41 +08005718 "action_id" : 49,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005719 "action_const" : true,
5720 "action_data" : [],
5721 "action_entry_const" : true
5722 }
Yi Tseng3a5731e2018-01-22 11:38:58 -08005723 }
5724 ],
5725 "action_profiles" : [],
5726 "conditionals" : [
Yi Tseng1d842672017-11-28 16:06:52 -08005727 {
Wailok Shum4f51bde2021-06-11 22:48:41 +08005728 "name" : "node_42",
5729 "id" : 16,
Carmelo Casconea5400af2018-07-17 22:11:54 +02005730 "source_info" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07005731 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005732 "line" : 39,
Carmelo Casconea5400af2018-07-17 22:11:54 +02005733 "column" : 12,
Carmelo Cascone2388cc12021-05-26 19:30:30 +02005734 "source_fragment" : "fabric_metadata.is_controller_packet_out"
Carmelo Casconea5400af2018-07-17 22:11:54 +02005735 },
5736 "expression" : {
5737 "type" : "expression",
5738 "value" : {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02005739 "op" : "d2b",
5740 "left" : null,
Carmelo Casconea5400af2018-07-17 22:11:54 +02005741 "right" : {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02005742 "type" : "field",
5743 "value" : ["scalars", "userMetadata.is_controller_packet_out"]
Carmelo Casconea5400af2018-07-17 22:11:54 +02005744 }
5745 }
5746 },
Carmelo Cascone2388cc12021-05-26 19:30:30 +02005747 "true_next" : "tbl_packetio41",
Wailok Shum4f51bde2021-06-11 22:48:41 +08005748 "false_next" : "node_44"
Carmelo Casconea5400af2018-07-17 22:11:54 +02005749 },
5750 {
Wailok Shum4f51bde2021-06-11 22:48:41 +08005751 "name" : "node_44",
5752 "id" : 17,
Yi Tsengbe342052017-11-03 10:21:23 -07005753 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02005754 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005755 "line" : 43,
Yi Tsengbe342052017-11-03 10:21:23 -07005756 "column" : 12,
Carmelo Casconeb531b682018-01-30 17:55:56 -08005757 "source_fragment" : "standard_metadata.egress_port == 255"
Yi Tsengbe342052017-11-03 10:21:23 -07005758 },
5759 "expression" : {
5760 "type" : "expression",
5761 "value" : {
5762 "op" : "==",
5763 "left" : {
5764 "type" : "field",
5765 "value" : ["standard_metadata", "egress_port"]
5766 },
5767 "right" : {
5768 "type" : "hexstr",
5769 "value" : "0x00ff"
5770 }
5771 }
5772 },
Carmelo Cascone2388cc12021-05-26 19:30:30 +02005773 "true_next" : "tbl_packetio44",
Wailok Shum4f51bde2021-06-11 22:48:41 +08005774 "false_next" : "node_46"
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07005775 },
5776 {
Wailok Shum4f51bde2021-06-11 22:48:41 +08005777 "name" : "node_46",
5778 "id" : 18,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07005779 "source_info" : {
5780 "filename" : "include/control/next.p4",
pierventre48e78822020-12-15 17:34:54 +01005781 "line" : 347,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07005782 "column" : 12,
5783 "source_fragment" : "fabric_metadata.is_multicast == true ..."
5784 },
5785 "expression" : {
5786 "type" : "expression",
5787 "value" : {
5788 "op" : "and",
5789 "left" : {
5790 "type" : "expression",
5791 "value" : {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02005792 "op" : "d2b",
5793 "left" : null,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07005794 "right" : {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02005795 "type" : "field",
5796 "value" : ["scalars", "userMetadata.is_multicast"]
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07005797 }
5798 }
5799 },
5800 "right" : {
5801 "type" : "expression",
5802 "value" : {
5803 "op" : "==",
5804 "left" : {
5805 "type" : "field",
5806 "value" : ["standard_metadata", "ingress_port"]
5807 },
5808 "right" : {
5809 "type" : "field",
5810 "value" : ["standard_metadata", "egress_port"]
5811 }
5812 }
5813 }
5814 }
5815 },
Carmelo Cascone2388cc12021-05-26 19:30:30 +02005816 "true_next" : "tbl_next349",
Wailok Shum4f51bde2021-06-11 22:48:41 +08005817 "false_next" : "node_48"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005818 },
5819 {
Wailok Shum4f51bde2021-06-11 22:48:41 +08005820 "name" : "node_48",
5821 "id" : 19,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005822 "source_info" : {
5823 "filename" : "include/control/next.p4",
pierventre48e78822020-12-15 17:34:54 +01005824 "line" : 352,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005825 "column" : 12,
5826 "source_fragment" : "fabric_metadata.mpls_label == 0"
5827 },
5828 "expression" : {
5829 "type" : "expression",
5830 "value" : {
5831 "op" : "==",
5832 "left" : {
5833 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02005834 "value" : ["scalars", "userMetadata.mpls_label"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005835 },
5836 "right" : {
5837 "type" : "hexstr",
5838 "value" : "0x000000"
5839 }
5840 }
5841 },
Wailok Shum4f51bde2021-06-11 22:48:41 +08005842 "true_next" : "node_49",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005843 "false_next" : "tbl_egress_next_set_mpls"
5844 },
5845 {
Wailok Shum4f51bde2021-06-11 22:48:41 +08005846 "name" : "node_49",
5847 "id" : 20,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005848 "source_info" : {
5849 "filename" : "include/control/next.p4",
pierventre48e78822020-12-15 17:34:54 +01005850 "line" : 353,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005851 "column" : 16,
5852 "source_fragment" : "hdr.mpls.isValid()"
5853 },
5854 "expression" : {
5855 "type" : "expression",
5856 "value" : {
5857 "op" : "d2b",
5858 "left" : null,
5859 "right" : {
5860 "type" : "field",
5861 "value" : ["mpls", "$valid$"]
5862 }
5863 }
5864 },
5865 "true_next" : "tbl_egress_next_pop_mpls_if_present",
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07005866 "false_next" : "FabricEgress.egress_next.egress_vlan"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005867 },
5868 {
Wailok Shum4f51bde2021-06-11 22:48:41 +08005869 "name" : "node_53",
5870 "id" : 21,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005871 "source_info" : {
5872 "filename" : "include/control/next.p4",
pierventre48e78822020-12-15 17:34:54 +01005873 "line" : 374,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005874 "column" : 12,
5875 "source_fragment" : "hdr.mpls.isValid()"
5876 },
5877 "expression" : {
5878 "type" : "expression",
5879 "value" : {
5880 "op" : "d2b",
5881 "left" : null,
5882 "right" : {
5883 "type" : "field",
5884 "value" : ["mpls", "$valid$"]
5885 }
5886 }
5887 },
Carmelo Cascone2388cc12021-05-26 19:30:30 +02005888 "true_next" : "tbl_next375",
Wailok Shum4f51bde2021-06-11 22:48:41 +08005889 "false_next" : "node_57"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005890 },
5891 {
Wailok Shum4f51bde2021-06-11 22:48:41 +08005892 "name" : "node_55",
5893 "id" : 22,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005894 "source_info" : {
5895 "filename" : "include/control/next.p4",
pierventre48e78822020-12-15 17:34:54 +01005896 "line" : 376,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005897 "column" : 16,
5898 "source_fragment" : "hdr.mpls.ttl == 0"
5899 },
5900 "expression" : {
5901 "type" : "expression",
5902 "value" : {
5903 "op" : "==",
5904 "left" : {
5905 "type" : "field",
5906 "value" : ["mpls", "ttl"]
5907 },
5908 "right" : {
5909 "type" : "hexstr",
5910 "value" : "0x00"
5911 }
5912 }
5913 },
5914 "false_next" : null,
Carmelo Cascone2388cc12021-05-26 19:30:30 +02005915 "true_next" : "tbl_next376"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005916 },
5917 {
Wailok Shum4f51bde2021-06-11 22:48:41 +08005918 "name" : "node_57",
5919 "id" : 23,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005920 "source_info" : {
5921 "filename" : "include/control/next.p4",
pierventre48e78822020-12-15 17:34:54 +01005922 "line" : 378,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005923 "column" : 15,
Charles Chan74ad51e2020-09-12 19:05:42 -07005924 "source_fragment" : "hdr.ipv4.isValid() && fabric_metadata.fwd_type != FWD_BRIDGING"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005925 },
5926 "expression" : {
5927 "type" : "expression",
5928 "value" : {
Charles Chan74ad51e2020-09-12 19:05:42 -07005929 "op" : "and",
5930 "left" : {
5931 "type" : "expression",
5932 "value" : {
5933 "op" : "d2b",
5934 "left" : null,
5935 "right" : {
5936 "type" : "field",
5937 "value" : ["ipv4", "$valid$"]
5938 }
5939 }
5940 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005941 "right" : {
Charles Chan74ad51e2020-09-12 19:05:42 -07005942 "type" : "expression",
5943 "value" : {
5944 "op" : "!=",
5945 "left" : {
5946 "type" : "field",
Carmelo Cascone2388cc12021-05-26 19:30:30 +02005947 "value" : ["scalars", "userMetadata.fwd_type"]
Charles Chan74ad51e2020-09-12 19:05:42 -07005948 },
5949 "right" : {
5950 "type" : "hexstr",
5951 "value" : "0x00"
5952 }
5953 }
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005954 }
5955 }
5956 },
5957 "false_next" : null,
Carmelo Cascone2388cc12021-05-26 19:30:30 +02005958 "true_next" : "tbl_next379"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005959 },
5960 {
Wailok Shum4f51bde2021-06-11 22:48:41 +08005961 "name" : "node_59",
5962 "id" : 24,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005963 "source_info" : {
5964 "filename" : "include/control/next.p4",
pierventre48e78822020-12-15 17:34:54 +01005965 "line" : 380,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08005966 "column" : 20,
5967 "source_fragment" : "hdr.ipv4.ttl == 0"
5968 },
5969 "expression" : {
5970 "type" : "expression",
5971 "value" : {
5972 "op" : "==",
5973 "left" : {
5974 "type" : "field",
5975 "value" : ["ipv4", "ttl"]
5976 },
5977 "right" : {
5978 "type" : "hexstr",
5979 "value" : "0x00"
5980 }
5981 }
5982 },
5983 "false_next" : null,
Carmelo Cascone2388cc12021-05-26 19:30:30 +02005984 "true_next" : "tbl_next380"
Yi Tsengbe342052017-11-03 10:21:23 -07005985 }
5986 ]
5987 }
5988 ],
5989 "checksums" : [
5990 {
5991 "name" : "cksum",
5992 "id" : 0,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07005993 "source_info" : {
5994 "filename" : "include/checksum.p4",
5995 "line" : 28,
5996 "column" : 8,
5997 "source_fragment" : "update_checksum(hdr.ipv4.isValid(), ..."
5998 },
Yi Tsengbe342052017-11-03 10:21:23 -07005999 "target" : ["ipv4", "hdr_checksum"],
6000 "type" : "generic",
Yi Tsengbd46d052018-01-22 17:18:16 -08006001 "calculation" : "calc",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08006002 "verify" : false,
6003 "update" : true,
Yi Tsengbd46d052018-01-22 17:18:16 -08006004 "if_cond" : {
6005 "type" : "expression",
6006 "value" : {
6007 "op" : "d2b",
6008 "left" : null,
6009 "right" : {
6010 "type" : "field",
6011 "value" : ["ipv4", "$valid$"]
6012 }
6013 }
6014 }
Yi Tsengbe342052017-11-03 10:21:23 -07006015 },
6016 {
6017 "name" : "cksum_0",
6018 "id" : 1,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07006019 "source_info" : {
6020 "filename" : "include/checksum.p4",
6021 "line" : 57,
6022 "column" : 8,
6023 "source_fragment" : "verify_checksum(hdr.ipv4.isValid(), ..."
6024 },
Yi Tsengbe342052017-11-03 10:21:23 -07006025 "target" : ["ipv4", "hdr_checksum"],
6026 "type" : "generic",
Yi Tsengbd46d052018-01-22 17:18:16 -08006027 "calculation" : "calc_0",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08006028 "verify" : true,
6029 "update" : false,
Yi Tsengbd46d052018-01-22 17:18:16 -08006030 "if_cond" : {
6031 "type" : "expression",
6032 "value" : {
6033 "op" : "d2b",
6034 "left" : null,
6035 "right" : {
6036 "type" : "field",
6037 "value" : ["ipv4", "$valid$"]
6038 }
6039 }
6040 }
Yi Tsengbe342052017-11-03 10:21:23 -07006041 }
6042 ],
6043 "force_arith" : [],
6044 "extern_instances" : [],
6045 "field_aliases" : [
6046 [
6047 "queueing_metadata.enq_timestamp",
6048 ["standard_metadata", "enq_timestamp"]
6049 ],
6050 [
6051 "queueing_metadata.enq_qdepth",
6052 ["standard_metadata", "enq_qdepth"]
6053 ],
6054 [
6055 "queueing_metadata.deq_timedelta",
6056 ["standard_metadata", "deq_timedelta"]
6057 ],
6058 [
6059 "queueing_metadata.deq_qdepth",
6060 ["standard_metadata", "deq_qdepth"]
6061 ],
6062 [
6063 "intrinsic_metadata.ingress_global_timestamp",
6064 ["standard_metadata", "ingress_global_timestamp"]
6065 ],
6066 [
Yi Tseng27b9bc02018-04-12 14:52:40 +08006067 "intrinsic_metadata.egress_global_timestamp",
6068 ["standard_metadata", "egress_global_timestamp"]
6069 ],
6070 [
Yi Tsengbe342052017-11-03 10:21:23 -07006071 "intrinsic_metadata.mcast_grp",
6072 ["standard_metadata", "mcast_grp"]
6073 ],
6074 [
Yi Tsengbe342052017-11-03 10:21:23 -07006075 "intrinsic_metadata.egress_rid",
6076 ["standard_metadata", "egress_rid"]
Yi Tseng27b9bc02018-04-12 14:52:40 +08006077 ],
6078 [
Carmelo Cascone9b607da2019-05-08 14:03:01 -07006079 "intrinsic_metadata.priority",
6080 ["standard_metadata", "priority"]
Yi Tsengbe342052017-11-03 10:21:23 -07006081 ]
Carmelo Cascone6af4e172018-06-15 16:01:30 +02006082 ],
6083 "program" : "fabric.p4",
6084 "__meta__" : {
Carmelo Cascone2388cc12021-05-26 19:30:30 +02006085 "version" : [2, 23],
Carmelo Cascone6af4e172018-06-15 16:01:30 +02006086 "compiler" : "https://github.com/p4lang/p4c"
6087 }
Carmelo Cascone25243d62019-02-21 15:37:31 -08006088}