blob: c152abf6718df2b319570b3844da993ef04b20c5 [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" : [
Daniele Moro693d76f2019-09-24 14:34:07 -07007 ["tmp_0", 16, false],
8 ["tmp_1", 16, false],
9 ["tmp_2", 4, false],
Carmelo Casconeb5324e72018-11-25 02:26:32 -080010 ["tmp", 32, false],
Daniele Moro693d76f2019-09-24 14:34:07 -070011 ["tmp_3", 32, false],
Carmelo Casconeb5324e72018-11-25 02:26:32 -080012 ["egress_next_tmp", 1, false],
Carmelo Casconeb5324e72018-11-25 02:26:32 -080013 ["fabric_metadata_t.ip_eth_type", 16, false],
14 ["fabric_metadata_t.vlan_id", 12, false],
15 ["fabric_metadata_t.vlan_pri", 3, false],
16 ["fabric_metadata_t.vlan_cfi", 1, false],
17 ["fabric_metadata_t.mpls_label", 20, false],
18 ["fabric_metadata_t.mpls_ttl", 8, false],
19 ["fabric_metadata_t.skip_forwarding", 1, false],
20 ["fabric_metadata_t.skip_next", 1, false],
Yi Tsengbe342052017-11-03 10:21:23 -070021 ["fabric_metadata_t.fwd_type", 3, false],
22 ["fabric_metadata_t.next_id", 32, false],
Carmelo Cascone1e8843f2018-07-19 19:01:12 +020023 ["fabric_metadata_t.is_multicast", 1, false],
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -070024 ["fabric_metadata_t.is_controller_packet_out", 1, false],
Yi Tsengbe342052017-11-03 10:21:23 -070025 ["fabric_metadata_t.ip_proto", 8, false],
Carmelo Casconeb5324e72018-11-25 02:26:32 -080026 ["fabric_metadata_t.l4_sport", 16, false],
Robert MacDavid1d475692020-05-21 21:32:38 -040027 ["fabric_metadata_t.l4_dport", 16, false],
28 ["fabric_metadata_t.ipv4_src_addr", 32, false],
29 ["fabric_metadata_t.ipv4_dst_addr", 32, false]
Yi Tsengc6844f52017-12-19 11:58:25 -080030 ]
31 },
32 {
Carmelo Cascone6af4e172018-06-15 16:01:30 +020033 "name" : "standard_metadata",
Yi Tsengc6844f52017-12-19 11:58:25 -080034 "id" : 1,
35 "fields" : [
Carmelo Cascone6af4e172018-06-15 16:01:30 +020036 ["ingress_port", 9, false],
37 ["egress_spec", 9, false],
38 ["egress_port", 9, false],
39 ["clone_spec", 32, false],
40 ["instance_type", 32, false],
41 ["drop", 1, false],
42 ["recirculate_port", 16, false],
43 ["packet_length", 32, false],
44 ["enq_timestamp", 32, false],
45 ["enq_qdepth", 19, false],
46 ["deq_timedelta", 32, false],
47 ["deq_qdepth", 19, false],
48 ["ingress_global_timestamp", 48, false],
49 ["egress_global_timestamp", 48, false],
50 ["lf_field_list", 32, false],
51 ["mcast_grp", 16, false],
52 ["resubmit_flag", 32, false],
53 ["egress_rid", 16, false],
Carmelo Cascone6af4e172018-06-15 16:01:30 +020054 ["recirculate_flag", 32, false],
Carmelo Cascone9b607da2019-05-08 14:03:01 -070055 ["checksum_error", 1, false],
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -070056 ["parser_error", 32, false],
Carmelo Cascone9b607da2019-05-08 14:03:01 -070057 ["priority", 3, false],
58 ["_padding", 2, false]
Carmelo Cascone6af4e172018-06-15 16:01:30 +020059 ]
60 },
61 {
62 "name" : "ethernet_t",
63 "id" : 2,
64 "fields" : [
Yi Tsengc6844f52017-12-19 11:58:25 -080065 ["dst_addr", 48, false],
Daniele Moro693d76f2019-09-24 14:34:07 -070066 ["src_addr", 48, false]
Yi Tsengc6844f52017-12-19 11:58:25 -080067 ]
68 },
69 {
70 "name" : "vlan_tag_t",
Carmelo Cascone6af4e172018-06-15 16:01:30 +020071 "id" : 3,
Yi Tsengc6844f52017-12-19 11:58:25 -080072 "fields" : [
Daniele Moro693d76f2019-09-24 14:34:07 -070073 ["eth_type", 16, false],
Yi Tsengc6844f52017-12-19 11:58:25 -080074 ["pri", 3, false],
75 ["cfi", 1, false],
Daniele Moro693d76f2019-09-24 14:34:07 -070076 ["vlan_id", 12, false]
77 ]
78 },
79 {
80 "name" : "eth_type_t",
81 "id" : 4,
82 "fields" : [
83 ["value", 16, false]
Yi Tsengc6844f52017-12-19 11:58:25 -080084 ]
85 },
86 {
87 "name" : "mpls_t",
Daniele Moro693d76f2019-09-24 14:34:07 -070088 "id" : 5,
Yi Tsengc6844f52017-12-19 11:58:25 -080089 "fields" : [
90 ["label", 20, false],
91 ["tc", 3, false],
92 ["bos", 1, false],
93 ["ttl", 8, false]
Yi Tsengbe342052017-11-03 10:21:23 -070094 ]
95 },
96 {
97 "name" : "ipv4_t",
Daniele Moro693d76f2019-09-24 14:34:07 -070098 "id" : 6,
Yi Tsengbe342052017-11-03 10:21:23 -070099 "fields" : [
100 ["version", 4, false],
101 ["ihl", 4, false],
Jonghwan Hyuned478dc2018-08-06 15:35:18 +0900102 ["dscp", 6, false],
103 ["ecn", 2, false],
Yi Tsengbe342052017-11-03 10:21:23 -0700104 ["total_len", 16, false],
105 ["identification", 16, false],
106 ["flags", 3, false],
107 ["frag_offset", 13, false],
108 ["ttl", 8, false],
109 ["protocol", 8, false],
110 ["hdr_checksum", 16, false],
111 ["src_addr", 32, false],
112 ["dst_addr", 32, false]
113 ]
114 },
115 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800116 "name" : "tcp_t",
Daniele Moro693d76f2019-09-24 14:34:07 -0700117 "id" : 7,
Yi Tseng47eac892018-07-11 02:17:04 +0800118 "fields" : [
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800119 ["sport", 16, false],
120 ["dport", 16, false],
Yi Tsengbe342052017-11-03 10:21:23 -0700121 ["seq_no", 32, false],
122 ["ack_no", 32, false],
123 ["data_offset", 4, false],
124 ["res", 3, false],
125 ["ecn", 3, false],
126 ["ctrl", 6, false],
127 ["window", 16, false],
128 ["checksum", 16, false],
129 ["urgent_ptr", 16, false]
130 ]
131 },
132 {
133 "name" : "udp_t",
Daniele Moro693d76f2019-09-24 14:34:07 -0700134 "id" : 8,
Yi Tsengbe342052017-11-03 10:21:23 -0700135 "fields" : [
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800136 ["sport", 16, false],
137 ["dport", 16, false],
Yi Tsengbe342052017-11-03 10:21:23 -0700138 ["len", 16, false],
139 ["checksum", 16, false]
140 ]
141 },
142 {
143 "name" : "icmp_t",
Daniele Moro693d76f2019-09-24 14:34:07 -0700144 "id" : 9,
Yi Tsengbe342052017-11-03 10:21:23 -0700145 "fields" : [
146 ["icmp_type", 8, false],
147 ["icmp_code", 8, false],
Yi Tsengf73a5532017-11-17 15:58:57 -0800148 ["checksum", 16, false],
149 ["identifier", 16, false],
150 ["sequence_number", 16, false],
151 ["timestamp", 64, false]
Yi Tsengbe342052017-11-03 10:21:23 -0700152 ]
153 },
154 {
155 "name" : "packet_out_header_t",
Daniele Moro693d76f2019-09-24 14:34:07 -0700156 "id" : 10,
Yi Tsengbe342052017-11-03 10:21:23 -0700157 "fields" : [
158 ["egress_port", 9, false],
Yi Tseng1d842672017-11-28 16:06:52 -0800159 ["_pad", 7, false]
Yi Tsengbe342052017-11-03 10:21:23 -0700160 ]
161 },
162 {
163 "name" : "packet_in_header_t",
Daniele Moro693d76f2019-09-24 14:34:07 -0700164 "id" : 11,
Yi Tsengbe342052017-11-03 10:21:23 -0700165 "fields" : [
166 ["ingress_port", 9, false],
Yi Tseng1d842672017-11-28 16:06:52 -0800167 ["_pad", 7, false]
Yi Tsengbe342052017-11-03 10:21:23 -0700168 ]
Yi Tsengbe342052017-11-03 10:21:23 -0700169 }
170 ],
171 "headers" : [
172 {
Yi Tsengbe342052017-11-03 10:21:23 -0700173 "name" : "scalars",
Yi Tsengc6844f52017-12-19 11:58:25 -0800174 "id" : 0,
Yi Tsengbe342052017-11-03 10:21:23 -0700175 "header_type" : "scalars_0",
176 "metadata" : true,
177 "pi_omit" : true
178 },
179 {
180 "name" : "standard_metadata",
Yi Tsengc6844f52017-12-19 11:58:25 -0800181 "id" : 1,
Yi Tsengbe342052017-11-03 10:21:23 -0700182 "header_type" : "standard_metadata",
183 "metadata" : true,
184 "pi_omit" : true
185 },
186 {
187 "name" : "ethernet",
Yi Tsengc6844f52017-12-19 11:58:25 -0800188 "id" : 2,
Yi Tsengbe342052017-11-03 10:21:23 -0700189 "header_type" : "ethernet_t",
190 "metadata" : false,
191 "pi_omit" : true
192 },
193 {
194 "name" : "vlan_tag",
Yi Tsengc6844f52017-12-19 11:58:25 -0800195 "id" : 3,
Yi Tsengbe342052017-11-03 10:21:23 -0700196 "header_type" : "vlan_tag_t",
197 "metadata" : false,
198 "pi_omit" : true
199 },
200 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800201 "name" : "inner_vlan_tag",
Yi Tsengbd46d052018-01-22 17:18:16 -0800202 "id" : 4,
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800203 "header_type" : "vlan_tag_t",
204 "metadata" : false,
205 "pi_omit" : true
206 },
207 {
Daniele Moro693d76f2019-09-24 14:34:07 -0700208 "name" : "eth_type",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800209 "id" : 5,
Daniele Moro693d76f2019-09-24 14:34:07 -0700210 "header_type" : "eth_type_t",
211 "metadata" : false,
212 "pi_omit" : true
213 },
214 {
215 "name" : "mpls",
216 "id" : 6,
Yi Tsengbe342052017-11-03 10:21:23 -0700217 "header_type" : "mpls_t",
218 "metadata" : false,
219 "pi_omit" : true
220 },
221 {
222 "name" : "ipv4",
Daniele Moro693d76f2019-09-24 14:34:07 -0700223 "id" : 7,
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800224 "header_type" : "ipv4_t",
Yi Tsengbe342052017-11-03 10:21:23 -0700225 "metadata" : false,
226 "pi_omit" : true
227 },
228 {
229 "name" : "tcp",
Daniele Moro693d76f2019-09-24 14:34:07 -0700230 "id" : 8,
Yi Tsengbe342052017-11-03 10:21:23 -0700231 "header_type" : "tcp_t",
232 "metadata" : false,
233 "pi_omit" : true
234 },
235 {
236 "name" : "udp",
Daniele Moro693d76f2019-09-24 14:34:07 -0700237 "id" : 9,
Yi Tsengbe342052017-11-03 10:21:23 -0700238 "header_type" : "udp_t",
239 "metadata" : false,
240 "pi_omit" : true
241 },
242 {
243 "name" : "icmp",
Daniele Moro693d76f2019-09-24 14:34:07 -0700244 "id" : 10,
Yi Tsengbe342052017-11-03 10:21:23 -0700245 "header_type" : "icmp_t",
246 "metadata" : false,
247 "pi_omit" : true
248 },
249 {
250 "name" : "packet_out",
Daniele Moro693d76f2019-09-24 14:34:07 -0700251 "id" : 11,
Yi Tsengbe342052017-11-03 10:21:23 -0700252 "header_type" : "packet_out_header_t",
253 "metadata" : false,
254 "pi_omit" : true
255 },
256 {
257 "name" : "packet_in",
Daniele Moro693d76f2019-09-24 14:34:07 -0700258 "id" : 12,
Yi Tsengbe342052017-11-03 10:21:23 -0700259 "header_type" : "packet_in_header_t",
260 "metadata" : false,
261 "pi_omit" : true
262 }
263 ],
264 "header_stacks" : [],
265 "header_union_types" : [],
266 "header_unions" : [],
267 "header_union_stacks" : [],
Daniele Moro01ca2ab2019-06-25 11:48:48 -0700268 "field_lists" : [
269 {
270 "id" : 1,
271 "name" : "fl",
272 "source_info" : {
Daniele Moro3b7a21b2019-06-25 17:33:40 -0700273 "filename" : "include/control/acl.p4",
274 "line" : 46,
Daniele Moro01ca2ab2019-06-25 11:48:48 -0700275 "column" : 40,
Daniele Moro3b7a21b2019-06-25 17:33:40 -0700276 "source_fragment" : "{standard_metadata.ingress_port}"
Daniele Moro01ca2ab2019-06-25 11:48:48 -0700277 },
278 "elements" : [
279 {
280 "type" : "field",
281 "value" : ["standard_metadata", "ingress_port"]
Daniele Moro01ca2ab2019-06-25 11:48:48 -0700282 }
283 ]
284 }
285 ],
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700286 "errors" : [
Carmelo Cascone4d8785b2019-05-31 17:11:26 -0700287 ["NoError", 1],
288 ["PacketTooShort", 2],
289 ["NoMatch", 3],
290 ["StackOutOfBounds", 4],
291 ["HeaderTooShort", 5],
292 ["ParserTimeout", 6],
293 ["ParserInvalidArgument", 7]
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700294 ],
Yi Tsengbe342052017-11-03 10:21:23 -0700295 "enums" : [],
296 "parsers" : [
297 {
298 "name" : "parser",
299 "id" : 0,
300 "init_state" : "start",
301 "parse_states" : [
302 {
303 "name" : "start",
304 "id" : 0,
305 "parser_ops" : [],
306 "transitions" : [
307 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800308 "type" : "hexstr",
Yi Tsengbe342052017-11-03 10:21:23 -0700309 "value" : "0x00ff",
310 "mask" : null,
311 "next_state" : "parse_packet_out"
312 },
313 {
314 "value" : "default",
315 "mask" : null,
316 "next_state" : "parse_ethernet"
317 }
318 ],
319 "transition_key" : [
320 {
321 "type" : "field",
322 "value" : ["standard_metadata", "ingress_port"]
323 }
324 ]
325 },
326 {
327 "name" : "parse_packet_out",
328 "id" : 1,
329 "parser_ops" : [
330 {
331 "parameters" : [
332 {
333 "type" : "regular",
334 "value" : "packet_out"
335 }
336 ],
337 "op" : "extract"
338 }
339 ],
340 "transitions" : [
341 {
342 "value" : "default",
343 "mask" : null,
344 "next_state" : "parse_ethernet"
345 }
346 ],
347 "transition_key" : []
348 },
349 {
350 "name" : "parse_ethernet",
351 "id" : 2,
352 "parser_ops" : [
353 {
354 "parameters" : [
355 {
356 "type" : "regular",
357 "value" : "ethernet"
358 }
359 ],
360 "op" : "extract"
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800361 },
362 {
363 "parameters" : [
364 {
365 "type" : "field",
Daniele Moro693d76f2019-09-24 14:34:07 -0700366 "value" : ["scalars", "fabric_metadata_t.vlan_id"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800367 },
368 {
Daniele Moro693d76f2019-09-24 14:34:07 -0700369 "type" : "hexstr",
370 "value" : "0x0ffe"
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800371 }
372 ],
373 "op" : "set"
374 },
375 {
376 "parameters" : [
377 {
378 "type" : "field",
Daniele Moro693d76f2019-09-24 14:34:07 -0700379 "value" : ["scalars", "tmp_0"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800380 },
381 {
Daniele Moro693d76f2019-09-24 14:34:07 -0700382 "type" : "lookahead",
383 "value" : [0, 16]
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800384 }
385 ],
386 "op" : "set"
Yi Tsengbe342052017-11-03 10:21:23 -0700387 }
388 ],
389 "transitions" : [
390 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800391 "type" : "hexstr",
Daniele Moro77654f92019-07-30 10:29:54 -0700392 "value" : "0x88a8",
393 "mask" : null,
394 "next_state" : "parse_vlan_tag"
395 },
396 {
397 "type" : "hexstr",
398 "value" : "0x9100",
399 "mask" : null,
400 "next_state" : "parse_vlan_tag"
401 },
402 {
403 "type" : "hexstr",
Yi Tsengbe342052017-11-03 10:21:23 -0700404 "value" : "0x8100",
405 "mask" : null,
406 "next_state" : "parse_vlan_tag"
407 },
408 {
Yi Tsengbe342052017-11-03 10:21:23 -0700409 "value" : "default",
410 "mask" : null,
Daniele Moro693d76f2019-09-24 14:34:07 -0700411 "next_state" : "parse_eth_type"
Yi Tsengbe342052017-11-03 10:21:23 -0700412 }
413 ],
414 "transition_key" : [
415 {
416 "type" : "field",
Daniele Moro693d76f2019-09-24 14:34:07 -0700417 "value" : ["scalars", "tmp_0"]
Yi Tsengbe342052017-11-03 10:21:23 -0700418 }
419 ]
420 },
421 {
422 "name" : "parse_vlan_tag",
423 "id" : 3,
424 "parser_ops" : [
425 {
426 "parameters" : [
427 {
428 "type" : "regular",
429 "value" : "vlan_tag"
430 }
431 ],
432 "op" : "extract"
Daniele Moro693d76f2019-09-24 14:34:07 -0700433 },
434 {
435 "parameters" : [
436 {
437 "type" : "field",
438 "value" : ["scalars", "tmp_1"]
439 },
440 {
441 "type" : "lookahead",
442 "value" : [0, 16]
443 }
444 ],
445 "op" : "set"
Yi Tsengbe342052017-11-03 10:21:23 -0700446 }
447 ],
448 "transitions" : [
449 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800450 "type" : "hexstr",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800451 "value" : "0x8100",
452 "mask" : null,
453 "next_state" : "parse_inner_vlan_tag"
454 },
455 {
456 "value" : "default",
457 "mask" : null,
Daniele Moro693d76f2019-09-24 14:34:07 -0700458 "next_state" : "parse_eth_type"
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800459 }
460 ],
461 "transition_key" : [
462 {
463 "type" : "field",
Daniele Moro693d76f2019-09-24 14:34:07 -0700464 "value" : ["scalars", "tmp_1"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800465 }
466 ]
467 },
468 {
469 "name" : "parse_inner_vlan_tag",
470 "id" : 4,
471 "parser_ops" : [
472 {
473 "parameters" : [
474 {
475 "type" : "regular",
476 "value" : "inner_vlan_tag"
477 }
478 ],
479 "op" : "extract"
480 }
481 ],
482 "transitions" : [
483 {
Daniele Moro693d76f2019-09-24 14:34:07 -0700484 "value" : "default",
Yi Tsengbe342052017-11-03 10:21:23 -0700485 "mask" : null,
Daniele Moro693d76f2019-09-24 14:34:07 -0700486 "next_state" : "parse_eth_type"
487 }
488 ],
489 "transition_key" : []
490 },
491 {
492 "name" : "parse_eth_type",
493 "id" : 5,
494 "parser_ops" : [
495 {
496 "parameters" : [
497 {
498 "type" : "regular",
499 "value" : "eth_type"
500 }
501 ],
502 "op" : "extract"
503 }
504 ],
505 "transitions" : [
Yi Tsengbe342052017-11-03 10:21:23 -0700506 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800507 "type" : "hexstr",
Yi Tsengbd46d052018-01-22 17:18:16 -0800508 "value" : "0x8847",
Yi Tsengbe342052017-11-03 10:21:23 -0700509 "mask" : null,
Yi Tsengbd46d052018-01-22 17:18:16 -0800510 "next_state" : "parse_mpls"
Yi Tsengbe342052017-11-03 10:21:23 -0700511 },
512 {
Daniele Moro693d76f2019-09-24 14:34:07 -0700513 "type" : "hexstr",
514 "value" : "0x0800",
515 "mask" : null,
516 "next_state" : "parse_ipv4"
517 },
518 {
Yi Tsengbe342052017-11-03 10:21:23 -0700519 "value" : "default",
520 "mask" : null,
521 "next_state" : null
522 }
523 ],
524 "transition_key" : [
525 {
526 "type" : "field",
Daniele Moro693d76f2019-09-24 14:34:07 -0700527 "value" : ["eth_type", "value"]
Yi Tsengbe342052017-11-03 10:21:23 -0700528 }
529 ]
530 },
531 {
532 "name" : "parse_mpls",
Daniele Moro693d76f2019-09-24 14:34:07 -0700533 "id" : 6,
Yi Tsengbe342052017-11-03 10:21:23 -0700534 "parser_ops" : [
535 {
536 "parameters" : [
537 {
538 "type" : "regular",
539 "value" : "mpls"
540 }
541 ],
542 "op" : "extract"
543 },
544 {
545 "parameters" : [
546 {
547 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800548 "value" : ["scalars", "fabric_metadata_t.mpls_label"]
549 },
550 {
551 "type" : "field",
552 "value" : ["mpls", "label"]
553 }
554 ],
555 "op" : "set"
556 },
557 {
558 "parameters" : [
559 {
560 "type" : "field",
561 "value" : ["scalars", "fabric_metadata_t.mpls_ttl"]
562 },
563 {
564 "type" : "field",
565 "value" : ["mpls", "ttl"]
566 }
567 ],
568 "op" : "set"
569 },
570 {
571 "parameters" : [
572 {
573 "type" : "field",
Daniele Moro693d76f2019-09-24 14:34:07 -0700574 "value" : ["scalars", "tmp_2"]
Yi Tsengbe342052017-11-03 10:21:23 -0700575 },
576 {
577 "type" : "lookahead",
Yi Tsengc6844f52017-12-19 11:58:25 -0800578 "value" : [0, 4]
Yi Tsengbe342052017-11-03 10:21:23 -0700579 }
580 ],
581 "op" : "set"
582 }
583 ],
584 "transitions" : [
585 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800586 "type" : "hexstr",
Yi Tsengbe342052017-11-03 10:21:23 -0700587 "value" : "0x04",
588 "mask" : null,
589 "next_state" : "parse_ipv4"
590 },
591 {
Yi Tsengbe342052017-11-03 10:21:23 -0700592 "value" : "default",
593 "mask" : null,
594 "next_state" : "parse_ethernet"
595 }
596 ],
597 "transition_key" : [
598 {
599 "type" : "field",
Daniele Moro693d76f2019-09-24 14:34:07 -0700600 "value" : ["scalars", "tmp_2"]
Yi Tsengbe342052017-11-03 10:21:23 -0700601 }
602 ]
603 },
604 {
Daniele Moro7c3a0022019-07-12 13:38:34 -0700605 "name" : "parse_ipv4",
606 "id" : 7,
607 "parser_ops" : [
608 {
609 "parameters" : [
610 {
Yi Tsengbe342052017-11-03 10:21:23 -0700611 "type" : "regular",
612 "value" : "ipv4"
613 }
614 ],
615 "op" : "extract"
616 },
617 {
618 "parameters" : [
619 {
620 "type" : "field",
621 "value" : ["scalars", "fabric_metadata_t.ip_proto"]
622 },
623 {
624 "type" : "field",
625 "value" : ["ipv4", "protocol"]
626 }
627 ],
628 "op" : "set"
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800629 },
630 {
631 "parameters" : [
632 {
633 "type" : "field",
634 "value" : ["scalars", "fabric_metadata_t.ip_eth_type"]
635 },
636 {
637 "type" : "hexstr",
638 "value" : "0x0800"
639 }
640 ],
641 "op" : "set"
Robert MacDavid1d475692020-05-21 21:32:38 -0400642 },
643 {
644 "parameters" : [
645 {
646 "type" : "field",
647 "value" : ["scalars", "fabric_metadata_t.ipv4_src_addr"]
648 },
649 {
650 "type" : "field",
651 "value" : ["ipv4", "src_addr"]
652 }
653 ],
654 "op" : "set"
655 },
656 {
657 "parameters" : [
658 {
659 "type" : "field",
660 "value" : ["scalars", "fabric_metadata_t.ipv4_dst_addr"]
661 },
662 {
663 "type" : "field",
664 "value" : ["ipv4", "dst_addr"]
665 }
666 ],
667 "op" : "set"
Yi Tsengbe342052017-11-03 10:21:23 -0700668 }
669 ],
670 "transitions" : [
671 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800672 "type" : "hexstr",
Yi Tsengbe342052017-11-03 10:21:23 -0700673 "value" : "0x06",
674 "mask" : null,
675 "next_state" : "parse_tcp"
676 },
677 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800678 "type" : "hexstr",
Yi Tsengbe342052017-11-03 10:21:23 -0700679 "value" : "0x11",
680 "mask" : null,
681 "next_state" : "parse_udp"
682 },
683 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800684 "type" : "hexstr",
Yi Tsengbe342052017-11-03 10:21:23 -0700685 "value" : "0x01",
686 "mask" : null,
687 "next_state" : "parse_icmp"
688 },
689 {
690 "value" : "default",
691 "mask" : null,
692 "next_state" : null
693 }
694 ],
695 "transition_key" : [
696 {
697 "type" : "field",
698 "value" : ["ipv4", "protocol"]
699 }
700 ]
701 },
702 {
Yi Tsengbe342052017-11-03 10:21:23 -0700703 "name" : "parse_tcp",
Daniele Moro7c3a0022019-07-12 13:38:34 -0700704 "id" : 8,
Yi Tsengbe342052017-11-03 10:21:23 -0700705 "parser_ops" : [
706 {
707 "parameters" : [
708 {
709 "type" : "regular",
710 "value" : "tcp"
711 }
712 ],
713 "op" : "extract"
714 },
715 {
716 "parameters" : [
717 {
718 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800719 "value" : ["scalars", "fabric_metadata_t.l4_sport"]
Yi Tsengbe342052017-11-03 10:21:23 -0700720 },
721 {
722 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800723 "value" : ["tcp", "sport"]
Yi Tsengbe342052017-11-03 10:21:23 -0700724 }
725 ],
726 "op" : "set"
727 },
728 {
729 "parameters" : [
730 {
731 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800732 "value" : ["scalars", "fabric_metadata_t.l4_dport"]
Yi Tsengbe342052017-11-03 10:21:23 -0700733 },
734 {
735 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800736 "value" : ["tcp", "dport"]
Yi Tsengbe342052017-11-03 10:21:23 -0700737 }
738 ],
739 "op" : "set"
740 }
741 ],
742 "transitions" : [
743 {
744 "value" : "default",
745 "mask" : null,
746 "next_state" : null
747 }
748 ],
749 "transition_key" : []
750 },
751 {
752 "name" : "parse_udp",
Daniele Moro7c3a0022019-07-12 13:38:34 -0700753 "id" : 9,
Yi Tsengbe342052017-11-03 10:21:23 -0700754 "parser_ops" : [
755 {
756 "parameters" : [
757 {
758 "type" : "regular",
759 "value" : "udp"
760 }
761 ],
762 "op" : "extract"
763 },
764 {
765 "parameters" : [
766 {
767 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800768 "value" : ["scalars", "fabric_metadata_t.l4_sport"]
Yi Tsengbe342052017-11-03 10:21:23 -0700769 },
770 {
771 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800772 "value" : ["udp", "sport"]
Yi Tsengbe342052017-11-03 10:21:23 -0700773 }
774 ],
775 "op" : "set"
776 },
777 {
778 "parameters" : [
779 {
780 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800781 "value" : ["scalars", "fabric_metadata_t.l4_dport"]
Yi Tsengbe342052017-11-03 10:21:23 -0700782 },
783 {
784 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800785 "value" : ["udp", "dport"]
Yi Tsengbe342052017-11-03 10:21:23 -0700786 }
787 ],
788 "op" : "set"
789 }
790 ],
791 "transitions" : [
792 {
793 "value" : "default",
794 "mask" : null,
795 "next_state" : null
796 }
797 ],
Carmelo Cascone79a3a312018-08-16 17:14:43 -0700798 "transition_key" : [
799 {
800 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800801 "value" : ["udp", "dport"]
Carmelo Cascone79a3a312018-08-16 17:14:43 -0700802 }
803 ]
Yi Tsengbe342052017-11-03 10:21:23 -0700804 },
805 {
806 "name" : "parse_icmp",
Daniele Moro7c3a0022019-07-12 13:38:34 -0700807 "id" : 10,
Yi Tsengbe342052017-11-03 10:21:23 -0700808 "parser_ops" : [
809 {
810 "parameters" : [
811 {
812 "type" : "regular",
813 "value" : "icmp"
814 }
815 ],
816 "op" : "extract"
817 }
818 ],
819 "transitions" : [
820 {
821 "value" : "default",
822 "mask" : null,
823 "next_state" : null
824 }
825 ],
826 "transition_key" : []
827 }
828 ]
829 }
830 ],
Yi Tseng27b9bc02018-04-12 14:52:40 +0800831 "parse_vsets" : [],
Yi Tsengbe342052017-11-03 10:21:23 -0700832 "deparsers" : [
833 {
834 "name" : "deparser",
835 "id" : 0,
836 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +0200837 "filename" : "include/parser.p4",
Robert MacDavid1d475692020-05-21 21:32:38 -0400838 "line" : 267,
Yi Tsengbe342052017-11-03 10:21:23 -0700839 "column" : 8,
840 "source_fragment" : "FabricDeparser"
841 },
Daniele Moro693d76f2019-09-24 14:34:07 -0700842 "order" : ["packet_in", "ethernet", "vlan_tag", "inner_vlan_tag", "eth_type", "mpls", "ipv4", "tcp", "udp", "icmp"]
Yi Tsengbe342052017-11-03 10:21:23 -0700843 }
844 ],
845 "meter_arrays" : [],
846 "counter_arrays" : [
847 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800848 "name" : "FabricIngress.filtering.ingress_port_vlan_counter",
Yi Tseng1d842672017-11-28 16:06:52 -0800849 "id" : 0,
Yi Tseng3a5731e2018-01-22 11:38:58 -0800850 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700851 "binding" : "FabricIngress.filtering.ingress_port_vlan",
852 "source_info" : {
853 "filename" : "include/control/filtering.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800854 "line" : 31,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700855 "column" : 50,
856 "source_fragment" : "ingress_port_vlan_counter"
857 }
Yi Tseng3a5731e2018-01-22 11:38:58 -0800858 },
859 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800860 "name" : "FabricIngress.filtering.fwd_classifier_counter",
Yi Tseng3a5731e2018-01-22 11:38:58 -0800861 "id" : 1,
862 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700863 "binding" : "FabricIngress.filtering.fwd_classifier",
864 "source_info" : {
865 "filename" : "include/control/filtering.p4",
Daniele Morodd0568b2019-11-01 14:01:46 -0700866 "line" : 85,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700867 "column" : 50,
868 "source_fragment" : "fwd_classifier_counter"
869 }
Yi Tseng3a5731e2018-01-22 11:38:58 -0800870 },
871 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800872 "name" : "FabricIngress.forwarding.bridging_counter",
Yi Tseng3a5731e2018-01-22 11:38:58 -0800873 "id" : 2,
874 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700875 "binding" : "FabricIngress.forwarding.bridging",
876 "source_info" : {
877 "filename" : "include/control/forwarding.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800878 "line" : 36,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700879 "column" : 50,
880 "source_fragment" : "bridging_counter"
881 }
Yi Tseng3a5731e2018-01-22 11:38:58 -0800882 },
883 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800884 "name" : "FabricIngress.forwarding.mpls_counter",
Yi Tseng3a5731e2018-01-22 11:38:58 -0800885 "id" : 3,
886 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700887 "binding" : "FabricIngress.forwarding.mpls",
888 "source_info" : {
889 "filename" : "include/control/forwarding.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -0700890 "line" : 63,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700891 "column" : 50,
892 "source_fragment" : "mpls_counter"
893 }
Yi Tseng3a5731e2018-01-22 11:38:58 -0800894 },
895 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800896 "name" : "FabricIngress.acl.acl_counter",
Daniele Moro693d76f2019-09-24 14:34:07 -0700897 "id" : 4,
Yi Tseng3a5731e2018-01-22 11:38:58 -0800898 "is_direct" : true,
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800899 "binding" : "FabricIngress.acl.acl",
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700900 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800901 "filename" : "include/control/acl.p4",
902 "line" : 30,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700903 "column" : 50,
904 "source_fragment" : "acl_counter"
905 }
Yi Tseng3a5731e2018-01-22 11:38:58 -0800906 },
907 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800908 "name" : "FabricIngress.next.next_vlan_counter",
Daniele Moro693d76f2019-09-24 14:34:07 -0700909 "id" : 5,
Yi Tseng47eac892018-07-11 02:17:04 +0800910 "is_direct" : true,
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800911 "binding" : "FabricIngress.next.next_vlan",
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700912 "source_info" : {
913 "filename" : "include/control/next.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800914 "line" : 67,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700915 "column" : 50,
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800916 "source_fragment" : "next_vlan_counter"
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700917 }
Yi Tseng20f9e7b2018-05-24 23:27:39 +0800918 },
919 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800920 "name" : "FabricIngress.next.xconnect_counter",
Daniele Moro693d76f2019-09-24 14:34:07 -0700921 "id" : 6,
Yi Tseng20f9e7b2018-05-24 23:27:39 +0800922 "is_direct" : true,
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800923 "binding" : "FabricIngress.next.xconnect",
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700924 "source_info" : {
925 "filename" : "include/control/next.p4",
Daniele Morodd0568b2019-11-01 14:01:46 -0700926 "line" : 107,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700927 "column" : 50,
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800928 "source_fragment" : "xconnect_counter"
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700929 }
Yi Tseng27b9bc02018-04-12 14:52:40 +0800930 },
931 {
932 "name" : "FabricIngress.next.hashed_counter",
Daniele Moro693d76f2019-09-24 14:34:07 -0700933 "id" : 7,
Yi Tseng27b9bc02018-04-12 14:52:40 +0800934 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700935 "binding" : "FabricIngress.next.hashed",
936 "source_info" : {
937 "filename" : "include/control/next.p4",
Daniele Morodd0568b2019-11-01 14:01:46 -0700938 "line" : 184,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700939 "column" : 50,
940 "source_fragment" : "hashed_counter"
941 }
Yi Tseng27b9bc02018-04-12 14:52:40 +0800942 },
943 {
Esin Karaman971fb7f2017-12-28 13:44:52 +0000944 "name" : "FabricIngress.next.multicast_counter",
Daniele Moro693d76f2019-09-24 14:34:07 -0700945 "id" : 8,
Esin Karaman971fb7f2017-12-28 13:44:52 +0000946 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700947 "binding" : "FabricIngress.next.multicast",
948 "source_info" : {
949 "filename" : "include/control/next.p4",
Daniele Morodd0568b2019-11-01 14:01:46 -0700950 "line" : 228,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700951 "column" : 50,
952 "source_fragment" : "multicast_counter"
953 }
Esin Karaman971fb7f2017-12-28 13:44:52 +0000954 },
955 {
956 "name" : "FabricIngress.port_counters_control.egress_port_counter",
Daniele Moro693d76f2019-09-24 14:34:07 -0700957 "id" : 9,
Yi Tsengbe342052017-11-03 10:21:23 -0700958 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +0200959 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800960 "line" : 26,
Yi Tseng3d3956d2018-01-31 17:28:05 -0800961 "column" : 48,
Yi Tsengbe342052017-11-03 10:21:23 -0700962 "source_fragment" : "egress_port_counter"
963 },
964 "size" : 511,
965 "is_direct" : false
966 },
967 {
Yi Tseng27b9bc02018-04-12 14:52:40 +0800968 "name" : "FabricIngress.port_counters_control.ingress_port_counter",
Daniele Moro693d76f2019-09-24 14:34:07 -0700969 "id" : 10,
Yi Tsengbe342052017-11-03 10:21:23 -0700970 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +0200971 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800972 "line" : 27,
Yi Tseng3d3956d2018-01-31 17:28:05 -0800973 "column" : 48,
Yi Tsengbe342052017-11-03 10:21:23 -0700974 "source_fragment" : "ingress_port_counter"
975 },
976 "size" : 511,
977 "is_direct" : false
Yi Tseng47eac892018-07-11 02:17:04 +0800978 },
979 {
980 "name" : "FabricEgress.egress_next.egress_vlan_counter",
Daniele Moro693d76f2019-09-24 14:34:07 -0700981 "id" : 11,
Yi Tseng47eac892018-07-11 02:17:04 +0800982 "is_direct" : true,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700983 "binding" : "FabricEgress.egress_next.egress_vlan",
984 "source_info" : {
985 "filename" : "include/control/next.p4",
Daniele Morodd0568b2019-11-01 14:01:46 -0700986 "line" : 313,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -0700987 "column" : 50,
988 "source_fragment" : "egress_vlan_counter"
989 }
Yi Tsengbe342052017-11-03 10:21:23 -0700990 }
991 ],
992 "register_arrays" : [],
993 "calculations" : [
994 {
995 "name" : "calc",
996 "id" : 0,
997 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +0200998 "filename" : "include/checksum.p4",
Carmelo Cascone6af4e172018-06-15 16:01:30 +0200999 "line" : 28,
Yi Tsengbe342052017-11-03 10:21:23 -07001000 "column" : 8,
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001001 "source_fragment" : "update_checksum(hdr.ipv4.isValid(), ..."
Yi Tsengbe342052017-11-03 10:21:23 -07001002 },
1003 "algo" : "csum16",
1004 "input" : [
1005 {
1006 "type" : "field",
1007 "value" : ["ipv4", "version"]
1008 },
1009 {
1010 "type" : "field",
1011 "value" : ["ipv4", "ihl"]
1012 },
1013 {
1014 "type" : "field",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09001015 "value" : ["ipv4", "dscp"]
1016 },
1017 {
1018 "type" : "field",
1019 "value" : ["ipv4", "ecn"]
Yi Tsengbe342052017-11-03 10:21:23 -07001020 },
1021 {
1022 "type" : "field",
1023 "value" : ["ipv4", "total_len"]
1024 },
1025 {
1026 "type" : "field",
1027 "value" : ["ipv4", "identification"]
1028 },
1029 {
1030 "type" : "field",
1031 "value" : ["ipv4", "flags"]
1032 },
1033 {
1034 "type" : "field",
1035 "value" : ["ipv4", "frag_offset"]
1036 },
1037 {
1038 "type" : "field",
1039 "value" : ["ipv4", "ttl"]
1040 },
1041 {
1042 "type" : "field",
1043 "value" : ["ipv4", "protocol"]
1044 },
1045 {
1046 "type" : "field",
1047 "value" : ["ipv4", "src_addr"]
1048 },
1049 {
1050 "type" : "field",
1051 "value" : ["ipv4", "dst_addr"]
1052 }
1053 ]
1054 },
1055 {
1056 "name" : "calc_0",
1057 "id" : 1,
1058 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001059 "filename" : "include/checksum.p4",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09001060 "line" : 57,
Yi Tsengbe342052017-11-03 10:21:23 -07001061 "column" : 8,
Carmelo Cascone6af4e172018-06-15 16:01:30 +02001062 "source_fragment" : "verify_checksum(hdr.ipv4.isValid(), ..."
Yi Tsengbe342052017-11-03 10:21:23 -07001063 },
1064 "algo" : "csum16",
1065 "input" : [
1066 {
1067 "type" : "field",
1068 "value" : ["ipv4", "version"]
1069 },
1070 {
1071 "type" : "field",
1072 "value" : ["ipv4", "ihl"]
1073 },
1074 {
1075 "type" : "field",
Jonghwan Hyuned478dc2018-08-06 15:35:18 +09001076 "value" : ["ipv4", "dscp"]
1077 },
1078 {
1079 "type" : "field",
1080 "value" : ["ipv4", "ecn"]
Yi Tsengbe342052017-11-03 10:21:23 -07001081 },
1082 {
1083 "type" : "field",
1084 "value" : ["ipv4", "total_len"]
1085 },
1086 {
1087 "type" : "field",
1088 "value" : ["ipv4", "identification"]
1089 },
1090 {
1091 "type" : "field",
1092 "value" : ["ipv4", "flags"]
1093 },
1094 {
1095 "type" : "field",
1096 "value" : ["ipv4", "frag_offset"]
1097 },
1098 {
1099 "type" : "field",
1100 "value" : ["ipv4", "ttl"]
1101 },
1102 {
1103 "type" : "field",
1104 "value" : ["ipv4", "protocol"]
1105 },
1106 {
1107 "type" : "field",
1108 "value" : ["ipv4", "src_addr"]
1109 },
1110 {
1111 "type" : "field",
1112 "value" : ["ipv4", "dst_addr"]
1113 }
1114 ]
Yi Tsengbe342052017-11-03 10:21:23 -07001115 }
1116 ],
1117 "learn_lists" : [],
1118 "actions" : [
1119 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001120 "name" : "nop",
Yi Tsengbe342052017-11-03 10:21:23 -07001121 "id" : 0,
1122 "runtime_data" : [],
1123 "primitives" : []
1124 },
1125 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001126 "name" : "nop",
Yi Tsengbe342052017-11-03 10:21:23 -07001127 "id" : 1,
1128 "runtime_data" : [],
1129 "primitives" : []
1130 },
1131 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001132 "name" : "nop",
Yi Tsengbe342052017-11-03 10:21:23 -07001133 "id" : 2,
1134 "runtime_data" : [],
Yi Tseng1d842672017-11-28 16:06:52 -08001135 "primitives" : []
Yi Tsengbe342052017-11-03 10:21:23 -07001136 },
1137 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001138 "name" : "nop",
Yi Tsengbe342052017-11-03 10:21:23 -07001139 "id" : 3,
1140 "runtime_data" : [],
Yi Tseng1d842672017-11-28 16:06:52 -08001141 "primitives" : []
Yi Tsengbe342052017-11-03 10:21:23 -07001142 },
1143 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001144 "name" : "nop",
Yi Tsengbe342052017-11-03 10:21:23 -07001145 "id" : 4,
1146 "runtime_data" : [],
1147 "primitives" : []
1148 },
1149 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001150 "name" : "nop",
Yi Tsengbe342052017-11-03 10:21:23 -07001151 "id" : 5,
1152 "runtime_data" : [],
1153 "primitives" : []
1154 },
1155 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07001156 "name" : "nop",
Yi Tsengbe342052017-11-03 10:21:23 -07001157 "id" : 6,
1158 "runtime_data" : [],
1159 "primitives" : []
1160 },
1161 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001162 "name" : "FabricIngress.filtering.deny",
Carmelo Cascone8a715f82018-08-20 23:16:27 -07001163 "id" : 7,
Yi Tseng47eac892018-07-11 02:17:04 +08001164 "runtime_data" : [],
Yi Tseng1d842672017-11-28 16:06:52 -08001165 "primitives" : [
1166 {
Yi Tsengbe342052017-11-03 10:21:23 -07001167 "op" : "assign",
1168 "parameters" : [
1169 {
1170 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001171 "value" : ["scalars", "fabric_metadata_t.skip_forwarding"]
Yi Tsengbe342052017-11-03 10:21:23 -07001172 },
1173 {
1174 "type" : "expression",
1175 "value" : {
1176 "type" : "expression",
1177 "value" : {
1178 "op" : "b2d",
1179 "left" : null,
1180 "right" : {
1181 "type" : "bool",
1182 "value" : true
1183 }
1184 }
1185 }
1186 }
1187 ],
1188 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001189 "filename" : "include/control/filtering.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001190 "line" : 36,
Yi Tsengbe342052017-11-03 10:21:23 -07001191 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001192 "source_fragment" : "fabric_metadata.skip_forwarding = true"
1193 }
1194 },
1195 {
1196 "op" : "assign",
1197 "parameters" : [
1198 {
1199 "type" : "field",
1200 "value" : ["scalars", "fabric_metadata_t.skip_next"]
1201 },
1202 {
1203 "type" : "expression",
1204 "value" : {
1205 "type" : "expression",
1206 "value" : {
1207 "op" : "b2d",
1208 "left" : null,
1209 "right" : {
1210 "type" : "bool",
1211 "value" : true
1212 }
1213 }
1214 }
1215 }
1216 ],
1217 "source_info" : {
1218 "filename" : "include/control/filtering.p4",
1219 "line" : 37,
1220 "column" : 8,
1221 "source_fragment" : "fabric_metadata.skip_next = true"
Yi Tsengbe342052017-11-03 10:21:23 -07001222 }
1223 }
1224 ]
1225 },
1226 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001227 "name" : "FabricIngress.filtering.permit",
1228 "id" : 8,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07001229 "runtime_data" : [],
1230 "primitives" : []
1231 },
1232 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001233 "name" : "FabricIngress.filtering.permit_with_internal_vlan",
1234 "id" : 9,
1235 "runtime_data" : [
1236 {
1237 "name" : "vlan_id",
1238 "bitwidth" : 12
1239 }
1240 ],
1241 "primitives" : [
1242 {
1243 "op" : "assign",
1244 "parameters" : [
1245 {
1246 "type" : "field",
1247 "value" : ["scalars", "fabric_metadata_t.vlan_id"]
1248 },
1249 {
1250 "type" : "runtime_data",
1251 "value" : 0
1252 }
1253 ],
1254 "source_info" : {
1255 "filename" : "include/control/filtering.p4",
1256 "line" : 47,
1257 "column" : 8,
1258 "source_fragment" : "fabric_metadata.vlan_id = vlan_id"
1259 }
1260 }
1261 ]
1262 },
1263 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08001264 "name" : "FabricIngress.filtering.set_forwarding_type",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001265 "id" : 10,
Yi Tsengbe342052017-11-03 10:21:23 -07001266 "runtime_data" : [
1267 {
1268 "name" : "fwd_type",
1269 "bitwidth" : 3
1270 }
1271 ],
1272 "primitives" : [
1273 {
1274 "op" : "assign",
1275 "parameters" : [
1276 {
1277 "type" : "field",
1278 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
1279 },
1280 {
1281 "type" : "runtime_data",
1282 "value" : 0
1283 }
1284 ],
1285 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001286 "filename" : "include/control/filtering.p4",
Daniele Morodd0568b2019-11-01 14:01:46 -07001287 "line" : 88,
Yi Tsengbe342052017-11-03 10:21:23 -07001288 "column" : 8,
1289 "source_fragment" : "fabric_metadata.fwd_type = fwd_type"
1290 }
1291 }
1292 ]
1293 },
1294 {
Yi Tseng47eac892018-07-11 02:17:04 +08001295 "name" : "FabricIngress.forwarding.set_next_id_bridging",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001296 "id" : 11,
Carmelo Casconef645e842018-07-16 18:31:52 +02001297 "runtime_data" : [
1298 {
1299 "name" : "next_id",
1300 "bitwidth" : 32
1301 }
1302 ],
1303 "primitives" : [
1304 {
1305 "op" : "assign",
1306 "parameters" : [
1307 {
1308 "type" : "field",
1309 "value" : ["scalars", "fabric_metadata_t.next_id"]
1310 },
1311 {
1312 "type" : "runtime_data",
1313 "value" : 0
1314 }
1315 ],
1316 "source_info" : {
1317 "filename" : "include/control/forwarding.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001318 "line" : 30,
Carmelo Casconef645e842018-07-16 18:31:52 +02001319 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001320 "source_fragment" : "fabric_metadata.next_id = next_id; ..."
Carmelo Casconef645e842018-07-16 18:31:52 +02001321 }
1322 }
1323 ]
1324 },
1325 {
1326 "name" : "FabricIngress.forwarding.pop_mpls_and_next",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001327 "id" : 12,
Carmelo Casconef645e842018-07-16 18:31:52 +02001328 "runtime_data" : [
1329 {
1330 "name" : "next_id",
1331 "bitwidth" : 32
1332 }
1333 ],
1334 "primitives" : [
1335 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001336 "op" : "assign",
Carmelo Casconef645e842018-07-16 18:31:52 +02001337 "parameters" : [
1338 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001339 "type" : "field",
1340 "value" : ["scalars", "fabric_metadata_t.mpls_label"]
1341 },
1342 {
1343 "type" : "hexstr",
1344 "value" : "0x000000"
Carmelo Casconef645e842018-07-16 18:31:52 +02001345 }
1346 ],
1347 "source_info" : {
1348 "filename" : "include/control/forwarding.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07001349 "line" : 66,
Carmelo Casconef645e842018-07-16 18:31:52 +02001350 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001351 "source_fragment" : "fabric_metadata.mpls_label = 0"
Carmelo Casconef645e842018-07-16 18:31:52 +02001352 }
1353 },
1354 {
1355 "op" : "assign",
1356 "parameters" : [
1357 {
1358 "type" : "field",
1359 "value" : ["scalars", "fabric_metadata_t.next_id"]
1360 },
1361 {
1362 "type" : "runtime_data",
1363 "value" : 0
1364 }
1365 ],
1366 "source_info" : {
1367 "filename" : "include/control/forwarding.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001368 "line" : 30,
Carmelo Casconef645e842018-07-16 18:31:52 +02001369 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001370 "source_fragment" : "fabric_metadata.next_id = next_id; ..."
Carmelo Casconef645e842018-07-16 18:31:52 +02001371 }
1372 }
1373 ]
1374 },
1375 {
Charles Chan384aea22018-08-23 22:08:02 -07001376 "name" : "FabricIngress.forwarding.set_next_id_routing_v4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001377 "id" : 13,
Carmelo Casconef645e842018-07-16 18:31:52 +02001378 "runtime_data" : [
1379 {
1380 "name" : "next_id",
1381 "bitwidth" : 32
1382 }
1383 ],
1384 "primitives" : [
1385 {
1386 "op" : "assign",
1387 "parameters" : [
1388 {
1389 "type" : "field",
1390 "value" : ["scalars", "fabric_metadata_t.next_id"]
1391 },
1392 {
1393 "type" : "runtime_data",
1394 "value" : 0
1395 }
1396 ],
1397 "source_info" : {
1398 "filename" : "include/control/forwarding.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001399 "line" : 30,
Carmelo Casconef645e842018-07-16 18:31:52 +02001400 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001401 "source_fragment" : "fabric_metadata.next_id = next_id; ..."
Carmelo Casconef645e842018-07-16 18:31:52 +02001402 }
1403 }
1404 ]
1405 },
1406 {
Charles Chancd03f072018-08-31 17:46:37 -07001407 "name" : "FabricIngress.forwarding.nop_routing_v4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001408 "id" : 14,
Charles Chancd03f072018-08-31 17:46:37 -07001409 "runtime_data" : [],
1410 "primitives" : []
1411 },
1412 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001413 "name" : "FabricIngress.acl.set_next_id_acl",
1414 "id" : 15,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001415 "runtime_data" : [
1416 {
1417 "name" : "next_id",
1418 "bitwidth" : 32
1419 }
1420 ],
1421 "primitives" : [
1422 {
Esin Karaman971fb7f2017-12-28 13:44:52 +00001423 "op" : "assign",
1424 "parameters" : [
1425 {
1426 "type" : "field",
1427 "value" : ["scalars", "fabric_metadata_t.next_id"]
1428 },
1429 {
1430 "type" : "runtime_data",
1431 "value" : 0
1432 }
1433 ],
1434 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001435 "filename" : "include/control/acl.p4",
1436 "line" : 33,
Yi Tseng47eac892018-07-11 02:17:04 +08001437 "column" : 8,
1438 "source_fragment" : "fabric_metadata.next_id = next_id"
1439 }
1440 }
1441 ]
1442 },
1443 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001444 "name" : "FabricIngress.acl.punt_to_cpu",
1445 "id" : 16,
Yi Tsengbe342052017-11-03 10:21:23 -07001446 "runtime_data" : [],
1447 "primitives" : [
1448 {
1449 "op" : "assign",
1450 "parameters" : [
1451 {
1452 "type" : "field",
Yi Tsengbe342052017-11-03 10:21:23 -07001453 "value" : ["standard_metadata", "egress_spec"]
1454 },
1455 {
1456 "type" : "hexstr",
1457 "value" : "0x00ff"
1458 }
1459 ],
1460 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001461 "filename" : "include/control/acl.p4",
1462 "line" : 39,
Carmelo Casconeb531b682018-01-30 17:55:56 -08001463 "column" : 8,
1464 "source_fragment" : "standard_metadata.egress_spec = 255"
Yi Tsengbe342052017-11-03 10:21:23 -07001465 }
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001466 },
1467 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001468 "op" : "assign",
1469 "parameters" : [
1470 {
1471 "type" : "field",
1472 "value" : ["scalars", "fabric_metadata_t.skip_next"]
1473 },
1474 {
1475 "type" : "expression",
1476 "value" : {
1477 "type" : "expression",
1478 "value" : {
1479 "op" : "b2d",
1480 "left" : null,
1481 "right" : {
1482 "type" : "bool",
1483 "value" : true
1484 }
1485 }
1486 }
1487 }
1488 ],
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001489 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001490 "filename" : "include/control/acl.p4",
1491 "line" : 40,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001492 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001493 "source_fragment" : "fabric_metadata.skip_next = true"
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001494 }
1495 }
1496 ]
1497 },
1498 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07001499 "name" : "FabricIngress.acl.set_clone_session_id",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001500 "id" : 17,
Daniele Moro01ca2ab2019-06-25 11:48:48 -07001501 "runtime_data" : [
1502 {
1503 "name" : "clone_id",
1504 "bitwidth" : 32
1505 }
1506 ],
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001507 "primitives" : [
1508 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07001509 "op" : "clone_ingress_pkt_to_egress",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001510 "parameters" : [
1511 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07001512 "type" : "runtime_data",
1513 "value" : 0
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001514 },
1515 {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07001516 "type" : "hexstr",
1517 "value" : "0x1"
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001518 }
1519 ],
1520 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001521 "filename" : "include/control/acl.p4",
1522 "line" : 46,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001523 "column" : 8,
Daniele Moro3b7a21b2019-06-25 17:33:40 -07001524 "source_fragment" : "clone3(CloneType.I2E, clone_id, {standard_metadata.ingress_port})"
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001525 }
Yi Tsengbe342052017-11-03 10:21:23 -07001526 }
1527 ]
1528 },
1529 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001530 "name" : "FabricIngress.acl.drop",
1531 "id" : 18,
Yi Tseng47eac892018-07-11 02:17:04 +08001532 "runtime_data" : [],
1533 "primitives" : [
1534 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07001535 "op" : "mark_to_drop",
1536 "parameters" : [
1537 {
1538 "type" : "header",
1539 "value" : "standard_metadata"
1540 }
1541 ],
Yi Tseng47eac892018-07-11 02:17:04 +08001542 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001543 "filename" : "include/control/acl.p4",
1544 "line" : 51,
Yi Tseng47eac892018-07-11 02:17:04 +08001545 "column" : 8,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07001546 "source_fragment" : "mark_to_drop(standard_metadata)"
Yi Tseng47eac892018-07-11 02:17:04 +08001547 }
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001548 },
1549 {
1550 "op" : "assign",
1551 "parameters" : [
1552 {
1553 "type" : "field",
1554 "value" : ["scalars", "fabric_metadata_t.skip_next"]
1555 },
1556 {
1557 "type" : "expression",
1558 "value" : {
1559 "type" : "expression",
1560 "value" : {
1561 "op" : "b2d",
1562 "left" : null,
1563 "right" : {
1564 "type" : "bool",
1565 "value" : true
1566 }
1567 }
1568 }
1569 }
1570 ],
1571 "source_info" : {
1572 "filename" : "include/control/acl.p4",
1573 "line" : 52,
1574 "column" : 8,
1575 "source_fragment" : "fabric_metadata.skip_next = true"
1576 }
Yi Tseng47eac892018-07-11 02:17:04 +08001577 }
1578 ]
1579 },
1580 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001581 "name" : "FabricIngress.acl.nop_acl",
1582 "id" : 19,
Charles Chancf696e52018-08-16 16:25:13 -07001583 "runtime_data" : [],
1584 "primitives" : []
1585 },
1586 {
Yi Tseng47eac892018-07-11 02:17:04 +08001587 "name" : "FabricIngress.next.set_vlan",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001588 "id" : 20,
1589 "runtime_data" : [
1590 {
1591 "name" : "vlan_id",
1592 "bitwidth" : 12
1593 }
1594 ],
1595 "primitives" : [
1596 {
1597 "op" : "assign",
1598 "parameters" : [
1599 {
1600 "type" : "field",
1601 "value" : ["scalars", "fabric_metadata_t.vlan_id"]
1602 },
1603 {
1604 "type" : "runtime_data",
1605 "value" : 0
1606 }
1607 ],
1608 "source_info" : {
1609 "filename" : "include/control/next.p4",
1610 "line" : 70,
1611 "column" : 8,
1612 "source_fragment" : "fabric_metadata.vlan_id = vlan_id"
1613 }
1614 }
1615 ]
1616 },
1617 {
1618 "name" : "FabricIngress.next.output_xconnect",
Charles Chancd03f072018-08-31 17:46:37 -07001619 "id" : 21,
Yi Tseng47eac892018-07-11 02:17:04 +08001620 "runtime_data" : [
1621 {
Yi Tsengbe342052017-11-03 10:21:23 -07001622 "name" : "port_num",
1623 "bitwidth" : 9
1624 }
1625 ],
1626 "primitives" : [
1627 {
1628 "op" : "assign",
1629 "parameters" : [
1630 {
1631 "type" : "field",
1632 "value" : ["standard_metadata", "egress_spec"]
1633 },
1634 {
1635 "type" : "runtime_data",
1636 "value" : 0
1637 }
1638 ],
1639 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001640 "filename" : "include/control/next.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001641 "line" : 31,
1642 "column" : 5,
Yi Tseng47eac892018-07-11 02:17:04 +08001643 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
1644 }
1645 }
1646 ]
1647 },
1648 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001649 "name" : "FabricIngress.next.set_next_id_xconnect",
1650 "id" : 22,
1651 "runtime_data" : [
1652 {
1653 "name" : "next_id",
1654 "bitwidth" : 32
1655 }
1656 ],
1657 "primitives" : [
1658 {
1659 "op" : "assign",
1660 "parameters" : [
1661 {
1662 "type" : "field",
1663 "value" : ["scalars", "fabric_metadata_t.next_id"]
1664 },
1665 {
1666 "type" : "runtime_data",
1667 "value" : 0
1668 }
1669 ],
1670 "source_info" : {
1671 "filename" : "include/control/next.p4",
Daniele Morodd0568b2019-11-01 14:01:46 -07001672 "line" : 115,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001673 "column" : 8,
1674 "source_fragment" : "fabric_metadata.next_id = next_id"
1675 }
1676 }
1677 ]
1678 },
1679 {
1680 "name" : "FabricIngress.next.output_hashed",
1681 "id" : 23,
1682 "runtime_data" : [
1683 {
1684 "name" : "port_num",
1685 "bitwidth" : 9
1686 }
1687 ],
1688 "primitives" : [
1689 {
1690 "op" : "assign",
1691 "parameters" : [
1692 {
1693 "type" : "field",
1694 "value" : ["standard_metadata", "egress_spec"]
1695 },
1696 {
1697 "type" : "runtime_data",
1698 "value" : 0
1699 }
1700 ],
1701 "source_info" : {
1702 "filename" : "include/control/next.p4",
1703 "line" : 31,
1704 "column" : 5,
1705 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
1706 }
1707 }
1708 ]
1709 },
1710 {
1711 "name" : "FabricIngress.next.routing_hashed",
Charles Chancd03f072018-08-31 17:46:37 -07001712 "id" : 24,
Yi Tseng47eac892018-07-11 02:17:04 +08001713 "runtime_data" : [
1714 {
1715 "name" : "port_num",
1716 "bitwidth" : 9
1717 },
1718 {
1719 "name" : "smac",
1720 "bitwidth" : 48
1721 },
1722 {
1723 "name" : "dmac",
1724 "bitwidth" : 48
1725 }
1726 ],
1727 "primitives" : [
1728 {
1729 "op" : "assign",
1730 "parameters" : [
1731 {
1732 "type" : "field",
1733 "value" : ["ethernet", "src_addr"]
1734 },
1735 {
1736 "type" : "runtime_data",
1737 "value" : 1
1738 }
1739 ],
1740 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001741 "filename" : "include/control/next.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001742 "line" : 36,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001743 "column" : 8,
Yi Tseng47eac892018-07-11 02:17:04 +08001744 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
1745 }
1746 },
1747 {
1748 "op" : "assign",
1749 "parameters" : [
1750 {
1751 "type" : "field",
1752 "value" : ["ethernet", "dst_addr"]
1753 },
1754 {
1755 "type" : "runtime_data",
1756 "value" : 2
1757 }
1758 ],
1759 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001760 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001761 "line" : 41,
1762 "column" : 8,
1763 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
1764 }
1765 },
1766 {
1767 "op" : "assign",
1768 "parameters" : [
1769 {
1770 "type" : "field",
1771 "value" : ["standard_metadata", "egress_spec"]
1772 },
1773 {
1774 "type" : "runtime_data",
1775 "value" : 0
1776 }
1777 ],
1778 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001779 "filename" : "include/control/next.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001780 "line" : 31,
1781 "column" : 5,
Yi Tseng47eac892018-07-11 02:17:04 +08001782 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001783 }
1784 }
1785 ]
1786 },
1787 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001788 "name" : "FabricIngress.next.mpls_routing_hashed",
Carmelo Casconef645e842018-07-16 18:31:52 +02001789 "id" : 25,
Esin Karaman971fb7f2017-12-28 13:44:52 +00001790 "runtime_data" : [
1791 {
1792 "name" : "port_num",
1793 "bitwidth" : 9
1794 },
1795 {
1796 "name" : "smac",
1797 "bitwidth" : 48
1798 },
1799 {
1800 "name" : "dmac",
1801 "bitwidth" : 48
Yi Tseng20f9e7b2018-05-24 23:27:39 +08001802 },
1803 {
Carmelo Cascone5bdffe72018-02-04 14:53:54 -08001804 "name" : "label",
1805 "bitwidth" : 20
Yi Tsengbe342052017-11-03 10:21:23 -07001806 }
1807 ],
1808 "primitives" : [
1809 {
1810 "op" : "assign",
1811 "parameters" : [
1812 {
1813 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001814 "value" : ["scalars", "fabric_metadata_t.mpls_label"]
1815 },
1816 {
1817 "type" : "runtime_data",
1818 "value" : 3
1819 }
1820 ],
1821 "source_info" : {
1822 "filename" : "include/control/next.p4",
1823 "line" : 46,
1824 "column" : 8,
1825 "source_fragment" : "fabric_metadata.mpls_label = label; ..."
1826 }
1827 },
1828 {
1829 "op" : "assign",
1830 "parameters" : [
1831 {
1832 "type" : "field",
Yi Tsengbe342052017-11-03 10:21:23 -07001833 "value" : ["ethernet", "src_addr"]
1834 },
1835 {
1836 "type" : "runtime_data",
1837 "value" : 1
1838 }
1839 ],
1840 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001841 "filename" : "include/control/next.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001842 "line" : 36,
Yi Tsengbe342052017-11-03 10:21:23 -07001843 "column" : 8,
1844 "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
1845 }
1846 },
1847 {
1848 "op" : "assign",
1849 "parameters" : [
1850 {
1851 "type" : "field",
1852 "value" : ["ethernet", "dst_addr"]
1853 },
1854 {
1855 "type" : "runtime_data",
1856 "value" : 2
1857 }
1858 ],
1859 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001860 "filename" : "include/control/next.p4",
Yi Tseng47eac892018-07-11 02:17:04 +08001861 "line" : 41,
Yi Tsengbe342052017-11-03 10:21:23 -07001862 "column" : 8,
1863 "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
1864 }
1865 },
1866 {
1867 "op" : "assign",
1868 "parameters" : [
1869 {
1870 "type" : "field",
1871 "value" : ["standard_metadata", "egress_spec"]
1872 },
1873 {
1874 "type" : "runtime_data",
1875 "value" : 0
1876 }
1877 ],
1878 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001879 "filename" : "include/control/next.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001880 "line" : 31,
1881 "column" : 5,
Yi Tsengbe342052017-11-03 10:21:23 -07001882 "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
1883 }
Yi Tsengbe342052017-11-03 10:21:23 -07001884 }
1885 ]
1886 },
1887 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001888 "name" : "FabricIngress.next.set_mcast_group_id",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001889 "id" : 26,
1890 "runtime_data" : [
1891 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001892 "name" : "group_id",
Esin Karaman971fb7f2017-12-28 13:44:52 +00001893 "bitwidth" : 16
1894 }
1895 ],
1896 "primitives" : [
1897 {
1898 "op" : "assign",
1899 "parameters" : [
1900 {
1901 "type" : "field",
1902 "value" : ["standard_metadata", "mcast_grp"]
1903 },
1904 {
1905 "type" : "runtime_data",
1906 "value" : 0
1907 }
1908 ],
1909 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001910 "filename" : "include/control/next.p4",
Daniele Morodd0568b2019-11-01 14:01:46 -07001911 "line" : 231,
Esin Karaman971fb7f2017-12-28 13:44:52 +00001912 "column" : 8,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001913 "source_fragment" : "standard_metadata.mcast_grp = group_id"
Esin Karaman971fb7f2017-12-28 13:44:52 +00001914 }
Carmelo Casconea5400af2018-07-17 22:11:54 +02001915 },
1916 {
1917 "op" : "assign",
1918 "parameters" : [
1919 {
1920 "type" : "field",
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001921 "value" : ["scalars", "fabric_metadata_t.is_multicast"]
Carmelo Casconea5400af2018-07-17 22:11:54 +02001922 },
1923 {
1924 "type" : "expression",
1925 "value" : {
1926 "type" : "expression",
1927 "value" : {
1928 "op" : "b2d",
1929 "left" : null,
1930 "right" : {
1931 "type" : "bool",
1932 "value" : true
1933 }
1934 }
1935 }
1936 }
1937 ],
1938 "source_info" : {
1939 "filename" : "include/control/next.p4",
Daniele Morodd0568b2019-11-01 14:01:46 -07001940 "line" : 232,
Carmelo Casconea5400af2018-07-17 22:11:54 +02001941 "column" : 8,
Carmelo Cascone1e8843f2018-07-19 19:01:12 +02001942 "source_fragment" : "fabric_metadata.is_multicast = true"
Carmelo Casconea5400af2018-07-17 22:11:54 +02001943 }
Esin Karaman971fb7f2017-12-28 13:44:52 +00001944 }
1945 ]
1946 },
1947 {
1948 "name" : "act",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001949 "id" : 27,
Yi Tsengbe342052017-11-03 10:21:23 -07001950 "runtime_data" : [],
1951 "primitives" : [
1952 {
1953 "op" : "assign",
1954 "parameters" : [
1955 {
1956 "type" : "field",
1957 "value" : ["standard_metadata", "egress_spec"]
1958 },
1959 {
1960 "type" : "field",
1961 "value" : ["packet_out", "egress_port"]
1962 }
1963 ],
1964 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001965 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001966 "line" : 25,
Yi Tsengbe342052017-11-03 10:21:23 -07001967 "column" : 12,
1968 "source_fragment" : "standard_metadata.egress_spec = hdr.packet_out.egress_port"
1969 }
Yi Tseng1d842672017-11-28 16:06:52 -08001970 },
1971 {
1972 "op" : "remove_header",
1973 "parameters" : [
1974 {
1975 "type" : "header",
1976 "value" : "packet_out"
1977 }
1978 ],
1979 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02001980 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08001981 "line" : 26,
Yi Tseng1d842672017-11-28 16:06:52 -08001982 "column" : 12,
1983 "source_fragment" : "hdr.packet_out.setInvalid()"
1984 }
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07001985 },
1986 {
1987 "op" : "assign",
1988 "parameters" : [
1989 {
1990 "type" : "field",
1991 "value" : ["scalars", "fabric_metadata_t.is_controller_packet_out"]
1992 },
1993 {
1994 "type" : "expression",
1995 "value" : {
1996 "type" : "expression",
1997 "value" : {
1998 "op" : "b2d",
1999 "left" : null,
2000 "right" : {
2001 "type" : "bool",
2002 "value" : true
2003 }
2004 }
2005 }
2006 }
2007 ],
2008 "source_info" : {
2009 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002010 "line" : 27,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07002011 "column" : 12,
2012 "source_fragment" : "fabric_metadata.is_controller_packet_out = true"
2013 }
Carmelo Cascone9b607da2019-05-08 14:03:01 -07002014 },
2015 {
2016 "op" : "exit",
2017 "parameters" : [],
2018 "source_info" : {
2019 "filename" : "include/control/packetio.p4",
2020 "line" : 29,
2021 "column" : 12,
2022 "source_fragment" : "exit"
2023 }
Yi Tsengbe342052017-11-03 10:21:23 -07002024 }
2025 ]
2026 },
2027 {
2028 "name" : "act_0",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002029 "id" : 28,
Yi Tsengbe342052017-11-03 10:21:23 -07002030 "runtime_data" : [],
2031 "primitives" : [
2032 {
2033 "op" : "assign",
2034 "parameters" : [
2035 {
2036 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002037 "value" : ["scalars", "fabric_metadata_t.vlan_id"]
2038 },
2039 {
2040 "type" : "field",
2041 "value" : ["vlan_tag", "vlan_id"]
2042 }
2043 ],
2044 "source_info" : {
2045 "filename" : "include/control/filtering.p4",
Daniele Morodd0568b2019-11-01 14:01:46 -07002046 "line" : 111,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002047 "column" : 12,
2048 "source_fragment" : "fabric_metadata.vlan_id = hdr.vlan_tag.vlan_id"
2049 }
2050 },
2051 {
2052 "op" : "assign",
2053 "parameters" : [
2054 {
2055 "type" : "field",
2056 "value" : ["scalars", "fabric_metadata_t.vlan_pri"]
2057 },
2058 {
2059 "type" : "field",
2060 "value" : ["vlan_tag", "pri"]
2061 }
2062 ],
2063 "source_info" : {
2064 "filename" : "include/control/filtering.p4",
Daniele Morodd0568b2019-11-01 14:01:46 -07002065 "line" : 112,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002066 "column" : 12,
2067 "source_fragment" : "fabric_metadata.vlan_pri = hdr.vlan_tag.pri"
2068 }
2069 },
2070 {
2071 "op" : "assign",
2072 "parameters" : [
2073 {
2074 "type" : "field",
2075 "value" : ["scalars", "fabric_metadata_t.vlan_cfi"]
2076 },
2077 {
2078 "type" : "field",
2079 "value" : ["vlan_tag", "cfi"]
2080 }
2081 ],
2082 "source_info" : {
2083 "filename" : "include/control/filtering.p4",
Daniele Morodd0568b2019-11-01 14:01:46 -07002084 "line" : 113,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002085 "column" : 12,
2086 "source_fragment" : "fabric_metadata.vlan_cfi = hdr.vlan_tag.cfi"
2087 }
Yi Tseng1d842672017-11-28 16:06:52 -08002088 }
2089 ]
2090 },
2091 {
2092 "name" : "act_1",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002093 "id" : 29,
Yi Tseng1d842672017-11-28 16:06:52 -08002094 "runtime_data" : [],
2095 "primitives" : [
2096 {
2097 "op" : "assign",
2098 "parameters" : [
2099 {
2100 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002101 "value" : ["scalars", "fabric_metadata_t.mpls_ttl"]
2102 },
2103 {
2104 "type" : "hexstr",
2105 "value" : "0x41"
2106 }
2107 ],
2108 "source_info" : {
2109 "filename" : "include/control/filtering.p4",
Daniele Morodd0568b2019-11-01 14:01:46 -07002110 "line" : 127,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002111 "column" : 12,
2112 "source_fragment" : "fabric_metadata.mpls_ttl = DEFAULT_MPLS_TTL + 1"
2113 }
2114 }
2115 ]
2116 },
2117 {
2118 "name" : "act_2",
2119 "id" : 30,
2120 "runtime_data" : [],
2121 "primitives" : [
2122 {
2123 "op" : "assign",
2124 "parameters" : [
2125 {
2126 "type" : "field",
2127 "value" : ["scalars", "tmp"]
Yi Tseng1d842672017-11-28 16:06:52 -08002128 },
2129 {
2130 "type" : "expression",
2131 "value" : {
2132 "type" : "expression",
2133 "value" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002134 "op" : "&",
2135 "left" : {
2136 "type" : "field",
2137 "value" : ["standard_metadata", "egress_spec"]
2138 },
Yi Tseng1d842672017-11-28 16:06:52 -08002139 "right" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002140 "type" : "hexstr",
2141 "value" : "0xffffffff"
Yi Tseng1d842672017-11-28 16:06:52 -08002142 }
2143 }
2144 }
2145 }
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002146 ],
2147 "source_info" : {
2148 "filename" : "include/control/port_counter.p4",
2149 "line" : 31,
2150 "column" : 38,
2151 "source_fragment" : "(bit<32>)standard_metadata.egress_spec"
2152 }
2153 },
Carmelo Casconea5400af2018-07-17 22:11:54 +02002154 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002155 "op" : "count",
Carmelo Casconea5400af2018-07-17 22:11:54 +02002156 "parameters" : [
2157 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002158 "type" : "counter_array",
2159 "value" : "FabricIngress.port_counters_control.egress_port_counter"
Carmelo Casconea5400af2018-07-17 22:11:54 +02002160 },
2161 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002162 "type" : "field",
2163 "value" : ["scalars", "tmp"]
Carmelo Casconea5400af2018-07-17 22:11:54 +02002164 }
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002165 ],
2166 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002167 "filename" : "include/control/port_counter.p4",
2168 "line" : 31,
2169 "column" : 12,
2170 "source_fragment" : "egress_port_counter.count((bit<32>)standard_metadata.egress_spec)"
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002171 }
Carmelo Casconea5400af2018-07-17 22:11:54 +02002172 }
2173 ]
2174 },
2175 {
Daniele Moro693d76f2019-09-24 14:34:07 -07002176 "name" : "act_3",
2177 "id" : 31,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002178 "runtime_data" : [],
2179 "primitives" : [
2180 {
2181 "op" : "assign",
2182 "parameters" : [
2183 {
2184 "type" : "field",
Daniele Moro693d76f2019-09-24 14:34:07 -07002185 "value" : ["scalars", "tmp_3"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002186 },
2187 {
2188 "type" : "expression",
2189 "value" : {
2190 "type" : "expression",
2191 "value" : {
2192 "op" : "&",
2193 "left" : {
2194 "type" : "field",
2195 "value" : ["standard_metadata", "ingress_port"]
2196 },
2197 "right" : {
2198 "type" : "hexstr",
2199 "value" : "0xffffffff"
2200 }
2201 }
2202 }
2203 }
2204 ],
2205 "source_info" : {
2206 "filename" : "include/control/port_counter.p4",
2207 "line" : 34,
2208 "column" : 39,
2209 "source_fragment" : "(bit<32>)standard_metadata.ingress_port"
2210 }
2211 },
2212 {
2213 "op" : "count",
2214 "parameters" : [
2215 {
2216 "type" : "counter_array",
2217 "value" : "FabricIngress.port_counters_control.ingress_port_counter"
2218 },
2219 {
2220 "type" : "field",
Daniele Moro693d76f2019-09-24 14:34:07 -07002221 "value" : ["scalars", "tmp_3"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002222 }
2223 ],
2224 "source_info" : {
2225 "filename" : "include/control/port_counter.p4",
2226 "line" : 34,
2227 "column" : 12,
2228 "source_fragment" : "ingress_port_counter.count((bit<32>)standard_metadata.ingress_port)"
2229 }
2230 }
2231 ]
2232 },
2233 {
2234 "name" : "nop",
Daniele Moro693d76f2019-09-24 14:34:07 -07002235 "id" : 32,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002236 "runtime_data" : [],
2237 "primitives" : []
2238 },
2239 {
2240 "name" : "FabricEgress.egress_next.pop_mpls_if_present",
Daniele Moro693d76f2019-09-24 14:34:07 -07002241 "id" : 33,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002242 "runtime_data" : [],
2243 "primitives" : [
2244 {
2245 "op" : "remove_header",
2246 "parameters" : [
2247 {
2248 "type" : "header",
2249 "value" : "mpls"
2250 }
2251 ],
2252 "source_info" : {
2253 "filename" : "include/control/next.p4",
Daniele Morodd0568b2019-11-01 14:01:46 -07002254 "line" : 270,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002255 "column" : 8,
2256 "source_fragment" : "hdr.mpls.setInvalid()"
2257 }
2258 },
2259 {
2260 "op" : "assign",
2261 "parameters" : [
2262 {
2263 "type" : "field",
Daniele Moro693d76f2019-09-24 14:34:07 -07002264 "value" : ["eth_type", "value"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002265 },
2266 {
2267 "type" : "field",
2268 "value" : ["scalars", "fabric_metadata_t.ip_eth_type"]
2269 }
2270 ],
2271 "source_info" : {
2272 "filename" : "include/control/next.p4",
Daniele Morodd0568b2019-11-01 14:01:46 -07002273 "line" : 272,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002274 "column" : 8,
Daniele Moro693d76f2019-09-24 14:34:07 -07002275 "source_fragment" : "hdr.eth_type.value = fabric_metadata.ip_eth_type"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002276 }
2277 }
2278 ]
2279 },
2280 {
2281 "name" : "FabricEgress.egress_next.set_mpls",
Daniele Moro693d76f2019-09-24 14:34:07 -07002282 "id" : 34,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002283 "runtime_data" : [],
2284 "primitives" : [
2285 {
2286 "op" : "add_header",
2287 "parameters" : [
2288 {
2289 "type" : "header",
2290 "value" : "mpls"
2291 }
2292 ],
2293 "source_info" : {
2294 "filename" : "include/control/next.p4",
Daniele Morodd0568b2019-11-01 14:01:46 -07002295 "line" : 277,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002296 "column" : 8,
2297 "source_fragment" : "hdr.mpls.setValid()"
2298 }
2299 },
2300 {
2301 "op" : "assign",
2302 "parameters" : [
2303 {
2304 "type" : "field",
2305 "value" : ["mpls", "label"]
2306 },
2307 {
2308 "type" : "field",
2309 "value" : ["scalars", "fabric_metadata_t.mpls_label"]
2310 }
2311 ],
2312 "source_info" : {
2313 "filename" : "include/control/next.p4",
Daniele Morodd0568b2019-11-01 14:01:46 -07002314 "line" : 278,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002315 "column" : 8,
2316 "source_fragment" : "hdr.mpls.label = fabric_metadata.mpls_label"
2317 }
2318 },
2319 {
2320 "op" : "assign",
2321 "parameters" : [
2322 {
2323 "type" : "field",
2324 "value" : ["mpls", "tc"]
2325 },
2326 {
2327 "type" : "hexstr",
2328 "value" : "0x00"
2329 }
2330 ],
2331 "source_info" : {
2332 "filename" : "include/control/next.p4",
Daniele Morodd0568b2019-11-01 14:01:46 -07002333 "line" : 279,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002334 "column" : 8,
2335 "source_fragment" : "hdr.mpls.tc = 3w0"
2336 }
2337 },
2338 {
2339 "op" : "assign",
2340 "parameters" : [
2341 {
2342 "type" : "field",
2343 "value" : ["mpls", "bos"]
2344 },
2345 {
2346 "type" : "hexstr",
2347 "value" : "0x01"
2348 }
2349 ],
2350 "source_info" : {
2351 "filename" : "include/control/next.p4",
Daniele Morodd0568b2019-11-01 14:01:46 -07002352 "line" : 280,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002353 "column" : 8,
2354 "source_fragment" : "hdr.mpls.bos = 1w1"
2355 }
2356 },
2357 {
2358 "op" : "assign",
2359 "parameters" : [
2360 {
2361 "type" : "field",
2362 "value" : ["mpls", "ttl"]
2363 },
2364 {
2365 "type" : "field",
2366 "value" : ["scalars", "fabric_metadata_t.mpls_ttl"]
2367 }
2368 ],
2369 "source_info" : {
2370 "filename" : "include/control/next.p4",
Daniele Morodd0568b2019-11-01 14:01:46 -07002371 "line" : 281,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002372 "column" : 8,
2373 "source_fragment" : "hdr.mpls.ttl = fabric_metadata.mpls_ttl"
2374 }
2375 },
2376 {
2377 "op" : "assign",
2378 "parameters" : [
2379 {
2380 "type" : "field",
Daniele Moro693d76f2019-09-24 14:34:07 -07002381 "value" : ["eth_type", "value"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002382 },
2383 {
2384 "type" : "hexstr",
2385 "value" : "0x8847"
2386 }
2387 ],
2388 "source_info" : {
2389 "filename" : "include/control/../define.p4",
Robert MacDavid1d475692020-05-21 21:32:38 -04002390 "line" : 115,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002391 "column" : 31,
2392 "source_fragment" : "0x8847; ..."
2393 }
2394 }
2395 ]
2396 },
2397 {
2398 "name" : "FabricEgress.egress_next.push_vlan",
Daniele Moro693d76f2019-09-24 14:34:07 -07002399 "id" : 35,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002400 "runtime_data" : [],
2401 "primitives" : [
2402 {
2403 "op" : "add_header",
2404 "parameters" : [
2405 {
2406 "type" : "header",
2407 "value" : "vlan_tag"
2408 }
2409 ],
2410 "source_info" : {
2411 "filename" : "include/control/next.p4",
Daniele Morodd0568b2019-11-01 14:01:46 -07002412 "line" : 289,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002413 "column" : 8,
2414 "source_fragment" : "hdr.vlan_tag.setValid()"
2415 }
2416 },
2417 {
2418 "op" : "assign",
2419 "parameters" : [
2420 {
2421 "type" : "field",
2422 "value" : ["vlan_tag", "cfi"]
2423 },
2424 {
2425 "type" : "field",
2426 "value" : ["scalars", "fabric_metadata_t.vlan_cfi"]
2427 }
2428 ],
2429 "source_info" : {
2430 "filename" : "include/control/next.p4",
Daniele Morodd0568b2019-11-01 14:01:46 -07002431 "line" : 290,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002432 "column" : 8,
2433 "source_fragment" : "hdr.vlan_tag.cfi = fabric_metadata.vlan_cfi"
2434 }
2435 },
2436 {
2437 "op" : "assign",
2438 "parameters" : [
2439 {
2440 "type" : "field",
2441 "value" : ["vlan_tag", "pri"]
2442 },
2443 {
2444 "type" : "field",
2445 "value" : ["scalars", "fabric_metadata_t.vlan_pri"]
2446 }
2447 ],
2448 "source_info" : {
2449 "filename" : "include/control/next.p4",
Daniele Morodd0568b2019-11-01 14:01:46 -07002450 "line" : 291,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002451 "column" : 8,
2452 "source_fragment" : "hdr.vlan_tag.pri = fabric_metadata.vlan_pri"
2453 }
2454 },
2455 {
2456 "op" : "assign",
2457 "parameters" : [
2458 {
2459 "type" : "field",
2460 "value" : ["vlan_tag", "eth_type"]
2461 },
2462 {
Daniele Moro693d76f2019-09-24 14:34:07 -07002463 "type" : "hexstr",
2464 "value" : "0x8100"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002465 }
2466 ],
2467 "source_info" : {
Daniele Moro693d76f2019-09-24 14:34:07 -07002468 "filename" : "include/control/../define.p4",
Robert MacDavid1d475692020-05-21 21:32:38 -04002469 "line" : 114,
Daniele Moro693d76f2019-09-24 14:34:07 -07002470 "column" : 31,
2471 "source_fragment" : "0x8100; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002472 }
2473 },
2474 {
2475 "op" : "assign",
2476 "parameters" : [
2477 {
2478 "type" : "field",
2479 "value" : ["vlan_tag", "vlan_id"]
2480 },
2481 {
2482 "type" : "field",
2483 "value" : ["scalars", "fabric_metadata_t.vlan_id"]
2484 }
2485 ],
2486 "source_info" : {
2487 "filename" : "include/control/next.p4",
Daniele Morodd0568b2019-11-01 14:01:46 -07002488 "line" : 293,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002489 "column" : 8,
2490 "source_fragment" : "hdr.vlan_tag.vlan_id = fabric_metadata.vlan_id"
2491 }
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002492 }
2493 ]
2494 },
2495 {
2496 "name" : "FabricEgress.egress_next.pop_vlan",
Daniele Moro693d76f2019-09-24 14:34:07 -07002497 "id" : 36,
Yi Tseng1d842672017-11-28 16:06:52 -08002498 "runtime_data" : [],
2499 "primitives" : [
2500 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002501 "op" : "remove_header",
2502 "parameters" : [
2503 {
2504 "type" : "header",
2505 "value" : "vlan_tag"
2506 }
2507 ],
2508 "source_info" : {
2509 "filename" : "include/control/next.p4",
Daniele Morodd0568b2019-11-01 14:01:46 -07002510 "line" : 316,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002511 "column" : 8,
2512 "source_fragment" : "hdr.vlan_tag.setInvalid()"
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002513 }
Carmelo Casconea5400af2018-07-17 22:11:54 +02002514 }
2515 ]
2516 },
2517 {
Daniele Moro693d76f2019-09-24 14:34:07 -07002518 "name" : "act_4",
2519 "id" : 37,
Carmelo Casconea5400af2018-07-17 22:11:54 +02002520 "runtime_data" : [],
2521 "primitives" : [
2522 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07002523 "op" : "exit",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002524 "parameters" : [],
2525 "source_info" : {
2526 "filename" : "include/control/packetio.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07002527 "line" : 41,
2528 "column" : 12,
2529 "source_fragment" : "exit"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002530 }
Carmelo Casconea5400af2018-07-17 22:11:54 +02002531 }
2532 ]
2533 },
2534 {
Daniele Moro693d76f2019-09-24 14:34:07 -07002535 "name" : "act_5",
2536 "id" : 38,
Carmelo Casconea5400af2018-07-17 22:11:54 +02002537 "runtime_data" : [],
2538 "primitives" : [
2539 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002540 "op" : "add_header",
2541 "parameters" : [
2542 {
2543 "type" : "header",
2544 "value" : "packet_in"
2545 }
2546 ],
2547 "source_info" : {
2548 "filename" : "include/control/packetio.p4",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07002549 "line" : 44,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002550 "column" : 12,
2551 "source_fragment" : "hdr.packet_in.setValid()"
2552 }
2553 },
2554 {
Carmelo Casconea5400af2018-07-17 22:11:54 +02002555 "op" : "assign",
2556 "parameters" : [
2557 {
2558 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002559 "value" : ["packet_in", "ingress_port"]
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002560 },
2561 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002562 "type" : "field",
2563 "value" : ["standard_metadata", "ingress_port"]
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002564 }
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002565 ],
2566 "source_info" : {
2567 "filename" : "include/control/packetio.p4",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07002568 "line" : 45,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002569 "column" : 12,
2570 "source_fragment" : "hdr.packet_in.ingress_port = standard_metadata.ingress_port"
2571 }
Carmelo Cascone9b607da2019-05-08 14:03:01 -07002572 },
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002573 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07002574 "op" : "exit",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002575 "parameters" : [],
2576 "source_info" : {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07002577 "filename" : "include/control/packetio.p4",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07002578 "line" : 47,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002579 "column" : 12,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07002580 "source_fragment" : "exit"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002581 }
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002582 }
2583 ]
2584 },
2585 {
Daniele Moro693d76f2019-09-24 14:34:07 -07002586 "name" : "act_6",
2587 "id" : 39,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002588 "runtime_data" : [],
2589 "primitives" : [
2590 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07002591 "op" : "mark_to_drop",
2592 "parameters" : [
2593 {
2594 "type" : "header",
2595 "value" : "standard_metadata"
2596 }
2597 ],
2598 "source_info" : {
2599 "filename" : "include/control/next.p4",
Daniele Morodd0568b2019-11-01 14:01:46 -07002600 "line" : 337,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07002601 "column" : 12,
2602 "source_fragment" : "mark_to_drop(standard_metadata)"
2603 }
2604 }
2605 ]
2606 },
2607 {
Daniele Moro693d76f2019-09-24 14:34:07 -07002608 "name" : "act_7",
2609 "id" : 40,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07002610 "runtime_data" : [],
2611 "primitives" : [
2612 {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002613 "op" : "assign",
2614 "parameters" : [
2615 {
2616 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002617 "value" : ["scalars", "egress_next_tmp"]
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002618 },
2619 {
2620 "type" : "expression",
2621 "value" : {
2622 "type" : "expression",
2623 "value" : {
2624 "op" : "b2d",
2625 "left" : null,
2626 "right" : {
2627 "type" : "bool",
2628 "value" : true
2629 }
2630 }
2631 }
2632 }
2633 ]
2634 }
2635 ]
2636 },
2637 {
Daniele Moro693d76f2019-09-24 14:34:07 -07002638 "name" : "act_8",
2639 "id" : 41,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002640 "runtime_data" : [],
2641 "primitives" : [
2642 {
2643 "op" : "assign",
2644 "parameters" : [
2645 {
2646 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002647 "value" : ["scalars", "egress_next_tmp"]
Carmelo Casconea5400af2018-07-17 22:11:54 +02002648 },
2649 {
2650 "type" : "expression",
2651 "value" : {
2652 "type" : "expression",
2653 "value" : {
2654 "op" : "b2d",
2655 "left" : null,
2656 "right" : {
2657 "type" : "bool",
2658 "value" : false
2659 }
2660 }
2661 }
2662 }
2663 ]
2664 }
2665 ]
2666 },
2667 {
Daniele Moro693d76f2019-09-24 14:34:07 -07002668 "name" : "act_9",
2669 "id" : 42,
Carmelo Casconea5400af2018-07-17 22:11:54 +02002670 "runtime_data" : [],
2671 "primitives" : [
2672 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07002673 "op" : "mark_to_drop",
2674 "parameters" : [
2675 {
2676 "type" : "header",
2677 "value" : "standard_metadata"
2678 }
2679 ],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002680 "source_info" : {
2681 "filename" : "include/control/next.p4",
Daniele Morodd0568b2019-11-01 14:01:46 -07002682 "line" : 370,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002683 "column" : 35,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07002684 "source_fragment" : "mark_to_drop(standard_metadata)"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002685 }
Carmelo Casconea5400af2018-07-17 22:11:54 +02002686 }
2687 ]
2688 },
2689 {
Daniele Moro693d76f2019-09-24 14:34:07 -07002690 "name" : "act_10",
2691 "id" : 43,
Carmelo Casconea5400af2018-07-17 22:11:54 +02002692 "runtime_data" : [],
2693 "primitives" : [
2694 {
2695 "op" : "assign",
2696 "parameters" : [
2697 {
2698 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002699 "value" : ["mpls", "ttl"]
Carmelo Casconea5400af2018-07-17 22:11:54 +02002700 },
2701 {
2702 "type" : "expression",
2703 "value" : {
2704 "type" : "expression",
2705 "value" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002706 "op" : "&",
2707 "left" : {
2708 "type" : "expression",
2709 "value" : {
2710 "op" : "+",
2711 "left" : {
2712 "type" : "field",
2713 "value" : ["mpls", "ttl"]
2714 },
2715 "right" : {
2716 "type" : "hexstr",
2717 "value" : "0xff"
2718 }
2719 }
2720 },
Carmelo Casconea5400af2018-07-17 22:11:54 +02002721 "right" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002722 "type" : "hexstr",
2723 "value" : "0xff"
Carmelo Casconea5400af2018-07-17 22:11:54 +02002724 }
2725 }
2726 }
2727 }
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002728 ],
2729 "source_info" : {
2730 "filename" : "include/control/next.p4",
Daniele Morodd0568b2019-11-01 14:01:46 -07002731 "line" : 369,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002732 "column" : 12,
2733 "source_fragment" : "hdr.mpls.ttl = hdr.mpls.ttl - 1"
2734 }
Carmelo Casconea5400af2018-07-17 22:11:54 +02002735 }
2736 ]
2737 },
2738 {
Daniele Moro693d76f2019-09-24 14:34:07 -07002739 "name" : "act_11",
2740 "id" : 44,
Carmelo Casconea5400af2018-07-17 22:11:54 +02002741 "runtime_data" : [],
2742 "primitives" : [
2743 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07002744 "op" : "mark_to_drop",
2745 "parameters" : [
2746 {
2747 "type" : "header",
2748 "value" : "standard_metadata"
2749 }
2750 ],
Carmelo Casconea5400af2018-07-17 22:11:54 +02002751 "source_info" : {
2752 "filename" : "include/control/next.p4",
Daniele Morodd0568b2019-11-01 14:01:46 -07002753 "line" : 374,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002754 "column" : 39,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07002755 "source_fragment" : "mark_to_drop(standard_metadata)"
Carmelo Casconea5400af2018-07-17 22:11:54 +02002756 }
2757 }
2758 ]
2759 },
2760 {
Daniele Moro693d76f2019-09-24 14:34:07 -07002761 "name" : "act_12",
2762 "id" : 45,
Carmelo Casconea5400af2018-07-17 22:11:54 +02002763 "runtime_data" : [],
2764 "primitives" : [
2765 {
2766 "op" : "assign",
2767 "parameters" : [
2768 {
2769 "type" : "field",
Yi Tseng1d842672017-11-28 16:06:52 -08002770 "value" : ["ipv4", "ttl"]
2771 },
2772 {
2773 "type" : "expression",
2774 "value" : {
2775 "type" : "expression",
2776 "value" : {
2777 "op" : "&",
2778 "left" : {
2779 "type" : "expression",
2780 "value" : {
2781 "op" : "+",
2782 "left" : {
2783 "type" : "field",
2784 "value" : ["ipv4", "ttl"]
2785 },
2786 "right" : {
2787 "type" : "hexstr",
2788 "value" : "0xff"
2789 }
2790 }
2791 },
2792 "right" : {
2793 "type" : "hexstr",
2794 "value" : "0xff"
2795 }
2796 }
2797 }
2798 }
2799 ],
2800 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002801 "filename" : "include/control/next.p4",
Daniele Morodd0568b2019-11-01 14:01:46 -07002802 "line" : 373,
Carmelo Casconea5400af2018-07-17 22:11:54 +02002803 "column" : 16,
Yi Tseng1d842672017-11-28 16:06:52 -08002804 "source_fragment" : "hdr.ipv4.ttl = hdr.ipv4.ttl - 1"
2805 }
2806 }
2807 ]
Yi Tsengbe342052017-11-03 10:21:23 -07002808 }
2809 ],
2810 "pipelines" : [
2811 {
2812 "name" : "ingress",
2813 "id" : 0,
2814 "source_info" : {
2815 "filename" : "fabric.p4",
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07002816 "line" : 46,
Yi Tsengbe342052017-11-03 10:21:23 -07002817 "column" : 8,
2818 "source_fragment" : "FabricIngress"
2819 },
2820 "init_table" : "node_2",
2821 "tables" : [
2822 {
2823 "name" : "tbl_act",
2824 "id" : 0,
Carmelo Cascone3032b872019-04-13 01:23:54 -07002825 "source_info" : {
2826 "filename" : "include/control/packetio.p4",
2827 "line" : 25,
2828 "column" : 42,
2829 "source_fragment" : "= hdr.packet_out.egress_port; ..."
2830 },
Yi Tsengbe342052017-11-03 10:21:23 -07002831 "key" : [],
2832 "match_type" : "exact",
2833 "type" : "simple",
2834 "max_size" : 1024,
2835 "with_counters" : false,
2836 "support_timeout" : false,
2837 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002838 "action_ids" : [27],
Yi Tsengbe342052017-11-03 10:21:23 -07002839 "actions" : ["act"],
Carmelo Cascone9b607da2019-05-08 14:03:01 -07002840 "base_default_next" : "node_4",
Yi Tsengbe342052017-11-03 10:21:23 -07002841 "next_tables" : {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07002842 "act" : "node_4"
Yi Tsengbe342052017-11-03 10:21:23 -07002843 },
2844 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002845 "action_id" : 27,
2846 "action_const" : true,
2847 "action_data" : [],
2848 "action_entry_const" : true
2849 }
2850 },
2851 {
2852 "name" : "tbl_act_0",
2853 "id" : 1,
Carmelo Cascone3032b872019-04-13 01:23:54 -07002854 "source_info" : {
2855 "filename" : "include/control/filtering.p4",
Daniele Morodd0568b2019-11-01 14:01:46 -07002856 "line" : 111,
Daniele Moro7c3a0022019-07-12 13:38:34 -07002857 "column" : 36,
2858 "source_fragment" : "= hdr.vlan_tag.vlan_id; ..."
Carmelo Cascone3032b872019-04-13 01:23:54 -07002859 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002860 "key" : [],
2861 "match_type" : "exact",
2862 "type" : "simple",
2863 "max_size" : 1024,
2864 "with_counters" : false,
2865 "support_timeout" : false,
2866 "direct_meters" : null,
2867 "action_ids" : [28],
2868 "actions" : ["act_0"],
2869 "base_default_next" : "node_6",
2870 "next_tables" : {
2871 "act_0" : "node_6"
2872 },
2873 "default_entry" : {
2874 "action_id" : 28,
2875 "action_const" : true,
2876 "action_data" : [],
2877 "action_entry_const" : true
2878 }
2879 },
2880 {
2881 "name" : "tbl_act_1",
2882 "id" : 2,
Carmelo Cascone3032b872019-04-13 01:23:54 -07002883 "source_info" : {
2884 "filename" : "include/control/filtering.p4",
Daniele Morodd0568b2019-11-01 14:01:46 -07002885 "line" : 127,
Carmelo Cascone3032b872019-04-13 01:23:54 -07002886 "column" : 37,
2887 "source_fragment" : "="
2888 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002889 "key" : [],
2890 "match_type" : "exact",
2891 "type" : "simple",
2892 "max_size" : 1024,
2893 "with_counters" : false,
2894 "support_timeout" : false,
2895 "direct_meters" : null,
2896 "action_ids" : [29],
2897 "actions" : ["act_1"],
Daniele Moro693d76f2019-09-24 14:34:07 -07002898 "base_default_next" : "FabricIngress.filtering.ingress_port_vlan",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002899 "next_tables" : {
Daniele Moro693d76f2019-09-24 14:34:07 -07002900 "act_1" : "FabricIngress.filtering.ingress_port_vlan"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002901 },
2902 "default_entry" : {
2903 "action_id" : 29,
Yi Tsengbe342052017-11-03 10:21:23 -07002904 "action_const" : true,
2905 "action_data" : [],
2906 "action_entry_const" : true
2907 }
2908 },
2909 {
Daniele Moro7c3a0022019-07-12 13:38:34 -07002910 "name" : "FabricIngress.filtering.ingress_port_vlan",
Daniele Moro693d76f2019-09-24 14:34:07 -07002911 "id" : 3,
Daniele Moro7c3a0022019-07-12 13:38:34 -07002912 "source_info" : {
2913 "filename" : "include/control/filtering.p4",
2914 "line" : 53,
Yi Tsengbe342052017-11-03 10:21:23 -07002915 "column" : 10,
2916 "source_fragment" : "ingress_port_vlan"
2917 },
2918 "key" : [
2919 {
2920 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002921 "name" : "ig_port",
Yi Tsengbe342052017-11-03 10:21:23 -07002922 "target" : ["standard_metadata", "ingress_port"],
2923 "mask" : null
2924 },
2925 {
2926 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002927 "name" : "vlan_is_valid",
Yi Tsengbe342052017-11-03 10:21:23 -07002928 "target" : ["vlan_tag", "$valid$"],
2929 "mask" : null
2930 },
2931 {
2932 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002933 "name" : "vlan_id",
Yi Tsengbe342052017-11-03 10:21:23 -07002934 "target" : ["vlan_tag", "vlan_id"],
2935 "mask" : null
2936 }
2937 ],
2938 "match_type" : "ternary",
2939 "type" : "simple",
2940 "max_size" : 1024,
Yi Tsengbd46d052018-01-22 17:18:16 -08002941 "with_counters" : true,
Yi Tsengbe342052017-11-03 10:21:23 -07002942 "support_timeout" : false,
2943 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002944 "action_ids" : [7, 8, 9],
2945 "actions" : ["FabricIngress.filtering.deny", "FabricIngress.filtering.permit", "FabricIngress.filtering.permit_with_internal_vlan"],
2946 "base_default_next" : "FabricIngress.filtering.fwd_classifier",
Yi Tsengbe342052017-11-03 10:21:23 -07002947 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002948 "FabricIngress.filtering.deny" : "FabricIngress.filtering.fwd_classifier",
2949 "FabricIngress.filtering.permit" : "FabricIngress.filtering.fwd_classifier",
2950 "FabricIngress.filtering.permit_with_internal_vlan" : "FabricIngress.filtering.fwd_classifier"
Yi Tsengbe342052017-11-03 10:21:23 -07002951 },
2952 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002953 "action_id" : 7,
Yi Tsengbe342052017-11-03 10:21:23 -07002954 "action_const" : true,
2955 "action_data" : [],
2956 "action_entry_const" : true
2957 }
2958 },
2959 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002960 "name" : "FabricIngress.filtering.fwd_classifier",
Daniele Moro693d76f2019-09-24 14:34:07 -07002961 "id" : 4,
Yi Tsengbe342052017-11-03 10:21:23 -07002962 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002963 "filename" : "include/control/filtering.p4",
Daniele Morodd0568b2019-11-01 14:01:46 -07002964 "line" : 92,
Yi Tsengbe342052017-11-03 10:21:23 -07002965 "column" : 10,
2966 "source_fragment" : "fwd_classifier"
2967 },
2968 "key" : [
2969 {
2970 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002971 "name" : "ig_port",
Yi Tsengbe342052017-11-03 10:21:23 -07002972 "target" : ["standard_metadata", "ingress_port"],
2973 "mask" : null
2974 },
2975 {
Charles Chan384aea22018-08-23 22:08:02 -07002976 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002977 "name" : "eth_dst",
Yi Tsengbe342052017-11-03 10:21:23 -07002978 "target" : ["ethernet", "dst_addr"],
2979 "mask" : null
2980 },
2981 {
Daniele Moro693d76f2019-09-24 14:34:07 -07002982 "match_type" : "ternary",
2983 "name" : "eth_type",
2984 "target" : ["eth_type", "value"],
Daniele Moro7c3a0022019-07-12 13:38:34 -07002985 "mask" : null
2986 },
2987 {
2988 "match_type" : "exact",
Daniele Moro693d76f2019-09-24 14:34:07 -07002989 "name" : "ip_eth_type",
2990 "target" : ["scalars", "fabric_metadata_t.ip_eth_type"],
Yi Tsengbe342052017-11-03 10:21:23 -07002991 "mask" : null
2992 }
2993 ],
Charles Chan384aea22018-08-23 22:08:02 -07002994 "match_type" : "ternary",
Yi Tsengbe342052017-11-03 10:21:23 -07002995 "type" : "simple",
2996 "max_size" : 1024,
Yi Tsengbd46d052018-01-22 17:18:16 -08002997 "with_counters" : true,
Yi Tsengbe342052017-11-03 10:21:23 -07002998 "support_timeout" : false,
2999 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003000 "action_ids" : [10],
Yi Tseng27b9bc02018-04-12 14:52:40 +08003001 "actions" : ["FabricIngress.filtering.set_forwarding_type"],
Daniele Moro693d76f2019-09-24 14:34:07 -07003002 "base_default_next" : "node_10",
Yi Tsengbe342052017-11-03 10:21:23 -07003003 "next_tables" : {
Daniele Moro693d76f2019-09-24 14:34:07 -07003004 "FabricIngress.filtering.set_forwarding_type" : "node_10"
Yi Tsengbe342052017-11-03 10:21:23 -07003005 },
3006 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003007 "action_id" : 10,
Yi Tsengbe342052017-11-03 10:21:23 -07003008 "action_const" : true,
3009 "action_data" : ["0x0"],
3010 "action_entry_const" : true
3011 }
3012 },
3013 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003014 "name" : "FabricIngress.forwarding.bridging",
Daniele Moro693d76f2019-09-24 14:34:07 -07003015 "id" : 5,
Yi Tsengbe342052017-11-03 10:21:23 -07003016 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003017 "filename" : "include/control/forwarding.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07003018 "line" : 46,
Yi Tsengbe342052017-11-03 10:21:23 -07003019 "column" : 10,
3020 "source_fragment" : "bridging"
3021 },
3022 "key" : [
3023 {
3024 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003025 "name" : "vlan_id",
3026 "target" : ["scalars", "fabric_metadata_t.vlan_id"],
Yi Tsengbe342052017-11-03 10:21:23 -07003027 "mask" : null
3028 },
3029 {
3030 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003031 "name" : "eth_dst",
Yi Tsengbe342052017-11-03 10:21:23 -07003032 "target" : ["ethernet", "dst_addr"],
3033 "mask" : null
3034 }
3035 ],
3036 "match_type" : "ternary",
3037 "type" : "simple",
3038 "max_size" : 1024,
Yi Tsengbd46d052018-01-22 17:18:16 -08003039 "with_counters" : true,
Yi Tsengbe342052017-11-03 10:21:23 -07003040 "support_timeout" : false,
3041 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003042 "action_ids" : [11, 0],
3043 "actions" : ["FabricIngress.forwarding.set_next_id_bridging", "nop"],
3044 "base_default_next" : "FabricIngress.acl.acl",
Yi Tseng1d842672017-11-28 16:06:52 -08003045 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003046 "FabricIngress.forwarding.set_next_id_bridging" : "FabricIngress.acl.acl",
3047 "nop" : "FabricIngress.acl.acl"
Yi Tseng1d842672017-11-28 16:06:52 -08003048 },
3049 "default_entry" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003050 "action_id" : 0,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003051 "action_const" : true,
Yi Tseng1d842672017-11-28 16:06:52 -08003052 "action_data" : [],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003053 "action_entry_const" : true
Yi Tseng1d842672017-11-28 16:06:52 -08003054 }
3055 },
3056 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003057 "name" : "FabricIngress.forwarding.mpls",
Daniele Moro693d76f2019-09-24 14:34:07 -07003058 "id" : 6,
Yi Tseng1d842672017-11-28 16:06:52 -08003059 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003060 "filename" : "include/control/forwarding.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07003061 "line" : 71,
Yi Tseng1d842672017-11-28 16:06:52 -08003062 "column" : 10,
3063 "source_fragment" : "mpls"
3064 },
3065 "key" : [
3066 {
3067 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003068 "name" : "mpls_label",
3069 "target" : ["scalars", "fabric_metadata_t.mpls_label"],
Yi Tseng1d842672017-11-28 16:06:52 -08003070 "mask" : null
3071 }
3072 ],
3073 "match_type" : "exact",
3074 "type" : "simple",
3075 "max_size" : 1024,
Yi Tsengbd46d052018-01-22 17:18:16 -08003076 "with_counters" : true,
Yi Tseng1d842672017-11-28 16:06:52 -08003077 "support_timeout" : false,
3078 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003079 "action_ids" : [12, 1],
3080 "actions" : ["FabricIngress.forwarding.pop_mpls_and_next", "nop"],
3081 "base_default_next" : "FabricIngress.acl.acl",
Yi Tseng1d842672017-11-28 16:06:52 -08003082 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003083 "FabricIngress.forwarding.pop_mpls_and_next" : "FabricIngress.acl.acl",
3084 "nop" : "FabricIngress.acl.acl"
Yi Tseng1d842672017-11-28 16:06:52 -08003085 },
3086 "default_entry" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003087 "action_id" : 1,
Yi Tseng1d842672017-11-28 16:06:52 -08003088 "action_const" : true,
3089 "action_data" : [],
3090 "action_entry_const" : true
3091 }
3092 },
3093 {
Charles Chan384aea22018-08-23 22:08:02 -07003094 "name" : "FabricIngress.forwarding.routing_v4",
Daniele Moro693d76f2019-09-24 14:34:07 -07003095 "id" : 7,
Yi Tseng1d842672017-11-28 16:06:52 -08003096 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003097 "filename" : "include/control/forwarding.p4",
Daniele Moro693d76f2019-09-24 14:34:07 -07003098 "line" : 108,
Yi Tseng1d842672017-11-28 16:06:52 -08003099 "column" : 10,
Charles Chan384aea22018-08-23 22:08:02 -07003100 "source_fragment" : "routing_v4"
Yi Tseng1d842672017-11-28 16:06:52 -08003101 },
3102 "key" : [
3103 {
3104 "match_type" : "lpm",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003105 "name" : "ipv4_dst",
Robert MacDavid1d475692020-05-21 21:32:38 -04003106 "target" : ["scalars", "fabric_metadata_t.ipv4_dst_addr"],
Yi Tseng1d842672017-11-28 16:06:52 -08003107 "mask" : null
3108 }
3109 ],
3110 "match_type" : "lpm",
3111 "type" : "simple",
3112 "max_size" : 1024,
Daniele Moro693d76f2019-09-24 14:34:07 -07003113 "with_counters" : false,
Yi Tseng1d842672017-11-28 16:06:52 -08003114 "support_timeout" : false,
3115 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003116 "action_ids" : [13, 14, 2],
3117 "actions" : ["FabricIngress.forwarding.set_next_id_routing_v4", "FabricIngress.forwarding.nop_routing_v4", "nop"],
3118 "base_default_next" : "FabricIngress.acl.acl",
Yi Tsengbe342052017-11-03 10:21:23 -07003119 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003120 "FabricIngress.forwarding.set_next_id_routing_v4" : "FabricIngress.acl.acl",
3121 "FabricIngress.forwarding.nop_routing_v4" : "FabricIngress.acl.acl",
3122 "nop" : "FabricIngress.acl.acl"
Yi Tsengbe342052017-11-03 10:21:23 -07003123 },
3124 "default_entry" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003125 "action_id" : 2,
CyberHasH39b808b2019-10-11 05:59:12 +08003126 "action_const" : false,
Yi Tsengbe342052017-11-03 10:21:23 -07003127 "action_data" : [],
CyberHasH39b808b2019-10-11 05:59:12 +08003128 "action_entry_const" : false
Yi Tsengbe342052017-11-03 10:21:23 -07003129 }
3130 },
3131 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003132 "name" : "FabricIngress.acl.acl",
Daniele Moro693d76f2019-09-24 14:34:07 -07003133 "id" : 8,
Yi Tsengbe342052017-11-03 10:21:23 -07003134 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003135 "filename" : "include/control/acl.p4",
3136 "line" : 60,
Yi Tsengbe342052017-11-03 10:21:23 -07003137 "column" : 10,
Yi Tsengbe342052017-11-03 10:21:23 -07003138 "source_fragment" : "acl"
3139 },
3140 "key" : [
3141 {
3142 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003143 "name" : "ig_port",
Yi Tsengbe342052017-11-03 10:21:23 -07003144 "target" : ["standard_metadata", "ingress_port"],
3145 "mask" : null
3146 },
3147 {
3148 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003149 "name" : "ip_proto",
Yi Tsengbe342052017-11-03 10:21:23 -07003150 "target" : ["scalars", "fabric_metadata_t.ip_proto"],
3151 "mask" : null
3152 },
3153 {
3154 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003155 "name" : "l4_sport",
3156 "target" : ["scalars", "fabric_metadata_t.l4_sport"],
Yi Tseng1d842672017-11-28 16:06:52 -08003157 "mask" : null
3158 },
3159 {
3160 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003161 "name" : "l4_dport",
3162 "target" : ["scalars", "fabric_metadata_t.l4_dport"],
Yi Tseng1d842672017-11-28 16:06:52 -08003163 "mask" : null
3164 },
3165 {
3166 "match_type" : "ternary",
Daniele Moro60855852019-12-13 17:24:33 -08003167 "name" : "eth_dst",
Yi Tsengbe342052017-11-03 10:21:23 -07003168 "target" : ["ethernet", "dst_addr"],
3169 "mask" : null
3170 },
3171 {
3172 "match_type" : "ternary",
Daniele Moro60855852019-12-13 17:24:33 -08003173 "name" : "eth_src",
Yi Tsengbe342052017-11-03 10:21:23 -07003174 "target" : ["ethernet", "src_addr"],
3175 "mask" : null
3176 },
3177 {
3178 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003179 "name" : "vlan_id",
Yi Tsengbe342052017-11-03 10:21:23 -07003180 "target" : ["vlan_tag", "vlan_id"],
3181 "mask" : null
3182 },
3183 {
3184 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003185 "name" : "eth_type",
Daniele Moro693d76f2019-09-24 14:34:07 -07003186 "target" : ["eth_type", "value"],
Yi Tseng8235a1a2018-07-24 20:57:28 +08003187 "mask" : null
3188 },
3189 {
3190 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003191 "name" : "ipv4_src",
Yi Tsengbe342052017-11-03 10:21:23 -07003192 "target" : ["ipv4", "src_addr"],
3193 "mask" : null
3194 },
3195 {
3196 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003197 "name" : "ipv4_dst",
Yi Tsengbe342052017-11-03 10:21:23 -07003198 "target" : ["ipv4", "dst_addr"],
3199 "mask" : null
3200 },
3201 {
3202 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003203 "name" : "icmp_type",
Yi Tsengbe342052017-11-03 10:21:23 -07003204 "target" : ["icmp", "icmp_type"],
3205 "mask" : null
3206 },
3207 {
3208 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003209 "name" : "icmp_code",
Yi Tsengbe342052017-11-03 10:21:23 -07003210 "target" : ["icmp", "icmp_code"],
3211 "mask" : null
3212 }
3213 ],
3214 "match_type" : "ternary",
3215 "type" : "simple",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07003216 "max_size" : 1024,
Yi Tsengbd46d052018-01-22 17:18:16 -08003217 "with_counters" : true,
Yi Tsengbe342052017-11-03 10:21:23 -07003218 "support_timeout" : false,
3219 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003220 "action_ids" : [15, 16, 17, 18, 19],
Daniele Moro01ca2ab2019-06-25 11:48:48 -07003221 "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"],
Daniele Moro693d76f2019-09-24 14:34:07 -07003222 "base_default_next" : "node_18",
Yi Tsengbe342052017-11-03 10:21:23 -07003223 "next_tables" : {
Daniele Moro693d76f2019-09-24 14:34:07 -07003224 "FabricIngress.acl.set_next_id_acl" : "node_18",
3225 "FabricIngress.acl.punt_to_cpu" : "node_18",
3226 "FabricIngress.acl.set_clone_session_id" : "node_18",
3227 "FabricIngress.acl.drop" : "node_18",
3228 "FabricIngress.acl.nop_acl" : "node_18"
Yi Tsengbe342052017-11-03 10:21:23 -07003229 },
3230 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003231 "action_id" : 19,
Yi Tsengbe342052017-11-03 10:21:23 -07003232 "action_const" : true,
3233 "action_data" : [],
3234 "action_entry_const" : true
3235 }
3236 },
3237 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003238 "name" : "FabricIngress.next.xconnect",
Daniele Moro693d76f2019-09-24 14:34:07 -07003239 "id" : 9,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003240 "source_info" : {
3241 "filename" : "include/control/next.p4",
Daniele Morodd0568b2019-11-01 14:01:46 -07003242 "line" : 119,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003243 "column" : 10,
3244 "source_fragment" : "xconnect"
3245 },
3246 "key" : [
3247 {
3248 "match_type" : "exact",
3249 "name" : "ig_port",
3250 "target" : ["standard_metadata", "ingress_port"],
3251 "mask" : null
3252 },
3253 {
3254 "match_type" : "exact",
3255 "name" : "next_id",
3256 "target" : ["scalars", "fabric_metadata_t.next_id"],
3257 "mask" : null
3258 }
3259 ],
3260 "match_type" : "exact",
3261 "type" : "simple",
3262 "max_size" : 1024,
3263 "with_counters" : true,
3264 "support_timeout" : false,
3265 "direct_meters" : null,
3266 "action_ids" : [21, 22, 4],
3267 "actions" : ["FabricIngress.next.output_xconnect", "FabricIngress.next.set_next_id_xconnect", "nop"],
3268 "base_default_next" : "FabricIngress.next.hashed",
3269 "next_tables" : {
3270 "FabricIngress.next.output_xconnect" : "FabricIngress.next.hashed",
3271 "FabricIngress.next.set_next_id_xconnect" : "FabricIngress.next.hashed",
3272 "nop" : "FabricIngress.next.hashed"
3273 },
3274 "default_entry" : {
3275 "action_id" : 4,
3276 "action_const" : true,
3277 "action_data" : [],
3278 "action_entry_const" : true
3279 }
3280 },
3281 {
3282 "name" : "FabricIngress.next.hashed",
Daniele Moro693d76f2019-09-24 14:34:07 -07003283 "id" : 10,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003284 "source_info" : {
3285 "filename" : "include/control/next.p4",
Daniele Morodd0568b2019-11-01 14:01:46 -07003286 "line" : 202,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003287 "column" : 10,
3288 "source_fragment" : "hashed"
3289 },
3290 "key" : [
3291 {
3292 "match_type" : "exact",
3293 "name" : "next_id",
3294 "target" : ["scalars", "fabric_metadata_t.next_id"],
3295 "mask" : null
3296 }
3297 ],
3298 "match_type" : "exact",
3299 "type" : "indirect_ws",
3300 "action_profile" : "FabricIngress.next.hashed_selector",
3301 "max_size" : 1024,
3302 "with_counters" : true,
3303 "support_timeout" : false,
3304 "direct_meters" : null,
3305 "action_ids" : [23, 24, 25, 5],
3306 "actions" : ["FabricIngress.next.output_hashed", "FabricIngress.next.routing_hashed", "FabricIngress.next.mpls_routing_hashed", "nop"],
3307 "base_default_next" : "FabricIngress.next.multicast",
3308 "next_tables" : {
3309 "FabricIngress.next.output_hashed" : "FabricIngress.next.multicast",
3310 "FabricIngress.next.routing_hashed" : "FabricIngress.next.multicast",
3311 "FabricIngress.next.mpls_routing_hashed" : "FabricIngress.next.multicast",
3312 "nop" : "FabricIngress.next.multicast"
3313 }
3314 },
3315 {
3316 "name" : "FabricIngress.next.multicast",
Daniele Moro693d76f2019-09-24 14:34:07 -07003317 "id" : 11,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003318 "source_info" : {
3319 "filename" : "include/control/next.p4",
Daniele Morodd0568b2019-11-01 14:01:46 -07003320 "line" : 236,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003321 "column" : 10,
3322 "source_fragment" : "multicast"
3323 },
3324 "key" : [
3325 {
3326 "match_type" : "exact",
3327 "name" : "next_id",
3328 "target" : ["scalars", "fabric_metadata_t.next_id"],
3329 "mask" : null
3330 }
3331 ],
3332 "match_type" : "exact",
3333 "type" : "simple",
3334 "max_size" : 1024,
3335 "with_counters" : true,
3336 "support_timeout" : false,
3337 "direct_meters" : null,
3338 "action_ids" : [26, 6],
3339 "actions" : ["FabricIngress.next.set_mcast_group_id", "nop"],
3340 "base_default_next" : "FabricIngress.next.next_vlan",
3341 "next_tables" : {
3342 "FabricIngress.next.set_mcast_group_id" : "FabricIngress.next.next_vlan",
3343 "nop" : "FabricIngress.next.next_vlan"
3344 },
3345 "default_entry" : {
3346 "action_id" : 6,
3347 "action_const" : true,
3348 "action_data" : [],
3349 "action_entry_const" : true
3350 }
3351 },
3352 {
3353 "name" : "FabricIngress.next.next_vlan",
Daniele Moro693d76f2019-09-24 14:34:07 -07003354 "id" : 12,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003355 "source_info" : {
3356 "filename" : "include/control/next.p4",
Daniele Morodd0568b2019-11-01 14:01:46 -07003357 "line" : 86,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003358 "column" : 10,
3359 "source_fragment" : "next_vlan"
3360 },
3361 "key" : [
3362 {
3363 "match_type" : "exact",
3364 "name" : "next_id",
3365 "target" : ["scalars", "fabric_metadata_t.next_id"],
3366 "mask" : null
3367 }
3368 ],
3369 "match_type" : "exact",
3370 "type" : "simple",
3371 "max_size" : 1024,
3372 "with_counters" : true,
3373 "support_timeout" : false,
3374 "direct_meters" : null,
3375 "action_ids" : [20, 3],
3376 "actions" : ["FabricIngress.next.set_vlan", "nop"],
Daniele Moro693d76f2019-09-24 14:34:07 -07003377 "base_default_next" : "node_23",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003378 "next_tables" : {
Daniele Moro693d76f2019-09-24 14:34:07 -07003379 "FabricIngress.next.set_vlan" : "node_23",
3380 "nop" : "node_23"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003381 },
3382 "default_entry" : {
3383 "action_id" : 3,
3384 "action_const" : true,
3385 "action_data" : [],
3386 "action_entry_const" : true
3387 }
3388 },
3389 {
Daniele Moro693d76f2019-09-24 14:34:07 -07003390 "name" : "tbl_act_2",
3391 "id" : 13,
Carmelo Cascone3032b872019-04-13 01:23:54 -07003392 "source_info" : {
3393 "filename" : "include/control/port_counter.p4",
3394 "line" : 31,
3395 "column" : 12,
3396 "source_fragment" : "egress_port_counter.count((bit<32>)standard_metadata.egress_spec)"
3397 },
Carmelo Casconea5400af2018-07-17 22:11:54 +02003398 "key" : [],
3399 "match_type" : "exact",
3400 "type" : "simple",
3401 "max_size" : 1024,
3402 "with_counters" : false,
3403 "support_timeout" : false,
3404 "direct_meters" : null,
Daniele Moro693d76f2019-09-24 14:34:07 -07003405 "action_ids" : [30],
3406 "actions" : ["act_2"],
3407 "base_default_next" : "node_25",
Carmelo Casconea5400af2018-07-17 22:11:54 +02003408 "next_tables" : {
Daniele Moro693d76f2019-09-24 14:34:07 -07003409 "act_2" : "node_25"
Carmelo Casconea5400af2018-07-17 22:11:54 +02003410 },
3411 "default_entry" : {
Daniele Moro693d76f2019-09-24 14:34:07 -07003412 "action_id" : 30,
Carmelo Casconea5400af2018-07-17 22:11:54 +02003413 "action_const" : true,
3414 "action_data" : [],
3415 "action_entry_const" : true
3416 }
3417 },
3418 {
Daniele Moro693d76f2019-09-24 14:34:07 -07003419 "name" : "tbl_act_3",
3420 "id" : 14,
Carmelo Cascone3032b872019-04-13 01:23:54 -07003421 "source_info" : {
3422 "filename" : "include/control/port_counter.p4",
3423 "line" : 34,
3424 "column" : 12,
3425 "source_fragment" : "ingress_port_counter.count((bit<32>)standard_metadata.ingress_port)"
3426 },
Carmelo Casconea5400af2018-07-17 22:11:54 +02003427 "key" : [],
3428 "match_type" : "exact",
3429 "type" : "simple",
3430 "max_size" : 1024,
3431 "with_counters" : false,
3432 "support_timeout" : false,
3433 "direct_meters" : null,
Daniele Moro693d76f2019-09-24 14:34:07 -07003434 "action_ids" : [31],
3435 "actions" : ["act_3"],
Carmelo Casconea5400af2018-07-17 22:11:54 +02003436 "base_default_next" : null,
Esin Karaman971fb7f2017-12-28 13:44:52 +00003437 "next_tables" : {
Daniele Moro693d76f2019-09-24 14:34:07 -07003438 "act_3" : null
Yi Tseng27b9bc02018-04-12 14:52:40 +08003439 },
3440 "default_entry" : {
Daniele Moro693d76f2019-09-24 14:34:07 -07003441 "action_id" : 31,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003442 "action_const" : true,
3443 "action_data" : [],
3444 "action_entry_const" : true
3445 }
Yi Tsengbe342052017-11-03 10:21:23 -07003446 }
3447 ],
3448 "action_profiles" : [
3449 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003450 "name" : "FabricIngress.next.hashed_selector",
Yi Tsengbe342052017-11-03 10:21:23 -07003451 "id" : 0,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07003452 "source_info" : {
3453 "filename" : "include/control/next.p4",
Daniele Morodd0568b2019-11-01 14:01:46 -07003454 "line" : 183,
Carmelo Cascone70e816b2019-03-19 16:15:47 -07003455 "column" : 57,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003456 "source_fragment" : "hashed_selector"
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07003457 },
Carmelo Cascone70e816b2019-03-19 16:15:47 -07003458 "max_size" : 1024,
Yi Tsengbe342052017-11-03 10:21:23 -07003459 "selector" : {
3460 "algo" : "crc16",
3461 "input" : [
3462 {
3463 "type" : "field",
Robert MacDavid1d475692020-05-21 21:32:38 -04003464 "value" : ["scalars", "fabric_metadata_t.ipv4_src_addr"]
Yi Tsengbe342052017-11-03 10:21:23 -07003465 },
3466 {
3467 "type" : "field",
Robert MacDavid1d475692020-05-21 21:32:38 -04003468 "value" : ["scalars", "fabric_metadata_t.ipv4_dst_addr"]
Yi Tsengbe342052017-11-03 10:21:23 -07003469 },
3470 {
3471 "type" : "field",
Yi Tseng1d842672017-11-28 16:06:52 -08003472 "value" : ["scalars", "fabric_metadata_t.ip_proto"]
Yi Tsengbe342052017-11-03 10:21:23 -07003473 },
3474 {
3475 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003476 "value" : ["scalars", "fabric_metadata_t.l4_sport"]
Yi Tsengbe342052017-11-03 10:21:23 -07003477 },
3478 {
3479 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003480 "value" : ["scalars", "fabric_metadata_t.l4_dport"]
Yi Tsengbe342052017-11-03 10:21:23 -07003481 }
3482 ]
3483 }
3484 }
3485 ],
3486 "conditionals" : [
3487 {
3488 "name" : "node_2",
3489 "id" : 0,
3490 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003491 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003492 "line" : 24,
Yi Tsengbe342052017-11-03 10:21:23 -07003493 "column" : 12,
3494 "source_fragment" : "hdr.packet_out.isValid()"
3495 },
3496 "expression" : {
3497 "type" : "expression",
3498 "value" : {
Yi Tsengbd46d052018-01-22 17:18:16 -08003499 "op" : "d2b",
3500 "left" : null,
3501 "right" : {
Yi Tsengbe342052017-11-03 10:21:23 -07003502 "type" : "field",
3503 "value" : ["packet_out", "$valid$"]
Yi Tsengbe342052017-11-03 10:21:23 -07003504 }
3505 }
3506 },
3507 "true_next" : "tbl_act",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003508 "false_next" : "node_4"
Yi Tsengbe342052017-11-03 10:21:23 -07003509 },
3510 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003511 "name" : "node_4",
Yi Tsengbe342052017-11-03 10:21:23 -07003512 "id" : 1,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003513 "source_info" : {
3514 "filename" : "include/control/filtering.p4",
Daniele Morodd0568b2019-11-01 14:01:46 -07003515 "line" : 110,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003516 "column" : 12,
3517 "source_fragment" : "hdr.vlan_tag.isValid()"
3518 },
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003519 "expression" : {
3520 "type" : "expression",
3521 "value" : {
3522 "op" : "d2b",
3523 "left" : null,
3524 "right" : {
3525 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003526 "value" : ["vlan_tag", "$valid$"]
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003527 }
3528 }
3529 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003530 "true_next" : "tbl_act_0",
3531 "false_next" : "node_6"
3532 },
3533 {
3534 "name" : "node_6",
3535 "id" : 2,
3536 "source_info" : {
3537 "filename" : "include/control/filtering.p4",
Daniele Morodd0568b2019-11-01 14:01:46 -07003538 "line" : 122,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003539 "column" : 12,
3540 "source_fragment" : "!hdr.mpls.isValid()"
3541 },
3542 "expression" : {
3543 "type" : "expression",
3544 "value" : {
3545 "op" : "not",
3546 "left" : null,
3547 "right" : {
3548 "type" : "expression",
3549 "value" : {
3550 "op" : "d2b",
3551 "left" : null,
3552 "right" : {
3553 "type" : "field",
3554 "value" : ["mpls", "$valid$"]
3555 }
3556 }
3557 }
3558 }
3559 },
3560 "true_next" : "tbl_act_1",
Daniele Moro693d76f2019-09-24 14:34:07 -07003561 "false_next" : "FabricIngress.filtering.ingress_port_vlan"
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003562 },
3563 {
3564 "name" : "node_10",
Daniele Moro693d76f2019-09-24 14:34:07 -07003565 "id" : 3,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003566 "source_info" : {
3567 "filename" : "fabric.p4",
Daniele Moro7c3a0022019-07-12 13:38:34 -07003568 "line" : 71,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003569 "column" : 12,
3570 "source_fragment" : "fabric_metadata.skip_forwarding == false"
3571 },
3572 "expression" : {
3573 "type" : "expression",
3574 "value" : {
3575 "op" : "==",
3576 "left" : {
3577 "type" : "expression",
3578 "value" : {
3579 "op" : "d2b",
3580 "left" : null,
3581 "right" : {
3582 "type" : "field",
3583 "value" : ["scalars", "fabric_metadata_t.skip_forwarding"]
3584 }
3585 }
3586 },
3587 "right" : {
3588 "type" : "bool",
3589 "value" : false
3590 }
3591 }
3592 },
Daniele Moro693d76f2019-09-24 14:34:07 -07003593 "true_next" : "node_11",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003594 "false_next" : "FabricIngress.acl.acl"
3595 },
3596 {
Daniele Moro693d76f2019-09-24 14:34:07 -07003597 "name" : "node_11",
3598 "id" : 4,
Yi Tsengbe342052017-11-03 10:21:23 -07003599 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003600 "filename" : "include/control/forwarding.p4",
Daniele Moro693d76f2019-09-24 14:34:07 -07003601 "line" : 150,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003602 "column" : 12,
Yi Tsengbe342052017-11-03 10:21:23 -07003603 "source_fragment" : "fabric_metadata.fwd_type == FWD_BRIDGING"
3604 },
3605 "expression" : {
3606 "type" : "expression",
3607 "value" : {
3608 "op" : "==",
3609 "left" : {
3610 "type" : "field",
3611 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
3612 },
3613 "right" : {
3614 "type" : "hexstr",
3615 "value" : "0x00"
3616 }
3617 }
3618 },
Yi Tseng27b9bc02018-04-12 14:52:40 +08003619 "true_next" : "FabricIngress.forwarding.bridging",
Daniele Moro693d76f2019-09-24 14:34:07 -07003620 "false_next" : "node_13"
Yi Tsengbe342052017-11-03 10:21:23 -07003621 },
3622 {
Daniele Moro693d76f2019-09-24 14:34:07 -07003623 "name" : "node_13",
3624 "id" : 5,
Yi Tsengbe342052017-11-03 10:21:23 -07003625 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003626 "filename" : "include/control/forwarding.p4",
Daniele Moro693d76f2019-09-24 14:34:07 -07003627 "line" : 151,
Yi Tsengbe342052017-11-03 10:21:23 -07003628 "column" : 17,
3629 "source_fragment" : "fabric_metadata.fwd_type == FWD_MPLS"
3630 },
3631 "expression" : {
3632 "type" : "expression",
3633 "value" : {
3634 "op" : "==",
3635 "left" : {
3636 "type" : "field",
3637 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
3638 },
3639 "right" : {
3640 "type" : "hexstr",
3641 "value" : "0x01"
3642 }
3643 }
3644 },
Yi Tseng27b9bc02018-04-12 14:52:40 +08003645 "true_next" : "FabricIngress.forwarding.mpls",
Daniele Moro693d76f2019-09-24 14:34:07 -07003646 "false_next" : "node_15"
Yi Tsengbe342052017-11-03 10:21:23 -07003647 },
3648 {
Daniele Moro693d76f2019-09-24 14:34:07 -07003649 "name" : "node_15",
3650 "id" : 6,
Yi Tsengbe342052017-11-03 10:21:23 -07003651 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003652 "filename" : "include/control/forwarding.p4",
Daniele Moro693d76f2019-09-24 14:34:07 -07003653 "line" : 152,
Yi Tsengbe342052017-11-03 10:21:23 -07003654 "column" : 17,
3655 "source_fragment" : "fabric_metadata.fwd_type == FWD_IPV4_UNICAST"
3656 },
3657 "expression" : {
3658 "type" : "expression",
3659 "value" : {
3660 "op" : "==",
3661 "left" : {
3662 "type" : "field",
3663 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
3664 },
3665 "right" : {
3666 "type" : "hexstr",
3667 "value" : "0x02"
3668 }
3669 }
3670 },
Charles Chan384aea22018-08-23 22:08:02 -07003671 "true_next" : "FabricIngress.forwarding.routing_v4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003672 "false_next" : "FabricIngress.acl.acl"
3673 },
3674 {
Daniele Moro693d76f2019-09-24 14:34:07 -07003675 "name" : "node_18",
3676 "id" : 7,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003677 "source_info" : {
3678 "filename" : "fabric.p4",
Daniele Moro7c3a0022019-07-12 13:38:34 -07003679 "line" : 75,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003680 "column" : 12,
3681 "source_fragment" : "fabric_metadata.skip_next == false"
3682 },
3683 "expression" : {
3684 "type" : "expression",
3685 "value" : {
3686 "op" : "==",
3687 "left" : {
3688 "type" : "expression",
3689 "value" : {
3690 "op" : "d2b",
3691 "left" : null,
3692 "right" : {
3693 "type" : "field",
3694 "value" : ["scalars", "fabric_metadata_t.skip_next"]
3695 }
3696 }
3697 },
3698 "right" : {
3699 "type" : "bool",
3700 "value" : false
3701 }
3702 }
3703 },
3704 "false_next" : null,
3705 "true_next" : "FabricIngress.next.xconnect"
Yi Tseng27b9bc02018-04-12 14:52:40 +08003706 },
3707 {
Daniele Moro693d76f2019-09-24 14:34:07 -07003708 "name" : "node_23",
3709 "id" : 8,
Yi Tseng27b9bc02018-04-12 14:52:40 +08003710 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003711 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003712 "line" : 30,
Yi Tsengbe342052017-11-03 10:21:23 -07003713 "column" : 12,
3714 "source_fragment" : "standard_metadata.egress_spec < 511"
3715 },
3716 "expression" : {
3717 "type" : "expression",
3718 "value" : {
3719 "op" : "<",
3720 "left" : {
3721 "type" : "field",
3722 "value" : ["standard_metadata", "egress_spec"]
3723 },
3724 "right" : {
3725 "type" : "hexstr",
3726 "value" : "0x01ff"
3727 }
3728 }
3729 },
Daniele Moro693d76f2019-09-24 14:34:07 -07003730 "true_next" : "tbl_act_2",
3731 "false_next" : "node_25"
Yi Tsengbe342052017-11-03 10:21:23 -07003732 },
3733 {
Daniele Moro693d76f2019-09-24 14:34:07 -07003734 "name" : "node_25",
3735 "id" : 9,
Yi Tsengbe342052017-11-03 10:21:23 -07003736 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003737 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003738 "line" : 33,
Yi Tsengbe342052017-11-03 10:21:23 -07003739 "column" : 12,
3740 "source_fragment" : "standard_metadata.ingress_port < 511"
3741 },
3742 "expression" : {
3743 "type" : "expression",
3744 "value" : {
3745 "op" : "<",
3746 "left" : {
3747 "type" : "field",
3748 "value" : ["standard_metadata", "ingress_port"]
3749 },
3750 "right" : {
3751 "type" : "hexstr",
3752 "value" : "0x01ff"
3753 }
3754 }
3755 },
Yi Tseng3a5731e2018-01-22 11:38:58 -08003756 "false_next" : null,
Daniele Moro693d76f2019-09-24 14:34:07 -07003757 "true_next" : "tbl_act_3"
Yi Tseng3a5731e2018-01-22 11:38:58 -08003758 }
3759 ]
3760 },
3761 {
3762 "name" : "egress",
3763 "id" : 1,
3764 "source_info" : {
3765 "filename" : "fabric.p4",
Daniele Moro7c3a0022019-07-12 13:38:34 -07003766 "line" : 93,
Yi Tseng3a5731e2018-01-22 11:38:58 -08003767 "column" : 8,
3768 "source_fragment" : "FabricEgress"
3769 },
Daniele Moro693d76f2019-09-24 14:34:07 -07003770 "init_table" : "node_29",
Yi Tseng3a5731e2018-01-22 11:38:58 -08003771 "tables" : [
3772 {
Daniele Moro693d76f2019-09-24 14:34:07 -07003773 "name" : "tbl_act_4",
3774 "id" : 15,
Carmelo Cascone3032b872019-04-13 01:23:54 -07003775 "source_info" : {
3776 "filename" : "include/control/packetio.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003777 "line" : 41,
3778 "column" : 12,
3779 "source_fragment" : "exit"
Carmelo Cascone3032b872019-04-13 01:23:54 -07003780 },
Carmelo Casconea5400af2018-07-17 22:11:54 +02003781 "key" : [],
3782 "match_type" : "exact",
3783 "type" : "simple",
3784 "max_size" : 1024,
3785 "with_counters" : false,
3786 "support_timeout" : false,
3787 "direct_meters" : null,
Daniele Moro693d76f2019-09-24 14:34:07 -07003788 "action_ids" : [37],
3789 "actions" : ["act_4"],
3790 "base_default_next" : "node_31",
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07003791 "next_tables" : {
Daniele Moro693d76f2019-09-24 14:34:07 -07003792 "act_4" : "node_31"
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07003793 },
3794 "default_entry" : {
Daniele Moro693d76f2019-09-24 14:34:07 -07003795 "action_id" : 37,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07003796 "action_const" : true,
3797 "action_data" : [],
3798 "action_entry_const" : true
3799 }
3800 },
3801 {
Daniele Moro693d76f2019-09-24 14:34:07 -07003802 "name" : "tbl_act_5",
3803 "id" : 16,
Carmelo Cascone3032b872019-04-13 01:23:54 -07003804 "source_info" : {
3805 "filename" : "include/control/packetio.p4",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07003806 "line" : 44,
3807 "column" : 12,
3808 "source_fragment" : "hdr.packet_in.setValid(); ..."
Carmelo Cascone3032b872019-04-13 01:23:54 -07003809 },
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07003810 "key" : [],
3811 "match_type" : "exact",
3812 "type" : "simple",
3813 "max_size" : 1024,
3814 "with_counters" : false,
3815 "support_timeout" : false,
3816 "direct_meters" : null,
Daniele Moro693d76f2019-09-24 14:34:07 -07003817 "action_ids" : [38],
3818 "actions" : ["act_5"],
3819 "base_default_next" : "node_33",
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07003820 "next_tables" : {
Daniele Moro693d76f2019-09-24 14:34:07 -07003821 "act_5" : "node_33"
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07003822 },
3823 "default_entry" : {
Daniele Moro693d76f2019-09-24 14:34:07 -07003824 "action_id" : 38,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07003825 "action_const" : true,
3826 "action_data" : [],
3827 "action_entry_const" : true
3828 }
3829 },
3830 {
Daniele Moro693d76f2019-09-24 14:34:07 -07003831 "name" : "tbl_act_6",
3832 "id" : 17,
Carmelo Cascone3032b872019-04-13 01:23:54 -07003833 "source_info" : {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07003834 "filename" : "include/control/next.p4",
Daniele Morodd0568b2019-11-01 14:01:46 -07003835 "line" : 337,
Carmelo Cascone3032b872019-04-13 01:23:54 -07003836 "column" : 12,
Daniele Moro01ca2ab2019-06-25 11:48:48 -07003837 "source_fragment" : "mark_to_drop(standard_metadata)"
Carmelo Cascone3032b872019-04-13 01:23:54 -07003838 },
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07003839 "key" : [],
3840 "match_type" : "exact",
3841 "type" : "simple",
3842 "max_size" : 1024,
3843 "with_counters" : false,
3844 "support_timeout" : false,
3845 "direct_meters" : null,
Daniele Moro693d76f2019-09-24 14:34:07 -07003846 "action_ids" : [39],
3847 "actions" : ["act_6"],
3848 "base_default_next" : "node_35",
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07003849 "next_tables" : {
Daniele Moro693d76f2019-09-24 14:34:07 -07003850 "act_6" : "node_35"
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07003851 },
3852 "default_entry" : {
Daniele Moro693d76f2019-09-24 14:34:07 -07003853 "action_id" : 39,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003854 "action_const" : true,
3855 "action_data" : [],
3856 "action_entry_const" : true
3857 }
3858 },
3859 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003860 "name" : "tbl_egress_next_pop_mpls_if_present",
Daniele Moro693d76f2019-09-24 14:34:07 -07003861 "id" : 18,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003862 "source_info" : {
3863 "filename" : "include/control/next.p4",
Daniele Morodd0568b2019-11-01 14:01:46 -07003864 "line" : 341,
Carmelo Cascone3032b872019-04-13 01:23:54 -07003865 "column" : 36,
3866 "source_fragment" : "pop_mpls_if_present()"
3867 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003868 "key" : [],
3869 "match_type" : "exact",
3870 "type" : "simple",
3871 "max_size" : 1024,
3872 "with_counters" : false,
3873 "support_timeout" : false,
3874 "direct_meters" : null,
Daniele Moro693d76f2019-09-24 14:34:07 -07003875 "action_ids" : [33],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003876 "actions" : ["FabricEgress.egress_next.pop_mpls_if_present"],
3877 "base_default_next" : "FabricEgress.egress_next.egress_vlan",
3878 "next_tables" : {
3879 "FabricEgress.egress_next.pop_mpls_if_present" : "FabricEgress.egress_next.egress_vlan"
3880 },
3881 "default_entry" : {
Daniele Moro693d76f2019-09-24 14:34:07 -07003882 "action_id" : 33,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003883 "action_const" : true,
3884 "action_data" : [],
3885 "action_entry_const" : true
3886 }
3887 },
3888 {
3889 "name" : "tbl_egress_next_set_mpls",
Daniele Moro693d76f2019-09-24 14:34:07 -07003890 "id" : 19,
Carmelo Cascone3032b872019-04-13 01:23:54 -07003891 "source_info" : {
3892 "filename" : "include/control/next.p4",
Daniele Morodd0568b2019-11-01 14:01:46 -07003893 "line" : 343,
Carmelo Cascone3032b872019-04-13 01:23:54 -07003894 "column" : 12,
3895 "source_fragment" : "set_mpls()"
3896 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003897 "key" : [],
3898 "match_type" : "exact",
3899 "type" : "simple",
3900 "max_size" : 1024,
3901 "with_counters" : false,
3902 "support_timeout" : false,
3903 "direct_meters" : null,
Daniele Moro693d76f2019-09-24 14:34:07 -07003904 "action_ids" : [34],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003905 "actions" : ["FabricEgress.egress_next.set_mpls"],
3906 "base_default_next" : "FabricEgress.egress_next.egress_vlan",
3907 "next_tables" : {
3908 "FabricEgress.egress_next.set_mpls" : "FabricEgress.egress_next.egress_vlan"
3909 },
3910 "default_entry" : {
Daniele Moro693d76f2019-09-24 14:34:07 -07003911 "action_id" : 34,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07003912 "action_const" : true,
3913 "action_data" : [],
3914 "action_entry_const" : true
3915 }
3916 },
3917 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003918 "name" : "FabricEgress.egress_next.egress_vlan",
Daniele Moro693d76f2019-09-24 14:34:07 -07003919 "id" : 20,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003920 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003921 "filename" : "include/control/next.p4",
Daniele Morodd0568b2019-11-01 14:01:46 -07003922 "line" : 320,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003923 "column" : 10,
3924 "source_fragment" : "egress_vlan"
3925 },
3926 "key" : [
3927 {
3928 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003929 "name" : "vlan_id",
3930 "target" : ["scalars", "fabric_metadata_t.vlan_id"],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003931 "mask" : null
3932 },
3933 {
3934 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003935 "name" : "eg_port",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003936 "target" : ["standard_metadata", "egress_port"],
3937 "mask" : null
3938 }
3939 ],
3940 "match_type" : "exact",
3941 "type" : "simple",
3942 "max_size" : 1024,
Yi Tseng47eac892018-07-11 02:17:04 +08003943 "with_counters" : true,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003944 "support_timeout" : false,
3945 "direct_meters" : null,
Daniele Moro693d76f2019-09-24 14:34:07 -07003946 "action_ids" : [36, 32],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003947 "actions" : ["FabricEgress.egress_next.pop_vlan", "nop"],
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07003948 "base_default_next" : null,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003949 "next_tables" : {
Daniele Moro693d76f2019-09-24 14:34:07 -07003950 "__HIT__" : "tbl_act_7",
3951 "__MISS__" : "tbl_act_8"
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003952 },
3953 "default_entry" : {
Daniele Moro693d76f2019-09-24 14:34:07 -07003954 "action_id" : 32,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003955 "action_const" : true,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003956 "action_data" : [],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003957 "action_entry_const" : true
3958 }
3959 },
3960 {
Daniele Moro693d76f2019-09-24 14:34:07 -07003961 "name" : "tbl_act_7",
3962 "id" : 21,
Daniele Moro01ca2ab2019-06-25 11:48:48 -07003963 "key" : [],
3964 "match_type" : "exact",
3965 "type" : "simple",
3966 "max_size" : 1024,
3967 "with_counters" : false,
3968 "support_timeout" : false,
3969 "direct_meters" : null,
Daniele Moro693d76f2019-09-24 14:34:07 -07003970 "action_ids" : [40],
3971 "actions" : ["act_7"],
3972 "base_default_next" : "node_42",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07003973 "next_tables" : {
Daniele Moro693d76f2019-09-24 14:34:07 -07003974 "act_7" : "node_42"
Daniele Moro01ca2ab2019-06-25 11:48:48 -07003975 },
3976 "default_entry" : {
Daniele Moro693d76f2019-09-24 14:34:07 -07003977 "action_id" : 40,
Daniele Moro01ca2ab2019-06-25 11:48:48 -07003978 "action_const" : true,
3979 "action_data" : [],
3980 "action_entry_const" : true
3981 }
3982 },
3983 {
Daniele Moro693d76f2019-09-24 14:34:07 -07003984 "name" : "tbl_act_8",
3985 "id" : 22,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003986 "key" : [],
3987 "match_type" : "exact",
3988 "type" : "simple",
3989 "max_size" : 1024,
3990 "with_counters" : false,
3991 "support_timeout" : false,
3992 "direct_meters" : null,
Daniele Moro693d76f2019-09-24 14:34:07 -07003993 "action_ids" : [41],
3994 "actions" : ["act_8"],
3995 "base_default_next" : "node_42",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003996 "next_tables" : {
Daniele Moro693d76f2019-09-24 14:34:07 -07003997 "act_8" : "node_42"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003998 },
3999 "default_entry" : {
Daniele Moro693d76f2019-09-24 14:34:07 -07004000 "action_id" : 41,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004001 "action_const" : true,
4002 "action_data" : [],
4003 "action_entry_const" : true
4004 }
4005 },
4006 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004007 "name" : "tbl_egress_next_push_vlan",
Daniele Moro693d76f2019-09-24 14:34:07 -07004008 "id" : 23,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004009 "source_info" : {
4010 "filename" : "include/control/next.p4",
Daniele Morodd0568b2019-11-01 14:01:46 -07004011 "line" : 360,
Daniele Moro7c3a0022019-07-12 13:38:34 -07004012 "column" : 20,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004013 "source_fragment" : "push_vlan()"
4014 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004015 "key" : [],
4016 "match_type" : "exact",
4017 "type" : "simple",
4018 "max_size" : 1024,
4019 "with_counters" : false,
4020 "support_timeout" : false,
4021 "direct_meters" : null,
Daniele Moro693d76f2019-09-24 14:34:07 -07004022 "action_ids" : [35],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004023 "actions" : ["FabricEgress.egress_next.push_vlan"],
Daniele Moro693d76f2019-09-24 14:34:07 -07004024 "base_default_next" : "node_45",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004025 "next_tables" : {
Daniele Moro693d76f2019-09-24 14:34:07 -07004026 "FabricEgress.egress_next.push_vlan" : "node_45"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004027 },
4028 "default_entry" : {
Daniele Moro693d76f2019-09-24 14:34:07 -07004029 "action_id" : 35,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004030 "action_const" : true,
4031 "action_data" : [],
4032 "action_entry_const" : true
4033 }
4034 },
4035 {
Daniele Moro693d76f2019-09-24 14:34:07 -07004036 "name" : "tbl_act_9",
4037 "id" : 24,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004038 "source_info" : {
4039 "filename" : "include/control/next.p4",
Daniele Morodd0568b2019-11-01 14:01:46 -07004040 "line" : 369,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004041 "column" : 25,
4042 "source_fragment" : "="
4043 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004044 "key" : [],
4045 "match_type" : "exact",
4046 "type" : "simple",
4047 "max_size" : 1024,
4048 "with_counters" : false,
4049 "support_timeout" : false,
4050 "direct_meters" : null,
Daniele Moro693d76f2019-09-24 14:34:07 -07004051 "action_ids" : [43],
4052 "actions" : ["act_10"],
4053 "base_default_next" : "node_47",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004054 "next_tables" : {
Daniele Moro693d76f2019-09-24 14:34:07 -07004055 "act_10" : "node_47"
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004056 },
4057 "default_entry" : {
Daniele Moro693d76f2019-09-24 14:34:07 -07004058 "action_id" : 43,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004059 "action_const" : true,
4060 "action_data" : [],
4061 "action_entry_const" : true
4062 }
4063 },
4064 {
Daniele Moro693d76f2019-09-24 14:34:07 -07004065 "name" : "tbl_act_10",
4066 "id" : 25,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004067 "source_info" : {
4068 "filename" : "include/control/next.p4",
Daniele Morodd0568b2019-11-01 14:01:46 -07004069 "line" : 370,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004070 "column" : 35,
4071 "source_fragment" : "mark_to_drop(standard_metadata)"
4072 },
4073 "key" : [],
4074 "match_type" : "exact",
4075 "type" : "simple",
4076 "max_size" : 1024,
4077 "with_counters" : false,
4078 "support_timeout" : false,
4079 "direct_meters" : null,
Daniele Moro693d76f2019-09-24 14:34:07 -07004080 "action_ids" : [42],
4081 "actions" : ["act_9"],
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004082 "base_default_next" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004083 "next_tables" : {
Daniele Moro693d76f2019-09-24 14:34:07 -07004084 "act_9" : null
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004085 },
4086 "default_entry" : {
Daniele Moro693d76f2019-09-24 14:34:07 -07004087 "action_id" : 42,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004088 "action_const" : true,
4089 "action_data" : [],
4090 "action_entry_const" : true
4091 }
4092 },
4093 {
Daniele Moro693d76f2019-09-24 14:34:07 -07004094 "name" : "tbl_act_11",
4095 "id" : 26,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004096 "source_info" : {
4097 "filename" : "include/control/next.p4",
Daniele Morodd0568b2019-11-01 14:01:46 -07004098 "line" : 373,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004099 "column" : 29,
4100 "source_fragment" : "="
4101 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004102 "key" : [],
4103 "match_type" : "exact",
4104 "type" : "simple",
4105 "max_size" : 1024,
4106 "with_counters" : false,
4107 "support_timeout" : false,
4108 "direct_meters" : null,
Daniele Moro693d76f2019-09-24 14:34:07 -07004109 "action_ids" : [45],
4110 "actions" : ["act_12"],
4111 "base_default_next" : "node_51",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004112 "next_tables" : {
Daniele Moro693d76f2019-09-24 14:34:07 -07004113 "act_12" : "node_51"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004114 },
4115 "default_entry" : {
Daniele Moro693d76f2019-09-24 14:34:07 -07004116 "action_id" : 45,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004117 "action_const" : true,
4118 "action_data" : [],
4119 "action_entry_const" : true
4120 }
4121 },
4122 {
Daniele Moro693d76f2019-09-24 14:34:07 -07004123 "name" : "tbl_act_12",
4124 "id" : 27,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004125 "source_info" : {
4126 "filename" : "include/control/next.p4",
Daniele Morodd0568b2019-11-01 14:01:46 -07004127 "line" : 374,
Carmelo Cascone3032b872019-04-13 01:23:54 -07004128 "column" : 39,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004129 "source_fragment" : "mark_to_drop(standard_metadata)"
Carmelo Cascone3032b872019-04-13 01:23:54 -07004130 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004131 "key" : [],
4132 "match_type" : "exact",
4133 "type" : "simple",
4134 "max_size" : 1024,
4135 "with_counters" : false,
4136 "support_timeout" : false,
4137 "direct_meters" : null,
Daniele Moro693d76f2019-09-24 14:34:07 -07004138 "action_ids" : [44],
4139 "actions" : ["act_11"],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004140 "base_default_next" : null,
4141 "next_tables" : {
Daniele Moro693d76f2019-09-24 14:34:07 -07004142 "act_11" : null
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004143 },
4144 "default_entry" : {
Daniele Moro693d76f2019-09-24 14:34:07 -07004145 "action_id" : 44,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004146 "action_const" : true,
4147 "action_data" : [],
4148 "action_entry_const" : true
Yi Tseng20f9e7b2018-05-24 23:27:39 +08004149 }
Yi Tseng3a5731e2018-01-22 11:38:58 -08004150 }
4151 ],
4152 "action_profiles" : [],
4153 "conditionals" : [
Yi Tseng1d842672017-11-28 16:06:52 -08004154 {
Daniele Moro693d76f2019-09-24 14:34:07 -07004155 "name" : "node_29",
4156 "id" : 10,
Carmelo Casconea5400af2018-07-17 22:11:54 +02004157 "source_info" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004158 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004159 "line" : 39,
Carmelo Casconea5400af2018-07-17 22:11:54 +02004160 "column" : 12,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004161 "source_fragment" : "fabric_metadata.is_controller_packet_out == true"
Carmelo Casconea5400af2018-07-17 22:11:54 +02004162 },
4163 "expression" : {
4164 "type" : "expression",
4165 "value" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004166 "op" : "==",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004167 "left" : {
4168 "type" : "expression",
4169 "value" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004170 "op" : "d2b",
4171 "left" : null,
Carmelo Casconea5400af2018-07-17 22:11:54 +02004172 "right" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004173 "type" : "field",
4174 "value" : ["scalars", "fabric_metadata_t.is_controller_packet_out"]
Carmelo Casconea5400af2018-07-17 22:11:54 +02004175 }
4176 }
4177 },
4178 "right" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004179 "type" : "bool",
4180 "value" : true
Carmelo Casconea5400af2018-07-17 22:11:54 +02004181 }
4182 }
4183 },
Daniele Moro693d76f2019-09-24 14:34:07 -07004184 "true_next" : "tbl_act_4",
4185 "false_next" : "node_31"
Carmelo Casconea5400af2018-07-17 22:11:54 +02004186 },
4187 {
Daniele Moro693d76f2019-09-24 14:34:07 -07004188 "name" : "node_31",
4189 "id" : 11,
Yi Tsengbe342052017-11-03 10:21:23 -07004190 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004191 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004192 "line" : 43,
Yi Tsengbe342052017-11-03 10:21:23 -07004193 "column" : 12,
Carmelo Casconeb531b682018-01-30 17:55:56 -08004194 "source_fragment" : "standard_metadata.egress_port == 255"
Yi Tsengbe342052017-11-03 10:21:23 -07004195 },
4196 "expression" : {
4197 "type" : "expression",
4198 "value" : {
4199 "op" : "==",
4200 "left" : {
4201 "type" : "field",
4202 "value" : ["standard_metadata", "egress_port"]
4203 },
4204 "right" : {
4205 "type" : "hexstr",
4206 "value" : "0x00ff"
4207 }
4208 }
4209 },
Daniele Moro693d76f2019-09-24 14:34:07 -07004210 "true_next" : "tbl_act_5",
4211 "false_next" : "node_33"
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004212 },
4213 {
Daniele Moro693d76f2019-09-24 14:34:07 -07004214 "name" : "node_33",
4215 "id" : 12,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004216 "source_info" : {
4217 "filename" : "include/control/next.p4",
Daniele Morodd0568b2019-11-01 14:01:46 -07004218 "line" : 335,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004219 "column" : 12,
4220 "source_fragment" : "fabric_metadata.is_multicast == true ..."
4221 },
4222 "expression" : {
4223 "type" : "expression",
4224 "value" : {
4225 "op" : "and",
4226 "left" : {
4227 "type" : "expression",
4228 "value" : {
4229 "op" : "==",
4230 "left" : {
4231 "type" : "expression",
4232 "value" : {
4233 "op" : "d2b",
4234 "left" : null,
4235 "right" : {
4236 "type" : "field",
4237 "value" : ["scalars", "fabric_metadata_t.is_multicast"]
4238 }
4239 }
4240 },
4241 "right" : {
4242 "type" : "bool",
4243 "value" : true
4244 }
4245 }
4246 },
4247 "right" : {
4248 "type" : "expression",
4249 "value" : {
4250 "op" : "==",
4251 "left" : {
4252 "type" : "field",
4253 "value" : ["standard_metadata", "ingress_port"]
4254 },
4255 "right" : {
4256 "type" : "field",
4257 "value" : ["standard_metadata", "egress_port"]
4258 }
4259 }
4260 }
4261 }
4262 },
Daniele Moro693d76f2019-09-24 14:34:07 -07004263 "true_next" : "tbl_act_6",
4264 "false_next" : "node_35"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004265 },
4266 {
Daniele Moro693d76f2019-09-24 14:34:07 -07004267 "name" : "node_35",
4268 "id" : 13,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004269 "source_info" : {
4270 "filename" : "include/control/next.p4",
Daniele Morodd0568b2019-11-01 14:01:46 -07004271 "line" : 340,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004272 "column" : 12,
4273 "source_fragment" : "fabric_metadata.mpls_label == 0"
4274 },
4275 "expression" : {
4276 "type" : "expression",
4277 "value" : {
4278 "op" : "==",
4279 "left" : {
4280 "type" : "field",
4281 "value" : ["scalars", "fabric_metadata_t.mpls_label"]
4282 },
4283 "right" : {
4284 "type" : "hexstr",
4285 "value" : "0x000000"
4286 }
4287 }
4288 },
Daniele Moro693d76f2019-09-24 14:34:07 -07004289 "true_next" : "node_36",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004290 "false_next" : "tbl_egress_next_set_mpls"
4291 },
4292 {
Daniele Moro693d76f2019-09-24 14:34:07 -07004293 "name" : "node_36",
4294 "id" : 14,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004295 "source_info" : {
4296 "filename" : "include/control/next.p4",
Daniele Morodd0568b2019-11-01 14:01:46 -07004297 "line" : 341,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004298 "column" : 16,
4299 "source_fragment" : "hdr.mpls.isValid()"
4300 },
4301 "expression" : {
4302 "type" : "expression",
4303 "value" : {
4304 "op" : "d2b",
4305 "left" : null,
4306 "right" : {
4307 "type" : "field",
4308 "value" : ["mpls", "$valid$"]
4309 }
4310 }
4311 },
4312 "true_next" : "tbl_egress_next_pop_mpls_if_present",
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004313 "false_next" : "FabricEgress.egress_next.egress_vlan"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004314 },
4315 {
Daniele Moro693d76f2019-09-24 14:34:07 -07004316 "name" : "node_42",
4317 "id" : 15,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004318 "source_info" : {
4319 "filename" : "include/control/next.p4",
Daniele Morodd0568b2019-11-01 14:01:46 -07004320 "line" : 357,
Daniele Moro7c3a0022019-07-12 13:38:34 -07004321 "column" : 16,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004322 "source_fragment" : "!egress_vlan.apply().hit"
4323 },
4324 "expression" : {
4325 "type" : "expression",
4326 "value" : {
4327 "op" : "not",
4328 "left" : null,
4329 "right" : {
4330 "type" : "expression",
4331 "value" : {
4332 "op" : "d2b",
4333 "left" : null,
4334 "right" : {
4335 "type" : "field",
4336 "value" : ["scalars", "egress_next_tmp"]
4337 }
4338 }
4339 }
4340 }
4341 },
Daniele Moro693d76f2019-09-24 14:34:07 -07004342 "true_next" : "node_43",
4343 "false_next" : "node_45"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004344 },
4345 {
Daniele Moro693d76f2019-09-24 14:34:07 -07004346 "name" : "node_43",
4347 "id" : 16,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004348 "source_info" : {
4349 "filename" : "include/control/next.p4",
Daniele Morodd0568b2019-11-01 14:01:46 -07004350 "line" : 359,
Daniele Moro7c3a0022019-07-12 13:38:34 -07004351 "column" : 20,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004352 "source_fragment" : "fabric_metadata.vlan_id != DEFAULT_VLAN_ID"
4353 },
4354 "expression" : {
4355 "type" : "expression",
4356 "value" : {
4357 "op" : "!=",
4358 "left" : {
4359 "type" : "field",
4360 "value" : ["scalars", "fabric_metadata_t.vlan_id"]
4361 },
4362 "right" : {
4363 "type" : "hexstr",
4364 "value" : "0x0ffe"
4365 }
4366 }
4367 },
4368 "true_next" : "tbl_egress_next_push_vlan",
Daniele Moro693d76f2019-09-24 14:34:07 -07004369 "false_next" : "node_45"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004370 },
4371 {
Daniele Moro693d76f2019-09-24 14:34:07 -07004372 "name" : "node_45",
4373 "id" : 17,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004374 "source_info" : {
4375 "filename" : "include/control/next.p4",
Daniele Morodd0568b2019-11-01 14:01:46 -07004376 "line" : 368,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004377 "column" : 12,
4378 "source_fragment" : "hdr.mpls.isValid()"
4379 },
4380 "expression" : {
4381 "type" : "expression",
4382 "value" : {
4383 "op" : "d2b",
4384 "left" : null,
4385 "right" : {
4386 "type" : "field",
4387 "value" : ["mpls", "$valid$"]
4388 }
4389 }
4390 },
Daniele Moro693d76f2019-09-24 14:34:07 -07004391 "true_next" : "tbl_act_9",
4392 "false_next" : "node_49"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004393 },
4394 {
Daniele Moro693d76f2019-09-24 14:34:07 -07004395 "name" : "node_47",
4396 "id" : 18,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004397 "source_info" : {
4398 "filename" : "include/control/next.p4",
Daniele Morodd0568b2019-11-01 14:01:46 -07004399 "line" : 370,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004400 "column" : 16,
4401 "source_fragment" : "hdr.mpls.ttl == 0"
4402 },
4403 "expression" : {
4404 "type" : "expression",
4405 "value" : {
4406 "op" : "==",
4407 "left" : {
4408 "type" : "field",
4409 "value" : ["mpls", "ttl"]
4410 },
4411 "right" : {
4412 "type" : "hexstr",
4413 "value" : "0x00"
4414 }
4415 }
4416 },
4417 "false_next" : null,
Daniele Moro693d76f2019-09-24 14:34:07 -07004418 "true_next" : "tbl_act_10"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004419 },
4420 {
Daniele Moro693d76f2019-09-24 14:34:07 -07004421 "name" : "node_49",
4422 "id" : 19,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004423 "source_info" : {
4424 "filename" : "include/control/next.p4",
Daniele Morodd0568b2019-11-01 14:01:46 -07004425 "line" : 372,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004426 "column" : 15,
4427 "source_fragment" : "hdr.ipv4.isValid()"
4428 },
4429 "expression" : {
4430 "type" : "expression",
4431 "value" : {
4432 "op" : "d2b",
4433 "left" : null,
4434 "right" : {
4435 "type" : "field",
4436 "value" : ["ipv4", "$valid$"]
4437 }
4438 }
4439 },
4440 "false_next" : null,
Daniele Moro693d76f2019-09-24 14:34:07 -07004441 "true_next" : "tbl_act_11"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004442 },
4443 {
Daniele Moro693d76f2019-09-24 14:34:07 -07004444 "name" : "node_51",
4445 "id" : 20,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004446 "source_info" : {
4447 "filename" : "include/control/next.p4",
Daniele Morodd0568b2019-11-01 14:01:46 -07004448 "line" : 374,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004449 "column" : 20,
4450 "source_fragment" : "hdr.ipv4.ttl == 0"
4451 },
4452 "expression" : {
4453 "type" : "expression",
4454 "value" : {
4455 "op" : "==",
4456 "left" : {
4457 "type" : "field",
4458 "value" : ["ipv4", "ttl"]
4459 },
4460 "right" : {
4461 "type" : "hexstr",
4462 "value" : "0x00"
4463 }
4464 }
4465 },
4466 "false_next" : null,
Daniele Moro693d76f2019-09-24 14:34:07 -07004467 "true_next" : "tbl_act_12"
Yi Tsengbe342052017-11-03 10:21:23 -07004468 }
4469 ]
4470 }
4471 ],
4472 "checksums" : [
4473 {
4474 "name" : "cksum",
4475 "id" : 0,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07004476 "source_info" : {
4477 "filename" : "include/checksum.p4",
4478 "line" : 28,
4479 "column" : 8,
4480 "source_fragment" : "update_checksum(hdr.ipv4.isValid(), ..."
4481 },
Yi Tsengbe342052017-11-03 10:21:23 -07004482 "target" : ["ipv4", "hdr_checksum"],
4483 "type" : "generic",
Yi Tsengbd46d052018-01-22 17:18:16 -08004484 "calculation" : "calc",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08004485 "verify" : false,
4486 "update" : true,
Yi Tsengbd46d052018-01-22 17:18:16 -08004487 "if_cond" : {
4488 "type" : "expression",
4489 "value" : {
4490 "op" : "d2b",
4491 "left" : null,
4492 "right" : {
4493 "type" : "field",
4494 "value" : ["ipv4", "$valid$"]
4495 }
4496 }
4497 }
Yi Tsengbe342052017-11-03 10:21:23 -07004498 },
4499 {
4500 "name" : "cksum_0",
4501 "id" : 1,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07004502 "source_info" : {
4503 "filename" : "include/checksum.p4",
4504 "line" : 57,
4505 "column" : 8,
4506 "source_fragment" : "verify_checksum(hdr.ipv4.isValid(), ..."
4507 },
Yi Tsengbe342052017-11-03 10:21:23 -07004508 "target" : ["ipv4", "hdr_checksum"],
4509 "type" : "generic",
Yi Tsengbd46d052018-01-22 17:18:16 -08004510 "calculation" : "calc_0",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08004511 "verify" : true,
4512 "update" : false,
Yi Tsengbd46d052018-01-22 17:18:16 -08004513 "if_cond" : {
4514 "type" : "expression",
4515 "value" : {
4516 "op" : "d2b",
4517 "left" : null,
4518 "right" : {
4519 "type" : "field",
4520 "value" : ["ipv4", "$valid$"]
4521 }
4522 }
4523 }
Yi Tsengbe342052017-11-03 10:21:23 -07004524 }
4525 ],
4526 "force_arith" : [],
4527 "extern_instances" : [],
4528 "field_aliases" : [
4529 [
4530 "queueing_metadata.enq_timestamp",
4531 ["standard_metadata", "enq_timestamp"]
4532 ],
4533 [
4534 "queueing_metadata.enq_qdepth",
4535 ["standard_metadata", "enq_qdepth"]
4536 ],
4537 [
4538 "queueing_metadata.deq_timedelta",
4539 ["standard_metadata", "deq_timedelta"]
4540 ],
4541 [
4542 "queueing_metadata.deq_qdepth",
4543 ["standard_metadata", "deq_qdepth"]
4544 ],
4545 [
4546 "intrinsic_metadata.ingress_global_timestamp",
4547 ["standard_metadata", "ingress_global_timestamp"]
4548 ],
4549 [
Yi Tseng27b9bc02018-04-12 14:52:40 +08004550 "intrinsic_metadata.egress_global_timestamp",
4551 ["standard_metadata", "egress_global_timestamp"]
4552 ],
4553 [
Yi Tsengbe342052017-11-03 10:21:23 -07004554 "intrinsic_metadata.lf_field_list",
4555 ["standard_metadata", "lf_field_list"]
4556 ],
4557 [
4558 "intrinsic_metadata.mcast_grp",
4559 ["standard_metadata", "mcast_grp"]
4560 ],
4561 [
4562 "intrinsic_metadata.resubmit_flag",
4563 ["standard_metadata", "resubmit_flag"]
4564 ],
4565 [
4566 "intrinsic_metadata.egress_rid",
4567 ["standard_metadata", "egress_rid"]
Yi Tseng27b9bc02018-04-12 14:52:40 +08004568 ],
4569 [
4570 "intrinsic_metadata.recirculate_flag",
4571 ["standard_metadata", "recirculate_flag"]
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004572 ],
4573 [
4574 "intrinsic_metadata.priority",
4575 ["standard_metadata", "priority"]
Yi Tsengbe342052017-11-03 10:21:23 -07004576 ]
Carmelo Cascone6af4e172018-06-15 16:01:30 +02004577 ],
4578 "program" : "fabric.p4",
4579 "__meta__" : {
4580 "version" : [2, 18],
4581 "compiler" : "https://github.com/p4lang/p4c"
4582 }
Carmelo Cascone25243d62019-02-21 15:37:31 -08004583}