blob: 5e77188dd1d52e386a90fb9aef854549573f537a [file] [log] [blame]
Yi Tsengbe342052017-11-03 10:21:23 -07001{
Yi Tsengbe342052017-11-03 10:21:23 -07002 "header_types" : [
3 {
4 "name" : "scalars_0",
5 "id" : 0,
6 "fields" : [
Carmelo Casconeb5324e72018-11-25 02:26:32 -08007 ["tmp_0", 4, false],
8 ["tmp", 32, false],
Yi Tsengbe342052017-11-03 10:21:23 -07009 ["tmp_1", 32, false],
Carmelo Casconeb5324e72018-11-25 02:26:32 -080010 ["egress_next_tmp", 1, false],
11 ["fabric_metadata_t.eth_type", 16, false],
12 ["fabric_metadata_t.ip_eth_type", 16, false],
13 ["fabric_metadata_t.vlan_id", 12, false],
14 ["fabric_metadata_t.vlan_pri", 3, false],
15 ["fabric_metadata_t.vlan_cfi", 1, false],
16 ["fabric_metadata_t.mpls_label", 20, false],
17 ["fabric_metadata_t.mpls_ttl", 8, false],
18 ["fabric_metadata_t.skip_forwarding", 1, false],
19 ["fabric_metadata_t.skip_next", 1, false],
Yi Tsengbe342052017-11-03 10:21:23 -070020 ["fabric_metadata_t.fwd_type", 3, false],
21 ["fabric_metadata_t.next_id", 32, false],
Carmelo Cascone1e8843f2018-07-19 19:01:12 +020022 ["fabric_metadata_t.is_multicast", 1, false],
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -070023 ["fabric_metadata_t.is_controller_packet_out", 1, false],
Yi Tsengbe342052017-11-03 10:21:23 -070024 ["fabric_metadata_t.ip_proto", 8, false],
Carmelo Casconeb5324e72018-11-25 02:26:32 -080025 ["fabric_metadata_t.l4_sport", 16, false],
Daniele Moro01ca2ab2019-06-25 11:48:48 -070026 ["fabric_metadata_t.l4_dport", 16, false]
Yi Tsengc6844f52017-12-19 11:58:25 -080027 ]
28 },
29 {
Carmelo Cascone6af4e172018-06-15 16:01:30 +020030 "name" : "standard_metadata",
Yi Tsengc6844f52017-12-19 11:58:25 -080031 "id" : 1,
32 "fields" : [
Carmelo Cascone6af4e172018-06-15 16:01:30 +020033 ["ingress_port", 9, false],
34 ["egress_spec", 9, false],
35 ["egress_port", 9, false],
36 ["clone_spec", 32, false],
37 ["instance_type", 32, false],
38 ["drop", 1, false],
39 ["recirculate_port", 16, false],
40 ["packet_length", 32, false],
41 ["enq_timestamp", 32, false],
42 ["enq_qdepth", 19, false],
43 ["deq_timedelta", 32, false],
44 ["deq_qdepth", 19, false],
45 ["ingress_global_timestamp", 48, false],
46 ["egress_global_timestamp", 48, false],
47 ["lf_field_list", 32, false],
48 ["mcast_grp", 16, false],
49 ["resubmit_flag", 32, false],
50 ["egress_rid", 16, false],
Carmelo Cascone6af4e172018-06-15 16:01:30 +020051 ["recirculate_flag", 32, false],
Carmelo Cascone9b607da2019-05-08 14:03:01 -070052 ["checksum_error", 1, false],
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -070053 ["parser_error", 32, false],
Carmelo Cascone9b607da2019-05-08 14:03:01 -070054 ["priority", 3, false],
55 ["_padding", 2, false]
Carmelo Cascone6af4e172018-06-15 16:01:30 +020056 ]
57 },
58 {
59 "name" : "ethernet_t",
60 "id" : 2,
61 "fields" : [
Yi Tsengc6844f52017-12-19 11:58:25 -080062 ["dst_addr", 48, false],
63 ["src_addr", 48, false],
Carmelo Casconeb5324e72018-11-25 02:26:32 -080064 ["eth_type", 16, false]
Yi Tsengc6844f52017-12-19 11:58:25 -080065 ]
66 },
67 {
68 "name" : "vlan_tag_t",
Carmelo Cascone6af4e172018-06-15 16:01:30 +020069 "id" : 3,
Yi Tsengc6844f52017-12-19 11:58:25 -080070 "fields" : [
71 ["pri", 3, false],
72 ["cfi", 1, false],
73 ["vlan_id", 12, false],
Carmelo Casconeb5324e72018-11-25 02:26:32 -080074 ["eth_type", 16, false]
Yi Tsengc6844f52017-12-19 11:58:25 -080075 ]
76 },
77 {
78 "name" : "mpls_t",
Carmelo Cascone6af4e172018-06-15 16:01:30 +020079 "id" : 4,
Yi Tsengc6844f52017-12-19 11:58:25 -080080 "fields" : [
81 ["label", 20, false],
82 ["tc", 3, false],
83 ["bos", 1, false],
84 ["ttl", 8, false]
Yi Tsengbe342052017-11-03 10:21:23 -070085 ]
86 },
87 {
88 "name" : "ipv4_t",
Carmelo Cascone6af4e172018-06-15 16:01:30 +020089 "id" : 5,
Yi Tsengbe342052017-11-03 10:21:23 -070090 "fields" : [
91 ["version", 4, false],
92 ["ihl", 4, false],
Jonghwan Hyuned478dc2018-08-06 15:35:18 +090093 ["dscp", 6, false],
94 ["ecn", 2, false],
Yi Tsengbe342052017-11-03 10:21:23 -070095 ["total_len", 16, false],
96 ["identification", 16, false],
97 ["flags", 3, false],
98 ["frag_offset", 13, false],
99 ["ttl", 8, false],
100 ["protocol", 8, false],
101 ["hdr_checksum", 16, false],
102 ["src_addr", 32, false],
103 ["dst_addr", 32, false]
104 ]
105 },
106 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800107 "name" : "tcp_t",
Carmelo Casconef645e842018-07-16 18:31:52 +0200108 "id" : 6,
Yi Tseng47eac892018-07-11 02:17:04 +0800109 "fields" : [
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800110 ["sport", 16, false],
111 ["dport", 16, false],
Yi Tsengbe342052017-11-03 10:21:23 -0700112 ["seq_no", 32, false],
113 ["ack_no", 32, false],
114 ["data_offset", 4, false],
115 ["res", 3, false],
116 ["ecn", 3, false],
117 ["ctrl", 6, false],
118 ["window", 16, false],
119 ["checksum", 16, false],
120 ["urgent_ptr", 16, false]
121 ]
122 },
123 {
124 "name" : "udp_t",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800125 "id" : 7,
Yi Tsengbe342052017-11-03 10:21:23 -0700126 "fields" : [
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800127 ["sport", 16, false],
128 ["dport", 16, false],
Yi Tsengbe342052017-11-03 10:21:23 -0700129 ["len", 16, false],
130 ["checksum", 16, false]
131 ]
132 },
133 {
134 "name" : "icmp_t",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800135 "id" : 8,
Yi Tsengbe342052017-11-03 10:21:23 -0700136 "fields" : [
137 ["icmp_type", 8, false],
138 ["icmp_code", 8, false],
Yi Tsengf73a5532017-11-17 15:58:57 -0800139 ["checksum", 16, false],
140 ["identifier", 16, false],
141 ["sequence_number", 16, false],
142 ["timestamp", 64, false]
Yi Tsengbe342052017-11-03 10:21:23 -0700143 ]
144 },
145 {
146 "name" : "packet_out_header_t",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800147 "id" : 9,
Yi Tsengbe342052017-11-03 10:21:23 -0700148 "fields" : [
149 ["egress_port", 9, false],
Yi Tseng1d842672017-11-28 16:06:52 -0800150 ["_pad", 7, false]
Yi Tsengbe342052017-11-03 10:21:23 -0700151 ]
152 },
153 {
154 "name" : "packet_in_header_t",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800155 "id" : 10,
Yi Tsengbe342052017-11-03 10:21:23 -0700156 "fields" : [
157 ["ingress_port", 9, false],
Yi Tseng1d842672017-11-28 16:06:52 -0800158 ["_pad", 7, false]
Yi Tsengbe342052017-11-03 10:21:23 -0700159 ]
Yi Tsengbe342052017-11-03 10:21:23 -0700160 }
161 ],
162 "headers" : [
163 {
Yi Tsengbe342052017-11-03 10:21:23 -0700164 "name" : "scalars",
Yi Tsengc6844f52017-12-19 11:58:25 -0800165 "id" : 0,
Yi Tsengbe342052017-11-03 10:21:23 -0700166 "header_type" : "scalars_0",
167 "metadata" : true,
168 "pi_omit" : true
169 },
170 {
171 "name" : "standard_metadata",
Yi Tsengc6844f52017-12-19 11:58:25 -0800172 "id" : 1,
Yi Tsengbe342052017-11-03 10:21:23 -0700173 "header_type" : "standard_metadata",
174 "metadata" : true,
175 "pi_omit" : true
176 },
177 {
178 "name" : "ethernet",
Yi Tsengc6844f52017-12-19 11:58:25 -0800179 "id" : 2,
Yi Tsengbe342052017-11-03 10:21:23 -0700180 "header_type" : "ethernet_t",
181 "metadata" : false,
182 "pi_omit" : true
183 },
184 {
185 "name" : "vlan_tag",
Yi Tsengc6844f52017-12-19 11:58:25 -0800186 "id" : 3,
Yi Tsengbe342052017-11-03 10:21:23 -0700187 "header_type" : "vlan_tag_t",
188 "metadata" : false,
189 "pi_omit" : true
190 },
191 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800192 "name" : "inner_vlan_tag",
Yi Tsengbd46d052018-01-22 17:18:16 -0800193 "id" : 4,
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800194 "header_type" : "vlan_tag_t",
195 "metadata" : false,
196 "pi_omit" : true
197 },
198 {
199 "name" : "mpls",
200 "id" : 5,
Yi Tsengbe342052017-11-03 10:21:23 -0700201 "header_type" : "mpls_t",
202 "metadata" : false,
203 "pi_omit" : true
204 },
205 {
206 "name" : "ipv4",
Carmelo Casconef645e842018-07-16 18:31:52 +0200207 "id" : 6,
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800208 "header_type" : "ipv4_t",
Yi Tsengbe342052017-11-03 10:21:23 -0700209 "metadata" : false,
210 "pi_omit" : true
211 },
212 {
213 "name" : "tcp",
Carmelo Casconef645e842018-07-16 18:31:52 +0200214 "id" : 7,
Yi Tsengbe342052017-11-03 10:21:23 -0700215 "header_type" : "tcp_t",
216 "metadata" : false,
217 "pi_omit" : true
218 },
219 {
220 "name" : "udp",
Carmelo Casconef645e842018-07-16 18:31:52 +0200221 "id" : 8,
Yi Tsengbe342052017-11-03 10:21:23 -0700222 "header_type" : "udp_t",
223 "metadata" : false,
224 "pi_omit" : true
225 },
226 {
227 "name" : "icmp",
Carmelo Casconef645e842018-07-16 18:31:52 +0200228 "id" : 9,
Yi Tsengbe342052017-11-03 10:21:23 -0700229 "header_type" : "icmp_t",
230 "metadata" : false,
231 "pi_omit" : true
232 },
233 {
234 "name" : "packet_out",
Carmelo Casconef645e842018-07-16 18:31:52 +0200235 "id" : 10,
Yi Tsengbe342052017-11-03 10:21:23 -0700236 "header_type" : "packet_out_header_t",
237 "metadata" : false,
238 "pi_omit" : true
239 },
240 {
241 "name" : "packet_in",
Carmelo Casconef645e842018-07-16 18:31:52 +0200242 "id" : 11,
Yi Tsengbe342052017-11-03 10:21:23 -0700243 "header_type" : "packet_in_header_t",
244 "metadata" : false,
245 "pi_omit" : true
246 }
247 ],
248 "header_stacks" : [],
249 "header_union_types" : [],
250 "header_unions" : [],
251 "header_union_stacks" : [],
Daniele Moro01ca2ab2019-06-25 11:48:48 -0700252 "field_lists" : [
253 {
254 "id" : 1,
255 "name" : "fl",
256 "source_info" : {
Daniele Moro3b7a21b2019-06-25 17:33:40 -0700257 "filename" : "include/control/acl.p4",
258 "line" : 46,
Daniele Moro01ca2ab2019-06-25 11:48:48 -0700259 "column" : 40,
Daniele Moro3b7a21b2019-06-25 17:33:40 -0700260 "source_fragment" : "{standard_metadata.ingress_port}"
Daniele Moro01ca2ab2019-06-25 11:48:48 -0700261 },
262 "elements" : [
263 {
264 "type" : "field",
265 "value" : ["standard_metadata", "ingress_port"]
Daniele Moro01ca2ab2019-06-25 11:48:48 -0700266 }
267 ]
268 }
269 ],
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700270 "errors" : [
Carmelo Cascone4d8785b2019-05-31 17:11:26 -0700271 ["NoError", 1],
272 ["PacketTooShort", 2],
273 ["NoMatch", 3],
274 ["StackOutOfBounds", 4],
275 ["HeaderTooShort", 5],
276 ["ParserTimeout", 6],
277 ["ParserInvalidArgument", 7]
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700278 ],
Yi Tsengbe342052017-11-03 10:21:23 -0700279 "enums" : [],
280 "parsers" : [
281 {
282 "name" : "parser",
283 "id" : 0,
284 "init_state" : "start",
285 "parse_states" : [
286 {
287 "name" : "start",
288 "id" : 0,
289 "parser_ops" : [],
290 "transitions" : [
291 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800292 "type" : "hexstr",
Yi Tsengbe342052017-11-03 10:21:23 -0700293 "value" : "0x00ff",
294 "mask" : null,
295 "next_state" : "parse_packet_out"
296 },
297 {
298 "value" : "default",
299 "mask" : null,
300 "next_state" : "parse_ethernet"
301 }
302 ],
303 "transition_key" : [
304 {
305 "type" : "field",
306 "value" : ["standard_metadata", "ingress_port"]
307 }
308 ]
309 },
310 {
311 "name" : "parse_packet_out",
312 "id" : 1,
313 "parser_ops" : [
314 {
315 "parameters" : [
316 {
317 "type" : "regular",
318 "value" : "packet_out"
319 }
320 ],
321 "op" : "extract"
322 }
323 ],
324 "transitions" : [
325 {
326 "value" : "default",
327 "mask" : null,
328 "next_state" : "parse_ethernet"
329 }
330 ],
331 "transition_key" : []
332 },
333 {
334 "name" : "parse_ethernet",
335 "id" : 2,
336 "parser_ops" : [
337 {
338 "parameters" : [
339 {
340 "type" : "regular",
341 "value" : "ethernet"
342 }
343 ],
344 "op" : "extract"
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800345 },
346 {
347 "parameters" : [
348 {
349 "type" : "field",
350 "value" : ["scalars", "fabric_metadata_t.eth_type"]
351 },
352 {
353 "type" : "field",
354 "value" : ["ethernet", "eth_type"]
355 }
356 ],
357 "op" : "set"
358 },
359 {
360 "parameters" : [
361 {
362 "type" : "field",
363 "value" : ["scalars", "fabric_metadata_t.vlan_id"]
364 },
365 {
366 "type" : "hexstr",
367 "value" : "0x0ffe"
368 }
369 ],
370 "op" : "set"
Yi Tsengbe342052017-11-03 10:21:23 -0700371 }
372 ],
373 "transitions" : [
374 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800375 "type" : "hexstr",
Yi Tsengbe342052017-11-03 10:21:23 -0700376 "value" : "0x8100",
377 "mask" : null,
378 "next_state" : "parse_vlan_tag"
379 },
380 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800381 "type" : "hexstr",
Yi Tsengbe342052017-11-03 10:21:23 -0700382 "value" : "0x8847",
383 "mask" : null,
384 "next_state" : "parse_mpls"
385 },
386 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800387 "type" : "hexstr",
Yi Tsengbe342052017-11-03 10:21:23 -0700388 "value" : "0x0800",
389 "mask" : null,
390 "next_state" : "parse_ipv4"
391 },
392 {
Yi Tsengbe342052017-11-03 10:21:23 -0700393 "value" : "default",
394 "mask" : null,
395 "next_state" : null
396 }
397 ],
398 "transition_key" : [
399 {
400 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800401 "value" : ["ethernet", "eth_type"]
Yi Tsengbe342052017-11-03 10:21:23 -0700402 }
403 ]
404 },
405 {
406 "name" : "parse_vlan_tag",
407 "id" : 3,
408 "parser_ops" : [
409 {
410 "parameters" : [
411 {
412 "type" : "regular",
413 "value" : "vlan_tag"
414 }
415 ],
416 "op" : "extract"
417 }
418 ],
419 "transitions" : [
420 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800421 "type" : "hexstr",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800422 "value" : "0x0800",
Yi Tsengbe342052017-11-03 10:21:23 -0700423 "mask" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800424 "next_state" : "parse_ipv4"
Yi Tsengbe342052017-11-03 10:21:23 -0700425 },
426 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800427 "type" : "hexstr",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800428 "value" : "0x8847",
429 "mask" : null,
430 "next_state" : "parse_mpls"
431 },
432 {
433 "type" : "hexstr",
434 "value" : "0x8100",
435 "mask" : null,
436 "next_state" : "parse_inner_vlan_tag"
437 },
438 {
439 "value" : "default",
440 "mask" : null,
441 "next_state" : null
442 }
443 ],
444 "transition_key" : [
445 {
446 "type" : "field",
447 "value" : ["vlan_tag", "eth_type"]
448 }
449 ]
450 },
451 {
452 "name" : "parse_inner_vlan_tag",
453 "id" : 4,
454 "parser_ops" : [
455 {
456 "parameters" : [
457 {
458 "type" : "regular",
459 "value" : "inner_vlan_tag"
460 }
461 ],
462 "op" : "extract"
463 }
464 ],
465 "transitions" : [
466 {
467 "type" : "hexstr",
Yi Tsengbe342052017-11-03 10:21:23 -0700468 "value" : "0x0800",
469 "mask" : null,
470 "next_state" : "parse_ipv4"
471 },
472 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800473 "type" : "hexstr",
Yi Tsengbd46d052018-01-22 17:18:16 -0800474 "value" : "0x8847",
Yi Tsengbe342052017-11-03 10:21:23 -0700475 "mask" : null,
Yi Tsengbd46d052018-01-22 17:18:16 -0800476 "next_state" : "parse_mpls"
Yi Tsengbe342052017-11-03 10:21:23 -0700477 },
478 {
479 "value" : "default",
480 "mask" : null,
481 "next_state" : null
482 }
483 ],
484 "transition_key" : [
485 {
486 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800487 "value" : ["inner_vlan_tag", "eth_type"]
Yi Tsengbe342052017-11-03 10:21:23 -0700488 }
489 ]
490 },
491 {
492 "name" : "parse_mpls",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800493 "id" : 5,
Yi Tsengbe342052017-11-03 10:21:23 -0700494 "parser_ops" : [
495 {
496 "parameters" : [
497 {
498 "type" : "regular",
499 "value" : "mpls"
500 }
501 ],
502 "op" : "extract"
503 },
504 {
505 "parameters" : [
506 {
507 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800508 "value" : ["scalars", "fabric_metadata_t.mpls_label"]
509 },
510 {
511 "type" : "field",
512 "value" : ["mpls", "label"]
513 }
514 ],
515 "op" : "set"
516 },
517 {
518 "parameters" : [
519 {
520 "type" : "field",
521 "value" : ["scalars", "fabric_metadata_t.mpls_ttl"]
522 },
523 {
524 "type" : "field",
525 "value" : ["mpls", "ttl"]
526 }
527 ],
528 "op" : "set"
529 },
530 {
531 "parameters" : [
532 {
533 "type" : "field",
534 "value" : ["scalars", "tmp_0"]
Yi Tsengbe342052017-11-03 10:21:23 -0700535 },
536 {
537 "type" : "lookahead",
Yi Tsengc6844f52017-12-19 11:58:25 -0800538 "value" : [0, 4]
Yi Tsengbe342052017-11-03 10:21:23 -0700539 }
540 ],
541 "op" : "set"
542 }
543 ],
544 "transitions" : [
545 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800546 "type" : "hexstr",
Yi Tsengbe342052017-11-03 10:21:23 -0700547 "value" : "0x04",
548 "mask" : null,
549 "next_state" : "parse_ipv4"
550 },
551 {
Yi Tsengbe342052017-11-03 10:21:23 -0700552 "value" : "default",
553 "mask" : null,
554 "next_state" : "parse_ethernet"
555 }
556 ],
557 "transition_key" : [
558 {
559 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800560 "value" : ["scalars", "tmp_0"]
Yi Tsengbe342052017-11-03 10:21:23 -0700561 }
562 ]
563 },
564 {
565 "name" : "parse_ipv4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800566 "id" : 6,
Yi Tsengbe342052017-11-03 10:21:23 -0700567 "parser_ops" : [
568 {
569 "parameters" : [
570 {
571 "type" : "regular",
572 "value" : "ipv4"
573 }
574 ],
575 "op" : "extract"
576 },
577 {
578 "parameters" : [
579 {
580 "type" : "field",
581 "value" : ["scalars", "fabric_metadata_t.ip_proto"]
582 },
583 {
584 "type" : "field",
585 "value" : ["ipv4", "protocol"]
586 }
587 ],
588 "op" : "set"
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800589 },
590 {
591 "parameters" : [
592 {
593 "type" : "field",
594 "value" : ["scalars", "fabric_metadata_t.ip_eth_type"]
595 },
596 {
597 "type" : "hexstr",
598 "value" : "0x0800"
599 }
600 ],
601 "op" : "set"
Yi Tsengbe342052017-11-03 10:21:23 -0700602 }
603 ],
604 "transitions" : [
605 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800606 "type" : "hexstr",
Yi Tsengbe342052017-11-03 10:21:23 -0700607 "value" : "0x06",
608 "mask" : null,
609 "next_state" : "parse_tcp"
610 },
611 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800612 "type" : "hexstr",
Yi Tsengbe342052017-11-03 10:21:23 -0700613 "value" : "0x11",
614 "mask" : null,
615 "next_state" : "parse_udp"
616 },
617 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800618 "type" : "hexstr",
Yi Tsengbe342052017-11-03 10:21:23 -0700619 "value" : "0x01",
620 "mask" : null,
621 "next_state" : "parse_icmp"
622 },
623 {
624 "value" : "default",
625 "mask" : null,
626 "next_state" : null
627 }
628 ],
629 "transition_key" : [
630 {
631 "type" : "field",
632 "value" : ["ipv4", "protocol"]
633 }
634 ]
635 },
636 {
Yi Tsengbe342052017-11-03 10:21:23 -0700637 "name" : "parse_tcp",
Carmelo Casconef645e842018-07-16 18:31:52 +0200638 "id" : 7,
Yi Tsengbe342052017-11-03 10:21:23 -0700639 "parser_ops" : [
640 {
641 "parameters" : [
642 {
643 "type" : "regular",
644 "value" : "tcp"
645 }
646 ],
647 "op" : "extract"
648 },
649 {
650 "parameters" : [
651 {
652 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800653 "value" : ["scalars", "fabric_metadata_t.l4_sport"]
Yi Tsengbe342052017-11-03 10:21:23 -0700654 },
655 {
656 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800657 "value" : ["tcp", "sport"]
Yi Tsengbe342052017-11-03 10:21:23 -0700658 }
659 ],
660 "op" : "set"
661 },
662 {
663 "parameters" : [
664 {
665 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800666 "value" : ["scalars", "fabric_metadata_t.l4_dport"]
Yi Tsengbe342052017-11-03 10:21:23 -0700667 },
668 {
669 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800670 "value" : ["tcp", "dport"]
Yi Tsengbe342052017-11-03 10:21:23 -0700671 }
672 ],
673 "op" : "set"
674 }
675 ],
676 "transitions" : [
677 {
678 "value" : "default",
679 "mask" : null,
680 "next_state" : null
681 }
682 ],
683 "transition_key" : []
684 },
685 {
686 "name" : "parse_udp",
Carmelo Casconef645e842018-07-16 18:31:52 +0200687 "id" : 8,
Yi Tsengbe342052017-11-03 10:21:23 -0700688 "parser_ops" : [
689 {
690 "parameters" : [
691 {
692 "type" : "regular",
693 "value" : "udp"
694 }
695 ],
696 "op" : "extract"
697 },
698 {
699 "parameters" : [
700 {
701 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800702 "value" : ["scalars", "fabric_metadata_t.l4_sport"]
Yi Tsengbe342052017-11-03 10:21:23 -0700703 },
704 {
705 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800706 "value" : ["udp", "sport"]
Yi Tsengbe342052017-11-03 10:21:23 -0700707 }
708 ],
709 "op" : "set"
710 },
711 {
712 "parameters" : [
713 {
714 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800715 "value" : ["scalars", "fabric_metadata_t.l4_dport"]
Yi Tsengbe342052017-11-03 10:21:23 -0700716 },
717 {
718 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800719 "value" : ["udp", "dport"]
Yi Tsengbe342052017-11-03 10:21:23 -0700720 }
721 ],
722 "op" : "set"
723 }
724 ],
725 "transitions" : [
726 {
727 "value" : "default",
728 "mask" : null,
729 "next_state" : null
730 }
731 ],
Carmelo Cascone79a3a312018-08-16 17:14:43 -0700732 "transition_key" : [
733 {
734 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800735 "value" : ["udp", "dport"]
Carmelo Cascone79a3a312018-08-16 17:14:43 -0700736 }
737 ]
Yi Tsengbe342052017-11-03 10:21:23 -0700738 },
739 {
740 "name" : "parse_icmp",
Carmelo Casconef645e842018-07-16 18:31:52 +0200741 "id" : 9,
Yi Tsengbe342052017-11-03 10:21:23 -0700742 "parser_ops" : [
743 {
744 "parameters" : [
745 {
746 "type" : "regular",
747 "value" : "icmp"
748 }
749 ],
750 "op" : "extract"
751 }
752 ],
753 "transitions" : [
754 {
755 "value" : "default",
756 "mask" : null,
757 "next_state" : null
758 }
759 ],
760 "transition_key" : []
761 }
762 ]
763 }
764 ],
Yi Tseng27b9bc02018-04-12 14:52:40 +0800765 "parse_vsets" : [],
Yi Tsengbe342052017-11-03 10:21:23 -0700766 "deparsers" : [
767 {
768 "name" : "deparser",
769 "id" : 0,
770 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +0200771 "filename" : "include/parser.p4",
Carmelo Cascone4d8785b2019-05-31 17:11:26 -0700772 "line" : 260,
Yi Tsengbe342052017-11-03 10:21:23 -0700773 "column" : 8,
774 "source_fragment" : "FabricDeparser"
775 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800776 "order" : ["packet_in", "ethernet", "vlan_tag", "inner_vlan_tag", "mpls", "ipv4", "tcp", "udp", "icmp"]
Yi Tsengbe342052017-11-03 10:21:23 -0700777 }
778 ],
779 "meter_arrays" : [],
780 "counter_arrays" : [
781 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800782 "name" : "FabricIngress.filtering.ingress_port_vlan_counter",
Yi Tseng1d842672017-11-28 16:06:52 -0800783 "id" : 0,
Yi Tseng3a5731e2018-01-22 11:38:58 -0800784 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700785 "binding" : "FabricIngress.filtering.ingress_port_vlan",
786 "source_info" : {
787 "filename" : "include/control/filtering.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800788 "line" : 31,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700789 "column" : 50,
790 "source_fragment" : "ingress_port_vlan_counter"
791 }
Yi Tseng3a5731e2018-01-22 11:38:58 -0800792 },
793 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800794 "name" : "FabricIngress.filtering.fwd_classifier_counter",
Yi Tseng3a5731e2018-01-22 11:38:58 -0800795 "id" : 1,
796 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700797 "binding" : "FabricIngress.filtering.fwd_classifier",
798 "source_info" : {
799 "filename" : "include/control/filtering.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -0700800 "line" : 80,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700801 "column" : 50,
802 "source_fragment" : "fwd_classifier_counter"
803 }
Yi Tseng3a5731e2018-01-22 11:38:58 -0800804 },
805 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800806 "name" : "FabricIngress.forwarding.bridging_counter",
Yi Tseng3a5731e2018-01-22 11:38:58 -0800807 "id" : 2,
808 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700809 "binding" : "FabricIngress.forwarding.bridging",
810 "source_info" : {
811 "filename" : "include/control/forwarding.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800812 "line" : 36,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700813 "column" : 50,
814 "source_fragment" : "bridging_counter"
815 }
Yi Tseng3a5731e2018-01-22 11:38:58 -0800816 },
817 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800818 "name" : "FabricIngress.forwarding.mpls_counter",
Yi Tseng3a5731e2018-01-22 11:38:58 -0800819 "id" : 3,
820 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700821 "binding" : "FabricIngress.forwarding.mpls",
822 "source_info" : {
823 "filename" : "include/control/forwarding.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -0700824 "line" : 63,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700825 "column" : 50,
826 "source_fragment" : "mpls_counter"
827 }
Yi Tseng3a5731e2018-01-22 11:38:58 -0800828 },
829 {
Charles Chan384aea22018-08-23 22:08:02 -0700830 "name" : "FabricIngress.forwarding.routing_v4_counter",
Yi Tseng3a5731e2018-01-22 11:38:58 -0800831 "id" : 4,
832 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700833 "binding" : "FabricIngress.forwarding.routing_v4",
834 "source_info" : {
835 "filename" : "include/control/forwarding.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -0700836 "line" : 87,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700837 "column" : 50,
838 "source_fragment" : "routing_v4_counter"
839 }
Yi Tseng3a5731e2018-01-22 11:38:58 -0800840 },
841 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800842 "name" : "FabricIngress.acl.acl_counter",
Carmelo Cascone5bdffe72018-02-04 14:53:54 -0800843 "id" : 5,
Yi Tseng3a5731e2018-01-22 11:38:58 -0800844 "is_direct" : true,
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800845 "binding" : "FabricIngress.acl.acl",
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700846 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800847 "filename" : "include/control/acl.p4",
848 "line" : 30,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700849 "column" : 50,
850 "source_fragment" : "acl_counter"
851 }
Yi Tseng3a5731e2018-01-22 11:38:58 -0800852 },
853 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800854 "name" : "FabricIngress.next.next_vlan_counter",
Carmelo Casconef645e842018-07-16 18:31:52 +0200855 "id" : 6,
Yi Tseng47eac892018-07-11 02:17:04 +0800856 "is_direct" : true,
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800857 "binding" : "FabricIngress.next.next_vlan",
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700858 "source_info" : {
859 "filename" : "include/control/next.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800860 "line" : 67,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700861 "column" : 50,
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800862 "source_fragment" : "next_vlan_counter"
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700863 }
Yi Tseng20f9e7b2018-05-24 23:27:39 +0800864 },
865 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800866 "name" : "FabricIngress.next.xconnect_counter",
Carmelo Casconef645e842018-07-16 18:31:52 +0200867 "id" : 7,
Yi Tseng20f9e7b2018-05-24 23:27:39 +0800868 "is_direct" : true,
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800869 "binding" : "FabricIngress.next.xconnect",
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700870 "source_info" : {
871 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -0700872 "line" : 92,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700873 "column" : 50,
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800874 "source_fragment" : "xconnect_counter"
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700875 }
Yi Tseng27b9bc02018-04-12 14:52:40 +0800876 },
877 {
878 "name" : "FabricIngress.next.hashed_counter",
Carmelo Casconef645e842018-07-16 18:31:52 +0200879 "id" : 8,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800880 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700881 "binding" : "FabricIngress.next.hashed",
882 "source_info" : {
883 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -0700884 "line" : 166,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700885 "column" : 50,
886 "source_fragment" : "hashed_counter"
887 }
Yi Tseng27b9bc02018-04-12 14:52:40 +0800888 },
889 {
Esin Karaman971fb7f2017-12-28 13:44:52 +0000890 "name" : "FabricIngress.next.multicast_counter",
Carmelo Casconef645e842018-07-16 18:31:52 +0200891 "id" : 9,
Esin Karaman971fb7f2017-12-28 13:44:52 +0000892 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700893 "binding" : "FabricIngress.next.multicast",
894 "source_info" : {
895 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -0700896 "line" : 210,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700897 "column" : 50,
898 "source_fragment" : "multicast_counter"
899 }
Esin Karaman971fb7f2017-12-28 13:44:52 +0000900 },
901 {
902 "name" : "FabricIngress.port_counters_control.egress_port_counter",
Carmelo Casconef645e842018-07-16 18:31:52 +0200903 "id" : 10,
Yi Tsengbe342052017-11-03 10:21:23 -0700904 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +0200905 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800906 "line" : 26,
Yi Tseng3d3956d2018-01-31 17:28:05 -0800907 "column" : 48,
Yi Tsengbe342052017-11-03 10:21:23 -0700908 "source_fragment" : "egress_port_counter"
909 },
910 "size" : 511,
911 "is_direct" : false
912 },
913 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800914 "name" : "FabricIngress.port_counters_control.ingress_port_counter",
Carmelo Casconef645e842018-07-16 18:31:52 +0200915 "id" : 11,
Yi Tsengbe342052017-11-03 10:21:23 -0700916 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +0200917 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800918 "line" : 27,
Yi Tseng3d3956d2018-01-31 17:28:05 -0800919 "column" : 48,
Yi Tsengbe342052017-11-03 10:21:23 -0700920 "source_fragment" : "ingress_port_counter"
921 },
922 "size" : 511,
923 "is_direct" : false
Yi Tseng47eac892018-07-11 02:17:04 +0800924 },
925 {
926 "name" : "FabricEgress.egress_next.egress_vlan_counter",
Carmelo Casconef645e842018-07-16 18:31:52 +0200927 "id" : 12,
Yi Tseng47eac892018-07-11 02:17:04 +0800928 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700929 "binding" : "FabricEgress.egress_next.egress_vlan",
930 "source_info" : {
931 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -0700932 "line" : 283,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700933 "column" : 50,
934 "source_fragment" : "egress_vlan_counter"
935 }
Yi Tsengbe342052017-11-03 10:21:23 -0700936 }
937 ],
938 "register_arrays" : [],
939 "calculations" : [
940 {
941 "name" : "calc",
942 "id" : 0,
943 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +0200944 "filename" : "include/checksum.p4",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200945 "line" : 28,
Yi Tsengbe342052017-11-03 10:21:23 -0700946 "column" : 8,
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200947 "source_fragment" : "update_checksum(hdr.ipv4.isValid(), ..."
Yi Tsengbe342052017-11-03 10:21:23 -0700948 },
949 "algo" : "csum16",
950 "input" : [
951 {
952 "type" : "field",
953 "value" : ["ipv4", "version"]
954 },
955 {
956 "type" : "field",
957 "value" : ["ipv4", "ihl"]
958 },
959 {
960 "type" : "field",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +0900961 "value" : ["ipv4", "dscp"]
962 },
963 {
964 "type" : "field",
965 "value" : ["ipv4", "ecn"]
Yi Tsengbe342052017-11-03 10:21:23 -0700966 },
967 {
968 "type" : "field",
969 "value" : ["ipv4", "total_len"]
970 },
971 {
972 "type" : "field",
973 "value" : ["ipv4", "identification"]
974 },
975 {
976 "type" : "field",
977 "value" : ["ipv4", "flags"]
978 },
979 {
980 "type" : "field",
981 "value" : ["ipv4", "frag_offset"]
982 },
983 {
984 "type" : "field",
985 "value" : ["ipv4", "ttl"]
986 },
987 {
988 "type" : "field",
989 "value" : ["ipv4", "protocol"]
990 },
991 {
992 "type" : "field",
993 "value" : ["ipv4", "src_addr"]
994 },
995 {
996 "type" : "field",
997 "value" : ["ipv4", "dst_addr"]
998 }
999 ]
1000 },
1001 {
1002 "name" : "calc_0",
1003 "id" : 1,
1004 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001005 "filename" : "include/checksum.p4",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09001006 "line" : 57,
Yi Tsengbe342052017-11-03 10:21:23 -07001007 "column" : 8,
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001008 "source_fragment" : "verify_checksum(hdr.ipv4.isValid(), ..."
Yi Tsengbe342052017-11-03 10:21:23 -07001009 },
1010 "algo" : "csum16",
1011 "input" : [
1012 {
1013 "type" : "field",
1014 "value" : ["ipv4", "version"]
1015 },
1016 {
1017 "type" : "field",
1018 "value" : ["ipv4", "ihl"]
1019 },
1020 {
1021 "type" : "field",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09001022 "value" : ["ipv4", "dscp"]
1023 },
1024 {
1025 "type" : "field",
1026 "value" : ["ipv4", "ecn"]
Yi Tsengbe342052017-11-03 10:21:23 -07001027 },
1028 {
1029 "type" : "field",
1030 "value" : ["ipv4", "total_len"]
1031 },
1032 {
1033 "type" : "field",
1034 "value" : ["ipv4", "identification"]
1035 },
1036 {
1037 "type" : "field",
1038 "value" : ["ipv4", "flags"]
1039 },
1040 {
1041 "type" : "field",
1042 "value" : ["ipv4", "frag_offset"]
1043 },
1044 {
1045 "type" : "field",
1046 "value" : ["ipv4", "ttl"]
1047 },
1048 {
1049 "type" : "field",
1050 "value" : ["ipv4", "protocol"]
1051 },
1052 {
1053 "type" : "field",
1054 "value" : ["ipv4", "src_addr"]
1055 },
1056 {
1057 "type" : "field",
1058 "value" : ["ipv4", "dst_addr"]
1059 }
1060 ]
Yi Tsengbe342052017-11-03 10:21:23 -07001061 }
1062 ],
1063 "learn_lists" : [],
1064 "actions" : [
1065 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001066 "name" : "nop",
Yi Tsengbe342052017-11-03 10:21:23 -07001067 "id" : 0,
1068 "runtime_data" : [],
1069 "primitives" : []
1070 },
1071 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001072 "name" : "nop",
Yi Tsengbe342052017-11-03 10:21:23 -07001073 "id" : 1,
1074 "runtime_data" : [],
1075 "primitives" : []
1076 },
1077 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001078 "name" : "nop",
Yi Tsengbe342052017-11-03 10:21:23 -07001079 "id" : 2,
1080 "runtime_data" : [],
Yi Tseng1d842672017-11-28 16:06:52 -08001081 "primitives" : []
Yi Tsengbe342052017-11-03 10:21:23 -07001082 },
1083 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001084 "name" : "nop",
Yi Tsengbe342052017-11-03 10:21:23 -07001085 "id" : 3,
1086 "runtime_data" : [],
Yi Tseng1d842672017-11-28 16:06:52 -08001087 "primitives" : []
Yi Tsengbe342052017-11-03 10:21:23 -07001088 },
1089 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001090 "name" : "nop",
Yi Tsengbe342052017-11-03 10:21:23 -07001091 "id" : 4,
1092 "runtime_data" : [],
1093 "primitives" : []
1094 },
1095 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001096 "name" : "nop",
Yi Tsengbe342052017-11-03 10:21:23 -07001097 "id" : 5,
1098 "runtime_data" : [],
1099 "primitives" : []
1100 },
1101 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07001102 "name" : "nop",
Yi Tsengbe342052017-11-03 10:21:23 -07001103 "id" : 6,
1104 "runtime_data" : [],
1105 "primitives" : []
1106 },
1107 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001108 "name" : "FabricIngress.filtering.deny",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07001109 "id" : 7,
Yi Tseng47eac892018-07-11 02:17:04 +08001110 "runtime_data" : [],
Yi Tseng1d842672017-11-28 16:06:52 -08001111 "primitives" : [
1112 {
Yi Tsengbe342052017-11-03 10:21:23 -07001113 "op" : "assign",
1114 "parameters" : [
1115 {
1116 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001117 "value" : ["scalars", "fabric_metadata_t.skip_forwarding"]
Yi Tsengbe342052017-11-03 10:21:23 -07001118 },
1119 {
1120 "type" : "expression",
1121 "value" : {
1122 "type" : "expression",
1123 "value" : {
1124 "op" : "b2d",
1125 "left" : null,
1126 "right" : {
1127 "type" : "bool",
1128 "value" : true
1129 }
1130 }
1131 }
1132 }
1133 ],
1134 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001135 "filename" : "include/control/filtering.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001136 "line" : 36,
Yi Tsengbe342052017-11-03 10:21:23 -07001137 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001138 "source_fragment" : "fabric_metadata.skip_forwarding = true"
1139 }
1140 },
1141 {
1142 "op" : "assign",
1143 "parameters" : [
1144 {
1145 "type" : "field",
1146 "value" : ["scalars", "fabric_metadata_t.skip_next"]
1147 },
1148 {
1149 "type" : "expression",
1150 "value" : {
1151 "type" : "expression",
1152 "value" : {
1153 "op" : "b2d",
1154 "left" : null,
1155 "right" : {
1156 "type" : "bool",
1157 "value" : true
1158 }
1159 }
1160 }
1161 }
1162 ],
1163 "source_info" : {
1164 "filename" : "include/control/filtering.p4",
1165 "line" : 37,
1166 "column" : 8,
1167 "source_fragment" : "fabric_metadata.skip_next = true"
Yi Tsengbe342052017-11-03 10:21:23 -07001168 }
1169 }
1170 ]
1171 },
1172 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001173 "name" : "FabricIngress.filtering.permit",
1174 "id" : 8,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07001175 "runtime_data" : [],
1176 "primitives" : []
1177 },
1178 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001179 "name" : "FabricIngress.filtering.permit_with_internal_vlan",
1180 "id" : 9,
1181 "runtime_data" : [
1182 {
1183 "name" : "vlan_id",
1184 "bitwidth" : 12
1185 }
1186 ],
1187 "primitives" : [
1188 {
1189 "op" : "assign",
1190 "parameters" : [
1191 {
1192 "type" : "field",
1193 "value" : ["scalars", "fabric_metadata_t.vlan_id"]
1194 },
1195 {
1196 "type" : "runtime_data",
1197 "value" : 0
1198 }
1199 ],
1200 "source_info" : {
1201 "filename" : "include/control/filtering.p4",
1202 "line" : 47,
1203 "column" : 8,
1204 "source_fragment" : "fabric_metadata.vlan_id = vlan_id"
1205 }
1206 }
1207 ]
1208 },
1209 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001210 "name" : "FabricIngress.filtering.set_forwarding_type",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001211 "id" : 10,
Yi Tsengbe342052017-11-03 10:21:23 -07001212 "runtime_data" : [
1213 {
1214 "name" : "fwd_type",
1215 "bitwidth" : 3
1216 }
1217 ],
1218 "primitives" : [
1219 {
1220 "op" : "assign",
1221 "parameters" : [
1222 {
1223 "type" : "field",
1224 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
1225 },
1226 {
1227 "type" : "runtime_data",
1228 "value" : 0
1229 }
1230 ],
1231 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001232 "filename" : "include/control/filtering.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07001233 "line" : 83,
Yi Tsengbe342052017-11-03 10:21:23 -07001234 "column" : 8,
1235 "source_fragment" : "fabric_metadata.fwd_type = fwd_type"
1236 }
1237 }
1238 ]
1239 },
1240 {
Yi Tseng47eac892018-07-11 02:17:04 +08001241 "name" : "FabricIngress.forwarding.set_next_id_bridging",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001242 "id" : 11,
Carmelo Casconef645e842018-07-16 18:31:52 +02001243 "runtime_data" : [
1244 {
1245 "name" : "next_id",
1246 "bitwidth" : 32
1247 }
1248 ],
1249 "primitives" : [
1250 {
1251 "op" : "assign",
1252 "parameters" : [
1253 {
1254 "type" : "field",
1255 "value" : ["scalars", "fabric_metadata_t.next_id"]
1256 },
1257 {
1258 "type" : "runtime_data",
1259 "value" : 0
1260 }
1261 ],
1262 "source_info" : {
1263 "filename" : "include/control/forwarding.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001264 "line" : 30,
Carmelo Casconef645e842018-07-16 18:31:52 +02001265 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001266 "source_fragment" : "fabric_metadata.next_id = next_id; ..."
Carmelo Casconef645e842018-07-16 18:31:52 +02001267 }
1268 }
1269 ]
1270 },
1271 {
1272 "name" : "FabricIngress.forwarding.pop_mpls_and_next",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001273 "id" : 12,
Carmelo Casconef645e842018-07-16 18:31:52 +02001274 "runtime_data" : [
1275 {
1276 "name" : "next_id",
1277 "bitwidth" : 32
1278 }
1279 ],
1280 "primitives" : [
1281 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001282 "op" : "assign",
Carmelo Casconef645e842018-07-16 18:31:52 +02001283 "parameters" : [
1284 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001285 "type" : "field",
1286 "value" : ["scalars", "fabric_metadata_t.mpls_label"]
1287 },
1288 {
1289 "type" : "hexstr",
1290 "value" : "0x000000"
Carmelo Casconef645e842018-07-16 18:31:52 +02001291 }
1292 ],
1293 "source_info" : {
1294 "filename" : "include/control/forwarding.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07001295 "line" : 66,
Carmelo Casconef645e842018-07-16 18:31:52 +02001296 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001297 "source_fragment" : "fabric_metadata.mpls_label = 0"
Carmelo Casconef645e842018-07-16 18:31:52 +02001298 }
1299 },
1300 {
1301 "op" : "assign",
1302 "parameters" : [
1303 {
1304 "type" : "field",
1305 "value" : ["scalars", "fabric_metadata_t.next_id"]
1306 },
1307 {
1308 "type" : "runtime_data",
1309 "value" : 0
1310 }
1311 ],
1312 "source_info" : {
1313 "filename" : "include/control/forwarding.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001314 "line" : 30,
Carmelo Casconef645e842018-07-16 18:31:52 +02001315 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001316 "source_fragment" : "fabric_metadata.next_id = next_id; ..."
Carmelo Casconef645e842018-07-16 18:31:52 +02001317 }
1318 }
1319 ]
1320 },
1321 {
Charles Chan384aea22018-08-23 22:08:02 -07001322 "name" : "FabricIngress.forwarding.set_next_id_routing_v4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001323 "id" : 13,
Carmelo Casconef645e842018-07-16 18:31:52 +02001324 "runtime_data" : [
1325 {
1326 "name" : "next_id",
1327 "bitwidth" : 32
1328 }
1329 ],
1330 "primitives" : [
1331 {
1332 "op" : "assign",
1333 "parameters" : [
1334 {
1335 "type" : "field",
1336 "value" : ["scalars", "fabric_metadata_t.next_id"]
1337 },
1338 {
1339 "type" : "runtime_data",
1340 "value" : 0
1341 }
1342 ],
1343 "source_info" : {
1344 "filename" : "include/control/forwarding.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001345 "line" : 30,
Carmelo Casconef645e842018-07-16 18:31:52 +02001346 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001347 "source_fragment" : "fabric_metadata.next_id = next_id; ..."
Carmelo Casconef645e842018-07-16 18:31:52 +02001348 }
1349 }
1350 ]
1351 },
1352 {
Charles Chancd03f072018-08-31 17:46:37 -07001353 "name" : "FabricIngress.forwarding.nop_routing_v4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001354 "id" : 14,
Charles Chancd03f072018-08-31 17:46:37 -07001355 "runtime_data" : [],
1356 "primitives" : []
1357 },
1358 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001359 "name" : "FabricIngress.acl.set_next_id_acl",
1360 "id" : 15,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001361 "runtime_data" : [
1362 {
1363 "name" : "next_id",
1364 "bitwidth" : 32
1365 }
1366 ],
1367 "primitives" : [
1368 {
Esin Karaman971fb7f2017-12-28 13:44:52 +00001369 "op" : "assign",
1370 "parameters" : [
1371 {
1372 "type" : "field",
1373 "value" : ["scalars", "fabric_metadata_t.next_id"]
1374 },
1375 {
1376 "type" : "runtime_data",
1377 "value" : 0
1378 }
1379 ],
1380 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001381 "filename" : "include/control/acl.p4",
1382 "line" : 33,
Yi Tseng47eac892018-07-11 02:17:04 +08001383 "column" : 8,
1384 "source_fragment" : "fabric_metadata.next_id = next_id"
1385 }
1386 }
1387 ]
1388 },
1389 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001390 "name" : "FabricIngress.acl.punt_to_cpu",
1391 "id" : 16,
Yi Tsengbe342052017-11-03 10:21:23 -07001392 "runtime_data" : [],
1393 "primitives" : [
1394 {
1395 "op" : "assign",
1396 "parameters" : [
1397 {
1398 "type" : "field",
Yi Tsengbe342052017-11-03 10:21:23 -07001399 "value" : ["standard_metadata", "egress_spec"]
1400 },
1401 {
1402 "type" : "hexstr",
1403 "value" : "0x00ff"
1404 }
1405 ],
1406 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001407 "filename" : "include/control/acl.p4",
1408 "line" : 39,
Carmelo Casconeb531b682018-01-30 17:55:56 -08001409 "column" : 8,
1410 "source_fragment" : "standard_metadata.egress_spec = 255"
Yi Tsengbe342052017-11-03 10:21:23 -07001411 }
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001412 },
1413 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001414 "op" : "assign",
1415 "parameters" : [
1416 {
1417 "type" : "field",
1418 "value" : ["scalars", "fabric_metadata_t.skip_next"]
1419 },
1420 {
1421 "type" : "expression",
1422 "value" : {
1423 "type" : "expression",
1424 "value" : {
1425 "op" : "b2d",
1426 "left" : null,
1427 "right" : {
1428 "type" : "bool",
1429 "value" : true
1430 }
1431 }
1432 }
1433 }
1434 ],
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001435 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001436 "filename" : "include/control/acl.p4",
1437 "line" : 40,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001438 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001439 "source_fragment" : "fabric_metadata.skip_next = true"
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001440 }
1441 }
1442 ]
1443 },
1444 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07001445 "name" : "FabricIngress.acl.set_clone_session_id",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001446 "id" : 17,
Daniele Moro01ca2ab2019-06-25 11:48:48 -07001447 "runtime_data" : [
1448 {
1449 "name" : "clone_id",
1450 "bitwidth" : 32
1451 }
1452 ],
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001453 "primitives" : [
1454 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07001455 "op" : "clone_ingress_pkt_to_egress",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001456 "parameters" : [
1457 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07001458 "type" : "runtime_data",
1459 "value" : 0
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001460 },
1461 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07001462 "type" : "hexstr",
1463 "value" : "0x1"
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001464 }
1465 ],
1466 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001467 "filename" : "include/control/acl.p4",
1468 "line" : 46,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001469 "column" : 8,
Daniele Moro3b7a21b2019-06-25 17:33:40 -07001470 "source_fragment" : "clone3(CloneType.I2E, clone_id, {standard_metadata.ingress_port})"
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001471 }
Yi Tsengbe342052017-11-03 10:21:23 -07001472 }
1473 ]
1474 },
1475 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001476 "name" : "FabricIngress.acl.drop",
1477 "id" : 18,
Yi Tseng47eac892018-07-11 02:17:04 +08001478 "runtime_data" : [],
1479 "primitives" : [
1480 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07001481 "op" : "mark_to_drop",
1482 "parameters" : [
1483 {
1484 "type" : "header",
1485 "value" : "standard_metadata"
1486 }
1487 ],
Yi Tseng47eac892018-07-11 02:17:04 +08001488 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001489 "filename" : "include/control/acl.p4",
1490 "line" : 51,
Yi Tseng47eac892018-07-11 02:17:04 +08001491 "column" : 8,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07001492 "source_fragment" : "mark_to_drop(standard_metadata)"
Yi Tseng47eac892018-07-11 02:17:04 +08001493 }
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001494 },
1495 {
1496 "op" : "assign",
1497 "parameters" : [
1498 {
1499 "type" : "field",
1500 "value" : ["scalars", "fabric_metadata_t.skip_next"]
1501 },
1502 {
1503 "type" : "expression",
1504 "value" : {
1505 "type" : "expression",
1506 "value" : {
1507 "op" : "b2d",
1508 "left" : null,
1509 "right" : {
1510 "type" : "bool",
1511 "value" : true
1512 }
1513 }
1514 }
1515 }
1516 ],
1517 "source_info" : {
1518 "filename" : "include/control/acl.p4",
1519 "line" : 52,
1520 "column" : 8,
1521 "source_fragment" : "fabric_metadata.skip_next = true"
1522 }
Yi Tseng47eac892018-07-11 02:17:04 +08001523 }
1524 ]
1525 },
1526 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001527 "name" : "FabricIngress.acl.nop_acl",
1528 "id" : 19,
Charles Chancf696e52018-08-16 16:25:13 -07001529 "runtime_data" : [],
1530 "primitives" : []
1531 },
1532 {
Yi Tseng47eac892018-07-11 02:17:04 +08001533 "name" : "FabricIngress.next.set_vlan",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001534 "id" : 20,
1535 "runtime_data" : [
1536 {
1537 "name" : "vlan_id",
1538 "bitwidth" : 12
1539 }
1540 ],
1541 "primitives" : [
1542 {
1543 "op" : "assign",
1544 "parameters" : [
1545 {
1546 "type" : "field",
1547 "value" : ["scalars", "fabric_metadata_t.vlan_id"]
1548 },
1549 {
1550 "type" : "runtime_data",
1551 "value" : 0
1552 }
1553 ],
1554 "source_info" : {
1555 "filename" : "include/control/next.p4",
1556 "line" : 70,
1557 "column" : 8,
1558 "source_fragment" : "fabric_metadata.vlan_id = vlan_id"
1559 }
1560 }
1561 ]
1562 },
1563 {
1564 "name" : "FabricIngress.next.output_xconnect",
Charles Chancd03f072018-08-31 17:46:37 -07001565 "id" : 21,
Yi Tseng47eac892018-07-11 02:17:04 +08001566 "runtime_data" : [
1567 {
Yi Tsengbe342052017-11-03 10:21:23 -07001568 "name" : "port_num",
1569 "bitwidth" : 9
1570 }
1571 ],
1572 "primitives" : [
1573 {
1574 "op" : "assign",
1575 "parameters" : [
1576 {
1577 "type" : "field",
1578 "value" : ["standard_metadata", "egress_spec"]
1579 },
1580 {
1581 "type" : "runtime_data",
1582 "value" : 0
1583 }
1584 ],
1585 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001586 "filename" : "include/control/next.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001587 "line" : 31,
1588 "column" : 5,
Yi Tseng47eac892018-07-11 02:17:04 +08001589 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
1590 }
1591 }
1592 ]
1593 },
1594 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001595 "name" : "FabricIngress.next.set_next_id_xconnect",
1596 "id" : 22,
1597 "runtime_data" : [
1598 {
1599 "name" : "next_id",
1600 "bitwidth" : 32
1601 }
1602 ],
1603 "primitives" : [
1604 {
1605 "op" : "assign",
1606 "parameters" : [
1607 {
1608 "type" : "field",
1609 "value" : ["scalars", "fabric_metadata_t.next_id"]
1610 },
1611 {
1612 "type" : "runtime_data",
1613 "value" : 0
1614 }
1615 ],
1616 "source_info" : {
1617 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07001618 "line" : 100,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001619 "column" : 8,
1620 "source_fragment" : "fabric_metadata.next_id = next_id"
1621 }
1622 }
1623 ]
1624 },
1625 {
1626 "name" : "FabricIngress.next.output_hashed",
1627 "id" : 23,
1628 "runtime_data" : [
1629 {
1630 "name" : "port_num",
1631 "bitwidth" : 9
1632 }
1633 ],
1634 "primitives" : [
1635 {
1636 "op" : "assign",
1637 "parameters" : [
1638 {
1639 "type" : "field",
1640 "value" : ["standard_metadata", "egress_spec"]
1641 },
1642 {
1643 "type" : "runtime_data",
1644 "value" : 0
1645 }
1646 ],
1647 "source_info" : {
1648 "filename" : "include/control/next.p4",
1649 "line" : 31,
1650 "column" : 5,
1651 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
1652 }
1653 }
1654 ]
1655 },
1656 {
1657 "name" : "FabricIngress.next.routing_hashed",
Charles Chancd03f072018-08-31 17:46:37 -07001658 "id" : 24,
Yi Tseng47eac892018-07-11 02:17:04 +08001659 "runtime_data" : [
1660 {
1661 "name" : "port_num",
1662 "bitwidth" : 9
1663 },
1664 {
1665 "name" : "smac",
1666 "bitwidth" : 48
1667 },
1668 {
1669 "name" : "dmac",
1670 "bitwidth" : 48
1671 }
1672 ],
1673 "primitives" : [
1674 {
1675 "op" : "assign",
1676 "parameters" : [
1677 {
1678 "type" : "field",
1679 "value" : ["ethernet", "src_addr"]
1680 },
1681 {
1682 "type" : "runtime_data",
1683 "value" : 1
1684 }
1685 ],
1686 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001687 "filename" : "include/control/next.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001688 "line" : 36,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001689 "column" : 8,
Yi Tseng47eac892018-07-11 02:17:04 +08001690 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
1691 }
1692 },
1693 {
1694 "op" : "assign",
1695 "parameters" : [
1696 {
1697 "type" : "field",
1698 "value" : ["ethernet", "dst_addr"]
1699 },
1700 {
1701 "type" : "runtime_data",
1702 "value" : 2
1703 }
1704 ],
1705 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001706 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001707 "line" : 41,
1708 "column" : 8,
1709 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
1710 }
1711 },
1712 {
1713 "op" : "assign",
1714 "parameters" : [
1715 {
1716 "type" : "field",
1717 "value" : ["standard_metadata", "egress_spec"]
1718 },
1719 {
1720 "type" : "runtime_data",
1721 "value" : 0
1722 }
1723 ],
1724 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001725 "filename" : "include/control/next.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001726 "line" : 31,
1727 "column" : 5,
Yi Tseng47eac892018-07-11 02:17:04 +08001728 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001729 }
1730 }
1731 ]
1732 },
1733 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001734 "name" : "FabricIngress.next.mpls_routing_hashed",
Carmelo Casconef645e842018-07-16 18:31:52 +02001735 "id" : 25,
Esin Karaman971fb7f2017-12-28 13:44:52 +00001736 "runtime_data" : [
1737 {
1738 "name" : "port_num",
1739 "bitwidth" : 9
1740 },
1741 {
1742 "name" : "smac",
1743 "bitwidth" : 48
1744 },
1745 {
1746 "name" : "dmac",
1747 "bitwidth" : 48
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001748 },
1749 {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001750 "name" : "label",
1751 "bitwidth" : 20
Yi Tsengbe342052017-11-03 10:21:23 -07001752 }
1753 ],
1754 "primitives" : [
1755 {
1756 "op" : "assign",
1757 "parameters" : [
1758 {
1759 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001760 "value" : ["scalars", "fabric_metadata_t.mpls_label"]
1761 },
1762 {
1763 "type" : "runtime_data",
1764 "value" : 3
1765 }
1766 ],
1767 "source_info" : {
1768 "filename" : "include/control/next.p4",
1769 "line" : 46,
1770 "column" : 8,
1771 "source_fragment" : "fabric_metadata.mpls_label = label; ..."
1772 }
1773 },
1774 {
1775 "op" : "assign",
1776 "parameters" : [
1777 {
1778 "type" : "field",
Yi Tsengbe342052017-11-03 10:21:23 -07001779 "value" : ["ethernet", "src_addr"]
1780 },
1781 {
1782 "type" : "runtime_data",
1783 "value" : 1
1784 }
1785 ],
1786 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001787 "filename" : "include/control/next.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001788 "line" : 36,
Yi Tsengbe342052017-11-03 10:21:23 -07001789 "column" : 8,
1790 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
1791 }
1792 },
1793 {
1794 "op" : "assign",
1795 "parameters" : [
1796 {
1797 "type" : "field",
1798 "value" : ["ethernet", "dst_addr"]
1799 },
1800 {
1801 "type" : "runtime_data",
1802 "value" : 2
1803 }
1804 ],
1805 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001806 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001807 "line" : 41,
Yi Tsengbe342052017-11-03 10:21:23 -07001808 "column" : 8,
1809 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
1810 }
1811 },
1812 {
1813 "op" : "assign",
1814 "parameters" : [
1815 {
1816 "type" : "field",
1817 "value" : ["standard_metadata", "egress_spec"]
1818 },
1819 {
1820 "type" : "runtime_data",
1821 "value" : 0
1822 }
1823 ],
1824 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001825 "filename" : "include/control/next.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001826 "line" : 31,
1827 "column" : 5,
Yi Tsengbe342052017-11-03 10:21:23 -07001828 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
1829 }
Yi Tsengbe342052017-11-03 10:21:23 -07001830 }
1831 ]
1832 },
1833 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001834 "name" : "FabricIngress.next.set_mcast_group_id",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001835 "id" : 26,
1836 "runtime_data" : [
1837 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001838 "name" : "group_id",
Esin Karaman971fb7f2017-12-28 13:44:52 +00001839 "bitwidth" : 16
1840 }
1841 ],
1842 "primitives" : [
1843 {
1844 "op" : "assign",
1845 "parameters" : [
1846 {
1847 "type" : "field",
1848 "value" : ["standard_metadata", "mcast_grp"]
1849 },
1850 {
1851 "type" : "runtime_data",
1852 "value" : 0
1853 }
1854 ],
1855 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001856 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07001857 "line" : 213,
Esin Karaman971fb7f2017-12-28 13:44:52 +00001858 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001859 "source_fragment" : "standard_metadata.mcast_grp = group_id"
Esin Karaman971fb7f2017-12-28 13:44:52 +00001860 }
Carmelo Casconea5400af2018-07-17 22:11:54 +02001861 },
1862 {
1863 "op" : "assign",
1864 "parameters" : [
1865 {
1866 "type" : "field",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001867 "value" : ["scalars", "fabric_metadata_t.is_multicast"]
Carmelo Casconea5400af2018-07-17 22:11:54 +02001868 },
1869 {
1870 "type" : "expression",
1871 "value" : {
1872 "type" : "expression",
1873 "value" : {
1874 "op" : "b2d",
1875 "left" : null,
1876 "right" : {
1877 "type" : "bool",
1878 "value" : true
1879 }
1880 }
1881 }
1882 }
1883 ],
1884 "source_info" : {
1885 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07001886 "line" : 214,
Carmelo Casconea5400af2018-07-17 22:11:54 +02001887 "column" : 8,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001888 "source_fragment" : "fabric_metadata.is_multicast = true"
Carmelo Casconea5400af2018-07-17 22:11:54 +02001889 }
Esin Karaman971fb7f2017-12-28 13:44:52 +00001890 }
1891 ]
1892 },
1893 {
1894 "name" : "act",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001895 "id" : 27,
Yi Tsengbe342052017-11-03 10:21:23 -07001896 "runtime_data" : [],
1897 "primitives" : [
1898 {
1899 "op" : "assign",
1900 "parameters" : [
1901 {
1902 "type" : "field",
1903 "value" : ["standard_metadata", "egress_spec"]
1904 },
1905 {
1906 "type" : "field",
1907 "value" : ["packet_out", "egress_port"]
1908 }
1909 ],
1910 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001911 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001912 "line" : 25,
Yi Tsengbe342052017-11-03 10:21:23 -07001913 "column" : 12,
1914 "source_fragment" : "standard_metadata.egress_spec = hdr.packet_out.egress_port"
1915 }
Yi Tseng1d842672017-11-28 16:06:52 -08001916 },
1917 {
1918 "op" : "remove_header",
1919 "parameters" : [
1920 {
1921 "type" : "header",
1922 "value" : "packet_out"
1923 }
1924 ],
1925 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001926 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001927 "line" : 26,
Yi Tseng1d842672017-11-28 16:06:52 -08001928 "column" : 12,
1929 "source_fragment" : "hdr.packet_out.setInvalid()"
1930 }
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07001931 },
1932 {
1933 "op" : "assign",
1934 "parameters" : [
1935 {
1936 "type" : "field",
1937 "value" : ["scalars", "fabric_metadata_t.is_controller_packet_out"]
1938 },
1939 {
1940 "type" : "expression",
1941 "value" : {
1942 "type" : "expression",
1943 "value" : {
1944 "op" : "b2d",
1945 "left" : null,
1946 "right" : {
1947 "type" : "bool",
1948 "value" : true
1949 }
1950 }
1951 }
1952 }
1953 ],
1954 "source_info" : {
1955 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001956 "line" : 27,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07001957 "column" : 12,
1958 "source_fragment" : "fabric_metadata.is_controller_packet_out = true"
1959 }
Carmelo Cascone9b607da2019-05-08 14:03:01 -07001960 },
1961 {
1962 "op" : "exit",
1963 "parameters" : [],
1964 "source_info" : {
1965 "filename" : "include/control/packetio.p4",
1966 "line" : 29,
1967 "column" : 12,
1968 "source_fragment" : "exit"
1969 }
Yi Tsengbe342052017-11-03 10:21:23 -07001970 }
1971 ]
1972 },
1973 {
1974 "name" : "act_0",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001975 "id" : 28,
Yi Tsengbe342052017-11-03 10:21:23 -07001976 "runtime_data" : [],
1977 "primitives" : [
1978 {
1979 "op" : "assign",
1980 "parameters" : [
1981 {
1982 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001983 "value" : ["scalars", "fabric_metadata_t.eth_type"]
Yi Tseng1d842672017-11-28 16:06:52 -08001984 },
1985 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001986 "type" : "field",
1987 "value" : ["vlan_tag", "eth_type"]
Yi Tseng1d842672017-11-28 16:06:52 -08001988 }
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001989 ],
1990 "source_info" : {
1991 "filename" : "include/control/filtering.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07001992 "line" : 105,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001993 "column" : 12,
1994 "source_fragment" : "fabric_metadata.eth_type = hdr.vlan_tag.eth_type"
1995 }
1996 },
1997 {
1998 "op" : "assign",
1999 "parameters" : [
2000 {
2001 "type" : "field",
2002 "value" : ["scalars", "fabric_metadata_t.vlan_id"]
2003 },
2004 {
2005 "type" : "field",
2006 "value" : ["vlan_tag", "vlan_id"]
2007 }
2008 ],
2009 "source_info" : {
2010 "filename" : "include/control/filtering.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07002011 "line" : 106,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002012 "column" : 12,
2013 "source_fragment" : "fabric_metadata.vlan_id = hdr.vlan_tag.vlan_id"
2014 }
2015 },
2016 {
2017 "op" : "assign",
2018 "parameters" : [
2019 {
2020 "type" : "field",
2021 "value" : ["scalars", "fabric_metadata_t.vlan_pri"]
2022 },
2023 {
2024 "type" : "field",
2025 "value" : ["vlan_tag", "pri"]
2026 }
2027 ],
2028 "source_info" : {
2029 "filename" : "include/control/filtering.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07002030 "line" : 107,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002031 "column" : 12,
2032 "source_fragment" : "fabric_metadata.vlan_pri = hdr.vlan_tag.pri"
2033 }
2034 },
2035 {
2036 "op" : "assign",
2037 "parameters" : [
2038 {
2039 "type" : "field",
2040 "value" : ["scalars", "fabric_metadata_t.vlan_cfi"]
2041 },
2042 {
2043 "type" : "field",
2044 "value" : ["vlan_tag", "cfi"]
2045 }
2046 ],
2047 "source_info" : {
2048 "filename" : "include/control/filtering.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07002049 "line" : 108,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002050 "column" : 12,
2051 "source_fragment" : "fabric_metadata.vlan_cfi = hdr.vlan_tag.cfi"
2052 }
Yi Tseng1d842672017-11-28 16:06:52 -08002053 }
2054 ]
2055 },
2056 {
2057 "name" : "act_1",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002058 "id" : 29,
Yi Tseng1d842672017-11-28 16:06:52 -08002059 "runtime_data" : [],
2060 "primitives" : [
2061 {
2062 "op" : "assign",
2063 "parameters" : [
2064 {
2065 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002066 "value" : ["scalars", "fabric_metadata_t.mpls_ttl"]
2067 },
2068 {
2069 "type" : "hexstr",
2070 "value" : "0x41"
2071 }
2072 ],
2073 "source_info" : {
2074 "filename" : "include/control/filtering.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07002075 "line" : 115,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002076 "column" : 12,
2077 "source_fragment" : "fabric_metadata.mpls_ttl = DEFAULT_MPLS_TTL + 1"
2078 }
2079 }
2080 ]
2081 },
2082 {
2083 "name" : "act_2",
2084 "id" : 30,
2085 "runtime_data" : [],
2086 "primitives" : [
2087 {
2088 "op" : "assign",
2089 "parameters" : [
2090 {
2091 "type" : "field",
2092 "value" : ["scalars", "tmp"]
Yi Tseng1d842672017-11-28 16:06:52 -08002093 },
2094 {
2095 "type" : "expression",
2096 "value" : {
2097 "type" : "expression",
2098 "value" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002099 "op" : "&",
2100 "left" : {
2101 "type" : "field",
2102 "value" : ["standard_metadata", "egress_spec"]
2103 },
Yi Tseng1d842672017-11-28 16:06:52 -08002104 "right" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002105 "type" : "hexstr",
2106 "value" : "0xffffffff"
Yi Tseng1d842672017-11-28 16:06:52 -08002107 }
2108 }
2109 }
2110 }
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002111 ],
2112 "source_info" : {
2113 "filename" : "include/control/port_counter.p4",
2114 "line" : 31,
2115 "column" : 38,
2116 "source_fragment" : "(bit<32>)standard_metadata.egress_spec"
2117 }
2118 },
Carmelo Casconea5400af2018-07-17 22:11:54 +02002119 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002120 "op" : "count",
Carmelo Casconea5400af2018-07-17 22:11:54 +02002121 "parameters" : [
2122 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002123 "type" : "counter_array",
2124 "value" : "FabricIngress.port_counters_control.egress_port_counter"
Carmelo Casconea5400af2018-07-17 22:11:54 +02002125 },
2126 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002127 "type" : "field",
2128 "value" : ["scalars", "tmp"]
Carmelo Casconea5400af2018-07-17 22:11:54 +02002129 }
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002130 ],
2131 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002132 "filename" : "include/control/port_counter.p4",
2133 "line" : 31,
2134 "column" : 12,
2135 "source_fragment" : "egress_port_counter.count((bit<32>)standard_metadata.egress_spec)"
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002136 }
Carmelo Casconea5400af2018-07-17 22:11:54 +02002137 }
2138 ]
2139 },
2140 {
Yi Tsengbd46d052018-01-22 17:18:16 -08002141 "name" : "act_3",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002142 "id" : 31,
2143 "runtime_data" : [],
2144 "primitives" : [
2145 {
2146 "op" : "assign",
2147 "parameters" : [
2148 {
2149 "type" : "field",
2150 "value" : ["scalars", "tmp_1"]
2151 },
2152 {
2153 "type" : "expression",
2154 "value" : {
2155 "type" : "expression",
2156 "value" : {
2157 "op" : "&",
2158 "left" : {
2159 "type" : "field",
2160 "value" : ["standard_metadata", "ingress_port"]
2161 },
2162 "right" : {
2163 "type" : "hexstr",
2164 "value" : "0xffffffff"
2165 }
2166 }
2167 }
2168 }
2169 ],
2170 "source_info" : {
2171 "filename" : "include/control/port_counter.p4",
2172 "line" : 34,
2173 "column" : 39,
2174 "source_fragment" : "(bit<32>)standard_metadata.ingress_port"
2175 }
2176 },
2177 {
2178 "op" : "count",
2179 "parameters" : [
2180 {
2181 "type" : "counter_array",
2182 "value" : "FabricIngress.port_counters_control.ingress_port_counter"
2183 },
2184 {
2185 "type" : "field",
2186 "value" : ["scalars", "tmp_1"]
2187 }
2188 ],
2189 "source_info" : {
2190 "filename" : "include/control/port_counter.p4",
2191 "line" : 34,
2192 "column" : 12,
2193 "source_fragment" : "ingress_port_counter.count((bit<32>)standard_metadata.ingress_port)"
2194 }
2195 }
2196 ]
2197 },
2198 {
2199 "name" : "nop",
2200 "id" : 32,
2201 "runtime_data" : [],
2202 "primitives" : []
2203 },
2204 {
2205 "name" : "FabricEgress.egress_next.pop_mpls_if_present",
2206 "id" : 33,
2207 "runtime_data" : [],
2208 "primitives" : [
2209 {
2210 "op" : "remove_header",
2211 "parameters" : [
2212 {
2213 "type" : "header",
2214 "value" : "mpls"
2215 }
2216 ],
2217 "source_info" : {
2218 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07002219 "line" : 252,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002220 "column" : 8,
2221 "source_fragment" : "hdr.mpls.setInvalid()"
2222 }
2223 },
2224 {
2225 "op" : "assign",
2226 "parameters" : [
2227 {
2228 "type" : "field",
2229 "value" : ["scalars", "fabric_metadata_t.eth_type"]
2230 },
2231 {
2232 "type" : "field",
2233 "value" : ["scalars", "fabric_metadata_t.ip_eth_type"]
2234 }
2235 ],
2236 "source_info" : {
2237 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07002238 "line" : 254,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002239 "column" : 8,
2240 "source_fragment" : "fabric_metadata.eth_type = fabric_metadata.ip_eth_type"
2241 }
2242 }
2243 ]
2244 },
2245 {
2246 "name" : "FabricEgress.egress_next.set_mpls",
2247 "id" : 34,
2248 "runtime_data" : [],
2249 "primitives" : [
2250 {
2251 "op" : "add_header",
2252 "parameters" : [
2253 {
2254 "type" : "header",
2255 "value" : "mpls"
2256 }
2257 ],
2258 "source_info" : {
2259 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07002260 "line" : 259,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002261 "column" : 8,
2262 "source_fragment" : "hdr.mpls.setValid()"
2263 }
2264 },
2265 {
2266 "op" : "assign",
2267 "parameters" : [
2268 {
2269 "type" : "field",
2270 "value" : ["mpls", "label"]
2271 },
2272 {
2273 "type" : "field",
2274 "value" : ["scalars", "fabric_metadata_t.mpls_label"]
2275 }
2276 ],
2277 "source_info" : {
2278 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07002279 "line" : 260,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002280 "column" : 8,
2281 "source_fragment" : "hdr.mpls.label = fabric_metadata.mpls_label"
2282 }
2283 },
2284 {
2285 "op" : "assign",
2286 "parameters" : [
2287 {
2288 "type" : "field",
2289 "value" : ["mpls", "tc"]
2290 },
2291 {
2292 "type" : "hexstr",
2293 "value" : "0x00"
2294 }
2295 ],
2296 "source_info" : {
2297 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07002298 "line" : 261,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002299 "column" : 8,
2300 "source_fragment" : "hdr.mpls.tc = 3w0"
2301 }
2302 },
2303 {
2304 "op" : "assign",
2305 "parameters" : [
2306 {
2307 "type" : "field",
2308 "value" : ["mpls", "bos"]
2309 },
2310 {
2311 "type" : "hexstr",
2312 "value" : "0x01"
2313 }
2314 ],
2315 "source_info" : {
2316 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07002317 "line" : 262,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002318 "column" : 8,
2319 "source_fragment" : "hdr.mpls.bos = 1w1"
2320 }
2321 },
2322 {
2323 "op" : "assign",
2324 "parameters" : [
2325 {
2326 "type" : "field",
2327 "value" : ["mpls", "ttl"]
2328 },
2329 {
2330 "type" : "field",
2331 "value" : ["scalars", "fabric_metadata_t.mpls_ttl"]
2332 }
2333 ],
2334 "source_info" : {
2335 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07002336 "line" : 263,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002337 "column" : 8,
2338 "source_fragment" : "hdr.mpls.ttl = fabric_metadata.mpls_ttl"
2339 }
2340 },
2341 {
2342 "op" : "assign",
2343 "parameters" : [
2344 {
2345 "type" : "field",
2346 "value" : ["scalars", "fabric_metadata_t.eth_type"]
2347 },
2348 {
2349 "type" : "hexstr",
2350 "value" : "0x8847"
2351 }
2352 ],
2353 "source_info" : {
2354 "filename" : "include/control/../define.p4",
2355 "line" : 108,
2356 "column" : 31,
2357 "source_fragment" : "0x8847; ..."
2358 }
2359 }
2360 ]
2361 },
2362 {
2363 "name" : "FabricEgress.egress_next.push_vlan",
2364 "id" : 35,
2365 "runtime_data" : [],
2366 "primitives" : [
2367 {
2368 "op" : "add_header",
2369 "parameters" : [
2370 {
2371 "type" : "header",
2372 "value" : "vlan_tag"
2373 }
2374 ],
2375 "source_info" : {
2376 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07002377 "line" : 271,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002378 "column" : 8,
2379 "source_fragment" : "hdr.vlan_tag.setValid()"
2380 }
2381 },
2382 {
2383 "op" : "assign",
2384 "parameters" : [
2385 {
2386 "type" : "field",
2387 "value" : ["vlan_tag", "cfi"]
2388 },
2389 {
2390 "type" : "field",
2391 "value" : ["scalars", "fabric_metadata_t.vlan_cfi"]
2392 }
2393 ],
2394 "source_info" : {
2395 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07002396 "line" : 272,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002397 "column" : 8,
2398 "source_fragment" : "hdr.vlan_tag.cfi = fabric_metadata.vlan_cfi"
2399 }
2400 },
2401 {
2402 "op" : "assign",
2403 "parameters" : [
2404 {
2405 "type" : "field",
2406 "value" : ["vlan_tag", "pri"]
2407 },
2408 {
2409 "type" : "field",
2410 "value" : ["scalars", "fabric_metadata_t.vlan_pri"]
2411 }
2412 ],
2413 "source_info" : {
2414 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07002415 "line" : 273,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002416 "column" : 8,
2417 "source_fragment" : "hdr.vlan_tag.pri = fabric_metadata.vlan_pri"
2418 }
2419 },
2420 {
2421 "op" : "assign",
2422 "parameters" : [
2423 {
2424 "type" : "field",
2425 "value" : ["vlan_tag", "eth_type"]
2426 },
2427 {
2428 "type" : "field",
2429 "value" : ["scalars", "fabric_metadata_t.eth_type"]
2430 }
2431 ],
2432 "source_info" : {
2433 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07002434 "line" : 274,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002435 "column" : 8,
2436 "source_fragment" : "hdr.vlan_tag.eth_type = fabric_metadata.eth_type"
2437 }
2438 },
2439 {
2440 "op" : "assign",
2441 "parameters" : [
2442 {
2443 "type" : "field",
2444 "value" : ["vlan_tag", "vlan_id"]
2445 },
2446 {
2447 "type" : "field",
2448 "value" : ["scalars", "fabric_metadata_t.vlan_id"]
2449 }
2450 ],
2451 "source_info" : {
2452 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07002453 "line" : 275,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002454 "column" : 8,
2455 "source_fragment" : "hdr.vlan_tag.vlan_id = fabric_metadata.vlan_id"
2456 }
2457 },
2458 {
2459 "op" : "assign",
2460 "parameters" : [
2461 {
2462 "type" : "field",
2463 "value" : ["ethernet", "eth_type"]
2464 },
2465 {
2466 "type" : "hexstr",
2467 "value" : "0x8100"
2468 }
2469 ],
2470 "source_info" : {
2471 "filename" : "include/control/../define.p4",
2472 "line" : 107,
2473 "column" : 31,
2474 "source_fragment" : "0x8100; ..."
2475 }
2476 }
2477 ]
2478 },
2479 {
2480 "name" : "FabricEgress.egress_next.pop_vlan",
Charles Chancd03f072018-08-31 17:46:37 -07002481 "id" : 36,
Yi Tseng1d842672017-11-28 16:06:52 -08002482 "runtime_data" : [],
2483 "primitives" : [
2484 {
2485 "op" : "assign",
2486 "parameters" : [
2487 {
2488 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002489 "value" : ["ethernet", "eth_type"]
Carmelo Casconea5400af2018-07-17 22:11:54 +02002490 },
2491 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002492 "type" : "field",
2493 "value" : ["scalars", "fabric_metadata_t.eth_type"]
Carmelo Casconea5400af2018-07-17 22:11:54 +02002494 }
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002495 ],
2496 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002497 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07002498 "line" : 286,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002499 "column" : 8,
2500 "source_fragment" : "hdr.ethernet.eth_type = fabric_metadata.eth_type"
2501 }
2502 },
2503 {
2504 "op" : "remove_header",
2505 "parameters" : [
2506 {
2507 "type" : "header",
2508 "value" : "vlan_tag"
2509 }
2510 ],
2511 "source_info" : {
2512 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07002513 "line" : 287,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002514 "column" : 8,
2515 "source_fragment" : "hdr.vlan_tag.setInvalid()"
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002516 }
Carmelo Casconea5400af2018-07-17 22:11:54 +02002517 }
2518 ]
2519 },
2520 {
2521 "name" : "act_4",
Charles Chancd03f072018-08-31 17:46:37 -07002522 "id" : 37,
Carmelo Casconea5400af2018-07-17 22:11:54 +02002523 "runtime_data" : [],
2524 "primitives" : [
2525 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07002526 "op" : "exit",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002527 "parameters" : [],
2528 "source_info" : {
2529 "filename" : "include/control/packetio.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07002530 "line" : 41,
2531 "column" : 12,
2532 "source_fragment" : "exit"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002533 }
Carmelo Casconea5400af2018-07-17 22:11:54 +02002534 }
2535 ]
2536 },
2537 {
2538 "name" : "act_5",
Charles Chancd03f072018-08-31 17:46:37 -07002539 "id" : 38,
Carmelo Casconea5400af2018-07-17 22:11:54 +02002540 "runtime_data" : [],
2541 "primitives" : [
2542 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002543 "op" : "add_header",
2544 "parameters" : [
2545 {
2546 "type" : "header",
2547 "value" : "packet_in"
2548 }
2549 ],
2550 "source_info" : {
2551 "filename" : "include/control/packetio.p4",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07002552 "line" : 44,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002553 "column" : 12,
2554 "source_fragment" : "hdr.packet_in.setValid()"
2555 }
2556 },
2557 {
Carmelo Casconea5400af2018-07-17 22:11:54 +02002558 "op" : "assign",
2559 "parameters" : [
2560 {
2561 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002562 "value" : ["packet_in", "ingress_port"]
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002563 },
2564 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002565 "type" : "field",
2566 "value" : ["standard_metadata", "ingress_port"]
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002567 }
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002568 ],
2569 "source_info" : {
2570 "filename" : "include/control/packetio.p4",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07002571 "line" : 45,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002572 "column" : 12,
2573 "source_fragment" : "hdr.packet_in.ingress_port = standard_metadata.ingress_port"
2574 }
Carmelo Cascone9b607da2019-05-08 14:03:01 -07002575 },
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002576 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07002577 "op" : "exit",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002578 "parameters" : [],
2579 "source_info" : {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07002580 "filename" : "include/control/packetio.p4",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07002581 "line" : 47,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002582 "column" : 12,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07002583 "source_fragment" : "exit"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002584 }
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002585 }
2586 ]
2587 },
2588 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07002589 "name" : "act_6",
2590 "id" : 39,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002591 "runtime_data" : [],
2592 "primitives" : [
2593 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07002594 "op" : "mark_to_drop",
2595 "parameters" : [
2596 {
2597 "type" : "header",
2598 "value" : "standard_metadata"
2599 }
2600 ],
2601 "source_info" : {
2602 "filename" : "include/control/next.p4",
2603 "line" : 308,
2604 "column" : 12,
2605 "source_fragment" : "mark_to_drop(standard_metadata)"
2606 }
2607 }
2608 ]
2609 },
2610 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07002611 "name" : "act_7",
2612 "id" : 40,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07002613 "runtime_data" : [],
2614 "primitives" : [
2615 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002616 "op" : "assign",
2617 "parameters" : [
2618 {
2619 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002620 "value" : ["scalars", "egress_next_tmp"]
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002621 },
2622 {
2623 "type" : "expression",
2624 "value" : {
2625 "type" : "expression",
2626 "value" : {
2627 "op" : "b2d",
2628 "left" : null,
2629 "right" : {
2630 "type" : "bool",
2631 "value" : true
2632 }
2633 }
2634 }
2635 }
2636 ]
2637 }
2638 ]
2639 },
2640 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07002641 "name" : "act_8",
2642 "id" : 41,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002643 "runtime_data" : [],
2644 "primitives" : [
2645 {
2646 "op" : "assign",
2647 "parameters" : [
2648 {
2649 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002650 "value" : ["scalars", "egress_next_tmp"]
Carmelo Casconea5400af2018-07-17 22:11:54 +02002651 },
2652 {
2653 "type" : "expression",
2654 "value" : {
2655 "type" : "expression",
2656 "value" : {
2657 "op" : "b2d",
2658 "left" : null,
2659 "right" : {
2660 "type" : "bool",
2661 "value" : false
2662 }
2663 }
2664 }
2665 }
2666 ]
2667 }
2668 ]
2669 },
2670 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07002671 "name" : "act_9",
2672 "id" : 42,
Carmelo Casconea5400af2018-07-17 22:11:54 +02002673 "runtime_data" : [],
2674 "primitives" : [
2675 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07002676 "op" : "mark_to_drop",
2677 "parameters" : [
2678 {
2679 "type" : "header",
2680 "value" : "standard_metadata"
2681 }
2682 ],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002683 "source_info" : {
2684 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07002685 "line" : 327,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002686 "column" : 35,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07002687 "source_fragment" : "mark_to_drop(standard_metadata)"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002688 }
Carmelo Casconea5400af2018-07-17 22:11:54 +02002689 }
2690 ]
2691 },
2692 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07002693 "name" : "act_10",
2694 "id" : 43,
Carmelo Casconea5400af2018-07-17 22:11:54 +02002695 "runtime_data" : [],
2696 "primitives" : [
2697 {
2698 "op" : "assign",
2699 "parameters" : [
2700 {
2701 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002702 "value" : ["mpls", "ttl"]
Carmelo Casconea5400af2018-07-17 22:11:54 +02002703 },
2704 {
2705 "type" : "expression",
2706 "value" : {
2707 "type" : "expression",
2708 "value" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002709 "op" : "&",
2710 "left" : {
2711 "type" : "expression",
2712 "value" : {
2713 "op" : "+",
2714 "left" : {
2715 "type" : "field",
2716 "value" : ["mpls", "ttl"]
2717 },
2718 "right" : {
2719 "type" : "hexstr",
2720 "value" : "0xff"
2721 }
2722 }
2723 },
Carmelo Casconea5400af2018-07-17 22:11:54 +02002724 "right" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002725 "type" : "hexstr",
2726 "value" : "0xff"
Carmelo Casconea5400af2018-07-17 22:11:54 +02002727 }
2728 }
2729 }
2730 }
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002731 ],
2732 "source_info" : {
2733 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07002734 "line" : 326,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002735 "column" : 12,
2736 "source_fragment" : "hdr.mpls.ttl = hdr.mpls.ttl - 1"
2737 }
Carmelo Casconea5400af2018-07-17 22:11:54 +02002738 }
2739 ]
2740 },
2741 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07002742 "name" : "act_11",
2743 "id" : 44,
Carmelo Casconea5400af2018-07-17 22:11:54 +02002744 "runtime_data" : [],
2745 "primitives" : [
2746 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07002747 "op" : "mark_to_drop",
2748 "parameters" : [
2749 {
2750 "type" : "header",
2751 "value" : "standard_metadata"
2752 }
2753 ],
Carmelo Casconea5400af2018-07-17 22:11:54 +02002754 "source_info" : {
2755 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07002756 "line" : 331,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002757 "column" : 39,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07002758 "source_fragment" : "mark_to_drop(standard_metadata)"
Carmelo Casconea5400af2018-07-17 22:11:54 +02002759 }
2760 }
2761 ]
2762 },
2763 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07002764 "name" : "act_12",
2765 "id" : 45,
Carmelo Casconea5400af2018-07-17 22:11:54 +02002766 "runtime_data" : [],
2767 "primitives" : [
2768 {
2769 "op" : "assign",
2770 "parameters" : [
2771 {
2772 "type" : "field",
Yi Tseng1d842672017-11-28 16:06:52 -08002773 "value" : ["ipv4", "ttl"]
2774 },
2775 {
2776 "type" : "expression",
2777 "value" : {
2778 "type" : "expression",
2779 "value" : {
2780 "op" : "&",
2781 "left" : {
2782 "type" : "expression",
2783 "value" : {
2784 "op" : "+",
2785 "left" : {
2786 "type" : "field",
2787 "value" : ["ipv4", "ttl"]
2788 },
2789 "right" : {
2790 "type" : "hexstr",
2791 "value" : "0xff"
2792 }
2793 }
2794 },
2795 "right" : {
2796 "type" : "hexstr",
2797 "value" : "0xff"
2798 }
2799 }
2800 }
2801 }
2802 ],
2803 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002804 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07002805 "line" : 330,
Carmelo Casconea5400af2018-07-17 22:11:54 +02002806 "column" : 16,
Yi Tseng1d842672017-11-28 16:06:52 -08002807 "source_fragment" : "hdr.ipv4.ttl = hdr.ipv4.ttl - 1"
2808 }
2809 }
2810 ]
Yi Tsengbe342052017-11-03 10:21:23 -07002811 }
2812 ],
2813 "pipelines" : [
2814 {
2815 "name" : "ingress",
2816 "id" : 0,
2817 "source_info" : {
2818 "filename" : "fabric.p4",
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07002819 "line" : 46,
Yi Tsengbe342052017-11-03 10:21:23 -07002820 "column" : 8,
2821 "source_fragment" : "FabricIngress"
2822 },
2823 "init_table" : "node_2",
2824 "tables" : [
2825 {
2826 "name" : "tbl_act",
2827 "id" : 0,
Carmelo Cascone3032b872019-04-13 01:23:54 -07002828 "source_info" : {
2829 "filename" : "include/control/packetio.p4",
2830 "line" : 25,
2831 "column" : 42,
2832 "source_fragment" : "= hdr.packet_out.egress_port; ..."
2833 },
Yi Tsengbe342052017-11-03 10:21:23 -07002834 "key" : [],
2835 "match_type" : "exact",
2836 "type" : "simple",
2837 "max_size" : 1024,
2838 "with_counters" : false,
2839 "support_timeout" : false,
2840 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002841 "action_ids" : [27],
Yi Tsengbe342052017-11-03 10:21:23 -07002842 "actions" : ["act"],
Carmelo Cascone9b607da2019-05-08 14:03:01 -07002843 "base_default_next" : "node_4",
Yi Tsengbe342052017-11-03 10:21:23 -07002844 "next_tables" : {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07002845 "act" : "node_4"
Yi Tsengbe342052017-11-03 10:21:23 -07002846 },
2847 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002848 "action_id" : 27,
2849 "action_const" : true,
2850 "action_data" : [],
2851 "action_entry_const" : true
2852 }
2853 },
2854 {
2855 "name" : "tbl_act_0",
2856 "id" : 1,
Carmelo Cascone3032b872019-04-13 01:23:54 -07002857 "source_info" : {
2858 "filename" : "include/control/filtering.p4",
2859 "line" : 105,
2860 "column" : 37,
2861 "source_fragment" : "= hdr.vlan_tag.eth_type; ..."
2862 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002863 "key" : [],
2864 "match_type" : "exact",
2865 "type" : "simple",
2866 "max_size" : 1024,
2867 "with_counters" : false,
2868 "support_timeout" : false,
2869 "direct_meters" : null,
2870 "action_ids" : [28],
2871 "actions" : ["act_0"],
2872 "base_default_next" : "node_6",
2873 "next_tables" : {
2874 "act_0" : "node_6"
2875 },
2876 "default_entry" : {
2877 "action_id" : 28,
2878 "action_const" : true,
2879 "action_data" : [],
2880 "action_entry_const" : true
2881 }
2882 },
2883 {
2884 "name" : "tbl_act_1",
2885 "id" : 2,
Carmelo Cascone3032b872019-04-13 01:23:54 -07002886 "source_info" : {
2887 "filename" : "include/control/filtering.p4",
2888 "line" : 115,
2889 "column" : 37,
2890 "source_fragment" : "="
2891 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002892 "key" : [],
2893 "match_type" : "exact",
2894 "type" : "simple",
2895 "max_size" : 1024,
2896 "with_counters" : false,
2897 "support_timeout" : false,
2898 "direct_meters" : null,
2899 "action_ids" : [29],
2900 "actions" : ["act_1"],
2901 "base_default_next" : "FabricIngress.filtering.ingress_port_vlan",
2902 "next_tables" : {
2903 "act_1" : "FabricIngress.filtering.ingress_port_vlan"
2904 },
2905 "default_entry" : {
2906 "action_id" : 29,
Yi Tsengbe342052017-11-03 10:21:23 -07002907 "action_const" : true,
2908 "action_data" : [],
2909 "action_entry_const" : true
2910 }
2911 },
2912 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002913 "name" : "FabricIngress.filtering.ingress_port_vlan",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002914 "id" : 3,
Yi Tsengbe342052017-11-03 10:21:23 -07002915 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002916 "filename" : "include/control/filtering.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002917 "line" : 51,
Yi Tsengbe342052017-11-03 10:21:23 -07002918 "column" : 10,
2919 "source_fragment" : "ingress_port_vlan"
2920 },
2921 "key" : [
2922 {
2923 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002924 "name" : "ig_port",
Yi Tsengbe342052017-11-03 10:21:23 -07002925 "target" : ["standard_metadata", "ingress_port"],
2926 "mask" : null
2927 },
2928 {
2929 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002930 "name" : "vlan_is_valid",
Yi Tsengbe342052017-11-03 10:21:23 -07002931 "target" : ["vlan_tag", "$valid$"],
2932 "mask" : null
2933 },
2934 {
2935 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002936 "name" : "vlan_id",
Yi Tsengbe342052017-11-03 10:21:23 -07002937 "target" : ["vlan_tag", "vlan_id"],
2938 "mask" : null
2939 }
2940 ],
2941 "match_type" : "ternary",
2942 "type" : "simple",
2943 "max_size" : 1024,
Yi Tsengbd46d052018-01-22 17:18:16 -08002944 "with_counters" : true,
Yi Tsengbe342052017-11-03 10:21:23 -07002945 "support_timeout" : false,
2946 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002947 "action_ids" : [7, 8, 9],
2948 "actions" : ["FabricIngress.filtering.deny", "FabricIngress.filtering.permit", "FabricIngress.filtering.permit_with_internal_vlan"],
2949 "base_default_next" : "FabricIngress.filtering.fwd_classifier",
Yi Tsengbe342052017-11-03 10:21:23 -07002950 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002951 "FabricIngress.filtering.deny" : "FabricIngress.filtering.fwd_classifier",
2952 "FabricIngress.filtering.permit" : "FabricIngress.filtering.fwd_classifier",
2953 "FabricIngress.filtering.permit_with_internal_vlan" : "FabricIngress.filtering.fwd_classifier"
Yi Tsengbe342052017-11-03 10:21:23 -07002954 },
2955 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002956 "action_id" : 7,
Yi Tsengbe342052017-11-03 10:21:23 -07002957 "action_const" : true,
2958 "action_data" : [],
2959 "action_entry_const" : true
2960 }
2961 },
2962 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002963 "name" : "FabricIngress.filtering.fwd_classifier",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002964 "id" : 4,
Yi Tsengbe342052017-11-03 10:21:23 -07002965 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002966 "filename" : "include/control/filtering.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07002967 "line" : 87,
Yi Tsengbe342052017-11-03 10:21:23 -07002968 "column" : 10,
2969 "source_fragment" : "fwd_classifier"
2970 },
2971 "key" : [
2972 {
2973 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002974 "name" : "ig_port",
Yi Tsengbe342052017-11-03 10:21:23 -07002975 "target" : ["standard_metadata", "ingress_port"],
2976 "mask" : null
2977 },
2978 {
Charles Chan384aea22018-08-23 22:08:02 -07002979 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002980 "name" : "eth_dst",
Yi Tsengbe342052017-11-03 10:21:23 -07002981 "target" : ["ethernet", "dst_addr"],
2982 "mask" : null
2983 },
2984 {
2985 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002986 "name" : "eth_type",
2987 "target" : ["scalars", "fabric_metadata_t.eth_type"],
Yi Tsengbe342052017-11-03 10:21:23 -07002988 "mask" : null
2989 }
2990 ],
Charles Chan384aea22018-08-23 22:08:02 -07002991 "match_type" : "ternary",
Yi Tsengbe342052017-11-03 10:21:23 -07002992 "type" : "simple",
2993 "max_size" : 1024,
Yi Tsengbd46d052018-01-22 17:18:16 -08002994 "with_counters" : true,
Yi Tsengbe342052017-11-03 10:21:23 -07002995 "support_timeout" : false,
2996 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002997 "action_ids" : [10],
Yi Tseng27b9bc02018-04-12 14:52:40 +08002998 "actions" : ["FabricIngress.filtering.set_forwarding_type"],
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002999 "base_default_next" : "node_10",
Yi Tsengbe342052017-11-03 10:21:23 -07003000 "next_tables" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003001 "FabricIngress.filtering.set_forwarding_type" : "node_10"
Yi Tsengbe342052017-11-03 10:21:23 -07003002 },
3003 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003004 "action_id" : 10,
Yi Tsengbe342052017-11-03 10:21:23 -07003005 "action_const" : true,
3006 "action_data" : ["0x0"],
3007 "action_entry_const" : true
3008 }
3009 },
3010 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003011 "name" : "FabricIngress.forwarding.bridging",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003012 "id" : 5,
Yi Tsengbe342052017-11-03 10:21:23 -07003013 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003014 "filename" : "include/control/forwarding.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07003015 "line" : 46,
Yi Tsengbe342052017-11-03 10:21:23 -07003016 "column" : 10,
3017 "source_fragment" : "bridging"
3018 },
3019 "key" : [
3020 {
3021 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003022 "name" : "vlan_id",
3023 "target" : ["scalars", "fabric_metadata_t.vlan_id"],
Yi Tsengbe342052017-11-03 10:21:23 -07003024 "mask" : null
3025 },
3026 {
3027 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003028 "name" : "eth_dst",
Yi Tsengbe342052017-11-03 10:21:23 -07003029 "target" : ["ethernet", "dst_addr"],
3030 "mask" : null
3031 }
3032 ],
3033 "match_type" : "ternary",
3034 "type" : "simple",
3035 "max_size" : 1024,
Yi Tsengbd46d052018-01-22 17:18:16 -08003036 "with_counters" : true,
Yi Tsengbe342052017-11-03 10:21:23 -07003037 "support_timeout" : false,
3038 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003039 "action_ids" : [11, 0],
3040 "actions" : ["FabricIngress.forwarding.set_next_id_bridging", "nop"],
3041 "base_default_next" : "FabricIngress.acl.acl",
Yi Tseng1d842672017-11-28 16:06:52 -08003042 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003043 "FabricIngress.forwarding.set_next_id_bridging" : "FabricIngress.acl.acl",
3044 "nop" : "FabricIngress.acl.acl"
Yi Tseng1d842672017-11-28 16:06:52 -08003045 },
3046 "default_entry" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003047 "action_id" : 0,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003048 "action_const" : true,
Yi Tseng1d842672017-11-28 16:06:52 -08003049 "action_data" : [],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003050 "action_entry_const" : true
Yi Tseng1d842672017-11-28 16:06:52 -08003051 }
3052 },
3053 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003054 "name" : "FabricIngress.forwarding.mpls",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003055 "id" : 6,
Yi Tseng1d842672017-11-28 16:06:52 -08003056 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003057 "filename" : "include/control/forwarding.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07003058 "line" : 71,
Yi Tseng1d842672017-11-28 16:06:52 -08003059 "column" : 10,
3060 "source_fragment" : "mpls"
3061 },
3062 "key" : [
3063 {
3064 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003065 "name" : "mpls_label",
3066 "target" : ["scalars", "fabric_metadata_t.mpls_label"],
Yi Tseng1d842672017-11-28 16:06:52 -08003067 "mask" : null
3068 }
3069 ],
3070 "match_type" : "exact",
3071 "type" : "simple",
3072 "max_size" : 1024,
Yi Tsengbd46d052018-01-22 17:18:16 -08003073 "with_counters" : true,
Yi Tseng1d842672017-11-28 16:06:52 -08003074 "support_timeout" : false,
3075 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003076 "action_ids" : [12, 1],
3077 "actions" : ["FabricIngress.forwarding.pop_mpls_and_next", "nop"],
3078 "base_default_next" : "FabricIngress.acl.acl",
Yi Tseng1d842672017-11-28 16:06:52 -08003079 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003080 "FabricIngress.forwarding.pop_mpls_and_next" : "FabricIngress.acl.acl",
3081 "nop" : "FabricIngress.acl.acl"
Yi Tseng1d842672017-11-28 16:06:52 -08003082 },
3083 "default_entry" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003084 "action_id" : 1,
Yi Tseng1d842672017-11-28 16:06:52 -08003085 "action_const" : true,
3086 "action_data" : [],
3087 "action_entry_const" : true
3088 }
3089 },
3090 {
Charles Chan384aea22018-08-23 22:08:02 -07003091 "name" : "FabricIngress.forwarding.routing_v4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003092 "id" : 7,
Yi Tseng1d842672017-11-28 16:06:52 -08003093 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003094 "filename" : "include/control/forwarding.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07003095 "line" : 101,
Yi Tseng1d842672017-11-28 16:06:52 -08003096 "column" : 10,
Charles Chan384aea22018-08-23 22:08:02 -07003097 "source_fragment" : "routing_v4"
Yi Tseng1d842672017-11-28 16:06:52 -08003098 },
3099 "key" : [
3100 {
3101 "match_type" : "lpm",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003102 "name" : "ipv4_dst",
Yi Tseng1d842672017-11-28 16:06:52 -08003103 "target" : ["ipv4", "dst_addr"],
3104 "mask" : null
3105 }
3106 ],
3107 "match_type" : "lpm",
3108 "type" : "simple",
3109 "max_size" : 1024,
Yi Tsengbd46d052018-01-22 17:18:16 -08003110 "with_counters" : true,
Yi Tseng1d842672017-11-28 16:06:52 -08003111 "support_timeout" : false,
3112 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003113 "action_ids" : [13, 14, 2],
3114 "actions" : ["FabricIngress.forwarding.set_next_id_routing_v4", "FabricIngress.forwarding.nop_routing_v4", "nop"],
3115 "base_default_next" : "FabricIngress.acl.acl",
Yi Tsengbe342052017-11-03 10:21:23 -07003116 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003117 "FabricIngress.forwarding.set_next_id_routing_v4" : "FabricIngress.acl.acl",
3118 "FabricIngress.forwarding.nop_routing_v4" : "FabricIngress.acl.acl",
3119 "nop" : "FabricIngress.acl.acl"
Yi Tsengbe342052017-11-03 10:21:23 -07003120 },
3121 "default_entry" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003122 "action_id" : 2,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003123 "action_const" : true,
Yi Tsengbe342052017-11-03 10:21:23 -07003124 "action_data" : [],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003125 "action_entry_const" : true
Yi Tsengbe342052017-11-03 10:21:23 -07003126 }
3127 },
3128 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003129 "name" : "FabricIngress.acl.acl",
3130 "id" : 8,
Yi Tsengbe342052017-11-03 10:21:23 -07003131 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003132 "filename" : "include/control/acl.p4",
3133 "line" : 60,
Yi Tsengbe342052017-11-03 10:21:23 -07003134 "column" : 10,
Yi Tsengbe342052017-11-03 10:21:23 -07003135 "source_fragment" : "acl"
3136 },
3137 "key" : [
3138 {
3139 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003140 "name" : "ig_port",
Yi Tsengbe342052017-11-03 10:21:23 -07003141 "target" : ["standard_metadata", "ingress_port"],
3142 "mask" : null
3143 },
3144 {
3145 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003146 "name" : "ip_proto",
Yi Tsengbe342052017-11-03 10:21:23 -07003147 "target" : ["scalars", "fabric_metadata_t.ip_proto"],
3148 "mask" : null
3149 },
3150 {
3151 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003152 "name" : "l4_sport",
3153 "target" : ["scalars", "fabric_metadata_t.l4_sport"],
Yi Tseng1d842672017-11-28 16:06:52 -08003154 "mask" : null
3155 },
3156 {
3157 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003158 "name" : "l4_dport",
3159 "target" : ["scalars", "fabric_metadata_t.l4_dport"],
Yi Tseng1d842672017-11-28 16:06:52 -08003160 "mask" : null
3161 },
3162 {
3163 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003164 "name" : "eth_src",
Yi Tsengbe342052017-11-03 10:21:23 -07003165 "target" : ["ethernet", "dst_addr"],
3166 "mask" : null
3167 },
3168 {
3169 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003170 "name" : "eth_dst",
Yi Tsengbe342052017-11-03 10:21:23 -07003171 "target" : ["ethernet", "src_addr"],
3172 "mask" : null
3173 },
3174 {
3175 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003176 "name" : "vlan_id",
Yi Tsengbe342052017-11-03 10:21:23 -07003177 "target" : ["vlan_tag", "vlan_id"],
3178 "mask" : null
3179 },
3180 {
3181 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003182 "name" : "eth_type",
3183 "target" : ["scalars", "fabric_metadata_t.eth_type"],
Yi Tseng8235a1a2018-07-24 20:57:28 +08003184 "mask" : null
3185 },
3186 {
3187 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003188 "name" : "ipv4_src",
Yi Tsengbe342052017-11-03 10:21:23 -07003189 "target" : ["ipv4", "src_addr"],
3190 "mask" : null
3191 },
3192 {
3193 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003194 "name" : "ipv4_dst",
Yi Tsengbe342052017-11-03 10:21:23 -07003195 "target" : ["ipv4", "dst_addr"],
3196 "mask" : null
3197 },
3198 {
3199 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003200 "name" : "icmp_type",
Yi Tsengbe342052017-11-03 10:21:23 -07003201 "target" : ["icmp", "icmp_type"],
3202 "mask" : null
3203 },
3204 {
3205 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003206 "name" : "icmp_code",
Yi Tsengbe342052017-11-03 10:21:23 -07003207 "target" : ["icmp", "icmp_code"],
3208 "mask" : null
3209 }
3210 ],
3211 "match_type" : "ternary",
3212 "type" : "simple",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07003213 "max_size" : 1024,
Yi Tsengbd46d052018-01-22 17:18:16 -08003214 "with_counters" : true,
Yi Tsengbe342052017-11-03 10:21:23 -07003215 "support_timeout" : false,
3216 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003217 "action_ids" : [15, 16, 17, 18, 19],
Daniele Moro01ca2ab2019-06-25 11:48:48 -07003218 "actions" : ["FabricIngress.acl.set_next_id_acl", "FabricIngress.acl.punt_to_cpu", "FabricIngress.acl.set_clone_session_id", "FabricIngress.acl.drop", "FabricIngress.acl.nop_acl"],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003219 "base_default_next" : "node_18",
Yi Tsengbe342052017-11-03 10:21:23 -07003220 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003221 "FabricIngress.acl.set_next_id_acl" : "node_18",
3222 "FabricIngress.acl.punt_to_cpu" : "node_18",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07003223 "FabricIngress.acl.set_clone_session_id" : "node_18",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003224 "FabricIngress.acl.drop" : "node_18",
3225 "FabricIngress.acl.nop_acl" : "node_18"
Yi Tsengbe342052017-11-03 10:21:23 -07003226 },
3227 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003228 "action_id" : 19,
Yi Tsengbe342052017-11-03 10:21:23 -07003229 "action_const" : true,
3230 "action_data" : [],
3231 "action_entry_const" : true
3232 }
3233 },
3234 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003235 "name" : "FabricIngress.next.xconnect",
3236 "id" : 9,
3237 "source_info" : {
3238 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07003239 "line" : 104,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003240 "column" : 10,
3241 "source_fragment" : "xconnect"
3242 },
3243 "key" : [
3244 {
3245 "match_type" : "exact",
3246 "name" : "ig_port",
3247 "target" : ["standard_metadata", "ingress_port"],
3248 "mask" : null
3249 },
3250 {
3251 "match_type" : "exact",
3252 "name" : "next_id",
3253 "target" : ["scalars", "fabric_metadata_t.next_id"],
3254 "mask" : null
3255 }
3256 ],
3257 "match_type" : "exact",
3258 "type" : "simple",
3259 "max_size" : 1024,
3260 "with_counters" : true,
3261 "support_timeout" : false,
3262 "direct_meters" : null,
3263 "action_ids" : [21, 22, 4],
3264 "actions" : ["FabricIngress.next.output_xconnect", "FabricIngress.next.set_next_id_xconnect", "nop"],
3265 "base_default_next" : "FabricIngress.next.hashed",
3266 "next_tables" : {
3267 "FabricIngress.next.output_xconnect" : "FabricIngress.next.hashed",
3268 "FabricIngress.next.set_next_id_xconnect" : "FabricIngress.next.hashed",
3269 "nop" : "FabricIngress.next.hashed"
3270 },
3271 "default_entry" : {
3272 "action_id" : 4,
3273 "action_const" : true,
3274 "action_data" : [],
3275 "action_entry_const" : true
3276 }
3277 },
3278 {
3279 "name" : "FabricIngress.next.hashed",
3280 "id" : 10,
3281 "source_info" : {
3282 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07003283 "line" : 184,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003284 "column" : 10,
3285 "source_fragment" : "hashed"
3286 },
3287 "key" : [
3288 {
3289 "match_type" : "exact",
3290 "name" : "next_id",
3291 "target" : ["scalars", "fabric_metadata_t.next_id"],
3292 "mask" : null
3293 }
3294 ],
3295 "match_type" : "exact",
3296 "type" : "indirect_ws",
3297 "action_profile" : "FabricIngress.next.hashed_selector",
3298 "max_size" : 1024,
3299 "with_counters" : true,
3300 "support_timeout" : false,
3301 "direct_meters" : null,
3302 "action_ids" : [23, 24, 25, 5],
3303 "actions" : ["FabricIngress.next.output_hashed", "FabricIngress.next.routing_hashed", "FabricIngress.next.mpls_routing_hashed", "nop"],
3304 "base_default_next" : "FabricIngress.next.multicast",
3305 "next_tables" : {
3306 "FabricIngress.next.output_hashed" : "FabricIngress.next.multicast",
3307 "FabricIngress.next.routing_hashed" : "FabricIngress.next.multicast",
3308 "FabricIngress.next.mpls_routing_hashed" : "FabricIngress.next.multicast",
3309 "nop" : "FabricIngress.next.multicast"
3310 }
3311 },
3312 {
3313 "name" : "FabricIngress.next.multicast",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003314 "id" : 11,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003315 "source_info" : {
3316 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07003317 "line" : 218,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003318 "column" : 10,
3319 "source_fragment" : "multicast"
3320 },
3321 "key" : [
3322 {
3323 "match_type" : "exact",
3324 "name" : "next_id",
3325 "target" : ["scalars", "fabric_metadata_t.next_id"],
3326 "mask" : null
3327 }
3328 ],
3329 "match_type" : "exact",
3330 "type" : "simple",
3331 "max_size" : 1024,
3332 "with_counters" : true,
3333 "support_timeout" : false,
3334 "direct_meters" : null,
3335 "action_ids" : [26, 6],
3336 "actions" : ["FabricIngress.next.set_mcast_group_id", "nop"],
3337 "base_default_next" : "FabricIngress.next.next_vlan",
3338 "next_tables" : {
3339 "FabricIngress.next.set_mcast_group_id" : "FabricIngress.next.next_vlan",
3340 "nop" : "FabricIngress.next.next_vlan"
3341 },
3342 "default_entry" : {
3343 "action_id" : 6,
3344 "action_const" : true,
3345 "action_data" : [],
3346 "action_entry_const" : true
3347 }
3348 },
3349 {
3350 "name" : "FabricIngress.next.next_vlan",
3351 "id" : 12,
3352 "source_info" : {
3353 "filename" : "include/control/next.p4",
3354 "line" : 74,
3355 "column" : 10,
3356 "source_fragment" : "next_vlan"
3357 },
3358 "key" : [
3359 {
3360 "match_type" : "exact",
3361 "name" : "next_id",
3362 "target" : ["scalars", "fabric_metadata_t.next_id"],
3363 "mask" : null
3364 }
3365 ],
3366 "match_type" : "exact",
3367 "type" : "simple",
3368 "max_size" : 1024,
3369 "with_counters" : true,
3370 "support_timeout" : false,
3371 "direct_meters" : null,
3372 "action_ids" : [20, 3],
3373 "actions" : ["FabricIngress.next.set_vlan", "nop"],
3374 "base_default_next" : "node_23",
3375 "next_tables" : {
3376 "FabricIngress.next.set_vlan" : "node_23",
3377 "nop" : "node_23"
3378 },
3379 "default_entry" : {
3380 "action_id" : 3,
3381 "action_const" : true,
3382 "action_data" : [],
3383 "action_entry_const" : true
3384 }
3385 },
3386 {
3387 "name" : "tbl_act_2",
3388 "id" : 13,
Carmelo Cascone3032b872019-04-13 01:23:54 -07003389 "source_info" : {
3390 "filename" : "include/control/port_counter.p4",
3391 "line" : 31,
3392 "column" : 12,
3393 "source_fragment" : "egress_port_counter.count((bit<32>)standard_metadata.egress_spec)"
3394 },
Carmelo Casconea5400af2018-07-17 22:11:54 +02003395 "key" : [],
3396 "match_type" : "exact",
3397 "type" : "simple",
3398 "max_size" : 1024,
3399 "with_counters" : false,
3400 "support_timeout" : false,
3401 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003402 "action_ids" : [30],
3403 "actions" : ["act_2"],
3404 "base_default_next" : "node_25",
Carmelo Casconea5400af2018-07-17 22:11:54 +02003405 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003406 "act_2" : "node_25"
Carmelo Casconea5400af2018-07-17 22:11:54 +02003407 },
3408 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003409 "action_id" : 30,
Carmelo Casconea5400af2018-07-17 22:11:54 +02003410 "action_const" : true,
3411 "action_data" : [],
3412 "action_entry_const" : true
3413 }
3414 },
3415 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003416 "name" : "tbl_act_3",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003417 "id" : 14,
Carmelo Cascone3032b872019-04-13 01:23:54 -07003418 "source_info" : {
3419 "filename" : "include/control/port_counter.p4",
3420 "line" : 34,
3421 "column" : 12,
3422 "source_fragment" : "ingress_port_counter.count((bit<32>)standard_metadata.ingress_port)"
3423 },
Carmelo Casconea5400af2018-07-17 22:11:54 +02003424 "key" : [],
3425 "match_type" : "exact",
3426 "type" : "simple",
3427 "max_size" : 1024,
3428 "with_counters" : false,
3429 "support_timeout" : false,
3430 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003431 "action_ids" : [31],
3432 "actions" : ["act_3"],
Carmelo Casconea5400af2018-07-17 22:11:54 +02003433 "base_default_next" : null,
Esin Karaman971fb7f2017-12-28 13:44:52 +00003434 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003435 "act_3" : null
Yi Tseng27b9bc02018-04-12 14:52:40 +08003436 },
3437 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003438 "action_id" : 31,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003439 "action_const" : true,
3440 "action_data" : [],
3441 "action_entry_const" : true
3442 }
Yi Tsengbe342052017-11-03 10:21:23 -07003443 }
3444 ],
3445 "action_profiles" : [
3446 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003447 "name" : "FabricIngress.next.hashed_selector",
Yi Tsengbe342052017-11-03 10:21:23 -07003448 "id" : 0,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07003449 "source_info" : {
3450 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07003451 "line" : 165,
3452 "column" : 57,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003453 "source_fragment" : "hashed_selector"
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07003454 },
Carmelo Cascone70e816b2019-03-19 16:15:47 -07003455 "max_size" : 1024,
Yi Tsengbe342052017-11-03 10:21:23 -07003456 "selector" : {
3457 "algo" : "crc16",
3458 "input" : [
3459 {
3460 "type" : "field",
Yi Tseng3d3956d2018-01-31 17:28:05 -08003461 "value" : ["ipv4", "dst_addr"]
Yi Tsengbe342052017-11-03 10:21:23 -07003462 },
3463 {
3464 "type" : "field",
Yi Tseng3d3956d2018-01-31 17:28:05 -08003465 "value" : ["ipv4", "src_addr"]
Yi Tsengbe342052017-11-03 10:21:23 -07003466 },
3467 {
3468 "type" : "field",
Yi Tseng1d842672017-11-28 16:06:52 -08003469 "value" : ["scalars", "fabric_metadata_t.ip_proto"]
Yi Tsengbe342052017-11-03 10:21:23 -07003470 },
3471 {
3472 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003473 "value" : ["scalars", "fabric_metadata_t.l4_sport"]
Yi Tsengbe342052017-11-03 10:21:23 -07003474 },
3475 {
3476 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003477 "value" : ["scalars", "fabric_metadata_t.l4_dport"]
Yi Tsengbe342052017-11-03 10:21:23 -07003478 }
3479 ]
3480 }
3481 }
3482 ],
3483 "conditionals" : [
3484 {
3485 "name" : "node_2",
3486 "id" : 0,
3487 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003488 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003489 "line" : 24,
Yi Tsengbe342052017-11-03 10:21:23 -07003490 "column" : 12,
3491 "source_fragment" : "hdr.packet_out.isValid()"
3492 },
3493 "expression" : {
3494 "type" : "expression",
3495 "value" : {
Yi Tsengbd46d052018-01-22 17:18:16 -08003496 "op" : "d2b",
3497 "left" : null,
3498 "right" : {
Yi Tsengbe342052017-11-03 10:21:23 -07003499 "type" : "field",
3500 "value" : ["packet_out", "$valid$"]
Yi Tsengbe342052017-11-03 10:21:23 -07003501 }
3502 }
3503 },
3504 "true_next" : "tbl_act",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003505 "false_next" : "node_4"
Yi Tsengbe342052017-11-03 10:21:23 -07003506 },
3507 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003508 "name" : "node_4",
Yi Tsengbe342052017-11-03 10:21:23 -07003509 "id" : 1,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003510 "source_info" : {
3511 "filename" : "include/control/filtering.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07003512 "line" : 104,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003513 "column" : 12,
3514 "source_fragment" : "hdr.vlan_tag.isValid()"
3515 },
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003516 "expression" : {
3517 "type" : "expression",
3518 "value" : {
3519 "op" : "d2b",
3520 "left" : null,
3521 "right" : {
3522 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003523 "value" : ["vlan_tag", "$valid$"]
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003524 }
3525 }
3526 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003527 "true_next" : "tbl_act_0",
3528 "false_next" : "node_6"
3529 },
3530 {
3531 "name" : "node_6",
3532 "id" : 2,
3533 "source_info" : {
3534 "filename" : "include/control/filtering.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07003535 "line" : 110,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003536 "column" : 12,
3537 "source_fragment" : "!hdr.mpls.isValid()"
3538 },
3539 "expression" : {
3540 "type" : "expression",
3541 "value" : {
3542 "op" : "not",
3543 "left" : null,
3544 "right" : {
3545 "type" : "expression",
3546 "value" : {
3547 "op" : "d2b",
3548 "left" : null,
3549 "right" : {
3550 "type" : "field",
3551 "value" : ["mpls", "$valid$"]
3552 }
3553 }
3554 }
3555 }
3556 },
3557 "true_next" : "tbl_act_1",
3558 "false_next" : "FabricIngress.filtering.ingress_port_vlan"
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003559 },
3560 {
3561 "name" : "node_10",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003562 "id" : 3,
3563 "source_info" : {
3564 "filename" : "fabric.p4",
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07003565 "line" : 74,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003566 "column" : 12,
3567 "source_fragment" : "fabric_metadata.skip_forwarding == false"
3568 },
3569 "expression" : {
3570 "type" : "expression",
3571 "value" : {
3572 "op" : "==",
3573 "left" : {
3574 "type" : "expression",
3575 "value" : {
3576 "op" : "d2b",
3577 "left" : null,
3578 "right" : {
3579 "type" : "field",
3580 "value" : ["scalars", "fabric_metadata_t.skip_forwarding"]
3581 }
3582 }
3583 },
3584 "right" : {
3585 "type" : "bool",
3586 "value" : false
3587 }
3588 }
3589 },
3590 "true_next" : "node_11",
3591 "false_next" : "FabricIngress.acl.acl"
3592 },
3593 {
3594 "name" : "node_11",
3595 "id" : 4,
Yi Tsengbe342052017-11-03 10:21:23 -07003596 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003597 "filename" : "include/control/forwarding.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07003598 "line" : 141,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003599 "column" : 12,
Yi Tsengbe342052017-11-03 10:21:23 -07003600 "source_fragment" : "fabric_metadata.fwd_type == FWD_BRIDGING"
3601 },
3602 "expression" : {
3603 "type" : "expression",
3604 "value" : {
3605 "op" : "==",
3606 "left" : {
3607 "type" : "field",
3608 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
3609 },
3610 "right" : {
3611 "type" : "hexstr",
3612 "value" : "0x00"
3613 }
3614 }
3615 },
Yi Tseng27b9bc02018-04-12 14:52:40 +08003616 "true_next" : "FabricIngress.forwarding.bridging",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003617 "false_next" : "node_13"
Yi Tsengbe342052017-11-03 10:21:23 -07003618 },
3619 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003620 "name" : "node_13",
3621 "id" : 5,
Yi Tsengbe342052017-11-03 10:21:23 -07003622 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003623 "filename" : "include/control/forwarding.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07003624 "line" : 142,
Yi Tsengbe342052017-11-03 10:21:23 -07003625 "column" : 17,
3626 "source_fragment" : "fabric_metadata.fwd_type == FWD_MPLS"
3627 },
3628 "expression" : {
3629 "type" : "expression",
3630 "value" : {
3631 "op" : "==",
3632 "left" : {
3633 "type" : "field",
3634 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
3635 },
3636 "right" : {
3637 "type" : "hexstr",
3638 "value" : "0x01"
3639 }
3640 }
3641 },
Yi Tseng27b9bc02018-04-12 14:52:40 +08003642 "true_next" : "FabricIngress.forwarding.mpls",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003643 "false_next" : "node_15"
Yi Tsengbe342052017-11-03 10:21:23 -07003644 },
3645 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003646 "name" : "node_15",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003647 "id" : 6,
Yi Tsengbe342052017-11-03 10:21:23 -07003648 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003649 "filename" : "include/control/forwarding.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07003650 "line" : 143,
Yi Tsengbe342052017-11-03 10:21:23 -07003651 "column" : 17,
3652 "source_fragment" : "fabric_metadata.fwd_type == FWD_IPV4_UNICAST"
3653 },
3654 "expression" : {
3655 "type" : "expression",
3656 "value" : {
3657 "op" : "==",
3658 "left" : {
3659 "type" : "field",
3660 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
3661 },
3662 "right" : {
3663 "type" : "hexstr",
3664 "value" : "0x02"
3665 }
3666 }
3667 },
Charles Chan384aea22018-08-23 22:08:02 -07003668 "true_next" : "FabricIngress.forwarding.routing_v4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003669 "false_next" : "FabricIngress.acl.acl"
3670 },
3671 {
3672 "name" : "node_18",
3673 "id" : 7,
3674 "source_info" : {
3675 "filename" : "fabric.p4",
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07003676 "line" : 78,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003677 "column" : 12,
3678 "source_fragment" : "fabric_metadata.skip_next == false"
3679 },
3680 "expression" : {
3681 "type" : "expression",
3682 "value" : {
3683 "op" : "==",
3684 "left" : {
3685 "type" : "expression",
3686 "value" : {
3687 "op" : "d2b",
3688 "left" : null,
3689 "right" : {
3690 "type" : "field",
3691 "value" : ["scalars", "fabric_metadata_t.skip_next"]
3692 }
3693 }
3694 },
3695 "right" : {
3696 "type" : "bool",
3697 "value" : false
3698 }
3699 }
3700 },
3701 "false_next" : null,
3702 "true_next" : "FabricIngress.next.xconnect"
Yi Tseng27b9bc02018-04-12 14:52:40 +08003703 },
3704 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003705 "name" : "node_23",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003706 "id" : 8,
Yi Tseng27b9bc02018-04-12 14:52:40 +08003707 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003708 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003709 "line" : 30,
Yi Tsengbe342052017-11-03 10:21:23 -07003710 "column" : 12,
3711 "source_fragment" : "standard_metadata.egress_spec < 511"
3712 },
3713 "expression" : {
3714 "type" : "expression",
3715 "value" : {
3716 "op" : "<",
3717 "left" : {
3718 "type" : "field",
3719 "value" : ["standard_metadata", "egress_spec"]
3720 },
3721 "right" : {
3722 "type" : "hexstr",
3723 "value" : "0x01ff"
3724 }
3725 }
3726 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003727 "true_next" : "tbl_act_2",
3728 "false_next" : "node_25"
Yi Tsengbe342052017-11-03 10:21:23 -07003729 },
3730 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003731 "name" : "node_25",
3732 "id" : 9,
Yi Tsengbe342052017-11-03 10:21:23 -07003733 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003734 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003735 "line" : 33,
Yi Tsengbe342052017-11-03 10:21:23 -07003736 "column" : 12,
3737 "source_fragment" : "standard_metadata.ingress_port < 511"
3738 },
3739 "expression" : {
3740 "type" : "expression",
3741 "value" : {
3742 "op" : "<",
3743 "left" : {
3744 "type" : "field",
3745 "value" : ["standard_metadata", "ingress_port"]
3746 },
3747 "right" : {
3748 "type" : "hexstr",
3749 "value" : "0x01ff"
3750 }
3751 }
3752 },
Yi Tseng3a5731e2018-01-22 11:38:58 -08003753 "false_next" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003754 "true_next" : "tbl_act_3"
Yi Tseng3a5731e2018-01-22 11:38:58 -08003755 }
3756 ]
3757 },
3758 {
3759 "name" : "egress",
3760 "id" : 1,
3761 "source_info" : {
3762 "filename" : "fabric.p4",
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07003763 "line" : 92,
Yi Tseng3a5731e2018-01-22 11:38:58 -08003764 "column" : 8,
3765 "source_fragment" : "FabricEgress"
3766 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003767 "init_table" : "node_29",
Yi Tseng3a5731e2018-01-22 11:38:58 -08003768 "tables" : [
3769 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003770 "name" : "tbl_act_4",
3771 "id" : 15,
Carmelo Cascone3032b872019-04-13 01:23:54 -07003772 "source_info" : {
3773 "filename" : "include/control/packetio.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003774 "line" : 41,
3775 "column" : 12,
3776 "source_fragment" : "exit"
Carmelo Cascone3032b872019-04-13 01:23:54 -07003777 },
Carmelo Casconea5400af2018-07-17 22:11:54 +02003778 "key" : [],
3779 "match_type" : "exact",
3780 "type" : "simple",
3781 "max_size" : 1024,
3782 "with_counters" : false,
3783 "support_timeout" : false,
3784 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003785 "action_ids" : [37],
3786 "actions" : ["act_4"],
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003787 "base_default_next" : "node_31",
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07003788 "next_tables" : {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003789 "act_4" : "node_31"
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07003790 },
3791 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003792 "action_id" : 37,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07003793 "action_const" : true,
3794 "action_data" : [],
3795 "action_entry_const" : true
3796 }
3797 },
3798 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003799 "name" : "tbl_act_5",
3800 "id" : 16,
Carmelo Cascone3032b872019-04-13 01:23:54 -07003801 "source_info" : {
3802 "filename" : "include/control/packetio.p4",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07003803 "line" : 44,
3804 "column" : 12,
3805 "source_fragment" : "hdr.packet_in.setValid(); ..."
Carmelo Cascone3032b872019-04-13 01:23:54 -07003806 },
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07003807 "key" : [],
3808 "match_type" : "exact",
3809 "type" : "simple",
3810 "max_size" : 1024,
3811 "with_counters" : false,
3812 "support_timeout" : false,
3813 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003814 "action_ids" : [38],
3815 "actions" : ["act_5"],
Daniele Moro01ca2ab2019-06-25 11:48:48 -07003816 "base_default_next" : "node_33",
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07003817 "next_tables" : {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07003818 "act_5" : "node_33"
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07003819 },
3820 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003821 "action_id" : 38,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07003822 "action_const" : true,
3823 "action_data" : [],
3824 "action_entry_const" : true
3825 }
3826 },
3827 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003828 "name" : "tbl_act_6",
3829 "id" : 17,
Carmelo Cascone3032b872019-04-13 01:23:54 -07003830 "source_info" : {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07003831 "filename" : "include/control/next.p4",
3832 "line" : 308,
Carmelo Cascone3032b872019-04-13 01:23:54 -07003833 "column" : 12,
Daniele Moro01ca2ab2019-06-25 11:48:48 -07003834 "source_fragment" : "mark_to_drop(standard_metadata)"
Carmelo Cascone3032b872019-04-13 01:23:54 -07003835 },
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07003836 "key" : [],
3837 "match_type" : "exact",
3838 "type" : "simple",
3839 "max_size" : 1024,
3840 "with_counters" : false,
3841 "support_timeout" : false,
3842 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003843 "action_ids" : [39],
3844 "actions" : ["act_6"],
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003845 "base_default_next" : "node_35",
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07003846 "next_tables" : {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003847 "act_6" : "node_35"
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07003848 },
3849 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003850 "action_id" : 39,
3851 "action_const" : true,
3852 "action_data" : [],
3853 "action_entry_const" : true
3854 }
3855 },
3856 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003857 "name" : "tbl_egress_next_pop_mpls_if_present",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07003858 "id" : 18,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003859 "source_info" : {
3860 "filename" : "include/control/next.p4",
Carmelo Cascone3032b872019-04-13 01:23:54 -07003861 "line" : 312,
3862 "column" : 36,
3863 "source_fragment" : "pop_mpls_if_present()"
3864 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003865 "key" : [],
3866 "match_type" : "exact",
3867 "type" : "simple",
3868 "max_size" : 1024,
3869 "with_counters" : false,
3870 "support_timeout" : false,
3871 "direct_meters" : null,
3872 "action_ids" : [33],
3873 "actions" : ["FabricEgress.egress_next.pop_mpls_if_present"],
3874 "base_default_next" : "FabricEgress.egress_next.egress_vlan",
3875 "next_tables" : {
3876 "FabricEgress.egress_next.pop_mpls_if_present" : "FabricEgress.egress_next.egress_vlan"
3877 },
3878 "default_entry" : {
3879 "action_id" : 33,
3880 "action_const" : true,
3881 "action_data" : [],
3882 "action_entry_const" : true
3883 }
3884 },
3885 {
3886 "name" : "tbl_egress_next_set_mpls",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07003887 "id" : 19,
Carmelo Cascone3032b872019-04-13 01:23:54 -07003888 "source_info" : {
3889 "filename" : "include/control/next.p4",
3890 "line" : 314,
3891 "column" : 12,
3892 "source_fragment" : "set_mpls()"
3893 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003894 "key" : [],
3895 "match_type" : "exact",
3896 "type" : "simple",
3897 "max_size" : 1024,
3898 "with_counters" : false,
3899 "support_timeout" : false,
3900 "direct_meters" : null,
3901 "action_ids" : [34],
3902 "actions" : ["FabricEgress.egress_next.set_mpls"],
3903 "base_default_next" : "FabricEgress.egress_next.egress_vlan",
3904 "next_tables" : {
3905 "FabricEgress.egress_next.set_mpls" : "FabricEgress.egress_next.egress_vlan"
3906 },
3907 "default_entry" : {
3908 "action_id" : 34,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07003909 "action_const" : true,
3910 "action_data" : [],
3911 "action_entry_const" : true
3912 }
3913 },
3914 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003915 "name" : "FabricEgress.egress_next.egress_vlan",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07003916 "id" : 20,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003917 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003918 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07003919 "line" : 291,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003920 "column" : 10,
3921 "source_fragment" : "egress_vlan"
3922 },
3923 "key" : [
3924 {
3925 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003926 "name" : "vlan_id",
3927 "target" : ["scalars", "fabric_metadata_t.vlan_id"],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003928 "mask" : null
3929 },
3930 {
3931 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003932 "name" : "eg_port",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003933 "target" : ["standard_metadata", "egress_port"],
3934 "mask" : null
3935 }
3936 ],
3937 "match_type" : "exact",
3938 "type" : "simple",
3939 "max_size" : 1024,
Yi Tseng47eac892018-07-11 02:17:04 +08003940 "with_counters" : true,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003941 "support_timeout" : false,
3942 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003943 "action_ids" : [36, 32],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003944 "actions" : ["FabricEgress.egress_next.pop_vlan", "nop"],
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07003945 "base_default_next" : null,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003946 "next_tables" : {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07003947 "__HIT__" : "tbl_act_7",
3948 "__MISS__" : "tbl_act_8"
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003949 },
3950 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003951 "action_id" : 32,
3952 "action_const" : true,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003953 "action_data" : [],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003954 "action_entry_const" : true
3955 }
3956 },
3957 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07003958 "name" : "tbl_act_7",
3959 "id" : 21,
3960 "key" : [],
3961 "match_type" : "exact",
3962 "type" : "simple",
3963 "max_size" : 1024,
3964 "with_counters" : false,
3965 "support_timeout" : false,
3966 "direct_meters" : null,
3967 "action_ids" : [40],
3968 "actions" : ["act_7"],
3969 "base_default_next" : "node_42",
3970 "next_tables" : {
3971 "act_7" : "node_42"
3972 },
3973 "default_entry" : {
3974 "action_id" : 40,
3975 "action_const" : true,
3976 "action_data" : [],
3977 "action_entry_const" : true
3978 }
3979 },
3980 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003981 "name" : "tbl_act_8",
3982 "id" : 22,
3983 "key" : [],
3984 "match_type" : "exact",
3985 "type" : "simple",
3986 "max_size" : 1024,
3987 "with_counters" : false,
3988 "support_timeout" : false,
3989 "direct_meters" : null,
3990 "action_ids" : [41],
3991 "actions" : ["act_8"],
Daniele Moro01ca2ab2019-06-25 11:48:48 -07003992 "base_default_next" : "node_42",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003993 "next_tables" : {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07003994 "act_8" : "node_42"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003995 },
3996 "default_entry" : {
3997 "action_id" : 41,
3998 "action_const" : true,
3999 "action_data" : [],
4000 "action_entry_const" : true
4001 }
4002 },
4003 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004004 "name" : "tbl_egress_next_push_vlan",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07004005 "id" : 23,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004006 "source_info" : {
4007 "filename" : "include/control/next.p4",
4008 "line" : 320,
4009 "column" : 16,
4010 "source_fragment" : "push_vlan()"
4011 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004012 "key" : [],
4013 "match_type" : "exact",
4014 "type" : "simple",
4015 "max_size" : 1024,
4016 "with_counters" : false,
4017 "support_timeout" : false,
4018 "direct_meters" : null,
4019 "action_ids" : [35],
4020 "actions" : ["FabricEgress.egress_next.push_vlan"],
Daniele Moro01ca2ab2019-06-25 11:48:48 -07004021 "base_default_next" : "node_45",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004022 "next_tables" : {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07004023 "FabricEgress.egress_next.push_vlan" : "node_45"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004024 },
4025 "default_entry" : {
4026 "action_id" : 35,
4027 "action_const" : true,
4028 "action_data" : [],
4029 "action_entry_const" : true
4030 }
4031 },
4032 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07004033 "name" : "tbl_act_9",
4034 "id" : 24,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004035 "source_info" : {
4036 "filename" : "include/control/next.p4",
4037 "line" : 326,
4038 "column" : 25,
4039 "source_fragment" : "="
4040 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004041 "key" : [],
4042 "match_type" : "exact",
4043 "type" : "simple",
4044 "max_size" : 1024,
4045 "with_counters" : false,
4046 "support_timeout" : false,
4047 "direct_meters" : null,
Daniele Moro01ca2ab2019-06-25 11:48:48 -07004048 "action_ids" : [43],
4049 "actions" : ["act_10"],
4050 "base_default_next" : "node_47",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004051 "next_tables" : {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07004052 "act_10" : "node_47"
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004053 },
4054 "default_entry" : {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07004055 "action_id" : 43,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004056 "action_const" : true,
4057 "action_data" : [],
4058 "action_entry_const" : true
4059 }
4060 },
4061 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07004062 "name" : "tbl_act_10",
4063 "id" : 25,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004064 "source_info" : {
4065 "filename" : "include/control/next.p4",
4066 "line" : 327,
4067 "column" : 35,
4068 "source_fragment" : "mark_to_drop(standard_metadata)"
4069 },
4070 "key" : [],
4071 "match_type" : "exact",
4072 "type" : "simple",
4073 "max_size" : 1024,
4074 "with_counters" : false,
4075 "support_timeout" : false,
4076 "direct_meters" : null,
Daniele Moro01ca2ab2019-06-25 11:48:48 -07004077 "action_ids" : [42],
4078 "actions" : ["act_9"],
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004079 "base_default_next" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004080 "next_tables" : {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07004081 "act_9" : null
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004082 },
4083 "default_entry" : {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07004084 "action_id" : 42,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004085 "action_const" : true,
4086 "action_data" : [],
4087 "action_entry_const" : true
4088 }
4089 },
4090 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07004091 "name" : "tbl_act_11",
4092 "id" : 26,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004093 "source_info" : {
4094 "filename" : "include/control/next.p4",
4095 "line" : 330,
4096 "column" : 29,
4097 "source_fragment" : "="
4098 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004099 "key" : [],
4100 "match_type" : "exact",
4101 "type" : "simple",
4102 "max_size" : 1024,
4103 "with_counters" : false,
4104 "support_timeout" : false,
4105 "direct_meters" : null,
Daniele Moro01ca2ab2019-06-25 11:48:48 -07004106 "action_ids" : [45],
4107 "actions" : ["act_12"],
4108 "base_default_next" : "node_51",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004109 "next_tables" : {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07004110 "act_12" : "node_51"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004111 },
4112 "default_entry" : {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07004113 "action_id" : 45,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004114 "action_const" : true,
4115 "action_data" : [],
4116 "action_entry_const" : true
4117 }
4118 },
4119 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07004120 "name" : "tbl_act_12",
4121 "id" : 27,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004122 "source_info" : {
4123 "filename" : "include/control/next.p4",
4124 "line" : 331,
4125 "column" : 39,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004126 "source_fragment" : "mark_to_drop(standard_metadata)"
Carmelo Cascone3032b872019-04-13 01:23:54 -07004127 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004128 "key" : [],
4129 "match_type" : "exact",
4130 "type" : "simple",
4131 "max_size" : 1024,
4132 "with_counters" : false,
4133 "support_timeout" : false,
4134 "direct_meters" : null,
Daniele Moro01ca2ab2019-06-25 11:48:48 -07004135 "action_ids" : [44],
4136 "actions" : ["act_11"],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004137 "base_default_next" : null,
4138 "next_tables" : {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07004139 "act_11" : null
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004140 },
4141 "default_entry" : {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07004142 "action_id" : 44,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004143 "action_const" : true,
4144 "action_data" : [],
4145 "action_entry_const" : true
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004146 }
Yi Tseng3a5731e2018-01-22 11:38:58 -08004147 }
4148 ],
4149 "action_profiles" : [],
4150 "conditionals" : [
Yi Tseng1d842672017-11-28 16:06:52 -08004151 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004152 "name" : "node_29",
4153 "id" : 10,
Carmelo Casconea5400af2018-07-17 22:11:54 +02004154 "source_info" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004155 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004156 "line" : 39,
Carmelo Casconea5400af2018-07-17 22:11:54 +02004157 "column" : 12,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004158 "source_fragment" : "fabric_metadata.is_controller_packet_out == true"
Carmelo Casconea5400af2018-07-17 22:11:54 +02004159 },
4160 "expression" : {
4161 "type" : "expression",
4162 "value" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004163 "op" : "==",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004164 "left" : {
4165 "type" : "expression",
4166 "value" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004167 "op" : "d2b",
4168 "left" : null,
Carmelo Casconea5400af2018-07-17 22:11:54 +02004169 "right" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004170 "type" : "field",
4171 "value" : ["scalars", "fabric_metadata_t.is_controller_packet_out"]
Carmelo Casconea5400af2018-07-17 22:11:54 +02004172 }
4173 }
4174 },
4175 "right" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004176 "type" : "bool",
4177 "value" : true
Carmelo Casconea5400af2018-07-17 22:11:54 +02004178 }
4179 }
4180 },
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004181 "true_next" : "tbl_act_4",
4182 "false_next" : "node_31"
Carmelo Casconea5400af2018-07-17 22:11:54 +02004183 },
4184 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004185 "name" : "node_31",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004186 "id" : 11,
Yi Tsengbe342052017-11-03 10:21:23 -07004187 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004188 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004189 "line" : 43,
Yi Tsengbe342052017-11-03 10:21:23 -07004190 "column" : 12,
Carmelo Casconeb531b682018-01-30 17:55:56 -08004191 "source_fragment" : "standard_metadata.egress_port == 255"
Yi Tsengbe342052017-11-03 10:21:23 -07004192 },
4193 "expression" : {
4194 "type" : "expression",
4195 "value" : {
4196 "op" : "==",
4197 "left" : {
4198 "type" : "field",
4199 "value" : ["standard_metadata", "egress_port"]
4200 },
4201 "right" : {
4202 "type" : "hexstr",
4203 "value" : "0x00ff"
4204 }
4205 }
4206 },
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004207 "true_next" : "tbl_act_5",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07004208 "false_next" : "node_33"
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004209 },
4210 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07004211 "name" : "node_33",
4212 "id" : 12,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004213 "source_info" : {
4214 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07004215 "line" : 306,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004216 "column" : 12,
4217 "source_fragment" : "fabric_metadata.is_multicast == true ..."
4218 },
4219 "expression" : {
4220 "type" : "expression",
4221 "value" : {
4222 "op" : "and",
4223 "left" : {
4224 "type" : "expression",
4225 "value" : {
4226 "op" : "==",
4227 "left" : {
4228 "type" : "expression",
4229 "value" : {
4230 "op" : "d2b",
4231 "left" : null,
4232 "right" : {
4233 "type" : "field",
4234 "value" : ["scalars", "fabric_metadata_t.is_multicast"]
4235 }
4236 }
4237 },
4238 "right" : {
4239 "type" : "bool",
4240 "value" : true
4241 }
4242 }
4243 },
4244 "right" : {
4245 "type" : "expression",
4246 "value" : {
4247 "op" : "==",
4248 "left" : {
4249 "type" : "field",
4250 "value" : ["standard_metadata", "ingress_port"]
4251 },
4252 "right" : {
4253 "type" : "field",
4254 "value" : ["standard_metadata", "egress_port"]
4255 }
4256 }
4257 }
4258 }
4259 },
Daniele Moro01ca2ab2019-06-25 11:48:48 -07004260 "true_next" : "tbl_act_6",
4261 "false_next" : "node_35"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004262 },
4263 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07004264 "name" : "node_35",
4265 "id" : 13,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004266 "source_info" : {
4267 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07004268 "line" : 311,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004269 "column" : 12,
4270 "source_fragment" : "fabric_metadata.mpls_label == 0"
4271 },
4272 "expression" : {
4273 "type" : "expression",
4274 "value" : {
4275 "op" : "==",
4276 "left" : {
4277 "type" : "field",
4278 "value" : ["scalars", "fabric_metadata_t.mpls_label"]
4279 },
4280 "right" : {
4281 "type" : "hexstr",
4282 "value" : "0x000000"
4283 }
4284 }
4285 },
Daniele Moro01ca2ab2019-06-25 11:48:48 -07004286 "true_next" : "node_36",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004287 "false_next" : "tbl_egress_next_set_mpls"
4288 },
4289 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07004290 "name" : "node_36",
4291 "id" : 14,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004292 "source_info" : {
4293 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07004294 "line" : 312,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004295 "column" : 16,
4296 "source_fragment" : "hdr.mpls.isValid()"
4297 },
4298 "expression" : {
4299 "type" : "expression",
4300 "value" : {
4301 "op" : "d2b",
4302 "left" : null,
4303 "right" : {
4304 "type" : "field",
4305 "value" : ["mpls", "$valid$"]
4306 }
4307 }
4308 },
4309 "true_next" : "tbl_egress_next_pop_mpls_if_present",
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004310 "false_next" : "FabricEgress.egress_next.egress_vlan"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004311 },
4312 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07004313 "name" : "node_42",
4314 "id" : 15,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004315 "source_info" : {
4316 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07004317 "line" : 317,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004318 "column" : 12,
4319 "source_fragment" : "!egress_vlan.apply().hit"
4320 },
4321 "expression" : {
4322 "type" : "expression",
4323 "value" : {
4324 "op" : "not",
4325 "left" : null,
4326 "right" : {
4327 "type" : "expression",
4328 "value" : {
4329 "op" : "d2b",
4330 "left" : null,
4331 "right" : {
4332 "type" : "field",
4333 "value" : ["scalars", "egress_next_tmp"]
4334 }
4335 }
4336 }
4337 }
4338 },
Daniele Moro01ca2ab2019-06-25 11:48:48 -07004339 "true_next" : "node_43",
4340 "false_next" : "node_45"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004341 },
4342 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07004343 "name" : "node_43",
4344 "id" : 16,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004345 "source_info" : {
4346 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07004347 "line" : 319,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004348 "column" : 16,
4349 "source_fragment" : "fabric_metadata.vlan_id != DEFAULT_VLAN_ID"
4350 },
4351 "expression" : {
4352 "type" : "expression",
4353 "value" : {
4354 "op" : "!=",
4355 "left" : {
4356 "type" : "field",
4357 "value" : ["scalars", "fabric_metadata_t.vlan_id"]
4358 },
4359 "right" : {
4360 "type" : "hexstr",
4361 "value" : "0x0ffe"
4362 }
4363 }
4364 },
4365 "true_next" : "tbl_egress_next_push_vlan",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07004366 "false_next" : "node_45"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004367 },
4368 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07004369 "name" : "node_45",
4370 "id" : 17,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004371 "source_info" : {
4372 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07004373 "line" : 325,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004374 "column" : 12,
4375 "source_fragment" : "hdr.mpls.isValid()"
4376 },
4377 "expression" : {
4378 "type" : "expression",
4379 "value" : {
4380 "op" : "d2b",
4381 "left" : null,
4382 "right" : {
4383 "type" : "field",
4384 "value" : ["mpls", "$valid$"]
4385 }
4386 }
4387 },
Daniele Moro01ca2ab2019-06-25 11:48:48 -07004388 "true_next" : "tbl_act_9",
4389 "false_next" : "node_49"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004390 },
4391 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07004392 "name" : "node_47",
4393 "id" : 18,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004394 "source_info" : {
4395 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07004396 "line" : 327,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004397 "column" : 16,
4398 "source_fragment" : "hdr.mpls.ttl == 0"
4399 },
4400 "expression" : {
4401 "type" : "expression",
4402 "value" : {
4403 "op" : "==",
4404 "left" : {
4405 "type" : "field",
4406 "value" : ["mpls", "ttl"]
4407 },
4408 "right" : {
4409 "type" : "hexstr",
4410 "value" : "0x00"
4411 }
4412 }
4413 },
4414 "false_next" : null,
Daniele Moro01ca2ab2019-06-25 11:48:48 -07004415 "true_next" : "tbl_act_10"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004416 },
4417 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07004418 "name" : "node_49",
4419 "id" : 19,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004420 "source_info" : {
4421 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07004422 "line" : 329,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004423 "column" : 15,
4424 "source_fragment" : "hdr.ipv4.isValid()"
4425 },
4426 "expression" : {
4427 "type" : "expression",
4428 "value" : {
4429 "op" : "d2b",
4430 "left" : null,
4431 "right" : {
4432 "type" : "field",
4433 "value" : ["ipv4", "$valid$"]
4434 }
4435 }
4436 },
4437 "false_next" : null,
Daniele Moro01ca2ab2019-06-25 11:48:48 -07004438 "true_next" : "tbl_act_11"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004439 },
4440 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07004441 "name" : "node_51",
4442 "id" : 20,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004443 "source_info" : {
4444 "filename" : "include/control/next.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07004445 "line" : 331,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004446 "column" : 20,
4447 "source_fragment" : "hdr.ipv4.ttl == 0"
4448 },
4449 "expression" : {
4450 "type" : "expression",
4451 "value" : {
4452 "op" : "==",
4453 "left" : {
4454 "type" : "field",
4455 "value" : ["ipv4", "ttl"]
4456 },
4457 "right" : {
4458 "type" : "hexstr",
4459 "value" : "0x00"
4460 }
4461 }
4462 },
4463 "false_next" : null,
Daniele Moro01ca2ab2019-06-25 11:48:48 -07004464 "true_next" : "tbl_act_12"
Yi Tsengbe342052017-11-03 10:21:23 -07004465 }
4466 ]
4467 }
4468 ],
4469 "checksums" : [
4470 {
4471 "name" : "cksum",
4472 "id" : 0,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07004473 "source_info" : {
4474 "filename" : "include/checksum.p4",
4475 "line" : 28,
4476 "column" : 8,
4477 "source_fragment" : "update_checksum(hdr.ipv4.isValid(), ..."
4478 },
Yi Tsengbe342052017-11-03 10:21:23 -07004479 "target" : ["ipv4", "hdr_checksum"],
4480 "type" : "generic",
Yi Tsengbd46d052018-01-22 17:18:16 -08004481 "calculation" : "calc",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08004482 "verify" : false,
4483 "update" : true,
Yi Tsengbd46d052018-01-22 17:18:16 -08004484 "if_cond" : {
4485 "type" : "expression",
4486 "value" : {
4487 "op" : "d2b",
4488 "left" : null,
4489 "right" : {
4490 "type" : "field",
4491 "value" : ["ipv4", "$valid$"]
4492 }
4493 }
4494 }
Yi Tsengbe342052017-11-03 10:21:23 -07004495 },
4496 {
4497 "name" : "cksum_0",
4498 "id" : 1,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07004499 "source_info" : {
4500 "filename" : "include/checksum.p4",
4501 "line" : 57,
4502 "column" : 8,
4503 "source_fragment" : "verify_checksum(hdr.ipv4.isValid(), ..."
4504 },
Yi Tsengbe342052017-11-03 10:21:23 -07004505 "target" : ["ipv4", "hdr_checksum"],
4506 "type" : "generic",
Yi Tsengbd46d052018-01-22 17:18:16 -08004507 "calculation" : "calc_0",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08004508 "verify" : true,
4509 "update" : false,
Yi Tsengbd46d052018-01-22 17:18:16 -08004510 "if_cond" : {
4511 "type" : "expression",
4512 "value" : {
4513 "op" : "d2b",
4514 "left" : null,
4515 "right" : {
4516 "type" : "field",
4517 "value" : ["ipv4", "$valid$"]
4518 }
4519 }
4520 }
Yi Tsengbe342052017-11-03 10:21:23 -07004521 }
4522 ],
4523 "force_arith" : [],
4524 "extern_instances" : [],
4525 "field_aliases" : [
4526 [
4527 "queueing_metadata.enq_timestamp",
4528 ["standard_metadata", "enq_timestamp"]
4529 ],
4530 [
4531 "queueing_metadata.enq_qdepth",
4532 ["standard_metadata", "enq_qdepth"]
4533 ],
4534 [
4535 "queueing_metadata.deq_timedelta",
4536 ["standard_metadata", "deq_timedelta"]
4537 ],
4538 [
4539 "queueing_metadata.deq_qdepth",
4540 ["standard_metadata", "deq_qdepth"]
4541 ],
4542 [
4543 "intrinsic_metadata.ingress_global_timestamp",
4544 ["standard_metadata", "ingress_global_timestamp"]
4545 ],
4546 [
Yi Tseng27b9bc02018-04-12 14:52:40 +08004547 "intrinsic_metadata.egress_global_timestamp",
4548 ["standard_metadata", "egress_global_timestamp"]
4549 ],
4550 [
Yi Tsengbe342052017-11-03 10:21:23 -07004551 "intrinsic_metadata.lf_field_list",
4552 ["standard_metadata", "lf_field_list"]
4553 ],
4554 [
4555 "intrinsic_metadata.mcast_grp",
4556 ["standard_metadata", "mcast_grp"]
4557 ],
4558 [
4559 "intrinsic_metadata.resubmit_flag",
4560 ["standard_metadata", "resubmit_flag"]
4561 ],
4562 [
4563 "intrinsic_metadata.egress_rid",
4564 ["standard_metadata", "egress_rid"]
Yi Tseng27b9bc02018-04-12 14:52:40 +08004565 ],
4566 [
4567 "intrinsic_metadata.recirculate_flag",
4568 ["standard_metadata", "recirculate_flag"]
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004569 ],
4570 [
4571 "intrinsic_metadata.priority",
4572 ["standard_metadata", "priority"]
Yi Tsengbe342052017-11-03 10:21:23 -07004573 ]
Carmelo Cascone6af4e172018-06-15 16:01:30 +02004574 ],
4575 "program" : "fabric.p4",
4576 "__meta__" : {
4577 "version" : [2, 18],
4578 "compiler" : "https://github.com/p4lang/p4c"
4579 }
Carmelo Cascone25243d62019-02-21 15:37:31 -08004580}