blob: 74580ff76553f80cd5992730c968aca4752396f1 [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],
Yi Tsengbe342052017-11-03 10:21:23 -070024 ["fabric_metadata_t.ip_proto", 8, false],
Carmelo Casconeb5324e72018-11-25 02:26:32 -080025 ["fabric_metadata_t.l4_sport", 16, false],
Daniele Moro01ca2ab2019-06-25 11:48:48 -070026 ["fabric_metadata_t.l4_dport", 16, false]
Yi Tsengc6844f52017-12-19 11:58:25 -080027 ]
28 },
29 {
Carmelo Cascone6af4e172018-06-15 16:01:30 +020030 "name" : "standard_metadata",
Yi Tsengc6844f52017-12-19 11:58:25 -080031 "id" : 1,
32 "fields" : [
Carmelo Cascone6af4e172018-06-15 16:01:30 +020033 ["ingress_port", 9, false],
34 ["egress_spec", 9, false],
35 ["egress_port", 9, false],
36 ["clone_spec", 32, false],
37 ["instance_type", 32, false],
38 ["drop", 1, false],
39 ["recirculate_port", 16, false],
40 ["packet_length", 32, false],
41 ["enq_timestamp", 32, false],
42 ["enq_qdepth", 19, false],
43 ["deq_timedelta", 32, false],
44 ["deq_qdepth", 19, false],
45 ["ingress_global_timestamp", 48, false],
46 ["egress_global_timestamp", 48, false],
47 ["lf_field_list", 32, false],
48 ["mcast_grp", 16, false],
49 ["resubmit_flag", 32, false],
50 ["egress_rid", 16, false],
Carmelo Cascone6af4e172018-06-15 16:01:30 +020051 ["recirculate_flag", 32, false],
Carmelo Cascone9b607da2019-05-08 14:03:01 -070052 ["checksum_error", 1, false],
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -070053 ["parser_error", 32, false],
Carmelo Cascone9b607da2019-05-08 14:03:01 -070054 ["priority", 3, false],
55 ["_padding", 2, false]
Carmelo Cascone6af4e172018-06-15 16:01:30 +020056 ]
57 },
58 {
59 "name" : "ethernet_t",
60 "id" : 2,
61 "fields" : [
Yi Tsengc6844f52017-12-19 11:58:25 -080062 ["dst_addr", 48, false],
63 ["src_addr", 48, false],
Carmelo Casconeb5324e72018-11-25 02:26:32 -080064 ["eth_type", 16, false]
Yi Tsengc6844f52017-12-19 11:58:25 -080065 ]
66 },
67 {
68 "name" : "vlan_tag_t",
Carmelo Cascone6af4e172018-06-15 16:01:30 +020069 "id" : 3,
Yi Tsengc6844f52017-12-19 11:58:25 -080070 "fields" : [
71 ["pri", 3, false],
72 ["cfi", 1, false],
73 ["vlan_id", 12, false],
Carmelo Casconeb5324e72018-11-25 02:26:32 -080074 ["eth_type", 16, false]
Yi Tsengc6844f52017-12-19 11:58:25 -080075 ]
76 },
77 {
78 "name" : "mpls_t",
Carmelo Cascone6af4e172018-06-15 16:01:30 +020079 "id" : 4,
Yi Tsengc6844f52017-12-19 11:58:25 -080080 "fields" : [
81 ["label", 20, false],
82 ["tc", 3, false],
83 ["bos", 1, false],
84 ["ttl", 8, false]
Yi Tsengbe342052017-11-03 10:21:23 -070085 ]
86 },
87 {
88 "name" : "ipv4_t",
Carmelo Cascone6af4e172018-06-15 16:01:30 +020089 "id" : 5,
Yi Tsengbe342052017-11-03 10:21:23 -070090 "fields" : [
91 ["version", 4, false],
92 ["ihl", 4, false],
Jonghwan Hyuned478dc2018-08-06 15:35:18 +090093 ["dscp", 6, false],
94 ["ecn", 2, false],
Yi Tsengbe342052017-11-03 10:21:23 -070095 ["total_len", 16, false],
96 ["identification", 16, false],
97 ["flags", 3, false],
98 ["frag_offset", 13, false],
99 ["ttl", 8, false],
100 ["protocol", 8, false],
101 ["hdr_checksum", 16, false],
102 ["src_addr", 32, false],
103 ["dst_addr", 32, false]
104 ]
105 },
106 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800107 "name" : "tcp_t",
Carmelo Casconef645e842018-07-16 18:31:52 +0200108 "id" : 6,
Yi Tseng47eac892018-07-11 02:17:04 +0800109 "fields" : [
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800110 ["sport", 16, false],
111 ["dport", 16, false],
Yi Tsengbe342052017-11-03 10:21:23 -0700112 ["seq_no", 32, false],
113 ["ack_no", 32, false],
114 ["data_offset", 4, false],
115 ["res", 3, false],
116 ["ecn", 3, false],
117 ["ctrl", 6, false],
118 ["window", 16, false],
119 ["checksum", 16, false],
120 ["urgent_ptr", 16, false]
121 ]
122 },
123 {
124 "name" : "udp_t",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800125 "id" : 7,
Yi Tsengbe342052017-11-03 10:21:23 -0700126 "fields" : [
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800127 ["sport", 16, false],
128 ["dport", 16, false],
Yi Tsengbe342052017-11-03 10:21:23 -0700129 ["len", 16, false],
130 ["checksum", 16, false]
131 ]
132 },
133 {
134 "name" : "icmp_t",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800135 "id" : 8,
Yi Tsengbe342052017-11-03 10:21:23 -0700136 "fields" : [
137 ["icmp_type", 8, false],
138 ["icmp_code", 8, false],
Yi Tsengf73a5532017-11-17 15:58:57 -0800139 ["checksum", 16, false],
140 ["identifier", 16, false],
141 ["sequence_number", 16, false],
142 ["timestamp", 64, false]
Yi Tsengbe342052017-11-03 10:21:23 -0700143 ]
144 },
145 {
146 "name" : "packet_out_header_t",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800147 "id" : 9,
Yi Tsengbe342052017-11-03 10:21:23 -0700148 "fields" : [
149 ["egress_port", 9, false],
Yi Tseng1d842672017-11-28 16:06:52 -0800150 ["_pad", 7, false]
Yi Tsengbe342052017-11-03 10:21:23 -0700151 ]
152 },
153 {
154 "name" : "packet_in_header_t",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800155 "id" : 10,
Yi Tsengbe342052017-11-03 10:21:23 -0700156 "fields" : [
157 ["ingress_port", 9, false],
Yi Tseng1d842672017-11-28 16:06:52 -0800158 ["_pad", 7, false]
Yi Tsengbe342052017-11-03 10:21:23 -0700159 ]
Yi Tsengbe342052017-11-03 10:21:23 -0700160 }
161 ],
162 "headers" : [
163 {
Yi Tsengbe342052017-11-03 10:21:23 -0700164 "name" : "scalars",
Yi Tsengc6844f52017-12-19 11:58:25 -0800165 "id" : 0,
Yi Tsengbe342052017-11-03 10:21:23 -0700166 "header_type" : "scalars_0",
167 "metadata" : true,
168 "pi_omit" : true
169 },
170 {
171 "name" : "standard_metadata",
Yi Tsengc6844f52017-12-19 11:58:25 -0800172 "id" : 1,
Yi Tsengbe342052017-11-03 10:21:23 -0700173 "header_type" : "standard_metadata",
174 "metadata" : true,
175 "pi_omit" : true
176 },
177 {
178 "name" : "ethernet",
Yi Tsengc6844f52017-12-19 11:58:25 -0800179 "id" : 2,
Yi Tsengbe342052017-11-03 10:21:23 -0700180 "header_type" : "ethernet_t",
181 "metadata" : false,
182 "pi_omit" : true
183 },
184 {
185 "name" : "vlan_tag",
Yi Tsengc6844f52017-12-19 11:58:25 -0800186 "id" : 3,
Yi Tsengbe342052017-11-03 10:21:23 -0700187 "header_type" : "vlan_tag_t",
188 "metadata" : false,
189 "pi_omit" : true
190 },
191 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800192 "name" : "inner_vlan_tag",
Yi Tsengbd46d052018-01-22 17:18:16 -0800193 "id" : 4,
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800194 "header_type" : "vlan_tag_t",
195 "metadata" : false,
196 "pi_omit" : true
197 },
198 {
199 "name" : "mpls",
200 "id" : 5,
Yi Tsengbe342052017-11-03 10:21:23 -0700201 "header_type" : "mpls_t",
202 "metadata" : false,
203 "pi_omit" : true
204 },
205 {
206 "name" : "ipv4",
Carmelo Casconef645e842018-07-16 18:31:52 +0200207 "id" : 6,
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800208 "header_type" : "ipv4_t",
Yi Tsengbe342052017-11-03 10:21:23 -0700209 "metadata" : false,
210 "pi_omit" : true
211 },
212 {
213 "name" : "tcp",
Carmelo Casconef645e842018-07-16 18:31:52 +0200214 "id" : 7,
Yi Tsengbe342052017-11-03 10:21:23 -0700215 "header_type" : "tcp_t",
216 "metadata" : false,
217 "pi_omit" : true
218 },
219 {
220 "name" : "udp",
Carmelo Casconef645e842018-07-16 18:31:52 +0200221 "id" : 8,
Yi Tsengbe342052017-11-03 10:21:23 -0700222 "header_type" : "udp_t",
223 "metadata" : false,
224 "pi_omit" : true
225 },
226 {
227 "name" : "icmp",
Carmelo Casconef645e842018-07-16 18:31:52 +0200228 "id" : 9,
Yi Tsengbe342052017-11-03 10:21:23 -0700229 "header_type" : "icmp_t",
230 "metadata" : false,
231 "pi_omit" : true
232 },
233 {
234 "name" : "packet_out",
Carmelo Casconef645e842018-07-16 18:31:52 +0200235 "id" : 10,
Yi Tsengbe342052017-11-03 10:21:23 -0700236 "header_type" : "packet_out_header_t",
237 "metadata" : false,
238 "pi_omit" : true
239 },
240 {
241 "name" : "packet_in",
Carmelo Casconef645e842018-07-16 18:31:52 +0200242 "id" : 11,
Yi Tsengbe342052017-11-03 10:21:23 -0700243 "header_type" : "packet_in_header_t",
244 "metadata" : false,
245 "pi_omit" : true
246 }
247 ],
248 "header_stacks" : [],
249 "header_union_types" : [],
250 "header_unions" : [],
251 "header_union_stacks" : [],
Daniele Moro01ca2ab2019-06-25 11:48:48 -0700252 "field_lists" : [
253 {
254 "id" : 1,
255 "name" : "fl",
256 "source_info" : {
257 "filename" : "fabric.p4",
258 "line" : 77,
259 "column" : 40,
260 "source_fragment" : "standard_metadata"
261 },
262 "elements" : [
263 {
264 "type" : "field",
265 "value" : ["standard_metadata", "ingress_port"]
266 },
267 {
268 "type" : "field",
269 "value" : ["standard_metadata", "egress_spec"]
270 },
271 {
272 "type" : "field",
273 "value" : ["standard_metadata", "egress_port"]
274 },
275 {
276 "type" : "field",
277 "value" : ["standard_metadata", "clone_spec"]
278 },
279 {
280 "type" : "field",
281 "value" : ["standard_metadata", "instance_type"]
282 },
283 {
284 "type" : "field",
285 "value" : ["standard_metadata", "drop"]
286 },
287 {
288 "type" : "field",
289 "value" : ["standard_metadata", "recirculate_port"]
290 },
291 {
292 "type" : "field",
293 "value" : ["standard_metadata", "packet_length"]
294 },
295 {
296 "type" : "field",
297 "value" : ["standard_metadata", "enq_timestamp"]
298 },
299 {
300 "type" : "field",
301 "value" : ["standard_metadata", "enq_qdepth"]
302 },
303 {
304 "type" : "field",
305 "value" : ["standard_metadata", "deq_timedelta"]
306 },
307 {
308 "type" : "field",
309 "value" : ["standard_metadata", "deq_qdepth"]
310 },
311 {
312 "type" : "field",
313 "value" : ["standard_metadata", "ingress_global_timestamp"]
314 },
315 {
316 "type" : "field",
317 "value" : ["standard_metadata", "egress_global_timestamp"]
318 },
319 {
320 "type" : "field",
321 "value" : ["standard_metadata", "lf_field_list"]
322 },
323 {
324 "type" : "field",
325 "value" : ["standard_metadata", "mcast_grp"]
326 },
327 {
328 "type" : "field",
329 "value" : ["standard_metadata", "resubmit_flag"]
330 },
331 {
332 "type" : "field",
333 "value" : ["standard_metadata", "egress_rid"]
334 },
335 {
336 "type" : "field",
337 "value" : ["standard_metadata", "recirculate_flag"]
338 },
339 {
340 "type" : "field",
341 "value" : ["standard_metadata", "checksum_error"]
342 },
343 {
344 "type" : "field",
345 "value" : ["standard_metadata", "parser_error"]
346 },
347 {
348 "type" : "field",
349 "value" : ["standard_metadata", "priority"]
350 }
351 ]
352 }
353 ],
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700354 "errors" : [
Carmelo Cascone4d8785b2019-05-31 17:11:26 -0700355 ["NoError", 1],
356 ["PacketTooShort", 2],
357 ["NoMatch", 3],
358 ["StackOutOfBounds", 4],
359 ["HeaderTooShort", 5],
360 ["ParserTimeout", 6],
361 ["ParserInvalidArgument", 7]
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700362 ],
Yi Tsengbe342052017-11-03 10:21:23 -0700363 "enums" : [],
364 "parsers" : [
365 {
366 "name" : "parser",
367 "id" : 0,
368 "init_state" : "start",
369 "parse_states" : [
370 {
371 "name" : "start",
372 "id" : 0,
373 "parser_ops" : [],
374 "transitions" : [
375 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800376 "type" : "hexstr",
Yi Tsengbe342052017-11-03 10:21:23 -0700377 "value" : "0x00ff",
378 "mask" : null,
379 "next_state" : "parse_packet_out"
380 },
381 {
382 "value" : "default",
383 "mask" : null,
384 "next_state" : "parse_ethernet"
385 }
386 ],
387 "transition_key" : [
388 {
389 "type" : "field",
390 "value" : ["standard_metadata", "ingress_port"]
391 }
392 ]
393 },
394 {
395 "name" : "parse_packet_out",
396 "id" : 1,
397 "parser_ops" : [
398 {
399 "parameters" : [
400 {
401 "type" : "regular",
402 "value" : "packet_out"
403 }
404 ],
405 "op" : "extract"
406 }
407 ],
408 "transitions" : [
409 {
410 "value" : "default",
411 "mask" : null,
412 "next_state" : "parse_ethernet"
413 }
414 ],
415 "transition_key" : []
416 },
417 {
418 "name" : "parse_ethernet",
419 "id" : 2,
420 "parser_ops" : [
421 {
422 "parameters" : [
423 {
424 "type" : "regular",
425 "value" : "ethernet"
426 }
427 ],
428 "op" : "extract"
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800429 },
430 {
431 "parameters" : [
432 {
433 "type" : "field",
434 "value" : ["scalars", "fabric_metadata_t.eth_type"]
435 },
436 {
437 "type" : "field",
438 "value" : ["ethernet", "eth_type"]
439 }
440 ],
441 "op" : "set"
442 },
443 {
444 "parameters" : [
445 {
446 "type" : "field",
447 "value" : ["scalars", "fabric_metadata_t.vlan_id"]
448 },
449 {
450 "type" : "hexstr",
451 "value" : "0x0ffe"
452 }
453 ],
454 "op" : "set"
Yi Tsengbe342052017-11-03 10:21:23 -0700455 }
456 ],
457 "transitions" : [
458 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800459 "type" : "hexstr",
Yi Tsengbe342052017-11-03 10:21:23 -0700460 "value" : "0x8100",
461 "mask" : null,
462 "next_state" : "parse_vlan_tag"
463 },
464 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800465 "type" : "hexstr",
Yi Tsengbe342052017-11-03 10:21:23 -0700466 "value" : "0x8847",
467 "mask" : null,
468 "next_state" : "parse_mpls"
469 },
470 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800471 "type" : "hexstr",
Yi Tsengbe342052017-11-03 10:21:23 -0700472 "value" : "0x0800",
473 "mask" : null,
474 "next_state" : "parse_ipv4"
475 },
476 {
Yi Tsengbe342052017-11-03 10:21:23 -0700477 "value" : "default",
478 "mask" : null,
479 "next_state" : null
480 }
481 ],
482 "transition_key" : [
483 {
484 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800485 "value" : ["ethernet", "eth_type"]
Yi Tsengbe342052017-11-03 10:21:23 -0700486 }
487 ]
488 },
489 {
490 "name" : "parse_vlan_tag",
491 "id" : 3,
492 "parser_ops" : [
493 {
494 "parameters" : [
495 {
496 "type" : "regular",
497 "value" : "vlan_tag"
498 }
499 ],
500 "op" : "extract"
501 }
502 ],
503 "transitions" : [
504 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800505 "type" : "hexstr",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800506 "value" : "0x0800",
Yi Tsengbe342052017-11-03 10:21:23 -0700507 "mask" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800508 "next_state" : "parse_ipv4"
Yi Tsengbe342052017-11-03 10:21:23 -0700509 },
510 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800511 "type" : "hexstr",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800512 "value" : "0x8847",
513 "mask" : null,
514 "next_state" : "parse_mpls"
515 },
516 {
517 "type" : "hexstr",
518 "value" : "0x8100",
519 "mask" : null,
520 "next_state" : "parse_inner_vlan_tag"
521 },
522 {
523 "value" : "default",
524 "mask" : null,
525 "next_state" : null
526 }
527 ],
528 "transition_key" : [
529 {
530 "type" : "field",
531 "value" : ["vlan_tag", "eth_type"]
532 }
533 ]
534 },
535 {
536 "name" : "parse_inner_vlan_tag",
537 "id" : 4,
538 "parser_ops" : [
539 {
540 "parameters" : [
541 {
542 "type" : "regular",
543 "value" : "inner_vlan_tag"
544 }
545 ],
546 "op" : "extract"
547 }
548 ],
549 "transitions" : [
550 {
551 "type" : "hexstr",
Yi Tsengbe342052017-11-03 10:21:23 -0700552 "value" : "0x0800",
553 "mask" : null,
554 "next_state" : "parse_ipv4"
555 },
556 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800557 "type" : "hexstr",
Yi Tsengbd46d052018-01-22 17:18:16 -0800558 "value" : "0x8847",
Yi Tsengbe342052017-11-03 10:21:23 -0700559 "mask" : null,
Yi Tsengbd46d052018-01-22 17:18:16 -0800560 "next_state" : "parse_mpls"
Yi Tsengbe342052017-11-03 10:21:23 -0700561 },
562 {
563 "value" : "default",
564 "mask" : null,
565 "next_state" : null
566 }
567 ],
568 "transition_key" : [
569 {
570 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800571 "value" : ["inner_vlan_tag", "eth_type"]
Yi Tsengbe342052017-11-03 10:21:23 -0700572 }
573 ]
574 },
575 {
576 "name" : "parse_mpls",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800577 "id" : 5,
Yi Tsengbe342052017-11-03 10:21:23 -0700578 "parser_ops" : [
579 {
580 "parameters" : [
581 {
582 "type" : "regular",
583 "value" : "mpls"
584 }
585 ],
586 "op" : "extract"
587 },
588 {
589 "parameters" : [
590 {
591 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800592 "value" : ["scalars", "fabric_metadata_t.mpls_label"]
593 },
594 {
595 "type" : "field",
596 "value" : ["mpls", "label"]
597 }
598 ],
599 "op" : "set"
600 },
601 {
602 "parameters" : [
603 {
604 "type" : "field",
605 "value" : ["scalars", "fabric_metadata_t.mpls_ttl"]
606 },
607 {
608 "type" : "field",
609 "value" : ["mpls", "ttl"]
610 }
611 ],
612 "op" : "set"
613 },
614 {
615 "parameters" : [
616 {
617 "type" : "field",
618 "value" : ["scalars", "tmp_0"]
Yi Tsengbe342052017-11-03 10:21:23 -0700619 },
620 {
621 "type" : "lookahead",
Yi Tsengc6844f52017-12-19 11:58:25 -0800622 "value" : [0, 4]
Yi Tsengbe342052017-11-03 10:21:23 -0700623 }
624 ],
625 "op" : "set"
626 }
627 ],
628 "transitions" : [
629 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800630 "type" : "hexstr",
Yi Tsengbe342052017-11-03 10:21:23 -0700631 "value" : "0x04",
632 "mask" : null,
633 "next_state" : "parse_ipv4"
634 },
635 {
Yi Tsengbe342052017-11-03 10:21:23 -0700636 "value" : "default",
637 "mask" : null,
638 "next_state" : "parse_ethernet"
639 }
640 ],
641 "transition_key" : [
642 {
643 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800644 "value" : ["scalars", "tmp_0"]
Yi Tsengbe342052017-11-03 10:21:23 -0700645 }
646 ]
647 },
648 {
649 "name" : "parse_ipv4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800650 "id" : 6,
Yi Tsengbe342052017-11-03 10:21:23 -0700651 "parser_ops" : [
652 {
653 "parameters" : [
654 {
655 "type" : "regular",
656 "value" : "ipv4"
657 }
658 ],
659 "op" : "extract"
660 },
661 {
662 "parameters" : [
663 {
664 "type" : "field",
665 "value" : ["scalars", "fabric_metadata_t.ip_proto"]
666 },
667 {
668 "type" : "field",
669 "value" : ["ipv4", "protocol"]
670 }
671 ],
672 "op" : "set"
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800673 },
674 {
675 "parameters" : [
676 {
677 "type" : "field",
678 "value" : ["scalars", "fabric_metadata_t.ip_eth_type"]
679 },
680 {
681 "type" : "hexstr",
682 "value" : "0x0800"
683 }
684 ],
685 "op" : "set"
Yi Tsengbe342052017-11-03 10:21:23 -0700686 }
687 ],
688 "transitions" : [
689 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800690 "type" : "hexstr",
Yi Tsengbe342052017-11-03 10:21:23 -0700691 "value" : "0x06",
692 "mask" : null,
693 "next_state" : "parse_tcp"
694 },
695 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800696 "type" : "hexstr",
Yi Tsengbe342052017-11-03 10:21:23 -0700697 "value" : "0x11",
698 "mask" : null,
699 "next_state" : "parse_udp"
700 },
701 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800702 "type" : "hexstr",
Yi Tsengbe342052017-11-03 10:21:23 -0700703 "value" : "0x01",
704 "mask" : null,
705 "next_state" : "parse_icmp"
706 },
707 {
708 "value" : "default",
709 "mask" : null,
710 "next_state" : null
711 }
712 ],
713 "transition_key" : [
714 {
715 "type" : "field",
716 "value" : ["ipv4", "protocol"]
717 }
718 ]
719 },
720 {
Yi Tsengbe342052017-11-03 10:21:23 -0700721 "name" : "parse_tcp",
Carmelo Casconef645e842018-07-16 18:31:52 +0200722 "id" : 7,
Yi Tsengbe342052017-11-03 10:21:23 -0700723 "parser_ops" : [
724 {
725 "parameters" : [
726 {
727 "type" : "regular",
728 "value" : "tcp"
729 }
730 ],
731 "op" : "extract"
732 },
733 {
734 "parameters" : [
735 {
736 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800737 "value" : ["scalars", "fabric_metadata_t.l4_sport"]
Yi Tsengbe342052017-11-03 10:21:23 -0700738 },
739 {
740 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800741 "value" : ["tcp", "sport"]
Yi Tsengbe342052017-11-03 10:21:23 -0700742 }
743 ],
744 "op" : "set"
745 },
746 {
747 "parameters" : [
748 {
749 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800750 "value" : ["scalars", "fabric_metadata_t.l4_dport"]
Yi Tsengbe342052017-11-03 10:21:23 -0700751 },
752 {
753 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800754 "value" : ["tcp", "dport"]
Yi Tsengbe342052017-11-03 10:21:23 -0700755 }
756 ],
757 "op" : "set"
758 }
759 ],
760 "transitions" : [
761 {
762 "value" : "default",
763 "mask" : null,
764 "next_state" : null
765 }
766 ],
767 "transition_key" : []
768 },
769 {
770 "name" : "parse_udp",
Carmelo Casconef645e842018-07-16 18:31:52 +0200771 "id" : 8,
Yi Tsengbe342052017-11-03 10:21:23 -0700772 "parser_ops" : [
773 {
774 "parameters" : [
775 {
776 "type" : "regular",
777 "value" : "udp"
778 }
779 ],
780 "op" : "extract"
781 },
782 {
783 "parameters" : [
784 {
785 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800786 "value" : ["scalars", "fabric_metadata_t.l4_sport"]
Yi Tsengbe342052017-11-03 10:21:23 -0700787 },
788 {
789 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800790 "value" : ["udp", "sport"]
Yi Tsengbe342052017-11-03 10:21:23 -0700791 }
792 ],
793 "op" : "set"
794 },
795 {
796 "parameters" : [
797 {
798 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800799 "value" : ["scalars", "fabric_metadata_t.l4_dport"]
Yi Tsengbe342052017-11-03 10:21:23 -0700800 },
801 {
802 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800803 "value" : ["udp", "dport"]
Yi Tsengbe342052017-11-03 10:21:23 -0700804 }
805 ],
806 "op" : "set"
807 }
808 ],
809 "transitions" : [
810 {
811 "value" : "default",
812 "mask" : null,
813 "next_state" : null
814 }
815 ],
Carmelo Cascone79a3a312018-08-16 17:14:43 -0700816 "transition_key" : [
817 {
818 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800819 "value" : ["udp", "dport"]
Carmelo Cascone79a3a312018-08-16 17:14:43 -0700820 }
821 ]
Yi Tsengbe342052017-11-03 10:21:23 -0700822 },
823 {
824 "name" : "parse_icmp",
Carmelo Casconef645e842018-07-16 18:31:52 +0200825 "id" : 9,
Yi Tsengbe342052017-11-03 10:21:23 -0700826 "parser_ops" : [
827 {
828 "parameters" : [
829 {
830 "type" : "regular",
831 "value" : "icmp"
832 }
833 ],
834 "op" : "extract"
835 }
836 ],
837 "transitions" : [
838 {
839 "value" : "default",
840 "mask" : null,
841 "next_state" : null
842 }
843 ],
844 "transition_key" : []
845 }
846 ]
847 }
848 ],
Yi Tseng27b9bc02018-04-12 14:52:40 +0800849 "parse_vsets" : [],
Yi Tsengbe342052017-11-03 10:21:23 -0700850 "deparsers" : [
851 {
852 "name" : "deparser",
853 "id" : 0,
854 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +0200855 "filename" : "include/parser.p4",
Carmelo Cascone4d8785b2019-05-31 17:11:26 -0700856 "line" : 260,
Yi Tsengbe342052017-11-03 10:21:23 -0700857 "column" : 8,
858 "source_fragment" : "FabricDeparser"
859 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800860 "order" : ["packet_in", "ethernet", "vlan_tag", "inner_vlan_tag", "mpls", "ipv4", "tcp", "udp", "icmp"]
Yi Tsengbe342052017-11-03 10:21:23 -0700861 }
862 ],
863 "meter_arrays" : [],
864 "counter_arrays" : [
865 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800866 "name" : "FabricIngress.filtering.ingress_port_vlan_counter",
Yi Tseng1d842672017-11-28 16:06:52 -0800867 "id" : 0,
Yi Tseng3a5731e2018-01-22 11:38:58 -0800868 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700869 "binding" : "FabricIngress.filtering.ingress_port_vlan",
870 "source_info" : {
871 "filename" : "include/control/filtering.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800872 "line" : 31,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700873 "column" : 50,
874 "source_fragment" : "ingress_port_vlan_counter"
875 }
Yi Tseng3a5731e2018-01-22 11:38:58 -0800876 },
877 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800878 "name" : "FabricIngress.filtering.fwd_classifier_counter",
Yi Tseng3a5731e2018-01-22 11:38:58 -0800879 "id" : 1,
880 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700881 "binding" : "FabricIngress.filtering.fwd_classifier",
882 "source_info" : {
883 "filename" : "include/control/filtering.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -0700884 "line" : 80,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700885 "column" : 50,
886 "source_fragment" : "fwd_classifier_counter"
887 }
Yi Tseng3a5731e2018-01-22 11:38:58 -0800888 },
889 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800890 "name" : "FabricIngress.forwarding.bridging_counter",
Yi Tseng3a5731e2018-01-22 11:38:58 -0800891 "id" : 2,
892 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700893 "binding" : "FabricIngress.forwarding.bridging",
894 "source_info" : {
895 "filename" : "include/control/forwarding.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800896 "line" : 36,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700897 "column" : 50,
898 "source_fragment" : "bridging_counter"
899 }
Yi Tseng3a5731e2018-01-22 11:38:58 -0800900 },
901 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800902 "name" : "FabricIngress.forwarding.mpls_counter",
Yi Tseng3a5731e2018-01-22 11:38:58 -0800903 "id" : 3,
904 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700905 "binding" : "FabricIngress.forwarding.mpls",
906 "source_info" : {
907 "filename" : "include/control/forwarding.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -0700908 "line" : 63,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700909 "column" : 50,
910 "source_fragment" : "mpls_counter"
911 }
Yi Tseng3a5731e2018-01-22 11:38:58 -0800912 },
913 {
Charles Chan384aea22018-08-23 22:08:02 -0700914 "name" : "FabricIngress.forwarding.routing_v4_counter",
Yi Tseng3a5731e2018-01-22 11:38:58 -0800915 "id" : 4,
916 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700917 "binding" : "FabricIngress.forwarding.routing_v4",
918 "source_info" : {
919 "filename" : "include/control/forwarding.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -0700920 "line" : 87,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700921 "column" : 50,
922 "source_fragment" : "routing_v4_counter"
923 }
Yi Tseng3a5731e2018-01-22 11:38:58 -0800924 },
925 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800926 "name" : "FabricIngress.acl.acl_counter",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -0800927 "id" : 5,
Yi Tseng3a5731e2018-01-22 11:38:58 -0800928 "is_direct" : true,
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800929 "binding" : "FabricIngress.acl.acl",
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700930 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800931 "filename" : "include/control/acl.p4",
932 "line" : 30,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700933 "column" : 50,
934 "source_fragment" : "acl_counter"
935 }
Yi Tseng3a5731e2018-01-22 11:38:58 -0800936 },
937 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800938 "name" : "FabricIngress.next.next_vlan_counter",
Carmelo Casconef645e842018-07-16 18:31:52 +0200939 "id" : 6,
Yi Tseng47eac892018-07-11 02:17:04 +0800940 "is_direct" : true,
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800941 "binding" : "FabricIngress.next.next_vlan",
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700942 "source_info" : {
943 "filename" : "include/control/next.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800944 "line" : 67,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700945 "column" : 50,
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800946 "source_fragment" : "next_vlan_counter"
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700947 }
Yi Tseng20f9e7b2018-05-24 23:27:39 +0800948 },
949 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800950 "name" : "FabricIngress.next.xconnect_counter",
Carmelo Casconef645e842018-07-16 18:31:52 +0200951 "id" : 7,
Yi Tseng20f9e7b2018-05-24 23:27:39 +0800952 "is_direct" : true,
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800953 "binding" : "FabricIngress.next.xconnect",
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700954 "source_info" : {
955 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -0700956 "line" : 92,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700957 "column" : 50,
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800958 "source_fragment" : "xconnect_counter"
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700959 }
Yi Tseng27b9bc02018-04-12 14:52:40 +0800960 },
961 {
962 "name" : "FabricIngress.next.hashed_counter",
Carmelo Casconef645e842018-07-16 18:31:52 +0200963 "id" : 8,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800964 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700965 "binding" : "FabricIngress.next.hashed",
966 "source_info" : {
967 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -0700968 "line" : 166,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700969 "column" : 50,
970 "source_fragment" : "hashed_counter"
971 }
Yi Tseng27b9bc02018-04-12 14:52:40 +0800972 },
973 {
Esin Karaman971fb7f2017-12-28 13:44:52 +0000974 "name" : "FabricIngress.next.multicast_counter",
Carmelo Casconef645e842018-07-16 18:31:52 +0200975 "id" : 9,
Esin Karaman971fb7f2017-12-28 13:44:52 +0000976 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700977 "binding" : "FabricIngress.next.multicast",
978 "source_info" : {
979 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -0700980 "line" : 210,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700981 "column" : 50,
982 "source_fragment" : "multicast_counter"
983 }
Esin Karaman971fb7f2017-12-28 13:44:52 +0000984 },
985 {
986 "name" : "FabricIngress.port_counters_control.egress_port_counter",
Carmelo Casconef645e842018-07-16 18:31:52 +0200987 "id" : 10,
Yi Tsengbe342052017-11-03 10:21:23 -0700988 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +0200989 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800990 "line" : 26,
Yi Tseng3d3956d2018-01-31 17:28:05 -0800991 "column" : 48,
Yi Tsengbe342052017-11-03 10:21:23 -0700992 "source_fragment" : "egress_port_counter"
993 },
994 "size" : 511,
995 "is_direct" : false
996 },
997 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800998 "name" : "FabricIngress.port_counters_control.ingress_port_counter",
Carmelo Casconef645e842018-07-16 18:31:52 +0200999 "id" : 11,
Yi Tsengbe342052017-11-03 10:21:23 -07001000 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001001 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001002 "line" : 27,
Yi Tseng3d3956d2018-01-31 17:28:05 -08001003 "column" : 48,
Yi Tsengbe342052017-11-03 10:21:23 -07001004 "source_fragment" : "ingress_port_counter"
1005 },
1006 "size" : 511,
1007 "is_direct" : false
Yi Tseng47eac892018-07-11 02:17:04 +08001008 },
1009 {
1010 "name" : "FabricEgress.egress_next.egress_vlan_counter",
Carmelo Casconef645e842018-07-16 18:31:52 +02001011 "id" : 12,
Yi Tseng47eac892018-07-11 02:17:04 +08001012 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001013 "binding" : "FabricEgress.egress_next.egress_vlan",
1014 "source_info" : {
1015 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07001016 "line" : 283,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001017 "column" : 50,
1018 "source_fragment" : "egress_vlan_counter"
1019 }
Yi Tsengbe342052017-11-03 10:21:23 -07001020 }
1021 ],
1022 "register_arrays" : [],
1023 "calculations" : [
1024 {
1025 "name" : "calc",
1026 "id" : 0,
1027 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001028 "filename" : "include/checksum.p4",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001029 "line" : 28,
Yi Tsengbe342052017-11-03 10:21:23 -07001030 "column" : 8,
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001031 "source_fragment" : "update_checksum(hdr.ipv4.isValid(), ..."
Yi Tsengbe342052017-11-03 10:21:23 -07001032 },
1033 "algo" : "csum16",
1034 "input" : [
1035 {
1036 "type" : "field",
1037 "value" : ["ipv4", "version"]
1038 },
1039 {
1040 "type" : "field",
1041 "value" : ["ipv4", "ihl"]
1042 },
1043 {
1044 "type" : "field",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09001045 "value" : ["ipv4", "dscp"]
1046 },
1047 {
1048 "type" : "field",
1049 "value" : ["ipv4", "ecn"]
Yi Tsengbe342052017-11-03 10:21:23 -07001050 },
1051 {
1052 "type" : "field",
1053 "value" : ["ipv4", "total_len"]
1054 },
1055 {
1056 "type" : "field",
1057 "value" : ["ipv4", "identification"]
1058 },
1059 {
1060 "type" : "field",
1061 "value" : ["ipv4", "flags"]
1062 },
1063 {
1064 "type" : "field",
1065 "value" : ["ipv4", "frag_offset"]
1066 },
1067 {
1068 "type" : "field",
1069 "value" : ["ipv4", "ttl"]
1070 },
1071 {
1072 "type" : "field",
1073 "value" : ["ipv4", "protocol"]
1074 },
1075 {
1076 "type" : "field",
1077 "value" : ["ipv4", "src_addr"]
1078 },
1079 {
1080 "type" : "field",
1081 "value" : ["ipv4", "dst_addr"]
1082 }
1083 ]
1084 },
1085 {
1086 "name" : "calc_0",
1087 "id" : 1,
1088 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001089 "filename" : "include/checksum.p4",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09001090 "line" : 57,
Yi Tsengbe342052017-11-03 10:21:23 -07001091 "column" : 8,
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001092 "source_fragment" : "verify_checksum(hdr.ipv4.isValid(), ..."
Yi Tsengbe342052017-11-03 10:21:23 -07001093 },
1094 "algo" : "csum16",
1095 "input" : [
1096 {
1097 "type" : "field",
1098 "value" : ["ipv4", "version"]
1099 },
1100 {
1101 "type" : "field",
1102 "value" : ["ipv4", "ihl"]
1103 },
1104 {
1105 "type" : "field",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09001106 "value" : ["ipv4", "dscp"]
1107 },
1108 {
1109 "type" : "field",
1110 "value" : ["ipv4", "ecn"]
Yi Tsengbe342052017-11-03 10:21:23 -07001111 },
1112 {
1113 "type" : "field",
1114 "value" : ["ipv4", "total_len"]
1115 },
1116 {
1117 "type" : "field",
1118 "value" : ["ipv4", "identification"]
1119 },
1120 {
1121 "type" : "field",
1122 "value" : ["ipv4", "flags"]
1123 },
1124 {
1125 "type" : "field",
1126 "value" : ["ipv4", "frag_offset"]
1127 },
1128 {
1129 "type" : "field",
1130 "value" : ["ipv4", "ttl"]
1131 },
1132 {
1133 "type" : "field",
1134 "value" : ["ipv4", "protocol"]
1135 },
1136 {
1137 "type" : "field",
1138 "value" : ["ipv4", "src_addr"]
1139 },
1140 {
1141 "type" : "field",
1142 "value" : ["ipv4", "dst_addr"]
1143 }
1144 ]
Yi Tsengbe342052017-11-03 10:21:23 -07001145 }
1146 ],
1147 "learn_lists" : [],
1148 "actions" : [
1149 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001150 "name" : "nop",
Yi Tsengbe342052017-11-03 10:21:23 -07001151 "id" : 0,
1152 "runtime_data" : [],
1153 "primitives" : []
1154 },
1155 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001156 "name" : "nop",
Yi Tsengbe342052017-11-03 10:21:23 -07001157 "id" : 1,
1158 "runtime_data" : [],
1159 "primitives" : []
1160 },
1161 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001162 "name" : "nop",
Yi Tsengbe342052017-11-03 10:21:23 -07001163 "id" : 2,
1164 "runtime_data" : [],
Yi Tseng1d842672017-11-28 16:06:52 -08001165 "primitives" : []
Yi Tsengbe342052017-11-03 10:21:23 -07001166 },
1167 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001168 "name" : "nop",
Yi Tsengbe342052017-11-03 10:21:23 -07001169 "id" : 3,
1170 "runtime_data" : [],
Yi Tseng1d842672017-11-28 16:06:52 -08001171 "primitives" : []
Yi Tsengbe342052017-11-03 10:21:23 -07001172 },
1173 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001174 "name" : "nop",
Yi Tsengbe342052017-11-03 10:21:23 -07001175 "id" : 4,
1176 "runtime_data" : [],
1177 "primitives" : []
1178 },
1179 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001180 "name" : "nop",
Yi Tsengbe342052017-11-03 10:21:23 -07001181 "id" : 5,
1182 "runtime_data" : [],
1183 "primitives" : []
1184 },
1185 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07001186 "name" : "nop",
Yi Tsengbe342052017-11-03 10:21:23 -07001187 "id" : 6,
1188 "runtime_data" : [],
1189 "primitives" : []
1190 },
1191 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001192 "name" : "FabricIngress.filtering.deny",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07001193 "id" : 7,
Yi Tseng47eac892018-07-11 02:17:04 +08001194 "runtime_data" : [],
Yi Tseng1d842672017-11-28 16:06:52 -08001195 "primitives" : [
1196 {
Yi Tsengbe342052017-11-03 10:21:23 -07001197 "op" : "assign",
1198 "parameters" : [
1199 {
1200 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001201 "value" : ["scalars", "fabric_metadata_t.skip_forwarding"]
Yi Tsengbe342052017-11-03 10:21:23 -07001202 },
1203 {
1204 "type" : "expression",
1205 "value" : {
1206 "type" : "expression",
1207 "value" : {
1208 "op" : "b2d",
1209 "left" : null,
1210 "right" : {
1211 "type" : "bool",
1212 "value" : true
1213 }
1214 }
1215 }
1216 }
1217 ],
1218 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001219 "filename" : "include/control/filtering.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001220 "line" : 36,
Yi Tsengbe342052017-11-03 10:21:23 -07001221 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001222 "source_fragment" : "fabric_metadata.skip_forwarding = true"
1223 }
1224 },
1225 {
1226 "op" : "assign",
1227 "parameters" : [
1228 {
1229 "type" : "field",
1230 "value" : ["scalars", "fabric_metadata_t.skip_next"]
1231 },
1232 {
1233 "type" : "expression",
1234 "value" : {
1235 "type" : "expression",
1236 "value" : {
1237 "op" : "b2d",
1238 "left" : null,
1239 "right" : {
1240 "type" : "bool",
1241 "value" : true
1242 }
1243 }
1244 }
1245 }
1246 ],
1247 "source_info" : {
1248 "filename" : "include/control/filtering.p4",
1249 "line" : 37,
1250 "column" : 8,
1251 "source_fragment" : "fabric_metadata.skip_next = true"
Yi Tsengbe342052017-11-03 10:21:23 -07001252 }
1253 }
1254 ]
1255 },
1256 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001257 "name" : "FabricIngress.filtering.permit",
1258 "id" : 8,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07001259 "runtime_data" : [],
1260 "primitives" : []
1261 },
1262 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001263 "name" : "FabricIngress.filtering.permit_with_internal_vlan",
1264 "id" : 9,
1265 "runtime_data" : [
1266 {
1267 "name" : "vlan_id",
1268 "bitwidth" : 12
1269 }
1270 ],
1271 "primitives" : [
1272 {
1273 "op" : "assign",
1274 "parameters" : [
1275 {
1276 "type" : "field",
1277 "value" : ["scalars", "fabric_metadata_t.vlan_id"]
1278 },
1279 {
1280 "type" : "runtime_data",
1281 "value" : 0
1282 }
1283 ],
1284 "source_info" : {
1285 "filename" : "include/control/filtering.p4",
1286 "line" : 47,
1287 "column" : 8,
1288 "source_fragment" : "fabric_metadata.vlan_id = vlan_id"
1289 }
1290 }
1291 ]
1292 },
1293 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001294 "name" : "FabricIngress.filtering.set_forwarding_type",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001295 "id" : 10,
Yi Tsengbe342052017-11-03 10:21:23 -07001296 "runtime_data" : [
1297 {
1298 "name" : "fwd_type",
1299 "bitwidth" : 3
1300 }
1301 ],
1302 "primitives" : [
1303 {
1304 "op" : "assign",
1305 "parameters" : [
1306 {
1307 "type" : "field",
1308 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
1309 },
1310 {
1311 "type" : "runtime_data",
1312 "value" : 0
1313 }
1314 ],
1315 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001316 "filename" : "include/control/filtering.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07001317 "line" : 83,
Yi Tsengbe342052017-11-03 10:21:23 -07001318 "column" : 8,
1319 "source_fragment" : "fabric_metadata.fwd_type = fwd_type"
1320 }
1321 }
1322 ]
1323 },
1324 {
Yi Tseng47eac892018-07-11 02:17:04 +08001325 "name" : "FabricIngress.forwarding.set_next_id_bridging",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001326 "id" : 11,
Carmelo Casconef645e842018-07-16 18:31:52 +02001327 "runtime_data" : [
1328 {
1329 "name" : "next_id",
1330 "bitwidth" : 32
1331 }
1332 ],
1333 "primitives" : [
1334 {
1335 "op" : "assign",
1336 "parameters" : [
1337 {
1338 "type" : "field",
1339 "value" : ["scalars", "fabric_metadata_t.next_id"]
1340 },
1341 {
1342 "type" : "runtime_data",
1343 "value" : 0
1344 }
1345 ],
1346 "source_info" : {
1347 "filename" : "include/control/forwarding.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001348 "line" : 30,
Carmelo Casconef645e842018-07-16 18:31:52 +02001349 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001350 "source_fragment" : "fabric_metadata.next_id = next_id; ..."
Carmelo Casconef645e842018-07-16 18:31:52 +02001351 }
1352 }
1353 ]
1354 },
1355 {
1356 "name" : "FabricIngress.forwarding.pop_mpls_and_next",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001357 "id" : 12,
Carmelo Casconef645e842018-07-16 18:31:52 +02001358 "runtime_data" : [
1359 {
1360 "name" : "next_id",
1361 "bitwidth" : 32
1362 }
1363 ],
1364 "primitives" : [
1365 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001366 "op" : "assign",
Carmelo Casconef645e842018-07-16 18:31:52 +02001367 "parameters" : [
1368 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001369 "type" : "field",
1370 "value" : ["scalars", "fabric_metadata_t.mpls_label"]
1371 },
1372 {
1373 "type" : "hexstr",
1374 "value" : "0x000000"
Carmelo Casconef645e842018-07-16 18:31:52 +02001375 }
1376 ],
1377 "source_info" : {
1378 "filename" : "include/control/forwarding.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07001379 "line" : 66,
Carmelo Casconef645e842018-07-16 18:31:52 +02001380 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001381 "source_fragment" : "fabric_metadata.mpls_label = 0"
Carmelo Casconef645e842018-07-16 18:31:52 +02001382 }
1383 },
1384 {
1385 "op" : "assign",
1386 "parameters" : [
1387 {
1388 "type" : "field",
1389 "value" : ["scalars", "fabric_metadata_t.next_id"]
1390 },
1391 {
1392 "type" : "runtime_data",
1393 "value" : 0
1394 }
1395 ],
1396 "source_info" : {
1397 "filename" : "include/control/forwarding.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001398 "line" : 30,
Carmelo Casconef645e842018-07-16 18:31:52 +02001399 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001400 "source_fragment" : "fabric_metadata.next_id = next_id; ..."
Carmelo Casconef645e842018-07-16 18:31:52 +02001401 }
1402 }
1403 ]
1404 },
1405 {
Charles Chan384aea22018-08-23 22:08:02 -07001406 "name" : "FabricIngress.forwarding.set_next_id_routing_v4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001407 "id" : 13,
Carmelo Casconef645e842018-07-16 18:31:52 +02001408 "runtime_data" : [
1409 {
1410 "name" : "next_id",
1411 "bitwidth" : 32
1412 }
1413 ],
1414 "primitives" : [
1415 {
1416 "op" : "assign",
1417 "parameters" : [
1418 {
1419 "type" : "field",
1420 "value" : ["scalars", "fabric_metadata_t.next_id"]
1421 },
1422 {
1423 "type" : "runtime_data",
1424 "value" : 0
1425 }
1426 ],
1427 "source_info" : {
1428 "filename" : "include/control/forwarding.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001429 "line" : 30,
Carmelo Casconef645e842018-07-16 18:31:52 +02001430 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001431 "source_fragment" : "fabric_metadata.next_id = next_id; ..."
Carmelo Casconef645e842018-07-16 18:31:52 +02001432 }
1433 }
1434 ]
1435 },
1436 {
Charles Chancd03f072018-08-31 17:46:37 -07001437 "name" : "FabricIngress.forwarding.nop_routing_v4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001438 "id" : 14,
Charles Chancd03f072018-08-31 17:46:37 -07001439 "runtime_data" : [],
1440 "primitives" : []
1441 },
1442 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001443 "name" : "FabricIngress.acl.set_next_id_acl",
1444 "id" : 15,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001445 "runtime_data" : [
1446 {
1447 "name" : "next_id",
1448 "bitwidth" : 32
1449 }
1450 ],
1451 "primitives" : [
1452 {
Esin Karaman971fb7f2017-12-28 13:44:52 +00001453 "op" : "assign",
1454 "parameters" : [
1455 {
1456 "type" : "field",
1457 "value" : ["scalars", "fabric_metadata_t.next_id"]
1458 },
1459 {
1460 "type" : "runtime_data",
1461 "value" : 0
1462 }
1463 ],
1464 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001465 "filename" : "include/control/acl.p4",
1466 "line" : 33,
Yi Tseng47eac892018-07-11 02:17:04 +08001467 "column" : 8,
1468 "source_fragment" : "fabric_metadata.next_id = next_id"
1469 }
1470 }
1471 ]
1472 },
1473 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001474 "name" : "FabricIngress.acl.punt_to_cpu",
1475 "id" : 16,
Yi Tsengbe342052017-11-03 10:21:23 -07001476 "runtime_data" : [],
1477 "primitives" : [
1478 {
1479 "op" : "assign",
1480 "parameters" : [
1481 {
1482 "type" : "field",
Yi Tsengbe342052017-11-03 10:21:23 -07001483 "value" : ["standard_metadata", "egress_spec"]
1484 },
1485 {
1486 "type" : "hexstr",
1487 "value" : "0x00ff"
1488 }
1489 ],
1490 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001491 "filename" : "include/control/acl.p4",
1492 "line" : 39,
Carmelo Casconeb531b682018-01-30 17:55:56 -08001493 "column" : 8,
1494 "source_fragment" : "standard_metadata.egress_spec = 255"
Yi Tsengbe342052017-11-03 10:21:23 -07001495 }
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001496 },
1497 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001498 "op" : "assign",
1499 "parameters" : [
1500 {
1501 "type" : "field",
1502 "value" : ["scalars", "fabric_metadata_t.skip_next"]
1503 },
1504 {
1505 "type" : "expression",
1506 "value" : {
1507 "type" : "expression",
1508 "value" : {
1509 "op" : "b2d",
1510 "left" : null,
1511 "right" : {
1512 "type" : "bool",
1513 "value" : true
1514 }
1515 }
1516 }
1517 }
1518 ],
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001519 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001520 "filename" : "include/control/acl.p4",
1521 "line" : 40,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001522 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001523 "source_fragment" : "fabric_metadata.skip_next = true"
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001524 }
1525 }
1526 ]
1527 },
1528 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07001529 "name" : "FabricIngress.acl.set_clone_session_id",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001530 "id" : 17,
Daniele Moro01ca2ab2019-06-25 11:48:48 -07001531 "runtime_data" : [
1532 {
1533 "name" : "clone_id",
1534 "bitwidth" : 32
1535 }
1536 ],
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001537 "primitives" : [
1538 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07001539 "op" : "clone_ingress_pkt_to_egress",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001540 "parameters" : [
1541 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07001542 "type" : "runtime_data",
1543 "value" : 0
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001544 },
1545 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07001546 "type" : "hexstr",
1547 "value" : "0x1"
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001548 }
1549 ],
1550 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001551 "filename" : "include/control/acl.p4",
1552 "line" : 46,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001553 "column" : 8,
Daniele Moro01ca2ab2019-06-25 11:48:48 -07001554 "source_fragment" : "clone3<standard_metadata_t>(CloneType.I2E, clone_id, standard_metadata)"
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001555 }
Yi Tsengbe342052017-11-03 10:21:23 -07001556 }
1557 ]
1558 },
1559 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001560 "name" : "FabricIngress.acl.drop",
1561 "id" : 18,
Yi Tseng47eac892018-07-11 02:17:04 +08001562 "runtime_data" : [],
1563 "primitives" : [
1564 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07001565 "op" : "mark_to_drop",
1566 "parameters" : [
1567 {
1568 "type" : "header",
1569 "value" : "standard_metadata"
1570 }
1571 ],
Yi Tseng47eac892018-07-11 02:17:04 +08001572 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001573 "filename" : "include/control/acl.p4",
1574 "line" : 51,
Yi Tseng47eac892018-07-11 02:17:04 +08001575 "column" : 8,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07001576 "source_fragment" : "mark_to_drop(standard_metadata)"
Yi Tseng47eac892018-07-11 02:17:04 +08001577 }
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001578 },
1579 {
1580 "op" : "assign",
1581 "parameters" : [
1582 {
1583 "type" : "field",
1584 "value" : ["scalars", "fabric_metadata_t.skip_next"]
1585 },
1586 {
1587 "type" : "expression",
1588 "value" : {
1589 "type" : "expression",
1590 "value" : {
1591 "op" : "b2d",
1592 "left" : null,
1593 "right" : {
1594 "type" : "bool",
1595 "value" : true
1596 }
1597 }
1598 }
1599 }
1600 ],
1601 "source_info" : {
1602 "filename" : "include/control/acl.p4",
1603 "line" : 52,
1604 "column" : 8,
1605 "source_fragment" : "fabric_metadata.skip_next = true"
1606 }
Yi Tseng47eac892018-07-11 02:17:04 +08001607 }
1608 ]
1609 },
1610 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001611 "name" : "FabricIngress.acl.nop_acl",
1612 "id" : 19,
Charles Chancf696e52018-08-16 16:25:13 -07001613 "runtime_data" : [],
1614 "primitives" : []
1615 },
1616 {
Yi Tseng47eac892018-07-11 02:17:04 +08001617 "name" : "FabricIngress.next.set_vlan",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001618 "id" : 20,
1619 "runtime_data" : [
1620 {
1621 "name" : "vlan_id",
1622 "bitwidth" : 12
1623 }
1624 ],
1625 "primitives" : [
1626 {
1627 "op" : "assign",
1628 "parameters" : [
1629 {
1630 "type" : "field",
1631 "value" : ["scalars", "fabric_metadata_t.vlan_id"]
1632 },
1633 {
1634 "type" : "runtime_data",
1635 "value" : 0
1636 }
1637 ],
1638 "source_info" : {
1639 "filename" : "include/control/next.p4",
1640 "line" : 70,
1641 "column" : 8,
1642 "source_fragment" : "fabric_metadata.vlan_id = vlan_id"
1643 }
1644 }
1645 ]
1646 },
1647 {
1648 "name" : "FabricIngress.next.output_xconnect",
Charles Chancd03f072018-08-31 17:46:37 -07001649 "id" : 21,
Yi Tseng47eac892018-07-11 02:17:04 +08001650 "runtime_data" : [
1651 {
Yi Tsengbe342052017-11-03 10:21:23 -07001652 "name" : "port_num",
1653 "bitwidth" : 9
1654 }
1655 ],
1656 "primitives" : [
1657 {
1658 "op" : "assign",
1659 "parameters" : [
1660 {
1661 "type" : "field",
1662 "value" : ["standard_metadata", "egress_spec"]
1663 },
1664 {
1665 "type" : "runtime_data",
1666 "value" : 0
1667 }
1668 ],
1669 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001670 "filename" : "include/control/next.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001671 "line" : 31,
1672 "column" : 5,
Yi Tseng47eac892018-07-11 02:17:04 +08001673 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
1674 }
1675 }
1676 ]
1677 },
1678 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001679 "name" : "FabricIngress.next.set_next_id_xconnect",
1680 "id" : 22,
1681 "runtime_data" : [
1682 {
1683 "name" : "next_id",
1684 "bitwidth" : 32
1685 }
1686 ],
1687 "primitives" : [
1688 {
1689 "op" : "assign",
1690 "parameters" : [
1691 {
1692 "type" : "field",
1693 "value" : ["scalars", "fabric_metadata_t.next_id"]
1694 },
1695 {
1696 "type" : "runtime_data",
1697 "value" : 0
1698 }
1699 ],
1700 "source_info" : {
1701 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07001702 "line" : 100,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001703 "column" : 8,
1704 "source_fragment" : "fabric_metadata.next_id = next_id"
1705 }
1706 }
1707 ]
1708 },
1709 {
1710 "name" : "FabricIngress.next.output_hashed",
1711 "id" : 23,
1712 "runtime_data" : [
1713 {
1714 "name" : "port_num",
1715 "bitwidth" : 9
1716 }
1717 ],
1718 "primitives" : [
1719 {
1720 "op" : "assign",
1721 "parameters" : [
1722 {
1723 "type" : "field",
1724 "value" : ["standard_metadata", "egress_spec"]
1725 },
1726 {
1727 "type" : "runtime_data",
1728 "value" : 0
1729 }
1730 ],
1731 "source_info" : {
1732 "filename" : "include/control/next.p4",
1733 "line" : 31,
1734 "column" : 5,
1735 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
1736 }
1737 }
1738 ]
1739 },
1740 {
1741 "name" : "FabricIngress.next.routing_hashed",
Charles Chancd03f072018-08-31 17:46:37 -07001742 "id" : 24,
Yi Tseng47eac892018-07-11 02:17:04 +08001743 "runtime_data" : [
1744 {
1745 "name" : "port_num",
1746 "bitwidth" : 9
1747 },
1748 {
1749 "name" : "smac",
1750 "bitwidth" : 48
1751 },
1752 {
1753 "name" : "dmac",
1754 "bitwidth" : 48
1755 }
1756 ],
1757 "primitives" : [
1758 {
1759 "op" : "assign",
1760 "parameters" : [
1761 {
1762 "type" : "field",
1763 "value" : ["ethernet", "src_addr"]
1764 },
1765 {
1766 "type" : "runtime_data",
1767 "value" : 1
1768 }
1769 ],
1770 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001771 "filename" : "include/control/next.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001772 "line" : 36,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001773 "column" : 8,
Yi Tseng47eac892018-07-11 02:17:04 +08001774 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
1775 }
1776 },
1777 {
1778 "op" : "assign",
1779 "parameters" : [
1780 {
1781 "type" : "field",
1782 "value" : ["ethernet", "dst_addr"]
1783 },
1784 {
1785 "type" : "runtime_data",
1786 "value" : 2
1787 }
1788 ],
1789 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001790 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001791 "line" : 41,
1792 "column" : 8,
1793 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
1794 }
1795 },
1796 {
1797 "op" : "assign",
1798 "parameters" : [
1799 {
1800 "type" : "field",
1801 "value" : ["standard_metadata", "egress_spec"]
1802 },
1803 {
1804 "type" : "runtime_data",
1805 "value" : 0
1806 }
1807 ],
1808 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001809 "filename" : "include/control/next.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001810 "line" : 31,
1811 "column" : 5,
Yi Tseng47eac892018-07-11 02:17:04 +08001812 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001813 }
1814 }
1815 ]
1816 },
1817 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001818 "name" : "FabricIngress.next.mpls_routing_hashed",
Carmelo Casconef645e842018-07-16 18:31:52 +02001819 "id" : 25,
Esin Karaman971fb7f2017-12-28 13:44:52 +00001820 "runtime_data" : [
1821 {
1822 "name" : "port_num",
1823 "bitwidth" : 9
1824 },
1825 {
1826 "name" : "smac",
1827 "bitwidth" : 48
1828 },
1829 {
1830 "name" : "dmac",
1831 "bitwidth" : 48
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001832 },
1833 {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001834 "name" : "label",
1835 "bitwidth" : 20
Yi Tsengbe342052017-11-03 10:21:23 -07001836 }
1837 ],
1838 "primitives" : [
1839 {
1840 "op" : "assign",
1841 "parameters" : [
1842 {
1843 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001844 "value" : ["scalars", "fabric_metadata_t.mpls_label"]
1845 },
1846 {
1847 "type" : "runtime_data",
1848 "value" : 3
1849 }
1850 ],
1851 "source_info" : {
1852 "filename" : "include/control/next.p4",
1853 "line" : 46,
1854 "column" : 8,
1855 "source_fragment" : "fabric_metadata.mpls_label = label; ..."
1856 }
1857 },
1858 {
1859 "op" : "assign",
1860 "parameters" : [
1861 {
1862 "type" : "field",
Yi Tsengbe342052017-11-03 10:21:23 -07001863 "value" : ["ethernet", "src_addr"]
1864 },
1865 {
1866 "type" : "runtime_data",
1867 "value" : 1
1868 }
1869 ],
1870 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001871 "filename" : "include/control/next.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001872 "line" : 36,
Yi Tsengbe342052017-11-03 10:21:23 -07001873 "column" : 8,
1874 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
1875 }
1876 },
1877 {
1878 "op" : "assign",
1879 "parameters" : [
1880 {
1881 "type" : "field",
1882 "value" : ["ethernet", "dst_addr"]
1883 },
1884 {
1885 "type" : "runtime_data",
1886 "value" : 2
1887 }
1888 ],
1889 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001890 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001891 "line" : 41,
Yi Tsengbe342052017-11-03 10:21:23 -07001892 "column" : 8,
1893 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
1894 }
1895 },
1896 {
1897 "op" : "assign",
1898 "parameters" : [
1899 {
1900 "type" : "field",
1901 "value" : ["standard_metadata", "egress_spec"]
1902 },
1903 {
1904 "type" : "runtime_data",
1905 "value" : 0
1906 }
1907 ],
1908 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001909 "filename" : "include/control/next.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001910 "line" : 31,
1911 "column" : 5,
Yi Tsengbe342052017-11-03 10:21:23 -07001912 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
1913 }
Yi Tsengbe342052017-11-03 10:21:23 -07001914 }
1915 ]
1916 },
1917 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001918 "name" : "FabricIngress.next.set_mcast_group_id",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001919 "id" : 26,
1920 "runtime_data" : [
1921 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001922 "name" : "group_id",
Esin Karaman971fb7f2017-12-28 13:44:52 +00001923 "bitwidth" : 16
1924 }
1925 ],
1926 "primitives" : [
1927 {
1928 "op" : "assign",
1929 "parameters" : [
1930 {
1931 "type" : "field",
1932 "value" : ["standard_metadata", "mcast_grp"]
1933 },
1934 {
1935 "type" : "runtime_data",
1936 "value" : 0
1937 }
1938 ],
1939 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001940 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07001941 "line" : 213,
Esin Karaman971fb7f2017-12-28 13:44:52 +00001942 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001943 "source_fragment" : "standard_metadata.mcast_grp = group_id"
Esin Karaman971fb7f2017-12-28 13:44:52 +00001944 }
Carmelo Casconea5400af2018-07-17 22:11:54 +02001945 },
1946 {
1947 "op" : "assign",
1948 "parameters" : [
1949 {
1950 "type" : "field",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001951 "value" : ["scalars", "fabric_metadata_t.is_multicast"]
Carmelo Casconea5400af2018-07-17 22:11:54 +02001952 },
1953 {
1954 "type" : "expression",
1955 "value" : {
1956 "type" : "expression",
1957 "value" : {
1958 "op" : "b2d",
1959 "left" : null,
1960 "right" : {
1961 "type" : "bool",
1962 "value" : true
1963 }
1964 }
1965 }
1966 }
1967 ],
1968 "source_info" : {
1969 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07001970 "line" : 214,
Carmelo Casconea5400af2018-07-17 22:11:54 +02001971 "column" : 8,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001972 "source_fragment" : "fabric_metadata.is_multicast = true"
Carmelo Casconea5400af2018-07-17 22:11:54 +02001973 }
Esin Karaman971fb7f2017-12-28 13:44:52 +00001974 }
1975 ]
1976 },
1977 {
1978 "name" : "act",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001979 "id" : 27,
Yi Tsengbe342052017-11-03 10:21:23 -07001980 "runtime_data" : [],
1981 "primitives" : [
1982 {
1983 "op" : "assign",
1984 "parameters" : [
1985 {
1986 "type" : "field",
1987 "value" : ["standard_metadata", "egress_spec"]
1988 },
1989 {
1990 "type" : "field",
1991 "value" : ["packet_out", "egress_port"]
1992 }
1993 ],
1994 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001995 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001996 "line" : 25,
Yi Tsengbe342052017-11-03 10:21:23 -07001997 "column" : 12,
1998 "source_fragment" : "standard_metadata.egress_spec = hdr.packet_out.egress_port"
1999 }
Yi Tseng1d842672017-11-28 16:06:52 -08002000 },
2001 {
2002 "op" : "remove_header",
2003 "parameters" : [
2004 {
2005 "type" : "header",
2006 "value" : "packet_out"
2007 }
2008 ],
2009 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002010 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002011 "line" : 26,
Yi Tseng1d842672017-11-28 16:06:52 -08002012 "column" : 12,
2013 "source_fragment" : "hdr.packet_out.setInvalid()"
2014 }
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07002015 },
2016 {
2017 "op" : "assign",
2018 "parameters" : [
2019 {
2020 "type" : "field",
2021 "value" : ["scalars", "fabric_metadata_t.is_controller_packet_out"]
2022 },
2023 {
2024 "type" : "expression",
2025 "value" : {
2026 "type" : "expression",
2027 "value" : {
2028 "op" : "b2d",
2029 "left" : null,
2030 "right" : {
2031 "type" : "bool",
2032 "value" : true
2033 }
2034 }
2035 }
2036 }
2037 ],
2038 "source_info" : {
2039 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002040 "line" : 27,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07002041 "column" : 12,
2042 "source_fragment" : "fabric_metadata.is_controller_packet_out = true"
2043 }
Carmelo Cascone9b607da2019-05-08 14:03:01 -07002044 },
2045 {
2046 "op" : "exit",
2047 "parameters" : [],
2048 "source_info" : {
2049 "filename" : "include/control/packetio.p4",
2050 "line" : 29,
2051 "column" : 12,
2052 "source_fragment" : "exit"
2053 }
Yi Tsengbe342052017-11-03 10:21:23 -07002054 }
2055 ]
2056 },
2057 {
2058 "name" : "act_0",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002059 "id" : 28,
Yi Tsengbe342052017-11-03 10:21:23 -07002060 "runtime_data" : [],
2061 "primitives" : [
2062 {
2063 "op" : "assign",
2064 "parameters" : [
2065 {
2066 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002067 "value" : ["scalars", "fabric_metadata_t.eth_type"]
Yi Tseng1d842672017-11-28 16:06:52 -08002068 },
2069 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002070 "type" : "field",
2071 "value" : ["vlan_tag", "eth_type"]
Yi Tseng1d842672017-11-28 16:06:52 -08002072 }
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002073 ],
2074 "source_info" : {
2075 "filename" : "include/control/filtering.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07002076 "line" : 105,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002077 "column" : 12,
2078 "source_fragment" : "fabric_metadata.eth_type = hdr.vlan_tag.eth_type"
2079 }
2080 },
2081 {
2082 "op" : "assign",
2083 "parameters" : [
2084 {
2085 "type" : "field",
2086 "value" : ["scalars", "fabric_metadata_t.vlan_id"]
2087 },
2088 {
2089 "type" : "field",
2090 "value" : ["vlan_tag", "vlan_id"]
2091 }
2092 ],
2093 "source_info" : {
2094 "filename" : "include/control/filtering.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07002095 "line" : 106,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002096 "column" : 12,
2097 "source_fragment" : "fabric_metadata.vlan_id = hdr.vlan_tag.vlan_id"
2098 }
2099 },
2100 {
2101 "op" : "assign",
2102 "parameters" : [
2103 {
2104 "type" : "field",
2105 "value" : ["scalars", "fabric_metadata_t.vlan_pri"]
2106 },
2107 {
2108 "type" : "field",
2109 "value" : ["vlan_tag", "pri"]
2110 }
2111 ],
2112 "source_info" : {
2113 "filename" : "include/control/filtering.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07002114 "line" : 107,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002115 "column" : 12,
2116 "source_fragment" : "fabric_metadata.vlan_pri = hdr.vlan_tag.pri"
2117 }
2118 },
2119 {
2120 "op" : "assign",
2121 "parameters" : [
2122 {
2123 "type" : "field",
2124 "value" : ["scalars", "fabric_metadata_t.vlan_cfi"]
2125 },
2126 {
2127 "type" : "field",
2128 "value" : ["vlan_tag", "cfi"]
2129 }
2130 ],
2131 "source_info" : {
2132 "filename" : "include/control/filtering.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07002133 "line" : 108,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002134 "column" : 12,
2135 "source_fragment" : "fabric_metadata.vlan_cfi = hdr.vlan_tag.cfi"
2136 }
Yi Tseng1d842672017-11-28 16:06:52 -08002137 }
2138 ]
2139 },
2140 {
2141 "name" : "act_1",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002142 "id" : 29,
Yi Tseng1d842672017-11-28 16:06:52 -08002143 "runtime_data" : [],
2144 "primitives" : [
2145 {
2146 "op" : "assign",
2147 "parameters" : [
2148 {
2149 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002150 "value" : ["scalars", "fabric_metadata_t.mpls_ttl"]
2151 },
2152 {
2153 "type" : "hexstr",
2154 "value" : "0x41"
2155 }
2156 ],
2157 "source_info" : {
2158 "filename" : "include/control/filtering.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07002159 "line" : 115,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002160 "column" : 12,
2161 "source_fragment" : "fabric_metadata.mpls_ttl = DEFAULT_MPLS_TTL + 1"
2162 }
2163 }
2164 ]
2165 },
2166 {
2167 "name" : "act_2",
2168 "id" : 30,
2169 "runtime_data" : [],
2170 "primitives" : [
2171 {
2172 "op" : "assign",
2173 "parameters" : [
2174 {
2175 "type" : "field",
2176 "value" : ["scalars", "tmp"]
Yi Tseng1d842672017-11-28 16:06:52 -08002177 },
2178 {
2179 "type" : "expression",
2180 "value" : {
2181 "type" : "expression",
2182 "value" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002183 "op" : "&",
2184 "left" : {
2185 "type" : "field",
2186 "value" : ["standard_metadata", "egress_spec"]
2187 },
Yi Tseng1d842672017-11-28 16:06:52 -08002188 "right" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002189 "type" : "hexstr",
2190 "value" : "0xffffffff"
Yi Tseng1d842672017-11-28 16:06:52 -08002191 }
2192 }
2193 }
2194 }
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002195 ],
2196 "source_info" : {
2197 "filename" : "include/control/port_counter.p4",
2198 "line" : 31,
2199 "column" : 38,
2200 "source_fragment" : "(bit<32>)standard_metadata.egress_spec"
2201 }
2202 },
Carmelo Casconea5400af2018-07-17 22:11:54 +02002203 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002204 "op" : "count",
Carmelo Casconea5400af2018-07-17 22:11:54 +02002205 "parameters" : [
2206 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002207 "type" : "counter_array",
2208 "value" : "FabricIngress.port_counters_control.egress_port_counter"
Carmelo Casconea5400af2018-07-17 22:11:54 +02002209 },
2210 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002211 "type" : "field",
2212 "value" : ["scalars", "tmp"]
Carmelo Casconea5400af2018-07-17 22:11:54 +02002213 }
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002214 ],
2215 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002216 "filename" : "include/control/port_counter.p4",
2217 "line" : 31,
2218 "column" : 12,
2219 "source_fragment" : "egress_port_counter.count((bit<32>)standard_metadata.egress_spec)"
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002220 }
Carmelo Casconea5400af2018-07-17 22:11:54 +02002221 }
2222 ]
2223 },
2224 {
Yi Tsengbd46d052018-01-22 17:18:16 -08002225 "name" : "act_3",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002226 "id" : 31,
2227 "runtime_data" : [],
2228 "primitives" : [
2229 {
2230 "op" : "assign",
2231 "parameters" : [
2232 {
2233 "type" : "field",
2234 "value" : ["scalars", "tmp_1"]
2235 },
2236 {
2237 "type" : "expression",
2238 "value" : {
2239 "type" : "expression",
2240 "value" : {
2241 "op" : "&",
2242 "left" : {
2243 "type" : "field",
2244 "value" : ["standard_metadata", "ingress_port"]
2245 },
2246 "right" : {
2247 "type" : "hexstr",
2248 "value" : "0xffffffff"
2249 }
2250 }
2251 }
2252 }
2253 ],
2254 "source_info" : {
2255 "filename" : "include/control/port_counter.p4",
2256 "line" : 34,
2257 "column" : 39,
2258 "source_fragment" : "(bit<32>)standard_metadata.ingress_port"
2259 }
2260 },
2261 {
2262 "op" : "count",
2263 "parameters" : [
2264 {
2265 "type" : "counter_array",
2266 "value" : "FabricIngress.port_counters_control.ingress_port_counter"
2267 },
2268 {
2269 "type" : "field",
2270 "value" : ["scalars", "tmp_1"]
2271 }
2272 ],
2273 "source_info" : {
2274 "filename" : "include/control/port_counter.p4",
2275 "line" : 34,
2276 "column" : 12,
2277 "source_fragment" : "ingress_port_counter.count((bit<32>)standard_metadata.ingress_port)"
2278 }
2279 }
2280 ]
2281 },
2282 {
2283 "name" : "nop",
2284 "id" : 32,
2285 "runtime_data" : [],
2286 "primitives" : []
2287 },
2288 {
2289 "name" : "FabricEgress.egress_next.pop_mpls_if_present",
2290 "id" : 33,
2291 "runtime_data" : [],
2292 "primitives" : [
2293 {
2294 "op" : "remove_header",
2295 "parameters" : [
2296 {
2297 "type" : "header",
2298 "value" : "mpls"
2299 }
2300 ],
2301 "source_info" : {
2302 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07002303 "line" : 252,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002304 "column" : 8,
2305 "source_fragment" : "hdr.mpls.setInvalid()"
2306 }
2307 },
2308 {
2309 "op" : "assign",
2310 "parameters" : [
2311 {
2312 "type" : "field",
2313 "value" : ["scalars", "fabric_metadata_t.eth_type"]
2314 },
2315 {
2316 "type" : "field",
2317 "value" : ["scalars", "fabric_metadata_t.ip_eth_type"]
2318 }
2319 ],
2320 "source_info" : {
2321 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07002322 "line" : 254,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002323 "column" : 8,
2324 "source_fragment" : "fabric_metadata.eth_type = fabric_metadata.ip_eth_type"
2325 }
2326 }
2327 ]
2328 },
2329 {
2330 "name" : "FabricEgress.egress_next.set_mpls",
2331 "id" : 34,
2332 "runtime_data" : [],
2333 "primitives" : [
2334 {
2335 "op" : "add_header",
2336 "parameters" : [
2337 {
2338 "type" : "header",
2339 "value" : "mpls"
2340 }
2341 ],
2342 "source_info" : {
2343 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07002344 "line" : 259,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002345 "column" : 8,
2346 "source_fragment" : "hdr.mpls.setValid()"
2347 }
2348 },
2349 {
2350 "op" : "assign",
2351 "parameters" : [
2352 {
2353 "type" : "field",
2354 "value" : ["mpls", "label"]
2355 },
2356 {
2357 "type" : "field",
2358 "value" : ["scalars", "fabric_metadata_t.mpls_label"]
2359 }
2360 ],
2361 "source_info" : {
2362 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07002363 "line" : 260,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002364 "column" : 8,
2365 "source_fragment" : "hdr.mpls.label = fabric_metadata.mpls_label"
2366 }
2367 },
2368 {
2369 "op" : "assign",
2370 "parameters" : [
2371 {
2372 "type" : "field",
2373 "value" : ["mpls", "tc"]
2374 },
2375 {
2376 "type" : "hexstr",
2377 "value" : "0x00"
2378 }
2379 ],
2380 "source_info" : {
2381 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07002382 "line" : 261,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002383 "column" : 8,
2384 "source_fragment" : "hdr.mpls.tc = 3w0"
2385 }
2386 },
2387 {
2388 "op" : "assign",
2389 "parameters" : [
2390 {
2391 "type" : "field",
2392 "value" : ["mpls", "bos"]
2393 },
2394 {
2395 "type" : "hexstr",
2396 "value" : "0x01"
2397 }
2398 ],
2399 "source_info" : {
2400 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07002401 "line" : 262,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002402 "column" : 8,
2403 "source_fragment" : "hdr.mpls.bos = 1w1"
2404 }
2405 },
2406 {
2407 "op" : "assign",
2408 "parameters" : [
2409 {
2410 "type" : "field",
2411 "value" : ["mpls", "ttl"]
2412 },
2413 {
2414 "type" : "field",
2415 "value" : ["scalars", "fabric_metadata_t.mpls_ttl"]
2416 }
2417 ],
2418 "source_info" : {
2419 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07002420 "line" : 263,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002421 "column" : 8,
2422 "source_fragment" : "hdr.mpls.ttl = fabric_metadata.mpls_ttl"
2423 }
2424 },
2425 {
2426 "op" : "assign",
2427 "parameters" : [
2428 {
2429 "type" : "field",
2430 "value" : ["scalars", "fabric_metadata_t.eth_type"]
2431 },
2432 {
2433 "type" : "hexstr",
2434 "value" : "0x8847"
2435 }
2436 ],
2437 "source_info" : {
2438 "filename" : "include/control/../define.p4",
2439 "line" : 108,
2440 "column" : 31,
2441 "source_fragment" : "0x8847; ..."
2442 }
2443 }
2444 ]
2445 },
2446 {
2447 "name" : "FabricEgress.egress_next.push_vlan",
2448 "id" : 35,
2449 "runtime_data" : [],
2450 "primitives" : [
2451 {
2452 "op" : "add_header",
2453 "parameters" : [
2454 {
2455 "type" : "header",
2456 "value" : "vlan_tag"
2457 }
2458 ],
2459 "source_info" : {
2460 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07002461 "line" : 271,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002462 "column" : 8,
2463 "source_fragment" : "hdr.vlan_tag.setValid()"
2464 }
2465 },
2466 {
2467 "op" : "assign",
2468 "parameters" : [
2469 {
2470 "type" : "field",
2471 "value" : ["vlan_tag", "cfi"]
2472 },
2473 {
2474 "type" : "field",
2475 "value" : ["scalars", "fabric_metadata_t.vlan_cfi"]
2476 }
2477 ],
2478 "source_info" : {
2479 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07002480 "line" : 272,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002481 "column" : 8,
2482 "source_fragment" : "hdr.vlan_tag.cfi = fabric_metadata.vlan_cfi"
2483 }
2484 },
2485 {
2486 "op" : "assign",
2487 "parameters" : [
2488 {
2489 "type" : "field",
2490 "value" : ["vlan_tag", "pri"]
2491 },
2492 {
2493 "type" : "field",
2494 "value" : ["scalars", "fabric_metadata_t.vlan_pri"]
2495 }
2496 ],
2497 "source_info" : {
2498 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07002499 "line" : 273,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002500 "column" : 8,
2501 "source_fragment" : "hdr.vlan_tag.pri = fabric_metadata.vlan_pri"
2502 }
2503 },
2504 {
2505 "op" : "assign",
2506 "parameters" : [
2507 {
2508 "type" : "field",
2509 "value" : ["vlan_tag", "eth_type"]
2510 },
2511 {
2512 "type" : "field",
2513 "value" : ["scalars", "fabric_metadata_t.eth_type"]
2514 }
2515 ],
2516 "source_info" : {
2517 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07002518 "line" : 274,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002519 "column" : 8,
2520 "source_fragment" : "hdr.vlan_tag.eth_type = fabric_metadata.eth_type"
2521 }
2522 },
2523 {
2524 "op" : "assign",
2525 "parameters" : [
2526 {
2527 "type" : "field",
2528 "value" : ["vlan_tag", "vlan_id"]
2529 },
2530 {
2531 "type" : "field",
2532 "value" : ["scalars", "fabric_metadata_t.vlan_id"]
2533 }
2534 ],
2535 "source_info" : {
2536 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07002537 "line" : 275,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002538 "column" : 8,
2539 "source_fragment" : "hdr.vlan_tag.vlan_id = fabric_metadata.vlan_id"
2540 }
2541 },
2542 {
2543 "op" : "assign",
2544 "parameters" : [
2545 {
2546 "type" : "field",
2547 "value" : ["ethernet", "eth_type"]
2548 },
2549 {
2550 "type" : "hexstr",
2551 "value" : "0x8100"
2552 }
2553 ],
2554 "source_info" : {
2555 "filename" : "include/control/../define.p4",
2556 "line" : 107,
2557 "column" : 31,
2558 "source_fragment" : "0x8100; ..."
2559 }
2560 }
2561 ]
2562 },
2563 {
2564 "name" : "FabricEgress.egress_next.pop_vlan",
Charles Chancd03f072018-08-31 17:46:37 -07002565 "id" : 36,
Yi Tseng1d842672017-11-28 16:06:52 -08002566 "runtime_data" : [],
2567 "primitives" : [
2568 {
2569 "op" : "assign",
2570 "parameters" : [
2571 {
2572 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002573 "value" : ["ethernet", "eth_type"]
Carmelo Casconea5400af2018-07-17 22:11:54 +02002574 },
2575 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002576 "type" : "field",
2577 "value" : ["scalars", "fabric_metadata_t.eth_type"]
Carmelo Casconea5400af2018-07-17 22:11:54 +02002578 }
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002579 ],
2580 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002581 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07002582 "line" : 286,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002583 "column" : 8,
2584 "source_fragment" : "hdr.ethernet.eth_type = fabric_metadata.eth_type"
2585 }
2586 },
2587 {
2588 "op" : "remove_header",
2589 "parameters" : [
2590 {
2591 "type" : "header",
2592 "value" : "vlan_tag"
2593 }
2594 ],
2595 "source_info" : {
2596 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07002597 "line" : 287,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002598 "column" : 8,
2599 "source_fragment" : "hdr.vlan_tag.setInvalid()"
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002600 }
Carmelo Casconea5400af2018-07-17 22:11:54 +02002601 }
2602 ]
2603 },
2604 {
2605 "name" : "act_4",
Charles Chancd03f072018-08-31 17:46:37 -07002606 "id" : 37,
Carmelo Casconea5400af2018-07-17 22:11:54 +02002607 "runtime_data" : [],
2608 "primitives" : [
2609 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07002610 "op" : "exit",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002611 "parameters" : [],
2612 "source_info" : {
2613 "filename" : "include/control/packetio.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07002614 "line" : 41,
2615 "column" : 12,
2616 "source_fragment" : "exit"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002617 }
Carmelo Casconea5400af2018-07-17 22:11:54 +02002618 }
2619 ]
2620 },
2621 {
2622 "name" : "act_5",
Charles Chancd03f072018-08-31 17:46:37 -07002623 "id" : 38,
Carmelo Casconea5400af2018-07-17 22:11:54 +02002624 "runtime_data" : [],
2625 "primitives" : [
2626 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002627 "op" : "add_header",
2628 "parameters" : [
2629 {
2630 "type" : "header",
2631 "value" : "packet_in"
2632 }
2633 ],
2634 "source_info" : {
2635 "filename" : "include/control/packetio.p4",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07002636 "line" : 44,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002637 "column" : 12,
2638 "source_fragment" : "hdr.packet_in.setValid()"
2639 }
2640 },
2641 {
Carmelo Casconea5400af2018-07-17 22:11:54 +02002642 "op" : "assign",
2643 "parameters" : [
2644 {
2645 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002646 "value" : ["packet_in", "ingress_port"]
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002647 },
2648 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002649 "type" : "field",
2650 "value" : ["standard_metadata", "ingress_port"]
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002651 }
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002652 ],
2653 "source_info" : {
2654 "filename" : "include/control/packetio.p4",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07002655 "line" : 45,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002656 "column" : 12,
2657 "source_fragment" : "hdr.packet_in.ingress_port = standard_metadata.ingress_port"
2658 }
Carmelo Cascone9b607da2019-05-08 14:03:01 -07002659 },
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002660 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07002661 "op" : "exit",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002662 "parameters" : [],
2663 "source_info" : {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07002664 "filename" : "include/control/packetio.p4",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07002665 "line" : 47,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002666 "column" : 12,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07002667 "source_fragment" : "exit"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002668 }
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002669 }
2670 ]
2671 },
2672 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07002673 "name" : "act_6",
2674 "id" : 39,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002675 "runtime_data" : [],
2676 "primitives" : [
2677 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07002678 "op" : "mark_to_drop",
2679 "parameters" : [
2680 {
2681 "type" : "header",
2682 "value" : "standard_metadata"
2683 }
2684 ],
2685 "source_info" : {
2686 "filename" : "include/control/next.p4",
2687 "line" : 308,
2688 "column" : 12,
2689 "source_fragment" : "mark_to_drop(standard_metadata)"
2690 }
2691 }
2692 ]
2693 },
2694 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07002695 "name" : "act_7",
2696 "id" : 40,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07002697 "runtime_data" : [],
2698 "primitives" : [
2699 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002700 "op" : "assign",
2701 "parameters" : [
2702 {
2703 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002704 "value" : ["scalars", "egress_next_tmp"]
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002705 },
2706 {
2707 "type" : "expression",
2708 "value" : {
2709 "type" : "expression",
2710 "value" : {
2711 "op" : "b2d",
2712 "left" : null,
2713 "right" : {
2714 "type" : "bool",
2715 "value" : true
2716 }
2717 }
2718 }
2719 }
2720 ]
2721 }
2722 ]
2723 },
2724 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07002725 "name" : "act_8",
2726 "id" : 41,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002727 "runtime_data" : [],
2728 "primitives" : [
2729 {
2730 "op" : "assign",
2731 "parameters" : [
2732 {
2733 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002734 "value" : ["scalars", "egress_next_tmp"]
Carmelo Casconea5400af2018-07-17 22:11:54 +02002735 },
2736 {
2737 "type" : "expression",
2738 "value" : {
2739 "type" : "expression",
2740 "value" : {
2741 "op" : "b2d",
2742 "left" : null,
2743 "right" : {
2744 "type" : "bool",
2745 "value" : false
2746 }
2747 }
2748 }
2749 }
2750 ]
2751 }
2752 ]
2753 },
2754 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07002755 "name" : "act_9",
2756 "id" : 42,
Carmelo Casconea5400af2018-07-17 22:11:54 +02002757 "runtime_data" : [],
2758 "primitives" : [
2759 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07002760 "op" : "mark_to_drop",
2761 "parameters" : [
2762 {
2763 "type" : "header",
2764 "value" : "standard_metadata"
2765 }
2766 ],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002767 "source_info" : {
2768 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07002769 "line" : 327,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002770 "column" : 35,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07002771 "source_fragment" : "mark_to_drop(standard_metadata)"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002772 }
Carmelo Casconea5400af2018-07-17 22:11:54 +02002773 }
2774 ]
2775 },
2776 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07002777 "name" : "act_10",
2778 "id" : 43,
Carmelo Casconea5400af2018-07-17 22:11:54 +02002779 "runtime_data" : [],
2780 "primitives" : [
2781 {
2782 "op" : "assign",
2783 "parameters" : [
2784 {
2785 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002786 "value" : ["mpls", "ttl"]
Carmelo Casconea5400af2018-07-17 22:11:54 +02002787 },
2788 {
2789 "type" : "expression",
2790 "value" : {
2791 "type" : "expression",
2792 "value" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002793 "op" : "&",
2794 "left" : {
2795 "type" : "expression",
2796 "value" : {
2797 "op" : "+",
2798 "left" : {
2799 "type" : "field",
2800 "value" : ["mpls", "ttl"]
2801 },
2802 "right" : {
2803 "type" : "hexstr",
2804 "value" : "0xff"
2805 }
2806 }
2807 },
Carmelo Casconea5400af2018-07-17 22:11:54 +02002808 "right" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002809 "type" : "hexstr",
2810 "value" : "0xff"
Carmelo Casconea5400af2018-07-17 22:11:54 +02002811 }
2812 }
2813 }
2814 }
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002815 ],
2816 "source_info" : {
2817 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07002818 "line" : 326,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002819 "column" : 12,
2820 "source_fragment" : "hdr.mpls.ttl = hdr.mpls.ttl - 1"
2821 }
Carmelo Casconea5400af2018-07-17 22:11:54 +02002822 }
2823 ]
2824 },
2825 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07002826 "name" : "act_11",
2827 "id" : 44,
Carmelo Casconea5400af2018-07-17 22:11:54 +02002828 "runtime_data" : [],
2829 "primitives" : [
2830 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07002831 "op" : "mark_to_drop",
2832 "parameters" : [
2833 {
2834 "type" : "header",
2835 "value" : "standard_metadata"
2836 }
2837 ],
Carmelo Casconea5400af2018-07-17 22:11:54 +02002838 "source_info" : {
2839 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07002840 "line" : 331,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002841 "column" : 39,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07002842 "source_fragment" : "mark_to_drop(standard_metadata)"
Carmelo Casconea5400af2018-07-17 22:11:54 +02002843 }
2844 }
2845 ]
2846 },
2847 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07002848 "name" : "act_12",
2849 "id" : 45,
Carmelo Casconea5400af2018-07-17 22:11:54 +02002850 "runtime_data" : [],
2851 "primitives" : [
2852 {
2853 "op" : "assign",
2854 "parameters" : [
2855 {
2856 "type" : "field",
Yi Tseng1d842672017-11-28 16:06:52 -08002857 "value" : ["ipv4", "ttl"]
2858 },
2859 {
2860 "type" : "expression",
2861 "value" : {
2862 "type" : "expression",
2863 "value" : {
2864 "op" : "&",
2865 "left" : {
2866 "type" : "expression",
2867 "value" : {
2868 "op" : "+",
2869 "left" : {
2870 "type" : "field",
2871 "value" : ["ipv4", "ttl"]
2872 },
2873 "right" : {
2874 "type" : "hexstr",
2875 "value" : "0xff"
2876 }
2877 }
2878 },
2879 "right" : {
2880 "type" : "hexstr",
2881 "value" : "0xff"
2882 }
2883 }
2884 }
2885 }
2886 ],
2887 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002888 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07002889 "line" : 330,
Carmelo Casconea5400af2018-07-17 22:11:54 +02002890 "column" : 16,
Yi Tseng1d842672017-11-28 16:06:52 -08002891 "source_fragment" : "hdr.ipv4.ttl = hdr.ipv4.ttl - 1"
2892 }
2893 }
2894 ]
Yi Tsengbe342052017-11-03 10:21:23 -07002895 }
2896 ],
2897 "pipelines" : [
2898 {
2899 "name" : "ingress",
2900 "id" : 0,
2901 "source_info" : {
2902 "filename" : "fabric.p4",
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07002903 "line" : 46,
Yi Tsengbe342052017-11-03 10:21:23 -07002904 "column" : 8,
2905 "source_fragment" : "FabricIngress"
2906 },
2907 "init_table" : "node_2",
2908 "tables" : [
2909 {
2910 "name" : "tbl_act",
2911 "id" : 0,
Carmelo Cascone3032b872019-04-13 01:23:54 -07002912 "source_info" : {
2913 "filename" : "include/control/packetio.p4",
2914 "line" : 25,
2915 "column" : 42,
2916 "source_fragment" : "= hdr.packet_out.egress_port; ..."
2917 },
Yi Tsengbe342052017-11-03 10:21:23 -07002918 "key" : [],
2919 "match_type" : "exact",
2920 "type" : "simple",
2921 "max_size" : 1024,
2922 "with_counters" : false,
2923 "support_timeout" : false,
2924 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002925 "action_ids" : [27],
Yi Tsengbe342052017-11-03 10:21:23 -07002926 "actions" : ["act"],
Carmelo Cascone9b607da2019-05-08 14:03:01 -07002927 "base_default_next" : "node_4",
Yi Tsengbe342052017-11-03 10:21:23 -07002928 "next_tables" : {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07002929 "act" : "node_4"
Yi Tsengbe342052017-11-03 10:21:23 -07002930 },
2931 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002932 "action_id" : 27,
2933 "action_const" : true,
2934 "action_data" : [],
2935 "action_entry_const" : true
2936 }
2937 },
2938 {
2939 "name" : "tbl_act_0",
2940 "id" : 1,
Carmelo Cascone3032b872019-04-13 01:23:54 -07002941 "source_info" : {
2942 "filename" : "include/control/filtering.p4",
2943 "line" : 105,
2944 "column" : 37,
2945 "source_fragment" : "= hdr.vlan_tag.eth_type; ..."
2946 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002947 "key" : [],
2948 "match_type" : "exact",
2949 "type" : "simple",
2950 "max_size" : 1024,
2951 "with_counters" : false,
2952 "support_timeout" : false,
2953 "direct_meters" : null,
2954 "action_ids" : [28],
2955 "actions" : ["act_0"],
2956 "base_default_next" : "node_6",
2957 "next_tables" : {
2958 "act_0" : "node_6"
2959 },
2960 "default_entry" : {
2961 "action_id" : 28,
2962 "action_const" : true,
2963 "action_data" : [],
2964 "action_entry_const" : true
2965 }
2966 },
2967 {
2968 "name" : "tbl_act_1",
2969 "id" : 2,
Carmelo Cascone3032b872019-04-13 01:23:54 -07002970 "source_info" : {
2971 "filename" : "include/control/filtering.p4",
2972 "line" : 115,
2973 "column" : 37,
2974 "source_fragment" : "="
2975 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002976 "key" : [],
2977 "match_type" : "exact",
2978 "type" : "simple",
2979 "max_size" : 1024,
2980 "with_counters" : false,
2981 "support_timeout" : false,
2982 "direct_meters" : null,
2983 "action_ids" : [29],
2984 "actions" : ["act_1"],
2985 "base_default_next" : "FabricIngress.filtering.ingress_port_vlan",
2986 "next_tables" : {
2987 "act_1" : "FabricIngress.filtering.ingress_port_vlan"
2988 },
2989 "default_entry" : {
2990 "action_id" : 29,
Yi Tsengbe342052017-11-03 10:21:23 -07002991 "action_const" : true,
2992 "action_data" : [],
2993 "action_entry_const" : true
2994 }
2995 },
2996 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002997 "name" : "FabricIngress.filtering.ingress_port_vlan",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002998 "id" : 3,
Yi Tsengbe342052017-11-03 10:21:23 -07002999 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003000 "filename" : "include/control/filtering.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003001 "line" : 51,
Yi Tsengbe342052017-11-03 10:21:23 -07003002 "column" : 10,
3003 "source_fragment" : "ingress_port_vlan"
3004 },
3005 "key" : [
3006 {
3007 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003008 "name" : "ig_port",
Yi Tsengbe342052017-11-03 10:21:23 -07003009 "target" : ["standard_metadata", "ingress_port"],
3010 "mask" : null
3011 },
3012 {
3013 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003014 "name" : "vlan_is_valid",
Yi Tsengbe342052017-11-03 10:21:23 -07003015 "target" : ["vlan_tag", "$valid$"],
3016 "mask" : null
3017 },
3018 {
3019 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003020 "name" : "vlan_id",
Yi Tsengbe342052017-11-03 10:21:23 -07003021 "target" : ["vlan_tag", "vlan_id"],
3022 "mask" : null
3023 }
3024 ],
3025 "match_type" : "ternary",
3026 "type" : "simple",
3027 "max_size" : 1024,
Yi Tsengbd46d052018-01-22 17:18:16 -08003028 "with_counters" : true,
Yi Tsengbe342052017-11-03 10:21:23 -07003029 "support_timeout" : false,
3030 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003031 "action_ids" : [7, 8, 9],
3032 "actions" : ["FabricIngress.filtering.deny", "FabricIngress.filtering.permit", "FabricIngress.filtering.permit_with_internal_vlan"],
3033 "base_default_next" : "FabricIngress.filtering.fwd_classifier",
Yi Tsengbe342052017-11-03 10:21:23 -07003034 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003035 "FabricIngress.filtering.deny" : "FabricIngress.filtering.fwd_classifier",
3036 "FabricIngress.filtering.permit" : "FabricIngress.filtering.fwd_classifier",
3037 "FabricIngress.filtering.permit_with_internal_vlan" : "FabricIngress.filtering.fwd_classifier"
Yi Tsengbe342052017-11-03 10:21:23 -07003038 },
3039 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003040 "action_id" : 7,
Yi Tsengbe342052017-11-03 10:21:23 -07003041 "action_const" : true,
3042 "action_data" : [],
3043 "action_entry_const" : true
3044 }
3045 },
3046 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003047 "name" : "FabricIngress.filtering.fwd_classifier",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003048 "id" : 4,
Yi Tsengbe342052017-11-03 10:21:23 -07003049 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003050 "filename" : "include/control/filtering.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07003051 "line" : 87,
Yi Tsengbe342052017-11-03 10:21:23 -07003052 "column" : 10,
3053 "source_fragment" : "fwd_classifier"
3054 },
3055 "key" : [
3056 {
3057 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003058 "name" : "ig_port",
Yi Tsengbe342052017-11-03 10:21:23 -07003059 "target" : ["standard_metadata", "ingress_port"],
3060 "mask" : null
3061 },
3062 {
Charles Chan384aea22018-08-23 22:08:02 -07003063 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003064 "name" : "eth_dst",
Yi Tsengbe342052017-11-03 10:21:23 -07003065 "target" : ["ethernet", "dst_addr"],
3066 "mask" : null
3067 },
3068 {
3069 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003070 "name" : "eth_type",
3071 "target" : ["scalars", "fabric_metadata_t.eth_type"],
Yi Tsengbe342052017-11-03 10:21:23 -07003072 "mask" : null
3073 }
3074 ],
Charles Chan384aea22018-08-23 22:08:02 -07003075 "match_type" : "ternary",
Yi Tsengbe342052017-11-03 10:21:23 -07003076 "type" : "simple",
3077 "max_size" : 1024,
Yi Tsengbd46d052018-01-22 17:18:16 -08003078 "with_counters" : true,
Yi Tsengbe342052017-11-03 10:21:23 -07003079 "support_timeout" : false,
3080 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003081 "action_ids" : [10],
Yi Tseng27b9bc02018-04-12 14:52:40 +08003082 "actions" : ["FabricIngress.filtering.set_forwarding_type"],
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003083 "base_default_next" : "node_10",
Yi Tsengbe342052017-11-03 10:21:23 -07003084 "next_tables" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003085 "FabricIngress.filtering.set_forwarding_type" : "node_10"
Yi Tsengbe342052017-11-03 10:21:23 -07003086 },
3087 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003088 "action_id" : 10,
Yi Tsengbe342052017-11-03 10:21:23 -07003089 "action_const" : true,
3090 "action_data" : ["0x0"],
3091 "action_entry_const" : true
3092 }
3093 },
3094 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003095 "name" : "FabricIngress.forwarding.bridging",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003096 "id" : 5,
Yi Tsengbe342052017-11-03 10:21:23 -07003097 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003098 "filename" : "include/control/forwarding.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07003099 "line" : 46,
Yi Tsengbe342052017-11-03 10:21:23 -07003100 "column" : 10,
3101 "source_fragment" : "bridging"
3102 },
3103 "key" : [
3104 {
3105 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003106 "name" : "vlan_id",
3107 "target" : ["scalars", "fabric_metadata_t.vlan_id"],
Yi Tsengbe342052017-11-03 10:21:23 -07003108 "mask" : null
3109 },
3110 {
3111 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003112 "name" : "eth_dst",
Yi Tsengbe342052017-11-03 10:21:23 -07003113 "target" : ["ethernet", "dst_addr"],
3114 "mask" : null
3115 }
3116 ],
3117 "match_type" : "ternary",
3118 "type" : "simple",
3119 "max_size" : 1024,
Yi Tsengbd46d052018-01-22 17:18:16 -08003120 "with_counters" : true,
Yi Tsengbe342052017-11-03 10:21:23 -07003121 "support_timeout" : false,
3122 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003123 "action_ids" : [11, 0],
3124 "actions" : ["FabricIngress.forwarding.set_next_id_bridging", "nop"],
3125 "base_default_next" : "FabricIngress.acl.acl",
Yi Tseng1d842672017-11-28 16:06:52 -08003126 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003127 "FabricIngress.forwarding.set_next_id_bridging" : "FabricIngress.acl.acl",
3128 "nop" : "FabricIngress.acl.acl"
Yi Tseng1d842672017-11-28 16:06:52 -08003129 },
3130 "default_entry" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003131 "action_id" : 0,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003132 "action_const" : true,
Yi Tseng1d842672017-11-28 16:06:52 -08003133 "action_data" : [],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003134 "action_entry_const" : true
Yi Tseng1d842672017-11-28 16:06:52 -08003135 }
3136 },
3137 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003138 "name" : "FabricIngress.forwarding.mpls",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003139 "id" : 6,
Yi Tseng1d842672017-11-28 16:06:52 -08003140 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003141 "filename" : "include/control/forwarding.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07003142 "line" : 71,
Yi Tseng1d842672017-11-28 16:06:52 -08003143 "column" : 10,
3144 "source_fragment" : "mpls"
3145 },
3146 "key" : [
3147 {
3148 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003149 "name" : "mpls_label",
3150 "target" : ["scalars", "fabric_metadata_t.mpls_label"],
Yi Tseng1d842672017-11-28 16:06:52 -08003151 "mask" : null
3152 }
3153 ],
3154 "match_type" : "exact",
3155 "type" : "simple",
3156 "max_size" : 1024,
Yi Tsengbd46d052018-01-22 17:18:16 -08003157 "with_counters" : true,
Yi Tseng1d842672017-11-28 16:06:52 -08003158 "support_timeout" : false,
3159 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003160 "action_ids" : [12, 1],
3161 "actions" : ["FabricIngress.forwarding.pop_mpls_and_next", "nop"],
3162 "base_default_next" : "FabricIngress.acl.acl",
Yi Tseng1d842672017-11-28 16:06:52 -08003163 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003164 "FabricIngress.forwarding.pop_mpls_and_next" : "FabricIngress.acl.acl",
3165 "nop" : "FabricIngress.acl.acl"
Yi Tseng1d842672017-11-28 16:06:52 -08003166 },
3167 "default_entry" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003168 "action_id" : 1,
Yi Tseng1d842672017-11-28 16:06:52 -08003169 "action_const" : true,
3170 "action_data" : [],
3171 "action_entry_const" : true
3172 }
3173 },
3174 {
Charles Chan384aea22018-08-23 22:08:02 -07003175 "name" : "FabricIngress.forwarding.routing_v4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003176 "id" : 7,
Yi Tseng1d842672017-11-28 16:06:52 -08003177 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003178 "filename" : "include/control/forwarding.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07003179 "line" : 101,
Yi Tseng1d842672017-11-28 16:06:52 -08003180 "column" : 10,
Charles Chan384aea22018-08-23 22:08:02 -07003181 "source_fragment" : "routing_v4"
Yi Tseng1d842672017-11-28 16:06:52 -08003182 },
3183 "key" : [
3184 {
3185 "match_type" : "lpm",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003186 "name" : "ipv4_dst",
Yi Tseng1d842672017-11-28 16:06:52 -08003187 "target" : ["ipv4", "dst_addr"],
3188 "mask" : null
3189 }
3190 ],
3191 "match_type" : "lpm",
3192 "type" : "simple",
3193 "max_size" : 1024,
Yi Tsengbd46d052018-01-22 17:18:16 -08003194 "with_counters" : true,
Yi Tseng1d842672017-11-28 16:06:52 -08003195 "support_timeout" : false,
3196 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003197 "action_ids" : [13, 14, 2],
3198 "actions" : ["FabricIngress.forwarding.set_next_id_routing_v4", "FabricIngress.forwarding.nop_routing_v4", "nop"],
3199 "base_default_next" : "FabricIngress.acl.acl",
Yi Tsengbe342052017-11-03 10:21:23 -07003200 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003201 "FabricIngress.forwarding.set_next_id_routing_v4" : "FabricIngress.acl.acl",
3202 "FabricIngress.forwarding.nop_routing_v4" : "FabricIngress.acl.acl",
3203 "nop" : "FabricIngress.acl.acl"
Yi Tsengbe342052017-11-03 10:21:23 -07003204 },
3205 "default_entry" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003206 "action_id" : 2,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003207 "action_const" : true,
Yi Tsengbe342052017-11-03 10:21:23 -07003208 "action_data" : [],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003209 "action_entry_const" : true
Yi Tsengbe342052017-11-03 10:21:23 -07003210 }
3211 },
3212 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003213 "name" : "FabricIngress.acl.acl",
3214 "id" : 8,
Yi Tsengbe342052017-11-03 10:21:23 -07003215 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003216 "filename" : "include/control/acl.p4",
3217 "line" : 60,
Yi Tsengbe342052017-11-03 10:21:23 -07003218 "column" : 10,
Yi Tsengbe342052017-11-03 10:21:23 -07003219 "source_fragment" : "acl"
3220 },
3221 "key" : [
3222 {
3223 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003224 "name" : "ig_port",
Yi Tsengbe342052017-11-03 10:21:23 -07003225 "target" : ["standard_metadata", "ingress_port"],
3226 "mask" : null
3227 },
3228 {
3229 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003230 "name" : "ip_proto",
Yi Tsengbe342052017-11-03 10:21:23 -07003231 "target" : ["scalars", "fabric_metadata_t.ip_proto"],
3232 "mask" : null
3233 },
3234 {
3235 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003236 "name" : "l4_sport",
3237 "target" : ["scalars", "fabric_metadata_t.l4_sport"],
Yi Tseng1d842672017-11-28 16:06:52 -08003238 "mask" : null
3239 },
3240 {
3241 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003242 "name" : "l4_dport",
3243 "target" : ["scalars", "fabric_metadata_t.l4_dport"],
Yi Tseng1d842672017-11-28 16:06:52 -08003244 "mask" : null
3245 },
3246 {
3247 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003248 "name" : "eth_src",
Yi Tsengbe342052017-11-03 10:21:23 -07003249 "target" : ["ethernet", "dst_addr"],
3250 "mask" : null
3251 },
3252 {
3253 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003254 "name" : "eth_dst",
Yi Tsengbe342052017-11-03 10:21:23 -07003255 "target" : ["ethernet", "src_addr"],
3256 "mask" : null
3257 },
3258 {
3259 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003260 "name" : "vlan_id",
Yi Tsengbe342052017-11-03 10:21:23 -07003261 "target" : ["vlan_tag", "vlan_id"],
3262 "mask" : null
3263 },
3264 {
3265 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003266 "name" : "eth_type",
3267 "target" : ["scalars", "fabric_metadata_t.eth_type"],
Yi Tseng8235a1a2018-07-24 20:57:28 +08003268 "mask" : null
3269 },
3270 {
3271 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003272 "name" : "ipv4_src",
Yi Tsengbe342052017-11-03 10:21:23 -07003273 "target" : ["ipv4", "src_addr"],
3274 "mask" : null
3275 },
3276 {
3277 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003278 "name" : "ipv4_dst",
Yi Tsengbe342052017-11-03 10:21:23 -07003279 "target" : ["ipv4", "dst_addr"],
3280 "mask" : null
3281 },
3282 {
3283 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003284 "name" : "icmp_type",
Yi Tsengbe342052017-11-03 10:21:23 -07003285 "target" : ["icmp", "icmp_type"],
3286 "mask" : null
3287 },
3288 {
3289 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003290 "name" : "icmp_code",
Yi Tsengbe342052017-11-03 10:21:23 -07003291 "target" : ["icmp", "icmp_code"],
3292 "mask" : null
3293 }
3294 ],
3295 "match_type" : "ternary",
3296 "type" : "simple",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07003297 "max_size" : 1024,
Yi Tsengbd46d052018-01-22 17:18:16 -08003298 "with_counters" : true,
Yi Tsengbe342052017-11-03 10:21:23 -07003299 "support_timeout" : false,
3300 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003301 "action_ids" : [15, 16, 17, 18, 19],
Daniele Moro01ca2ab2019-06-25 11:48:48 -07003302 "actions" : ["FabricIngress.acl.set_next_id_acl", "FabricIngress.acl.punt_to_cpu", "FabricIngress.acl.set_clone_session_id", "FabricIngress.acl.drop", "FabricIngress.acl.nop_acl"],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003303 "base_default_next" : "node_18",
Yi Tsengbe342052017-11-03 10:21:23 -07003304 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003305 "FabricIngress.acl.set_next_id_acl" : "node_18",
3306 "FabricIngress.acl.punt_to_cpu" : "node_18",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07003307 "FabricIngress.acl.set_clone_session_id" : "node_18",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003308 "FabricIngress.acl.drop" : "node_18",
3309 "FabricIngress.acl.nop_acl" : "node_18"
Yi Tsengbe342052017-11-03 10:21:23 -07003310 },
3311 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003312 "action_id" : 19,
Yi Tsengbe342052017-11-03 10:21:23 -07003313 "action_const" : true,
3314 "action_data" : [],
3315 "action_entry_const" : true
3316 }
3317 },
3318 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003319 "name" : "FabricIngress.next.xconnect",
3320 "id" : 9,
3321 "source_info" : {
3322 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07003323 "line" : 104,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003324 "column" : 10,
3325 "source_fragment" : "xconnect"
3326 },
3327 "key" : [
3328 {
3329 "match_type" : "exact",
3330 "name" : "ig_port",
3331 "target" : ["standard_metadata", "ingress_port"],
3332 "mask" : null
3333 },
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" : [21, 22, 4],
3348 "actions" : ["FabricIngress.next.output_xconnect", "FabricIngress.next.set_next_id_xconnect", "nop"],
3349 "base_default_next" : "FabricIngress.next.hashed",
3350 "next_tables" : {
3351 "FabricIngress.next.output_xconnect" : "FabricIngress.next.hashed",
3352 "FabricIngress.next.set_next_id_xconnect" : "FabricIngress.next.hashed",
3353 "nop" : "FabricIngress.next.hashed"
3354 },
3355 "default_entry" : {
3356 "action_id" : 4,
3357 "action_const" : true,
3358 "action_data" : [],
3359 "action_entry_const" : true
3360 }
3361 },
3362 {
3363 "name" : "FabricIngress.next.hashed",
3364 "id" : 10,
3365 "source_info" : {
3366 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07003367 "line" : 184,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003368 "column" : 10,
3369 "source_fragment" : "hashed"
3370 },
3371 "key" : [
3372 {
3373 "match_type" : "exact",
3374 "name" : "next_id",
3375 "target" : ["scalars", "fabric_metadata_t.next_id"],
3376 "mask" : null
3377 }
3378 ],
3379 "match_type" : "exact",
3380 "type" : "indirect_ws",
3381 "action_profile" : "FabricIngress.next.hashed_selector",
3382 "max_size" : 1024,
3383 "with_counters" : true,
3384 "support_timeout" : false,
3385 "direct_meters" : null,
3386 "action_ids" : [23, 24, 25, 5],
3387 "actions" : ["FabricIngress.next.output_hashed", "FabricIngress.next.routing_hashed", "FabricIngress.next.mpls_routing_hashed", "nop"],
3388 "base_default_next" : "FabricIngress.next.multicast",
3389 "next_tables" : {
3390 "FabricIngress.next.output_hashed" : "FabricIngress.next.multicast",
3391 "FabricIngress.next.routing_hashed" : "FabricIngress.next.multicast",
3392 "FabricIngress.next.mpls_routing_hashed" : "FabricIngress.next.multicast",
3393 "nop" : "FabricIngress.next.multicast"
3394 }
3395 },
3396 {
3397 "name" : "FabricIngress.next.multicast",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003398 "id" : 11,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003399 "source_info" : {
3400 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07003401 "line" : 218,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003402 "column" : 10,
3403 "source_fragment" : "multicast"
3404 },
3405 "key" : [
3406 {
3407 "match_type" : "exact",
3408 "name" : "next_id",
3409 "target" : ["scalars", "fabric_metadata_t.next_id"],
3410 "mask" : null
3411 }
3412 ],
3413 "match_type" : "exact",
3414 "type" : "simple",
3415 "max_size" : 1024,
3416 "with_counters" : true,
3417 "support_timeout" : false,
3418 "direct_meters" : null,
3419 "action_ids" : [26, 6],
3420 "actions" : ["FabricIngress.next.set_mcast_group_id", "nop"],
3421 "base_default_next" : "FabricIngress.next.next_vlan",
3422 "next_tables" : {
3423 "FabricIngress.next.set_mcast_group_id" : "FabricIngress.next.next_vlan",
3424 "nop" : "FabricIngress.next.next_vlan"
3425 },
3426 "default_entry" : {
3427 "action_id" : 6,
3428 "action_const" : true,
3429 "action_data" : [],
3430 "action_entry_const" : true
3431 }
3432 },
3433 {
3434 "name" : "FabricIngress.next.next_vlan",
3435 "id" : 12,
3436 "source_info" : {
3437 "filename" : "include/control/next.p4",
3438 "line" : 74,
3439 "column" : 10,
3440 "source_fragment" : "next_vlan"
3441 },
3442 "key" : [
3443 {
3444 "match_type" : "exact",
3445 "name" : "next_id",
3446 "target" : ["scalars", "fabric_metadata_t.next_id"],
3447 "mask" : null
3448 }
3449 ],
3450 "match_type" : "exact",
3451 "type" : "simple",
3452 "max_size" : 1024,
3453 "with_counters" : true,
3454 "support_timeout" : false,
3455 "direct_meters" : null,
3456 "action_ids" : [20, 3],
3457 "actions" : ["FabricIngress.next.set_vlan", "nop"],
3458 "base_default_next" : "node_23",
3459 "next_tables" : {
3460 "FabricIngress.next.set_vlan" : "node_23",
3461 "nop" : "node_23"
3462 },
3463 "default_entry" : {
3464 "action_id" : 3,
3465 "action_const" : true,
3466 "action_data" : [],
3467 "action_entry_const" : true
3468 }
3469 },
3470 {
3471 "name" : "tbl_act_2",
3472 "id" : 13,
Carmelo Cascone3032b872019-04-13 01:23:54 -07003473 "source_info" : {
3474 "filename" : "include/control/port_counter.p4",
3475 "line" : 31,
3476 "column" : 12,
3477 "source_fragment" : "egress_port_counter.count((bit<32>)standard_metadata.egress_spec)"
3478 },
Carmelo Casconea5400af2018-07-17 22:11:54 +02003479 "key" : [],
3480 "match_type" : "exact",
3481 "type" : "simple",
3482 "max_size" : 1024,
3483 "with_counters" : false,
3484 "support_timeout" : false,
3485 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003486 "action_ids" : [30],
3487 "actions" : ["act_2"],
3488 "base_default_next" : "node_25",
Carmelo Casconea5400af2018-07-17 22:11:54 +02003489 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003490 "act_2" : "node_25"
Carmelo Casconea5400af2018-07-17 22:11:54 +02003491 },
3492 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003493 "action_id" : 30,
Carmelo Casconea5400af2018-07-17 22:11:54 +02003494 "action_const" : true,
3495 "action_data" : [],
3496 "action_entry_const" : true
3497 }
3498 },
3499 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003500 "name" : "tbl_act_3",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003501 "id" : 14,
Carmelo Cascone3032b872019-04-13 01:23:54 -07003502 "source_info" : {
3503 "filename" : "include/control/port_counter.p4",
3504 "line" : 34,
3505 "column" : 12,
3506 "source_fragment" : "ingress_port_counter.count((bit<32>)standard_metadata.ingress_port)"
3507 },
Carmelo Casconea5400af2018-07-17 22:11:54 +02003508 "key" : [],
3509 "match_type" : "exact",
3510 "type" : "simple",
3511 "max_size" : 1024,
3512 "with_counters" : false,
3513 "support_timeout" : false,
3514 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003515 "action_ids" : [31],
3516 "actions" : ["act_3"],
Carmelo Casconea5400af2018-07-17 22:11:54 +02003517 "base_default_next" : null,
Esin Karaman971fb7f2017-12-28 13:44:52 +00003518 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003519 "act_3" : null
Yi Tseng27b9bc02018-04-12 14:52:40 +08003520 },
3521 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003522 "action_id" : 31,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003523 "action_const" : true,
3524 "action_data" : [],
3525 "action_entry_const" : true
3526 }
Yi Tsengbe342052017-11-03 10:21:23 -07003527 }
3528 ],
3529 "action_profiles" : [
3530 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003531 "name" : "FabricIngress.next.hashed_selector",
Yi Tsengbe342052017-11-03 10:21:23 -07003532 "id" : 0,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07003533 "source_info" : {
3534 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07003535 "line" : 165,
3536 "column" : 57,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003537 "source_fragment" : "hashed_selector"
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07003538 },
Carmelo Cascone70e816b2019-03-19 16:15:47 -07003539 "max_size" : 1024,
Yi Tsengbe342052017-11-03 10:21:23 -07003540 "selector" : {
3541 "algo" : "crc16",
3542 "input" : [
3543 {
3544 "type" : "field",
Yi Tseng3d3956d2018-01-31 17:28:05 -08003545 "value" : ["ipv4", "dst_addr"]
Yi Tsengbe342052017-11-03 10:21:23 -07003546 },
3547 {
3548 "type" : "field",
Yi Tseng3d3956d2018-01-31 17:28:05 -08003549 "value" : ["ipv4", "src_addr"]
Yi Tsengbe342052017-11-03 10:21:23 -07003550 },
3551 {
3552 "type" : "field",
Yi Tseng1d842672017-11-28 16:06:52 -08003553 "value" : ["scalars", "fabric_metadata_t.ip_proto"]
Yi Tsengbe342052017-11-03 10:21:23 -07003554 },
3555 {
3556 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003557 "value" : ["scalars", "fabric_metadata_t.l4_sport"]
Yi Tsengbe342052017-11-03 10:21:23 -07003558 },
3559 {
3560 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003561 "value" : ["scalars", "fabric_metadata_t.l4_dport"]
Yi Tsengbe342052017-11-03 10:21:23 -07003562 }
3563 ]
3564 }
3565 }
3566 ],
3567 "conditionals" : [
3568 {
3569 "name" : "node_2",
3570 "id" : 0,
3571 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003572 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003573 "line" : 24,
Yi Tsengbe342052017-11-03 10:21:23 -07003574 "column" : 12,
3575 "source_fragment" : "hdr.packet_out.isValid()"
3576 },
3577 "expression" : {
3578 "type" : "expression",
3579 "value" : {
Yi Tsengbd46d052018-01-22 17:18:16 -08003580 "op" : "d2b",
3581 "left" : null,
3582 "right" : {
Yi Tsengbe342052017-11-03 10:21:23 -07003583 "type" : "field",
3584 "value" : ["packet_out", "$valid$"]
Yi Tsengbe342052017-11-03 10:21:23 -07003585 }
3586 }
3587 },
3588 "true_next" : "tbl_act",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003589 "false_next" : "node_4"
Yi Tsengbe342052017-11-03 10:21:23 -07003590 },
3591 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003592 "name" : "node_4",
Yi Tsengbe342052017-11-03 10:21:23 -07003593 "id" : 1,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003594 "source_info" : {
3595 "filename" : "include/control/filtering.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07003596 "line" : 104,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003597 "column" : 12,
3598 "source_fragment" : "hdr.vlan_tag.isValid()"
3599 },
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003600 "expression" : {
3601 "type" : "expression",
3602 "value" : {
3603 "op" : "d2b",
3604 "left" : null,
3605 "right" : {
3606 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003607 "value" : ["vlan_tag", "$valid$"]
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003608 }
3609 }
3610 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003611 "true_next" : "tbl_act_0",
3612 "false_next" : "node_6"
3613 },
3614 {
3615 "name" : "node_6",
3616 "id" : 2,
3617 "source_info" : {
3618 "filename" : "include/control/filtering.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07003619 "line" : 110,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003620 "column" : 12,
3621 "source_fragment" : "!hdr.mpls.isValid()"
3622 },
3623 "expression" : {
3624 "type" : "expression",
3625 "value" : {
3626 "op" : "not",
3627 "left" : null,
3628 "right" : {
3629 "type" : "expression",
3630 "value" : {
3631 "op" : "d2b",
3632 "left" : null,
3633 "right" : {
3634 "type" : "field",
3635 "value" : ["mpls", "$valid$"]
3636 }
3637 }
3638 }
3639 }
3640 },
3641 "true_next" : "tbl_act_1",
3642 "false_next" : "FabricIngress.filtering.ingress_port_vlan"
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003643 },
3644 {
3645 "name" : "node_10",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003646 "id" : 3,
3647 "source_info" : {
3648 "filename" : "fabric.p4",
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07003649 "line" : 74,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003650 "column" : 12,
3651 "source_fragment" : "fabric_metadata.skip_forwarding == false"
3652 },
3653 "expression" : {
3654 "type" : "expression",
3655 "value" : {
3656 "op" : "==",
3657 "left" : {
3658 "type" : "expression",
3659 "value" : {
3660 "op" : "d2b",
3661 "left" : null,
3662 "right" : {
3663 "type" : "field",
3664 "value" : ["scalars", "fabric_metadata_t.skip_forwarding"]
3665 }
3666 }
3667 },
3668 "right" : {
3669 "type" : "bool",
3670 "value" : false
3671 }
3672 }
3673 },
3674 "true_next" : "node_11",
3675 "false_next" : "FabricIngress.acl.acl"
3676 },
3677 {
3678 "name" : "node_11",
3679 "id" : 4,
Yi Tsengbe342052017-11-03 10:21:23 -07003680 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003681 "filename" : "include/control/forwarding.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07003682 "line" : 141,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003683 "column" : 12,
Yi Tsengbe342052017-11-03 10:21:23 -07003684 "source_fragment" : "fabric_metadata.fwd_type == FWD_BRIDGING"
3685 },
3686 "expression" : {
3687 "type" : "expression",
3688 "value" : {
3689 "op" : "==",
3690 "left" : {
3691 "type" : "field",
3692 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
3693 },
3694 "right" : {
3695 "type" : "hexstr",
3696 "value" : "0x00"
3697 }
3698 }
3699 },
Yi Tseng27b9bc02018-04-12 14:52:40 +08003700 "true_next" : "FabricIngress.forwarding.bridging",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003701 "false_next" : "node_13"
Yi Tsengbe342052017-11-03 10:21:23 -07003702 },
3703 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003704 "name" : "node_13",
3705 "id" : 5,
Yi Tsengbe342052017-11-03 10:21:23 -07003706 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003707 "filename" : "include/control/forwarding.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07003708 "line" : 142,
Yi Tsengbe342052017-11-03 10:21:23 -07003709 "column" : 17,
3710 "source_fragment" : "fabric_metadata.fwd_type == FWD_MPLS"
3711 },
3712 "expression" : {
3713 "type" : "expression",
3714 "value" : {
3715 "op" : "==",
3716 "left" : {
3717 "type" : "field",
3718 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
3719 },
3720 "right" : {
3721 "type" : "hexstr",
3722 "value" : "0x01"
3723 }
3724 }
3725 },
Yi Tseng27b9bc02018-04-12 14:52:40 +08003726 "true_next" : "FabricIngress.forwarding.mpls",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003727 "false_next" : "node_15"
Yi Tsengbe342052017-11-03 10:21:23 -07003728 },
3729 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003730 "name" : "node_15",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003731 "id" : 6,
Yi Tsengbe342052017-11-03 10:21:23 -07003732 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003733 "filename" : "include/control/forwarding.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07003734 "line" : 143,
Yi Tsengbe342052017-11-03 10:21:23 -07003735 "column" : 17,
3736 "source_fragment" : "fabric_metadata.fwd_type == FWD_IPV4_UNICAST"
3737 },
3738 "expression" : {
3739 "type" : "expression",
3740 "value" : {
3741 "op" : "==",
3742 "left" : {
3743 "type" : "field",
3744 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
3745 },
3746 "right" : {
3747 "type" : "hexstr",
3748 "value" : "0x02"
3749 }
3750 }
3751 },
Charles Chan384aea22018-08-23 22:08:02 -07003752 "true_next" : "FabricIngress.forwarding.routing_v4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003753 "false_next" : "FabricIngress.acl.acl"
3754 },
3755 {
3756 "name" : "node_18",
3757 "id" : 7,
3758 "source_info" : {
3759 "filename" : "fabric.p4",
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07003760 "line" : 78,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003761 "column" : 12,
3762 "source_fragment" : "fabric_metadata.skip_next == false"
3763 },
3764 "expression" : {
3765 "type" : "expression",
3766 "value" : {
3767 "op" : "==",
3768 "left" : {
3769 "type" : "expression",
3770 "value" : {
3771 "op" : "d2b",
3772 "left" : null,
3773 "right" : {
3774 "type" : "field",
3775 "value" : ["scalars", "fabric_metadata_t.skip_next"]
3776 }
3777 }
3778 },
3779 "right" : {
3780 "type" : "bool",
3781 "value" : false
3782 }
3783 }
3784 },
3785 "false_next" : null,
3786 "true_next" : "FabricIngress.next.xconnect"
Yi Tseng27b9bc02018-04-12 14:52:40 +08003787 },
3788 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003789 "name" : "node_23",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003790 "id" : 8,
Yi Tseng27b9bc02018-04-12 14:52:40 +08003791 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003792 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003793 "line" : 30,
Yi Tsengbe342052017-11-03 10:21:23 -07003794 "column" : 12,
3795 "source_fragment" : "standard_metadata.egress_spec < 511"
3796 },
3797 "expression" : {
3798 "type" : "expression",
3799 "value" : {
3800 "op" : "<",
3801 "left" : {
3802 "type" : "field",
3803 "value" : ["standard_metadata", "egress_spec"]
3804 },
3805 "right" : {
3806 "type" : "hexstr",
3807 "value" : "0x01ff"
3808 }
3809 }
3810 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003811 "true_next" : "tbl_act_2",
3812 "false_next" : "node_25"
Yi Tsengbe342052017-11-03 10:21:23 -07003813 },
3814 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003815 "name" : "node_25",
3816 "id" : 9,
Yi Tsengbe342052017-11-03 10:21:23 -07003817 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003818 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003819 "line" : 33,
Yi Tsengbe342052017-11-03 10:21:23 -07003820 "column" : 12,
3821 "source_fragment" : "standard_metadata.ingress_port < 511"
3822 },
3823 "expression" : {
3824 "type" : "expression",
3825 "value" : {
3826 "op" : "<",
3827 "left" : {
3828 "type" : "field",
3829 "value" : ["standard_metadata", "ingress_port"]
3830 },
3831 "right" : {
3832 "type" : "hexstr",
3833 "value" : "0x01ff"
3834 }
3835 }
3836 },
Yi Tseng3a5731e2018-01-22 11:38:58 -08003837 "false_next" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003838 "true_next" : "tbl_act_3"
Yi Tseng3a5731e2018-01-22 11:38:58 -08003839 }
3840 ]
3841 },
3842 {
3843 "name" : "egress",
3844 "id" : 1,
3845 "source_info" : {
3846 "filename" : "fabric.p4",
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07003847 "line" : 92,
Yi Tseng3a5731e2018-01-22 11:38:58 -08003848 "column" : 8,
3849 "source_fragment" : "FabricEgress"
3850 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003851 "init_table" : "node_29",
Yi Tseng3a5731e2018-01-22 11:38:58 -08003852 "tables" : [
3853 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003854 "name" : "tbl_act_4",
3855 "id" : 15,
Carmelo Cascone3032b872019-04-13 01:23:54 -07003856 "source_info" : {
3857 "filename" : "include/control/packetio.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003858 "line" : 41,
3859 "column" : 12,
3860 "source_fragment" : "exit"
Carmelo Cascone3032b872019-04-13 01:23:54 -07003861 },
Carmelo Casconea5400af2018-07-17 22:11:54 +02003862 "key" : [],
3863 "match_type" : "exact",
3864 "type" : "simple",
3865 "max_size" : 1024,
3866 "with_counters" : false,
3867 "support_timeout" : false,
3868 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003869 "action_ids" : [37],
3870 "actions" : ["act_4"],
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003871 "base_default_next" : "node_31",
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07003872 "next_tables" : {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003873 "act_4" : "node_31"
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07003874 },
3875 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003876 "action_id" : 37,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07003877 "action_const" : true,
3878 "action_data" : [],
3879 "action_entry_const" : true
3880 }
3881 },
3882 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003883 "name" : "tbl_act_5",
3884 "id" : 16,
Carmelo Cascone3032b872019-04-13 01:23:54 -07003885 "source_info" : {
3886 "filename" : "include/control/packetio.p4",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07003887 "line" : 44,
3888 "column" : 12,
3889 "source_fragment" : "hdr.packet_in.setValid(); ..."
Carmelo Cascone3032b872019-04-13 01:23:54 -07003890 },
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07003891 "key" : [],
3892 "match_type" : "exact",
3893 "type" : "simple",
3894 "max_size" : 1024,
3895 "with_counters" : false,
3896 "support_timeout" : false,
3897 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003898 "action_ids" : [38],
3899 "actions" : ["act_5"],
Daniele Moro01ca2ab2019-06-25 11:48:48 -07003900 "base_default_next" : "node_33",
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07003901 "next_tables" : {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07003902 "act_5" : "node_33"
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07003903 },
3904 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003905 "action_id" : 38,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07003906 "action_const" : true,
3907 "action_data" : [],
3908 "action_entry_const" : true
3909 }
3910 },
3911 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003912 "name" : "tbl_act_6",
3913 "id" : 17,
Carmelo Cascone3032b872019-04-13 01:23:54 -07003914 "source_info" : {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07003915 "filename" : "include/control/next.p4",
3916 "line" : 308,
Carmelo Cascone3032b872019-04-13 01:23:54 -07003917 "column" : 12,
Daniele Moro01ca2ab2019-06-25 11:48:48 -07003918 "source_fragment" : "mark_to_drop(standard_metadata)"
Carmelo Cascone3032b872019-04-13 01:23:54 -07003919 },
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07003920 "key" : [],
3921 "match_type" : "exact",
3922 "type" : "simple",
3923 "max_size" : 1024,
3924 "with_counters" : false,
3925 "support_timeout" : false,
3926 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003927 "action_ids" : [39],
3928 "actions" : ["act_6"],
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003929 "base_default_next" : "node_35",
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07003930 "next_tables" : {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003931 "act_6" : "node_35"
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07003932 },
3933 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003934 "action_id" : 39,
3935 "action_const" : true,
3936 "action_data" : [],
3937 "action_entry_const" : true
3938 }
3939 },
3940 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003941 "name" : "tbl_egress_next_pop_mpls_if_present",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07003942 "id" : 18,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003943 "source_info" : {
3944 "filename" : "include/control/next.p4",
Carmelo Cascone3032b872019-04-13 01:23:54 -07003945 "line" : 312,
3946 "column" : 36,
3947 "source_fragment" : "pop_mpls_if_present()"
3948 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003949 "key" : [],
3950 "match_type" : "exact",
3951 "type" : "simple",
3952 "max_size" : 1024,
3953 "with_counters" : false,
3954 "support_timeout" : false,
3955 "direct_meters" : null,
3956 "action_ids" : [33],
3957 "actions" : ["FabricEgress.egress_next.pop_mpls_if_present"],
3958 "base_default_next" : "FabricEgress.egress_next.egress_vlan",
3959 "next_tables" : {
3960 "FabricEgress.egress_next.pop_mpls_if_present" : "FabricEgress.egress_next.egress_vlan"
3961 },
3962 "default_entry" : {
3963 "action_id" : 33,
3964 "action_const" : true,
3965 "action_data" : [],
3966 "action_entry_const" : true
3967 }
3968 },
3969 {
3970 "name" : "tbl_egress_next_set_mpls",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07003971 "id" : 19,
Carmelo Cascone3032b872019-04-13 01:23:54 -07003972 "source_info" : {
3973 "filename" : "include/control/next.p4",
3974 "line" : 314,
3975 "column" : 12,
3976 "source_fragment" : "set_mpls()"
3977 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003978 "key" : [],
3979 "match_type" : "exact",
3980 "type" : "simple",
3981 "max_size" : 1024,
3982 "with_counters" : false,
3983 "support_timeout" : false,
3984 "direct_meters" : null,
3985 "action_ids" : [34],
3986 "actions" : ["FabricEgress.egress_next.set_mpls"],
3987 "base_default_next" : "FabricEgress.egress_next.egress_vlan",
3988 "next_tables" : {
3989 "FabricEgress.egress_next.set_mpls" : "FabricEgress.egress_next.egress_vlan"
3990 },
3991 "default_entry" : {
3992 "action_id" : 34,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07003993 "action_const" : true,
3994 "action_data" : [],
3995 "action_entry_const" : true
3996 }
3997 },
3998 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003999 "name" : "FabricEgress.egress_next.egress_vlan",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07004000 "id" : 20,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004001 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004002 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07004003 "line" : 291,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004004 "column" : 10,
4005 "source_fragment" : "egress_vlan"
4006 },
4007 "key" : [
4008 {
4009 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004010 "name" : "vlan_id",
4011 "target" : ["scalars", "fabric_metadata_t.vlan_id"],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004012 "mask" : null
4013 },
4014 {
4015 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004016 "name" : "eg_port",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004017 "target" : ["standard_metadata", "egress_port"],
4018 "mask" : null
4019 }
4020 ],
4021 "match_type" : "exact",
4022 "type" : "simple",
4023 "max_size" : 1024,
Yi Tseng47eac892018-07-11 02:17:04 +08004024 "with_counters" : true,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004025 "support_timeout" : false,
4026 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004027 "action_ids" : [36, 32],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004028 "actions" : ["FabricEgress.egress_next.pop_vlan", "nop"],
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004029 "base_default_next" : null,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004030 "next_tables" : {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07004031 "__HIT__" : "tbl_act_7",
4032 "__MISS__" : "tbl_act_8"
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004033 },
4034 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004035 "action_id" : 32,
4036 "action_const" : true,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004037 "action_data" : [],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004038 "action_entry_const" : true
4039 }
4040 },
4041 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07004042 "name" : "tbl_act_7",
4043 "id" : 21,
4044 "key" : [],
4045 "match_type" : "exact",
4046 "type" : "simple",
4047 "max_size" : 1024,
4048 "with_counters" : false,
4049 "support_timeout" : false,
4050 "direct_meters" : null,
4051 "action_ids" : [40],
4052 "actions" : ["act_7"],
4053 "base_default_next" : "node_42",
4054 "next_tables" : {
4055 "act_7" : "node_42"
4056 },
4057 "default_entry" : {
4058 "action_id" : 40,
4059 "action_const" : true,
4060 "action_data" : [],
4061 "action_entry_const" : true
4062 }
4063 },
4064 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004065 "name" : "tbl_act_8",
4066 "id" : 22,
4067 "key" : [],
4068 "match_type" : "exact",
4069 "type" : "simple",
4070 "max_size" : 1024,
4071 "with_counters" : false,
4072 "support_timeout" : false,
4073 "direct_meters" : null,
4074 "action_ids" : [41],
4075 "actions" : ["act_8"],
Daniele Moro01ca2ab2019-06-25 11:48:48 -07004076 "base_default_next" : "node_42",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004077 "next_tables" : {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07004078 "act_8" : "node_42"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004079 },
4080 "default_entry" : {
4081 "action_id" : 41,
4082 "action_const" : true,
4083 "action_data" : [],
4084 "action_entry_const" : true
4085 }
4086 },
4087 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004088 "name" : "tbl_egress_next_push_vlan",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07004089 "id" : 23,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004090 "source_info" : {
4091 "filename" : "include/control/next.p4",
4092 "line" : 320,
4093 "column" : 16,
4094 "source_fragment" : "push_vlan()"
4095 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004096 "key" : [],
4097 "match_type" : "exact",
4098 "type" : "simple",
4099 "max_size" : 1024,
4100 "with_counters" : false,
4101 "support_timeout" : false,
4102 "direct_meters" : null,
4103 "action_ids" : [35],
4104 "actions" : ["FabricEgress.egress_next.push_vlan"],
Daniele Moro01ca2ab2019-06-25 11:48:48 -07004105 "base_default_next" : "node_45",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004106 "next_tables" : {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07004107 "FabricEgress.egress_next.push_vlan" : "node_45"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004108 },
4109 "default_entry" : {
4110 "action_id" : 35,
4111 "action_const" : true,
4112 "action_data" : [],
4113 "action_entry_const" : true
4114 }
4115 },
4116 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07004117 "name" : "tbl_act_9",
4118 "id" : 24,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004119 "source_info" : {
4120 "filename" : "include/control/next.p4",
4121 "line" : 326,
4122 "column" : 25,
4123 "source_fragment" : "="
4124 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004125 "key" : [],
4126 "match_type" : "exact",
4127 "type" : "simple",
4128 "max_size" : 1024,
4129 "with_counters" : false,
4130 "support_timeout" : false,
4131 "direct_meters" : null,
Daniele Moro01ca2ab2019-06-25 11:48:48 -07004132 "action_ids" : [43],
4133 "actions" : ["act_10"],
4134 "base_default_next" : "node_47",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004135 "next_tables" : {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07004136 "act_10" : "node_47"
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004137 },
4138 "default_entry" : {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07004139 "action_id" : 43,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004140 "action_const" : true,
4141 "action_data" : [],
4142 "action_entry_const" : true
4143 }
4144 },
4145 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07004146 "name" : "tbl_act_10",
4147 "id" : 25,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004148 "source_info" : {
4149 "filename" : "include/control/next.p4",
4150 "line" : 327,
4151 "column" : 35,
4152 "source_fragment" : "mark_to_drop(standard_metadata)"
4153 },
4154 "key" : [],
4155 "match_type" : "exact",
4156 "type" : "simple",
4157 "max_size" : 1024,
4158 "with_counters" : false,
4159 "support_timeout" : false,
4160 "direct_meters" : null,
Daniele Moro01ca2ab2019-06-25 11:48:48 -07004161 "action_ids" : [42],
4162 "actions" : ["act_9"],
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004163 "base_default_next" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004164 "next_tables" : {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07004165 "act_9" : null
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004166 },
4167 "default_entry" : {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07004168 "action_id" : 42,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004169 "action_const" : true,
4170 "action_data" : [],
4171 "action_entry_const" : true
4172 }
4173 },
4174 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07004175 "name" : "tbl_act_11",
4176 "id" : 26,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004177 "source_info" : {
4178 "filename" : "include/control/next.p4",
4179 "line" : 330,
4180 "column" : 29,
4181 "source_fragment" : "="
4182 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004183 "key" : [],
4184 "match_type" : "exact",
4185 "type" : "simple",
4186 "max_size" : 1024,
4187 "with_counters" : false,
4188 "support_timeout" : false,
4189 "direct_meters" : null,
Daniele Moro01ca2ab2019-06-25 11:48:48 -07004190 "action_ids" : [45],
4191 "actions" : ["act_12"],
4192 "base_default_next" : "node_51",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004193 "next_tables" : {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07004194 "act_12" : "node_51"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004195 },
4196 "default_entry" : {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07004197 "action_id" : 45,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004198 "action_const" : true,
4199 "action_data" : [],
4200 "action_entry_const" : true
4201 }
4202 },
4203 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07004204 "name" : "tbl_act_12",
4205 "id" : 27,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004206 "source_info" : {
4207 "filename" : "include/control/next.p4",
4208 "line" : 331,
4209 "column" : 39,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004210 "source_fragment" : "mark_to_drop(standard_metadata)"
Carmelo Cascone3032b872019-04-13 01:23:54 -07004211 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004212 "key" : [],
4213 "match_type" : "exact",
4214 "type" : "simple",
4215 "max_size" : 1024,
4216 "with_counters" : false,
4217 "support_timeout" : false,
4218 "direct_meters" : null,
Daniele Moro01ca2ab2019-06-25 11:48:48 -07004219 "action_ids" : [44],
4220 "actions" : ["act_11"],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004221 "base_default_next" : null,
4222 "next_tables" : {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07004223 "act_11" : null
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004224 },
4225 "default_entry" : {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07004226 "action_id" : 44,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004227 "action_const" : true,
4228 "action_data" : [],
4229 "action_entry_const" : true
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004230 }
Yi Tseng3a5731e2018-01-22 11:38:58 -08004231 }
4232 ],
4233 "action_profiles" : [],
4234 "conditionals" : [
Yi Tseng1d842672017-11-28 16:06:52 -08004235 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004236 "name" : "node_29",
4237 "id" : 10,
Carmelo Casconea5400af2018-07-17 22:11:54 +02004238 "source_info" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004239 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004240 "line" : 39,
Carmelo Casconea5400af2018-07-17 22:11:54 +02004241 "column" : 12,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004242 "source_fragment" : "fabric_metadata.is_controller_packet_out == true"
Carmelo Casconea5400af2018-07-17 22:11:54 +02004243 },
4244 "expression" : {
4245 "type" : "expression",
4246 "value" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004247 "op" : "==",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004248 "left" : {
4249 "type" : "expression",
4250 "value" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004251 "op" : "d2b",
4252 "left" : null,
Carmelo Casconea5400af2018-07-17 22:11:54 +02004253 "right" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004254 "type" : "field",
4255 "value" : ["scalars", "fabric_metadata_t.is_controller_packet_out"]
Carmelo Casconea5400af2018-07-17 22:11:54 +02004256 }
4257 }
4258 },
4259 "right" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004260 "type" : "bool",
4261 "value" : true
Carmelo Casconea5400af2018-07-17 22:11:54 +02004262 }
4263 }
4264 },
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004265 "true_next" : "tbl_act_4",
4266 "false_next" : "node_31"
Carmelo Casconea5400af2018-07-17 22:11:54 +02004267 },
4268 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004269 "name" : "node_31",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004270 "id" : 11,
Yi Tsengbe342052017-11-03 10:21:23 -07004271 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004272 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004273 "line" : 43,
Yi Tsengbe342052017-11-03 10:21:23 -07004274 "column" : 12,
Carmelo Casconeb531b682018-01-30 17:55:56 -08004275 "source_fragment" : "standard_metadata.egress_port == 255"
Yi Tsengbe342052017-11-03 10:21:23 -07004276 },
4277 "expression" : {
4278 "type" : "expression",
4279 "value" : {
4280 "op" : "==",
4281 "left" : {
4282 "type" : "field",
4283 "value" : ["standard_metadata", "egress_port"]
4284 },
4285 "right" : {
4286 "type" : "hexstr",
4287 "value" : "0x00ff"
4288 }
4289 }
4290 },
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004291 "true_next" : "tbl_act_5",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07004292 "false_next" : "node_33"
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004293 },
4294 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07004295 "name" : "node_33",
4296 "id" : 12,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004297 "source_info" : {
4298 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07004299 "line" : 306,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004300 "column" : 12,
4301 "source_fragment" : "fabric_metadata.is_multicast == true ..."
4302 },
4303 "expression" : {
4304 "type" : "expression",
4305 "value" : {
4306 "op" : "and",
4307 "left" : {
4308 "type" : "expression",
4309 "value" : {
4310 "op" : "==",
4311 "left" : {
4312 "type" : "expression",
4313 "value" : {
4314 "op" : "d2b",
4315 "left" : null,
4316 "right" : {
4317 "type" : "field",
4318 "value" : ["scalars", "fabric_metadata_t.is_multicast"]
4319 }
4320 }
4321 },
4322 "right" : {
4323 "type" : "bool",
4324 "value" : true
4325 }
4326 }
4327 },
4328 "right" : {
4329 "type" : "expression",
4330 "value" : {
4331 "op" : "==",
4332 "left" : {
4333 "type" : "field",
4334 "value" : ["standard_metadata", "ingress_port"]
4335 },
4336 "right" : {
4337 "type" : "field",
4338 "value" : ["standard_metadata", "egress_port"]
4339 }
4340 }
4341 }
4342 }
4343 },
Daniele Moro01ca2ab2019-06-25 11:48:48 -07004344 "true_next" : "tbl_act_6",
4345 "false_next" : "node_35"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004346 },
4347 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07004348 "name" : "node_35",
4349 "id" : 13,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004350 "source_info" : {
4351 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07004352 "line" : 311,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004353 "column" : 12,
4354 "source_fragment" : "fabric_metadata.mpls_label == 0"
4355 },
4356 "expression" : {
4357 "type" : "expression",
4358 "value" : {
4359 "op" : "==",
4360 "left" : {
4361 "type" : "field",
4362 "value" : ["scalars", "fabric_metadata_t.mpls_label"]
4363 },
4364 "right" : {
4365 "type" : "hexstr",
4366 "value" : "0x000000"
4367 }
4368 }
4369 },
Daniele Moro01ca2ab2019-06-25 11:48:48 -07004370 "true_next" : "node_36",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004371 "false_next" : "tbl_egress_next_set_mpls"
4372 },
4373 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07004374 "name" : "node_36",
4375 "id" : 14,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004376 "source_info" : {
4377 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07004378 "line" : 312,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004379 "column" : 16,
4380 "source_fragment" : "hdr.mpls.isValid()"
4381 },
4382 "expression" : {
4383 "type" : "expression",
4384 "value" : {
4385 "op" : "d2b",
4386 "left" : null,
4387 "right" : {
4388 "type" : "field",
4389 "value" : ["mpls", "$valid$"]
4390 }
4391 }
4392 },
4393 "true_next" : "tbl_egress_next_pop_mpls_if_present",
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004394 "false_next" : "FabricEgress.egress_next.egress_vlan"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004395 },
4396 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07004397 "name" : "node_42",
4398 "id" : 15,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004399 "source_info" : {
4400 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07004401 "line" : 317,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004402 "column" : 12,
4403 "source_fragment" : "!egress_vlan.apply().hit"
4404 },
4405 "expression" : {
4406 "type" : "expression",
4407 "value" : {
4408 "op" : "not",
4409 "left" : null,
4410 "right" : {
4411 "type" : "expression",
4412 "value" : {
4413 "op" : "d2b",
4414 "left" : null,
4415 "right" : {
4416 "type" : "field",
4417 "value" : ["scalars", "egress_next_tmp"]
4418 }
4419 }
4420 }
4421 }
4422 },
Daniele Moro01ca2ab2019-06-25 11:48:48 -07004423 "true_next" : "node_43",
4424 "false_next" : "node_45"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004425 },
4426 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07004427 "name" : "node_43",
4428 "id" : 16,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004429 "source_info" : {
4430 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07004431 "line" : 319,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004432 "column" : 16,
4433 "source_fragment" : "fabric_metadata.vlan_id != DEFAULT_VLAN_ID"
4434 },
4435 "expression" : {
4436 "type" : "expression",
4437 "value" : {
4438 "op" : "!=",
4439 "left" : {
4440 "type" : "field",
4441 "value" : ["scalars", "fabric_metadata_t.vlan_id"]
4442 },
4443 "right" : {
4444 "type" : "hexstr",
4445 "value" : "0x0ffe"
4446 }
4447 }
4448 },
4449 "true_next" : "tbl_egress_next_push_vlan",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07004450 "false_next" : "node_45"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004451 },
4452 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07004453 "name" : "node_45",
4454 "id" : 17,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004455 "source_info" : {
4456 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07004457 "line" : 325,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004458 "column" : 12,
4459 "source_fragment" : "hdr.mpls.isValid()"
4460 },
4461 "expression" : {
4462 "type" : "expression",
4463 "value" : {
4464 "op" : "d2b",
4465 "left" : null,
4466 "right" : {
4467 "type" : "field",
4468 "value" : ["mpls", "$valid$"]
4469 }
4470 }
4471 },
Daniele Moro01ca2ab2019-06-25 11:48:48 -07004472 "true_next" : "tbl_act_9",
4473 "false_next" : "node_49"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004474 },
4475 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07004476 "name" : "node_47",
4477 "id" : 18,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004478 "source_info" : {
4479 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07004480 "line" : 327,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004481 "column" : 16,
4482 "source_fragment" : "hdr.mpls.ttl == 0"
4483 },
4484 "expression" : {
4485 "type" : "expression",
4486 "value" : {
4487 "op" : "==",
4488 "left" : {
4489 "type" : "field",
4490 "value" : ["mpls", "ttl"]
4491 },
4492 "right" : {
4493 "type" : "hexstr",
4494 "value" : "0x00"
4495 }
4496 }
4497 },
4498 "false_next" : null,
Daniele Moro01ca2ab2019-06-25 11:48:48 -07004499 "true_next" : "tbl_act_10"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004500 },
4501 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07004502 "name" : "node_49",
4503 "id" : 19,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004504 "source_info" : {
4505 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07004506 "line" : 329,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004507 "column" : 15,
4508 "source_fragment" : "hdr.ipv4.isValid()"
4509 },
4510 "expression" : {
4511 "type" : "expression",
4512 "value" : {
4513 "op" : "d2b",
4514 "left" : null,
4515 "right" : {
4516 "type" : "field",
4517 "value" : ["ipv4", "$valid$"]
4518 }
4519 }
4520 },
4521 "false_next" : null,
Daniele Moro01ca2ab2019-06-25 11:48:48 -07004522 "true_next" : "tbl_act_11"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004523 },
4524 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07004525 "name" : "node_51",
4526 "id" : 20,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004527 "source_info" : {
4528 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07004529 "line" : 331,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004530 "column" : 20,
4531 "source_fragment" : "hdr.ipv4.ttl == 0"
4532 },
4533 "expression" : {
4534 "type" : "expression",
4535 "value" : {
4536 "op" : "==",
4537 "left" : {
4538 "type" : "field",
4539 "value" : ["ipv4", "ttl"]
4540 },
4541 "right" : {
4542 "type" : "hexstr",
4543 "value" : "0x00"
4544 }
4545 }
4546 },
4547 "false_next" : null,
Daniele Moro01ca2ab2019-06-25 11:48:48 -07004548 "true_next" : "tbl_act_12"
Yi Tsengbe342052017-11-03 10:21:23 -07004549 }
4550 ]
4551 }
4552 ],
4553 "checksums" : [
4554 {
4555 "name" : "cksum",
4556 "id" : 0,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07004557 "source_info" : {
4558 "filename" : "include/checksum.p4",
4559 "line" : 28,
4560 "column" : 8,
4561 "source_fragment" : "update_checksum(hdr.ipv4.isValid(), ..."
4562 },
Yi Tsengbe342052017-11-03 10:21:23 -07004563 "target" : ["ipv4", "hdr_checksum"],
4564 "type" : "generic",
Yi Tsengbd46d052018-01-22 17:18:16 -08004565 "calculation" : "calc",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08004566 "verify" : false,
4567 "update" : true,
Yi Tsengbd46d052018-01-22 17:18:16 -08004568 "if_cond" : {
4569 "type" : "expression",
4570 "value" : {
4571 "op" : "d2b",
4572 "left" : null,
4573 "right" : {
4574 "type" : "field",
4575 "value" : ["ipv4", "$valid$"]
4576 }
4577 }
4578 }
Yi Tsengbe342052017-11-03 10:21:23 -07004579 },
4580 {
4581 "name" : "cksum_0",
4582 "id" : 1,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07004583 "source_info" : {
4584 "filename" : "include/checksum.p4",
4585 "line" : 57,
4586 "column" : 8,
4587 "source_fragment" : "verify_checksum(hdr.ipv4.isValid(), ..."
4588 },
Yi Tsengbe342052017-11-03 10:21:23 -07004589 "target" : ["ipv4", "hdr_checksum"],
4590 "type" : "generic",
Yi Tsengbd46d052018-01-22 17:18:16 -08004591 "calculation" : "calc_0",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08004592 "verify" : true,
4593 "update" : false,
Yi Tsengbd46d052018-01-22 17:18:16 -08004594 "if_cond" : {
4595 "type" : "expression",
4596 "value" : {
4597 "op" : "d2b",
4598 "left" : null,
4599 "right" : {
4600 "type" : "field",
4601 "value" : ["ipv4", "$valid$"]
4602 }
4603 }
4604 }
Yi Tsengbe342052017-11-03 10:21:23 -07004605 }
4606 ],
4607 "force_arith" : [],
4608 "extern_instances" : [],
4609 "field_aliases" : [
4610 [
4611 "queueing_metadata.enq_timestamp",
4612 ["standard_metadata", "enq_timestamp"]
4613 ],
4614 [
4615 "queueing_metadata.enq_qdepth",
4616 ["standard_metadata", "enq_qdepth"]
4617 ],
4618 [
4619 "queueing_metadata.deq_timedelta",
4620 ["standard_metadata", "deq_timedelta"]
4621 ],
4622 [
4623 "queueing_metadata.deq_qdepth",
4624 ["standard_metadata", "deq_qdepth"]
4625 ],
4626 [
4627 "intrinsic_metadata.ingress_global_timestamp",
4628 ["standard_metadata", "ingress_global_timestamp"]
4629 ],
4630 [
Yi Tseng27b9bc02018-04-12 14:52:40 +08004631 "intrinsic_metadata.egress_global_timestamp",
4632 ["standard_metadata", "egress_global_timestamp"]
4633 ],
4634 [
Yi Tsengbe342052017-11-03 10:21:23 -07004635 "intrinsic_metadata.lf_field_list",
4636 ["standard_metadata", "lf_field_list"]
4637 ],
4638 [
4639 "intrinsic_metadata.mcast_grp",
4640 ["standard_metadata", "mcast_grp"]
4641 ],
4642 [
4643 "intrinsic_metadata.resubmit_flag",
4644 ["standard_metadata", "resubmit_flag"]
4645 ],
4646 [
4647 "intrinsic_metadata.egress_rid",
4648 ["standard_metadata", "egress_rid"]
Yi Tseng27b9bc02018-04-12 14:52:40 +08004649 ],
4650 [
4651 "intrinsic_metadata.recirculate_flag",
4652 ["standard_metadata", "recirculate_flag"]
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004653 ],
4654 [
4655 "intrinsic_metadata.priority",
4656 ["standard_metadata", "priority"]
Yi Tsengbe342052017-11-03 10:21:23 -07004657 ]
Carmelo Cascone6af4e172018-06-15 16:01:30 +02004658 ],
4659 "program" : "fabric.p4",
4660 "__meta__" : {
4661 "version" : [2, 18],
4662 "compiler" : "https://github.com/p4lang/p4c"
4663 }
Carmelo Cascone25243d62019-02-21 15:37:31 -08004664}