blob: 6a4bdb1a7bd708de64586e959ccf8c4cf83fe5a8 [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],
Carmelo Cascone8a715f82018-08-20 23:16:27 -070010 ["filtering_tmp_0", 1, false],
Carmelo Casconea5400af2018-07-17 22:11:54 +020011 ["next_tmp_2", 1, false],
12 ["next_tmp_3", 1, false],
13 ["next_tmp_4", 1, false],
14 ["next_hasReturned_0", 1, false],
Yi Tsengbe342052017-11-03 10:21:23 -070015 ["fabric_metadata_t.fwd_type", 3, false],
16 ["fabric_metadata_t.next_id", 32, false],
Yi Tseng20f9e7b2018-05-24 23:27:39 +080017 ["fabric_metadata_t.pop_vlan_when_packet_in", 1, false],
Carmelo Cascone1e8843f2018-07-19 19:01:12 +020018 ["fabric_metadata_t.is_multicast", 1, false],
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -070019 ["fabric_metadata_t.is_controller_packet_out", 1, false],
Carmelo Cascone1e8843f2018-07-19 19:01:12 +020020 ["fabric_metadata_t.clone_to_cpu", 1, false],
Yi Tsengbe342052017-11-03 10:21:23 -070021 ["fabric_metadata_t.ip_proto", 8, false],
22 ["fabric_metadata_t.l4_src_port", 16, false],
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -070023 ["fabric_metadata_t.l4_dst_port", 16, false]
Yi Tsengc6844f52017-12-19 11:58:25 -080024 ]
25 },
26 {
Carmelo Cascone6af4e172018-06-15 16:01:30 +020027 "name" : "standard_metadata",
Yi Tsengc6844f52017-12-19 11:58:25 -080028 "id" : 1,
29 "fields" : [
Carmelo Cascone6af4e172018-06-15 16:01:30 +020030 ["ingress_port", 9, false],
31 ["egress_spec", 9, false],
32 ["egress_port", 9, false],
33 ["clone_spec", 32, false],
34 ["instance_type", 32, false],
35 ["drop", 1, false],
36 ["recirculate_port", 16, false],
37 ["packet_length", 32, false],
38 ["enq_timestamp", 32, false],
39 ["enq_qdepth", 19, false],
40 ["deq_timedelta", 32, false],
41 ["deq_qdepth", 19, false],
42 ["ingress_global_timestamp", 48, false],
43 ["egress_global_timestamp", 48, false],
44 ["lf_field_list", 32, false],
45 ["mcast_grp", 16, false],
46 ["resubmit_flag", 32, false],
47 ["egress_rid", 16, false],
48 ["checksum_error", 1, false],
49 ["recirculate_flag", 32, false],
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -070050 ["parser_error", 32, false],
Carmelo Cascone6af4e172018-06-15 16:01:30 +020051 ["_padding", 5, false]
52 ]
53 },
54 {
55 "name" : "ethernet_t",
56 "id" : 2,
57 "fields" : [
Yi Tsengc6844f52017-12-19 11:58:25 -080058 ["dst_addr", 48, false],
59 ["src_addr", 48, false],
60 ["ether_type", 16, false]
61 ]
62 },
63 {
64 "name" : "vlan_tag_t",
Carmelo Cascone6af4e172018-06-15 16:01:30 +020065 "id" : 3,
Yi Tsengc6844f52017-12-19 11:58:25 -080066 "fields" : [
67 ["pri", 3, false],
68 ["cfi", 1, false],
69 ["vlan_id", 12, false],
70 ["ether_type", 16, false]
71 ]
72 },
73 {
74 "name" : "mpls_t",
Carmelo Cascone6af4e172018-06-15 16:01:30 +020075 "id" : 4,
Yi Tsengc6844f52017-12-19 11:58:25 -080076 "fields" : [
77 ["label", 20, false],
78 ["tc", 3, false],
79 ["bos", 1, false],
80 ["ttl", 8, false]
Yi Tsengbe342052017-11-03 10:21:23 -070081 ]
82 },
83 {
84 "name" : "ipv4_t",
Carmelo Cascone6af4e172018-06-15 16:01:30 +020085 "id" : 5,
Yi Tsengbe342052017-11-03 10:21:23 -070086 "fields" : [
87 ["version", 4, false],
88 ["ihl", 4, false],
Jonghwan Hyuned478dc2018-08-06 15:35:18 +090089 ["dscp", 6, false],
90 ["ecn", 2, false],
Yi Tsengbe342052017-11-03 10:21:23 -070091 ["total_len", 16, false],
92 ["identification", 16, false],
93 ["flags", 3, false],
94 ["frag_offset", 13, false],
95 ["ttl", 8, false],
96 ["protocol", 8, false],
97 ["hdr_checksum", 16, false],
98 ["src_addr", 32, false],
99 ["dst_addr", 32, false]
100 ]
101 },
102 {
Yi Tseng47eac892018-07-11 02:17:04 +0800103 "name" : "arp_t",
Carmelo Casconef645e842018-07-16 18:31:52 +0200104 "id" : 6,
Yi Tseng47eac892018-07-11 02:17:04 +0800105 "fields" : [
Yi Tsengbe342052017-11-03 10:21:23 -0700106 ["hw_type", 16, false],
107 ["proto_type", 16, false],
108 ["hw_addr_len", 8, false],
109 ["proto_addr_len", 8, false],
110 ["opcode", 16, false]
111 ]
112 },
113 {
114 "name" : "tcp_t",
Carmelo Casconef645e842018-07-16 18:31:52 +0200115 "id" : 7,
Yi Tsengbe342052017-11-03 10:21:23 -0700116 "fields" : [
117 ["src_port", 16, false],
118 ["dst_port", 16, false],
119 ["seq_no", 32, false],
120 ["ack_no", 32, false],
121 ["data_offset", 4, false],
122 ["res", 3, false],
123 ["ecn", 3, false],
124 ["ctrl", 6, false],
125 ["window", 16, false],
126 ["checksum", 16, false],
127 ["urgent_ptr", 16, false]
128 ]
129 },
130 {
131 "name" : "udp_t",
Carmelo Casconef645e842018-07-16 18:31:52 +0200132 "id" : 8,
Yi Tsengbe342052017-11-03 10:21:23 -0700133 "fields" : [
134 ["src_port", 16, false],
135 ["dst_port", 16, false],
136 ["len", 16, false],
137 ["checksum", 16, false]
138 ]
139 },
140 {
141 "name" : "icmp_t",
Carmelo Casconef645e842018-07-16 18:31:52 +0200142 "id" : 9,
Yi Tsengbe342052017-11-03 10:21:23 -0700143 "fields" : [
144 ["icmp_type", 8, false],
145 ["icmp_code", 8, false],
Yi Tsengf73a5532017-11-17 15:58:57 -0800146 ["checksum", 16, false],
147 ["identifier", 16, false],
148 ["sequence_number", 16, false],
149 ["timestamp", 64, false]
Yi Tsengbe342052017-11-03 10:21:23 -0700150 ]
151 },
152 {
153 "name" : "packet_out_header_t",
Carmelo Casconef645e842018-07-16 18:31:52 +0200154 "id" : 10,
Yi Tsengbe342052017-11-03 10:21:23 -0700155 "fields" : [
156 ["egress_port", 9, false],
Yi Tseng1d842672017-11-28 16:06:52 -0800157 ["_pad", 7, false]
Yi Tsengbe342052017-11-03 10:21:23 -0700158 ]
159 },
160 {
161 "name" : "packet_in_header_t",
Carmelo Casconef645e842018-07-16 18:31:52 +0200162 "id" : 11,
Yi Tsengbe342052017-11-03 10:21:23 -0700163 "fields" : [
164 ["ingress_port", 9, false],
Yi Tseng1d842672017-11-28 16:06:52 -0800165 ["_pad", 7, false]
Yi Tsengbe342052017-11-03 10:21:23 -0700166 ]
Yi Tsengbe342052017-11-03 10:21:23 -0700167 }
168 ],
169 "headers" : [
170 {
Yi Tsengbe342052017-11-03 10:21:23 -0700171 "name" : "scalars",
Yi Tsengc6844f52017-12-19 11:58:25 -0800172 "id" : 0,
Yi Tsengbe342052017-11-03 10:21:23 -0700173 "header_type" : "scalars_0",
174 "metadata" : true,
175 "pi_omit" : true
176 },
177 {
178 "name" : "standard_metadata",
Yi Tsengc6844f52017-12-19 11:58:25 -0800179 "id" : 1,
Yi Tsengbe342052017-11-03 10:21:23 -0700180 "header_type" : "standard_metadata",
181 "metadata" : true,
182 "pi_omit" : true
183 },
184 {
185 "name" : "ethernet",
Yi Tsengc6844f52017-12-19 11:58:25 -0800186 "id" : 2,
Yi Tsengbe342052017-11-03 10:21:23 -0700187 "header_type" : "ethernet_t",
188 "metadata" : false,
189 "pi_omit" : true
190 },
191 {
192 "name" : "vlan_tag",
Yi Tsengc6844f52017-12-19 11:58:25 -0800193 "id" : 3,
Yi Tsengbe342052017-11-03 10:21:23 -0700194 "header_type" : "vlan_tag_t",
195 "metadata" : false,
196 "pi_omit" : true
197 },
198 {
Yi Tsengbe342052017-11-03 10:21:23 -0700199 "name" : "mpls",
Yi Tsengbd46d052018-01-22 17:18:16 -0800200 "id" : 4,
Yi Tsengbe342052017-11-03 10:21:23 -0700201 "header_type" : "mpls_t",
202 "metadata" : false,
203 "pi_omit" : true
204 },
205 {
206 "name" : "ipv4",
Yi Tsengbd46d052018-01-22 17:18:16 -0800207 "id" : 5,
Yi Tsengbe342052017-11-03 10:21:23 -0700208 "header_type" : "ipv4_t",
209 "metadata" : false,
210 "pi_omit" : true
211 },
212 {
Yi Tseng47eac892018-07-11 02:17:04 +0800213 "name" : "arp",
Carmelo Casconef645e842018-07-16 18:31:52 +0200214 "id" : 6,
Yi Tsengbe342052017-11-03 10:21:23 -0700215 "header_type" : "arp_t",
216 "metadata" : false,
217 "pi_omit" : true
218 },
219 {
220 "name" : "tcp",
Carmelo Casconef645e842018-07-16 18:31:52 +0200221 "id" : 7,
Yi Tsengbe342052017-11-03 10:21:23 -0700222 "header_type" : "tcp_t",
223 "metadata" : false,
224 "pi_omit" : true
225 },
226 {
227 "name" : "udp",
Carmelo Casconef645e842018-07-16 18:31:52 +0200228 "id" : 8,
Yi Tsengbe342052017-11-03 10:21:23 -0700229 "header_type" : "udp_t",
230 "metadata" : false,
231 "pi_omit" : true
232 },
233 {
234 "name" : "icmp",
Carmelo Casconef645e842018-07-16 18:31:52 +0200235 "id" : 9,
Yi Tsengbe342052017-11-03 10:21:23 -0700236 "header_type" : "icmp_t",
237 "metadata" : false,
238 "pi_omit" : true
239 },
240 {
241 "name" : "packet_out",
Carmelo Casconef645e842018-07-16 18:31:52 +0200242 "id" : 10,
Yi Tsengbe342052017-11-03 10:21:23 -0700243 "header_type" : "packet_out_header_t",
244 "metadata" : false,
245 "pi_omit" : true
246 },
247 {
248 "name" : "packet_in",
Carmelo Casconef645e842018-07-16 18:31:52 +0200249 "id" : 11,
Yi Tsengbe342052017-11-03 10:21:23 -0700250 "header_type" : "packet_in_header_t",
251 "metadata" : false,
252 "pi_omit" : true
253 }
254 ],
255 "header_stacks" : [],
256 "header_union_types" : [],
257 "header_unions" : [],
258 "header_union_stacks" : [],
259 "field_lists" : [],
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700260 "errors" : [
261 ["NoError", 1],
262 ["PacketTooShort", 2],
263 ["NoMatch", 3],
264 ["StackOutOfBounds", 4],
265 ["HeaderTooShort", 5],
266 ["ParserTimeout", 6]
267 ],
Yi Tsengbe342052017-11-03 10:21:23 -0700268 "enums" : [],
269 "parsers" : [
270 {
271 "name" : "parser",
272 "id" : 0,
273 "init_state" : "start",
274 "parse_states" : [
275 {
276 "name" : "start",
277 "id" : 0,
278 "parser_ops" : [],
279 "transitions" : [
280 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800281 "type" : "hexstr",
Yi Tsengbe342052017-11-03 10:21:23 -0700282 "value" : "0x00ff",
283 "mask" : null,
284 "next_state" : "parse_packet_out"
285 },
286 {
287 "value" : "default",
288 "mask" : null,
289 "next_state" : "parse_ethernet"
290 }
291 ],
292 "transition_key" : [
293 {
294 "type" : "field",
295 "value" : ["standard_metadata", "ingress_port"]
296 }
297 ]
298 },
299 {
300 "name" : "parse_packet_out",
301 "id" : 1,
302 "parser_ops" : [
303 {
304 "parameters" : [
305 {
306 "type" : "regular",
307 "value" : "packet_out"
308 }
309 ],
310 "op" : "extract"
311 }
312 ],
313 "transitions" : [
314 {
315 "value" : "default",
316 "mask" : null,
317 "next_state" : "parse_ethernet"
318 }
319 ],
320 "transition_key" : []
321 },
322 {
323 "name" : "parse_ethernet",
324 "id" : 2,
325 "parser_ops" : [
326 {
327 "parameters" : [
328 {
329 "type" : "regular",
330 "value" : "ethernet"
331 }
332 ],
333 "op" : "extract"
334 }
335 ],
336 "transitions" : [
337 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800338 "type" : "hexstr",
Yi Tsengbe342052017-11-03 10:21:23 -0700339 "value" : "0x8100",
340 "mask" : null,
341 "next_state" : "parse_vlan_tag"
342 },
343 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800344 "type" : "hexstr",
Yi Tsengbe342052017-11-03 10:21:23 -0700345 "value" : "0x8847",
346 "mask" : null,
347 "next_state" : "parse_mpls"
348 },
349 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800350 "type" : "hexstr",
Yi Tsengbe342052017-11-03 10:21:23 -0700351 "value" : "0x0806",
352 "mask" : null,
353 "next_state" : "parse_arp"
354 },
355 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800356 "type" : "hexstr",
Yi Tsengbe342052017-11-03 10:21:23 -0700357 "value" : "0x0800",
358 "mask" : null,
359 "next_state" : "parse_ipv4"
360 },
361 {
Yi Tsengbe342052017-11-03 10:21:23 -0700362 "value" : "default",
363 "mask" : null,
364 "next_state" : null
365 }
366 ],
367 "transition_key" : [
368 {
369 "type" : "field",
370 "value" : ["ethernet", "ether_type"]
371 }
372 ]
373 },
374 {
375 "name" : "parse_vlan_tag",
376 "id" : 3,
377 "parser_ops" : [
378 {
379 "parameters" : [
380 {
381 "type" : "regular",
382 "value" : "vlan_tag"
383 }
384 ],
385 "op" : "extract"
386 }
387 ],
388 "transitions" : [
389 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800390 "type" : "hexstr",
Yi Tsengbe342052017-11-03 10:21:23 -0700391 "value" : "0x0806",
392 "mask" : null,
393 "next_state" : "parse_arp"
394 },
395 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800396 "type" : "hexstr",
Yi Tsengbe342052017-11-03 10:21:23 -0700397 "value" : "0x0800",
398 "mask" : null,
399 "next_state" : "parse_ipv4"
400 },
401 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800402 "type" : "hexstr",
Yi Tsengbd46d052018-01-22 17:18:16 -0800403 "value" : "0x8847",
Yi Tsengbe342052017-11-03 10:21:23 -0700404 "mask" : null,
Yi Tsengbd46d052018-01-22 17:18:16 -0800405 "next_state" : "parse_mpls"
Yi Tsengbe342052017-11-03 10:21:23 -0700406 },
407 {
408 "value" : "default",
409 "mask" : null,
410 "next_state" : null
411 }
412 ],
413 "transition_key" : [
414 {
415 "type" : "field",
416 "value" : ["vlan_tag", "ether_type"]
417 }
418 ]
419 },
420 {
421 "name" : "parse_mpls",
Yi Tsengbd46d052018-01-22 17:18:16 -0800422 "id" : 4,
Yi Tsengbe342052017-11-03 10:21:23 -0700423 "parser_ops" : [
424 {
425 "parameters" : [
426 {
427 "type" : "regular",
428 "value" : "mpls"
429 }
430 ],
431 "op" : "extract"
432 },
433 {
434 "parameters" : [
435 {
436 "type" : "field",
Yi Tsengc6844f52017-12-19 11:58:25 -0800437 "value" : ["scalars", "tmp"]
Yi Tsengbe342052017-11-03 10:21:23 -0700438 },
439 {
440 "type" : "lookahead",
Yi Tsengc6844f52017-12-19 11:58:25 -0800441 "value" : [0, 4]
Yi Tsengbe342052017-11-03 10:21:23 -0700442 }
443 ],
444 "op" : "set"
445 }
446 ],
447 "transitions" : [
448 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800449 "type" : "hexstr",
Yi Tsengbe342052017-11-03 10:21:23 -0700450 "value" : "0x04",
451 "mask" : null,
452 "next_state" : "parse_ipv4"
453 },
454 {
Yi Tsengbe342052017-11-03 10:21:23 -0700455 "value" : "default",
456 "mask" : null,
457 "next_state" : "parse_ethernet"
458 }
459 ],
460 "transition_key" : [
461 {
462 "type" : "field",
Yi Tsengc6844f52017-12-19 11:58:25 -0800463 "value" : ["scalars", "tmp"]
Yi Tsengbe342052017-11-03 10:21:23 -0700464 }
465 ]
466 },
467 {
468 "name" : "parse_ipv4",
Yi Tsengbd46d052018-01-22 17:18:16 -0800469 "id" : 5,
Yi Tsengbe342052017-11-03 10:21:23 -0700470 "parser_ops" : [
471 {
472 "parameters" : [
473 {
474 "type" : "regular",
475 "value" : "ipv4"
476 }
477 ],
478 "op" : "extract"
479 },
480 {
481 "parameters" : [
482 {
483 "type" : "field",
484 "value" : ["scalars", "fabric_metadata_t.ip_proto"]
485 },
486 {
487 "type" : "field",
488 "value" : ["ipv4", "protocol"]
489 }
490 ],
491 "op" : "set"
492 }
493 ],
494 "transitions" : [
495 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800496 "type" : "hexstr",
Yi Tsengbe342052017-11-03 10:21:23 -0700497 "value" : "0x06",
498 "mask" : null,
499 "next_state" : "parse_tcp"
500 },
501 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800502 "type" : "hexstr",
Yi Tsengbe342052017-11-03 10:21:23 -0700503 "value" : "0x11",
504 "mask" : null,
505 "next_state" : "parse_udp"
506 },
507 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800508 "type" : "hexstr",
Yi Tsengbe342052017-11-03 10:21:23 -0700509 "value" : "0x01",
510 "mask" : null,
511 "next_state" : "parse_icmp"
512 },
513 {
514 "value" : "default",
515 "mask" : null,
516 "next_state" : null
517 }
518 ],
519 "transition_key" : [
520 {
521 "type" : "field",
522 "value" : ["ipv4", "protocol"]
523 }
524 ]
525 },
526 {
Yi Tseng47eac892018-07-11 02:17:04 +0800527 "name" : "parse_arp",
Carmelo Casconef645e842018-07-16 18:31:52 +0200528 "id" : 6,
Yi Tseng47eac892018-07-11 02:17:04 +0800529 "parser_ops" : [
530 {
531 "parameters" : [
532 {
533 "type" : "regular",
Yi Tsengbe342052017-11-03 10:21:23 -0700534 "value" : "arp"
535 }
536 ],
537 "op" : "extract"
538 }
539 ],
540 "transitions" : [
541 {
542 "value" : "default",
543 "mask" : null,
544 "next_state" : null
545 }
546 ],
547 "transition_key" : []
548 },
549 {
550 "name" : "parse_tcp",
Carmelo Casconef645e842018-07-16 18:31:52 +0200551 "id" : 7,
Yi Tsengbe342052017-11-03 10:21:23 -0700552 "parser_ops" : [
553 {
554 "parameters" : [
555 {
556 "type" : "regular",
557 "value" : "tcp"
558 }
559 ],
560 "op" : "extract"
561 },
562 {
563 "parameters" : [
564 {
565 "type" : "field",
566 "value" : ["scalars", "fabric_metadata_t.l4_src_port"]
567 },
568 {
569 "type" : "field",
570 "value" : ["tcp", "src_port"]
571 }
572 ],
573 "op" : "set"
574 },
575 {
576 "parameters" : [
577 {
578 "type" : "field",
579 "value" : ["scalars", "fabric_metadata_t.l4_dst_port"]
580 },
581 {
582 "type" : "field",
583 "value" : ["tcp", "dst_port"]
584 }
585 ],
586 "op" : "set"
587 }
588 ],
589 "transitions" : [
590 {
591 "value" : "default",
592 "mask" : null,
593 "next_state" : null
594 }
595 ],
596 "transition_key" : []
597 },
598 {
599 "name" : "parse_udp",
Carmelo Casconef645e842018-07-16 18:31:52 +0200600 "id" : 8,
Yi Tsengbe342052017-11-03 10:21:23 -0700601 "parser_ops" : [
602 {
603 "parameters" : [
604 {
605 "type" : "regular",
606 "value" : "udp"
607 }
608 ],
609 "op" : "extract"
610 },
611 {
612 "parameters" : [
613 {
614 "type" : "field",
615 "value" : ["scalars", "fabric_metadata_t.l4_src_port"]
616 },
617 {
618 "type" : "field",
619 "value" : ["udp", "src_port"]
620 }
621 ],
622 "op" : "set"
623 },
624 {
625 "parameters" : [
626 {
627 "type" : "field",
628 "value" : ["scalars", "fabric_metadata_t.l4_dst_port"]
629 },
630 {
631 "type" : "field",
632 "value" : ["udp", "dst_port"]
633 }
634 ],
635 "op" : "set"
636 }
637 ],
638 "transitions" : [
639 {
640 "value" : "default",
641 "mask" : null,
642 "next_state" : null
643 }
644 ],
Carmelo Cascone79a3a312018-08-16 17:14:43 -0700645 "transition_key" : [
646 {
647 "type" : "field",
648 "value" : ["udp", "dst_port"]
649 }
650 ]
Yi Tsengbe342052017-11-03 10:21:23 -0700651 },
652 {
653 "name" : "parse_icmp",
Carmelo Casconef645e842018-07-16 18:31:52 +0200654 "id" : 9,
Yi Tsengbe342052017-11-03 10:21:23 -0700655 "parser_ops" : [
656 {
657 "parameters" : [
658 {
659 "type" : "regular",
660 "value" : "icmp"
661 }
662 ],
663 "op" : "extract"
664 }
665 ],
666 "transitions" : [
667 {
668 "value" : "default",
669 "mask" : null,
670 "next_state" : null
671 }
672 ],
673 "transition_key" : []
674 }
675 ]
676 }
677 ],
Yi Tseng27b9bc02018-04-12 14:52:40 +0800678 "parse_vsets" : [],
Yi Tsengbe342052017-11-03 10:21:23 -0700679 "deparsers" : [
680 {
681 "name" : "deparser",
682 "id" : 0,
683 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +0200684 "filename" : "include/parser.p4",
Carmelo Cascone79a3a312018-08-16 17:14:43 -0700685 "line" : 228,
Yi Tsengbe342052017-11-03 10:21:23 -0700686 "column" : 8,
687 "source_fragment" : "FabricDeparser"
688 },
Carmelo Casconef645e842018-07-16 18:31:52 +0200689 "order" : ["packet_in", "ethernet", "vlan_tag", "mpls", "arp", "ipv4", "tcp", "udp", "icmp"]
Yi Tsengbe342052017-11-03 10:21:23 -0700690 }
691 ],
692 "meter_arrays" : [],
693 "counter_arrays" : [
694 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800695 "name" : "FabricIngress.filtering.ingress_port_vlan_counter",
Yi Tseng1d842672017-11-28 16:06:52 -0800696 "id" : 0,
Yi Tseng3a5731e2018-01-22 11:38:58 -0800697 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700698 "binding" : "FabricIngress.filtering.ingress_port_vlan",
699 "source_info" : {
700 "filename" : "include/control/filtering.p4",
701 "line" : 34,
702 "column" : 50,
703 "source_fragment" : "ingress_port_vlan_counter"
704 }
Yi Tseng3a5731e2018-01-22 11:38:58 -0800705 },
706 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800707 "name" : "FabricIngress.filtering.fwd_classifier_counter",
Yi Tseng3a5731e2018-01-22 11:38:58 -0800708 "id" : 1,
709 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700710 "binding" : "FabricIngress.filtering.fwd_classifier",
711 "source_info" : {
712 "filename" : "include/control/filtering.p4",
713 "line" : 96,
714 "column" : 50,
715 "source_fragment" : "fwd_classifier_counter"
716 }
Yi Tseng3a5731e2018-01-22 11:38:58 -0800717 },
718 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800719 "name" : "FabricIngress.forwarding.bridging_counter",
Yi Tseng3a5731e2018-01-22 11:38:58 -0800720 "id" : 2,
721 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700722 "binding" : "FabricIngress.forwarding.bridging",
723 "source_info" : {
724 "filename" : "include/control/forwarding.p4",
725 "line" : 34,
726 "column" : 50,
727 "source_fragment" : "bridging_counter"
728 }
Yi Tseng3a5731e2018-01-22 11:38:58 -0800729 },
730 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800731 "name" : "FabricIngress.forwarding.mpls_counter",
Yi Tseng3a5731e2018-01-22 11:38:58 -0800732 "id" : 3,
733 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700734 "binding" : "FabricIngress.forwarding.mpls",
735 "source_info" : {
736 "filename" : "include/control/forwarding.p4",
737 "line" : 57,
738 "column" : 50,
739 "source_fragment" : "mpls_counter"
740 }
Yi Tseng3a5731e2018-01-22 11:38:58 -0800741 },
742 {
Charles Chan384aea22018-08-23 22:08:02 -0700743 "name" : "FabricIngress.forwarding.routing_v4_counter",
Yi Tseng3a5731e2018-01-22 11:38:58 -0800744 "id" : 4,
745 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700746 "binding" : "FabricIngress.forwarding.routing_v4",
747 "source_info" : {
748 "filename" : "include/control/forwarding.p4",
749 "line" : 80,
750 "column" : 50,
751 "source_fragment" : "routing_v4_counter"
752 }
Yi Tseng3a5731e2018-01-22 11:38:58 -0800753 },
754 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800755 "name" : "FabricIngress.forwarding.acl_counter",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -0800756 "id" : 5,
Yi Tseng3a5731e2018-01-22 11:38:58 -0800757 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700758 "binding" : "FabricIngress.forwarding.acl",
759 "source_info" : {
760 "filename" : "include/control/forwarding.p4",
761 "line" : 107,
762 "column" : 50,
763 "source_fragment" : "acl_counter"
764 }
Yi Tseng3a5731e2018-01-22 11:38:58 -0800765 },
766 {
Yi Tseng47eac892018-07-11 02:17:04 +0800767 "name" : "FabricIngress.next.vlan_meta_counter",
Carmelo Casconef645e842018-07-16 18:31:52 +0200768 "id" : 6,
Yi Tseng47eac892018-07-11 02:17:04 +0800769 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700770 "binding" : "FabricIngress.next.vlan_meta",
771 "source_info" : {
772 "filename" : "include/control/next.p4",
773 "line" : 58,
774 "column" : 50,
775 "source_fragment" : "vlan_meta_counter"
776 }
Yi Tseng20f9e7b2018-05-24 23:27:39 +0800777 },
778 {
779 "name" : "FabricIngress.next.simple_counter",
Carmelo Casconef645e842018-07-16 18:31:52 +0200780 "id" : 7,
Yi Tseng20f9e7b2018-05-24 23:27:39 +0800781 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700782 "binding" : "FabricIngress.next.simple",
783 "source_info" : {
784 "filename" : "include/control/next.p4",
785 "line" : 82,
786 "column" : 50,
787 "source_fragment" : "simple_counter"
788 }
Yi Tseng27b9bc02018-04-12 14:52:40 +0800789 },
790 {
791 "name" : "FabricIngress.next.hashed_counter",
Carmelo Casconef645e842018-07-16 18:31:52 +0200792 "id" : 8,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800793 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700794 "binding" : "FabricIngress.next.hashed",
795 "source_info" : {
796 "filename" : "include/control/next.p4",
797 "line" : 146,
798 "column" : 50,
799 "source_fragment" : "hashed_counter"
800 }
Yi Tseng27b9bc02018-04-12 14:52:40 +0800801 },
802 {
Esin Karaman971fb7f2017-12-28 13:44:52 +0000803 "name" : "FabricIngress.next.multicast_counter",
Carmelo Casconef645e842018-07-16 18:31:52 +0200804 "id" : 9,
Esin Karaman971fb7f2017-12-28 13:44:52 +0000805 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700806 "binding" : "FabricIngress.next.multicast",
807 "source_info" : {
808 "filename" : "include/control/next.p4",
809 "line" : 199,
810 "column" : 50,
811 "source_fragment" : "multicast_counter"
812 }
Esin Karaman971fb7f2017-12-28 13:44:52 +0000813 },
814 {
815 "name" : "FabricIngress.port_counters_control.egress_port_counter",
Carmelo Casconef645e842018-07-16 18:31:52 +0200816 "id" : 10,
Yi Tsengbe342052017-11-03 10:21:23 -0700817 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +0200818 "filename" : "include/control/port_counter.p4",
Yi Tsengbe342052017-11-03 10:21:23 -0700819 "line" : 23,
Yi Tseng3d3956d2018-01-31 17:28:05 -0800820 "column" : 48,
Yi Tsengbe342052017-11-03 10:21:23 -0700821 "source_fragment" : "egress_port_counter"
822 },
823 "size" : 511,
824 "is_direct" : false
825 },
826 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800827 "name" : "FabricIngress.port_counters_control.ingress_port_counter",
Carmelo Casconef645e842018-07-16 18:31:52 +0200828 "id" : 11,
Yi Tsengbe342052017-11-03 10:21:23 -0700829 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +0200830 "filename" : "include/control/port_counter.p4",
Yi Tsengbe342052017-11-03 10:21:23 -0700831 "line" : 24,
Yi Tseng3d3956d2018-01-31 17:28:05 -0800832 "column" : 48,
Yi Tsengbe342052017-11-03 10:21:23 -0700833 "source_fragment" : "ingress_port_counter"
834 },
835 "size" : 511,
836 "is_direct" : false
Yi Tseng47eac892018-07-11 02:17:04 +0800837 },
838 {
839 "name" : "FabricEgress.egress_next.egress_vlan_counter",
Carmelo Casconef645e842018-07-16 18:31:52 +0200840 "id" : 12,
Yi Tseng47eac892018-07-11 02:17:04 +0800841 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700842 "binding" : "FabricEgress.egress_next.egress_vlan",
843 "source_info" : {
844 "filename" : "include/control/next.p4",
845 "line" : 250,
846 "column" : 50,
847 "source_fragment" : "egress_vlan_counter"
848 }
Yi Tsengbe342052017-11-03 10:21:23 -0700849 }
850 ],
851 "register_arrays" : [],
852 "calculations" : [
853 {
854 "name" : "calc",
855 "id" : 0,
856 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +0200857 "filename" : "include/checksum.p4",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200858 "line" : 28,
Yi Tsengbe342052017-11-03 10:21:23 -0700859 "column" : 8,
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200860 "source_fragment" : "update_checksum(hdr.ipv4.isValid(), ..."
Yi Tsengbe342052017-11-03 10:21:23 -0700861 },
862 "algo" : "csum16",
863 "input" : [
864 {
865 "type" : "field",
866 "value" : ["ipv4", "version"]
867 },
868 {
869 "type" : "field",
870 "value" : ["ipv4", "ihl"]
871 },
872 {
873 "type" : "field",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +0900874 "value" : ["ipv4", "dscp"]
875 },
876 {
877 "type" : "field",
878 "value" : ["ipv4", "ecn"]
Yi Tsengbe342052017-11-03 10:21:23 -0700879 },
880 {
881 "type" : "field",
882 "value" : ["ipv4", "total_len"]
883 },
884 {
885 "type" : "field",
886 "value" : ["ipv4", "identification"]
887 },
888 {
889 "type" : "field",
890 "value" : ["ipv4", "flags"]
891 },
892 {
893 "type" : "field",
894 "value" : ["ipv4", "frag_offset"]
895 },
896 {
897 "type" : "field",
898 "value" : ["ipv4", "ttl"]
899 },
900 {
901 "type" : "field",
902 "value" : ["ipv4", "protocol"]
903 },
904 {
905 "type" : "field",
906 "value" : ["ipv4", "src_addr"]
907 },
908 {
909 "type" : "field",
910 "value" : ["ipv4", "dst_addr"]
911 }
912 ]
913 },
914 {
915 "name" : "calc_0",
916 "id" : 1,
917 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +0200918 "filename" : "include/checksum.p4",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +0900919 "line" : 57,
Yi Tsengbe342052017-11-03 10:21:23 -0700920 "column" : 8,
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200921 "source_fragment" : "verify_checksum(hdr.ipv4.isValid(), ..."
Yi Tsengbe342052017-11-03 10:21:23 -0700922 },
923 "algo" : "csum16",
924 "input" : [
925 {
926 "type" : "field",
927 "value" : ["ipv4", "version"]
928 },
929 {
930 "type" : "field",
931 "value" : ["ipv4", "ihl"]
932 },
933 {
934 "type" : "field",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +0900935 "value" : ["ipv4", "dscp"]
936 },
937 {
938 "type" : "field",
939 "value" : ["ipv4", "ecn"]
Yi Tsengbe342052017-11-03 10:21:23 -0700940 },
941 {
942 "type" : "field",
943 "value" : ["ipv4", "total_len"]
944 },
945 {
946 "type" : "field",
947 "value" : ["ipv4", "identification"]
948 },
949 {
950 "type" : "field",
951 "value" : ["ipv4", "flags"]
952 },
953 {
954 "type" : "field",
955 "value" : ["ipv4", "frag_offset"]
956 },
957 {
958 "type" : "field",
959 "value" : ["ipv4", "ttl"]
960 },
961 {
962 "type" : "field",
963 "value" : ["ipv4", "protocol"]
964 },
965 {
966 "type" : "field",
967 "value" : ["ipv4", "src_addr"]
968 },
969 {
970 "type" : "field",
971 "value" : ["ipv4", "dst_addr"]
972 }
973 ]
Yi Tsengbe342052017-11-03 10:21:23 -0700974 }
975 ],
976 "learn_lists" : [],
977 "actions" : [
978 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -0700979 "name" : "NoAction",
Yi Tsengbe342052017-11-03 10:21:23 -0700980 "id" : 0,
981 "runtime_data" : [],
982 "primitives" : []
983 },
984 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -0700985 "name" : "NoAction",
Yi Tsengbe342052017-11-03 10:21:23 -0700986 "id" : 1,
987 "runtime_data" : [],
988 "primitives" : []
989 },
990 {
Charles Chancf696e52018-08-16 16:25:13 -0700991 "name" : "NoAction",
Yi Tsengbe342052017-11-03 10:21:23 -0700992 "id" : 2,
993 "runtime_data" : [],
Yi Tseng1d842672017-11-28 16:06:52 -0800994 "primitives" : []
Yi Tsengbe342052017-11-03 10:21:23 -0700995 },
996 {
Yi Tseng1d842672017-11-28 16:06:52 -0800997 "name" : "NoAction",
Yi Tsengbe342052017-11-03 10:21:23 -0700998 "id" : 3,
999 "runtime_data" : [],
Yi Tseng1d842672017-11-28 16:06:52 -08001000 "primitives" : []
Yi Tsengbe342052017-11-03 10:21:23 -07001001 },
1002 {
1003 "name" : "NoAction",
1004 "id" : 4,
1005 "runtime_data" : [],
1006 "primitives" : []
1007 },
1008 {
1009 "name" : "NoAction",
1010 "id" : 5,
1011 "runtime_data" : [],
1012 "primitives" : []
1013 },
1014 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07001015 "name" : "nop",
Yi Tsengbe342052017-11-03 10:21:23 -07001016 "id" : 6,
1017 "runtime_data" : [],
1018 "primitives" : []
1019 },
1020 {
Yi Tseng47eac892018-07-11 02:17:04 +08001021 "name" : "FabricIngress.filtering.drop",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07001022 "id" : 7,
Yi Tseng47eac892018-07-11 02:17:04 +08001023 "runtime_data" : [],
Yi Tseng1d842672017-11-28 16:06:52 -08001024 "primitives" : [
1025 {
1026 "op" : "drop",
1027 "parameters" : [],
1028 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001029 "filename" : "include/control/filtering.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001030 "line" : 37,
Yi Tseng1d842672017-11-28 16:06:52 -08001031 "column" : 8,
1032 "source_fragment" : "mark_to_drop()"
1033 }
1034 }
1035 ]
Yi Tsengbe342052017-11-03 10:21:23 -07001036 },
1037 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001038 "name" : "FabricIngress.filtering.set_vlan",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07001039 "id" : 8,
Yi Tsengbe342052017-11-03 10:21:23 -07001040 "runtime_data" : [
1041 {
1042 "name" : "new_vlan_id",
1043 "bitwidth" : 12
1044 }
1045 ],
1046 "primitives" : [
1047 {
1048 "op" : "assign",
1049 "parameters" : [
1050 {
1051 "type" : "field",
1052 "value" : ["vlan_tag", "vlan_id"]
1053 },
1054 {
1055 "type" : "runtime_data",
1056 "value" : 0
1057 }
1058 ],
1059 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001060 "filename" : "include/control/filtering.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001061 "line" : 42,
Yi Tsengbe342052017-11-03 10:21:23 -07001062 "column" : 8,
1063 "source_fragment" : "hdr.vlan_tag.vlan_id = new_vlan_id"
1064 }
1065 }
1066 ]
1067 },
1068 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001069 "name" : "FabricIngress.filtering.push_internal_vlan",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07001070 "id" : 9,
Yi Tsengbe342052017-11-03 10:21:23 -07001071 "runtime_data" : [
1072 {
1073 "name" : "new_vlan_id",
1074 "bitwidth" : 12
1075 }
1076 ],
1077 "primitives" : [
1078 {
1079 "op" : "add_header",
1080 "parameters" : [
1081 {
1082 "type" : "header",
1083 "value" : "vlan_tag"
1084 }
1085 ],
1086 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001087 "filename" : "include/control/filtering.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001088 "line" : 49,
Yi Tsengbe342052017-11-03 10:21:23 -07001089 "column" : 8,
1090 "source_fragment" : "hdr.vlan_tag.setValid()"
1091 }
1092 },
1093 {
1094 "op" : "assign",
1095 "parameters" : [
1096 {
1097 "type" : "field",
1098 "value" : ["vlan_tag", "cfi"]
1099 },
1100 {
1101 "type" : "hexstr",
1102 "value" : "0x00"
1103 }
1104 ],
1105 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001106 "filename" : "include/control/filtering.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001107 "line" : 50,
Yi Tsengbe342052017-11-03 10:21:23 -07001108 "column" : 8,
1109 "source_fragment" : "hdr.vlan_tag.cfi = 0"
1110 }
1111 },
1112 {
1113 "op" : "assign",
1114 "parameters" : [
1115 {
1116 "type" : "field",
1117 "value" : ["vlan_tag", "pri"]
1118 },
1119 {
1120 "type" : "hexstr",
1121 "value" : "0x00"
1122 }
1123 ],
1124 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001125 "filename" : "include/control/filtering.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001126 "line" : 51,
Yi Tsengbe342052017-11-03 10:21:23 -07001127 "column" : 8,
1128 "source_fragment" : "hdr.vlan_tag.pri = 0"
1129 }
1130 },
1131 {
1132 "op" : "assign",
1133 "parameters" : [
1134 {
1135 "type" : "field",
1136 "value" : ["vlan_tag", "ether_type"]
1137 },
1138 {
Yi Tseng1d842672017-11-28 16:06:52 -08001139 "type" : "field",
1140 "value" : ["ethernet", "ether_type"]
1141 }
1142 ],
1143 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001144 "filename" : "include/control/filtering.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001145 "line" : 52,
Yi Tseng1d842672017-11-28 16:06:52 -08001146 "column" : 8,
1147 "source_fragment" : "hdr.vlan_tag.ether_type = hdr.ethernet.ether_type"
1148 }
1149 },
1150 {
1151 "op" : "assign",
1152 "parameters" : [
1153 {
1154 "type" : "field",
1155 "value" : ["ethernet", "ether_type"]
1156 },
1157 {
Yi Tsengbe342052017-11-03 10:21:23 -07001158 "type" : "hexstr",
1159 "value" : "0x8100"
1160 }
1161 ],
1162 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001163 "filename" : "include/control/../define.p4",
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001164 "line" : 99,
Yi Tsengbe342052017-11-03 10:21:23 -07001165 "column" : 31,
1166 "source_fragment" : "0x8100; ..."
1167 }
1168 },
1169 {
1170 "op" : "assign",
1171 "parameters" : [
1172 {
1173 "type" : "field",
1174 "value" : ["vlan_tag", "vlan_id"]
1175 },
1176 {
1177 "type" : "runtime_data",
1178 "value" : 0
1179 }
1180 ],
1181 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001182 "filename" : "include/control/filtering.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001183 "line" : 54,
Yi Tsengbe342052017-11-03 10:21:23 -07001184 "column" : 8,
Yi Tseng47eac892018-07-11 02:17:04 +08001185 "source_fragment" : "hdr.vlan_tag.vlan_id = new_vlan_id"
Yi Tsengbe342052017-11-03 10:21:23 -07001186 }
1187 },
1188 {
1189 "op" : "assign",
1190 "parameters" : [
1191 {
1192 "type" : "field",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001193 "value" : ["scalars", "fabric_metadata_t.pop_vlan_when_packet_in"]
Yi Tsengbe342052017-11-03 10:21:23 -07001194 },
1195 {
1196 "type" : "expression",
1197 "value" : {
1198 "type" : "expression",
1199 "value" : {
1200 "op" : "b2d",
1201 "left" : null,
1202 "right" : {
1203 "type" : "bool",
1204 "value" : true
1205 }
1206 }
1207 }
1208 }
1209 ],
1210 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001211 "filename" : "include/control/filtering.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001212 "line" : 57,
Yi Tsengbe342052017-11-03 10:21:23 -07001213 "column" : 8,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001214 "source_fragment" : "fabric_metadata.pop_vlan_when_packet_in = true"
Yi Tsengbe342052017-11-03 10:21:23 -07001215 }
1216 }
1217 ]
1218 },
1219 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07001220 "name" : "FabricIngress.filtering.nop_ingress_port_vlan",
1221 "id" : 10,
1222 "runtime_data" : [],
1223 "primitives" : []
1224 },
1225 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001226 "name" : "FabricIngress.filtering.set_forwarding_type",
Charles Chancf696e52018-08-16 16:25:13 -07001227 "id" : 11,
Yi Tsengbe342052017-11-03 10:21:23 -07001228 "runtime_data" : [
1229 {
1230 "name" : "fwd_type",
1231 "bitwidth" : 3
1232 }
1233 ],
1234 "primitives" : [
1235 {
1236 "op" : "assign",
1237 "parameters" : [
1238 {
1239 "type" : "field",
1240 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
1241 },
1242 {
1243 "type" : "runtime_data",
1244 "value" : 0
1245 }
1246 ],
1247 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001248 "filename" : "include/control/filtering.p4",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07001249 "line" : 99,
Yi Tsengbe342052017-11-03 10:21:23 -07001250 "column" : 8,
1251 "source_fragment" : "fabric_metadata.fwd_type = fwd_type"
1252 }
1253 }
1254 ]
1255 },
1256 {
Yi Tseng47eac892018-07-11 02:17:04 +08001257 "name" : "FabricIngress.forwarding.set_next_id_bridging",
Charles Chancf696e52018-08-16 16:25:13 -07001258 "id" : 12,
Carmelo Casconef645e842018-07-16 18:31:52 +02001259 "runtime_data" : [
1260 {
1261 "name" : "next_id",
1262 "bitwidth" : 32
1263 }
1264 ],
1265 "primitives" : [
1266 {
1267 "op" : "assign",
1268 "parameters" : [
1269 {
1270 "type" : "field",
1271 "value" : ["scalars", "fabric_metadata_t.next_id"]
1272 },
1273 {
1274 "type" : "runtime_data",
1275 "value" : 0
1276 }
1277 ],
1278 "source_info" : {
1279 "filename" : "include/control/forwarding.p4",
1280 "line" : 37,
1281 "column" : 8,
1282 "source_fragment" : "fabric_metadata.next_id = next_id"
1283 }
1284 }
1285 ]
1286 },
1287 {
1288 "name" : "FabricIngress.forwarding.pop_mpls_and_next",
Charles Chancf696e52018-08-16 16:25:13 -07001289 "id" : 13,
Carmelo Casconef645e842018-07-16 18:31:52 +02001290 "runtime_data" : [
1291 {
1292 "name" : "next_id",
1293 "bitwidth" : 32
1294 }
1295 ],
1296 "primitives" : [
1297 {
1298 "op" : "remove_header",
1299 "parameters" : [
1300 {
1301 "type" : "header",
1302 "value" : "mpls"
1303 }
1304 ],
1305 "source_info" : {
1306 "filename" : "include/control/forwarding.p4",
1307 "line" : 60,
1308 "column" : 8,
1309 "source_fragment" : "hdr.mpls.setInvalid()"
1310 }
1311 },
1312 {
1313 "op" : "assign",
1314 "parameters" : [
1315 {
1316 "type" : "field",
1317 "value" : ["scalars", "fabric_metadata_t.next_id"]
1318 },
1319 {
1320 "type" : "runtime_data",
1321 "value" : 0
1322 }
1323 ],
1324 "source_info" : {
1325 "filename" : "include/control/forwarding.p4",
1326 "line" : 61,
1327 "column" : 8,
1328 "source_fragment" : "fabric_metadata.next_id = next_id"
1329 }
1330 }
1331 ]
1332 },
1333 {
Charles Chan384aea22018-08-23 22:08:02 -07001334 "name" : "FabricIngress.forwarding.set_next_id_routing_v4",
Charles Chancf696e52018-08-16 16:25:13 -07001335 "id" : 14,
Carmelo Casconef645e842018-07-16 18:31:52 +02001336 "runtime_data" : [
1337 {
1338 "name" : "next_id",
1339 "bitwidth" : 32
1340 }
1341 ],
1342 "primitives" : [
1343 {
1344 "op" : "assign",
1345 "parameters" : [
1346 {
1347 "type" : "field",
1348 "value" : ["scalars", "fabric_metadata_t.next_id"]
1349 },
1350 {
1351 "type" : "runtime_data",
1352 "value" : 0
1353 }
1354 ],
1355 "source_info" : {
1356 "filename" : "include/control/forwarding.p4",
1357 "line" : 83,
1358 "column" : 8,
1359 "source_fragment" : "fabric_metadata.next_id = next_id"
1360 }
1361 }
1362 ]
1363 },
1364 {
Charles Chancd03f072018-08-31 17:46:37 -07001365 "name" : "FabricIngress.forwarding.nop_routing_v4",
Charles Chancf696e52018-08-16 16:25:13 -07001366 "id" : 15,
Charles Chancd03f072018-08-31 17:46:37 -07001367 "runtime_data" : [],
1368 "primitives" : []
1369 },
1370 {
1371 "name" : "FabricIngress.forwarding.set_next_id_acl",
1372 "id" : 16,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001373 "runtime_data" : [
1374 {
1375 "name" : "next_id",
1376 "bitwidth" : 32
1377 }
1378 ],
1379 "primitives" : [
1380 {
Esin Karaman971fb7f2017-12-28 13:44:52 +00001381 "op" : "assign",
1382 "parameters" : [
1383 {
1384 "type" : "field",
1385 "value" : ["scalars", "fabric_metadata_t.next_id"]
1386 },
1387 {
1388 "type" : "runtime_data",
1389 "value" : 0
1390 }
1391 ],
1392 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001393 "filename" : "include/control/forwarding.p4",
Charles Chancd03f072018-08-31 17:46:37 -07001394 "line" : 110,
Yi Tseng47eac892018-07-11 02:17:04 +08001395 "column" : 8,
1396 "source_fragment" : "fabric_metadata.next_id = next_id"
1397 }
1398 }
1399 ]
1400 },
1401 {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001402 "name" : "FabricIngress.forwarding.punt_to_cpu",
Charles Chancd03f072018-08-31 17:46:37 -07001403 "id" : 17,
Yi Tsengbe342052017-11-03 10:21:23 -07001404 "runtime_data" : [],
1405 "primitives" : [
1406 {
1407 "op" : "assign",
1408 "parameters" : [
1409 {
1410 "type" : "field",
Yi Tsengbe342052017-11-03 10:21:23 -07001411 "value" : ["standard_metadata", "egress_spec"]
1412 },
1413 {
1414 "type" : "hexstr",
1415 "value" : "0x00ff"
1416 }
1417 ],
1418 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001419 "filename" : "include/control/forwarding.p4",
Charles Chancd03f072018-08-31 17:46:37 -07001420 "line" : 116,
Carmelo Casconeb531b682018-01-30 17:55:56 -08001421 "column" : 8,
1422 "source_fragment" : "standard_metadata.egress_spec = 255"
Yi Tsengbe342052017-11-03 10:21:23 -07001423 }
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001424 },
1425 {
1426 "op" : "exit",
1427 "parameters" : [],
1428 "source_info" : {
1429 "filename" : "include/control/forwarding.p4",
Charles Chancd03f072018-08-31 17:46:37 -07001430 "line" : 118,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001431 "column" : 8,
1432 "source_fragment" : "exit"
1433 }
1434 }
1435 ]
1436 },
1437 {
1438 "name" : "FabricIngress.forwarding.clone_to_cpu",
Charles Chancd03f072018-08-31 17:46:37 -07001439 "id" : 18,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001440 "runtime_data" : [],
1441 "primitives" : [
1442 {
1443 "op" : "assign",
1444 "parameters" : [
1445 {
1446 "type" : "field",
1447 "value" : ["scalars", "fabric_metadata_t.clone_to_cpu"]
1448 },
1449 {
1450 "type" : "expression",
1451 "value" : {
1452 "type" : "expression",
1453 "value" : {
1454 "op" : "b2d",
1455 "left" : null,
1456 "right" : {
1457 "type" : "bool",
1458 "value" : true
1459 }
1460 }
1461 }
1462 }
1463 ],
1464 "source_info" : {
1465 "filename" : "include/control/forwarding.p4",
Charles Chancd03f072018-08-31 17:46:37 -07001466 "line" : 123,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001467 "column" : 8,
1468 "source_fragment" : "fabric_metadata.clone_to_cpu = true"
1469 }
Yi Tsengbe342052017-11-03 10:21:23 -07001470 }
1471 ]
1472 },
1473 {
Yi Tseng47eac892018-07-11 02:17:04 +08001474 "name" : "FabricIngress.forwarding.drop",
Charles Chancd03f072018-08-31 17:46:37 -07001475 "id" : 19,
Yi Tseng47eac892018-07-11 02:17:04 +08001476 "runtime_data" : [],
1477 "primitives" : [
1478 {
1479 "op" : "drop",
1480 "parameters" : [],
1481 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001482 "filename" : "include/control/forwarding.p4",
Charles Chancd03f072018-08-31 17:46:37 -07001483 "line" : 128,
Yi Tseng47eac892018-07-11 02:17:04 +08001484 "column" : 8,
1485 "source_fragment" : "mark_to_drop()"
1486 }
1487 }
1488 ]
1489 },
1490 {
Charles Chancf696e52018-08-16 16:25:13 -07001491 "name" : "FabricIngress.forwarding.nop_acl",
Charles Chancd03f072018-08-31 17:46:37 -07001492 "id" : 20,
Charles Chancf696e52018-08-16 16:25:13 -07001493 "runtime_data" : [],
1494 "primitives" : []
1495 },
1496 {
Yi Tseng47eac892018-07-11 02:17:04 +08001497 "name" : "FabricIngress.next.set_vlan",
Charles Chancd03f072018-08-31 17:46:37 -07001498 "id" : 21,
Yi Tseng47eac892018-07-11 02:17:04 +08001499 "runtime_data" : [
1500 {
1501 "name" : "new_vlan_id",
1502 "bitwidth" : 12
1503 }
1504 ],
1505 "primitives" : [
1506 {
1507 "op" : "assign",
1508 "parameters" : [
1509 {
1510 "type" : "field",
1511 "value" : ["vlan_tag", "vlan_id"]
1512 },
1513 {
1514 "type" : "runtime_data",
1515 "value" : 0
1516 }
1517 ],
1518 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001519 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001520 "line" : 61,
1521 "column" : 8,
1522 "source_fragment" : "hdr.vlan_tag.vlan_id = new_vlan_id"
1523 }
1524 }
1525 ]
1526 },
1527 {
1528 "name" : "FabricIngress.next.output_simple",
Charles Chancd03f072018-08-31 17:46:37 -07001529 "id" : 22,
Yi Tsengbe342052017-11-03 10:21:23 -07001530 "runtime_data" : [
1531 {
1532 "name" : "port_num",
1533 "bitwidth" : 9
1534 }
1535 ],
1536 "primitives" : [
1537 {
1538 "op" : "assign",
1539 "parameters" : [
1540 {
1541 "type" : "field",
1542 "value" : ["standard_metadata", "egress_spec"]
1543 },
1544 {
1545 "type" : "runtime_data",
1546 "value" : 0
1547 }
1548 ],
1549 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001550 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001551 "line" : 85,
Yi Tsengbe342052017-11-03 10:21:23 -07001552 "column" : 8,
1553 "source_fragment" : "standard_metadata.egress_spec = port_num"
1554 }
Yi Tsengbe342052017-11-03 10:21:23 -07001555 }
1556 ]
1557 },
1558 {
Yi Tseng47eac892018-07-11 02:17:04 +08001559 "name" : "FabricIngress.next.set_vlan_output",
Charles Chancd03f072018-08-31 17:46:37 -07001560 "id" : 23,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001561 "runtime_data" : [
1562 {
1563 "name" : "new_vlan_id",
1564 "bitwidth" : 12
Yi Tseng47eac892018-07-11 02:17:04 +08001565 },
1566 {
1567 "name" : "port_num",
1568 "bitwidth" : 9
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001569 }
1570 ],
1571 "primitives" : [
1572 {
1573 "op" : "assign",
1574 "parameters" : [
1575 {
1576 "type" : "field",
1577 "value" : ["vlan_tag", "vlan_id"]
1578 },
1579 {
1580 "type" : "runtime_data",
1581 "value" : 0
1582 }
1583 ],
1584 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001585 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001586 "line" : 90,
1587 "column" : 8,
1588 "source_fragment" : "hdr.vlan_tag.vlan_id = new_vlan_id"
1589 }
1590 },
1591 {
1592 "op" : "assign",
1593 "parameters" : [
1594 {
1595 "type" : "field",
1596 "value" : ["standard_metadata", "egress_spec"]
1597 },
1598 {
1599 "type" : "runtime_data",
1600 "value" : 1
1601 }
1602 ],
1603 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001604 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001605 "line" : 85,
1606 "column" : 8,
1607 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
1608 }
1609 }
1610 ]
1611 },
1612 {
1613 "name" : "FabricIngress.next.l3_routing_simple",
Charles Chancd03f072018-08-31 17:46:37 -07001614 "id" : 24,
Yi Tseng47eac892018-07-11 02:17:04 +08001615 "runtime_data" : [
1616 {
1617 "name" : "port_num",
1618 "bitwidth" : 9
1619 },
1620 {
1621 "name" : "smac",
1622 "bitwidth" : 48
1623 },
1624 {
1625 "name" : "dmac",
1626 "bitwidth" : 48
1627 }
1628 ],
1629 "primitives" : [
1630 {
1631 "op" : "assign",
1632 "parameters" : [
1633 {
1634 "type" : "field",
1635 "value" : ["ethernet", "src_addr"]
1636 },
1637 {
1638 "type" : "runtime_data",
1639 "value" : 1
1640 }
1641 ],
1642 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001643 "filename" : "include/control/next.p4",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001644 "line" : 37,
1645 "column" : 8,
Yi Tseng47eac892018-07-11 02:17:04 +08001646 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
1647 }
1648 },
1649 {
1650 "op" : "assign",
1651 "parameters" : [
1652 {
1653 "type" : "field",
1654 "value" : ["ethernet", "dst_addr"]
1655 },
1656 {
1657 "type" : "runtime_data",
1658 "value" : 2
1659 }
1660 ],
1661 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001662 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001663 "line" : 41,
1664 "column" : 8,
1665 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
1666 }
1667 },
1668 {
1669 "op" : "assign",
1670 "parameters" : [
1671 {
1672 "type" : "field",
1673 "value" : ["standard_metadata", "egress_spec"]
1674 },
1675 {
1676 "type" : "runtime_data",
1677 "value" : 0
1678 }
1679 ],
1680 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001681 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001682 "line" : 85,
1683 "column" : 8,
1684 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001685 }
1686 }
1687 ]
1688 },
1689 {
Yi Tseng47eac892018-07-11 02:17:04 +08001690 "name" : "FabricIngress.next.mpls_routing_v4_simple",
Carmelo Casconef645e842018-07-16 18:31:52 +02001691 "id" : 25,
Esin Karaman971fb7f2017-12-28 13:44:52 +00001692 "runtime_data" : [
1693 {
1694 "name" : "port_num",
1695 "bitwidth" : 9
1696 },
1697 {
1698 "name" : "smac",
1699 "bitwidth" : 48
1700 },
1701 {
1702 "name" : "dmac",
1703 "bitwidth" : 48
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001704 },
1705 {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001706 "name" : "label",
1707 "bitwidth" : 20
Yi Tsengbe342052017-11-03 10:21:23 -07001708 }
1709 ],
1710 "primitives" : [
1711 {
1712 "op" : "assign",
1713 "parameters" : [
1714 {
1715 "type" : "field",
1716 "value" : ["ethernet", "src_addr"]
1717 },
1718 {
1719 "type" : "runtime_data",
1720 "value" : 1
1721 }
1722 ],
1723 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001724 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001725 "line" : 37,
Yi Tsengbe342052017-11-03 10:21:23 -07001726 "column" : 8,
1727 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
1728 }
1729 },
1730 {
1731 "op" : "assign",
1732 "parameters" : [
1733 {
1734 "type" : "field",
1735 "value" : ["ethernet", "dst_addr"]
1736 },
1737 {
1738 "type" : "runtime_data",
1739 "value" : 2
1740 }
1741 ],
1742 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001743 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001744 "line" : 41,
Yi Tsengbe342052017-11-03 10:21:23 -07001745 "column" : 8,
1746 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
1747 }
1748 },
1749 {
1750 "op" : "assign",
1751 "parameters" : [
1752 {
1753 "type" : "field",
1754 "value" : ["standard_metadata", "egress_spec"]
1755 },
1756 {
1757 "type" : "runtime_data",
1758 "value" : 0
1759 }
1760 ],
1761 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001762 "filename" : "include/control/next.p4",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001763 "line" : 85,
Yi Tsengbe342052017-11-03 10:21:23 -07001764 "column" : 8,
1765 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
1766 }
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001767 },
1768 {
1769 "op" : "add_header",
1770 "parameters" : [
1771 {
1772 "type" : "header",
1773 "value" : "mpls"
1774 }
1775 ],
1776 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001777 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001778 "line" : 46,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001779 "column" : 8,
1780 "source_fragment" : "hdr.mpls.setValid()"
1781 }
1782 },
1783 {
1784 "op" : "assign",
1785 "parameters" : [
1786 {
1787 "type" : "field",
1788 "value" : ["vlan_tag", "ether_type"]
1789 },
1790 {
1791 "type" : "hexstr",
1792 "value" : "0x8847"
1793 }
1794 ],
1795 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001796 "filename" : "include/control/../define.p4",
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001797 "line" : 100,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001798 "column" : 31,
1799 "source_fragment" : "0x8847; ..."
1800 }
1801 },
1802 {
1803 "op" : "assign",
1804 "parameters" : [
1805 {
1806 "type" : "field",
1807 "value" : ["mpls", "label"]
1808 },
1809 {
1810 "type" : "runtime_data",
1811 "value" : 3
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" : 48,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001817 "column" : 8,
1818 "source_fragment" : "hdr.mpls.label = label; ..."
1819 }
1820 },
1821 {
1822 "op" : "assign",
1823 "parameters" : [
1824 {
1825 "type" : "field",
1826 "value" : ["mpls", "tc"]
1827 },
1828 {
1829 "type" : "hexstr",
1830 "value" : "0x00"
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" : 49,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001836 "column" : 8,
1837 "source_fragment" : "hdr.mpls.tc = tc; ..."
1838 }
1839 },
1840 {
1841 "op" : "assign",
1842 "parameters" : [
1843 {
1844 "type" : "field",
1845 "value" : ["mpls", "bos"]
1846 },
1847 {
1848 "type" : "hexstr",
1849 "value" : "0x01"
1850 }
1851 ],
1852 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001853 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001854 "line" : 50,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001855 "column" : 8,
1856 "source_fragment" : "hdr.mpls.bos = 1w1"
1857 }
1858 },
1859 {
1860 "op" : "assign",
1861 "parameters" : [
1862 {
1863 "type" : "field",
1864 "value" : ["mpls", "ttl"]
1865 },
1866 {
1867 "type" : "hexstr",
1868 "value" : "0x40"
1869 }
1870 ],
1871 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001872 "filename" : "include/control/../define.p4",
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001873 "line" : 123,
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001874 "column" : 32,
1875 "source_fragment" : "64; ..."
1876 }
Yi Tsengbe342052017-11-03 10:21:23 -07001877 }
1878 ]
1879 },
1880 {
Charles Chancd03f072018-08-31 17:46:37 -07001881 "name" : "FabricIngress.next.mpls_routing_v6_simple",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001882 "id" : 26,
1883 "runtime_data" : [
1884 {
1885 "name" : "port_num",
1886 "bitwidth" : 9
1887 },
1888 {
1889 "name" : "smac",
1890 "bitwidth" : 48
1891 },
1892 {
1893 "name" : "dmac",
1894 "bitwidth" : 48
1895 },
1896 {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001897 "name" : "label",
1898 "bitwidth" : 20
Yi Tsengbe342052017-11-03 10:21:23 -07001899 }
1900 ],
1901 "primitives" : [
1902 {
1903 "op" : "assign",
1904 "parameters" : [
1905 {
1906 "type" : "field",
1907 "value" : ["ethernet", "src_addr"]
1908 },
1909 {
1910 "type" : "runtime_data",
1911 "value" : 1
1912 }
1913 ],
1914 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001915 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001916 "line" : 37,
Yi Tsengbe342052017-11-03 10:21:23 -07001917 "column" : 8,
1918 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
1919 }
1920 },
1921 {
1922 "op" : "assign",
1923 "parameters" : [
1924 {
1925 "type" : "field",
1926 "value" : ["ethernet", "dst_addr"]
1927 },
1928 {
1929 "type" : "runtime_data",
1930 "value" : 2
1931 }
1932 ],
1933 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001934 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001935 "line" : 41,
Yi Tsengbe342052017-11-03 10:21:23 -07001936 "column" : 8,
1937 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
1938 }
1939 },
1940 {
1941 "op" : "assign",
1942 "parameters" : [
1943 {
1944 "type" : "field",
1945 "value" : ["standard_metadata", "egress_spec"]
1946 },
1947 {
1948 "type" : "runtime_data",
1949 "value" : 0
1950 }
1951 ],
1952 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001953 "filename" : "include/control/next.p4",
Charles Chancd03f072018-08-31 17:46:37 -07001954 "line" : 85,
Yi Tsengbe342052017-11-03 10:21:23 -07001955 "column" : 8,
1956 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
1957 }
Yi Tsengbe342052017-11-03 10:21:23 -07001958 },
1959 {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001960 "op" : "add_header",
Yi Tsengbe342052017-11-03 10:21:23 -07001961 "parameters" : [
1962 {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001963 "type" : "header",
1964 "value" : "mpls"
Yi Tsengbe342052017-11-03 10:21:23 -07001965 }
1966 ],
1967 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001968 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001969 "line" : 46,
Yi Tsengbe342052017-11-03 10:21:23 -07001970 "column" : 8,
Yi Tseng1b154bd2017-11-20 17:48:19 -08001971 "source_fragment" : "hdr.mpls.setValid()"
1972 }
1973 },
1974 {
1975 "op" : "assign",
1976 "parameters" : [
1977 {
1978 "type" : "field",
Yi Tsengbd46d052018-01-22 17:18:16 -08001979 "value" : ["vlan_tag", "ether_type"]
Yi Tseng1b154bd2017-11-20 17:48:19 -08001980 },
1981 {
1982 "type" : "hexstr",
1983 "value" : "0x8847"
1984 }
1985 ],
1986 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001987 "filename" : "include/control/../define.p4",
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07001988 "line" : 100,
Yi Tseng1b154bd2017-11-20 17:48:19 -08001989 "column" : 31,
1990 "source_fragment" : "0x8847; ..."
1991 }
1992 },
1993 {
1994 "op" : "assign",
1995 "parameters" : [
1996 {
1997 "type" : "field",
1998 "value" : ["mpls", "label"]
1999 },
2000 {
2001 "type" : "runtime_data",
2002 "value" : 3
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" : 48,
Yi Tseng1b154bd2017-11-20 17:48:19 -08002008 "column" : 8,
2009 "source_fragment" : "hdr.mpls.label = label; ..."
2010 }
2011 },
2012 {
2013 "op" : "assign",
2014 "parameters" : [
2015 {
2016 "type" : "field",
2017 "value" : ["mpls", "tc"]
2018 },
2019 {
Yi Tseng1d842672017-11-28 16:06:52 -08002020 "type" : "hexstr",
2021 "value" : "0x00"
Yi Tseng1b154bd2017-11-20 17:48:19 -08002022 }
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" : 49,
Yi Tseng1b154bd2017-11-20 17:48:19 -08002027 "column" : 8,
2028 "source_fragment" : "hdr.mpls.tc = tc; ..."
2029 }
2030 },
2031 {
2032 "op" : "assign",
2033 "parameters" : [
2034 {
2035 "type" : "field",
2036 "value" : ["mpls", "bos"]
2037 },
2038 {
2039 "type" : "hexstr",
2040 "value" : "0x01"
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" : 50,
Yi Tseng1b154bd2017-11-20 17:48:19 -08002046 "column" : 8,
Yi Tseng1d842672017-11-28 16:06:52 -08002047 "source_fragment" : "hdr.mpls.bos = 1w1"
Yi Tseng1b154bd2017-11-20 17:48:19 -08002048 }
2049 },
2050 {
2051 "op" : "assign",
2052 "parameters" : [
2053 {
2054 "type" : "field",
2055 "value" : ["mpls", "ttl"]
2056 },
2057 {
2058 "type" : "hexstr",
2059 "value" : "0x40"
2060 }
2061 ],
2062 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002063 "filename" : "include/control/../define.p4",
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07002064 "line" : 123,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002065 "column" : 32,
2066 "source_fragment" : "64; ..."
2067 }
2068 }
2069 ]
2070 },
2071 {
Charles Chancd03f072018-08-31 17:46:37 -07002072 "name" : "FabricIngress.next.l3_routing_vlan",
2073 "id" : 27,
2074 "runtime_data" : [
2075 {
2076 "name" : "port_num",
2077 "bitwidth" : 9
2078 },
2079 {
2080 "name" : "smac",
2081 "bitwidth" : 48
2082 },
2083 {
2084 "name" : "dmac",
2085 "bitwidth" : 48
2086 },
2087 {
2088 "name" : "new_vlan_id",
2089 "bitwidth" : 12
2090 }
2091 ],
2092 "primitives" : [
2093 {
2094 "op" : "assign",
2095 "parameters" : [
2096 {
2097 "type" : "field",
2098 "value" : ["ethernet", "src_addr"]
2099 },
2100 {
2101 "type" : "runtime_data",
2102 "value" : 1
2103 }
2104 ],
2105 "source_info" : {
2106 "filename" : "include/control/next.p4",
2107 "line" : 37,
2108 "column" : 8,
2109 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2110 }
2111 },
2112 {
2113 "op" : "assign",
2114 "parameters" : [
2115 {
2116 "type" : "field",
2117 "value" : ["ethernet", "dst_addr"]
2118 },
2119 {
2120 "type" : "runtime_data",
2121 "value" : 2
2122 }
2123 ],
2124 "source_info" : {
2125 "filename" : "include/control/next.p4",
2126 "line" : 41,
2127 "column" : 8,
2128 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2129 }
2130 },
2131 {
2132 "op" : "assign",
2133 "parameters" : [
2134 {
2135 "type" : "field",
2136 "value" : ["vlan_tag", "vlan_id"]
2137 },
2138 {
2139 "type" : "runtime_data",
2140 "value" : 3
2141 }
2142 ],
2143 "source_info" : {
2144 "filename" : "include/control/next.p4",
2145 "line" : 90,
2146 "column" : 8,
2147 "source_fragment" : "hdr.vlan_tag.vlan_id = new_vlan_id; ..."
2148 }
2149 },
2150 {
2151 "op" : "assign",
2152 "parameters" : [
2153 {
2154 "type" : "field",
2155 "value" : ["standard_metadata", "egress_spec"]
2156 },
2157 {
2158 "type" : "runtime_data",
2159 "value" : 0
2160 }
2161 ],
2162 "source_info" : {
2163 "filename" : "include/control/next.p4",
2164 "line" : 85,
2165 "column" : 8,
2166 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2167 }
2168 }
2169 ]
2170 },
2171 {
2172 "name" : "FabricIngress.next.l3_routing_hashed",
2173 "id" : 28,
2174 "runtime_data" : [
2175 {
2176 "name" : "port_num",
2177 "bitwidth" : 9
2178 },
2179 {
2180 "name" : "smac",
2181 "bitwidth" : 48
2182 },
2183 {
2184 "name" : "dmac",
2185 "bitwidth" : 48
2186 }
2187 ],
2188 "primitives" : [
2189 {
2190 "op" : "assign",
2191 "parameters" : [
2192 {
2193 "type" : "field",
2194 "value" : ["ethernet", "src_addr"]
2195 },
2196 {
2197 "type" : "runtime_data",
2198 "value" : 1
2199 }
2200 ],
2201 "source_info" : {
2202 "filename" : "include/control/next.p4",
2203 "line" : 37,
2204 "column" : 8,
2205 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2206 }
2207 },
2208 {
2209 "op" : "assign",
2210 "parameters" : [
2211 {
2212 "type" : "field",
2213 "value" : ["ethernet", "dst_addr"]
2214 },
2215 {
2216 "type" : "runtime_data",
2217 "value" : 2
2218 }
2219 ],
2220 "source_info" : {
2221 "filename" : "include/control/next.p4",
2222 "line" : 41,
2223 "column" : 8,
2224 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2225 }
2226 },
2227 {
2228 "op" : "assign",
2229 "parameters" : [
2230 {
2231 "type" : "field",
2232 "value" : ["standard_metadata", "egress_spec"]
2233 },
2234 {
2235 "type" : "runtime_data",
2236 "value" : 0
2237 }
2238 ],
2239 "source_info" : {
2240 "filename" : "include/control/next.p4",
2241 "line" : 149,
2242 "column" : 8,
2243 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2244 }
2245 }
2246 ]
2247 },
2248 {
2249 "name" : "FabricIngress.next.mpls_routing_v4_hashed",
Carmelo Casconef645e842018-07-16 18:31:52 +02002250 "id" : 29,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002251 "runtime_data" : [
2252 {
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002253 "name" : "port_num",
2254 "bitwidth" : 9
2255 },
2256 {
2257 "name" : "smac",
2258 "bitwidth" : 48
2259 },
2260 {
2261 "name" : "dmac",
2262 "bitwidth" : 48
2263 },
2264 {
2265 "name" : "label",
2266 "bitwidth" : 20
2267 }
2268 ],
2269 "primitives" : [
2270 {
2271 "op" : "assign",
2272 "parameters" : [
2273 {
2274 "type" : "field",
2275 "value" : ["ethernet", "src_addr"]
2276 },
2277 {
2278 "type" : "runtime_data",
2279 "value" : 1
2280 }
2281 ],
2282 "source_info" : {
2283 "filename" : "include/control/next.p4",
2284 "line" : 37,
2285 "column" : 8,
2286 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2287 }
2288 },
2289 {
2290 "op" : "assign",
2291 "parameters" : [
2292 {
2293 "type" : "field",
2294 "value" : ["ethernet", "dst_addr"]
2295 },
2296 {
2297 "type" : "runtime_data",
2298 "value" : 2
2299 }
2300 ],
2301 "source_info" : {
2302 "filename" : "include/control/next.p4",
2303 "line" : 41,
2304 "column" : 8,
2305 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2306 }
2307 },
2308 {
2309 "op" : "assign",
2310 "parameters" : [
2311 {
2312 "type" : "field",
2313 "value" : ["standard_metadata", "egress_spec"]
2314 },
2315 {
2316 "type" : "runtime_data",
2317 "value" : 0
2318 }
2319 ],
2320 "source_info" : {
2321 "filename" : "include/control/next.p4",
2322 "line" : 149,
2323 "column" : 8,
2324 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2325 }
2326 },
2327 {
2328 "op" : "add_header",
2329 "parameters" : [
2330 {
2331 "type" : "header",
2332 "value" : "mpls"
2333 }
2334 ],
2335 "source_info" : {
2336 "filename" : "include/control/next.p4",
2337 "line" : 46,
2338 "column" : 8,
2339 "source_fragment" : "hdr.mpls.setValid()"
2340 }
2341 },
2342 {
2343 "op" : "assign",
2344 "parameters" : [
2345 {
2346 "type" : "field",
2347 "value" : ["vlan_tag", "ether_type"]
2348 },
2349 {
2350 "type" : "hexstr",
2351 "value" : "0x8847"
2352 }
2353 ],
2354 "source_info" : {
2355 "filename" : "include/control/../define.p4",
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07002356 "line" : 100,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002357 "column" : 31,
2358 "source_fragment" : "0x8847; ..."
2359 }
2360 },
2361 {
2362 "op" : "assign",
2363 "parameters" : [
2364 {
2365 "type" : "field",
2366 "value" : ["mpls", "label"]
2367 },
2368 {
2369 "type" : "runtime_data",
2370 "value" : 3
2371 }
2372 ],
2373 "source_info" : {
2374 "filename" : "include/control/next.p4",
2375 "line" : 48,
2376 "column" : 8,
2377 "source_fragment" : "hdr.mpls.label = label; ..."
2378 }
2379 },
2380 {
2381 "op" : "assign",
2382 "parameters" : [
2383 {
2384 "type" : "field",
2385 "value" : ["mpls", "tc"]
2386 },
2387 {
2388 "type" : "hexstr",
2389 "value" : "0x00"
2390 }
2391 ],
2392 "source_info" : {
2393 "filename" : "include/control/next.p4",
2394 "line" : 49,
2395 "column" : 8,
2396 "source_fragment" : "hdr.mpls.tc = tc; ..."
2397 }
2398 },
2399 {
2400 "op" : "assign",
2401 "parameters" : [
2402 {
2403 "type" : "field",
2404 "value" : ["mpls", "bos"]
2405 },
2406 {
2407 "type" : "hexstr",
2408 "value" : "0x01"
2409 }
2410 ],
2411 "source_info" : {
2412 "filename" : "include/control/next.p4",
2413 "line" : 50,
2414 "column" : 8,
2415 "source_fragment" : "hdr.mpls.bos = 1w1"
2416 }
2417 },
2418 {
2419 "op" : "assign",
2420 "parameters" : [
2421 {
2422 "type" : "field",
2423 "value" : ["mpls", "ttl"]
2424 },
2425 {
2426 "type" : "hexstr",
2427 "value" : "0x40"
2428 }
2429 ],
2430 "source_info" : {
2431 "filename" : "include/control/../define.p4",
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07002432 "line" : 123,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002433 "column" : 32,
2434 "source_fragment" : "64; ..."
2435 }
2436 }
2437 ]
2438 },
2439 {
Charles Chancd03f072018-08-31 17:46:37 -07002440 "name" : "FabricIngress.next.mpls_routing_v6_hashed",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002441 "id" : 30,
2442 "runtime_data" : [
2443 {
Charles Chancd03f072018-08-31 17:46:37 -07002444 "name" : "port_num",
2445 "bitwidth" : 9
2446 },
2447 {
2448 "name" : "smac",
2449 "bitwidth" : 48
2450 },
2451 {
2452 "name" : "dmac",
2453 "bitwidth" : 48
2454 },
2455 {
2456 "name" : "label",
2457 "bitwidth" : 20
2458 }
2459 ],
2460 "primitives" : [
2461 {
2462 "op" : "assign",
2463 "parameters" : [
2464 {
2465 "type" : "field",
2466 "value" : ["ethernet", "src_addr"]
2467 },
2468 {
2469 "type" : "runtime_data",
2470 "value" : 1
2471 }
2472 ],
2473 "source_info" : {
2474 "filename" : "include/control/next.p4",
2475 "line" : 37,
2476 "column" : 8,
2477 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
2478 }
2479 },
2480 {
2481 "op" : "assign",
2482 "parameters" : [
2483 {
2484 "type" : "field",
2485 "value" : ["ethernet", "dst_addr"]
2486 },
2487 {
2488 "type" : "runtime_data",
2489 "value" : 2
2490 }
2491 ],
2492 "source_info" : {
2493 "filename" : "include/control/next.p4",
2494 "line" : 41,
2495 "column" : 8,
2496 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
2497 }
2498 },
2499 {
2500 "op" : "assign",
2501 "parameters" : [
2502 {
2503 "type" : "field",
2504 "value" : ["standard_metadata", "egress_spec"]
2505 },
2506 {
2507 "type" : "runtime_data",
2508 "value" : 0
2509 }
2510 ],
2511 "source_info" : {
2512 "filename" : "include/control/next.p4",
2513 "line" : 149,
2514 "column" : 8,
2515 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
2516 }
2517 },
2518 {
2519 "op" : "add_header",
2520 "parameters" : [
2521 {
2522 "type" : "header",
2523 "value" : "mpls"
2524 }
2525 ],
2526 "source_info" : {
2527 "filename" : "include/control/next.p4",
2528 "line" : 46,
2529 "column" : 8,
2530 "source_fragment" : "hdr.mpls.setValid()"
2531 }
2532 },
2533 {
2534 "op" : "assign",
2535 "parameters" : [
2536 {
2537 "type" : "field",
2538 "value" : ["vlan_tag", "ether_type"]
2539 },
2540 {
2541 "type" : "hexstr",
2542 "value" : "0x8847"
2543 }
2544 ],
2545 "source_info" : {
2546 "filename" : "include/control/../define.p4",
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07002547 "line" : 100,
Charles Chancd03f072018-08-31 17:46:37 -07002548 "column" : 31,
2549 "source_fragment" : "0x8847; ..."
2550 }
2551 },
2552 {
2553 "op" : "assign",
2554 "parameters" : [
2555 {
2556 "type" : "field",
2557 "value" : ["mpls", "label"]
2558 },
2559 {
2560 "type" : "runtime_data",
2561 "value" : 3
2562 }
2563 ],
2564 "source_info" : {
2565 "filename" : "include/control/next.p4",
2566 "line" : 48,
2567 "column" : 8,
2568 "source_fragment" : "hdr.mpls.label = label; ..."
2569 }
2570 },
2571 {
2572 "op" : "assign",
2573 "parameters" : [
2574 {
2575 "type" : "field",
2576 "value" : ["mpls", "tc"]
2577 },
2578 {
2579 "type" : "hexstr",
2580 "value" : "0x00"
2581 }
2582 ],
2583 "source_info" : {
2584 "filename" : "include/control/next.p4",
2585 "line" : 49,
2586 "column" : 8,
2587 "source_fragment" : "hdr.mpls.tc = tc; ..."
2588 }
2589 },
2590 {
2591 "op" : "assign",
2592 "parameters" : [
2593 {
2594 "type" : "field",
2595 "value" : ["mpls", "bos"]
2596 },
2597 {
2598 "type" : "hexstr",
2599 "value" : "0x01"
2600 }
2601 ],
2602 "source_info" : {
2603 "filename" : "include/control/next.p4",
2604 "line" : 50,
2605 "column" : 8,
2606 "source_fragment" : "hdr.mpls.bos = 1w1"
2607 }
2608 },
2609 {
2610 "op" : "assign",
2611 "parameters" : [
2612 {
2613 "type" : "field",
2614 "value" : ["mpls", "ttl"]
2615 },
2616 {
2617 "type" : "hexstr",
2618 "value" : "0x40"
2619 }
2620 ],
2621 "source_info" : {
2622 "filename" : "include/control/../define.p4",
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07002623 "line" : 123,
Charles Chancd03f072018-08-31 17:46:37 -07002624 "column" : 32,
2625 "source_fragment" : "64; ..."
2626 }
2627 }
2628 ]
2629 },
2630 {
2631 "name" : "FabricIngress.next.set_mcast_group",
2632 "id" : 31,
2633 "runtime_data" : [
2634 {
Esin Karaman971fb7f2017-12-28 13:44:52 +00002635 "name" : "gid",
2636 "bitwidth" : 16
2637 }
2638 ],
2639 "primitives" : [
2640 {
2641 "op" : "assign",
2642 "parameters" : [
2643 {
2644 "type" : "field",
2645 "value" : ["standard_metadata", "mcast_grp"]
2646 },
2647 {
2648 "type" : "runtime_data",
2649 "value" : 0
2650 }
2651 ],
2652 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002653 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08002654 "line" : 202,
Esin Karaman971fb7f2017-12-28 13:44:52 +00002655 "column" : 8,
2656 "source_fragment" : "standard_metadata.mcast_grp = gid"
2657 }
Carmelo Casconea5400af2018-07-17 22:11:54 +02002658 },
2659 {
2660 "op" : "assign",
2661 "parameters" : [
2662 {
2663 "type" : "field",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002664 "value" : ["scalars", "fabric_metadata_t.is_multicast"]
Carmelo Casconea5400af2018-07-17 22:11:54 +02002665 },
2666 {
2667 "type" : "expression",
2668 "value" : {
2669 "type" : "expression",
2670 "value" : {
2671 "op" : "b2d",
2672 "left" : null,
2673 "right" : {
2674 "type" : "bool",
2675 "value" : true
2676 }
2677 }
2678 }
2679 }
2680 ],
2681 "source_info" : {
2682 "filename" : "include/control/next.p4",
2683 "line" : 203,
2684 "column" : 8,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02002685 "source_fragment" : "fabric_metadata.is_multicast = true"
Carmelo Casconea5400af2018-07-17 22:11:54 +02002686 }
Esin Karaman971fb7f2017-12-28 13:44:52 +00002687 }
2688 ]
2689 },
2690 {
2691 "name" : "act",
Charles Chancd03f072018-08-31 17:46:37 -07002692 "id" : 32,
Yi Tsengbe342052017-11-03 10:21:23 -07002693 "runtime_data" : [],
2694 "primitives" : [
2695 {
2696 "op" : "assign",
2697 "parameters" : [
2698 {
2699 "type" : "field",
2700 "value" : ["standard_metadata", "egress_spec"]
2701 },
2702 {
2703 "type" : "field",
2704 "value" : ["packet_out", "egress_port"]
2705 }
2706 ],
2707 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002708 "filename" : "include/control/packetio.p4",
Yi Tsengbe342052017-11-03 10:21:23 -07002709 "line" : 26,
2710 "column" : 12,
2711 "source_fragment" : "standard_metadata.egress_spec = hdr.packet_out.egress_port"
2712 }
Yi Tseng1d842672017-11-28 16:06:52 -08002713 },
2714 {
2715 "op" : "remove_header",
2716 "parameters" : [
2717 {
2718 "type" : "header",
2719 "value" : "packet_out"
2720 }
2721 ],
2722 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002723 "filename" : "include/control/packetio.p4",
Yi Tseng1d842672017-11-28 16:06:52 -08002724 "line" : 27,
2725 "column" : 12,
2726 "source_fragment" : "hdr.packet_out.setInvalid()"
2727 }
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07002728 },
2729 {
2730 "op" : "assign",
2731 "parameters" : [
2732 {
2733 "type" : "field",
2734 "value" : ["scalars", "fabric_metadata_t.is_controller_packet_out"]
2735 },
2736 {
2737 "type" : "expression",
2738 "value" : {
2739 "type" : "expression",
2740 "value" : {
2741 "op" : "b2d",
2742 "left" : null,
2743 "right" : {
2744 "type" : "bool",
2745 "value" : true
2746 }
2747 }
2748 }
2749 }
2750 ],
2751 "source_info" : {
2752 "filename" : "include/control/packetio.p4",
2753 "line" : 28,
2754 "column" : 12,
2755 "source_fragment" : "fabric_metadata.is_controller_packet_out = true"
2756 }
Yi Tsengbe342052017-11-03 10:21:23 -07002757 }
2758 ]
2759 },
2760 {
2761 "name" : "act_0",
Charles Chancd03f072018-08-31 17:46:37 -07002762 "id" : 33,
Yi Tsengbe342052017-11-03 10:21:23 -07002763 "runtime_data" : [],
2764 "primitives" : [
2765 {
2766 "op" : "assign",
2767 "parameters" : [
2768 {
2769 "type" : "field",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002770 "value" : ["scalars", "filtering_tmp_0"]
Yi Tseng1d842672017-11-28 16:06:52 -08002771 },
2772 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002773 "type" : "expression",
2774 "value" : {
2775 "type" : "expression",
2776 "value" : {
2777 "op" : "b2d",
2778 "left" : null,
2779 "right" : {
2780 "type" : "bool",
2781 "value" : true
2782 }
2783 }
2784 }
Yi Tseng1d842672017-11-28 16:06:52 -08002785 }
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002786 ]
Yi Tseng1d842672017-11-28 16:06:52 -08002787 }
2788 ]
2789 },
2790 {
2791 "name" : "act_1",
Charles Chancd03f072018-08-31 17:46:37 -07002792 "id" : 34,
Yi Tseng1d842672017-11-28 16:06:52 -08002793 "runtime_data" : [],
2794 "primitives" : [
2795 {
2796 "op" : "assign",
2797 "parameters" : [
2798 {
2799 "type" : "field",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002800 "value" : ["scalars", "filtering_tmp_0"]
Yi Tseng1d842672017-11-28 16:06:52 -08002801 },
2802 {
2803 "type" : "expression",
2804 "value" : {
2805 "type" : "expression",
2806 "value" : {
2807 "op" : "b2d",
2808 "left" : null,
2809 "right" : {
2810 "type" : "bool",
2811 "value" : false
2812 }
2813 }
2814 }
2815 }
2816 ]
2817 }
2818 ]
2819 },
2820 {
Carmelo Casconea5400af2018-07-17 22:11:54 +02002821 "name" : "act_2",
Charles Chancd03f072018-08-31 17:46:37 -07002822 "id" : 35,
Carmelo Casconea5400af2018-07-17 22:11:54 +02002823 "runtime_data" : [],
2824 "primitives" : [
2825 {
2826 "op" : "assign",
2827 "parameters" : [
2828 {
2829 "type" : "field",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002830 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
Carmelo Casconea5400af2018-07-17 22:11:54 +02002831 },
2832 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002833 "type" : "hexstr",
2834 "value" : "0x07"
Carmelo Casconea5400af2018-07-17 22:11:54 +02002835 }
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002836 ],
2837 "source_info" : {
2838 "filename" : "include/control/../define.p4",
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07002839 "line" : 119,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002840 "column" : 31,
2841 "source_fragment" : "7; ..."
2842 }
Carmelo Casconea5400af2018-07-17 22:11:54 +02002843 }
2844 ]
2845 },
2846 {
Yi Tsengbd46d052018-01-22 17:18:16 -08002847 "name" : "act_3",
Charles Chancd03f072018-08-31 17:46:37 -07002848 "id" : 36,
Yi Tseng1d842672017-11-28 16:06:52 -08002849 "runtime_data" : [],
2850 "primitives" : [
2851 {
2852 "op" : "assign",
2853 "parameters" : [
2854 {
2855 "type" : "field",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002856 "value" : ["vlan_tag", "ether_type"]
Carmelo Casconea5400af2018-07-17 22:11:54 +02002857 },
2858 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002859 "type" : "hexstr",
2860 "value" : "0x0800"
Carmelo Casconea5400af2018-07-17 22:11:54 +02002861 }
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002862 ],
2863 "source_info" : {
2864 "filename" : "include/control/../define.p4",
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07002865 "line" : 102,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002866 "column" : 31,
2867 "source_fragment" : "0x0800; ..."
2868 }
Carmelo Casconea5400af2018-07-17 22:11:54 +02002869 }
2870 ]
2871 },
2872 {
2873 "name" : "act_4",
Charles Chancd03f072018-08-31 17:46:37 -07002874 "id" : 37,
Carmelo Casconea5400af2018-07-17 22:11:54 +02002875 "runtime_data" : [],
2876 "primitives" : [
2877 {
2878 "op" : "assign",
2879 "parameters" : [
2880 {
2881 "type" : "field",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002882 "value" : ["scalars", "next_hasReturned_0"]
Carmelo Casconea5400af2018-07-17 22:11:54 +02002883 },
2884 {
2885 "type" : "expression",
2886 "value" : {
2887 "type" : "expression",
2888 "value" : {
2889 "op" : "b2d",
2890 "left" : null,
2891 "right" : {
2892 "type" : "bool",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002893 "value" : false
Carmelo Casconea5400af2018-07-17 22:11:54 +02002894 }
2895 }
2896 }
2897 }
2898 ]
2899 }
2900 ]
2901 },
2902 {
2903 "name" : "act_5",
Charles Chancd03f072018-08-31 17:46:37 -07002904 "id" : 38,
Carmelo Casconea5400af2018-07-17 22:11:54 +02002905 "runtime_data" : [],
2906 "primitives" : [
2907 {
2908 "op" : "assign",
2909 "parameters" : [
2910 {
2911 "type" : "field",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002912 "value" : ["scalars", "next_tmp_4"]
2913 },
2914 {
2915 "type" : "expression",
2916 "value" : {
2917 "type" : "expression",
2918 "value" : {
2919 "op" : "b2d",
2920 "left" : null,
2921 "right" : {
2922 "type" : "bool",
2923 "value" : true
2924 }
2925 }
2926 }
2927 }
2928 ]
2929 }
2930 ]
2931 },
2932 {
2933 "name" : "act_6",
Charles Chancd03f072018-08-31 17:46:37 -07002934 "id" : 39,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002935 "runtime_data" : [],
2936 "primitives" : [
2937 {
2938 "op" : "assign",
2939 "parameters" : [
2940 {
2941 "type" : "field",
2942 "value" : ["scalars", "next_tmp_4"]
2943 },
2944 {
2945 "type" : "expression",
2946 "value" : {
2947 "type" : "expression",
2948 "value" : {
2949 "op" : "b2d",
2950 "left" : null,
2951 "right" : {
2952 "type" : "bool",
2953 "value" : false
2954 }
2955 }
2956 }
2957 }
2958 ]
2959 }
2960 ]
2961 },
2962 {
2963 "name" : "act_7",
Charles Chancd03f072018-08-31 17:46:37 -07002964 "id" : 40,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002965 "runtime_data" : [],
2966 "primitives" : [
2967 {
2968 "op" : "assign",
2969 "parameters" : [
2970 {
2971 "type" : "field",
2972 "value" : ["scalars", "next_tmp_3"]
2973 },
2974 {
2975 "type" : "expression",
2976 "value" : {
2977 "type" : "expression",
2978 "value" : {
2979 "op" : "b2d",
2980 "left" : null,
2981 "right" : {
2982 "type" : "bool",
2983 "value" : true
2984 }
2985 }
2986 }
2987 }
2988 ]
2989 }
2990 ]
2991 },
2992 {
2993 "name" : "act_8",
Charles Chancd03f072018-08-31 17:46:37 -07002994 "id" : 41,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002995 "runtime_data" : [],
2996 "primitives" : [
2997 {
2998 "op" : "assign",
2999 "parameters" : [
3000 {
3001 "type" : "field",
Carmelo Casconea5400af2018-07-17 22:11:54 +02003002 "value" : ["scalars", "next_tmp_3"]
3003 },
3004 {
3005 "type" : "expression",
3006 "value" : {
3007 "type" : "expression",
3008 "value" : {
3009 "op" : "b2d",
3010 "left" : null,
3011 "right" : {
3012 "type" : "bool",
3013 "value" : false
3014 }
3015 }
3016 }
3017 }
3018 ]
3019 }
3020 ]
3021 },
3022 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003023 "name" : "act_9",
Charles Chancd03f072018-08-31 17:46:37 -07003024 "id" : 42,
Carmelo Casconea5400af2018-07-17 22:11:54 +02003025 "runtime_data" : [],
3026 "primitives" : [
3027 {
3028 "op" : "assign",
3029 "parameters" : [
3030 {
3031 "type" : "field",
3032 "value" : ["scalars", "next_tmp_2"]
3033 },
3034 {
3035 "type" : "expression",
3036 "value" : {
3037 "type" : "expression",
3038 "value" : {
3039 "op" : "b2d",
3040 "left" : null,
3041 "right" : {
3042 "type" : "bool",
3043 "value" : true
3044 }
3045 }
3046 }
3047 }
3048 ]
3049 }
3050 ]
3051 },
3052 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003053 "name" : "act_10",
Charles Chancd03f072018-08-31 17:46:37 -07003054 "id" : 43,
Carmelo Casconea5400af2018-07-17 22:11:54 +02003055 "runtime_data" : [],
3056 "primitives" : [
3057 {
3058 "op" : "assign",
3059 "parameters" : [
3060 {
3061 "type" : "field",
3062 "value" : ["scalars", "next_tmp_2"]
3063 },
3064 {
3065 "type" : "expression",
3066 "value" : {
3067 "type" : "expression",
3068 "value" : {
3069 "op" : "b2d",
3070 "left" : null,
3071 "right" : {
3072 "type" : "bool",
3073 "value" : false
3074 }
3075 }
3076 }
3077 }
3078 ]
3079 }
3080 ]
3081 },
3082 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003083 "name" : "act_11",
Charles Chancd03f072018-08-31 17:46:37 -07003084 "id" : 44,
Carmelo Casconea5400af2018-07-17 22:11:54 +02003085 "runtime_data" : [],
3086 "primitives" : [
3087 {
3088 "op" : "assign",
3089 "parameters" : [
3090 {
3091 "type" : "field",
3092 "value" : ["scalars", "next_hasReturned_0"]
3093 },
3094 {
3095 "type" : "expression",
3096 "value" : {
3097 "type" : "expression",
3098 "value" : {
3099 "op" : "b2d",
3100 "left" : null,
3101 "right" : {
3102 "type" : "bool",
3103 "value" : true
3104 }
3105 }
3106 }
3107 }
3108 ],
3109 "source_info" : {
3110 "filename" : "include/control/next.p4",
3111 "line" : 223,
3112 "column" : 20,
3113 "source_fragment" : "return"
3114 }
3115 }
3116 ]
3117 },
3118 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003119 "name" : "act_12",
Charles Chancd03f072018-08-31 17:46:37 -07003120 "id" : 45,
Carmelo Casconea5400af2018-07-17 22:11:54 +02003121 "runtime_data" : [],
3122 "primitives" : [
3123 {
3124 "op" : "assign",
3125 "parameters" : [
3126 {
3127 "type" : "field",
Yi Tseng1d842672017-11-28 16:06:52 -08003128 "value" : ["ipv4", "ttl"]
3129 },
3130 {
3131 "type" : "expression",
3132 "value" : {
3133 "type" : "expression",
3134 "value" : {
3135 "op" : "&",
3136 "left" : {
3137 "type" : "expression",
3138 "value" : {
3139 "op" : "+",
3140 "left" : {
3141 "type" : "field",
3142 "value" : ["ipv4", "ttl"]
3143 },
3144 "right" : {
3145 "type" : "hexstr",
3146 "value" : "0xff"
3147 }
3148 }
3149 },
3150 "right" : {
3151 "type" : "hexstr",
3152 "value" : "0xff"
3153 }
3154 }
3155 }
3156 }
3157 ],
3158 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003159 "filename" : "include/control/next.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02003160 "line" : 230,
3161 "column" : 16,
Yi Tseng1d842672017-11-28 16:06:52 -08003162 "source_fragment" : "hdr.ipv4.ttl = hdr.ipv4.ttl - 1"
3163 }
3164 }
3165 ]
3166 },
3167 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003168 "name" : "act_13",
Charles Chancd03f072018-08-31 17:46:37 -07003169 "id" : 46,
Yi Tseng1d842672017-11-28 16:06:52 -08003170 "runtime_data" : [],
3171 "primitives" : [
3172 {
3173 "op" : "assign",
3174 "parameters" : [
3175 {
3176 "type" : "field",
Yi Tsengc6844f52017-12-19 11:58:25 -08003177 "value" : ["scalars", "tmp_0"]
Yi Tsengbe342052017-11-03 10:21:23 -07003178 },
3179 {
3180 "type" : "expression",
3181 "value" : {
3182 "type" : "expression",
3183 "value" : {
3184 "op" : "&",
3185 "left" : {
3186 "type" : "field",
3187 "value" : ["standard_metadata", "egress_spec"]
3188 },
3189 "right" : {
3190 "type" : "hexstr",
3191 "value" : "0xffffffff"
3192 }
3193 }
3194 }
3195 }
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003196 ],
3197 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003198 "filename" : "include/control/port_counter.p4",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003199 "line" : 28,
3200 "column" : 38,
3201 "source_fragment" : "(bit<32>)standard_metadata.egress_spec"
3202 }
Yi Tsengbe342052017-11-03 10:21:23 -07003203 },
3204 {
3205 "op" : "count",
3206 "parameters" : [
3207 {
3208 "type" : "counter_array",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003209 "value" : "FabricIngress.port_counters_control.egress_port_counter"
Yi Tsengbe342052017-11-03 10:21:23 -07003210 },
3211 {
3212 "type" : "field",
Yi Tsengc6844f52017-12-19 11:58:25 -08003213 "value" : ["scalars", "tmp_0"]
Yi Tsengbe342052017-11-03 10:21:23 -07003214 }
3215 ],
3216 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003217 "filename" : "include/control/port_counter.p4",
Yi Tsengbe342052017-11-03 10:21:23 -07003218 "line" : 28,
3219 "column" : 12,
3220 "source_fragment" : "egress_port_counter.count((bit<32>)standard_metadata.egress_spec)"
3221 }
3222 }
3223 ]
3224 },
3225 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003226 "name" : "act_14",
Charles Chancd03f072018-08-31 17:46:37 -07003227 "id" : 47,
Yi Tsengbe342052017-11-03 10:21:23 -07003228 "runtime_data" : [],
3229 "primitives" : [
3230 {
3231 "op" : "assign",
3232 "parameters" : [
3233 {
3234 "type" : "field",
Yi Tsengc6844f52017-12-19 11:58:25 -08003235 "value" : ["scalars", "tmp_1"]
Yi Tsengbe342052017-11-03 10:21:23 -07003236 },
3237 {
3238 "type" : "expression",
3239 "value" : {
3240 "type" : "expression",
3241 "value" : {
3242 "op" : "&",
3243 "left" : {
3244 "type" : "field",
3245 "value" : ["standard_metadata", "ingress_port"]
3246 },
3247 "right" : {
3248 "type" : "hexstr",
3249 "value" : "0xffffffff"
3250 }
3251 }
3252 }
3253 }
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003254 ],
3255 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003256 "filename" : "include/control/port_counter.p4",
Carmelo Cascone6af4e172018-06-15 16:01:30 +02003257 "line" : 31,
3258 "column" : 39,
3259 "source_fragment" : "(bit<32>)standard_metadata.ingress_port"
3260 }
Yi Tsengbe342052017-11-03 10:21:23 -07003261 },
3262 {
3263 "op" : "count",
3264 "parameters" : [
3265 {
3266 "type" : "counter_array",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003267 "value" : "FabricIngress.port_counters_control.ingress_port_counter"
Yi Tsengbe342052017-11-03 10:21:23 -07003268 },
3269 {
3270 "type" : "field",
Yi Tsengc6844f52017-12-19 11:58:25 -08003271 "value" : ["scalars", "tmp_1"]
Yi Tsengbe342052017-11-03 10:21:23 -07003272 }
3273 ],
3274 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003275 "filename" : "include/control/port_counter.p4",
Yi Tsengbe342052017-11-03 10:21:23 -07003276 "line" : 31,
3277 "column" : 12,
3278 "source_fragment" : "ingress_port_counter.count((bit<32>)standard_metadata.ingress_port)"
3279 }
3280 }
3281 ]
3282 },
3283 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003284 "name" : "nop",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003285 "id" : 48,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003286 "runtime_data" : [],
Charles Chancd03f072018-08-31 17:46:37 -07003287 "primitives" : []
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02003288 },
3289 {
3290 "name" : "drop_now",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003291 "id" : 49,
Carmelo Casconea5400af2018-07-17 22:11:54 +02003292 "runtime_data" : [],
3293 "primitives" : [
3294 {
3295 "op" : "drop",
3296 "parameters" : [],
3297 "source_info" : {
3298 "filename" : "include/control/../action.p4",
3299 "line" : 24,
3300 "column" : 4,
3301 "source_fragment" : "mark_to_drop()"
3302 }
3303 },
3304 {
3305 "op" : "exit",
3306 "parameters" : [],
3307 "source_info" : {
3308 "filename" : "include/control/../action.p4",
3309 "line" : 25,
3310 "column" : 4,
3311 "source_fragment" : "exit"
3312 }
3313 }
3314 ]
3315 },
3316 {
Charles Chancd03f072018-08-31 17:46:37 -07003317 "name" : "drop_now",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003318 "id" : 50,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003319 "runtime_data" : [],
3320 "primitives" : [
3321 {
Charles Chancd03f072018-08-31 17:46:37 -07003322 "op" : "drop",
3323 "parameters" : [],
3324 "source_info" : {
3325 "filename" : "include/control/../action.p4",
3326 "line" : 24,
3327 "column" : 4,
3328 "source_fragment" : "mark_to_drop()"
3329 }
3330 },
3331 {
3332 "op" : "exit",
3333 "parameters" : [],
3334 "source_info" : {
3335 "filename" : "include/control/../action.p4",
3336 "line" : 25,
3337 "column" : 4,
3338 "source_fragment" : "exit"
3339 }
3340 }
3341 ]
3342 },
3343 {
3344 "name" : "FabricEgress.pkt_io_egress.pop_vlan",
3345 "id" : 51,
3346 "runtime_data" : [],
3347 "primitives" : [
3348 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003349 "op" : "assign",
3350 "parameters" : [
3351 {
3352 "type" : "field",
3353 "value" : ["ethernet", "ether_type"]
3354 },
3355 {
3356 "type" : "field",
3357 "value" : ["vlan_tag", "ether_type"]
3358 }
3359 ],
3360 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003361 "filename" : "include/control/packetio.p4",
Carmelo Cascone79a3a312018-08-16 17:14:43 -07003362 "line" : 40,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003363 "column" : 8,
3364 "source_fragment" : "hdr.ethernet.ether_type = hdr.vlan_tag.ether_type"
3365 }
3366 },
3367 {
3368 "op" : "remove_header",
3369 "parameters" : [
3370 {
3371 "type" : "header",
3372 "value" : "vlan_tag"
3373 }
3374 ],
3375 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003376 "filename" : "include/control/packetio.p4",
Carmelo Cascone79a3a312018-08-16 17:14:43 -07003377 "line" : 41,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003378 "column" : 8,
3379 "source_fragment" : "hdr.vlan_tag.setInvalid()"
3380 }
3381 }
3382 ]
3383 },
3384 {
3385 "name" : "FabricEgress.egress_next.pop_vlan",
Charles Chancd03f072018-08-31 17:46:37 -07003386 "id" : 52,
Yi Tseng1d842672017-11-28 16:06:52 -08003387 "runtime_data" : [],
3388 "primitives" : [
3389 {
3390 "op" : "assign",
3391 "parameters" : [
3392 {
3393 "type" : "field",
3394 "value" : ["ethernet", "ether_type"]
3395 },
3396 {
3397 "type" : "field",
Yi Tsengbd46d052018-01-22 17:18:16 -08003398 "value" : ["vlan_tag", "ether_type"]
Yi Tseng1d842672017-11-28 16:06:52 -08003399 }
3400 ],
3401 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003402 "filename" : "include/control/next.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02003403 "line" : 253,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003404 "column" : 8,
Yi Tsengbd46d052018-01-22 17:18:16 -08003405 "source_fragment" : "hdr.ethernet.ether_type = hdr.vlan_tag.ether_type"
Yi Tseng1d842672017-11-28 16:06:52 -08003406 }
Yi Tsengbd46d052018-01-22 17:18:16 -08003407 },
Yi Tsengbe342052017-11-03 10:21:23 -07003408 {
3409 "op" : "remove_header",
3410 "parameters" : [
3411 {
3412 "type" : "header",
3413 "value" : "vlan_tag"
3414 }
3415 ],
3416 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003417 "filename" : "include/control/next.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02003418 "line" : 254,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003419 "column" : 8,
Yi Tsengbe342052017-11-03 10:21:23 -07003420 "source_fragment" : "hdr.vlan_tag.setInvalid()"
3421 }
3422 }
3423 ]
3424 },
3425 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003426 "name" : "act_15",
Charles Chancd03f072018-08-31 17:46:37 -07003427 "id" : 53,
Yi Tsengbe342052017-11-03 10:21:23 -07003428 "runtime_data" : [],
3429 "primitives" : [
3430 {
3431 "op" : "add_header",
3432 "parameters" : [
3433 {
3434 "type" : "header",
3435 "value" : "packet_in"
3436 }
3437 ],
3438 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003439 "filename" : "include/control/packetio.p4",
Carmelo Cascone79a3a312018-08-16 17:14:43 -07003440 "line" : 57,
Yi Tsengbe342052017-11-03 10:21:23 -07003441 "column" : 12,
3442 "source_fragment" : "hdr.packet_in.setValid()"
3443 }
3444 },
3445 {
3446 "op" : "assign",
3447 "parameters" : [
3448 {
3449 "type" : "field",
3450 "value" : ["packet_in", "ingress_port"]
3451 },
3452 {
3453 "type" : "field",
3454 "value" : ["standard_metadata", "ingress_port"]
3455 }
3456 ],
3457 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003458 "filename" : "include/control/packetio.p4",
Carmelo Cascone79a3a312018-08-16 17:14:43 -07003459 "line" : 58,
Yi Tsengbe342052017-11-03 10:21:23 -07003460 "column" : 12,
3461 "source_fragment" : "hdr.packet_in.ingress_port = standard_metadata.ingress_port"
3462 }
3463 }
3464 ]
Yi Tsengbe342052017-11-03 10:21:23 -07003465 }
3466 ],
3467 "pipelines" : [
3468 {
3469 "name" : "ingress",
3470 "id" : 0,
3471 "source_info" : {
3472 "filename" : "fabric.p4",
Carmelo Cascone79a3a312018-08-16 17:14:43 -07003473 "line" : 40,
Yi Tsengbe342052017-11-03 10:21:23 -07003474 "column" : 8,
3475 "source_fragment" : "FabricIngress"
3476 },
3477 "init_table" : "node_2",
3478 "tables" : [
3479 {
3480 "name" : "tbl_act",
3481 "id" : 0,
3482 "key" : [],
3483 "match_type" : "exact",
3484 "type" : "simple",
3485 "max_size" : 1024,
3486 "with_counters" : false,
3487 "support_timeout" : false,
3488 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07003489 "action_ids" : [32],
Yi Tsengbe342052017-11-03 10:21:23 -07003490 "actions" : ["act"],
3491 "base_default_next" : null,
3492 "next_tables" : {
3493 "act" : null
3494 },
3495 "default_entry" : {
Charles Chancd03f072018-08-31 17:46:37 -07003496 "action_id" : 32,
Yi Tsengbe342052017-11-03 10:21:23 -07003497 "action_const" : true,
3498 "action_data" : [],
3499 "action_entry_const" : true
3500 }
3501 },
3502 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003503 "name" : "FabricIngress.filtering.ingress_port_vlan",
Yi Tsengbe342052017-11-03 10:21:23 -07003504 "id" : 1,
3505 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003506 "filename" : "include/control/filtering.p4",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003507 "line" : 66,
Yi Tsengbe342052017-11-03 10:21:23 -07003508 "column" : 10,
3509 "source_fragment" : "ingress_port_vlan"
3510 },
3511 "key" : [
3512 {
3513 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003514 "name" : "standard_metadata.ingress_port",
Yi Tsengbe342052017-11-03 10:21:23 -07003515 "target" : ["standard_metadata", "ingress_port"],
3516 "mask" : null
3517 },
3518 {
3519 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003520 "name" : "hdr.vlan_tag.is_valid",
Yi Tsengbe342052017-11-03 10:21:23 -07003521 "target" : ["vlan_tag", "$valid$"],
3522 "mask" : null
3523 },
3524 {
3525 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003526 "name" : "hdr.vlan_tag.vlan_id",
Yi Tsengbe342052017-11-03 10:21:23 -07003527 "target" : ["vlan_tag", "vlan_id"],
3528 "mask" : null
3529 }
3530 ],
3531 "match_type" : "ternary",
3532 "type" : "simple",
3533 "max_size" : 1024,
Yi Tsengbd46d052018-01-22 17:18:16 -08003534 "with_counters" : true,
Yi Tsengbe342052017-11-03 10:21:23 -07003535 "support_timeout" : false,
3536 "direct_meters" : null,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003537 "action_ids" : [9, 8, 7, 10],
3538 "actions" : ["FabricIngress.filtering.push_internal_vlan", "FabricIngress.filtering.set_vlan", "FabricIngress.filtering.drop", "FabricIngress.filtering.nop_ingress_port_vlan"],
3539 "base_default_next" : null,
Yi Tsengbe342052017-11-03 10:21:23 -07003540 "next_tables" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003541 "__HIT__" : "tbl_act_0",
3542 "__MISS__" : "tbl_act_1"
Yi Tsengbe342052017-11-03 10:21:23 -07003543 },
3544 "default_entry" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003545 "action_id" : 9,
3546 "action_const" : true,
3547 "action_data" : ["0xffe"],
3548 "action_entry_const" : true
3549 }
3550 },
3551 {
3552 "name" : "tbl_act_0",
3553 "id" : 2,
3554 "key" : [],
3555 "match_type" : "exact",
3556 "type" : "simple",
3557 "max_size" : 1024,
3558 "with_counters" : false,
3559 "support_timeout" : false,
3560 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07003561 "action_ids" : [33],
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003562 "actions" : ["act_0"],
3563 "base_default_next" : "node_7",
3564 "next_tables" : {
3565 "act_0" : "node_7"
3566 },
3567 "default_entry" : {
Charles Chancd03f072018-08-31 17:46:37 -07003568 "action_id" : 33,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003569 "action_const" : true,
3570 "action_data" : [],
3571 "action_entry_const" : true
3572 }
3573 },
3574 {
3575 "name" : "tbl_act_1",
3576 "id" : 3,
3577 "key" : [],
3578 "match_type" : "exact",
3579 "type" : "simple",
3580 "max_size" : 1024,
3581 "with_counters" : false,
3582 "support_timeout" : false,
3583 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07003584 "action_ids" : [34],
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003585 "actions" : ["act_1"],
3586 "base_default_next" : "node_7",
3587 "next_tables" : {
3588 "act_1" : "node_7"
3589 },
3590 "default_entry" : {
Charles Chancd03f072018-08-31 17:46:37 -07003591 "action_id" : 34,
Yi Tsengbe342052017-11-03 10:21:23 -07003592 "action_const" : true,
3593 "action_data" : [],
3594 "action_entry_const" : true
3595 }
3596 },
3597 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003598 "name" : "FabricIngress.filtering.fwd_classifier",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003599 "id" : 4,
Yi Tsengbe342052017-11-03 10:21:23 -07003600 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003601 "filename" : "include/control/filtering.p4",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003602 "line" : 103,
Yi Tsengbe342052017-11-03 10:21:23 -07003603 "column" : 10,
3604 "source_fragment" : "fwd_classifier"
3605 },
3606 "key" : [
3607 {
3608 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003609 "name" : "standard_metadata.ingress_port",
Yi Tsengbe342052017-11-03 10:21:23 -07003610 "target" : ["standard_metadata", "ingress_port"],
3611 "mask" : null
3612 },
3613 {
Charles Chan384aea22018-08-23 22:08:02 -07003614 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003615 "name" : "hdr.ethernet.dst_addr",
Yi Tsengbe342052017-11-03 10:21:23 -07003616 "target" : ["ethernet", "dst_addr"],
3617 "mask" : null
3618 },
3619 {
3620 "match_type" : "exact",
Yi Tseng8235a1a2018-07-24 20:57:28 +08003621 "name" : "hdr.vlan_tag.ether_type",
3622 "target" : ["vlan_tag", "ether_type"],
Yi Tsengbe342052017-11-03 10:21:23 -07003623 "mask" : null
3624 }
3625 ],
Charles Chan384aea22018-08-23 22:08:02 -07003626 "match_type" : "ternary",
Yi Tsengbe342052017-11-03 10:21:23 -07003627 "type" : "simple",
3628 "max_size" : 1024,
Yi Tsengbd46d052018-01-22 17:18:16 -08003629 "with_counters" : true,
Yi Tsengbe342052017-11-03 10:21:23 -07003630 "support_timeout" : false,
3631 "direct_meters" : null,
Charles Chancf696e52018-08-16 16:25:13 -07003632 "action_ids" : [11],
Yi Tseng27b9bc02018-04-12 14:52:40 +08003633 "actions" : ["FabricIngress.filtering.set_forwarding_type"],
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003634 "base_default_next" : "node_10",
Yi Tsengbe342052017-11-03 10:21:23 -07003635 "next_tables" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003636 "FabricIngress.filtering.set_forwarding_type" : "node_10"
Yi Tsengbe342052017-11-03 10:21:23 -07003637 },
3638 "default_entry" : {
Charles Chancf696e52018-08-16 16:25:13 -07003639 "action_id" : 11,
Yi Tsengbe342052017-11-03 10:21:23 -07003640 "action_const" : true,
3641 "action_data" : ["0x0"],
3642 "action_entry_const" : true
3643 }
3644 },
3645 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003646 "name" : "tbl_act_2",
3647 "id" : 5,
3648 "key" : [],
3649 "match_type" : "exact",
3650 "type" : "simple",
3651 "max_size" : 1024,
3652 "with_counters" : false,
3653 "support_timeout" : false,
3654 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07003655 "action_ids" : [35],
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003656 "actions" : ["act_2"],
3657 "base_default_next" : "node_10",
3658 "next_tables" : {
3659 "act_2" : "node_10"
3660 },
3661 "default_entry" : {
Charles Chancd03f072018-08-31 17:46:37 -07003662 "action_id" : 35,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003663 "action_const" : true,
3664 "action_data" : [],
3665 "action_entry_const" : true
3666 }
3667 },
3668 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003669 "name" : "FabricIngress.forwarding.bridging",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003670 "id" : 6,
Yi Tsengbe342052017-11-03 10:21:23 -07003671 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003672 "filename" : "include/control/forwarding.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08003673 "line" : 41,
Yi Tsengbe342052017-11-03 10:21:23 -07003674 "column" : 10,
3675 "source_fragment" : "bridging"
3676 },
3677 "key" : [
3678 {
3679 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003680 "name" : "hdr.vlan_tag.vlan_id",
Yi Tsengbe342052017-11-03 10:21:23 -07003681 "target" : ["vlan_tag", "vlan_id"],
3682 "mask" : null
3683 },
3684 {
3685 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003686 "name" : "hdr.ethernet.dst_addr",
Yi Tsengbe342052017-11-03 10:21:23 -07003687 "target" : ["ethernet", "dst_addr"],
3688 "mask" : null
3689 }
3690 ],
3691 "match_type" : "ternary",
3692 "type" : "simple",
3693 "max_size" : 1024,
Yi Tsengbd46d052018-01-22 17:18:16 -08003694 "with_counters" : true,
Yi Tsengbe342052017-11-03 10:21:23 -07003695 "support_timeout" : false,
3696 "direct_meters" : null,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003697 "action_ids" : [12, 0],
Yi Tseng47eac892018-07-11 02:17:04 +08003698 "actions" : ["FabricIngress.forwarding.set_next_id_bridging", "NoAction"],
Yi Tseng27b9bc02018-04-12 14:52:40 +08003699 "base_default_next" : "FabricIngress.forwarding.acl",
Yi Tseng1d842672017-11-28 16:06:52 -08003700 "next_tables" : {
Yi Tseng47eac892018-07-11 02:17:04 +08003701 "FabricIngress.forwarding.set_next_id_bridging" : "FabricIngress.forwarding.acl",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003702 "NoAction" : "FabricIngress.forwarding.acl"
Yi Tseng1d842672017-11-28 16:06:52 -08003703 },
3704 "default_entry" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003705 "action_id" : 0,
Yi Tseng1d842672017-11-28 16:06:52 -08003706 "action_const" : false,
3707 "action_data" : [],
3708 "action_entry_const" : false
3709 }
3710 },
3711 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003712 "name" : "FabricIngress.forwarding.mpls",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003713 "id" : 7,
Yi Tseng1d842672017-11-28 16:06:52 -08003714 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003715 "filename" : "include/control/forwarding.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08003716 "line" : 65,
Yi Tseng1d842672017-11-28 16:06:52 -08003717 "column" : 10,
3718 "source_fragment" : "mpls"
3719 },
3720 "key" : [
3721 {
3722 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003723 "name" : "hdr.mpls.label",
Yi Tseng1d842672017-11-28 16:06:52 -08003724 "target" : ["mpls", "label"],
3725 "mask" : null
3726 }
3727 ],
3728 "match_type" : "exact",
3729 "type" : "simple",
3730 "max_size" : 1024,
Yi Tsengbd46d052018-01-22 17:18:16 -08003731 "with_counters" : true,
Yi Tseng1d842672017-11-28 16:06:52 -08003732 "support_timeout" : false,
3733 "direct_meters" : null,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003734 "action_ids" : [13, 1],
Yi Tseng27b9bc02018-04-12 14:52:40 +08003735 "actions" : ["FabricIngress.forwarding.pop_mpls_and_next", "NoAction"],
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003736 "base_default_next" : "tbl_act_3",
Yi Tseng1d842672017-11-28 16:06:52 -08003737 "next_tables" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003738 "FabricIngress.forwarding.pop_mpls_and_next" : "tbl_act_3",
3739 "NoAction" : "tbl_act_3"
Yi Tseng1d842672017-11-28 16:06:52 -08003740 },
3741 "default_entry" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003742 "action_id" : 1,
Yi Tseng1d842672017-11-28 16:06:52 -08003743 "action_const" : false,
3744 "action_data" : [],
3745 "action_entry_const" : false
3746 }
3747 },
3748 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003749 "name" : "tbl_act_3",
3750 "id" : 8,
Yi Tseng1d842672017-11-28 16:06:52 -08003751 "key" : [],
3752 "match_type" : "exact",
3753 "type" : "simple",
3754 "max_size" : 1024,
3755 "with_counters" : false,
3756 "support_timeout" : false,
3757 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07003758 "action_ids" : [36],
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003759 "actions" : ["act_3"],
Yi Tseng27b9bc02018-04-12 14:52:40 +08003760 "base_default_next" : "FabricIngress.forwarding.acl",
Yi Tseng1d842672017-11-28 16:06:52 -08003761 "next_tables" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003762 "act_3" : "FabricIngress.forwarding.acl"
Yi Tseng1d842672017-11-28 16:06:52 -08003763 },
3764 "default_entry" : {
Charles Chancd03f072018-08-31 17:46:37 -07003765 "action_id" : 36,
Yi Tseng1d842672017-11-28 16:06:52 -08003766 "action_const" : true,
3767 "action_data" : [],
3768 "action_entry_const" : true
3769 }
3770 },
3771 {
Charles Chan384aea22018-08-23 22:08:02 -07003772 "name" : "FabricIngress.forwarding.routing_v4",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003773 "id" : 9,
Yi Tseng1d842672017-11-28 16:06:52 -08003774 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003775 "filename" : "include/control/forwarding.p4",
Charles Chancd03f072018-08-31 17:46:37 -07003776 "line" : 91,
Yi Tseng1d842672017-11-28 16:06:52 -08003777 "column" : 10,
Charles Chan384aea22018-08-23 22:08:02 -07003778 "source_fragment" : "routing_v4"
Yi Tseng1d842672017-11-28 16:06:52 -08003779 },
3780 "key" : [
3781 {
3782 "match_type" : "lpm",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003783 "name" : "hdr.ipv4.dst_addr",
Yi Tseng1d842672017-11-28 16:06:52 -08003784 "target" : ["ipv4", "dst_addr"],
3785 "mask" : null
3786 }
3787 ],
3788 "match_type" : "lpm",
3789 "type" : "simple",
3790 "max_size" : 1024,
Yi Tsengbd46d052018-01-22 17:18:16 -08003791 "with_counters" : true,
Yi Tseng1d842672017-11-28 16:06:52 -08003792 "support_timeout" : false,
3793 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07003794 "action_ids" : [14, 15, 2],
3795 "actions" : ["FabricIngress.forwarding.set_next_id_routing_v4", "FabricIngress.forwarding.nop_routing_v4", "NoAction"],
Yi Tseng27b9bc02018-04-12 14:52:40 +08003796 "base_default_next" : "FabricIngress.forwarding.acl",
Yi Tsengbe342052017-11-03 10:21:23 -07003797 "next_tables" : {
Charles Chan384aea22018-08-23 22:08:02 -07003798 "FabricIngress.forwarding.set_next_id_routing_v4" : "FabricIngress.forwarding.acl",
Charles Chancd03f072018-08-31 17:46:37 -07003799 "FabricIngress.forwarding.nop_routing_v4" : "FabricIngress.forwarding.acl",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003800 "NoAction" : "FabricIngress.forwarding.acl"
Yi Tsengbe342052017-11-03 10:21:23 -07003801 },
3802 "default_entry" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003803 "action_id" : 2,
Yi Tsengbe342052017-11-03 10:21:23 -07003804 "action_const" : false,
3805 "action_data" : [],
3806 "action_entry_const" : false
3807 }
3808 },
3809 {
Carmelo Casconef645e842018-07-16 18:31:52 +02003810 "name" : "FabricIngress.forwarding.acl",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003811 "id" : 10,
Yi Tsengbe342052017-11-03 10:21:23 -07003812 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003813 "filename" : "include/control/forwarding.p4",
Charles Chancd03f072018-08-31 17:46:37 -07003814 "line" : 136,
Yi Tsengbe342052017-11-03 10:21:23 -07003815 "column" : 10,
Yi Tsengbe342052017-11-03 10:21:23 -07003816 "source_fragment" : "acl"
3817 },
3818 "key" : [
3819 {
3820 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003821 "name" : "standard_metadata.ingress_port",
Yi Tsengbe342052017-11-03 10:21:23 -07003822 "target" : ["standard_metadata", "ingress_port"],
3823 "mask" : null
3824 },
3825 {
3826 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003827 "name" : "fabric_metadata.ip_proto",
Yi Tsengbe342052017-11-03 10:21:23 -07003828 "target" : ["scalars", "fabric_metadata_t.ip_proto"],
3829 "mask" : null
3830 },
3831 {
3832 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003833 "name" : "fabric_metadata.l4_src_port",
Yi Tseng1d842672017-11-28 16:06:52 -08003834 "target" : ["scalars", "fabric_metadata_t.l4_src_port"],
3835 "mask" : null
3836 },
3837 {
3838 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003839 "name" : "fabric_metadata.l4_dst_port",
Yi Tseng1d842672017-11-28 16:06:52 -08003840 "target" : ["scalars", "fabric_metadata_t.l4_dst_port"],
3841 "mask" : null
3842 },
3843 {
3844 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003845 "name" : "hdr.ethernet.dst_addr",
Yi Tsengbe342052017-11-03 10:21:23 -07003846 "target" : ["ethernet", "dst_addr"],
3847 "mask" : null
3848 },
3849 {
3850 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003851 "name" : "hdr.ethernet.src_addr",
Yi Tsengbe342052017-11-03 10:21:23 -07003852 "target" : ["ethernet", "src_addr"],
3853 "mask" : null
3854 },
3855 {
3856 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003857 "name" : "hdr.vlan_tag.vlan_id",
Yi Tsengbe342052017-11-03 10:21:23 -07003858 "target" : ["vlan_tag", "vlan_id"],
3859 "mask" : null
3860 },
3861 {
3862 "match_type" : "ternary",
Yi Tseng8235a1a2018-07-24 20:57:28 +08003863 "name" : "hdr.vlan_tag.ether_type",
3864 "target" : ["vlan_tag", "ether_type"],
3865 "mask" : null
3866 },
3867 {
3868 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003869 "name" : "hdr.ipv4.src_addr",
Yi Tsengbe342052017-11-03 10:21:23 -07003870 "target" : ["ipv4", "src_addr"],
3871 "mask" : null
3872 },
3873 {
3874 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003875 "name" : "hdr.ipv4.dst_addr",
Yi Tsengbe342052017-11-03 10:21:23 -07003876 "target" : ["ipv4", "dst_addr"],
3877 "mask" : null
3878 },
3879 {
3880 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003881 "name" : "hdr.icmp.icmp_type",
Yi Tsengbe342052017-11-03 10:21:23 -07003882 "target" : ["icmp", "icmp_type"],
3883 "mask" : null
3884 },
3885 {
3886 "match_type" : "ternary",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003887 "name" : "hdr.icmp.icmp_code",
Yi Tsengbe342052017-11-03 10:21:23 -07003888 "target" : ["icmp", "icmp_code"],
3889 "mask" : null
3890 }
3891 ],
3892 "match_type" : "ternary",
3893 "type" : "simple",
Yi Tseng8235a1a2018-07-24 20:57:28 +08003894 "max_size" : 128,
Yi Tsengbd46d052018-01-22 17:18:16 -08003895 "with_counters" : true,
Yi Tsengbe342052017-11-03 10:21:23 -07003896 "support_timeout" : false,
3897 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07003898 "action_ids" : [16, 17, 18, 19, 20],
Charles Chancf696e52018-08-16 16:25:13 -07003899 "actions" : ["FabricIngress.forwarding.set_next_id_acl", "FabricIngress.forwarding.punt_to_cpu", "FabricIngress.forwarding.clone_to_cpu", "FabricIngress.forwarding.drop", "FabricIngress.forwarding.nop_acl"],
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003900 "base_default_next" : "tbl_act_4",
Yi Tsengbe342052017-11-03 10:21:23 -07003901 "next_tables" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003902 "FabricIngress.forwarding.set_next_id_acl" : "tbl_act_4",
3903 "FabricIngress.forwarding.punt_to_cpu" : "tbl_act_4",
3904 "FabricIngress.forwarding.clone_to_cpu" : "tbl_act_4",
3905 "FabricIngress.forwarding.drop" : "tbl_act_4",
3906 "FabricIngress.forwarding.nop_acl" : "tbl_act_4"
Yi Tsengbe342052017-11-03 10:21:23 -07003907 },
3908 "default_entry" : {
Charles Chancd03f072018-08-31 17:46:37 -07003909 "action_id" : 20,
Yi Tsengbe342052017-11-03 10:21:23 -07003910 "action_const" : true,
3911 "action_data" : [],
3912 "action_entry_const" : true
3913 }
3914 },
3915 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003916 "name" : "tbl_act_4",
3917 "id" : 11,
Carmelo Casconea5400af2018-07-17 22:11:54 +02003918 "key" : [],
3919 "match_type" : "exact",
3920 "type" : "simple",
3921 "max_size" : 1024,
3922 "with_counters" : false,
3923 "support_timeout" : false,
3924 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07003925 "action_ids" : [37],
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003926 "actions" : ["act_4"],
Carmelo Casconea5400af2018-07-17 22:11:54 +02003927 "base_default_next" : "FabricIngress.next.vlan_meta",
3928 "next_tables" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003929 "act_4" : "FabricIngress.next.vlan_meta"
Carmelo Casconea5400af2018-07-17 22:11:54 +02003930 },
3931 "default_entry" : {
Charles Chancd03f072018-08-31 17:46:37 -07003932 "action_id" : 37,
Carmelo Casconea5400af2018-07-17 22:11:54 +02003933 "action_const" : true,
3934 "action_data" : [],
3935 "action_entry_const" : true
3936 }
3937 },
3938 {
3939 "name" : "FabricIngress.next.vlan_meta",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003940 "id" : 12,
Yi Tsengbe342052017-11-03 10:21:23 -07003941 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003942 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08003943 "line" : 65,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003944 "column" : 10,
3945 "source_fragment" : "vlan_meta"
3946 },
3947 "key" : [
3948 {
3949 "match_type" : "exact",
3950 "name" : "fabric_metadata.next_id",
3951 "target" : ["scalars", "fabric_metadata_t.next_id"],
3952 "mask" : null
3953 }
3954 ],
3955 "match_type" : "exact",
3956 "type" : "simple",
3957 "max_size" : 1024,
3958 "with_counters" : true,
3959 "support_timeout" : false,
3960 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07003961 "action_ids" : [21, 6],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003962 "actions" : ["FabricIngress.next.set_vlan", "nop"],
3963 "base_default_next" : "FabricIngress.next.simple",
3964 "next_tables" : {
3965 "FabricIngress.next.set_vlan" : "FabricIngress.next.simple",
3966 "nop" : "FabricIngress.next.simple"
3967 },
3968 "default_entry" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003969 "action_id" : 6,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003970 "action_const" : false,
3971 "action_data" : [],
3972 "action_entry_const" : false
3973 }
3974 },
3975 {
3976 "name" : "FabricIngress.next.simple",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003977 "id" : 13,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003978 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003979 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08003980 "line" : 122,
Yi Tsengbe342052017-11-03 10:21:23 -07003981 "column" : 10,
3982 "source_fragment" : "simple"
3983 },
3984 "key" : [
3985 {
3986 "match_type" : "exact",
Yi Tseng27b9bc02018-04-12 14:52:40 +08003987 "name" : "fabric_metadata.next_id",
Yi Tsengbe342052017-11-03 10:21:23 -07003988 "target" : ["scalars", "fabric_metadata_t.next_id"],
3989 "mask" : null
3990 }
3991 ],
3992 "match_type" : "exact",
3993 "type" : "simple",
3994 "max_size" : 1024,
Yi Tsengbd46d052018-01-22 17:18:16 -08003995 "with_counters" : true,
Yi Tsengbe342052017-11-03 10:21:23 -07003996 "support_timeout" : false,
3997 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07003998 "action_ids" : [22, 23, 24, 25, 26, 27, 3],
Yi Tseng47eac892018-07-11 02:17:04 +08003999 "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 -08004000 "base_default_next" : null,
Yi Tsengbe342052017-11-03 10:21:23 -07004001 "next_tables" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004002 "__HIT__" : "tbl_act_5",
4003 "__MISS__" : "tbl_act_6"
Yi Tsengbe342052017-11-03 10:21:23 -07004004 },
4005 "default_entry" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004006 "action_id" : 3,
Yi Tsengbe342052017-11-03 10:21:23 -07004007 "action_const" : false,
4008 "action_data" : [],
4009 "action_entry_const" : false
4010 }
4011 },
4012 {
Carmelo Casconea5400af2018-07-17 22:11:54 +02004013 "name" : "tbl_act_5",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004014 "id" : 14,
Carmelo Casconea5400af2018-07-17 22:11:54 +02004015 "key" : [],
4016 "match_type" : "exact",
4017 "type" : "simple",
4018 "max_size" : 1024,
4019 "with_counters" : false,
4020 "support_timeout" : false,
4021 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07004022 "action_ids" : [38],
Carmelo Casconea5400af2018-07-17 22:11:54 +02004023 "actions" : ["act_5"],
4024 "base_default_next" : "node_23",
4025 "next_tables" : {
4026 "act_5" : "node_23"
4027 },
4028 "default_entry" : {
Charles Chancd03f072018-08-31 17:46:37 -07004029 "action_id" : 38,
Carmelo Casconea5400af2018-07-17 22:11:54 +02004030 "action_const" : true,
4031 "action_data" : [],
4032 "action_entry_const" : true
Esin Karaman971fb7f2017-12-28 13:44:52 +00004033 }
4034 },
4035 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004036 "name" : "tbl_act_6",
4037 "id" : 15,
4038 "key" : [],
4039 "match_type" : "exact",
4040 "type" : "simple",
4041 "max_size" : 1024,
4042 "with_counters" : false,
4043 "support_timeout" : false,
4044 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07004045 "action_ids" : [39],
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004046 "actions" : ["act_6"],
4047 "base_default_next" : "node_23",
4048 "next_tables" : {
4049 "act_6" : "node_23"
4050 },
4051 "default_entry" : {
Charles Chancd03f072018-08-31 17:46:37 -07004052 "action_id" : 39,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004053 "action_const" : true,
4054 "action_data" : [],
4055 "action_entry_const" : true
4056 }
4057 },
4058 {
4059 "name" : "FabricIngress.next.hashed",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004060 "id" : 16,
Esin Karaman971fb7f2017-12-28 13:44:52 +00004061 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004062 "filename" : "include/control/next.p4",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004063 "line" : 175,
Esin Karaman971fb7f2017-12-28 13:44:52 +00004064 "column" : 10,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004065 "source_fragment" : "hashed"
Esin Karaman971fb7f2017-12-28 13:44:52 +00004066 },
4067 "key" : [
4068 {
4069 "match_type" : "exact",
4070 "name" : "fabric_metadata.next_id",
4071 "target" : ["scalars", "fabric_metadata_t.next_id"],
4072 "mask" : null
4073 }
4074 ],
4075 "match_type" : "exact",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004076 "type" : "indirect_ws",
4077 "action_profile" : "FabricIngress.next.ecmp_selector",
Esin Karaman971fb7f2017-12-28 13:44:52 +00004078 "max_size" : 1024,
4079 "with_counters" : true,
4080 "support_timeout" : false,
4081 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07004082 "action_ids" : [28, 29, 30, 4],
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004083 "actions" : ["FabricIngress.next.l3_routing_hashed", "FabricIngress.next.mpls_routing_v4_hashed", "FabricIngress.next.mpls_routing_v6_hashed", "NoAction"],
Carmelo Casconea5400af2018-07-17 22:11:54 +02004084 "base_default_next" : null,
Esin Karaman971fb7f2017-12-28 13:44:52 +00004085 "next_tables" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004086 "__HIT__" : "tbl_act_7",
4087 "__MISS__" : "tbl_act_8"
Esin Karaman971fb7f2017-12-28 13:44:52 +00004088 }
4089 },
4090 {
Carmelo Casconea5400af2018-07-17 22:11:54 +02004091 "name" : "tbl_act_7",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004092 "id" : 17,
Esin Karaman971fb7f2017-12-28 13:44:52 +00004093 "key" : [],
4094 "match_type" : "exact",
4095 "type" : "simple",
4096 "max_size" : 1024,
4097 "with_counters" : false,
4098 "support_timeout" : false,
4099 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07004100 "action_ids" : [40],
Carmelo Casconea5400af2018-07-17 22:11:54 +02004101 "actions" : ["act_7"],
4102 "base_default_next" : "node_27",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004103 "next_tables" : {
Carmelo Casconea5400af2018-07-17 22:11:54 +02004104 "act_7" : "node_27"
Yi Tseng27b9bc02018-04-12 14:52:40 +08004105 },
4106 "default_entry" : {
Charles Chancd03f072018-08-31 17:46:37 -07004107 "action_id" : 40,
Carmelo Casconea5400af2018-07-17 22:11:54 +02004108 "action_const" : true,
4109 "action_data" : [],
4110 "action_entry_const" : true
4111 }
4112 },
4113 {
4114 "name" : "tbl_act_8",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004115 "id" : 18,
Carmelo Casconea5400af2018-07-17 22:11:54 +02004116 "key" : [],
4117 "match_type" : "exact",
4118 "type" : "simple",
4119 "max_size" : 1024,
4120 "with_counters" : false,
4121 "support_timeout" : false,
4122 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07004123 "action_ids" : [41],
Carmelo Casconea5400af2018-07-17 22:11:54 +02004124 "actions" : ["act_8"],
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004125 "base_default_next" : "node_27",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004126 "next_tables" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004127 "act_8" : "node_27"
Carmelo Casconea5400af2018-07-17 22:11:54 +02004128 },
4129 "default_entry" : {
Charles Chancd03f072018-08-31 17:46:37 -07004130 "action_id" : 41,
Carmelo Casconea5400af2018-07-17 22:11:54 +02004131 "action_const" : true,
4132 "action_data" : [],
4133 "action_entry_const" : true
4134 }
4135 },
4136 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004137 "name" : "FabricIngress.next.multicast",
4138 "id" : 19,
4139 "source_info" : {
4140 "filename" : "include/control/next.p4",
4141 "line" : 207,
4142 "column" : 10,
4143 "source_fragment" : "multicast"
4144 },
4145 "key" : [
4146 {
4147 "match_type" : "exact",
4148 "name" : "fabric_metadata.next_id",
4149 "target" : ["scalars", "fabric_metadata_t.next_id"],
4150 "mask" : null
4151 }
4152 ],
4153 "match_type" : "exact",
4154 "type" : "simple",
4155 "max_size" : 1024,
4156 "with_counters" : true,
4157 "support_timeout" : false,
4158 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07004159 "action_ids" : [31, 5],
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004160 "actions" : ["FabricIngress.next.set_mcast_group", "NoAction"],
4161 "base_default_next" : null,
4162 "next_tables" : {
4163 "__HIT__" : "tbl_act_9",
4164 "__MISS__" : "tbl_act_10"
4165 },
4166 "default_entry" : {
4167 "action_id" : 5,
4168 "action_const" : false,
4169 "action_data" : [],
4170 "action_entry_const" : false
4171 }
4172 },
4173 {
Carmelo Casconea5400af2018-07-17 22:11:54 +02004174 "name" : "tbl_act_9",
4175 "id" : 20,
4176 "key" : [],
4177 "match_type" : "exact",
4178 "type" : "simple",
4179 "max_size" : 1024,
4180 "with_counters" : false,
4181 "support_timeout" : false,
4182 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07004183 "action_ids" : [42],
Carmelo Casconea5400af2018-07-17 22:11:54 +02004184 "actions" : ["act_9"],
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004185 "base_default_next" : "node_31",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004186 "next_tables" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004187 "act_9" : "node_31"
Carmelo Casconea5400af2018-07-17 22:11:54 +02004188 },
4189 "default_entry" : {
Charles Chancd03f072018-08-31 17:46:37 -07004190 "action_id" : 42,
Carmelo Casconea5400af2018-07-17 22:11:54 +02004191 "action_const" : true,
4192 "action_data" : [],
4193 "action_entry_const" : true
4194 }
4195 },
4196 {
4197 "name" : "tbl_act_10",
4198 "id" : 21,
4199 "key" : [],
4200 "match_type" : "exact",
4201 "type" : "simple",
4202 "max_size" : 1024,
4203 "with_counters" : false,
4204 "support_timeout" : false,
4205 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07004206 "action_ids" : [43],
Carmelo Casconea5400af2018-07-17 22:11:54 +02004207 "actions" : ["act_10"],
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004208 "base_default_next" : "node_31",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004209 "next_tables" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004210 "act_10" : "node_31"
Carmelo Casconea5400af2018-07-17 22:11:54 +02004211 },
4212 "default_entry" : {
Charles Chancd03f072018-08-31 17:46:37 -07004213 "action_id" : 43,
Carmelo Casconea5400af2018-07-17 22:11:54 +02004214 "action_const" : true,
4215 "action_data" : [],
4216 "action_entry_const" : true
4217 }
4218 },
4219 {
4220 "name" : "tbl_act_11",
4221 "id" : 22,
4222 "key" : [],
4223 "match_type" : "exact",
4224 "type" : "simple",
4225 "max_size" : 1024,
4226 "with_counters" : false,
4227 "support_timeout" : false,
4228 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07004229 "action_ids" : [44],
Carmelo Casconea5400af2018-07-17 22:11:54 +02004230 "actions" : ["act_11"],
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004231 "base_default_next" : "node_33",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004232 "next_tables" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004233 "act_11" : "node_33"
Carmelo Casconea5400af2018-07-17 22:11:54 +02004234 },
4235 "default_entry" : {
Charles Chancd03f072018-08-31 17:46:37 -07004236 "action_id" : 44,
Yi Tseng3a5731e2018-01-22 11:38:58 -08004237 "action_const" : true,
4238 "action_data" : [],
4239 "action_entry_const" : true
4240 }
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004241 },
4242 {
4243 "name" : "tbl_act_12",
4244 "id" : 23,
4245 "key" : [],
4246 "match_type" : "exact",
4247 "type" : "simple",
4248 "max_size" : 1024,
4249 "with_counters" : false,
4250 "support_timeout" : false,
4251 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07004252 "action_ids" : [45],
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004253 "actions" : ["act_12"],
4254 "base_default_next" : "node_37",
4255 "next_tables" : {
4256 "act_12" : "node_37"
4257 },
4258 "default_entry" : {
Charles Chancd03f072018-08-31 17:46:37 -07004259 "action_id" : 45,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004260 "action_const" : true,
4261 "action_data" : [],
4262 "action_entry_const" : true
4263 }
4264 },
4265 {
4266 "name" : "tbl_act_13",
4267 "id" : 24,
4268 "key" : [],
4269 "match_type" : "exact",
4270 "type" : "simple",
4271 "max_size" : 1024,
4272 "with_counters" : false,
4273 "support_timeout" : false,
4274 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07004275 "action_ids" : [46],
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004276 "actions" : ["act_13"],
4277 "base_default_next" : "node_39",
4278 "next_tables" : {
4279 "act_13" : "node_39"
4280 },
4281 "default_entry" : {
Charles Chancd03f072018-08-31 17:46:37 -07004282 "action_id" : 46,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004283 "action_const" : true,
4284 "action_data" : [],
4285 "action_entry_const" : true
4286 }
4287 },
4288 {
4289 "name" : "tbl_act_14",
4290 "id" : 25,
4291 "key" : [],
4292 "match_type" : "exact",
4293 "type" : "simple",
4294 "max_size" : 1024,
4295 "with_counters" : false,
4296 "support_timeout" : false,
4297 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07004298 "action_ids" : [47],
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004299 "actions" : ["act_14"],
4300 "base_default_next" : null,
4301 "next_tables" : {
4302 "act_14" : null
4303 },
4304 "default_entry" : {
Charles Chancd03f072018-08-31 17:46:37 -07004305 "action_id" : 47,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004306 "action_const" : true,
4307 "action_data" : [],
4308 "action_entry_const" : true
4309 }
Yi Tsengbe342052017-11-03 10:21:23 -07004310 }
4311 ],
4312 "action_profiles" : [
4313 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08004314 "name" : "FabricIngress.next.ecmp_selector",
Yi Tsengbe342052017-11-03 10:21:23 -07004315 "id" : 0,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07004316 "source_info" : {
4317 "filename" : "include/control/next.p4",
4318 "line" : 145,
4319 "column" : 55,
4320 "source_fragment" : "ecmp_selector"
4321 },
Yi Tsengbe342052017-11-03 10:21:23 -07004322 "max_size" : 64,
4323 "selector" : {
4324 "algo" : "crc16",
4325 "input" : [
4326 {
4327 "type" : "field",
Yi Tseng3d3956d2018-01-31 17:28:05 -08004328 "value" : ["ipv4", "dst_addr"]
Yi Tsengbe342052017-11-03 10:21:23 -07004329 },
4330 {
4331 "type" : "field",
Yi Tseng3d3956d2018-01-31 17:28:05 -08004332 "value" : ["ipv4", "src_addr"]
Yi Tsengbe342052017-11-03 10:21:23 -07004333 },
4334 {
4335 "type" : "field",
Yi Tseng1d842672017-11-28 16:06:52 -08004336 "value" : ["scalars", "fabric_metadata_t.ip_proto"]
Yi Tsengbe342052017-11-03 10:21:23 -07004337 },
4338 {
4339 "type" : "field",
4340 "value" : ["scalars", "fabric_metadata_t.l4_src_port"]
4341 },
4342 {
4343 "type" : "field",
4344 "value" : ["scalars", "fabric_metadata_t.l4_dst_port"]
4345 }
4346 ]
4347 }
4348 }
4349 ],
4350 "conditionals" : [
4351 {
4352 "name" : "node_2",
4353 "id" : 0,
4354 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004355 "filename" : "include/control/packetio.p4",
Yi Tsengbe342052017-11-03 10:21:23 -07004356 "line" : 25,
4357 "column" : 12,
4358 "source_fragment" : "hdr.packet_out.isValid()"
4359 },
4360 "expression" : {
4361 "type" : "expression",
4362 "value" : {
Yi Tsengbd46d052018-01-22 17:18:16 -08004363 "op" : "d2b",
4364 "left" : null,
4365 "right" : {
Yi Tsengbe342052017-11-03 10:21:23 -07004366 "type" : "field",
4367 "value" : ["packet_out", "$valid$"]
Yi Tsengbe342052017-11-03 10:21:23 -07004368 }
4369 }
4370 },
4371 "true_next" : "tbl_act",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004372 "false_next" : "FabricIngress.filtering.ingress_port_vlan"
Yi Tsengbe342052017-11-03 10:21:23 -07004373 },
4374 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004375 "name" : "node_7",
Yi Tsengbe342052017-11-03 10:21:23 -07004376 "id" : 1,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004377 "expression" : {
4378 "type" : "expression",
4379 "value" : {
4380 "op" : "d2b",
4381 "left" : null,
4382 "right" : {
4383 "type" : "field",
4384 "value" : ["scalars", "filtering_tmp_0"]
4385 }
4386 }
4387 },
4388 "true_next" : "FabricIngress.filtering.fwd_classifier",
4389 "false_next" : "tbl_act_2"
4390 },
4391 {
4392 "name" : "node_10",
4393 "id" : 2,
Yi Tsengbe342052017-11-03 10:21:23 -07004394 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004395 "filename" : "include/control/forwarding.p4",
Charles Chancd03f072018-08-31 17:46:37 -07004396 "line" : 191,
Yi Tsengbe342052017-11-03 10:21:23 -07004397 "column" : 11,
4398 "source_fragment" : "fabric_metadata.fwd_type == FWD_BRIDGING"
4399 },
4400 "expression" : {
4401 "type" : "expression",
4402 "value" : {
4403 "op" : "==",
4404 "left" : {
4405 "type" : "field",
4406 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
4407 },
4408 "right" : {
4409 "type" : "hexstr",
4410 "value" : "0x00"
4411 }
4412 }
4413 },
Yi Tseng27b9bc02018-04-12 14:52:40 +08004414 "true_next" : "FabricIngress.forwarding.bridging",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004415 "false_next" : "node_12"
Yi Tsengbe342052017-11-03 10:21:23 -07004416 },
4417 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004418 "name" : "node_12",
4419 "id" : 3,
Yi Tsengbe342052017-11-03 10:21:23 -07004420 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004421 "filename" : "include/control/forwarding.p4",
Charles Chancd03f072018-08-31 17:46:37 -07004422 "line" : 192,
Yi Tsengbe342052017-11-03 10:21:23 -07004423 "column" : 17,
4424 "source_fragment" : "fabric_metadata.fwd_type == FWD_MPLS"
4425 },
4426 "expression" : {
4427 "type" : "expression",
4428 "value" : {
4429 "op" : "==",
4430 "left" : {
4431 "type" : "field",
4432 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
4433 },
4434 "right" : {
4435 "type" : "hexstr",
4436 "value" : "0x01"
4437 }
4438 }
4439 },
Yi Tseng27b9bc02018-04-12 14:52:40 +08004440 "true_next" : "FabricIngress.forwarding.mpls",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004441 "false_next" : "node_15"
Yi Tsengbe342052017-11-03 10:21:23 -07004442 },
4443 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004444 "name" : "node_15",
4445 "id" : 4,
Yi Tsengbe342052017-11-03 10:21:23 -07004446 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004447 "filename" : "include/control/forwarding.p4",
Charles Chancd03f072018-08-31 17:46:37 -07004448 "line" : 198,
Yi Tsengbe342052017-11-03 10:21:23 -07004449 "column" : 17,
4450 "source_fragment" : "fabric_metadata.fwd_type == FWD_IPV4_UNICAST"
4451 },
4452 "expression" : {
4453 "type" : "expression",
4454 "value" : {
4455 "op" : "==",
4456 "left" : {
4457 "type" : "field",
4458 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
4459 },
4460 "right" : {
4461 "type" : "hexstr",
4462 "value" : "0x02"
4463 }
4464 }
4465 },
Charles Chan384aea22018-08-23 22:08:02 -07004466 "true_next" : "FabricIngress.forwarding.routing_v4",
Yi Tseng27b9bc02018-04-12 14:52:40 +08004467 "false_next" : "FabricIngress.forwarding.acl"
4468 },
4469 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004470 "name" : "node_23",
4471 "id" : 5,
Yi Tseng1d842672017-11-28 16:06:52 -08004472 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004473 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08004474 "line" : 219,
Carmelo Casconea5400af2018-07-17 22:11:54 +02004475 "column" : 12,
4476 "source_fragment" : "!simple.apply().hit"
4477 },
4478 "expression" : {
4479 "type" : "expression",
4480 "value" : {
4481 "op" : "not",
4482 "left" : null,
4483 "right" : {
4484 "type" : "expression",
4485 "value" : {
4486 "op" : "d2b",
4487 "left" : null,
4488 "right" : {
4489 "type" : "field",
4490 "value" : ["scalars", "next_tmp_4"]
4491 }
4492 }
4493 }
4494 }
4495 },
4496 "true_next" : "FabricIngress.next.hashed",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004497 "false_next" : "node_33"
Carmelo Casconea5400af2018-07-17 22:11:54 +02004498 },
4499 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004500 "name" : "node_27",
4501 "id" : 6,
Carmelo Casconea5400af2018-07-17 22:11:54 +02004502 "source_info" : {
4503 "filename" : "include/control/next.p4",
4504 "line" : 220,
Yi Tsengbd46d052018-01-22 17:18:16 -08004505 "column" : 16,
Carmelo Casconea5400af2018-07-17 22:11:54 +02004506 "source_fragment" : "!hashed.apply().hit"
4507 },
4508 "expression" : {
4509 "type" : "expression",
4510 "value" : {
4511 "op" : "not",
4512 "left" : null,
4513 "right" : {
4514 "type" : "expression",
4515 "value" : {
4516 "op" : "d2b",
4517 "left" : null,
4518 "right" : {
4519 "type" : "field",
4520 "value" : ["scalars", "next_tmp_3"]
4521 }
4522 }
4523 }
4524 }
4525 },
4526 "true_next" : "FabricIngress.next.multicast",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004527 "false_next" : "node_33"
Carmelo Casconea5400af2018-07-17 22:11:54 +02004528 },
4529 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004530 "name" : "node_31",
4531 "id" : 7,
Carmelo Casconea5400af2018-07-17 22:11:54 +02004532 "source_info" : {
4533 "filename" : "include/control/next.p4",
4534 "line" : 221,
4535 "column" : 20,
4536 "source_fragment" : "!multicast.apply().hit"
4537 },
4538 "expression" : {
4539 "type" : "expression",
4540 "value" : {
4541 "op" : "not",
4542 "left" : null,
4543 "right" : {
4544 "type" : "expression",
4545 "value" : {
4546 "op" : "d2b",
4547 "left" : null,
4548 "right" : {
4549 "type" : "field",
4550 "value" : ["scalars", "next_tmp_2"]
4551 }
4552 }
4553 }
4554 }
4555 },
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004556 "true_next" : "tbl_act_11",
4557 "false_next" : "node_33"
Carmelo Casconea5400af2018-07-17 22:11:54 +02004558 },
4559 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004560 "name" : "node_33",
4561 "id" : 8,
Carmelo Casconea5400af2018-07-17 22:11:54 +02004562 "expression" : {
4563 "type" : "expression",
4564 "value" : {
4565 "op" : "not",
4566 "left" : null,
4567 "right" : {
4568 "type" : "expression",
4569 "value" : {
4570 "op" : "d2b",
4571 "left" : null,
4572 "right" : {
4573 "type" : "field",
4574 "value" : ["scalars", "next_hasReturned_0"]
4575 }
4576 }
4577 }
4578 }
4579 },
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004580 "true_next" : "node_34",
4581 "false_next" : "node_37"
Carmelo Casconea5400af2018-07-17 22:11:54 +02004582 },
4583 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004584 "name" : "node_34",
4585 "id" : 9,
Carmelo Casconea5400af2018-07-17 22:11:54 +02004586 "source_info" : {
4587 "filename" : "include/control/next.p4",
4588 "line" : 228,
4589 "column" : 12,
Yi Tsengbd46d052018-01-22 17:18:16 -08004590 "source_fragment" : "!hdr.mpls.isValid()"
Yi Tseng1d842672017-11-28 16:06:52 -08004591 },
4592 "expression" : {
4593 "type" : "expression",
4594 "value" : {
Yi Tsengbd46d052018-01-22 17:18:16 -08004595 "op" : "not",
4596 "left" : null,
Yi Tseng1d842672017-11-28 16:06:52 -08004597 "right" : {
Yi Tsengbd46d052018-01-22 17:18:16 -08004598 "type" : "expression",
4599 "value" : {
4600 "op" : "d2b",
4601 "left" : null,
4602 "right" : {
4603 "type" : "field",
4604 "value" : ["mpls", "$valid$"]
4605 }
4606 }
Yi Tseng1d842672017-11-28 16:06:52 -08004607 }
4608 }
4609 },
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004610 "true_next" : "node_35",
4611 "false_next" : "node_37"
Yi Tseng1d842672017-11-28 16:06:52 -08004612 },
4613 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004614 "name" : "node_35",
4615 "id" : 10,
Yi Tseng1d842672017-11-28 16:06:52 -08004616 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004617 "filename" : "include/control/next.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004618 "line" : 229,
4619 "column" : 15,
Yi Tseng1d842672017-11-28 16:06:52 -08004620 "source_fragment" : "hdr.ipv4.isValid()"
4621 },
4622 "expression" : {
4623 "type" : "expression",
4624 "value" : {
Yi Tsengbd46d052018-01-22 17:18:16 -08004625 "op" : "d2b",
4626 "left" : null,
4627 "right" : {
Yi Tseng1d842672017-11-28 16:06:52 -08004628 "type" : "field",
4629 "value" : ["ipv4", "$valid$"]
Yi Tseng1d842672017-11-28 16:06:52 -08004630 }
4631 }
4632 },
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004633 "true_next" : "tbl_act_12",
4634 "false_next" : "node_37"
Yi Tseng27b9bc02018-04-12 14:52:40 +08004635 },
4636 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004637 "name" : "node_37",
4638 "id" : 11,
Yi Tseng27b9bc02018-04-12 14:52:40 +08004639 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004640 "filename" : "include/control/port_counter.p4",
Yi Tsengbe342052017-11-03 10:21:23 -07004641 "line" : 27,
4642 "column" : 12,
4643 "source_fragment" : "standard_metadata.egress_spec < 511"
4644 },
4645 "expression" : {
4646 "type" : "expression",
4647 "value" : {
4648 "op" : "<",
4649 "left" : {
4650 "type" : "field",
4651 "value" : ["standard_metadata", "egress_spec"]
4652 },
4653 "right" : {
4654 "type" : "hexstr",
4655 "value" : "0x01ff"
4656 }
4657 }
4658 },
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004659 "true_next" : "tbl_act_13",
4660 "false_next" : "node_39"
Yi Tsengbe342052017-11-03 10:21:23 -07004661 },
4662 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004663 "name" : "node_39",
4664 "id" : 12,
Yi Tsengbe342052017-11-03 10:21:23 -07004665 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004666 "filename" : "include/control/port_counter.p4",
Yi Tsengbe342052017-11-03 10:21:23 -07004667 "line" : 30,
4668 "column" : 12,
4669 "source_fragment" : "standard_metadata.ingress_port < 511"
4670 },
4671 "expression" : {
4672 "type" : "expression",
4673 "value" : {
4674 "op" : "<",
4675 "left" : {
4676 "type" : "field",
4677 "value" : ["standard_metadata", "ingress_port"]
4678 },
4679 "right" : {
4680 "type" : "hexstr",
4681 "value" : "0x01ff"
4682 }
4683 }
4684 },
Yi Tseng3a5731e2018-01-22 11:38:58 -08004685 "false_next" : null,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004686 "true_next" : "tbl_act_14"
Yi Tseng3a5731e2018-01-22 11:38:58 -08004687 }
4688 ]
4689 },
4690 {
4691 "name" : "egress",
4692 "id" : 1,
4693 "source_info" : {
4694 "filename" : "fabric.p4",
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07004695 "line" : 80,
Yi Tseng3a5731e2018-01-22 11:38:58 -08004696 "column" : 8,
4697 "source_fragment" : "FabricEgress"
4698 },
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004699 "init_table" : "node_43",
Yi Tseng3a5731e2018-01-22 11:38:58 -08004700 "tables" : [
4701 {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004702 "name" : "tbl_pkt_io_egress_pop_vlan",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004703 "id" : 26,
Carmelo Casconea5400af2018-07-17 22:11:54 +02004704 "key" : [],
4705 "match_type" : "exact",
4706 "type" : "simple",
4707 "max_size" : 1024,
4708 "with_counters" : false,
4709 "support_timeout" : false,
4710 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07004711 "action_ids" : [51],
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004712 "actions" : ["FabricEgress.pkt_io_egress.pop_vlan"],
4713 "base_default_next" : "node_47",
4714 "next_tables" : {
4715 "FabricEgress.pkt_io_egress.pop_vlan" : "node_47"
4716 },
4717 "default_entry" : {
Charles Chancd03f072018-08-31 17:46:37 -07004718 "action_id" : 51,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004719 "action_const" : true,
4720 "action_data" : [],
4721 "action_entry_const" : true
4722 }
4723 },
4724 {
4725 "name" : "tbl_drop_now",
4726 "id" : 27,
4727 "key" : [],
4728 "match_type" : "exact",
4729 "type" : "simple",
4730 "max_size" : 1024,
4731 "with_counters" : false,
4732 "support_timeout" : false,
4733 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07004734 "action_ids" : [49],
Carmelo Casconea5400af2018-07-17 22:11:54 +02004735 "actions" : ["drop_now"],
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004736 "base_default_next" : "tbl_act_15",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004737 "next_tables" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004738 "drop_now" : "tbl_act_15"
Carmelo Casconea5400af2018-07-17 22:11:54 +02004739 },
4740 "default_entry" : {
Charles Chancd03f072018-08-31 17:46:37 -07004741 "action_id" : 49,
Carmelo Casconea5400af2018-07-17 22:11:54 +02004742 "action_const" : true,
4743 "action_data" : [],
4744 "action_entry_const" : true
4745 }
4746 },
4747 {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004748 "name" : "tbl_act_15",
4749 "id" : 28,
4750 "key" : [],
4751 "match_type" : "exact",
4752 "type" : "simple",
4753 "max_size" : 1024,
4754 "with_counters" : false,
4755 "support_timeout" : false,
4756 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07004757 "action_ids" : [53],
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004758 "actions" : ["act_15"],
4759 "base_default_next" : null,
4760 "next_tables" : {
4761 "act_15" : null
4762 },
4763 "default_entry" : {
Charles Chancd03f072018-08-31 17:46:37 -07004764 "action_id" : 53,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004765 "action_const" : true,
4766 "action_data" : [],
4767 "action_entry_const" : true
4768 }
4769 },
4770 {
4771 "name" : "tbl_drop_now_0",
4772 "id" : 29,
4773 "key" : [],
4774 "match_type" : "exact",
4775 "type" : "simple",
4776 "max_size" : 1024,
4777 "with_counters" : false,
4778 "support_timeout" : false,
4779 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07004780 "action_ids" : [50],
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004781 "actions" : ["drop_now"],
4782 "base_default_next" : "FabricEgress.egress_next.egress_vlan",
4783 "next_tables" : {
4784 "drop_now" : "FabricEgress.egress_next.egress_vlan"
4785 },
4786 "default_entry" : {
Charles Chancd03f072018-08-31 17:46:37 -07004787 "action_id" : 50,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004788 "action_const" : true,
4789 "action_data" : [],
4790 "action_entry_const" : true
4791 }
4792 },
4793 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004794 "name" : "FabricEgress.egress_next.egress_vlan",
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004795 "id" : 30,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004796 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004797 "filename" : "include/control/next.p4",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004798 "line" : 258,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004799 "column" : 10,
4800 "source_fragment" : "egress_vlan"
4801 },
4802 "key" : [
4803 {
4804 "match_type" : "exact",
4805 "name" : "hdr.vlan_tag.vlan_id",
4806 "target" : ["vlan_tag", "vlan_id"],
4807 "mask" : null
4808 },
4809 {
4810 "match_type" : "exact",
4811 "name" : "standard_metadata.egress_port",
4812 "target" : ["standard_metadata", "egress_port"],
4813 "mask" : null
4814 }
4815 ],
4816 "match_type" : "exact",
4817 "type" : "simple",
4818 "max_size" : 1024,
Yi Tseng47eac892018-07-11 02:17:04 +08004819 "with_counters" : true,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004820 "support_timeout" : false,
4821 "direct_meters" : null,
Charles Chancd03f072018-08-31 17:46:37 -07004822 "action_ids" : [52, 48],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004823 "actions" : ["FabricEgress.egress_next.pop_vlan", "nop"],
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004824 "base_default_next" : null,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004825 "next_tables" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004826 "FabricEgress.egress_next.pop_vlan" : null,
4827 "nop" : null
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004828 },
4829 "default_entry" : {
Charles Chancd03f072018-08-31 17:46:37 -07004830 "action_id" : 48,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004831 "action_const" : false,
4832 "action_data" : [],
4833 "action_entry_const" : false
4834 }
Yi Tseng3a5731e2018-01-22 11:38:58 -08004835 }
4836 ],
4837 "action_profiles" : [],
4838 "conditionals" : [
Yi Tseng1d842672017-11-28 16:06:52 -08004839 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004840 "name" : "node_43",
4841 "id" : 13,
Carmelo Casconea5400af2018-07-17 22:11:54 +02004842 "source_info" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004843 "filename" : "include/control/packetio.p4",
Carmelo Cascone79a3a312018-08-16 17:14:43 -07004844 "line" : 44,
Carmelo Casconea5400af2018-07-17 22:11:54 +02004845 "column" : 12,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004846 "source_fragment" : "fabric_metadata.is_controller_packet_out == true"
Carmelo Casconea5400af2018-07-17 22:11:54 +02004847 },
4848 "expression" : {
4849 "type" : "expression",
4850 "value" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004851 "op" : "==",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004852 "left" : {
4853 "type" : "expression",
4854 "value" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004855 "op" : "d2b",
4856 "left" : null,
Carmelo Casconea5400af2018-07-17 22:11:54 +02004857 "right" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004858 "type" : "field",
4859 "value" : ["scalars", "fabric_metadata_t.is_controller_packet_out"]
Carmelo Casconea5400af2018-07-17 22:11:54 +02004860 }
4861 }
4862 },
4863 "right" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004864 "type" : "bool",
4865 "value" : true
Carmelo Casconea5400af2018-07-17 22:11:54 +02004866 }
4867 }
4868 },
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004869 "true_next" : null,
4870 "false_next" : "node_44"
Carmelo Casconea5400af2018-07-17 22:11:54 +02004871 },
4872 {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004873 "name" : "node_44",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004874 "id" : 14,
Yi Tsengbe342052017-11-03 10:21:23 -07004875 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004876 "filename" : "include/control/packetio.p4",
Carmelo Cascone79a3a312018-08-16 17:14:43 -07004877 "line" : 48,
Yi Tsengbe342052017-11-03 10:21:23 -07004878 "column" : 12,
Carmelo Casconeb531b682018-01-30 17:55:56 -08004879 "source_fragment" : "standard_metadata.egress_port == 255"
Yi Tsengbe342052017-11-03 10:21:23 -07004880 },
4881 "expression" : {
4882 "type" : "expression",
4883 "value" : {
4884 "op" : "==",
4885 "left" : {
4886 "type" : "field",
4887 "value" : ["standard_metadata", "egress_port"]
4888 },
4889 "right" : {
4890 "type" : "hexstr",
4891 "value" : "0x00ff"
4892 }
4893 }
4894 },
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004895 "true_next" : "node_45",
4896 "false_next" : "node_50"
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004897 },
4898 {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004899 "name" : "node_45",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004900 "id" : 15,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004901 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004902 "filename" : "include/control/packetio.p4",
Carmelo Cascone79a3a312018-08-16 17:14:43 -07004903 "line" : 49,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004904 "column" : 16,
Carmelo Cascone228092b2018-06-15 20:41:10 +02004905 "source_fragment" : "hdr.vlan_tag.isValid() && fabric_metadata.pop_vlan_when_packet_in == true"
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004906 },
4907 "expression" : {
4908 "type" : "expression",
4909 "value" : {
4910 "op" : "and",
4911 "left" : {
4912 "type" : "expression",
4913 "value" : {
4914 "op" : "d2b",
4915 "left" : null,
4916 "right" : {
4917 "type" : "field",
4918 "value" : ["vlan_tag", "$valid$"]
4919 }
4920 }
4921 },
4922 "right" : {
4923 "type" : "expression",
4924 "value" : {
Carmelo Cascone228092b2018-06-15 20:41:10 +02004925 "op" : "==",
4926 "left" : {
4927 "type" : "expression",
4928 "value" : {
4929 "op" : "d2b",
4930 "left" : null,
4931 "right" : {
4932 "type" : "field",
4933 "value" : ["scalars", "fabric_metadata_t.pop_vlan_when_packet_in"]
4934 }
4935 }
4936 },
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004937 "right" : {
Carmelo Cascone228092b2018-06-15 20:41:10 +02004938 "type" : "bool",
4939 "value" : true
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004940 }
4941 }
4942 }
4943 }
4944 },
4945 "true_next" : "tbl_pkt_io_egress_pop_vlan",
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004946 "false_next" : "node_47"
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02004947 },
4948 {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004949 "name" : "node_47",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07004950 "id" : 16,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02004951 "source_info" : {
4952 "filename" : "include/control/packetio.p4",
Carmelo Cascone79a3a312018-08-16 17:14:43 -07004953 "line" : 52,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02004954 "column" : 16,
4955 "source_fragment" : "fabric_metadata.is_multicast == true && ..."
4956 },
4957 "expression" : {
4958 "type" : "expression",
4959 "value" : {
4960 "op" : "and",
4961 "left" : {
4962 "type" : "expression",
4963 "value" : {
4964 "op" : "==",
4965 "left" : {
4966 "type" : "expression",
4967 "value" : {
4968 "op" : "d2b",
4969 "left" : null,
4970 "right" : {
4971 "type" : "field",
4972 "value" : ["scalars", "fabric_metadata_t.is_multicast"]
4973 }
4974 }
4975 },
4976 "right" : {
4977 "type" : "bool",
4978 "value" : true
4979 }
4980 }
4981 },
4982 "right" : {
4983 "type" : "expression",
4984 "value" : {
4985 "op" : "==",
4986 "left" : {
4987 "type" : "expression",
4988 "value" : {
4989 "op" : "d2b",
4990 "left" : null,
4991 "right" : {
4992 "type" : "field",
4993 "value" : ["scalars", "fabric_metadata_t.clone_to_cpu"]
4994 }
4995 }
4996 },
4997 "right" : {
4998 "type" : "bool",
4999 "value" : false
5000 }
5001 }
5002 }
5003 }
5004 },
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07005005 "true_next" : "tbl_drop_now",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07005006 "false_next" : "tbl_act_15"
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07005007 },
5008 {
5009 "name" : "node_50",
5010 "id" : 17,
5011 "source_info" : {
5012 "filename" : "include/control/next.p4",
5013 "line" : 272,
5014 "column" : 12,
5015 "source_fragment" : "fabric_metadata.is_multicast == true ..."
5016 },
5017 "expression" : {
5018 "type" : "expression",
5019 "value" : {
5020 "op" : "and",
5021 "left" : {
5022 "type" : "expression",
5023 "value" : {
5024 "op" : "==",
5025 "left" : {
5026 "type" : "expression",
5027 "value" : {
5028 "op" : "d2b",
5029 "left" : null,
5030 "right" : {
5031 "type" : "field",
5032 "value" : ["scalars", "fabric_metadata_t.is_multicast"]
5033 }
5034 }
5035 },
5036 "right" : {
5037 "type" : "bool",
5038 "value" : true
5039 }
5040 }
5041 },
5042 "right" : {
5043 "type" : "expression",
5044 "value" : {
5045 "op" : "==",
5046 "left" : {
5047 "type" : "field",
5048 "value" : ["standard_metadata", "ingress_port"]
5049 },
5050 "right" : {
5051 "type" : "field",
5052 "value" : ["standard_metadata", "egress_port"]
5053 }
5054 }
5055 }
5056 }
5057 },
5058 "true_next" : "tbl_drop_now_0",
5059 "false_next" : "FabricEgress.egress_next.egress_vlan"
Yi Tsengbe342052017-11-03 10:21:23 -07005060 }
5061 ]
5062 }
5063 ],
5064 "checksums" : [
5065 {
5066 "name" : "cksum",
5067 "id" : 0,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07005068 "source_info" : {
5069 "filename" : "include/checksum.p4",
5070 "line" : 28,
5071 "column" : 8,
5072 "source_fragment" : "update_checksum(hdr.ipv4.isValid(), ..."
5073 },
Yi Tsengbe342052017-11-03 10:21:23 -07005074 "target" : ["ipv4", "hdr_checksum"],
5075 "type" : "generic",
Yi Tsengbd46d052018-01-22 17:18:16 -08005076 "calculation" : "calc",
5077 "if_cond" : {
5078 "type" : "expression",
5079 "value" : {
5080 "op" : "d2b",
5081 "left" : null,
5082 "right" : {
5083 "type" : "field",
5084 "value" : ["ipv4", "$valid$"]
5085 }
5086 }
5087 }
Yi Tsengbe342052017-11-03 10:21:23 -07005088 },
5089 {
5090 "name" : "cksum_0",
5091 "id" : 1,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07005092 "source_info" : {
5093 "filename" : "include/checksum.p4",
5094 "line" : 57,
5095 "column" : 8,
5096 "source_fragment" : "verify_checksum(hdr.ipv4.isValid(), ..."
5097 },
Yi Tsengbe342052017-11-03 10:21:23 -07005098 "target" : ["ipv4", "hdr_checksum"],
5099 "type" : "generic",
Yi Tsengbd46d052018-01-22 17:18:16 -08005100 "calculation" : "calc_0",
5101 "if_cond" : {
5102 "type" : "expression",
5103 "value" : {
5104 "op" : "d2b",
5105 "left" : null,
5106 "right" : {
5107 "type" : "field",
5108 "value" : ["ipv4", "$valid$"]
5109 }
5110 }
5111 }
Yi Tsengbe342052017-11-03 10:21:23 -07005112 }
5113 ],
5114 "force_arith" : [],
5115 "extern_instances" : [],
5116 "field_aliases" : [
5117 [
5118 "queueing_metadata.enq_timestamp",
5119 ["standard_metadata", "enq_timestamp"]
5120 ],
5121 [
5122 "queueing_metadata.enq_qdepth",
5123 ["standard_metadata", "enq_qdepth"]
5124 ],
5125 [
5126 "queueing_metadata.deq_timedelta",
5127 ["standard_metadata", "deq_timedelta"]
5128 ],
5129 [
5130 "queueing_metadata.deq_qdepth",
5131 ["standard_metadata", "deq_qdepth"]
5132 ],
5133 [
5134 "intrinsic_metadata.ingress_global_timestamp",
5135 ["standard_metadata", "ingress_global_timestamp"]
5136 ],
5137 [
Yi Tseng27b9bc02018-04-12 14:52:40 +08005138 "intrinsic_metadata.egress_global_timestamp",
5139 ["standard_metadata", "egress_global_timestamp"]
5140 ],
5141 [
Yi Tsengbe342052017-11-03 10:21:23 -07005142 "intrinsic_metadata.lf_field_list",
5143 ["standard_metadata", "lf_field_list"]
5144 ],
5145 [
5146 "intrinsic_metadata.mcast_grp",
5147 ["standard_metadata", "mcast_grp"]
5148 ],
5149 [
5150 "intrinsic_metadata.resubmit_flag",
5151 ["standard_metadata", "resubmit_flag"]
5152 ],
5153 [
5154 "intrinsic_metadata.egress_rid",
5155 ["standard_metadata", "egress_rid"]
Yi Tseng27b9bc02018-04-12 14:52:40 +08005156 ],
5157 [
5158 "intrinsic_metadata.recirculate_flag",
5159 ["standard_metadata", "recirculate_flag"]
Yi Tsengbe342052017-11-03 10:21:23 -07005160 ]
Carmelo Cascone6af4e172018-06-15 16:01:30 +02005161 ],
5162 "program" : "fabric.p4",
5163 "__meta__" : {
5164 "version" : [2, 18],
5165 "compiler" : "https://github.com/p4lang/p4c"
5166 }
Yi Tsengbe342052017-11-03 10:21:23 -07005167}