blob: f250cea4c06cb8a662b238c1d6a43648fb3e6478 [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" : [
Yi Tsengc6844f52017-12-19 11:58:25 -08007 ["tmp", 4, false],
8 ["tmp_0", 32, false],
Yi Tsengbe342052017-11-03 10:21:23 -07009 ["tmp_1", 32, false],
Yi Tseng1d842672017-11-28 16:06:52 -080010 ["next_tmp_0", 1, false],
Yi Tsengbe342052017-11-03 10:21:23 -070011 ["fabric_metadata_t.fwd_type", 3, false],
12 ["fabric_metadata_t.next_id", 32, false],
Yi Tseng20f9e7b2018-05-24 23:27:39 +080013 ["fabric_metadata_t.pop_vlan_when_packet_in", 1, false],
Yi Tsengbe342052017-11-03 10:21:23 -070014 ["fabric_metadata_t.ip_proto", 8, false],
15 ["fabric_metadata_t.l4_src_port", 16, false],
Yi Tsengf55eaa82017-11-29 15:51:28 -080016 ["fabric_metadata_t.l4_dst_port", 16, false],
Yi Tseng1d842672017-11-28 16:06:52 -080017 ["fabric_metadata_t.original_ether_type", 16, false],
Yi Tsengc6844f52017-12-19 11:58:25 -080018 ["_padding_0", 7, false]
19 ]
20 },
21 {
Carmelo Cascone6af4e172018-06-15 16:01:30 +020022 "name" : "standard_metadata",
Yi Tsengc6844f52017-12-19 11:58:25 -080023 "id" : 1,
24 "fields" : [
Carmelo Cascone6af4e172018-06-15 16:01:30 +020025 ["ingress_port", 9, false],
26 ["egress_spec", 9, false],
27 ["egress_port", 9, false],
28 ["clone_spec", 32, false],
29 ["instance_type", 32, false],
30 ["drop", 1, false],
31 ["recirculate_port", 16, false],
32 ["packet_length", 32, false],
33 ["enq_timestamp", 32, false],
34 ["enq_qdepth", 19, false],
35 ["deq_timedelta", 32, false],
36 ["deq_qdepth", 19, false],
37 ["ingress_global_timestamp", 48, false],
38 ["egress_global_timestamp", 48, false],
39 ["lf_field_list", 32, false],
40 ["mcast_grp", 16, false],
41 ["resubmit_flag", 32, false],
42 ["egress_rid", 16, false],
43 ["checksum_error", 1, false],
44 ["recirculate_flag", 32, false],
45 ["_padding", 5, false]
46 ]
47 },
48 {
49 "name" : "ethernet_t",
50 "id" : 2,
51 "fields" : [
Yi Tsengc6844f52017-12-19 11:58:25 -080052 ["dst_addr", 48, false],
53 ["src_addr", 48, false],
54 ["ether_type", 16, false]
55 ]
56 },
57 {
58 "name" : "vlan_tag_t",
Carmelo Cascone6af4e172018-06-15 16:01:30 +020059 "id" : 3,
Yi Tsengc6844f52017-12-19 11:58:25 -080060 "fields" : [
61 ["pri", 3, false],
62 ["cfi", 1, false],
63 ["vlan_id", 12, false],
64 ["ether_type", 16, false]
65 ]
66 },
67 {
68 "name" : "mpls_t",
Carmelo Cascone6af4e172018-06-15 16:01:30 +020069 "id" : 4,
Yi Tsengc6844f52017-12-19 11:58:25 -080070 "fields" : [
71 ["label", 20, false],
72 ["tc", 3, false],
73 ["bos", 1, false],
74 ["ttl", 8, false]
Yi Tsengbe342052017-11-03 10:21:23 -070075 ]
76 },
77 {
78 "name" : "ipv4_t",
Carmelo Cascone6af4e172018-06-15 16:01:30 +020079 "id" : 5,
Yi Tsengbe342052017-11-03 10:21:23 -070080 "fields" : [
81 ["version", 4, false],
82 ["ihl", 4, false],
83 ["diffserv", 8, false],
84 ["total_len", 16, false],
85 ["identification", 16, false],
86 ["flags", 3, false],
87 ["frag_offset", 13, false],
88 ["ttl", 8, false],
89 ["protocol", 8, false],
90 ["hdr_checksum", 16, false],
91 ["src_addr", 32, false],
92 ["dst_addr", 32, false]
93 ]
94 },
95 {
Yi Tseng47eac892018-07-11 02:17:04 +080096 "name" : "arp_t",
Carmelo Casconef645e842018-07-16 18:31:52 +020097 "id" : 6,
Yi Tseng47eac892018-07-11 02:17:04 +080098 "fields" : [
Yi Tsengbe342052017-11-03 10:21:23 -070099 ["hw_type", 16, false],
100 ["proto_type", 16, false],
101 ["hw_addr_len", 8, false],
102 ["proto_addr_len", 8, false],
103 ["opcode", 16, false]
104 ]
105 },
106 {
107 "name" : "tcp_t",
Carmelo Casconef645e842018-07-16 18:31:52 +0200108 "id" : 7,
Yi Tsengbe342052017-11-03 10:21:23 -0700109 "fields" : [
110 ["src_port", 16, false],
111 ["dst_port", 16, false],
112 ["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 Casconef645e842018-07-16 18:31:52 +0200125 "id" : 8,
Yi Tsengbe342052017-11-03 10:21:23 -0700126 "fields" : [
127 ["src_port", 16, false],
128 ["dst_port", 16, false],
129 ["len", 16, false],
130 ["checksum", 16, false]
131 ]
132 },
133 {
134 "name" : "icmp_t",
Carmelo Casconef645e842018-07-16 18:31:52 +0200135 "id" : 9,
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 Casconef645e842018-07-16 18:31:52 +0200147 "id" : 10,
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 Casconef645e842018-07-16 18:31:52 +0200155 "id" : 11,
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 {
Yi Tsengbe342052017-11-03 10:21:23 -0700192 "name" : "mpls",
Yi Tsengbd46d052018-01-22 17:18:16 -0800193 "id" : 4,
Yi Tsengbe342052017-11-03 10:21:23 -0700194 "header_type" : "mpls_t",
195 "metadata" : false,
196 "pi_omit" : true
197 },
198 {
199 "name" : "ipv4",
Yi Tsengbd46d052018-01-22 17:18:16 -0800200 "id" : 5,
Yi Tsengbe342052017-11-03 10:21:23 -0700201 "header_type" : "ipv4_t",
202 "metadata" : false,
203 "pi_omit" : true
204 },
205 {
Yi Tseng47eac892018-07-11 02:17:04 +0800206 "name" : "arp",
Carmelo Casconef645e842018-07-16 18:31:52 +0200207 "id" : 6,
Yi Tsengbe342052017-11-03 10:21:23 -0700208 "header_type" : "arp_t",
209 "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" : [],
252 "field_lists" : [],
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200253 "errors" : [],
Yi Tsengbe342052017-11-03 10:21:23 -0700254 "enums" : [],
255 "parsers" : [
256 {
257 "name" : "parser",
258 "id" : 0,
259 "init_state" : "start",
260 "parse_states" : [
261 {
262 "name" : "start",
263 "id" : 0,
264 "parser_ops" : [],
265 "transitions" : [
266 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800267 "type" : "hexstr",
Yi Tsengbe342052017-11-03 10:21:23 -0700268 "value" : "0x00ff",
269 "mask" : null,
270 "next_state" : "parse_packet_out"
271 },
272 {
273 "value" : "default",
274 "mask" : null,
275 "next_state" : "parse_ethernet"
276 }
277 ],
278 "transition_key" : [
279 {
280 "type" : "field",
281 "value" : ["standard_metadata", "ingress_port"]
282 }
283 ]
284 },
285 {
286 "name" : "parse_packet_out",
287 "id" : 1,
288 "parser_ops" : [
289 {
290 "parameters" : [
291 {
292 "type" : "regular",
293 "value" : "packet_out"
294 }
295 ],
296 "op" : "extract"
297 }
298 ],
299 "transitions" : [
300 {
301 "value" : "default",
302 "mask" : null,
303 "next_state" : "parse_ethernet"
304 }
305 ],
306 "transition_key" : []
307 },
308 {
309 "name" : "parse_ethernet",
310 "id" : 2,
311 "parser_ops" : [
312 {
313 "parameters" : [
314 {
315 "type" : "regular",
316 "value" : "ethernet"
317 }
318 ],
319 "op" : "extract"
Yi Tseng1d842672017-11-28 16:06:52 -0800320 },
321 {
322 "parameters" : [
323 {
324 "type" : "field",
325 "value" : ["scalars", "fabric_metadata_t.original_ether_type"]
326 },
327 {
328 "type" : "field",
329 "value" : ["ethernet", "ether_type"]
330 }
331 ],
332 "op" : "set"
Yi Tsengbe342052017-11-03 10:21:23 -0700333 }
334 ],
335 "transitions" : [
336 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800337 "type" : "hexstr",
Yi Tsengbe342052017-11-03 10:21:23 -0700338 "value" : "0x8100",
339 "mask" : null,
340 "next_state" : "parse_vlan_tag"
341 },
342 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800343 "type" : "hexstr",
Yi Tsengbe342052017-11-03 10:21:23 -0700344 "value" : "0x8847",
345 "mask" : null,
346 "next_state" : "parse_mpls"
347 },
348 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800349 "type" : "hexstr",
Yi Tsengbe342052017-11-03 10:21:23 -0700350 "value" : "0x0806",
351 "mask" : null,
352 "next_state" : "parse_arp"
353 },
354 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800355 "type" : "hexstr",
Yi Tsengbe342052017-11-03 10:21:23 -0700356 "value" : "0x0800",
357 "mask" : null,
358 "next_state" : "parse_ipv4"
359 },
360 {
Yi Tsengbe342052017-11-03 10:21:23 -0700361 "value" : "default",
362 "mask" : null,
363 "next_state" : null
364 }
365 ],
366 "transition_key" : [
367 {
368 "type" : "field",
369 "value" : ["ethernet", "ether_type"]
370 }
371 ]
372 },
373 {
374 "name" : "parse_vlan_tag",
375 "id" : 3,
376 "parser_ops" : [
377 {
378 "parameters" : [
379 {
380 "type" : "regular",
381 "value" : "vlan_tag"
382 }
383 ],
384 "op" : "extract"
Yi Tseng20f9e7b2018-05-24 23:27:39 +0800385 },
386 {
387 "parameters" : [
388 {
389 "type" : "field",
390 "value" : ["scalars", "fabric_metadata_t.original_ether_type"]
391 },
392 {
393 "type" : "field",
394 "value" : ["vlan_tag", "ether_type"]
395 }
396 ],
397 "op" : "set"
Yi Tsengbe342052017-11-03 10:21:23 -0700398 }
399 ],
400 "transitions" : [
401 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800402 "type" : "hexstr",
Yi Tsengbe342052017-11-03 10:21:23 -0700403 "value" : "0x0806",
404 "mask" : null,
405 "next_state" : "parse_arp"
406 },
407 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800408 "type" : "hexstr",
Yi Tsengbe342052017-11-03 10:21:23 -0700409 "value" : "0x0800",
410 "mask" : null,
411 "next_state" : "parse_ipv4"
412 },
413 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800414 "type" : "hexstr",
Yi Tsengbd46d052018-01-22 17:18:16 -0800415 "value" : "0x8847",
Yi Tsengbe342052017-11-03 10:21:23 -0700416 "mask" : null,
Yi Tsengbd46d052018-01-22 17:18:16 -0800417 "next_state" : "parse_mpls"
Yi Tsengbe342052017-11-03 10:21:23 -0700418 },
419 {
420 "value" : "default",
421 "mask" : null,
422 "next_state" : null
423 }
424 ],
425 "transition_key" : [
426 {
427 "type" : "field",
428 "value" : ["vlan_tag", "ether_type"]
429 }
430 ]
431 },
432 {
433 "name" : "parse_mpls",
Yi Tsengbd46d052018-01-22 17:18:16 -0800434 "id" : 4,
Yi Tsengbe342052017-11-03 10:21:23 -0700435 "parser_ops" : [
436 {
437 "parameters" : [
438 {
439 "type" : "regular",
440 "value" : "mpls"
441 }
442 ],
443 "op" : "extract"
444 },
445 {
446 "parameters" : [
447 {
448 "type" : "field",
Yi Tsengc6844f52017-12-19 11:58:25 -0800449 "value" : ["scalars", "tmp"]
Yi Tsengbe342052017-11-03 10:21:23 -0700450 },
451 {
452 "type" : "lookahead",
Yi Tsengc6844f52017-12-19 11:58:25 -0800453 "value" : [0, 4]
Yi Tsengbe342052017-11-03 10:21:23 -0700454 }
455 ],
456 "op" : "set"
457 }
458 ],
459 "transitions" : [
460 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800461 "type" : "hexstr",
Yi Tsengbe342052017-11-03 10:21:23 -0700462 "value" : "0x04",
463 "mask" : null,
464 "next_state" : "parse_ipv4"
465 },
466 {
Yi Tsengbe342052017-11-03 10:21:23 -0700467 "value" : "default",
468 "mask" : null,
469 "next_state" : "parse_ethernet"
470 }
471 ],
472 "transition_key" : [
473 {
474 "type" : "field",
Yi Tsengc6844f52017-12-19 11:58:25 -0800475 "value" : ["scalars", "tmp"]
Yi Tsengbe342052017-11-03 10:21:23 -0700476 }
477 ]
478 },
479 {
480 "name" : "parse_ipv4",
Yi Tsengbd46d052018-01-22 17:18:16 -0800481 "id" : 5,
Yi Tsengbe342052017-11-03 10:21:23 -0700482 "parser_ops" : [
483 {
484 "parameters" : [
485 {
486 "type" : "regular",
487 "value" : "ipv4"
488 }
489 ],
490 "op" : "extract"
491 },
492 {
493 "parameters" : [
494 {
495 "type" : "field",
496 "value" : ["scalars", "fabric_metadata_t.ip_proto"]
497 },
498 {
499 "type" : "field",
500 "value" : ["ipv4", "protocol"]
501 }
502 ],
503 "op" : "set"
504 }
505 ],
506 "transitions" : [
507 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800508 "type" : "hexstr",
Yi Tsengbe342052017-11-03 10:21:23 -0700509 "value" : "0x06",
510 "mask" : null,
511 "next_state" : "parse_tcp"
512 },
513 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800514 "type" : "hexstr",
Yi Tsengbe342052017-11-03 10:21:23 -0700515 "value" : "0x11",
516 "mask" : null,
517 "next_state" : "parse_udp"
518 },
519 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800520 "type" : "hexstr",
Yi Tsengbe342052017-11-03 10:21:23 -0700521 "value" : "0x01",
522 "mask" : null,
523 "next_state" : "parse_icmp"
524 },
525 {
526 "value" : "default",
527 "mask" : null,
528 "next_state" : null
529 }
530 ],
531 "transition_key" : [
532 {
533 "type" : "field",
534 "value" : ["ipv4", "protocol"]
535 }
536 ]
537 },
538 {
Yi Tseng47eac892018-07-11 02:17:04 +0800539 "name" : "parse_arp",
Carmelo Casconef645e842018-07-16 18:31:52 +0200540 "id" : 6,
Yi Tseng47eac892018-07-11 02:17:04 +0800541 "parser_ops" : [
542 {
543 "parameters" : [
544 {
545 "type" : "regular",
Yi Tsengbe342052017-11-03 10:21:23 -0700546 "value" : "arp"
547 }
548 ],
549 "op" : "extract"
550 }
551 ],
552 "transitions" : [
553 {
554 "value" : "default",
555 "mask" : null,
556 "next_state" : null
557 }
558 ],
559 "transition_key" : []
560 },
561 {
562 "name" : "parse_tcp",
Carmelo Casconef645e842018-07-16 18:31:52 +0200563 "id" : 7,
Yi Tsengbe342052017-11-03 10:21:23 -0700564 "parser_ops" : [
565 {
566 "parameters" : [
567 {
568 "type" : "regular",
569 "value" : "tcp"
570 }
571 ],
572 "op" : "extract"
573 },
574 {
575 "parameters" : [
576 {
577 "type" : "field",
578 "value" : ["scalars", "fabric_metadata_t.l4_src_port"]
579 },
580 {
581 "type" : "field",
582 "value" : ["tcp", "src_port"]
583 }
584 ],
585 "op" : "set"
586 },
587 {
588 "parameters" : [
589 {
590 "type" : "field",
591 "value" : ["scalars", "fabric_metadata_t.l4_dst_port"]
592 },
593 {
594 "type" : "field",
595 "value" : ["tcp", "dst_port"]
596 }
597 ],
598 "op" : "set"
599 }
600 ],
601 "transitions" : [
602 {
603 "value" : "default",
604 "mask" : null,
605 "next_state" : null
606 }
607 ],
608 "transition_key" : []
609 },
610 {
611 "name" : "parse_udp",
Carmelo Casconef645e842018-07-16 18:31:52 +0200612 "id" : 8,
Yi Tsengbe342052017-11-03 10:21:23 -0700613 "parser_ops" : [
614 {
615 "parameters" : [
616 {
617 "type" : "regular",
618 "value" : "udp"
619 }
620 ],
621 "op" : "extract"
622 },
623 {
624 "parameters" : [
625 {
626 "type" : "field",
627 "value" : ["scalars", "fabric_metadata_t.l4_src_port"]
628 },
629 {
630 "type" : "field",
631 "value" : ["udp", "src_port"]
632 }
633 ],
634 "op" : "set"
635 },
636 {
637 "parameters" : [
638 {
639 "type" : "field",
640 "value" : ["scalars", "fabric_metadata_t.l4_dst_port"]
641 },
642 {
643 "type" : "field",
644 "value" : ["udp", "dst_port"]
645 }
646 ],
647 "op" : "set"
648 }
649 ],
650 "transitions" : [
651 {
652 "value" : "default",
653 "mask" : null,
654 "next_state" : null
655 }
656 ],
657 "transition_key" : []
658 },
659 {
660 "name" : "parse_icmp",
Carmelo Casconef645e842018-07-16 18:31:52 +0200661 "id" : 9,
Yi Tsengbe342052017-11-03 10:21:23 -0700662 "parser_ops" : [
663 {
664 "parameters" : [
665 {
666 "type" : "regular",
667 "value" : "icmp"
668 }
669 ],
670 "op" : "extract"
671 }
672 ],
673 "transitions" : [
674 {
675 "value" : "default",
676 "mask" : null,
677 "next_state" : null
678 }
679 ],
680 "transition_key" : []
681 }
682 ]
683 }
684 ],
Yi Tseng27b9bc02018-04-12 14:52:40 +0800685 "parse_vsets" : [],
Yi Tsengbe342052017-11-03 10:21:23 -0700686 "deparsers" : [
687 {
688 "name" : "deparser",
689 "id" : 0,
690 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +0200691 "filename" : "include/parser.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +0800692 "line" : 165,
Yi Tsengbe342052017-11-03 10:21:23 -0700693 "column" : 8,
694 "source_fragment" : "FabricDeparser"
695 },
Carmelo Casconef645e842018-07-16 18:31:52 +0200696 "order" : ["packet_in", "ethernet", "vlan_tag", "mpls", "arp", "ipv4", "tcp", "udp", "icmp"]
Yi Tsengbe342052017-11-03 10:21:23 -0700697 }
698 ],
699 "meter_arrays" : [],
700 "counter_arrays" : [
701 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800702 "name" : "FabricIngress.filtering.ingress_port_vlan_counter",
Yi Tseng1d842672017-11-28 16:06:52 -0800703 "id" : 0,
Yi Tseng3a5731e2018-01-22 11:38:58 -0800704 "is_direct" : true,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800705 "binding" : "FabricIngress.filtering.ingress_port_vlan"
Yi Tseng3a5731e2018-01-22 11:38:58 -0800706 },
707 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800708 "name" : "FabricIngress.filtering.fwd_classifier_counter",
Yi Tseng3a5731e2018-01-22 11:38:58 -0800709 "id" : 1,
710 "is_direct" : true,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800711 "binding" : "FabricIngress.filtering.fwd_classifier"
Yi Tseng3a5731e2018-01-22 11:38:58 -0800712 },
713 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800714 "name" : "FabricIngress.forwarding.bridging_counter",
Yi Tseng3a5731e2018-01-22 11:38:58 -0800715 "id" : 2,
716 "is_direct" : true,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800717 "binding" : "FabricIngress.forwarding.bridging"
Yi Tseng3a5731e2018-01-22 11:38:58 -0800718 },
719 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800720 "name" : "FabricIngress.forwarding.mpls_counter",
Yi Tseng3a5731e2018-01-22 11:38:58 -0800721 "id" : 3,
722 "is_direct" : true,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800723 "binding" : "FabricIngress.forwarding.mpls"
Yi Tseng3a5731e2018-01-22 11:38:58 -0800724 },
725 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800726 "name" : "FabricIngress.forwarding.unicast_v4_counter",
Yi Tseng3a5731e2018-01-22 11:38:58 -0800727 "id" : 4,
728 "is_direct" : true,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800729 "binding" : "FabricIngress.forwarding.unicast_v4"
Yi Tseng3a5731e2018-01-22 11:38:58 -0800730 },
731 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800732 "name" : "FabricIngress.forwarding.acl_counter",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -0800733 "id" : 5,
Yi Tseng3a5731e2018-01-22 11:38:58 -0800734 "is_direct" : true,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800735 "binding" : "FabricIngress.forwarding.acl"
Yi Tseng3a5731e2018-01-22 11:38:58 -0800736 },
737 {
Yi Tseng47eac892018-07-11 02:17:04 +0800738 "name" : "FabricIngress.next.vlan_meta_counter",
Carmelo Casconef645e842018-07-16 18:31:52 +0200739 "id" : 6,
Yi Tseng47eac892018-07-11 02:17:04 +0800740 "is_direct" : true,
Yi Tseng20f9e7b2018-05-24 23:27:39 +0800741 "binding" : "FabricIngress.next.vlan_meta"
742 },
743 {
744 "name" : "FabricIngress.next.simple_counter",
Carmelo Casconef645e842018-07-16 18:31:52 +0200745 "id" : 7,
Yi Tseng20f9e7b2018-05-24 23:27:39 +0800746 "is_direct" : true,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800747 "binding" : "FabricIngress.next.simple"
748 },
749 {
750 "name" : "FabricIngress.next.hashed_counter",
Carmelo Casconef645e842018-07-16 18:31:52 +0200751 "id" : 8,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800752 "is_direct" : true,
753 "binding" : "FabricIngress.next.hashed"
754 },
755 {
Esin Karaman971fb7f2017-12-28 13:44:52 +0000756 "name" : "FabricIngress.next.multicast_counter",
Carmelo Casconef645e842018-07-16 18:31:52 +0200757 "id" : 9,
Esin Karaman971fb7f2017-12-28 13:44:52 +0000758 "is_direct" : true,
759 "binding" : "FabricIngress.next.multicast"
760 },
761 {
762 "name" : "FabricIngress.port_counters_control.egress_port_counter",
Carmelo Casconef645e842018-07-16 18:31:52 +0200763 "id" : 10,
Yi Tsengbe342052017-11-03 10:21:23 -0700764 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +0200765 "filename" : "include/control/port_counter.p4",
Yi Tsengbe342052017-11-03 10:21:23 -0700766 "line" : 23,
Yi Tseng3d3956d2018-01-31 17:28:05 -0800767 "column" : 48,
Yi Tsengbe342052017-11-03 10:21:23 -0700768 "source_fragment" : "egress_port_counter"
769 },
770 "size" : 511,
771 "is_direct" : false
772 },
773 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800774 "name" : "FabricIngress.port_counters_control.ingress_port_counter",
Carmelo Casconef645e842018-07-16 18:31:52 +0200775 "id" : 11,
Yi Tsengbe342052017-11-03 10:21:23 -0700776 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +0200777 "filename" : "include/control/port_counter.p4",
Yi Tsengbe342052017-11-03 10:21:23 -0700778 "line" : 24,
Yi Tseng3d3956d2018-01-31 17:28:05 -0800779 "column" : 48,
Yi Tsengbe342052017-11-03 10:21:23 -0700780 "source_fragment" : "ingress_port_counter"
781 },
782 "size" : 511,
783 "is_direct" : false
Yi Tseng47eac892018-07-11 02:17:04 +0800784 },
785 {
786 "name" : "FabricEgress.egress_next.egress_vlan_counter",
Carmelo Casconef645e842018-07-16 18:31:52 +0200787 "id" : 12,
Yi Tseng47eac892018-07-11 02:17:04 +0800788 "is_direct" : true,
789 "binding" : "FabricEgress.egress_next.egress_vlan"
Yi Tsengbe342052017-11-03 10:21:23 -0700790 }
791 ],
792 "register_arrays" : [],
793 "calculations" : [
794 {
795 "name" : "calc",
796 "id" : 0,
797 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +0200798 "filename" : "include/checksum.p4",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200799 "line" : 28,
Yi Tsengbe342052017-11-03 10:21:23 -0700800 "column" : 8,
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200801 "source_fragment" : "update_checksum(hdr.ipv4.isValid(), ..."
Yi Tsengbe342052017-11-03 10:21:23 -0700802 },
803 "algo" : "csum16",
804 "input" : [
805 {
806 "type" : "field",
807 "value" : ["ipv4", "version"]
808 },
809 {
810 "type" : "field",
811 "value" : ["ipv4", "ihl"]
812 },
813 {
814 "type" : "field",
815 "value" : ["ipv4", "diffserv"]
816 },
817 {
818 "type" : "field",
819 "value" : ["ipv4", "total_len"]
820 },
821 {
822 "type" : "field",
823 "value" : ["ipv4", "identification"]
824 },
825 {
826 "type" : "field",
827 "value" : ["ipv4", "flags"]
828 },
829 {
830 "type" : "field",
831 "value" : ["ipv4", "frag_offset"]
832 },
833 {
834 "type" : "field",
835 "value" : ["ipv4", "ttl"]
836 },
837 {
838 "type" : "field",
839 "value" : ["ipv4", "protocol"]
840 },
841 {
842 "type" : "field",
843 "value" : ["ipv4", "src_addr"]
844 },
845 {
846 "type" : "field",
847 "value" : ["ipv4", "dst_addr"]
848 }
849 ]
850 },
851 {
852 "name" : "calc_0",
853 "id" : 1,
854 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +0200855 "filename" : "include/checksum.p4",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200856 "line" : 56,
Yi Tsengbe342052017-11-03 10:21:23 -0700857 "column" : 8,
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200858 "source_fragment" : "verify_checksum(hdr.ipv4.isValid(), ..."
Yi Tsengbe342052017-11-03 10:21:23 -0700859 },
860 "algo" : "csum16",
861 "input" : [
862 {
863 "type" : "field",
864 "value" : ["ipv4", "version"]
865 },
866 {
867 "type" : "field",
868 "value" : ["ipv4", "ihl"]
869 },
870 {
871 "type" : "field",
872 "value" : ["ipv4", "diffserv"]
873 },
874 {
875 "type" : "field",
876 "value" : ["ipv4", "total_len"]
877 },
878 {
879 "type" : "field",
880 "value" : ["ipv4", "identification"]
881 },
882 {
883 "type" : "field",
884 "value" : ["ipv4", "flags"]
885 },
886 {
887 "type" : "field",
888 "value" : ["ipv4", "frag_offset"]
889 },
890 {
891 "type" : "field",
892 "value" : ["ipv4", "ttl"]
893 },
894 {
895 "type" : "field",
896 "value" : ["ipv4", "protocol"]
897 },
898 {
899 "type" : "field",
900 "value" : ["ipv4", "src_addr"]
901 },
902 {
903 "type" : "field",
904 "value" : ["ipv4", "dst_addr"]
905 }
906 ]
Yi Tsengbe342052017-11-03 10:21:23 -0700907 }
908 ],
909 "learn_lists" : [],
910 "actions" : [
911 {
912 "name" : "nop",
913 "id" : 0,
914 "runtime_data" : [],
915 "primitives" : []
916 },
917 {
918 "name" : "nop",
919 "id" : 1,
920 "runtime_data" : [],
921 "primitives" : []
922 },
923 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +0800924 "name" : "nop",
Yi Tsengbe342052017-11-03 10:21:23 -0700925 "id" : 2,
926 "runtime_data" : [],
Yi Tseng1d842672017-11-28 16:06:52 -0800927 "primitives" : []
Yi Tsengbe342052017-11-03 10:21:23 -0700928 },
929 {
Yi Tseng1d842672017-11-28 16:06:52 -0800930 "name" : "NoAction",
Yi Tsengbe342052017-11-03 10:21:23 -0700931 "id" : 3,
932 "runtime_data" : [],
Yi Tseng1d842672017-11-28 16:06:52 -0800933 "primitives" : []
Yi Tsengbe342052017-11-03 10:21:23 -0700934 },
935 {
936 "name" : "NoAction",
937 "id" : 4,
938 "runtime_data" : [],
939 "primitives" : []
940 },
941 {
942 "name" : "NoAction",
943 "id" : 5,
944 "runtime_data" : [],
945 "primitives" : []
946 },
947 {
948 "name" : "NoAction",
949 "id" : 6,
950 "runtime_data" : [],
951 "primitives" : []
952 },
953 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800954 "name" : "NoAction",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -0800955 "id" : 7,
Yi Tsengbe342052017-11-03 10:21:23 -0700956 "runtime_data" : [],
Yi Tseng27b9bc02018-04-12 14:52:40 +0800957 "primitives" : []
958 },
959 {
Esin Karaman971fb7f2017-12-28 13:44:52 +0000960 "name" : "NoAction",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200961 "id" : 8,
Yi Tseng20f9e7b2018-05-24 23:27:39 +0800962 "runtime_data" : [],
Esin Karaman971fb7f2017-12-28 13:44:52 +0000963 "primitives" : []
964 },
965 {
Yi Tseng47eac892018-07-11 02:17:04 +0800966 "name" : "FabricIngress.filtering.drop",
Carmelo Casconef645e842018-07-16 18:31:52 +0200967 "id" : 9,
Yi Tseng47eac892018-07-11 02:17:04 +0800968 "runtime_data" : [],
Yi Tseng1d842672017-11-28 16:06:52 -0800969 "primitives" : [
970 {
971 "op" : "drop",
972 "parameters" : [],
973 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +0200974 "filename" : "include/control/filtering.p4",
Yi Tseng47eac892018-07-11 02:17:04 +0800975 "line" : 37,
Yi Tseng1d842672017-11-28 16:06:52 -0800976 "column" : 8,
977 "source_fragment" : "mark_to_drop()"
978 }
979 }
980 ]
Yi Tsengbe342052017-11-03 10:21:23 -0700981 },
982 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800983 "name" : "FabricIngress.filtering.set_vlan",
Carmelo Casconef645e842018-07-16 18:31:52 +0200984 "id" : 10,
Yi Tsengbe342052017-11-03 10:21:23 -0700985 "runtime_data" : [
986 {
987 "name" : "new_vlan_id",
988 "bitwidth" : 12
989 }
990 ],
991 "primitives" : [
992 {
993 "op" : "assign",
994 "parameters" : [
995 {
996 "type" : "field",
997 "value" : ["vlan_tag", "vlan_id"]
998 },
999 {
1000 "type" : "runtime_data",
1001 "value" : 0
1002 }
1003 ],
1004 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001005 "filename" : "include/control/filtering.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001006 "line" : 42,
Yi Tsengbe342052017-11-03 10:21:23 -07001007 "column" : 8,
1008 "source_fragment" : "hdr.vlan_tag.vlan_id = new_vlan_id"
1009 }
1010 }
1011 ]
1012 },
1013 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001014 "name" : "FabricIngress.filtering.push_internal_vlan",
Carmelo Casconef645e842018-07-16 18:31:52 +02001015 "id" : 11,
Yi Tsengbe342052017-11-03 10:21:23 -07001016 "runtime_data" : [
1017 {
1018 "name" : "new_vlan_id",
1019 "bitwidth" : 12
1020 }
1021 ],
1022 "primitives" : [
1023 {
1024 "op" : "add_header",
1025 "parameters" : [
1026 {
1027 "type" : "header",
1028 "value" : "vlan_tag"
1029 }
1030 ],
1031 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001032 "filename" : "include/control/filtering.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001033 "line" : 49,
Yi Tsengbe342052017-11-03 10:21:23 -07001034 "column" : 8,
1035 "source_fragment" : "hdr.vlan_tag.setValid()"
1036 }
1037 },
1038 {
1039 "op" : "assign",
1040 "parameters" : [
1041 {
1042 "type" : "field",
1043 "value" : ["vlan_tag", "cfi"]
1044 },
1045 {
1046 "type" : "hexstr",
1047 "value" : "0x00"
1048 }
1049 ],
1050 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001051 "filename" : "include/control/filtering.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001052 "line" : 50,
Yi Tsengbe342052017-11-03 10:21:23 -07001053 "column" : 8,
1054 "source_fragment" : "hdr.vlan_tag.cfi = 0"
1055 }
1056 },
1057 {
1058 "op" : "assign",
1059 "parameters" : [
1060 {
1061 "type" : "field",
1062 "value" : ["vlan_tag", "pri"]
1063 },
1064 {
1065 "type" : "hexstr",
1066 "value" : "0x00"
1067 }
1068 ],
1069 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001070 "filename" : "include/control/filtering.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001071 "line" : 51,
Yi Tsengbe342052017-11-03 10:21:23 -07001072 "column" : 8,
1073 "source_fragment" : "hdr.vlan_tag.pri = 0"
1074 }
1075 },
1076 {
1077 "op" : "assign",
1078 "parameters" : [
1079 {
1080 "type" : "field",
1081 "value" : ["vlan_tag", "ether_type"]
1082 },
1083 {
Yi Tseng1d842672017-11-28 16:06:52 -08001084 "type" : "field",
1085 "value" : ["ethernet", "ether_type"]
1086 }
1087 ],
1088 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001089 "filename" : "include/control/filtering.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001090 "line" : 52,
Yi Tseng1d842672017-11-28 16:06:52 -08001091 "column" : 8,
1092 "source_fragment" : "hdr.vlan_tag.ether_type = hdr.ethernet.ether_type"
1093 }
1094 },
1095 {
1096 "op" : "assign",
1097 "parameters" : [
1098 {
1099 "type" : "field",
1100 "value" : ["ethernet", "ether_type"]
1101 },
1102 {
Yi Tsengbe342052017-11-03 10:21:23 -07001103 "type" : "hexstr",
1104 "value" : "0x8100"
1105 }
1106 ],
1107 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001108 "filename" : "include/control/../define.p4",
Carmelo Cascone228092b2018-06-15 20:41:10 +02001109 "line" : 66,
Yi Tsengbe342052017-11-03 10:21:23 -07001110 "column" : 31,
1111 "source_fragment" : "0x8100; ..."
1112 }
1113 },
1114 {
1115 "op" : "assign",
1116 "parameters" : [
1117 {
1118 "type" : "field",
1119 "value" : ["vlan_tag", "vlan_id"]
1120 },
1121 {
1122 "type" : "runtime_data",
1123 "value" : 0
1124 }
1125 ],
1126 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001127 "filename" : "include/control/filtering.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001128 "line" : 54,
Yi Tsengbe342052017-11-03 10:21:23 -07001129 "column" : 8,
Yi Tseng47eac892018-07-11 02:17:04 +08001130 "source_fragment" : "hdr.vlan_tag.vlan_id = new_vlan_id"
Yi Tsengbe342052017-11-03 10:21:23 -07001131 }
1132 },
1133 {
1134 "op" : "assign",
1135 "parameters" : [
1136 {
1137 "type" : "field",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001138 "value" : ["scalars", "fabric_metadata_t.pop_vlan_when_packet_in"]
Yi Tsengbe342052017-11-03 10:21:23 -07001139 },
1140 {
1141 "type" : "expression",
1142 "value" : {
1143 "type" : "expression",
1144 "value" : {
1145 "op" : "b2d",
1146 "left" : null,
1147 "right" : {
1148 "type" : "bool",
1149 "value" : true
1150 }
1151 }
1152 }
1153 }
1154 ],
1155 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001156 "filename" : "include/control/filtering.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001157 "line" : 57,
Yi Tsengbe342052017-11-03 10:21:23 -07001158 "column" : 8,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001159 "source_fragment" : "fabric_metadata.pop_vlan_when_packet_in = true"
Yi Tsengbe342052017-11-03 10:21:23 -07001160 }
1161 }
1162 ]
1163 },
1164 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001165 "name" : "FabricIngress.filtering.set_forwarding_type",
Carmelo Casconef645e842018-07-16 18:31:52 +02001166 "id" : 12,
Yi Tsengbe342052017-11-03 10:21:23 -07001167 "runtime_data" : [
1168 {
1169 "name" : "fwd_type",
1170 "bitwidth" : 3
1171 }
1172 ],
1173 "primitives" : [
1174 {
1175 "op" : "assign",
1176 "parameters" : [
1177 {
1178 "type" : "field",
1179 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
1180 },
1181 {
1182 "type" : "runtime_data",
1183 "value" : 0
1184 }
1185 ],
1186 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001187 "filename" : "include/control/filtering.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001188 "line" : 94,
Yi Tsengbe342052017-11-03 10:21:23 -07001189 "column" : 8,
1190 "source_fragment" : "fabric_metadata.fwd_type = fwd_type"
1191 }
1192 }
1193 ]
1194 },
1195 {
Yi Tseng47eac892018-07-11 02:17:04 +08001196 "name" : "FabricIngress.forwarding.set_next_id_bridging",
Carmelo Casconef645e842018-07-16 18:31:52 +02001197 "id" : 13,
1198 "runtime_data" : [
1199 {
1200 "name" : "next_id",
1201 "bitwidth" : 32
1202 }
1203 ],
1204 "primitives" : [
1205 {
1206 "op" : "assign",
1207 "parameters" : [
1208 {
1209 "type" : "field",
1210 "value" : ["scalars", "fabric_metadata_t.next_id"]
1211 },
1212 {
1213 "type" : "runtime_data",
1214 "value" : 0
1215 }
1216 ],
1217 "source_info" : {
1218 "filename" : "include/control/forwarding.p4",
1219 "line" : 37,
1220 "column" : 8,
1221 "source_fragment" : "fabric_metadata.next_id = next_id"
1222 }
1223 }
1224 ]
1225 },
1226 {
1227 "name" : "FabricIngress.forwarding.pop_mpls_and_next",
1228 "id" : 14,
1229 "runtime_data" : [
1230 {
1231 "name" : "next_id",
1232 "bitwidth" : 32
1233 }
1234 ],
1235 "primitives" : [
1236 {
1237 "op" : "remove_header",
1238 "parameters" : [
1239 {
1240 "type" : "header",
1241 "value" : "mpls"
1242 }
1243 ],
1244 "source_info" : {
1245 "filename" : "include/control/forwarding.p4",
1246 "line" : 60,
1247 "column" : 8,
1248 "source_fragment" : "hdr.mpls.setInvalid()"
1249 }
1250 },
1251 {
1252 "op" : "assign",
1253 "parameters" : [
1254 {
1255 "type" : "field",
1256 "value" : ["scalars", "fabric_metadata_t.next_id"]
1257 },
1258 {
1259 "type" : "runtime_data",
1260 "value" : 0
1261 }
1262 ],
1263 "source_info" : {
1264 "filename" : "include/control/forwarding.p4",
1265 "line" : 61,
1266 "column" : 8,
1267 "source_fragment" : "fabric_metadata.next_id = next_id"
1268 }
1269 }
1270 ]
1271 },
1272 {
1273 "name" : "FabricIngress.forwarding.set_next_id_unicast_v4",
1274 "id" : 15,
1275 "runtime_data" : [
1276 {
1277 "name" : "next_id",
1278 "bitwidth" : 32
1279 }
1280 ],
1281 "primitives" : [
1282 {
1283 "op" : "assign",
1284 "parameters" : [
1285 {
1286 "type" : "field",
1287 "value" : ["scalars", "fabric_metadata_t.next_id"]
1288 },
1289 {
1290 "type" : "runtime_data",
1291 "value" : 0
1292 }
1293 ],
1294 "source_info" : {
1295 "filename" : "include/control/forwarding.p4",
1296 "line" : 83,
1297 "column" : 8,
1298 "source_fragment" : "fabric_metadata.next_id = next_id"
1299 }
1300 }
1301 ]
1302 },
1303 {
1304 "name" : "FabricIngress.forwarding.set_next_id_acl",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001305 "id" : 16,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001306 "runtime_data" : [
1307 {
1308 "name" : "next_id",
1309 "bitwidth" : 32
1310 }
1311 ],
1312 "primitives" : [
1313 {
Esin Karaman971fb7f2017-12-28 13:44:52 +00001314 "op" : "assign",
1315 "parameters" : [
1316 {
1317 "type" : "field",
1318 "value" : ["scalars", "fabric_metadata_t.next_id"]
1319 },
1320 {
1321 "type" : "runtime_data",
1322 "value" : 0
1323 }
1324 ],
1325 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001326 "filename" : "include/control/forwarding.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001327 "line" : 105,
1328 "column" : 8,
1329 "source_fragment" : "fabric_metadata.next_id = next_id"
1330 }
1331 }
1332 ]
1333 },
1334 {
1335 "name" : "FabricIngress.forwarding.send_to_controller",
Carmelo Casconef645e842018-07-16 18:31:52 +02001336 "id" : 17,
Yi Tsengbe342052017-11-03 10:21:23 -07001337 "runtime_data" : [],
1338 "primitives" : [
1339 {
1340 "op" : "assign",
1341 "parameters" : [
1342 {
1343 "type" : "field",
Yi Tsengbe342052017-11-03 10:21:23 -07001344 "value" : ["standard_metadata", "egress_spec"]
1345 },
1346 {
1347 "type" : "hexstr",
1348 "value" : "0x00ff"
1349 }
1350 ],
1351 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001352 "filename" : "include/control/forwarding.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001353 "line" : 110,
Carmelo Casconeb531b682018-01-30 17:55:56 -08001354 "column" : 8,
1355 "source_fragment" : "standard_metadata.egress_spec = 255"
Yi Tsengbe342052017-11-03 10:21:23 -07001356 }
1357 }
1358 ]
1359 },
1360 {
Yi Tseng47eac892018-07-11 02:17:04 +08001361 "name" : "FabricIngress.forwarding.drop",
Carmelo Casconef645e842018-07-16 18:31:52 +02001362 "id" : 18,
Yi Tseng47eac892018-07-11 02:17:04 +08001363 "runtime_data" : [],
1364 "primitives" : [
1365 {
1366 "op" : "drop",
1367 "parameters" : [],
1368 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001369 "filename" : "include/control/forwarding.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001370 "line" : 115,
1371 "column" : 8,
1372 "source_fragment" : "mark_to_drop()"
1373 }
1374 }
1375 ]
1376 },
1377 {
Yi Tseng47eac892018-07-11 02:17:04 +08001378 "name" : "FabricIngress.next.set_vlan",
Carmelo Casconef645e842018-07-16 18:31:52 +02001379 "id" : 19,
Yi Tseng47eac892018-07-11 02:17:04 +08001380 "runtime_data" : [
1381 {
1382 "name" : "new_vlan_id",
1383 "bitwidth" : 12
1384 }
1385 ],
1386 "primitives" : [
1387 {
1388 "op" : "assign",
1389 "parameters" : [
1390 {
1391 "type" : "field",
1392 "value" : ["vlan_tag", "vlan_id"]
1393 },
1394 {
1395 "type" : "runtime_data",
1396 "value" : 0
1397 }
1398 ],
1399 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001400 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001401 "line" : 61,
1402 "column" : 8,
1403 "source_fragment" : "hdr.vlan_tag.vlan_id = new_vlan_id"
1404 }
1405 }
1406 ]
1407 },
1408 {
1409 "name" : "FabricIngress.next.output_simple",
Carmelo Casconef645e842018-07-16 18:31:52 +02001410 "id" : 20,
Yi Tsengbe342052017-11-03 10:21:23 -07001411 "runtime_data" : [
1412 {
1413 "name" : "port_num",
1414 "bitwidth" : 9
1415 }
1416 ],
1417 "primitives" : [
1418 {
1419 "op" : "assign",
1420 "parameters" : [
1421 {
1422 "type" : "field",
1423 "value" : ["standard_metadata", "egress_spec"]
1424 },
1425 {
1426 "type" : "runtime_data",
1427 "value" : 0
1428 }
1429 ],
1430 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001431 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001432 "line" : 85,
Yi Tsengbe342052017-11-03 10:21:23 -07001433 "column" : 8,
1434 "source_fragment" : "standard_metadata.egress_spec = port_num"
1435 }
Yi Tsengbe342052017-11-03 10:21:23 -07001436 }
1437 ]
1438 },
1439 {
Yi Tseng47eac892018-07-11 02:17:04 +08001440 "name" : "FabricIngress.next.set_vlan_output",
Carmelo Casconef645e842018-07-16 18:31:52 +02001441 "id" : 21,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001442 "runtime_data" : [
1443 {
1444 "name" : "new_vlan_id",
1445 "bitwidth" : 12
Yi Tseng47eac892018-07-11 02:17:04 +08001446 },
1447 {
1448 "name" : "port_num",
1449 "bitwidth" : 9
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001450 }
1451 ],
1452 "primitives" : [
1453 {
1454 "op" : "assign",
1455 "parameters" : [
1456 {
1457 "type" : "field",
1458 "value" : ["vlan_tag", "vlan_id"]
1459 },
1460 {
1461 "type" : "runtime_data",
1462 "value" : 0
1463 }
1464 ],
1465 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001466 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001467 "line" : 90,
1468 "column" : 8,
1469 "source_fragment" : "hdr.vlan_tag.vlan_id = new_vlan_id"
1470 }
1471 },
1472 {
1473 "op" : "assign",
1474 "parameters" : [
1475 {
1476 "type" : "field",
1477 "value" : ["standard_metadata", "egress_spec"]
1478 },
1479 {
1480 "type" : "runtime_data",
1481 "value" : 1
1482 }
1483 ],
1484 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001485 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001486 "line" : 85,
1487 "column" : 8,
1488 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
1489 }
1490 }
1491 ]
1492 },
1493 {
1494 "name" : "FabricIngress.next.l3_routing_simple",
Carmelo Casconef645e842018-07-16 18:31:52 +02001495 "id" : 22,
Yi Tseng47eac892018-07-11 02:17:04 +08001496 "runtime_data" : [
1497 {
1498 "name" : "port_num",
1499 "bitwidth" : 9
1500 },
1501 {
1502 "name" : "smac",
1503 "bitwidth" : 48
1504 },
1505 {
1506 "name" : "dmac",
1507 "bitwidth" : 48
1508 }
1509 ],
1510 "primitives" : [
1511 {
1512 "op" : "assign",
1513 "parameters" : [
1514 {
1515 "type" : "field",
1516 "value" : ["ethernet", "src_addr"]
1517 },
1518 {
1519 "type" : "runtime_data",
1520 "value" : 1
1521 }
1522 ],
1523 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001524 "filename" : "include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001525 "line" : 37,
1526 "column" : 8,
Yi Tseng47eac892018-07-11 02:17:04 +08001527 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
1528 }
1529 },
1530 {
1531 "op" : "assign",
1532 "parameters" : [
1533 {
1534 "type" : "field",
1535 "value" : ["ethernet", "dst_addr"]
1536 },
1537 {
1538 "type" : "runtime_data",
1539 "value" : 2
1540 }
1541 ],
1542 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001543 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001544 "line" : 41,
1545 "column" : 8,
1546 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
1547 }
1548 },
1549 {
1550 "op" : "assign",
1551 "parameters" : [
1552 {
1553 "type" : "field",
1554 "value" : ["standard_metadata", "egress_spec"]
1555 },
1556 {
1557 "type" : "runtime_data",
1558 "value" : 0
1559 }
1560 ],
1561 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001562 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001563 "line" : 85,
1564 "column" : 8,
1565 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001566 }
1567 }
1568 ]
1569 },
1570 {
Yi Tseng47eac892018-07-11 02:17:04 +08001571 "name" : "FabricIngress.next.mpls_routing_v4_simple",
Carmelo Casconef645e842018-07-16 18:31:52 +02001572 "id" : 23,
Yi Tsengbe342052017-11-03 10:21:23 -07001573 "runtime_data" : [
1574 {
Yi Tsengbe342052017-11-03 10:21:23 -07001575 "name" : "port_num",
1576 "bitwidth" : 9
Yi Tseng47eac892018-07-11 02:17:04 +08001577 },
1578 {
1579 "name" : "smac",
1580 "bitwidth" : 48
1581 },
1582 {
1583 "name" : "dmac",
1584 "bitwidth" : 48
1585 },
1586 {
1587 "name" : "label",
1588 "bitwidth" : 20
Yi Tsengbe342052017-11-03 10:21:23 -07001589 }
1590 ],
1591 "primitives" : [
1592 {
1593 "op" : "assign",
1594 "parameters" : [
1595 {
1596 "type" : "field",
Yi Tseng47eac892018-07-11 02:17:04 +08001597 "value" : ["ethernet", "src_addr"]
1598 },
1599 {
1600 "type" : "runtime_data",
1601 "value" : 1
1602 }
1603 ],
1604 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001605 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001606 "line" : 37,
1607 "column" : 8,
1608 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
1609 }
1610 },
1611 {
1612 "op" : "assign",
1613 "parameters" : [
1614 {
1615 "type" : "field",
1616 "value" : ["ethernet", "dst_addr"]
1617 },
1618 {
1619 "type" : "runtime_data",
1620 "value" : 2
1621 }
1622 ],
1623 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001624 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001625 "line" : 41,
1626 "column" : 8,
1627 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
1628 }
1629 },
1630 {
1631 "op" : "assign",
1632 "parameters" : [
1633 {
1634 "type" : "field",
1635 "value" : ["standard_metadata", "egress_spec"]
Yi Tsengbe342052017-11-03 10:21:23 -07001636 },
1637 {
1638 "type" : "runtime_data",
1639 "value" : 0
1640 }
1641 ],
1642 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001643 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001644 "line" : 85,
1645 "column" : 8,
1646 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
1647 }
1648 },
1649 {
1650 "op" : "add_header",
1651 "parameters" : [
1652 {
1653 "type" : "header",
1654 "value" : "mpls"
1655 }
1656 ],
1657 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001658 "filename" : "include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001659 "line" : 46,
Yi Tsengbe342052017-11-03 10:21:23 -07001660 "column" : 8,
Yi Tseng47eac892018-07-11 02:17:04 +08001661 "source_fragment" : "hdr.mpls.setValid()"
Yi Tsengbe342052017-11-03 10:21:23 -07001662 }
1663 },
1664 {
1665 "op" : "assign",
1666 "parameters" : [
1667 {
1668 "type" : "field",
Yi Tseng47eac892018-07-11 02:17:04 +08001669 "value" : ["vlan_tag", "ether_type"]
Yi Tsengbe342052017-11-03 10:21:23 -07001670 },
1671 {
Yi Tseng47eac892018-07-11 02:17:04 +08001672 "type" : "hexstr",
1673 "value" : "0x8847"
Yi Tsengbe342052017-11-03 10:21:23 -07001674 }
1675 ],
1676 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001677 "filename" : "include/control/../define.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001678 "line" : 67,
1679 "column" : 31,
1680 "source_fragment" : "0x8847; ..."
1681 }
1682 },
1683 {
1684 "op" : "assign",
1685 "parameters" : [
1686 {
1687 "type" : "field",
1688 "value" : ["mpls", "label"]
1689 },
1690 {
1691 "type" : "runtime_data",
1692 "value" : 3
1693 }
1694 ],
1695 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001696 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001697 "line" : 48,
Yi Tsengbe342052017-11-03 10:21:23 -07001698 "column" : 8,
Yi Tseng47eac892018-07-11 02:17:04 +08001699 "source_fragment" : "hdr.mpls.label = label; ..."
1700 }
1701 },
1702 {
1703 "op" : "assign",
1704 "parameters" : [
1705 {
1706 "type" : "field",
1707 "value" : ["mpls", "tc"]
1708 },
1709 {
1710 "type" : "hexstr",
1711 "value" : "0x00"
1712 }
1713 ],
1714 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001715 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001716 "line" : 49,
1717 "column" : 8,
1718 "source_fragment" : "hdr.mpls.tc = tc; ..."
1719 }
1720 },
1721 {
1722 "op" : "assign",
1723 "parameters" : [
1724 {
1725 "type" : "field",
1726 "value" : ["mpls", "bos"]
1727 },
1728 {
1729 "type" : "hexstr",
1730 "value" : "0x01"
1731 }
1732 ],
1733 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001734 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001735 "line" : 50,
1736 "column" : 8,
1737 "source_fragment" : "hdr.mpls.bos = 1w1"
1738 }
1739 },
1740 {
1741 "op" : "assign",
1742 "parameters" : [
1743 {
1744 "type" : "field",
1745 "value" : ["mpls", "ttl"]
1746 },
1747 {
1748 "type" : "hexstr",
1749 "value" : "0x40"
1750 }
1751 ],
1752 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001753 "filename" : "include/control/../define.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001754 "line" : 87,
1755 "column" : 32,
1756 "source_fragment" : "64; ..."
Yi Tsengbe342052017-11-03 10:21:23 -07001757 }
Yi Tsengbe342052017-11-03 10:21:23 -07001758 }
1759 ]
1760 },
1761 {
Yi Tseng47eac892018-07-11 02:17:04 +08001762 "name" : "FabricIngress.next.mpls_routing_v6_simple",
Carmelo Casconef645e842018-07-16 18:31:52 +02001763 "id" : 24,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001764 "runtime_data" : [
1765 {
1766 "name" : "port_num",
1767 "bitwidth" : 9
1768 },
1769 {
1770 "name" : "smac",
1771 "bitwidth" : 48
1772 },
1773 {
1774 "name" : "dmac",
1775 "bitwidth" : 48
Yi Tseng47eac892018-07-11 02:17:04 +08001776 },
1777 {
1778 "name" : "label",
1779 "bitwidth" : 20
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001780 }
1781 ],
1782 "primitives" : [
1783 {
1784 "op" : "assign",
1785 "parameters" : [
1786 {
1787 "type" : "field",
1788 "value" : ["ethernet", "src_addr"]
1789 },
1790 {
1791 "type" : "runtime_data",
1792 "value" : 1
1793 }
1794 ],
1795 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001796 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001797 "line" : 37,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001798 "column" : 8,
1799 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
1800 }
1801 },
1802 {
1803 "op" : "assign",
1804 "parameters" : [
1805 {
1806 "type" : "field",
1807 "value" : ["ethernet", "dst_addr"]
1808 },
1809 {
1810 "type" : "runtime_data",
1811 "value" : 2
1812 }
1813 ],
1814 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001815 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001816 "line" : 41,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001817 "column" : 8,
1818 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
1819 }
1820 },
1821 {
1822 "op" : "assign",
1823 "parameters" : [
1824 {
1825 "type" : "field",
1826 "value" : ["standard_metadata", "egress_spec"]
1827 },
1828 {
1829 "type" : "runtime_data",
1830 "value" : 0
1831 }
1832 ],
1833 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001834 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001835 "line" : 85,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001836 "column" : 8,
1837 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
1838 }
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001839 },
1840 {
Yi Tseng47eac892018-07-11 02:17:04 +08001841 "op" : "add_header",
Esin Karaman971fb7f2017-12-28 13:44:52 +00001842 "parameters" : [
1843 {
Yi Tseng47eac892018-07-11 02:17:04 +08001844 "type" : "header",
1845 "value" : "mpls"
Esin Karaman971fb7f2017-12-28 13:44:52 +00001846 }
1847 ],
1848 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001849 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001850 "line" : 46,
Esin Karaman971fb7f2017-12-28 13:44:52 +00001851 "column" : 8,
Yi Tseng47eac892018-07-11 02:17:04 +08001852 "source_fragment" : "hdr.mpls.setValid()"
Esin Karaman971fb7f2017-12-28 13:44:52 +00001853 }
1854 },
1855 {
1856 "op" : "assign",
1857 "parameters" : [
1858 {
1859 "type" : "field",
Yi Tseng47eac892018-07-11 02:17:04 +08001860 "value" : ["vlan_tag", "ether_type"]
Esin Karaman971fb7f2017-12-28 13:44:52 +00001861 },
1862 {
Yi Tseng47eac892018-07-11 02:17:04 +08001863 "type" : "hexstr",
1864 "value" : "0x8847"
Esin Karaman971fb7f2017-12-28 13:44:52 +00001865 }
1866 ],
1867 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001868 "filename" : "include/control/../define.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001869 "line" : 67,
1870 "column" : 31,
1871 "source_fragment" : "0x8847; ..."
Esin Karaman971fb7f2017-12-28 13:44:52 +00001872 }
1873 },
1874 {
1875 "op" : "assign",
1876 "parameters" : [
1877 {
1878 "type" : "field",
Yi Tseng47eac892018-07-11 02:17:04 +08001879 "value" : ["mpls", "label"]
Esin Karaman971fb7f2017-12-28 13:44:52 +00001880 },
1881 {
1882 "type" : "runtime_data",
Yi Tseng47eac892018-07-11 02:17:04 +08001883 "value" : 3
Esin Karaman971fb7f2017-12-28 13:44:52 +00001884 }
1885 ],
1886 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001887 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001888 "line" : 48,
Esin Karaman971fb7f2017-12-28 13:44:52 +00001889 "column" : 8,
Yi Tseng47eac892018-07-11 02:17:04 +08001890 "source_fragment" : "hdr.mpls.label = label; ..."
1891 }
1892 },
1893 {
1894 "op" : "assign",
1895 "parameters" : [
1896 {
1897 "type" : "field",
1898 "value" : ["mpls", "tc"]
1899 },
1900 {
1901 "type" : "hexstr",
1902 "value" : "0x00"
1903 }
1904 ],
1905 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001906 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001907 "line" : 49,
1908 "column" : 8,
1909 "source_fragment" : "hdr.mpls.tc = tc; ..."
1910 }
1911 },
1912 {
1913 "op" : "assign",
1914 "parameters" : [
1915 {
1916 "type" : "field",
1917 "value" : ["mpls", "bos"]
1918 },
1919 {
1920 "type" : "hexstr",
1921 "value" : "0x01"
1922 }
1923 ],
1924 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001925 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001926 "line" : 50,
1927 "column" : 8,
1928 "source_fragment" : "hdr.mpls.bos = 1w1"
1929 }
1930 },
1931 {
1932 "op" : "assign",
1933 "parameters" : [
1934 {
1935 "type" : "field",
1936 "value" : ["mpls", "ttl"]
1937 },
1938 {
1939 "type" : "hexstr",
1940 "value" : "0x40"
1941 }
1942 ],
1943 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001944 "filename" : "include/control/../define.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001945 "line" : 87,
1946 "column" : 32,
1947 "source_fragment" : "64; ..."
Esin Karaman971fb7f2017-12-28 13:44:52 +00001948 }
1949 }
1950 ]
1951 },
1952 {
1953 "name" : "FabricIngress.next.l3_routing_vlan",
Carmelo Casconef645e842018-07-16 18:31:52 +02001954 "id" : 25,
Esin Karaman971fb7f2017-12-28 13:44:52 +00001955 "runtime_data" : [
1956 {
1957 "name" : "port_num",
1958 "bitwidth" : 9
1959 },
1960 {
1961 "name" : "smac",
1962 "bitwidth" : 48
1963 },
1964 {
1965 "name" : "dmac",
1966 "bitwidth" : 48
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001967 },
1968 {
1969 "name" : "new_vlan_id",
1970 "bitwidth" : 12
1971 }
1972 ],
1973 "primitives" : [
1974 {
1975 "op" : "assign",
1976 "parameters" : [
1977 {
1978 "type" : "field",
1979 "value" : ["ethernet", "src_addr"]
1980 },
1981 {
1982 "type" : "runtime_data",
1983 "value" : 1
1984 }
1985 ],
1986 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001987 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001988 "line" : 37,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001989 "column" : 8,
1990 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
1991 }
1992 },
1993 {
1994 "op" : "assign",
1995 "parameters" : [
1996 {
1997 "type" : "field",
1998 "value" : ["ethernet", "dst_addr"]
1999 },
2000 {
2001 "type" : "runtime_data",
2002 "value" : 2
2003 }
2004 ],
2005 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002006 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002007 "line" : 41,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002008 "column" : 8,
2009 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2010 }
2011 },
2012 {
2013 "op" : "assign",
2014 "parameters" : [
2015 {
2016 "type" : "field",
2017 "value" : ["vlan_tag", "vlan_id"]
2018 },
2019 {
2020 "type" : "runtime_data",
2021 "value" : 3
2022 }
2023 ],
2024 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002025 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002026 "line" : 90,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002027 "column" : 8,
2028 "source_fragment" : "hdr.vlan_tag.vlan_id = new_vlan_id; ..."
2029 }
2030 },
2031 {
2032 "op" : "assign",
2033 "parameters" : [
2034 {
2035 "type" : "field",
2036 "value" : ["standard_metadata", "egress_spec"]
2037 },
2038 {
2039 "type" : "runtime_data",
2040 "value" : 0
2041 }
2042 ],
2043 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002044 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002045 "line" : 85,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002046 "column" : 8,
2047 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2048 }
2049 }
2050 ]
2051 },
2052 {
Yi Tseng47eac892018-07-11 02:17:04 +08002053 "name" : "FabricIngress.next.l3_routing_hashed",
Carmelo Casconef645e842018-07-16 18:31:52 +02002054 "id" : 26,
Yi Tseng47eac892018-07-11 02:17:04 +08002055 "runtime_data" : [
2056 {
2057 "name" : "port_num",
2058 "bitwidth" : 9
2059 },
2060 {
2061 "name" : "smac",
2062 "bitwidth" : 48
2063 },
2064 {
2065 "name" : "dmac",
2066 "bitwidth" : 48
2067 }
2068 ],
2069 "primitives" : [
2070 {
2071 "op" : "assign",
2072 "parameters" : [
2073 {
2074 "type" : "field",
2075 "value" : ["ethernet", "src_addr"]
2076 },
2077 {
2078 "type" : "runtime_data",
2079 "value" : 1
2080 }
2081 ],
2082 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002083 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002084 "line" : 37,
2085 "column" : 8,
2086 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2087 }
2088 },
2089 {
2090 "op" : "assign",
2091 "parameters" : [
2092 {
2093 "type" : "field",
2094 "value" : ["ethernet", "dst_addr"]
2095 },
2096 {
2097 "type" : "runtime_data",
2098 "value" : 2
2099 }
2100 ],
2101 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002102 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002103 "line" : 41,
2104 "column" : 8,
2105 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2106 }
2107 },
2108 {
2109 "op" : "assign",
2110 "parameters" : [
2111 {
2112 "type" : "field",
2113 "value" : ["standard_metadata", "egress_spec"]
2114 },
2115 {
2116 "type" : "runtime_data",
2117 "value" : 0
2118 }
2119 ],
2120 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002121 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002122 "line" : 149,
2123 "column" : 8,
2124 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2125 }
2126 }
2127 ]
2128 },
2129 {
2130 "name" : "FabricIngress.next.mpls_routing_v4_hashed",
Carmelo Casconef645e842018-07-16 18:31:52 +02002131 "id" : 27,
Yi Tsengbe342052017-11-03 10:21:23 -07002132 "runtime_data" : [
2133 {
2134 "name" : "port_num",
2135 "bitwidth" : 9
2136 },
2137 {
2138 "name" : "smac",
2139 "bitwidth" : 48
2140 },
2141 {
2142 "name" : "dmac",
2143 "bitwidth" : 48
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002144 },
2145 {
2146 "name" : "label",
2147 "bitwidth" : 20
Yi Tsengbe342052017-11-03 10:21:23 -07002148 }
2149 ],
2150 "primitives" : [
2151 {
2152 "op" : "assign",
2153 "parameters" : [
2154 {
2155 "type" : "field",
2156 "value" : ["ethernet", "src_addr"]
2157 },
2158 {
2159 "type" : "runtime_data",
2160 "value" : 1
2161 }
2162 ],
2163 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002164 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002165 "line" : 37,
Yi Tsengbe342052017-11-03 10:21:23 -07002166 "column" : 8,
2167 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2168 }
2169 },
2170 {
2171 "op" : "assign",
2172 "parameters" : [
2173 {
2174 "type" : "field",
2175 "value" : ["ethernet", "dst_addr"]
2176 },
2177 {
2178 "type" : "runtime_data",
2179 "value" : 2
2180 }
2181 ],
2182 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002183 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002184 "line" : 41,
Yi Tsengbe342052017-11-03 10:21:23 -07002185 "column" : 8,
2186 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2187 }
2188 },
2189 {
2190 "op" : "assign",
2191 "parameters" : [
2192 {
2193 "type" : "field",
2194 "value" : ["standard_metadata", "egress_spec"]
2195 },
2196 {
2197 "type" : "runtime_data",
2198 "value" : 0
2199 }
2200 ],
2201 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002202 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002203 "line" : 149,
Yi Tsengbe342052017-11-03 10:21:23 -07002204 "column" : 8,
2205 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2206 }
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002207 },
2208 {
2209 "op" : "add_header",
2210 "parameters" : [
2211 {
2212 "type" : "header",
2213 "value" : "mpls"
2214 }
2215 ],
2216 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002217 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002218 "line" : 46,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002219 "column" : 8,
2220 "source_fragment" : "hdr.mpls.setValid()"
2221 }
2222 },
2223 {
2224 "op" : "assign",
2225 "parameters" : [
2226 {
2227 "type" : "field",
2228 "value" : ["vlan_tag", "ether_type"]
2229 },
2230 {
2231 "type" : "hexstr",
2232 "value" : "0x8847"
2233 }
2234 ],
2235 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002236 "filename" : "include/control/../define.p4",
Carmelo Cascone228092b2018-06-15 20:41:10 +02002237 "line" : 67,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002238 "column" : 31,
2239 "source_fragment" : "0x8847; ..."
2240 }
2241 },
2242 {
2243 "op" : "assign",
2244 "parameters" : [
2245 {
2246 "type" : "field",
2247 "value" : ["mpls", "label"]
2248 },
2249 {
2250 "type" : "runtime_data",
2251 "value" : 3
2252 }
2253 ],
2254 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002255 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002256 "line" : 48,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002257 "column" : 8,
2258 "source_fragment" : "hdr.mpls.label = label; ..."
2259 }
2260 },
2261 {
2262 "op" : "assign",
2263 "parameters" : [
2264 {
2265 "type" : "field",
2266 "value" : ["mpls", "tc"]
2267 },
2268 {
2269 "type" : "hexstr",
2270 "value" : "0x00"
2271 }
2272 ],
2273 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002274 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002275 "line" : 49,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002276 "column" : 8,
2277 "source_fragment" : "hdr.mpls.tc = tc; ..."
2278 }
2279 },
2280 {
2281 "op" : "assign",
2282 "parameters" : [
2283 {
2284 "type" : "field",
2285 "value" : ["mpls", "bos"]
2286 },
2287 {
2288 "type" : "hexstr",
2289 "value" : "0x01"
2290 }
2291 ],
2292 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002293 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002294 "line" : 50,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002295 "column" : 8,
2296 "source_fragment" : "hdr.mpls.bos = 1w1"
2297 }
2298 },
2299 {
2300 "op" : "assign",
2301 "parameters" : [
2302 {
2303 "type" : "field",
2304 "value" : ["mpls", "ttl"]
2305 },
2306 {
2307 "type" : "hexstr",
2308 "value" : "0x40"
2309 }
2310 ],
2311 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002312 "filename" : "include/control/../define.p4",
Carmelo Cascone228092b2018-06-15 20:41:10 +02002313 "line" : 87,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002314 "column" : 32,
2315 "source_fragment" : "64; ..."
2316 }
Yi Tsengbe342052017-11-03 10:21:23 -07002317 }
2318 ]
2319 },
2320 {
Yi Tseng47eac892018-07-11 02:17:04 +08002321 "name" : "FabricIngress.next.mpls_routing_v6_hashed",
Carmelo Casconef645e842018-07-16 18:31:52 +02002322 "id" : 28,
Yi Tsengbe342052017-11-03 10:21:23 -07002323 "runtime_data" : [
2324 {
2325 "name" : "port_num",
2326 "bitwidth" : 9
2327 },
2328 {
2329 "name" : "smac",
2330 "bitwidth" : 48
2331 },
2332 {
2333 "name" : "dmac",
2334 "bitwidth" : 48
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002335 },
2336 {
2337 "name" : "label",
2338 "bitwidth" : 20
Yi Tsengbe342052017-11-03 10:21:23 -07002339 }
2340 ],
2341 "primitives" : [
2342 {
2343 "op" : "assign",
2344 "parameters" : [
2345 {
2346 "type" : "field",
2347 "value" : ["ethernet", "src_addr"]
2348 },
2349 {
2350 "type" : "runtime_data",
2351 "value" : 1
2352 }
2353 ],
2354 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002355 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002356 "line" : 37,
Yi Tsengbe342052017-11-03 10:21:23 -07002357 "column" : 8,
2358 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2359 }
2360 },
2361 {
2362 "op" : "assign",
2363 "parameters" : [
2364 {
2365 "type" : "field",
2366 "value" : ["ethernet", "dst_addr"]
2367 },
2368 {
2369 "type" : "runtime_data",
2370 "value" : 2
2371 }
2372 ],
2373 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002374 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002375 "line" : 41,
Yi Tsengbe342052017-11-03 10:21:23 -07002376 "column" : 8,
2377 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2378 }
2379 },
2380 {
2381 "op" : "assign",
2382 "parameters" : [
2383 {
2384 "type" : "field",
2385 "value" : ["standard_metadata", "egress_spec"]
2386 },
2387 {
2388 "type" : "runtime_data",
2389 "value" : 0
2390 }
2391 ],
2392 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002393 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002394 "line" : 149,
Yi Tsengbe342052017-11-03 10:21:23 -07002395 "column" : 8,
2396 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2397 }
Yi Tsengbe342052017-11-03 10:21:23 -07002398 },
2399 {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002400 "op" : "add_header",
Yi Tsengbe342052017-11-03 10:21:23 -07002401 "parameters" : [
2402 {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08002403 "type" : "header",
2404 "value" : "mpls"
Yi Tsengbe342052017-11-03 10:21:23 -07002405 }
2406 ],
2407 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002408 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002409 "line" : 46,
Yi Tsengbe342052017-11-03 10:21:23 -07002410 "column" : 8,
Yi Tseng1b154bd2017-11-20 17:48:19 -08002411 "source_fragment" : "hdr.mpls.setValid()"
2412 }
2413 },
2414 {
2415 "op" : "assign",
2416 "parameters" : [
2417 {
2418 "type" : "field",
Yi Tsengbd46d052018-01-22 17:18:16 -08002419 "value" : ["vlan_tag", "ether_type"]
Yi Tseng1b154bd2017-11-20 17:48:19 -08002420 },
2421 {
2422 "type" : "hexstr",
2423 "value" : "0x8847"
2424 }
2425 ],
2426 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002427 "filename" : "include/control/../define.p4",
Carmelo Cascone228092b2018-06-15 20:41:10 +02002428 "line" : 67,
Yi Tseng1b154bd2017-11-20 17:48:19 -08002429 "column" : 31,
2430 "source_fragment" : "0x8847; ..."
2431 }
2432 },
2433 {
2434 "op" : "assign",
2435 "parameters" : [
2436 {
2437 "type" : "field",
2438 "value" : ["mpls", "label"]
2439 },
2440 {
2441 "type" : "runtime_data",
2442 "value" : 3
2443 }
2444 ],
2445 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002446 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002447 "line" : 48,
Yi Tseng1b154bd2017-11-20 17:48:19 -08002448 "column" : 8,
2449 "source_fragment" : "hdr.mpls.label = label; ..."
2450 }
2451 },
2452 {
2453 "op" : "assign",
2454 "parameters" : [
2455 {
2456 "type" : "field",
2457 "value" : ["mpls", "tc"]
2458 },
2459 {
Yi Tseng1d842672017-11-28 16:06:52 -08002460 "type" : "hexstr",
2461 "value" : "0x00"
Yi Tseng1b154bd2017-11-20 17:48:19 -08002462 }
2463 ],
2464 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002465 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002466 "line" : 49,
Yi Tseng1b154bd2017-11-20 17:48:19 -08002467 "column" : 8,
2468 "source_fragment" : "hdr.mpls.tc = tc; ..."
2469 }
2470 },
2471 {
2472 "op" : "assign",
2473 "parameters" : [
2474 {
2475 "type" : "field",
2476 "value" : ["mpls", "bos"]
2477 },
2478 {
2479 "type" : "hexstr",
2480 "value" : "0x01"
2481 }
2482 ],
2483 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002484 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002485 "line" : 50,
Yi Tseng1b154bd2017-11-20 17:48:19 -08002486 "column" : 8,
Yi Tseng1d842672017-11-28 16:06:52 -08002487 "source_fragment" : "hdr.mpls.bos = 1w1"
Yi Tseng1b154bd2017-11-20 17:48:19 -08002488 }
2489 },
2490 {
2491 "op" : "assign",
2492 "parameters" : [
2493 {
2494 "type" : "field",
2495 "value" : ["mpls", "ttl"]
2496 },
2497 {
2498 "type" : "hexstr",
2499 "value" : "0x40"
2500 }
2501 ],
2502 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002503 "filename" : "include/control/../define.p4",
Esin Karaman971fb7f2017-12-28 13:44:52 +00002504 "line" : 87,
2505 "column" : 32,
2506 "source_fragment" : "64; ..."
2507 }
2508 }
2509 ]
2510 },
2511 {
2512 "name" : "FabricIngress.next.set_mcast_group",
Carmelo Casconef645e842018-07-16 18:31:52 +02002513 "id" : 29,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002514 "runtime_data" : [
2515 {
2516 "name" : "gid",
2517 "bitwidth" : 16
2518 }
2519 ],
2520 "primitives" : [
2521 {
2522 "op" : "assign",
2523 "parameters" : [
2524 {
2525 "type" : "field",
2526 "value" : ["standard_metadata", "mcast_grp"]
2527 },
2528 {
2529 "type" : "runtime_data",
2530 "value" : 0
2531 }
2532 ],
2533 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002534 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002535 "line" : 202,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002536 "column" : 8,
2537 "source_fragment" : "standard_metadata.mcast_grp = gid"
2538 }
2539 }
2540 ]
2541 },
2542 {
2543 "name" : "act",
Carmelo Casconef645e842018-07-16 18:31:52 +02002544 "id" : 30,
Yi Tsengbe342052017-11-03 10:21:23 -07002545 "runtime_data" : [],
2546 "primitives" : [
2547 {
2548 "op" : "assign",
2549 "parameters" : [
2550 {
2551 "type" : "field",
2552 "value" : ["standard_metadata", "egress_spec"]
2553 },
2554 {
2555 "type" : "field",
2556 "value" : ["packet_out", "egress_port"]
2557 }
2558 ],
2559 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002560 "filename" : "include/control/packetio.p4",
Yi Tsengbe342052017-11-03 10:21:23 -07002561 "line" : 26,
2562 "column" : 12,
2563 "source_fragment" : "standard_metadata.egress_spec = hdr.packet_out.egress_port"
2564 }
Yi Tseng1d842672017-11-28 16:06:52 -08002565 },
2566 {
2567 "op" : "remove_header",
2568 "parameters" : [
2569 {
2570 "type" : "header",
2571 "value" : "packet_out"
2572 }
2573 ],
2574 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002575 "filename" : "include/control/packetio.p4",
Yi Tseng1d842672017-11-28 16:06:52 -08002576 "line" : 27,
2577 "column" : 12,
2578 "source_fragment" : "hdr.packet_out.setInvalid()"
2579 }
Yi Tsengbe342052017-11-03 10:21:23 -07002580 }
2581 ]
2582 },
2583 {
2584 "name" : "act_0",
Carmelo Casconef645e842018-07-16 18:31:52 +02002585 "id" : 31,
Yi Tsengbe342052017-11-03 10:21:23 -07002586 "runtime_data" : [],
2587 "primitives" : [
2588 {
2589 "op" : "assign",
2590 "parameters" : [
2591 {
2592 "type" : "field",
Yi Tsengbd46d052018-01-22 17:18:16 -08002593 "value" : ["vlan_tag", "ether_type"]
Yi Tseng1d842672017-11-28 16:06:52 -08002594 },
2595 {
2596 "type" : "hexstr",
2597 "value" : "0x0800"
2598 }
2599 ],
2600 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002601 "filename" : "include/control/../define.p4",
Carmelo Cascone228092b2018-06-15 20:41:10 +02002602 "line" : 69,
Yi Tseng1d842672017-11-28 16:06:52 -08002603 "column" : 31,
2604 "source_fragment" : "0x0800; ..."
2605 }
2606 },
2607 {
2608 "op" : "assign",
2609 "parameters" : [
2610 {
2611 "type" : "field",
2612 "value" : ["scalars", "fabric_metadata_t.original_ether_type"]
2613 },
2614 {
2615 "type" : "hexstr",
2616 "value" : "0x0800"
2617 }
2618 ],
2619 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002620 "filename" : "include/control/../define.p4",
Carmelo Cascone228092b2018-06-15 20:41:10 +02002621 "line" : 69,
Yi Tseng1d842672017-11-28 16:06:52 -08002622 "column" : 31,
2623 "source_fragment" : "0x0800; ..."
2624 }
2625 }
2626 ]
2627 },
2628 {
2629 "name" : "act_1",
Carmelo Casconef645e842018-07-16 18:31:52 +02002630 "id" : 32,
Yi Tseng1d842672017-11-28 16:06:52 -08002631 "runtime_data" : [],
2632 "primitives" : [
2633 {
2634 "op" : "assign",
2635 "parameters" : [
2636 {
2637 "type" : "field",
Yi Tseng1d842672017-11-28 16:06:52 -08002638 "value" : ["scalars", "next_tmp_0"]
2639 },
2640 {
2641 "type" : "expression",
2642 "value" : {
2643 "type" : "expression",
2644 "value" : {
2645 "op" : "b2d",
2646 "left" : null,
2647 "right" : {
2648 "type" : "bool",
2649 "value" : true
2650 }
2651 }
2652 }
2653 }
2654 ]
2655 }
2656 ]
2657 },
2658 {
Yi Tsengbd46d052018-01-22 17:18:16 -08002659 "name" : "act_2",
Carmelo Casconef645e842018-07-16 18:31:52 +02002660 "id" : 33,
Yi Tseng1d842672017-11-28 16:06:52 -08002661 "runtime_data" : [],
2662 "primitives" : [
2663 {
2664 "op" : "assign",
2665 "parameters" : [
2666 {
2667 "type" : "field",
2668 "value" : ["scalars", "next_tmp_0"]
2669 },
2670 {
2671 "type" : "expression",
2672 "value" : {
2673 "type" : "expression",
2674 "value" : {
2675 "op" : "b2d",
2676 "left" : null,
2677 "right" : {
2678 "type" : "bool",
2679 "value" : false
2680 }
2681 }
2682 }
2683 }
2684 ]
2685 }
2686 ]
2687 },
2688 {
Yi Tsengbd46d052018-01-22 17:18:16 -08002689 "name" : "act_3",
Carmelo Casconef645e842018-07-16 18:31:52 +02002690 "id" : 34,
Yi Tseng1d842672017-11-28 16:06:52 -08002691 "runtime_data" : [],
2692 "primitives" : [
2693 {
2694 "op" : "assign",
2695 "parameters" : [
2696 {
2697 "type" : "field",
2698 "value" : ["ipv4", "ttl"]
2699 },
2700 {
2701 "type" : "expression",
2702 "value" : {
2703 "type" : "expression",
2704 "value" : {
2705 "op" : "&",
2706 "left" : {
2707 "type" : "expression",
2708 "value" : {
2709 "op" : "+",
2710 "left" : {
2711 "type" : "field",
2712 "value" : ["ipv4", "ttl"]
2713 },
2714 "right" : {
2715 "type" : "hexstr",
2716 "value" : "0xff"
2717 }
2718 }
2719 },
2720 "right" : {
2721 "type" : "hexstr",
2722 "value" : "0xff"
2723 }
2724 }
2725 }
2726 }
2727 ],
2728 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002729 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002730 "line" : 221,
Yi Tseng1d842672017-11-28 16:06:52 -08002731 "column" : 20,
2732 "source_fragment" : "hdr.ipv4.ttl = hdr.ipv4.ttl - 1"
2733 }
2734 }
2735 ]
2736 },
2737 {
Yi Tsengbd46d052018-01-22 17:18:16 -08002738 "name" : "act_4",
Carmelo Casconef645e842018-07-16 18:31:52 +02002739 "id" : 35,
Yi Tseng1d842672017-11-28 16:06:52 -08002740 "runtime_data" : [],
2741 "primitives" : [
2742 {
2743 "op" : "assign",
2744 "parameters" : [
2745 {
2746 "type" : "field",
Yi Tsengc6844f52017-12-19 11:58:25 -08002747 "value" : ["scalars", "tmp_0"]
Yi Tsengbe342052017-11-03 10:21:23 -07002748 },
2749 {
2750 "type" : "expression",
2751 "value" : {
2752 "type" : "expression",
2753 "value" : {
2754 "op" : "&",
2755 "left" : {
2756 "type" : "field",
2757 "value" : ["standard_metadata", "egress_spec"]
2758 },
2759 "right" : {
2760 "type" : "hexstr",
2761 "value" : "0xffffffff"
2762 }
2763 }
2764 }
2765 }
Carmelo Cascone6af4e172018-06-15 16:01:30 +02002766 ],
2767 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002768 "filename" : "include/control/port_counter.p4",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02002769 "line" : 28,
2770 "column" : 38,
2771 "source_fragment" : "(bit<32>)standard_metadata.egress_spec"
2772 }
Yi Tsengbe342052017-11-03 10:21:23 -07002773 },
2774 {
2775 "op" : "count",
2776 "parameters" : [
2777 {
2778 "type" : "counter_array",
Yi Tseng27b9bc02018-04-12 14:52:40 +08002779 "value" : "FabricIngress.port_counters_control.egress_port_counter"
Yi Tsengbe342052017-11-03 10:21:23 -07002780 },
2781 {
2782 "type" : "field",
Yi Tsengc6844f52017-12-19 11:58:25 -08002783 "value" : ["scalars", "tmp_0"]
Yi Tsengbe342052017-11-03 10:21:23 -07002784 }
2785 ],
2786 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002787 "filename" : "include/control/port_counter.p4",
Yi Tsengbe342052017-11-03 10:21:23 -07002788 "line" : 28,
2789 "column" : 12,
2790 "source_fragment" : "egress_port_counter.count((bit<32>)standard_metadata.egress_spec)"
2791 }
2792 }
2793 ]
2794 },
2795 {
Carmelo Casconef645e842018-07-16 18:31:52 +02002796 "name" : "act_5",
2797 "id" : 36,
Yi Tsengbe342052017-11-03 10:21:23 -07002798 "runtime_data" : [],
2799 "primitives" : [
2800 {
2801 "op" : "assign",
2802 "parameters" : [
2803 {
2804 "type" : "field",
Yi Tsengc6844f52017-12-19 11:58:25 -08002805 "value" : ["scalars", "tmp_1"]
Yi Tsengbe342052017-11-03 10:21:23 -07002806 },
2807 {
2808 "type" : "expression",
2809 "value" : {
2810 "type" : "expression",
2811 "value" : {
2812 "op" : "&",
2813 "left" : {
2814 "type" : "field",
2815 "value" : ["standard_metadata", "ingress_port"]
2816 },
2817 "right" : {
2818 "type" : "hexstr",
2819 "value" : "0xffffffff"
2820 }
2821 }
2822 }
2823 }
Carmelo Cascone6af4e172018-06-15 16:01:30 +02002824 ],
2825 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002826 "filename" : "include/control/port_counter.p4",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02002827 "line" : 31,
2828 "column" : 39,
2829 "source_fragment" : "(bit<32>)standard_metadata.ingress_port"
2830 }
Yi Tsengbe342052017-11-03 10:21:23 -07002831 },
2832 {
2833 "op" : "count",
2834 "parameters" : [
2835 {
2836 "type" : "counter_array",
Yi Tseng27b9bc02018-04-12 14:52:40 +08002837 "value" : "FabricIngress.port_counters_control.ingress_port_counter"
Yi Tsengbe342052017-11-03 10:21:23 -07002838 },
2839 {
2840 "type" : "field",
Yi Tsengc6844f52017-12-19 11:58:25 -08002841 "value" : ["scalars", "tmp_1"]
Yi Tsengbe342052017-11-03 10:21:23 -07002842 }
2843 ],
2844 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002845 "filename" : "include/control/port_counter.p4",
Yi Tsengbe342052017-11-03 10:21:23 -07002846 "line" : 31,
2847 "column" : 12,
2848 "source_fragment" : "ingress_port_counter.count((bit<32>)standard_metadata.ingress_port)"
2849 }
2850 }
2851 ]
2852 },
2853 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002854 "name" : "nop",
Carmelo Casconef645e842018-07-16 18:31:52 +02002855 "id" : 37,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002856 "runtime_data" : [],
2857 "primitives" : []
2858 },
2859 {
2860 "name" : "FabricEgress.pkt_io_egress.pop_vlan",
Carmelo Casconef645e842018-07-16 18:31:52 +02002861 "id" : 38,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002862 "runtime_data" : [],
2863 "primitives" : [
2864 {
2865 "op" : "assign",
2866 "parameters" : [
2867 {
2868 "type" : "field",
2869 "value" : ["ethernet", "ether_type"]
2870 },
2871 {
2872 "type" : "field",
2873 "value" : ["vlan_tag", "ether_type"]
2874 }
2875 ],
2876 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002877 "filename" : "include/control/packetio.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002878 "line" : 38,
2879 "column" : 8,
2880 "source_fragment" : "hdr.ethernet.ether_type = hdr.vlan_tag.ether_type"
2881 }
2882 },
2883 {
2884 "op" : "remove_header",
2885 "parameters" : [
2886 {
2887 "type" : "header",
2888 "value" : "vlan_tag"
2889 }
2890 ],
2891 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002892 "filename" : "include/control/packetio.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002893 "line" : 39,
2894 "column" : 8,
2895 "source_fragment" : "hdr.vlan_tag.setInvalid()"
2896 }
2897 }
2898 ]
2899 },
2900 {
2901 "name" : "FabricEgress.egress_next.pop_vlan",
Carmelo Casconef645e842018-07-16 18:31:52 +02002902 "id" : 39,
Yi Tseng1d842672017-11-28 16:06:52 -08002903 "runtime_data" : [],
2904 "primitives" : [
2905 {
2906 "op" : "assign",
2907 "parameters" : [
2908 {
2909 "type" : "field",
2910 "value" : ["ethernet", "ether_type"]
2911 },
2912 {
2913 "type" : "field",
Yi Tsengbd46d052018-01-22 17:18:16 -08002914 "value" : ["vlan_tag", "ether_type"]
Yi Tseng1d842672017-11-28 16:06:52 -08002915 }
2916 ],
2917 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002918 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002919 "line" : 247,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002920 "column" : 8,
Yi Tsengbd46d052018-01-22 17:18:16 -08002921 "source_fragment" : "hdr.ethernet.ether_type = hdr.vlan_tag.ether_type"
Yi Tseng1d842672017-11-28 16:06:52 -08002922 }
Yi Tsengbd46d052018-01-22 17:18:16 -08002923 },
Yi Tsengbe342052017-11-03 10:21:23 -07002924 {
2925 "op" : "remove_header",
2926 "parameters" : [
2927 {
2928 "type" : "header",
2929 "value" : "vlan_tag"
2930 }
2931 ],
2932 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002933 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002934 "line" : 248,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002935 "column" : 8,
Yi Tsengbe342052017-11-03 10:21:23 -07002936 "source_fragment" : "hdr.vlan_tag.setInvalid()"
2937 }
2938 }
2939 ]
2940 },
2941 {
Carmelo Casconef645e842018-07-16 18:31:52 +02002942 "name" : "act_6",
2943 "id" : 40,
Yi Tsengbe342052017-11-03 10:21:23 -07002944 "runtime_data" : [],
2945 "primitives" : [
2946 {
2947 "op" : "add_header",
2948 "parameters" : [
2949 {
2950 "type" : "header",
2951 "value" : "packet_in"
2952 }
2953 ],
2954 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002955 "filename" : "include/control/packetio.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002956 "line" : 46,
Yi Tsengbe342052017-11-03 10:21:23 -07002957 "column" : 12,
2958 "source_fragment" : "hdr.packet_in.setValid()"
2959 }
2960 },
2961 {
2962 "op" : "assign",
2963 "parameters" : [
2964 {
2965 "type" : "field",
2966 "value" : ["packet_in", "ingress_port"]
2967 },
2968 {
2969 "type" : "field",
2970 "value" : ["standard_metadata", "ingress_port"]
2971 }
2972 ],
2973 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002974 "filename" : "include/control/packetio.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08002975 "line" : 47,
Yi Tsengbe342052017-11-03 10:21:23 -07002976 "column" : 12,
2977 "source_fragment" : "hdr.packet_in.ingress_port = standard_metadata.ingress_port"
2978 }
2979 }
2980 ]
Yi Tsengbe342052017-11-03 10:21:23 -07002981 }
2982 ],
2983 "pipelines" : [
2984 {
2985 "name" : "ingress",
2986 "id" : 0,
2987 "source_info" : {
2988 "filename" : "fabric.p4",
Carmelo Casconeb81f4be2018-01-16 23:24:01 -08002989 "line" : 33,
Yi Tsengbe342052017-11-03 10:21:23 -07002990 "column" : 8,
2991 "source_fragment" : "FabricIngress"
2992 },
2993 "init_table" : "node_2",
2994 "tables" : [
2995 {
2996 "name" : "tbl_act",
2997 "id" : 0,
2998 "key" : [],
2999 "match_type" : "exact",
3000 "type" : "simple",
3001 "max_size" : 1024,
3002 "with_counters" : false,
3003 "support_timeout" : false,
3004 "direct_meters" : null,
Carmelo Casconef645e842018-07-16 18:31:52 +02003005 "action_ids" : [30],
Yi Tsengbe342052017-11-03 10:21:23 -07003006 "actions" : ["act"],
3007 "base_default_next" : null,
3008 "next_tables" : {
3009 "act" : null
3010 },
3011 "default_entry" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003012 "action_id" : 30,
Yi Tsengbe342052017-11-03 10:21:23 -07003013 "action_const" : true,
3014 "action_data" : [],
3015 "action_entry_const" : true
3016 }
3017 },
3018 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003019 "name" : "FabricIngress.filtering.ingress_port_vlan",
Yi Tsengbe342052017-11-03 10:21:23 -07003020 "id" : 1,
3021 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003022 "filename" : "include/control/filtering.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08003023 "line" : 61,
Yi Tsengbe342052017-11-03 10:21:23 -07003024 "column" : 10,
3025 "source_fragment" : "ingress_port_vlan"
3026 },
3027 "key" : [
3028 {
3029 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003030 "name" : "standard_metadata.ingress_port",
Yi Tsengbe342052017-11-03 10:21:23 -07003031 "target" : ["standard_metadata", "ingress_port"],
3032 "mask" : null
3033 },
3034 {
3035 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003036 "name" : "hdr.vlan_tag.is_valid",
Yi Tsengbe342052017-11-03 10:21:23 -07003037 "target" : ["vlan_tag", "$valid$"],
3038 "mask" : null
3039 },
3040 {
3041 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003042 "name" : "hdr.vlan_tag.vlan_id",
Yi Tsengbe342052017-11-03 10:21:23 -07003043 "target" : ["vlan_tag", "vlan_id"],
3044 "mask" : null
3045 }
3046 ],
3047 "match_type" : "ternary",
3048 "type" : "simple",
3049 "max_size" : 1024,
Yi Tsengbd46d052018-01-22 17:18:16 -08003050 "with_counters" : true,
Yi Tsengbe342052017-11-03 10:21:23 -07003051 "support_timeout" : false,
3052 "direct_meters" : null,
Carmelo Casconef645e842018-07-16 18:31:52 +02003053 "action_ids" : [11, 10, 0, 9],
Yi Tseng27b9bc02018-04-12 14:52:40 +08003054 "actions" : ["FabricIngress.filtering.push_internal_vlan", "FabricIngress.filtering.set_vlan", "nop", "FabricIngress.filtering.drop"],
3055 "base_default_next" : "FabricIngress.filtering.fwd_classifier",
Yi Tsengbe342052017-11-03 10:21:23 -07003056 "next_tables" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003057 "FabricIngress.filtering.push_internal_vlan" : "FabricIngress.filtering.fwd_classifier",
3058 "FabricIngress.filtering.set_vlan" : "FabricIngress.filtering.fwd_classifier",
3059 "nop" : "FabricIngress.filtering.fwd_classifier",
3060 "FabricIngress.filtering.drop" : "FabricIngress.filtering.fwd_classifier"
Yi Tsengbe342052017-11-03 10:21:23 -07003061 },
3062 "default_entry" : {
Yi Tseng3a5731e2018-01-22 11:38:58 -08003063 "action_id" : 0,
Yi Tsengbe342052017-11-03 10:21:23 -07003064 "action_const" : true,
3065 "action_data" : [],
3066 "action_entry_const" : true
3067 }
3068 },
3069 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003070 "name" : "FabricIngress.filtering.fwd_classifier",
Yi Tsengbe342052017-11-03 10:21:23 -07003071 "id" : 2,
3072 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003073 "filename" : "include/control/filtering.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08003074 "line" : 98,
Yi Tsengbe342052017-11-03 10:21:23 -07003075 "column" : 10,
3076 "source_fragment" : "fwd_classifier"
3077 },
3078 "key" : [
3079 {
3080 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003081 "name" : "standard_metadata.ingress_port",
Yi Tsengbe342052017-11-03 10:21:23 -07003082 "target" : ["standard_metadata", "ingress_port"],
3083 "mask" : null
3084 },
3085 {
3086 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003087 "name" : "hdr.ethernet.dst_addr",
Yi Tsengbe342052017-11-03 10:21:23 -07003088 "target" : ["ethernet", "dst_addr"],
3089 "mask" : null
3090 },
3091 {
3092 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003093 "name" : "fabric_metadata.original_ether_type",
Yi Tseng1d842672017-11-28 16:06:52 -08003094 "target" : ["scalars", "fabric_metadata_t.original_ether_type"],
Yi Tsengbe342052017-11-03 10:21:23 -07003095 "mask" : null
3096 }
3097 ],
3098 "match_type" : "exact",
3099 "type" : "simple",
3100 "max_size" : 1024,
Yi Tsengbd46d052018-01-22 17:18:16 -08003101 "with_counters" : true,
Yi Tsengbe342052017-11-03 10:21:23 -07003102 "support_timeout" : false,
3103 "direct_meters" : null,
Carmelo Casconef645e842018-07-16 18:31:52 +02003104 "action_ids" : [12],
Yi Tseng27b9bc02018-04-12 14:52:40 +08003105 "actions" : ["FabricIngress.filtering.set_forwarding_type"],
Yi Tsengbe342052017-11-03 10:21:23 -07003106 "base_default_next" : "node_6",
3107 "next_tables" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003108 "FabricIngress.filtering.set_forwarding_type" : "node_6"
Yi Tsengbe342052017-11-03 10:21:23 -07003109 },
3110 "default_entry" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003111 "action_id" : 12,
Yi Tsengbe342052017-11-03 10:21:23 -07003112 "action_const" : true,
3113 "action_data" : ["0x0"],
3114 "action_entry_const" : true
3115 }
3116 },
3117 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003118 "name" : "FabricIngress.forwarding.bridging",
Yi Tsengbe342052017-11-03 10:21:23 -07003119 "id" : 3,
3120 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003121 "filename" : "include/control/forwarding.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08003122 "line" : 41,
Yi Tsengbe342052017-11-03 10:21:23 -07003123 "column" : 10,
3124 "source_fragment" : "bridging"
3125 },
3126 "key" : [
3127 {
3128 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003129 "name" : "hdr.vlan_tag.vlan_id",
Yi Tsengbe342052017-11-03 10:21:23 -07003130 "target" : ["vlan_tag", "vlan_id"],
3131 "mask" : null
3132 },
3133 {
3134 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003135 "name" : "hdr.ethernet.dst_addr",
Yi Tsengbe342052017-11-03 10:21:23 -07003136 "target" : ["ethernet", "dst_addr"],
3137 "mask" : null
3138 }
3139 ],
3140 "match_type" : "ternary",
3141 "type" : "simple",
3142 "max_size" : 1024,
Yi Tsengbd46d052018-01-22 17:18:16 -08003143 "with_counters" : true,
Yi Tsengbe342052017-11-03 10:21:23 -07003144 "support_timeout" : false,
3145 "direct_meters" : null,
Carmelo Casconef645e842018-07-16 18:31:52 +02003146 "action_ids" : [13, 3],
Yi Tseng47eac892018-07-11 02:17:04 +08003147 "actions" : ["FabricIngress.forwarding.set_next_id_bridging", "NoAction"],
Yi Tseng27b9bc02018-04-12 14:52:40 +08003148 "base_default_next" : "FabricIngress.forwarding.acl",
Yi Tseng1d842672017-11-28 16:06:52 -08003149 "next_tables" : {
Yi Tseng47eac892018-07-11 02:17:04 +08003150 "FabricIngress.forwarding.set_next_id_bridging" : "FabricIngress.forwarding.acl",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003151 "NoAction" : "FabricIngress.forwarding.acl"
Yi Tseng1d842672017-11-28 16:06:52 -08003152 },
3153 "default_entry" : {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003154 "action_id" : 3,
Yi Tseng1d842672017-11-28 16:06:52 -08003155 "action_const" : false,
3156 "action_data" : [],
3157 "action_entry_const" : false
3158 }
3159 },
3160 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003161 "name" : "FabricIngress.forwarding.mpls",
Yi Tseng1d842672017-11-28 16:06:52 -08003162 "id" : 4,
3163 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003164 "filename" : "include/control/forwarding.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08003165 "line" : 65,
Yi Tseng1d842672017-11-28 16:06:52 -08003166 "column" : 10,
3167 "source_fragment" : "mpls"
3168 },
3169 "key" : [
3170 {
3171 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003172 "name" : "hdr.mpls.label",
Yi Tseng1d842672017-11-28 16:06:52 -08003173 "target" : ["mpls", "label"],
3174 "mask" : null
3175 }
3176 ],
3177 "match_type" : "exact",
3178 "type" : "simple",
3179 "max_size" : 1024,
Yi Tsengbd46d052018-01-22 17:18:16 -08003180 "with_counters" : true,
Yi Tseng1d842672017-11-28 16:06:52 -08003181 "support_timeout" : false,
3182 "direct_meters" : null,
Carmelo Casconef645e842018-07-16 18:31:52 +02003183 "action_ids" : [14, 4],
Yi Tseng27b9bc02018-04-12 14:52:40 +08003184 "actions" : ["FabricIngress.forwarding.pop_mpls_and_next", "NoAction"],
Yi Tsengbd46d052018-01-22 17:18:16 -08003185 "base_default_next" : "tbl_act_0",
Yi Tseng1d842672017-11-28 16:06:52 -08003186 "next_tables" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003187 "FabricIngress.forwarding.pop_mpls_and_next" : "tbl_act_0",
Yi Tsengbd46d052018-01-22 17:18:16 -08003188 "NoAction" : "tbl_act_0"
Yi Tseng1d842672017-11-28 16:06:52 -08003189 },
3190 "default_entry" : {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003191 "action_id" : 4,
Yi Tseng1d842672017-11-28 16:06:52 -08003192 "action_const" : false,
3193 "action_data" : [],
3194 "action_entry_const" : false
3195 }
3196 },
3197 {
3198 "name" : "tbl_act_0",
3199 "id" : 5,
3200 "key" : [],
3201 "match_type" : "exact",
3202 "type" : "simple",
3203 "max_size" : 1024,
3204 "with_counters" : false,
3205 "support_timeout" : false,
3206 "direct_meters" : null,
Carmelo Casconef645e842018-07-16 18:31:52 +02003207 "action_ids" : [31],
Yi Tseng1d842672017-11-28 16:06:52 -08003208 "actions" : ["act_0"],
Yi Tseng27b9bc02018-04-12 14:52:40 +08003209 "base_default_next" : "FabricIngress.forwarding.acl",
Yi Tseng1d842672017-11-28 16:06:52 -08003210 "next_tables" : {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003211 "act_0" : "FabricIngress.forwarding.acl"
Yi Tseng1d842672017-11-28 16:06:52 -08003212 },
3213 "default_entry" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003214 "action_id" : 31,
Yi Tseng1d842672017-11-28 16:06:52 -08003215 "action_const" : true,
3216 "action_data" : [],
3217 "action_entry_const" : true
3218 }
3219 },
3220 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003221 "name" : "FabricIngress.forwarding.unicast_v4",
Yi Tsengbd46d052018-01-22 17:18:16 -08003222 "id" : 6,
Yi Tseng1d842672017-11-28 16:06:52 -08003223 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003224 "filename" : "include/control/forwarding.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08003225 "line" : 87,
Yi Tseng1d842672017-11-28 16:06:52 -08003226 "column" : 10,
3227 "source_fragment" : "unicast_v4"
3228 },
3229 "key" : [
3230 {
3231 "match_type" : "lpm",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003232 "name" : "hdr.ipv4.dst_addr",
Yi Tseng1d842672017-11-28 16:06:52 -08003233 "target" : ["ipv4", "dst_addr"],
3234 "mask" : null
3235 }
3236 ],
3237 "match_type" : "lpm",
3238 "type" : "simple",
3239 "max_size" : 1024,
Yi Tsengbd46d052018-01-22 17:18:16 -08003240 "with_counters" : true,
Yi Tseng1d842672017-11-28 16:06:52 -08003241 "support_timeout" : false,
3242 "direct_meters" : null,
Carmelo Casconef645e842018-07-16 18:31:52 +02003243 "action_ids" : [15, 5],
Yi Tseng47eac892018-07-11 02:17:04 +08003244 "actions" : ["FabricIngress.forwarding.set_next_id_unicast_v4", "NoAction"],
Yi Tseng27b9bc02018-04-12 14:52:40 +08003245 "base_default_next" : "FabricIngress.forwarding.acl",
Yi Tsengbe342052017-11-03 10:21:23 -07003246 "next_tables" : {
Yi Tseng47eac892018-07-11 02:17:04 +08003247 "FabricIngress.forwarding.set_next_id_unicast_v4" : "FabricIngress.forwarding.acl",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003248 "NoAction" : "FabricIngress.forwarding.acl"
Yi Tsengbe342052017-11-03 10:21:23 -07003249 },
3250 "default_entry" : {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003251 "action_id" : 5,
Yi Tsengbe342052017-11-03 10:21:23 -07003252 "action_const" : false,
3253 "action_data" : [],
3254 "action_entry_const" : false
3255 }
3256 },
3257 {
Carmelo Casconef645e842018-07-16 18:31:52 +02003258 "name" : "FabricIngress.forwarding.acl",
Yi Tsengbd46d052018-01-22 17:18:16 -08003259 "id" : 7,
Yi Tsengbe342052017-11-03 10:21:23 -07003260 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003261 "filename" : "include/control/forwarding.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08003262 "line" : 119,
Yi Tsengbe342052017-11-03 10:21:23 -07003263 "column" : 10,
Yi Tsengbe342052017-11-03 10:21:23 -07003264 "source_fragment" : "acl"
3265 },
3266 "key" : [
3267 {
3268 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003269 "name" : "standard_metadata.ingress_port",
Yi Tsengbe342052017-11-03 10:21:23 -07003270 "target" : ["standard_metadata", "ingress_port"],
3271 "mask" : null
3272 },
3273 {
3274 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003275 "name" : "fabric_metadata.ip_proto",
Yi Tsengbe342052017-11-03 10:21:23 -07003276 "target" : ["scalars", "fabric_metadata_t.ip_proto"],
3277 "mask" : null
3278 },
3279 {
3280 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003281 "name" : "fabric_metadata.l4_src_port",
Yi Tseng1d842672017-11-28 16:06:52 -08003282 "target" : ["scalars", "fabric_metadata_t.l4_src_port"],
3283 "mask" : null
3284 },
3285 {
3286 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003287 "name" : "fabric_metadata.l4_dst_port",
Yi Tseng1d842672017-11-28 16:06:52 -08003288 "target" : ["scalars", "fabric_metadata_t.l4_dst_port"],
3289 "mask" : null
3290 },
3291 {
3292 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003293 "name" : "fabric_metadata.original_ether_type",
Yi Tsengc6844f52017-12-19 11:58:25 -08003294 "target" : ["scalars", "fabric_metadata_t.original_ether_type"],
3295 "mask" : null
3296 },
3297 {
3298 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003299 "name" : "hdr.ethernet.dst_addr",
Yi Tsengbe342052017-11-03 10:21:23 -07003300 "target" : ["ethernet", "dst_addr"],
3301 "mask" : null
3302 },
3303 {
3304 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003305 "name" : "hdr.ethernet.src_addr",
Yi Tsengbe342052017-11-03 10:21:23 -07003306 "target" : ["ethernet", "src_addr"],
3307 "mask" : null
3308 },
3309 {
3310 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003311 "name" : "hdr.vlan_tag.vlan_id",
Yi Tsengbe342052017-11-03 10:21:23 -07003312 "target" : ["vlan_tag", "vlan_id"],
3313 "mask" : null
3314 },
3315 {
3316 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003317 "name" : "hdr.ipv4.src_addr",
Yi Tsengbe342052017-11-03 10:21:23 -07003318 "target" : ["ipv4", "src_addr"],
3319 "mask" : null
3320 },
3321 {
3322 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003323 "name" : "hdr.ipv4.dst_addr",
Yi Tsengbe342052017-11-03 10:21:23 -07003324 "target" : ["ipv4", "dst_addr"],
3325 "mask" : null
3326 },
3327 {
3328 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003329 "name" : "hdr.icmp.icmp_type",
Yi Tsengbe342052017-11-03 10:21:23 -07003330 "target" : ["icmp", "icmp_type"],
3331 "mask" : null
3332 },
3333 {
3334 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003335 "name" : "hdr.icmp.icmp_code",
Yi Tsengbe342052017-11-03 10:21:23 -07003336 "target" : ["icmp", "icmp_code"],
3337 "mask" : null
3338 }
3339 ],
3340 "match_type" : "ternary",
3341 "type" : "simple",
Yi Tseng1d842672017-11-28 16:06:52 -08003342 "max_size" : 256,
Yi Tsengbd46d052018-01-22 17:18:16 -08003343 "with_counters" : true,
Yi Tsengbe342052017-11-03 10:21:23 -07003344 "support_timeout" : false,
3345 "direct_meters" : null,
Carmelo Casconef645e842018-07-16 18:31:52 +02003346 "action_ids" : [16, 17, 18, 1],
Yi Tseng47eac892018-07-11 02:17:04 +08003347 "actions" : ["FabricIngress.forwarding.set_next_id_acl", "FabricIngress.forwarding.send_to_controller", "FabricIngress.forwarding.drop", "nop"],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003348 "base_default_next" : "FabricIngress.next.vlan_meta",
Yi Tsengbe342052017-11-03 10:21:23 -07003349 "next_tables" : {
Yi Tseng47eac892018-07-11 02:17:04 +08003350 "FabricIngress.forwarding.set_next_id_acl" : "FabricIngress.next.vlan_meta",
3351 "FabricIngress.forwarding.send_to_controller" : "FabricIngress.next.vlan_meta",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003352 "FabricIngress.forwarding.drop" : "FabricIngress.next.vlan_meta",
3353 "nop" : "FabricIngress.next.vlan_meta"
Yi Tsengbe342052017-11-03 10:21:23 -07003354 },
3355 "default_entry" : {
3356 "action_id" : 1,
3357 "action_const" : true,
3358 "action_data" : [],
3359 "action_entry_const" : true
3360 }
3361 },
3362 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003363 "name" : "FabricIngress.next.vlan_meta",
Carmelo Casconef645e842018-07-16 18:31:52 +02003364 "id" : 8,
Yi Tsengbe342052017-11-03 10:21:23 -07003365 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003366 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08003367 "line" : 65,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003368 "column" : 10,
3369 "source_fragment" : "vlan_meta"
3370 },
3371 "key" : [
3372 {
3373 "match_type" : "exact",
3374 "name" : "fabric_metadata.next_id",
3375 "target" : ["scalars", "fabric_metadata_t.next_id"],
3376 "mask" : null
3377 }
3378 ],
3379 "match_type" : "exact",
3380 "type" : "simple",
3381 "max_size" : 1024,
3382 "with_counters" : true,
3383 "support_timeout" : false,
3384 "direct_meters" : null,
Carmelo Casconef645e842018-07-16 18:31:52 +02003385 "action_ids" : [19, 2],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003386 "actions" : ["FabricIngress.next.set_vlan", "nop"],
3387 "base_default_next" : "FabricIngress.next.simple",
3388 "next_tables" : {
3389 "FabricIngress.next.set_vlan" : "FabricIngress.next.simple",
3390 "nop" : "FabricIngress.next.simple"
3391 },
3392 "default_entry" : {
3393 "action_id" : 2,
3394 "action_const" : false,
3395 "action_data" : [],
3396 "action_entry_const" : false
3397 }
3398 },
3399 {
3400 "name" : "FabricIngress.next.simple",
Carmelo Casconef645e842018-07-16 18:31:52 +02003401 "id" : 9,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003402 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003403 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08003404 "line" : 122,
Yi Tsengbe342052017-11-03 10:21:23 -07003405 "column" : 10,
3406 "source_fragment" : "simple"
3407 },
3408 "key" : [
3409 {
3410 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003411 "name" : "fabric_metadata.next_id",
Yi Tsengbe342052017-11-03 10:21:23 -07003412 "target" : ["scalars", "fabric_metadata_t.next_id"],
3413 "mask" : null
3414 }
3415 ],
3416 "match_type" : "exact",
3417 "type" : "simple",
3418 "max_size" : 1024,
Yi Tsengbd46d052018-01-22 17:18:16 -08003419 "with_counters" : true,
Yi Tsengbe342052017-11-03 10:21:23 -07003420 "support_timeout" : false,
3421 "direct_meters" : null,
Carmelo Casconef645e842018-07-16 18:31:52 +02003422 "action_ids" : [20, 21, 22, 23, 24, 25, 6],
Yi Tseng47eac892018-07-11 02:17:04 +08003423 "actions" : ["FabricIngress.next.output_simple", "FabricIngress.next.set_vlan_output", "FabricIngress.next.l3_routing_simple", "FabricIngress.next.mpls_routing_v4_simple", "FabricIngress.next.mpls_routing_v6_simple", "FabricIngress.next.l3_routing_vlan", "NoAction"],
Yi Tseng1d842672017-11-28 16:06:52 -08003424 "base_default_next" : null,
Yi Tsengbe342052017-11-03 10:21:23 -07003425 "next_tables" : {
Yi Tsengbd46d052018-01-22 17:18:16 -08003426 "__HIT__" : "tbl_act_1",
3427 "__MISS__" : "tbl_act_2"
Yi Tsengbe342052017-11-03 10:21:23 -07003428 },
3429 "default_entry" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003430 "action_id" : 6,
Yi Tsengbe342052017-11-03 10:21:23 -07003431 "action_const" : false,
3432 "action_data" : [],
3433 "action_entry_const" : false
3434 }
3435 },
3436 {
Yi Tsengbd46d052018-01-22 17:18:16 -08003437 "name" : "tbl_act_1",
Carmelo Casconef645e842018-07-16 18:31:52 +02003438 "id" : 10,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08003439 "key" : [],
3440 "match_type" : "exact",
3441 "type" : "simple",
3442 "max_size" : 1024,
3443 "with_counters" : false,
3444 "support_timeout" : false,
3445 "direct_meters" : null,
Carmelo Casconef645e842018-07-16 18:31:52 +02003446 "action_ids" : [32],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003447 "actions" : ["act_1"],
Carmelo Casconef645e842018-07-16 18:31:52 +02003448 "base_default_next" : "node_18",
Yi Tsengbe342052017-11-03 10:21:23 -07003449 "next_tables" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003450 "act_1" : "node_18"
Yi Tsengbe342052017-11-03 10:21:23 -07003451 },
3452 "default_entry" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003453 "action_id" : 32,
Yi Tseng27b9bc02018-04-12 14:52:40 +08003454 "action_const" : true,
3455 "action_data" : [],
3456 "action_entry_const" : true
3457 }
3458 },
3459 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003460 "name" : "tbl_act_2",
Carmelo Casconef645e842018-07-16 18:31:52 +02003461 "id" : 11,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003462 "key" : [],
3463 "match_type" : "exact",
3464 "type" : "simple",
3465 "max_size" : 1024,
3466 "with_counters" : false,
3467 "support_timeout" : false,
3468 "direct_meters" : null,
Carmelo Casconef645e842018-07-16 18:31:52 +02003469 "action_ids" : [33],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003470 "actions" : ["act_2"],
Carmelo Casconef645e842018-07-16 18:31:52 +02003471 "base_default_next" : "node_18",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003472 "next_tables" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003473 "act_2" : "node_18"
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003474 },
3475 "default_entry" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003476 "action_id" : 33,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003477 "action_const" : true,
3478 "action_data" : [],
3479 "action_entry_const" : true
3480 }
3481 },
3482 {
3483 "name" : "tbl_act_3",
Carmelo Casconef645e842018-07-16 18:31:52 +02003484 "id" : 12,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003485 "key" : [],
3486 "match_type" : "exact",
3487 "type" : "simple",
3488 "max_size" : 1024,
3489 "with_counters" : false,
3490 "support_timeout" : false,
3491 "direct_meters" : null,
Carmelo Casconef645e842018-07-16 18:31:52 +02003492 "action_ids" : [34],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003493 "actions" : ["act_3"],
3494 "base_default_next" : "FabricIngress.next.hashed",
3495 "next_tables" : {
3496 "act_3" : "FabricIngress.next.hashed"
3497 },
3498 "default_entry" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003499 "action_id" : 34,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003500 "action_const" : true,
3501 "action_data" : [],
3502 "action_entry_const" : true
3503 }
3504 },
3505 {
3506 "name" : "FabricIngress.next.hashed",
Carmelo Casconef645e842018-07-16 18:31:52 +02003507 "id" : 13,
Yi Tseng27b9bc02018-04-12 14:52:40 +08003508 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003509 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08003510 "line" : 175,
Yi Tseng27b9bc02018-04-12 14:52:40 +08003511 "column" : 10,
3512 "source_fragment" : "hashed"
3513 },
3514 "key" : [
3515 {
3516 "match_type" : "exact",
3517 "name" : "fabric_metadata.next_id",
3518 "target" : ["scalars", "fabric_metadata_t.next_id"],
3519 "mask" : null
3520 }
3521 ],
3522 "match_type" : "exact",
3523 "type" : "indirect_ws",
3524 "action_profile" : "FabricIngress.next.ecmp_selector",
3525 "max_size" : 1024,
3526 "with_counters" : true,
3527 "support_timeout" : false,
3528 "direct_meters" : null,
Carmelo Casconef645e842018-07-16 18:31:52 +02003529 "action_ids" : [26, 27, 28, 7],
Yi Tseng47eac892018-07-11 02:17:04 +08003530 "actions" : ["FabricIngress.next.l3_routing_hashed", "FabricIngress.next.mpls_routing_v4_hashed", "FabricIngress.next.mpls_routing_v6_hashed", "NoAction"],
Esin Karaman971fb7f2017-12-28 13:44:52 +00003531 "base_default_next" : "FabricIngress.next.multicast",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003532 "next_tables" : {
Yi Tseng47eac892018-07-11 02:17:04 +08003533 "FabricIngress.next.l3_routing_hashed" : "FabricIngress.next.multicast",
3534 "FabricIngress.next.mpls_routing_v4_hashed" : "FabricIngress.next.multicast",
3535 "FabricIngress.next.mpls_routing_v6_hashed" : "FabricIngress.next.multicast",
Esin Karaman971fb7f2017-12-28 13:44:52 +00003536 "NoAction" : "FabricIngress.next.multicast"
3537 }
3538 },
3539 {
3540 "name" : "FabricIngress.next.multicast",
Carmelo Casconef645e842018-07-16 18:31:52 +02003541 "id" : 14,
Esin Karaman971fb7f2017-12-28 13:44:52 +00003542 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003543 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08003544 "line" : 206,
Esin Karaman971fb7f2017-12-28 13:44:52 +00003545 "column" : 10,
3546 "source_fragment" : "multicast"
3547 },
3548 "key" : [
3549 {
3550 "match_type" : "exact",
3551 "name" : "fabric_metadata.next_id",
3552 "target" : ["scalars", "fabric_metadata_t.next_id"],
3553 "mask" : null
3554 }
3555 ],
3556 "match_type" : "exact",
3557 "type" : "simple",
3558 "max_size" : 1024,
3559 "with_counters" : true,
3560 "support_timeout" : false,
3561 "direct_meters" : null,
Carmelo Casconef645e842018-07-16 18:31:52 +02003562 "action_ids" : [29, 8],
Esin Karaman971fb7f2017-12-28 13:44:52 +00003563 "actions" : ["FabricIngress.next.set_mcast_group", "NoAction"],
Carmelo Casconef645e842018-07-16 18:31:52 +02003564 "base_default_next" : "node_24",
Esin Karaman971fb7f2017-12-28 13:44:52 +00003565 "next_tables" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003566 "FabricIngress.next.set_mcast_group" : "node_24",
3567 "NoAction" : "node_24"
Esin Karaman971fb7f2017-12-28 13:44:52 +00003568 },
3569 "default_entry" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003570 "action_id" : 8,
Esin Karaman971fb7f2017-12-28 13:44:52 +00003571 "action_const" : false,
3572 "action_data" : [],
3573 "action_entry_const" : false
Yi Tseng27b9bc02018-04-12 14:52:40 +08003574 }
3575 },
3576 {
Carmelo Casconef645e842018-07-16 18:31:52 +02003577 "name" : "tbl_act_4",
3578 "id" : 15,
Yi Tseng27b9bc02018-04-12 14:52:40 +08003579 "key" : [],
3580 "match_type" : "exact",
3581 "type" : "simple",
3582 "max_size" : 1024,
3583 "with_counters" : false,
3584 "support_timeout" : false,
3585 "direct_meters" : null,
Carmelo Casconef645e842018-07-16 18:31:52 +02003586 "action_ids" : [35],
3587 "actions" : ["act_4"],
3588 "base_default_next" : "node_26",
Esin Karaman971fb7f2017-12-28 13:44:52 +00003589 "next_tables" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003590 "act_4" : "node_26"
Esin Karaman971fb7f2017-12-28 13:44:52 +00003591 },
3592 "default_entry" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003593 "action_id" : 35,
Esin Karaman971fb7f2017-12-28 13:44:52 +00003594 "action_const" : true,
3595 "action_data" : [],
3596 "action_entry_const" : true
3597 }
3598 },
3599 {
Carmelo Casconef645e842018-07-16 18:31:52 +02003600 "name" : "tbl_act_5",
3601 "id" : 16,
Esin Karaman971fb7f2017-12-28 13:44:52 +00003602 "key" : [],
3603 "match_type" : "exact",
3604 "type" : "simple",
3605 "max_size" : 1024,
3606 "with_counters" : false,
3607 "support_timeout" : false,
3608 "direct_meters" : null,
Carmelo Casconef645e842018-07-16 18:31:52 +02003609 "action_ids" : [36],
3610 "actions" : ["act_5"],
Yi Tseng27b9bc02018-04-12 14:52:40 +08003611 "base_default_next" : null,
3612 "next_tables" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003613 "act_5" : null
Yi Tseng27b9bc02018-04-12 14:52:40 +08003614 },
3615 "default_entry" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003616 "action_id" : 36,
Yi Tseng3a5731e2018-01-22 11:38:58 -08003617 "action_const" : true,
3618 "action_data" : [],
3619 "action_entry_const" : true
3620 }
Yi Tsengbe342052017-11-03 10:21:23 -07003621 }
3622 ],
3623 "action_profiles" : [
3624 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003625 "name" : "FabricIngress.next.ecmp_selector",
Yi Tsengbe342052017-11-03 10:21:23 -07003626 "id" : 0,
3627 "max_size" : 64,
3628 "selector" : {
3629 "algo" : "crc16",
3630 "input" : [
3631 {
3632 "type" : "field",
Yi Tseng3d3956d2018-01-31 17:28:05 -08003633 "value" : ["ipv4", "dst_addr"]
Yi Tsengbe342052017-11-03 10:21:23 -07003634 },
3635 {
3636 "type" : "field",
Yi Tseng3d3956d2018-01-31 17:28:05 -08003637 "value" : ["ipv4", "src_addr"]
Yi Tsengbe342052017-11-03 10:21:23 -07003638 },
3639 {
3640 "type" : "field",
Yi Tseng1d842672017-11-28 16:06:52 -08003641 "value" : ["scalars", "fabric_metadata_t.ip_proto"]
Yi Tsengbe342052017-11-03 10:21:23 -07003642 },
3643 {
3644 "type" : "field",
3645 "value" : ["scalars", "fabric_metadata_t.l4_src_port"]
3646 },
3647 {
3648 "type" : "field",
3649 "value" : ["scalars", "fabric_metadata_t.l4_dst_port"]
3650 }
3651 ]
3652 }
3653 }
3654 ],
3655 "conditionals" : [
3656 {
3657 "name" : "node_2",
3658 "id" : 0,
3659 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003660 "filename" : "include/control/packetio.p4",
Yi Tsengbe342052017-11-03 10:21:23 -07003661 "line" : 25,
3662 "column" : 12,
3663 "source_fragment" : "hdr.packet_out.isValid()"
3664 },
3665 "expression" : {
3666 "type" : "expression",
3667 "value" : {
Yi Tsengbd46d052018-01-22 17:18:16 -08003668 "op" : "d2b",
3669 "left" : null,
3670 "right" : {
Yi Tsengbe342052017-11-03 10:21:23 -07003671 "type" : "field",
3672 "value" : ["packet_out", "$valid$"]
Yi Tsengbe342052017-11-03 10:21:23 -07003673 }
3674 }
3675 },
3676 "true_next" : "tbl_act",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003677 "false_next" : "FabricIngress.filtering.ingress_port_vlan"
Yi Tsengbe342052017-11-03 10:21:23 -07003678 },
3679 {
3680 "name" : "node_6",
3681 "id" : 1,
3682 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003683 "filename" : "include/control/forwarding.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08003684 "line" : 222,
Yi Tsengbe342052017-11-03 10:21:23 -07003685 "column" : 11,
3686 "source_fragment" : "fabric_metadata.fwd_type == FWD_BRIDGING"
3687 },
3688 "expression" : {
3689 "type" : "expression",
3690 "value" : {
3691 "op" : "==",
3692 "left" : {
3693 "type" : "field",
3694 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
3695 },
3696 "right" : {
3697 "type" : "hexstr",
3698 "value" : "0x00"
3699 }
3700 }
3701 },
Yi Tseng27b9bc02018-04-12 14:52:40 +08003702 "true_next" : "FabricIngress.forwarding.bridging",
Yi Tsengbe342052017-11-03 10:21:23 -07003703 "false_next" : "node_8"
3704 },
3705 {
3706 "name" : "node_8",
3707 "id" : 2,
3708 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003709 "filename" : "include/control/forwarding.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08003710 "line" : 223,
Yi Tsengbe342052017-11-03 10:21:23 -07003711 "column" : 17,
3712 "source_fragment" : "fabric_metadata.fwd_type == FWD_MPLS"
3713 },
3714 "expression" : {
3715 "type" : "expression",
3716 "value" : {
3717 "op" : "==",
3718 "left" : {
3719 "type" : "field",
3720 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
3721 },
3722 "right" : {
3723 "type" : "hexstr",
3724 "value" : "0x01"
3725 }
3726 }
3727 },
Yi Tseng27b9bc02018-04-12 14:52:40 +08003728 "true_next" : "FabricIngress.forwarding.mpls",
Yi Tsengbd46d052018-01-22 17:18:16 -08003729 "false_next" : "node_11"
Yi Tsengbe342052017-11-03 10:21:23 -07003730 },
3731 {
Yi Tsengbd46d052018-01-22 17:18:16 -08003732 "name" : "node_11",
Yi Tsengbe342052017-11-03 10:21:23 -07003733 "id" : 3,
3734 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003735 "filename" : "include/control/forwarding.p4",
3736 "line" : 238,
Yi Tsengbe342052017-11-03 10:21:23 -07003737 "column" : 17,
3738 "source_fragment" : "fabric_metadata.fwd_type == FWD_IPV4_UNICAST"
3739 },
3740 "expression" : {
3741 "type" : "expression",
3742 "value" : {
3743 "op" : "==",
3744 "left" : {
3745 "type" : "field",
3746 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
3747 },
3748 "right" : {
3749 "type" : "hexstr",
3750 "value" : "0x02"
3751 }
3752 }
3753 },
Yi Tseng27b9bc02018-04-12 14:52:40 +08003754 "true_next" : "FabricIngress.forwarding.unicast_v4",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003755 "false_next" : "FabricIngress.forwarding.acl"
3756 },
3757 {
Carmelo Casconef645e842018-07-16 18:31:52 +02003758 "name" : "node_18",
3759 "id" : 4,
Yi Tseng1d842672017-11-28 16:06:52 -08003760 "expression" : {
3761 "type" : "expression",
3762 "value" : {
3763 "op" : "d2b",
3764 "left" : null,
3765 "right" : {
3766 "type" : "field",
3767 "value" : ["scalars", "next_tmp_0"]
3768 }
3769 }
3770 },
Carmelo Casconef645e842018-07-16 18:31:52 +02003771 "true_next" : "node_19",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003772 "false_next" : "FabricIngress.next.hashed"
Yi Tseng1d842672017-11-28 16:06:52 -08003773 },
3774 {
Carmelo Casconef645e842018-07-16 18:31:52 +02003775 "name" : "node_19",
3776 "id" : 5,
Yi Tseng1d842672017-11-28 16:06:52 -08003777 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003778 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08003779 "line" : 219,
Yi Tsengbd46d052018-01-22 17:18:16 -08003780 "column" : 16,
3781 "source_fragment" : "!hdr.mpls.isValid()"
Yi Tseng1d842672017-11-28 16:06:52 -08003782 },
3783 "expression" : {
3784 "type" : "expression",
3785 "value" : {
Yi Tsengbd46d052018-01-22 17:18:16 -08003786 "op" : "not",
3787 "left" : null,
Yi Tseng1d842672017-11-28 16:06:52 -08003788 "right" : {
Yi Tsengbd46d052018-01-22 17:18:16 -08003789 "type" : "expression",
3790 "value" : {
3791 "op" : "d2b",
3792 "left" : null,
3793 "right" : {
3794 "type" : "field",
3795 "value" : ["mpls", "$valid$"]
3796 }
3797 }
Yi Tseng1d842672017-11-28 16:06:52 -08003798 }
3799 }
3800 },
Carmelo Casconef645e842018-07-16 18:31:52 +02003801 "true_next" : "node_20",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003802 "false_next" : "FabricIngress.next.hashed"
Yi Tseng1d842672017-11-28 16:06:52 -08003803 },
3804 {
Carmelo Casconef645e842018-07-16 18:31:52 +02003805 "name" : "node_20",
3806 "id" : 6,
Yi Tseng1d842672017-11-28 16:06:52 -08003807 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003808 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08003809 "line" : 220,
Yi Tseng1d842672017-11-28 16:06:52 -08003810 "column" : 19,
3811 "source_fragment" : "hdr.ipv4.isValid()"
3812 },
3813 "expression" : {
3814 "type" : "expression",
3815 "value" : {
Yi Tsengbd46d052018-01-22 17:18:16 -08003816 "op" : "d2b",
3817 "left" : null,
3818 "right" : {
Yi Tseng1d842672017-11-28 16:06:52 -08003819 "type" : "field",
3820 "value" : ["ipv4", "$valid$"]
Yi Tseng1d842672017-11-28 16:06:52 -08003821 }
3822 }
3823 },
Yi Tsengbd46d052018-01-22 17:18:16 -08003824 "true_next" : "tbl_act_3",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003825 "false_next" : "FabricIngress.next.hashed"
3826 },
3827 {
Carmelo Casconef645e842018-07-16 18:31:52 +02003828 "name" : "node_24",
3829 "id" : 7,
Yi Tseng27b9bc02018-04-12 14:52:40 +08003830 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003831 "filename" : "include/control/port_counter.p4",
Yi Tsengbe342052017-11-03 10:21:23 -07003832 "line" : 27,
3833 "column" : 12,
3834 "source_fragment" : "standard_metadata.egress_spec < 511"
3835 },
3836 "expression" : {
3837 "type" : "expression",
3838 "value" : {
3839 "op" : "<",
3840 "left" : {
3841 "type" : "field",
3842 "value" : ["standard_metadata", "egress_spec"]
3843 },
3844 "right" : {
3845 "type" : "hexstr",
3846 "value" : "0x01ff"
3847 }
3848 }
3849 },
Carmelo Casconef645e842018-07-16 18:31:52 +02003850 "true_next" : "tbl_act_4",
3851 "false_next" : "node_26"
Yi Tsengbe342052017-11-03 10:21:23 -07003852 },
3853 {
Carmelo Casconef645e842018-07-16 18:31:52 +02003854 "name" : "node_26",
3855 "id" : 8,
Yi Tsengbe342052017-11-03 10:21:23 -07003856 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003857 "filename" : "include/control/port_counter.p4",
Yi Tsengbe342052017-11-03 10:21:23 -07003858 "line" : 30,
3859 "column" : 12,
3860 "source_fragment" : "standard_metadata.ingress_port < 511"
3861 },
3862 "expression" : {
3863 "type" : "expression",
3864 "value" : {
3865 "op" : "<",
3866 "left" : {
3867 "type" : "field",
3868 "value" : ["standard_metadata", "ingress_port"]
3869 },
3870 "right" : {
3871 "type" : "hexstr",
3872 "value" : "0x01ff"
3873 }
3874 }
3875 },
Yi Tseng3a5731e2018-01-22 11:38:58 -08003876 "false_next" : null,
Carmelo Casconef645e842018-07-16 18:31:52 +02003877 "true_next" : "tbl_act_5"
Yi Tseng3a5731e2018-01-22 11:38:58 -08003878 }
3879 ]
3880 },
3881 {
3882 "name" : "egress",
3883 "id" : 1,
3884 "source_info" : {
3885 "filename" : "fabric.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003886 "line" : 61,
Yi Tseng3a5731e2018-01-22 11:38:58 -08003887 "column" : 8,
3888 "source_fragment" : "FabricEgress"
3889 },
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003890 "init_table" : "FabricEgress.egress_next.egress_vlan",
Yi Tseng3a5731e2018-01-22 11:38:58 -08003891 "tables" : [
3892 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003893 "name" : "FabricEgress.egress_next.egress_vlan",
Carmelo Casconef645e842018-07-16 18:31:52 +02003894 "id" : 17,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003895 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003896 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08003897 "line" : 252,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003898 "column" : 10,
3899 "source_fragment" : "egress_vlan"
3900 },
3901 "key" : [
3902 {
3903 "match_type" : "exact",
3904 "name" : "hdr.vlan_tag.vlan_id",
3905 "target" : ["vlan_tag", "vlan_id"],
3906 "mask" : null
3907 },
3908 {
3909 "match_type" : "exact",
3910 "name" : "standard_metadata.egress_port",
3911 "target" : ["standard_metadata", "egress_port"],
3912 "mask" : null
3913 }
3914 ],
3915 "match_type" : "exact",
3916 "type" : "simple",
3917 "max_size" : 1024,
Yi Tseng47eac892018-07-11 02:17:04 +08003918 "with_counters" : true,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003919 "support_timeout" : false,
3920 "direct_meters" : null,
Carmelo Casconef645e842018-07-16 18:31:52 +02003921 "action_ids" : [39, 37],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003922 "actions" : ["FabricEgress.egress_next.pop_vlan", "nop"],
Carmelo Casconef645e842018-07-16 18:31:52 +02003923 "base_default_next" : "node_31",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003924 "next_tables" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003925 "FabricEgress.egress_next.pop_vlan" : "node_31",
3926 "nop" : "node_31"
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003927 },
3928 "default_entry" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003929 "action_id" : 37,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003930 "action_const" : false,
3931 "action_data" : [],
3932 "action_entry_const" : false
3933 }
3934 },
3935 {
3936 "name" : "tbl_pkt_io_egress_pop_vlan",
Carmelo Casconef645e842018-07-16 18:31:52 +02003937 "id" : 18,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003938 "key" : [],
3939 "match_type" : "exact",
3940 "type" : "simple",
3941 "max_size" : 1024,
3942 "with_counters" : false,
3943 "support_timeout" : false,
3944 "direct_meters" : null,
Carmelo Casconef645e842018-07-16 18:31:52 +02003945 "action_ids" : [38],
Esin Karaman971fb7f2017-12-28 13:44:52 +00003946 "actions" : ["FabricEgress.pkt_io_egress.pop_vlan"],
Carmelo Casconef645e842018-07-16 18:31:52 +02003947 "base_default_next" : "tbl_act_6",
Esin Karaman971fb7f2017-12-28 13:44:52 +00003948 "next_tables" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003949 "FabricEgress.pkt_io_egress.pop_vlan" : "tbl_act_6"
Esin Karaman971fb7f2017-12-28 13:44:52 +00003950 },
3951 "default_entry" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003952 "action_id" : 38,
Esin Karaman971fb7f2017-12-28 13:44:52 +00003953 "action_const" : true,
3954 "action_data" : [],
3955 "action_entry_const" : true
3956 }
3957 },
3958 {
Carmelo Casconef645e842018-07-16 18:31:52 +02003959 "name" : "tbl_act_6",
3960 "id" : 19,
Esin Karaman971fb7f2017-12-28 13:44:52 +00003961 "key" : [],
3962 "match_type" : "exact",
3963 "type" : "simple",
3964 "max_size" : 1024,
3965 "with_counters" : false,
3966 "support_timeout" : false,
3967 "direct_meters" : null,
Carmelo Casconef645e842018-07-16 18:31:52 +02003968 "action_ids" : [40],
3969 "actions" : ["act_6"],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003970 "base_default_next" : null,
3971 "next_tables" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003972 "act_6" : null
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003973 },
3974 "default_entry" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003975 "action_id" : 40,
Yi Tseng3a5731e2018-01-22 11:38:58 -08003976 "action_const" : true,
3977 "action_data" : [],
3978 "action_entry_const" : true
3979 }
3980 }
3981 ],
3982 "action_profiles" : [],
3983 "conditionals" : [
Yi Tseng1d842672017-11-28 16:06:52 -08003984 {
Carmelo Casconef645e842018-07-16 18:31:52 +02003985 "name" : "node_31",
3986 "id" : 9,
Yi Tsengbe342052017-11-03 10:21:23 -07003987 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003988 "filename" : "include/control/packetio.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003989 "line" : 42,
Yi Tsengbe342052017-11-03 10:21:23 -07003990 "column" : 12,
Carmelo Casconeb531b682018-01-30 17:55:56 -08003991 "source_fragment" : "standard_metadata.egress_port == 255"
Yi Tsengbe342052017-11-03 10:21:23 -07003992 },
3993 "expression" : {
3994 "type" : "expression",
3995 "value" : {
3996 "op" : "==",
3997 "left" : {
3998 "type" : "field",
3999 "value" : ["standard_metadata", "egress_port"]
4000 },
4001 "right" : {
4002 "type" : "hexstr",
4003 "value" : "0x00ff"
4004 }
4005 }
4006 },
4007 "false_next" : null,
Carmelo Casconef645e842018-07-16 18:31:52 +02004008 "true_next" : "node_32"
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004009 },
4010 {
Carmelo Casconef645e842018-07-16 18:31:52 +02004011 "name" : "node_32",
4012 "id" : 10,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004013 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004014 "filename" : "include/control/packetio.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004015 "line" : 43,
4016 "column" : 16,
Carmelo Cascone228092b2018-06-15 20:41:10 +02004017 "source_fragment" : "hdr.vlan_tag.isValid() && fabric_metadata.pop_vlan_when_packet_in == true"
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004018 },
4019 "expression" : {
4020 "type" : "expression",
4021 "value" : {
4022 "op" : "and",
4023 "left" : {
4024 "type" : "expression",
4025 "value" : {
4026 "op" : "d2b",
4027 "left" : null,
4028 "right" : {
4029 "type" : "field",
4030 "value" : ["vlan_tag", "$valid$"]
4031 }
4032 }
4033 },
4034 "right" : {
4035 "type" : "expression",
4036 "value" : {
Carmelo Cascone228092b2018-06-15 20:41:10 +02004037 "op" : "==",
4038 "left" : {
4039 "type" : "expression",
4040 "value" : {
4041 "op" : "d2b",
4042 "left" : null,
4043 "right" : {
4044 "type" : "field",
4045 "value" : ["scalars", "fabric_metadata_t.pop_vlan_when_packet_in"]
4046 }
4047 }
4048 },
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004049 "right" : {
Carmelo Cascone228092b2018-06-15 20:41:10 +02004050 "type" : "bool",
4051 "value" : true
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004052 }
4053 }
4054 }
4055 }
4056 },
4057 "true_next" : "tbl_pkt_io_egress_pop_vlan",
Carmelo Casconef645e842018-07-16 18:31:52 +02004058 "false_next" : "tbl_act_6"
Yi Tsengbe342052017-11-03 10:21:23 -07004059 }
4060 ]
4061 }
4062 ],
4063 "checksums" : [
4064 {
4065 "name" : "cksum",
4066 "id" : 0,
4067 "target" : ["ipv4", "hdr_checksum"],
4068 "type" : "generic",
Yi Tsengbd46d052018-01-22 17:18:16 -08004069 "calculation" : "calc",
4070 "if_cond" : {
4071 "type" : "expression",
4072 "value" : {
4073 "op" : "d2b",
4074 "left" : null,
4075 "right" : {
4076 "type" : "field",
4077 "value" : ["ipv4", "$valid$"]
4078 }
4079 }
4080 }
Yi Tsengbe342052017-11-03 10:21:23 -07004081 },
4082 {
4083 "name" : "cksum_0",
4084 "id" : 1,
Yi Tsengbe342052017-11-03 10:21:23 -07004085 "target" : ["ipv4", "hdr_checksum"],
4086 "type" : "generic",
Yi Tsengbd46d052018-01-22 17:18:16 -08004087 "calculation" : "calc_0",
4088 "if_cond" : {
4089 "type" : "expression",
4090 "value" : {
4091 "op" : "d2b",
4092 "left" : null,
4093 "right" : {
4094 "type" : "field",
4095 "value" : ["ipv4", "$valid$"]
4096 }
4097 }
4098 }
Yi Tsengbe342052017-11-03 10:21:23 -07004099 }
4100 ],
4101 "force_arith" : [],
4102 "extern_instances" : [],
4103 "field_aliases" : [
4104 [
4105 "queueing_metadata.enq_timestamp",
4106 ["standard_metadata", "enq_timestamp"]
4107 ],
4108 [
4109 "queueing_metadata.enq_qdepth",
4110 ["standard_metadata", "enq_qdepth"]
4111 ],
4112 [
4113 "queueing_metadata.deq_timedelta",
4114 ["standard_metadata", "deq_timedelta"]
4115 ],
4116 [
4117 "queueing_metadata.deq_qdepth",
4118 ["standard_metadata", "deq_qdepth"]
4119 ],
4120 [
4121 "intrinsic_metadata.ingress_global_timestamp",
4122 ["standard_metadata", "ingress_global_timestamp"]
4123 ],
4124 [
Yi Tseng27b9bc02018-04-12 14:52:40 +08004125 "intrinsic_metadata.egress_global_timestamp",
4126 ["standard_metadata", "egress_global_timestamp"]
4127 ],
4128 [
Yi Tsengbe342052017-11-03 10:21:23 -07004129 "intrinsic_metadata.lf_field_list",
4130 ["standard_metadata", "lf_field_list"]
4131 ],
4132 [
4133 "intrinsic_metadata.mcast_grp",
4134 ["standard_metadata", "mcast_grp"]
4135 ],
4136 [
4137 "intrinsic_metadata.resubmit_flag",
4138 ["standard_metadata", "resubmit_flag"]
4139 ],
4140 [
4141 "intrinsic_metadata.egress_rid",
4142 ["standard_metadata", "egress_rid"]
Yi Tseng27b9bc02018-04-12 14:52:40 +08004143 ],
4144 [
4145 "intrinsic_metadata.recirculate_flag",
4146 ["standard_metadata", "recirculate_flag"]
Yi Tsengbe342052017-11-03 10:21:23 -07004147 ]
Carmelo Cascone6af4e172018-06-15 16:01:30 +02004148 ],
4149 "program" : "fabric.p4",
4150 "__meta__" : {
4151 "version" : [2, 18],
4152 "compiler" : "https://github.com/p4lang/p4c"
4153 }
Yi Tsengbe342052017-11-03 10:21:23 -07004154}