blob: f6c42ee7a3c1a41b7f22716a641c1c5f906bdafa [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" : [
pierventre48e78822020-12-15 17:34:54 +01007 ["tmp", 16, false],
Daniele Moro5a2de712019-09-24 14:34:07 -07008 ["tmp_0", 16, false],
pierventre48e78822020-12-15 17:34:54 +01009 ["tmp_1", 4, false],
10 ["tmp_2", 32, false],
Daniele Moro5a2de712019-09-24 14:34:07 -070011 ["tmp_3", 32, false],
Carmelo Casconeb5324e72018-11-25 02:26:32 -080012 ["fabric_metadata_t.ip_eth_type", 16, false],
13 ["fabric_metadata_t.vlan_id", 12, false],
14 ["fabric_metadata_t.vlan_pri", 3, false],
15 ["fabric_metadata_t.vlan_cfi", 1, false],
16 ["fabric_metadata_t.mpls_label", 20, false],
17 ["fabric_metadata_t.mpls_ttl", 8, false],
18 ["fabric_metadata_t.skip_forwarding", 1, false],
19 ["fabric_metadata_t.skip_next", 1, false],
Yi Tsengbe342052017-11-03 10:21:23 -070020 ["fabric_metadata_t.fwd_type", 3, false],
21 ["fabric_metadata_t.next_id", 32, false],
Carmelo Cascone1e8843f2018-07-19 19:01:12 +020022 ["fabric_metadata_t.is_multicast", 1, false],
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -070023 ["fabric_metadata_t.is_controller_packet_out", 1, false],
Yi Tsengbe342052017-11-03 10:21:23 -070024 ["fabric_metadata_t.ip_proto", 8, false],
Carmelo Casconeb5324e72018-11-25 02:26:32 -080025 ["fabric_metadata_t.l4_sport", 16, false],
Robert MacDavidbec6b6a2020-05-21 21:32:38 -040026 ["fabric_metadata_t.l4_dport", 16, false],
27 ["fabric_metadata_t.ipv4_src_addr", 32, false],
pierventre48e78822020-12-15 17:34:54 +010028 ["fabric_metadata_t.ipv4_dst_addr", 32, false],
29 ["_padding_0", 1, 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 Moro5a2de712019-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 Moro5a2de712019-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 Moro5a2de712019-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 Moro5a2de712019-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 Moro5a2de712019-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 Moro5a2de712019-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 Moro5a2de712019-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 Moro5a2de712019-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 Moro5a2de712019-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 Moro5a2de712019-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 Moro5a2de712019-09-24 14:34:07 -0700208 "name" : "eth_type",
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800209 "id" : 5,
Daniele Moro5a2de712019-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 Moro5a2de712019-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 Moro5a2de712019-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 Moro5a2de712019-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 Moro5a2de712019-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 Moro5a2de712019-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 Moro5a2de712019-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 Moro5a2de712019-09-24 14:34:07 -0700366 "value" : ["scalars", "fabric_metadata_t.vlan_id"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800367 },
368 {
Daniele Moro5a2de712019-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",
pierventre48e78822020-12-15 17:34:54 +0100379 "value" : ["scalars", "tmp"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -0800380 },
381 {
Daniele Moro5a2de712019-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 Moro5a2de712019-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",
pierventre48e78822020-12-15 17:34:54 +0100417 "value" : ["scalars", "tmp"]
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 Moro5a2de712019-09-24 14:34:07 -0700433 },
434 {
435 "parameters" : [
436 {
437 "type" : "field",
pierventre48e78822020-12-15 17:34:54 +0100438 "value" : ["scalars", "tmp_0"]
Daniele Moro5a2de712019-09-24 14:34:07 -0700439 },
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 Moro5a2de712019-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",
pierventre48e78822020-12-15 17:34:54 +0100464 "value" : ["scalars", "tmp_0"]
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 Moro5a2de712019-09-24 14:34:07 -0700484 "value" : "default",
Yi Tsengbe342052017-11-03 10:21:23 -0700485 "mask" : null,
Daniele Moro5a2de712019-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 Moro5a2de712019-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 Moro5a2de712019-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 Moro5a2de712019-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",
pierventre48e78822020-12-15 17:34:54 +0100574 "value" : ["scalars", "tmp_1"]
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",
pierventre48e78822020-12-15 17:34:54 +0100600 "value" : ["scalars", "tmp_1"]
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 MacDavidbec6b6a2020-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 MacDavidde12b982020-07-15 18:38:59 -0700838 "line" : 268,
Yi Tsengbe342052017-11-03 10:21:23 -0700839 "column" : 8,
840 "source_fragment" : "FabricDeparser"
841 },
Daniele Moro5a2de712019-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 Morob3d199b2019-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 Moro5a2de712019-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 Moro5a2de712019-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 Moro5a2de712019-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 Morob3d199b2019-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 Moro5a2de712019-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 Morob3d199b2019-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 Moro5a2de712019-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 Morob3d199b2019-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 Moro5a2de712019-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 Moro5a2de712019-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 Moro5a2de712019-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",
pierventre48e78822020-12-15 17:34:54 +0100986 "line" : 314,
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 Morob3d199b2019-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 Morob3d199b2019-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 Morob3d199b2019-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 Morob3d199b2019-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 Morob3d199b2019-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 Morob3d199b2019-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 Morob3d199b2019-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 Morob3d199b2019-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",
pierventre48e78822020-12-15 17:34:54 +01002127 "value" : ["scalars", "tmp_2"]
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",
pierventre48e78822020-12-15 17:34:54 +01002163 "value" : ["scalars", "tmp_2"]
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 Moro5a2de712019-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 Moro5a2de712019-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 Moro5a2de712019-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 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002234 "name" : "FabricEgress.egress_next.pop_mpls_if_present",
pierventre48e78822020-12-15 17:34:54 +01002235 "id" : 32,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002236 "runtime_data" : [],
2237 "primitives" : [
2238 {
2239 "op" : "remove_header",
2240 "parameters" : [
2241 {
2242 "type" : "header",
2243 "value" : "mpls"
2244 }
2245 ],
2246 "source_info" : {
2247 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07002248 "line" : 270,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002249 "column" : 8,
2250 "source_fragment" : "hdr.mpls.setInvalid()"
2251 }
2252 },
2253 {
2254 "op" : "assign",
2255 "parameters" : [
2256 {
2257 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07002258 "value" : ["eth_type", "value"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002259 },
2260 {
2261 "type" : "field",
2262 "value" : ["scalars", "fabric_metadata_t.ip_eth_type"]
2263 }
2264 ],
2265 "source_info" : {
2266 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07002267 "line" : 272,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002268 "column" : 8,
Daniele Moro5a2de712019-09-24 14:34:07 -07002269 "source_fragment" : "hdr.eth_type.value = fabric_metadata.ip_eth_type"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002270 }
2271 }
2272 ]
2273 },
2274 {
2275 "name" : "FabricEgress.egress_next.set_mpls",
pierventre48e78822020-12-15 17:34:54 +01002276 "id" : 33,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002277 "runtime_data" : [],
2278 "primitives" : [
2279 {
2280 "op" : "add_header",
2281 "parameters" : [
2282 {
2283 "type" : "header",
2284 "value" : "mpls"
2285 }
2286 ],
2287 "source_info" : {
2288 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07002289 "line" : 277,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002290 "column" : 8,
2291 "source_fragment" : "hdr.mpls.setValid()"
2292 }
2293 },
2294 {
2295 "op" : "assign",
2296 "parameters" : [
2297 {
2298 "type" : "field",
2299 "value" : ["mpls", "label"]
2300 },
2301 {
2302 "type" : "field",
2303 "value" : ["scalars", "fabric_metadata_t.mpls_label"]
2304 }
2305 ],
2306 "source_info" : {
2307 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07002308 "line" : 278,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002309 "column" : 8,
2310 "source_fragment" : "hdr.mpls.label = fabric_metadata.mpls_label"
2311 }
2312 },
2313 {
2314 "op" : "assign",
2315 "parameters" : [
2316 {
2317 "type" : "field",
2318 "value" : ["mpls", "tc"]
2319 },
2320 {
2321 "type" : "hexstr",
2322 "value" : "0x00"
2323 }
2324 ],
2325 "source_info" : {
2326 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07002327 "line" : 279,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002328 "column" : 8,
2329 "source_fragment" : "hdr.mpls.tc = 3w0"
2330 }
2331 },
2332 {
2333 "op" : "assign",
2334 "parameters" : [
2335 {
2336 "type" : "field",
2337 "value" : ["mpls", "bos"]
2338 },
2339 {
2340 "type" : "hexstr",
2341 "value" : "0x01"
2342 }
2343 ],
2344 "source_info" : {
2345 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07002346 "line" : 280,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002347 "column" : 8,
2348 "source_fragment" : "hdr.mpls.bos = 1w1"
2349 }
2350 },
2351 {
2352 "op" : "assign",
2353 "parameters" : [
2354 {
2355 "type" : "field",
2356 "value" : ["mpls", "ttl"]
2357 },
2358 {
2359 "type" : "field",
2360 "value" : ["scalars", "fabric_metadata_t.mpls_ttl"]
2361 }
2362 ],
2363 "source_info" : {
2364 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07002365 "line" : 281,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002366 "column" : 8,
2367 "source_fragment" : "hdr.mpls.ttl = fabric_metadata.mpls_ttl"
2368 }
2369 },
2370 {
2371 "op" : "assign",
2372 "parameters" : [
2373 {
2374 "type" : "field",
Daniele Moro5a2de712019-09-24 14:34:07 -07002375 "value" : ["eth_type", "value"]
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002376 },
2377 {
2378 "type" : "hexstr",
2379 "value" : "0x8847"
2380 }
2381 ],
2382 "source_info" : {
2383 "filename" : "include/control/../define.p4",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08002384 "line" : 116,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002385 "column" : 31,
2386 "source_fragment" : "0x8847; ..."
2387 }
2388 }
2389 ]
2390 },
2391 {
2392 "name" : "FabricEgress.egress_next.push_vlan",
pierventre48e78822020-12-15 17:34:54 +01002393 "id" : 34,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002394 "runtime_data" : [],
2395 "primitives" : [
2396 {
2397 "op" : "add_header",
2398 "parameters" : [
2399 {
2400 "type" : "header",
2401 "value" : "vlan_tag"
2402 }
2403 ],
2404 "source_info" : {
2405 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07002406 "line" : 289,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002407 "column" : 8,
2408 "source_fragment" : "hdr.vlan_tag.setValid()"
2409 }
2410 },
2411 {
2412 "op" : "assign",
2413 "parameters" : [
2414 {
2415 "type" : "field",
2416 "value" : ["vlan_tag", "cfi"]
2417 },
2418 {
2419 "type" : "field",
2420 "value" : ["scalars", "fabric_metadata_t.vlan_cfi"]
2421 }
2422 ],
2423 "source_info" : {
2424 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07002425 "line" : 290,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002426 "column" : 8,
2427 "source_fragment" : "hdr.vlan_tag.cfi = fabric_metadata.vlan_cfi"
2428 }
2429 },
2430 {
2431 "op" : "assign",
2432 "parameters" : [
2433 {
2434 "type" : "field",
2435 "value" : ["vlan_tag", "pri"]
2436 },
2437 {
2438 "type" : "field",
2439 "value" : ["scalars", "fabric_metadata_t.vlan_pri"]
2440 }
2441 ],
2442 "source_info" : {
2443 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07002444 "line" : 291,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002445 "column" : 8,
2446 "source_fragment" : "hdr.vlan_tag.pri = fabric_metadata.vlan_pri"
2447 }
2448 },
2449 {
2450 "op" : "assign",
2451 "parameters" : [
2452 {
2453 "type" : "field",
2454 "value" : ["vlan_tag", "eth_type"]
2455 },
2456 {
Daniele Moro5a2de712019-09-24 14:34:07 -07002457 "type" : "hexstr",
2458 "value" : "0x8100"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002459 }
2460 ],
2461 "source_info" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07002462 "filename" : "include/control/../define.p4",
Carmelo Cascone2102bfb2020-12-04 16:54:24 -08002463 "line" : 115,
Daniele Moro5a2de712019-09-24 14:34:07 -07002464 "column" : 31,
2465 "source_fragment" : "0x8100; ..."
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002466 }
2467 },
2468 {
2469 "op" : "assign",
2470 "parameters" : [
2471 {
2472 "type" : "field",
2473 "value" : ["vlan_tag", "vlan_id"]
2474 },
2475 {
2476 "type" : "field",
2477 "value" : ["scalars", "fabric_metadata_t.vlan_id"]
2478 }
2479 ],
2480 "source_info" : {
2481 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07002482 "line" : 293,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002483 "column" : 8,
2484 "source_fragment" : "hdr.vlan_tag.vlan_id = fabric_metadata.vlan_id"
2485 }
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002486 }
2487 ]
2488 },
2489 {
2490 "name" : "FabricEgress.egress_next.pop_vlan",
pierventre48e78822020-12-15 17:34:54 +01002491 "id" : 35,
Yi Tseng1d842672017-11-28 16:06:52 -08002492 "runtime_data" : [],
2493 "primitives" : [
2494 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002495 "op" : "remove_header",
2496 "parameters" : [
2497 {
2498 "type" : "header",
2499 "value" : "vlan_tag"
2500 }
2501 ],
2502 "source_info" : {
2503 "filename" : "include/control/next.p4",
pierventre48e78822020-12-15 17:34:54 +01002504 "line" : 322,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002505 "column" : 8,
2506 "source_fragment" : "hdr.vlan_tag.setInvalid()"
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002507 }
Carmelo Casconea5400af2018-07-17 22:11:54 +02002508 }
2509 ]
2510 },
2511 {
pierventre48e78822020-12-15 17:34:54 +01002512 "name" : "FabricEgress.egress_next.drop",
2513 "id" : 36,
2514 "runtime_data" : [],
2515 "primitives" : [
2516 {
2517 "op" : "mark_to_drop",
2518 "parameters" : [
2519 {
2520 "type" : "header",
2521 "value" : "standard_metadata"
2522 }
2523 ],
2524 "source_info" : {
2525 "filename" : "include/control/next.p4",
2526 "line" : 327,
2527 "column" : 8,
2528 "source_fragment" : "mark_to_drop(standard_metadata)"
2529 }
2530 }
2531 ]
2532 },
2533 {
Daniele Moro5a2de712019-09-24 14:34:07 -07002534 "name" : "act_4",
2535 "id" : 37,
Carmelo Casconea5400af2018-07-17 22:11:54 +02002536 "runtime_data" : [],
2537 "primitives" : [
2538 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07002539 "op" : "exit",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002540 "parameters" : [],
2541 "source_info" : {
2542 "filename" : "include/control/packetio.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07002543 "line" : 41,
2544 "column" : 12,
2545 "source_fragment" : "exit"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002546 }
Carmelo Casconea5400af2018-07-17 22:11:54 +02002547 }
2548 ]
2549 },
2550 {
Daniele Moro5a2de712019-09-24 14:34:07 -07002551 "name" : "act_5",
2552 "id" : 38,
Carmelo Casconea5400af2018-07-17 22:11:54 +02002553 "runtime_data" : [],
2554 "primitives" : [
2555 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002556 "op" : "add_header",
2557 "parameters" : [
2558 {
2559 "type" : "header",
2560 "value" : "packet_in"
2561 }
2562 ],
2563 "source_info" : {
2564 "filename" : "include/control/packetio.p4",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07002565 "line" : 44,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002566 "column" : 12,
2567 "source_fragment" : "hdr.packet_in.setValid()"
2568 }
2569 },
2570 {
Carmelo Casconea5400af2018-07-17 22:11:54 +02002571 "op" : "assign",
2572 "parameters" : [
2573 {
2574 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002575 "value" : ["packet_in", "ingress_port"]
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002576 },
2577 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002578 "type" : "field",
2579 "value" : ["standard_metadata", "ingress_port"]
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002580 }
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002581 ],
2582 "source_info" : {
2583 "filename" : "include/control/packetio.p4",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07002584 "line" : 45,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002585 "column" : 12,
2586 "source_fragment" : "hdr.packet_in.ingress_port = standard_metadata.ingress_port"
2587 }
Carmelo Cascone9b607da2019-05-08 14:03:01 -07002588 },
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002589 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07002590 "op" : "exit",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002591 "parameters" : [],
2592 "source_info" : {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07002593 "filename" : "include/control/packetio.p4",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07002594 "line" : 47,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002595 "column" : 12,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07002596 "source_fragment" : "exit"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002597 }
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002598 }
2599 ]
2600 },
2601 {
Daniele Moro5a2de712019-09-24 14:34:07 -07002602 "name" : "act_6",
2603 "id" : 39,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07002604 "runtime_data" : [],
2605 "primitives" : [
2606 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07002607 "op" : "mark_to_drop",
2608 "parameters" : [
2609 {
2610 "type" : "header",
2611 "value" : "standard_metadata"
2612 }
2613 ],
2614 "source_info" : {
2615 "filename" : "include/control/next.p4",
pierventre48e78822020-12-15 17:34:54 +01002616 "line" : 349,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07002617 "column" : 12,
2618 "source_fragment" : "mark_to_drop(standard_metadata)"
2619 }
2620 }
2621 ]
2622 },
2623 {
Daniele Moro5a2de712019-09-24 14:34:07 -07002624 "name" : "act_7",
2625 "id" : 40,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07002626 "runtime_data" : [],
2627 "primitives" : [
2628 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07002629 "op" : "mark_to_drop",
2630 "parameters" : [
2631 {
2632 "type" : "header",
2633 "value" : "standard_metadata"
2634 }
2635 ],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002636 "source_info" : {
2637 "filename" : "include/control/next.p4",
pierventre48e78822020-12-15 17:34:54 +01002638 "line" : 376,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002639 "column" : 35,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07002640 "source_fragment" : "mark_to_drop(standard_metadata)"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002641 }
Carmelo Casconea5400af2018-07-17 22:11:54 +02002642 }
2643 ]
2644 },
2645 {
pierventre48e78822020-12-15 17:34:54 +01002646 "name" : "act_8",
2647 "id" : 41,
Carmelo Casconea5400af2018-07-17 22:11:54 +02002648 "runtime_data" : [],
2649 "primitives" : [
2650 {
2651 "op" : "assign",
2652 "parameters" : [
2653 {
2654 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002655 "value" : ["mpls", "ttl"]
Carmelo Casconea5400af2018-07-17 22:11:54 +02002656 },
2657 {
2658 "type" : "expression",
2659 "value" : {
2660 "type" : "expression",
2661 "value" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002662 "op" : "&",
2663 "left" : {
2664 "type" : "expression",
2665 "value" : {
2666 "op" : "+",
2667 "left" : {
2668 "type" : "field",
2669 "value" : ["mpls", "ttl"]
2670 },
2671 "right" : {
2672 "type" : "hexstr",
2673 "value" : "0xff"
2674 }
2675 }
2676 },
Carmelo Casconea5400af2018-07-17 22:11:54 +02002677 "right" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002678 "type" : "hexstr",
2679 "value" : "0xff"
Carmelo Casconea5400af2018-07-17 22:11:54 +02002680 }
2681 }
2682 }
2683 }
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002684 ],
2685 "source_info" : {
2686 "filename" : "include/control/next.p4",
pierventre48e78822020-12-15 17:34:54 +01002687 "line" : 375,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002688 "column" : 12,
2689 "source_fragment" : "hdr.mpls.ttl = hdr.mpls.ttl - 1"
2690 }
Carmelo Casconea5400af2018-07-17 22:11:54 +02002691 }
2692 ]
2693 },
2694 {
pierventre48e78822020-12-15 17:34:54 +01002695 "name" : "act_9",
2696 "id" : 42,
Carmelo Casconea5400af2018-07-17 22:11:54 +02002697 "runtime_data" : [],
2698 "primitives" : [
2699 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07002700 "op" : "mark_to_drop",
2701 "parameters" : [
2702 {
2703 "type" : "header",
2704 "value" : "standard_metadata"
2705 }
2706 ],
Carmelo Casconea5400af2018-07-17 22:11:54 +02002707 "source_info" : {
2708 "filename" : "include/control/next.p4",
pierventre48e78822020-12-15 17:34:54 +01002709 "line" : 380,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002710 "column" : 39,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07002711 "source_fragment" : "mark_to_drop(standard_metadata)"
Carmelo Casconea5400af2018-07-17 22:11:54 +02002712 }
2713 }
2714 ]
2715 },
2716 {
pierventre48e78822020-12-15 17:34:54 +01002717 "name" : "act_10",
2718 "id" : 43,
Carmelo Casconea5400af2018-07-17 22:11:54 +02002719 "runtime_data" : [],
2720 "primitives" : [
2721 {
2722 "op" : "assign",
2723 "parameters" : [
2724 {
2725 "type" : "field",
Yi Tseng1d842672017-11-28 16:06:52 -08002726 "value" : ["ipv4", "ttl"]
2727 },
2728 {
2729 "type" : "expression",
2730 "value" : {
2731 "type" : "expression",
2732 "value" : {
2733 "op" : "&",
2734 "left" : {
2735 "type" : "expression",
2736 "value" : {
2737 "op" : "+",
2738 "left" : {
2739 "type" : "field",
2740 "value" : ["ipv4", "ttl"]
2741 },
2742 "right" : {
2743 "type" : "hexstr",
2744 "value" : "0xff"
2745 }
2746 }
2747 },
2748 "right" : {
2749 "type" : "hexstr",
2750 "value" : "0xff"
2751 }
2752 }
2753 }
2754 }
2755 ],
2756 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002757 "filename" : "include/control/next.p4",
pierventre48e78822020-12-15 17:34:54 +01002758 "line" : 379,
Carmelo Casconea5400af2018-07-17 22:11:54 +02002759 "column" : 16,
Yi Tseng1d842672017-11-28 16:06:52 -08002760 "source_fragment" : "hdr.ipv4.ttl = hdr.ipv4.ttl - 1"
2761 }
2762 }
2763 ]
Yi Tsengbe342052017-11-03 10:21:23 -07002764 }
2765 ],
2766 "pipelines" : [
2767 {
2768 "name" : "ingress",
2769 "id" : 0,
2770 "source_info" : {
2771 "filename" : "fabric.p4",
Carmelo Cascone4d8785b2019-05-31 17:11:26 -07002772 "line" : 46,
Yi Tsengbe342052017-11-03 10:21:23 -07002773 "column" : 8,
2774 "source_fragment" : "FabricIngress"
2775 },
2776 "init_table" : "node_2",
2777 "tables" : [
2778 {
2779 "name" : "tbl_act",
2780 "id" : 0,
Carmelo Cascone3032b872019-04-13 01:23:54 -07002781 "source_info" : {
2782 "filename" : "include/control/packetio.p4",
2783 "line" : 25,
2784 "column" : 42,
2785 "source_fragment" : "= hdr.packet_out.egress_port; ..."
2786 },
Yi Tsengbe342052017-11-03 10:21:23 -07002787 "key" : [],
2788 "match_type" : "exact",
2789 "type" : "simple",
2790 "max_size" : 1024,
2791 "with_counters" : false,
2792 "support_timeout" : false,
2793 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002794 "action_ids" : [27],
Yi Tsengbe342052017-11-03 10:21:23 -07002795 "actions" : ["act"],
Carmelo Cascone9b607da2019-05-08 14:03:01 -07002796 "base_default_next" : "node_4",
Yi Tsengbe342052017-11-03 10:21:23 -07002797 "next_tables" : {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07002798 "act" : "node_4"
Yi Tsengbe342052017-11-03 10:21:23 -07002799 },
2800 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002801 "action_id" : 27,
2802 "action_const" : true,
2803 "action_data" : [],
2804 "action_entry_const" : true
2805 }
2806 },
2807 {
2808 "name" : "tbl_act_0",
2809 "id" : 1,
Carmelo Cascone3032b872019-04-13 01:23:54 -07002810 "source_info" : {
2811 "filename" : "include/control/filtering.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07002812 "line" : 111,
Daniele Moro7c3a0022019-07-12 13:38:34 -07002813 "column" : 36,
2814 "source_fragment" : "= hdr.vlan_tag.vlan_id; ..."
Carmelo Cascone3032b872019-04-13 01:23:54 -07002815 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002816 "key" : [],
2817 "match_type" : "exact",
2818 "type" : "simple",
2819 "max_size" : 1024,
2820 "with_counters" : false,
2821 "support_timeout" : false,
2822 "direct_meters" : null,
2823 "action_ids" : [28],
2824 "actions" : ["act_0"],
2825 "base_default_next" : "node_6",
2826 "next_tables" : {
2827 "act_0" : "node_6"
2828 },
2829 "default_entry" : {
2830 "action_id" : 28,
2831 "action_const" : true,
2832 "action_data" : [],
2833 "action_entry_const" : true
2834 }
2835 },
2836 {
2837 "name" : "tbl_act_1",
2838 "id" : 2,
Carmelo Cascone3032b872019-04-13 01:23:54 -07002839 "source_info" : {
2840 "filename" : "include/control/filtering.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07002841 "line" : 127,
Carmelo Cascone3032b872019-04-13 01:23:54 -07002842 "column" : 37,
2843 "source_fragment" : "="
2844 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002845 "key" : [],
2846 "match_type" : "exact",
2847 "type" : "simple",
2848 "max_size" : 1024,
2849 "with_counters" : false,
2850 "support_timeout" : false,
2851 "direct_meters" : null,
2852 "action_ids" : [29],
2853 "actions" : ["act_1"],
Daniele Moro5a2de712019-09-24 14:34:07 -07002854 "base_default_next" : "FabricIngress.filtering.ingress_port_vlan",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002855 "next_tables" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07002856 "act_1" : "FabricIngress.filtering.ingress_port_vlan"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002857 },
2858 "default_entry" : {
2859 "action_id" : 29,
Yi Tsengbe342052017-11-03 10:21:23 -07002860 "action_const" : true,
2861 "action_data" : [],
2862 "action_entry_const" : true
2863 }
2864 },
2865 {
Daniele Moro7c3a0022019-07-12 13:38:34 -07002866 "name" : "FabricIngress.filtering.ingress_port_vlan",
Daniele Moro5a2de712019-09-24 14:34:07 -07002867 "id" : 3,
Daniele Moro7c3a0022019-07-12 13:38:34 -07002868 "source_info" : {
2869 "filename" : "include/control/filtering.p4",
2870 "line" : 53,
Yi Tsengbe342052017-11-03 10:21:23 -07002871 "column" : 10,
2872 "source_fragment" : "ingress_port_vlan"
2873 },
2874 "key" : [
2875 {
2876 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002877 "name" : "ig_port",
Yi Tsengbe342052017-11-03 10:21:23 -07002878 "target" : ["standard_metadata", "ingress_port"],
2879 "mask" : null
2880 },
2881 {
2882 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002883 "name" : "vlan_is_valid",
Yi Tsengbe342052017-11-03 10:21:23 -07002884 "target" : ["vlan_tag", "$valid$"],
2885 "mask" : null
2886 },
2887 {
2888 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002889 "name" : "vlan_id",
Yi Tsengbe342052017-11-03 10:21:23 -07002890 "target" : ["vlan_tag", "vlan_id"],
2891 "mask" : null
2892 }
2893 ],
2894 "match_type" : "ternary",
2895 "type" : "simple",
2896 "max_size" : 1024,
Yi Tsengbd46d052018-01-22 17:18:16 -08002897 "with_counters" : true,
Yi Tsengbe342052017-11-03 10:21:23 -07002898 "support_timeout" : false,
2899 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002900 "action_ids" : [7, 8, 9],
2901 "actions" : ["FabricIngress.filtering.deny", "FabricIngress.filtering.permit", "FabricIngress.filtering.permit_with_internal_vlan"],
2902 "base_default_next" : "FabricIngress.filtering.fwd_classifier",
Yi Tsengbe342052017-11-03 10:21:23 -07002903 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002904 "FabricIngress.filtering.deny" : "FabricIngress.filtering.fwd_classifier",
2905 "FabricIngress.filtering.permit" : "FabricIngress.filtering.fwd_classifier",
2906 "FabricIngress.filtering.permit_with_internal_vlan" : "FabricIngress.filtering.fwd_classifier"
Yi Tsengbe342052017-11-03 10:21:23 -07002907 },
2908 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002909 "action_id" : 7,
Yi Tsengbe342052017-11-03 10:21:23 -07002910 "action_const" : true,
2911 "action_data" : [],
2912 "action_entry_const" : true
2913 }
2914 },
2915 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002916 "name" : "FabricIngress.filtering.fwd_classifier",
Daniele Moro5a2de712019-09-24 14:34:07 -07002917 "id" : 4,
Yi Tsengbe342052017-11-03 10:21:23 -07002918 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002919 "filename" : "include/control/filtering.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07002920 "line" : 92,
Yi Tsengbe342052017-11-03 10:21:23 -07002921 "column" : 10,
2922 "source_fragment" : "fwd_classifier"
2923 },
2924 "key" : [
2925 {
2926 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002927 "name" : "ig_port",
Yi Tsengbe342052017-11-03 10:21:23 -07002928 "target" : ["standard_metadata", "ingress_port"],
2929 "mask" : null
2930 },
2931 {
Charles Chan384aea22018-08-23 22:08:02 -07002932 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002933 "name" : "eth_dst",
Yi Tsengbe342052017-11-03 10:21:23 -07002934 "target" : ["ethernet", "dst_addr"],
2935 "mask" : null
2936 },
2937 {
Daniele Moro5a2de712019-09-24 14:34:07 -07002938 "match_type" : "ternary",
2939 "name" : "eth_type",
2940 "target" : ["eth_type", "value"],
Daniele Moro7c3a0022019-07-12 13:38:34 -07002941 "mask" : null
2942 },
2943 {
2944 "match_type" : "exact",
Daniele Moro5a2de712019-09-24 14:34:07 -07002945 "name" : "ip_eth_type",
2946 "target" : ["scalars", "fabric_metadata_t.ip_eth_type"],
Yi Tsengbe342052017-11-03 10:21:23 -07002947 "mask" : null
2948 }
2949 ],
Charles Chan384aea22018-08-23 22:08:02 -07002950 "match_type" : "ternary",
Yi Tsengbe342052017-11-03 10:21:23 -07002951 "type" : "simple",
2952 "max_size" : 1024,
Yi Tsengbd46d052018-01-22 17:18:16 -08002953 "with_counters" : true,
Yi Tsengbe342052017-11-03 10:21:23 -07002954 "support_timeout" : false,
2955 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002956 "action_ids" : [10],
Yi Tseng27b9bc02018-04-12 14:52:40 +08002957 "actions" : ["FabricIngress.filtering.set_forwarding_type"],
Daniele Moro5a2de712019-09-24 14:34:07 -07002958 "base_default_next" : "node_10",
Yi Tsengbe342052017-11-03 10:21:23 -07002959 "next_tables" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07002960 "FabricIngress.filtering.set_forwarding_type" : "node_10"
Yi Tsengbe342052017-11-03 10:21:23 -07002961 },
2962 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002963 "action_id" : 10,
Yi Tsengbe342052017-11-03 10:21:23 -07002964 "action_const" : true,
2965 "action_data" : ["0x0"],
2966 "action_entry_const" : true
2967 }
2968 },
2969 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08002970 "name" : "FabricIngress.forwarding.bridging",
Daniele Moro5a2de712019-09-24 14:34:07 -07002971 "id" : 5,
Yi Tsengbe342052017-11-03 10:21:23 -07002972 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02002973 "filename" : "include/control/forwarding.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07002974 "line" : 46,
Yi Tsengbe342052017-11-03 10:21:23 -07002975 "column" : 10,
2976 "source_fragment" : "bridging"
2977 },
2978 "key" : [
2979 {
2980 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002981 "name" : "vlan_id",
2982 "target" : ["scalars", "fabric_metadata_t.vlan_id"],
Yi Tsengbe342052017-11-03 10:21:23 -07002983 "mask" : null
2984 },
2985 {
2986 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002987 "name" : "eth_dst",
Yi Tsengbe342052017-11-03 10:21:23 -07002988 "target" : ["ethernet", "dst_addr"],
2989 "mask" : null
2990 }
2991 ],
2992 "match_type" : "ternary",
2993 "type" : "simple",
2994 "max_size" : 1024,
Yi Tsengbd46d052018-01-22 17:18:16 -08002995 "with_counters" : true,
Yi Tsengbe342052017-11-03 10:21:23 -07002996 "support_timeout" : false,
2997 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08002998 "action_ids" : [11, 0],
2999 "actions" : ["FabricIngress.forwarding.set_next_id_bridging", "nop"],
3000 "base_default_next" : "FabricIngress.acl.acl",
Yi Tseng1d842672017-11-28 16:06:52 -08003001 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003002 "FabricIngress.forwarding.set_next_id_bridging" : "FabricIngress.acl.acl",
3003 "nop" : "FabricIngress.acl.acl"
Yi Tseng1d842672017-11-28 16:06:52 -08003004 },
3005 "default_entry" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003006 "action_id" : 0,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003007 "action_const" : true,
Yi Tseng1d842672017-11-28 16:06:52 -08003008 "action_data" : [],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003009 "action_entry_const" : true
Yi Tseng1d842672017-11-28 16:06:52 -08003010 }
3011 },
3012 {
Yi Tseng27b9bc02018-04-12 14:52:40 +08003013 "name" : "FabricIngress.forwarding.mpls",
Daniele Moro5a2de712019-09-24 14:34:07 -07003014 "id" : 6,
Yi Tseng1d842672017-11-28 16:06:52 -08003015 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003016 "filename" : "include/control/forwarding.p4",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07003017 "line" : 71,
Yi Tseng1d842672017-11-28 16:06:52 -08003018 "column" : 10,
3019 "source_fragment" : "mpls"
3020 },
3021 "key" : [
3022 {
3023 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003024 "name" : "mpls_label",
3025 "target" : ["scalars", "fabric_metadata_t.mpls_label"],
Yi Tseng1d842672017-11-28 16:06:52 -08003026 "mask" : null
3027 }
3028 ],
3029 "match_type" : "exact",
3030 "type" : "simple",
3031 "max_size" : 1024,
Yi Tsengbd46d052018-01-22 17:18:16 -08003032 "with_counters" : true,
Yi Tseng1d842672017-11-28 16:06:52 -08003033 "support_timeout" : false,
3034 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003035 "action_ids" : [12, 1],
3036 "actions" : ["FabricIngress.forwarding.pop_mpls_and_next", "nop"],
3037 "base_default_next" : "FabricIngress.acl.acl",
Yi Tseng1d842672017-11-28 16:06:52 -08003038 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003039 "FabricIngress.forwarding.pop_mpls_and_next" : "FabricIngress.acl.acl",
3040 "nop" : "FabricIngress.acl.acl"
Yi Tseng1d842672017-11-28 16:06:52 -08003041 },
3042 "default_entry" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003043 "action_id" : 1,
Yi Tseng1d842672017-11-28 16:06:52 -08003044 "action_const" : true,
3045 "action_data" : [],
3046 "action_entry_const" : true
3047 }
3048 },
3049 {
Charles Chan384aea22018-08-23 22:08:02 -07003050 "name" : "FabricIngress.forwarding.routing_v4",
Daniele Moro5a2de712019-09-24 14:34:07 -07003051 "id" : 7,
Yi Tseng1d842672017-11-28 16:06:52 -08003052 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003053 "filename" : "include/control/forwarding.p4",
Daniele Moro5a2de712019-09-24 14:34:07 -07003054 "line" : 108,
Yi Tseng1d842672017-11-28 16:06:52 -08003055 "column" : 10,
Charles Chan384aea22018-08-23 22:08:02 -07003056 "source_fragment" : "routing_v4"
Yi Tseng1d842672017-11-28 16:06:52 -08003057 },
3058 "key" : [
3059 {
3060 "match_type" : "lpm",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003061 "name" : "ipv4_dst",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04003062 "target" : ["scalars", "fabric_metadata_t.ipv4_dst_addr"],
Yi Tseng1d842672017-11-28 16:06:52 -08003063 "mask" : null
3064 }
3065 ],
3066 "match_type" : "lpm",
3067 "type" : "simple",
3068 "max_size" : 1024,
Daniele Moro5a2de712019-09-24 14:34:07 -07003069 "with_counters" : false,
Yi Tseng1d842672017-11-28 16:06:52 -08003070 "support_timeout" : false,
3071 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003072 "action_ids" : [13, 14, 2],
3073 "actions" : ["FabricIngress.forwarding.set_next_id_routing_v4", "FabricIngress.forwarding.nop_routing_v4", "nop"],
3074 "base_default_next" : "FabricIngress.acl.acl",
Yi Tsengbe342052017-11-03 10:21:23 -07003075 "next_tables" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003076 "FabricIngress.forwarding.set_next_id_routing_v4" : "FabricIngress.acl.acl",
3077 "FabricIngress.forwarding.nop_routing_v4" : "FabricIngress.acl.acl",
3078 "nop" : "FabricIngress.acl.acl"
Yi Tsengbe342052017-11-03 10:21:23 -07003079 },
3080 "default_entry" : {
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003081 "action_id" : 2,
CyberHasHe9ba39c2019-10-11 05:59:12 +08003082 "action_const" : false,
Yi Tsengbe342052017-11-03 10:21:23 -07003083 "action_data" : [],
CyberHasHe9ba39c2019-10-11 05:59:12 +08003084 "action_entry_const" : false
Yi Tsengbe342052017-11-03 10:21:23 -07003085 }
3086 },
3087 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003088 "name" : "FabricIngress.acl.acl",
Daniele Moro5a2de712019-09-24 14:34:07 -07003089 "id" : 8,
Yi Tsengbe342052017-11-03 10:21:23 -07003090 "source_info" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003091 "filename" : "include/control/acl.p4",
3092 "line" : 60,
Yi Tsengbe342052017-11-03 10:21:23 -07003093 "column" : 10,
Yi Tsengbe342052017-11-03 10:21:23 -07003094 "source_fragment" : "acl"
3095 },
3096 "key" : [
3097 {
3098 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003099 "name" : "ig_port",
Yi Tsengbe342052017-11-03 10:21:23 -07003100 "target" : ["standard_metadata", "ingress_port"],
3101 "mask" : null
3102 },
3103 {
3104 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003105 "name" : "ip_proto",
Yi Tsengbe342052017-11-03 10:21:23 -07003106 "target" : ["scalars", "fabric_metadata_t.ip_proto"],
3107 "mask" : null
3108 },
3109 {
3110 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003111 "name" : "l4_sport",
3112 "target" : ["scalars", "fabric_metadata_t.l4_sport"],
Yi Tseng1d842672017-11-28 16:06:52 -08003113 "mask" : null
3114 },
3115 {
3116 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003117 "name" : "l4_dport",
3118 "target" : ["scalars", "fabric_metadata_t.l4_dport"],
Yi Tseng1d842672017-11-28 16:06:52 -08003119 "mask" : null
3120 },
3121 {
3122 "match_type" : "ternary",
Daniele Moro0cecfe12019-12-13 17:24:33 -08003123 "name" : "eth_dst",
Yi Tsengbe342052017-11-03 10:21:23 -07003124 "target" : ["ethernet", "dst_addr"],
3125 "mask" : null
3126 },
3127 {
3128 "match_type" : "ternary",
Daniele Moro0cecfe12019-12-13 17:24:33 -08003129 "name" : "eth_src",
Yi Tsengbe342052017-11-03 10:21:23 -07003130 "target" : ["ethernet", "src_addr"],
3131 "mask" : null
3132 },
3133 {
3134 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003135 "name" : "vlan_id",
Yi Tsengbe342052017-11-03 10:21:23 -07003136 "target" : ["vlan_tag", "vlan_id"],
3137 "mask" : null
3138 },
3139 {
3140 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003141 "name" : "eth_type",
Daniele Moro5a2de712019-09-24 14:34:07 -07003142 "target" : ["eth_type", "value"],
Yi Tseng8235a1a2018-07-24 20:57:28 +08003143 "mask" : null
3144 },
3145 {
3146 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003147 "name" : "ipv4_src",
Yi Tsengbe342052017-11-03 10:21:23 -07003148 "target" : ["ipv4", "src_addr"],
3149 "mask" : null
3150 },
3151 {
3152 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003153 "name" : "ipv4_dst",
Yi Tsengbe342052017-11-03 10:21:23 -07003154 "target" : ["ipv4", "dst_addr"],
3155 "mask" : null
3156 },
3157 {
3158 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003159 "name" : "icmp_type",
Yi Tsengbe342052017-11-03 10:21:23 -07003160 "target" : ["icmp", "icmp_type"],
3161 "mask" : null
3162 },
3163 {
3164 "match_type" : "ternary",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003165 "name" : "icmp_code",
Yi Tsengbe342052017-11-03 10:21:23 -07003166 "target" : ["icmp", "icmp_code"],
3167 "mask" : null
3168 }
3169 ],
3170 "match_type" : "ternary",
3171 "type" : "simple",
Carmelo Cascone70e816b2019-03-19 16:15:47 -07003172 "max_size" : 1024,
Yi Tsengbd46d052018-01-22 17:18:16 -08003173 "with_counters" : true,
Yi Tsengbe342052017-11-03 10:21:23 -07003174 "support_timeout" : false,
3175 "direct_meters" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003176 "action_ids" : [15, 16, 17, 18, 19],
Daniele Moro01ca2ab2019-06-25 11:48:48 -07003177 "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 Moro5a2de712019-09-24 14:34:07 -07003178 "base_default_next" : "node_18",
Yi Tsengbe342052017-11-03 10:21:23 -07003179 "next_tables" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07003180 "FabricIngress.acl.set_next_id_acl" : "node_18",
3181 "FabricIngress.acl.punt_to_cpu" : "node_18",
3182 "FabricIngress.acl.set_clone_session_id" : "node_18",
3183 "FabricIngress.acl.drop" : "node_18",
3184 "FabricIngress.acl.nop_acl" : "node_18"
Yi Tsengbe342052017-11-03 10:21:23 -07003185 },
3186 "default_entry" : {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003187 "action_id" : 19,
Yi Tsengbe342052017-11-03 10:21:23 -07003188 "action_const" : true,
3189 "action_data" : [],
3190 "action_entry_const" : true
3191 }
3192 },
3193 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003194 "name" : "FabricIngress.next.xconnect",
Daniele Moro5a2de712019-09-24 14:34:07 -07003195 "id" : 9,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003196 "source_info" : {
3197 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07003198 "line" : 119,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003199 "column" : 10,
3200 "source_fragment" : "xconnect"
3201 },
3202 "key" : [
3203 {
3204 "match_type" : "exact",
3205 "name" : "ig_port",
3206 "target" : ["standard_metadata", "ingress_port"],
3207 "mask" : null
3208 },
3209 {
3210 "match_type" : "exact",
3211 "name" : "next_id",
3212 "target" : ["scalars", "fabric_metadata_t.next_id"],
3213 "mask" : null
3214 }
3215 ],
3216 "match_type" : "exact",
3217 "type" : "simple",
3218 "max_size" : 1024,
3219 "with_counters" : true,
3220 "support_timeout" : false,
3221 "direct_meters" : null,
3222 "action_ids" : [21, 22, 4],
3223 "actions" : ["FabricIngress.next.output_xconnect", "FabricIngress.next.set_next_id_xconnect", "nop"],
3224 "base_default_next" : "FabricIngress.next.hashed",
3225 "next_tables" : {
3226 "FabricIngress.next.output_xconnect" : "FabricIngress.next.hashed",
3227 "FabricIngress.next.set_next_id_xconnect" : "FabricIngress.next.hashed",
3228 "nop" : "FabricIngress.next.hashed"
3229 },
3230 "default_entry" : {
3231 "action_id" : 4,
3232 "action_const" : true,
3233 "action_data" : [],
3234 "action_entry_const" : true
3235 }
3236 },
3237 {
3238 "name" : "FabricIngress.next.hashed",
Daniele Moro5a2de712019-09-24 14:34:07 -07003239 "id" : 10,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003240 "source_info" : {
3241 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07003242 "line" : 202,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003243 "column" : 10,
3244 "source_fragment" : "hashed"
3245 },
3246 "key" : [
3247 {
3248 "match_type" : "exact",
3249 "name" : "next_id",
3250 "target" : ["scalars", "fabric_metadata_t.next_id"],
3251 "mask" : null
3252 }
3253 ],
3254 "match_type" : "exact",
3255 "type" : "indirect_ws",
3256 "action_profile" : "FabricIngress.next.hashed_selector",
3257 "max_size" : 1024,
3258 "with_counters" : true,
3259 "support_timeout" : false,
3260 "direct_meters" : null,
3261 "action_ids" : [23, 24, 25, 5],
3262 "actions" : ["FabricIngress.next.output_hashed", "FabricIngress.next.routing_hashed", "FabricIngress.next.mpls_routing_hashed", "nop"],
3263 "base_default_next" : "FabricIngress.next.multicast",
3264 "next_tables" : {
3265 "FabricIngress.next.output_hashed" : "FabricIngress.next.multicast",
3266 "FabricIngress.next.routing_hashed" : "FabricIngress.next.multicast",
3267 "FabricIngress.next.mpls_routing_hashed" : "FabricIngress.next.multicast",
3268 "nop" : "FabricIngress.next.multicast"
3269 }
3270 },
3271 {
3272 "name" : "FabricIngress.next.multicast",
Daniele Moro5a2de712019-09-24 14:34:07 -07003273 "id" : 11,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003274 "source_info" : {
3275 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07003276 "line" : 236,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003277 "column" : 10,
3278 "source_fragment" : "multicast"
3279 },
3280 "key" : [
3281 {
3282 "match_type" : "exact",
3283 "name" : "next_id",
3284 "target" : ["scalars", "fabric_metadata_t.next_id"],
3285 "mask" : null
3286 }
3287 ],
3288 "match_type" : "exact",
3289 "type" : "simple",
3290 "max_size" : 1024,
3291 "with_counters" : true,
3292 "support_timeout" : false,
3293 "direct_meters" : null,
3294 "action_ids" : [26, 6],
3295 "actions" : ["FabricIngress.next.set_mcast_group_id", "nop"],
3296 "base_default_next" : "FabricIngress.next.next_vlan",
3297 "next_tables" : {
3298 "FabricIngress.next.set_mcast_group_id" : "FabricIngress.next.next_vlan",
3299 "nop" : "FabricIngress.next.next_vlan"
3300 },
3301 "default_entry" : {
3302 "action_id" : 6,
3303 "action_const" : true,
3304 "action_data" : [],
3305 "action_entry_const" : true
3306 }
3307 },
3308 {
3309 "name" : "FabricIngress.next.next_vlan",
Daniele Moro5a2de712019-09-24 14:34:07 -07003310 "id" : 12,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003311 "source_info" : {
3312 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07003313 "line" : 86,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003314 "column" : 10,
3315 "source_fragment" : "next_vlan"
3316 },
3317 "key" : [
3318 {
3319 "match_type" : "exact",
3320 "name" : "next_id",
3321 "target" : ["scalars", "fabric_metadata_t.next_id"],
3322 "mask" : null
3323 }
3324 ],
3325 "match_type" : "exact",
3326 "type" : "simple",
3327 "max_size" : 1024,
3328 "with_counters" : true,
3329 "support_timeout" : false,
3330 "direct_meters" : null,
3331 "action_ids" : [20, 3],
3332 "actions" : ["FabricIngress.next.set_vlan", "nop"],
Daniele Moro5a2de712019-09-24 14:34:07 -07003333 "base_default_next" : "node_23",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003334 "next_tables" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07003335 "FabricIngress.next.set_vlan" : "node_23",
3336 "nop" : "node_23"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003337 },
3338 "default_entry" : {
3339 "action_id" : 3,
3340 "action_const" : true,
3341 "action_data" : [],
3342 "action_entry_const" : true
3343 }
3344 },
3345 {
Daniele Moro5a2de712019-09-24 14:34:07 -07003346 "name" : "tbl_act_2",
3347 "id" : 13,
Carmelo Cascone3032b872019-04-13 01:23:54 -07003348 "source_info" : {
3349 "filename" : "include/control/port_counter.p4",
3350 "line" : 31,
3351 "column" : 12,
3352 "source_fragment" : "egress_port_counter.count((bit<32>)standard_metadata.egress_spec)"
3353 },
Carmelo Casconea5400af2018-07-17 22:11:54 +02003354 "key" : [],
3355 "match_type" : "exact",
3356 "type" : "simple",
3357 "max_size" : 1024,
3358 "with_counters" : false,
3359 "support_timeout" : false,
3360 "direct_meters" : null,
Daniele Moro5a2de712019-09-24 14:34:07 -07003361 "action_ids" : [30],
3362 "actions" : ["act_2"],
3363 "base_default_next" : "node_25",
Carmelo Casconea5400af2018-07-17 22:11:54 +02003364 "next_tables" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07003365 "act_2" : "node_25"
Carmelo Casconea5400af2018-07-17 22:11:54 +02003366 },
3367 "default_entry" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07003368 "action_id" : 30,
Carmelo Casconea5400af2018-07-17 22:11:54 +02003369 "action_const" : true,
3370 "action_data" : [],
3371 "action_entry_const" : true
3372 }
3373 },
3374 {
Daniele Moro5a2de712019-09-24 14:34:07 -07003375 "name" : "tbl_act_3",
3376 "id" : 14,
Carmelo Cascone3032b872019-04-13 01:23:54 -07003377 "source_info" : {
3378 "filename" : "include/control/port_counter.p4",
3379 "line" : 34,
3380 "column" : 12,
3381 "source_fragment" : "ingress_port_counter.count((bit<32>)standard_metadata.ingress_port)"
3382 },
Carmelo Casconea5400af2018-07-17 22:11:54 +02003383 "key" : [],
3384 "match_type" : "exact",
3385 "type" : "simple",
3386 "max_size" : 1024,
3387 "with_counters" : false,
3388 "support_timeout" : false,
3389 "direct_meters" : null,
Daniele Moro5a2de712019-09-24 14:34:07 -07003390 "action_ids" : [31],
3391 "actions" : ["act_3"],
Carmelo Casconea5400af2018-07-17 22:11:54 +02003392 "base_default_next" : null,
Esin Karaman971fb7f2017-12-28 13:44:52 +00003393 "next_tables" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07003394 "act_3" : null
Yi Tseng27b9bc02018-04-12 14:52:40 +08003395 },
3396 "default_entry" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07003397 "action_id" : 31,
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003398 "action_const" : true,
3399 "action_data" : [],
3400 "action_entry_const" : true
3401 }
Yi Tsengbe342052017-11-03 10:21:23 -07003402 }
3403 ],
3404 "action_profiles" : [
3405 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003406 "name" : "FabricIngress.next.hashed_selector",
Yi Tsengbe342052017-11-03 10:21:23 -07003407 "id" : 0,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07003408 "source_info" : {
3409 "filename" : "include/control/next.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07003410 "line" : 183,
Carmelo Cascone70e816b2019-03-19 16:15:47 -07003411 "column" : 57,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003412 "source_fragment" : "hashed_selector"
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07003413 },
Carmelo Cascone70e816b2019-03-19 16:15:47 -07003414 "max_size" : 1024,
Yi Tsengbe342052017-11-03 10:21:23 -07003415 "selector" : {
3416 "algo" : "crc16",
3417 "input" : [
3418 {
3419 "type" : "field",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04003420 "value" : ["scalars", "fabric_metadata_t.ipv4_src_addr"]
Yi Tsengbe342052017-11-03 10:21:23 -07003421 },
3422 {
3423 "type" : "field",
Robert MacDavidbec6b6a2020-05-21 21:32:38 -04003424 "value" : ["scalars", "fabric_metadata_t.ipv4_dst_addr"]
Yi Tsengbe342052017-11-03 10:21:23 -07003425 },
3426 {
3427 "type" : "field",
Yi Tseng1d842672017-11-28 16:06:52 -08003428 "value" : ["scalars", "fabric_metadata_t.ip_proto"]
Yi Tsengbe342052017-11-03 10:21:23 -07003429 },
3430 {
3431 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003432 "value" : ["scalars", "fabric_metadata_t.l4_sport"]
Yi Tsengbe342052017-11-03 10:21:23 -07003433 },
3434 {
3435 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003436 "value" : ["scalars", "fabric_metadata_t.l4_dport"]
Yi Tsengbe342052017-11-03 10:21:23 -07003437 }
3438 ]
3439 }
3440 }
3441 ],
3442 "conditionals" : [
3443 {
3444 "name" : "node_2",
3445 "id" : 0,
3446 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003447 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003448 "line" : 24,
Yi Tsengbe342052017-11-03 10:21:23 -07003449 "column" : 12,
3450 "source_fragment" : "hdr.packet_out.isValid()"
3451 },
3452 "expression" : {
3453 "type" : "expression",
3454 "value" : {
Yi Tsengbd46d052018-01-22 17:18:16 -08003455 "op" : "d2b",
3456 "left" : null,
3457 "right" : {
Yi Tsengbe342052017-11-03 10:21:23 -07003458 "type" : "field",
3459 "value" : ["packet_out", "$valid$"]
Yi Tsengbe342052017-11-03 10:21:23 -07003460 }
3461 }
3462 },
3463 "true_next" : "tbl_act",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003464 "false_next" : "node_4"
Yi Tsengbe342052017-11-03 10:21:23 -07003465 },
3466 {
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003467 "name" : "node_4",
Yi Tsengbe342052017-11-03 10:21:23 -07003468 "id" : 1,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003469 "source_info" : {
3470 "filename" : "include/control/filtering.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07003471 "line" : 110,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003472 "column" : 12,
3473 "source_fragment" : "hdr.vlan_tag.isValid()"
3474 },
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003475 "expression" : {
3476 "type" : "expression",
3477 "value" : {
3478 "op" : "d2b",
3479 "left" : null,
3480 "right" : {
3481 "type" : "field",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003482 "value" : ["vlan_tag", "$valid$"]
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003483 }
3484 }
3485 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003486 "true_next" : "tbl_act_0",
3487 "false_next" : "node_6"
3488 },
3489 {
3490 "name" : "node_6",
3491 "id" : 2,
3492 "source_info" : {
3493 "filename" : "include/control/filtering.p4",
Daniele Morob3d199b2019-11-01 14:01:46 -07003494 "line" : 122,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003495 "column" : 12,
3496 "source_fragment" : "!hdr.mpls.isValid()"
3497 },
3498 "expression" : {
3499 "type" : "expression",
3500 "value" : {
3501 "op" : "not",
3502 "left" : null,
3503 "right" : {
3504 "type" : "expression",
3505 "value" : {
3506 "op" : "d2b",
3507 "left" : null,
3508 "right" : {
3509 "type" : "field",
3510 "value" : ["mpls", "$valid$"]
3511 }
3512 }
3513 }
3514 }
3515 },
3516 "true_next" : "tbl_act_1",
Daniele Moro5a2de712019-09-24 14:34:07 -07003517 "false_next" : "FabricIngress.filtering.ingress_port_vlan"
Carmelo Cascone8a715f82018-08-20 23:16:27 -07003518 },
3519 {
3520 "name" : "node_10",
Daniele Moro5a2de712019-09-24 14:34:07 -07003521 "id" : 3,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003522 "source_info" : {
3523 "filename" : "fabric.p4",
Robert MacDavidde12b982020-07-15 18:38:59 -07003524 "line" : 69,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003525 "column" : 12,
3526 "source_fragment" : "fabric_metadata.skip_forwarding == false"
3527 },
3528 "expression" : {
3529 "type" : "expression",
3530 "value" : {
3531 "op" : "==",
3532 "left" : {
3533 "type" : "expression",
3534 "value" : {
3535 "op" : "d2b",
3536 "left" : null,
3537 "right" : {
3538 "type" : "field",
3539 "value" : ["scalars", "fabric_metadata_t.skip_forwarding"]
3540 }
3541 }
3542 },
3543 "right" : {
3544 "type" : "bool",
3545 "value" : false
3546 }
3547 }
3548 },
Daniele Moro5a2de712019-09-24 14:34:07 -07003549 "true_next" : "node_11",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003550 "false_next" : "FabricIngress.acl.acl"
3551 },
3552 {
Daniele Moro5a2de712019-09-24 14:34:07 -07003553 "name" : "node_11",
3554 "id" : 4,
Yi Tsengbe342052017-11-03 10:21:23 -07003555 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003556 "filename" : "include/control/forwarding.p4",
Daniele Moro5a2de712019-09-24 14:34:07 -07003557 "line" : 150,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003558 "column" : 12,
Yi Tsengbe342052017-11-03 10:21:23 -07003559 "source_fragment" : "fabric_metadata.fwd_type == FWD_BRIDGING"
3560 },
3561 "expression" : {
3562 "type" : "expression",
3563 "value" : {
3564 "op" : "==",
3565 "left" : {
3566 "type" : "field",
3567 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
3568 },
3569 "right" : {
3570 "type" : "hexstr",
3571 "value" : "0x00"
3572 }
3573 }
3574 },
Yi Tseng27b9bc02018-04-12 14:52:40 +08003575 "true_next" : "FabricIngress.forwarding.bridging",
Daniele Moro5a2de712019-09-24 14:34:07 -07003576 "false_next" : "node_13"
Yi Tsengbe342052017-11-03 10:21:23 -07003577 },
3578 {
Daniele Moro5a2de712019-09-24 14:34:07 -07003579 "name" : "node_13",
3580 "id" : 5,
Yi Tsengbe342052017-11-03 10:21:23 -07003581 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003582 "filename" : "include/control/forwarding.p4",
Daniele Moro5a2de712019-09-24 14:34:07 -07003583 "line" : 151,
Yi Tsengbe342052017-11-03 10:21:23 -07003584 "column" : 17,
3585 "source_fragment" : "fabric_metadata.fwd_type == FWD_MPLS"
3586 },
3587 "expression" : {
3588 "type" : "expression",
3589 "value" : {
3590 "op" : "==",
3591 "left" : {
3592 "type" : "field",
3593 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
3594 },
3595 "right" : {
3596 "type" : "hexstr",
3597 "value" : "0x01"
3598 }
3599 }
3600 },
Yi Tseng27b9bc02018-04-12 14:52:40 +08003601 "true_next" : "FabricIngress.forwarding.mpls",
Daniele Moro5a2de712019-09-24 14:34:07 -07003602 "false_next" : "node_15"
Yi Tsengbe342052017-11-03 10:21:23 -07003603 },
3604 {
Daniele Moro5a2de712019-09-24 14:34:07 -07003605 "name" : "node_15",
3606 "id" : 6,
Yi Tsengbe342052017-11-03 10:21:23 -07003607 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003608 "filename" : "include/control/forwarding.p4",
Daniele Moro5a2de712019-09-24 14:34:07 -07003609 "line" : 152,
Yi Tsengbe342052017-11-03 10:21:23 -07003610 "column" : 17,
3611 "source_fragment" : "fabric_metadata.fwd_type == FWD_IPV4_UNICAST"
3612 },
3613 "expression" : {
3614 "type" : "expression",
3615 "value" : {
3616 "op" : "==",
3617 "left" : {
3618 "type" : "field",
3619 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
3620 },
3621 "right" : {
3622 "type" : "hexstr",
3623 "value" : "0x02"
3624 }
3625 }
3626 },
Charles Chan384aea22018-08-23 22:08:02 -07003627 "true_next" : "FabricIngress.forwarding.routing_v4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003628 "false_next" : "FabricIngress.acl.acl"
3629 },
3630 {
Daniele Moro5a2de712019-09-24 14:34:07 -07003631 "name" : "node_18",
3632 "id" : 7,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003633 "source_info" : {
3634 "filename" : "fabric.p4",
Robert MacDavidde12b982020-07-15 18:38:59 -07003635 "line" : 73,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003636 "column" : 12,
3637 "source_fragment" : "fabric_metadata.skip_next == false"
3638 },
3639 "expression" : {
3640 "type" : "expression",
3641 "value" : {
3642 "op" : "==",
3643 "left" : {
3644 "type" : "expression",
3645 "value" : {
3646 "op" : "d2b",
3647 "left" : null,
3648 "right" : {
3649 "type" : "field",
3650 "value" : ["scalars", "fabric_metadata_t.skip_next"]
3651 }
3652 }
3653 },
3654 "right" : {
3655 "type" : "bool",
3656 "value" : false
3657 }
3658 }
3659 },
3660 "false_next" : null,
3661 "true_next" : "FabricIngress.next.xconnect"
Yi Tseng27b9bc02018-04-12 14:52:40 +08003662 },
3663 {
Daniele Moro5a2de712019-09-24 14:34:07 -07003664 "name" : "node_23",
3665 "id" : 8,
Yi Tseng27b9bc02018-04-12 14:52:40 +08003666 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003667 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003668 "line" : 30,
Yi Tsengbe342052017-11-03 10:21:23 -07003669 "column" : 12,
3670 "source_fragment" : "standard_metadata.egress_spec < 511"
3671 },
3672 "expression" : {
3673 "type" : "expression",
3674 "value" : {
3675 "op" : "<",
3676 "left" : {
3677 "type" : "field",
3678 "value" : ["standard_metadata", "egress_spec"]
3679 },
3680 "right" : {
3681 "type" : "hexstr",
3682 "value" : "0x01ff"
3683 }
3684 }
3685 },
Daniele Moro5a2de712019-09-24 14:34:07 -07003686 "true_next" : "tbl_act_2",
3687 "false_next" : "node_25"
Yi Tsengbe342052017-11-03 10:21:23 -07003688 },
3689 {
Daniele Moro5a2de712019-09-24 14:34:07 -07003690 "name" : "node_25",
3691 "id" : 9,
Yi Tsengbe342052017-11-03 10:21:23 -07003692 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003693 "filename" : "include/control/port_counter.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003694 "line" : 33,
Yi Tsengbe342052017-11-03 10:21:23 -07003695 "column" : 12,
3696 "source_fragment" : "standard_metadata.ingress_port < 511"
3697 },
3698 "expression" : {
3699 "type" : "expression",
3700 "value" : {
3701 "op" : "<",
3702 "left" : {
3703 "type" : "field",
3704 "value" : ["standard_metadata", "ingress_port"]
3705 },
3706 "right" : {
3707 "type" : "hexstr",
3708 "value" : "0x01ff"
3709 }
3710 }
3711 },
Yi Tseng3a5731e2018-01-22 11:38:58 -08003712 "false_next" : null,
Daniele Moro5a2de712019-09-24 14:34:07 -07003713 "true_next" : "tbl_act_3"
Yi Tseng3a5731e2018-01-22 11:38:58 -08003714 }
3715 ]
3716 },
3717 {
3718 "name" : "egress",
3719 "id" : 1,
3720 "source_info" : {
3721 "filename" : "fabric.p4",
Robert MacDavidde12b982020-07-15 18:38:59 -07003722 "line" : 91,
Yi Tseng3a5731e2018-01-22 11:38:58 -08003723 "column" : 8,
3724 "source_fragment" : "FabricEgress"
3725 },
Daniele Moro5a2de712019-09-24 14:34:07 -07003726 "init_table" : "node_29",
Yi Tseng3a5731e2018-01-22 11:38:58 -08003727 "tables" : [
3728 {
Daniele Moro5a2de712019-09-24 14:34:07 -07003729 "name" : "tbl_act_4",
3730 "id" : 15,
Carmelo Cascone3032b872019-04-13 01:23:54 -07003731 "source_info" : {
3732 "filename" : "include/control/packetio.p4",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003733 "line" : 41,
3734 "column" : 12,
3735 "source_fragment" : "exit"
Carmelo Cascone3032b872019-04-13 01:23:54 -07003736 },
Carmelo Casconea5400af2018-07-17 22:11:54 +02003737 "key" : [],
3738 "match_type" : "exact",
3739 "type" : "simple",
3740 "max_size" : 1024,
3741 "with_counters" : false,
3742 "support_timeout" : false,
3743 "direct_meters" : null,
Daniele Moro5a2de712019-09-24 14:34:07 -07003744 "action_ids" : [37],
3745 "actions" : ["act_4"],
3746 "base_default_next" : "node_31",
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07003747 "next_tables" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07003748 "act_4" : "node_31"
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07003749 },
3750 "default_entry" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07003751 "action_id" : 37,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07003752 "action_const" : true,
3753 "action_data" : [],
3754 "action_entry_const" : true
3755 }
3756 },
3757 {
Daniele Moro5a2de712019-09-24 14:34:07 -07003758 "name" : "tbl_act_5",
3759 "id" : 16,
Carmelo Cascone3032b872019-04-13 01:23:54 -07003760 "source_info" : {
3761 "filename" : "include/control/packetio.p4",
Daniele Moro01ca2ab2019-06-25 11:48:48 -07003762 "line" : 44,
3763 "column" : 12,
3764 "source_fragment" : "hdr.packet_in.setValid(); ..."
Carmelo Cascone3032b872019-04-13 01:23:54 -07003765 },
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07003766 "key" : [],
3767 "match_type" : "exact",
3768 "type" : "simple",
3769 "max_size" : 1024,
3770 "with_counters" : false,
3771 "support_timeout" : false,
3772 "direct_meters" : null,
Daniele Moro5a2de712019-09-24 14:34:07 -07003773 "action_ids" : [38],
3774 "actions" : ["act_5"],
3775 "base_default_next" : "node_33",
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07003776 "next_tables" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07003777 "act_5" : "node_33"
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07003778 },
3779 "default_entry" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07003780 "action_id" : 38,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07003781 "action_const" : true,
3782 "action_data" : [],
3783 "action_entry_const" : true
3784 }
3785 },
3786 {
Daniele Moro5a2de712019-09-24 14:34:07 -07003787 "name" : "tbl_act_6",
3788 "id" : 17,
Carmelo Cascone3032b872019-04-13 01:23:54 -07003789 "source_info" : {
Daniele Moro01ca2ab2019-06-25 11:48:48 -07003790 "filename" : "include/control/next.p4",
pierventre48e78822020-12-15 17:34:54 +01003791 "line" : 349,
Carmelo Cascone3032b872019-04-13 01:23:54 -07003792 "column" : 12,
Daniele Moro01ca2ab2019-06-25 11:48:48 -07003793 "source_fragment" : "mark_to_drop(standard_metadata)"
Carmelo Cascone3032b872019-04-13 01:23:54 -07003794 },
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07003795 "key" : [],
3796 "match_type" : "exact",
3797 "type" : "simple",
3798 "max_size" : 1024,
3799 "with_counters" : false,
3800 "support_timeout" : false,
3801 "direct_meters" : null,
Daniele Moro5a2de712019-09-24 14:34:07 -07003802 "action_ids" : [39],
3803 "actions" : ["act_6"],
3804 "base_default_next" : "node_35",
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07003805 "next_tables" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07003806 "act_6" : "node_35"
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07003807 },
3808 "default_entry" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07003809 "action_id" : 39,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003810 "action_const" : true,
3811 "action_data" : [],
3812 "action_entry_const" : true
3813 }
3814 },
3815 {
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003816 "name" : "tbl_egress_next_pop_mpls_if_present",
Daniele Moro5a2de712019-09-24 14:34:07 -07003817 "id" : 18,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003818 "source_info" : {
3819 "filename" : "include/control/next.p4",
pierventre48e78822020-12-15 17:34:54 +01003820 "line" : 353,
Carmelo Cascone3032b872019-04-13 01:23:54 -07003821 "column" : 36,
3822 "source_fragment" : "pop_mpls_if_present()"
3823 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003824 "key" : [],
3825 "match_type" : "exact",
3826 "type" : "simple",
3827 "max_size" : 1024,
3828 "with_counters" : false,
3829 "support_timeout" : false,
3830 "direct_meters" : null,
pierventre48e78822020-12-15 17:34:54 +01003831 "action_ids" : [32],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003832 "actions" : ["FabricEgress.egress_next.pop_mpls_if_present"],
3833 "base_default_next" : "FabricEgress.egress_next.egress_vlan",
3834 "next_tables" : {
3835 "FabricEgress.egress_next.pop_mpls_if_present" : "FabricEgress.egress_next.egress_vlan"
3836 },
3837 "default_entry" : {
pierventre48e78822020-12-15 17:34:54 +01003838 "action_id" : 32,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003839 "action_const" : true,
3840 "action_data" : [],
3841 "action_entry_const" : true
3842 }
3843 },
3844 {
3845 "name" : "tbl_egress_next_set_mpls",
Daniele Moro5a2de712019-09-24 14:34:07 -07003846 "id" : 19,
Carmelo Cascone3032b872019-04-13 01:23:54 -07003847 "source_info" : {
3848 "filename" : "include/control/next.p4",
pierventre48e78822020-12-15 17:34:54 +01003849 "line" : 355,
Carmelo Cascone3032b872019-04-13 01:23:54 -07003850 "column" : 12,
3851 "source_fragment" : "set_mpls()"
3852 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003853 "key" : [],
3854 "match_type" : "exact",
3855 "type" : "simple",
3856 "max_size" : 1024,
3857 "with_counters" : false,
3858 "support_timeout" : false,
3859 "direct_meters" : null,
pierventre48e78822020-12-15 17:34:54 +01003860 "action_ids" : [33],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003861 "actions" : ["FabricEgress.egress_next.set_mpls"],
3862 "base_default_next" : "FabricEgress.egress_next.egress_vlan",
3863 "next_tables" : {
3864 "FabricEgress.egress_next.set_mpls" : "FabricEgress.egress_next.egress_vlan"
3865 },
3866 "default_entry" : {
pierventre48e78822020-12-15 17:34:54 +01003867 "action_id" : 33,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07003868 "action_const" : true,
3869 "action_data" : [],
3870 "action_entry_const" : true
3871 }
3872 },
3873 {
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003874 "name" : "FabricEgress.egress_next.egress_vlan",
Daniele Moro5a2de712019-09-24 14:34:07 -07003875 "id" : 20,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003876 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02003877 "filename" : "include/control/next.p4",
pierventre48e78822020-12-15 17:34:54 +01003878 "line" : 331,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003879 "column" : 10,
3880 "source_fragment" : "egress_vlan"
3881 },
3882 "key" : [
3883 {
3884 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003885 "name" : "vlan_id",
3886 "target" : ["scalars", "fabric_metadata_t.vlan_id"],
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003887 "mask" : null
3888 },
3889 {
3890 "match_type" : "exact",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003891 "name" : "eg_port",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003892 "target" : ["standard_metadata", "egress_port"],
3893 "mask" : null
3894 }
3895 ],
3896 "match_type" : "exact",
3897 "type" : "simple",
3898 "max_size" : 1024,
Yi Tseng47eac892018-07-11 02:17:04 +08003899 "with_counters" : true,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003900 "support_timeout" : false,
3901 "direct_meters" : null,
pierventre48e78822020-12-15 17:34:54 +01003902 "action_ids" : [34, 35, 36],
3903 "actions" : ["FabricEgress.egress_next.push_vlan", "FabricEgress.egress_next.pop_vlan", "FabricEgress.egress_next.drop"],
3904 "base_default_next" : "node_40",
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003905 "next_tables" : {
pierventre48e78822020-12-15 17:34:54 +01003906 "FabricEgress.egress_next.push_vlan" : "node_40",
3907 "FabricEgress.egress_next.pop_vlan" : "node_40",
3908 "FabricEgress.egress_next.drop" : "node_40"
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003909 },
3910 "default_entry" : {
pierventre48e78822020-12-15 17:34:54 +01003911 "action_id" : 36,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003912 "action_const" : true,
Yi Tseng20f9e7b2018-05-24 23:27:39 +08003913 "action_data" : [],
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003914 "action_entry_const" : true
3915 }
3916 },
3917 {
Daniele Moro5a2de712019-09-24 14:34:07 -07003918 "name" : "tbl_act_7",
3919 "id" : 21,
pierventre48e78822020-12-15 17:34:54 +01003920 "source_info" : {
3921 "filename" : "include/control/next.p4",
3922 "line" : 375,
3923 "column" : 25,
3924 "source_fragment" : "="
Daniele Moro01ca2ab2019-06-25 11:48:48 -07003925 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003926 "key" : [],
3927 "match_type" : "exact",
3928 "type" : "simple",
3929 "max_size" : 1024,
3930 "with_counters" : false,
3931 "support_timeout" : false,
3932 "direct_meters" : null,
Daniele Moro5a2de712019-09-24 14:34:07 -07003933 "action_ids" : [41],
3934 "actions" : ["act_8"],
3935 "base_default_next" : "node_42",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003936 "next_tables" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07003937 "act_8" : "node_42"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003938 },
3939 "default_entry" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07003940 "action_id" : 41,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003941 "action_const" : true,
3942 "action_data" : [],
3943 "action_entry_const" : true
3944 }
3945 },
3946 {
pierventre48e78822020-12-15 17:34:54 +01003947 "name" : "tbl_act_8",
3948 "id" : 22,
Carmelo Cascone3032b872019-04-13 01:23:54 -07003949 "source_info" : {
3950 "filename" : "include/control/next.p4",
pierventre48e78822020-12-15 17:34:54 +01003951 "line" : 376,
3952 "column" : 35,
3953 "source_fragment" : "mark_to_drop(standard_metadata)"
Carmelo Cascone3032b872019-04-13 01:23:54 -07003954 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003955 "key" : [],
3956 "match_type" : "exact",
3957 "type" : "simple",
3958 "max_size" : 1024,
3959 "with_counters" : false,
3960 "support_timeout" : false,
3961 "direct_meters" : null,
pierventre48e78822020-12-15 17:34:54 +01003962 "action_ids" : [40],
3963 "actions" : ["act_7"],
3964 "base_default_next" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003965 "next_tables" : {
pierventre48e78822020-12-15 17:34:54 +01003966 "act_7" : null
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003967 },
3968 "default_entry" : {
pierventre48e78822020-12-15 17:34:54 +01003969 "action_id" : 40,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003970 "action_const" : true,
3971 "action_data" : [],
3972 "action_entry_const" : true
3973 }
3974 },
3975 {
Daniele Moro5a2de712019-09-24 14:34:07 -07003976 "name" : "tbl_act_9",
pierventre48e78822020-12-15 17:34:54 +01003977 "id" : 23,
Carmelo Cascone3032b872019-04-13 01:23:54 -07003978 "source_info" : {
3979 "filename" : "include/control/next.p4",
pierventre48e78822020-12-15 17:34:54 +01003980 "line" : 379,
3981 "column" : 29,
Carmelo Cascone3032b872019-04-13 01:23:54 -07003982 "source_fragment" : "="
3983 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08003984 "key" : [],
3985 "match_type" : "exact",
3986 "type" : "simple",
3987 "max_size" : 1024,
3988 "with_counters" : false,
3989 "support_timeout" : false,
3990 "direct_meters" : null,
Daniele Moro5a2de712019-09-24 14:34:07 -07003991 "action_ids" : [43],
3992 "actions" : ["act_10"],
pierventre48e78822020-12-15 17:34:54 +01003993 "base_default_next" : "node_46",
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003994 "next_tables" : {
pierventre48e78822020-12-15 17:34:54 +01003995 "act_10" : "node_46"
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003996 },
3997 "default_entry" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07003998 "action_id" : 43,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07003999 "action_const" : true,
4000 "action_data" : [],
4001 "action_entry_const" : true
4002 }
4003 },
4004 {
Daniele Moro5a2de712019-09-24 14:34:07 -07004005 "name" : "tbl_act_10",
pierventre48e78822020-12-15 17:34:54 +01004006 "id" : 24,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004007 "source_info" : {
4008 "filename" : "include/control/next.p4",
pierventre48e78822020-12-15 17:34:54 +01004009 "line" : 380,
4010 "column" : 39,
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004011 "source_fragment" : "mark_to_drop(standard_metadata)"
4012 },
4013 "key" : [],
4014 "match_type" : "exact",
4015 "type" : "simple",
4016 "max_size" : 1024,
4017 "with_counters" : false,
4018 "support_timeout" : false,
4019 "direct_meters" : null,
Daniele Moro5a2de712019-09-24 14:34:07 -07004020 "action_ids" : [42],
4021 "actions" : ["act_9"],
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004022 "base_default_next" : null,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004023 "next_tables" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07004024 "act_9" : null
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004025 },
4026 "default_entry" : {
Daniele Moro5a2de712019-09-24 14:34:07 -07004027 "action_id" : 42,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004028 "action_const" : true,
4029 "action_data" : [],
4030 "action_entry_const" : true
4031 }
Yi Tseng3a5731e2018-01-22 11:38:58 -08004032 }
4033 ],
4034 "action_profiles" : [],
4035 "conditionals" : [
Yi Tseng1d842672017-11-28 16:06:52 -08004036 {
Daniele Moro5a2de712019-09-24 14:34:07 -07004037 "name" : "node_29",
4038 "id" : 10,
Carmelo Casconea5400af2018-07-17 22:11:54 +02004039 "source_info" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004040 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004041 "line" : 39,
Carmelo Casconea5400af2018-07-17 22:11:54 +02004042 "column" : 12,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004043 "source_fragment" : "fabric_metadata.is_controller_packet_out == true"
Carmelo Casconea5400af2018-07-17 22:11:54 +02004044 },
4045 "expression" : {
4046 "type" : "expression",
4047 "value" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004048 "op" : "==",
Carmelo Casconea5400af2018-07-17 22:11:54 +02004049 "left" : {
4050 "type" : "expression",
4051 "value" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004052 "op" : "d2b",
4053 "left" : null,
Carmelo Casconea5400af2018-07-17 22:11:54 +02004054 "right" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004055 "type" : "field",
4056 "value" : ["scalars", "fabric_metadata_t.is_controller_packet_out"]
Carmelo Casconea5400af2018-07-17 22:11:54 +02004057 }
4058 }
4059 },
4060 "right" : {
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004061 "type" : "bool",
4062 "value" : true
Carmelo Casconea5400af2018-07-17 22:11:54 +02004063 }
4064 }
4065 },
Daniele Moro5a2de712019-09-24 14:34:07 -07004066 "true_next" : "tbl_act_4",
4067 "false_next" : "node_31"
Carmelo Casconea5400af2018-07-17 22:11:54 +02004068 },
4069 {
Daniele Moro5a2de712019-09-24 14:34:07 -07004070 "name" : "node_31",
4071 "id" : 11,
Yi Tsengbe342052017-11-03 10:21:23 -07004072 "source_info" : {
Carmelo Casconef645e842018-07-16 18:31:52 +02004073 "filename" : "include/control/packetio.p4",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004074 "line" : 43,
Yi Tsengbe342052017-11-03 10:21:23 -07004075 "column" : 12,
Carmelo Casconeb531b682018-01-30 17:55:56 -08004076 "source_fragment" : "standard_metadata.egress_port == 255"
Yi Tsengbe342052017-11-03 10:21:23 -07004077 },
4078 "expression" : {
4079 "type" : "expression",
4080 "value" : {
4081 "op" : "==",
4082 "left" : {
4083 "type" : "field",
4084 "value" : ["standard_metadata", "egress_port"]
4085 },
4086 "right" : {
4087 "type" : "hexstr",
4088 "value" : "0x00ff"
4089 }
4090 }
4091 },
Daniele Moro5a2de712019-09-24 14:34:07 -07004092 "true_next" : "tbl_act_5",
4093 "false_next" : "node_33"
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004094 },
4095 {
Daniele Moro5a2de712019-09-24 14:34:07 -07004096 "name" : "node_33",
4097 "id" : 12,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004098 "source_info" : {
4099 "filename" : "include/control/next.p4",
pierventre48e78822020-12-15 17:34:54 +01004100 "line" : 347,
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004101 "column" : 12,
4102 "source_fragment" : "fabric_metadata.is_multicast == true ..."
4103 },
4104 "expression" : {
4105 "type" : "expression",
4106 "value" : {
4107 "op" : "and",
4108 "left" : {
4109 "type" : "expression",
4110 "value" : {
4111 "op" : "==",
4112 "left" : {
4113 "type" : "expression",
4114 "value" : {
4115 "op" : "d2b",
4116 "left" : null,
4117 "right" : {
4118 "type" : "field",
4119 "value" : ["scalars", "fabric_metadata_t.is_multicast"]
4120 }
4121 }
4122 },
4123 "right" : {
4124 "type" : "bool",
4125 "value" : true
4126 }
4127 }
4128 },
4129 "right" : {
4130 "type" : "expression",
4131 "value" : {
4132 "op" : "==",
4133 "left" : {
4134 "type" : "field",
4135 "value" : ["standard_metadata", "ingress_port"]
4136 },
4137 "right" : {
4138 "type" : "field",
4139 "value" : ["standard_metadata", "egress_port"]
4140 }
4141 }
4142 }
4143 }
4144 },
Daniele Moro5a2de712019-09-24 14:34:07 -07004145 "true_next" : "tbl_act_6",
4146 "false_next" : "node_35"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004147 },
4148 {
Daniele Moro5a2de712019-09-24 14:34:07 -07004149 "name" : "node_35",
4150 "id" : 13,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004151 "source_info" : {
4152 "filename" : "include/control/next.p4",
pierventre48e78822020-12-15 17:34:54 +01004153 "line" : 352,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004154 "column" : 12,
4155 "source_fragment" : "fabric_metadata.mpls_label == 0"
4156 },
4157 "expression" : {
4158 "type" : "expression",
4159 "value" : {
4160 "op" : "==",
4161 "left" : {
4162 "type" : "field",
4163 "value" : ["scalars", "fabric_metadata_t.mpls_label"]
4164 },
4165 "right" : {
4166 "type" : "hexstr",
4167 "value" : "0x000000"
4168 }
4169 }
4170 },
Daniele Moro5a2de712019-09-24 14:34:07 -07004171 "true_next" : "node_36",
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004172 "false_next" : "tbl_egress_next_set_mpls"
4173 },
4174 {
Daniele Moro5a2de712019-09-24 14:34:07 -07004175 "name" : "node_36",
4176 "id" : 14,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004177 "source_info" : {
4178 "filename" : "include/control/next.p4",
pierventre48e78822020-12-15 17:34:54 +01004179 "line" : 353,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004180 "column" : 16,
4181 "source_fragment" : "hdr.mpls.isValid()"
4182 },
4183 "expression" : {
4184 "type" : "expression",
4185 "value" : {
4186 "op" : "d2b",
4187 "left" : null,
4188 "right" : {
4189 "type" : "field",
4190 "value" : ["mpls", "$valid$"]
4191 }
4192 }
4193 },
4194 "true_next" : "tbl_egress_next_pop_mpls_if_present",
Carmelo Cascone8d2d1b22018-08-27 18:33:53 -07004195 "false_next" : "FabricEgress.egress_next.egress_vlan"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004196 },
4197 {
pierventre48e78822020-12-15 17:34:54 +01004198 "name" : "node_40",
Daniele Moro5a2de712019-09-24 14:34:07 -07004199 "id" : 15,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004200 "source_info" : {
4201 "filename" : "include/control/next.p4",
pierventre48e78822020-12-15 17:34:54 +01004202 "line" : 374,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004203 "column" : 12,
4204 "source_fragment" : "hdr.mpls.isValid()"
4205 },
4206 "expression" : {
4207 "type" : "expression",
4208 "value" : {
4209 "op" : "d2b",
4210 "left" : null,
4211 "right" : {
4212 "type" : "field",
4213 "value" : ["mpls", "$valid$"]
4214 }
4215 }
4216 },
pierventre48e78822020-12-15 17:34:54 +01004217 "true_next" : "tbl_act_7",
4218 "false_next" : "node_44"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004219 },
4220 {
pierventre48e78822020-12-15 17:34:54 +01004221 "name" : "node_42",
4222 "id" : 16,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004223 "source_info" : {
4224 "filename" : "include/control/next.p4",
pierventre48e78822020-12-15 17:34:54 +01004225 "line" : 376,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004226 "column" : 16,
4227 "source_fragment" : "hdr.mpls.ttl == 0"
4228 },
4229 "expression" : {
4230 "type" : "expression",
4231 "value" : {
4232 "op" : "==",
4233 "left" : {
4234 "type" : "field",
4235 "value" : ["mpls", "ttl"]
4236 },
4237 "right" : {
4238 "type" : "hexstr",
4239 "value" : "0x00"
4240 }
4241 }
4242 },
4243 "false_next" : null,
pierventre48e78822020-12-15 17:34:54 +01004244 "true_next" : "tbl_act_8"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004245 },
4246 {
pierventre48e78822020-12-15 17:34:54 +01004247 "name" : "node_44",
4248 "id" : 17,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004249 "source_info" : {
4250 "filename" : "include/control/next.p4",
pierventre48e78822020-12-15 17:34:54 +01004251 "line" : 378,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004252 "column" : 15,
Charles Chan74ad51e2020-09-12 19:05:42 -07004253 "source_fragment" : "hdr.ipv4.isValid() && fabric_metadata.fwd_type != FWD_BRIDGING"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004254 },
4255 "expression" : {
4256 "type" : "expression",
4257 "value" : {
Charles Chan74ad51e2020-09-12 19:05:42 -07004258 "op" : "and",
4259 "left" : {
4260 "type" : "expression",
4261 "value" : {
4262 "op" : "d2b",
4263 "left" : null,
4264 "right" : {
4265 "type" : "field",
4266 "value" : ["ipv4", "$valid$"]
4267 }
4268 }
4269 },
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004270 "right" : {
Charles Chan74ad51e2020-09-12 19:05:42 -07004271 "type" : "expression",
4272 "value" : {
4273 "op" : "!=",
4274 "left" : {
4275 "type" : "field",
4276 "value" : ["scalars", "fabric_metadata_t.fwd_type"]
4277 },
4278 "right" : {
4279 "type" : "hexstr",
4280 "value" : "0x00"
4281 }
4282 }
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004283 }
4284 }
4285 },
4286 "false_next" : null,
pierventre48e78822020-12-15 17:34:54 +01004287 "true_next" : "tbl_act_9"
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004288 },
4289 {
pierventre48e78822020-12-15 17:34:54 +01004290 "name" : "node_46",
4291 "id" : 18,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004292 "source_info" : {
4293 "filename" : "include/control/next.p4",
pierventre48e78822020-12-15 17:34:54 +01004294 "line" : 380,
Carmelo Casconeb5324e72018-11-25 02:26:32 -08004295 "column" : 20,
4296 "source_fragment" : "hdr.ipv4.ttl == 0"
4297 },
4298 "expression" : {
4299 "type" : "expression",
4300 "value" : {
4301 "op" : "==",
4302 "left" : {
4303 "type" : "field",
4304 "value" : ["ipv4", "ttl"]
4305 },
4306 "right" : {
4307 "type" : "hexstr",
4308 "value" : "0x00"
4309 }
4310 }
4311 },
4312 "false_next" : null,
pierventre48e78822020-12-15 17:34:54 +01004313 "true_next" : "tbl_act_10"
Yi Tsengbe342052017-11-03 10:21:23 -07004314 }
4315 ]
4316 }
4317 ],
4318 "checksums" : [
4319 {
4320 "name" : "cksum",
4321 "id" : 0,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07004322 "source_info" : {
4323 "filename" : "include/checksum.p4",
4324 "line" : 28,
4325 "column" : 8,
4326 "source_fragment" : "update_checksum(hdr.ipv4.isValid(), ..."
4327 },
Yi Tsengbe342052017-11-03 10:21:23 -07004328 "target" : ["ipv4", "hdr_checksum"],
4329 "type" : "generic",
Yi Tsengbd46d052018-01-22 17:18:16 -08004330 "calculation" : "calc",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08004331 "verify" : false,
4332 "update" : true,
Yi Tsengbd46d052018-01-22 17:18:16 -08004333 "if_cond" : {
4334 "type" : "expression",
4335 "value" : {
4336 "op" : "d2b",
4337 "left" : null,
4338 "right" : {
4339 "type" : "field",
4340 "value" : ["ipv4", "$valid$"]
4341 }
4342 }
4343 }
Yi Tsengbe342052017-11-03 10:21:23 -07004344 },
4345 {
4346 "name" : "cksum_0",
4347 "id" : 1,
Carmelo Cascone03ae0ac2018-10-11 08:31:59 -07004348 "source_info" : {
4349 "filename" : "include/checksum.p4",
4350 "line" : 57,
4351 "column" : 8,
4352 "source_fragment" : "verify_checksum(hdr.ipv4.isValid(), ..."
4353 },
Yi Tsengbe342052017-11-03 10:21:23 -07004354 "target" : ["ipv4", "hdr_checksum"],
4355 "type" : "generic",
Yi Tsengbd46d052018-01-22 17:18:16 -08004356 "calculation" : "calc_0",
Carmelo Casconea4dc3c12019-02-12 17:30:00 -08004357 "verify" : true,
4358 "update" : false,
Yi Tsengbd46d052018-01-22 17:18:16 -08004359 "if_cond" : {
4360 "type" : "expression",
4361 "value" : {
4362 "op" : "d2b",
4363 "left" : null,
4364 "right" : {
4365 "type" : "field",
4366 "value" : ["ipv4", "$valid$"]
4367 }
4368 }
4369 }
Yi Tsengbe342052017-11-03 10:21:23 -07004370 }
4371 ],
4372 "force_arith" : [],
4373 "extern_instances" : [],
4374 "field_aliases" : [
4375 [
4376 "queueing_metadata.enq_timestamp",
4377 ["standard_metadata", "enq_timestamp"]
4378 ],
4379 [
4380 "queueing_metadata.enq_qdepth",
4381 ["standard_metadata", "enq_qdepth"]
4382 ],
4383 [
4384 "queueing_metadata.deq_timedelta",
4385 ["standard_metadata", "deq_timedelta"]
4386 ],
4387 [
4388 "queueing_metadata.deq_qdepth",
4389 ["standard_metadata", "deq_qdepth"]
4390 ],
4391 [
4392 "intrinsic_metadata.ingress_global_timestamp",
4393 ["standard_metadata", "ingress_global_timestamp"]
4394 ],
4395 [
Yi Tseng27b9bc02018-04-12 14:52:40 +08004396 "intrinsic_metadata.egress_global_timestamp",
4397 ["standard_metadata", "egress_global_timestamp"]
4398 ],
4399 [
Yi Tsengbe342052017-11-03 10:21:23 -07004400 "intrinsic_metadata.lf_field_list",
4401 ["standard_metadata", "lf_field_list"]
4402 ],
4403 [
4404 "intrinsic_metadata.mcast_grp",
4405 ["standard_metadata", "mcast_grp"]
4406 ],
4407 [
4408 "intrinsic_metadata.resubmit_flag",
4409 ["standard_metadata", "resubmit_flag"]
4410 ],
4411 [
4412 "intrinsic_metadata.egress_rid",
4413 ["standard_metadata", "egress_rid"]
Yi Tseng27b9bc02018-04-12 14:52:40 +08004414 ],
4415 [
4416 "intrinsic_metadata.recirculate_flag",
4417 ["standard_metadata", "recirculate_flag"]
Carmelo Cascone9b607da2019-05-08 14:03:01 -07004418 ],
4419 [
4420 "intrinsic_metadata.priority",
4421 ["standard_metadata", "priority"]
Yi Tsengbe342052017-11-03 10:21:23 -07004422 ]
Carmelo Cascone6af4e172018-06-15 16:01:30 +02004423 ],
4424 "program" : "fabric.p4",
4425 "__meta__" : {
4426 "version" : [2, 18],
4427 "compiler" : "https://github.com/p4lang/p4c"
4428 }
Carmelo Cascone25243d62019-02-21 15:37:31 -08004429}