blob: 1e4d514d4a562c0799fa3144bad804a2517b4b23 [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 Casconeb5324e72018-11-25 02:26:32 -08007 ["tmp_0", 4, false],
8 ["tmp", 32, false],
Yi Tsengbe342052017-11-03 10:21:23 -07009 ["tmp_1", 32, false],
Carmelo Casconeb5324e72018-11-25 02:26:32 -080010 ["egress_next_tmp", 1, false],
11 ["fabric_metadata_t.eth_type", 16, false],
12 ["fabric_metadata_t.ip_eth_type", 16, false],
13 ["fabric_metadata_t.vlan_id", 12, false],
14 ["fabric_metadata_t.vlan_pri", 3, false],
15 ["fabric_metadata_t.vlan_cfi", 1, false],
16 ["fabric_metadata_t.mpls_label", 20, false],
17 ["fabric_metadata_t.mpls_ttl", 8, false],
18 ["fabric_metadata_t.skip_forwarding", 1, false],
19 ["fabric_metadata_t.skip_next", 1, false],
Yi Tsengbe342052017-11-03 10:21:23 -070020 ["fabric_metadata_t.fwd_type", 3, false],
21 ["fabric_metadata_t.next_id", 32, false],
Carmelo Cascone1e8843f2018-07-19 19:01:12 +020022 ["fabric_metadata_t.is_multicast", 1, false],
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -070023 ["fabric_metadata_t.is_controller_packet_out", 1, false],
Carmelo Cascone1e8843f2018-07-19 19:01:12 +020024 ["fabric_metadata_t.clone_to_cpu", 1, false],
Yi Tsengbe342052017-11-03 10:21:23 -070025 ["fabric_metadata_t.ip_proto", 8, false],
Carmelo Casconeb5324e72018-11-25 02:26:32 -080026 ["fabric_metadata_t.l4_sport", 16, false],
27 ["fabric_metadata_t.l4_dport", 16, false],
28 ["_padding_0", 7, false]
Yi Tsengc6844f52017-12-19 11:58:25 -080029 ]
30 },
31 {
Carmelo Cascone6af4e172018-06-15 16:01:30 +020032 "name" : "standard_metadata",
Yi Tsengc6844f52017-12-19 11:58:25 -080033 "id" : 1,
34 "fields" : [
Carmelo Cascone6af4e172018-06-15 16:01:30 +020035 ["ingress_port", 9, false],
36 ["egress_spec", 9, false],
37 ["egress_port", 9, false],
38 ["clone_spec", 32, false],
39 ["instance_type", 32, false],
40 ["drop", 1, false],
41 ["recirculate_port", 16, false],
42 ["packet_length", 32, false],
43 ["enq_timestamp", 32, false],
44 ["enq_qdepth", 19, false],
45 ["deq_timedelta", 32, false],
46 ["deq_qdepth", 19, false],
47 ["ingress_global_timestamp", 48, false],
48 ["egress_global_timestamp", 48, false],
49 ["lf_field_list", 32, false],
50 ["mcast_grp", 16, false],
51 ["resubmit_flag", 32, false],
52 ["egress_rid", 16, false],
Carmelo Cascone6af4e172018-06-15 16:01:30 +020053 ["recirculate_flag", 32, false],
Carmelo Cascone9b607da2019-05-08 14:03:01 -070054 ["checksum_error", 1, false],
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -070055 ["parser_error", 32, false],
Carmelo Cascone9b607da2019-05-08 14:03:01 -070056 ["priority", 3, false],
57 ["_padding", 2, false]
Carmelo Cascone6af4e172018-06-15 16:01:30 +020058 ]
59 },
60 {
61 "name" : "ethernet_t",
62 "id" : 2,
63 "fields" : [
Yi Tsengc6844f52017-12-19 11:58:25 -080064 ["dst_addr", 48, false],
65 ["src_addr", 48, false],
Carmelo Casconeb5324e72018-11-25 02:26:32 -080066 ["eth_type", 16, false]
Yi Tsengc6844f52017-12-19 11:58:25 -080067 ]
68 },
69 {
70 "name" : "vlan_tag_t",
Carmelo Cascone6af4e172018-06-15 16:01:30 +020071 "id" : 3,
Yi Tsengc6844f52017-12-19 11:58:25 -080072 "fields" : [
73 ["pri", 3, false],
74 ["cfi", 1, false],
75 ["vlan_id", 12, false],
Carmelo Casconeb5324e72018-11-25 02:26:32 -080076 ["eth_type", 16, false]
Yi Tsengc6844f52017-12-19 11:58:25 -080077 ]
78 },
79 {
80 "name" : "mpls_t",
Carmelo Cascone6af4e172018-06-15 16:01:30 +020081 "id" : 4,
Yi Tsengc6844f52017-12-19 11:58:25 -080082 "fields" : [
83 ["label", 20, false],
84 ["tc", 3, false],
85 ["bos", 1, false],
86 ["ttl", 8, false]
Yi Tsengbe342052017-11-03 10:21:23 -070087 ]
88 },
89 {
90 "name" : "ipv4_t",
Carmelo Cascone6af4e172018-06-15 16:01:30 +020091 "id" : 5,
Yi Tsengbe342052017-11-03 10:21:23 -070092 "fields" : [
93 ["version", 4, false],
94 ["ihl", 4, false],
Jonghwan Hyuned478dc2018-08-06 15:35:18 +090095 ["dscp", 6, false],
96 ["ecn", 2, false],
Yi Tsengbe342052017-11-03 10:21:23 -070097 ["total_len", 16, false],
98 ["identification", 16, false],
99 ["flags", 3, false],
100 ["frag_offset", 13, false],
101 ["ttl", 8, false],
102 ["protocol", 8, false],
103 ["hdr_checksum", 16, false],
104 ["src_addr", 32, false],
105 ["dst_addr", 32, false]
106 ]
107 },
108 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800109 "name" : "tcp_t",
Carmelo Casconef645e842018-07-16 18:31:52 +0200110 "id" : 6,
Yi Tseng47eac892018-07-11 02:17:04 +0800111 "fields" : [
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800112 ["sport", 16, false],
113 ["dport", 16, false],
Yi Tsengbe342052017-11-03 10:21:23 -0700114 ["seq_no", 32, false],
115 ["ack_no", 32, false],
116 ["data_offset", 4, false],
117 ["res", 3, false],
118 ["ecn", 3, false],
119 ["ctrl", 6, false],
120 ["window", 16, false],
121 ["checksum", 16, false],
122 ["urgent_ptr", 16, false]
123 ]
124 },
125 {
126 "name" : "udp_t",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800127 "id" : 7,
Yi Tsengbe342052017-11-03 10:21:23 -0700128 "fields" : [
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800129 ["sport", 16, false],
130 ["dport", 16, false],
Yi Tsengbe342052017-11-03 10:21:23 -0700131 ["len", 16, false],
132 ["checksum", 16, false]
133 ]
134 },
135 {
136 "name" : "icmp_t",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800137 "id" : 8,
Yi Tsengbe342052017-11-03 10:21:23 -0700138 "fields" : [
139 ["icmp_type", 8, false],
140 ["icmp_code", 8, false],
Yi Tsengf73a5532017-11-17 15:58:57 -0800141 ["checksum", 16, false],
142 ["identifier", 16, false],
143 ["sequence_number", 16, false],
144 ["timestamp", 64, false]
Yi Tsengbe342052017-11-03 10:21:23 -0700145 ]
146 },
147 {
148 "name" : "packet_out_header_t",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800149 "id" : 9,
Yi Tsengbe342052017-11-03 10:21:23 -0700150 "fields" : [
151 ["egress_port", 9, false],
Yi Tseng1d842672017-11-28 16:06:52 -0800152 ["_pad", 7, false]
Yi Tsengbe342052017-11-03 10:21:23 -0700153 ]
154 },
155 {
156 "name" : "packet_in_header_t",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800157 "id" : 10,
Yi Tsengbe342052017-11-03 10:21:23 -0700158 "fields" : [
159 ["ingress_port", 9, false],
Yi Tseng1d842672017-11-28 16:06:52 -0800160 ["_pad", 7, false]
Yi Tsengbe342052017-11-03 10:21:23 -0700161 ]
Yi Tsengbe342052017-11-03 10:21:23 -0700162 }
163 ],
164 "headers" : [
165 {
Yi Tsengbe342052017-11-03 10:21:23 -0700166 "name" : "scalars",
Yi Tsengc6844f52017-12-19 11:58:25 -0800167 "id" : 0,
Yi Tsengbe342052017-11-03 10:21:23 -0700168 "header_type" : "scalars_0",
169 "metadata" : true,
170 "pi_omit" : true
171 },
172 {
173 "name" : "standard_metadata",
Yi Tsengc6844f52017-12-19 11:58:25 -0800174 "id" : 1,
Yi Tsengbe342052017-11-03 10:21:23 -0700175 "header_type" : "standard_metadata",
176 "metadata" : true,
177 "pi_omit" : true
178 },
179 {
180 "name" : "ethernet",
Yi Tsengc6844f52017-12-19 11:58:25 -0800181 "id" : 2,
Yi Tsengbe342052017-11-03 10:21:23 -0700182 "header_type" : "ethernet_t",
183 "metadata" : false,
184 "pi_omit" : true
185 },
186 {
187 "name" : "vlan_tag",
Yi Tsengc6844f52017-12-19 11:58:25 -0800188 "id" : 3,
Yi Tsengbe342052017-11-03 10:21:23 -0700189 "header_type" : "vlan_tag_t",
190 "metadata" : false,
191 "pi_omit" : true
192 },
193 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800194 "name" : "inner_vlan_tag",
Yi Tsengbd46d052018-01-22 17:18:16 -0800195 "id" : 4,
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800196 "header_type" : "vlan_tag_t",
197 "metadata" : false,
198 "pi_omit" : true
199 },
200 {
201 "name" : "mpls",
202 "id" : 5,
Yi Tsengbe342052017-11-03 10:21:23 -0700203 "header_type" : "mpls_t",
204 "metadata" : false,
205 "pi_omit" : true
206 },
207 {
208 "name" : "ipv4",
Carmelo Casconef645e842018-07-16 18:31:52 +0200209 "id" : 6,
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800210 "header_type" : "ipv4_t",
Yi Tsengbe342052017-11-03 10:21:23 -0700211 "metadata" : false,
212 "pi_omit" : true
213 },
214 {
215 "name" : "tcp",
Carmelo Casconef645e842018-07-16 18:31:52 +0200216 "id" : 7,
Yi Tsengbe342052017-11-03 10:21:23 -0700217 "header_type" : "tcp_t",
218 "metadata" : false,
219 "pi_omit" : true
220 },
221 {
222 "name" : "udp",
Carmelo Casconef645e842018-07-16 18:31:52 +0200223 "id" : 8,
Yi Tsengbe342052017-11-03 10:21:23 -0700224 "header_type" : "udp_t",
225 "metadata" : false,
226 "pi_omit" : true
227 },
228 {
229 "name" : "icmp",
Carmelo Casconef645e842018-07-16 18:31:52 +0200230 "id" : 9,
Yi Tsengbe342052017-11-03 10:21:23 -0700231 "header_type" : "icmp_t",
232 "metadata" : false,
233 "pi_omit" : true
234 },
235 {
236 "name" : "packet_out",
Carmelo Casconef645e842018-07-16 18:31:52 +0200237 "id" : 10,
Yi Tsengbe342052017-11-03 10:21:23 -0700238 "header_type" : "packet_out_header_t",
239 "metadata" : false,
240 "pi_omit" : true
241 },
242 {
243 "name" : "packet_in",
Carmelo Casconef645e842018-07-16 18:31:52 +0200244 "id" : 11,
Yi Tsengbe342052017-11-03 10:21:23 -0700245 "header_type" : "packet_in_header_t",
246 "metadata" : false,
247 "pi_omit" : true
248 }
249 ],
250 "header_stacks" : [],
251 "header_union_types" : [],
252 "header_unions" : [],
253 "header_union_stacks" : [],
254 "field_lists" : [],
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700255 "errors" : [
Carmelo Cascone4d8785b2019-05-31 17:11:26 -0700256 ["NoError", 1],
257 ["PacketTooShort", 2],
258 ["NoMatch", 3],
259 ["StackOutOfBounds", 4],
260 ["HeaderTooShort", 5],
261 ["ParserTimeout", 6],
262 ["ParserInvalidArgument", 7]
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700263 ],
Yi Tsengbe342052017-11-03 10:21:23 -0700264 "enums" : [],
265 "parsers" : [
266 {
267 "name" : "parser",
268 "id" : 0,
269 "init_state" : "start",
270 "parse_states" : [
271 {
272 "name" : "start",
273 "id" : 0,
274 "parser_ops" : [],
275 "transitions" : [
276 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800277 "type" : "hexstr",
Yi Tsengbe342052017-11-03 10:21:23 -0700278 "value" : "0x00ff",
279 "mask" : null,
280 "next_state" : "parse_packet_out"
281 },
282 {
283 "value" : "default",
284 "mask" : null,
285 "next_state" : "parse_ethernet"
286 }
287 ],
288 "transition_key" : [
289 {
290 "type" : "field",
291 "value" : ["standard_metadata", "ingress_port"]
292 }
293 ]
294 },
295 {
296 "name" : "parse_packet_out",
297 "id" : 1,
298 "parser_ops" : [
299 {
300 "parameters" : [
301 {
302 "type" : "regular",
303 "value" : "packet_out"
304 }
305 ],
306 "op" : "extract"
307 }
308 ],
309 "transitions" : [
310 {
311 "value" : "default",
312 "mask" : null,
313 "next_state" : "parse_ethernet"
314 }
315 ],
316 "transition_key" : []
317 },
318 {
319 "name" : "parse_ethernet",
320 "id" : 2,
321 "parser_ops" : [
322 {
323 "parameters" : [
324 {
325 "type" : "regular",
326 "value" : "ethernet"
327 }
328 ],
329 "op" : "extract"
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800330 },
331 {
332 "parameters" : [
333 {
334 "type" : "field",
335 "value" : ["scalars", "fabric_metadata_t.eth_type"]
336 },
337 {
338 "type" : "field",
339 "value" : ["ethernet", "eth_type"]
340 }
341 ],
342 "op" : "set"
343 },
344 {
345 "parameters" : [
346 {
347 "type" : "field",
348 "value" : ["scalars", "fabric_metadata_t.vlan_id"]
349 },
350 {
351 "type" : "hexstr",
352 "value" : "0x0ffe"
353 }
354 ],
355 "op" : "set"
Yi Tsengbe342052017-11-03 10:21:23 -0700356 }
357 ],
358 "transitions" : [
359 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800360 "type" : "hexstr",
Yi Tsengbe342052017-11-03 10:21:23 -0700361 "value" : "0x8100",
362 "mask" : null,
363 "next_state" : "parse_vlan_tag"
364 },
365 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800366 "type" : "hexstr",
Yi Tsengbe342052017-11-03 10:21:23 -0700367 "value" : "0x8847",
368 "mask" : null,
369 "next_state" : "parse_mpls"
370 },
371 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800372 "type" : "hexstr",
Yi Tsengbe342052017-11-03 10:21:23 -0700373 "value" : "0x0800",
374 "mask" : null,
375 "next_state" : "parse_ipv4"
376 },
377 {
Yi Tsengbe342052017-11-03 10:21:23 -0700378 "value" : "default",
379 "mask" : null,
380 "next_state" : null
381 }
382 ],
383 "transition_key" : [
384 {
385 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800386 "value" : ["ethernet", "eth_type"]
Yi Tsengbe342052017-11-03 10:21:23 -0700387 }
388 ]
389 },
390 {
391 "name" : "parse_vlan_tag",
392 "id" : 3,
393 "parser_ops" : [
394 {
395 "parameters" : [
396 {
397 "type" : "regular",
398 "value" : "vlan_tag"
399 }
400 ],
401 "op" : "extract"
402 }
403 ],
404 "transitions" : [
405 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800406 "type" : "hexstr",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800407 "value" : "0x0800",
Yi Tsengbe342052017-11-03 10:21:23 -0700408 "mask" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800409 "next_state" : "parse_ipv4"
Yi Tsengbe342052017-11-03 10:21:23 -0700410 },
411 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800412 "type" : "hexstr",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800413 "value" : "0x8847",
414 "mask" : null,
415 "next_state" : "parse_mpls"
416 },
417 {
418 "type" : "hexstr",
419 "value" : "0x8100",
420 "mask" : null,
421 "next_state" : "parse_inner_vlan_tag"
422 },
423 {
424 "value" : "default",
425 "mask" : null,
426 "next_state" : null
427 }
428 ],
429 "transition_key" : [
430 {
431 "type" : "field",
432 "value" : ["vlan_tag", "eth_type"]
433 }
434 ]
435 },
436 {
437 "name" : "parse_inner_vlan_tag",
438 "id" : 4,
439 "parser_ops" : [
440 {
441 "parameters" : [
442 {
443 "type" : "regular",
444 "value" : "inner_vlan_tag"
445 }
446 ],
447 "op" : "extract"
448 }
449 ],
450 "transitions" : [
451 {
452 "type" : "hexstr",
Yi Tsengbe342052017-11-03 10:21:23 -0700453 "value" : "0x0800",
454 "mask" : null,
455 "next_state" : "parse_ipv4"
456 },
457 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800458 "type" : "hexstr",
Yi Tsengbd46d052018-01-22 17:18:16 -0800459 "value" : "0x8847",
Yi Tsengbe342052017-11-03 10:21:23 -0700460 "mask" : null,
Yi Tsengbd46d052018-01-22 17:18:16 -0800461 "next_state" : "parse_mpls"
Yi Tsengbe342052017-11-03 10:21:23 -0700462 },
463 {
464 "value" : "default",
465 "mask" : null,
466 "next_state" : null
467 }
468 ],
469 "transition_key" : [
470 {
471 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800472 "value" : ["inner_vlan_tag", "eth_type"]
Yi Tsengbe342052017-11-03 10:21:23 -0700473 }
474 ]
475 },
476 {
477 "name" : "parse_mpls",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800478 "id" : 5,
Yi Tsengbe342052017-11-03 10:21:23 -0700479 "parser_ops" : [
480 {
481 "parameters" : [
482 {
483 "type" : "regular",
484 "value" : "mpls"
485 }
486 ],
487 "op" : "extract"
488 },
489 {
490 "parameters" : [
491 {
492 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800493 "value" : ["scalars", "fabric_metadata_t.mpls_label"]
494 },
495 {
496 "type" : "field",
497 "value" : ["mpls", "label"]
498 }
499 ],
500 "op" : "set"
501 },
502 {
503 "parameters" : [
504 {
505 "type" : "field",
506 "value" : ["scalars", "fabric_metadata_t.mpls_ttl"]
507 },
508 {
509 "type" : "field",
510 "value" : ["mpls", "ttl"]
511 }
512 ],
513 "op" : "set"
514 },
515 {
516 "parameters" : [
517 {
518 "type" : "field",
519 "value" : ["scalars", "tmp_0"]
Yi Tsengbe342052017-11-03 10:21:23 -0700520 },
521 {
522 "type" : "lookahead",
Yi Tsengc6844f52017-12-19 11:58:25 -0800523 "value" : [0, 4]
Yi Tsengbe342052017-11-03 10:21:23 -0700524 }
525 ],
526 "op" : "set"
527 }
528 ],
529 "transitions" : [
530 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800531 "type" : "hexstr",
Yi Tsengbe342052017-11-03 10:21:23 -0700532 "value" : "0x04",
533 "mask" : null,
534 "next_state" : "parse_ipv4"
535 },
536 {
Yi Tsengbe342052017-11-03 10:21:23 -0700537 "value" : "default",
538 "mask" : null,
539 "next_state" : "parse_ethernet"
540 }
541 ],
542 "transition_key" : [
543 {
544 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800545 "value" : ["scalars", "tmp_0"]
Yi Tsengbe342052017-11-03 10:21:23 -0700546 }
547 ]
548 },
549 {
550 "name" : "parse_ipv4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800551 "id" : 6,
Yi Tsengbe342052017-11-03 10:21:23 -0700552 "parser_ops" : [
553 {
554 "parameters" : [
555 {
556 "type" : "regular",
557 "value" : "ipv4"
558 }
559 ],
560 "op" : "extract"
561 },
562 {
563 "parameters" : [
564 {
565 "type" : "field",
566 "value" : ["scalars", "fabric_metadata_t.ip_proto"]
567 },
568 {
569 "type" : "field",
570 "value" : ["ipv4", "protocol"]
571 }
572 ],
573 "op" : "set"
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800574 },
575 {
576 "parameters" : [
577 {
578 "type" : "field",
579 "value" : ["scalars", "fabric_metadata_t.ip_eth_type"]
580 },
581 {
582 "type" : "hexstr",
583 "value" : "0x0800"
584 }
585 ],
586 "op" : "set"
Yi Tsengbe342052017-11-03 10:21:23 -0700587 }
588 ],
589 "transitions" : [
590 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800591 "type" : "hexstr",
Yi Tsengbe342052017-11-03 10:21:23 -0700592 "value" : "0x06",
593 "mask" : null,
594 "next_state" : "parse_tcp"
595 },
596 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800597 "type" : "hexstr",
Yi Tsengbe342052017-11-03 10:21:23 -0700598 "value" : "0x11",
599 "mask" : null,
600 "next_state" : "parse_udp"
601 },
602 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800603 "type" : "hexstr",
Yi Tsengbe342052017-11-03 10:21:23 -0700604 "value" : "0x01",
605 "mask" : null,
606 "next_state" : "parse_icmp"
607 },
608 {
609 "value" : "default",
610 "mask" : null,
611 "next_state" : null
612 }
613 ],
614 "transition_key" : [
615 {
616 "type" : "field",
617 "value" : ["ipv4", "protocol"]
618 }
619 ]
620 },
621 {
Yi Tsengbe342052017-11-03 10:21:23 -0700622 "name" : "parse_tcp",
Carmelo Casconef645e842018-07-16 18:31:52 +0200623 "id" : 7,
Yi Tsengbe342052017-11-03 10:21:23 -0700624 "parser_ops" : [
625 {
626 "parameters" : [
627 {
628 "type" : "regular",
629 "value" : "tcp"
630 }
631 ],
632 "op" : "extract"
633 },
634 {
635 "parameters" : [
636 {
637 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800638 "value" : ["scalars", "fabric_metadata_t.l4_sport"]
Yi Tsengbe342052017-11-03 10:21:23 -0700639 },
640 {
641 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800642 "value" : ["tcp", "sport"]
Yi Tsengbe342052017-11-03 10:21:23 -0700643 }
644 ],
645 "op" : "set"
646 },
647 {
648 "parameters" : [
649 {
650 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800651 "value" : ["scalars", "fabric_metadata_t.l4_dport"]
Yi Tsengbe342052017-11-03 10:21:23 -0700652 },
653 {
654 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800655 "value" : ["tcp", "dport"]
Yi Tsengbe342052017-11-03 10:21:23 -0700656 }
657 ],
658 "op" : "set"
659 }
660 ],
661 "transitions" : [
662 {
663 "value" : "default",
664 "mask" : null,
665 "next_state" : null
666 }
667 ],
668 "transition_key" : []
669 },
670 {
671 "name" : "parse_udp",
Carmelo Casconef645e842018-07-16 18:31:52 +0200672 "id" : 8,
Yi Tsengbe342052017-11-03 10:21:23 -0700673 "parser_ops" : [
674 {
675 "parameters" : [
676 {
677 "type" : "regular",
678 "value" : "udp"
679 }
680 ],
681 "op" : "extract"
682 },
683 {
684 "parameters" : [
685 {
686 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800687 "value" : ["scalars", "fabric_metadata_t.l4_sport"]
Yi Tsengbe342052017-11-03 10:21:23 -0700688 },
689 {
690 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800691 "value" : ["udp", "sport"]
Yi Tsengbe342052017-11-03 10:21:23 -0700692 }
693 ],
694 "op" : "set"
695 },
696 {
697 "parameters" : [
698 {
699 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800700 "value" : ["scalars", "fabric_metadata_t.l4_dport"]
Yi Tsengbe342052017-11-03 10:21:23 -0700701 },
702 {
703 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800704 "value" : ["udp", "dport"]
Yi Tsengbe342052017-11-03 10:21:23 -0700705 }
706 ],
707 "op" : "set"
708 }
709 ],
710 "transitions" : [
711 {
712 "value" : "default",
713 "mask" : null,
714 "next_state" : null
715 }
716 ],
Carmelo Cascone79a3a312018-08-16 17:14:43 -0700717 "transition_key" : [
718 {
719 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800720 "value" : ["udp", "dport"]
Carmelo Cascone79a3a312018-08-16 17:14:43 -0700721 }
722 ]
Yi Tsengbe342052017-11-03 10:21:23 -0700723 },
724 {
725 "name" : "parse_icmp",
Carmelo Casconef645e842018-07-16 18:31:52 +0200726 "id" : 9,
Yi Tsengbe342052017-11-03 10:21:23 -0700727 "parser_ops" : [
728 {
729 "parameters" : [
730 {
731 "type" : "regular",
732 "value" : "icmp"
733 }
734 ],
735 "op" : "extract"
736 }
737 ],
738 "transitions" : [
739 {
740 "value" : "default",
741 "mask" : null,
742 "next_state" : null
743 }
744 ],
745 "transition_key" : []
746 }
747 ]
748 }
749 ],
Yi Tseng27b9bc02018-04-12 14:52:40 +0800750 "parse_vsets" : [],
Yi Tsengbe342052017-11-03 10:21:23 -0700751 "deparsers" : [
752 {
753 "name" : "deparser",
754 "id" : 0,
755 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +0200756 "filename" : "include/parser.p4",
Carmelo Cascone4d8785b2019-05-31 17:11:26 -0700757 "line" : 260,
Yi Tsengbe342052017-11-03 10:21:23 -0700758 "column" : 8,
759 "source_fragment" : "FabricDeparser"
760 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800761 "order" : ["packet_in", "ethernet", "vlan_tag", "inner_vlan_tag", "mpls", "ipv4", "tcp", "udp", "icmp"]
Yi Tsengbe342052017-11-03 10:21:23 -0700762 }
763 ],
764 "meter_arrays" : [],
765 "counter_arrays" : [
766 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800767 "name" : "FabricIngress.filtering.ingress_port_vlan_counter",
Yi Tseng1d842672017-11-28 16:06:52 -0800768 "id" : 0,
Yi Tseng3a5731e2018-01-22 11:38:58 -0800769 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700770 "binding" : "FabricIngress.filtering.ingress_port_vlan",
771 "source_info" : {
772 "filename" : "include/control/filtering.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800773 "line" : 31,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700774 "column" : 50,
775 "source_fragment" : "ingress_port_vlan_counter"
776 }
Yi Tseng3a5731e2018-01-22 11:38:58 -0800777 },
778 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800779 "name" : "FabricIngress.filtering.fwd_classifier_counter",
Yi Tseng3a5731e2018-01-22 11:38:58 -0800780 "id" : 1,
781 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700782 "binding" : "FabricIngress.filtering.fwd_classifier",
783 "source_info" : {
784 "filename" : "include/control/filtering.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -0700785 "line" : 80,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700786 "column" : 50,
787 "source_fragment" : "fwd_classifier_counter"
788 }
Yi Tseng3a5731e2018-01-22 11:38:58 -0800789 },
790 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800791 "name" : "FabricIngress.forwarding.bridging_counter",
Yi Tseng3a5731e2018-01-22 11:38:58 -0800792 "id" : 2,
793 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700794 "binding" : "FabricIngress.forwarding.bridging",
795 "source_info" : {
796 "filename" : "include/control/forwarding.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800797 "line" : 36,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700798 "column" : 50,
799 "source_fragment" : "bridging_counter"
800 }
Yi Tseng3a5731e2018-01-22 11:38:58 -0800801 },
802 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800803 "name" : "FabricIngress.forwarding.mpls_counter",
Yi Tseng3a5731e2018-01-22 11:38:58 -0800804 "id" : 3,
805 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700806 "binding" : "FabricIngress.forwarding.mpls",
807 "source_info" : {
808 "filename" : "include/control/forwarding.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -0700809 "line" : 63,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700810 "column" : 50,
811 "source_fragment" : "mpls_counter"
812 }
Yi Tseng3a5731e2018-01-22 11:38:58 -0800813 },
814 {
Charles Chan384aea22018-08-23 22:08:02 -0700815 "name" : "FabricIngress.forwarding.routing_v4_counter",
Yi Tseng3a5731e2018-01-22 11:38:58 -0800816 "id" : 4,
817 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700818 "binding" : "FabricIngress.forwarding.routing_v4",
819 "source_info" : {
820 "filename" : "include/control/forwarding.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -0700821 "line" : 87,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700822 "column" : 50,
823 "source_fragment" : "routing_v4_counter"
824 }
Yi Tseng3a5731e2018-01-22 11:38:58 -0800825 },
826 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800827 "name" : "FabricIngress.acl.acl_counter",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -0800828 "id" : 5,
Yi Tseng3a5731e2018-01-22 11:38:58 -0800829 "is_direct" : true,
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800830 "binding" : "FabricIngress.acl.acl",
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700831 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800832 "filename" : "include/control/acl.p4",
833 "line" : 30,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700834 "column" : 50,
835 "source_fragment" : "acl_counter"
836 }
Yi Tseng3a5731e2018-01-22 11:38:58 -0800837 },
838 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800839 "name" : "FabricIngress.next.next_vlan_counter",
Carmelo Casconef645e842018-07-16 18:31:52 +0200840 "id" : 6,
Yi Tseng47eac892018-07-11 02:17:04 +0800841 "is_direct" : true,
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800842 "binding" : "FabricIngress.next.next_vlan",
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700843 "source_info" : {
844 "filename" : "include/control/next.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800845 "line" : 67,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700846 "column" : 50,
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800847 "source_fragment" : "next_vlan_counter"
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700848 }
Yi Tseng20f9e7b2018-05-24 23:27:39 +0800849 },
850 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800851 "name" : "FabricIngress.next.xconnect_counter",
Carmelo Casconef645e842018-07-16 18:31:52 +0200852 "id" : 7,
Yi Tseng20f9e7b2018-05-24 23:27:39 +0800853 "is_direct" : true,
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800854 "binding" : "FabricIngress.next.xconnect",
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700855 "source_info" : {
856 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -0700857 "line" : 92,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700858 "column" : 50,
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800859 "source_fragment" : "xconnect_counter"
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700860 }
Yi Tseng27b9bc02018-04-12 14:52:40 +0800861 },
862 {
863 "name" : "FabricIngress.next.hashed_counter",
Carmelo Casconef645e842018-07-16 18:31:52 +0200864 "id" : 8,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800865 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700866 "binding" : "FabricIngress.next.hashed",
867 "source_info" : {
868 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -0700869 "line" : 166,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700870 "column" : 50,
871 "source_fragment" : "hashed_counter"
872 }
Yi Tseng27b9bc02018-04-12 14:52:40 +0800873 },
874 {
Esin Karaman971fb7f2017-12-28 13:44:52 +0000875 "name" : "FabricIngress.next.multicast_counter",
Carmelo Casconef645e842018-07-16 18:31:52 +0200876 "id" : 9,
Esin Karaman971fb7f2017-12-28 13:44:52 +0000877 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700878 "binding" : "FabricIngress.next.multicast",
879 "source_info" : {
880 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -0700881 "line" : 210,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700882 "column" : 50,
883 "source_fragment" : "multicast_counter"
884 }
Esin Karaman971fb7f2017-12-28 13:44:52 +0000885 },
886 {
887 "name" : "FabricIngress.port_counters_control.egress_port_counter",
Carmelo Casconef645e842018-07-16 18:31:52 +0200888 "id" : 10,
Yi Tsengbe342052017-11-03 10:21:23 -0700889 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +0200890 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800891 "line" : 26,
Yi Tseng3d3956d2018-01-31 17:28:05 -0800892 "column" : 48,
Yi Tsengbe342052017-11-03 10:21:23 -0700893 "source_fragment" : "egress_port_counter"
894 },
895 "size" : 511,
896 "is_direct" : false
897 },
898 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800899 "name" : "FabricIngress.port_counters_control.ingress_port_counter",
Carmelo Casconef645e842018-07-16 18:31:52 +0200900 "id" : 11,
Yi Tsengbe342052017-11-03 10:21:23 -0700901 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +0200902 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800903 "line" : 27,
Yi Tseng3d3956d2018-01-31 17:28:05 -0800904 "column" : 48,
Yi Tsengbe342052017-11-03 10:21:23 -0700905 "source_fragment" : "ingress_port_counter"
906 },
907 "size" : 511,
908 "is_direct" : false
Yi Tseng47eac892018-07-11 02:17:04 +0800909 },
910 {
911 "name" : "FabricEgress.egress_next.egress_vlan_counter",
Carmelo Casconef645e842018-07-16 18:31:52 +0200912 "id" : 12,
Yi Tseng47eac892018-07-11 02:17:04 +0800913 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700914 "binding" : "FabricEgress.egress_next.egress_vlan",
915 "source_info" : {
916 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -0700917 "line" : 283,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700918 "column" : 50,
919 "source_fragment" : "egress_vlan_counter"
920 }
Yi Tsengbe342052017-11-03 10:21:23 -0700921 }
922 ],
923 "register_arrays" : [],
924 "calculations" : [
925 {
926 "name" : "calc",
927 "id" : 0,
928 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +0200929 "filename" : "include/checksum.p4",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200930 "line" : 28,
Yi Tsengbe342052017-11-03 10:21:23 -0700931 "column" : 8,
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200932 "source_fragment" : "update_checksum(hdr.ipv4.isValid(), ..."
Yi Tsengbe342052017-11-03 10:21:23 -0700933 },
934 "algo" : "csum16",
935 "input" : [
936 {
937 "type" : "field",
938 "value" : ["ipv4", "version"]
939 },
940 {
941 "type" : "field",
942 "value" : ["ipv4", "ihl"]
943 },
944 {
945 "type" : "field",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +0900946 "value" : ["ipv4", "dscp"]
947 },
948 {
949 "type" : "field",
950 "value" : ["ipv4", "ecn"]
Yi Tsengbe342052017-11-03 10:21:23 -0700951 },
952 {
953 "type" : "field",
954 "value" : ["ipv4", "total_len"]
955 },
956 {
957 "type" : "field",
958 "value" : ["ipv4", "identification"]
959 },
960 {
961 "type" : "field",
962 "value" : ["ipv4", "flags"]
963 },
964 {
965 "type" : "field",
966 "value" : ["ipv4", "frag_offset"]
967 },
968 {
969 "type" : "field",
970 "value" : ["ipv4", "ttl"]
971 },
972 {
973 "type" : "field",
974 "value" : ["ipv4", "protocol"]
975 },
976 {
977 "type" : "field",
978 "value" : ["ipv4", "src_addr"]
979 },
980 {
981 "type" : "field",
982 "value" : ["ipv4", "dst_addr"]
983 }
984 ]
985 },
986 {
987 "name" : "calc_0",
988 "id" : 1,
989 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +0200990 "filename" : "include/checksum.p4",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +0900991 "line" : 57,
Yi Tsengbe342052017-11-03 10:21:23 -0700992 "column" : 8,
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200993 "source_fragment" : "verify_checksum(hdr.ipv4.isValid(), ..."
Yi Tsengbe342052017-11-03 10:21:23 -0700994 },
995 "algo" : "csum16",
996 "input" : [
997 {
998 "type" : "field",
999 "value" : ["ipv4", "version"]
1000 },
1001 {
1002 "type" : "field",
1003 "value" : ["ipv4", "ihl"]
1004 },
1005 {
1006 "type" : "field",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09001007 "value" : ["ipv4", "dscp"]
1008 },
1009 {
1010 "type" : "field",
1011 "value" : ["ipv4", "ecn"]
Yi Tsengbe342052017-11-03 10:21:23 -07001012 },
1013 {
1014 "type" : "field",
1015 "value" : ["ipv4", "total_len"]
1016 },
1017 {
1018 "type" : "field",
1019 "value" : ["ipv4", "identification"]
1020 },
1021 {
1022 "type" : "field",
1023 "value" : ["ipv4", "flags"]
1024 },
1025 {
1026 "type" : "field",
1027 "value" : ["ipv4", "frag_offset"]
1028 },
1029 {
1030 "type" : "field",
1031 "value" : ["ipv4", "ttl"]
1032 },
1033 {
1034 "type" : "field",
1035 "value" : ["ipv4", "protocol"]
1036 },
1037 {
1038 "type" : "field",
1039 "value" : ["ipv4", "src_addr"]
1040 },
1041 {
1042 "type" : "field",
1043 "value" : ["ipv4", "dst_addr"]
1044 }
1045 ]
Yi Tsengbe342052017-11-03 10:21:23 -07001046 }
1047 ],
1048 "learn_lists" : [],
1049 "actions" : [
1050 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001051 "name" : "nop",
Yi Tsengbe342052017-11-03 10:21:23 -07001052 "id" : 0,
1053 "runtime_data" : [],
1054 "primitives" : []
1055 },
1056 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001057 "name" : "nop",
Yi Tsengbe342052017-11-03 10:21:23 -07001058 "id" : 1,
1059 "runtime_data" : [],
1060 "primitives" : []
1061 },
1062 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001063 "name" : "nop",
Yi Tsengbe342052017-11-03 10:21:23 -07001064 "id" : 2,
1065 "runtime_data" : [],
Yi Tseng1d842672017-11-28 16:06:52 -08001066 "primitives" : []
Yi Tsengbe342052017-11-03 10:21:23 -07001067 },
1068 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001069 "name" : "nop",
Yi Tsengbe342052017-11-03 10:21:23 -07001070 "id" : 3,
1071 "runtime_data" : [],
Yi Tseng1d842672017-11-28 16:06:52 -08001072 "primitives" : []
Yi Tsengbe342052017-11-03 10:21:23 -07001073 },
1074 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001075 "name" : "nop",
Yi Tsengbe342052017-11-03 10:21:23 -07001076 "id" : 4,
1077 "runtime_data" : [],
1078 "primitives" : []
1079 },
1080 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001081 "name" : "nop",
Yi Tsengbe342052017-11-03 10:21:23 -07001082 "id" : 5,
1083 "runtime_data" : [],
1084 "primitives" : []
1085 },
1086 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07001087 "name" : "nop",
Yi Tsengbe342052017-11-03 10:21:23 -07001088 "id" : 6,
1089 "runtime_data" : [],
1090 "primitives" : []
1091 },
1092 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001093 "name" : "FabricIngress.filtering.deny",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07001094 "id" : 7,
Yi Tseng47eac892018-07-11 02:17:04 +08001095 "runtime_data" : [],
Yi Tseng1d842672017-11-28 16:06:52 -08001096 "primitives" : [
1097 {
Yi Tsengbe342052017-11-03 10:21:23 -07001098 "op" : "assign",
1099 "parameters" : [
1100 {
1101 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001102 "value" : ["scalars", "fabric_metadata_t.skip_forwarding"]
Yi Tsengbe342052017-11-03 10:21:23 -07001103 },
1104 {
1105 "type" : "expression",
1106 "value" : {
1107 "type" : "expression",
1108 "value" : {
1109 "op" : "b2d",
1110 "left" : null,
1111 "right" : {
1112 "type" : "bool",
1113 "value" : true
1114 }
1115 }
1116 }
1117 }
1118 ],
1119 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001120 "filename" : "include/control/filtering.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001121 "line" : 36,
Yi Tsengbe342052017-11-03 10:21:23 -07001122 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001123 "source_fragment" : "fabric_metadata.skip_forwarding = true"
1124 }
1125 },
1126 {
1127 "op" : "assign",
1128 "parameters" : [
1129 {
1130 "type" : "field",
1131 "value" : ["scalars", "fabric_metadata_t.skip_next"]
1132 },
1133 {
1134 "type" : "expression",
1135 "value" : {
1136 "type" : "expression",
1137 "value" : {
1138 "op" : "b2d",
1139 "left" : null,
1140 "right" : {
1141 "type" : "bool",
1142 "value" : true
1143 }
1144 }
1145 }
1146 }
1147 ],
1148 "source_info" : {
1149 "filename" : "include/control/filtering.p4",
1150 "line" : 37,
1151 "column" : 8,
1152 "source_fragment" : "fabric_metadata.skip_next = true"
Yi Tsengbe342052017-11-03 10:21:23 -07001153 }
1154 }
1155 ]
1156 },
1157 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001158 "name" : "FabricIngress.filtering.permit",
1159 "id" : 8,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07001160 "runtime_data" : [],
1161 "primitives" : []
1162 },
1163 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001164 "name" : "FabricIngress.filtering.permit_with_internal_vlan",
1165 "id" : 9,
1166 "runtime_data" : [
1167 {
1168 "name" : "vlan_id",
1169 "bitwidth" : 12
1170 }
1171 ],
1172 "primitives" : [
1173 {
1174 "op" : "assign",
1175 "parameters" : [
1176 {
1177 "type" : "field",
1178 "value" : ["scalars", "fabric_metadata_t.vlan_id"]
1179 },
1180 {
1181 "type" : "runtime_data",
1182 "value" : 0
1183 }
1184 ],
1185 "source_info" : {
1186 "filename" : "include/control/filtering.p4",
1187 "line" : 47,
1188 "column" : 8,
1189 "source_fragment" : "fabric_metadata.vlan_id = vlan_id"
1190 }
1191 }
1192 ]
1193 },
1194 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001195 "name" : "FabricIngress.filtering.set_forwarding_type",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001196 "id" : 10,
Yi Tsengbe342052017-11-03 10:21:23 -07001197 "runtime_data" : [
1198 {
1199 "name" : "fwd_type",
1200 "bitwidth" : 3
1201 }
1202 ],
1203 "primitives" : [
1204 {
1205 "op" : "assign",
1206 "parameters" : [
1207 {
1208 "type" : "field",
1209 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
1210 },
1211 {
1212 "type" : "runtime_data",
1213 "value" : 0
1214 }
1215 ],
1216 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001217 "filename" : "include/control/filtering.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07001218 "line" : 83,
Yi Tsengbe342052017-11-03 10:21:23 -07001219 "column" : 8,
1220 "source_fragment" : "fabric_metadata.fwd_type = fwd_type"
1221 }
1222 }
1223 ]
1224 },
1225 {
Yi Tseng47eac892018-07-11 02:17:04 +08001226 "name" : "FabricIngress.forwarding.set_next_id_bridging",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001227 "id" : 11,
Carmelo Casconef645e842018-07-16 18:31:52 +02001228 "runtime_data" : [
1229 {
1230 "name" : "next_id",
1231 "bitwidth" : 32
1232 }
1233 ],
1234 "primitives" : [
1235 {
1236 "op" : "assign",
1237 "parameters" : [
1238 {
1239 "type" : "field",
1240 "value" : ["scalars", "fabric_metadata_t.next_id"]
1241 },
1242 {
1243 "type" : "runtime_data",
1244 "value" : 0
1245 }
1246 ],
1247 "source_info" : {
1248 "filename" : "include/control/forwarding.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001249 "line" : 30,
Carmelo Casconef645e842018-07-16 18:31:52 +02001250 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001251 "source_fragment" : "fabric_metadata.next_id = next_id; ..."
Carmelo Casconef645e842018-07-16 18:31:52 +02001252 }
1253 }
1254 ]
1255 },
1256 {
1257 "name" : "FabricIngress.forwarding.pop_mpls_and_next",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001258 "id" : 12,
Carmelo Casconef645e842018-07-16 18:31:52 +02001259 "runtime_data" : [
1260 {
1261 "name" : "next_id",
1262 "bitwidth" : 32
1263 }
1264 ],
1265 "primitives" : [
1266 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001267 "op" : "assign",
Carmelo Casconef645e842018-07-16 18:31:52 +02001268 "parameters" : [
1269 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001270 "type" : "field",
1271 "value" : ["scalars", "fabric_metadata_t.mpls_label"]
1272 },
1273 {
1274 "type" : "hexstr",
1275 "value" : "0x000000"
Carmelo Casconef645e842018-07-16 18:31:52 +02001276 }
1277 ],
1278 "source_info" : {
1279 "filename" : "include/control/forwarding.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07001280 "line" : 66,
Carmelo Casconef645e842018-07-16 18:31:52 +02001281 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001282 "source_fragment" : "fabric_metadata.mpls_label = 0"
Carmelo Casconef645e842018-07-16 18:31:52 +02001283 }
1284 },
1285 {
1286 "op" : "assign",
1287 "parameters" : [
1288 {
1289 "type" : "field",
1290 "value" : ["scalars", "fabric_metadata_t.next_id"]
1291 },
1292 {
1293 "type" : "runtime_data",
1294 "value" : 0
1295 }
1296 ],
1297 "source_info" : {
1298 "filename" : "include/control/forwarding.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001299 "line" : 30,
Carmelo Casconef645e842018-07-16 18:31:52 +02001300 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001301 "source_fragment" : "fabric_metadata.next_id = next_id; ..."
Carmelo Casconef645e842018-07-16 18:31:52 +02001302 }
1303 }
1304 ]
1305 },
1306 {
Charles Chan384aea22018-08-23 22:08:02 -07001307 "name" : "FabricIngress.forwarding.set_next_id_routing_v4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001308 "id" : 13,
Carmelo Casconef645e842018-07-16 18:31:52 +02001309 "runtime_data" : [
1310 {
1311 "name" : "next_id",
1312 "bitwidth" : 32
1313 }
1314 ],
1315 "primitives" : [
1316 {
1317 "op" : "assign",
1318 "parameters" : [
1319 {
1320 "type" : "field",
1321 "value" : ["scalars", "fabric_metadata_t.next_id"]
1322 },
1323 {
1324 "type" : "runtime_data",
1325 "value" : 0
1326 }
1327 ],
1328 "source_info" : {
1329 "filename" : "include/control/forwarding.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001330 "line" : 30,
Carmelo Casconef645e842018-07-16 18:31:52 +02001331 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001332 "source_fragment" : "fabric_metadata.next_id = next_id; ..."
Carmelo Casconef645e842018-07-16 18:31:52 +02001333 }
1334 }
1335 ]
1336 },
1337 {
Charles Chancd03f072018-08-31 17:46:37 -07001338 "name" : "FabricIngress.forwarding.nop_routing_v4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001339 "id" : 14,
Charles Chancd03f072018-08-31 17:46:37 -07001340 "runtime_data" : [],
1341 "primitives" : []
1342 },
1343 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001344 "name" : "FabricIngress.acl.set_next_id_acl",
1345 "id" : 15,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001346 "runtime_data" : [
1347 {
1348 "name" : "next_id",
1349 "bitwidth" : 32
1350 }
1351 ],
1352 "primitives" : [
1353 {
Esin Karaman971fb7f2017-12-28 13:44:52 +00001354 "op" : "assign",
1355 "parameters" : [
1356 {
1357 "type" : "field",
1358 "value" : ["scalars", "fabric_metadata_t.next_id"]
1359 },
1360 {
1361 "type" : "runtime_data",
1362 "value" : 0
1363 }
1364 ],
1365 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001366 "filename" : "include/control/acl.p4",
1367 "line" : 33,
Yi Tseng47eac892018-07-11 02:17:04 +08001368 "column" : 8,
1369 "source_fragment" : "fabric_metadata.next_id = next_id"
1370 }
1371 }
1372 ]
1373 },
1374 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001375 "name" : "FabricIngress.acl.punt_to_cpu",
1376 "id" : 16,
Yi Tsengbe342052017-11-03 10:21:23 -07001377 "runtime_data" : [],
1378 "primitives" : [
1379 {
1380 "op" : "assign",
1381 "parameters" : [
1382 {
1383 "type" : "field",
Yi Tsengbe342052017-11-03 10:21:23 -07001384 "value" : ["standard_metadata", "egress_spec"]
1385 },
1386 {
1387 "type" : "hexstr",
1388 "value" : "0x00ff"
1389 }
1390 ],
1391 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001392 "filename" : "include/control/acl.p4",
1393 "line" : 39,
Carmelo Casconeb531b682018-01-30 17:55:56 -08001394 "column" : 8,
1395 "source_fragment" : "standard_metadata.egress_spec = 255"
Yi Tsengbe342052017-11-03 10:21:23 -07001396 }
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001397 },
1398 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001399 "op" : "assign",
1400 "parameters" : [
1401 {
1402 "type" : "field",
1403 "value" : ["scalars", "fabric_metadata_t.skip_next"]
1404 },
1405 {
1406 "type" : "expression",
1407 "value" : {
1408 "type" : "expression",
1409 "value" : {
1410 "op" : "b2d",
1411 "left" : null,
1412 "right" : {
1413 "type" : "bool",
1414 "value" : true
1415 }
1416 }
1417 }
1418 }
1419 ],
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001420 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001421 "filename" : "include/control/acl.p4",
1422 "line" : 40,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001423 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001424 "source_fragment" : "fabric_metadata.skip_next = true"
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001425 }
1426 }
1427 ]
1428 },
1429 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001430 "name" : "FabricIngress.acl.clone_to_cpu",
1431 "id" : 17,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001432 "runtime_data" : [],
1433 "primitives" : [
1434 {
1435 "op" : "assign",
1436 "parameters" : [
1437 {
1438 "type" : "field",
1439 "value" : ["scalars", "fabric_metadata_t.clone_to_cpu"]
1440 },
1441 {
1442 "type" : "expression",
1443 "value" : {
1444 "type" : "expression",
1445 "value" : {
1446 "op" : "b2d",
1447 "left" : null,
1448 "right" : {
1449 "type" : "bool",
1450 "value" : true
1451 }
1452 }
1453 }
1454 }
1455 ],
1456 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001457 "filename" : "include/control/acl.p4",
1458 "line" : 46,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001459 "column" : 8,
1460 "source_fragment" : "fabric_metadata.clone_to_cpu = true"
1461 }
Yi Tsengbe342052017-11-03 10:21:23 -07001462 }
1463 ]
1464 },
1465 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001466 "name" : "FabricIngress.acl.drop",
1467 "id" : 18,
Yi Tseng47eac892018-07-11 02:17:04 +08001468 "runtime_data" : [],
1469 "primitives" : [
1470 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07001471 "op" : "mark_to_drop",
1472 "parameters" : [
1473 {
1474 "type" : "header",
1475 "value" : "standard_metadata"
1476 }
1477 ],
Yi Tseng47eac892018-07-11 02:17:04 +08001478 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001479 "filename" : "include/control/acl.p4",
1480 "line" : 51,
Yi Tseng47eac892018-07-11 02:17:04 +08001481 "column" : 8,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07001482 "source_fragment" : "mark_to_drop(standard_metadata)"
Yi Tseng47eac892018-07-11 02:17:04 +08001483 }
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001484 },
1485 {
1486 "op" : "assign",
1487 "parameters" : [
1488 {
1489 "type" : "field",
1490 "value" : ["scalars", "fabric_metadata_t.skip_next"]
1491 },
1492 {
1493 "type" : "expression",
1494 "value" : {
1495 "type" : "expression",
1496 "value" : {
1497 "op" : "b2d",
1498 "left" : null,
1499 "right" : {
1500 "type" : "bool",
1501 "value" : true
1502 }
1503 }
1504 }
1505 }
1506 ],
1507 "source_info" : {
1508 "filename" : "include/control/acl.p4",
1509 "line" : 52,
1510 "column" : 8,
1511 "source_fragment" : "fabric_metadata.skip_next = true"
1512 }
Yi Tseng47eac892018-07-11 02:17:04 +08001513 }
1514 ]
1515 },
1516 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001517 "name" : "FabricIngress.acl.nop_acl",
1518 "id" : 19,
Charles Chancf696e52018-08-16 16:25:13 -07001519 "runtime_data" : [],
1520 "primitives" : []
1521 },
1522 {
Yi Tseng47eac892018-07-11 02:17:04 +08001523 "name" : "FabricIngress.next.set_vlan",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001524 "id" : 20,
1525 "runtime_data" : [
1526 {
1527 "name" : "vlan_id",
1528 "bitwidth" : 12
1529 }
1530 ],
1531 "primitives" : [
1532 {
1533 "op" : "assign",
1534 "parameters" : [
1535 {
1536 "type" : "field",
1537 "value" : ["scalars", "fabric_metadata_t.vlan_id"]
1538 },
1539 {
1540 "type" : "runtime_data",
1541 "value" : 0
1542 }
1543 ],
1544 "source_info" : {
1545 "filename" : "include/control/next.p4",
1546 "line" : 70,
1547 "column" : 8,
1548 "source_fragment" : "fabric_metadata.vlan_id = vlan_id"
1549 }
1550 }
1551 ]
1552 },
1553 {
1554 "name" : "FabricIngress.next.output_xconnect",
Charles Chancd03f072018-08-31 17:46:37 -07001555 "id" : 21,
Yi Tseng47eac892018-07-11 02:17:04 +08001556 "runtime_data" : [
1557 {
Yi Tsengbe342052017-11-03 10:21:23 -07001558 "name" : "port_num",
1559 "bitwidth" : 9
1560 }
1561 ],
1562 "primitives" : [
1563 {
1564 "op" : "assign",
1565 "parameters" : [
1566 {
1567 "type" : "field",
1568 "value" : ["standard_metadata", "egress_spec"]
1569 },
1570 {
1571 "type" : "runtime_data",
1572 "value" : 0
1573 }
1574 ],
1575 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001576 "filename" : "include/control/next.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001577 "line" : 31,
1578 "column" : 5,
Yi Tseng47eac892018-07-11 02:17:04 +08001579 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
1580 }
1581 }
1582 ]
1583 },
1584 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001585 "name" : "FabricIngress.next.set_next_id_xconnect",
1586 "id" : 22,
1587 "runtime_data" : [
1588 {
1589 "name" : "next_id",
1590 "bitwidth" : 32
1591 }
1592 ],
1593 "primitives" : [
1594 {
1595 "op" : "assign",
1596 "parameters" : [
1597 {
1598 "type" : "field",
1599 "value" : ["scalars", "fabric_metadata_t.next_id"]
1600 },
1601 {
1602 "type" : "runtime_data",
1603 "value" : 0
1604 }
1605 ],
1606 "source_info" : {
1607 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07001608 "line" : 100,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001609 "column" : 8,
1610 "source_fragment" : "fabric_metadata.next_id = next_id"
1611 }
1612 }
1613 ]
1614 },
1615 {
1616 "name" : "FabricIngress.next.output_hashed",
1617 "id" : 23,
1618 "runtime_data" : [
1619 {
1620 "name" : "port_num",
1621 "bitwidth" : 9
1622 }
1623 ],
1624 "primitives" : [
1625 {
1626 "op" : "assign",
1627 "parameters" : [
1628 {
1629 "type" : "field",
1630 "value" : ["standard_metadata", "egress_spec"]
1631 },
1632 {
1633 "type" : "runtime_data",
1634 "value" : 0
1635 }
1636 ],
1637 "source_info" : {
1638 "filename" : "include/control/next.p4",
1639 "line" : 31,
1640 "column" : 5,
1641 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
1642 }
1643 }
1644 ]
1645 },
1646 {
1647 "name" : "FabricIngress.next.routing_hashed",
Charles Chancd03f072018-08-31 17:46:37 -07001648 "id" : 24,
Yi Tseng47eac892018-07-11 02:17:04 +08001649 "runtime_data" : [
1650 {
1651 "name" : "port_num",
1652 "bitwidth" : 9
1653 },
1654 {
1655 "name" : "smac",
1656 "bitwidth" : 48
1657 },
1658 {
1659 "name" : "dmac",
1660 "bitwidth" : 48
1661 }
1662 ],
1663 "primitives" : [
1664 {
1665 "op" : "assign",
1666 "parameters" : [
1667 {
1668 "type" : "field",
1669 "value" : ["ethernet", "src_addr"]
1670 },
1671 {
1672 "type" : "runtime_data",
1673 "value" : 1
1674 }
1675 ],
1676 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001677 "filename" : "include/control/next.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001678 "line" : 36,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001679 "column" : 8,
Yi Tseng47eac892018-07-11 02:17:04 +08001680 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
1681 }
1682 },
1683 {
1684 "op" : "assign",
1685 "parameters" : [
1686 {
1687 "type" : "field",
1688 "value" : ["ethernet", "dst_addr"]
1689 },
1690 {
1691 "type" : "runtime_data",
1692 "value" : 2
1693 }
1694 ],
1695 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001696 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001697 "line" : 41,
1698 "column" : 8,
1699 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
1700 }
1701 },
1702 {
1703 "op" : "assign",
1704 "parameters" : [
1705 {
1706 "type" : "field",
1707 "value" : ["standard_metadata", "egress_spec"]
1708 },
1709 {
1710 "type" : "runtime_data",
1711 "value" : 0
1712 }
1713 ],
1714 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001715 "filename" : "include/control/next.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001716 "line" : 31,
1717 "column" : 5,
Yi Tseng47eac892018-07-11 02:17:04 +08001718 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001719 }
1720 }
1721 ]
1722 },
1723 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001724 "name" : "FabricIngress.next.mpls_routing_hashed",
Carmelo Casconef645e842018-07-16 18:31:52 +02001725 "id" : 25,
Esin Karaman971fb7f2017-12-28 13:44:52 +00001726 "runtime_data" : [
1727 {
1728 "name" : "port_num",
1729 "bitwidth" : 9
1730 },
1731 {
1732 "name" : "smac",
1733 "bitwidth" : 48
1734 },
1735 {
1736 "name" : "dmac",
1737 "bitwidth" : 48
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001738 },
1739 {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001740 "name" : "label",
1741 "bitwidth" : 20
Yi Tsengbe342052017-11-03 10:21:23 -07001742 }
1743 ],
1744 "primitives" : [
1745 {
1746 "op" : "assign",
1747 "parameters" : [
1748 {
1749 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001750 "value" : ["scalars", "fabric_metadata_t.mpls_label"]
1751 },
1752 {
1753 "type" : "runtime_data",
1754 "value" : 3
1755 }
1756 ],
1757 "source_info" : {
1758 "filename" : "include/control/next.p4",
1759 "line" : 46,
1760 "column" : 8,
1761 "source_fragment" : "fabric_metadata.mpls_label = label; ..."
1762 }
1763 },
1764 {
1765 "op" : "assign",
1766 "parameters" : [
1767 {
1768 "type" : "field",
Yi Tsengbe342052017-11-03 10:21:23 -07001769 "value" : ["ethernet", "src_addr"]
1770 },
1771 {
1772 "type" : "runtime_data",
1773 "value" : 1
1774 }
1775 ],
1776 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001777 "filename" : "include/control/next.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001778 "line" : 36,
Yi Tsengbe342052017-11-03 10:21:23 -07001779 "column" : 8,
1780 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
1781 }
1782 },
1783 {
1784 "op" : "assign",
1785 "parameters" : [
1786 {
1787 "type" : "field",
1788 "value" : ["ethernet", "dst_addr"]
1789 },
1790 {
1791 "type" : "runtime_data",
1792 "value" : 2
1793 }
1794 ],
1795 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001796 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001797 "line" : 41,
Yi Tsengbe342052017-11-03 10:21:23 -07001798 "column" : 8,
1799 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
1800 }
1801 },
1802 {
1803 "op" : "assign",
1804 "parameters" : [
1805 {
1806 "type" : "field",
1807 "value" : ["standard_metadata", "egress_spec"]
1808 },
1809 {
1810 "type" : "runtime_data",
1811 "value" : 0
1812 }
1813 ],
1814 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001815 "filename" : "include/control/next.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001816 "line" : 31,
1817 "column" : 5,
Yi Tsengbe342052017-11-03 10:21:23 -07001818 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
1819 }
Yi Tsengbe342052017-11-03 10:21:23 -07001820 }
1821 ]
1822 },
1823 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001824 "name" : "FabricIngress.next.set_mcast_group_id",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001825 "id" : 26,
1826 "runtime_data" : [
1827 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001828 "name" : "group_id",
Esin Karaman971fb7f2017-12-28 13:44:52 +00001829 "bitwidth" : 16
1830 }
1831 ],
1832 "primitives" : [
1833 {
1834 "op" : "assign",
1835 "parameters" : [
1836 {
1837 "type" : "field",
1838 "value" : ["standard_metadata", "mcast_grp"]
1839 },
1840 {
1841 "type" : "runtime_data",
1842 "value" : 0
1843 }
1844 ],
1845 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001846 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07001847 "line" : 213,
Esin Karaman971fb7f2017-12-28 13:44:52 +00001848 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001849 "source_fragment" : "standard_metadata.mcast_grp = group_id"
Esin Karaman971fb7f2017-12-28 13:44:52 +00001850 }
Carmelo Casconea5400af2018-07-17 22:11:54 +02001851 },
1852 {
1853 "op" : "assign",
1854 "parameters" : [
1855 {
1856 "type" : "field",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001857 "value" : ["scalars", "fabric_metadata_t.is_multicast"]
Carmelo Casconea5400af2018-07-17 22:11:54 +02001858 },
1859 {
1860 "type" : "expression",
1861 "value" : {
1862 "type" : "expression",
1863 "value" : {
1864 "op" : "b2d",
1865 "left" : null,
1866 "right" : {
1867 "type" : "bool",
1868 "value" : true
1869 }
1870 }
1871 }
1872 }
1873 ],
1874 "source_info" : {
1875 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07001876 "line" : 214,
Carmelo Casconea5400af2018-07-17 22:11:54 +02001877 "column" : 8,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001878 "source_fragment" : "fabric_metadata.is_multicast = true"
Carmelo Casconea5400af2018-07-17 22:11:54 +02001879 }
Esin Karaman971fb7f2017-12-28 13:44:52 +00001880 }
1881 ]
1882 },
1883 {
1884 "name" : "act",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001885 "id" : 27,
Yi Tsengbe342052017-11-03 10:21:23 -07001886 "runtime_data" : [],
1887 "primitives" : [
1888 {
1889 "op" : "assign",
1890 "parameters" : [
1891 {
1892 "type" : "field",
1893 "value" : ["standard_metadata", "egress_spec"]
1894 },
1895 {
1896 "type" : "field",
1897 "value" : ["packet_out", "egress_port"]
1898 }
1899 ],
1900 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001901 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001902 "line" : 25,
Yi Tsengbe342052017-11-03 10:21:23 -07001903 "column" : 12,
1904 "source_fragment" : "standard_metadata.egress_spec = hdr.packet_out.egress_port"
1905 }
Yi Tseng1d842672017-11-28 16:06:52 -08001906 },
1907 {
1908 "op" : "remove_header",
1909 "parameters" : [
1910 {
1911 "type" : "header",
1912 "value" : "packet_out"
1913 }
1914 ],
1915 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001916 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001917 "line" : 26,
Yi Tseng1d842672017-11-28 16:06:52 -08001918 "column" : 12,
1919 "source_fragment" : "hdr.packet_out.setInvalid()"
1920 }
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07001921 },
1922 {
1923 "op" : "assign",
1924 "parameters" : [
1925 {
1926 "type" : "field",
1927 "value" : ["scalars", "fabric_metadata_t.is_controller_packet_out"]
1928 },
1929 {
1930 "type" : "expression",
1931 "value" : {
1932 "type" : "expression",
1933 "value" : {
1934 "op" : "b2d",
1935 "left" : null,
1936 "right" : {
1937 "type" : "bool",
1938 "value" : true
1939 }
1940 }
1941 }
1942 }
1943 ],
1944 "source_info" : {
1945 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001946 "line" : 27,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07001947 "column" : 12,
1948 "source_fragment" : "fabric_metadata.is_controller_packet_out = true"
1949 }
Carmelo Cascone9b607da2019-05-08 14:03:01 -07001950 },
1951 {
1952 "op" : "exit",
1953 "parameters" : [],
1954 "source_info" : {
1955 "filename" : "include/control/packetio.p4",
1956 "line" : 29,
1957 "column" : 12,
1958 "source_fragment" : "exit"
1959 }
Yi Tsengbe342052017-11-03 10:21:23 -07001960 }
1961 ]
1962 },
1963 {
1964 "name" : "act_0",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001965 "id" : 28,
Yi Tsengbe342052017-11-03 10:21:23 -07001966 "runtime_data" : [],
1967 "primitives" : [
1968 {
1969 "op" : "assign",
1970 "parameters" : [
1971 {
1972 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001973 "value" : ["scalars", "fabric_metadata_t.eth_type"]
Yi Tseng1d842672017-11-28 16:06:52 -08001974 },
1975 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001976 "type" : "field",
1977 "value" : ["vlan_tag", "eth_type"]
Yi Tseng1d842672017-11-28 16:06:52 -08001978 }
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001979 ],
1980 "source_info" : {
1981 "filename" : "include/control/filtering.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07001982 "line" : 105,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001983 "column" : 12,
1984 "source_fragment" : "fabric_metadata.eth_type = hdr.vlan_tag.eth_type"
1985 }
1986 },
1987 {
1988 "op" : "assign",
1989 "parameters" : [
1990 {
1991 "type" : "field",
1992 "value" : ["scalars", "fabric_metadata_t.vlan_id"]
1993 },
1994 {
1995 "type" : "field",
1996 "value" : ["vlan_tag", "vlan_id"]
1997 }
1998 ],
1999 "source_info" : {
2000 "filename" : "include/control/filtering.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07002001 "line" : 106,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002002 "column" : 12,
2003 "source_fragment" : "fabric_metadata.vlan_id = hdr.vlan_tag.vlan_id"
2004 }
2005 },
2006 {
2007 "op" : "assign",
2008 "parameters" : [
2009 {
2010 "type" : "field",
2011 "value" : ["scalars", "fabric_metadata_t.vlan_pri"]
2012 },
2013 {
2014 "type" : "field",
2015 "value" : ["vlan_tag", "pri"]
2016 }
2017 ],
2018 "source_info" : {
2019 "filename" : "include/control/filtering.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07002020 "line" : 107,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002021 "column" : 12,
2022 "source_fragment" : "fabric_metadata.vlan_pri = hdr.vlan_tag.pri"
2023 }
2024 },
2025 {
2026 "op" : "assign",
2027 "parameters" : [
2028 {
2029 "type" : "field",
2030 "value" : ["scalars", "fabric_metadata_t.vlan_cfi"]
2031 },
2032 {
2033 "type" : "field",
2034 "value" : ["vlan_tag", "cfi"]
2035 }
2036 ],
2037 "source_info" : {
2038 "filename" : "include/control/filtering.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07002039 "line" : 108,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002040 "column" : 12,
2041 "source_fragment" : "fabric_metadata.vlan_cfi = hdr.vlan_tag.cfi"
2042 }
Yi Tseng1d842672017-11-28 16:06:52 -08002043 }
2044 ]
2045 },
2046 {
2047 "name" : "act_1",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002048 "id" : 29,
Yi Tseng1d842672017-11-28 16:06:52 -08002049 "runtime_data" : [],
2050 "primitives" : [
2051 {
2052 "op" : "assign",
2053 "parameters" : [
2054 {
2055 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002056 "value" : ["scalars", "fabric_metadata_t.mpls_ttl"]
2057 },
2058 {
2059 "type" : "hexstr",
2060 "value" : "0x41"
2061 }
2062 ],
2063 "source_info" : {
2064 "filename" : "include/control/filtering.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07002065 "line" : 115,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002066 "column" : 12,
2067 "source_fragment" : "fabric_metadata.mpls_ttl = DEFAULT_MPLS_TTL + 1"
2068 }
2069 }
2070 ]
2071 },
2072 {
2073 "name" : "act_2",
2074 "id" : 30,
2075 "runtime_data" : [],
2076 "primitives" : [
2077 {
2078 "op" : "assign",
2079 "parameters" : [
2080 {
2081 "type" : "field",
2082 "value" : ["scalars", "tmp"]
Yi Tseng1d842672017-11-28 16:06:52 -08002083 },
2084 {
2085 "type" : "expression",
2086 "value" : {
2087 "type" : "expression",
2088 "value" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002089 "op" : "&",
2090 "left" : {
2091 "type" : "field",
2092 "value" : ["standard_metadata", "egress_spec"]
2093 },
Yi Tseng1d842672017-11-28 16:06:52 -08002094 "right" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002095 "type" : "hexstr",
2096 "value" : "0xffffffff"
Yi Tseng1d842672017-11-28 16:06:52 -08002097 }
2098 }
2099 }
2100 }
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002101 ],
2102 "source_info" : {
2103 "filename" : "include/control/port_counter.p4",
2104 "line" : 31,
2105 "column" : 38,
2106 "source_fragment" : "(bit<32>)standard_metadata.egress_spec"
2107 }
2108 },
Carmelo Casconea5400af2018-07-17 22:11:54 +02002109 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002110 "op" : "count",
Carmelo Casconea5400af2018-07-17 22:11:54 +02002111 "parameters" : [
2112 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002113 "type" : "counter_array",
2114 "value" : "FabricIngress.port_counters_control.egress_port_counter"
Carmelo Casconea5400af2018-07-17 22:11:54 +02002115 },
2116 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002117 "type" : "field",
2118 "value" : ["scalars", "tmp"]
Carmelo Casconea5400af2018-07-17 22:11:54 +02002119 }
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002120 ],
2121 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002122 "filename" : "include/control/port_counter.p4",
2123 "line" : 31,
2124 "column" : 12,
2125 "source_fragment" : "egress_port_counter.count((bit<32>)standard_metadata.egress_spec)"
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002126 }
Carmelo Casconea5400af2018-07-17 22:11:54 +02002127 }
2128 ]
2129 },
2130 {
Yi Tsengbd46d052018-01-22 17:18:16 -08002131 "name" : "act_3",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002132 "id" : 31,
2133 "runtime_data" : [],
2134 "primitives" : [
2135 {
2136 "op" : "assign",
2137 "parameters" : [
2138 {
2139 "type" : "field",
2140 "value" : ["scalars", "tmp_1"]
2141 },
2142 {
2143 "type" : "expression",
2144 "value" : {
2145 "type" : "expression",
2146 "value" : {
2147 "op" : "&",
2148 "left" : {
2149 "type" : "field",
2150 "value" : ["standard_metadata", "ingress_port"]
2151 },
2152 "right" : {
2153 "type" : "hexstr",
2154 "value" : "0xffffffff"
2155 }
2156 }
2157 }
2158 }
2159 ],
2160 "source_info" : {
2161 "filename" : "include/control/port_counter.p4",
2162 "line" : 34,
2163 "column" : 39,
2164 "source_fragment" : "(bit<32>)standard_metadata.ingress_port"
2165 }
2166 },
2167 {
2168 "op" : "count",
2169 "parameters" : [
2170 {
2171 "type" : "counter_array",
2172 "value" : "FabricIngress.port_counters_control.ingress_port_counter"
2173 },
2174 {
2175 "type" : "field",
2176 "value" : ["scalars", "tmp_1"]
2177 }
2178 ],
2179 "source_info" : {
2180 "filename" : "include/control/port_counter.p4",
2181 "line" : 34,
2182 "column" : 12,
2183 "source_fragment" : "ingress_port_counter.count((bit<32>)standard_metadata.ingress_port)"
2184 }
2185 }
2186 ]
2187 },
2188 {
2189 "name" : "nop",
2190 "id" : 32,
2191 "runtime_data" : [],
2192 "primitives" : []
2193 },
2194 {
2195 "name" : "FabricEgress.egress_next.pop_mpls_if_present",
2196 "id" : 33,
2197 "runtime_data" : [],
2198 "primitives" : [
2199 {
2200 "op" : "remove_header",
2201 "parameters" : [
2202 {
2203 "type" : "header",
2204 "value" : "mpls"
2205 }
2206 ],
2207 "source_info" : {
2208 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07002209 "line" : 252,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002210 "column" : 8,
2211 "source_fragment" : "hdr.mpls.setInvalid()"
2212 }
2213 },
2214 {
2215 "op" : "assign",
2216 "parameters" : [
2217 {
2218 "type" : "field",
2219 "value" : ["scalars", "fabric_metadata_t.eth_type"]
2220 },
2221 {
2222 "type" : "field",
2223 "value" : ["scalars", "fabric_metadata_t.ip_eth_type"]
2224 }
2225 ],
2226 "source_info" : {
2227 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07002228 "line" : 254,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002229 "column" : 8,
2230 "source_fragment" : "fabric_metadata.eth_type = fabric_metadata.ip_eth_type"
2231 }
2232 }
2233 ]
2234 },
2235 {
2236 "name" : "FabricEgress.egress_next.set_mpls",
2237 "id" : 34,
2238 "runtime_data" : [],
2239 "primitives" : [
2240 {
2241 "op" : "add_header",
2242 "parameters" : [
2243 {
2244 "type" : "header",
2245 "value" : "mpls"
2246 }
2247 ],
2248 "source_info" : {
2249 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07002250 "line" : 259,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002251 "column" : 8,
2252 "source_fragment" : "hdr.mpls.setValid()"
2253 }
2254 },
2255 {
2256 "op" : "assign",
2257 "parameters" : [
2258 {
2259 "type" : "field",
2260 "value" : ["mpls", "label"]
2261 },
2262 {
2263 "type" : "field",
2264 "value" : ["scalars", "fabric_metadata_t.mpls_label"]
2265 }
2266 ],
2267 "source_info" : {
2268 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07002269 "line" : 260,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002270 "column" : 8,
2271 "source_fragment" : "hdr.mpls.label = fabric_metadata.mpls_label"
2272 }
2273 },
2274 {
2275 "op" : "assign",
2276 "parameters" : [
2277 {
2278 "type" : "field",
2279 "value" : ["mpls", "tc"]
2280 },
2281 {
2282 "type" : "hexstr",
2283 "value" : "0x00"
2284 }
2285 ],
2286 "source_info" : {
2287 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07002288 "line" : 261,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002289 "column" : 8,
2290 "source_fragment" : "hdr.mpls.tc = 3w0"
2291 }
2292 },
2293 {
2294 "op" : "assign",
2295 "parameters" : [
2296 {
2297 "type" : "field",
2298 "value" : ["mpls", "bos"]
2299 },
2300 {
2301 "type" : "hexstr",
2302 "value" : "0x01"
2303 }
2304 ],
2305 "source_info" : {
2306 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07002307 "line" : 262,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002308 "column" : 8,
2309 "source_fragment" : "hdr.mpls.bos = 1w1"
2310 }
2311 },
2312 {
2313 "op" : "assign",
2314 "parameters" : [
2315 {
2316 "type" : "field",
2317 "value" : ["mpls", "ttl"]
2318 },
2319 {
2320 "type" : "field",
2321 "value" : ["scalars", "fabric_metadata_t.mpls_ttl"]
2322 }
2323 ],
2324 "source_info" : {
2325 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07002326 "line" : 263,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002327 "column" : 8,
2328 "source_fragment" : "hdr.mpls.ttl = fabric_metadata.mpls_ttl"
2329 }
2330 },
2331 {
2332 "op" : "assign",
2333 "parameters" : [
2334 {
2335 "type" : "field",
2336 "value" : ["scalars", "fabric_metadata_t.eth_type"]
2337 },
2338 {
2339 "type" : "hexstr",
2340 "value" : "0x8847"
2341 }
2342 ],
2343 "source_info" : {
2344 "filename" : "include/control/../define.p4",
2345 "line" : 108,
2346 "column" : 31,
2347 "source_fragment" : "0x8847; ..."
2348 }
2349 }
2350 ]
2351 },
2352 {
2353 "name" : "FabricEgress.egress_next.push_vlan",
2354 "id" : 35,
2355 "runtime_data" : [],
2356 "primitives" : [
2357 {
2358 "op" : "add_header",
2359 "parameters" : [
2360 {
2361 "type" : "header",
2362 "value" : "vlan_tag"
2363 }
2364 ],
2365 "source_info" : {
2366 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07002367 "line" : 271,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002368 "column" : 8,
2369 "source_fragment" : "hdr.vlan_tag.setValid()"
2370 }
2371 },
2372 {
2373 "op" : "assign",
2374 "parameters" : [
2375 {
2376 "type" : "field",
2377 "value" : ["vlan_tag", "cfi"]
2378 },
2379 {
2380 "type" : "field",
2381 "value" : ["scalars", "fabric_metadata_t.vlan_cfi"]
2382 }
2383 ],
2384 "source_info" : {
2385 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07002386 "line" : 272,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002387 "column" : 8,
2388 "source_fragment" : "hdr.vlan_tag.cfi = fabric_metadata.vlan_cfi"
2389 }
2390 },
2391 {
2392 "op" : "assign",
2393 "parameters" : [
2394 {
2395 "type" : "field",
2396 "value" : ["vlan_tag", "pri"]
2397 },
2398 {
2399 "type" : "field",
2400 "value" : ["scalars", "fabric_metadata_t.vlan_pri"]
2401 }
2402 ],
2403 "source_info" : {
2404 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07002405 "line" : 273,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002406 "column" : 8,
2407 "source_fragment" : "hdr.vlan_tag.pri = fabric_metadata.vlan_pri"
2408 }
2409 },
2410 {
2411 "op" : "assign",
2412 "parameters" : [
2413 {
2414 "type" : "field",
2415 "value" : ["vlan_tag", "eth_type"]
2416 },
2417 {
2418 "type" : "field",
2419 "value" : ["scalars", "fabric_metadata_t.eth_type"]
2420 }
2421 ],
2422 "source_info" : {
2423 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07002424 "line" : 274,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002425 "column" : 8,
2426 "source_fragment" : "hdr.vlan_tag.eth_type = fabric_metadata.eth_type"
2427 }
2428 },
2429 {
2430 "op" : "assign",
2431 "parameters" : [
2432 {
2433 "type" : "field",
2434 "value" : ["vlan_tag", "vlan_id"]
2435 },
2436 {
2437 "type" : "field",
2438 "value" : ["scalars", "fabric_metadata_t.vlan_id"]
2439 }
2440 ],
2441 "source_info" : {
2442 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07002443 "line" : 275,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002444 "column" : 8,
2445 "source_fragment" : "hdr.vlan_tag.vlan_id = fabric_metadata.vlan_id"
2446 }
2447 },
2448 {
2449 "op" : "assign",
2450 "parameters" : [
2451 {
2452 "type" : "field",
2453 "value" : ["ethernet", "eth_type"]
2454 },
2455 {
2456 "type" : "hexstr",
2457 "value" : "0x8100"
2458 }
2459 ],
2460 "source_info" : {
2461 "filename" : "include/control/../define.p4",
2462 "line" : 107,
2463 "column" : 31,
2464 "source_fragment" : "0x8100; ..."
2465 }
2466 }
2467 ]
2468 },
2469 {
2470 "name" : "FabricEgress.egress_next.pop_vlan",
Charles Chancd03f072018-08-31 17:46:37 -07002471 "id" : 36,
Yi Tseng1d842672017-11-28 16:06:52 -08002472 "runtime_data" : [],
2473 "primitives" : [
2474 {
2475 "op" : "assign",
2476 "parameters" : [
2477 {
2478 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002479 "value" : ["ethernet", "eth_type"]
Carmelo Casconea5400af2018-07-17 22:11:54 +02002480 },
2481 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002482 "type" : "field",
2483 "value" : ["scalars", "fabric_metadata_t.eth_type"]
Carmelo Casconea5400af2018-07-17 22:11:54 +02002484 }
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002485 ],
2486 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002487 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07002488 "line" : 286,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002489 "column" : 8,
2490 "source_fragment" : "hdr.ethernet.eth_type = fabric_metadata.eth_type"
2491 }
2492 },
2493 {
2494 "op" : "remove_header",
2495 "parameters" : [
2496 {
2497 "type" : "header",
2498 "value" : "vlan_tag"
2499 }
2500 ],
2501 "source_info" : {
2502 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07002503 "line" : 287,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002504 "column" : 8,
2505 "source_fragment" : "hdr.vlan_tag.setInvalid()"
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002506 }
Carmelo Casconea5400af2018-07-17 22:11:54 +02002507 }
2508 ]
2509 },
2510 {
2511 "name" : "act_4",
Charles Chancd03f072018-08-31 17:46:37 -07002512 "id" : 37,
Carmelo Casconea5400af2018-07-17 22:11:54 +02002513 "runtime_data" : [],
2514 "primitives" : [
2515 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07002516 "op" : "exit",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002517 "parameters" : [],
2518 "source_info" : {
2519 "filename" : "include/control/packetio.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07002520 "line" : 41,
2521 "column" : 12,
2522 "source_fragment" : "exit"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002523 }
Carmelo Casconea5400af2018-07-17 22:11:54 +02002524 }
2525 ]
2526 },
2527 {
2528 "name" : "act_5",
Charles Chancd03f072018-08-31 17:46:37 -07002529 "id" : 38,
Carmelo Casconea5400af2018-07-17 22:11:54 +02002530 "runtime_data" : [],
2531 "primitives" : [
2532 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07002533 "op" : "mark_to_drop",
2534 "parameters" : [
2535 {
2536 "type" : "header",
2537 "value" : "standard_metadata"
2538 }
2539 ],
2540 "source_info" : {
2541 "filename" : "include/control/packetio.p4",
2542 "line" : 47,
2543 "column" : 16,
2544 "source_fragment" : "mark_to_drop(standard_metadata)"
2545 }
2546 }
2547 ]
2548 },
2549 {
2550 "name" : "act_6",
2551 "id" : 39,
2552 "runtime_data" : [],
2553 "primitives" : [
2554 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002555 "op" : "add_header",
2556 "parameters" : [
2557 {
2558 "type" : "header",
2559 "value" : "packet_in"
2560 }
2561 ],
2562 "source_info" : {
2563 "filename" : "include/control/packetio.p4",
2564 "line" : 49,
2565 "column" : 12,
2566 "source_fragment" : "hdr.packet_in.setValid()"
2567 }
2568 },
2569 {
Carmelo Casconea5400af2018-07-17 22:11:54 +02002570 "op" : "assign",
2571 "parameters" : [
2572 {
2573 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002574 "value" : ["packet_in", "ingress_port"]
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002575 },
2576 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002577 "type" : "field",
2578 "value" : ["standard_metadata", "ingress_port"]
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002579 }
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002580 ],
2581 "source_info" : {
2582 "filename" : "include/control/packetio.p4",
2583 "line" : 50,
2584 "column" : 12,
2585 "source_fragment" : "hdr.packet_in.ingress_port = standard_metadata.ingress_port"
2586 }
Carmelo Cascone9b607da2019-05-08 14:03:01 -07002587 },
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002588 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07002589 "op" : "exit",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002590 "parameters" : [],
2591 "source_info" : {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07002592 "filename" : "include/control/packetio.p4",
2593 "line" : 52,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002594 "column" : 12,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07002595 "source_fragment" : "exit"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002596 }
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002597 }
2598 ]
2599 },
2600 {
2601 "name" : "act_7",
Charles Chancd03f072018-08-31 17:46:37 -07002602 "id" : 40,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002603 "runtime_data" : [],
2604 "primitives" : [
2605 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07002606 "op" : "mark_to_drop",
2607 "parameters" : [
2608 {
2609 "type" : "header",
2610 "value" : "standard_metadata"
2611 }
2612 ],
2613 "source_info" : {
2614 "filename" : "include/control/next.p4",
2615 "line" : 308,
2616 "column" : 12,
2617 "source_fragment" : "mark_to_drop(standard_metadata)"
2618 }
2619 }
2620 ]
2621 },
2622 {
2623 "name" : "act_8",
2624 "id" : 41,
2625 "runtime_data" : [],
2626 "primitives" : [
2627 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002628 "op" : "assign",
2629 "parameters" : [
2630 {
2631 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002632 "value" : ["scalars", "egress_next_tmp"]
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002633 },
2634 {
2635 "type" : "expression",
2636 "value" : {
2637 "type" : "expression",
2638 "value" : {
2639 "op" : "b2d",
2640 "left" : null,
2641 "right" : {
2642 "type" : "bool",
2643 "value" : true
2644 }
2645 }
2646 }
2647 }
2648 ]
2649 }
2650 ]
2651 },
2652 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07002653 "name" : "act_9",
2654 "id" : 42,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002655 "runtime_data" : [],
2656 "primitives" : [
2657 {
2658 "op" : "assign",
2659 "parameters" : [
2660 {
2661 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002662 "value" : ["scalars", "egress_next_tmp"]
Carmelo Casconea5400af2018-07-17 22:11:54 +02002663 },
2664 {
2665 "type" : "expression",
2666 "value" : {
2667 "type" : "expression",
2668 "value" : {
2669 "op" : "b2d",
2670 "left" : null,
2671 "right" : {
2672 "type" : "bool",
2673 "value" : false
2674 }
2675 }
2676 }
2677 }
2678 ]
2679 }
2680 ]
2681 },
2682 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07002683 "name" : "act_10",
2684 "id" : 43,
Carmelo Casconea5400af2018-07-17 22:11:54 +02002685 "runtime_data" : [],
2686 "primitives" : [
2687 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07002688 "op" : "mark_to_drop",
2689 "parameters" : [
2690 {
2691 "type" : "header",
2692 "value" : "standard_metadata"
2693 }
2694 ],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002695 "source_info" : {
2696 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07002697 "line" : 327,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002698 "column" : 35,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07002699 "source_fragment" : "mark_to_drop(standard_metadata)"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002700 }
Carmelo Casconea5400af2018-07-17 22:11:54 +02002701 }
2702 ]
2703 },
2704 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07002705 "name" : "act_11",
2706 "id" : 44,
Carmelo Casconea5400af2018-07-17 22:11:54 +02002707 "runtime_data" : [],
2708 "primitives" : [
2709 {
2710 "op" : "assign",
2711 "parameters" : [
2712 {
2713 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002714 "value" : ["mpls", "ttl"]
Carmelo Casconea5400af2018-07-17 22:11:54 +02002715 },
2716 {
2717 "type" : "expression",
2718 "value" : {
2719 "type" : "expression",
2720 "value" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002721 "op" : "&",
2722 "left" : {
2723 "type" : "expression",
2724 "value" : {
2725 "op" : "+",
2726 "left" : {
2727 "type" : "field",
2728 "value" : ["mpls", "ttl"]
2729 },
2730 "right" : {
2731 "type" : "hexstr",
2732 "value" : "0xff"
2733 }
2734 }
2735 },
Carmelo Casconea5400af2018-07-17 22:11:54 +02002736 "right" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002737 "type" : "hexstr",
2738 "value" : "0xff"
Carmelo Casconea5400af2018-07-17 22:11:54 +02002739 }
2740 }
2741 }
2742 }
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002743 ],
2744 "source_info" : {
2745 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07002746 "line" : 326,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002747 "column" : 12,
2748 "source_fragment" : "hdr.mpls.ttl = hdr.mpls.ttl - 1"
2749 }
Carmelo Casconea5400af2018-07-17 22:11:54 +02002750 }
2751 ]
2752 },
2753 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07002754 "name" : "act_12",
2755 "id" : 45,
Carmelo Casconea5400af2018-07-17 22:11:54 +02002756 "runtime_data" : [],
2757 "primitives" : [
2758 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07002759 "op" : "mark_to_drop",
2760 "parameters" : [
2761 {
2762 "type" : "header",
2763 "value" : "standard_metadata"
2764 }
2765 ],
Carmelo Casconea5400af2018-07-17 22:11:54 +02002766 "source_info" : {
2767 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07002768 "line" : 331,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002769 "column" : 39,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07002770 "source_fragment" : "mark_to_drop(standard_metadata)"
Carmelo Casconea5400af2018-07-17 22:11:54 +02002771 }
2772 }
2773 ]
2774 },
2775 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07002776 "name" : "act_13",
2777 "id" : 46,
Carmelo Casconea5400af2018-07-17 22:11:54 +02002778 "runtime_data" : [],
2779 "primitives" : [
2780 {
2781 "op" : "assign",
2782 "parameters" : [
2783 {
2784 "type" : "field",
Yi Tseng1d842672017-11-28 16:06:52 -08002785 "value" : ["ipv4", "ttl"]
2786 },
2787 {
2788 "type" : "expression",
2789 "value" : {
2790 "type" : "expression",
2791 "value" : {
2792 "op" : "&",
2793 "left" : {
2794 "type" : "expression",
2795 "value" : {
2796 "op" : "+",
2797 "left" : {
2798 "type" : "field",
2799 "value" : ["ipv4", "ttl"]
2800 },
2801 "right" : {
2802 "type" : "hexstr",
2803 "value" : "0xff"
2804 }
2805 }
2806 },
2807 "right" : {
2808 "type" : "hexstr",
2809 "value" : "0xff"
2810 }
2811 }
2812 }
2813 }
2814 ],
2815 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002816 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07002817 "line" : 330,
Carmelo Casconea5400af2018-07-17 22:11:54 +02002818 "column" : 16,
Yi Tseng1d842672017-11-28 16:06:52 -08002819 "source_fragment" : "hdr.ipv4.ttl = hdr.ipv4.ttl - 1"
2820 }
2821 }
2822 ]
Yi Tsengbe342052017-11-03 10:21:23 -07002823 }
2824 ],
2825 "pipelines" : [
2826 {
2827 "name" : "ingress",
2828 "id" : 0,
2829 "source_info" : {
2830 "filename" : "fabric.p4",
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07002831 "line" : 46,
Yi Tsengbe342052017-11-03 10:21:23 -07002832 "column" : 8,
2833 "source_fragment" : "FabricIngress"
2834 },
2835 "init_table" : "node_2",
2836 "tables" : [
2837 {
2838 "name" : "tbl_act",
2839 "id" : 0,
Carmelo Cascone3032b872019-04-13 01:23:54 -07002840 "source_info" : {
2841 "filename" : "include/control/packetio.p4",
2842 "line" : 25,
2843 "column" : 42,
2844 "source_fragment" : "= hdr.packet_out.egress_port; ..."
2845 },
Yi Tsengbe342052017-11-03 10:21:23 -07002846 "key" : [],
2847 "match_type" : "exact",
2848 "type" : "simple",
2849 "max_size" : 1024,
2850 "with_counters" : false,
2851 "support_timeout" : false,
2852 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002853 "action_ids" : [27],
Yi Tsengbe342052017-11-03 10:21:23 -07002854 "actions" : ["act"],
Carmelo Cascone9b607da2019-05-08 14:03:01 -07002855 "base_default_next" : "node_4",
Yi Tsengbe342052017-11-03 10:21:23 -07002856 "next_tables" : {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07002857 "act" : "node_4"
Yi Tsengbe342052017-11-03 10:21:23 -07002858 },
2859 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002860 "action_id" : 27,
2861 "action_const" : true,
2862 "action_data" : [],
2863 "action_entry_const" : true
2864 }
2865 },
2866 {
2867 "name" : "tbl_act_0",
2868 "id" : 1,
Carmelo Cascone3032b872019-04-13 01:23:54 -07002869 "source_info" : {
2870 "filename" : "include/control/filtering.p4",
2871 "line" : 105,
2872 "column" : 37,
2873 "source_fragment" : "= hdr.vlan_tag.eth_type; ..."
2874 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002875 "key" : [],
2876 "match_type" : "exact",
2877 "type" : "simple",
2878 "max_size" : 1024,
2879 "with_counters" : false,
2880 "support_timeout" : false,
2881 "direct_meters" : null,
2882 "action_ids" : [28],
2883 "actions" : ["act_0"],
2884 "base_default_next" : "node_6",
2885 "next_tables" : {
2886 "act_0" : "node_6"
2887 },
2888 "default_entry" : {
2889 "action_id" : 28,
2890 "action_const" : true,
2891 "action_data" : [],
2892 "action_entry_const" : true
2893 }
2894 },
2895 {
2896 "name" : "tbl_act_1",
2897 "id" : 2,
Carmelo Cascone3032b872019-04-13 01:23:54 -07002898 "source_info" : {
2899 "filename" : "include/control/filtering.p4",
2900 "line" : 115,
2901 "column" : 37,
2902 "source_fragment" : "="
2903 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002904 "key" : [],
2905 "match_type" : "exact",
2906 "type" : "simple",
2907 "max_size" : 1024,
2908 "with_counters" : false,
2909 "support_timeout" : false,
2910 "direct_meters" : null,
2911 "action_ids" : [29],
2912 "actions" : ["act_1"],
2913 "base_default_next" : "FabricIngress.filtering.ingress_port_vlan",
2914 "next_tables" : {
2915 "act_1" : "FabricIngress.filtering.ingress_port_vlan"
2916 },
2917 "default_entry" : {
2918 "action_id" : 29,
Yi Tsengbe342052017-11-03 10:21:23 -07002919 "action_const" : true,
2920 "action_data" : [],
2921 "action_entry_const" : true
2922 }
2923 },
2924 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002925 "name" : "FabricIngress.filtering.ingress_port_vlan",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002926 "id" : 3,
Yi Tsengbe342052017-11-03 10:21:23 -07002927 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002928 "filename" : "include/control/filtering.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002929 "line" : 51,
Yi Tsengbe342052017-11-03 10:21:23 -07002930 "column" : 10,
2931 "source_fragment" : "ingress_port_vlan"
2932 },
2933 "key" : [
2934 {
2935 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002936 "name" : "ig_port",
Yi Tsengbe342052017-11-03 10:21:23 -07002937 "target" : ["standard_metadata", "ingress_port"],
2938 "mask" : null
2939 },
2940 {
2941 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002942 "name" : "vlan_is_valid",
Yi Tsengbe342052017-11-03 10:21:23 -07002943 "target" : ["vlan_tag", "$valid$"],
2944 "mask" : null
2945 },
2946 {
2947 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002948 "name" : "vlan_id",
Yi Tsengbe342052017-11-03 10:21:23 -07002949 "target" : ["vlan_tag", "vlan_id"],
2950 "mask" : null
2951 }
2952 ],
2953 "match_type" : "ternary",
2954 "type" : "simple",
2955 "max_size" : 1024,
Yi Tsengbd46d052018-01-22 17:18:16 -08002956 "with_counters" : true,
Yi Tsengbe342052017-11-03 10:21:23 -07002957 "support_timeout" : false,
2958 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002959 "action_ids" : [7, 8, 9],
2960 "actions" : ["FabricIngress.filtering.deny", "FabricIngress.filtering.permit", "FabricIngress.filtering.permit_with_internal_vlan"],
2961 "base_default_next" : "FabricIngress.filtering.fwd_classifier",
Yi Tsengbe342052017-11-03 10:21:23 -07002962 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002963 "FabricIngress.filtering.deny" : "FabricIngress.filtering.fwd_classifier",
2964 "FabricIngress.filtering.permit" : "FabricIngress.filtering.fwd_classifier",
2965 "FabricIngress.filtering.permit_with_internal_vlan" : "FabricIngress.filtering.fwd_classifier"
Yi Tsengbe342052017-11-03 10:21:23 -07002966 },
2967 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002968 "action_id" : 7,
Yi Tsengbe342052017-11-03 10:21:23 -07002969 "action_const" : true,
2970 "action_data" : [],
2971 "action_entry_const" : true
2972 }
2973 },
2974 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002975 "name" : "FabricIngress.filtering.fwd_classifier",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002976 "id" : 4,
Yi Tsengbe342052017-11-03 10:21:23 -07002977 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002978 "filename" : "include/control/filtering.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07002979 "line" : 87,
Yi Tsengbe342052017-11-03 10:21:23 -07002980 "column" : 10,
2981 "source_fragment" : "fwd_classifier"
2982 },
2983 "key" : [
2984 {
2985 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002986 "name" : "ig_port",
Yi Tsengbe342052017-11-03 10:21:23 -07002987 "target" : ["standard_metadata", "ingress_port"],
2988 "mask" : null
2989 },
2990 {
Charles Chan384aea22018-08-23 22:08:02 -07002991 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002992 "name" : "eth_dst",
Yi Tsengbe342052017-11-03 10:21:23 -07002993 "target" : ["ethernet", "dst_addr"],
2994 "mask" : null
2995 },
2996 {
2997 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002998 "name" : "eth_type",
2999 "target" : ["scalars", "fabric_metadata_t.eth_type"],
Yi Tsengbe342052017-11-03 10:21:23 -07003000 "mask" : null
3001 }
3002 ],
Charles Chan384aea22018-08-23 22:08:02 -07003003 "match_type" : "ternary",
Yi Tsengbe342052017-11-03 10:21:23 -07003004 "type" : "simple",
3005 "max_size" : 1024,
Yi Tsengbd46d052018-01-22 17:18:16 -08003006 "with_counters" : true,
Yi Tsengbe342052017-11-03 10:21:23 -07003007 "support_timeout" : false,
3008 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003009 "action_ids" : [10],
Yi Tseng27b9bc02018-04-12 14:52:40 +08003010 "actions" : ["FabricIngress.filtering.set_forwarding_type"],
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003011 "base_default_next" : "node_10",
Yi Tsengbe342052017-11-03 10:21:23 -07003012 "next_tables" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003013 "FabricIngress.filtering.set_forwarding_type" : "node_10"
Yi Tsengbe342052017-11-03 10:21:23 -07003014 },
3015 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003016 "action_id" : 10,
Yi Tsengbe342052017-11-03 10:21:23 -07003017 "action_const" : true,
3018 "action_data" : ["0x0"],
3019 "action_entry_const" : true
3020 }
3021 },
3022 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003023 "name" : "FabricIngress.forwarding.bridging",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003024 "id" : 5,
Yi Tsengbe342052017-11-03 10:21:23 -07003025 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003026 "filename" : "include/control/forwarding.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07003027 "line" : 46,
Yi Tsengbe342052017-11-03 10:21:23 -07003028 "column" : 10,
3029 "source_fragment" : "bridging"
3030 },
3031 "key" : [
3032 {
3033 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003034 "name" : "vlan_id",
3035 "target" : ["scalars", "fabric_metadata_t.vlan_id"],
Yi Tsengbe342052017-11-03 10:21:23 -07003036 "mask" : null
3037 },
3038 {
3039 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003040 "name" : "eth_dst",
Yi Tsengbe342052017-11-03 10:21:23 -07003041 "target" : ["ethernet", "dst_addr"],
3042 "mask" : null
3043 }
3044 ],
3045 "match_type" : "ternary",
3046 "type" : "simple",
3047 "max_size" : 1024,
Yi Tsengbd46d052018-01-22 17:18:16 -08003048 "with_counters" : true,
Yi Tsengbe342052017-11-03 10:21:23 -07003049 "support_timeout" : false,
3050 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003051 "action_ids" : [11, 0],
3052 "actions" : ["FabricIngress.forwarding.set_next_id_bridging", "nop"],
3053 "base_default_next" : "FabricIngress.acl.acl",
Yi Tseng1d842672017-11-28 16:06:52 -08003054 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003055 "FabricIngress.forwarding.set_next_id_bridging" : "FabricIngress.acl.acl",
3056 "nop" : "FabricIngress.acl.acl"
Yi Tseng1d842672017-11-28 16:06:52 -08003057 },
3058 "default_entry" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003059 "action_id" : 0,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003060 "action_const" : true,
Yi Tseng1d842672017-11-28 16:06:52 -08003061 "action_data" : [],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003062 "action_entry_const" : true
Yi Tseng1d842672017-11-28 16:06:52 -08003063 }
3064 },
3065 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003066 "name" : "FabricIngress.forwarding.mpls",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003067 "id" : 6,
Yi Tseng1d842672017-11-28 16:06:52 -08003068 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003069 "filename" : "include/control/forwarding.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07003070 "line" : 71,
Yi Tseng1d842672017-11-28 16:06:52 -08003071 "column" : 10,
3072 "source_fragment" : "mpls"
3073 },
3074 "key" : [
3075 {
3076 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003077 "name" : "mpls_label",
3078 "target" : ["scalars", "fabric_metadata_t.mpls_label"],
Yi Tseng1d842672017-11-28 16:06:52 -08003079 "mask" : null
3080 }
3081 ],
3082 "match_type" : "exact",
3083 "type" : "simple",
3084 "max_size" : 1024,
Yi Tsengbd46d052018-01-22 17:18:16 -08003085 "with_counters" : true,
Yi Tseng1d842672017-11-28 16:06:52 -08003086 "support_timeout" : false,
3087 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003088 "action_ids" : [12, 1],
3089 "actions" : ["FabricIngress.forwarding.pop_mpls_and_next", "nop"],
3090 "base_default_next" : "FabricIngress.acl.acl",
Yi Tseng1d842672017-11-28 16:06:52 -08003091 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003092 "FabricIngress.forwarding.pop_mpls_and_next" : "FabricIngress.acl.acl",
3093 "nop" : "FabricIngress.acl.acl"
Yi Tseng1d842672017-11-28 16:06:52 -08003094 },
3095 "default_entry" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003096 "action_id" : 1,
Yi Tseng1d842672017-11-28 16:06:52 -08003097 "action_const" : true,
3098 "action_data" : [],
3099 "action_entry_const" : true
3100 }
3101 },
3102 {
Charles Chan384aea22018-08-23 22:08:02 -07003103 "name" : "FabricIngress.forwarding.routing_v4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003104 "id" : 7,
Yi Tseng1d842672017-11-28 16:06:52 -08003105 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003106 "filename" : "include/control/forwarding.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07003107 "line" : 101,
Yi Tseng1d842672017-11-28 16:06:52 -08003108 "column" : 10,
Charles Chan384aea22018-08-23 22:08:02 -07003109 "source_fragment" : "routing_v4"
Yi Tseng1d842672017-11-28 16:06:52 -08003110 },
3111 "key" : [
3112 {
3113 "match_type" : "lpm",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003114 "name" : "ipv4_dst",
Yi Tseng1d842672017-11-28 16:06:52 -08003115 "target" : ["ipv4", "dst_addr"],
3116 "mask" : null
3117 }
3118 ],
3119 "match_type" : "lpm",
3120 "type" : "simple",
3121 "max_size" : 1024,
Yi Tsengbd46d052018-01-22 17:18:16 -08003122 "with_counters" : true,
Yi Tseng1d842672017-11-28 16:06:52 -08003123 "support_timeout" : false,
3124 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003125 "action_ids" : [13, 14, 2],
3126 "actions" : ["FabricIngress.forwarding.set_next_id_routing_v4", "FabricIngress.forwarding.nop_routing_v4", "nop"],
3127 "base_default_next" : "FabricIngress.acl.acl",
Yi Tsengbe342052017-11-03 10:21:23 -07003128 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003129 "FabricIngress.forwarding.set_next_id_routing_v4" : "FabricIngress.acl.acl",
3130 "FabricIngress.forwarding.nop_routing_v4" : "FabricIngress.acl.acl",
3131 "nop" : "FabricIngress.acl.acl"
Yi Tsengbe342052017-11-03 10:21:23 -07003132 },
3133 "default_entry" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003134 "action_id" : 2,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003135 "action_const" : true,
Yi Tsengbe342052017-11-03 10:21:23 -07003136 "action_data" : [],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003137 "action_entry_const" : true
Yi Tsengbe342052017-11-03 10:21:23 -07003138 }
3139 },
3140 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003141 "name" : "FabricIngress.acl.acl",
3142 "id" : 8,
Yi Tsengbe342052017-11-03 10:21:23 -07003143 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003144 "filename" : "include/control/acl.p4",
3145 "line" : 60,
Yi Tsengbe342052017-11-03 10:21:23 -07003146 "column" : 10,
Yi Tsengbe342052017-11-03 10:21:23 -07003147 "source_fragment" : "acl"
3148 },
3149 "key" : [
3150 {
3151 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003152 "name" : "ig_port",
Yi Tsengbe342052017-11-03 10:21:23 -07003153 "target" : ["standard_metadata", "ingress_port"],
3154 "mask" : null
3155 },
3156 {
3157 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003158 "name" : "ip_proto",
Yi Tsengbe342052017-11-03 10:21:23 -07003159 "target" : ["scalars", "fabric_metadata_t.ip_proto"],
3160 "mask" : null
3161 },
3162 {
3163 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003164 "name" : "l4_sport",
3165 "target" : ["scalars", "fabric_metadata_t.l4_sport"],
Yi Tseng1d842672017-11-28 16:06:52 -08003166 "mask" : null
3167 },
3168 {
3169 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003170 "name" : "l4_dport",
3171 "target" : ["scalars", "fabric_metadata_t.l4_dport"],
Yi Tseng1d842672017-11-28 16:06:52 -08003172 "mask" : null
3173 },
3174 {
3175 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003176 "name" : "eth_src",
Yi Tsengbe342052017-11-03 10:21:23 -07003177 "target" : ["ethernet", "dst_addr"],
3178 "mask" : null
3179 },
3180 {
3181 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003182 "name" : "eth_dst",
Yi Tsengbe342052017-11-03 10:21:23 -07003183 "target" : ["ethernet", "src_addr"],
3184 "mask" : null
3185 },
3186 {
3187 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003188 "name" : "vlan_id",
Yi Tsengbe342052017-11-03 10:21:23 -07003189 "target" : ["vlan_tag", "vlan_id"],
3190 "mask" : null
3191 },
3192 {
3193 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003194 "name" : "eth_type",
3195 "target" : ["scalars", "fabric_metadata_t.eth_type"],
Yi Tseng8235a1a2018-07-24 20:57:28 +08003196 "mask" : null
3197 },
3198 {
3199 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003200 "name" : "ipv4_src",
Yi Tsengbe342052017-11-03 10:21:23 -07003201 "target" : ["ipv4", "src_addr"],
3202 "mask" : null
3203 },
3204 {
3205 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003206 "name" : "ipv4_dst",
Yi Tsengbe342052017-11-03 10:21:23 -07003207 "target" : ["ipv4", "dst_addr"],
3208 "mask" : null
3209 },
3210 {
3211 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003212 "name" : "icmp_type",
Yi Tsengbe342052017-11-03 10:21:23 -07003213 "target" : ["icmp", "icmp_type"],
3214 "mask" : null
3215 },
3216 {
3217 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003218 "name" : "icmp_code",
Yi Tsengbe342052017-11-03 10:21:23 -07003219 "target" : ["icmp", "icmp_code"],
3220 "mask" : null
3221 }
3222 ],
3223 "match_type" : "ternary",
3224 "type" : "simple",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07003225 "max_size" : 1024,
Yi Tsengbd46d052018-01-22 17:18:16 -08003226 "with_counters" : true,
Yi Tsengbe342052017-11-03 10:21:23 -07003227 "support_timeout" : false,
3228 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003229 "action_ids" : [15, 16, 17, 18, 19],
3230 "actions" : ["FabricIngress.acl.set_next_id_acl", "FabricIngress.acl.punt_to_cpu", "FabricIngress.acl.clone_to_cpu", "FabricIngress.acl.drop", "FabricIngress.acl.nop_acl"],
3231 "base_default_next" : "node_18",
Yi Tsengbe342052017-11-03 10:21:23 -07003232 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003233 "FabricIngress.acl.set_next_id_acl" : "node_18",
3234 "FabricIngress.acl.punt_to_cpu" : "node_18",
3235 "FabricIngress.acl.clone_to_cpu" : "node_18",
3236 "FabricIngress.acl.drop" : "node_18",
3237 "FabricIngress.acl.nop_acl" : "node_18"
Yi Tsengbe342052017-11-03 10:21:23 -07003238 },
3239 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003240 "action_id" : 19,
Yi Tsengbe342052017-11-03 10:21:23 -07003241 "action_const" : true,
3242 "action_data" : [],
3243 "action_entry_const" : true
3244 }
3245 },
3246 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003247 "name" : "FabricIngress.next.xconnect",
3248 "id" : 9,
3249 "source_info" : {
3250 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07003251 "line" : 104,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003252 "column" : 10,
3253 "source_fragment" : "xconnect"
3254 },
3255 "key" : [
3256 {
3257 "match_type" : "exact",
3258 "name" : "ig_port",
3259 "target" : ["standard_metadata", "ingress_port"],
3260 "mask" : null
3261 },
3262 {
3263 "match_type" : "exact",
3264 "name" : "next_id",
3265 "target" : ["scalars", "fabric_metadata_t.next_id"],
3266 "mask" : null
3267 }
3268 ],
3269 "match_type" : "exact",
3270 "type" : "simple",
3271 "max_size" : 1024,
3272 "with_counters" : true,
3273 "support_timeout" : false,
3274 "direct_meters" : null,
3275 "action_ids" : [21, 22, 4],
3276 "actions" : ["FabricIngress.next.output_xconnect", "FabricIngress.next.set_next_id_xconnect", "nop"],
3277 "base_default_next" : "FabricIngress.next.hashed",
3278 "next_tables" : {
3279 "FabricIngress.next.output_xconnect" : "FabricIngress.next.hashed",
3280 "FabricIngress.next.set_next_id_xconnect" : "FabricIngress.next.hashed",
3281 "nop" : "FabricIngress.next.hashed"
3282 },
3283 "default_entry" : {
3284 "action_id" : 4,
3285 "action_const" : true,
3286 "action_data" : [],
3287 "action_entry_const" : true
3288 }
3289 },
3290 {
3291 "name" : "FabricIngress.next.hashed",
3292 "id" : 10,
3293 "source_info" : {
3294 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07003295 "line" : 184,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003296 "column" : 10,
3297 "source_fragment" : "hashed"
3298 },
3299 "key" : [
3300 {
3301 "match_type" : "exact",
3302 "name" : "next_id",
3303 "target" : ["scalars", "fabric_metadata_t.next_id"],
3304 "mask" : null
3305 }
3306 ],
3307 "match_type" : "exact",
3308 "type" : "indirect_ws",
3309 "action_profile" : "FabricIngress.next.hashed_selector",
3310 "max_size" : 1024,
3311 "with_counters" : true,
3312 "support_timeout" : false,
3313 "direct_meters" : null,
3314 "action_ids" : [23, 24, 25, 5],
3315 "actions" : ["FabricIngress.next.output_hashed", "FabricIngress.next.routing_hashed", "FabricIngress.next.mpls_routing_hashed", "nop"],
3316 "base_default_next" : "FabricIngress.next.multicast",
3317 "next_tables" : {
3318 "FabricIngress.next.output_hashed" : "FabricIngress.next.multicast",
3319 "FabricIngress.next.routing_hashed" : "FabricIngress.next.multicast",
3320 "FabricIngress.next.mpls_routing_hashed" : "FabricIngress.next.multicast",
3321 "nop" : "FabricIngress.next.multicast"
3322 }
3323 },
3324 {
3325 "name" : "FabricIngress.next.multicast",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003326 "id" : 11,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003327 "source_info" : {
3328 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07003329 "line" : 218,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003330 "column" : 10,
3331 "source_fragment" : "multicast"
3332 },
3333 "key" : [
3334 {
3335 "match_type" : "exact",
3336 "name" : "next_id",
3337 "target" : ["scalars", "fabric_metadata_t.next_id"],
3338 "mask" : null
3339 }
3340 ],
3341 "match_type" : "exact",
3342 "type" : "simple",
3343 "max_size" : 1024,
3344 "with_counters" : true,
3345 "support_timeout" : false,
3346 "direct_meters" : null,
3347 "action_ids" : [26, 6],
3348 "actions" : ["FabricIngress.next.set_mcast_group_id", "nop"],
3349 "base_default_next" : "FabricIngress.next.next_vlan",
3350 "next_tables" : {
3351 "FabricIngress.next.set_mcast_group_id" : "FabricIngress.next.next_vlan",
3352 "nop" : "FabricIngress.next.next_vlan"
3353 },
3354 "default_entry" : {
3355 "action_id" : 6,
3356 "action_const" : true,
3357 "action_data" : [],
3358 "action_entry_const" : true
3359 }
3360 },
3361 {
3362 "name" : "FabricIngress.next.next_vlan",
3363 "id" : 12,
3364 "source_info" : {
3365 "filename" : "include/control/next.p4",
3366 "line" : 74,
3367 "column" : 10,
3368 "source_fragment" : "next_vlan"
3369 },
3370 "key" : [
3371 {
3372 "match_type" : "exact",
3373 "name" : "next_id",
3374 "target" : ["scalars", "fabric_metadata_t.next_id"],
3375 "mask" : null
3376 }
3377 ],
3378 "match_type" : "exact",
3379 "type" : "simple",
3380 "max_size" : 1024,
3381 "with_counters" : true,
3382 "support_timeout" : false,
3383 "direct_meters" : null,
3384 "action_ids" : [20, 3],
3385 "actions" : ["FabricIngress.next.set_vlan", "nop"],
3386 "base_default_next" : "node_23",
3387 "next_tables" : {
3388 "FabricIngress.next.set_vlan" : "node_23",
3389 "nop" : "node_23"
3390 },
3391 "default_entry" : {
3392 "action_id" : 3,
3393 "action_const" : true,
3394 "action_data" : [],
3395 "action_entry_const" : true
3396 }
3397 },
3398 {
3399 "name" : "tbl_act_2",
3400 "id" : 13,
Carmelo Cascone3032b872019-04-13 01:23:54 -07003401 "source_info" : {
3402 "filename" : "include/control/port_counter.p4",
3403 "line" : 31,
3404 "column" : 12,
3405 "source_fragment" : "egress_port_counter.count((bit<32>)standard_metadata.egress_spec)"
3406 },
Carmelo Casconea5400af2018-07-17 22:11:54 +02003407 "key" : [],
3408 "match_type" : "exact",
3409 "type" : "simple",
3410 "max_size" : 1024,
3411 "with_counters" : false,
3412 "support_timeout" : false,
3413 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003414 "action_ids" : [30],
3415 "actions" : ["act_2"],
3416 "base_default_next" : "node_25",
Carmelo Casconea5400af2018-07-17 22:11:54 +02003417 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003418 "act_2" : "node_25"
Carmelo Casconea5400af2018-07-17 22:11:54 +02003419 },
3420 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003421 "action_id" : 30,
Carmelo Casconea5400af2018-07-17 22:11:54 +02003422 "action_const" : true,
3423 "action_data" : [],
3424 "action_entry_const" : true
3425 }
3426 },
3427 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003428 "name" : "tbl_act_3",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003429 "id" : 14,
Carmelo Cascone3032b872019-04-13 01:23:54 -07003430 "source_info" : {
3431 "filename" : "include/control/port_counter.p4",
3432 "line" : 34,
3433 "column" : 12,
3434 "source_fragment" : "ingress_port_counter.count((bit<32>)standard_metadata.ingress_port)"
3435 },
Carmelo Casconea5400af2018-07-17 22:11:54 +02003436 "key" : [],
3437 "match_type" : "exact",
3438 "type" : "simple",
3439 "max_size" : 1024,
3440 "with_counters" : false,
3441 "support_timeout" : false,
3442 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003443 "action_ids" : [31],
3444 "actions" : ["act_3"],
Carmelo Casconea5400af2018-07-17 22:11:54 +02003445 "base_default_next" : null,
Esin Karaman971fb7f2017-12-28 13:44:52 +00003446 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003447 "act_3" : null
Yi Tseng27b9bc02018-04-12 14:52:40 +08003448 },
3449 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003450 "action_id" : 31,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003451 "action_const" : true,
3452 "action_data" : [],
3453 "action_entry_const" : true
3454 }
Yi Tsengbe342052017-11-03 10:21:23 -07003455 }
3456 ],
3457 "action_profiles" : [
3458 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003459 "name" : "FabricIngress.next.hashed_selector",
Yi Tsengbe342052017-11-03 10:21:23 -07003460 "id" : 0,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07003461 "source_info" : {
3462 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07003463 "line" : 165,
3464 "column" : 57,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003465 "source_fragment" : "hashed_selector"
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07003466 },
Carmelo Cascone70e816b2019-03-19 16:15:47 -07003467 "max_size" : 1024,
Yi Tsengbe342052017-11-03 10:21:23 -07003468 "selector" : {
3469 "algo" : "crc16",
3470 "input" : [
3471 {
3472 "type" : "field",
Yi Tseng3d3956d2018-01-31 17:28:05 -08003473 "value" : ["ipv4", "dst_addr"]
Yi Tsengbe342052017-11-03 10:21:23 -07003474 },
3475 {
3476 "type" : "field",
Yi Tseng3d3956d2018-01-31 17:28:05 -08003477 "value" : ["ipv4", "src_addr"]
Yi Tsengbe342052017-11-03 10:21:23 -07003478 },
3479 {
3480 "type" : "field",
Yi Tseng1d842672017-11-28 16:06:52 -08003481 "value" : ["scalars", "fabric_metadata_t.ip_proto"]
Yi Tsengbe342052017-11-03 10:21:23 -07003482 },
3483 {
3484 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003485 "value" : ["scalars", "fabric_metadata_t.l4_sport"]
Yi Tsengbe342052017-11-03 10:21:23 -07003486 },
3487 {
3488 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003489 "value" : ["scalars", "fabric_metadata_t.l4_dport"]
Yi Tsengbe342052017-11-03 10:21:23 -07003490 }
3491 ]
3492 }
3493 }
3494 ],
3495 "conditionals" : [
3496 {
3497 "name" : "node_2",
3498 "id" : 0,
3499 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003500 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003501 "line" : 24,
Yi Tsengbe342052017-11-03 10:21:23 -07003502 "column" : 12,
3503 "source_fragment" : "hdr.packet_out.isValid()"
3504 },
3505 "expression" : {
3506 "type" : "expression",
3507 "value" : {
Yi Tsengbd46d052018-01-22 17:18:16 -08003508 "op" : "d2b",
3509 "left" : null,
3510 "right" : {
Yi Tsengbe342052017-11-03 10:21:23 -07003511 "type" : "field",
3512 "value" : ["packet_out", "$valid$"]
Yi Tsengbe342052017-11-03 10:21:23 -07003513 }
3514 }
3515 },
3516 "true_next" : "tbl_act",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003517 "false_next" : "node_4"
Yi Tsengbe342052017-11-03 10:21:23 -07003518 },
3519 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003520 "name" : "node_4",
Yi Tsengbe342052017-11-03 10:21:23 -07003521 "id" : 1,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003522 "source_info" : {
3523 "filename" : "include/control/filtering.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07003524 "line" : 104,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003525 "column" : 12,
3526 "source_fragment" : "hdr.vlan_tag.isValid()"
3527 },
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003528 "expression" : {
3529 "type" : "expression",
3530 "value" : {
3531 "op" : "d2b",
3532 "left" : null,
3533 "right" : {
3534 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003535 "value" : ["vlan_tag", "$valid$"]
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003536 }
3537 }
3538 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003539 "true_next" : "tbl_act_0",
3540 "false_next" : "node_6"
3541 },
3542 {
3543 "name" : "node_6",
3544 "id" : 2,
3545 "source_info" : {
3546 "filename" : "include/control/filtering.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07003547 "line" : 110,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003548 "column" : 12,
3549 "source_fragment" : "!hdr.mpls.isValid()"
3550 },
3551 "expression" : {
3552 "type" : "expression",
3553 "value" : {
3554 "op" : "not",
3555 "left" : null,
3556 "right" : {
3557 "type" : "expression",
3558 "value" : {
3559 "op" : "d2b",
3560 "left" : null,
3561 "right" : {
3562 "type" : "field",
3563 "value" : ["mpls", "$valid$"]
3564 }
3565 }
3566 }
3567 }
3568 },
3569 "true_next" : "tbl_act_1",
3570 "false_next" : "FabricIngress.filtering.ingress_port_vlan"
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003571 },
3572 {
3573 "name" : "node_10",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003574 "id" : 3,
3575 "source_info" : {
3576 "filename" : "fabric.p4",
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07003577 "line" : 74,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003578 "column" : 12,
3579 "source_fragment" : "fabric_metadata.skip_forwarding == false"
3580 },
3581 "expression" : {
3582 "type" : "expression",
3583 "value" : {
3584 "op" : "==",
3585 "left" : {
3586 "type" : "expression",
3587 "value" : {
3588 "op" : "d2b",
3589 "left" : null,
3590 "right" : {
3591 "type" : "field",
3592 "value" : ["scalars", "fabric_metadata_t.skip_forwarding"]
3593 }
3594 }
3595 },
3596 "right" : {
3597 "type" : "bool",
3598 "value" : false
3599 }
3600 }
3601 },
3602 "true_next" : "node_11",
3603 "false_next" : "FabricIngress.acl.acl"
3604 },
3605 {
3606 "name" : "node_11",
3607 "id" : 4,
Yi Tsengbe342052017-11-03 10:21:23 -07003608 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003609 "filename" : "include/control/forwarding.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07003610 "line" : 141,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003611 "column" : 12,
Yi Tsengbe342052017-11-03 10:21:23 -07003612 "source_fragment" : "fabric_metadata.fwd_type == FWD_BRIDGING"
3613 },
3614 "expression" : {
3615 "type" : "expression",
3616 "value" : {
3617 "op" : "==",
3618 "left" : {
3619 "type" : "field",
3620 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
3621 },
3622 "right" : {
3623 "type" : "hexstr",
3624 "value" : "0x00"
3625 }
3626 }
3627 },
Yi Tseng27b9bc02018-04-12 14:52:40 +08003628 "true_next" : "FabricIngress.forwarding.bridging",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003629 "false_next" : "node_13"
Yi Tsengbe342052017-11-03 10:21:23 -07003630 },
3631 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003632 "name" : "node_13",
3633 "id" : 5,
Yi Tsengbe342052017-11-03 10:21:23 -07003634 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003635 "filename" : "include/control/forwarding.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07003636 "line" : 142,
Yi Tsengbe342052017-11-03 10:21:23 -07003637 "column" : 17,
3638 "source_fragment" : "fabric_metadata.fwd_type == FWD_MPLS"
3639 },
3640 "expression" : {
3641 "type" : "expression",
3642 "value" : {
3643 "op" : "==",
3644 "left" : {
3645 "type" : "field",
3646 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
3647 },
3648 "right" : {
3649 "type" : "hexstr",
3650 "value" : "0x01"
3651 }
3652 }
3653 },
Yi Tseng27b9bc02018-04-12 14:52:40 +08003654 "true_next" : "FabricIngress.forwarding.mpls",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003655 "false_next" : "node_15"
Yi Tsengbe342052017-11-03 10:21:23 -07003656 },
3657 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003658 "name" : "node_15",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003659 "id" : 6,
Yi Tsengbe342052017-11-03 10:21:23 -07003660 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003661 "filename" : "include/control/forwarding.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07003662 "line" : 143,
Yi Tsengbe342052017-11-03 10:21:23 -07003663 "column" : 17,
3664 "source_fragment" : "fabric_metadata.fwd_type == FWD_IPV4_UNICAST"
3665 },
3666 "expression" : {
3667 "type" : "expression",
3668 "value" : {
3669 "op" : "==",
3670 "left" : {
3671 "type" : "field",
3672 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
3673 },
3674 "right" : {
3675 "type" : "hexstr",
3676 "value" : "0x02"
3677 }
3678 }
3679 },
Charles Chan384aea22018-08-23 22:08:02 -07003680 "true_next" : "FabricIngress.forwarding.routing_v4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003681 "false_next" : "FabricIngress.acl.acl"
3682 },
3683 {
3684 "name" : "node_18",
3685 "id" : 7,
3686 "source_info" : {
3687 "filename" : "fabric.p4",
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07003688 "line" : 78,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003689 "column" : 12,
3690 "source_fragment" : "fabric_metadata.skip_next == false"
3691 },
3692 "expression" : {
3693 "type" : "expression",
3694 "value" : {
3695 "op" : "==",
3696 "left" : {
3697 "type" : "expression",
3698 "value" : {
3699 "op" : "d2b",
3700 "left" : null,
3701 "right" : {
3702 "type" : "field",
3703 "value" : ["scalars", "fabric_metadata_t.skip_next"]
3704 }
3705 }
3706 },
3707 "right" : {
3708 "type" : "bool",
3709 "value" : false
3710 }
3711 }
3712 },
3713 "false_next" : null,
3714 "true_next" : "FabricIngress.next.xconnect"
Yi Tseng27b9bc02018-04-12 14:52:40 +08003715 },
3716 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003717 "name" : "node_23",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003718 "id" : 8,
Yi Tseng27b9bc02018-04-12 14:52:40 +08003719 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003720 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003721 "line" : 30,
Yi Tsengbe342052017-11-03 10:21:23 -07003722 "column" : 12,
3723 "source_fragment" : "standard_metadata.egress_spec < 511"
3724 },
3725 "expression" : {
3726 "type" : "expression",
3727 "value" : {
3728 "op" : "<",
3729 "left" : {
3730 "type" : "field",
3731 "value" : ["standard_metadata", "egress_spec"]
3732 },
3733 "right" : {
3734 "type" : "hexstr",
3735 "value" : "0x01ff"
3736 }
3737 }
3738 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003739 "true_next" : "tbl_act_2",
3740 "false_next" : "node_25"
Yi Tsengbe342052017-11-03 10:21:23 -07003741 },
3742 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003743 "name" : "node_25",
3744 "id" : 9,
Yi Tsengbe342052017-11-03 10:21:23 -07003745 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003746 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003747 "line" : 33,
Yi Tsengbe342052017-11-03 10:21:23 -07003748 "column" : 12,
3749 "source_fragment" : "standard_metadata.ingress_port < 511"
3750 },
3751 "expression" : {
3752 "type" : "expression",
3753 "value" : {
3754 "op" : "<",
3755 "left" : {
3756 "type" : "field",
3757 "value" : ["standard_metadata", "ingress_port"]
3758 },
3759 "right" : {
3760 "type" : "hexstr",
3761 "value" : "0x01ff"
3762 }
3763 }
3764 },
Yi Tseng3a5731e2018-01-22 11:38:58 -08003765 "false_next" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003766 "true_next" : "tbl_act_3"
Yi Tseng3a5731e2018-01-22 11:38:58 -08003767 }
3768 ]
3769 },
3770 {
3771 "name" : "egress",
3772 "id" : 1,
3773 "source_info" : {
3774 "filename" : "fabric.p4",
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07003775 "line" : 92,
Yi Tseng3a5731e2018-01-22 11:38:58 -08003776 "column" : 8,
3777 "source_fragment" : "FabricEgress"
3778 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003779 "init_table" : "node_29",
Yi Tseng3a5731e2018-01-22 11:38:58 -08003780 "tables" : [
3781 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003782 "name" : "tbl_act_4",
3783 "id" : 15,
Carmelo Cascone3032b872019-04-13 01:23:54 -07003784 "source_info" : {
3785 "filename" : "include/control/packetio.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003786 "line" : 41,
3787 "column" : 12,
3788 "source_fragment" : "exit"
Carmelo Cascone3032b872019-04-13 01:23:54 -07003789 },
Carmelo Casconea5400af2018-07-17 22:11:54 +02003790 "key" : [],
3791 "match_type" : "exact",
3792 "type" : "simple",
3793 "max_size" : 1024,
3794 "with_counters" : false,
3795 "support_timeout" : false,
3796 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003797 "action_ids" : [37],
3798 "actions" : ["act_4"],
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003799 "base_default_next" : "node_31",
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07003800 "next_tables" : {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003801 "act_4" : "node_31"
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07003802 },
3803 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003804 "action_id" : 37,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07003805 "action_const" : true,
3806 "action_data" : [],
3807 "action_entry_const" : true
3808 }
3809 },
3810 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003811 "name" : "tbl_act_5",
3812 "id" : 16,
Carmelo Cascone3032b872019-04-13 01:23:54 -07003813 "source_info" : {
3814 "filename" : "include/control/packetio.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003815 "line" : 47,
3816 "column" : 16,
3817 "source_fragment" : "mark_to_drop(standard_metadata)"
Carmelo Cascone3032b872019-04-13 01:23:54 -07003818 },
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07003819 "key" : [],
3820 "match_type" : "exact",
3821 "type" : "simple",
3822 "max_size" : 1024,
3823 "with_counters" : false,
3824 "support_timeout" : false,
3825 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003826 "action_ids" : [38],
3827 "actions" : ["act_5"],
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003828 "base_default_next" : "tbl_act_6",
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07003829 "next_tables" : {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003830 "act_5" : "tbl_act_6"
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07003831 },
3832 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003833 "action_id" : 38,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07003834 "action_const" : true,
3835 "action_data" : [],
3836 "action_entry_const" : true
3837 }
3838 },
3839 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003840 "name" : "tbl_act_6",
3841 "id" : 17,
Carmelo Cascone3032b872019-04-13 01:23:54 -07003842 "source_info" : {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003843 "filename" : "include/control/packetio.p4",
3844 "line" : 49,
Carmelo Cascone3032b872019-04-13 01:23:54 -07003845 "column" : 12,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003846 "source_fragment" : "hdr.packet_in.setValid(); ..."
Carmelo Cascone3032b872019-04-13 01:23:54 -07003847 },
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07003848 "key" : [],
3849 "match_type" : "exact",
3850 "type" : "simple",
3851 "max_size" : 1024,
3852 "with_counters" : false,
3853 "support_timeout" : false,
3854 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003855 "action_ids" : [39],
3856 "actions" : ["act_6"],
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003857 "base_default_next" : "node_35",
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07003858 "next_tables" : {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003859 "act_6" : "node_35"
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07003860 },
3861 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003862 "action_id" : 39,
3863 "action_const" : true,
3864 "action_data" : [],
3865 "action_entry_const" : true
3866 }
3867 },
3868 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003869 "name" : "tbl_act_7",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003870 "id" : 18,
Carmelo Cascone3032b872019-04-13 01:23:54 -07003871 "source_info" : {
3872 "filename" : "include/control/next.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003873 "line" : 308,
3874 "column" : 12,
3875 "source_fragment" : "mark_to_drop(standard_metadata)"
3876 },
3877 "key" : [],
3878 "match_type" : "exact",
3879 "type" : "simple",
3880 "max_size" : 1024,
3881 "with_counters" : false,
3882 "support_timeout" : false,
3883 "direct_meters" : null,
3884 "action_ids" : [40],
3885 "actions" : ["act_7"],
3886 "base_default_next" : "node_37",
3887 "next_tables" : {
3888 "act_7" : "node_37"
3889 },
3890 "default_entry" : {
3891 "action_id" : 40,
3892 "action_const" : true,
3893 "action_data" : [],
3894 "action_entry_const" : true
3895 }
3896 },
3897 {
3898 "name" : "tbl_egress_next_pop_mpls_if_present",
3899 "id" : 19,
3900 "source_info" : {
3901 "filename" : "include/control/next.p4",
Carmelo Cascone3032b872019-04-13 01:23:54 -07003902 "line" : 312,
3903 "column" : 36,
3904 "source_fragment" : "pop_mpls_if_present()"
3905 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003906 "key" : [],
3907 "match_type" : "exact",
3908 "type" : "simple",
3909 "max_size" : 1024,
3910 "with_counters" : false,
3911 "support_timeout" : false,
3912 "direct_meters" : null,
3913 "action_ids" : [33],
3914 "actions" : ["FabricEgress.egress_next.pop_mpls_if_present"],
3915 "base_default_next" : "FabricEgress.egress_next.egress_vlan",
3916 "next_tables" : {
3917 "FabricEgress.egress_next.pop_mpls_if_present" : "FabricEgress.egress_next.egress_vlan"
3918 },
3919 "default_entry" : {
3920 "action_id" : 33,
3921 "action_const" : true,
3922 "action_data" : [],
3923 "action_entry_const" : true
3924 }
3925 },
3926 {
3927 "name" : "tbl_egress_next_set_mpls",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003928 "id" : 20,
Carmelo Cascone3032b872019-04-13 01:23:54 -07003929 "source_info" : {
3930 "filename" : "include/control/next.p4",
3931 "line" : 314,
3932 "column" : 12,
3933 "source_fragment" : "set_mpls()"
3934 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003935 "key" : [],
3936 "match_type" : "exact",
3937 "type" : "simple",
3938 "max_size" : 1024,
3939 "with_counters" : false,
3940 "support_timeout" : false,
3941 "direct_meters" : null,
3942 "action_ids" : [34],
3943 "actions" : ["FabricEgress.egress_next.set_mpls"],
3944 "base_default_next" : "FabricEgress.egress_next.egress_vlan",
3945 "next_tables" : {
3946 "FabricEgress.egress_next.set_mpls" : "FabricEgress.egress_next.egress_vlan"
3947 },
3948 "default_entry" : {
3949 "action_id" : 34,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07003950 "action_const" : true,
3951 "action_data" : [],
3952 "action_entry_const" : true
3953 }
3954 },
3955 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003956 "name" : "FabricEgress.egress_next.egress_vlan",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003957 "id" : 21,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003958 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003959 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07003960 "line" : 291,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003961 "column" : 10,
3962 "source_fragment" : "egress_vlan"
3963 },
3964 "key" : [
3965 {
3966 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003967 "name" : "vlan_id",
3968 "target" : ["scalars", "fabric_metadata_t.vlan_id"],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003969 "mask" : null
3970 },
3971 {
3972 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003973 "name" : "eg_port",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003974 "target" : ["standard_metadata", "egress_port"],
3975 "mask" : null
3976 }
3977 ],
3978 "match_type" : "exact",
3979 "type" : "simple",
3980 "max_size" : 1024,
Yi Tseng47eac892018-07-11 02:17:04 +08003981 "with_counters" : true,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003982 "support_timeout" : false,
3983 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003984 "action_ids" : [36, 32],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003985 "actions" : ["FabricEgress.egress_next.pop_vlan", "nop"],
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07003986 "base_default_next" : null,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003987 "next_tables" : {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003988 "__HIT__" : "tbl_act_8",
3989 "__MISS__" : "tbl_act_9"
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003990 },
3991 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003992 "action_id" : 32,
3993 "action_const" : true,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003994 "action_data" : [],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003995 "action_entry_const" : true
3996 }
3997 },
3998 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003999 "name" : "tbl_act_8",
4000 "id" : 22,
4001 "key" : [],
4002 "match_type" : "exact",
4003 "type" : "simple",
4004 "max_size" : 1024,
4005 "with_counters" : false,
4006 "support_timeout" : false,
4007 "direct_meters" : null,
4008 "action_ids" : [41],
4009 "actions" : ["act_8"],
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004010 "base_default_next" : "node_44",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004011 "next_tables" : {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004012 "act_8" : "node_44"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004013 },
4014 "default_entry" : {
4015 "action_id" : 41,
4016 "action_const" : true,
4017 "action_data" : [],
4018 "action_entry_const" : true
4019 }
4020 },
4021 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004022 "name" : "tbl_act_9",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004023 "id" : 23,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004024 "key" : [],
4025 "match_type" : "exact",
4026 "type" : "simple",
4027 "max_size" : 1024,
4028 "with_counters" : false,
4029 "support_timeout" : false,
4030 "direct_meters" : null,
4031 "action_ids" : [42],
4032 "actions" : ["act_9"],
4033 "base_default_next" : "node_44",
4034 "next_tables" : {
4035 "act_9" : "node_44"
4036 },
4037 "default_entry" : {
4038 "action_id" : 42,
4039 "action_const" : true,
4040 "action_data" : [],
4041 "action_entry_const" : true
4042 }
4043 },
4044 {
4045 "name" : "tbl_egress_next_push_vlan",
4046 "id" : 24,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004047 "source_info" : {
4048 "filename" : "include/control/next.p4",
4049 "line" : 320,
4050 "column" : 16,
4051 "source_fragment" : "push_vlan()"
4052 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004053 "key" : [],
4054 "match_type" : "exact",
4055 "type" : "simple",
4056 "max_size" : 1024,
4057 "with_counters" : false,
4058 "support_timeout" : false,
4059 "direct_meters" : null,
4060 "action_ids" : [35],
4061 "actions" : ["FabricEgress.egress_next.push_vlan"],
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004062 "base_default_next" : "node_47",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004063 "next_tables" : {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004064 "FabricEgress.egress_next.push_vlan" : "node_47"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004065 },
4066 "default_entry" : {
4067 "action_id" : 35,
4068 "action_const" : true,
4069 "action_data" : [],
4070 "action_entry_const" : true
4071 }
4072 },
4073 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004074 "name" : "tbl_act_10",
4075 "id" : 25,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004076 "source_info" : {
4077 "filename" : "include/control/next.p4",
4078 "line" : 326,
4079 "column" : 25,
4080 "source_fragment" : "="
4081 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004082 "key" : [],
4083 "match_type" : "exact",
4084 "type" : "simple",
4085 "max_size" : 1024,
4086 "with_counters" : false,
4087 "support_timeout" : false,
4088 "direct_meters" : null,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004089 "action_ids" : [44],
4090 "actions" : ["act_11"],
4091 "base_default_next" : "node_49",
4092 "next_tables" : {
4093 "act_11" : "node_49"
4094 },
4095 "default_entry" : {
4096 "action_id" : 44,
4097 "action_const" : true,
4098 "action_data" : [],
4099 "action_entry_const" : true
4100 }
4101 },
4102 {
4103 "name" : "tbl_act_11",
4104 "id" : 26,
4105 "source_info" : {
4106 "filename" : "include/control/next.p4",
4107 "line" : 327,
4108 "column" : 35,
4109 "source_fragment" : "mark_to_drop(standard_metadata)"
4110 },
4111 "key" : [],
4112 "match_type" : "exact",
4113 "type" : "simple",
4114 "max_size" : 1024,
4115 "with_counters" : false,
4116 "support_timeout" : false,
4117 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004118 "action_ids" : [43],
4119 "actions" : ["act_10"],
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004120 "base_default_next" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004121 "next_tables" : {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004122 "act_10" : null
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004123 },
4124 "default_entry" : {
4125 "action_id" : 43,
4126 "action_const" : true,
4127 "action_data" : [],
4128 "action_entry_const" : true
4129 }
4130 },
4131 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004132 "name" : "tbl_act_12",
4133 "id" : 27,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004134 "source_info" : {
4135 "filename" : "include/control/next.p4",
4136 "line" : 330,
4137 "column" : 29,
4138 "source_fragment" : "="
4139 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004140 "key" : [],
4141 "match_type" : "exact",
4142 "type" : "simple",
4143 "max_size" : 1024,
4144 "with_counters" : false,
4145 "support_timeout" : false,
4146 "direct_meters" : null,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004147 "action_ids" : [46],
4148 "actions" : ["act_13"],
4149 "base_default_next" : "node_53",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004150 "next_tables" : {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004151 "act_13" : "node_53"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004152 },
4153 "default_entry" : {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004154 "action_id" : 46,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004155 "action_const" : true,
4156 "action_data" : [],
4157 "action_entry_const" : true
4158 }
4159 },
4160 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004161 "name" : "tbl_act_13",
4162 "id" : 28,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004163 "source_info" : {
4164 "filename" : "include/control/next.p4",
4165 "line" : 331,
4166 "column" : 39,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004167 "source_fragment" : "mark_to_drop(standard_metadata)"
Carmelo Cascone3032b872019-04-13 01:23:54 -07004168 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004169 "key" : [],
4170 "match_type" : "exact",
4171 "type" : "simple",
4172 "max_size" : 1024,
4173 "with_counters" : false,
4174 "support_timeout" : false,
4175 "direct_meters" : null,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004176 "action_ids" : [45],
4177 "actions" : ["act_12"],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004178 "base_default_next" : null,
4179 "next_tables" : {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004180 "act_12" : null
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004181 },
4182 "default_entry" : {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004183 "action_id" : 45,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004184 "action_const" : true,
4185 "action_data" : [],
4186 "action_entry_const" : true
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004187 }
Yi Tseng3a5731e2018-01-22 11:38:58 -08004188 }
4189 ],
4190 "action_profiles" : [],
4191 "conditionals" : [
Yi Tseng1d842672017-11-28 16:06:52 -08004192 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004193 "name" : "node_29",
4194 "id" : 10,
Carmelo Casconea5400af2018-07-17 22:11:54 +02004195 "source_info" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004196 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004197 "line" : 39,
Carmelo Casconea5400af2018-07-17 22:11:54 +02004198 "column" : 12,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004199 "source_fragment" : "fabric_metadata.is_controller_packet_out == true"
Carmelo Casconea5400af2018-07-17 22:11:54 +02004200 },
4201 "expression" : {
4202 "type" : "expression",
4203 "value" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004204 "op" : "==",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004205 "left" : {
4206 "type" : "expression",
4207 "value" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004208 "op" : "d2b",
4209 "left" : null,
Carmelo Casconea5400af2018-07-17 22:11:54 +02004210 "right" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004211 "type" : "field",
4212 "value" : ["scalars", "fabric_metadata_t.is_controller_packet_out"]
Carmelo Casconea5400af2018-07-17 22:11:54 +02004213 }
4214 }
4215 },
4216 "right" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004217 "type" : "bool",
4218 "value" : true
Carmelo Casconea5400af2018-07-17 22:11:54 +02004219 }
4220 }
4221 },
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004222 "true_next" : "tbl_act_4",
4223 "false_next" : "node_31"
Carmelo Casconea5400af2018-07-17 22:11:54 +02004224 },
4225 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004226 "name" : "node_31",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004227 "id" : 11,
Yi Tsengbe342052017-11-03 10:21:23 -07004228 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004229 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004230 "line" : 43,
Yi Tsengbe342052017-11-03 10:21:23 -07004231 "column" : 12,
Carmelo Casconeb531b682018-01-30 17:55:56 -08004232 "source_fragment" : "standard_metadata.egress_port == 255"
Yi Tsengbe342052017-11-03 10:21:23 -07004233 },
4234 "expression" : {
4235 "type" : "expression",
4236 "value" : {
4237 "op" : "==",
4238 "left" : {
4239 "type" : "field",
4240 "value" : ["standard_metadata", "egress_port"]
4241 },
4242 "right" : {
4243 "type" : "hexstr",
4244 "value" : "0x00ff"
4245 }
4246 }
4247 },
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004248 "true_next" : "node_32",
4249 "false_next" : "node_35"
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004250 },
4251 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004252 "name" : "node_32",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004253 "id" : 12,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004254 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004255 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004256 "line" : 44,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02004257 "column" : 16,
4258 "source_fragment" : "fabric_metadata.is_multicast == true && ..."
4259 },
4260 "expression" : {
4261 "type" : "expression",
4262 "value" : {
4263 "op" : "and",
4264 "left" : {
4265 "type" : "expression",
4266 "value" : {
4267 "op" : "==",
4268 "left" : {
4269 "type" : "expression",
4270 "value" : {
4271 "op" : "d2b",
4272 "left" : null,
4273 "right" : {
4274 "type" : "field",
4275 "value" : ["scalars", "fabric_metadata_t.is_multicast"]
4276 }
4277 }
4278 },
4279 "right" : {
4280 "type" : "bool",
4281 "value" : true
4282 }
4283 }
4284 },
4285 "right" : {
4286 "type" : "expression",
4287 "value" : {
4288 "op" : "==",
4289 "left" : {
4290 "type" : "expression",
4291 "value" : {
4292 "op" : "d2b",
4293 "left" : null,
4294 "right" : {
4295 "type" : "field",
4296 "value" : ["scalars", "fabric_metadata_t.clone_to_cpu"]
4297 }
4298 }
4299 },
4300 "right" : {
4301 "type" : "bool",
4302 "value" : false
4303 }
4304 }
4305 }
4306 }
4307 },
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004308 "true_next" : "tbl_act_5",
4309 "false_next" : "tbl_act_6"
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004310 },
4311 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004312 "name" : "node_35",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004313 "id" : 13,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004314 "source_info" : {
4315 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07004316 "line" : 306,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004317 "column" : 12,
4318 "source_fragment" : "fabric_metadata.is_multicast == true ..."
4319 },
4320 "expression" : {
4321 "type" : "expression",
4322 "value" : {
4323 "op" : "and",
4324 "left" : {
4325 "type" : "expression",
4326 "value" : {
4327 "op" : "==",
4328 "left" : {
4329 "type" : "expression",
4330 "value" : {
4331 "op" : "d2b",
4332 "left" : null,
4333 "right" : {
4334 "type" : "field",
4335 "value" : ["scalars", "fabric_metadata_t.is_multicast"]
4336 }
4337 }
4338 },
4339 "right" : {
4340 "type" : "bool",
4341 "value" : true
4342 }
4343 }
4344 },
4345 "right" : {
4346 "type" : "expression",
4347 "value" : {
4348 "op" : "==",
4349 "left" : {
4350 "type" : "field",
4351 "value" : ["standard_metadata", "ingress_port"]
4352 },
4353 "right" : {
4354 "type" : "field",
4355 "value" : ["standard_metadata", "egress_port"]
4356 }
4357 }
4358 }
4359 }
4360 },
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004361 "true_next" : "tbl_act_7",
4362 "false_next" : "node_37"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004363 },
4364 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004365 "name" : "node_37",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004366 "id" : 14,
4367 "source_info" : {
4368 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07004369 "line" : 311,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004370 "column" : 12,
4371 "source_fragment" : "fabric_metadata.mpls_label == 0"
4372 },
4373 "expression" : {
4374 "type" : "expression",
4375 "value" : {
4376 "op" : "==",
4377 "left" : {
4378 "type" : "field",
4379 "value" : ["scalars", "fabric_metadata_t.mpls_label"]
4380 },
4381 "right" : {
4382 "type" : "hexstr",
4383 "value" : "0x000000"
4384 }
4385 }
4386 },
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004387 "true_next" : "node_38",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004388 "false_next" : "tbl_egress_next_set_mpls"
4389 },
4390 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004391 "name" : "node_38",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004392 "id" : 15,
4393 "source_info" : {
4394 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07004395 "line" : 312,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004396 "column" : 16,
4397 "source_fragment" : "hdr.mpls.isValid()"
4398 },
4399 "expression" : {
4400 "type" : "expression",
4401 "value" : {
4402 "op" : "d2b",
4403 "left" : null,
4404 "right" : {
4405 "type" : "field",
4406 "value" : ["mpls", "$valid$"]
4407 }
4408 }
4409 },
4410 "true_next" : "tbl_egress_next_pop_mpls_if_present",
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004411 "false_next" : "FabricEgress.egress_next.egress_vlan"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004412 },
4413 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004414 "name" : "node_44",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004415 "id" : 16,
4416 "source_info" : {
4417 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07004418 "line" : 317,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004419 "column" : 12,
4420 "source_fragment" : "!egress_vlan.apply().hit"
4421 },
4422 "expression" : {
4423 "type" : "expression",
4424 "value" : {
4425 "op" : "not",
4426 "left" : null,
4427 "right" : {
4428 "type" : "expression",
4429 "value" : {
4430 "op" : "d2b",
4431 "left" : null,
4432 "right" : {
4433 "type" : "field",
4434 "value" : ["scalars", "egress_next_tmp"]
4435 }
4436 }
4437 }
4438 }
4439 },
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004440 "true_next" : "node_45",
4441 "false_next" : "node_47"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004442 },
4443 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004444 "name" : "node_45",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004445 "id" : 17,
4446 "source_info" : {
4447 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07004448 "line" : 319,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004449 "column" : 16,
4450 "source_fragment" : "fabric_metadata.vlan_id != DEFAULT_VLAN_ID"
4451 },
4452 "expression" : {
4453 "type" : "expression",
4454 "value" : {
4455 "op" : "!=",
4456 "left" : {
4457 "type" : "field",
4458 "value" : ["scalars", "fabric_metadata_t.vlan_id"]
4459 },
4460 "right" : {
4461 "type" : "hexstr",
4462 "value" : "0x0ffe"
4463 }
4464 }
4465 },
4466 "true_next" : "tbl_egress_next_push_vlan",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004467 "false_next" : "node_47"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004468 },
4469 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004470 "name" : "node_47",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004471 "id" : 18,
4472 "source_info" : {
4473 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07004474 "line" : 325,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004475 "column" : 12,
4476 "source_fragment" : "hdr.mpls.isValid()"
4477 },
4478 "expression" : {
4479 "type" : "expression",
4480 "value" : {
4481 "op" : "d2b",
4482 "left" : null,
4483 "right" : {
4484 "type" : "field",
4485 "value" : ["mpls", "$valid$"]
4486 }
4487 }
4488 },
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004489 "true_next" : "tbl_act_10",
4490 "false_next" : "node_51"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004491 },
4492 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004493 "name" : "node_49",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004494 "id" : 19,
4495 "source_info" : {
4496 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07004497 "line" : 327,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004498 "column" : 16,
4499 "source_fragment" : "hdr.mpls.ttl == 0"
4500 },
4501 "expression" : {
4502 "type" : "expression",
4503 "value" : {
4504 "op" : "==",
4505 "left" : {
4506 "type" : "field",
4507 "value" : ["mpls", "ttl"]
4508 },
4509 "right" : {
4510 "type" : "hexstr",
4511 "value" : "0x00"
4512 }
4513 }
4514 },
4515 "false_next" : null,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004516 "true_next" : "tbl_act_11"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004517 },
4518 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004519 "name" : "node_51",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004520 "id" : 20,
4521 "source_info" : {
4522 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07004523 "line" : 329,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004524 "column" : 15,
4525 "source_fragment" : "hdr.ipv4.isValid()"
4526 },
4527 "expression" : {
4528 "type" : "expression",
4529 "value" : {
4530 "op" : "d2b",
4531 "left" : null,
4532 "right" : {
4533 "type" : "field",
4534 "value" : ["ipv4", "$valid$"]
4535 }
4536 }
4537 },
4538 "false_next" : null,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004539 "true_next" : "tbl_act_12"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004540 },
4541 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004542 "name" : "node_53",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004543 "id" : 21,
4544 "source_info" : {
4545 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07004546 "line" : 331,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004547 "column" : 20,
4548 "source_fragment" : "hdr.ipv4.ttl == 0"
4549 },
4550 "expression" : {
4551 "type" : "expression",
4552 "value" : {
4553 "op" : "==",
4554 "left" : {
4555 "type" : "field",
4556 "value" : ["ipv4", "ttl"]
4557 },
4558 "right" : {
4559 "type" : "hexstr",
4560 "value" : "0x00"
4561 }
4562 }
4563 },
4564 "false_next" : null,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004565 "true_next" : "tbl_act_13"
Yi Tsengbe342052017-11-03 10:21:23 -07004566 }
4567 ]
4568 }
4569 ],
4570 "checksums" : [
4571 {
4572 "name" : "cksum",
4573 "id" : 0,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07004574 "source_info" : {
4575 "filename" : "include/checksum.p4",
4576 "line" : 28,
4577 "column" : 8,
4578 "source_fragment" : "update_checksum(hdr.ipv4.isValid(), ..."
4579 },
Yi Tsengbe342052017-11-03 10:21:23 -07004580 "target" : ["ipv4", "hdr_checksum"],
4581 "type" : "generic",
Yi Tsengbd46d052018-01-22 17:18:16 -08004582 "calculation" : "calc",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08004583 "verify" : false,
4584 "update" : true,
Yi Tsengbd46d052018-01-22 17:18:16 -08004585 "if_cond" : {
4586 "type" : "expression",
4587 "value" : {
4588 "op" : "d2b",
4589 "left" : null,
4590 "right" : {
4591 "type" : "field",
4592 "value" : ["ipv4", "$valid$"]
4593 }
4594 }
4595 }
Yi Tsengbe342052017-11-03 10:21:23 -07004596 },
4597 {
4598 "name" : "cksum_0",
4599 "id" : 1,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07004600 "source_info" : {
4601 "filename" : "include/checksum.p4",
4602 "line" : 57,
4603 "column" : 8,
4604 "source_fragment" : "verify_checksum(hdr.ipv4.isValid(), ..."
4605 },
Yi Tsengbe342052017-11-03 10:21:23 -07004606 "target" : ["ipv4", "hdr_checksum"],
4607 "type" : "generic",
Yi Tsengbd46d052018-01-22 17:18:16 -08004608 "calculation" : "calc_0",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08004609 "verify" : true,
4610 "update" : false,
Yi Tsengbd46d052018-01-22 17:18:16 -08004611 "if_cond" : {
4612 "type" : "expression",
4613 "value" : {
4614 "op" : "d2b",
4615 "left" : null,
4616 "right" : {
4617 "type" : "field",
4618 "value" : ["ipv4", "$valid$"]
4619 }
4620 }
4621 }
Yi Tsengbe342052017-11-03 10:21:23 -07004622 }
4623 ],
4624 "force_arith" : [],
4625 "extern_instances" : [],
4626 "field_aliases" : [
4627 [
4628 "queueing_metadata.enq_timestamp",
4629 ["standard_metadata", "enq_timestamp"]
4630 ],
4631 [
4632 "queueing_metadata.enq_qdepth",
4633 ["standard_metadata", "enq_qdepth"]
4634 ],
4635 [
4636 "queueing_metadata.deq_timedelta",
4637 ["standard_metadata", "deq_timedelta"]
4638 ],
4639 [
4640 "queueing_metadata.deq_qdepth",
4641 ["standard_metadata", "deq_qdepth"]
4642 ],
4643 [
4644 "intrinsic_metadata.ingress_global_timestamp",
4645 ["standard_metadata", "ingress_global_timestamp"]
4646 ],
4647 [
Yi Tseng27b9bc02018-04-12 14:52:40 +08004648 "intrinsic_metadata.egress_global_timestamp",
4649 ["standard_metadata", "egress_global_timestamp"]
4650 ],
4651 [
Yi Tsengbe342052017-11-03 10:21:23 -07004652 "intrinsic_metadata.lf_field_list",
4653 ["standard_metadata", "lf_field_list"]
4654 ],
4655 [
4656 "intrinsic_metadata.mcast_grp",
4657 ["standard_metadata", "mcast_grp"]
4658 ],
4659 [
4660 "intrinsic_metadata.resubmit_flag",
4661 ["standard_metadata", "resubmit_flag"]
4662 ],
4663 [
4664 "intrinsic_metadata.egress_rid",
4665 ["standard_metadata", "egress_rid"]
Yi Tseng27b9bc02018-04-12 14:52:40 +08004666 ],
4667 [
4668 "intrinsic_metadata.recirculate_flag",
4669 ["standard_metadata", "recirculate_flag"]
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004670 ],
4671 [
4672 "intrinsic_metadata.priority",
4673 ["standard_metadata", "priority"]
Yi Tsengbe342052017-11-03 10:21:23 -07004674 ]
Carmelo Cascone6af4e172018-06-15 16:01:30 +02004675 ],
4676 "program" : "fabric.p4",
4677 "__meta__" : {
4678 "version" : [2, 18],
4679 "compiler" : "https://github.com/p4lang/p4c"
4680 }
Carmelo Cascone25243d62019-02-21 15:37:31 -08004681}